Re: A83: Could somebody _please_ check this code soon?
[Prev][Next][Index][Thread]
Re: A83: Could somebody _please_ check this code soon?
i already wrote a routine to center graph font. i was the one the one
who asked pat for the info on that rom call, so i kinda beat you to the
punch. even though it looks remarkably similar, i can guarantee that i
wrote it before you. i am NOT trying to take credit for your work. i
just uploaded it to ticalc, in the routines dir. but since it won't show
up for a day or so, read on and you will be enlightened... (in case you
were wondering why i included a separate routine just to get the length
of a string, it is because i needed it in the program i was writing the
centering routine for. so it just made sense, cause then i could djnz!)
;--------= put string centered =--------
; Author: Ian Graf
; (ian_graf@geocities.com)
; Platform: TI-83 Assembly
; Version: 1.0
; Date: 10/6/98
;---------------------------------------
; to use this routine load hl with the
; location of the string to center on
; the graph screen. the string will be
; drawn centered at penrow.
;
; ex:
;
; ld hl,somestring
; call vputsc
;
; feel free to use this in your own
; programs, but please give me credit.
;---------------------------------------
#define sfontlen $4A6C
#define vputs $4781
#define pencol $8252
;--------= put string centered =--------
; input: hl - string
; penrow - row
; output: string drawn centered/
; cliped
vputsc: push hl ;
call getlength ; get length of string
ld b,e ;
xor a ;
countl: push bc ;
push hl ;
push af ;
ld a,(hl) ; get character
ld h,0 ;
ld l,a ;
add hl,hl ; hl = hl*8
add hl,hl ;
add hl,hl ;
call sfontlen ; get char width
pop af ;
cp 93 ; clip?
jr nc,contc ;
add a,b ;
contc: pop hl ;
inc hl ;
pop bc ;
djnz countl ;
ld b,a ; center string
ld a,96 ;
sub b ;
srl a ;
ld (pencol),a ;
pop hl ;
jp vputs ; draw string
;--------= get length of string =-------
getlength:
ld bc,100 ; get length of string in hl
xor a ; max length 100 chars
push hl ; (the max length can be changed
cpir ; to fit your needs)
ld hl,99 ;
sbc hl,bc ;
ex de,hl ;
pop hl ;
ret ; de = length