568 lines
13 KiB
NASM
568 lines
13 KiB
NASM
**************************************************************
|
||
*
|
||
* Software: ?
|
||
* Initiated: ?
|
||
*
|
||
* Modified: Shawn Liptak, 8/?/91 -Clean up
|
||
*
|
||
* COPYRIGHT (C) 1991 WILLIAMS ELECTRONICS GAMES, INC.
|
||
*
|
||
*.Last mod - 9/6/91 13:28
|
||
**************************************************************
|
||
.FILE 'MAIN.ASM'
|
||
.TITLE 'INITIALIZATION AND INTERRUPTS'
|
||
.WIDTH 132
|
||
.OPTION B,D,L,T
|
||
.MNOLIST
|
||
|
||
|
||
.INCLUDE "MPROC.EQU" ;MPROC EQUATES
|
||
.INCLUDE "DISP.EQU" ;DISPLAY PROCESSOR EQUATES
|
||
.INCLUDE "\VIDEO\SYS\GSP.INC" ;GSP ASSEMBLER EQUATES
|
||
.INCLUDE "\VIDEO\SYS\SYS.INC" ;ZUNIT SYSTEM EQUATES
|
||
.INCLUDE "\VIDEO\SYS\MACROS.HDR" ;MACROS, YEAH!
|
||
.INCLUDE "GAME.EQU"
|
||
.INCLUDE "AUDIT.EQU"
|
||
|
||
*UTILITY SUBROUTINE EQUATES
|
||
.GLOBAL MYOINIT,SETPPROC,WDOGDIS,WDISTAB,INTIO
|
||
*PAL EQUATES
|
||
.GLOBL DELPAL,GETFPAL,INITBPAL,FINDPAL,INITPAL,PALTRANS,AUTOEON
|
||
*RAM EQUATES
|
||
.GLOBL INTSYNC0,INTSYNC1,NOAUTOE,SYSCOPY
|
||
.GLOBAL IRQSKYE,WDOGRAM
|
||
.GLOBAL GAMSTATE,GAMERASE
|
||
|
||
;EXTERNAL
|
||
.REF INIT_PROG,COLRTEMP,SWSTACK,SWTEMP1,SWTEMP2,PLYRPRCS
|
||
.REF DRAW_SCORE,SCORE_FLAG
|
||
.REF SWSTMN,C_FRAC,C_FLAGS,COINCNTR
|
||
|
||
.DEF INIT_ALL,CLSCRACH
|
||
|
||
;UNINITIALIZED RAM DEFINITIONS
|
||
|
||
.BSS EOSCRN,8,1
|
||
.BSS IRQLED,16
|
||
.BSS WDOGRAM,32 ;INITIALIZED LONG FOR WATCH DOG DETECT
|
||
|
||
.TEXT
|
||
|
||
INIT_ALL
|
||
CALLA INIT_SYS ;GENERAL SYSTEM INITIALIZATION
|
||
CALLA PINIT ;INIT PROCESS LIST
|
||
CALLA MYOINIT ;INITIALIZE THE OBJECT LIST
|
||
CALLA AUTOEON
|
||
EINT ;ENABLE INTERRUPTS AND WE'RE OFF
|
||
|
||
MOVK 1,A0
|
||
MOVE A0,@DISPLAYON
|
||
|
||
RETS ;RETURN TO FIRST GAME FILE
|
||
|
||
**************************************************************************
|
||
* *
|
||
* SYSTEM ROUTINES AND PROCESSES *
|
||
* *
|
||
**************************************************************************
|
||
|
||
;SCAN FOR PROCESS ACTIVATION ONLY
|
||
swscan
|
||
|
||
; MOVE @SWITCH,A0,L
|
||
MOVE @COINS,A0
|
||
MOVE @SWTEMP1,A1 ;PREVIOUS STATE T=N-1
|
||
MOVE @SWTEMP2,A2 ;PREVIOUS PREVIOUS T=N-2
|
||
MOVE A1,@SWTEMP2 ;NEW PREVIOUS PREVIOUS
|
||
MOVE A0,@SWTEMP1 ;NEW PREVIOUS
|
||
AND A1,A2
|
||
ANDN A0,A2 ;LOOK FOR 110
|
||
sll 16,a2
|
||
JREQ SWSCX ;NO SWITCHES
|
||
MOVE @SWSTACK,A3,L ;SWITCH ACTIVATION STACK
|
||
SWSCLP ;FIND BIT SET
|
||
CMPI SWSTMN,A3 ;SWITCH STACK OVERFLOW?
|
||
JREQ SWSCX1 ;YEP, QUIT
|
||
LMO A2,A0 ;1'S COMP LEFTMOST BIT
|
||
RL A0,A2 ;GET RID OF BIT
|
||
SLL 1,A2
|
||
MOVK 31,A1 ;CALC TRUE BIT #
|
||
SUB A0,A1
|
||
MOVE A1,-*A3 ;PUSH SWITCH NUMBER ON STACK (0-31)
|
||
RL A1,A2 ;RESTORE SWITCH WORD WITHOUT BIT
|
||
JRNE SWSCLP
|
||
SWSCX1 MOVE A3,@SWSTACK,L ;RESTORE SWITCH STACK
|
||
SWSCX RETS
|
||
|
||
********************************
|
||
|
||
INIT_SYS
|
||
CALLA PINIT
|
||
MOVI INAMODE,A0
|
||
MOVE A0,@GAMSTATE,W
|
||
MOVI WDOGNUM,A0
|
||
MOVE A0,@WDOGRAM,L ;MARK SYSTEM AS INITIALIZED
|
||
CALLA SNDRES ;SOUND BOARD INIT (MAKES SOUND!)
|
||
CALLR INITIO ;INITIALIZE THE I/O REGS
|
||
;SET UP TI PIXEL PROCESSING REGS
|
||
CALLA SETPPROC ;ONLY NEEDED FOR GSP ROUTINES?
|
||
|
||
CLR A0
|
||
MOVE A0,@DMACTRL ;OFF DMA
|
||
MOVE A0,@CMAPSEL ;CLEAR COLOR MAP SELECT
|
||
|
||
MOVI 81261A8CH,A0 ;INITIALIZE RANDOM SEED
|
||
MOVE A0,@RAND,L
|
||
MOVI DIE+X2E,A0
|
||
MOVE A0,@INTENB ;ENABLE DISPLAY INTERRUPTS
|
||
MOVI SYSCINIT,A0 ;INITIALIZE SYSTEM CONTROL REGISTER
|
||
MOVE A0,@SYSCTRL,W
|
||
MOVE A0,@SYSCOPY,W ;KEEP A COPY IN RAM
|
||
RETS
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* WDOGDIS - WATCH DOG DISABLE *
|
||
* NOTE: CALL WHILE INTERRUPTS ARE TURNED OFF. *
|
||
* *
|
||
**************************************************************************
|
||
WDOGDIS
|
||
MMTM SP,A0,A1,A2,A3
|
||
MOVI WDISTAB,A1
|
||
MOVK 1,A3
|
||
MOVE @SYSCOPY,A2,W
|
||
MOVE *A1+,A0,W
|
||
WDOGSL
|
||
OR A2,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
XOR A3,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
MOVE *A1+,A0,W
|
||
JRNN WDOGSL
|
||
MOVE A2,@SYSCTRL,W
|
||
MMFM SP,A0,A1,A2,A3
|
||
RETS
|
||
*
|
||
*WATCH DOG DISABLE TABLE
|
||
WDISTAB
|
||
.WORD 0
|
||
.WORD 0
|
||
.WORD 0
|
||
.WORD 0
|
||
|
||
.WORD 2
|
||
.WORD 0
|
||
.WORD 2
|
||
.WORD 0
|
||
.WORD 0FFFFH
|
||
|
||
**************************************************************************
|
||
* *
|
||
* CLSCRACH - CLEAR SCRATCH PAD
|
||
* NOTE: DESTROYS A0,A1,A2,A3 *
|
||
* *
|
||
**************************************************************************
|
||
CLSCRACH
|
||
PULL A3
|
||
CLR A0
|
||
MOVI SCRATCH,A1,L
|
||
MOVI >8000,A2,L ;CLEAR TWO AT A TIME
|
||
SCTLP MOVE A0,*A1+,L
|
||
DSJS A2,SCTLP
|
||
JUMP A3
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIRQ - DISPLAY IRQ, USES THE VALUE STORE @DPYINT TO DETERMINE *
|
||
* WHICH INTERRUPT THIS IS, HALF OR FULL SCREEN. @DPYINT IS *
|
||
* COMPARED AGAINST THE CONSTANT HSINT. *
|
||
* *
|
||
**************************************************************************
|
||
DIRQ
|
||
MMTM SP,B0,B1,B2,B3,B4,B5
|
||
MMTM SP,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14
|
||
SETF 16,1,0 ;WORD SIGN EXTEND
|
||
|
||
MOVE @INTPEND,A1 ;CLEAR STUPID INTERRUPT PENDING
|
||
ANDNI DIE,A1
|
||
MOVE A1,@INTPEND
|
||
|
||
MOVE @INTENB,A1 ;DISABLE DISPLAY INTERRUPT
|
||
ANDNI DIE,A1
|
||
MOVE A1,@INTENB
|
||
EINT ;ENABLE OTHER INTERRUPTS
|
||
|
||
MOVE @DPYINT,A2 ;CHECK WHAT SCREEN HALF
|
||
CMPI HSINT,A2
|
||
JRNE DIRQ1 ;BR = END OF SCREEN INTERRUPT
|
||
**************************************************************************
|
||
* *
|
||
* DIRQ0 - HALF SCREEN INTERRUPT. TOP HALF OBJECTS ARE UPDATED, *
|
||
* OBJECT VELOCITIES ARE ADDED, SWITCHES FOR PLAYER MOVEMENT ARE *
|
||
* SCANNED, AND PLAYERS ARE UPDATED. *
|
||
* *
|
||
**************************************************************************
|
||
DIRQ0
|
||
MOVI EOSINT,A1 ;SET FOR EOSCRN INTERRUPT
|
||
MOVE A1,@DPYINT
|
||
|
||
MOVE @TIMER,A1 ;HIT PROCESS TIMER
|
||
INC A1
|
||
MOVE A1,@TIMER
|
||
|
||
MOVE @INTSYNC0,A0
|
||
INC A0
|
||
MOVE A0,@INTSYNC0 ;SYNC AT HALF SCREEN
|
||
|
||
CALLA DISPQT
|
||
callr swscan ;Scan misc switches for processes
|
||
|
||
MOVE @PLYRPRCS,A0,L ;Count down players delay detection
|
||
JRZ PL2
|
||
MOVE *A0(DELYDET),A1
|
||
JRZ PL2
|
||
DEC A1
|
||
MOVE A1,*A0(DELYDET)
|
||
|
||
PL2 MOVE @PLYRPRCS+32,A0,L
|
||
JRZ PL3
|
||
MOVE *A0(DELYDET),A1
|
||
JRZ PL3
|
||
DEC A1
|
||
MOVE A1,*A0(DELYDET)
|
||
|
||
PL3 MOVE @SCORE_FLAG,A0
|
||
JRZ NOSCORE
|
||
CALLA DRAW_SCORE ;DRAW WHOLE AREA
|
||
|
||
NOSCORE CALLA DISPLAY ;GOT TO MAKE THE DONUTS
|
||
JRUC DIRQX
|
||
|
||
**************************************************************************
|
||
* *
|
||
* DIRQ1 - END OF SCREEN INTERRUPT ROUTINE. BOTTOM HALF OF SCREEN UPDATED *
|
||
* COLOR RAM IS CYCLED, AND SWITCHES ARE SCANNED. *
|
||
* *
|
||
**************************************************************************
|
||
DIRQ1
|
||
move @SYSCOPY,a0
|
||
andni AUTOERAS,a0 ;Set AE on (0)
|
||
|
||
move @GAMERASE,a1
|
||
jrz dirq10 ;AUTO-ERASE disabled?
|
||
move @NOAUTOE,a1
|
||
jrz dirq12
|
||
dirq10 addk AUTOERAS,a0 ;Disable AUTO ERASE
|
||
dirq12 move a0,@SYSCOPY ;Store new value
|
||
move a0,@SYSCTRL
|
||
|
||
MOVE @IRQSKYE,@ERASELOC ;MOVE IN THE CORRECT COLOR
|
||
MOVI HSINT,A0
|
||
MOVE A0,@DPYINT ;RESET FOR HALF SCREEN INTERRUPT
|
||
MOVE @DPYCTL,A0 ;SHIFT REGISTER READ TO RESTART DMA
|
||
ORI SRT,A0
|
||
MOVE A0,@DPYCTL ;ENABLE SHIFT REG TRANSFER TO STOP DMA HALT
|
||
*** CLR A1
|
||
MOVI 400*>1000,A1
|
||
PIXT *A1,A2
|
||
ANDNI SRT,A0
|
||
MOVE A0,@DPYCTL
|
||
CALLA DISPH ;CALL END OF SCREEN DISPLAY ROUTINE
|
||
|
||
;UPDATE CYCLING COLOR RAM
|
||
MOVI COLRTEMP,A0 ;GET NEW COLORS
|
||
MOVI CYCOLORS,A1 ;GET ADDRESS OF CYCLE COLORS
|
||
; MOVE *A0+,*A1+,W ;GET THE ODD MAN
|
||
; MOVK 1,A6 ;COLOR COUNT/2 (FINAL TWO COLORS IN PAL 0)
|
||
;WILL CYCLE
|
||
MOVE *A0+,*A1+,L
|
||
; DSJS A6,COLORUP
|
||
|
||
CALLA PALTRANS ;XFER NEW PALETTES IF NECESSARY
|
||
|
||
MOVE @INTSYNC1,A0
|
||
INC A0
|
||
MOVE A0,@INTSYNC1 ;SYNC UP AT END OF SCREEN
|
||
callr swscan ;Scan misc switches
|
||
|
||
dint
|
||
MOVE @INTENB,A0 ;ENABLE DISPLAY INTERRUPT
|
||
ORI DIE,A0
|
||
MOVE A0,@INTENB
|
||
|
||
|
||
.IF DEBUG
|
||
MOVE @TIMER,A0
|
||
CMPI 5AH,A0
|
||
JRLT NOLOK
|
||
LOCKUP
|
||
EINT
|
||
NOLOK
|
||
.ENDIF
|
||
|
||
|
||
MOVE @IRQLED,A0
|
||
INC A0
|
||
SLL 29,A0
|
||
SRL 29,A0
|
||
MOVE A0,@IRQLED
|
||
JRNE DIRQX
|
||
*
|
||
*DO EVERYTHING FROM HERE TO DIRQX EVERY 8 TICKS
|
||
*
|
||
.IF DEBUG
|
||
.ELSE
|
||
MOVE @TIMER,A0
|
||
CMPI 200,A0
|
||
JRLO SKIP_INIT
|
||
.REF AUD1
|
||
MOVI AUDHANG,A0
|
||
CALLA AUD1
|
||
JAUC INIT_PROG ;REST ON LOCKUP
|
||
SKIP_INIT
|
||
.ENDIF
|
||
MOVE @C_FRAC,A0 ;COUNT DOWN COIN FRACTION TIMER
|
||
JRZ C_TIM0 ;NOTHING THERE
|
||
SLL 24,A0
|
||
SRL 24,A0 ;THIS IS 30 SECONDS.....IF LARGER BRING DOWN!
|
||
DEC A0
|
||
MOVE A0,@C_FRAC
|
||
|
||
*COIN TIMERS
|
||
C_TIM0
|
||
MOVE @C_FLAGS,A0,L
|
||
JRZ C_CNTR
|
||
MOVI C_FLAGS+24,A2
|
||
MOVK 4,A4
|
||
CTIMLP
|
||
MOVE A0,A1
|
||
SRL 24,A1
|
||
JRZ C_TIM1
|
||
DEC A1
|
||
MOVB A0,*A2
|
||
C_TIM1
|
||
SUBK 8,A2
|
||
SLL 8,A0
|
||
DSJS A4,CTIMLP
|
||
|
||
*COIN COUNTERS
|
||
C_CNTR
|
||
MOVE @COINCNTR,A0,L ;COUNTERS, TIMERS ACTIVE????
|
||
JREQ L_DOG ;NO
|
||
|
||
MOVK 2,A4 ;DO BOTH COUNTERS
|
||
MOVI COINCNTR,A5
|
||
CCNTR0L
|
||
MOVB *A5,A1 ;MORE COUNTS FOR COUNTER ?
|
||
JREQ C_CNTR0 ;NO
|
||
MOVB *A5(16),A2 ;PREVIOUS PULSE TIME OUT?
|
||
JRNE C_CNTR0 ;NO
|
||
MOVK 2,A2
|
||
MOVB A2,*A5(16) ;START NEW PULSE
|
||
DEC A1 ;DECREMENT COUNTS
|
||
MOVB A1,*A5
|
||
C_CNTR0
|
||
ADDK 8,A5
|
||
DSJS A4,CCNTR0L
|
||
|
||
CLR A2 ;COUNTER ON MASK
|
||
MOVI >100,A3
|
||
MOVK 2,A4
|
||
C_CNTR1L
|
||
MOVB *A5,A0 ;COUNTER TIMER ACTIVE?
|
||
JREQ C_CNTR1 ;NO
|
||
DEC A0 ;YES, DEC IT AND STORE
|
||
MOVB A0,*A5
|
||
JREQ C_CNTR1 ;DONE
|
||
ADD A3,A2 ;TURN COUNTER SOLENOID ON
|
||
C_CNTR1
|
||
SLL 1,A3
|
||
ADDK 8,A5
|
||
DSJS A4,C_CNTR1L
|
||
|
||
.IF YUNIT
|
||
CLR A1
|
||
MOVE A1,@SECCHIP,W
|
||
MOVE A2,@SECCHIP,W ;REFRESH COUNTERS IN HARDWARE
|
||
.ENDIF
|
||
L_DOG
|
||
MOVI WDOGBONE,A1 ;THROW ROVER A BONE
|
||
MOVK 1,A3
|
||
MOVE @SYSCOPY,A2,W
|
||
MOVE *A1+,A0,W
|
||
ROVERL
|
||
OR A2,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
XOR A3,A0
|
||
MOVE A0,@SYSCTRL,W
|
||
MOVE *A1+,A0,W
|
||
JRNN ROVERL
|
||
MOVE A2,@SYSCTRL,W
|
||
|
||
DIRQX MMFM SP,A0,A1,A2,A3,A4,A5,A6,A7,A8,A9,A10,A11,A12,A13,A14
|
||
MMFM SP,B0,B1,B2,B3,B4,B5
|
||
RETI
|
||
|
||
|
||
*WATCHDOG FEED TABLE
|
||
WDOGBONE
|
||
.WORD 0
|
||
.WORD 2
|
||
.WORD 0
|
||
.WORD 2
|
||
.WORD 2
|
||
.WORD 0FFFFH
|
||
|
||
**************************************************************************
|
||
* *
|
||
* INITIO - INITIALIZE THE GSP I/O REGISTERS *
|
||
* *
|
||
**************************************************************************
|
||
INITIO
|
||
MMTM SP,B0,B2,B6,B10
|
||
MOVI INTIO,B6
|
||
EXGPC B6
|
||
MMFM SP,B0,B2,B6,B10
|
||
RETS
|
||
|
||
*INITIALIZE I/O
|
||
*USE REGISTER CALL FOR TEST MODE NON-RAM USE
|
||
INTIO
|
||
MOVI HESYNC,B2,L
|
||
MOVI INITDATA,B0,L
|
||
MOVI (IDATAEND-INITDATA)/16,B10
|
||
INITIOS MOVE *B0+,*B2+
|
||
DSJS B10,INITIOS
|
||
EXGPC B6
|
||
|
||
|
||
**************************************************************************
|
||
* *
|
||
* BADTRAP - COME HERE WHEN A TRAP IS HIT THAT IS NOT DEFINED AND LOG IT. *
|
||
* *
|
||
**************************************************************************
|
||
BADTRAP1 nop
|
||
BADTRAP2 nop
|
||
BADTRAP3 nop
|
||
BADTRAP4 nop
|
||
BADTRAP5 nop
|
||
BADTRAP6 nop
|
||
BADTRAP7 nop
|
||
BADTRAP8 nop
|
||
BADTRAP9 nop
|
||
BADTRAP10 nop
|
||
BADTRAP11 nop
|
||
BADTRAP12 nop
|
||
BADTRAP13 nop
|
||
BADTRAP14 nop
|
||
BADTRAP15 nop
|
||
BADTRAP16 nop
|
||
BADTRAP17 nop
|
||
BADTRAP18 nop
|
||
BADTRAP19 nop
|
||
BADTRAP20 nop
|
||
BADTRAP21 nop
|
||
BADTRAP22 nop
|
||
BADTRAP23 nop
|
||
BADTRAP24 nop
|
||
BADTRAP25 nop
|
||
BADTRAP26 nop
|
||
BADTRAP27 nop
|
||
BADTRAP28
|
||
JRUC BADTRAP
|
||
BADTRAP29
|
||
.IF DEBUG
|
||
LOCKUP ;THIS WILL BAG WRITES INTO ROM!
|
||
EINT
|
||
.ENDIF
|
||
|
||
BADTRAP
|
||
.IF DEBUG
|
||
LOCKUP
|
||
EINT
|
||
.ELSE
|
||
CALLERR 9,0
|
||
PUSH A0
|
||
movi AUDTRAP,a0 ;BAD TRAPS
|
||
calla AUD1
|
||
PULL A0
|
||
.ENDIF
|
||
|
||
RETI
|
||
|
||
|
||
* VIDEO CONTROL REGISTERS INITIAL VALUES
|
||
INITDATA:
|
||
.WORD 015H ;>C0000000 -- HESYNC
|
||
.WORD 032H ;>C0000010 -- HEBLNK ;WAS A 2DH!! 7/26/91
|
||
.WORD 0FAH ;>C0000020 -- HSBLNK ;F3
|
||
.WORD 0FCH ;>C0000030 -- HTOTAL
|
||
.WORD 03H ;>C0000040 -- VESYNC
|
||
.WORD 014H ;>C0000050 -- VEBLNK;1B
|
||
.WORD 0114H ;>C0000060 -- VSBLNK;11B
|
||
.WORD 0120H ;>C0000070 -- VTOTAL
|
||
.WORD 0F010H ;>C0000080 -- DPYCTL
|
||
.WORD 0FFFCH ;>C0000090 -- DPYSTRT
|
||
.WORD HSINT ;>C00000A0 -- DPYINT * INITIALLY HALF SCREEN
|
||
; .WORD INI_CTRL ;>C00000B0 -- CONTROL
|
||
; .WORD >20 ;>C00000B0 -- CONTROL
|
||
.WORD >28 ;>C00000B0 -- CONTROL
|
||
.WORD 00H ;>C00000C0 -- HSTDATA
|
||
.WORD 00H ;>C00000D0 -- HSTADRL
|
||
.WORD 00H ;>C00000E0 -- HSTADRH
|
||
.WORD 00H ;>C00000F0 -- HSTCTLL
|
||
.WORD 00H ;>C0000100 -- HSTCTLH
|
||
.WORD 00H ;>C0000110 -- INTENBL
|
||
.WORD 00H ;>C0000120 -- INTPEND
|
||
.WORD 00H ;>C0000130 -- CONVSP
|
||
.WORD 00H ;>C0000140 -- CONVDP
|
||
.WORD PXSIZE ;>C0000150 -- PSIZE
|
||
.WORD 00H ;>C0000160 -- PMASK
|
||
.WORD 00H ;>C0000170 -- RESERVED
|
||
.WORD 00H ;>C0000180 -- RESERVED
|
||
.WORD 00H ;>C0000190 -- RESERVED
|
||
.WORD 00H ;>C00001A0 -- RESERVED
|
||
.WORD 00H ;>C00001B0 -- DPYTAP
|
||
IDATAEND:
|
||
|
||
*
|
||
*INITIALIZE ALL 32 TRAP VECTORS
|
||
*
|
||
.SECT "VECTORS"
|
||
|
||
.LONG BADTRAP1 ;TRAP 31
|
||
.LONG BADTRAP2 ;TRAP 30 ILLOP --- ILLEGAL OPCODE
|
||
.LONG BADTRAP3 ;TRAP 29
|
||
.LONG BADTRAP4 ;TRAP 28
|
||
.LONG BADTRAP5 ;TRAP 27
|
||
.LONG BADTRAP6 ;TRAP 26
|
||
.LONG BADTRAP7 ;TRAP 25
|
||
.LONG BADTRAP8 ;TRAP 24
|
||
.LONG BADTRAP9 ;TRAP 23
|
||
.LONG BADTRAP10 ;TRAP 22
|
||
.LONG BADTRAP11 ;TRAP 21
|
||
.LONG BADTRAP12 ;TRAP 20
|
||
.LONG BADTRAP13 ;TRAP 19
|
||
.LONG BADTRAP14 ;TRAP 18
|
||
.LONG BADTRAP15 ;TRAP 17
|
||
.LONG BADTRAP16 ;TRAP 16
|
||
.LONG BADTRAP17 ;TRAP 15
|
||
.LONG BADTRAP18 ;TRAP 14
|
||
.LONG BADTRAP19 ;TRAP 13
|
||
.LONG BADTRAP20 ;TRAP 12
|
||
.LONG BADTRAP21 ;TRAP 11 WV --- WINDOW VIOLATION
|
||
.LONG DIRQ ;TRAP 10 DI --- DISPLAY INTERRUPT
|
||
.LONG BADTRAP22 ;TRAP 9 HI --- HOST INTERRUPT
|
||
.LONG BADTRAP23 ;TRAP 8 NMI -- NONMASKABLE INTERRUPT
|
||
.LONG BADTRAP24 ;TRAP 7
|
||
.LONG BADTRAP25 ;TRAP 6
|
||
.LONG BADTRAP26 ;TRAP 5
|
||
.LONG BADTRAP27 ;TRAP 4
|
||
.LONG BADTRAP28 ;TRAP 3
|
||
.LONG BADTRAP29 ;TRAP 2 INT2 --- EXTERNAL INTERRUPT 2
|
||
.LONG DMAINT ;TRAP 1 INT1 --- EXTERNAL INTERRUPT 1
|
||
.LONG INIT_PROG ;TRAP 0 RESET
|
||
|
||
.END
|
||
|