ASSEMBLER DESCRIPTION The Assembler translates symbolic source language instructions into an object program. The object program may be either relocatable or absolute. The Loader of the Basic Control System loads and links relocatable programs. The Basic Bi- nary Loader loads programs in absolute form. The Assembler accepts as input a paper tape containing a control statement and a source language program. The output produced by the Assembler may include a punched paper tape containing the object program and/or an object program listing. The control statement specifies the output to be produced: ASMB Pl,P2,...,Pn "ASMB," is entered in positions 1-5. Following the comma are two or more pa- rameters, in any order, which define the output to be produced. The control state- ment must be terminated by an end-of-statement mark, (CR)(LF). The parameters may be any valid combination of the following starting in position 6: A Absolute: The addresses generated by the Assembler are to be interpreted as absolute locations in memory. The binary output format is that specified for the Basic Binary Loader. R Relocatable: The program may be located anywhere in memory. The binary output format is that specified for the BCS Relocating Loader. B Binary output: A program is to be punched according to one of the above pa- rameters. L List output: A program listing is to be produced according to one of the above parameters. T Table print: List the symbol table at the end of the first pass. N Include sets of instructions following the IFN pseudo instruction. Z Include sets of instructions following the IFZ pseudo instruction. Either A or R must be specified with any combination of B, L, or T. The control statement may be on the same tape as the source program, or on a separate tape; or it may be entered via the Teleprinter keyboard. Source Program The first statement of the program (other than remarks or a HED statement) must be a NAM statement for a relocatable program or an ORG statement for indicating the origin of an absolute program. The last statement must be an END statement and may contain a transfer address for the start of a relocatable program. Each statement is followed by an end-of-statement mark. (For complete details, see Assembly Programmer's Reference manual.) Binary Output The punch output includes the instructions translated from the source program. It does not include system or library subroutines referenced within the source program (arithmetic subroutines, .IOC. , .DIO., .ENTR, etc.). t ------------------------ t If system or library subroutines are referenced, they must be loaded from the FORTRAN library tape when the object program is to be executed. 7-1 ASSEMBLY OPTIONS The exact operating procedures for an assembly depend on the available hardware configuration. One possible allocation of equipment might be as follows: Assembler Standard Unit Physical Unit Input/Output Designation Assignment ------------ -------------- ------------- Binary output Teleprinter Output 2752A Teleprinter \ ??? Table print List Output 2753A Tape Punch / List output Source program Input 2737A Punched Tape Reader If there are two output devices as shown above, there are only two passes; the bi- nary and list output are both produced in the second pass. If only one output device is available, the binary output is produced by the second pass and the list output by the third pass. The Assembler automatically provides a leader and trailer for binary output tapes. To suppress this leader and trailer, set Switch 0 to 1 (up) before the start of Pass 2. In a three-pass assembly, the diagnostic messages and binary output are written on the same unit. To prevent these messages from being punched on the binary tape (they still appear on the printed output), perform the following steps: 1. Set Switch 15 to 1 (up) before start of Pass 2. 2. When the computer halts with the T-Register containing "102055", turn the punch unit OFF, and press RUN. 3. When the computer again halts with the T-Register containing "102055", turn the punch unit ON, and press RUN. 4. At the end of Pass 2, set Switch 15 to 0 (down). Steps 2 and 3 are repeated each time a diagnostic message is produced. OPERATING PROCEDURES The following procedures indicate the sequence of steps for assembly of a source program when using a paper tape system: $ A. Set Teleprinter to LINE and check that all equipment to be used is operable. B. Load the Assembler using the Basic Binary Loader. t C. Set Switch Register to starting address of Assembler: 1. If control statement is on tape: 000100 000120 2. If control statement is to be entered via Teleprinter: --000110-- D. Press LOAD ADDRESS. E. Place source language tape in device serving as the Standard Input unit (e.g., Punched Tape Reader). ------------------ t The appropriate System Input/Output Subroutines (drivers) are assumed to be included with the Assembler. $ See next page for Magnetic Tape System usage. 7-2 F. Press RUN. G. If control statement is not on tape, enter it via the Teleprinter, following it by (CR)(LF). H. At end of Pass l (T-Register contains 102011), the Symbol Table, if requested, is on the Standard List Output unit. To execute Pass 2, replace the source language tape in the Standard Input unit, turn Teleprinter punch unit ON, and press RUN. t I. At end of Pass 2, the binary object tape (absolute or relocatable) is on the standard Teleprinter Output unit. Either of the following conditions may exist: 1. If the T-Register contains 102077, the assembly is complete. To assem- ble another program, return to Step C. 2. If the T-Register contains 102023, a listing pass is to be performed. Re- place the source language tape in the Standard Input unit (turn Teleprinter punch unit OFF), and press RUN. Magnetic Tape System Following are the steps for an assembly using a magnetic tape system: A. Set Teleprinter to LINE and check that all equipment to be used is operable. B. Load the Assembler using the Magnetic Tape Binary Loader. C. Place source language tape in device servingas the Standard Input unit. (If 100 was specified as starting address of Assembler during Prepare Tape System processing, the control statement must be on tape.) If control statement is to be entered from the Teleprinter, set 110 into the P-Register. If only one out- put device, set Switch 15 up. D. Press RUN. t E. If 110 was specified as the starting address of Assembler, type in control statement. F. At end of assembly, T-Register contains 102077. To assemble another pro- gram, return to Step C. --------------- t To halt Pass 2 at any time, set Switch 1 up. 7-3 Halts During the operation of the Assembler, the following halts may occur: T-Register Contents Explanation Action ---------- ----------- ------ 102011 End of first pass Go to Step H. 102023 End of second of three a) To perform Pass 3, passes go to Step I. b) To omit Pass 3 and assemble another program, remove output and return to Step C. 102055 Switch 15 option selected See steps previously to prevent punching of specified under Assem- diagnostics on binary bly Options. output tape. 102057 End of source tape sec- Place next section in de- tion vice serving as Stand- ard Input unit and press RUN. 102066 Control statement error a) If control statement on tape, correct and return to Step E. b) If originally entered from Teleprinter, press RUN, and enter correct statement. 102077 End of assembly Remove output. To as- semble another pro- gram, return to Step C. t 102054 Sense switch halt on Press RUN to continue. Switch 1 OBJECT PROGRAM LOADING If absolute binary output was specified, the Basic Binary Loader (Chapter 1) sed is used to load the object program tape. If relocatable binary output was specified, the BCS Relocating Loader (Chapter 2) is used to load the object program tape. If the program refers to other Assembler or FORTRAN generated object programs, these tapes are loaded by the Relocating Loader at the same time. If the program refers to .DIO. (the FORTRAN Formatter routine), or if it makes use of Arithmetic pseudo instructions, the Program Li- brary tape must be submitted for loading also. -------------- t Several programs may be assembled consecutively without reloading the Assem- bler. If some of the object programs are to be relocatable and others are to be absolute, the programs that are to be assembled in relocatable form must be processed first. If relocatable program assemblies follow absolute assemblies, an R? diagnosticis output. 7-4 Listed below are summaries of procedures for normal loading of object programs: BASIC BINARY LOADER OPERATING PROCEDURES SUMMARY A. Place binary object tape in Standard Input unit. B. Set Switch Register to starting address of Basic Binary Loader (e. g.,007700 for 4K memory, 017700 for 8K memory). C. Press LOAD ADDRESS. D. Set LOADER switch to ENABLED. E. Press PRESET. F. Press RUN. G. When the computer halts with T-Register containing 102077, set LOADER switch to PROTECTED. H. Set switch Register to starting address of object program. I. Press LOAD ADDRESS. J. Check that all I/O devices are ready and loaded for operation of the program. K. Press RUN. BASIC CONTROL SYSTEM LOADER OPERATING PROCEDURES SUMMARY A. Load the Basic Control System tape using the Basic Binary Loader. B. Set Switch Register to 000002, press LOAD ADDRESS, and set Switch Regis- ter to 000000. C. Place Assembler generated relocatable object tape in Standard Input unit. D. Place program Library tape in device serving as Program Library unit. E. If more than one relocatable object tape is to be loaded, repeat Steps C and D for each. Otherwise, set Switch Register to 000004 to load library routines. F. Place Program Library tape in device serving as Program Library unit, G. Press RUN. When the loading operation is complete, the Loader types "*LST". Press RUN. The Loader types "*RUN" indicating the program is ready for execution. H. Press RUN to initiate execution. 7-5