TRS80 model 100 and T102 related archive

Radio Shack Catalog# 700-2245

This section provide essential information for using ROM functions

LCD Function

Funciton Name Description Entry condition Exit condition Entry Address (Hex.)
LCD Displays a character on the LCD at current cursor position (Also RST 4) A= Character to be displayed none 4B44
SETCUR Move cursor to specified location. D = column number ( 1-40 )
E = row number
none 7440
PLOT Turn on pixecl at specified location. D= x coordinate (0-239)
E = y coordinate (0-63)
none 744C
UNPLOT Turn off pixecl at specified location D = x coordinate (0-239)
E = y coordinate (0-63)
none 744D
POSIT Set cursor position. H = column number (1-40)
L = Low Number
none 427C
ESCA Send Specified Escape Code Sequence A = escape code none 4270

Routines for Generating Common LCD Functions and Escape code

Function Name Description Entry Address (Hex.) Equiv. ESC
CRLF Generate a Carriage Return and Line Feed 4222 --
HOME Move cursot to Home position (1,1) 422D --
CLS Clear display 4231 --
SETSYS Set system Line (lock line 8, Label) 4235 T
RSTSYS Reset system line (unlock line 8, Label 423A U
LOCK Lock Display (no scrolling) 423F Y
UNLOCK Unlock display (scrolling) 4244 W
CURSON Turn on cursor 4249 P
CUROFF Turn off cursor 424E Q
DELLIN Delete line at cursor position 4253 M
INSLIN Insert a blank line at cursor position 4258 L
ERAEOL Erase from cursor to end of line 425D K
ENTREV Set Reverse chracter mode 4269 P
EXREV Turn off Reverse character mode 426E q

Variable and Status Locations

Name Contents Address
CSRY Cursor Position (ROW) F639
CSRX Cursor Position (Column) F63A
BEGLCD Start of LCD memory FE00
ENDLCD End of LCD memory FF40

Keyboard Functions

Function Name Description Entry Conditions Exit conditions Entry Address (Hex)
KEYREAD Scan keyboard for a key. Return with or without one. none A = character, if any
Flag Set Reset
Z No key found Key found
Carry Character in code table below Normal character set code
When Carry is set, Register A will contain one of the following:
Register A value Key Pressed
0 F1
1 F2
2 F3
3 F4
4 F5
5 F6
6 F7
7 F8
8 LABEL
9 PRINT
0A Shift-PRINT
0B PASTE
7242
CHGET Wait and get character from Keyboard none A = character code
Carry --set if special character
Carry --reset if normal character
(<F1>-<F8> return preprogrrammed strings)
12CB
CHSNS Check keyboard queue for characters none Z flag set if queue empty, rest if keys pending 13DB
KEYX Check keyboard queue for chracters or BREAK none Z flag set if queue empty, reset if keys pending
Carry flag set when BREAK entered, reset with any other key
7270
BRKCHK Check for BREAK characters only (CTRL-C or -S) none Carry flat is set if BREAK or PAUSE entered, reset if not BREAK characters 7283
INLIN Get line from keyboard (terminated by <ENTER>) none Data stored at location F685 4644

Using Function Keys Routines

The function table consists of character strings to be used by the keyboard driver when processing <F1> - <F8> keys. The strings have maximum length of 16 characters and are terminated by a "80" ( Hex.) code. If the last character of the string is OR'ed with 80, the character will also serve as a terminator. The entire string will be placed in the keyboard buffer when the appropriate strings for all 8 key is pressed. You must specify character strings for all 8 function keys (use the terminator byte for any you wish to ignore).

Example of Function table

    FCTAB   DEFM 'Files'    ; F1
            DEFW  0D80
            DEFM 'Load'     ; F2
            DEFB 80
            DEFM 'Save'     ; F3
            DEFB 80
            DEFM 'Run'      ; F4
            DEFW 0D80
            DEFM 'List'     ; F5
            DEFW 0D80
            DEFB 80         ; Ignore F6
            DEFB 80         ; Ignore F7
            DEFM 'Menu'     ; F8
            DEFW 0D80

Function Name Description Entry onditions Exit conditions Entry Address (HEX)
STFNK Set Function key definitions HL = Address of function table (above) none 5A7C
CLRFLK Clear function key definition table (fills with 80's) none none 5A79
DSPNFK Display function keys none none 42A8
STDSPF Set and display function keys HL = Start address of function table none 42A5
ERAFNK Erase function key display none none 428A
FNKSB Display function table (if enabled none none 5A9E

Printing Routines

Function Name Description Entry conditions Exit conditions Entry Address (Hex)
PRINTR Send a character tothe line printer A = Character to be printed Carry is set if cancelled by BREAK, reset if normal return 6D3F
PNOTAB Print character without exanding tab characters A = character to be printed 1470
PRTTAB Print a character expandign tabs to spaces A = character to be printed 4B55
PRTLCD Print contents of LCD none none 1E5E

RS232-C and Modem Routines

Function Name Description Entry conditions Exit conditions Entry address (Hex)
DISC Disconnect Phone line none none 52BB
CONN Connect phone line none none 52D0
DIAL Dial a specified phone number HL = Ph. number address none 532D
RCVX Check RS232 queue for characters none A = number of characters in queue
Z flas is set if no data, reset if characters pending
6D6D
RV232C Get a character from Rs232 received queue none A = character received
Z flag set if O.K., reset if error (PE, FF, or OF)
Carry set if Break pressed, else reset
SENSCQ Send an XON resume character (CTL-Q) none none 6E0B
SENDCS Send an XOFF pause character (CTL-S) none none 6E1E
SD232C Send a character to the RS-232 or Modem (with XON/XOFF) A = character to be sent 6E32
CARDET Detect carrier none A = 0 if carrier
Z flag is set if carrier, else reset
6EEF
SNDCOM Send a character to RS232-C or modem (wihtout XON?XOFF flow control) C = characer to be sent 6E3A
BAUDST Set Baud rate for RS232-C H = Baud rate (1-9,M) none 6E75
INZCOM Initiailize RS232-C and Modem H = Baud rate (1-9,M)
L = UART configuratin code (see UART byte description below)
Bit 0: specifies number of Stop Bits 0=1, 1=2
Bit 1-2: Parity Setting. 00=None, 01 = Even, 10 = Odd
Bit 3-4: Word Length: 00=6, 01=7, 10=8
The byte is ANDed wit 1FH to ignore Bits 5-7. The text string containign hte current STAT settings is located at F65BH(5 bytes): Baud, Length, Parity, Stop Bits and XON/XOFF switch.
none 6EA6
SETSER Set serial interface parameters and acivate RS232-C/Modem HL = Start address of ASCII string containing parameters terminated by a binary zero ('78E1E',0). Syntax same as in Telcom's STAT
Carry set for RS232-C, reset for Modem
none 17E6
CLSCOM Deactivate RS232-C/Modem none none 6ECB

Cassette Recorder Routines

Function Name Description Entry Conditions Exit Conditions Entry Address (HEX)
DATAR Read character from cassette (no checksum) none D = character from cassette 702A
CTON Turn motor on none none 14A8
CTOFF Turn motor off none none 14AA
CASIN Read a character from cassette and update checksum C = current checksum A = character
C = contains the updated checksum
14B0
CSOUT Send character to cassette and update checksum A = character to be sent
C = current checksum
C = updated checksum 14C1
SYNCW Write cassette header and sync byte only none none 6F46
SYNCR Read cassette header and sync byte only none none 6F85
DATAW Write a character to cassette (no checksum) A = character to be sent none 6F5B

RAM Files Routines

The Directory Table (located at F962) contains all file location, type and status information.

Each file is managed by an 11-byte directory entry in the format:

        Byte 1: Directory Flag (for file type and status)
        Bytes 2-3: Address of file
        Bytes 4-11: 8 Byte filename
    

The Directory Flag contains the following information:

        Bit 7 MSB   1 if a valid entry
        Bit 6       1 for ASCII text file (DO)
        Bit 5       1 for Machine lnguage (CO)
        Bit 4       1 for ROM file
        Bit 3       1 for invisibile file
        Bit 2         reserved for future use
        Bit 1         reserved for future use
        Bit 0         internal use only
    
Function Name Description Entry conditions Exit conditions Entry Address (Hex)
MAKTXT Create a text file filename (max. 8 bytes) must be stored in FILNAM (0FC93). 'DO' extension not required HL = TOP address of new file
DE = address of Directory entry (Flag)
Carry set if file already exits, reset if new file
220F
CHKDC Search for file in directory DE = address of filename to find (ASCII filename + 0 byte terminator HL = start address (TOP) of file
Z Flag -- 0 (file found), 1 file not found
5AA9
GTXTTB Get top address of file HL = address of directory entry for file HL = Top start address of file 5AE3
KILASC Kill a text (DO) file DE = file TOP start address
HL = address of directory entry (flag)
none 1FBE
INSCHR Insert a character in a file A = character to insert
HL = address to insert character
HL = +1
Carry -- set if out of memory
6B61
MAKHOL Insert a specified number of spaces in a file BC = number of spaces to insert
HL = address to insert spaces
HL & BC are preserved
Carry -- set if out of memory
6B6D
MASDEL Delete specified number of characters BC = number of characters to delete
HL = address of deletion
HL & BC are preserved 6B9F

Other Routines

Function Name Description Entry conditions Exit conditions Entry address (HEX)
INITIO Cold start reset none none 6CD6
IOINIT Warm start reset none none 6CE0
MENU Go to Main Menu none none 5797
MUSIC Make tone (See owner's manual for frequency and duration information) DE = frequency
B = duration
none 72C5
TIME Read system TIME HL = address of 8 byte area for TIME HL => TIME (hh:mm:ss) 190F
DATE Read system DATE HL = address of 8-byte area for DATE HL => DATE (mm/dd/yy) 192F
DAY READ system DAY of the week HL = address of 3 byte area for DAY HL => DAY (ddd) 1962
← Rom Functions↑ TRS-80 Model 100