[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Using all 128 K
The Aux memory is 64k of memory that directly overlaps the main memory
from one end to the other, $0000-$FFFF. The way it is used is to swap
blocks of memory in and out of the single CPU addressable memory space.
So you actually have blocks of main memory replaced with blocks of Aux
memory. When you manage the swappable memory yourself, you must be very
careful not drop out a block that is currently used by your program,
your next instruction or calling routine could easily 'disappear'. :)
There are many places where the direct overlap could be problematic as
the memory is fragmented in the Apple II. Zero page, Stack, Keyboard
Buffer, text screen, hires screen, and DOS area can become problematic
if swapped out at the wrong instant.
Since you need a large chunk of contiguous memory, use 'virtual memory'
on a disk, Ram disk, that is!
Use a ProDOS ability to read any block of data from anywhere in a file.
Put your 28K data block into a binary file on the /RAM volume. Then
just 'bload' the pieces to be manipulated and 'bsaved' back. This would
give you a chunk of 'contiguous memory' that you are after. Bonus: it
could allow the program to run in 64k, so long as the data fits on the
storage media.
Thankx,
Ed
Is using virtual ram in a ram drive redundant? No, but it sure is fast!
ludditetech@mac.com (Simon Williams) wrote:
> Ideally, I'd like to find a 28K chunk of continuos memory that I can BLOAD stuff into.
> By CATALOGing the /RAM I've determined that the 80 column 'stuff' takes up only 8 blocks, which should leave me with about 60K to play with... I also 'think' that the memory addresses should begin at FA00
I'm also assuming I'm wrong about this, so please correct me where
applicable.