.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