www.retrosoftware.co.uk
http://www.retrosoftware.co.uk/forum/

Memory from 0xe00 to 0x1900
http://www.retrosoftware.co.uk/forum/viewtopic.php?f=73&t=166
Page 1 of 1

Author:  DaveF [ Wed Aug 13, 2008 9:59 am ]
Post subject:  Memory from 0xe00 to 0x1900

Hello

Once the game has loaded from disk, could I use the memory at 0xe00 for my own purposes? I will not need to load anything else, so does anything stop me from using that precious RAM?

Author:  RichTW [ Wed Aug 13, 2008 10:37 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

DaveF wrote:
Hello

Once the game has loaded from disk, could I use the memory at 0xe00 for my own purposes? I will not need to load anything else, so does anything stop me from using that precious RAM?


Yeah, you can use all of that (select *TAPE before relocating it down though).

Even if you're using OS calls, all of these should be safe too:

zero-page &00..&9F, &B0..&CF
stack &100..&1A0ish (as long as you put LDX#&FF:TXS at the start of your code, and don't use too much stack)
&380..&3DF
&400..&7FF
&880..&8BF
&900..&CFF (as long as you don't have user-defined chars, VDU 23 stylee)
&D00..&DFF (though use with care - if you use this area, it's best to reset the vector table to the OS defaults in your initialisation).

Also best to put an RTI instruction at &D00 so any odd NMIs which arrive will behave themselves.

Whaddya know - loadsa memory!

Author:  RichTW [ Wed Aug 13, 2008 10:44 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

oh, that code for resetting the vectors is something like this by the way
Code:
SEI
LDX &FFB6
LDA &FFB7:STA resetvecs+1
LDA &FFB8:STA resetvecs+2
.resetvecs
LDA &FFFF,X
STA &200,X
DEX
BPL resetvecs
CLI


edited to change BNE to BPL...

Author:  DaveF [ Wed Aug 13, 2008 11:10 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

RichTW wrote:
Yeah, you can use all of that (select *TAPE before relocating it down though).


Aha, goodie. What does *TAPE do exactly?

Author:  RichTW [ Wed Aug 13, 2008 11:48 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

It just closes down the DFS, and activates the tape filing system. If DFS had any hooks on the vectors or anything, they'll be released, which means you can then safely use the old DFS workspace.

You can select *TAPE with

LDA #140:JSR &FFF4

Author:  DaveF [ Wed Aug 13, 2008 11:51 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

Good stuff, ta Rich

Author:  CMcDougall [ Thu Aug 14, 2008 10:24 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

RichTW wrote:
It just closes down the DFS, and activates the tape filing system. If DFS had any hooks on the vectors or anything, they'll be released, which means you can then safely use the old DFS workspace


is that the same with Rom FS, ie *ROM aswell ? :?

Author:  ParasS [ Thu Aug 14, 2008 10:28 am ]
Post subject:  Re: Memory from 0xe00 to 0x1900

CMcDougall wrote:
is that the same with Rom FS, ie *ROM aswell ? :?

Hooks get released whenever you switch FS... RFS and TAPE are good options because they are built into the OS and there will be few (if any) ROMs that try to do their own interception over them. I do know there is the odd ROM that layers its own functionality over DFS routines.

Of course, multiloading games become a little difficult without an active FS if you've taken over the whole memory map... unless you're controlling the hardware directly.

Author:  CMcDougall [ Thu Aug 14, 2008 12:54 pm ]
Post subject:  Re: Memory from 0xe00 to 0x1900

cheers ParasS :)

pity cant save to 'rom' /eprom :( , but if got (like myself) a beeb with watford sideways ROM/RAM board (128k ram -16k for SFS), u can have SiliconFS v0.92 (i think :roll: ) and it does let you load/save stuff with PAGE@E00 :D

bMaster owners had it tooooo easy :evil: , or electrons with ACP plus3/4s

CM ;)

Page 1 of 1 All times are UTC [ DST ]
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group
http://www.phpbb.com/