«Copyright (C) 1978 by Processor Technology Corporation Second Edition, First Printing, June, 1978 Manual Part No. 727023 All rights reserved. TABLE ...»
Resident 8080 Assembler
7100 Johnson Industrial Drive
Pleasanton, CA 94566
Telephone (415) 829-2600
Copyright (C) 1978 by Processor Technology Corporation
Second Edition, First Printing, June, 1978
Manual Part No. 727023
All rights reserved.
TABLE OF CONTENTS
1.1 GENERAL DESCRIPTION
1.2 LOADING SOFTWARE #1
2 THE EXECUTIVE
2.2 CONVENTIONS USED IN COMMAND DESCRIPTIONS.... 2-1
2.3 COMMAND DESCRIPTIONS
2.4 ERROR MESSAGES
3 THE EDITOR
4 THE ASSEMBLER
4.1 GENERAL OPERATION
4.2 SOURCE PROGRAM STATEMENTS
4.3 SYMBOLIC LABELS
4.4 RELATIVE SYMBOLIC ADDRESSING................ 4-5
4.8 ERROR MESSAGES
1 USING CASSETTES2 8080 OPERATION CODE i SOFT1 SECTION 1
2.1 GENERAL DESCRIPTION The Processor Technology Software Package #1 is a selfcontained program development system for the Sol Terminal Computer, or other S-100 computers based on the 8080 microprocessor using the CUTER monitor programs and CUTS module. Included in the package are an executive to handle memory files, an assembler, and a line-oriented editor.
Although this manual includes a cursory discussion of some 8060 pseudo-operations, it is not intended as an assembly language tutorial, nor does it offer an exhaustive explanation of what an assembler does. Two books which do describe such material in detail are 8080/8085 Assembly Language Programming, by Lance A. Leventhal (Adam Osborne & Associates, Berkeley, CA.,
1978) and 8080/8085 Assembly Language Manual (Intel Corporation, Santa Clara, CA., 1977). The purpose of the following pages is to enable you to develop programs using the Software #1 program development system.
At least 4K of memory must be available for use by the
system. This memory is allocated as follows:
Additional memory must be available for your own source, object, and text files, and for the symbol table, if assemblies are to be done. There will be more discussion of memory requirements in Sections 2.3 and 4.1, below.
2.2 LOADING SOFTWARE #1 Software Package #1 may be loaded and run from cassette using the SOLOS/CUTER command XEQ followed by a blank, the name SOFT1, and a carriage return. To load the program without running it, use GET followed by a blank, the name SOFT1, and a carriage return. To execute the program after using GET, type EXEC 0 followed by a carriage return. To exit to SOLOS/CUTER from the executive of Software Package #1, use the CUST command, unless you have defined this command to perform some other function. (The CUST command is described in Section 2.3; it permits the user to call a routine of his choice from within the executive.) In order to re-enter Software #1, start at address 3 with the command EXEC 3 followed by a carriage return.
1-1 SOFT1 When the program is first loaded from tape and executed, a checksum test is performed on the code in memory. If the check fails, an error message will appear, and you have the option of using a carriage return to start the program. Appendix 2 explains why it is not a good idea to start a program that has failed the checksum test. Software #1 is recorded twice on the cassette, so that if the first recording fails, you can still try the second one.
2.3 INTRODUCTION When Software Package #1 is first loaded from cassette, you are in executive mode, and can use any of commands given in the summary below. All commands must be entered in upper case and begin in the first column of the video screen. At least one blank must separate the command from its first argument, and any two arguments must be separated from one another by at least one blank. Arguments must also be in upper case.
There is one other type of entry that you can make in executive mode: by typing any four-digit number, you can insert a line having that line number into a memory file. (Obviously, you have to create a file first.) A detailed discussion of all of the commands will begin in Section 2.3, below. The use of the editor to enter lines in files is discussed in Section 3.1.
Software Package #1 does input and output by calling the SINP and SOUT entry points of SOLOS/CUTER, and therefore through the current SOLOS/CUTER pseudo-ports. (See the SOLOS/CUTER User's Manual, Section IV.) The user may temporarily halt the output from a LIST, DUMP, or ASSM command by depressing the space-bar, and then cause it to resume by depressing the spacebar again. Typing the MODE SELECT (or CTRL and @ keys together) will terminate output from a command and return control to the executive.
2.4 CONVENTIONS USED IN COMMAND DESCRIPTIONSThe following conventions will be used in the discussion of
1) UPPER CASE letters, and all numbers, should be entered literally in the form of a command. For example, SAVE means that the user should actually type the word SAVE.
means "type a name."
3) Optional elements in a command are enclosed in square brackets. LIST [number] means that the LIST command need not include a number. Of course, the presence or absence of a number affects the way the command operates; default values for optional parameters are included in the discussion of each command.
In some cases, omitting a particular parameter makes it necessary to omit another. For example,
means that you can
a) include name, unit, and address, OR
b) omit name, unit, and address, OR
c) omit unit and/or address, but not name.
Neither unit nor address may be specified if name is omitted.
4) cr means "type a carriage return." Unless an exception is noted, the user should enter a carriage return to terminate any line of input. The computer will supply a carriage return at the end of every line of output.
5) aaaa and bbbb are used to represent hexadecimal addresses.
2.5 COMMAND DESCRIPTIONS ENTR aaaa Enter data into memory This command is used to enter data into memory starting at address aaaa. Enter data in hexadecimal format; when you have finished typing the data that you want to enter, type a slash (/). If you enter more than one item into memory, as in the example, the items that you type will occupy successive memory locations.
--------------------------------------------------------------ENTR 1500cr 0 0A 30 44 FF FE/
This command is used to examine the contents of memory.
The values contained in memory from locations aaaa to bbbb are displayed in hexadecimal. Each line of display consists of an address followed by the contents of the next 16 memory locations. If bbbb is not specified, or if it is a number less than or equal to aaaa, only the contents of location aaaa will be displayed. The space-bar may be used to stop the listing at any point; the next key depressed will cause the listing to resume. If you want to discontinue the listing and return to the executive, type MODE SELECT (CTRL-@).
------------------------------------------------------------DUMP 1140 1152cr 0040: 0A D8 D6 07 C9 DB 00 E6 45 00 D0 01 D3 02 F8 CF 0050: E6 7F C9
------------------------------------------------------------- FILE[ /name/[ aaaa] ] Create, assign, or display file information This command is used to create and delete files, to examine their beginning and ending addresses, and to establish whether or not a given file, or any file, will be "current," i.e., available for editing or assembly. Up to six files can exist simultaneously, with any one of these files regarded as "current". Depending on the form of the command and its parameters, the following functions are performed.
* NOTE * Slashes around a filename are literal.
FILE STRUCTURE AND MEMORY MANAGEMENTFiles created in Software #1 have a structure in which the first byte of a line contains a count of the number of characters' in that line, including the counter itself, the line number, and the carriage return that ended the line. Thus
contains 32 bytes: a counter, 3E characters of text, and a carriage return. Note that the line number, and the space or spaces that follow the line number, are included in the line.
The end of a file is indicated by a 01 (Hex) character; a final count of the number of bytes in a file will reflect the presence of this character.
When you create and develop a file in Software #1, you decide where that file will be placed in memory. The system will not allow you to use the same name for more than one file,
The only way that you can protect against losing information accidentally is to be aware of how much memory you have, how you will need to use the available storage area, and how you can best avoid storing over data that you might still want to use. Be sure that you are aware of the beginning and ending addresses of each of your files, and make a note of locations in which you have entered data using ENTR. When you create a file, consider its length in bytes and whether the file is likely to grow so large as to encroach on the beginning of another file.
If you plan to assemble a program, remember to leave enough room for the symbol table. More specific suggestions related to assembly of source programs are included in the discussions of the ASSM command and the assembler.
EXEC aaaa Execute a program
This command is used to execute a program at address aaaa;
if you want to return control to the executive when execution is complete, be sure that you have included a RET instruction in the program. If the OUST command is in use and you want to return to SOLOS or CUTER, you can use the EXEC command and assign to aaaa the beginning address of SOLOS (C000) or CUTER.
To re-enter the executive, give the EXEC 3 command from SOLOS/ CUTER.
LIST [number] List file
This command is used to display the lines entered by the user into the current file. The output consists of the lines in the file, starting at the specified line number. If no number is specified, display starts at the beginning of the file. The LIST command does not change the format of the file in any way, e.g., by reducing multiple blanks to one; each line appears precisely as you entered it. Lines are listed with line numbers in ascending order, as they exist in the file. Use MODE SELECT or the CTRL and @ keys simultaneously to discontinue a listing and return to the executive.
DELT linel [line2] Delete line(s) from file This command is used to delete lines from the current file.
All lines from linel to line2, inclusive, are deleted from the file. If line2 is not specified, only linel is deleted.
This command is like the SOLOS/CUTER SAVE command, except that here the filename is surrounded by slashes. The command records the contents of a file or of a specified area of memory on a cassette placed in tape unit 1. If there are arguments given, as in the example above, the contents of memory from address aaaa to address bbbb are saved, and a file name of up to five characters is recorded in the cassette file header, (with type "P" for Program). The command has a simpler form, SAVE with no arguments, which saves the whole current file on tape.
The name which has already been assigned to the file will also be its name on the cassette file header, and it will have a file type "T" (Text).