From bafaef9c4479e385d3b1a7253e2dd20081b16f2f Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Juhani=20Krekel=C3=A4?= Date: Thu, 15 Sep 2022 02:06:34 +0300 Subject: [PATCH] Improve error message on stack underflow in calculator.asm --- calculator.asm | 31 +++++++++++++++++++++++++++---- 1 file changed, 27 insertions(+), 4 deletions(-) diff --git a/calculator.asm b/calculator.asm index a26a558..653eada 100644 --- a/calculator.asm +++ b/calculator.asm @@ -524,7 +524,7 @@ popByte: load r2, SPStart+0 load r3, SPStart+1 brneq r0, r2, popByteNoUnderflow - breq r1, r3, error + breq r1, r3, underflow popByteNoUnderflow: cleq r0, r0, decWord @@ -994,14 +994,37 @@ newline: store ffff, r3 ret +; noreturn +underflow: + load r0, #55 ; U + store ffff, r0 + load r0, #6e ; n + store ffff, r0 + load r0, #64 ; d + store ffff, r0 + load r0, #65 ; e + store ffff, r0 + load r0, #72 ; r + store ffff, r0 + load r0, #66 ; f + store ffff, r0 + load r0, #6c ; l + store ffff, r0 + load r0, #6f ; o + store ffff, r0 + load r0, #77 ; w + store ffff, r0 + load r0, #20 + store ffff, r0 + ; noreturn error: - load r0, #65 + load r0, #65 ; e store ffff, r0 - load r0, #72 + load r0, #72 ; r store ffff, r0 store ffff, r0 - load r1, #6f + load r1, #6f ; o store ffff, r1 store ffff, r0 cleq r0, r0, newline