LZ: CAZ--how to test for multiple keys


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

LZ: CAZ--how to test for multiple keys



;Okay, all, I know that not many use caz (well, actually genau is what i'm
;using, but caz is easier to spell), but ANY help is appreciated.

;My problem is:  I do the key checks work?  Is that section right?
Shouldn't it
;work?  My thought is the call then call then ret then ret...is it?  How can I
;fix that?  This program compiles fine with genau and string85, and didn't
crash
;my calc.  After assembling, hit enter, then exit.

;here goes (I'm REALLY sorry about the length, but I need help.):



#INCLUDE 'TI-85.H'

X       EQU 0X80DF
Y       EQU 0X80E0
ORG 0
DEFM 'Move the Man', 0

INIT:
        LD A, 4
        OUT (5), A
        CALL ROM_CALL
        DEFW CLEARLCD
        LD A, 10
        LD (0X80DF), A
        LD A, 10
        LD (0X80E0), A
        CALL CALL_
        DEFW (SHAPE)

KEY:
        CALL GET_KEY
        CP 0X9
        CALL JUMP_Z
        DEFW (LAST)
        CP K_UP
        CALL CALL_Z
        DEFW (UP)
        CP K_DOWN
        CALL CALL_Z
        DEFW (DOWN)
        CP K_RIGHT
        CALL CALL_Z
        DEFW (RIGHT)
        CP K_LEFT
        CALL CALL_Z
        DEFW (LEFT)

        JR NZ, KEY


SHAPE:                             ;  / This stuff works, it's
        LD A, (X)                  ; |  just drawing the
        LD B, A                    ;  \ character.
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        LD B, A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (PLOTPIXEL)
        RET

XSHAPE:                                   ; / This should work.
        LD A, (X)                         ;|  It's just erasing
        LD B, A                           ; \ the character
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        LD B, A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)

        LD A, (X)
        INC A
        INC A
        INC A
        LD B, A
        LD A, (Y)
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        INC A
        LD C, A
        LD A, 0
        CALL CALL_
        DEFW (DELPIXEL)
        RET

UP:
        CALL CALL_
        DEFW (DELPIXEL)
        LD A, (Y)
        INC A
        LD (Y), A
        CALL CALL_
        DEFW (PLOTPIXEL)         ;<-- Is it that I'm calling a subroutine IN
        RET                      ;    a subroutine...?  It's in all of 'em...?
DOWN:
        CALL CALL_
        DEFW (DELPIXEL)
        LD A, (Y)
        DEC A
        LD (Y), A
        CALL CALL_
        DEFW (PLOTPIXEL)
        RET
RIGHT:
        CALL CALL_
        DEFW (DELPIXEL)
        LD A, (X)
        INC A
        LD (X), A
        CALL CALL_
        DEFW (PLOTPIXEL)
        RET
LEFT:
        CALL CALL_
        DEFW (DELPIXEL)
        LD A, (X)
        DEC A
        LD (X), A
        CALL CALL_
        DEFW (PLOTPIXEL)
        RET

PLOTPIXEL:
        CALL ROM_CALL
        DEFW FIND_PIXEL
        LD DE, 0XFC00
        ADD HL, DE
        OR (HL)
        LD (HL), A
        RET

DELPIXEL:
        CALL ROM_CALL
        DEFW FIND_PIXEL
        LD DE, 0XFC00
        ADD HL, DE
        XOR 255
        AND (HL)
        LD (HL), A
        RET

LAST:
        LD HL, 3
        LD (CURSOR_ROW), HL
        LD HL, 1
        LD (CURSOR_COL), HL
        LD HL, (PROGRAM_ADDR)
        LD DE, MESSAGE
        ADD HL, DE
        CALL ROM_CALL
        DEFW D_ZT_STR

LASTI:
        CALL GET_KEY
        CP K_EXIT
        RET Z
        JR NZ, LASTI


MESSAGE:
        DEFM "Thanks for playing!", 0

END


;Marc Heikens
;kheikens@owt.com