.ORIG x0430 ; System call starting address
ST R7, SaveR7 ; Save R7 so we can RET
; at the bottom
ST R1, SaveR1 ; R1 will be used to poll the CRT
; hardware
; Write the character
TryWrite LDI R1, CRTSR ; Get status
BRzp TryWrite ; Bit 15 on says CRT is ready
WriteIt STI R0, CRTDR ; Write character
; return from trap
Return LD R1, SaveR1 ; Restore registers
LD R7, SaveR7 ; Restore jump return R7
RET ; Return from trap
CRTSR .FILL xF3FC ; Address of CRT status register
CRTDR .FILL xF3FF ; Address of CRT data register
SaveR1 .FILL x0000
SaveR7 .FILL x0000
.END