[A83] Problem with code
[Prev][Next][Index][Thread]
[A83] Problem with code
Can anyone tell me what is wrong with this app code?
Instead of displaying the text to the screen with vputs, it just displays garbage.
Martin Smith
smity42@yahoo.com
*************************************************************************************
;Include file needed to access system routines
include "ti83plus.inc"
EXT_APP equ 1 ;This definition is required of all apps
cseg ;This linker directive is required of all apps.
;This is the application header definition area required for all apps.
db 080h,0Fh ;Field: Program length
db 00h,00h,00h,00h ;Length=0 (N/A for unsigned apps)
db 080h,012h ;Field: Program type
db 01h,04h ;Type= Shareware, TI-83Plus
db 080h,021h ;Field: App ID
db 01h ;Id = 1
db 080h,031h ;Field: App Build
db 01h ;Build = 1
db 080h,048h ;Field: App Name
db 049h,06fh,06eh,073h,020h,038h,033h,02bh ;Name = "Ions 83+" must be 8 characters
db 080h,081h ;Field: App Pages
db 01h ;App Pages = 1
db 080h,090h ;No default splash screen
db 03h,026h ,09h,04h, 04h,06fh,01bh,80h ;Field: Date stamp- 5/12/1999
db 02h,0dh,040h ;Dummy encrypted TI date stamp signature
db 0a1h ,06bh ,099h ,0f6h ,059h ,0bch ,067h
db 0f5h ,085h ,09ch ,09h ,06ch ,0fh ,0b4h ,03h ,09bh ,0c9h
db 03h ,032h ,02ch ,0e0h ,03h ,020h ,0e3h ,02ch ,0f4h ,02dh
db 073h ,0b4h ,027h ,0c4h ,0a0h ,072h ,054h ,0b9h ,0eah ,07ch
db 03bh ,0aah ,016h ,0f6h ,077h ,083h ,07ah ,0eeh ,01ah ,0d4h
db 042h ,04ch ,06bh ,08bh ,013h ,01fh ,0bbh ,093h ,08bh ,0fch
db 019h ,01ch ,03ch ,0ech ,04dh ,0e5h ,075h
db 80h,7Fh ;Field: Program Image length
db 0,0,0,0 ;Length=0, N/A
db 0,0,0,0 ;Reserved
db 0,0,0,0 ;Reserved
db 0,0,0,0 ;Reserved
db 0,0,0,0 ;Reserved
;End of header data
StartApp: ;The app starts here
RES trigDeg,(IY+trigFlags) ;use small font
B_CALL ClrLCDFull ;Clear the screen
B_CALL RunIndicOff ;turn off the run indicator
ld a, 0 ;set start point of list
ld (point), a ;save it
MainLoop: ;main loop of program
call DrawScreen ;draw everything on the screen
NoRedraw: ;loop for nothing redrawn
B_CALL GetCSC ;wait for keypress
cp skUp ;check if up arrow
jp z, Mup ;if yes move list
cp skDown ;check if down arrow
jp z, Mdown ;if yes move list
cp skClear ;check if clear
jp z, Endo ;if yes exit
cp skMode ;check if mode
jp z, Endo ;if yes exit
cp skMath ;check if a
jp z, SearchA ;and goto
cp skApps ;check if b
jp z, SearchB ;and goto
cp skPrgm ;check if c
jp z, SearchC ;and goto
cp skRecip ;check if d
jp z, SearchD ;and goto
cp skSin ;check if e
jp z, SearchF ;and goto
cp skCos ;check if f
jp z, SearchF ;and goto
cp skTan ;check if g
jp z, SearchG ;and goto
cp skPower ;check if h
jp z, SearchH ;and goto
cp skSquare ;check if i
jp z, SearchI ;and goto
cp skComma ;check if j
jp z, SearchL ;and goto
cp skLParen ;check if k
jp z, SearchL ;and goto
cp skRParen ;check if l
jp z, SearchL ;and goto
cp skDiv ;check if m
jp z, SearchM ;and goto
cp skLog ;check if n
jp z, SearchN ;and goto
cp sk7 ;check if o
jp z, SearchO ;and goto
cp sk8 ;check if p
jp z, SearchP ;and goto
cp sk9 ;check if q
jp z, SearchS ;and goto
cp skMul ;check if r
jp z, SearchS ;and goto
cp skLn ;check if s
jp z, SearchS ;and goto
cp sk4 ;check if t
jp z, SearchT ;and goto
cp sk5 ;check if u
jp z, SearchZ ;and goto
cp sk6 ;check if v
jp z, SearchZ ;and goto
cp skSub ;check if w
jp z, SearchZ ;and goto
cp skStore ;check if x
jp z, SearchZ ;and goto
cp sk1 ;check if y
jp z, SearchZ ;and goto
cp sk2 ;check if z
jp z, SearchZ ;and goto
jp NoRedraw ;if not letter, try again.
Endo:
B_CALL ClrLCDFull ;Clear the screen
B_JUMP JForceCmdNoChar ;Exit the application
Mup:
ld a, (point) ;get current point
cp 0 ;check if at top
jp z, NoRedraw ;if yes don't scroll
dec a ;scroll up
ld (point), a ;save
jp MainLoop ;redraw
Mdown:
ld a, (point) ;get current point
cp 103 ;check if at bottom
jp z, NoRedraw ;if yes don't scroll
inc a ;scroll down
ld (point), a ;save
jp MainLoop ;redraw
SearchA: ;Letter A jump
ld a, 0 ;get point
ld (point), a ;save
jp MainLoop ;redraw
SearchB: ;same again.
ld a, 8
ld (point), a
jp MainLoop
SearchC:
ld a, 18
ld (point), a
jp MainLoop
SearchD:
ld a, 36
ld (point), a
jp MainLoop
SearchF:
ld a, 38
ld (point), a
jp MainLoop
SearchG:
ld a, 40
ld (point), a
jp MainLoop
SearchH:
ld a, 41
ld (point), a
jp MainLoop
SearchI:
ld a, 50
ld (point), a
jp MainLoop
SearchL:
ld a, 53
ld (point), a
jp MainLoop
SearchM:
ld a, 55
ld (point), a
jp MainLoop
SearchN:
ld a, 63
ld (point), a
jp MainLoop
SearchO:
ld a, 67
ld (point), a
jp MainLoop
SearchP:
ld a, 70
ld (point), a
jp MainLoop
SearchS:
ld a, 82
ld (point), a
jp MainLoop
SearchT:
ld a, 92
ld (point), a
jp MainLoop
SearchZ:
ld a, 99
ld (point), a
jp MainLoop
DrawScreen:
B_CALL grbufclr ; clear the buffer
ld hl, BackGround ; get address of splash screeen
ld de, plotSScreen ; get address of TI graphic buffer
ld bc, 756 ; set number of bytes to copy (96*(64-1)/8
ldir ; copy the bytes
B_CALL grbufcpy ; bind the graphic image
PutIons: ;draw ions
ld a, (point) ;a = no of lines down
ld h, a ;h = no of lines down
ld l, 17 ;l = 17 (length of string for multiply)
B_CALL HTimesL ;hl = no of lines down * 17
ld e, l
ld d, h ;de = no of lines down * 17
ld hl, Ions ;hl = start point of list
add hl, de ;hl = point of 1st string on screen
ld b, 7 ;7 strings to display (for counter)
ld d, 0 ;for pen column
ld e, 0 ;for pen row
PutILoop: ;loop for seven strings
ld a, e
ld (penCol), a ;ld e(0) into pencol and d into penrow
ld a, d
ld (penRow), a ;ld e(0) into pencol and d into penrow
B_CALL VPutS ;put string to screen
ld a, d
add a, 8 ;next penrow
ld d, a
push bc
ld bc, 17
pop bc
add hl, bc ;start of next string
djnz PutILoop ;loop 7 times
PutForm: ;draw formulas
ld a, (point) ;a = no of lines down
ld h, a ;h = no of lines down
ld l, 11 ;l = 11 (length of string for multiply)
B_CALL HTimesL ;hl = no of lines down * 11
ld e, l
ld d, h ;de = no of lines down * 11
ld hl, Formulas ;hl = start point of list
add hl, de ;hl = point of 1st string on screen
ld b, 7 ;7 strings to display (for counter)
ld d, 58 ;for pen column
ld e, 0 ;for pen row
PutFLoop: ;loop for seven strings
ld (penCol), de ;ld e(0) into pencol and d into penrow
B_CALL VPutS ;put string to screen
ld a, e
add a, 8 ;next penrow
ld e, a
push bc
ld bc, 17
pop bc
add hl, bc ;start of next string
djnz PutFLoop ;loop 7 times
ret ;return to main loop
point: ;where in the list it is at
db 0
Ions: ;list of ions
db " ",0
db " ",0
db " ",0
db "Acetate ",0
db "Aluminum ",0
db "Amide ",0
db "Ammonium ",0
db "Antimony (3,5) ",0
db "Arsenate,ortho- ",0
db "Arsenic (III,V) ",0
db "Arsenite ",0
db "Barium ",0
db "Benzoate ",0
db "Beryllium ",0
db "Bicarbonate ",0
db "Bismuth ",0
db "Bisulfate ",0
db "Borate ",0
db "Boron ",0
db "Bromate ",0
db "Bromide ",0
db "Cadmium ",0
db "Calcium ",0
db "Carbonate ",0
db "Cerium (III,IV) ",0
db "Cesium ",0
db "Chlorate ",0
db "Chlorate, Per- ",0
db "Chloride ",0
db "Chlorite ",0
db "Chlorite, Hypo- ",0
db "Chromate ",0
db "Chromate, Di- ",0
db "Chromium(2,3) ",0
db "Citrate ",0
db "Cobalt (II,III) ",0
db "Copper (II) ",0
db "Cyanate ",0
db "Cyanide ",0
db "Diammine slvr(l)",0
db "Di-H phosphate ",0
db "Fluoride ",0
db "Formate ",0
db "Gold (I,III) ",0
db "6x cyanoferrate ",0
db "6x-cy-frate(3) ",0
db "Hydride ",0
db "Hydrogen ",0
db "H - carbonate ",0
db "H - phosphate ",0
db "H - sulfate ",0
db "H - sulfite ",0
db "Hydroxide ",0
db "Iodate ",0
db "Iodide ",0
db "Iron (II,III) ",0
db "Lead (II,IV) ",0
db "Lithium ",0
db "Magnesium ",0
db "Manganate ",0
db "Manganate, Per- ",0
db "Mnganese(1,4,7) ",0
db "Mercury (I) ",0
db "Mercury (II) ",0
db "Molybdate ",0
db "Molybdenum(2 6) ",0
db "Nickel ",0
db "Nitrate ",0
db "Nitride ",0
db "Nitrite ",0
db "Oxalate ",0
db "Oxide ",0
db "Oxide, Per- ",0
db "Perchlorate ",0
db "Phosphate ",0
db "Phsphate, Hypo- ",0
db "Phsphate, Meta- ",0
db "Phsphate, Ortho-",0
db "Phsphate, Pyro- ",0
db "Phosphide ",0
db "Phsphite, Hypo- ",0
db "Phsphite, Ortho-",0
db "Platinum(2,4) ",0
db "Potassium ",0
db "Propionate ",0
db "Selenide ",0
db "Selenite ",0
db "Silicate, Meta- ",0
db "Silicate, Ortho-",0
db "Silver ",0
db "Sodium ",0
db "Strontium ",0
db "Sulfate ",0
db "Sulfide ",0
db "Sulfite ",0
db "Tartarate ",0
db "Telluride ",0
db "Thallium (I,III)",0
db "Thiocyanate ",0
db "Thiosulfate ",0
db "Tin (II,IV) ",0
db "Titanium(1,3,4) ",0
db "Zinc ",0
db "Zirconium(134) ",0
db " ",0
db " ",0
db " ",0
Formulas: ;list of formulas
db " ",0
db " ",0
db " ",0
db "C2H3O2 -1 ",0
db "Al +3 ",0
db "NH2 -1 ",0
db "NH4 +1 ",0
db "Sb +1 ",0
db "AsO4 -3 ",0
db "As +1 ",0
db "AsO3 -3 ",0
db "Ba +2 ",0
db "C7H5O2 -1 ",0
db "Be +2 ",0
db "HCO3 -1 ",0
db "Bi +3 ",0
db "HSO4 -1 ",0
db "BO3 -3 ",0
db "B +3 ",0
db "BrO3 -1 ",0
db "Br -1 ",0
db "Cd +2 ",0
db "Ca +2 ",0
db "CO3 -2 ",0
db "Ce +1 ",0
db "Cs +1 ",0
db "ClO3 -1 ",0
db "ClO4 -1 ",0
db "Cl -1 ",0
db "ClO2 -1 ",0
db "ClO -1 ",0
db "CrO4 -2 ",0
db "Cr2O7 -2 ",0
db "Cr +1 ",0
db "C6H5O7 -1 ",0
db "Co +1 ",0
db "Cu +1 ",0
db "OCN -1 ",0
db "CN -1 ",0
db "Ag(NH3)2+1",0
db "H2PO4 -1 ",0
db "F -1 ",0
db "CHO2 -1 ",0
db "Au +1 ",0
db "Fe(CN)6 -4",0
db "Fe(CN)6 -3",0
db "H -1 ",0
db "H +1 ",0
db "HCO3 -1 ",0
db "HPO4 -2 ",0
db "HSO4 -1 ",0
db "HSO3 -1 ",0
db "OH -1 ",0
db "IO3 -1 ",0
db "I -1 ",0
db "Fe +1 ",0
db "Pb +1 ",0
db "Li +1 ",0
db "Mg +2 ",0
db "MnO3 -2 ",0
db "MnO4 -1 ",0
db "Mn +2 ",0
db "Hg +2 ",0
db "Hg +2 ",0
db "MoO4 -2 ",0
db "Mo +1 ",0
db "Ni +2 ",0
db "NO3 -1 ",0
db "N3 -3 ",0
db "NO2 -1 ",0
db "C2O4 -2 ",0
db "O -2 ",0
db "O2 -2 ",0
db "ClO4 -1 ",0
db "PO4 -3 ",0
db "P2O6 -4 ",0
db "PO3 -1 ",0
db "PO4 -3 ",0
db "P2O7 -4 ",0
db "P -3 ",0
db "H2PO2 -1 ",0
db "PO3 -3 ",0
db "Pt +1 ",0
db "K +1 ",0
db "C3H5O2 -1 ",0
db "Se -2 ",0
db "SeO3 -2 ",0
db "SiO3 -2 ",0
db "SiO4 -2 ",0
db "Ag +1 ",0
db "Na +1 ",0
db "Sr +2 ",0
db "SO4 -2 ",0
db "S -2 ",0
db "SO3 -2 ",0
db "C4H4O6 -2 ",0
db "Te -2 ",0
db "Tl +1 ",0
db "SCN -1 ",0
db "S2O3 -2 ",0
db "Sn +1 ",0
db "Ti +1 ",0
db "Zn +2 ",0
db "Zr +1 ",0
db " ",0
db " ",0
db " ",0
BackGround:
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 255,255,255,255,255,255,255,255,255,255,255,255
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 0,0,0,0,0,0,0,128,0,0,0,0
db 255,255,255,255,255,255,255,255,255,255,255,255
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 0,0,0,0,0,0,0,0,0,0,0,0
db 127,255,255,255,255,199,255,255,255,255,255,254
db 222,221,255,255,94,238,252,123,255,253,250,247
db 142,201,181,179,114,109,127,122,165,159,59,147
db 222,213,85,87,86,236,70,234,170,173,90,183
db 220,93,85,59,90,237,125,234,170,157,90,215
db 222,221,187,147,83,109,124,98,46,189,90,155
db 127,255,255,255,255,199,255,255,255,255,255,254
Martin Smithsmity42@yahoo.com
---------------------------------
Do You Yahoo!?
Send FREE Valentine eCards with Yahoo! Greetings!
Follow-Ups:
References: