mirror of
https://github.com/erkyrath/infocom-zcode-terps.git
synced 2026-02-08 17:21:26 +00:00
284 lines
3.0 KiB
NASM
284 lines
3.0 KiB
NASM
PAGE
|
||
SBTTL "--- DEBUGGER: C128 ---"
|
||
|
||
; --------------
|
||
; C128 DEBUGGER
|
||
; --------------
|
||
|
||
; ENTRY: BREAKPOINT ID IN [A]
|
||
|
||
; SMALL DEBUGGER DBG1 (CONVERTS) DBG2 (JUST DISPLAYS) [A]
|
||
; DISPLAYS ON LINE 24, col 75/76
|
||
|
||
dbgsvx: db 00
|
||
dbgsvy: db 00
|
||
|
||
dbx: db 55
|
||
dby: db 4
|
||
|
||
DBG1: STA HLDA
|
||
TYA
|
||
PHA
|
||
TXA
|
||
PHA
|
||
|
||
LDA HLDA
|
||
PHA
|
||
LSR A
|
||
LSR A
|
||
LSR A
|
||
LSR A
|
||
JSR NIB1
|
||
PLA
|
||
JSR NIB1
|
||
|
||
PLA
|
||
TAX
|
||
PLA
|
||
TAY
|
||
|
||
RTS
|
||
|
||
NIB1: AND #%00001111
|
||
TAY
|
||
LDA HCHARS,Y
|
||
JMP CHROUT
|
||
|
||
dbgsetc:
|
||
sec
|
||
jsr PLOT
|
||
stx dbgsvx
|
||
sty dbgsvy
|
||
ldx dby
|
||
ldy dbx
|
||
clc
|
||
jsr PLOT
|
||
rts
|
||
|
||
dbgrstc:
|
||
sec
|
||
jsr PLOT
|
||
sty dbx
|
||
stx dby
|
||
clc
|
||
adc dbx
|
||
cmp #75
|
||
bcc dchj1
|
||
ldx dby
|
||
inx
|
||
cpx #24
|
||
bne dchj
|
||
ldx #4
|
||
dchj:
|
||
stx dby
|
||
lda #55
|
||
dchj1:
|
||
sta dbx
|
||
ldx dbgsvx
|
||
ldy dbgsvy
|
||
clc
|
||
jsr PLOT
|
||
rts
|
||
|
||
IF 0
|
||
DBG2: STA HLDA
|
||
TYA
|
||
PHA
|
||
TXA
|
||
PHA
|
||
LDA HLDA
|
||
CMP #' '
|
||
BEQ DBG3
|
||
LDX HLDX ; PLACE ON 40 COL SCREEN
|
||
STA LINE18,X
|
||
INC HLDX
|
||
LDA #' '
|
||
DBG3: LDX HLDX ; PLACE ON 40 COL SCREEN
|
||
STA LINE18,X
|
||
INC HLDX
|
||
PLA
|
||
TAX
|
||
PLA
|
||
TAY
|
||
LDA HLDA
|
||
RTS
|
||
ENDIF
|
||
|
||
HCHARS: DB "0123456789ABCDEF"
|
||
HLDA: DB 0
|
||
HLDX: DB 0
|
||
HLDY: DB 0
|
||
;LINE18 EQU $6D0 ; LINE 18 BYTE ADDR IN 40 COL SCREEN
|
||
|
||
END
|
||
|
||
BLINE: DB "B: OP: PC: S: V: 1: 2: 3: 4: 5: 6: "
|
||
DB EOL
|
||
BLINL EQU $-BLINE
|
||
|
||
|
||
DOBUG: STA DHOLD
|
||
NOP ; ON THE FLY CHANGE SPACE
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
NOP
|
||
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 DHOLD
|
||
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
|
||
|
||
PPP: LDX #0
|
||
DBG1: LDA BLINE,X ; PRINT DEBUGGER TEXT
|
||
JSR CHROUT
|
||
INX
|
||
CPX #BLINL
|
||
BCC DBG1
|
||
|
||
LDA #0
|
||
STA NDX ; CLEAR
|
||
WAITT: JSR GETIN ; NOW WAIT FOR ANOTHER KEY
|
||
CMP #0
|
||
BEQ WAITT
|
||
WOK: NOP
|
||
|
||
CMP #'Q'
|
||
BNE LLETEX
|
||
BRK
|
||
|
||
LLETEX:
|
||
; LDX OLDX
|
||
; LDY OLDY
|
||
; CLC
|
||
; JSR PLOT ; NOW BACK TO OUR REGULARLY SCHEDULED PROGRAM
|
||
LDA DHOLD
|
||
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
|
||
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
|
||
DHOLD: DB 0
|
||
|
||
|
||
END
|
||
|
||
|