Digital PDFs
Documents
Guest
Register
Log In
AA-D319A-TA
December 1978
49 pages
Original
1.7MB
view
download
Document:
Device Extensions User’s Guide
Order Number:
AA-D319A-TA
Revision:
Pages:
49
Original Filename:
http://bitsavers.org/pdf/dec/pdp8/os8/AA-D319A-TA_os8DevExt.pdf
OCR Text
,~D~DDmD 08/8 Device Extensions User's Guide Order No. AA-D319A-TA OS/8 Device Extensions User's Guide Order No. AA-D319A-TA ABSTRACT This document describes the software support for the KT8A Memory Management Option and the RX02 and RL01 devices. SUPERSESSION/UPDATE INFORMATION: This manual is an update of sections of the 05/8 Handbook (DEC-S8-0SHBA-A-D). OPERATING SYSTEM AND VERSION: 05/8 V3D To order additional copies of this document, contact the Software Distribution Center, Digital Equipment Corporation, Maynard, Massachusetts 01764 digital equipment corporation · maynard, massachusetts First Printing, December 1978 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 only be used or copied in accordance with the terms of such license. No responsibility is assumed for the use or reliability of software on equipment that is not supplied by DtGITAL or its affiliated companies. Copyright © 1978 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 DEC PDP DECUS UNIBUS COMPUTER LABS COMTEX DDT DECCOMM ASSIST-11 VAX DECnet DECsystem-10 DECtape DIBOL EDUSYSTEM FLIP CHIP FOCAL INDAC LAB-8 DECSYSTEM-20 RTS-8 VMS IAS MASSBUS OMNIBUS OS/8 PHA RSTS RSX TYPESET-8 TYPESET-11 TMS-11 ITPS-10 SBI CONTENTS Page 1.0 1.1 1.2 1.3 1.4 1.5 1.6 1.7 2.0 3.0 3.1 3.1.1 3.1.2 3.1.3 3.2 3.2.1 3.2.2 3.2.3 3.3 3.4 3.5 4.0 4.1 4.2 4.3 4.4 4.5 4.5.1 4.5.2 5.0 5.1 5.1.1 5.1.2 5.1.3 5.1.4 5.1.5 5.2 5.3 5.3.1 5.3.2 5.3.3 5.3.4 5.4 5.4.1 5.5 INTRODUCTION AND OVERVIEW Distribution Media The RESORC Progr~ Changes in BASIC and FORTRAN IV for RL01 and RX02 Users System-Wide Changes for Users with the KT8A Changes in PIP for RL01, RX02, and VXAO The BOOT.SV Program Changes in FUTIL BOOTSTRAP AND BUILD INSTRUCTIONS THE KT8A MEMORY MANAGEMENT OPTION 128K Monitor and CCL Commands -- SAVE, ODT, and MEMORY The SAVE Command The ODT Command The CCL Memory Command 128K PAL8 The FIELD Pseudo-Operator Specifying Data and Instruction Fields -- CDF and CIF The ABSLDR Determining Memory-Size at Run-Time The VXAO Extended-Memory Device The SAVECB Program THE RX02 DUAL-DENSITY DISKETTE RX02 Device Names Formatting Diskettes for RX02 RX01 and RX02 Compatibility Interleaving Using RXCOPY with RX02 Formatting Diskettes with RXCOPY RXCOPY Options THE RL01 DISK System Description Disk Format RL8A Controller Format Instruction Set OS/8 Data Space Converting Block Numbers to Hardware Disk Addresses Handler Description Loading and Bootstrap Procedure Loading the RL01 Disk Pack Booting from BOOT.SV Booting from the Console Switches ROM Bootstrap Switch Settings Operating Instructions Disk Formatting System Building iii 1 2 2 3 3 3 4 4 4 6 7 7 8 11 11 12 12 14 14 15 16 17 17 18 18 19 20 21 21 21 22 24 24 26 27 27 29 30 30 31 31 31 31 32 36 CONTENTS (Cont.) Page APPENDIX A RX02 BOOTSTRAP PROGRAM A-l APPENDIX B RLOl BOOTSTRAP PROGRAM B-1 Index-l INDEX FIGURES FIGURE 1 2 Memory-Size Subroutine Devices A, B, C on RLOl Disk 15 22 TABLES TABLE 1 2 3 4 5 6 7 8 9 10 Device Extensions Modules RX02 Bootstrap RLOl Bootstrap l28K ODT Command Summary Field Specifications for l28K MEMORY Command RX01-RX02 Compatibility OS/8 Single Density Diskette Interleave Scheme OS/8 Double Density Diskette Interleave Scheme RLOl Handler Information RLFRMT Formatter Messages iv 1 4 5 9 11 18 19 20 29 33 1.0 INTRODUCTION ~ND OVERVIEW The OS/8 V3D Device Extensions support the following new devices under OS/8. • • • The KT8A Memory Management Option (limited support) The RLOI Disk and Controller The RX02 Double-Density Diskette and Controller In addition, the Extensions package is a support release for RTS/8 V3 and MACREL/LINK Version 2, both of which can use the extended memory provided by the KT8A. RTS/8 V3 also supports the RLOI and RX02. The Extensions package is a superset of some OS/8 modules. It remains completely compatible with OS/8 V3D and contains the modules listed in Table 1. Table 1 Device Extensions Modules System Programs: Name New Version Number Comment OS8 MONITOR 3S system head, capable of being run from the device, supports 128K words of memory ABSLDR.SV 6A loads binary and image into fields >7 PAL8.SV 13A uses fields >7 CCL.SV 7A ceL MEMORY command recognizes up to 128K words available in system PIP.SV 14A works with RLOl, RX02, VXAO, and new system head RESORC.SV 4A includes VXAO BOOT.SV 7A includes primary bootstrap for RLOl, RX02, and VXAO RXCOPY.SV SA double formats single or density diskettes, copies single single density to density and double density to double density FUTIL.SV 8A . recognizes new core control block format for programs in extended memory I RLOl, RX02, code and (continued on next page) 1 Table 1 (Cont.) Device Upgrade Kit Modules Patches: (to be added with LOAD and SAVE commands) New Version Number Name Comment. BPAT.BN Patch for BASIC FPAT.BN Patch for FORTRAN IV Handlers: (to be inserted with BUILD) RLSY.BN RLOl System Handler RLO.BN RLOI Non-system Handlers RLI.BN RL2.BN RL3.BN RLC.BN VXSY.BN VXAO System Handler RXSYI.BN RXOI System Handler RXSY2.BN RX02 System Handler RXNS.BN RXOI-RX02 Non-system Handler This manual assumes that the user is familiar with the material in the following documents: OS/8 Handbook (DEC-S8-0SHBA-A-D) OS/8 Handbook Update (DEC-S8-0SHBA-A-DN4) OS/8 Software Support Manual (DEC-S8-0SSMB-A-D) KT~A Memory Management Control User's Guide (EK-KT08A-UG-OOI) RL~A Disk Controller Maintenance Manual (EK-RL8A-TM-OOI) 1.1 Distribution Media The OS/8 Device Extensions are distributed on the following media& RX02 diskette RLOI disk RK05 disk TD8E DEC tape 1.2 The RESORC Program The new RESORC program lists the system and non-system handlers for the RX02 and RLOI devices. In addition, it lists a special handler -- called VXAO -- that enables you to use the extended memory provided by the KT8A as though it were a separate device. RESORC now has an overlay structure, enabling a user who buys source program to enter information on user-written handlers. 2 the 1.3 Changes in BASIC and FORTRAN IV for RLOI and RX02 Users RLOl and RX02 users must add the following patches to the BASIC and FORTRAN IV run-time systems so that these programs recognize and properly allocate space in memory for the second page of the system handlers. To patch the BASIC run-time system, enter the following commands. ~LOAD ~LOAD ~SAVE SYS:BRTS.SV/I dev:BPAT.BN SYS:BRTS.SV where dev is the distribution device BPAT.BN is the BASIC patch To patch the FORTRAN IV run-time system, enter the following commands. ~LOAD ~LOAD ~ SAVE SYS:FRTS.SV/I dev:FPAT.BN ~:)Y8: F/:nn. 8'J where 1.4 dev is the distribution device FPAT.BN is the FORTRAN IV patch System-Wide Changes for Users with the KT8A KT8A users must ensure that user-written programs and user-written handlers do not contain the following combination of instruction steps. CIF lOT JMP I /Change instruction field /Any PDP8 lOT instruction /The instruction that does the CIF If you enable the KT8A and turn on the interrupts (for example, to run OS/8 as a background task under RTS8), the KT8A hardware will return to the wrong place on traps between the CIF and JMP I instructions. 1.5 Changes in PIP for RLOl, RX02, and VXAO The ne~ version of PIP recognizes the RL01, RX02, and VXAO devices. PIP sets the proper length for directories on the ZERO command and determines whether it is dealing with a double-density or single-density diskette. PIP also recognizes the new Monitor head. If you attempt to use the Y option on the old version of PIP to move the new system head, PIP responds with the error message BAD SYSTEM HEAD 3 1.6 The BOOT.SV Program The BOOT.SV program now includes a primary bootstrap for and VXAO. The format is RLOl, RX02, .BOOT dd or • BOOT /dd where dd 1.7 is a legal OS/8 device specification, including RL, RX, or vx. Changes in FUTIL The new version of the OS/8 file utility program FUTIL recognizes the new Core Control Block format for user-programs in extended memory. For a complete description of FUTIL, see the OS/8 Handbook Update. 2.0 BOOTSTRAP AND BUILD INSTRUCTIONS Since the Extensions bootstrap the RXOl, system device. package includes the system head, you can RX02, RLOl, or RK05 distribution medium as a Table 2 and Table and RLOl device. the TD8E DEC tape Handbook. The are 3 bootstraps for the RX02 contain the PJ(05 disk and bootstraps for the the OS/8 included Chapter 1 of in The new handlers must be inserted into OS/8 with the BUILD program. For information on adding handlers to OS/8, see the BUILD chapter in the OS/8 Handbook. NOTE The console instructions in Tables 2 and 3 describe a PDP8-A. For other PDP8 computers, see the OS/8 Handbook. Table 2 RX02 Bootstrap 1. Press in order the MD and DISP buttons to display memory in the octal readout. 2. Press in order 0 and LXA to select memory field O. 3. Press in order 20 and LA location 20. to start loading instructions data at (continued on next page) 4 Table 2 (Cont.) RX02 Bootstrap 4. Deposit the following octal with D NEXT. 00020 00021 00022 00023 .00024 00025 00026 00027 00030 00031 00032 00033 00034 00035 00036 00037 00040 00041 00042 00043 00044 00045 00046 00047 00050 00051 . 00052 00053 00054 UU055 00056 00057 00U60 00061 values, terminating each value 1061 1046 0060 3061 7327 1061 6751 7301 4053 4053 7004 6755 5054 6754 7450 5020 1061 6751 1061 0046 1032 3060 0360 4U53 3002 205U 5047 0000 6753 5U33 6752 5453 0420 0020 5. After you have deposited all the values, press 0033 and LA start the program at location 33. 6. To start the bootstrap program, press INIT and RUN. to Table 3 RLOI Bootstrap 1. Press in order the MD and DISP buttons to display memory in the octal readout. 2. Press, in order, 0 and LXA to select memory field O. 3. Press, in order, 1 and LA to address 1. start loading instructions data at (continued on next page) 5 Table 3 (Cont.) RLOI Bootstrap 4. Deposit the octal values given with 0 NEXT. Address Contents 00001 00002 00003 00004 00005 00006 00007 00010 00011 00012 00013 00014 00015 00016 00017 00020 00021 00022 00023 00024 00025 00026 00027 00030 00031 00032 00033 00034 00035 6600 7201 4027 1004 4027 6615 7002 7012 6615 0025 7004 6603 7325 4027 7332 6605 1026 6607 7327 4027 0377 7600 0000 6604 6601 5031 6617 5427 5001 below, following each value 5. After all values are deposited, press, in order, 0001 and LA to allow the program to start at location 1. 6. Press, in order, IN IT and RUN to start the bootstrap program. The complete RX02 and RLOI bootstrap programs are listed in Appendix A and B. 3 ,.0 THE KT8A MEMORY MANAGEMENT OPTION The OS/8 V3D Device Extensions provide limited support for the KT8A Memory Extension and Management Option, which increases the amount of allowable memory in PDP8 systems from 32K to a maximum of 128K words. The KT8A supports all available sizes of continuous memory from 32K to l28K. System programs, devices, and languages that run in 32K under OS/8 will also operate with the new monitor. In addition, systems with the KT8A and l28K software support will run user-written programs in memory fields 0 to 37. OS/8 high-level languages and system programs, however, do not make use of memory greater than 32K words. 6 This section describes the OS/8 commands and PAL8 instructions that allow you to run user-written programs in fields 0 through 37. In addition, it includes a subroutine for finding the amount of memory available at run-time and describes a program that enables you to ch~nge the Core Control Block of a program in complex SAVE operations. This section also notes current software restrictions on the extended memory. the use of For a description of the KT8A device, including operating and programming instructions, see the ~K~T~8~A~~M~e~m_o~r~y~_M~a~n~a~g~e~m~e~n~t~C~0~n~t~r~o~l User's Guide (EK-KT08A-UG-OOl). 3.1 128K Monitor and CCL Commands -- SAVE, ODT, and MEMORY The SAVE and ODT monitor commands now support fields 0 to 37. The CCL MEMORY command finds the highest field available in hardware up to field 37. MEMORY also limits the available fields in software, but this feature is currently restricted to 32K. NOTE The OS/8 Monitor currently requires that all user-written programs contain at least one segment (I-page minimum) below 32K. 3.1.1 The SAVE Command - The SAVE command makes a memory-image file of the program currently in memory, assigns it a name, and saves it on a device. You can specify areas in memory that you want to save in fields from 0 to 37. The format of the command, including all optional arguments, is SAVE device:file.ex ffnnnn-ffmmmm,ffpppp;ffssss=cccc where ffnnnn is a 6-digit octal number representing a field from 0 to 37 (ff) and the first address of a continuous portion of memory you want to save. ffmmmm is the final address (in the same field) of the section of memory you want to save. ffpppp is a 6-digit octal number representing the field and address of one location in memory. If you specify a single address on an even-numbered page in the command, SAVE writes the entire page on which the location occurs. If you specify an odd-numbered page, SAVE also saves the preceding page. ;ffssss is a 6-digit octal number representing the field starting address of the program you are saving. and =cccc is a 4-digit octal number representing the contents the Job Status Word for the program. (See below.) of 7 If you omit the extension on the file name, SAVE appends .SV. If you omit the other arguments, SAVE finds the locations it requires in the current Core Control Block. (For a discussion of the Core Control Block, see the OS/8 Handbook and the OS/8 Software Support Manual.) The SAVE command places the following restriction on arguments in command line. • You must specify the output device. DSK. • The first and last location of a segment in memory (ffnnnn-ffmmmm) that you wish to SAVE must both exist in the same field. You may not cross field boundaries. In the following example, both entries specify field 22. ~SAVE • SAVE does not default the to SYS:EXAMPL 220055-220643 When you specify an area on a page, SAVE takes the entire page. If you call for another part of that page in the same command line, SAVE sends a BAD ARGS error message to the terminal informing you that it has already saved the page. ~SAVE RXA1:FLOP 120077-120122, 120146-120177 The first argument writes locations 77 to 122 in field 12 on to RXAI and calls the file FLOP.SV. The second argument, which specifies locations on the same page, produces the error message BAD ARGS • Do not SAVE locations 7600-7777 in fields 0, 1, and 2. The resident Monitor code resides in these areas of memory. To avoid accidently destroying a portion of the Monitor, restrict SAVE operations involving 7600 to fields above 2. you specify an address on an odd-numbered page, SAVE can • If save it only if it also saves the preceding page. The system does this automatically. If you wish to specify more locations in a SAVE command than you can fit in a single command line, use the SAVECB program described in Section 3.5. NOTE The Monitor START command currently accepts field specifications in the range of 0 to 7 only. 3.1.2 The ODT Command - aDT accepts and returns 6-digit addresses the following commands. ffnnnn/ ffnnnnB ffnnnnG where ff nnnn is a field from 0 to 37 is a location 8 in The 0 and F command allow you to specify fields in the range of 0 to 37. To indicate the first eight fields, type a single octal digit (0-7). Note that this is a change from previous versions of ODT, which required you to enter field specifications as multiples of 10 (for example, field 2 as 20). Table 4 summarizes all of the OS/8 128K ODT commands. For complete information on ODT, see the chapter on the ODT program in the OS/8 Handbook. Table 4 128K ODT Command Summary Command ffnnnn/ Operation Open location ffnnnn, where ff is a field from 0 to 37. ODT displays the contents of the location, prints a space, and waits for you to enter a new value for the location or close the location. If you omit ff, ODT assumes field O. Reopen the most recently opened location. nnnn; Deposit nnnn in the currently opened location, close the location, and open the next location in the sequence for modification. The semicolon (;) lets you deposit a series of octal values in sequential locations. To skip locations in the sequence, type a semicolon for each location you wish to leave unchanged. RETURN key CloSe the currently open location. LINE FEED key Close the currently open location, open the next location in the sequence for modification, and display its contents. n+ Open the current location plus n and display the contents. n- Open the current location minus the contents. uparrow or circumflex Close the location, read its contents as a memory-reference instruction and open the location it points to, displaying its contents. n and display • ODT makes no distinction between instruction op-codes when you use this command. It treats all op-codes as memory-reference instructions. • Take care when you use this command with indirectly referenced auto-index registers. If you use the command in this way, the contents of the auto-index register is incremented by one. Check to see that the register contains the proper value before proceeding. (continuea on next page) 9 Table 4 (Cont.) 128K ODT Command Summary Command Operation (underline) Close the current location, read the contents as a twelve-bit address, and open that location for modification, displaying its contents. ffnnnnB Establish a breakpoint at location ffnnnn, where ff indicates a field from 0 to 37. ODT permits only one breakpoint at a time. ffnnnnG Transfer control of the program ffnnnn, where the first two represent a memory field. B Remove the breakpoint, if one exists. A Open for modification the location in which ODT stored the contents of the accumulator when it encountered the breakpoint. L Open for modification the location in which ODT stored the contents of the Link when it encountered the last breakpoint. M Open the Search Mask location, initially set to 7777. To change the Search Mask, type a new value into the location. M <LF> Open the lower search-limit location. Type in the location (four octal digits) where the search will terminate. M <LF><LF> Open the upper search-limit location. Type in the location (four octal digits) where the search will terminate. nnnnW Search the portion of memory defined by the upper and lower limits for the octal value nnnn. The search must be restricted to a single memory field. See the F command. D Open for modification the location containing the data field (0 to 37) that was in effect at the last breakpoint. To change the field, enter a number from 0 to 37. F Open for modification the word containing the field (0 to 37) used by ODT in the last W or uparrow command (search or indirect addressing) or in the last breakpoint, depending on which occurred most recently. To modify this location, enter a number from 0 to 37. CTRL/O Interrupt a lengthy search the next COT command. DELETE key Cancel a number previously typed, up to the last non-numeric character entered. COT responds with a question mark, after which you enter the correct location. 10 output to location digits (ff) and wait for 3.1.3 The CCL Memory Command - The MEMORY command finds the highest field available in hardware up to field 37. rt also limits the available fields in software, but this feature is currently restricted to 32K words. The format of the command is MEMORY or MEMORY nn where nn is an octal number in the range of 0 to 37 representing the number of 4K fields available to OS/8. Table 5 lists all the values of n (memory fields corresponding memory-size. in octal) and the Table 5 Field Specifications for l28K MEMORY Command n Words of Memory 0 1 2 3 4 5 6 7 all available memory 8K 12K 16K 20K 24K 28K 32K To limit memory, enter the highest file you want to make available to OS/8 in the command line. For example, the following command limits the available memory to 16K words. ~MEM 3 To find the amount of memory that OS/8 is using, type the command with no argument. ~MEMORY 12K OF 32K MEMORY In this example, MEMORY prints the information that a 32K been limited to 12K words. system has MEMORY caused the execution of the CCL.SV program. 3.2 128K PAL8 The following PAL8 instructions accept field specifications in the range of 0 to 37, permitting you to run programs in areas above 32K. 11 3.2.1 The FIELD Pseudo-Operator - The pseudo-op FIELD instructs PAL8 to output a field setting so that it can recognize more than one memory field. The format of this pseudo-op is FIELD ff where ff is an integer, a previously defined expression in the range 0 to 37. symbol, or an FIELD causes the PALS assembler to output a field setting from 0 to 37 during the second pass of assembly. This setting, which appears as the high-order bits of the location counter in the program listing, tells the ABSLDR which field to load information into. For example, the following FIELD pseudo-op specifies memory field 26. The next line sets the location counter to begin at 400. Note that the FIELD instruction must precede the starting location. ICORRECT EXAMPLE FIELD 26 *400 The following example is incorrect and will not generate the code want. you IINCORRECT EXAMPLE *400 FIELD 26 3.2.2 Specifying Data and Instruction Fields -- eDF and elF - The CDF and CIF instructions let you specify field 0 to 37 as data and instruction fields. Entering the argument requires knowledge of the bit arrangement of these two instructions. CDF 6201 A CDE B 110 010 000 001 CIF 6202 110 010 000 010 Bits A CDE B indicate the data or instruction field that the program will jump to at the next indirect JMP or JMS. (The positioning of ABCDE is eccentric as ACDEB maintains compatibility between KT8A and existing 32K systems.) To specify a field from 0 to 7, you use bits CDE only. the instruction is The format of CDF or CIF nO where nO is an octal number that PAL8 ORs with code n is an octal digit from 0 to 7 (bits CDE) 12 the instruction For example, this instruction CIIF 60 specifies field 6 by causing PAL8 Instruction code Argument ~o do the following OR. 6201 60 A CDE B 110 010 000 001 000 000 110 000 6261 110 010 110 001 To specify a field from 10 to 17, use bits COE and format of the instruction is set bit B. The COF or CIF n4 n4 is an octal number that PAL8 ORs with code n is an octal value from a to 7 (bits COE) 4 is an octal value indicating a field range of 10 to (sets bi t B) the instruction 17 For example, this instruction C[lF 64 indicates field 16. Keep in mind that to call for fields above field 7 (above 32K) with COF and CIF, you must first load the KT8A Extended Mode Register with the LXM instruction. For example, the following code deposits (7777 in field 12, location 10000 LXH C[lF 24 TAIl (7777 IICA I (1000 To specify a field from 20 to 27, use bits COE and format is set bit A. The COF or CIF InO where InO 1 is an octal number that PAL8 ORs with the instruction is an octal value indicating field range 20 to 27 (sets A) n is a value from 0 to 7 (bits COE) For example, this instruction C[lF 160 indicates field 26. 13 To specify a field from 30 to 37, use bits CDE and set bit The format is A and B. CDF or CIF In4 where In4 is an octal number that PAL8 ORs with the instruction 1 ••• 4 are octal values indicating a field range of 30 (set bits A and B) n is an octal digit in the range 0 to 7 (bits CDE) to 37 is to For example, this instruction C[lF 164 specifies field 36 One way to avoid confusion with this unusual bit configuration define high fields with convenient mnemonics. For example: F36=164 C[lF F36 3.2.3 The ABSLDR - The ABSLDR will load information into any field from 0 to 37 that you specify in the FIELD pseudo-oPe However, the ABSLDR option In is restricted to fields 0 to 7 only. The =ffnnnn option sets the starting address of the program in memory to ffnnnn, where ff is a field from 0 to 37 and nnnn is a location. If you omit the option or specify 0, the ABSLDR inserts a starting address of 0200 in field o. 3.3 Determining Memory-Size at Run-Time It is frequently helpful to know the amount of memory currently available to the program you are running.. The sub-routine in Figure 1 determines the amount of memory available in a 128K system at run-time. The program returns a value in the range of 0 to 40 to indicate the first non-existent field in the system. To use this routine above 32K, you must first load the Extended Mode Register with the LXM instruction. For complete information on the Extended Mode Register, see the KT8A Memory Management Control User's Guide. 14 /SUBROUTINE TO DETERMINE MEMORY SIZE PAL8-VI0A 04-AUG-78 /SUBROUTINE TO DETERMINE MEMORY SIZE /THIS SUBROUTINE WORKS ON ANY PDP-8 FAMILY /COMPUTER. THE VALUE, FROM 1 TO 40 OCTAL, /OF THE FIRST NON-EXISTENT MEMORY FIELD IS /RETURNED IN THE AC. /NOTE -- THIS ROUTINE MUST BE PLACED IN FIELD 0 UU2UO 00201 00202 00203 00204 00205 OU206 002U7 U0210 00211 00212 00213 00214 00215 00216 00217 00220 00221 00222 OU223 00224 00225 00226 00227 OU230 00231 00232 Ou233 UU234 OU235 00230 OU237 UU24U U0241 UlI242 uU243 0000 73UO 6201 1242 lI222 7112 7012 7002 7430 1243 0235 3214 6201 164U 7000 3214 1216 3640 0037 1640 7400 1224 1241 7640 5235 1214 364CJ 2242 52U2 6201 1242 560U 0224 14(JU lIUUl 00U4 CORE, o CLA CLL CORO, CDF 0 TAD CORSIZ AND COR37 CLL RTR RTR BSW SZL TAD C4 AND COREX DCA .+1 CORl, CDF TAD I CORLOC COR2, NOP DCA CORI TAD COR2 DCA I CORLOC COR37, 37 TAD I CORLOC CORX, 7400 TAD CORX CORV TAD SZA CLA JMP COREX TAD CORI DCA I CORLOC ISZ CORSIZ JMP CORO COREX, CDF TAD CORSIZ JMP I CORE CORLOC, CORX 140u CORV, CORSIZ, 1 C4, 4 Figure I 3.4 /(NEEDED FOR PDP-8L) /GET FIELD TO TEST /MASK USEFUL BITS /TRANSFORMS /"37" TO "174" /FOR CDF /SET UP CDF TO FIELD /CDF IS PROCESSED HERE /SAVE CURRENT CONTENTS /(HACK FOR PDP-8!) /7000 IS A "GOOD" PATTERN /(HACK FOR PDP-8.,NO-OP) /TRY TO READ BACK 7000 /(HACK FOR PDP-8.,NO-OP) /GUARD AGAINST "WRAP-AROUND" /TAD (1400) /NON-EXISTENT FIELD EXIT /RESTORE CONTENTS DESTROYED /TRY NEXT HIGHER FIELD /LEAVE WITH DATA FIELD 0 /lST NON-EXISTENT FIELD /ADDRESS TO TEST IN EACH FIELD /7UUO+74UO+1400=0 /CURRENT FIELD TO TEST Memory-Size Subroutine The VXAO Extended-Memory Device The VXAO device handler enables you to use the extended memory provided by the KT8A as though it were a separate device. You call VXAO in the same way that you call any system device. For example, this command ~COpy VXAO:SAMPLE<RXAO:SAMPLE copies a program called SAMPLE into an area of memory above 32K words. The VXAO device provides high speed I/O for users with diskettes or users who want the performance of a fixed-head disk type of storage device. 15 3.5 The SAVECB Program SAVECB is a demonstration program that enables you to alter the contents of a program's Core Control Block. You will find this routine useful in a SAVE with arguments involving more fields in memory than you can specify in a single SAVE command line. This is likely to happen in systems with 128K words of memory, since the number of fields you may wish to specify increases from 10 to 40 (octal) . The format for summoning SAVECB is R SAVECB * file.SV where file.SV is the name of change program whose CCB you want to SAVECB responds with a number sign (#) to indicate that it is ready to accept one of the following commands. TYPE displays core control block of file.SV Affmmmm-ffnnnn adds segment to CCB Sffmmmm-ffnnnn subtracts segment from CCB To exit from the program, type This writes the updated Core Control Block onto the system area of the device. In order to change the program's CCB, you must load the program with the R command (typing CTRL/C to abort execution) and then create a memory-image file with SAVE. For example, assume you want to save segments of program FLOP.SV as a memory-image file called FLAP.SV. First, you modify the CCB with SAVECB. !R SAVECB FLOf'.SV ~ SAVECB responds with a number sign (#). program, type To inspect the CCB of your !TYF'E SAVECB displays the starting location of the program, its Word, and the segments in memory that it uses. START=OOOO Job JSW::::2000 CORE SEGMENTS: 040200-040377,020200-020377,016400-017377,000000-007577 To add segments to the CCB, enter them after the prompt. !A30200-30600,40600-40777 16 Status Now examine the CCB again. tTYPE START=000200 JSW=2000 CORE SEGMENTS: 040200-040377¥040600-040777~030200-030600~020200-020377 016400-017377,000000-007577 To place this core control block in the system type @ after the prompt. area on the device, To make a memory-image file of the segments specified in the CCB run FLOP.SV with the R command aborting execution with CTRL/C. Then save the segments under the new name with a SAVE command without arguments. ~R FLOP.SV ~C ~SAVE FLAP.SV To change a segment, first subtract the entire segment with command. Then enter the altered version with the A command. 4.0 the S THE RX02 DUAL-DENSITY DISKETTE The OS/8 V3D Device Extensions include system and non-system handlers for RXOI and RX02, the devices for single-density and double-density diskettes. The new handlers run on both RXOI and RX02 hardware. NOTE 4.1 • The old OS/8 handlers, including BOOT/RX, will not run on RX02. • An RX02 with hardware switch an RXOI. a single-density set is identical to RX02 Device Names To specify an RX02 diskette in an OS/8 command line, enter device names you use for RXOI. OS/8 recognizes the permanent names. DSK Default output device, usually same as SYS SYS System device, usually the diskette in drive 0 RXAO The diskette in drive 0 RXAI The diskette in drive 1 17 the same following SYS is most accurately defined as the device that you have bootstrapped. This is usually the device in drive O. However, the hardware will also bootstrap a device in drive 1, making SYS and DSK equivalent to RXAI. The permanent names RXAO and RXAI remain unchanged. 4.2 Formatting Diskettes for RX02 Diskettes arrive from the factory already formatted for use in a single-density RXOI drive. To format them for RX02, use the RXCOPY program with the /0 option, specifying the diskette you want to re-format as an output device. (If you enter a device by itself in the command line, RXCOPY considers it to be an output device.) Diskettes formatted for the RX02 device contain the directory) in a l2-bit mode. 4.3 981 blocks (besides RXOI and RX02 Compatibility diskette runs Similarly, a only on an RX02 single-density SYS • A double-density system double-density drive. requires an Rxul drive. • RX02 accepts both single-density and double-density non-system diskettes. The non-system handler determines which kind of device it is dealing with and proceeds accordingly. • RXOI hardware accepts single-density use. only diskettes formatted for NOTE If you place an RX02 diskette on an RXOI drive, you can currently write to it without producing an error message. Avoid this procedure, as it results in a "mixed" diskett.e. Table 6 matches single-density and double-density diskettes -- both system and non-system -- with the drives that they run on. Table 6 RXOI-RX02 Compatibility r----- Diskette Type Drive type Single density Single-density System X Double-density System Single-density Non-system Double density X X Double-density Non-system X X 18 4.4 Interleaving OS/8 writes blocks on single-density diskettes with an interleave of 2. This means that it skips a block between each block that it reads or writes. with double-density diskettes, ~OS/8 uses an interleave scheme of 3, skipping two blocks. Tables 7 and 8 show the interleave schemes for both sing1e- and double-density diskettes. Table 7 OS/8 Single Density Diskette Interleave Scheme OS/8 Logical Block (octal) Diskette Sectors (track/sector--decima1) 0 1/1 1/3 1/5 1/7 1 1/9 1/11 1/13 1/15 2 1/17 1/19 1/21 1/23 3 1/25 1/2 1/4 1/6 4 1/8 1/10 1/12 1/14 5 1/16 1/18 1/20 1/22 6 1/24 1/26 2/1 2/3 7 2/5 2/7 2/9 2/11 10 2/13 2/15 2/17 2/19 11 2/21 2/23 2/25 2/2 12 2/4 2/6 2/8 2/10 13 2/12 2/14 2/16 2/18 14 2/20 2/22 2/24 2/26 15 3/1 3/3 3/5 3/7 · · · 19 Table 8 OS/8 Double Density Diskette Interleave Scheme OS/8 Logical Block (octal) Diskette Sectors (Track/sector--decimal) 0 1/1 1/4 1 1/7 1/10 2 1/13 1/15 3 1/19 1/22 4 1/25 1/2 5 1/5 1/8 6 1/11 1/14 7 1/17 1/20 8 1/23 1/26 9 1/3 1/6 10 1/9 1/12 11 1/15 1/18 12 1/21 1/24 13 2/1 2/4 · · · OS/8 does not use Track 0, and you cannot mode. 4 ..5 access it in the l2-bit Using RXCOPY with RX02 RXCOPY copies both single-density and double-density diskettes on RX02 drives. If the output diskette does not match the input diskette, RXCOPY will re-format it to the proper density. In default mode, RXCOPY compares the two diskettes for identical contents before it makes a copy. For a quicker transfer, use the /N option, which inhibits the comparison. For double-density transfers involving a comparison of contents, RXCOPY will use 16K words of memory if it is available on the system for faster operation. If possible, use the MEMORY command to provide the necessary memory. 20 4.5.1 Formatting Diskettes with RXCOPY - RXCOPY with the /S and /0 option formats diskettes for single-density or double-density use. To format a diskette, enter it by itself in the command line, followed by the option. (RXCOPY considers a device entered by itself to be an output device.) For example, the following command sequence re-formats the diskette in drive 1 from single-density to double-density. ~R RXCOPY ~RXA1:/D To change it back to single-density, type ~R RXCOPY ~RXA1:/S 4.5.2 5.0 RXCOPY Options - RXeOPY provides the following options. • /p RXCOPY pauses and waits for user response after transfers. To continue, type Y. • /N RXeOPY transfers the contents of one diskette to but does not check for identical contents. • /M RXCOPY checks both diskettes for identical contents and lists the areas that do not match but performs no transfer. • /R RXCOPY reads every block on the input bad sectors but performs no transfer. • /V • /S RXeOPY formats the diskette specified as an output device to single-density. • /0 RXCOPY formats the double-density. • /e This option is equivalent to default copy and match. device before and another and lists RXeOPY prints its current version number. diskette specified for output to THE RLOI DISK This section describes "the booting, formatting and building of the RLOl disk pack with the OS/8 Operating System, using the RLOl OS/8 software support package. The RLOl disk pack -- a high-density mass storage device ~- utilizes bad-block mapping. Bad blocks occur during the manufacture of disks or develop as a result of use and age. Bad block~ that are present after manufacture are recorded in factory-written lists. Each disk preserves its own individual list. The RLFRMT formatter program detects and lists new bad blocks that occur during disk operation in the field. Each RLOl disk main~ains up to 45 bad blocks; this allows the life of the disk to oe prolonged as a mass storage device. The RLOl requires a PDP-8A,E,F or M with at least 12K of memory. Non-omnibus PDP-8 family computers are not hardware-compatible with the RL01. 21 System and non-system RLOI handlers are standard two-page OS/8 Two-page handlers require 12K of memory because the second page of the handler resides in the last page of field 2. handlers~ BATCH may be run using RLOI disks, even on a system with 12K words memory. However, disk formatting cannot be done under BATCH. of This section inc1udes a system description, detailing disk, RL8A controller and software formats. In addition, it contains bootstrap procedures and operating instructions, including a detailed presentation of messages that are generated during disk formatting. 5.1 System Description The RLOI disk pack has three logical "devices" that are designated as Device A, Device B and Device C. Figure 2-1 shows device designation on an RLOI disk. The OS/8 Device Extensions provide for the standard OS/8 System and Non-System I/O transfer of 1 to 32 (decimal) memory pages to or from anyone of three RLOI "devices". The "devices" are located on anyone of four RLOI disk drives. Disk data-space consists of 777 (octal) tracks. As shown in Figure 2, data on a single track is made up of 40 equal length sectors numbered o through 47 (octal). This results in 20 (decimal) blocks, four assigned to Device C and 16 to Device A or B. DISK DATA SPACE II JJ A • (TRACK 0 I (TRACK 777 EVEN SECTORS ONE RL01 T RACK { 16 20 0 1J B ODD SECTORS 461 4 BLOCKS 16 BLOCKS C AOR B --47 -- Track and Sector numbers are octal Block numbers are decimal Figure 2 Devices A, B, C on RLOI Disk Approximately 10,000 (decimal) OS/8 blocks are supported per drive, 40% as Device A, 40% as Device B, and 20% as Device C. This scheme provides some user control over the tradeoff between the number of devices and the length of each device. Device C has a different length from Devices A and B. In general, Device C is used only when a maximum amount of data is to be stored on the disk. 22 Each device supports up to 15 (decimal) bad blocks to provide bad-block mapping. These blocks may be thought of as "spares", and should never be accessed by the user. This support involves "invisible" mapping of OS/8 block numbers into the set of actual good disk blocks; no utility program need be changed (including SQUISH), and user awareness of this feature is not required. Bad-block lists are kept resident to reduce the extra reads required. Bad-block lists that occur during disk manufacture are maintained in factory-generated lists which are stored on track 777 of the disk. The OS/8 system preserves five copies of the factory list, all of which are identical. When a disk is initially formatted using OS/8, the formatting program (RLFRMT) ascertains that the disk is new. The program then reads in the factory list, and checks the disk for any new bad blocks. The factory list and the new bad-block list are then combined, and, after the user's go-ahead, the formatting program writes the newly-generated OS/8 bad-block list on track 0 of the disk. When running OS/8, you may generate an I/O error because of a bad block. You can check this by again running the formatter program. RLFRMT ascertains that the disk is already formatted, so it reads in the previous OS/8 bad-block list and checks the disk for any new bad blocks. When you instruct it to proceed, the formatting program writes the updated OS/8 bad-block list on track 0 of the disk. You should not allow the bad block list to be written if an unexpectedly large number of bad blocks are reported~ formatting to remove bad blocks is a permanent, irreversible procedure. During an I/O transfer, the handler first reads in the OS/8 bad-block list for the device. The system effectively maps around the bad blocks. This has the effect of making them appear to have disappeared, so that standard OS/8 block numbers can be used. All permanent information stored on RLOI disk packs (such as bad-block lists) is protected from destruction by OS/8 handler calls by being "outside of" the OS/8 data space. An annulus data scheme reduces the average intra-device seek time. This means that data continues from the track on surface 0 to the track on surface I for each cylinder. The bootstrap routine is under 32 (decimal) words in suitable for ROM implementation and/or direct toggle-in. Three tries (two reported. retries) are attempted before an numbers in NOTE Unless otherwise noted, all this section are octal. 23 length, I/O error and is 5.1.1 Disk Format - The format of the RLOI disk is as follows: Track Sector Contents 0 U U 0 2 4 6 10 12 14 16 20 22 Reserved for future use by DIGITAL Reserved for future use by DIGITAL Reserved for future use by DIGITAL Reserved for future use by DIGITAL Reserved for future use by DIGITAL Reserved for future use by DIGITAL Bad Block Lists for Devices A and B Bad Block List for Device C Device A, Block 0 (first half) Device A, Block 0 (second hal f) o Device C, Block 0 (first half) Device C, Block 0 (second half) 0 0 0 0 0 0 0 1 1 2 Device B, Block 0 (first half) Device B, Block 0 (second half) 20 400 400 22 777 o . Disk Pack Serial Number, List of Manufacturing-Detected Bad Sectors and Field-Detected Bad Sectors. NOTE RLFRMT.PA contains complete descriptions of bad block list formats as comments at the start of the program. 5.1.2 RL8A Controller Format - The software control of the system. following registers perform Memory Address Register: The Memory Address Register is a l2-bit register that contains location at which the first transfer is to be performed. o 1 2 3 4 5 6 7 8 9 10 11 I I I I I I I I I I I IJ -'Y Memory address _ _ _ _ Memory Address Register 24 the Word Count Register: The Word Count Register is a l2-bit register that contains negative of the number of words to be transferred at one time. 5 4 3 2 0 9 8 10 11 I I I I I I I '-- 7 6 ~ J Word count the Word Count Register Sector Address Register: The Sector Address Register contains the through 5. 5 4 3 2 0 I ........ 7 6 8 address 9 10 in bits 0 11 ~ J Sector address sector Sector Address Register Command Register A: Command Register A contains the direction, address. It has the following format: o 2 3 4 5 6 7 surface 8 9 and 10 cylinder 11 Direction _ _ _- - I 0: towards lower cylinder addresses (outside) 1: towards higher cylinder addresses (inside) Surface - - - - - - - ' 0: upper surface 1: lower surface Cylinder address - - - - - - - - - - - - - - - - - - ' (or cylinder difference) Command Register A Command Register B: Command Register B designates maintenance mode, byte mode, interrupt enable, drive select, memory field and function. It has the following format. 25 o 2 3 5 4 7 6 8 9 10 11 Maintenance mode Byte mode - - - - - - - - - ' 0: truncated 1: byte Interrupt enable - - - - - - - ' Drive select - - - - - - - . - - - - - - ' Memory field - - - - - - - - - - - - - - - - - - - ' Function -----------------------~ 0: maintenance 1: reset drive errors 2: get drive status 3: seek 4: read next header 5: write 6: read 7: read, no header check Command Register B 5.1.3 Instruction Set - The following instructions operate system. the disk Note that the AC is cleared after a transfer from the AC to a register in the controller. Also,-the AC is cleared first before a transfer is made from a controller register to the AC. The skip instructions are skip and then clear rOT's; that is, if a given condition (function done) is true, the function-done flag will be cleared at the completion of the skip rOT. Function Octal Code Mnemonic 6600 RLDC Clear device, all registers, AC and flags not use to terminate a disk function) 6601 RLSD Skip on function done flag, then clear it 6602 RLMA Load memory address register from AC 6603 RLCA Load command register "A" from AC 6604 RLCB Load command reg ister command 6605 RLSA Load sector address register from AC bits 0-5 6606 liB II from AC, execute Spare (will clear the AC) 6607 RLWC Load word count register from AC 6610 RRER Read error register into AC bits 0-2 and 11 6611 RRWC Read word count register into AC 6612 RRCA Read command register 26 II A" into AC (do Octal Code Mnemonic 6613 RRCB Read command register "B" into AC 6614 RRSA Read sector address register into AC bits 0-5 6615 RRSI Read (silo) word (8-bi t) into AC bits 4-11 Function Spare (does not clear AC) 6616 6617 RLSE Skip on composite error flag, then clear it Devices A, Addresses - Use the 5.1.4 OS/8 Data Space - The layout of OS/8 data space on B, and C is as follows: Devices A and B Block Track Sectors 0 1 2 3 4 5 6 7 10 11 12 13 14 15 16 17 20 0 0 0 0 1 20,22 24,26 30,32 34,36 40,42 44,46 1,3 5,7 11,13 15,17 21,23 25,27 31,33 35,37 41,43 45,47 20,22 Block Track Sectors 0 1 2 3 4 1 1 1 1 2 0,2 4,6 10,12 14,16 0,2 0 0 () 0 0 0 0 0 °0 0 0 Device C 5.1.5 Converting Block Numbers to Hardware Disk following procedures. For Devices A and B: The sector address is 4 times the sector code minus 27. address is negative, add 47. 27 If the sector Device A has MSB of cylinder Device B has MSB of cylinder = 0 (cylinders 0-177). = 1 (cylinders 200-377). The block number software format for Devices A and B is shown following diagram. o in the 11 BLOCK NUMBER: LSB OF CYLINDER SECTOR CODE S U R F A C E Block Number Format for Devices A and B For Device C: The sector address is 4 times the sector code. The track is one plus the track code. Tracks 0 and 777 cannot be addressed: this ensures the integrity of the factory-detected and OS/8 bad-block lists, which reside on these tracks. The block number software following diagram. format for Device C is shown o in the 11 ~·~--~-T-RA~C--K-C~O-D-E~--~--~~-4~--~~ -C BLOCK NUMBER: SECTOR CODE Block Number Format for Device C The track software format for Devices A, B, and following diagram. C is shown o TRACK: CYLINDER ADDRESS S U R F A C E Track Format for Devices A, B, and C 28 in the 5.2 Handler Description The standard OS/8 device designation format cannot be used with the RLOI. Normally, the standard format would use "RLAO: to represent Device A of unit (drive) O. The single-word format used internally to store device names does not distinguish between "RK" devices and "RL" devices, resulting in erroneous RESORC reports, and in other anomalies. The RLOI therefore uses "RLOA" to represent unit 0, Device A, and so forth. Table 9 provides information on the RLOI handlers. SYS is the same device as RLOA (Drive 0, Device A). Table 9 RLOI Handler Information Device Name Entry Point Offset (Octal) File Name (Group Name) Device Type Device Code (Octal) Octal Length (Blocks) Decimal Length (Blocks) SYS RLOA RLOB RLOC RLIA RLIB RLIC RL2A RL2B RL2C RL3A RL3B RL3C 07 44 40 50 45 41 54 46 42 60 47 43 64 RLSY RLO RLO RLC RLI RLI RLC RL2 RL2 RLC RL3 RL3 RLC RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI RLOI 26 26 26 31 26 26 31 26 26 31 26 26 31 7761 7761 7761 3751 7761 7761 3751 7761 7761 3751 7761 7761 3751 4081 4081 4081 2025 4081 4081 2025 4081 4081 2025 4081 4081 2025 A brief description of RLOI handler operation is as follows: 1. When initially called, each RLOI handler executes once-only code to read in the bad block list for its drive. The handler error return is taken (with AC=4000) if an I/O error occurs or if the bad-block list is found to be invalid (a valid bad-block list begins with a special identification code) • 2. Get handler arguments. 3: Map each block to be transferred around bad blocks by incrementing the block number once for each bad block (as listed in the bad-block list for the requested device) less than or equal to the present block. This procedure makes bad blocks effectively "disappear." 4. Transfer one page/sector at number of pages. 5. If an I/O error occurs for any RLOI read or write operation, retry twice then take the System or Non-System Handler error return with AC=4000. 29 a time, up to the requested 5.3 Loading and Bootstrap Procedure The following sequence of operations occurs the RLOI. during bootstrapping to 1. BOOT-I, the primary bootstrap routine, is read into locations 00001-00035 from a ROM, from BOOT.SV, or toggled in through the console switches. The starting address is 00001. BOOT-l clears Drive 0 and reads and starts BOOT-2. If an I/O error occurs, BOOT-l will repeat until it is successful. 2. BOOT-2 occupies locations 00000-00177. BOOT-2 reads the OS/8 Resident Monitor into the last pages of fields 0, 1, and 2. If an I/O error occurs, BOOT-2 will "hang" as an indication of failure to boot. 3. BOOT-2 then calls the Keyboard Monitor by jumping to location 07605. NOTE Never replace the system disk pack without rebooting: each pack has its own OS/8 block numbering scheme that is determined during formatting. Replace non-system disk packs only after the Monitor dot appears on the terminal. This is done to ensure that the bad-block list read by the handler is correct. 5.3.1 Loading the RLOI Disk Pack - Prepare loading as follows: 1. an RLOI Disk Separate the protective cover from the disk pack, following steps. Pack for using the a. Lift the cartridge by grasping the handle with the hand. b. Support the cartridge from underneath with the left hand. c. Lower the handle and push the handle slide with the thumb of the right hand. the left d. Raise the handle to its upright position to separate cartridge from the protection cover. the to 2. Place the cartridge in the drive shroud recess facing the rear of the machine. 3. Rotate the cartridge a few degrees clockwise and counter-clockwise to ensure that it is properly seated within the shroud. 4. Gently lower the handle to a horizontal the drive spindle. 5. Place the protection cover on top of the cartridge. 6. Carefully close the drive lid. 7. Push the "LOAD/RUN" pushbutton. 30 with the right position to handle engage 5.3.2 Booting from BOOT.SV - Boot from the BOOT.SV program the BOOT or R commands as follows: by using • BOOT 7RL or ~BOOT RL or .R BOOT /RL 5.3.3 Booting from the Console Switches - The following enters the bootstrap program into PDP-8/A memory. buttons to 1. Press in order the MD and DISP numbers are being deposited. 2. Press, in order, 0 and LXA to select memory field O. 3. Press, in order, 1 and LA to start address 1. loading instructions at 4. Deposit the octal values given in value with D NEXT. Table following each 5. After all values are deposited, press, in order, 0001 and to allow the program to start at location 1. 6. Press, in order, INIT and RUN to start the bootstrap program. 3, see procedure what 5.3.4 ROM Bootstrap Switch Settings - Set the bootstrap settings for ROM's labeled 465A2 and 469A2 as follows: octal switch Program 82-5 82-6 82-7 S2-8 Sl-l 81-2 Sl-3 Memory Address RL8A OFF ON OFF OFF OFF ON OFF 5.4 LA 4000 Operating Instructions You must format new RLOI disk packs by running the RLFRMT program prior to any 08/8 use (including system building). This is required because RLFRMT constructs and writes specially formatted bad-block lists on the pack. 08/8 RLOI operations on disks that have not been formatted with RLFRMT result in error reports. Therefore, you should run RLFRMT even before using BUILD to build a new system head. Device C non-system handlers are provided to access all available storage capacity of the RLOI disk packs. Transfers to or from Device C are slower than those to or from Devices A and B. This is so because, while Deviqe A and B use 80% of each track, Device Conly uses 20% of each track (only 4 blocks are stored on each track). Thus, the time spent in seeking new tracks will be higher for Device C. 31 Because different RLOI packs may have different patterns of bad, blocks, it is good practice to end an OS/8 session with the monitor "BOOT" command (or "R BOOT"), so that other users will be able to type "RL" to boot their disks. Of course, this procedure is unnecessary if the computer system has a hardware bootstrap for the RLOI. 5.4.1 Disk Formatting - Format all new RLOI disk packs prior to any use under OS/8, including system building. Mount the RLOI disk pack (Section 4.2). Format the RLOI disk by using the following procedure: 1. Type .!oR RLFRMT to run the formatter program. RLFRMT Vvp is printed on the terminal signifying the start of the operation where: v is the version number p is the patch level letter the program then prompts with DRIVE? 2. Type the drive number (0-3) on which the pack is mounted. The formatter program then reads all blocks on the disk to detect any new bad blocks. The process takes 35 to 40 seconds. After this period, an initial display is presented as follows: UNFORMATTED (NEW) DISK PACK SERIAL NUMBER nnnnnnnnnn FACTORY-DETECTED BAD BLOCKS: NONE NEWLY-FOUND BAD BLOCKS: NONE NEW OS/8 BAD BLOCKS: NONE FORMAT PACK WITH THIS NEW LIST? The messages are explained Messages. 3. in Table 10, RLFRMT Formatter Type a "Y" or "N" (followed by a RETurn) in response to the last message "FORMAT PACK WITH THIS NEW LIST?" to either allow or prevent the writing of the new OS/8 bad-block lists. The program signifies completion of this. operation by displaying DONE DRIVE '~ Type CTRL/C to return to the OS/8 monitor. or designate another drive for formatting. 32 Remove the pack The following example illustrates possible messages that may be generated during a particular sequence of OS/8 RLOI formatting operations if bad blocks are found. OS/8 (OLD) DISK. WARNING: ALL FACTORY-WRITTEN LISTS DESTROYED. PREVIOUS OS/8 BAD BLOCKS: NONE NEWLY-FOUND BAD BLOCKS: A 6374 A 6375 B 4347 B 4350 C0514 C 0515 C 2073 B 0360 WARNING: AN ADDITIONAL BAD BLOCK FOUND. ZERO DISK BEFORE USE! NEW OS/8 BAD BLOCKS: A 6374 A 6375 B 0360 B 4347 B 4350 C 0514 C 0515 C 2073 FORMAT PACK WITH THIS NEW LIST? The formatter program then writes or does not write special OS/8 bad block lists on the pack, depending on a "Y" or "N" user response. These lists include only the factory-detected and newly-detected bad blocks for new packs, or previous OS/8 and newly-detected bad blocks for old packs. warnings are given for various conditions as appropriate (see Table 10). NOTE Reformatting a previously-used disk pack will make any newly-detected bad blocks effectively disappear from the pack. Any files located at or after any such new bad blocks, however, will turn to garbage due to the implicit renumbering of all OS/8 blocks past those points. Table 10 lists normal formatter messages, operator error messages, and program error messages. Table 10 RLFRMT Formatter Messages 1. Normal Messages Message Meaning RLFRMT Vvp Identifies start of operations. "v" is version number, "pH is patch level letter. DRIVE Requests user to type number and RETURN key. ? UNFORMATTED (NEW) DISK PACK drive Disk does not contain OS/8 bad block lists, either because the disk .is brand new or because these lists have been destroyed by non-DIGITAL software or diagnostic programs. (continued on next page) 33 Table 10 (Cont.) RLFRMT Formatter Messages 1. Normal Messages (Cont.) Meaning Message OS/8 (OLD) DISK PACK Disk contains valid OS/8 bad block lists. (A formatted pack contains octal 0123 in words 100 - 177 of sector 16 (octal) of surface a of cylinder 0). SERIAL NUMBER xxxxxxxxxx The serial number is the ten digit octal number assigned to the pack at time of manufacture. FACTORY-DETECTED BAD BLOCKS The list of bad blocks found at manufacturing time is printed in the format "d nnnn", where d=A,B, or C (the device) and nnnn = the block number on that device which is bad. PREVIOUS OS/8 BAD BLOCKS The current OS/8 bad block are printed. NEWLY-FOUND BAD BLOCKS The list of bad blocks just found by read-checking the entire disk is printed. NEW OS/8 BAD BLOCKS This list results from combining the previously printed lists. It is the list that is written on the pack as the new OS/8 bad block lists. FORMAT PACK WITH THIS NEW LIST? User types "Y" or "N" to allow or prevent writing the new OS/8 bad block lists. DONE Indicates that new OS/8 bad block lists have been written on the pack. The pack now may be removed if desired. "DONE" is always followed by "DRIVE?" to allow formatting another pack. 2. lists Operator Error Messages Message Meaning PLEASE SPECIFY DRIVE NUMBER (0-3) ON WHICH PACK TO BE FORMATTED IS MOUNTED. RLFRMT could not interpret user response to "DRIVE?". User can try again. PLEASE WRITE-ENABLE DRIVE, THEN HIT RETURN! RLFRMT found the selected drive write-locked just before attempting to write new OS/8 bad block lists on the pack. _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _,__________ _ _ L -_ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _ _~ (continued on next page) 34 Table 10 (Cont.) RLFRMT Formatter Messages 3. Warning Messages (formatting can still be done) Message Meaning WARNING: AN ADDITIONAL BAD BLOCK FOUND. ZERO DISK BEFORE USE! If the user permits the new OS/8 bad block lists to be written, the OS/8 block numbering scheme will be changed due to a new bad block found during the read-check of the entire pack. This will make "garbage" out of any files located at and after the bad block number. WARNING: BAD BLOCK IN SYSTEM AREA. DO NOT USE AS SYSTEM DISK! A new bad block was found during the read-check of the pack. This new bad block was on Device A between 0 and 66 inclusive. Since no bad blocks are allowed in this area for the system device (due to bootstrapping constraints), permitting the pack to be formatted disallows future use as a system device. Non-system use is unaffected. WARNING: ALL FACTORY-WRITTEN LISTS DESTROYED All copies of the manufacturingdetected bad block list and disk pack serial number have been destroyed by non-Digital software. Formatting continues, assuming no factory-detected bad blocks. 4. Error Messages (f~rmatting cannot be done) Meaning Message FATAL I/O ERROR If this message appears immediately, it indicates that the OS/8 bad block lists contain physical I/O errors. The pack should not be used further under OS/8. If this message appears after attempting to write new OS/8 bad block lists, it indicates that an I/O error occurred. The most common cause will be a write-locked drive. (continued on next page) 35 Table 10 (Cont.) RLFRMT Formatter Messages 4. Error Message (formatting cannot be done) Message (Cont.) Meaning CANNOT FORMAT DISK All error messages end with this one, to indicate that the formatting operation has failed. This message is always followed by "DRIVE?" to allow formatting another pack. OVER 15 BAD BLOCKS ON ONE DEVICE The new OS/8 bad block lists to be written contain more than the maximum number of bad blocks supported under OS/8. OVER 63 NEWLY-FOUND BAD BLOCKS Indicates RLOI hardware problem detected during read-check of disk or a pack with more than 63 bad blocks. RLOI diagnostics should be run and the drive and/or controller fixed before attempting to format disk packs. 5.5 System Building The following procedure is used for building a system. 1. Format the disk pack as described in Section 5.4.1. 2. Run BUILD from any device. BUILD is the system generation program for OS/8 (see the OS/8 Handbook for a detailed description of BUILD) . 3. Load RLSY.BN, RLO.BN, RLI.BN, RL2.BN, RL3.BN, or RLC.BN as desired (see Table 9 for names of devices in each group) . For example, a complete system for two disk drives would include SYS, RLOB, RLOC, RLlA, RLlB, and RLIC. A partial system to support all four drives could include SYS, RLOA, RLOB, RLlA, RLIB, RL2A, RL2B, RL3A, and RL3B. 4. Issue the BOOT(strap) command. This will build an RLOI system on RLOA, and start it. It then asks a question as to whether a new (zero) directory should be written on the new device. Answer yes to place a zero directory on the device. RUN all programs with the RUN command until moved to the RLOI disk pack. 36 APPENDIX A RX02 BOOTSTRAP PROGRAM PAL8-VlOA NO DATE 7301 7326 7327 7330 7350 7346 6751 6752 6753 6754 6755 AC1=CLL CLA lAC AC2=CLL CtA CML RTL AC6=CLL CLA CML lAC RTL IRX02'S MUST RUN ON AN OMNI-BUS !I AC4000=CLL CLA CML RAR AC3777=CLL CLA CMA RAR AC7775=CLL CLA CMA RTL I I DEVICE lOT SYMBOLIC EQUATES I LCD=6751 ILOAD COMMAND XDR=6752 ITRANSFER DATA STR=6753 ISKIP IF READY TO TRANSFER SER=6754 ISKIP ON ERROR SDN~6755 ISKIP ON DONE I 0020 00020 00021 00022 00023 00024 00025 00026 00027 00030 00031 OOon 1061 1046 0060 3061 7327 1061 6751 7301 4053 4053 7004 00033 00034 6755 5054 00035 00036 00037 00U4U 00041 00042 00043 00044 00045 00046 6754 7450 5020 1061 6751 1061 0046 1032 3060 0360 00047 00050 00051 00052 4053 3002 2050 5047 I I *20 I READ, TAD UNIT ITRY NEXT COMBINATION OF DENSITY AND UNIT TAD CON360 IADDING IN 360 AND CON420 IKEEPING ONLY 420 BITS DCA UNIT ICYCLES 400,420,0,20,400"""" AC6 ICOMMAND TO READ DISK TAD UNIT IUNIT AND DENSITY LCD ICOMMA~D TO CONTROLLER AC1 ITO SET SECTOR AND TRACK TO 1 JMS ISECTOR TO CONTROLLER, LEAVES AC ALONE LOAD JMS LOAD lAND TRACK ILEAVING A 2 IN AC~ SERVES AS LITERAL LITRAL, 7004 I I FOLLOWING IS PART OF WAIT LOOP, SAME SECONDARY BOOTS, OLD PRIMARY BOOT I START, SDN IHAS DONE COME UP~ CODE STARTS HEREI LOAD+l INO, GO CHECK FOR READY TO TRANSFER JMP I I NOW, DONE OR ERROR I SER ISKIP ON ~N ERROR, TRY ANOTHER DENSITY ETC. INASTY, AC-2 FOR ABOUT TO DO SILO, 0 ON START-UP SNA ISTART-UP, GO SET UP UNIT, THEN READ TO SILO JMP READ lAC ALREADY 2, PUT IN UNIT, DENSITY TAD UNIT LCD ITO EMPTY THE SILO TAD UNIT ISET UP LOC 60 FOR OLD SECONDARY BOOT AND CON360 IKEEPING ONLY DENSITY BIT TAD LITRAL IADDING IN 7004, BECAUSE THAT'S WHAT SYS WANTS DCA RX1SAV IOLD SECONDARY BOOT MOVES IT TO HANPLER CON360, 360 ILITERAL; EXECUTES IN LINE AS A NO-OP /FALLS THRU TO NEXT PAGE OF LISTING I I I I FOLLOWING CODE SAME AS OLD PRIMARY BOOT I JMS LOAD IGRAB NEXT ITEM FRO" SILO ITRADITION; SECONDARY BOOT STARTS LOADING AT 2 I DCA 2 ISZ 50 IINCREMENT LOAD ADDRESS JMP 47 IGO BACK FOR ANOTHER I I SECONDARY BOOT LOADS OVER PRIMARY BOOT UNIT LOCATION 47 IS LOADED, I THEN CONTROL PASSES TO SECONDARY BOOT I A-l RX02 BOOTSTRAP PROGRAM 00053 00054 00055 00056 00057 0000 6753 5033 6752 5453 LOAD, I I I I I 00060 00061 0420 0020 o STR JMP XDR JMP START LOAD ISUBROUTINE TO GIVE AND TAKE DATA FROM CONTROLLER lIS HE READY TO TALK TO US? INO, IS HE PERHAPS DONE WITH SILO, OR IN ERROR? IYES, DATA IN OR OUT;IF DATA TO CONTROLLER, AC UNCHANGED INO MAGIC, JUST EXIT FROM SUBROUTINE 60 GOES TO OLD SECONDARY BOOT 61 HAS DENSITY AND UNIT THAT BOOTED SUCCESSFULLY CON420, RXISAV, 420 UNIT, 20 IUSE IT TO HOLD 420 LITERAL TO START OUT IUNIT 20+7004 TO GO TO SYS HANDLER I<DENSITy 400>+<UNIT 20> THAT BOOTED OK ft ft I $ A-2 ft APPENDIX B RLOI BOOTSTRAP PROGRAM AC0001=CLA lAC AC0003=CLA CLL CML lAC RAL AC0006=CLA CLL CML lAC RTL AC2000=CLA CLL CML RTR 00001 00002 00003 00004 6600 7201 4027 1004 BOOT, 00005 4027 JMS IO 00006 00007 00010 00011 00012 00013 00014 6615 7002 7012 6615 0025 7004 6603 RRSI BSW RTR RRSI AND C377 RAL RLCA 00015 00016 00017 00020 00021 00022 00023 00024 7325 4027 7332 6605 1026 6607 7327 4027 00025 00026 0377 7600 00027 00030 00031 0000 6604 6601 00032 00033 00034 00035 5031 6617 5427 5001 /CLEAR CONTROLLER REGISTERS /CLEAR DRIVE REGISTERS RLDC ACOOOI JMS IO TAD /AC=1004 (BYTE MODE READ HEADER /FUNCTION). NOTE THAT THIS WORD /MUST BE AT LOC 00041 /READ NEXT HEADER IN ORDER TO /FIND OUT CURRENT CYLINDER /READ HEADER BYTE #1 /GET LSB OF CYLINDER /READ HEADER BYTE #2 /CONSTRUCT CYLINDER ADDRESS fUSE IT AS DIFFERENCE WORD TO /SEEK TO CYLINDER 0, SURFACE 0 /AC=SEEK FUNCTION /SEEK TO TRACK 0 /AC=SECTOR 20 (OS8 BLOCK 0) /LOAD SECTOR ADDRESS AC0003 Jl-1S IO AC2000 RLSA TAD C7600 RLWC /LOAD WORD COUNT FOR 1 PAGE AC0006 /READ FUNCTION JMS IO /READ SECONDARY BOOTSTRAP /READING IN SECONDARY BOOTSTRAP PREVENTS "IO" FROM /RETURNING. CONTROL CONTINUES IN SECONDARY BOOTSTRAP. C377, C7600, 377 7600 /SUBROUTINE TO DO I/O TO DISK IO, 0 /EXECUTE THE FUNCTION RLCB RLSD /WAIT UNTIL DONE /NOTE: THIS WORD AND NEXT /ONE MUST BE LOCATED HERE /IN ORDER TO MATCH UP WITH /SIMILAR INSTRUCTIONS CON/TAINED IN THE SECONDARY /BOOTSTRAP. JMP .-1 RLSE JMP I IO /NO ERROR; RETURN /ERROR: TRY AGAIN JMP BOOT B-1 INDEX ABSLDR, 15 Bad-block mapping, on RLOl, 22 BASIC, patch for BRTS, 4 BATCH, use with RLOl, 23 BOOT program,S, 32 Bootstraps, for RLOl, 6 for RX02, 5 BUILD program,S, 37 CDF instruction, use with extended memory, 13 CIF instruction, use with extended memory, 13 Command registers, RLOl, 26, 27 Core Control Block, altering with SAVECB, 17 use with FUTIL, 5 Data space, RLOl, 28 Device names, RLOl, 23 RX02, 18 Disk format, RLOl, 25, 33 Distribution media, 3 Extended mode register, 14 FIELD pseudo-operator, use with extended memory, 13 FORTRAN, patch for FRTS, 4 FUTIL, 5 Hardware disk address, RLOl", 28 Instruction set, RLOl, 27 lOT instructions, use with KT8A, 4 KT8A, 7-18 Loading instructions, RLOl, 31 LXM instruction, 14 Memory address register, RLOl, 25 MEMORY command, 12 Monitor head, moving with PIP, 4 ODT, use with extended memory, 9-11 PAL8, use with extended memory, 12-15 Patches, for BRTS, 4 for FRTS, 4 PIP, 4 RESORC, 3 Restrictions on extended memory, for ABSLDR, 15 for MEMORY, 12 for Monitor, 8 for START, 9 RL8A controller format, 25-27 RLFRMT, 33 messages, 34-37 RLOI disk, 22-37 bad-block mapping, 22 bootstrapping, 6, 32 building a system on, 37 command registers, 26-27 data space, 28 Index-l INDEX (Cont.) RLOl disk (Cont.), devices A, B, and C, 23 disk format, 25, 33 handlers, 30 hardware disk addresses, 28 instruction set, 27 loading instructions, 31 memory address register, 25 RL8A controller, 25-27 RLFRMT, 33 ROM bootstrap, 32 sector address register, 26 word-count register, 26 ROM bootstrap, for RL01, 32 RXOl diskette, compatibility with RX02, 19 formatting with RXCOPY, 22 interleave scheme, 20 RX02 diskette, device names, 18 formatting with RXCOPY, 19, 22 interleave scheme for dl.1aldensity, 21 SAVE command, use with extended memory, 8-9 SAVECB program, 17 Sector address register, 26 START command, restrictions on use, 9 VXAO device, 16 Word-count register, 26 Index-2 OS/8 Device Extensions User's Guide AA-D319A-TA READER'S COMMENTS NOTE: This form is for document comments only. DIGITAL will use comments submitted on this form at the company's discretion. If you require a written reply and are eligible to receive one under Software Performance Report (SPR) service, submit your comments on an SPR form. Did you find this manual understandable, usable, and well-organized? Please make suggestions for imp~ovement. · ~ .~ m c o o Did you find errors in this manual? page number. If so, specify the error and the Please indicate the type of reader that you most nearly represent. [] Assembly language programmer [] Higher-level language programmer [] Occasional programmer (experienced) [] User with little programming experience [] Student programmer [] Other (please specify)--------------------------------------- Name Date _________________________ Organization ________________________________________________________________ Street ______________________________________________________________________ City____________ ~ ______________ State ______________ Zip Code ______________ or Country - - Do Not Tear - Fold Here and Tape - - - - - - - - - - - I I - -- -I No Posta~le Neeessarv if Mai led in the United States II -_ .. -_ .. -_ .. -_ .. -_ .. -_ .. -_ .. -_ .. -_ .. -_ .. --"I BUSINESS REPLY MAIL FIRST CLASS PERMIT NO.33 MAYNARD MASS. POSTAGE WILL BE PAID BY ADDRESSEE , RT/C SOFTWARE PUBLICATIONS ML 5-5/E45 DIGITAL EQUIPMENT CORPORATION 146 MAIN STREET , MAYNARD, MASSACHUSETTS 01754 --"I - - - - Do Not Tear - Fold Here - - - - - - - - - - - - - - - - - - - - .- -I , 1
Home
Privacy and Data
Site structure and layout ©2025 Majenko Technologies