Files

31 lines
873 B
NASM

; Tests a software interrupt that names a vector with nothing installed in it.
;
; Until the assembler can lay down a vector table, every entry reads as zero, and zero
; means no handler. Dispatching through one has to stop the machine and say which
; vector was empty, rather than jumping to the bottom of Program Memory and running
; whatever happens to be sitting there.
;
; The letter is printed first so that it is obvious the program ran at all, and that it
; stopped exactly where it should have.
;
; Correct output is:
; O
; a fault naming software vector 20, and a non zero exit.
#Program
start:
INIA 0d79 ; 'O'
OUTA 0x00
INIA 0x0A
OUTA 0x00
SWI 0d20 ; Nothing is installed here.
; Never reached. If the machine ever prints this, the empty vector was taken.
INIA 0d88 ; 'X'
OUTA 0x00
INIA 0x0A
OUTA 0x00
HALT