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