[comp.sys.apple] Help: memory move

sl109001@silver.UUCP (02/15/87)

     I'm currently writing an assembly language program on my 
Apple //c, and have encountered a surprising bug that seems to 
contradict the documentation I have.
     At one point, my program BLOADs a binary file at location $4E00
in main memory and then moves it to auxillary memory at location $800
via the routine "MoveMem" (I forget the official name) at $C311 in ROM.
     The BLOAD works just fine, but the copy that's put into auxillary
memory somehow gets damaged.  Specifically, the region from about $D40
to $F80 is different from the corresponding range in the original
file.
     I can avoid this trouble by copying it instead to auxillary
location $1000.  It seems that everything from this address on up
is perfectly safe.  This is what I'm doing at the moment, so I can
get on with the rest of my otherwise enjoyable project.
     Nevertheless, the ProDos Technical Reference Manual says (or rather,
shows in a graph) that auxillary memory is unused from $800 on up
to $BF__.  Did I miss something though?  I have the Apple //c Technical
Reference Manual as well, and it doesn't say there should be any 
problem either.  Anyone have an idea?

     Thanks in advance,
                        "Phaedrus"
___________________________________________

"May the forces of evil become confused on the way to your house."
                              -- George Carlin
Colin Klipsch
Indiana University
sl109001@silver.bacs.indiana.edu

schumann@puff.UUCP (02/17/87)

I know of a few locations taht are reserved in the Apple //c in AUX ram.

Page 0, and page 1 (Aux stack), pages 4-7 (80 column use), and page 8
is used to buffer chars for port use.
Also pages $20-$3F are used for double hires page 1, and $40-$5F are used
for double hires page 2 (Very difficult to use).
Pages 8-$B are used for 80 column page 2, which is almost never used, but
this could be your problem.
I would suggest leaveng this memory (aux pages 8-$F) alone, or
try moving it to aux at the same address, and then using a program
in aux mem to move the program.

Chris Schumann				schumann@puff.wisc.edu