Files
erkyrath.infocom-zcode-terps/apple/zip/bugger.asm
Andrew Plotkin b642da811e Initial commit.
2023-11-16 18:19:54 -05:00

206 lines
2.3 KiB
NASM

PAGE
SBTTL "--- DEBUGGER: CBM64 ---"
; --------------
; APPLE DEBUGGER
; --------------
; ENTRY: BREAKPOINT ID IN [A]
BLINE: DB "B: OP: PC: S: V: 1: 2: 3: 4: 5: 6: "
DB EOL
BLINL EQU $-BLINE
DOBUG: LDX KBD ; WAS CTRL-S PRESSED?
CPX #$13
BNE BUGIT
RTS ; YES, SO LEAVE
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP ; ON THE FLY CHANGE SPACE
NOP
BUGIT: LDX #2 ; INIT "CURSOR"
JSR HEX ; SHOW BREAKPOINT
LDA OPCODE
BMI ITQ0
LDA #'2'
BNE SHOWOP
ITQ0: CMP #$B0
BCS ITQ1
LDA #'1'
BNE SHOWOP
ITQ1: CMP #$C0
BCS ITQ2
LDA #'0'
BNE SHOWOP
ITQ2: CMP #$E0
BCS ITQ3
LDA #'E'
BNE SHOWOP
ITQ3: LDA #'X'
SHOWOP: LDX #5 ; SET CURSOR
STA BLINE,X
LDX #9 ; CURSOR FOR OP ID
LDA OPCODE
JSR HEX
LDX #15 ; CURSOR FOR PC
LDA ZPCH
JSR HEX
LDA ZPCM
JSR HEX
LDA ZPCL
JSR HEX
LDX #24 ; CURSOR FOR [ZSP]
LDA ZSP
JSR HEX
LDX #29 ; CURSOR FOR [MPC]
LDA MPCH
JSR HEX
LDA MPCM
JSR HEX
LDA MPCL
JSR HEX
LDX #38
LDA BONE
JSR HEX
LDX #43
LDA BTWO
JSR HEX
LDX #48
LDA BTHREE
JSR HEX
LDX #53
LDA BFOUR
JSR HEX
LDX #58
LDA BFIVE
JSR HEX
LDX #63
LDA BSIX
JSR HEX
; LDA CSW+LO
; PHA
; LDA CSW+HI
; PHA
; LDA EH
; PHA
; LDA ALTCSW+LO
; STA CSW+LO
; LDA ALTCSW+HI
; STA CSW+HI
;
; LDA PSTAT
; BNE PPP
;
; LDA #$C1
; STA CSW+HI
; LDA #$00
; STA CSW+LO
;
; LDA #$89
; JSR MCOUT
; LDA CSW+HI
; STA ALTCSW+HI
; LDA CSW+LO
; STA ALTCSW+LO
; LDA #$B8
; JSR MCOUT
; LDA #$B0
; JSR MCOUT
; LDA #$CE
; JSR MCOUT
; LDA #$8D
; JSR MCOUT
PPP: LDX #0
DBG1: LDA BLINE,X ; PRINT DEBUGGER TEXT
; JSR MCOUT
JSR CHAR
INX
CPX #BLINL
BCC DBG1
; PLA
; STA EH
; PLA
; STA CSW+HI
; PLA
; STA CSW+LO
BIT KBD
BPL LETEX ; NO KEY PRESSED
BIT ANYKEY ; CLEAR IT
BUGWAT: BIT KBD
BPL BUGWAT
LDA KBD
CMP #$8D
BNE LETEX
BRK
LETEX: BIT ANYKEY ; CLEAR FOR NEXT ONE
RTS
; CONVERT [A] TO HEX & PRINT
HEX: PHA
LSR A
LSR A
LSR A
LSR A
JSR NIB
PLA
NIB: AND #%00001111
TAY
LDA HCHARS,Y
ORA #%10000000
STA BLINE,X
INX
RTS
HCHARS: DB "0123456789ABCDEF"
BONE: DB 0
BTWO: DB 0
BTHREE: DB 0
BFOUR: DB 0
BFIVE: DB 0
BSIX: DB 0
END