.SUBTITLE ^^DTBOOT\\ .SPACING 1 ^^PROGRAMMING SPECIFICATIONS\\ .BLANK 5 .CENTER ^^DTBOOT\\ .BLANK 1 .CENTER ^^PDP-10 DECTAPE BOOTSTRAP\\ .BLANK 15 .LEFT MARGIN 20 .NOFILL .NOJUSTIFY ^DATE:##10-^MAR-71 ^FILE:##^^DTBOOT.RNO\\ ^EDITION:##2 .BLANK 10 .FILL .JUSTIFY .LEFT MARGIN 8 .RIGHT MARGIN 55 ^THIS DOCUMENT DESCRIBES THE SOFTWARE AS OF ^VERSION#2. .BLANK 1 ^THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY ^DIGITAL ^EQUIPMENT ^CORPORATION. .BLANK 1 ^ACTUAL DISTRIBUTION OF THE SOFTWARE DESCRIBED IN THIS SPECIFICATION WILL BE SUBJECT TO TERMS AND CONDITIONS TO BE ANNOUNCED AT SOME FUTURE DATE BY ^DIGITAL ^EQUIPMENT ^CORPORATION. .LEFT MARGIN 0 .RIGHT MARGIN 60 .PAGE .FIGURE 15 .CENTER ^^TABLE OF CONTENTS\\ .BLANK 2 .LEFT MARGIN 10 .NOFILL .NOJUSTIFY .TAB STOPS 16,55 .INDENT 43 ^PAGE 1.0 ^PURPOSE OF ^^DTBOOT\\ 3 2.0 ^COMMANDS TO ^^DTBOOT\\ 3 3.0 ^TAPE ^FORMAT 5 4.0 ^COMPARISON WITH ^^TENDMP\\ 6 5.0 ^COMPATIBILITY WITH ^^TOPS10\\ ^MONITOR 6 6.0 ^ASSEMBLY AND ^^READIN\\ OF ^^DTBOOT\\ 7 .BLANK 1 ^APPENDIX - ^^DTBOOT\\ ^SUMMARY FOR ^OPERATORS 8 .FILL .JUSTIFY .LEFT MARGIN 0 .PAGE 1.0##^^PURPOSE OF DTBOOT\\ .BLANK 1 ^^DTBOOT\\ IS A BOOTSTRAP PROGRAM INTENDED TO TRANSFER PROGRAMS BETWEEN ^^PDP-10\\ CORE STORAGE AND STANDARD FORMAT ^^PDP-10 DEC\\TAPE FILES, AND TO PERFORM OTHER UTILITY FUNCTIONS WITH SUCH ^D^E^CTAPES. .BLANK 1 ^^DTBOOT\\ REQUIRES A ^^PDP-10\\ CENTRAL PROCESSOR AND CORE MEMORY, THE ^^PDP-10\\'S CONSOLE TYPEWRITER, A ^^TD10 DEC\\TAPE CONTROL, AND AT LEAST ONE ^^DEC\\TAPE TRANSPORT. ^^DTBOOT\\ CAN BE ASSEMBLED FOR ANY MEMORY SIZE. .BLANK 1 ^^DTBOOT\\ IS PRIMARILY INTENDED TO LOAD AND RUN EXECUTIVE MODE PROGRAMS (MONITORS, DIAGNOSTICS) FROM ^^DEC\\TAPE. ^THE FOLLOWING FUNCTIONS ARE AVAILABLE: .BLANK 1 .LEFT MARGIN 9 .INDENT -4 1.##^CLEAR CORE, LOAD A PROGRAM, AND START IT. .BLANK 1 .INDENT -4 2.##^LOAD A PROGRAM WITHOUT CLEARING OTHER CORE AREAS. .BLANK 1 .INDENT -4 3.##^CLEAR CORE, LOAD A PROGRAM, BUT DO NOT START IT. .BLANK 1 .INDENT -4 4.##^TYPE OUT A SHORT FORM OF THE ^^DEC\\TAPE'S DIRECTORY. .BLANK 1 .INDENT -4 5.##^DELETE A FILE FROM THE ^^DEC\\TAPE. .BLANK 1 .INDENT -4 6.##^INITIALIZE AN EMPTY TAPE DIRECTORY, EITHER RETAINING ITS EXISTING TAPE IDENTIFIER WORD OR SUPPLYING A NEW ONE. .BLANK 1 .INDENT -4 6.##^DECLARE A STARTING ADDRESS TO BE ASSOCIATED WITH A PROGRAM TO BE DUMPED OR STARTED. .BLANK 1 .INDENT -4 8.##^DUMP CORE ONTO A ^^DEC\\TAPE FILE. .BLANK 1 .INDENT -4 9.##^GO TO THE CURRENT STARTING ADDRESS. .LEFT MARGIN 0 .BLANK 1 .LEFT MARGIN 0 ^A SIMPLE COMMAND STRING, WITH HANDY DEFAULTS, IS TYPED BY THE OPERATOR TO CONTROL ^^DTBOOT\\. .BLANK 3 2.0##^^COMMANDS TO DTBOOT\\ .BLANK 1 ^THE COMMANDS FOR ^^DTBOOT\\ ARE BEST DESCRIBED BY SHOWING THE LONGEST FORM AND THEN SHOWING THE SIMPLIFICATIONS PROVIDED. .BLANK 1 ^THE FULL COMMAND TO LOAD THE FILE ^^TOPS10.SAV\\ FROM ^^DEC\\TAPE UNIT ^^DTA3\\ IS: .BLANK 1 .INDENT 10 ^^DTA3:TOPS10.SAV/L\\ .BLANK 1 ^THE COMMAND TERMINATOR MAY BE CARRIAGE RETURN, OR ANY OTHER CONTROL CHARACTER OR ^^ALTMODE.\\ .BLANK 1 ^THE UNIT SPECIFIER ^^DTA3:\\ IS ACTUALLY EXAMINED ONLY FOR NUMERIC CHARACTERS, SO IT CAN BE ABBREVIATED TO SIMPLY 3:. ^IF A SERIES OF COMMANDS IS PERFORMED ADDRESSING THE SAME UNIT, THE UNIT SPECIFIER CAN BE OMITTED ON SUCCESSIVE COMMANDS (UNLESS AN ERROR HAS OCCURRED, CAUSING A ^^BELL\\ TYPEOUT). .BLANK 1 ^THE FILE EXTENSION IS ASSUMED TO BE .^^SAV\\ UNLESS SPECIFIED OTHERWISE, AND CAN THUS BE OMITTED IN THE USUAL CASE. ^A BLANK EXTENSION CAN BE SPECIFIED BY TYPING JUST THE PERIOD; E.G., 3:^^NAME./L\\. .BLANK 1 ^THE FILENAME CAN BE OMITTED, AND WILL THEN BE DEFAULTED ACCORDING TO THE FOLLOWING RULES: .BLANK 1 .LEFT MARGIN 9 .INDENT -4 1.##^FOR THE TAPE-WRITING COMMAND, THE FILE NAME ^^CRASH\\ IS ASSUMED. .BLANK 1 .INDENT -4 2.##^FOR TAPE READING, IF EXACTLY ONE FILE EXISTS ON THE TAPE WITH THE EXTENSION .^S^A^V, THAT FILE'S NAME IS ASSUMED. ^OTHERWISE, THE FILE NAME ^^SYSTEM\\ IS ASSUMED. .LEFT MARGIN 0 .BLANK 1 ^THE PARTICULAR ACTION TO BE PERFORMED BY ^^DTBOOT\\ IS SELECTED BY A SWITCH, WHICH IS AN OCTAL NUMBER OR SINGLE LETTER THAT FOLLOWS A SLASH (/) AT THE END OF THE COMMAND. ^IN THE FIRST EXAMPLE ABOVE, THE ^L IS THE COMMAND SWITCH, MEANING ^LOAD THE PROGRAM INTO CORE FROM TAPE. .BLANK 1 ^THE MOST COMMON FUNCTION OF ^^DTBOOT\\ IS TO LOAD AND START A PROGRAM (E.G., THE TIMESHARING SYSTEM), AND THIS ACTION IS THE DEFAULT IF NO SWITCH IS TYPED AT ALL. .BLANK 1 ^THE NON-BLANK SWITCHES, AND THE ACTIONS THEY CAUSE, ARE AS FOLLOWS: .BLANK 1 .LEFT MARGIN 10 .INDENT -5 /^L##^CLEAR CORE, LOAD THE PROGRAM FROM TAPE, AND SET THE STARTING ADDRESS FROM THE TAPE. .BLANK 1 .INDENT -5 /^M##^SAME AS /^L, BUT DO NOT CLEAR CORE FIRST, I.E., MERGE THE FILE INTO CORE. .BLANK 1 .INDENT -5 /N##(WHERE N IS AN OCTAL NUMBER) ^SET THE STARTING ADDRESS TO N. .BLANK 1 .INDENT -5 /^D##^DUMP CORE ON TAPE WITH THE CURRENT STARTING ADDRESS. .BLANK 1 .INDENT -5 /^F##^TYPE THE FILE DIRECTORY. .BLANK 1 .INDENT -5 /^K##^KILL (DELETE) THE SPECIFIED FILE FROM THE TAPE. .BLANK 1 .INDENT -5 /^Z##^ZERO THE DIRECTORY OF THE TAPE. ^TO SET THE TAPE IDENTIFIER TO ^^TAPE99\\, FOR INSTANCE, TYPE 3:_^^^TAPE99/Z\\. ^THE UPARROW PRECEDES THE TAPE IDENTIFIER, AS IN ^^FILEX\\. .BLANK 1 .LEFT MARGIN 0 ^OBVIOUSLY, NOT ALL OF THESE COMMANDS REQUIRE ALL ARGUMENTS. ^FOR EXAMPLE, A FILENAME WOULD BE IGNORED WITH THE /^Z COMMAND. .BLANK 3 3.0##^^TAPE FORMAT .BLANK 1 ^^DEC\\TAPES READ AND WRITTEN BY ^^DTBOOT\\ ARE ENTIRELY COMPATIBLE WITH THE ^^TOPS\\10 MONITOR SYSTEM, AND ARE FULLY DESCRIBED IN THE ^^TOPS\\10 DOCUMENTATION. ^THIS SECTION IS PROVIDED AS A SUMMARY OF THAT MATERIAL. .BLANK 1 ^^DEC\\TAPE DIRECTORY INFORMATION OCCUPIES BLOCK 144 (OCTAL) OF THE TAPE. ^WORDS 0 THROUGH 122 CONTAIN 1105 BYTES DESCRIBING THE ALLOCATION OF BLOCKS 1 THROUGH 1101 OF THE TAPE. ^BLOCKS 1, 2, AND 144 ARE ALLOCATED AS OVERHEAD, BLOCKS 1102 THROUGH 1105 ARE ALLOCATED AS NON-EXISTENT. ^THE REMAINING BLOCKS CONTAIN FILE INFORMATION (OR ARE FREE). ^WORDS 123 THROUGH 150 OF THE DIRECTORY CONTAIN FILENAMES. ^WORDS 151 THROUGH 176 CONTAIN THE CORRESPONDING FILE EXTENSIONS AND DATES. (^DATE FIELDS OF FILES WRITTEN BY ^^DTBOOT\\ ARE ZERO.) ^WORD 177 CONTAINS THE (OPTIONAL) TAPE IDENTIFIER. .BLANK 1 ^IN EACH DATA BLOCK, WORD ZERO IS THE LINK WORD, ALLOCATED AS FOLLOWS: BITS 00-17 ARE THE LINK TO THE NEXT DATA BLOCK OF THE FILE (ZERO DENOTING NO NEXT BLOCK); BITS 18-27 CONTAIN THE BLOCK NUMBER OF THE FIRST DATA BLOCK OF THIS FILE, AND BITS 29-35 CONTAIN A WORD COUNT OF THE DATA WORDS IN THE REMAINDER OF THIS BLOCK. .BLANK 1 ^A SAVED CORE IMAGE, AS WRITTEN BY ^^DTBOOT\\ (OR ^^TOPS\\10), CONSISTS OF BLOCKS OF DATA PRECEDED BY A POINTER WORD (MINUS-COUNT IN THE LEFT HALF, ADDRESS-1 IN THE RIGHT HALF). ^A POSITIVE WORD IN THE PLACE OF A POINTER WORD SIGNIFIES THE END OF THE CORE-IMAGE. ^THE RIGHT HALF OF THIS WORD IS THE STARTING ADDRESS OF THE SAVED PROGRAM. ^THE LEFT HALF USUALLY CONTAINS THE MACHINE INSTRUCTION ^^JRST\\ WHICH IS, IN FACT, A POSITIVE NUMBER. ^THIS IS THE METHOD ^^DTBOOT\\ USES. .BLANK 1 ^BLOCKS OF A GIVEN FILE MAY BE IN ANY ORDER ON THE TAPE. ^WHEN WRITTEN BY ^^DTBOOT\\ (AND THE ^^SAVE\\ COMMAND OF ^^TOPS10\\), THE ALLOCATION IS AS FOLLOWS: ^THE LOWEST NUMBERED BLOCK AVAILABLE FOR USE IS ALLOCATED FIRST. (^THIS WAS A REQUIREMENT OF ^^TENDMP,\\ BUT IS OPTIONAL FOR ^^DTBOOT\\.) .BLANK 1 ^SUCCEEDING BLOCKS ARE ALLOCATED WITH AT LEAST ONE INTERVENING BLOCK (WHETHER FREE OR OTHERWISE USED) BETWEEN SUCCESSIVE BLOCKS OF A FILE. ^IF REQUIRED, THE SAME PROCEDURE IS USED TO ALLOCATE BLOCKS IN THE REVERSE DIRECTION, STARTING AT BLOCK 1101, SHOULD THE FILE BE LONG ENOUGH TO REACH THAT END OF THE TAPE, AND ANY SKIPPED BLOCKS BECOME USED ON THE REVERSE PASS. ^^DTBOOT\\ IS CAPABLE OF EFFICIENTLY READING AND WRITING FILES ALLOCATED IN THIS MANNER. .BLANK 3 4.0##^^COMPARISON WITH TENDMP\\ .BLANK 1 ^IT IS INTENDED THAT ^^DTBOOT\\ SUPERSEDE ^^TENDMP\\. ^THE ONLY ADVANTAGES ^^TENDMP\\ HOLDS OVER ^^DTBOOT\\ ARE THAT ^^TENDMP\\ IS SMALLER THAN ^^DTBOOT\\, AND THAT ^^TENDMP\\ MAY BE CALLED AS A SUBROUTINE, WITHOUT TYPED COMMANDS. ^^DTBOOT\\ LACKS THIS FACILITY. ^^TENDMP\\ WILL REMAIN AVAILABLE FOR THE RARE CASES WHERE THESE ADVANTAGES REQUIRE ITS USE. .BLANK 1 ^THE ADVANTAGES ^^DTBOOT\\ HOLDS OVER ^^TENDMP\\ INCLUDE THE FOLLOWING: .BLANK 1 .LEFT MARGIN 9 .INDENT -4 1.##^FIRST AND MOST IMPORTANTLY, THE ABILITY TO READ .^^SAV\\ FILES WRITTEN BY ^^TOPS\\10 WHICH ARE LONG ENOUGH TO "TURN AROUND", I.E., WHICH HAVE ALLOCATION IN BOTH FORWARD AND BACKWARD DIRECTION. .BLANK 1 .INDENT -4 2.##^WRITING FILES WHICH CAN BE READ EFFICIENTLY BY ^^TOPS10\\, WITHOUT FREQUENT TAPE ROCKING DUE TO ALLOCATION OF CONSECUTIVE BLOCKS BY ^^TENDMP\\. (^IN FACT, ^^DTBOOT\\ HAS THE SAME DIFFICULTY READING ^^TENDMP\\ FILES AS ^^TOPS10\\ DOES.) .BLANK 1 .INDENT -4 3.##^MORE COMPLETE ^^DEC\\TAPE CONTROL HANDLING; THE ABILITY TO TURN AROUND FROM END-ZONE FLAGS. .BLANK 1 .INDENT -4 4.##^MORE NEARLY STANDARD COMMAND STRINGS. .BLANK 1 .INDENT -4 5.##^USEFUL DEFAULTS. .BLANK 1 .INDENT -4 6.##^ABILITY TO SET TAPE-IDENTIFIER WORDS. .BLANK 3 .LEFT MARGIN 0 5.0##^^COMPATIBILITY WITH TOPS10 MONITOR\\ .BLANK 1 ^THERE ARE NO KNOWN INCOMPATIBILITIES WITH ^^TOPS10\\, ASIDE FROM THE FAILURE OF ^^DTBOOT\\ TO PROVIDE DATES ON OUTPUT FILES. .BLANK 3 6.0##^^ASSEMBLY AND READIN OF DTBOOT\\ .BLANK 1 ^AS WITH ^^TENDMP\\ AND ^^BOOTS, DTBOOT\\ IS ASSEMBLED BY ^^MACRO-10\\ FROM A SINGLE SOURCE FILE ONTO A PAPER TAPE. .BLANK 1 ^^DTBOOT\\ RESIDES AT THE TOP OF USER CORE, AND THUS MUST BE ASSEMBLED FOR THE PROPER MEMORY SIZE. ^THE DEFAULT IS FOR A 64^K SYSTEM. ^THE PARAMETER ^^CORE\\ CAN BE SET TO THE NUMBER OF WORDS OF MEMORY TO PRODUCE ANOTHER SIZE OF ^^DTBOOT\\. .BLANK 1 ^TO ASSEMBLE 64^K ^^DTBOOT\\, TYPE THE ^^MACRO\\ COMMAND STRING: .BLANK 1 .INDENT 10 *^^PTP:__\\DEV:^^DTBOOT\\ .BLANK 1 WHERE DEV IS THE DEVICE CONTAINING THE SOURCE FILE OF ^^DTBOOT\\. .BLANK 1 ^TO ASSEMBLE 48^K ^^DTBOOT\\, FOR EXAMPLE, TYPE: .NOFILL .NOJUSTIFY .BLANK 1 .LEFT MARGIN 10 *^^PTP:__TTY:,\\DEV:^^DTBOOT\\ ^^CORE\\=140000#####;^^ASSEMBLE FOR 48K _^Z _^Z\\ .LEFT MARGIN 0 .BLANK 1 .FILL .JUSTIFY ^^DTBOOT\\ IS IN ^^RIM10B\\ FORMAT WHEN ON PAPER TAPE, AND IS LOADED VIA ^^READIN\\ AT THE ^^PDP-10\\ CONSOLE. .BLANK 1 ^THE STARTING ADDRESS OF ^^DTBOOT\\ IS 1000 OCTAL LESS THAN ^^CORE\\. ^THUS, 64^K ^^DTBOOT\\ STARTS AT 177000. .BLANK 1 ^THERE ARE THREE BLOCKS (0, 1, 2) AVAILABLE FOR A BOOTSTRAP AT THE BEGINNING OF A ^^PDP-10\\ ^^DEC\\TAPE. ^THESE 600 OCTAL WORDS, MINUS A READIN POINTER AND A START WORD, LEAVE 576 OCTAL FOR THE BOOTSTRAP. ^AT PRESENT (VERSION 2 OF ^^DTBOOT\\), ^^DTBOOT\\ IS 575 WORDS LONG, AND IS INTENDED TO BE STORED ON ^^DEC\\TAPE IN THIS AREA. ^AS YET, THE MEANS FOR WRITING ^^DTBOOT\\ ONTO A ^^DEC\\TAPE'S BOOTSTRAP AREA ARE NOT YET AVAILABLE. .PAGE ^^APPENDIX##DTBOOT SUMMARY FOR OPERATORS\\ .BLANK 1 ^^DTBOOT\\ IS LOADED FROM PAPER TAPE VIA THE ^^READIN\\ SWITCH ON THE ^^PDP-10\\. ^^DTBOOT\\ STARTS AT 77000(32^K), 137000(48^K), 177000(64^K), 237000(80^K), ETC. .BLANK 1 ^^COMMANDS\\ .BLANK 1 .INDENT 10 ^^DTA3\\:NAME.EXT/^L OR 3:NAME.EXT/^L .BLANK 1 ^^SWITCHES\\ .BLANK 1 .NOFILL .NOJUSTIFY .TAB STOPS 10 NONE = LOAD AND START PROGRAM /^L = LOAD, SET STARTING ADDRESS, DO ^^NOT\\ START /^M = MERGE (LOAD WITHOUT CLEARING CORE FIRST) /NUMBER = SET STARTING ADDRESS TO NUMBER (OCTAL) /^D = DUMP CORE AND STARTING ADDRESS ON TAPE /^F = TYPE FILE DIRECTORY /^K = KILL (DELETE) FILE /^G = GO TO STARTING ADDRESS /^Z = ZERO THE TAPE DIRECTORY (3:TAPEID/^Z SETS ^^ID\\) .BLANK 1 ^^DEFAULTS\\ .BLANK 1 DEV:, INITIALLY ^^DTA0\\:. ^OTHERWISE, SAME AS ON PREVIOUS COMMAND (UNLESS THE BELL WAS RUNG). .BLANK 1 NAME=^^CRASH\\ FOR /^D. ^OTHERWISE, IF ONLY ONE .^^SAV\\ FILE ON TAPE, USE ITS NAME. ^IF MORE THAN ONE .^^SAV\\ FILE, USE ^^SYSTEM\\, UNLESS SPECIFIED. .BLANK 1 EXT = .^^SAV\\ UNLESS SPECIFIED. .BLANK 1 ^^ERRORS\\ .BLANK 1 ^THE BELL WILL BE RUNG IF ANY ERROR OCCURS. ^POSSIBLE ERRORS ARE: TAPE UNIT NOT IN REMOTE, NOT EXACTLY ONE UNIT DIALED AS DEV:, PARITY ERROR ON TAPE, REQUESTED FILE NOT IN DIRECTORY (TRY /^F), OR TAPE FILLED UP WHILE WRITING OUT (/^D). .BREAK