diff --git a/calculator.asm b/calculator.asm index 0a92c33..11ce5c2 100644 --- a/calculator.asm +++ b/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 ; ==================================================================