Re: A83: Strings


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

Re: A83: Strings




> I was woundering how do you extract the info from strings and display it on
> the screen.  There is almost no documentatio on how to do this.  If any one
> knows please tell me.  Also mabey someone can add this to the wish list, or
> maby TI will answer themselves.

here's one i made. i coulda' swore i posted this? maybe not.

notes:

1) "buffer" is a safe mem area that you copy the string data to so you
can add a 0 terminator. there are better ways to do this. for instance
you could use _putc to draw it char by char, so you don't need to add a
0 terminator.

2) the different var names are

   Str1 $04,$AA,$00
   Str2 $04,$AA,$01
   Str3 $04,$AA,$02
   Str4 $04,$AA,$03
   Str5 $04,$AA,$04
   Str6 $04,$AA,$05
   Str7 $04,$AA,$06
   Str8 $04,$AA,$07
   Str9 $04,$AA,$08
   Str0 $04,$AA,$09


zstring.z80:

.NOLIST
#define equ .equ
#define EQU .equ
#define end .end
#include "ti83asm.inc"
#include "tokens.inc"
.LIST

#define buffer   8265h

.org 9327h

     call _zerooop1    ; load var name
     ld hl,strngname   ;
     ld de,op1         ;
     ld bc,3           ;
     ldir              ;
     call _chkfindsym  ; look it up
     ret c             ; return if it is not found
     ex de,hl          ; exchange de and hl
     ld c,(hl)         ; get LSB of the size
     inc hl            ; next byte
     ld b,(hl)         ; get MSB of the size
     inc hl            ; next byte
     ld de,buffer      ; buffer
     ldir              ; copy data
     ld a,0            ;
     ld (de),a         ; add 0 terminator
     ld hl,buffer      ; address to buffer
     call _puts        ; display string
     call _newline     ; move to a new line
     ret

strngname:

     .db $04,$AA,$00  ; object type strng, var type strng, var Str1

.end
END


References: