[A83] Re: dested register


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

[A83] Re: dested register




Well, since the value for the register B is dested.. i thought maybe I 
could push it before I make a rom call and pop it before the _ipoint makes 
the pixel.

However, I get errors like:
C:\DEV_PACK>asm pixel
----- Assembling pixel for the TI-83 Plus...
TASM Z80 Assembler.       Version 3.0.1  June, 1994.
  Copyright (C) 1985-1994 by Speech Technology Incorporated
tasm: pass 1 complete.
temp.z80 line 0023: Label not found: (b)
temp.z80 line 0023: Unused data in MS byte of argument. (2)
temp.z80 line 0044: Label not found: (hl)
temp.z80 line 0044: Unused data in MS byte of argument. (200)
temp.z80 line 0047: Label not found: (b)
temp.z80 line 0047: Unused data in MS byte of argument. (2)
temp.z80 line 0053: Label not found: (hl)
temp.z80 line 0053: Unused data in MS byte of argument. (200)
temp.z80 line 0056: Label not found: (b)
temp.z80 line 0056: Unused data in MS byte of argument. (2)
temp.z80 line 0072: Label not found: (hl)
temp.z80 line 0072: Unused data in MS byte of argument. (200)
tasm: pass 2 complete.
tasm: Number of errors = 12
----- There were errors.

C:\DEV_PACK>


I dont think 'B' nor 'HL' are lables... so that must not be how you load 
them... any suggestions?
HERE IS THE CODE:


.nolist
         #include "ion.inc"
         #DEFINE kLeft       02h
         #DEFINE kRight      01h
         #DEFINE kUp         03h
         #DEFINE kDown       04h     ;All these guys are hex code
         #DEFINE kEnter      05h     ;for keys on the Ti-keyboard.
         #DEFINE kClear      09h
.list
#ifdef TI83P
         .org    progstart-2
         .db     $BB,$6D
#else
         .org    progstart
#endif
         ret
         jr      nc,begin
         .db     "Pixel Mover",0
begin:
         bcall(_clrLCDFull)      ;Clear the screen.
         ld b,47
         ld hl,b
         push hl
         ld c,47
         ld d,1                  ;Set D to 1.
         bcall(_IPoint)
GetKey:
         bcall(_getKey)          ;Asked for a key.
         cp kLeft                ;Compare key with code for left.
         jp z,Left               ;If equals 0, go to left.
         cp kRight
         jp z,Right
         cp kUp
         jp z,Up
         cp kDown
         jp z,Down
         cp kClear
         jp z,Quit
         jp GetKey
Left:
         ld d,0                  ;Set D to 0.
         pop hl
         ld b,hl
         bcall(_IPoint)
         dec b
         ld hl,b
         push hl                 ;Decrement B
         jp Draw
Right:
         ld d,0
         pop hl
         ld b,hl
         bcall(_IPoint)
         inc b
         ld hl,b
         push hl
         jp Draw
Up:
         ld d,0
         bcall(_IPoint)
         inc c
         jp Draw
Down:
         ld d,0
         bcall(_IPoint)
         dec c
         jp Draw
Draw:
         ld d,1
         pop hl
         ld b,hl
         bcall(_IPoint)
         push hl
         jp GetKey               ;Repeat
Quit:
         ret                     ;Return to OS.
.end
END


At 05:31 PM 3/16/2002 -0600, you wrote:


> >Does _ipoint destroy register B?
>
>
>I am using a sample program in ASM guru converted for ION.  That moves a
>pixel around the screen.  However, they Y-postion (or the b register) seems
>to get destroyed.  Thus, I can move a pixel up and down... but only on the
>left side of the screen.




Follow-Ups: References: