1
0
mirror of https://github.com/dschmenk/PLASMA.git synced 2025-04-21 20:37:40 +00:00

Working debug skeleton

This commit is contained in:
David Schmenk 2025-04-14 14:26:40 -07:00
parent b126e15272
commit 13c9779d0d
3 changed files with 102 additions and 4 deletions

Binary file not shown.

View File

@ -14,6 +14,10 @@ TMPL EQU TMP
TMPH EQU TMP+1
ESTKH EQU $A0
ESTKL EQU $C0
IFPL EQU $E0
IFPH EQU $E1
PPL EQU $E2
PPH EQU $E3
DROPOP EQU $EF
NEXTOP EQU $F0
FETCHOP EQU NEXTOP+1

View File

@ -26,6 +26,12 @@ RESFLAGS EQU 0
;
DB 0
;
; ROM ROUTINES
;
PRBYTE EQU $FDDA
COUT EQU $FDED
CROUT EQU $FD8E
;
; LANGUAGE CARD SWITCHES
;
LCRDEN EQU $C080
@ -48,6 +54,77 @@ BRKVEC EQU $3F0
CTRLY EQU $3F8
;
; DATA AND 6502 CODE SEGMENT
; ==========================
;
; PRINT INLINE STRINGZ
;
SAVETMP DW 0
PRSTR LDA TMPL
STA SAVETMP
LDA TMPH
STA SAVETMP+1
PLA
STA TMPL
PLA
STA TMPH
LDY #$01
LDA (TMP),Y
PRLOOP ORA #$80
JSR COUT
INY
LDA (TMP),Y
BNE PRLOOP
TYA
CLC
ADC TMPL
STA TMPL
LDA #$00
ADC TMPH
PHA
LDA TMPL
PHA
LDA SAVETMP+1
STA TMPH
LDA SAVETMP
STA TMPL
RTS
;
; DUMP INTERPRETER STATE
;
VMDUMP JSR CROUT
JSR PRSTR
ASC " XP="
DB 0
LDA BRKX
JSR PRBYTE
JSR PRSTR
ASC " IP"
DB 0
LDA OPPAGE
CMP #$D0
BEQ NOTAUX
LDA #'X'+$80
JSR COUT
NOTAUX LDA #'='+$80
JSR COUT
LDA BRKY
CLC
ADC FETCHOP+1
PHA
LDA #$00
ADC FETCHOP+2
JSR PRBYTE
PLA
JSR PRBYTE
JSR PRSTR
ASC " FP="
DB 0
LDA IFPH
JSR PRBYTE
LDA IFPL
JMP PRBYTE
;
; SYSTEM BRK HANDLER
;
SYSBRK DB $4C ; JMP OPCODE
SYSBRKVEC DW 0 ; SYS BRK HANDLER ADDRESS
@ -59,12 +136,18 @@ BRKCHK LDA BRKPCH
LDA BRKPCL
CMP #NEXTOP+2
BNE SYSBRK
LDA BRKX ; CHECK FOR ESTK PTR VALID
CMP #$21
BCS MON
LDA $C000
CMP #$83 ; CTRL-C
BNE BRKRET
LDA $C010
JMP -151
BRKRET BIT LCRDEN+LCBNK2
MON JSR VMDUMP
JMP -151 ; JUMP INTO MONITOR
YCONT PLA
PLA
BRKRET BIT LCRDEN+LCBNK2
LDA BRKP
PHA
LDY BRKY
@ -82,6 +165,7 @@ XOP LDA BRKA
;
; INITIALIZE MODULE AND RETURN MOD KEEP STATUS
;
INITMSG STR "DEBUGGER INSTALLED."
INIT LDA BRKVEC ; SAVE CURRENT BRK VECTOR TO SYS VECTOR
STA SYSBRKVEC
LDA BRKVEC+1
@ -112,11 +196,21 @@ INIT LDA BRKVEC ; SAVE CURRENT BRK VECTOR TO SYS VECTOR
;
LDA #$4C ; JMP OPCODE
STA CTRLY
LDA #>BRKRET
LDA #>YCONT
STA CTRLY+1
LDA #<BRKRET
LDA #<YCONT
STA CTRLY+2
;
; PRINT INIT MESSAGE THROUGH CMDSYS
;
LDA #>INITMSG
LDY #<INITMSG
DEX
STA ESTKL,X
STY ESTKH,X
JSR PUTS
JSR PUTLN
;
; RETURN MODKEEP TO LEAVE THE MODULE IN MEMORY
;
LDA #>MODKEEP