The Editor/Assembler allows you to write assembly language programs on the 99/4A itself. Prior to the E/A,
all software for the 99/4A was written on an expensive TI Mini Computer with a 99/4A emulator, and I think
Tombstone City was the only (TI produced) software ever written on the 99/4A itself.
The E/A includes an editor
for writing assembly code (or any text documents really), assembler, linker, loader, and debugger. It also includes
a very thick (about 2 inches) reference manual that covers using the cartridge programs, the 9900 instruction set,
99/4A internals such as memory organization, GLP functions, accessing the 9914 VDP, sound programming (9901?),
speech synth programming, and example code. It also comes with the full source code to Tombstone City! This was a
very kind act on TI's part, and seeing how they wanted to totally control software licensing for the TI, to this
day I can't figure out why they included that source code? But I'm sure glad they did! The E/A requires the PEB
with a floppy disk and 32k RAM expansion module
by Matthew Hagerty - TIer since 1983
TI 99er, Oct 1981
Software Media and Required Hardware
The Editor/Assembler software resides in a Command Module and on a disk. To run it, you'll need at least one disk drive and the 32K expansion RAM, Both the editor and assembler are selectable from menus, and most of the screens include easy-to-understand prompting messages.
The editor is used to input assembly language source programs--initially, to update programs previously saved on disk, and to print programs. The editor's features compare favorably to those of larger systems.
There are two editing modes: Edit Mode and Command Mode. Edit Mode is always used to input a program for the first time although both modes can be used to change existing programs after loading them from disk or typing them in Edit Mode.
Edit Mode is entered directly from the menu. The screen is a 40 x 24 window on the source program. Function keys allow you to move this window to the right or left in 20-charater increments, or up and down 24 lines at a time. (Since most of my assembler programs have fewer than 40 characters per line, I tend to view the leftmost 40 characters and make heavy use of the up and down scrolling.) The four cursor keys are enabled in Edit Mode, making it especially easy to correct typographical errors. Whole lines can be inserted into the text by moving the cursor to the adjacent line and pressing the Insert function key; a new blank line is inserted, and the user simply types in the new line. Similarly, a whole tine can be deleted by moving the cursor there and pressing the Delete function key; the line is removed and the line numbers of the following lines are automatically decremented. There are also keys for inserting or deleting characters. A Tab key is also provided for tabbing to columns 8 and 16. Edit Mode makes it very easy to enter new programs, because the user can both type the source program in a natural manner, and correct errors and omissions as they occur. Edit Mode is exited via the Back function key, which puts the editor into Command Mode.
Command Mode reminds me of the UCSD Pascal editor. The first line of the screen shows the Command Mode options: Escape, Find, Replace, Move, Insert, Copy, Delete, Show, and Adjust. Line 2 is reserved for parameters to be input
by the user, so in this mode the text window is 40 x 22. Most options require further information to be given on line 2, and very clear prompts are given so the user knows what to enter.
Each option is selected by typing the first character of the option name. For example, to find an occurrence of a string in the source program, the user enters F. The system responds with the prompt ~: (start col, end col)~>/string/. To find the second occurrence of the string ABCD between columns 1 and 50, the user would type 2 (1 ,50)/ABCD/. 1'he system would then display the section of text containing be second such occurrence of ABCD (if any) with the cursor over the A. The brackets c: > in the prompting message indicate optional parameters. To find the next occurrence of the string ABCD in the whole source program, the user need only type / ABCD/. The Replace option is like the Find, except that each specified occurrence of the string is replaced by a second string given by the user. The Replace includes an optional verify operator which allows the user to say yes or no to each replacement. The Move option allows the user to move sections of text, indicated by an interval of line num-hers, to a different place in the source program. Copy is similar, except that the section of text ends up in both the original position and the new position. Delete allows easy removal of several contiguous lines from the text. Insert takes a file from disk and places it anywhere you want in the program being edited. Show is a way of moving the window so that a certain line number is at the top of the screen. Adjust is an easy way to make the line numbers disappear so that the window shows the source program only. Escape gets you out of Command Mode and back to the editor's menu, where you can choose to save the source program to disk, print it, purge it, or edit the same or another program.
The editor performs all line numbering automatically as lines are entered, and maintains these numbers in sequence as lines are added or deleted. The user can refer to them for operating on sections of the program; they also appear on the assembler output listing, which is handy for debugging.
TI has incorporated most of the features found in editors for larger systems into the 99/4 editor. In fact, the abilities to edit at the character, line, and gr0up-of-lines levels are not always al/available in larger editors. The only feature missing from the editor is a variable right margin-a feature which is Really not too significant for assembler source programs. [But that would be nice for word processing applications, since this editor already performs 95% of what most people would need for correspondence and document preparation-Ed,] The Assembler The assembler is a program which converts assembly language source programs into object form-the machine-language program that executes on the TI-99/4(A). The object program is written to disk. Optionally, a user can print out or write an assembler listing the disk.
The 99/4 assembler is a lot like the 9900 assembler, TXMIRA, which runs on larger TI systems. Most of the 69 instructions are implemented. A programmer who is familiar with TXMIRA will be able to write assembler programs for the 99/4 without too much difficulty, since the same addressing modes are used and most of the instructions operate in the same way.
Running and Debugging
Once a program has been input, edited, and assembled with no errors, it can be loaded and run by choosing this option from the menu. Another menu option (RUN PROGRAM FILE) allows the user to run programs which were assembled
on larger Texas Instruments systems running under the DX10 operating system.
The editor/assembler package has no special debugging utility. Personally, I do not find that this is a hardship. Even on systems with extensive debugging packages, ] tend to debug without using those special facilities because they are
hard to use and harder to understand. Furthermore, every package is different. My method of debugging usually consists of adding assembly language statements to my source program which enable me to isolate the problem, and then
removing these statements after the problem has been fixed. For example, if I want a trace of program execution, I just put temporary statements to display meaningful messages at different points in the program. The only danger in this
approach is that, once debugging is complete, I might forget to remove one of these temporary statements in creating the final version. However, the 99/4's editor can find all these temporary lines for me, as long as I take the simple
precaution of putting some unique comment (such as DEBUG) on each temporary line. In this way, I can debug using only the assembly language itself. In summary, the 99/4 Assembler/Editor package is an excellent programming tool. It is easy to use and powerful, and the object programs produced run with incredible speed.
This package is a must for serious 9900 assembly language programmers both software developers and end users who want
to access all the capabilities of the TI personal computer.