// Store numbers in memory // And keep current sum in B // Sum sound and LED effects // 1 RUN to start! // Init registers // A <- 0 00 8 TIA 0 01 0 // Index register: Y <- 0 02 A TIY 0 03 0 // A <-> B, we are using B for the sum, hence init with 0 as well! 04 2 CH A<->B, Y<->Z // Now load both again 05 8 TIA 0 06 0 07 A TIY 0 08 0 // Output Y on LEDs (NOT binary, 0 to 6) 09 E CAL SETR 0A 1 // Keypad input loop 0B 0 KAD 0C F JUMP 0B // Flag = 1 if no input, then loop 0D 0 0E B // Show input (in A) on HEX DISP 0F 1 AO // Check if 0 -> exit 10 C CIA 0, <> 0 -> Flag = 1 11 0 12 F JUMP 1C // If Flag (A <> 0), then jump 13 1 14 C // Else, input = 0 -> END program 15 E Make error sound 16 7 // Turn off HEX DISP 17 E CAL 0 18 0 // Endless loop 19 F JUMP 19 1A 1 1B 9 // Else, input > 0 // Store key (A) into memory cell M(Y) 1C 4 AM M(Y) <- A // Add to M(Y) to B, bring in sum in B 1D 2 CH 1E 6 M+ A <- A + M(Y) 1F 2 CH // Delay to give time for keypad input display 20 8 TIA 5 21 5 22 E CAL E TIMR 23 C // Incr. Y 24 B AIY 1 25 1 // Y -> Z and incr. Y again 26 2 CH 27 B AIY 1 28 1 // DISP HEX current sum, as we currently have sum in A 29 1 AO HEX DISP A // Store sum back to B (keep it from being overwritten) 2A 2 // Next input 2B F JUMP 09 2C 0 2D 9