mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-01-20 09:45:23 +00:00
194 lines
2.3 KiB
Plaintext
194 lines
2.3 KiB
Plaintext
PAGE
|
|
SBTTL "--- ATARI DEBUGGER ---"
|
|
|
|
; -------------
|
|
; DEBUGGER INIT
|
|
; -------------
|
|
|
|
; BUG TITLES IN ATARI SCREEN CODE
|
|
|
|
BLINE: DB 34,48,26,0,0,0 ; BP:
|
|
DB 0,13,47,48,26,0,0,0 ; -OP:
|
|
DB 48,35,26,0,0,0,0,0,0 ; PC:
|
|
; DB 34,26,0,0,0 ; B:
|
|
DB 51,48,26,0,0,0 ; SP:
|
|
DB 54,45,26,0,0,0,0,0 ; VM:
|
|
|
|
DB 0,0,0
|
|
|
|
DB 17,26,0,0,0 ; 1:
|
|
DB 18,26,0,0,0 ; 2:
|
|
DB 19,26,0,0,0 ; 3:
|
|
DB 20,26,0,0,0 ; 4:
|
|
DB 21,26,0,0,0 ; 5:
|
|
DB 22,26,0,0,0 ; 6:
|
|
DB 23,26,0,0,0 ; 7:
|
|
DB 24,26,0,0,0 ; 8:
|
|
|
|
BLINEL EQU $-BLINE
|
|
|
|
BUGNIT: JSR STATUS ; SET UP STATUS LINE
|
|
LDX #LOW BLINE
|
|
LDA #HIGH BLINE
|
|
LDY #BLINEL
|
|
JMP PRINT
|
|
|
|
; --------
|
|
; DEBUGGER
|
|
; --------
|
|
|
|
; ENTRY: BREAKPOINT ID # IN [A]
|
|
|
|
DOBUG: LDX STRIG1
|
|
BNE BUGIT
|
|
RTS
|
|
|
|
BUGIT: LDX #3
|
|
STX CURSOR
|
|
JSR HEX ; SHOW BREAKPOINT ID
|
|
|
|
INC CURSOR ; POSITION FOR OPCODE ID
|
|
|
|
LDA OPCODE
|
|
BMI ITQ0
|
|
LDA #18 ; 2-OP
|
|
BNE SHOWOP
|
|
|
|
ITQ0: CMP #$B0
|
|
BCS ITQ1
|
|
LDA #17 ; 1-OP
|
|
BNE SHOWOP
|
|
|
|
ITQ1: CMP #$C0
|
|
BCS ITQ2
|
|
LDA #16 ; 0-OP
|
|
BNE SHOWOP
|
|
|
|
ITQ2: CMP #$E0
|
|
BCS ITQ3
|
|
LDA #37 ; EXTENDED 2-OP
|
|
BNE SHOWOP
|
|
|
|
ITQ3: LDA #56 ; X-OP
|
|
|
|
SHOWOP: JSR CHAR ; SHOW OPCODE ID
|
|
|
|
LDA #11
|
|
STA CURSOR ; POS FOR OPCODE BYTE
|
|
LDA OPCODE
|
|
JSR HEX ; SHOW IT
|
|
|
|
LDA #17
|
|
STA CURSOR ; POS FOR PC
|
|
LDA GPCH
|
|
JSR HEX ; SHOW MSB
|
|
LDA GPCL
|
|
JSR HEX ; AND LSB
|
|
|
|
LDA #$0B
|
|
LDX GPC0
|
|
BNE BGSKP1
|
|
LDA #$0D
|
|
BGSKP1: JSR CHAR
|
|
|
|
|
|
; LDA #24
|
|
; STA CURSOR ; POS FOR BYTE
|
|
; LDA MBYTE
|
|
; JSR HEX
|
|
|
|
LDA #26
|
|
STA CURSOR ; POS FOR SP
|
|
LDA GSP
|
|
JSR HEX ; SHOW SP
|
|
|
|
LDA #32
|
|
STA CURSOR ; POS FOR VM
|
|
LDA VPCH
|
|
JSR HEX ; SHOW MSB
|
|
LDA VPCL
|
|
JSR HEX ; AND LSB
|
|
|
|
LDA #$0B
|
|
LDX VPC0
|
|
BNE BGSK2
|
|
LDA #$0D
|
|
BGSK2: JSR CHAR
|
|
|
|
; DISPLAY BYTES 1 THRU 8
|
|
|
|
LDA #42
|
|
STA CURSOR
|
|
LDA BYTE1
|
|
JSR HEX
|
|
|
|
LDA #47
|
|
STA CURSOR
|
|
LDA BYTE2
|
|
JSR HEX
|
|
|
|
LDA #52
|
|
STA CURSOR
|
|
LDA BYTE3
|
|
JSR HEX
|
|
|
|
LDA #57
|
|
STA CURSOR
|
|
LDA BYTE4
|
|
JSR HEX
|
|
|
|
LDA #62
|
|
STA CURSOR
|
|
LDA BYTE5
|
|
JSR HEX
|
|
|
|
LDA #67
|
|
STA CURSOR
|
|
LDA BYTE6
|
|
JSR HEX
|
|
|
|
LDA #72
|
|
STA CURSOR
|
|
LDA BYTE7
|
|
JSR HEX
|
|
|
|
LDA #77
|
|
STA CURSOR
|
|
LDA BYTE8
|
|
JSR HEX
|
|
|
|
|
|
WAIT: LDA CONSOL
|
|
CMP #7
|
|
BEQ WAIT
|
|
LETGO2: LDA CONSOL
|
|
CMP #7
|
|
BNE LETGO2
|
|
|
|
LDA #0 ; 1/2 SECOND DELAY
|
|
STA RTCLOK
|
|
ZZZ: LDA RTCLOK
|
|
CMP #30
|
|
BCC ZZZ
|
|
|
|
BUGEX: LDA #00
|
|
LDX #7
|
|
BGLP: STA BYTE1,X
|
|
DEX
|
|
BPL BGLP
|
|
RTS
|
|
|
|
MBYTE: DB 0 ; SAVE BYTE
|
|
BYTE1: DB 00 ; USER BYTE1
|
|
BYTE2: DB 00
|
|
BYTE3: DB 00
|
|
BYTE4: DB 00
|
|
BYTE5: DB 00
|
|
BYTE6: DB 00
|
|
BYTE7: DB 00
|
|
BYTE8: DB 00
|
|
|
|
|
|
END
|
|
|