Access Key Details || Previous Page

Book index page

Jump to: Expanding memory || Using printers || Speech Synthesiser || Printing the screen display || Glossary

The original expansion system comprised separate peripherals, each with their own power supply, which plugged into the right hand side of the computer and each other.
As the number of peripherals increased, this resulted in a number of electric supply cables, and the need for a very long desk.

Hence TI produced the PERIPHERAL EXPANSION BOX, which plugs into the right hand side of the console by means of a cable. It has its own power supply, but this is used for all the peripherals placed in it.
The TI BOX (as we shall call it) is supplied with a single interface 'card' which merely allows it to be connected to the 99/4a.
The 'cards' used in the Box are far more than the usual printed circuit board usually associated with expansion systems: each card is inside a strong metal sub chassis. The box itself is also very strong (and heavy) metal.

The box has space for a single disk drive, although it may be possible to use two low power 'half size' drives mounted side by side. TI do not provide half size drives and you will need to have a well informed and helpful dealer if you wish to fit them.

The standard TI Disk Drive is a single sided single density drive which uses soft sectored disks with 40 tracks. Each disk can store about 90k of information, and each disk can contain up to 127 named files.
To operate the disk drive you need the DISK CONTROLLER card, which is supplied with a DISK MANAGER module. The controller card can operate up to three disk drives: the second and third must have their own power supply and case, and are used outside the Box.
The Disk Manager allows you to test your disks, initialise them, change file and disk names, and provide a catalogue of disk contents.
You can use double density disks, but the computer will only use them as single density.
It is possible to modify the controller so that a double sided disk drive can be used, with the second side treated as DISK 2.
A Disk Manager 2 module and double sided drive have also been announced from TI, but are not available at the time of writing.

A disk system allows you to load and save programs or data much faster than from cassette. Also, because a disk does not have to be read in the same order it was saved, random access files are possible, for faster and more powerful data handling.

A program may be LISTed to disk as well as SAVEd to disk. A LISTed program is placed on disk in DISPLAY VARIABLE 80 format, and may be used with the TI WRITER module.

Extended Basic permits a program to be saved in MERGE format, to allow programs to be merged into each other, and also allows you to manipulate the program : you may create utilities which remove REM lines, or shorten variable names for instance.

Also with Extended Basic, a disk system will allow you to load a program which exceeds the 12k allowed under the cassette loading system.

TI Emulator includes emulation of the 32k ram. MESS includes emulation of 32k and 512k ram. PC99 includes emulation of 32k and 512k ram. The 512k ram card was produced by Myarc for the TI-99/4a.

The 32k MEMORY EXPANSION CARD adds 32k of CPU RAM to your system. It is NOT usable unless a suitable module is used.
Extended Basic programs may be up to 24k when the 32k expansion is fitted, but the tape loader can only load programs up to 12k.
However, with Extended Basic, when the 32k is fitted, in addition to the 24k for your program, you have about 13k for storing variables. Thus you may load a 12k tape program and not have to worry about the memory used for variables (for example, large arrays of data).
Also with Extended Basic, 8k is available to load machine code into, such as some of the TI module games (loaded from disk) or the utility programs which are becoming available.

The memory expansion is available to the Editor Assembler and the Mini Memory modules for loading longer machine code programs from disk.
The Mini Memory can use the memory expansion as a data file.

Some TI Modules (such as Editor Assembler) require that the 32k be connected.

NB: The Personal Record Keeping module CANNOT use the 32k memory.
In extended basic a very small increase in speed is produced by using the 32k memory.

The RS232 card is required to connect the computer to a printer.
TI Emulator directs output to PIO to PC Port LPT1
A number of independent suppliers are producing programs and hardware to permit printers to be connected without the box and RS232 card, but you should look closely at what their products can do, and try to see them working with your printer.

The TI RS232 card provides a potential three interfaces, two serial and one parallel.
A SERIAL connection is one in which the signal is sent one bit at a time. As a single letter is defined in one BYTE (8 bits) a serial interface has to break that down and send the bits one at a time.
The standard serial interface is known as RS232, and implies a standard connector and standard pin connections in that connector. However, there are variations in usage.
The TI RS232 interface permits you to set certain options in your Basic program, allowing a range of printers to be used.
However, some printers have serial interfaces which operate at different signal levels, and you should always try to see a printer working with the 99/4A before you buy.
There are a number of options available with the TI RS232 card, and you may need to check with your dealer the correct options to use with your printer.
The following are the options available with the RS232 interface:
BAUD RATE (eg speed):
110,300,600,1200,2400,4800, or 9600

DATA BITS: 7 or 8
PARITY: Odd, Even or None
TWO STOP BITS: used or not
NULLS: used or not
CHECK PARITY: performed or not
ECHO: on or off
CRLF: on or off
LF: on or off.

These options should allow you to interface to almost any serial printer. The RS232 interface is bidirectional and can be used (if you have a P.O. approved modem) to link consoles by telephone for the exchange of programs or data. It is possible for data to be passed in both directions simultaneously using the RS232 interface.

For many printers, an RS232 interface is an option available at extra cost : the standard interface is PARALLEL. A parallel interface sends one byte at a time, and operates only in one direction. The TI RS232 card can send data at about 28000 Baud when using the parallel signal output, but the limitation will be the receiving device.
There are fewer options needed on the parallel interface, as a new signal is only sent when the printer tells the computer it is ready for it by means of a 'handshaking' signal. It is possible to turn on or off the echo, automatic carriage return and automatic line feed features. Your choice will depend on the needs of your printer.
A few printers have a buffer memory, or one may be added: this allows the computer to send its data to the buffer and then carry on with your program, and your program continues while the printer takes data from the buffer and prints out your text.

NB: Although Centronics compatible, the TI parallel output uses a slightly different pin out, and your dealer will have to make a special cable for you. Ensure the printer you buy will work with your computer, before buying.

You DO NOT have to purchase the TI Printer. Most printers will work with the RS232 card.

TI Emulator emulates the speech of Extended Basic via Soundblaster
The speech synthesiser has already been touched on in the discussions of Extended Basic and the Terminal Emulator Two modules.
The Speech Synthesiser requires a module to function. Some of the newer games modules (such as Parsec and Alpiner) use it, and you may use it in your own programs:
In TI BASIC: with Terminal Emulator 2 or Speech Editor
In Extended Basic: with the Extended Basic module.

Both Extended Basic and Speech Editor have limited vocabularies, but it is possible to extend them slightly by adding words together or curtailing them.

Terminal Emulator 2 gives the fastest and most realistic speech and permits pitch and emphasis to be changed.

Other hardware A number of small companies are showing an interest in producing peripherals for the TI99/4A. These may be cheaper than the TI equivalent, but you must ensure that they satisfy your requirements before you buy, as they may not have all of the TI features.
You should always try to see any third party peripheral working with the computer before you buy.

Program to dump screen display to printer Many printers now permit you to "download" a screen display, using '8 pin bit image mode'. Most of the EPSON range of printers permit this for instance. The TI dot matrix printer was a rebadged Epson.
Programs to USE these facilities are rare however, and one is therefore given below.
This is in TI BASIC, but requires the MINI MEMORY MODULE to function. The program will also run in EXTENDED BASIC.

Because the printer defines its characters vertically, but the computer defines its characters horizontally, this program will produce a picture of the screen on its edge : it is easier to do this than to rotate the image.

If the screen contains only text there is no advantage to using this program: Use GCHAR to obtain the characters and PRINT them one row at a time.

This program will print the characters as they appear on screen: i.IN BLACK ONLY. ON pixels are printed,off pixels are not. ii.Sprites are not copied.

If your printer prints a pound sign below, it is really a CHR35, which in TI Emulator is shift 3.

When printing graphics with ANY TI program you must add .CR to the printer name to suppress a line feed after each character. Some graphics programs suggest you use PIO.CR.LF, the TI interface manual suggests .CR on its own is enough- both work fine.

NOTE: Using square brackets (that is a [ )in a variable name is legal!

100 OPEN #1:"PIO.CR.LF"
120 PRINT #1:CHR$(27);"A";CH
130 FOR [A=1 TO 32
140 PRINT #1:CHR$(27);"K";CH
150 FOR [B=24 TO 1 STEP -1
170 IF [CHAR<33 THEN 300
190 IF DEF$="000000000000000
0" THEN 300
200 FOR [SEG=16 TO 2 STEP -2
210 [HEX=ASC(SEG$(DEF$,[SEG,1))
220 GOSUB 430
240 [HEX=ASC(SEG$(DEF$,[SEG-1,1))
250 GOSUB 430
290 GOTO 340
300 FOR []=1 TO 7
310 PRINT #1:CHR$(0);
320 NEXT []
330 PRINT #1:CHR$(0)
340 NEXT [B
350 PRINT #1:CHR$(13);CHR$(10)
360 NEXT [A
370 PRINT #1:CHR$(27);"@"
380 PRINT #1:CHR$(7)
390 CLOSE #1
420 STOP
430 [HEX=[HEX-48+([HEX>64)*7
450 END

To permit the routine to be added to any program, the square bracket has been used in front of each variable: [. The [ is accepted as a valid character in variable names.

ESC K {CHR$(27);"K"} is used in the Epson printer, and some others, to select: 'Normal density 8 pin bit image mode'


ARRAY        A collection of variables referenced by a subscripted number.
ASCII.      'American Standard Code for Information Interchange' - standard code numbers for the characters used by the computer.
BASIC.       'Beginners All-purpose Symbolic Instruction Code'. An easy to use and widely used type of programming language.
BAUD.        'Bits per second'- refers to the speed at which data is transferred to and from the computer.
BINARY.      Our normal numbering system is DIGITAL, and uses numbers 0 to 9. A BINARY system uses only numbers 0 and 1 ,or OFF and ON. The computer works internally with signals which are OFF or ON.
BUG          An error in a program, which causes incorrect or unwanted operation.
BYTE.        A group of 8 binary numbers (called BITS) used in computing to represent a character or command. Also used as a means of measuring a computers memory capacity.
CONSTANT     Used to describe a number or STIRNG, and distinct from a VARIABLE.
CURSOR       A flashing character used by the computer to indicate that it is waiting for an input.
DISK         A mass storage device used to store programs and data files.
FILE         A collection of data records.
HEXADECIMAL A numbering system with base 16. Instead of using number 0 to 9, it uses numbers 0 to 15, but letters A to F are used instead of 10 to 15.
LOOP         A program line, or lines, which are performed a specified number of times.
PROGRAM      A series of commands which tell the computer what to do.
RAM          'Random Access Memory'.Tempory storage in the computer, used for your programs. The contents are not retained when the console is switched off.
RECORD       A collection of data elements. A group of records form a FILE.
RESERVED WORD  A word used by the computer as a command or function. Such words cannot be used as variable names.
ROM          Read Only Memory. Permanent memory which retains its contents when the console is switched off. Contains the operating system of the computer.
RUN          An instruction to the computer to execute a program in its memory.
SCROLL       Movement of the screen display by one line upwards.
SOFTWARE     A name given to computer PROGRAMS.
STRING       A series of letters, numbers or symbols, treated as a single unit. A single number may be treated as a number OR as a string but cannot be both at once. 2 is a number. "2" is a string.
VARIABLE     A name or label which has a value which may be altered during a program.



It is sometimes useful to enter ASCII codes from the keyboard outside the usual range - for instance when PRINTing a line of defined characters.

By switching the computer to PASCAL mode, using CALL KEY(4,A,B), the range of codes available is increased.

Although the usual function codes (eg cursor control) are deactivated in Pascal mode, upper and lower case characters are not affected.

The following table gives the codes available in PASCAL mode. The keys to be pressed are indicated thus:
A = Key A only
FA = FCTN and A together.
CA = CTRL and A together.
SA = SHIFT and A together.

0      C,     
1      CA     
2      CB     
3      CC     
4      CD     
5      CE     
6      CF     
7      CG     
8      CH     
9      CI     
10     CJ     
11     CK     
12     CL     
13     CM     
14     CN     
15     CO     
16     CP     
17     CQ     
18     CR     
19     CS     
20     CT     
21     CU     
22     CV     
23     CW     
24     CX     
25     CY     
26     CZ   
27     C.   
28     C;   
29     C=   
30     C8   
31     C9   
32    SPACE 
33     S1   
34     FP   
35     S3   
36     S4   
37     S5   
38     S7   
39     FO   
40     S9   
41     S0   
42     S8   
43     S=   
44     ,    
45     S/   
46     .    
47     /    

 CODE:   KEYS:  
 48-57   0-9   
 58      S;    
 59      ;     
 60      S, 
 61      =  
 62      S. 
 63      FI 
 64      S2 
 65-90   A-Z
 91      FR 
 92      FZ 
 93      FT 
 94      S6 
 95      FU
 96      FC
 97-122  a-z
 123     FF 
 124     FA 
 125     FG 
 126     FW 
 127     FV
 128     na 
 129     F7 
 130     na 
 131     F1 
 132     F2 
 133     na 
 134     F8 
 135     F3 
 136     FS 
 137     FD 
 138     FX
 139     FE
 140     F6
 141     na
 142     F5
 143     F9
 144-176 na
 177     C1
 178     C2
 179     C3
 180     C4
 181     C5
 182     C6
 183     C7
 184     F,
 185     F.
 186     F/
187    C/
188    F0
189    F;
190    FB
191    FH
192    FJ
193    FK
194    FL
195    FM
196    FN
197    na
198    FY
199-   na

To use:


In the section on advanced programming the use of single byte control codes in explained. The following are the meanings of the various codes. NB:They are not all available in TI Basic or Extended Basic.

          CODE; MEANING:                  CODE: MEANING:
          129   ELSE                      193   +
          130   :: (Ex Bas Separator)     194   -
          131   ! (Ex Bas tail rem)       195   *
          132   IF                        196   /
          133   GO                        197   ^
          134   GOTO                      198   unknown
          135   ??                        199   'string follows'
          136   ??                        200   'number follows'
                                                 ALSO used with CALLs.
          137   DEF                       201   LINE NUMBER FOLLOWS
          138   DIM                       202   EOF
          139   END                       203   ABS
          140   FOR                       204   ATN
          141   LET                       205   COS
          142   BREAK                     206   EXP
          143   UNBREAK                   207   INT
          144   TRACE                     208   LOG
          145   UNTRACE                   209   SGN
          146   INPUT                     210   SIN
          147   DATA                      211   SQR
          148   RESTORE                   212   TAN
          149   RANDOMIZE                 213   LEN
          150   NEXT                      214   CHR$
          151   READ                      215   RND
          152   STOP                      216   SEG$
          153   DELETE                    217   POS
          154   REM                       218   VAL
          155   ON                        219   STR$
          156   PRINT                     220   ASC
          157   CALL                      221   PI
          158   OPTION                    222   REC
          159   OPEN                      223   MAX
          160   CLOSE                     224   MIN
          161   SUB                       225   RPT$
          162   DISPLAY                   226-231 Not known
          163   IMAGE                     232   NUMERIC
          164   IMAGE                     233   DIGIT
          165   ERROR                     234   UALPHA
          166   WARNING                   235   SIZE
          167   SUBEXIT                   236   ALL
          168   SUBEND                    237   USING
          169   RUN                       238   BEEP
          170   LINPUT                    239   ERASE
          171-175 Not known               240   AT
          176   THEN                      241   BASE
          177   TO                        242   Not known
          178   STEP                      243   VARIABLE
          179   ,                         244   RELATIVE
          180   ;                         245   INTERNAL
          181   :                         246   SEQUENTIAL
          182   )                         247   OUTPUT
          183   (                         248   UPDATE
          184   &                         249   APPEND
          185   Not known                 250   FIXED
          186   OR                        251   PERMANENT
          187   AND                       252   TAB
          188   XOR                       253   # (for files)
          189   NOT                       254   VALIDATE
          190   =
          191   <
          192   >

Book index page

Contents copyright Stephen Shaw. Want to reuse? Read: Creative Commons License
This work is licensed under a Creative Commons Attribution-NonCommercial 2.0 UK: England & Wales License. Alternative licence: Design Science License published by Michael Stutz

Access Key Details

Stephen's Entry Page | TI99/4a |Linux |Search | History St Thomas Church Heaton Chapel | Entertainment | Music Links

Light Reference | Educational Reference | Science Fiction | Travel | News Links | Anime