A86: Using _vputs on the TI-86


[Prev][Next][Index][Thread]

A86: Using _vputs on the TI-86



This applys to TI-86 assembly:

I need to have a line drawn on the bottom of the text when it is inverted.
Compare the inverted
text to the title on SQRXZ. There is something called textEraseBelow. Where
and How do
I access this property?? The bit table seems pretty cool. I hope TI
documents it soon

- Cyber Optic

;---------------------------------------------------------------
; _vputs - send string of variable-width characters to display.

;          @ penrow,pencol
;  input: hl -> first character of string
;       textEraseBelow := 0, normal
;           1, erase line below char
;           textwrite = 1 if writing text to graph screen
;                       will write to disp and back up graph
;                       buffer, plotscreen
;
;           textwrite = 0 if write to display only
;
;  side effects: pen location is updated.
;-----------------------

#include "asm86.h"
#include "ti86asm.inc"

; Terms:
; LSB: Least Significant Byte
; MSB: Most Significant Byte

.org _asm_exec_ram ;All assembly programs start here.



        call _clrLCD      ; Clears the Liquid Crystal Display (LCD screen)

        ld hl,hello       ; HL = start of address of string

        ld e,1
        ld d,1

        ld (_penCol),de     ; Set cursor (menustyle) to row 1, col 1
        ld hl, hello

        set 3, (IY + 05)  ; Have White text on a Black Background
        call _vputs       ; Show it
        res 3, (IY + 05)  ; Black text on White (default)


        ld b, 70          ; 70
        ld c, 30          ; 30
        ld d, 1           ; 0 for white, 1 dark, 2 XOR, 3 test, etc.
        call _IPoint      ; Plots pixel at b,c

keyloop:
        call $5371        ; Get key
        cp $37            ; Has the [exit] key been pressed?
        jp z, QuickQuit ; If so jump to QuickQuit
        jp keyloop        ; else repeat loop

QuickQuit:

        ret               ; returns to calling program (ends asm prgm)


hello:
        .db "Z80 assembly RuLEz!!",0 ; note NULL byte

.end