Re: A83: asm - very perplexing problem


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

Re: A83: asm - very perplexing problem




If they keys are in the same group you can also check them both in the same
bit-test. just and the two bitmasks together. I don't remember how to doo that
in tasm, since it was 1½ year since I touched a z80 calc last time, but you can
do it so it is calculated at compile time. NOT useing the and instruction that
is.
I think there is a passage in asmguru about this, since I have some memory of me
explaining this to Matthew :)

//Olle

Jkhum98@aol.com wrote:
> 
> In a message dated 6/28/00 10:02:03 PM Central Daylight Time,
> VVeakling@aol.com writes:
> 
> > Okay, I am trying to write a tennis game and i came to this little
> challenge
> >  that i cant solve... it helps if anyone is aquainted with TENNIS for the
> >  gameboy
> >
> >  I need to be able to check if up to three keys are pressed, one button for
> >  swinging (there is [2nd] which is a faster hit, and [alpha] which is a
> >  slower, lob-like hit), and two directional keys at a time.  This is
> because
> > a
> >  player could be running using one or two directional keys (combining for
> >  eight way movement), swinging straight (no directional keys), or swinging
> in
> >
> >  a direction, by pressing the swing button and one or two directional keys
> >  (for 9 places to hit the ball on the other side).  You could see how all
> of
> >  this can get very confusing...hope i havent lost you yet.  Now, when i
> >  started this project i assumed all of this would be possible because in
> > other
> >  games you can move diagonally, ( i.e. Airhawk).  I have been able to
> achieve
> >
> >  the combining of [2nd]+direction and [alpha]+direction..... but
> >  direction+direction and ([2nd] or [alpha])+direction+direction have been
> > more
> >  complicated because the directions are in the same group.  please help if
> > you
> >  know how i can do this... the only theoretical wayi came up with would be
> >  checking for singular keys in direct input and i know that isnt possible.
> >  thank you very much, i know this is a very long email
> >
> >  Jared Verdi
> 
> Why would that not be possible? You just read the keyport, and do bit tests
> for the keys you want, and goto one label, and then under that label you
> check the same keyport but with a different bit test, and goto another label
> if so. Here is an example...
> 
> loop:
>      ld a, $FF
>      out (1), a
>      ld a, $FE
>      out (1), a
>      in a, (1)
>      BIT 0, a
>      jr z, down
>      BIT 1, a
>      jr z, left
>      BIT 2, a
>      jr z, right
>      BIT 3, a
>      jr z, up
>      ld a, $FF
>      out (1), a
>      ld a, $BF
>      out (1), a
>      in a, (1)
>      cp $DF
>      jr z, second
>      etc
>      jr loop
> down:
>      BIT 1, a
>      jr z, downleft
>      BIT 2, a
>      jr z, downright
>      ld a, $FF
>      out (1), a
>      ld a, $BF
>      in a, (1)
>      cp $DF
>      jr z, downsecond
> justdown:
>      etc
> 
> I hope you get the idea. This should work for your purposes. It's a long
> process though if you have many combinations like "down-left-second", but
> this method will work alright, despite how large it is. Let me know if you
> have any other questions. cya...
> 
> Jason_K



Follow-Ups: References: