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

222 lines
2.2 KiB
NASM

PAGE
STTL "--- DEBUGGER: EZIP C128 ---"
; --------------
; C128 DEBUGGER
; --------------
; ENTRY: BREAKPOINT ID IN [A]
BLINE: DB "B: OP: PC: S: V: 1: 2: 3: 4: 5: 6: 7: 8: 9: "
DB EOL
BLINL EQU $-BLINE
DOBUG: ;RTS
STA DHOLD
; LDA SHFLAG
; AND #%00000100 ; CTRL KEY PRESSED?
; BEQ TEST2 ; CONTINUE IF NOT
; RTS ; AND EXIT
TEST2: ;LDA DHOLD
;CMP #0
;BEQ BUGIT
;RTS
NOP ; ON THE FLY CHANGE SPACE
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
BUGIT:
; SEC
; JSR PLOT ; GET GAME POSITION
; STX OLDX
; STY OLDY
; LDX #23
; LDY #0
; CLC
; JSR PLOT ; AND SET DUBUG ONE
LDA DHOLD
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 WBOTM
; LDA BONE
JSR HEX
LDX #43
LDA WTOP
; LDA BTWO
JSR HEX
LDX #48
LDA TOP
; LDA BTHREE
JSR HEX
LDX #53
LDA BFOUR
JSR HEX
LDX #58
LDA BFIVE
JSR HEX
LDX #63
LDA BSIX
JSR HEX
LDX #68
LDA BSEVEN
JSR HEX
LDX #73
LDA BEIGHT
JSR HEX
LDX #78
LDA BNINE
JSR HEX
PPP: LDX #0
DBG1: LDA BLINE,X ; PRINT DEBUGGER TEXT
JSR CHROUT
INX
CPX #BLINL
BCC DBG1
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
LDA #0
STA NDX ; CLEAR
; JSR GETIN
; CMP #0
; BEQ WOK ; IF NO KEY, CONTINUE
WAITT: JSR GETIN ; NOW WAIT FOR ANOTHER KEY
CMP #0
BEQ WAITT
NOP
NOP
NOP
NOP
NOP
NOP
NOP
NOP
WOK: NOP
CMP #'Q'
BNE LLETEX
BRK
LLETEX:
; LDX OLDX
; LDY OLDY
; CLC
; JSR PLOT ; NOW BACK TO OUR REGULARLY SCHEDULED PROGRAM
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
BSEVEN: DB 0
BEIGHT: DB 0
BNINE: DB 0
DHOLD: DB 0
END