From 66dd813d7bf603ef0a511c47a522a8e724072316 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Wed, 28 Sep 2022 02:08:40 +0300 Subject: [PATCH] Factor out dumpFloat in calculator.asm --- calculator.asm | 56 ++++++++++++++++++++++++++++---------------------- 1 file changed, 31 insertions(+), 25 deletions(-) diff --git a/calculator.asm b/calculator.asm index 633fd4a..c63ba1e 100644 --- a/calculator.asm +++ b/calculator.asm @@ -2,34 +2,10 @@ org 0 cleq r0, r0, normalize -xor r0, r0 -load r1, #12 -cleq r0, r0, pushWord load r0, fResultPtr+0 load r1, fResultPtr+1 cleq r0, r0, pushWord -dumpFResult: - cleq r0, r0, stSwap - cleq r0, r0, peekWord - or r0, r1 - xor r2, r2 - breq r0, r2, dumpFResultEnd - cleq r0, r0, stDec - - cleq r0, r0, stSwap - cleq r0, r0, stDup - cleq r0, r0, stLoadByte - cleq r0, r0, popWord - xor r0, r0 - or r0, r1 - cleq r0, r0, writehexByte - load r0, #20 - store ffff, r0 - cleq r0, r0, stInc - breq r0, r0, dumpFResult - -dumpFResultEnd: -cleq r0, r0, newline +cleq r0, r0, dumpFloat load r0, fResultPtr+0 load r1, fResultPtr+1 @@ -78,6 +54,36 @@ printend: cleq r0, r0, newline halt +dumpFloat: + xor r0, r0 + load r1, #12 + cleq r0, r0, pushWord + dumpFloatLoop: + cleq r0, r0, peekWord + or r0, r1 + xor r2, r2 + breq r0, r2, dumpFloatEnd + cleq r0, r0, stDec + + cleq r0, r0, stSwap + cleq r0, r0, stDup + cleq r0, r0, stLoadByte + cleq r0, r0, popWord + xor r0, r0 + or r0, r1 + cleq r0, r0, writehexByte + load r0, #20 + store ffff, r0 + cleq r0, r0, stInc + cleq r0, r0, stSwap + breq r0, r0, dumpFloatLoop + +dumpFloatEnd: + cleq r0, r0, popWord + cleq r0, r0, popWord + breq r0, r0, newline + + debug: store debugr0, r0 store debugr1, r1