Re: A85: What's wrong with this code


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

Re: A85: What's wrong with this code




well i see something thats wrong, you're not returning from your call to
SplitByte, just add a 'ret' to the end of that routine and it should fix
it. also in your WaitForExit routine, replace 'ret z', with just 'ret'.
later
Keith Batten

Erik L Gillespie wrote:
> 
> The ASM I previously sent out appears to do absolutely nothing.  I press
> Enter to run it on my calc (ZShell) and it sits there and locks the calc
> up.  Occasionally it will print something like it's supposed to like
> this:
> 
> L-a character
> R-some other character
> U-another character
> D-and another character
> 
> but it always locks up and I have to remove the batteries.  Sometimes it
> will clear the screen and I can see the busy indicator for awhile or it
> will print ERROR: Undefined
> but it always freezes up.
> 
> Here's the code in case you didn't see it the first time around:
> 
> #include "ti-85.h"
> 
>    .org  0
>    .db   "Bit-pair test",  0
> 
> ClipLeft    = $80DF
> ClipRight   = $80E0
> ClipUp      = $80E1
> ClipDown    = $80E2
> 
> InitClipping:
>    ld    a, (SomeByte)
>    ld    hl, ClipLeft
>    ld    b, 4
>    CALL_(SplitByte)
> 
> ShowClipping:
>    ROM_CALL(CLEARLCD)
> 
>    sub   a
>    ld    (CURSOR_ROW), a
>    ld    (CURSOR_COL), a
>    ld    a, 'L'
>    ROM_CALL(TX_CHARPUT)
>    ld    a, (ClipLeft)
>    ROM_CALL(TX_CHARPUT)
> 
>    sub   a
>    ld    (CURSOR_COL), a
>    inc   a
>    ld    (CURSOR_ROW), a
>    ld    a, 'R'
>    ROM_CALL(TX_CHARPUT)
>    ld    a, (ClipRight)
>    ROM_CALL(TX_CHARPUT)
> 
>    sub   a
>    ld    (CURSOR_COL), a
>    ld    a, 2
>    ld    (CURSOR_ROW), a
>    ld    a, 'U'
>    ROM_CALL(TX_CHARPUT)
>    ld    a, (ClipUp)
>    ROM_CALL(TX_CHARPUT)
> 
>    sub   a
>    ld    (CURSOR_COL), a
>    ld    a, 3
>    ld    (CURSOR_ROW), a
>    ld    a, 'D'
>    ROM_CALL(TX_CHARPUT)
>    ld    a, (ClipDown)
>    ROM_CALL(TX_CHARPUT)
> 
> WaitForExit:
>    call  GET_KEY
>    or    a
>    jr    z, WaitForExit
>    ret   z
> 
> SplitByte:
>    rlca
>    rlca
>    push  af
>    and   3
>    ld    (hl), a
>    inc   hl
>    pop   af
>    djnz  SplitByte
> 
> SomeByte:
>    .db   %00011011
> 
> .end
> 
> egillespie@juno.com
> erik_gillespie_1096@gwgate.kvcc.edu
> 
> "In a prototypical world, nothing ever goes wrong." -Scott Meyers
> 
> _____________________________________________________________________
> You don't need to buy Internet access to use free Internet e-mail.
> Get completely free e-mail from Juno at http://www.juno.com
> Or call Juno at (800) 654-JUNO [654-5866]


Follow-Ups: References: