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
|
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 r0, SPStart+0
|
||||||
load r1, SPStart+1
|
load r1, SPStart+1
|
||||||
store dumpstackPtr+0, r0
|
store debugPtr+0, r0
|
||||||
store dumpstackPtr+1, r1
|
store debugPtr+1, r1
|
||||||
|
|
||||||
dumpstackLoop:
|
debugLoop:
|
||||||
load r0, dumpstackPtr+0
|
load r0, debugPtr+0
|
||||||
load r1, dumpstackPtr+1
|
load r1, debugPtr+1
|
||||||
load r2, SP+0
|
load r2, SP+0
|
||||||
load r3, SP+1
|
load r3, SP+1
|
||||||
|
|
||||||
brneq r0, r2, dumpstackDumpword
|
brneq r0, r2, debugDumpword
|
||||||
breq r1, r3, dumpstackEnd
|
breq r1, r3, debugEnd
|
||||||
|
|
||||||
dumpstackDumpword:
|
debugDumpword:
|
||||||
load r0, dumpstackPtr+0
|
load r0, debugPtr+0
|
||||||
load r1, dumpstackPtr+1
|
load r1, debugPtr+1
|
||||||
store loadByteHigh, r0
|
store loadByteHigh, r0
|
||||||
store loadByteLow, r1
|
store loadByteLow, r1
|
||||||
cleq r0, r0, loadByte
|
cleq r0, r0, loadByte
|
||||||
cleq r0, r0, writehexByte
|
cleq r0, r0, writehexByte
|
||||||
|
|
||||||
load r0, dumpstackPtr+0
|
load r0, debugPtr+0
|
||||||
load r1, dumpstackPtr+1
|
load r1, debugPtr+1
|
||||||
cleq r0, r0, incWord
|
cleq r0, r0, incWord
|
||||||
store dumpstackPtr+0, r0
|
store debugPtr+0, r0
|
||||||
store dumpstackPtr+1, r1
|
store debugPtr+1, r1
|
||||||
|
|
||||||
load r0, dumpstackPtr+0
|
load r0, debugPtr+0
|
||||||
load r1, dumpstackPtr+1
|
load r1, debugPtr+1
|
||||||
store loadByteHigh, r0
|
store loadByteHigh, r0
|
||||||
store loadByteLow, r1
|
store loadByteLow, r1
|
||||||
cleq r0, r0, loadByte
|
cleq r0, r0, loadByte
|
||||||
cleq r0, r0, writehexByte
|
cleq r0, r0, writehexByte
|
||||||
|
|
||||||
load r0, dumpstackPtr+0
|
load r0, debugPtr+0
|
||||||
load r1, dumpstackPtr+1
|
load r1, debugPtr+1
|
||||||
cleq r0, r0, incWord
|
cleq r0, r0, incWord
|
||||||
store dumpstackPtr+0, r0
|
store debugPtr+0, r0
|
||||||
store dumpstackPtr+1, r1
|
store debugPtr+1, r1
|
||||||
|
|
||||||
load r0, litcharSpace
|
load r0, litcharSpace
|
||||||
store ffff, r0
|
store ffff, r0
|
||||||
|
|
||||||
breq r0, r0, dumpstackLoop
|
breq r0, r0, debugLoop
|
||||||
|
|
||||||
dumpstackEnd:
|
debugEnd:
|
||||||
breq r0, r0, newline
|
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:
|
stReadline:
|
||||||
; Current index starts at 0
|
; Current index starts at 0
|
||||||
|
@ -998,6 +1048,9 @@ lit6f: data 6f
|
||||||
litcharr:
|
litcharr:
|
||||||
lit72: data 72
|
lit72: data 72
|
||||||
|
|
||||||
|
litcharPipe:
|
||||||
|
lit7c: data 7c
|
||||||
|
|
||||||
litff: data ff
|
litff: data ff
|
||||||
|
|
||||||
; ==================================================================
|
; ==================================================================
|
||||||
|
|
Loading…
Reference in New Issue