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: