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.eduschumann@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