jetzer@studsys.mu.edu (jetzer) (04/26/88)
In article <8804200757.AA17542@crash.cts.com>, tmetro@pro-angmar.UUCP (Tom Metro) writes: > I read an article that explained how you could copy the ROM code at $D000 to > $F800 into the Bank Switched RAM on a //e. This then allowed you to modify > vectors that are at the top of the address space, such as RESET, IRQ and NMI. > I tried this on my //c. I was able to copy the ROM code, verify that I had > copied it, modify the code, and verify my modifications. The modification I > tried was to redirect the RESET vector, but it wouldn't work. I verified that > I had the Bank Switched RAM selected for read operations by looking at the > status of $C011 and $C012. The RESET still caused a normal reset and left the > //c with the ROMs selected and the RAM turned off. > Does anyone know if the hardware that controls the bank switching on a //c > gets reset with the RESET signal? > It must not on a //e for this to work... > Is the $D000-$FFFF bank switched RAM contained on the motherboard of the //e? > This article gave me the impression that it was located on a card, but maybe > that refers to an unenhanced //e. Have you actually done this on a //e? According to the "Reference Manual (for //e only)": [non-enhanced] "When you initiate a reset, hardware in the Apple IIe sets the memory- controlling soft switches to normal: main board RAM and ROM are enabled, . . . , the bank-switched memory is set up to read from ROM and write to RAM, using the second bank at $D000." Turning the page, a shaded box under the "Warm-start Procedure": "A program in bank-switched RAM cannot use the reset vector to regain control after a reset, because the reset routine enables ROM in teh bank-switched memory space. If you are using Integer BASIC, which is in the bank-sitched RAM, you are alos using DOS, and it is DOS that controls the reset vector and restarts BASIC." The "Apple //c Reference Manual" also says: "A program residing in bank-switched RAM cannot use the reset vector to regain control after a reset, because upon reset the hardware selects the ROM for reading in the bank-switched memory space." It seems unlikely that the original article was about a //e. Maybe a ][+ (I'm reasonably certain that this was possible on a ][+). Maybe all this information is overkill, but there seems to be a bit of confusion ... -- Mike Jetzer "Hack first, ask questions later."