;;-------------------------------------------------------------------------------------------- kl_new_frame_fly equ &bcd7 kl_del_frame_fly equ &bcdd km_char_return equ &bb0c ;;-------------------------------------------------------------------------------------------- org &8000 ld b,end_cmd_string-cmd_string ld hl,cmd_string call autotype_string ret cmd_string: defb "|DISC",13 end_cmd_string: str_ptr: defw 0 str_remaining: defb 0 autotype_string: ld (str_ptr),hl ld a,b ld (str_remaining),a ;; setup an interrupt to be executed every frame flyback ;; (50hz) ld hl,ff_event_block ld b,&81 ld c,0 ld de,ff_event_routine call kl_new_frame_fly ret ;;-------------------------------------------------------------------------------------------- stop_autotype: ld hl,ff_event_block call kl_del_frame_fly ret ;;-------------------------------------------------------------------------------------------- ff_event_block: defs 10 ;;-------------------------------------------------------------------------------------------- ff_event_routine: ;; location char is returned to. ld a,(&b62a) cp &ff ret nz ld a,(str_remaining) or a jp z,stop_autotype dec a ld (str_remaining),a ld hl,(str_ptr) ld a,(hl) inc hl ld (str_ptr),hl call km_char_return ret