!to "c64kernal.prg", cbm

 !addr inp_device = $99
 !addr chars_in_keyb_buf = $c6
 !addr keyb_buf = $0277


; -- Input from keyboard --

 *=$e5b4
inp_from_keyb
 ldy keyb_buf     ; $0277
 ldx #0
-
 lda keyb_buf+1,x ; $0278
 sta keyb_buf,x   ; $0277
 inx
 cpx chars_in_keyb_buf ; $c6
 bne -
 dec chars_in_keyb_buf ; $c6
 tya
 cli
 clc
 rts


; -- Get from RS232 --
;    (noch nicht implementiert)

 *=$f086
get_from_rs232
 rts


; -- Get ... --

 *=$f13e
get_dots
 lda inp_device  ; $99
 bne +
 ; Eingabe von Tastatur
 lda chars_in_keyb_buf; $c6
 beq ++
 sei
 jmp inp_from_keyb ; $e5b4
+
 cmp #2
 bne $f166
dots_from_rs232
 sty $97
 jsr get_from_rs232
 ldy $97
++
 clc
 rts


; -- Input ($f157) --
;    (noch nicht implementiert)

 *=$f166
 rts


; -- Sprungtabelle
 *=$ffe4
getin
 jmp get_dots     ; ($032a) -> $f13e