•  Back 
  •  BIOS 
  •  Index 
  •  Tree View 
  •  Cross references 
  •  Help page 
  •  Show info about hypertext 
  •  View a new file 
Topic       : TOS - The Operating System
Author      : 
Version     : tos.hyp (December 19, 2008)
Subject     : Programmieren/Atari
Nodes       : 3010
Index Size  : 93790
HCP-Version : 5
Compiled on : Atari
@charset    : atarist
@lang       : 
@default    : Title
@help       : 
@options    : +g -i -s +x +zz -t4
@width      : 70
View Ref-File3.5  The System Vectors                                            TOS

As the system variables and vectors represent the lowest level of the 
operating system, application programs should access these only when 
absolutely necessary. Explicitly:

   . Do not alter any system variables that may not be altered.
   . Do not use any system variables if a function of the operating 
     system could be called instead (Example: Mfpint).

The following list contains all system vectors of TOS ignore:

 vector     Description

 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.

 LONG $028  Line-A-Vector
            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).

 LONG $030  Reserved

     :      Exception vectors 12-23

 LONG $05C  Reserved

 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
            Unused

 LONG $068  Auto-vector Interrupt, Level 2
            Points to the handler for horizontal blanking.

 LONG $06c  Auto-vector Interrupt, Level 3
            Unused

 LONG $070  Auto-Vector Interrupt, Level 4
            Points to the handler for vertical blanking.

 LONG $074  Auto-Vector Interrupt, Level 5
            Unused

 LONG $078  AAuto-Vector Interrupt, Level 6
            Points to the handler for MFP interrupts.

 LONG $07c  Auto-Vector Interrupt, Level 7
            Unused

 LONG $080  TRAP#0
            Exception vector 32
            Vector for the 'TRAP #0' instruction. As it is not used by 
            the operating system, it throws bomblets.

 LONG $084  TRAP#1
            Exception vector 33
            Vector for the 'TRAP #1' instruction. Points to the 
            Dispatcher for the GEMDOS functions.

 LONG $088  TRAP#2
            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:

             LONG $08c  TRAP#3
                        Exception vector 35
                        Is used only by Omega-Color-CAD, otherise 
                        without function.

             LONG $090  TRAP#4
                        Exception-Vector 36
                        The MS-DOS Emulator SuperCharger use the Trap 
                        #4 for his Toolbox.

             LONG $094  TRAP#5
                        Exception vector 37
                        Is used by Wind-XES. It is a modular 
                        accessory/control panel that lets you load in 
                        .WNX ("winks") applications which run 
                        concurrently under its environment.

             LONG $0a0  TRAP#8
                        Exception vector 40
                        Cubase MROS from Steinberg use this trap.

             LONG $0a8  TRAP#10
                        Exception vector 42
                        Is used by TapeBIOS. Serves for controlling a 
                        BandDrive at the ASCI-bus of the Atari.

 LONG $0b4  TRAP#13
            Exception vector 45: Vector for the 'TRAP #13' 
            instruction. Points to the Dispatcher for the BIOS 
            functions.

 LONG $0b8  TRAP#14
            Exception vector 46: Vector for the 'TRAP #14' 
            instruction. Points to the Dispatcher for the XBIOS 
            functions.

 LONG $0bc  TRAP#15
            Not used by the operating system. NVDI and its print 
            monitor make use of this vector.

 LONG $0c0  reserves

     :      Exception vectors 48-63.

 LONG $0fc  Reserved

 LONG $100  BUSY Interrupt vector
            ST-MFP interrupt #0. Is triggered by the parallel port. 
            Normally not used.

 LONG $104  DCD-Interrupt
            ST-MFP interrupt #1. Is triggered by the serial port 
            (Carrier detect). Normally unused.

 LONG $108  CTS-Interrupt
            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.

 LONG $118  IKBD/MIDI
            ST-MFP interrupt #6. Points to the handler for IKBD and 
            MIDI interrupts.

 LONG $11c  FDC/ACSI
            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.

 LONG $134  Unused
            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  Monochrom Monitor Detect
            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

See also:
Reset vector   System variables   Exceptions under MagiC Mac