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