;^Z80^
TERMINAL:
                EXTERNAL  BELL,CD_STAT,KBSTAT,KBREAD,KEYCLICK,CHR_OUT
                EXTERNAL  U_STAT,CHR_IN,HANDLE_CHAR
; init the screen and stuff
                CALL    BELL
MAIN_LOOP:
; see if we're still online
                CALL    CD_STAT
                JP      Z,CARRIER_LOST
;
                CALL    KBSTAT
                OR      A
                JR      Z,MAIN_1        ; No char yet
                CALL    KBREAD
;
                CALL    KEYCLICK
                CALL    CHR_OUT       ; Send out to modem
; Get a key from modem
MAIN_1:
                CALL    U_STAT
                JR      Z,NO_CHAR_PRESENT ; No characters today
                CALL    CHR_IN          ; Read it
                CALL    HANDLE_CHAR     ; Out to screen
NO_CHAR_PRESENT:
                JP      MAIN_LOOP       ; More abuse
;
;
CARRIER_LOST:
                RET                     ; Time to go away now.