Change dumpstack to a general debug routine in calculator.asm

This commit is contained in:
Juhani Krekelä 2022-08-18 14:42:28 +03:00
parent 3583fc8379
commit 8526919479
1 changed files with 78 additions and 25 deletions

View File

@ -6,57 +6,107 @@ start:
halt
dumpstack:
debug:
store debugr0, r0
store debugr1, r1
store debugr2, r2
store debugr3, r3
debugRegs:
load r0, debugr0
cleq r0, r0, writehexByte
load r0, litcharSpace
store ffff, r0
load r0, debugr1
cleq r0, r0, writehexByte
load r0, litcharSpace
store ffff, r0
load r0, debugr2
cleq r0, r0, writehexByte
load r0, litcharSpace
store ffff, r0
load r0, debugr3
cleq r0, r0, writehexByte
load r0, litcharSpace
store ffff, r0
debugTmpWords:
load r0, tmpWordHigh
load r1, tmpWordLow
cleq r0, r0, writeHexWord
load r0, litcharSpace
store ffff, r0
load r0, tmpWord2High
load r1, tmpWord2Low
cleq r0, r0, writeHexWord
load r0, litcharPipe
store ffff, r0
load r0, SPStart+0
load r1, SPStart+1
store dumpstackPtr+0, r0
store dumpstackPtr+1, r1
store debugPtr+0, r0
store debugPtr+1, r1
dumpstackLoop:
load r0, dumpstackPtr+0
load r1, dumpstackPtr+1
debugLoop:
load r0, debugPtr+0
load r1, debugPtr+1
load r2, SP+0
load r3, SP+1
brneq r0, r2, dumpstackDumpword
breq r1, r3, dumpstackEnd
brneq r0, r2, debugDumpword
breq r1, r3, debugEnd
dumpstackDumpword:
load r0, dumpstackPtr+0
load r1, dumpstackPtr+1
debugDumpword:
load r0, debugPtr+0
load r1, debugPtr+1
store loadByteHigh, r0
store loadByteLow, r1
cleq r0, r0, loadByte
cleq r0, r0, writehexByte
load r0, dumpstackPtr+0
load r1, dumpstackPtr+1
load r0, debugPtr+0
load r1, debugPtr+1
cleq r0, r0, incWord
store dumpstackPtr+0, r0
store dumpstackPtr+1, r1
store debugPtr+0, r0
store debugPtr+1, r1
load r0, dumpstackPtr+0
load r1, dumpstackPtr+1
load r0, debugPtr+0
load r1, debugPtr+1
store loadByteHigh, r0
store loadByteLow, r1
cleq r0, r0, loadByte
cleq r0, r0, writehexByte
load r0, dumpstackPtr+0
load r1, dumpstackPtr+1
load r0, debugPtr+0
load r1, debugPtr+1
cleq r0, r0, incWord
store dumpstackPtr+0, r0
store dumpstackPtr+1, r1
store debugPtr+0, r0
store debugPtr+1, r1
load r0, litcharSpace
store ffff, r0
breq r0, r0, dumpstackLoop
breq r0, r0, debugLoop
dumpstackEnd:
breq r0, r0, newline
debugEnd:
cleq r0, r0, newline
dumpstackPtr: addr dumpstackPtr
load r0, debugr0
load r1, debugr1
load r2, debugr2
load r3, debugr3
ret
debugPtr: addr debugPtr
debugr0: data 0
debugr1: data 0
debugr2: data 0
debugr3: data 0
stReadline:
; Current index starts at 0
@ -998,6 +1048,9 @@ lit6f: data 6f
litcharr:
lit72: data 72
litcharPipe:
lit7c: data 7c
litff: data ff
; ==================================================================