A89: Re: Reading Keypresses Directly


[Prev][Next][Index][Thread]

A89: Re: Reading Keypresses Directly




are your batteries low?  it's possible that you need a bigger delay w/ low
batteries.
try changing the \wait from 5 loops to 10


>
> I'm having some trouble with detecting keypresses directly from the port.
.
> . somehow, no matter what mask I store in ($600019), it is ignored and
> treated as if it was %00000000 (check all rows in the keyboard matrix),
and
> so whenever I try to check for a bit in the resulting mask from ($60001B),
> it is on as long as any key in that column is pressed.  For example, in
> using the matrix below, if I store %11111110 number at all in ($600019)
and
> test Bit 3 (for the right key), it will be set if either right, *, 9, 8,
7,
> OR | are pressed, and my mask has no effect on this.  I've tried 2
different
> keyboard reading routines (one from the Zelda 89 source and one below from
> ti89.acz.org), neither of which make a difference.  Someone PLEASE let me
> know why this isn't working -- it's the only thing keeping me from
releasing
> a public Pokemon Beta (and it's had me stuck for a week. . . I'm
desperate)
> and creating some pretty nasty crash bugs -- Thanks =)
>
>                     -Scott Noveck (SMN)
>                      smn@calc.org
>                      Lead Programmer:
>                      Pokemon 89 - Zelda 80
>                      http://ccia.calc.org
>
>
> (from ti89.acz.org:)
>         Bit 7    Bit 6    Bit 5    Bit 4    Bit 3    Bit 2    Bit 1    Bit
0
> --------------------------------------------------------------------------
--
> %1111110 Alpha   Diam     Shift    2nd      Right    Down     Left     Up
> --------------------------------------------------------------------------
--
> %1111101 F5      Clear    ^        /        *        -        +
Enter
> --------------------------------------------------------------------------
--
> %1111011 F4      BkSpc    T        .        9        6        3        (-)
> --------------------------------------------------------------------------
--
> %1110111 F3      Catalog  Z        (        8        5        2        .
> --------------------------------------------------------------------------
--
> %1101111 F2      Mode     Y        )        7        4        1        0
> --------------------------------------------------------------------------
--
> %1011111 F1      Home     X        =        |        EE       STO>
Apps
> --------------------------------------------------------------------------
--
> %0111111                                                               ESC
> --------------------------------------------------------------------------
--
>
> Key Reading Routine:
>     move.b #%11111110,($600019)  ;set the row with 2nd in it
>     move.b #5,d0
> \wait:
>     nop
>     dbra.b d0,\wait              ;wait for this to take effect
>     move.b ($60001b),d0          ;read back keypress data
>     btst.b #4,d0                 ;bit 4 is column 4
>     beq p2nd                     ;if bit reset, 2nd is pressed
>
>
>



References: