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

217 lines
2.3 KiB
NASM

PAGE
SBTTL "--- DEBUGGER: APPLE ---"
; --------------
; APPLE DEBUGGER
; --------------
; ENTRY: BREAKPOINT ID IN [A]
; SMALL DEBUGGER DBG1 (CONVERTS) DBG2 (JUST DISPLAYS) [A]
DBG1: PHA
LSR A
LSR A
LSR A
LSR A
JSR NIB1
PLA
NIB1: AND #%00001111
TAY
LDA HCHARS,Y
JSR CHROUT
RTS
DBG2: CMP #' '
BEQ DBG3
JSR CHROUT
LDA #' '
DBG3: JSR CHROUT
RTS
HCHARS: DB "0123456789ABCDEF"
END
BLINE: DB "B: OP: PC: S: V: 1: 2: 3: 4: 5: 6: "
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
BNE 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 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
PPP: LDX #0
DBG1: LDA BLINE,X ; PRINT DEBUGGER TEXT
JSR CHROUT
INX
CPX #BLINL
BCC DBG1
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
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
DHOLD: DB 0
END