As the system variables and vectors represent the lowest level of the operating system, application programs should access these only when absolutely necessary. Explicitly:
The following list contains all system vectors of TOS ignore:
|LONG $000||Reset: SSP
This and the following memory cells contain a mirror image of the first eight bytes of the ROM. At a reset the value stored here is loaded into the supervisor stack pointer (though this is not meaningful; the 'real' stack is only installed later by the BIOS.
|LONG $004||Reset: PC
At a reset the value found here is loaded into the program counter (PC). So one finds here the address that is jumped to on a reset.
|LONG $008||Bus Error vector
Exception vector 2: Two bomblets
Bus errors arise when one attempts to access regions of memory to which access is not permitted. In supervisor mode this really can be only nonexistent memory areas. In user mode this can also happen in attempting to access hardware registers or regions below $800.
Normally this vector points to the TOS routine for the display of bombs (in this case just two).
|LONG $00c||Address Error vector
Exception vector 3: Three bomblets
The 68000 and 68010 can access odd addresses only byte by byte. This exception is triggered if one nevertheless attempts a word or longword access (program counters or stack pointers too may contain no odd addresses).
|LONG $010||Illegal Instruction Error vector
Exception vector 4: Four bomblets
An attempt was made to perform an illegal instruction. This vector is altered by many debuggers for using for break-points.
|LONG $014||Division by Zero Error vector
Exception vector 5: No bomblets
Division was by 0 during a DIV command. Normally this vector points to an RTE instruction; that's why there are no bomblets.
|LONG $018||CHK Instruction Exception vector
Exception vector 6: An exception was created by a CHK instruction.
|LONG $01c||TRAPV Instruction Exception vector
Exception vector 7: An exception was created by a TRAPV instruction.
|LONG $020||Privilege Violation Exception vector
Exception vector 8:
An attempt was made to execute an instruction that is permitted only in supervisor mode. On an Atari TT, the BIOS ignore tests whether the corresponding instruction was a 'move sr,...': unlike on 68000s, this instruction is permitted only in supervisor mode on the TT. If this is the case, the BIOS ignore will substitute the instruction 'move ccr,...' and attempt to keep the program running.
|LONG $024||Trace Exception vector
Exception vector 9: If the trace bit is set in the status register, the address specified here is jumped to after every instruction.
Exception vector 10: An attempt was made to execute an instruction that contained the value '$A' in the top four bits. At present this vector is used for the co-called Line-A routines.
|LONG $02c||Line-F Exception vector
Exception vector 11: An attempt was made to execute an instruction that contained the value '$F' in the top four bits. It is used up to TOS 1.04 by GEM, and is intended actually for the programmming of a floating point unit (FPU).
|:||Exception vectors 12-23|
|LONG $060||Spurious Interrupt vector
Exception vector 24: Occurs if an interrupt has been triggered but the cause of it could not be ascertained.
|LONG $064||Auto-vector Interrupt, Level 1
|LONG $068||Auto-vector Interrupt, Level 2
Points to the handler for horizontal blanking.
|LONG $06c||Auto-vector Interrupt, Level 3
|LONG $070||Auto-Vector Interrupt, Level 4
Points to the handler for vertical blanking.
|LONG $074||Auto-Vector Interrupt, Level 5
|LONG $078||Auto-Vector Interrupt, Level 6
Points to the handler for MFP interrupts.
|LONG $07c||Auto-Vector Interrupt, Level 7
Exception vector 32
Vector for the 'TRAP #0' instruction. As it is not used by the operating system, it throws bomblets.
Exception vector 33
Vector for the 'TRAP #1' instruction. Points to the Dispatcher for the GEMDOS functions.
Exception vector 34
Vector for the 'TRAP #2 instruction'. Is used by the AES and VDI.
|LONG $08c - LONG $0b0||TRAP#3 - TRAP#12
xception vectors 35-44. Throws a corresponding number of bomblets, as they are not used currently by the operating system. However, there are external extensions that use these traps:
Exception vector 45: Vector for the 'TRAP #13' instruction. Points to the Dispatcher for the BIOS functions.
Exception vector 46: Vector for the 'TRAP #14' instruction. Points to the Dispatcher for the XBIOS functions.
Not used by the operating system. NVDI and its print monitor make use of this vector.
|:||Exception vectors 48-63.|
|LONG $100||BUSY Interrupt vector
ST-MFP interrupt #0. Is triggered by the parallel port. Normally not used.
ST-MFP interrupt #1. Is triggered by the serial port (Carrier detect). Normally unused.
ST-MFP interrupt #2. Is triggered by the serial port (Clear to send). Normally unused.
|LONG $10c||GPU Done vector
ST-MFP interrupt #3. Can be used by the blitter (when present) to indicate termination of an operation. Normally unused.
|LONG $110||Baud-rate Generator
ST-MFP interrupt #4. Normally unused.
|LONG $114||200Hz System Clock
ST-MFP interrupt #5. Points to the system clock interrupt and may not be altered under any circumstances (required for timing loops in TOS.
ST-MFP interrupt #6. Points to the handler for IKBD and MIDI interrupts.
ST-MFP interrupt #7. Normally unallocated.
|LONG $120||Display Enable Signal
ST-MFP interrupt #8. Normally blocked.
|LONG $124||RS-232 Transmit Error interrupt
ST-MFP interrupt #9. Is triggered by transmission errors when sending data via the serial port.
|LONG $128||RS-232 Transmit Buffer Error interrupt
ST-MFP interrupt #10. Is triggered when the transmission of a single byte is completed and the transmit buffer is empty.
|LONG $12c||RS-232 Receive Error interrupt
ST-MFP interrupt #11. Occurs at receive errors.
|LONG $130||RS-232 Receive Buffer Full interrupt
ST-MFP interrupt #12. A complete character has been received by the serial port.
ST-MFP-Interrupt 13. Unused
|LONG $138||RS-232 Ring Indicator interrupt
ST-MFP interrupt #14. Is triggered when the serial port detects an incomming call (e.g. when using a modem). As this interrupt is so easy to trigger, debuggers like to use it as a break signal.
|LONG $13c||Monochrome Monitor Detect interrupt
ST-MFP-Interrupt 15. unused
|LONG $140||TT-MFP interrupts|
|:||16 interrupt vectors for the second MFP in the Atari-TT.|
|LONG $17c||TT-MFP interrupts|
|LONG $180||TT-SCC interrupts|
|:||Space for the interrupt vectors of the SCC module in the Atari-TT.|
|LONG $1bc||TT-SCC interrupts|
Reset vector System variables Exceptions under MagiC Mac