LINC_Vol_16_Section_3_LAP6_Handbook_May67 LINC Vol 16 Section 3 LAP6 Handbook May67
LINC_Vol_16_Section_3_LAP6_Handbook_May67 LINC_Vol_16_Section_3_LAP6_Handbook_May67
User Manual: LINC_Vol_16_Section_3_LAP6_Handbook_May67
Open the PDF directly: View PDF .
Page Count: 65
Download | |
Open PDF In Browser | View PDF |
WASHINGTON ST. COMPUTER SYSTEMS LOUIS. ~ ~~ UNIVlj",,- 1- IS' Comrnands -L~ ...., SM -7:< () ) tv A ,., It ,_ ...., ,-'" ... 4. E. 1. SAVE MANUSCRIPI' Format: ... SM (LN, (LN,)) NAME, UNIT EOL a. When no line numbers are given, the current manuscript is saved by N~ in the selected file, as close as possible to the Index. b. When line numbers, LN, are specified, IAP6 saves part of the current manuscript as a separate, new manuscript in the file by NAME. The line numbers, inclusive, indicate the part to save. When only one line number is given, the second line number is assumed to be the last line number of the current manuscript. lUNIT may also be specified as 4 or 5 if there is a second tape transport whose instructions are coded 7~0 (MTT) and 720 (MTT u). 7 16-3 Meta Connnands When part of a manuscript is saved, LAP6 must isolate that part as a separate manuscript; to do this LAP6 uses the working area on the other unit of the tape transport. I.e., to save part of a manuscript you must have a tape on the other unit, and you must temporarily not care about the contents of the working area blocks (350 and following). This is the only command which automatically uses the other unit; it does so only when line numbers are included in the argumentS:-- 2. c. If a manuscript of the given NAME is already present in the selected file, LAP6 will display REPLACE? Strike R to replace the file entry. Strike EOl not to. d. Strike EOl to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index. ADD MANUSCRIPI' Format: or ... AM BN~UNITEOl ... AM NAME~ UNITEOl Any LAP6 manuscript may be added to the current manuscript. 3. a. The manuscript to be added is identified either by its first block number, BN, on any tape UNIT, or by NAME in a file. b. The incoming manuscript is added to the current manuscript at the current line. This is the only time that the location of the current manuscript is relevant to the execution of a meta command. 'fire eta! Enb ilJaiRlleel."!ifJ-& ~ @e 8ie.e~ iss res@ll SPiO'xhii'@ ( . . tOM 35 0 ,Of6l:J· ~7 f"\Q c. After the command the new current line will be at the end of the added manuscript (just as though the incoming manuscript had been added at the keyboard one line at a time). Manuscript lines which follow the added manuscript are automatically renumbered. d. If there is no current manuscript, the added manuscript will be the entire manuscript. e. If the arguments are inadvertently omitted, LAP6 will try to add a manuscript from block 0, unit 0. It is best not to interrupt it. DISPLAY INDEX Format: ..... oX UNITEOL This command displays the contents of the Index of the specified LAP6 file, and permits unwanted entries to be deleted. An example of the display might be: 8 16-3 Meta Commands NAME BN #BlKS GEORGE M430 12 B 262 2 B 442 3 M445 27 B 474 6 M264 4 B 502 3 M505 11 12345678 DP-MAR20 DP2 APR2 DISPLAY MNEMONIC Example 3. Index Display. I.e., the manuscript (M) named GEORGE starts at block number (BN) 430, and is 12 (octal) blocks long (#BlKS). The binary program (B) named GEORGE is in blocks 262263. Etc. a. 8 entries are displayed per frame. b. A manuscript and a binary program with the same name (~, GEORGE, or DP-MAR20) always appear together, manuscript first, in the Index display. Thus, by inference, this file contains no manuscript named 12345678 or DISPLAY, and no binary program named DP2 APR2. (No inference can be made about a binary program named MNEMONIC without displaying at least one more entry.) c. The following key combinations relocate the display: CASE CASE CASE CASE 0: Forward one frame Q: Backward one frame 1: Forward one entry W: Backward one entry EOl to return to the manuscript display. d. Strike e. Striking del will delete the last entry displayed (~, the manuscript named MNEMONIC in Example 3). Whatever is deleted from the Index display is effectively deleted from the file. The file space is made available for later use by LAP6. (1) Strike R to restore the Index if you delete the wrong thing. (2) Strike the number sign, #, to make the deletions permanent and return to the manuscript display. (Returning with EOl effectively ignores any deletions.) 9 16-3 Meta Co:rmnands 4. 5. COPY MANUSCRIPl' COPY BINARY Format: Format: ... CM ...... CB NAME~UNITEOL NAME~ UNIT EOL An entry may be moved from one file to the file on the other unit of the tape transport1 with a COPY MANUSCRIPl' or a COPY BINARY command. The commands are identical except for the kind of file entry copied. a. The arguments identi~ the entry to be copied; i.e., UNIT is the unit where the entry of that NAME is to be found. -- b. The entry is automatically given the same NAME in the other file, and s"",~~s close as possible, to the In~x. QL..:tll-e.w.o.:tlt~ fil~. The original entry is-not affected. c. 6. If an entry of the given name is already present in the other file, Strike R to replace the entry. Strike LAP6 will display REPLACE? EOL not to. d. Strike EOL to interrupt these commands and return to the manuscript display. This has no effect once LAP6 has updated the Index. e. These commands can be used to reorder file entries. If, for example, the three binary programs A, B, and C are to be next to each other and in that order in a file, copy them (+CB) one at a time in that order into a new file. COPY FILE Format: ... CF UNIT EOL The COPY FILE command copies all the entries from the specified file into the file on the other unit of the tape transport. 1 It does not, however, disturb, or replace, any entries which are already in the other file. Thus, a file may be reorganized by combinations of the commands eM or CB, to move specific entries, and CF to move all the remaining entries. COPY FILE,puts the entries as close as possible to the Index in the other file. It uses any possible gaps created by former deletions and thus "packs" the file. The original file is not affected. If COPY FILE is used to merge two files, NO may be displayed if the entries from the original file do not all fit into the other file or Index. LAP6 has, however, copied as many entries as it could; inspection of the two indices will shOw which entries were not copied. Strike EOL to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index. ~rom 0 to 1, 1 to 0, 4 to 5, or 5 to 4. 10 16-3 Meta Commands 7. CONVERT Format: ~CVEOL The current manuscript is converted to a LINC binary program, and three displays of information about the program are presented. Conventions which should be followed to prepare a LINe program manuscript are described in section VI. a. The binary program will be in blocks 340-347 of the LAP6 tape after ,conversion. The block numbers correspond to memory quarters 0-7 respectively; ~, a program written to occupy memory registers in quarters 0 and 2 will be found in tape blocks 340 and 342. Locations not occupied by the binary program are cleared (set to +0). b. Strike EOl to interrupt the conversion process and return to the manuscript display. This leaves no binary program in blocks 340-347. c. Displays: ERRORS. There are two kinds: undefined symbols appear with one manuscript line number; multiply defined symbols appear with at least two line numbers. Ten errors are displayed per frame. More than 45 errors will not be displayed, and the display is automatically omitted if there were no errors. ERRORS 2A 1072 6015 1X 75 ~, ~s 2A is defined at both line 1072 and line 6015. referred to on line 75, but never defined. Keyboard Control: CASE 0: CASE Q: R: EOl: Forward one frame Backward one frame Return to the manuscript display Get next display MEMORY ALLOCATION. This display shows the memory locations, inclusive, required by the binary program. If the manuscript contains more than 10 "location statements" (see section VI), only 10 allocations will be displayed. MEMORY AllOCATION 20- -401 3670- 40 11 16-3 Meta Commands !:.s.:.., the binary program requires memory registers 20 through 401 plus registers 3670 through 3777, and o through 40. Reading this display is the simplest way to tell whether a program exceeds a certain number of memory quarters, or whether perhaps certain portions overlap. R: Keyboard Control: EOl: Return to the manuscript display Get next display SYMBOlS. All tags and equalities defined in the manuscript appear in this display. The latest definition is used for multiply defined symbols. Ten symbols are displayed per frame. SYMBOLS VALUE lINE 1A 3777 28 107l 52 412 lA in the manuscript have been in the binary program, and lA is defined on manuscript ~ 52. ~, all references to ass~gned the value 3777 Keyboard Control: CASE 0: Forward one frame CASE Q: Backward one f'rame R: Return to the manuscript display EOl: Save this symbol table for access by the DISPLAY SYMBOLS connnand, and return to the manuscript display. 8. DISPLAY SYMBOIS Format: ... OSEOL The symbols most recently saved by an EOl return from the SYMBOLS display may be redisplayed at any time as an on-line debugging aid. Keyboard Control: 9 • SAVE BINARY CASE 0: Forward one f'rame CASE Q: Backward one frame EOl or R: Return to the manuscript display Format: .... SB NAME~ UNITEOl The binary program most recently converted with the CV command by this copy of LAP6 is saved by NAME in the specified file, as close as possible to the Index. Only programs which have been converted with CV can be saved with SB. 12 16-3 Meta Commands 10. a. Only relevant, but inclusive, quarters. are saved. ~,if the program. was written to occupy quarters 1 and 4, quarters 1 through 4 will be filed in four successive tape blocks. (The second an.d third blocks will contain all zeros.) b. If a binary program of the given name is already present in the specified file, LAP6 will display REPLACE? Strike R to replace the file entry with this entry. Strike EOL not to. c. Strike EOL to interrupt the command and return to the manuscript display. This has no effect once LAP6 has updated the Index. [ill ~ EXIT The EXIT command makes it possible to leave LAP6, or leave the computer, without losing the current manuscript. The next time this copy of LAP6 is used, the manuscript will still be accessible to the scope and keyboard. 11. a. After EXIT, LAP6 halts. Raise RESUME to rewind the LAP6 tape. ing it a second time reenters LAP6.) b. LAP6 may be reentered by executing the regular start procedure manually at the console (blocks 300-307 into quarters 0-7, START 20), or under program. control as described below. In either case, EXIT is good for one reentry only. (Subsequent pushes of START 20 simply erase the current manuscript.) c. There is never any reason not to EXIT from LAP6 when leaving the computer. LOAD BINARY Format: (Rais- .... LO (NAME,UNITJ EOL If no name and unit are given, the last binary program converted with the CV command by this copy of LAP6 is read into the memory. If a NAME and UNIT are specified, the binary program of that name is read into the memory from the selected file. a. Memory registers not occupied by the binary program are cleared (set to +0). Exception: if the binary program itself does not occupy any registers in quarter 3, registers 1770-1777 will not be cleared. b. LO uses register 0 after the binary program is read into the memory. Therefore, if the program requires an initial value in register 0, it must be reset. c. LO starts the binary program at register 1. You can ignore this feature by simply assigning nothing to register 1, in which case the computer will halt at 1. The program must then be started from the console. Should you wish to use this feature, the following hints may help: 13 16-3 ' Meta Commands (1) If the first instruction, or a J.MP to the first instruction is put in register 1 (i.e., in the program manuscript following a 81 statement), the program will start automaticalJ..y" as soon as it is read in. (2) If nothing is put in register 1 and the first instruction, or a JMP to the first instruction is put in register 2, the computer will halt at register 1, but the program can be started by raising the RESUME lever. This is a helpf'ul procedure when there are perhaps switches to be set or tapes to change before the program can be run. d.LO leaves the first block number of the program's tape location in the left 9 bits of the Z register. It leaves the corresponding unit number in the right 3 bits of Z (to make it easier to "layer" programs which have no fixed tape location). e. 12. LO "EXITs" from LAP6 before reading the binary program. I.e., the current manuscript may be recovered by executing the regular console start procedure, or by reentering LAP6 under program control as described below. Combinations of manuscript editing, CV, DS, and LO can therefore be used for fairly efficient on-line debugging. Format: FREE ... F EOl The FREE meta connna.nd makes it possible to add features to LAP6. When the command is given, LAP6 reads block 317 into quarter 0 and JMPs to 20. You may put any program you like into block 317. FREE is probably best used for programs which work closely with LAP6, such as manuscript manipulators, or for programs which have frequent use in the local environment. It is, of course, possible to have different FREE programs with different copies of LAP6. FREE may be used as a dispatcher to aIry one of several separate programs. To facilitate this, LAP6 leaves the code (Chart II) for any character typed after the F in the right 6 bits of the Accumulator. ~, the commands ~FfOl' ... FW EOL ' and ... F: EOl will leave the codes for-EOl, W, and :, respec~1vely, in fhe Accumulator. If nothing is put in block 317, the computer simply halts at 20. LAP6 may be reentered at any time under program control as described below. (Starting LAP6 by executing the regular console start procedure is always legal, but, except following EX or 10, the current manuscript will be erased.) N.b.: the rest of the memory, which contains the LAP6 tape instructions, IS'Iiot cleared when FREE is executed. Putting undebugged programs into the FREE block is not recommended. s6'ec("o 14 ~ w ItlT c -() P, 16-3 Meta Commands Programmed Return from EXIT, FREE, or LOAD BINARY These three co:rmn.a.nds do not return automatically to I.AP6. Since they essentially provide the ability to leave LAP6 gracefully in order to run other programs, what ,happens after one of these commands is executed is up to you. If you wish, however, after executing one of these commands, to reenter LAP6 other than manually, you may do so in the memory under control of your own program. Put 15) 16) RCG ~ 7 () I 71300 in registers 15 and 16 and JMP 15. (Executing RCG, 7\300 from the console switches and starting-at 17 is equivalent.) LAP6 and the current manuscript will be as they were before the command was executed. There is no other way to enter I.AP6 under program control. Do not change the instruction, and do not move it to some other register. Do not enter LAP6 this way illlless you left via EXIT, FREE, or LOAD BINARY. 13. Format: COPY +CP EOl This command copies the contents of any number 'of consecutive tape blocks on any unit to any place on any unit. l It should not be confused with putting entries in a LAP6 file, and has no effect on a file Index. When the command is given, the following appears on the scope: COpy ? BLOCKS FROM BLOCK ? UNIT 1, TO BLOCK 1 UNIT 1 a. lunit = ~Number of blocks to move, octal } Present location } Requested location Fill in the question marks as i:ndicated: type the number of blocks to be copied. This will replace the? on the second line. Terminate with EOl and type the first block number of the blocks to be copied. This will replace the 1 on the third line. Terminate with EOl. Continue answering the questions, terminating each answer with EOl. The command will be executed when the last EOl is struck after the sixth line. 0 , 1 , 4 ,or 5 . 15 16-3 Meta Commands 14. b. Striking del will delete the answers and restore the question marks, one at a time. Answer the question again. (Do any dels before the sixth EOl.) If LAP6 doesn't like what you typed, the question mark(s) will reappear automatically. c. Strike CASE to interrupt the display and return to the manuscript display. d. The blocks being copied are not affected. e. To copy an entire tape, copy 1000 blocks from block O. f. To copy LAP6 itself, copy 50 blocks from block 300 on unit O. Notes, "Copying LAP6 Tapes.") g. Since LAP6 can move only 7 blocks at a time (because of memory limitations), care must be taken not to overlap the blQck numbers on the same unit when COPYing more than 7 blocks. Example: requesting LAP6 to copy 12 blocks from block 550 to block 552 on the same unit will not work, because LAP6 must write the first 7 blocks in blocks 552-560 before it can read the last 3 blocks from blocks 557-561. Requesting it to copy 7 or fewer blocks, however, from block 550 to block 552 on the same unit will work. (Obviously, if the units are different, the COPY will be successful.) Format: PRINT INDEX ..... PX (See UNIT EOl The contents of the specified Index are printed on a teletype which is connected to the LINC through bit 0 of the Relay Register, and which is turned on in the "line" mode. Printing time is 1 to 2 minutes. a. 15 . 16. Strike play. EOl to interrupt the printing and return to the manuscript dis- , PRINT MANUSCRIPl' LIST Format: Format: ....PM (LN, (LN,)) .... lI (LN~ (LN~)) These two co:mmands both use a teletype to PRINT or LIST and have several operating features in common: LAP6 manuscripts, (1) The teletype must be connected to the LINC through bit 0 of the Relay Register and turned on in the "line" mode. (2) Arguments - all optional: (a) 16 (NAME~ UNIT ~Ol (NAME~ UNIT {OL If no name and unit are given, the current manuscript will be printed or listed. If NAME and UNIT are given, LAP6 will print or list the manuscript of that NAME from the file on that UNIT. 16-3 Meta Commands (b) (3) If no line numbers are given, the entire manuscript will be printed or listed. When line numbers, LN, are specified, part of the manuscript will be printed or listed. The line numbers, inclusive, indicate the part. When only one line number is given, the second line number is assumed to be the last line number of the manuscript. Approximately 708 manuscript lines are printed or listed per teletype page. The pages are approximately 11 inches long if cut at the marker which appears between pages. (4) The NAME, if any, and the page number in octal appear at the top left corner of each page. The line number of the first manuscript line which be~ins on that page appears at the top of the page in the format "LN= . (5) Strike EOL to interrupt the printing or listing at any time and to return to the manuscript display. Interrupt with EOL if you forget to turn on the teletype. (6) Manuscript lines which are too long to fit on one teletype line are automatically carried over to the next teletype line. (7) The following characters differ between LINC keyboard (Chart II) and teletype print: LINC Keyboard CASE CASE CASE A CASE B (8) a. Scope Teletype II When the printing or listing is finished, you muBt strike EOL to return to the manuscript display. (This prevents the manuscript display from burning the scope if you have left the teletype.) Print Manuscript Any LAP6 manuscript can be printed with PM. PRINT MANUSCRIPl' will not split words between teletype lines. Printing time is approximately 1 minute per page for LINC program manuscripts. b. List Any LAP6 manuscript which LAP6 can convert to a LINC program can be listed with LI. In addition to the manuscript lines, LIST prints the symbols associated with the manuscript, and the memory address and memory contents of each register of LINC program generated by the manuscript~ The symbols are printed first, in as many as 4 columns if necessary, but nevermore than one page. The manuscript is then listed one line at a time with the memory address (p), and the memory contents (CONT), in octal in the left two columns preceding the associated manuscript line: 17 16-3 Meta Commands NAME"PAGE VAIDE LINE ]A 0030 17 VAIlJE LINE 3T 0426 441 4B 1301 1354 lB 0067 57 IF 1737 2051 NAME"PAGE LN=l p CONT [LIST SAMPLE 15 16 17 20 21 815 0077 #4D SET i 17 6063 0704 6040 7301 JMP lB-4 WRC 6 140 JMP 4B Example 4. (1) When line numbers are specified, the symbols are not printed. ThU$, ~LI 1 ("NAME"UNITJEO L' lists the entire manuscript without the symbols. (2) Do not try to LIST a manuscript which LAP6 cannot convert; use PRINT MANUSCRIPl' instead. LIST does not, however, affect the program. last converted with CV, the operation of either SAVE BINARY or LOAD BINARY, and there is no need to convert a manuscript before you list it. (3) If the manuscript contains "text" (see section VI), the following should be noted: (a) 18 LIST Format. The "p" and "CONT" columns of converted text are listed before the corresponding manuscript line of text. (The manuscript line is not broken; it appears on one line in the listing as it does on the scope.) 16-3 Conversion Conventions fV ..·:C' Occasionally (because of the placement of EOLs within the text)) "p" and "CONT" will be repeated for a single register. The second listing for the register is the correct one. (4) Listing time is approximately 2 minutes per page. Hint: the fastest way to produce printed copy of program manuscripts on the teletype is to LIST the manuscript only through the symbol table. Interrupt by striking EOl. Then PRINT the MANUSCRIPr. The symbol table, providing both the value and the line number of all the symbols in the manuscript, contains all the information needed to find your way around the printed manuscript. VI. Conversion Conventions To facilitate program writing we generally prefer to use symbols instead of the binary, or even octal, numbers which we understand the symbols to represent. We prefer to write "ADD," not "2000" or, even worse, "010 000 000 000," making a note that when the program is put into the memory, 010 000 000 000 must be substituted for the mnemonically easier "ADD." The CONVERT command, by making the appropriate binary substitutions for you, permits a LINC program to be written in a symbolic form as a LAP6 manuscript (Example 5). To prepare the manuscript so that it can be converted correctly, certain conventions must be observed. The symbols used ~enerally follow those in the programming examples in "Programming the LINC, " with amplifications. [lINe PROGRAM SAMPLE 8200 3 #9R lOA ; 4 7B [VARIABLE 5 ADA ; p+4 6 7 #6X JMP 6X-10 10 JMP 9R 11 7B=ADD [EQUALITY 12 -4000 13 9R-6X 1 2 Example 5. LAP6 Program. Manuscript. lwilkes, M.A. and W. A. Clark, LINC, Vol. l~ Prosramming and Use-I, Section 2, Washington University, St. Louis, June 1 5. 19 16-3 Conversion Conventions For example, a single register instruction (line 7 or 10) mu£t manuscript line; double register instructions (lines 3-4, and 5-6) lines. In addition to these instruction lines, some special lines appear in program manuscripts, such as comments (line 1), location (line 2), and equality statements (line 11). occupy one occupy two may also statements In the following, converted values are represented in octal (not binary).· A. Location Statements - 8 To convert the manuscript to a binary program, LA.P6 must know what registers you intended the program to occupy. A location statement (line 2 above) tells LA.P6 to put the instructions (or perhaps data tables) which follow it into sequential registers beginning with the specified location. In Example 5, the LOA i instruction on line 3 will therefore be put in register 200, the ADA i instruction on line 5 into register 202, etc. LAP6 continues to use sequential registers (2000 following 1777, and following 3777) until a new location statement is encountered. There may be as many location statements in a manuscript as you like. If portions of the binary program overlap as a result, the location statement which appears latest in the manuscript has precedence; the instructions (or tables) which follow it will be the ones which appear in the binary program. This is sometimes useful when programs must be written to run with different segments using the same memory locations at different times. o 1. A location statement must begin with the location symbol, 8., followed by octal constants which represent a memory address. B. 2. Manuscripts containing no initial location statement will be located at 20. 3. A location statement must occupy a manuscript line by itself, except that it may include a comment. It is not, however, a line of program and does not appear in the binary program after conversion. Tags - # To eliminate the need to know the actual memory address of a given instruction or data word, any program line (i.e., any manuscript line except location statements and equality statements) may be "tagged." That is, it may be identified by symbols which represent its memory address, and it may be referred to by its symbolic, rather than its actual, address. In Example 5, the tag #9R on line 3 represents the actual memory address, 200, of the LOA i instruction. This symbolic address is then used on line 10 where the code for "JMP 200" is represented symbolically by JMP gR. Similarly the tag #6X on line 7 represents the actual memory address 204. "9R" is said to be "defined" on line 3; "6x" is defined on line 7. 20 16-3 Conversion Conventions 1. C. A tagged line must begin with the tag symbol, #, followed by a Number Letter combination. Equality statements _ a The equality symbol, =, can be used to assign any value you like to a Numbep Lettep combination. Equalities should not be confused with tags, whose values are assigned by LAP6 relative to location statements. Equality statements are generally used when a program value must be treated as a variable. E.g., in Example 5, 7B is defined by an equality symbol on line 11 to represent the code for ADD, or 2000. The equality statement tells LAP6 to convert all references to 7B, such as the one on line 4, to the value 2000: The- value can be 'changed later simply by redefining 7B, i.e., setting it equal to a different value, and converting the program again. "7B" is "defined" on line 11. 1. An equality statement is a Number Letter combination followed by the = sign, followed by the definition of the Number Letter combination. 2. The definition may be any combination of characters which LAP6 can convert except "text" (~). If, however, the definition itself contains Number Letter comblnations, they must have been defined earlier in the manuscript. putting 7B=6X on line 11 in Example 5 would properly assign the value 20~to 7B, because 6x is itself defined on line 7. Were 6x not defined earlier , it would appear as an undefined symbol in the ERROR display following conversion. ~, 3. An equality statement must occupy a line by itself, except that it may include a comment. It is not, however, a line of program and does not appear in the binary program after conversion. D. Number Letter Combinations The Numbers are 1 through 9; 1. The Number must precede the Letter. Letters are capitals A through Z. 2. A Number Letter combination may be defined once as a tag if it also defined as an equality. If it is defined more than once, appear as a multiple definition in the ERROR display following sion. The latest definition in the manuscript will be the one ~, is not it will converused. the following will be converted as shown: Manuscript Conversion 1 8100 4 p CONT 100 2003 101 6042 2F=40 2 #2F ADD 3 JMP 2F+2 3 (Not 6102) 2F is defined on both line 2 and line 4. 21 16-3 Conversion Conventions 2. A Number Letter combination which is used, but not defined, is assigned the value zero, and appears as undefined in the ERROR display following conversion. ~, JMP 3X, when 3X is not defined, is converted :w-oOOO. E. Comments . '- [ The manuscript may be annotated anywhere with "comments" which LAP6 ignores during conversion. F. 1. Comments must begin with the comment symbol, [. character may follow the comment symbol. 2. A comment may be either on a line by itself (line 1, Example 5), or included on any other line so long as it is the last thing on the line (lines 4 and 11, Example 5). Symbolic Operation Mnemonics 1. G. Any displayable Three letter mnemonics may be used to represent instruction codes. The mnemonics which LAP6 recognizes, and the codes which they represent, are defined on Chart III. Present Location - p The small p is used as a symbol for the memory address of the line itself on which it appears. ~,the information on line 6 in Exarrrple 5 will be converted for register 203 (counting from the 8200 statement) . The p on that line, therefore, represents the address 203. (p+4 will then be converted to 203 + 4, or 207.) A tag reference can certainly be used instead of p (on line 6, 6X+3 would be equivalent to p+4 ), but P is often simpler. H. Special Symbols 1. The "i" bit: A small i on a line of program or in the definition of an equality will be converted to 20. 2. The "u" bit: A small U on a line of program or in the definition of an equality will be converted to 10. 3. The vertical bar, I, can be used to separateQN and BN in the second line of tape instructions or to separate the h-bit in half word addressing: ~, 22 412777 will be converted to 6777. 317E, where 7E has the value, say, 45, will be converted to 3045. 16-3 Conversion Conventions The value on the left of the bar is multiplied by 1000 and added to the value on the right of the bar. You may have any combination of symbols which LAP6 can convert on either side of the bar. I. Plus and Minus + and - These symbols are simply used to combine other symbols arithmetically, as in: 1. Relative addressing: p + 4 and 6X - 10 in Example 5 will be converted respectively to 207 and 174 (6X represents 204). 2. Signed numbers: -4000 will be converted to 3777. be converted to 6777 (-1000). 3. Computing differences in memory addresses: Example 5, will be converted to 7773 (-4). for determining the lengths of tables. 3000 - 4000 will 9R - 6X on line 13, This is sometimes useful. 4. Odd combinations: Any combination of convertible symbols may be manipulated arithmetically in any order. ~, ; + ; - U - 6X + P - LAM + ROC ••. , while perhaps not meaningful, is perfectly legal. LAP6 does all calculations sequentially in ones' complement, endaround carry arithmetic. Thus, 6 - 6 (or ADD - ADD) will be converted to 7777 (-0). J. 8' sand 9' s All numerical information on a program line must be in octal (6X - 10, -400~). LAP6 will usually convert meaninglessly any numbers containing an or 9. K. Text - 1111 LAP6 will retain in the binary program the 6-bit ~board Co..9:.§.s of any characters in the manuscript which are set off as "text lt by the upper and lower quotation marks. ~,The following will be converted as shown: 81000 SAE ; "1RII P CONT 1000 1460 1001 0145 (01 is the code for 1, 45 'for R; see Chart II.) This facility simply eliminates the need to refer to a keyboard coding sheet, and provides more readable manuscript. 23 16-3 Conversion Conventions Clear ly SAE ; 0145 would accomplish the same thing. The text feature, however, is useful for coding characters for, say, display programs. The "rule" for using text is simply: every character between quotation marks is retained as keyboard code in consecutive half words in the binary program. 1. The text initiator is the up~er quotation mark (CASE A). The terminator is the lower quotation mark tCASE B). The quotation marks are not retained. a. There may be ~ keyboard characters between the quotation marks except the lower quotation mark (which terminates the text) and del (which deletes the line). This includes the upper quotation mark itself. 82000 EOL 2 [LABELS EOL 3 #3R "GRAPH #?IIEOL 4 #4X "DAIA\t_:t~_OL 5 RUN ,?" [COMMENT EOL 1 Example 6. 2. Text • A line of text may be of any length. LAP6 will assign 2 character codes to a register, beginning in the left half of, in Example 6, register 2000: P CONT 2000 2001 2002 2003 3245 2443 3314 2260 Since there are a total of 8 characters between the quotation marks on line 3, four registers will be required. The next register used by LAP6 will then be 2004. a. ~4 When the number of characters between the quotation marks is odd, the character for SPACE (14) is automatically put in the right half of the last word: 16-3 Conversion Conventions Conversion 1420 2414 SHD i "Au (This will then act as a "blank" if the characters are displayed.) 3. A several manuscri t lines when the text includes . In Example a text line is begun on manuscript line 4 and terminated on manuscript line 5. The rule is the same, however, - every character between the quotation marks is retained, regardless of how many manuscript lines are involved. 4. A line of text may be tagged. Tag text before the upper quotation mark. The tag will represent the memory address of the first register used by the text. Thus, the tag #3R on line 3 of Example 6 will have the value 2000, and the tag #4X on line 4 will have the value 2004. (The instruction i a 3R-4X can then be used to supply an index register with the length of the character table generated by the text on line 3.) smr 5. L. A manuscript line which contains a line, or part of a line, of text may not contain any non-text information (program instruction, equality, etc.) except that it may be tagged before an upper quotation mark, and may include a comment after a lower quotation mark (line 5, Example 6). Spaces and Line Format 1. Spaces are permitted anywhere in a manuscript, except between the number and the letter of a Number Letter combination. ~, 2. I 7C , 6X = ROC, 8 2 0 , # 2A , etc. Spaces are not required anywhere, except between a number and a letter which do not represent a Number Letter combination. ~, 3. ADD, P - 1 0 , 3 SAEi5 = SAE5i = 5 SAEi , etc. The elements of a program line may appear in any order on the line so long as tags come first. ~ , #3K ADD p - 10 = #3KpADO-10 = #3K-10+pAOD ,etc. #4RRDC i u = #4R u i RDC = #4R u ROC i ,etc. 25 16-3 Bibliography Clark, W. A. and C. E. Molnar, "A Description of the LINC," Computers in Biomedical Research, Vol. 2, 1965, Academic Press Inc., New York, 35-66. Convocation on the Mississippi, Proc. of the Final LINC Evaluation Program Meeting, March 18-19, 1965, Washington University, St. Louis. Marlowe, L., LINC Command System, Nov. 3,1965, Brown University, (informal report). McDonald,M. D., S. R. Davisson, and J. R. Cox, Jr., A LINC Utilitl System, Technical Report No.1, Mar. 19, 1965, Biomedical Computer Laboratory, Washington University, St. Louis. ter, Technical University School --~~~~~~--~~~~~--~--------- Wilkes, M. A., LAP3 Users' Manual, Aug. 1963, Center Development Office, decd., Massachusetts Institute of Technology, (informal report) . Wilkes, M. A., "LAP5: LINC Assemb~ Program, It Proc. of the· DECUS Spring Symposium, May 1966, Boston, 43-50. Wilkes, M. A. and W. A. Clark, "Programming the LINC ," LINC Vol. 16, Progra.nnning and Use-I, Section 2, June 1965, Computer Research Laboratory, WaShington University, St. Louis. 26 16-3 Block 0 Block 0 File File 270 UNUSED 270 300 LAP6 350 UNUSED Current Manuscript Working Area 426 INDEX File 426 nIDEX 430 430 File 1 rI11 Standard LAP6 (wi th file) Chart I. 77'1 1 StandardLAP6 File Sta.ndard LAP6 Tape Organiza.tion 27 ~1oIr;lr;lGlr.;llsllslr.;llall;l~ CliJL:wL:2LJUJ~~~WJJLJWU2JL:illL.::i!J r;l1wlfJ;lr;l~1vl1ulr;l1olr;l8 ~LWLWLWL£JW~WU!JLWLW A s 0 F ·G H J K L + - ' ~~~BJ~w~GJ[JJQ ~ 24 46 27 31 32 33 35 36 37 20 rr;l1zl1xlr<7l1vlr»;lr;lr;;lru;l~ Lill~WWLiLJWWLJ~U!JLW 17 ~M~E~T~A-"""\ EOL 12 SPACE U~Eer Lower Case 5 00 01 02 03 04 05 6 06 7 07 10 11 12 13 14 15 16 17 0 1 2 3 4 8 9 EOl del SPACE ; P 20 21 II 22 CASE 23 A 24 B 25 C 26 0 27 E 30 F 31 G- 32 H 33 I 34 J 35 + 40 N 41 0 42 P 43 Q 44 R 45 S 46 T 47 U 50 V 51 W 52 X 53 y 54 Z 55 (CASE SPACE) .... 56 ? 60~ • u • 8 [ (CASE CASE) (CASE A) II (CASE B) II (CASE C) < (CASE D) > (CASE E) ] * K :P (CASE F) l 37 (CASE G) Chart II. 28 (META) M LAP6 Keyboard Code Case 61 62 63 64 65 66 67 70 71 72 73 74 75 76 \1 '. \ -I .r \ Numerical 0 0 5 10 11 13 14 15 16 17 40 100 140 200 240 300 340 400 415 440 440 446 450 451) 452 453 454 455 500 515 516 HLT MSC ZTA ENI CLR ATR RTA NOP COM SET SAM DIS XSK ROL ROR SCR SXL KST SKP SNS PIN AZE APO LIE ISZ OVF III OPR KBD RSW 517 600 640 700 700 701 702 703 704 705 706 707 740 1000 1040 1100 1140 1200 1240 1300 1340 1400 1440 1500 1540 1600 1640 1740 2000 4000 6000 Alphabetical LSW LMS UMB MTP ROC RCG ROE MTB WRC WCG WRI CHK MTT LOA STA ADA ADM LAM MUL LDH STH SHD SAE SRO BeL SSE BCO DSC ADD STC JMP ADA ADD ADM APO ATR AlE BCL BCO BSE CHK CLR COM DIS Dse ENI HLT IBI JMP KBD KST LAM LOA LDH LMB LSW LZE MSC MTB MTP MTT 13 1100 2000 1140 451 14 450 1540 1640 1600 707 11 17 140 1740 10 0 453 6000 515 415 1200 1000 1300 600 517 452 0 703 700 740 Chart III. LAP6 Instruction Mnemonics and Codes MUL NOP OPR OVF PIN RCG ROC ROE ROL ROR RSW RTA SAE SAM SCR SET SHD SKP SNS SRO STA STC STH SXL UMB weG WRC WRI XSK ZTA Zll 1240 16 500 454 44.6 701 700 702 240 300 516 15 1440 100 340 40 1400 440 440 1500 1040 4000 1340 400 640 705 704 706 200 5 455 , 29 Command SM AM OX eM CB CF CV OS SB EX LO F CP PX PM LI Arguments (LN~LN~) NAME~UNIT BN~UNIT or NAME~UNIT UNIT NAME, UNIT UNIT None NAME~UNIT None (NAME~ UNIT) None UNIT (LN,LN,) (NAME, UNIT) If If If If no no no no NO Appears on Scope current manuscript; if Index or file on UNIT is full. manuscript is found as specified. Index is found on UNIT. entry is found as specified; if other Index or file is full. If no Index on UNITJ if other Index or file is full. Never If no binary on LAP 6 tape; if Index or file on UNIT is full. Never If no binary is found as specified. Never If no Index is found on UNIT. If no manuscript is found as specified. Chart IV. Reasons for NO ~ I W CSP PGR LAP6 tape: RCG (701) 7300 START 20 15) 16) 300-337 LAP 6 340-347 Binary working area 350-425 Current ms area File tape (with or without LAP6): 426-427 File Index 0- 267 File areas 430-777 RCG 7300 (JMP 15) I 1 Only after EX, lO, or F MD " ! MANUSCRIPT DISPLAY. EOl terminates ms line. ..LN LN. Knob 7 changes no. of lines displayed. START E9 I b locates ms at erases current ms. c T ... META COMMANDS. State during MD. Begin with META (~). Separate two or more arguments* by commas. Terminate with EOl. If NO on scope, EOl to MD. Save current, or part of current, ms in file on UNIT. If LN given, then d .. SM +1 temporary use of blocks 350-425 on other unit durin~ execution . .. AM U Add ms to current ms at current line. NAME or BN must precede UNIT. Display Index of file on UNIT. R: restore Index after wrong deletions . c,e .. OX U #: make deletions permanent. return to MD • .. CM I Copy ms from file on UNIT to other unit. d d ..... CB I Copy binary from file on UNIT to other unit. .. CF u COpy all non-duplicate file entries from UNIT to other unit. e .. CV e Convert current ms. Binary to blocks 340-347~ LAP6 tape. 3 displays: a.b ERRORS. Multiply defined. two LNs. Undefined, one LN. a MEMORY ALLOCATION. Inclusive locations reQuired by binary program. b SYMBOLS. Value. LN for all symbols. EOl: save SYMBOLS. return to MD . .. OS b.e Display SYMBOLS saved durina CV. ..... SB I Save relevant auarters of binary or02ram from last CV in file on UNIT. d ... EX Exit from LAP6. Halt. RESUME rewinds LAP6 tape. CSP or PGR. o Load Binary into memory. BN to Z3-Z11. Unit no. to ZO-Z2· Uses reg.O. ... lO Starts binary at reR. 1. CSP or PGR. Free meta command. Block 317 to quarter O. Code of char. following F +F PGR. to Accumulator. Starts rea. 20. Copy blocks. Octal keyboard answers to displayed questions. EOl:terminate +CP answers. del: delete answers. CASE: interrupt display. return to MD e ... PX U Print Index on UNIT on teletype (bit O. Relay Reaister). e .. PM +0 Print ms on teletvoe (bit O. Relav Re2ister) • List ms with symbols, memory address, and memory contents on teletype e ... lI +0 (bit O. Relav Re2ister). LN - 1 lists without symbols. U: UNIT required. * I: NAME, UNIT required. 0: N~,UNIT optional. If none, uses current ms or binary from 340-347. +: LN or LN.LN optional (before NAME.UNIT if any). Indicates part of ms. BN: first Block Number CSP: Console Start Procedure, to MD current ms: ms displayed during MD LN: ms line number (max. 7775 octal) ms: manuscript (max. no. blocks - 45; max. no. chars./line = 512) NAME: name of file entry, max. 8 chars. PGR: Programmed Return to MD UNIT: tape unit number (0. 1. 4. 5) a a b b c b c c c e I EOl: 2et next display R: return to MD CASE 0: fwd 1 frame CASE 0: bkwd 1 frame CASE 1: fwd 1 line C~S~ W: bkwd 1 line del: delete last scope line R: replace duolicate entry dl EOl: interrupt; return to MD die LAP6 Operation Summary 16-3 Notes Efficient Handling of LAP6 Editing. Although lines may be edited in any order, LAP6 is occasionally more efficient (less tape shuffling) if low numbered lines are edited before high numbered lines. If you are simply reading the manuscript (i.e., not changing it), the tape efficiency is not affected. The abilities to SAVE part of a manuscript and to ADD one manuscript in the middle of another manuscript can be used to reconfigure large manuscripts and to substitute for a REMOVE command. Saving part of a manuscript not only puts the new manuscript in a file, but also leaves it in the working area of the other tape. It can be brought into the current working area with the command .. AM 350,1 EOL' Adding a manuscript is much faster if the manuscript is not on the LAP6 tape. Move it with CM or CP to another tape before executing the AM command. Conversion is faster if location statements which refer to addresses in one pair of memory quarters (pairs: 0-1, 2-3, 4-5, 6-7) are not interspersed with location statements which refer to addresses in different pairs. This technique will save some tape shuffling during conversion. Conversion Procedure The converted values of discrete elements of a program line are always added to the word being assembled. The complemented value of an element preceded by a minus sign is added. Thus, SET OPR, which is converted to 540, is equivalent to SET+OPR; i i, which is converted to 40, is equivalent toi+i. Exiting If either EX or 10 is executed when 1 is the current line number, the manuscript display will suggest that there is no current manuscript, which mayor may not be the case. Therefore, if ~ when restarted, displays only the line number 1, do not assume that there is no current manuscript without trying to locate forward (to a higher line number) once. Working Axea Length LAP6 checks for various boundary crossings" It will not, for example, permit a manuscript to go beyond the working area into the Index. If the manuscript-Index boundary is encountered, LAP6 ignores additional manuscript input. It will, however, continue to honor all the meta commands. You can thus SAVE the MANUSCRIPT, equip yourself with a configuration of LAP6 which has a larger working area, and continue. 1 16-3 Notes LAP6 Manuscript structure COding Rules: A LAP6 manuscript is a single string of 6-bit character codes. On a LINC tape the codes are stored in sequential half-words in sequential, contiguous blocks, in the order in which they appear on the scope. 1. The first word of the first block contains the number 2065. The second word contains 5712. The last half-word of the manuscript contains 77. There is no other control information associated with a LAP6 manuscript. 2. The characters are coded as on Chart II. The codes for del (13), CASE (23), META (56 and 57), and 77 (except last) do not appear in a LAP6 manuscript. One EOL (12) does not appear next to another EOL. 3. There are no more than 51110 codes between two EOLs. Generat~ManUScript: A manuscript may be generated other than with LAP6, and used with LAP6. However, it must: 1. Conform to the above coding rules. 2. Be put in contiguous blocks on a LINC tape. 3. Not be put in the manuscript working area (blocks 350-425) of a LAP6 tape. 4. Be added to LAP6 with ADD MANUSCRIPr, .. AM BN, UNITEOL • If the above procedure is followed, the generated manuscript may then be treated as any other tAP6 manuscript. . Manipulating Manuscript: LAP6 maybe used to generate a manuscript (~, a programming language, a bibliography, etc.) which is to be the data source for some other program. You may assume that the current manuscript on the LAP6 tape (blocks 350 ff.) conforms to the above coding rules, and is therefore accessible, following the commands EX, F, CP, CV, W, and SM. You may read the manuscript directly from the working area. Do not, however, write back into the working area. Following these commands you' may ADD the MANUSCRIPr from the current working area into the working area of another copy of LAP6. Copying LAP6 Tapes To copy a LAP6 file use CF. (see "Manipulating Manuscript"). To copy the current manus cript use CP or AM To copy LAP6 use CP and note the following: Since LAP6 writes over parts of itself in blocks 300-347 while running, the probability that any two copies of LAP6 are ever exactly alike is extremely remote. Copying only some of the blocks between 300 and 347, i.e., to patch up a damaged LAP6, will therefore generally result in a mess. Yo~t copy all 508 blocks at once. 2 16-3 Notes Avoid copying a version in which either EX or 10 was the last command executed. Such a version assumes that there is a particular manuscript in its working area. Using this version on a different tape may result in another mess unless the working area is also copied. One procedure guaranteed to work is for the version which is to be copied to do the copying and to COPY itself. The last command executed will, of course, have been CP when the version is started from another tape, and there will be no confusion about the current manuscript. Filing Limitations The filing limitations of LAP6 are obvious. The SAVE BINARY command will file only a program which LAP6 has converted, and which therefore is no more than 8 blocks long. Furthermore, no command will permit an entry to be filed in specific blocks. If LAP6 files it, LAP6 decides where to put it. There are various ways around these limitations. In this connection note. that the COPY BINARY, COPY FILE, and LOAD BINARY commands are not bothered by binary entries longer than 8 blocks. The first two simply copy entries as they are described in the Index, no matter how long they are, and LOAD BINARY loads as many blocks as it can, through quarter 7. It does not load around the end of the memory. Thus, if a binary entry is, say, 12 blocks long and its first block is for quarter 3, LO will load only the first five blocks of the entry, into quarters 3 through 7. To file binary information which LAP6 has not converted, you can create a pseudo file entry and then COPY into the entry's file space the binary information you want in the file. The easiest way to do this, if 8 or fewer blocks are needed, is to make up the three line manuscript: 1 2 3 83777 0 0 Convert it (CV). Save the resulting 8 block binary "program" in a file (SB). This provides a named binary entry in the Index, and 8 contiguous blocks (of zeros) in the file. Display the Index to find out where the 8 blocks ·~e, and then copy (CP) whatever you want into the 8 blocks. LOAD BINARY will, in this case, load all 8 blocks. You may also, of course, COPY anything into a manuscript file space, which is thus not limited to 8 blocks . Neither ADD MANUSCRIPr nor WAD BINARY, however, will be any use in retrieving it. All the filing limitations can be avoided by creating a file Index yourself. You can prepare a LAP6 manuscript of Index entries which when converted is identical to a LAP6 Index, and can be copied (CP) into the two Index blocks on a tape. This permits you to make entries of any length, or to claim specific blocks in a file before LAP6 has a chance to assign the blocks to something else. The Index thus created can then be used by any LAP6 filing commands, which will simply file around your entries. So long as the fixed entries are 16-3 Notes not deleted from the Index, their file space will never be used by LAP6. If file entries are to keep fixed tape locations when being copied to another file, they must, of course, be moved with CP (not CM or CB). To copy a whole file which contains some fixed location entries, COPY the Index first. Delete from the "new" Index all the entries which do not need a fixed location. COPY FILE from the old file into the new one to move those entries, and COPY the entries which have a fixed location. Index Structure You may have occasion to make up a file Index as a LAP6 manuscript, or to write programs which scan an Index for specific entries. The Index structure must be well understood. A LAP6 Index is always two blocks long and is always in tape blocks whose block numbers end in 6 and 7 (regardless of configuration). The two blocks are divided into 1008 segments of lOR words each. The first segment is the Index identifier; the other 778 segments are for Index entries. An Index always has the correct identifier and at least one entry. Identifier: if the two blocks are an Index, this segment has 5757 in all 8 words. If the two blocks are not an Index, these 8 words contain anything but 5757. Entry Segments: an entry segment always contains the entry name in the first four words. If the segment contains a name, it must describe either a manuscript in the fifth and sixth words, or a binary program in the seventh and eighth words, or both. A name does not appear without at least one of these entries. A manuscript and a binary program of the same name must be described in the same entry segment. An unused entry segment has 5757 in all 8 words. Name: first four words. The entry name is stored in 8 half-words beginning m'the left half of the first word of the segment. Unused half-words in the name contain 77. The name confo~ to the rules for entry names described under "Files" in the Handbook, and does not begin with a space. The characters are coded as on Chart II. Manuscript Entry: the first block number of the manuscript's location in the file is stored in the fifth word. The length of the manuscript (number of blocks) is in the sixth word. If there is no manuscript entry, these two words contain 5757'. Binary Entry: the first block number of the binary program's location in the file is stored in the seventh word, with the number of the first quarter into which it is to be loaded in the left three bits. The length of the binary program (number of blocks) is in the eighth word. If there is no binary entry, these two words contain 5757. 4 16-3 Notes Example: Name NAME GRAPH Manuscript Entry BN #BLKS M 100 B 230 33 16 Binary Entry Coded Entry Segment Corresponding Index Display Used segments are not necessarily "packed" in the Index. spersed with unused segments. They may be inter- Since all unused segments, or unused 2 word entries within a segment, contain 5757, this number can be used for scanning the Index to locate specific entries. If a segment is not used, it will contain 5757 in the first word of the name. If it is used, and describes a manuscript, the left three bits of the fifth and sixth words will contain O. If the segment does not describe a manuscript, these bits will contain a 5. If the segment describes a binary entry, the left three bits of the eighth word will contain 0; otherwise, 5. (The seventh word, which may contain quarter number 5, should be ignored.) LAP6 Configuration As has been suggested, LAP6 need not have the tape configuration described in the Handbook, and a different configuration may be more appropriate in certain cases. Other configurations operate exactly as the standard LAP6, but do so with reference to different tape blocks and block areas. Thus if you are using another configuration, you must note' the different block numbers and make the appropriate adjustment when reading the Handbook. Regardless of what configuration LAP6 has, it assumes that any other tape which it ma use durin eration has the same confi ation. You cannot, for example, use a configuration of whose Index is at 52 to file entries in a file whose Index is at 426. Any, or all, of the following may differ from the standard configuration: Tape Unit: LAP6 may operate from another tape unit. If, for example, the configuration is for unit 1, it must be mounted on unit 1, and read with RCG u, etc. SAVE MANUSCRIPr with line number arguments will then use the unit 0 workarea during execution. Lower File: (standard: 0-267) Begins at block 0 and may end anywhere below I.e., may be of any length, creating more or less UNUSED blocks between the lower file and LAP6. LAP6. 5 16-3 Notes LAP6: (standard: 300-347) May be anywhere, but is always 508 blocks long. The configuration of blocks within LAP6 does not change. The FREE meta block (standard: 317) and the binary working area (standard: 340-347) are always in the same position relative to the first block of LAP6. Working Area: (standard: 350-425) May begin anywhere above LAP6, creating UNtrsED blocks between LAP6 and the working area. It may be of any length, but always ends at the block before the Index. Index: (standard: 426-427) May be anywhere above the beginning of the working area, but is always 2 blocks long and terminates the working area. ~r File: (standard: 430-777) May begin anywhere above the Index, creating ED blocks between the Index and the upper file, but always ends in block 777. The relative positions of the Index and the two file areas will affect the filing behavior of LAP6. Regardless of configuration, however, the filing algorithm does not change. LAP6 always files within the reserved file area only, as close as possible to the Index. If, for example, there is no lower file at all, all entries will be filed sequentially in the upper file area only. If you change from configuration A on tape A to configuration B whose Index B is in a different place, you can move the Index on tape A to the Index blocks that configuration B requires with CPo Although LAP6 will file entries only in the file area reserved for the new configuration, it makes no-assumptions about the information already in a file Index. If, in order to work with a new configuration, an Index is moved, say, from blocks 426-427 to blocks 576-577, and that Index describes a 10 block manuscript named CHARLES in the old file area at block 430, it still describes such a manuscript. The manuscript CHARLES will be properly found by the new configuration. If, however, the Index is copied into the old file area on top of a file entry, the record of the now destroyed entry must be deleted from the Index. It, of course, cannot be properly found by the new configuration. Various Failures LAP6 makes fairly heavy demands on the tapes and requires well tuned units. Trouble may appear which a machine has not previously exhibited. Although any sort of trouble should be fixed immediately, LAP6 is written to maximize the possibility of recovery. LAP6, the current manuscript, the Index, and the file entries can all be treated as separate elements should you ever have to patch things up. If one element is damaged, the others are probably all right and can be salvaged. In addi tion, the general structure and identif'ying coding of manuscripts and file indices have been kept as simple as possible. Tape StoEPing LAP6 uses the IBZ instruction frequently to control the tape motion. Occasionally, however, a tape will suddenly stop in the middle of otherwise very busy looking activity, and LAP6 will loop: 6 16-3 Notes p-l (START RS here) P p+l r IBZ JMP p-l (code 453) (code 6000 + p-l) Since the tape has stopped, the program will never skip on the IBZ test. if you suspect this problem, you simplY have to take LAP6 out of the Recovery: loop: 1. Push INSTR BY INSTR. (This is always safe.) The INSTRUCTION lights will show the code for either IBZ or JMP p-l. 2. STEP a few times to verify that the program is indeed in the 2 instruction IBZ loop. If not, raise RESUME. 3. Put "p+l" (the location after the JMP instruction) in the RIGHT SWITCHES. 4. Push START RS. LA.P6 will continue unharmed. Cure: if this happens frequently, you should find out why the tape is stopping before an IMARK appears. Possibilities: 1. The tape heads need cleaning. Frequently this is all that is required. 2. The tape reel is slipping on the hub. band. 3. The tape timing channel is noisy; spurious END MARKS are appearing. l The hub needs another rubber 4. A spurious Unit change is causing a motion stop. 1 Bad Block ottA.,. tOL~ ~ M If the execution of a meta command~eveals a bad block not in the LAP6 or current manuscript area, ~, on another tape or in a file, you can recover: 1. STOP the computer. 2. Read LAP6 in again (RCG, 7300). 3. Put 17 in the RIGHT SWITCHES and push START RS. EXIT from LAP6 and, if LAP6 was executing a filing command at the time, read the section on "Damaged File Area." Tape Missing If you forget to mount a tape on another unit, whose hub frustratingly DI*i,. ~ starts to spin because LAP6 is trying to execute a meta commandkwhich needs 1\-1\1\ that unit, use the 3-step recovery procedure described under "Bad Block." Then mount the needed tape and restate the meta command. ~or standard LINCs see dwg. 1025, LINC, Vol. 12, Logic Drawings and Timing Diagrams. 7 16-3 Notes Damaged or Lost Manuscript There is no need to erase the current manuscript if you suspect that part of it has been damaged. Manuscript lines are self-contained; therefore any line which looks strange can simply be deleted and replaced. If LAP6 loses track of the current manuscript (START 20 pushed too often, or LAP6 replaced and restarted), execute ~AM 350,OEOL. The manuscript will be all right if the last thing LAP6 did was EX, F, CP, CV, 10, or SM. If you aren't sure what it did, proofread the manuscript. In a;ny case, executing the AM command will do no harm. If LAP6 refuses to add a manuscript (AM) to the working area, the first two coding words are damaged. Put 2065 and 5712 into the first two words of the first block of the manuscript. Add the manuscript again and proofread it. If the final 77 is it with AM, keep adding boundary condition. In probably be innnediately damaged, LAP6 will, while locating forward, or adding manuscript until it finds a 77 or stops because of a either case no harm will be done. The garbage will obvious on the scope and can be deleted. Between the first two coding words and the final 77, the only thing that can be wrong results from rare trouble of the bit dropping (or picking up) variety which changes one character code into another. Thus it is possible that character codes which "do not appear lf in a LAP6 manuscript may do just that. The spurious codes will do no harm in the manus cript • A 23 (CASE) however, will give the CONVERT and LIST commands indigestion. To make them easier to spot and delete, these codes are all displayed: 1. 2. 3. 4. 13 (delete) and 23 (CASE) appear as ? 56 (META) in the middle of a line unfortunately appears as a dash, -, but usually in an unlikely post tion in the line. At the beginning of a line it appears as a meta command. 57 (META) appears as the arrowhead. 77 appears as an unrecognizable "squiggle." The line should be deleted innnediately since the 77 will truncate the manuscript. Damaged Index The Index of a file tape has no back-up. If damage to these two blocks is such that they cannot be read even with RDE, there is nothing you can do. If the tape is all right, however, display the Index (displays NO) is that Read the first block (426) of the Index eight words only. Write the block back and delete any damaged entries. the only reason LAP6 will refuse to the Indexidentifieris incorrectly coded. into the memory and put 5757 in the first in 426. Execute the DX command again, If one block, but not both, of an Index cannot be read, the other block is worth salvaging. On another tape make an Index you don't care about by saving something (SM or SB). Then try to COPY (CP) separately each of the two Index blocks on the bad tape into the Index blocks on the good tape. If at least one block copies successfully, that half of the Index is probably all right. Display 8 16-3 Notes or print the good Index to find out where the file entries are on the bad tape, and move them with CP to the good tape. To salvage the information in an Index block which can be read with RDE, but which does not check, read the damaged block into the memory and decode it segment by segment at the console (see "Index structure"). Damaged File Area If there is tape trouble while LAP6 is reading or writing a file entry, you can salvage the rest of the file by deleting from the Index the entry in the bad blocks, and then copying the file (CF) from the bad tape onto a good tape. Since the entry is not described in the Index, LAP6 will not try to read the bad blocks. LAP6 always the file. Thus, will describe an the Index before writes the Index before it writes the corresponding entry in if trouble occurs inbetween these two operations, the Index entry which is not there. The entry should be deleted from you try to recover. 9 Notes Notes Notes LAP6 Haster Tape This tape contains several configurations (see Handbook) of LAP6 plus a few special programs~ It should be viewed as a back=up tape, not to be used, from which the things you want to use must be copied onto another , tape. Mos~ of the copies of LAP6, in particular, are not in the correct blocks for their configurations, and cannot be run from this, tape. The 'programs and LAP6 configurations are described in detail on 'subsequent pages. I The format of the. Master Tape is as follows: l~qt-Blocks (octal~ S2ecial Programs Block COPY TAPE TRANSLAT MARK INDEX MS LAP6GRID 430 431434 4 (Binary Program) (Binary Program) (Binary Program) (Manuscript) 440 2 (Manuscript) Standard BACK-UP . 300 350 Configuration Configuration Configuration Configuration Configuration 10 60 130 , 200 600 50 50 50 50 50 50 50 o 1 1 3 LAP6 Configurations STANDARD LAP6 1 2 3 4 5 Any deviation from the Standard configuration is given a configuration number. It· is strongly recotnmended that the reel of any· LAP6 tap~wh~ch has a non-Standard configuratio~.be clearly marked with its configuration number. Index The 2 block INDEX on this tape in blocks 426-427. which can be displayed by any Standard LAP6. describes the above tape contents. M.A. Wilkes Computer Research Laboratory Washington University 724 S. Euclid Ave. St. Louis, Mo. 63110 Block 0 COPYTAPE Author: 1 block Robert Abbott Thi.s program copies the contents of the entire tape on Unit Q onto the tape on Dni t l. On the LAP6 Master Tape ~ t is supplied as a lead.er in Block o for making back-ups of the Master Tape. It can, however, operate from any block on any unit. -To operate: .. 1. '2. Read COFYTAPE into Quarter Mount the tape to be copied on Unit 3. ' Mount a marked tape on Unit ,4. o. o. 1'. Push SIfAR1r 20. All the blocks will be read from Unit 0 and written on Unit 1. All the blocks on Unit 1 will then be checked. A block will be rewritten if it does not check. 'When all have checked, "nONE:" will be displayed on the scope, and , the tape on Unit 1 will be rev,ound. START 20 may be pushed again to copy a second tape, or'to restart if 'there is trouble during operation. There is no need to read COPYTAPE in again before restarting it. Block 430 TRANSLAT Author: 1 block Mary Allen Clark LAP6 manuscripts are not compatible with manuscripts prepared by other LINC Assembly Programs. 'rRANSLAT translates LAP3 or LAP4 manuscripts into LAP6 manuscripts. The LAP3 or J~4 manuscripts must be on a tape on Unit 1. They will be filed by name in a LAP6 file on Unit O. . TRANSLAT operates as a FREE meta command for the Standard configuration of LAP6 . .To use: 1. '2. I I \ Copy TRAl'ISLAT from block 430 on the master tape into block 3i7 (the FREE block) of a Standard configuration ofLAP6. Using the same Standard configuration, start LAP6 and prepare' a LAP6 manuscript describing the manuscripts to be trans~ated: . a. b. On manuscript line 1 type the block number of the first block of a LAP3 or LAP4 manuscript which can be found on Unit 1. On manuscript line 2 type the NAME the manuscript (from step a) is to have in the LAP6 file. ' - c .. Repeat steps a-b for each manuscript to be translated, describing as many manuscripts as necessary. Block'numbers should appear on odd numbered lines; corresponding Names on even numbered lines. Do not put anything except block numbers and legal LAP6 file Names in the manuscript. '" ':" Example: 1 .2 3 4 .. , 3· 201 f TAPETEST 206 DATA RUN When all the Unit I manuscripts which are to be translated have been described in the, LAP6 manuscript" state the FREE meta C?mmand (..,..F ). EOL TRANSLAT will move the manuscripts from Unit' 1 into a Standard LAP6 f.ile on Unit O. The Unit 0 tape may not contain a needed LAP6 file or Index; TRANSLAT creates its own Index for the LAP6·tape, and uses whatever.ij.le space it needs.. It does not, however, disturb the. information on the Uril t I tape. ;' \ . " 1..J- r v • a h ~ Pr-e " \ 0 vS ,\.... i.e.. x 0 11\ V ~ {t-· o. II s e "'- S cr ~ ~d'\ ~~ f'e ... ' The burden is on the user to prepare the manuscript for TRANSLAT correctly.' LAP6 file Names may be no more than -8' characters long, not all numbers. 'Two· . manp.scripts in the same file may not have the same.,Warne (see. "Files" in the ".s I \ \ H~0..oook). .. TRANSLAT returns automatically to LAP6. Display the Index on Unit 0 (~DX 0V.OL) to make sure that all the manuscripts described were translated. A manus~rlpt will be omitted if it was not foun4 as a legal LAP3 or LAP4 manuscript on Unit 1, or if the Index or file on Unit 0 fills up before all have been translated. ~ve the man1l;scri:p~j_~~tr~?Xls.l?-.t~ct~Q..ff.__the..Jlnit~Q~-,.t_~l?_~__ w~th COPY .~.!!:lE>_ "~~ -+-~~~QJl_~e!?!,~~..rw.mi~g...:the._~S!u\TJ!_~~E~_~~~~~; Block MARK 431 Author: 3 blocks Severo M. Ornstein The .NARK program marks virgin tape for use by the IJINC. After marking, , the tape '\-lill begin with a short end zone and end with a long end zone. There" are two extra check 'marks at the end of each tape block. To use:' 1. Check the mark clock. 2. Degauss the tape. '3. 4. 5. It should be set as precisely as possible at 10 us. ' (rfmove. ~O(J"'· Wl;Sf w ot+e 4 () . If the tape is new, run it manually across the head a few times to align it on the reels. Clean the tape heads. 3 blocks of the MARK program into quarters 0-2 and push START 20, a Standard LAP6 on Unit 0 and LOAD the program (-)LO MARK,Unit EOL ). The following "Till be displayed: ' Read the £E. ,mount , ALLOW UNIT 0 TO REWIND, THEN MOUNT VIRGIN TAPE ON UNIT 1, PRESS MARK BUTTON Al~ ,6'. 7. Allow the tape on Unit 0 to rewind and mount the tape to be marked on Unit 1. ,Wind about 6" of the tape onto the lefthand hub (about one turn of the' , ; reel). Press the "MARK" button. 8. When the prpgram halts, manually rewind the tape onto the righthand hub to' get the tape beyond the righthand end zone. This is accomplished. by press- . ing the righthand pushbutton for about five seconds. 9. Raise the ,,"RESUME" lever. When the tape has been marked, written upon, and checked properly, the .following will be displayed: GOOD TAPE EOL FOR LAP you can remount the LAP6 tape on Unit If, however, you wish to mark another tape, repeat steps 2 through !~ and 6 through 9 above. If the MARK program was, LOADed by LAP6, o and strike EOL to return to LAP6. If' there has been a. failuxe in the marking process, "CHECK FAILURE" will be displayed. Start over again at step ~. INDEX MS Block 434 Author: 4 blocks Mary Allen Clark INDEX MS is a LAP6 manuscript which when converted supplies the 5757 code for unused slots in a LAP6 Index. It is simply an aid to creating indices of your own. To use: l. Start LAP6, and erase any current manuscript by pushing START 20; 2. Add INDEX ME to the working area (-+AM INDEX MS, Uni t EOL ) . line number will be 1007. 3. The current Starting at line 1007; add as many manuscr'ipt lines as necessary to describe the entries you want in the Index. (study the tlIndex structure" ,'described in the IIandbook.) Fo:c exwn.ple, the following nine manuscript lines, when converted with INDEX MS, will describe the two entries on p. 5 of the Handbook: 1007 1010 1011 1012 , 1013 1014 1015 1016 1017 810 32'45 } . 24,43 Entry Name, 4 lines 3377 7777 100 Manuscript Entry, 2 lines 33 4230J Binary Entry, 2'lines 16 1 a. Locate each entry segment (line 1007 above) at multiples of 108 (i.e., 920, 830, etc.), in the range 10 throu_gh 770. b.· Be sure that when the Index Manuscript is converted, each entry segment added will account for 8 words. (Name, 4; manuscript entry, 2; binary.entry, 2.) (1) Remember to put 77 in each unused half-word of the four Name words, and 5757 in the two words not used by a manuscript or binary entry. (2) If you use "text" for the Name, remember that a SPACE code (14) will be filled in the last half-word if the number of characters in the Name is odd. The SPACE will .then be part Of the Name. 4. When as many entry segments as needed have been added to INDEX ME, convert the manuscript (-.CVEOL ). The Index created will be in blocks 340-341 (if Standard configuration). Copy these two blocks (~CPEOL) into the two Index blocks (blocks 426-427, Standard) on a tape. I, ' 5· Display the new Index (-+OX Unit EOL )' If it looks strange, return to the manuscript display and correct the Index Manuscript. It has been incorrectly formatted. 6. In creating the Index, be sure to describe entries which LAP6 can handle. I. e ., do not duplicate Names, or describe entries which "go around the end" of the tape, etc. LA.P6GRID Block 440 Author: 2 blocks Mary Allen Clark LAP6GRID is a manuscript of the grid patterns used by LA.P6 to generate the characters described. on Chart II of the Handbook. It may be added to any other LAP6 manuscri.pt and converted. with it. LAP6GHID contains tags #6A, #6B, #6c, #6F, #6G, #6L, #6Q, and #~V. It contains no location statements, and occupies 1768 memory registers when converted. _ ~ 0 0 '+~ ,(Or u rr-e.-· c"" se (""'" (...{ld' G] __________ 1l1o~J5'. o JtlQ.Qlb _________ o }i':LLe File 300 Il\J?6 350 350 CUTrent CV..l"Tent . Manusc1"i)~t Mannscript Horking Area vlorking Area 1j·26- Index -l.12b Index 4j) File ~·30 File ______,,_777 STANDARD Configu:ration 1 Unit 1 Unit 0 I. (Copy 50 blocks from block 300, or 350, maste:c tape,' to block 300. Run f:rom Unit 0.) Con:figuration I is identical to the Standard configuration, except that itlllust be run from Unit 1. (Copy 50 blocks from block 10, master tape, to b?ocJ~ 300. Run :fr:bm Unit 1.) Block o 300 LAP6 350 Current. Manuscript Working Area 4-26 Index File ·777 Configuration . Unit 0 2 . Copi"igtiration 2 is identical to the Stan
Source Exif Data:File Type : PDF File Type Extension : pdf MIME Type : application/pdf PDF Version : 1.3 Linearized : No XMP Toolkit : Adobe XMP Core 4.2.1-c043 52.372728, 2009/01/18-15:56:37 Create Date : 2011:04:04 19:36:20-08:00 Modify Date : 2011:04:04 19:31:57-07:00 Metadata Date : 2011:04:04 19:31:57-07:00 Producer : Adobe Acrobat 9.42 Paper Capture Plug-in Format : application/pdf Document ID : uuid:0f0e5ef9-cba3-4611-b594-3ac9ae636f38 Instance ID : uuid:2761710b-e06f-4ec0-9ef6-e49ad5bba7de Page Layout : SinglePage Page Mode : UseNone Page Count : 65EXIF Metadata provided by EXIF.tools