Texas Instruments
Calculators and Educational SolutionsContentsTI Map/SearchFeedbackTI
Educational ResourcesProduct InformationAccessory StoreCustomer Support and ServicesFree DownloadsInternational Information

-----

Variable Format


VARIABLE FORMAT: TI-86
----------------------

Outside of the symbol table every var name is stored and
moved as a 10 byte entry, the size of a floating point number.
This is done so that all of the utility routines for moving
floating point numbers around also can be used to move variable
names.

The format of var names is illustrated here using OP1.


    -------------------------------------------------
   |  S | NL |        VAR NAME 1 - 8 BYTES           |
    -------------------------------------------------
     OP1  +1   +2   +3   +4   +5   +6   +7   +8   +9


    NL = length of the variable name

    S =  SIGN BYTE :    BIT         FLAG
                        ---         ----
                         0           --
                         1             |
                         2             |--  OBJECT TYPE
                         3             |
                         4           --

    OBJECT TYPE VALUE             OBJECT TYPE
    -----------------             -----------
           00                     REAL
           01                     COMPLEX
           02                     VECTOR - REAL
           03                     VECTOR - COMPLEX
           04                     LIST - REAL
           05                     LIST - COMPLEX
           06                     MATRIX - REAL
           07                     MATRIX - COMPLEX
           08                     CONSTANT - REAL
           09                     CONSTANT - COMPLEX
           0A                     EQUATION
           0B                     system use
           0C                     STRING
           0D                     GRAPH DATABASE - STANDARD
           0E                     GRAPH DATABASE - POLAR
           0F                     GRAPH DATABASE - PARAMETRIC
           10                     GRAPH DATABASE - DIFFERENTIAL EQUATION
           11                     PICTURE
           12                     PROGRAM
           13                     CONVERSION
           14                     system use
           15                     system use
           16                     system use
           17                     system use
           18                     system use
           19                     system use
           1A                     system use
           1B                     system use
           1C                     system use
           1D                     system use
           1E                     system use
           1F                     system use


        CREATING VARS :
        ---------------

        There exists a seperate routine for each data type to create a
        user vas of that type. What each of these routines has in common
        is the following :

        ;**********************************************************
        ;
        ;   INPUT : (OP1+1) = NL = LENGTH OF VARIABLE NAME, <= 8
        ;           (OP1+2) TO (OP1+9) = NAME OF VAR, UP TO 8 CHARS
        ;
        ;   OUTPUT : IF NOT SUCCESSFUL MEMORY ERROR.
        ;            VAR NAME ENTERED IN SYMTAB.
        ;            USERMEM = DATA AREA ALLOCATED
        ;            B,DE = POINTER TO DATA AREA ( ABS address )
        ;            OP4 = VARIABLE NAME
        ;            OP1 = garbage
        ;            HL = PTR TO SYMBOL TABLE ENTRY
        ;            Ram page 7 is loaded, makes hl a valid pointer
        ;
        ;           USES OP1,OP2,OP4
        ;
        ;            !!! THE CONTENTS OF THE VAR DATA WILL BE RANDOM !!!
        ;            !!! NO DEFAULT VALUES OR CLEARING IS DONE.      !!!
        ;
        ;**********************************************************

        What will be unique for each of the 'create' routines is the
        inputting of the size or dimension of the variable to create.


_CREATEREAL    equ      46EBh   ; CREATE REAL VAR OP1, NO INPUTS
;
_CREATECPLX    equ      46F7h   ; CREATE CPLX VAR OP1, NO INPUTS
;
_CREATERCONST  equ      46EFh   ; CREATE REAL CONSTANT VAR OP1, NO INPUTS
_CREATECCONST  equ      46F3h   ; CREATE CPLX CONSTANT VAR OP1, NO INPUTS
;
_CREATERVECT   equ      46FFh   ; CREATE REAL VECTOR OP1, L = # ELEMENTS
_CREATECVECT   equ      4707h   ; CREATE CPLX VECTOR OP1, L = # ELEMENTS
;
_CREATERLIST   equ      470Fh   ; CREATE REAL LIST OP1, HL = # ELEMENTS
_CREATECLIST   equ      4717h   ; CREATE CPLX LIST OP1, HL = # ELEMENTS
;
_CREATERMAT    equ      471Fh   ; CREATE REAL MATRIX OP1, HL = ROW,COL
_CREATECMAT    equ      4727h   ; CREATE CPLX MATRIX OP1, HL = ROW,COL
;
_CREATESTRNG   equ      472Fh   ; CREATE STRING OP1, HL = # BYTES
;
_CREATEEQU     equ      4737h   ; CREATE EQUATION OP1, HL = # BYTES
;
_CREATEPICT    equ      473Bh   ; CREATE PICTURE VAR OP1, NO INPUTS
;
_CREATEPROG    equ      474Fh   ; CREATE PROGRAM VAR OP1, HL = # BYTES
;
;
;       'LOOKING UP' AND DELETING VARS
;
;

;
;   FINDSYM : LOOK UP VAR OP1 IN SYMBOL TABLE
;
;
;   INPUT : (OP1+1) = NL = NAME LENGTH
;           (OP1+2) TO (OP1+9) = NAME
;
;   OUTPUT :
;             IF SYMBOL EXISTS:
;                A = DATA TYPE + FLAGS, DO: 'AND 1Fh' TO GET TYPE
;                CA=0
;                OP1 = VARIBALE FORMAT OF VAR, WITH TYPE
;
;                SYMBOL TABLE RAM PAGE IS SWAPPED IN (7)
;
;                POINTERS RETURNED
;                -----------------
;                HL = 2 LSB'S OF ABS ADDR OF SYMBOL ENTRY
;                     THE UPPER BYTE IS NOT RETURNED IN ANY REGISTER BUT
;                     IT WILL ALWAYS BE 2.
;
;                     SINCE THE SYMBOL TABLE RAM PAGE IS SWAPPED
;                     IN AND THE POINTER IN HL MATCHES THE ASIC
;                     ADDRESS OF THE SWAPPED RAM PAGE, HL CAN BE
;                     USED WITH NO CONVERISION TO ACCESS THE SYMBOL
;                     ENTRY AS LONG AS NO RAM PAGE SWAP IS DONE.
;
;                B,DE = PTR TO DATA, ABS ADDRESS
;
;             IF SYMBOL DOESN'T EXIST:
;                CA=1
;   USES : OP1
;****************************************************************************
;
_FINDSYM       equ      46CBh
;
;
;
;---------------------------------------------------------
;   DELVAR :    DELETE VAR, MUST EXITS
;
;               THE OUTPUT TO 'FINDSYM' IS THE INPUT TO
;               THIS ROUTINE.
;
;   INPUT: (HL) = SIGN DIGIT OF SYMBOL TABLE ENTRY OF
;               VARIABLE TO DELETE.
;
;           B,DE = PTR TO DATA
;
;
;
;
_delvar        equ      475Fh

TI-86 Assembly Programming

Calculators and Educational SolutionsContentsTI Map/SearchFeedbackTI

(c) Copyright 1998 Texas Instruments Incorporated. All rights reserved.
Trademarks