HBUPDATE.DOC OS/8 Handbook Update Order No. DEC-S8-OSHBA-A-DN4 DISCLAIMER This document file was created by scanning the original document and then editing the scanned text. As much as possible, the original text format was restored. Some format changes were made to insure this document would print on current laser printers using 60 lines per page. The original spelling and grammar has been preserved. 1-Dec-1996 OS/8 Handbook Update Order No. DEC-S8-OSHBA-A-DN4 ABSTRACT This document includes all previous corrections to the OS/8 Handbook, and contains the documentation to _____________ support V3D of OS/8. SUPERSESSION/UPDATE INFORMATION: This manual updates the OS/8 Handbook for V3D _____________ of OS/8. OPERATING SYSTEM AND VERSION: OS/8 V3D ---------------------------------------------------------------------- | To order additional copies of this document, contact the Software | | Distribution Center, Digital Equipment Corporation, Maynard, | | Massachusetts 01754 | ---------------------------------------------------------------------- digital equipment corporation - maynard. massachusetts First Printing, October 1975 Revised: December 1975 September 1977 The information in this document is subject to change without notice and should not be construed as a commitment by Digital Equipment Corporation. Digital Equipment Corporation assumes no responsibility for any errors that may appear in this document. The software described in this document is furnished under a license and may be used or copied only in accordance with the terms of such license. Digital Equipment Corporation assumes no responsibility for the use or reliability of its software on equipment that is not supplied by DIGITAL. Copyright (C) 1975,1977 by Digital Equipment Corporation The postage prepaid READER'S COMMENTS form on the last page of this document requests the user's critical evaluation to assist us in preparing future documentation. The following are trademarks of Digital Equipment Corporation: DIGITAL DECsystem-10 MASSBUS DEC DECtape OMNIBUS PDP DIBOL OS/8 DECUS EDUSYSTEM PHA UNIBUS FLIP CHIP RSTS COMPUTER LABS FOCAL RSX COMTEX INDAC TYPESET-8 DDT LAB-8 TYPESET-10 DECCOMM DECSYSTEM-20 TYPESET-11 INTRODUCTION This update is a collection of changes and additions to the OS/8 ____ Handbook for use with Version 3D of OS/8. These changes and additions ________ are documented herein by Chapter as they appear in the handbook. This update also includes information on several new or revised OS/8 utility programs. These utility programs, included as Appendixes to the handbook, are: RXCOPY - Appendix I SET - Appendix J FUTIL - Appendix K DUMP - Appendix L RKLFMT - Appendix M iii FRONT MATTER AND CHAPTER 1 ADDITIONS AND CHANGES Page Addition/Correction ii In the second line from the bottom, change "Communications Services, Parker Street" to "Software Distribution Center". viii In the first line of the second paragraph, change "impossible" to "possible". At the end of the second paragraph, add "OS/8 also runs on the VT-78." 1-2 Step 1, change DEC-S8-OSYSB-A-UCI to AL4711C-BA 1-4 Step 1, change DEC-S8-OSYSB-A-UC2 to AL4712C-BA 1-5 Step 6, First line of example, change "form" to "from" Step 6, change DEC-S8-OSYSB-A-UCI to AL4711C-8A 1-9 Step 1, change DEC-12-OSYSB-A-ACI to AL-3580C-BM 1-10 Step 1, change DEC-S8-OSYSB-A-TC1 to AR4585C-BA 1-15 Step 1, change DEC-S8-OSYSB-A-TC2 to AR4586C-BA Step 2, change DEC-S8-OSYSB-A-TC3 to AR4587C-BA 1-16 Step 4, In the MCPIP: program line 5 is changed, lines 12 and 13 are deleted, and three lines are appended. The complete program reads as follows: *SYS:CCL.SV! !!JUSTIFY!QN-40"G! !60-QN-QS !0L QS%N$ Q5%S$ OJUSTIFY$'! !60-QN"G 60-QN''! !LZ-."G0 1$'$$ Figure 2-6: .R TECO *ERDTA1:MACRO.TE$ Y HXI HK$$ *ERDTA1:TEXT.AS$ Y MI$$ 2-178 Replace the example for SUPER TECO with: .GET SYS TECO .ODT 2051/7420 7610 2134/7450 7410 ^C .SAVE SYS STECO 22 Page Addition/Correction 2-178 Replace the current example of STECO (Super TECO) with the (cont.) following example. .R STECO *ERBBB:$EWDDD:JUNK.$$ (WHERE BBB IS THE DEVICE WITH A LOST FILE (EMPTY)). READ FROM BAD DEVICE BBB: WRITE A FILE JUNK ON GOOD DEVICE DDD: *NABCDE$QLT$$ SEARCH FOR NEXT "ABCDE" THEN TYPE THE LINE. MULTIPLE SEARCHES MAY NEED TO BE MADE. *D...... DELETE JUNK CHARACTERS FROM THE BE- GINNING OF THE LINE PARTICULARLY A ^Z. *EF$$ CLOSE THE JUNK FILE. *EWDEV:FILEN.EX$$ OPEN A NEW FILE ON THE GOOD DEVICE WITH THE PROPER FILE NAME. *NUVWXYZ$PWEF$$ SEARCH FOR THE END OF THE FILE TEXT "UVWXYZ" WRITING TO THE NEW FILE. *EX$$ EXIT TO OS/8. In the section on "Incompatibilities Between OS/8 TECO and DECsystem-10 TECO," change incompatibility #1 to read as follows: "The ^R command does not exist on DECsystem-10 TECO." 2-179 Step 6 - delete Step 7 - delete the word "^V". In Table 244, add the commands: FS search for a character string in the current buffer and replace with another string. FN search for a character string in a page of the input file which may not have been read into the buffer, and replace with another string. ^U insert the specified character string into the text storage area of the Q-register. 2-180 In Table 244, under the heading POINTER POSITIONS, change the command mL to nL. 23 Page Addition/Correction 2-182, In the section "Running TECO on the PDP-12" change all 2-183 references to "^W" to "W" 2-184 Table 2-45, delete all and replace with: Table 2-45 on next 3 pages. Table 2-45 Summary of TECO Error Messages ---------------------------------------------------------------------- | Printout | Printout | Meaning | | Abbrev- | Message | | | iation | | | |----------|--------------------------|------------------------------| | ?ARG | IMPROPER ARGUMENTS | Number missing before comma, | | | | or two arguments specified | | | | to D, or three numeric | | | | arguments | | | | | | ?BNI | NOT AN ITERATION | Iteration close (>) without | | | | matching open (<) | | | | | | ?CCL | CCL.SV NOT FOUND OR EG | CCL not found or EG argument | | | ARGUMENT TOO BIG | too long | | | | | | ?FER | FILE ERROR | FILE ERROR can mean: | | | | 1) input file not found on | | | | "ER" command | | | | 2) cannot enter output file | | | | on "EW" or "EB" command | | | | 3) device specified for file | | | | does not exist | | | | 4) "EB" command given on | | | | non-file structured device| | | | | | ?FUL | OUTPUT COMMAND WOULD HAVE| Output command would have | | | | overflowed output file | | | | (panic mode) | | | | | | ?IEC | ILLEGAL CHARACTER X* | E followed by an illegal | | | AFTER E | character | | | | | | ?IFC | ILLEGAL CHARACTER X* | F followed by an illegal | | | AFTER F | character | | | | | | ?IFN | ILLEGAL CHARACTER X*** | Illegal file name in "ER", | | | IN FILE NAME | "EW" or command | | | | | | ?ILL | ILLEGAL COMMAND X* | Illegal command | ---------------------------------------------------------------------- (continued on next page) 24 Page Addition/Correction Table 2-45 Summary of TECO Error Messages (cont.) ---------------------------------------------------------------------- | Printout | Printout | Meaning | | Abbrev- | Message | | | iation | | | |----------|--------------------------|------------------------------| | ?INP | INPUT ERROR | Parity error on input file | | | | | | ?IQC | ILLEGAL CHARACTER X* | " followed by an illegal | | | AFTER "" | command | | | | | | ?IQN | ILLEGAL Q REGISTER NAME | Non-alphanumeric Q-register | | | X** | name | | | | | | ?MEM | STORAGE CAPACITY EXCEEDED| Text buffer overflow | | | | | | ?NAC | NEGATIVE ARGUMENT TO, | Negative argument to comma | | | | | | ?NAE | NO ARGUMENT BEFORE = | No numeric argument to the | | | | left of an equal sign | | | | | | ?NAP | NEGATIVE OR ZERO ARGUMENT| Negative or zero argument to | | | TO P | P | | | | | | ?NAQ | NO ARGUMENT BEFORE QUOTE | No numeric argument to the | | | | left of a quote | | | | | | ?NAS | NEGATIVE OR ZERO ARGUMENT| Negative or zero argument | | | TO S | with a search | | | | | | ?NAU | NO ARGUMENT BEFORE U | No numeric argument to the | | | | left of a U | | | | | | ?NAY | NUMERIC ARGUMENT TO Y | Numeric argument specified | | | | with Y command | | | | | | ?NFO | VERSION NUMBER TO FILE | Attempt to output without | | | FOR OUTPUT | opening an output file | | | | | | ?NYI | CASE SUPPORT NOT | Case support not implemented | | | IMPLEMENTED | (use EO for version) | | | | | | ?NYI | CASE SUPPORT NOT | Case support not implemented | | | IMPLEMENTED | (use W for watch) | | | | | | ?OUT | OUTPUT ERROR | Output file too big or | | | | output parity error | ---------------------------------------------------------------------- (continued on next page) 25 Page Addition/Correction Table 2-45 Summary of TECO Error Messages (cont.) ---------------------------------------------------------------------- | Printout | Printout | Meaning | | Abbrev- | Message | | | iation | | | |----------|--------------------------|------------------------------| | ?PDO | INTERNAL PUSHDOWN | Pushdown overflow (macros | | | OVERFLOW | and iterations nested too | | | | deeply) | | | | | | ?POP | ATTEMPT TO MOVE POINTER | Attempt to move pointer | | | OFF PAGE | outside of text buffer | | | | | | ?QMO | Q REGISTER MEMORY | Q-register storage overflow | | | OVERFLOW | | | | | | | ?SNI | NOT IN AN ITERATION | Semicolon on command level | | | | | | ?SRH | SEARCH FAILED | Failing search at command | | | | level | | | | | | ?STL | SEARCH STRING TOO LONG | Search string too large | | | | (greater than 31 characters) | | | | | | ?UTC | UNTERMINATED COMMAND | Incomplete command (PDL not | | | | empty at end of command | | | | string) | | | | | | ?UTM | UNTERMINATED MACRO | Incomplete command (PDI not | | | | empty at end of macro) | | | | | | ?WLO | CANNOT WRITE OUT ERROR | Write locked system device | | | MESSAGE OVERLAY | | | | | | | ?XAB | | Execution aborted | | | | | | ?YCA | Y COMMAND ABORTED | Y (or .) command aborted | _ | | | because data would be lost | ---------------------------------------------------------------------- Add the following information about the DECtape Formatting and DECtape Copying Programs at the end of Chapter 2. DTFRMT This program records the required timing and mark tracks on a DECtape mounted on the TC01-TU55 unit or a TC08-TU56 DECtape unit. The program interacts with you via the terminal to obtain the necessary data for each set of DECtapes to be formatted. 26 Page Addition/Correction 2-184 As soon as one set of tapes is formatted, the program is (cont.) ready to format another set. Two full passes are required to completely format each DECtape, and up to eight DECtapes may be formatted at a time (assuming that the user has eight tape transports). Upon completion of a cycle, new tapes may be mounted and formatted as the last, with a minimum of operator-program communication. PRELIMINARY REQUIREMENTS Equipment PDP-8, terminal, TC01-TU55 DECtape Control. LOADING PROCEDURE Load the program into core using the standard Binary Loader. USING THE PROGRAM Starting Procedure a. Key 1000 into the SWITCH REGISTER. Depress LOAD ADDRESS and depress START. "DTA?" is printed on the terminal. Mount the DECtapes to be marked onto the tape transports, with just enough turns of tape on the right hand reel of each transport to provide a grip. Make sure that no two tape units are set to the same unit number. Set the RDMK- WRTM-NORMAL switch located on the TC01 maintenance control panel to the WRTM position, for each transport to be used, set the WRITE ENABLED-WRITE LOCK switch to WRITE ENABLED, and the REMOTE-OFF-LOCAL switch to REMOTE. Operating Procedures The user types: R DTFRMT in response to the monitor dot (.). The program and operator now converse. The printout "DTA?" is asking which DECtape units will be used. The operator types a unit number or series of unit numbers, corresponding to the DECtape units upon which he has mounted tapes. For instance, if the operator has mounted tapes on units 2, 5, 7, and 8, he would type 2 5 7 8 (CR) (where (CR) signifies a carriage return). Spaces are ignored, so it makes no difference if the operator types spaces between the unit numbers. Only one specification of a unit is significant, i.e., typing 2 2 5 7 7 5 8 2 8 (CR) has the same effect as typing 2 5 7 8 (CR). Once the operator has specified the units he wishes to use, the program types "DIRECT?". The operator responds by 27 Page Addition/Correction 2-184 typing MARK (CR) or MARK XXXX (CR). If he types MARK (cont.) (CR) the program assumes 201(8) words, 2702(8) blocks (standard PDP-8 format). Otherwise, XXXX is accepted as a decimal number of words per block, and must be divisible by 3. Note that typing MARK 384 (CR) will cause the program to generate a standard PDP-10 format DECtape (1102(8) blocks of 600(8) words, which is equivalent to 1102(8) blocks of 200(8) words, where each word is 36 bits rather than 12 bits). The program now types "XXXX WORDS, YYYY BLOCKS OK? (YES OR NO)." This serves as a final check for block count. XXXX and YYYY are octal values representing the final outcome of a formula solved by the program, determining the number of blocks that may be written on a DECtape knowing the number of words. If a NO (CR) answer is given, the program reverts to "DIRECT?". Otherwise (if YES (CR)) the tape on the first unit specified begins to move. Once all of the tapes specified have been marked, the printout "SET SWITCH TO NORMAL" appears. Then the operator returns the "RDMK-WRTM-NORMAL" switch to NORMAL, and strikes the (CR) key on the terminal, starting the second pass. Note that during the second pass with multiple DECtape units, as soon as one tape stops and the next tape starts, the first tape is completed and may be replaced with a fresh tape in preparation for recycling. The program continues by itself until completed, at which time the "DIRECT?" printout occurs. Typing "SAME (CR)" repeats the entire process with the original constants. The new DECtapes must be mounted and ready to write timing and mark tracks before "SAME (CR)" is typed. Also, in response to "DIRECT?", typing "RDR (CR)" causes the printout of the unit numbers of the DECtapes and the last twelve block numbers; "RDF (CR)" causes the printout of the unit numbers and the first twelve block numbers; and "RESTART (CR)" returns the program to "DTA?". Unit numbers are printed as "N000", where N is the unit number (0 means DECtape unit 8). Once formatting begins, control C will cause the program to restart at "DTA?". If the user wishes to return to the monitor another control C may be typed at this time. Following are several examples of successful operation. The underlined portions are printed by the program. ALL operator responses should be followed by a carriage return. a. Create a standard tape on unit 4. 28 Page Addition/Correction 2-184 DTA? 4 ____ (cont.) DIRECT? MARK _______ 0201 WORDS, 2702 BLOCKS.OK? YES OR NO _____________________________________ YES SET SWITCH TO NORMAL ____________________ DIRECT? _______ b. Create 16 standard PDP-10 format tapes - eight at a time, on units 1-8. DTA? 12345678 ____ DIRECT? MARK 384 _______ 0600 WORDS,1102 BLOCKS OK? YES OR NO ____________________________________ YES SET SWITCH TO NORMAL (USER TYPES (CR)) ____________________ DIRECT? SAME _______ SET SWITCH TO NORMAL (USER TYPES (CR)) ____________________ DIRECT? _______ Errors Errors Typed to "DTA?" and "DIRECT?" - Revert back to "DTA?" or "DIRECT?" Error Messages for Response to MARK XXXX- NOT DECIMAL A character in XXXX is not 0-9. NOT DIVISIBLE BY 3 XXXX cannot be divided evenly by 3. TOO MANY WORDS The number of words plus 15 exceeds 7777(8). TOO MANY BLOCKS The number of blocks generated by XXXX exceeds 7777(8). Error Messages for Response to YES (After message - revert back "DTA?") SETUP? Indicates an error in the DECtape setup - Unit in WRITE LOCK Nonselectable unit Switch not in WRTM position Error Messages for Marking and Verifying a Tape XXXX SHOULD BE YYYY BLK ERROR PHASE X XXXX SHOULD BE YYYY DATA ERROR PHASE X END TAPE ERROR PHASE X MARK TRACK ERROR PHASE X PARITY ERROR PHASE X SELECT ERROR PHASE X TIMING ERROR PHASE X 29 Page Addition/Correction 2-184 LAST INT NOT END ZONE (cont.) Recovery Although error should cause doubt concerning the entire process, restarts may be made by phases (except when in phase 0). Restart the phase by typing "RETRY (CR)" Type "RESTART" to return to "DTA?" PHASE 0: MARK TRACK WRITE PHASE 1: WRITING LAST REVERSE BLOCK NUMBER FORWARD PHASE 2: WRITING BLOCK NUMBERS AND DATA IN REVERSE PHASE 3: READING AND CHECKING BLOCK NUMBERS AND DATA An error that should be considered catastrophic is LAST INT NOT END ZONE. This indicates that between the last (or first) block number and the end zone, something caused an interrupt (DTF). The entire program may be restarted at 1000(8) any time. DETAILS OF OPERATION AND STORAGE The program writes timing and mark tracks on a DECtape, then inserts block numbers and parity correct information, checking the results of all operations. The number of block frames to be written is a function of the number of words per block. The formula 212080 blocks per tape = ------ + 2 NW+15 where NW equals the number of words to be written, is used by the program to compute the number of blocks, but is adjusted by the program to provide the standard PDP-8 format of 129 (12-bit) words, 1744 blocks, and standard PDP-10 format of 128 (36-bit) words, 578 blocks. Two full passes are required to mark and verify a tape. Pass 1 Marks the tape forward, inserts block numbers and parity correct date in reverse. Pass 2 Reads and checks block numbers and data forward and reverse. During the forward direction of the first pass, the TC01 is switched into WRITE TIMING AND MARK TRACKS, CONTINUOUS MODE, FORWARD. The program manipulates data to be written by monitoring the word count register and the DTF, (DECtape flag). Initially, ten feet of end-zone code is written, and 30 Page Addition/Correction 2-184 abutting the end zone are about two standard block lengths (cont.) of interblock sync. To the TC01, this interblock sync acts as no operation, but guarantees that at turn-around time, block 0 is read first (or 2701 if turning out of the forward end zone). Now the remainder of the tape is written creating block frames. The number of such frames is determined by the above formula. Upon completion of the block framing; another extended interblock sync zone is written as well as ten feet of end zone. Pass 1 forward is now complete (timing and mark tracks are written). The tape is ordered to MOVE in reverse for three seconds, thus moving it out of the end zone and onto the marked section. The tape is once again moved forward, and the last REVERSE BLOCK NUMBER is written until the forward end zone is sensed. Now the tape is turned out of the end zone in SEARCH, and the program waits for a block interrupt (first reverse block number). When the DTF rises, the TC01 is switched into WRITE ALL, CONTINUOUS, REVERSE; thus the system is synchronized and all block numbers and data are written: until the forward end zone is sensed. This completes the marking and blocking of the tape. Pass 2 in CONTINUOUS MODE checks the data and block numbers to be certain they are correct. When multiple DECtape units are specified, Pass 1 forward is completed for each tape before Pass 1 reverse is begun. TDFRMT The TD8-E DECtape formatter program records the timing and mark tracks on a DECtape mounted on the TU56 DECtape transport. The program interacts with the operator via the terminal to obtain the necessary data for each set of DECtapes to be formatted. As soon as one set of tapes is formatted, the program is ready to format another set. Three full passes are required to completely format each DECtape, and up to two DECtapes may be formatted at a time (units 0 and 1). Upon completion of a cycle, new tapes may be mounted and formatted as the last, with a minimum of operator-program communication. One tape excluding tape setup time, requires three minutes from start to finish. Mount the DECtapes to be marked onto the tape transports with just enough turns of tape on the right hand reel of each transport to provide a grip. Make sure that no two tape units are set to the same unit number. Set the switch on the TD8-E to WTM position. For each transport to be used, set the WRITE-ENABLED-WRITE LOCK switch to WRITE ENABLED, and the REMOTE-OFF-LOCAL switch to REMOTE. 31 Page Addition/Correction 2-184 OPERATING PROCEDURES (cont.) The user types .R TDFRMT in response to the monitor dot (.). The program and operator now converse. The printout "UNIT?" is asking which DECtape units will be used. The operator types one or two unit numbers corresponding to the DECtape units upon which he has mounted tapes. For instance, if the operator has mounted tapes on units 0 and 1, he would type a 1. Spaces are ignored, so it makes no difference if the operator types spaces between the unit numbers. Only one specification of a unit is significant, i.e., typing 000111 has the same effect as typing 01. Once the operator has specified the unit(s) he wishes to use, the program types "FORMAT?". The operator responds by typing MARK or MARK XXXX. If he types MARK, the program assumes 201 words 2702 blocks (standard PDP-8 format). Otherwise XXXX is accepted as a decimal number of words per block and must be divisible by 3. Note that typing MARK 384 will cause the program to generate standard PDP-10 format DECtapes (1102(8) blocks of 600 words, which is equivalent to 1102(8) blocks of 200 words where each word is 36 bits rather than 12 bits). The program now types "XXXX WORDS, YYYY BLOCKS OK? (YES OR NO)". This serves as a final check for block count. XXXX and YYYY are octal values representing the final outcome of a formula solved by the program, determining the number of blocks that may be written on DECtape knowing the number of words. If a no answer is given, the program reverts to "FORMAT?". Otherwise (IF YES), the program types out "SET SWITCH TO WTM". Then the operator hits carriage return on the teletype and the tape on first unit specified begins to move if the switch is set. Once all of the tapes specified have been marked, the printout "SET SWITCH TO OFF" appears, then the operator resets the WTM switch to off, and strikes the return key on the terminal starting the second pass. Note that during the second pass with multiple DECtape units, as soon as one tape stops and the next tape starts, the first tape is com- pleted and may be replaced with a fresh tape in preparation for recycling. The program continues by itself until completed at which time the "FORMAT" printout occurs. Typing "SAME<" repeats the entire process with the original constants. The new DECtapes must be mounted and ready to write timing and mark tracks before a carriage return is hit on the teletype after the typing "SET SWITCH TO WTM". Also, in response to "DIRECT?", typing "RDR" causes the printout of the unit number of the DECtape and the last 22 block numbers; "RDF<" causes the printout of the unit number and the first 32 Page Addition/Correction 2-184 22 block numbers; and "RESTART<" returns the program to (cont.) "UNIT?". Unit numbers are printed as "000N" where N is the unit number. Following are several examples of successful operation. The underlined statements are printed by the program. All operator responses should be followed by a carriage return. a. create a standard PDP-8 tape on unit 1 UNIT?1 _____ FORMAT?MARK _______ 0201 WORDS, 2702 BLOCKS, OK? (YES OR NO) ________________________________________ YES SET SWITCH TO WTM _________________ SET SWITCH TO OFF _________________ FORMAT? _______ b. create 4 standard PDP-10 format tapes, two at a time on units 0 1 UNIT?01 _____ FORMAT?MARK 384 _______ 0201 WORDS, 2702 BLOCKS, OK? (YES OR NO) ________________________________________ YES SET SWITCH TO WTM _________________ SET SWITCH TO OFF _________________ FORMAT?SAME _______ SET SWITCH TO WTM _________________ SET SWITCH TO OFF _________________ FORMAT? _______ ERRORS Errors typed to "UNIT" and "FORMAT" revert back to "UNIT?" or "FORMAT?". Error messages for response to MARK XXXX NOT DECIMAL A CHARACTER IN XXXX IS NOT 0-9 NOT DIVISIBLE BY 3 XXXX CANNOT BE DIVIDED EVENLY BY 3 TOO MANY WORDS THE NUMBER OF WORDS PLUS 15 EXCEEDS 7777(8). TOO MANY BLOCKS THE NUMBER OF BLOCKS GENERATED BY XXXX EXCEEDS 7777(8). Error messages for response to "SET SWITCH TO WTM". 33 Page Addition/Correction 2-184 1. SETUP? indicates an error in the DECtape (cont.) setup. One of the units specified is in write lock position, not selected, or the write flip-flop is unable to be set, or there may be a timing error. (After message revert back to "UNIT".) 2. Switch not set to WTM or single line flag failed to set. Set switch to WTM. This type out says that either the switch on the M868 modules is not set to the WTM position or the timing generator for writing the mark and timing tracks is not setting the single line flag. RECOVERY: If the switch was not set to WTM position set the switch and hit carriage return on the teletype. If the switch was set to WTM position and this type out occurred, try again or examine the timing generator circuit. Error messages for marking and verifying a tape PC XXXX MARK TRACK ERROR PHASE Y PC XXXX BLOCK NUMBER ERROR PHASE Y PC XXXX DATA ERROR PHASE Y PC XXXX CHECKSUM ERROR PHASE Y PC XXXX TIMING ERROR PHASE Y PC XXXX WRITE ERROR PHASE Y XXXX equals the program counter at time of the failure. Y equals the pass which it was in. Although an error should cause doubt concerning the entire process, a restart may be made (except in phase 0) by typing "RETRY<'. Retry causes the program to go back to phase l, type "RESTART<'' to return to "UNIT?". PHASE 0: WRITE TIMING AND MARK TRACK FORWARD PHASE 1: READS MARK TRACK REVERSE PHASE 2: WRITE DATA, FORWARD BLOCK AND REVERSE BLOCK NUMBERS FORWARD AND WRITES THE CHECKSUMS PHASE 3: DISPLAYS BLOCK NUMBERS IN AC REVERSE 34 Page Addition/Correction 2-184 PHASE 4: READS DATA, FORWARD BLOCK AND REVERSE (cont.) BLOCK NUMBERS FORWARD AND CALCULATES THE CHECKSUM PHASE 5: READS REVERSE BLOCK NUMBERS IN REVERSE The entire program may be restarted at 0200 any time. DETAILS OF OPERATION AND STORAGE The program writes timing and mark track on a DECtape forward with WTM switch set. Then it reads the mark track in the reverse direction with the switch set to off. The program checks all of the mark track once it is in sync. (see flow figure 1) when it finishes reading the mark track reverse, it bounces off the end zone and starts writing zeroes to the first block mark. The program is now in sync. The program now continues writing forward block numbers, reverse checksum, data, checksum, and reverse block numbers for the rest of tape. When it sees the end zone, it turns around and starts displaying the reverse block number in the accumulator until it hits the end zone again. Now the tape turns around and starts reading and comparing all forward block numbers, reverse checksum, all data, checksum and reverse block numbers that was written in Phase 2. This comparison is done on all blocks until the end zone is reached. The tape turns around in the end zone and starts looking for reverse block numbers and comparing them all the way down tape to the end zone. The formatting is now complete, the tape stops, and "FORMAT" is typed out waiting for new directions. The number of block frames to be written is a function of the number of words per block. The formula BLOCKS PER TAPE [(212080)/(NW+15)] +2 where NW equals the number of words to be written, is used by the program to compute the number of blocks, but is adjusted by the program to provide the standard PDP-8 format of 129(10)(12-bit) words, 1474(10) blocks, and standard PDP-10 format of 128(10)(36-bit) words, 578(10) blocks. Theory The writing of the mark track is done through AC bits 0,3,6 and 9. The following description is how the mark track is written. A. Install the tape with enough turns to create a pull. The reverse end zone requires a sequence of three data words 35 Page Addition/Correction 2-184 for its pattern. (cont.) 4044 0440 4404 In the mark track the words appear at 101101101101101 (5555(8)). The reverse end zone should cover about 10 feet of tape. Write the above three words 4096(10) times. B. Write the below three words (see C) or expand code 99 times. C. Expand code, three words of expand code should immediately follow each block, 0404 0404 0404 In the mark track the words appear as 010101010101 (2525(8)). D. The forward block mark and reverse guard require three words. 0404 4004 4040 Which appear on the mark track as 010110011010 (2632(8)). E. The lock mark, reverse checksum, reverse final, reverse prefinal consist of six PDP-8 memory words, 0040 0000 4000 0040 0000 4000 These words appear on the mark track as 001000001000001000001000 (10101010(8)). F. Mark track code for data is generated by 4440 0044 4000 36 Page Addition/Correction 2-184 These three words appear as 111000111000(7070(8)) and (cont.) are repeated 41(10) times for a 129 word block. G. The prefinal, final, checksum, and reverse lock consist of six PDP-8 words. 4440 4444 4044 4440 4444 4044 These words appear on the mark track as 111011111011111011111011 (73737373(8)). H. The guard and reverse block mark consist of three words 4040 0440 0404 which appear as 101001100101 (5145(8)). I. Generate 2702(8) block patterns. Repeat C through H. 2702(8) times. J. 100 expand codes (see C). K. The end zone pattern consist of three words, 0400 4004 0040 which appears on the mark track as 010010010010 (2222(8)). Repeat these 3 words 4096(10) times. See Figure 2 for a diagram of the mark track and data tracks. DTCOPY The TC01, TC08, TU-55 Copy Program is controlled through a dialog on the terminal. The responses to the questions are in the form of octal numbers followed by a carriage return. Where more than one answer is required to a question, the answers are separated by semicolons. Alphabetic or other illegal characters will cause an error message to be generated and the question to be repeated. If too many digits are typed for the response expected, only the last ones typed will be used. If the response was to be either 0 or 1 (YES or NO), a non-zero final digit will be assumed to 37 Page Addition/Correction 2-184 be 1. (cont.) Before answering the dialog's questions, the user must ensure that all the DECtapes involved are mounted on their respective drives. All the drives must be set to REMOTE. The input drive may be set to WRITE LOCK or WRITE ENABLE; all output drives must be set to WRITE ENABLE. No two drives may have the same unit number. The user types R DTCOPY in response to the monitor dot (.). The program types DECtape COPY V1OA. For each set of copies, the dialog is as follows (the user's response is underlined; (CR) means carriage return): DECTAPE COPY V1OA FROM UNIT 0 _ TO UNIT 2 _ FIRST BLOCK TO COPY (OCTAL) 0 _ FINAL BLOCK TO COPY (OCTAL) 700 ___ PDP-8 WORDS PER BLOCK 0201 VERIFY OUTPUT? (0=YES, 1=NO): 0 _ When all specified copies have been finished, the tapes are rewound and the dialog continues: DONE DECTAPE COPY V1OA FROM UNIT The user may return to the monitor by typing CTRL/C at anytime. (Control characters are not echoed printed.) ERROR MESSAGES ILLEGAL RESPONSE The user's response to the dialog was not correct; for example, an alphabetic character was typed or carriage return was typed before an octal number was given where one was required. The question will be restated and any previous answer ignored. Nothing should be typed until the terminal has stopped printing. SELECT ERROR UNIT n During attempted data transfer, unit n was not found. The program waits 38 Page Addition/Correction 2-184 for the user to correct the cause of (cont.) the error. The user should check to see that: 1. if unit n is an output drive, it is set to WRITE ENABLE. 2. unit n is set to REMOTE. 3. there is only one unit n. 4. all units are set to numbers appropriate to their TD8E internal wiring. When the cause of the error has been corrected, the user may type CTRL/R to resume transfer or he may type CTRL/S to restart the dialog. TAPE ERROR BLOCK x UNIT n During attempted transfer, a parity error or timing error was detected, or too great a block number was requested near block x on the tape on unit n. The tapes are rewound and the dialog is automatically restarted at DONE, REPEAT (YES=1, NO=0). VERIFY ERROR BLOCK x UNIT n The data on the input tape does not match the data which was written on block x of the output tape on unit n. The user may type CTRL/R to ignore the error and continue with the transfer, CTRL/T to try the last transfer again and continue if the error does not recur, or CTRL/S to restart the dialog. ILLEGAL FORMAT UNIT n Either the number of words per block on unit n does not agree with the number of words per block on the input unit or, when the number of blocks on the tape was calculated from the block length of the input tape, the length was found to be illegal. The number of blocks is only calculated if the whole tape copy option is requested. In either case, when the error has been corrected, the user may type CTRL/R to check the formats of all tapes again and continue, or CTRL/S to restart the dialog. 39 Page Addition/Correction 2-184 TDCOPY (cont.) TD8E Copy is controlled through a dialog on the terminal. The response to the questions are in the form of octal numbers followed by a carriage return. Where more than one answer is required to a question, the answers are separated by semicolons. Alphabetic or other illegal characters will cause an error message to be generated and the question to be repeated. If too many digits are typed for the response expected, only the last ones typed will be used. If the response was to be either 0 or 1 (YES or NO), a non-zero final digit will be assumed to be 1. Before answering the dialog's questions, the user must ensure that all the DECtapes involved are mounted on their respective drives. All the drives must be set to REMOTE. The input drive may be set to WRITE LOCK or WRITE ENABLE; all output drives must be set to WRITE ENABLE. No two drives may have the same unit number. The user types R TDCOPY in response to the monitor dot(.). The program prints: TD8E COPY V4A HIGHEST FIELD AVAILABLE: The user response with the number of the highest field he wishes used for buffer space. This response may allow data to be preserved in any higher field or may make full use of the memory available. This question is asked only once, immediately after the program has been loaded. To change the response, the program must be executed again. If 4K of memory is to be used, the response is 0; if 8K, the response is 1, and so forth. For each set of copies, the dialog is as follows (the user's response is underlined; (CR) means carriage return): Dialog Comments FROM UNIT: 0(CR) User may specify one unit _____ number. TO UNITS: 1;2;3;4;5;6;7(CR) User may specify up to 7 unit _________________ numbers, separated by semicolons. FIRST INPUT BLOCK: 100(CR) User may supply any legal _______ DECtape block number. FIRST OUTPUT BLOCK: 200(CR) User may supply any legal _______ DECtape block number. 40 Page Addition/Correction 2-184 NUMBER OF BLOCKS TO COPY: 50(CR) ______ (cont.) User may supply appropriate number of blocks. VERIFY OUTPUT (YES=1, NO=0): 1(CR) _____ 0201 12-BIT WORDS PER BLOCK Determined by program from tape on input unit. The block length of all the specified tapes is checked. If any are found to be different from the input tape, the ILLEGAL FORMAT UNIT n error message is generated. When all specified copies have been finished, the tapes are rewound and the dialog continues: DONE REPEAT (YES=1,NO=0): If there are more tapes to be copied with the same set of specifications, they should be placed on the drives before typing 1 to repeat the previous operation. If a different set of specifications is desired, 0 should be typed to restart the dialog. Occasionally a TD8E drive will not stop fast enough after the tapes have been rewound and the end of the tape will spin off the reel. If this should happen, the drive may be stopped manually by setting it to OFF and stopping the reel by hand. This will not affect the validity of the copy. If the dialog does not continue properly after one or more tapes have spun off, the program may be restarted. In response to any question in the dialog, the user may type either CTRL/S to restart the dialog at REPEAT (YES=1, NO=0) or CTRL/C to exit the monitor. Either CTRL/S or CTRL/C may also be typed during a small amount of further motion. If CTRL/S is typed during the dialog the response to the REPEAT question should be NO; this option is mainly for cases where a complete set of specifications is already available. (CTRL/ characters are typed by holding the CONTROL key down while typing the character. The procedure is similar to that used with the SHIFT key on a typewriter. CTRL/ characters are not echoed (printed).) A special case of the dialog allows the entire input tape to be copied onto the output tape with a minimum of effort. This case eliminates the need to specify the starting block numbers and number of blocks to copy. In this case, the 41 Page Addition/Correction 2-184 answer to FIRST INPUT BLOCK: is only a carriage return. The (cont.) shortened dialog will be as follows: TD8E COPY FROM UNIT: 0(CR) _____ TO UNITS: 1;2;3;4;5;6;7(CR) _________________ FIRST INPUT BLOCK: (CR) ____ VERIFY OUTPUT (YES=1, NO=0): 1(CR) _____ 0201 12-BIT WORDS PER BLOCK The preceding sample dialog will cause the entire tape on unit 0 to be copied onto the other 7 tapes and verified. ERROR MESSAGES ILLEGAL RESPONSE The user's response to the dialog was not correct; for example, an alphabetic character was typed or carriage return was typed before an octal number was given where one was required. The questions will be restated and any previous answer ignored. Nothing should be typed until the terminal has stopped printing. SELECT ERROR UNIT n During attempted data transfer, unit n was not found. The program waits for the user to correct the cause of the error. The user should check to see that: 1. if unit n is an output drive, it is set to WRITE ENABLE. 2. unit n is set to REMOTE. 3. there is only one unit n. 4. all units are set to numbers appropriate to their TD8E internal wiring. When the cause of the error has been corrected, the user may type CTRL/R to resume transfer or he may type CTRL/S to restart the dialog. TAPE ERROR BLOCK x UNIT n During attempted transfer, a parity error or timing error was detected, or too great a block number was requested near block x on the tape on unit n. The tapes are rewound and the dialog is automatically 42 Page Addition/Correction 2-184 restarted at DONE, REPEAT (YES=1, (cont.) NO=0). VERIFY ERROR BLOCK x UNIT n The data on the input tape does not match the data which was written on the block x of the output tape on unit n. The user may type CTRL/R to ignore the error and continue with the transfer, CTRL/T to try the last transfer again and continue if the error does not recur, or CTRL/S to restart the dialog. ILLEGAL FORMAT UNIT n Either the number of words per block on unit n does not agree with the number of words per block on the input unit or, when the number of blocks on the tape was calculated from the block length of the input tape, the length was found to be illegal. The number of blocks is only calculated if the whole tape copy option is requested. In either case, when the error has been corrected, the user may type CTRL/R to check the formats of all tapes again and continue, or CTRL/S to restart the dialog. DETAILS OF OPERATION After the answers to the dialog have been stored, the following procedure is used: 1. The number of words per block is determined from the input tape. All output tapes are checked to see if they have the same format as the input tape. If the shortened dialog option was used, the number of blocks on the tape is determined using the formula: # of blocks=(636,160/(words per block+17))+2 (octal) or # of blocks=(212,080/(words per block+15))+2 (decimal) 43 Page Addition/Correction 2-184 2. The response to the VERIFY question is checked. The (cont.) copying loop is set up to verify or not, as was requested. 3. The loop is entered which copies the input tape, using the same set of specifications for each output tape. a. The buffers are filled from the input tape. b. All output tapes are written with the contents of the buffers. c. If verification was requested, a separate set of buffers is filled from the output tape and the two sets of buffers are compared. If there are any discrepancies a VERIFY ERROR has occurred. d. If more blocks remain to be copied, the loop is entered again. 4. When all the specified blocks have been copied onto the output tapes, all the tapes are rewound. 5. The REPEAT option is offered. The number of fields to be used for buffer space is determined immediately after loading. As soon as the question has been answered, it is removed from the program. If the output tape is to be verified, each available field, including that part of field 0 not occupied by the program, is divided in half. The lower half is used as the input and output buffer; the upper half is used for verification. The output tape is read back into the upper half and the two halves are compared. If they are not identical a VERIFY ERROR has occurred. 44 CHAPTER 3 ADDITIONS AND CHANGES Page Addition/Correction 3-29 End-Of-File paragraph should read: End-Of-File PAUSE signals the assembler to stop processing the file being read. A PAUSE should only be used at the physical end of a file and with two or more segments of one program. When a PAUSE statement is reached, the remainder of the file is ignored and processing continues with the next input file. In such a case PAUSE must be present or a PH error will occur. The PAUSE pseudo-op is present mainly for compatibility with paper tape assemblers, and its use is optional. 3-30 After the TEXT string example change the words "IF option" to "/F option". The second sentence in the second paragraph under "Suppressing the Listing" should read "XLIST may also be used with expression as an argument; a listing will be inhibited if the expression is not equal to zero, or allowed if the expression is equal to zero". 3-31 Insert the following example just before the section entitled "Controlling Binary Output": IFZERO A< . . (code) . . > ... 3-41 Under "Memory Reference Instructions" change "JSM" to "JMS". 45 CHAPTER 5 ADDITIONS AND CHANGES Page Addition/Correction 5-22 Add the following note on RALF assembly at the end of the page: "RALF code that includes forward reference to the base page should employ pseudo-ops # and ' as the first character of the symbol; this permits RALF to generate symbols that do not conflict with programmer-generated symbols that are also on the base page. The # pseudo-op can also be used following FPP memory reference instructions to indicate use of the 2-word form of the instruction. Likewise, the ' pseudo-op indicates use of the single-word direct form of the instruction. 46 CHAPTER 6 ADDITIONS AND CHANGES Page Addition/Correction 6-35 Randomize example (bottom of page) is incorrect. 1 PRINT "A" should be added as the first line. 6-61 In the paragraph above the section entitled "File Statements" change "PS/8" to "OS/8" and change the order number of the manual to "DEC-S8-OSSMB-A-D". 6-64 The last sentence in the first paragraph should read: the subsequent reading of numbers from the file in line number 80 shows the use of a dummy argument (C) to compensate for the carriage return and line feed since they would otherwise be read as numeric data with a value of 0. Line 80 in the example should be: 80 INPUT #1:J,C. 6-66 Add the following option designations (bottom of page): /C In BCOMP, the /C option is used in conjunction with the /K option to create a file that can be chained to from a non-BASIC file. For example: .R BCOMP *EXAM.BA/C/K /V In BCOMP, the /V option is used to obtain the current version number of COMP, BLOAD, and BRTS. For example: .R BCOMP *EXAM.BA/V This causes the system to print at the console the current version numbers for BCOMP, BLOAD, and BRTS as part of the output of the file being compiled. 6-69 Change the sentence preceding NOTES to: In general, any departure from these procedures will cause a CX error. Add the following to the List of CHAIN restrictions: 47 Page Addition/Correction 6-69 3. When chaining BASIC core image files, the program (cont.) being chained to must be on the system device. This is a restriction of the USR CHAIN function. 6-76 Under the title THE STRING ACCUMULATOR (SAC), and starting on line 4, delete the sentence: and the length of the string currently in the SAC is stored as a negative number in STRLEN. and insert the following: The SAC starts at location SAC in BRTS. The SAC is 80 words long and contains one 6-bit character per word. The length is stored as a negative number in SACLEN. 6-83 In the middle of the page, delete: BRTS maintains links for FGET and FPUT on page 0 of field 0, providing convenient access to these frequently used routines. Page 0 Link Name Routine Linked FGETL FFGET FPUTL FFPUT 6-85 and insert the following: BRTS contains Page Zero literals used by the FGET and FPUT routines. These Page Zero literals can be found in the BRTS source listing. Page Zero literals reference the following routines. For more information on Page Zero literals, refer to the section on BRTS Subroutines. Page Zero Link Routine FNEGL FFNEG FNORL FFNOR FCLR FACCLR In the middle of the page under the title FLOATING POINT OPERATIONS, and in the second paragraph, delete: Page 0 links are maintained for negate, normalize, and clear. 48 Page Addition/Correction 6-85 Page 0 Link Routine (cont.) FNEGL FFNEG FNORL FFNOR FCLR FACCLR At the bottom of the page before the title SUBROUTINE ARGPRE, insert the following: Many routines are now addressed with Page Zero literals that can be found in the BRTS source listing. Note that explicit references to Page Zero pointers by name no longer apply. The purpose is to shorten the size of the BRTS symbol table. 6-90 Towards the bottom half of the page, delete the section entitled SUBROUTINE BSW. 6-108 In the example form for the CHAIN command (Table 6-1) the device and file name specification must be enclosed in quotation marks as follows: CHAIN "dev:filename.ex" 6-117 In Table 6-3 Run-Time Diagnostics after the CI diagnostic code, insert the following: CX Incompatible file extensions were used in BASIC CHAIN statement. 6-118 At the bottom of the page following the first paragraph, delete the column entitled "Distributed on:" At the bottom of the page following the first paragraph, delete: BASIC.BN Binary for editor BCOMP.BN Compiler binary BLOAD.BN Loader binary BRTS.BN Run-time system binary (any PDP-8 or PDP-12) 6-119 At the top of the page following BLOAD.SV, insert the following: EABRTS.SV KE8/EAE Version of Run-time System save image 49 Page Addition/Correction 6-119 At the top of the page under the column entitled "Component" (cont.) that describes BRTS.SV, delete: (from BRTS.BN) In the middle of the page, delete: Making SAVE Images from Binary Files: To create SAVE images of each of the OS/8 BASIC binaries, perform the following OS/8 commands. and insert the following: Making SAVE Images from Binary Files: To create SAVE images for each of the OS/8 BASIC binaries, use the following BUILD procedure for OS/8 BASIC non-EAE. In the middle of the page delete: 1. For the editor: .R ABSLDR *DEV:BASIC.BN$ .SAVE SYS:BASIC;3011 and insert the following: 1. For the editor: .PAL BASIC .LOAD BASIC .SAVE SYS:BASIC;3211 Towards the bottom of the page, delete: 2. For the compiler: .R ABSLDR *DEV:BCOMP.BN$ .SAVE SYS:BCOMP;7000 and insert the following: 2. For the compiler: .PAL BCOMP .LOAD BCOMP .SAVE SYS:BCOMP;7000 at the bottom of the page, delete: 50 Page Addition/Correction 6-119 3. For the loader: (cont.) .R ABSLDR *DEV:BLOAD.BN$ .SAVE SYS:BLOAD;7605 and insert the following: 3. For the loader: .PAL BLOAD .LOAD BLOAD .SAVE SYS:BLOAD;7605 At the bottom of the page, delete: 4. For the run-time system: .R ABSLDR *DEV:BRTS BN$ (without KE8/E EAE option) or *DEV:BRTS.BN,DEV:EAEOVR.BN$ (PDP-8/E, PDP-8M or PDP-8F with KE-8E EAE) and insert the following: 4. For the run-time system: .PAL BRTS/W .LOAD BRTS .SAVE SYS:BRTS 0-6777;7605 .SAVE SYS:BASIC.AF 3400-4577;7605 .SAVE SYS:BASIC.SF 12000-13177;7605 .SAVE SYS:BASIC.FF 13400-14577;7605 Append the following at the end of the page Making SAVE Images from Binary Files: To create SAVE images of each of the OS/8 BASIC binaries, use the following BUILD procedure for OS/8 BASIC EAE. 1. For the editor: .R PAL8 *DEV:BASIC.BN) and square brackets ([ and ]) have been used to help separate special items from the words around them. The single quote character is used to surround a word-type command; for example, the 'FORMAT' option 'SET's up the format in which output is to be done. The double quote is used to surround an item whose actual name is being used; for example, the "RETURN" key is the key on the Teletype that has that word printed on it. The angle brackets are used to surround the name of a type of item (a syntactical type); for example, "" means that a NUMERIC ITEM is to be used. The 76 square brackets are used to surround optional items; for example, "w[ord] " would indicate that the characters "ord" may be supplied optionally. K.1.3 Special Characters Used in FUTIL Several characters, when keyed, cause immediate action from the program. Typing either CTRL/P (which prints "^P") or CTRL/C (which prints "^C") will immediately cause the program to stop whatever it is doing. CTRL/P then causes the program to go back to command input mode and wait for you, while CTRL/C calls the OS/8 Monitor (as it does with most system programs). CTRL/S and CTRL/Q control program execution (including all I/O). Typing CTRL/S at any time will cause the program to pause and wait for either CTRL/C, CTRL/P or CTRL/Q. Typing CTRL/Q will then allow program execution to resume. Any other characters entered at this point will be simply ignored. If a CTRL/Q is typed by itself at any time, it is simply ignored. NOTE CTRL/S and CTRL/Q are active at all times, not just during console output. The result is that both input from the console and program execution with no con- sole interaction (such as 'SCAN','WORD' and 'STRING' command execution) can and will be paused and re- started with these keys. During console terminal input, three other keys can be used to help with editing the input string of characters. These keys are RUBOUT, CTRL/U (which prints "^U") and CTRL/R (which prints "^R"). The action of RUBOUT and CTRL/U is exactly the same as it is for the OS/8 Monitor and Command Decoder (including usage of "scope mode" operation to change the action of the RUBOUT key from echoing the rubbed out characters between back slashes to erasing the characters from the screen). The action of CTRL/R is the same as that of the LINE-FEED key for the Monitor and Command Decoder. For those users with upper-lower case terminals, the program translates all lower case characters received from the keyboard to upper case. The characters are echoed and handled internally as upper case characters. While this makes use easier, it does not allow any lower-case characters to be input directly. In those cases where lower-case codes are needed in the modification of a file, either use the codes directly or use a text editor. Note that this translation occurs only on input. Lower case characters in a file will be printed to the best ability of the output device. This may produce incorrect results on upper-lower case line printers. All of the commands are taken in context, that is, many of the characters which are used in the single character command set will not be considered to be commands if they are included in a line which begins with a command word or if they are embedded within expressions. The carriage-return ("RETURN") always starts command execution, and is the terminator for all word-type command lines. 77 K.1.4 Running FUTIL FUTIL is run using the OS/8 Monitor command "R FUTIL" (or "RU dev:FUTIL"). When started, FUTIL is set up to access the system device, the 'ERROR' message output mode is set to 'LONG', the access 'MODE' is set to 'NORMAL' and no file is known. To access some other device, give the command 'SET DEVICE dev'. To set the 'ERROR' mode to 'SHORT', give the command 'SET ERROR SHORT'. To use some other access mode, give a 'SET MODE ' command with a of 'LOAD', 'OFFSET' or 'SAVE'. When in 'OFFSET' mode, the 'OFFSET' to be used can be specified by the command 'SET OFFSET nnnn'. Lastly, a file lookup can be performed by giving a 'FILE' command (with three default extensions). K.1.5 Access Method The program accesses the OS/8 device one OS/8 block (256 words) at a time. For every location specified, the real block and word are determined and compared with the current block in memory. If the desired block and current block are not the same, the flag is checked to see if anything has been changed in the current block. If nothing has been changed, the new block is read in. If something has been changed, the current (modified) block is first written out and then the new block is read in. This action happens correctly even when the access mode is changed because it is done at the level of the OS/8 block number right before calling the current 'DEVICE' handler. The status of the flag can be determined by simply 'SHOW'ing 'ABS', 'REL' or 'ODT' locations. If the flag is set, the word "MOD" will be output following location information. The contents of the OS/8 device are therefore not changed unless the block in which changes are made is written out either implicitly, as