APPENDIX TWELVE 49152-52223 C000-CBFF Interrupt handlers Os ROM. In the 400/800, the block between 49152 and 53247 was unused; now the area holds many of the interrupt handlers (vectored here from page two). Some 400/800 software checks for certain values in these locations and won't run if the value is not found. Use the Translator disk in that case (with the 400/800 OS installed; the area between $C000 and $CEFF becomes user- accessible RAM). The area between 52069 ($CB65) and 52223 ($CBFF) is empty (all zeros). A lot of interrupts are set to jump to 49357 or 49358 ($C0CD or $C0CE). The former contains a PLA statement followed by an RTI. The net result is a simple return back into the program without any other activity taking place. Bytes 49152-49163 ($C000-$C00B) are used to identify the com- puter and the ROM in the $C000-$DFFF block: Byte Use 49152-3/C000-1 Checksum (LSB/MSB) of all the bytes in ROM except the checksum bytes themselves. 49154/C002 Revision date, stored in the form DDMMYY. This is DD, day, usually $10. 49155/C003 Revision date, month; usually $05. 49156/C004 Revision date, year; usually $83. 49157/C005 Reserved option byte; reads zero for the 1200, 800XL, and 130XE. 49158/C006 Part number in the form AANNNNNN; AA is an ASCII character and NNNNNN is a four-bit BCD digit. This is byte A1. 49159-62/C007-A Part number, bytes A2, N1-N6 (each byte has two N values of four bits each). 49163/C00B Revision number. My 800XL and 130XE say 2. 49164/C00C Interrupt handler initialization 49176/C018 NMI intitialization Interrupt handlers and other routines in the $C000 block: Entry Handler or Use 49196/C02C IRQ processor 49298/C092 BREAK key IRQ 49312/C0A0 Continue IRQ processing 49359/C0CF Table of IRQ types and offsets (16 bytes) 49378/C0E2 Immediate VBLANK NMI processing 49743/C24F Process countdown timer 1 expiration