diff --git a/calculator.asm b/calculator.asm index 64d97fe..6fe1281 100644 --- a/calculator.asm +++ b/calculator.asm @@ -46,35 +46,35 @@ debug: debugRegs: load r0, debugr0 cleq r0, r0, writehexByte - load r0, litcharSpace + load r0, #20 store ffff, r0 load r0, debugr1 cleq r0, r0, writehexByte - load r0, litcharSpace + load r0, #20 store ffff, r0 load r0, debugr2 cleq r0, r0, writehexByte - load r0, litcharSpace + load r0, #20 store ffff, r0 load r0, debugr3 cleq r0, r0, writehexByte - load r0, litcharSpace + load r0, #20 store ffff, r0 debugTmpWords: load r0, tmpWordHigh load r1, tmpWordLow cleq r0, r0, writeHexWord - load r0, litcharSpace + load r0, #20 store ffff, r0 load r0, tmpWord2High load r1, tmpWord2Low cleq r0, r0, writeHexWord - load r0, litcharPipe + load r0, #7c store ffff, r0 load r0, SPStart+0 @@ -118,7 +118,7 @@ debug: store debugPtr+0, r0 store debugPtr+1, r1 - load r0, litcharSpace + load r0, #20 store ffff, r0 breq r0, r0, debugLoop @@ -151,11 +151,11 @@ readline: ; Is it enter? cleq r0, r0, peekWord - load r0, litcharCR + load r0, #0d breq r0, r1, readlineEnter ; Is it backspace? - load r0, litcharBS + load r0, #08 breq r0, r1, readlineBackspace ; Is the buffer full? @@ -207,9 +207,9 @@ readline: ; Decrease the index and erase the echoed character ; TODO: utf-8 cleq r0, r0, stDec - load r3, litcharSpace + load r3, #20 store ffff, r3 - load r3, litcharBS + load r3, #08 store ffff, r3 breq r0, r0, readlineLoop @@ -218,11 +218,11 @@ readline: ; Drop the input byte and erase the echoed character ; TODO: utf-8 cleq r0, r0, popWord - load r3, litcharBS + load r3, #08 store ffff, r3 - load r3, litcharSpace + load r3, #20 store ffff, r3 - load r3, litcharBS + load r3, #08 store ffff, r3 breq r0, r0, readlineLoop @@ -453,7 +453,7 @@ peekWord: load r0, SP+0 load r1, SP+1 xor r2, r2 - load r3, lit02 + load r3, #02 cleq r0, r0, addWord store SP+0, r0 store SP+1, r1 @@ -609,7 +609,7 @@ subWord: xor r0, r0 or r0, r3 nand r0, r0 - load r2, lit01 + load r2, #01 cleq r0, r0, addByte3 store subWordResultLow, r0 @@ -639,7 +639,7 @@ incWord: store incWordHigh, r0 ; Add 1 to low byte - load r0, lit01 + load r0, #01 cleq r0, r0, addByte store incWordLow, r0 @@ -662,12 +662,12 @@ decWord: store decWordHigh, r0 ; Add ff to low byte - load r0, litff + load r0, #ff cleq r0, r0, addByte store decWordLow, r0 ; Add ff and carry to high byte - load r0, litff + load r0, #ff load r2, decWordHigh cleq r0, r0, addByte3 @@ -762,86 +762,86 @@ addByte: nybble2hex: xor r3, r3 breq r0, r3, nybble2hex0 - load r3, lit01 + load r3, #01 breq r0, r3, nybble2hex1 - load r3, lit02 + load r3, #02 breq r0, r3, nybble2hex2 - load r3, lit03 + load r3, #03 breq r0, r3, nybble2hex3 - load r3, lit04 + load r3, #04 breq r0, r3, nybble2hex4 - load r3, lit05 + load r3, #05 breq r0, r3, nybble2hex5 - load r3, lit06 + load r3, #06 breq r0, r3, nybble2hex6 - load r3, lit07 + load r3, #07 breq r0, r3, nybble2hex7 - load r3, lit08 + load r3, #08 breq r0, r3, nybble2hex8 - load r3, lit09 + load r3, #09 breq r0, r3, nybble2hex9 - load r3, lit0a + load r3, #0a breq r0, r3, nybble2hexa - load r3, lit0b + load r3, #0b breq r0, r3, nybble2hexb - load r3, lit0c + load r3, #0c breq r0, r3, nybble2hexc - load r3, lit0d + load r3, #0d breq r0, r3, nybble2hexd - load r3, lit0e + load r3, #0e breq r0, r3, nybble2hexe - load r3, lit0f + load r3, #0f breq r0, r3, nybble2hexf breq r0, r0, error nybble2hex0: - load r0, litchar0 + load r0, #30 ret nybble2hex1: - load r0, litchar1 + load r0, #31 ret nybble2hex2: - load r0, litchar2 + load r0, #32 ret nybble2hex3: - load r0, litchar3 + load r0, #33 ret nybble2hex4: - load r0, litchar4 + load r0, #34 ret nybble2hex5: - load r0, litchar5 + load r0, #35 ret nybble2hex6: - load r0, litchar6 + load r0, #36 ret nybble2hex7: - load r0, litchar7 + load r0, #37 ret nybble2hex8: - load r0, litchar8 + load r0, #38 ret nybble2hex9: - load r0, litchar9 + load r0, #39 ret nybble2hexa: - load r0, litchara + load r0, #61 ret nybble2hexb: - load r0, litcharb + load r0, #62 ret nybble2hexc: - load r0, litcharc + load r0, #63 ret nybble2hexd: - load r0, litchard + load r0, #64 ret nybble2hexe: - load r0, litchare + load r0, #65 ret nybble2hexf: - load r0, litcharf + load r0, #66 ret ; in: @@ -851,49 +851,49 @@ nybble2hex: ; clobbers: ; r3 hex2nybble: - load r3, litchar0 + load r3, #30 breq r0, r3, hex2nybble0 - load r3, litchar1 + load r3, #31 breq r0, r3, hex2nybble1 - load r3, litchar2 + load r3, #32 breq r0, r3, hex2nybble2 - load r3, litchar3 + load r3, #33 breq r0, r3, hex2nybble3 - load r3, litchar4 + load r3, #34 breq r0, r3, hex2nybble4 - load r3, litchar5 + load r3, #35 breq r0, r3, hex2nybble5 - load r3, litchar6 + load r3, #36 breq r0, r3, hex2nybble6 - load r3, litchar7 + load r3, #37 breq r0, r3, hex2nybble7 - load r3, litchar8 + load r3, #38 breq r0, r3, hex2nybble8 - load r3, litchar9 + load r3, #39 breq r0, r3, hex2nybble9 - load r3, litchara + load r3, #61 breq r0, r3, hex2nybblea - load r3, litcharb + load r3, #62 breq r0, r3, hex2nybbleb - load r3, litcharc + load r3, #63 breq r0, r3, hex2nybblec - load r3, litchard + load r3, #64 breq r0, r3, hex2nybbled - load r3, litchare + load r3, #65 breq r0, r3, hex2nybblee - load r3, litcharf + load r3, #66 breq r0, r3, hex2nybblef - load r3, litcharUppera + load r3, #41 breq r0, r3, hex2nybblea - load r3, litcharUpperb + load r3, #42 breq r0, r3, hex2nybbleb - load r3, litcharUpperC + load r3, #43 breq r0, r3, hex2nybblec - load r3, litcharUpperD + load r3, #44 breq r0, r3, hex2nybbled - load r3, litcharUpperE + load r3, #45 breq r0, r3, hex2nybblee - load r3, litcharUpperF + load r3, #46 breq r0, r3, hex2nybblef breq r0, r0, error @@ -902,49 +902,49 @@ hex2nybble: xor r0, r0 ret hex2nybble1: - load r0, lit01 + load r0, #01 ret hex2nybble2: - load r0, lit02 + load r0, #02 ret hex2nybble3: - load r0, lit03 + load r0, #03 ret hex2nybble4: - load r0, lit04 + load r0, #04 ret hex2nybble5: - load r0, lit05 + load r0, #05 ret hex2nybble6: - load r0, lit06 + load r0, #06 ret hex2nybble7: - load r0, lit07 + load r0, #07 ret hex2nybble8: - load r0, lit08 + load r0, #08 ret hex2nybble9: - load r0, lit09 + load r0, #09 ret hex2nybblea: - load r0, lit0a + load r0, #0a ret hex2nybbleb: - load r0, lit0b + load r0, #0b ret hex2nybblec: - load r0, lit0c + load r0, #0c ret hex2nybbled: - load r0, lit0d + load r0, #0d ret hex2nybblee: - load r0, lit0e + load r0, #0e ret hex2nybblef: - load r0, lit0f + load r0, #0f ret ; ------------------------------------------------------------------ @@ -981,7 +981,7 @@ writehexByte: store ffff, r0 ; Low nybble - load r0, lit0f + load r0, #0f and r0, r2 cleq r0, r0, nybble2hex store ffff, r0 @@ -995,109 +995,25 @@ writehexByte: ; clobbers: ; r3 newline: - load r3, litcharCR + load r3, #0d store ffff, r3 - load r3, litcharLF + load r3, #0a store ffff, r3 ret ; noreturn error: - load r0, litchare + load r0, #65 store ffff, r0 - load r0, litcharr + load r0, #72 store ffff, r0 store ffff, r0 - load r1, litcharo + load r1, #6f store ffff, r1 store ffff, r0 cleq r0, r0, newline halt -; ================================================================== -; Literals pool -; ================================================================== - -lit01: data 01 -lit02: data 02 -lit03: data 03 -lit04: data 04 -lit05: data 05 -lit06: data 06 -lit07: data 07 -litcharBS: -lit08: data 08 -lit09: data 09 -litcharLF: -lit0a: data 0a -lit0b: data 0b -lit0c: data 0c -litcharCR: -lit0d: data 0d -lit0e: data 0e -lit0f: data 0f - -litcharSpace: -lit20: data 20 - -litchar0: -lit30: data 30 -litchar1: -lit31: data 31 -litchar2: -lit32: data 32 -litchar3: -lit33: data 33 -litchar4: -lit34: data 34 -litchar5: -lit35: data 35 -litchar6: -lit36: data 36 -litchar7: -lit37: data 37 -litchar8: -lit38: data 38 -litchar9: -lit39: data 39 - -litcharUppera: -lit41: data 41 -litcharUpperb: -lit42: data 42 -litcharUpperc: -lit43: data 43 -litcharUpperd: -lit44: data 44 -litcharUppere: -lit45: data 45 -litcharUpperf: -lit46: data 46 - -litchara: -lit61: data 61 -litcharb: -lit62: data 62 -litcharc: -lit63: data 63 -litchard: -lit64: data 64 -litchare: -lit65: data 65 -litcharf: -lit66: data 66 - -litcharo: -lit6f: data 6f - -litcharr: -lit72: data 72 - -litcharPipe: -lit7c: data 7c - -litff: data ff - ; ================================================================== ; Data ; ==================================================================