2023-11-16 18:19:54 -05:00

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