From 0b50634efb88c10b3aeacd19fdaecdf22eb9b67d Mon Sep 17 00:00:00 2001 From: NeilFraser Date: Mon, 20 Apr 2026 20:34:40 +0200 Subject: [PATCH 1/2] Fix the input function for receiving '0' The zero key returns code 16, not 0. Add a special case to change 16 to 0. A side effect of this observation is that the DSKY can't return a 0, so using -1 as a flag isn't needed, we can just use 0. --- Apps/Blockly/Main.agc | 16 ++++++++++------ 1 file changed, 10 insertions(+), 6 deletions(-) diff --git a/Apps/Blockly/Main.agc b/Apps/Blockly/Main.agc index 99b65bd..31729f9 100644 --- a/Apps/Blockly/Main.agc +++ b/Apps/Blockly/Main.agc @@ -101,16 +101,19 @@ $Math.agc # Function that waits for a DSKY keypress. # Returns (on A): # Keycode of keypress. -INPUT CA NUM1 # Set INPUTTING to -1 - COM +INPUT CA NUM0 # Set INPUTTING to 0 TS INPUTING - # Wait until INPUTING isn't -1. + # Wait until INPUTING isn't 0. INPUT-WT CA INPUTING - INCR A EXTEND BZF INPUT-WT - CA INPUTING - RETURN + # Special case: '0' key encodes as 16, return as 0. + CA NUM16 + EXTEND + SU INPUTING + BZF INPUT-ZR # Return 0 (which is what's in A). + CA INPUTTING +INPUT-ZR RETURN # Function that sleeps for the specified duration. @@ -179,6 +182,7 @@ NUM6 DEC 6 NUM7 DEC 7 NUM8 DEC 8 NUM9 DEC 9 +NUM16 DEC 16 NUM100 DEC 100 # System Address Locations From 67d6b509a0aaba1013951569b4df43b55629afaa Mon Sep 17 00:00:00 2001 From: NeilFraser Date: Mon, 27 Apr 2026 11:59:51 +0200 Subject: [PATCH 2/2] Rename boolean comparison functions to fix naming --- Apps/Blockly/Boolean-test.agc | 16 ++++++++-------- Apps/Blockly/Boolean.agc | 20 ++++++++++---------- 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/Apps/Blockly/Boolean-test.agc b/Apps/Blockly/Boolean-test.agc index 90cfe52..ab85535 100644 --- a/Apps/Blockly/Boolean-test.agc +++ b/Apps/Blockly/Boolean-test.agc @@ -37,7 +37,7 @@ TCR TSBL_33 # 3 > 3 -> 0 TCR MA-SU - TCR BL-GT + TCR BL-LTE TCR BL-NOT TCR PUSH CA NUM0 @@ -46,7 +46,7 @@ TCR TSBL_33 # 3 < 3 -> 0 TCR MA-SU - TCR BL-LT + TCR BL-GTE TCR BL-NOT TCR PUSH CA NUM0 @@ -63,7 +63,7 @@ TCR TSBL_00 # +0 > -0 -> 0 TCR MA-SU - TCR BL-GT + TCR BL-LTE TCR BL-NOT TCR PUSH CA NUM0 @@ -72,7 +72,7 @@ TCR TSBL_00 # +0 < -0 -> 0 TCR MA-SU - TCR BL-LT + TCR BL-GTE TCR BL-NOT TCR PUSH CA NUM0 @@ -90,7 +90,7 @@ TCR TSBL_36 # 3 >= 6 -> 0 TCR MA-SU - TCR BL-LT + TCR BL-GTE TCR PUSH CA NUM0 TCR PUSH @@ -98,7 +98,7 @@ TCR TSBL_36 # 3 > 6 -> 0 TCR MA-SU - TCR BL-GT + TCR BL-LTE TCR BL-NOT TCR PUSH CA NUM0 @@ -116,7 +116,7 @@ TCR TSBL_71 # 7 <= 1 -> 0 TCR MA-SU - TCR BL-GT + TCR BL-LTE TCR PUSH CA NUM0 TCR PUSH @@ -124,7 +124,7 @@ TCR TSBL_71 # 7 < 1 -> 0 TCR MA-SU - TCR BL-LT + TCR BL-GTE TCR BL-NOT TCR PUSH CA NUM0 diff --git a/Apps/Blockly/Boolean.agc b/Apps/Blockly/Boolean.agc index 5016087..194c663 100644 --- a/Apps/Blockly/Boolean.agc +++ b/Apps/Blockly/Boolean.agc @@ -12,26 +12,26 @@ # TCR MA-SU # Calls for '<': # TCR MA-SU -# TCR BL-LT +# TCR BL-GTE +# TCR BL-NOT # Calls for '>': # TCR MA-SU -# TCR BL-GT +# TCR BL-LTE +# TCR BL-NOT # Calls for '<=': # TCR MA-SU -# TCR BL-GT -# TCR BL-NOT +# TCR BL-LTE # Calls for '>=': # TCR MA-SU -# TCR BL-LT -# TCR BL-NOT +# TCR BL-GTE # Suffix functions to MA-SU. # Operates on the 'A' register, no need for the stack. -# BL-GT returns 1 if first '>' second. -# BL-LT returns 1 if first '<' second. -BL-GT COM -BL-LT EXTEND +# BL-LTE returns 1 if first '<=' second. +# BL-GTE returns 1 if first '>=' second. +BL-LTE COM +BL-GTE EXTEND BZMF BL-1 # Return with 1. TCF BL-0 # Return with 0.