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

-----

TI-86 Display


;
;       version : 9/25/97
;


TI-86 DISPLAY
-------------

        Note: Remember that all symbols used here are equated to values in
              the include file TI86ASM.INC.

        The TI-86 has a memory-mapped display, RAM address 0FC00h - 0FFFFh.

 TEXT WRITING
 ------------

    The TI-86 has 2 different fonts which are used for displaying chars.

        1) 5x7 characters
        2) 6 pixels high by a variable width

        Different display routines are are used for each of the fonts.

        The character values are documented in the include file.

        The character set in both fonts is the same; only the
        size of the chars is different.


    5x7 Font
    --------
       This font is not designed for use on the graph screen.

       For this font, the home screen is divided into 8 rows
       by 21 columns of character locations.

               c c                   c
               o o                   o
               l l                   l

               0 1     . . .         20
               _______________________
       row 0  | | |                 | |
              |-----------------------|
       row 1  | | |                 | |
              |-----------------------|
              | | |                 | |
        .     | | |                 | |
        .     | | |                 | |
        .     | | |                 | |
              | | |                 | |
              |-----------------------|
       row 7  | | |                 | |
               -----------------------


       Most display routines will use two system bytes
       as inputs to provide the location for writing to the home screen.

       CURROW = a byte for the row location
       CURCOL = a byte for the col location

       These are in the include file.

       The following system flags control display to the home screen:

       1) The appTextSave flag controls whether or not all writes to
          the home screen are also written to the textshadow.

                appTextSave,(iy+appFlags)

          This should only be needed if your ASM program
          will display other screens than the home screen.

       2) The textInverse flag determines if writes to the display
          are to be normal or reverse video. Set it for reverse.

                textInverse,(iy+textflags)

       3) The appAutoScroll flag controls what occurs when text
          is written to the home screen and runs out of room on
          the bottom. If set, then the screen will automatically scroll
          up a row. Set it to scroll.

                appAutoScroll,(iy+appFlags)

       4) The textScrolled flag is set if the screen has scrolled
          while text was being wrintten.

                textScrolled,(iy+textflags)



    Variable Width Font
    -------------------
       This font is made of up chars that are 6 pixels high
       with variable widths.

       This font can be written to the graph screen as well as
       the home screen.

       Chars in this font can be displayed anywhere on the display,
       unlike the 5x7 chars which can only be displayed in
       preset character locations.

       A pixel location specifies where to display
       chars in this font.

                    -------------------
                   |(0,0)       (127,0)|
                   |                   |
                   |                   |
                   |                   |
                   |(0,63)     (127,63)|
                    -------------------

       The top row for each of these chars is blank.

       Most display routines will use two system bytes
       as inputs to provide the location for writing to the home screen.

       PENROW = a byte for the row location.
       PENCOL = a byte for the col location.

       These are in the include file.

       Note: The graph backup buffer is used as the "shadow"
             for variable font writes. So when using this font
             in the home screen make sure this flag is reset :

             textwrite,(iy+new_grf_flgs)


       Note: Variable font chars cannot be written to
             the graph screen and its backup buffer
             with one call. If the char needs to be written
             to both the display and the graph backup buffer
             then you must call the display routine once
             with the TEXTWRITE flag reset to write to
             the display, and once with the flag reset to
             write to the buffer.



DISPLAY ROUTINE HEADERS:
-----------------------


;
;---------------------------------------------------------------
; clrLCD - clear LCD screen
;
; registers destroyed:	bc, de, hl.
;---------------------------------------------------------------
;
_clrLCD         equ     4A7Eh
;
;---------------------------------------------------------------
; clrScrn - clear LCD screen.  LCD memory is set to zeros.  ASCII
;		version of screen is set to blanks if appTextSave
;		flag is set.
;
; registers destroyed:	bc, de, hl.
;---------------------------------------------------------------
;
_clrScrn        equ     4A82h
;
;---------------------------------------------------------------
; putmap - display a character at current cursor location.
;
;		input:	a := character number
;                       textInverse flag = 0, normal video
;                                          1, inverse video
; registers destroyed:	none.
;---------------------------------------------------------------
;
_putmap         equ     4A27h
;
;---------------------------------------------------------------
; putc - display a character and advance cursor
;
;		input:	a := character number
;                       textInverse flag = 0, normal character
;                                          1, invert character
;	       output:	curRow and curCol updated
; registers destroyed:	none.
;---------------------------------------------------------------
;
_putc           equ     4A2Bh
;
;---------------------------------------------------------------
; _puts - send string 0 terminated to display.
;
;           HL MUST BE RAM PAGE 0 OR A ROM ADDRESS
;
;
;               input:  hl -> first character of string.
;	       output:	C Flag = 1 if entire string was displayed.
;			C Flag = 0 if ran off end of screen.
;	 side effects:	cursor location is updated.
; registers destroyed:  hl
;---------------------------------------------------------------
_puts           equ     4A37h
;
;---------------------------------------------------------------
; _putps - send string with leading length byte to display.
;
;               input:  hl -> length byte of string, followed by ascii string
;	 side effects:	cursor location is updated.
; registers destroyed:	a, f, b, hl.
;---------------------------------------------------------------
;
_putps          equ     4A3Bh
;
;---------------------------------------------------------------
; vputmap - display variable width character at current pen
;	    location.
;
;		input:	a := character number
;                       textInverse flag = 0, normal video
;                                          1, inverse video
;                       textEraseBelow flag = 0, normal
;                                             1, erase line below char
;
;        TEXTWRITE,(IY+NEW_GRF_FLGS) = 0 FOR WRITING TO PLOTSSCREEN
;                                      1 FOR WRITING TO DISPLAY
;
;               OUTPUT : CA=1 IF COULDN'T FIT ON THE LINE
;
; registers destroyed:	af, de, ix.
;---------------------------------------------------------------
;
_vputmap        equ     4AA1h
;
;---------------------------------------------------------------
; vputs - send string of variable-width characters to display.
;
;           ALL STRINGS IN ROM OR RAM PAGE 0
;
;
;               input:  hl -> first character of string
;                    textEraseBelow flag = 0, normal
;                                        1, erase line below char
;	 side effects:	pen location is updated.
; registers destroyed:  A,hl.
;---------------------------------------------------------------
;
_vputs           equ    4AA5h
;
;---------------------------------------------------------------
; vputsn - send string of variable-width characters to display.
;
;           ALL STRINGS IN ROM OR RAM PAGE 0
;
;               input:  hl -> first character of string
;			b := number of characters to display
;	 side effects:	pen location is updated.
; registers destroyed:	b, hl.
;---------------------------------------------------------------
;
_vputsn         equ     4AA9h

TI-86 Assembly Programming

Calculators and Educational SolutionsContentsTI Map/SearchFeedbackTI

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