360 lines
5.3 KiB
NASM
Executable File
360 lines
5.3 KiB
NASM
Executable File
.FILE "ERROR.ASM"
|
|
*----------------------------------------------------------------------------
|
|
*
|
|
*
|
|
*COPYRIGHT (C) 1994 BY TV GAMES, INC.
|
|
*ALL RIGHTS RESERVED
|
|
*
|
|
|
|
.include MACS.EQU
|
|
.include MPROC.EQU
|
|
.include OBJ.EQU
|
|
.include VUNIT.EQU
|
|
.include CMOS.EQU
|
|
.include SYSID.EQU
|
|
.include SYS.EQU
|
|
.include GLOBALS.EQU
|
|
.include SNDTAB.EQU
|
|
.include PALL.EQU
|
|
.include OBJECTS.EQU
|
|
.include TEXT.EQU
|
|
.include DIAG.EQU
|
|
.include ERROR.EQU
|
|
|
|
|
|
*STRUCT ERROR
|
|
ERR_PROC_ID .set 0
|
|
ERR_WAKE_ADDR .set 1
|
|
ERR_DP .set 2
|
|
ERR_SP .set 3
|
|
ERR_AR0 .set 4
|
|
ERR_AR1 .set 5
|
|
ERR_AR2 .set 6
|
|
ERR_AR3 .set 7 ;USING AS *+AR2(OID)
|
|
ERR_AR4 .set 8
|
|
ERR_AR5 .set 9 ;USING AS _MODE
|
|
ERR_AR6 .set 10 ;USING AS *+AR2(PID)
|
|
ERR_AR7 .set 11
|
|
ERR_AR4_OID .set 12
|
|
ERR_RACENUM .set 13
|
|
ERR_UNFINISHED_GAME .set 14
|
|
ERR_CLOSETRAK .set 15
|
|
*ENDSTRUCT
|
|
ERR_SIZE .set 16
|
|
|
|
MAX_LOGS .set 30
|
|
|
|
|
|
PSS_AR7 .set 0
|
|
PSS_AR6 .set 1
|
|
PSS_AR5 .set 2
|
|
PSS_AR4 .set 3
|
|
PSS_AR3 .set 4
|
|
PSS_AR2 .set 5
|
|
PSS_AR1 .set 6
|
|
PSS_AR0 .set 7
|
|
PSS_DP .set 8
|
|
PSS_SP .set 9
|
|
PSS_R0 .set 10
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
ERROR_LOG:
|
|
PUSH R1
|
|
PUSH R2
|
|
PUSH R3
|
|
PUSH R4
|
|
PUSH R0
|
|
|
|
PUSH R0
|
|
PUSH DP
|
|
PUSH AR0
|
|
PUSH AR1
|
|
PUSH AR2
|
|
PUSH AR3
|
|
PUSH AR4
|
|
PUSH AR5
|
|
PUSH AR6
|
|
PUSH AR7
|
|
|
|
LDI SP,AR3 ;SAVE FRAME POINTER!! (all regs saved)
|
|
|
|
SETDP
|
|
READAUD AUD_LOG_COUNT
|
|
INC R0
|
|
CMPI MAX_LOGS-1,R0
|
|
BGE ERROR_X
|
|
|
|
LDI R0,R2
|
|
SETAUD AUD_LOG_COUNT
|
|
DEC R0
|
|
MPYI ERR_SIZE*4,R0 ;ERR_SIZE * CMOS_WORD_SIZE
|
|
LDI R0,AR2
|
|
|
|
ADDI RACE_TABLE_SIZE*NUM_RACES+NUM_RACES,AR2
|
|
ADDI MAX_AUDITS*4,AR2
|
|
ADDI @CMOSI,AR2
|
|
|
|
LDI *-AR3(PSS_R0),R2 ;ERROR TYPE
|
|
CALL _wr_cw
|
|
LDI @CURRENT_PROC,AR0
|
|
LDI *+AR0(PWAKE),R2
|
|
CALL _wr_cw
|
|
|
|
LDI *-AR3(PSS_DP),R2
|
|
CALL _wr_cw
|
|
LDI *-AR3(PSS_SP),R2
|
|
CALL _wr_cw
|
|
|
|
LDI *-AR3(PSS_AR0),R2
|
|
CALL _wr_cw
|
|
LDI *-AR3(PSS_AR1),R2
|
|
CALL _wr_cw
|
|
LDI *-AR3(PSS_AR2),R2
|
|
CALL _wr_cw
|
|
|
|
LDI *-AR3(PSS_AR2),AR0
|
|
LDI *+AR0(OID),R2
|
|
; LDI *-AR3(PSS_AR3),R2
|
|
CALL _wr_cw
|
|
LDI *-AR3(PSS_AR4),R2
|
|
CALL _wr_cw
|
|
|
|
LDI @_MODE,R2
|
|
; LDI *-AR3(PSS_AR5),R2
|
|
CALL _wr_cw
|
|
|
|
LDI *-AR3(PSS_AR2),AR0
|
|
LDI *+AR0(PID),R2
|
|
; LDI *-AR3(PSS_AR6),R2
|
|
CALL _wr_cw
|
|
LDI *-AR3(PSS_AR7),R2
|
|
CALL _wr_cw
|
|
|
|
LDI @CURRENT_PROC,AR0
|
|
LDI *+AR0(PID),R2
|
|
CALL _wr_cw
|
|
|
|
PUSH AR2
|
|
READAUD AUD_GAMENUMBER
|
|
POP AR2
|
|
LDI R0,R2
|
|
CALL _wr_cw
|
|
|
|
PUSH AR2
|
|
READAUD AUD_NUM_UNFINISHED
|
|
POP AR2
|
|
LDI R0,R2
|
|
CALL _wr_cw
|
|
|
|
PUSH AR2
|
|
LDI @PLYCAR,AR2
|
|
LDI *+AR2(CARTRAK),AR2
|
|
LDI *+AR2(OUSR1),R2
|
|
POP AR2
|
|
CALL _wr_cw
|
|
|
|
ERROR_X
|
|
POP AR7
|
|
POP AR6
|
|
POP AR5
|
|
POP AR4
|
|
POP AR3
|
|
POP AR2
|
|
POP AR1
|
|
POP AR0
|
|
POP DP
|
|
POP R0
|
|
|
|
POP R0
|
|
POP R4
|
|
POP R3
|
|
POP R2
|
|
POP R1
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
|
|
|
|
|
|
*----------------------------------------------------------------------------
|
|
*TO BE REACHED VIA THE CONSOLE (NO SWITCHES)
|
|
*
|
|
* ONCE ENTERED, USER MUST SCROLL THROUGH ALL
|
|
* OF THE LOGS. ROUTINE THEN RETURNS.
|
|
*
|
|
*
|
|
ERROR_LOG_DISPLAY:
|
|
CALL CLRSCRN
|
|
CALL SETPAGE0
|
|
|
|
LDIL SCREEN0,R0 ;set active screen to 1 (writeable)
|
|
STI R0,@ACTIVE_SCREEN
|
|
|
|
LDI COL_VDGREY,RC
|
|
TEXTITT "VIEW 1 TO EXIT",10,310
|
|
TEXTITT "VIEW 3 NEXT PAGE",10,320
|
|
TEXTITT "VIEW 3 + VIEW 2 + VIEW 1 CLEAR LOG",10,330
|
|
|
|
|
|
|
|
ERRLOG_D
|
|
LDI RACE_TABLE_SIZE*NUM_RACES+NUM_RACES,AR2
|
|
ADDI MAX_AUDITS*4,AR2
|
|
ADDI @CMOSI,AR2
|
|
CLRI AR6
|
|
|
|
NEXT_PAGE
|
|
PUSH AR2
|
|
IWINDOW 5,35,510,295
|
|
; FILL 10,40,510,300,0
|
|
POP AR2
|
|
|
|
PUSH AR2
|
|
READAUD AUD_LOG_COUNT
|
|
POP AR2
|
|
CMPI 0,R0
|
|
BGT ERRLOG_D2
|
|
TEXTITT "NO ERRORS",10,50
|
|
ERRLOG_D2
|
|
|
|
LDI 5,R4
|
|
LDI 10,R6
|
|
LDI 50,R7
|
|
BIGLOOP
|
|
PUSH AR2
|
|
READAUD AUD_LOG_COUNT
|
|
POP AR2
|
|
CMPI R0,AR6
|
|
BEQ LLPPT
|
|
|
|
CMPI 0,R0
|
|
BEQ LLPPT
|
|
|
|
CMPI MAX_LOGS,AR6
|
|
BGE ERRLOG_D
|
|
|
|
|
|
PUSH AR2
|
|
|
|
.globl OBJSTRI
|
|
LDI @OBJSTRI,AR2
|
|
LDI AR6,R2
|
|
INC R2
|
|
CALL _itoa
|
|
LDI 135,R2
|
|
LDI R7,R3
|
|
SUBI 10,R3
|
|
LDI @OBJSTRI,AR2
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
.data
|
|
TIBO .string "LOG",0
|
|
.text
|
|
|
|
LDI 100,R2
|
|
LDI R7,R3
|
|
SUBI 10,R3
|
|
LDL TIBO,AR2
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
|
|
POP AR2
|
|
|
|
|
|
|
|
;R6 X Position
|
|
;R7 Y Height
|
|
;
|
|
|
|
LDI ERR_SIZE-1,AR5
|
|
ONE_LOG
|
|
CALL _rd_cw
|
|
LDI R0,R2
|
|
|
|
PUSH AR2
|
|
|
|
.globl OBJSTRI
|
|
LDI @OBJSTRI,AR2
|
|
CALL HEX2ASC
|
|
|
|
LDI R6,R2
|
|
LDI R7,R3
|
|
LDI @OBJSTRI,AR2
|
|
LDI DEFAULT_COLOR,RC
|
|
CALL _outtextxyc
|
|
POP AR2
|
|
|
|
ADDI 70,R6
|
|
CMPI 450,R6
|
|
BLT ION
|
|
LDI 10,R6
|
|
ADDI 10,R7
|
|
ION DBU AR5,ONE_LOG
|
|
|
|
LDI 10,R6
|
|
ADDI 20,R7
|
|
|
|
INC AR6
|
|
|
|
DEC R4
|
|
BLT LLPPT
|
|
BU BIGLOOP
|
|
|
|
|
|
|
|
LLPPT
|
|
CALL WAIT_FOR_VBLANK
|
|
|
|
|
|
|
|
LDI @_newbut,R1 ;debounce
|
|
TSTB SW_DIAG,R1 ;start to return to main
|
|
BZ BOOKX
|
|
|
|
RS 16,R1
|
|
|
|
LDI R1,R0
|
|
AND SW_VIEW1_H|SW_VIEW0_H|SW_VIEW2_H,R0
|
|
; CMPI SW_VIEW1_H|SW_VIEW0_H|SW_VIEW2_H,R0
|
|
BNE NOCLEAR
|
|
CLRI R2
|
|
SETAUD AUD_LOG_COUNT
|
|
CALL WAIT_FOR_VBLANK
|
|
CALL WAIT_FOR_VBLANK
|
|
CALL WAIT_FOR_VBLANK
|
|
BU ERROR_LOG_DISPLAY
|
|
NOCLEAR
|
|
|
|
|
|
TSTB SW_VIEW2_H,R1
|
|
BNZ NOT_NEXT_PAGE
|
|
|
|
PUSH AR2
|
|
READAUD AUD_LOG_COUNT
|
|
POP AR2
|
|
CMPI R0,AR6
|
|
BGE ERRLOG_D
|
|
|
|
BU NEXT_PAGE
|
|
NOT_NEXT_PAGE
|
|
|
|
TSTB SW_VIEW0_H,R1
|
|
BZ BOOKX2
|
|
BU LLPPT
|
|
|
|
|
|
BOOKX2 LDI @_newbut,R1 ;debounce
|
|
RS 16,R1
|
|
TSTB SW_VIEW0_H,R1 ;start to return to main
|
|
BNZ BOOKX2
|
|
RETS
|
|
|
|
|
|
BOOKX NOT @_newbut,R0
|
|
AND SW_DIAG,R0
|
|
BNZ BOOKX
|
|
RETS
|
|
*----------------------------------------------------------------------------
|
|
.END
|