.ORIG   x04A0
START        ST      R7,SaveR7
             JSR     SaveReg
             LD      R2,Newline
             JSR     WriteChar
             LEA     R1,PROMPT
;
;
Loop         LDR     R2,R1,#0       ; Get next prompt char
             BRz     Input
             JSR     WriteChar
             ADD     R1,R1,#1
             BR      Loop
; 
Input        JSR     ReadChar
             ADD     R2,R0,#0       ; Move char to R2 for writing
             JSR     WriteChar      ; Echo to monitor
;    
             LD      R2, Newline
             JSR     WriteChar
             JSR     RestoreReg
             LD      R7,SaveR7
             RET
;
SaveR7       .FILL   x0000
Newline      .FILL   x000A
Prompt       .STRINGZ  "Input a character>"
;
WriteChar    LDI     R3,CRTSR
             BRzp    WriteChar
             STI     R2,CRTDR
             RET
CRTSR        .FILL   xF3FC
CRTDR        .FILL   xF3FF 
;
ReadChar     LDI     R3,KBSR
             BRzp    ReadChar
             LDI     R0,KBDR
             RET
KBSR         .FILL   xF400
KBDR         .FILL   xF401
;	     
SaveReg      ST      R1,SaveR1
             ST      R2,SaveR2
             ST      R3,SaveR3
             ST      R4,SaveR4
             ST      R5,SaveR5
             ST      R6,SaveR6
             RET
;	     
RestoreReg   LD      R1,SaveR1
             LD      R2,SaveR2
             LD      R3,SaveR3
             LD      R4,SaveR4
             LD      R5,SaveR5
             LD      R6,SaveR6
             RET
SaveR1       .FILL   x0000
SaveR2       .FILL   x0000
SaveR3       .FILL   x0000
SaveR4       .FILL   x0000
SaveR5       .FILL   x0000
SaveR6       .FILL   x0000
             .END