Chapter 2: TI-83 Plus Specific Information 35
TI-83 Plus Developer Guide Third Release May 28, 2002
Example: Search for list L1 to determine if it is a real or complex list.
LD HL,L1name
B_CALL Mov9ToOP1 ; OP1 = list L1 name
;
B_CALL FindSym ; look up list variable in OP1
JR C,NotFound ; jump if it is not created
;
AND 1Fh ; remove none data type bits
CP CListObj
JR Z,ComplexList ; jump if the list was complex
.
.
.
L1name:
DB ListObj, tVarLst, tL1, 0
• Is the variable’s data in RAM or archived in Flash ROM?
This is important information since variables that are archived need to be unarchived
for use by nearly all system routines and also for easier direct access by
applications.
– B register = 0 if the variable resides in RAM.
DE register = address in RAM of the first byte of the variable data structure.
The address returned is valid as long as no memory is created or deleted by
archiving, unarchiving, creating, or deleting variables. If any of these actions are
taken, it is necessary to relook up the variable and get the new address of the
data structure.
– B register does not = 0 if the variable resides in archive.
Note: An archived variable may need to be unarchived to be used in certain system routines.
Example: Look up program ABC. If it is archived, then unarchive it.
LD HL,ProgABC
B_CALL Mov9ToOP1 ; OP1 = program ABC name
;
B_CALL ChkFindSym ; look up program
JR C,NotFound ; jump if it is not created
;
LD A,B ; ACC = archived/unarchived info
OR A ; is it archived?
JR Z,NotArchived ; jump if not
;
B_CALL Arc_Unarc ; unarchive the var
NotArchived:
ProgABC:
DB ProgObj, ‘ABC’, 0