Interrupt system implemented, some new programs.

This commit is contained in:
Anachronaut
2026-08-15 00:44:13 -04:00
parent 638b68b25c
commit 6d1966d500
79 changed files with 2778 additions and 88 deletions
+41
View File
@@ -0,0 +1,41 @@
; Tests MVQA and MVQB.
;
; Every ALU result lands in Q, and Q is not an ALU operand. Without these two
; instructions the only way to use a result in the next sum is to store it into
; Data Memory and load it back, which costs two instructions and a Data Pointer
; that has to be pointing somewhere sensible.
;
; Correct output is:
; AAA
#Program
start:
CCF
INIA 0d60
INIB 0d5
ADD ; Q = 65, which is 'A'.
MVQA ; A = 65
OUTA 0x00
MVQB ; And B, from the same result.
OUTB 0x00
; A running total kept entirely in registers, which is the thing that was not
; possible before. Nothing here touches Data Memory at all.
CCF
RSTA
INIB 0d1
ADD ; Q = 1
MVQA
ADD ; Q = 2
MVQA
ADD ; Q = 3
MVQA
INIB 0d62
ADD ; Q = 65 again
MVQA
OUTA 0x00
INIA 0x0A
OUTA 0x00
HALT