Change dumpstack to a general debug routine in calculator.asm
This commit is contained in:
parent
3583fc8379
commit
8526919479
103
calculator.asm
103
calculator.asm
|
@ -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
|
||||
|
||||
; ==================================================================
|
||||
|
|
Loading…
Reference in New Issue