Changes
<pre>
        org 09c40h
sub_9c40h:
        call 0bd19h ;; mc wait flyback
        di
        or 0c0h
        out (c),a
        out (c),a
        inc b
        ld hl,0fa66h ;; timeout.
        in a,(c)
        cp 0fdh  ;; 11111101. Bits are '1' if 'no press', but '0' if pressed. checking joy 0 down.
        jr z,l9cb9hsub_9caeh:l9c79
        inc l
        jr nz,l9ca8hl9c68
        inc h
        jr nz,l9ca8hl9c68
        ld hl,0ffffh
        jr l9cbdh
        ld de,00420h
        add hl,de
        ld (0a410h),hl
        pop bc
        ld a,082h
        out (c),a
        ret
sub_9c8ah:
        call 09da6h
        call sub_9ce4h
        ret
sub_9c94:
        ld a,h
        ld c,l
        sbc hl,de
        jr nc,l9ce5h
        add hl,de
l9ce5h:
        ld l,c
        ret
sub_9caeh:
        ld a,l
        ld c,h
        djnz l9cf5h
        ret
sub_9cc1h:
        call sub_9c40h
        ld a,0ffh
        ld (0a410h),hl
        ret
sub_9ce4:
        ld a,000h
        ld bc,01a1ah
l9d65h:
        push bc
        call 09d35hsub_9d35h
        call sub_9c40h
        pop bc
        djnz l9d65h
        ret
sub_9d35h:
        ld bc,(0a418h)
l9d79h:
        ld (0a412h),de
        ret
sub_9de6h:
        ld bc,03fd0h
        ldir
        ret
        ld bc,03fd0h
        ld hl,05bfeh
        ldir
        ret
        push hl
        push de
