Re: LZ:83 ASM


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

Re: LZ:83 ASM



On Fri, 6 Sep 1996, Rob Taylor wrote:


> the way I see it, there doesn't seem to be any way to create a string 
> (!)
> the best thing to do is to create a 16k string (or 8k if 16k isn't 
> possible) and then use _CHKFINDSYM to find it:


I was doing the same thing you are except I was padding OP1 with
zeros using ZEROOP1.  You seem to be filling it in with the name
of the variable as though it's a string.  I'm assuming that
VARNAME is that address of the name.  The problem is that there
arent named strings on the 83.  There are Str1 through Str0 and
their names are 0 through 9.  Str1-0 is just what you see on the
screen.  I will try filling in OP1 with 0 (for Str1) and see what
happens but I don't expect much.  I realize that's not what youre
doing but I don't know what else to try.


I did use my hex viewer to play around in ram last night and I
found the location of the string's data.  CHKFINDSYM is supposed
to return the address of the data in DE but it doesnt.  I also
always get a return with the carry set, which explains that,
however, I do find the address of the strings entry in the
variable table in HL, as the docs say.  This doesn't happen
every time but it usually does.


There is a call, I forget it's name, to create strings, but I
haven't tried that one yet.  I've gotten kind of bogged down
trying to make CHKFINDSYM work.


Any more thoughts on this are welcome.  I'll spend some more time
on it this weekend.


Barry


> i.e.
> 
>  LD DE, $8039   ;OP1
>  LD HL,VARNAME
>  LD BC,10
>  LDIR   ;COPY NAME TO OP1
> 
>  CALL _CHKFINDSYM
>   JR C,ERROR
> 
>  LD HL,0
>  LD BC,16*1024        ; 16K, CHANGE IF VAR IS LESS
>  LDIR
> 
>  RET 
> 
> ERROR
>  RET
> 
> 
> VARNAME
>  DC.B 4,"ROM",0   ; {TYPE,NAME,ZERO TERMINUS}
>  
> 
> Rob Taylor MAIL - mailto:rtaylor@ticalc.org 
>            WEB  - http://www.u-net.com/~rtaylor/    
> 


References: