1 /14 OS/8 RESOURCES PROGRAM
11 /COPYRIGHT (C) 1974,1975,1977 BY DIGITAL EQUIPMENT CORPORATION
22 /THE INFORMATION IN THIS DOCUMENT IS SUBJECT TO CHANGE WITHOUT NOTICE
23 /AND SHOULD NOT BE CONSTRUED AS A COMMITMENT BY DIGITAL EQUIPMENT
24 /CORPORATION. DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY
25 /FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUMENT.
27 /THE SOFTWARE DESCRIBED IN THIS DOCUMENT IS FURNISHED TO THE PURCHASER
28 /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED
29 /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH
30 /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL.
32 /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE
33 /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY
53 / .SAVE SYS RESORC;12000=6003
58 /2000-2377 DEVICE NAME AND LENGTH TABLE
59 /2400-2777 OUTPUT BUFFER (DOESN'T OVERLAP BETA REGISTER)
60 /3000-3377 INPUT HANDLER
61 /3400-3777 OUTPUT HANDLER
62 /4000-7377 INPUT DIRECTORY
63 /4000-7577 INPUT HANDLERS (LOSE 2ND HALF OF LAST ONE)
68 /11400-11777 INPUT KBM
70 /15600-16177 INPUT BLOCK 0
71 /16200-17577 INPUT USR
82 DEVNUM=23 /DEVICE NUMBER OF HANDLER
84 PDNT=25 /PTS TO DEVICE NAME TABLE
86 PUDNT=27 /PTS TO USER DEVICE NAME TABLE
87 PDHIT=30 /PTS TO DEVICE HANDLER INFO TABLE
88 PDCWT=31 /PTS TO DEVICE CONTROL WORD TABLE
94 PDHRT=37 /POINTS TO DEVICE HANDLER RESIDENCY TABLE
101 /FIXES SINCE FIELD TEST RELEASE:
103 /1. 'INPUT ERROR' MESSAGE NO LONGER GARBLED
104 /2. '%NON SYSTEM DEVICE' NEVER PRINTS HANDLERS
106 /FIXES FOR MAINTENANCE RELEASE (V3C):
108 /3. INCORPORATED PATCH SEQ NO 1 ALLOWS DISTINGUISHING BETWEEN
109 / HIGH AND LOW SPEED PTR'S AND ADDITIONAL CASSETTES
112 /4. FIXED LENGTHS OF DF32'S AND RF08'S [SUPERSEDES PATCH SEQ #2
115 /5. CHANGED VERSION NUMBER TO V3, UPDATED COPYRIGHT
116 /6. ADDED DUMP, LST, AND RX-- TO INTERNAL NAME TABLES
118 /7. ADDED DETAILS ABOUT DUMP AND FLOPPIES TO TABLES
122 /8. ADDED NAMES SLU AND LQP TO TABLES
123 /9. CAN DISTINGUISH LQP KIND OF LPTR
124 /10. FIXED BUG ABOUT DUMPING BUFFER FULL OF NULLS
125 /11. REMOVED LITTLE-USED 'OUT', 'DEV' FROM NAME TABLES
131 JMP NOCD /CHAIN ENTRY POINT
132 / JMS I (7700 /WE ASSUME THE USR IS IN CORE
133 / 10 /DON'T HAVE TO LOCK USR IN CORE IF JSW SET RIGHT
136 2331 /DEFAULT INPUT EXTENSION = 'SY'
138 JMS OPENO /OPEN OUTPUT FILE
141 DCA INPTR /POINT TO FIRST INPUT FILE
145 JMS TYPEV /OUTPUT VERSION #
150 JMS SPCASE /NO FIRST ARG MEANS USE SYS: IN SPECIAL SENSE
152 INLOOP, TAD I INPTR /GET INPUT FILE # AND LENGTH
154 JMP FINI /NO MORE INPUT
158 DCA DVNO /GET 4-BIT DEVICE #
161 AND (7760 /GET NEGATIVE OF FILE LENGTH
164 TAD I INPTR /GET STARTING BLOCK OF FILE
170 JMP NOFLST /DEVICE IS NOT FILE STRUCTURED
171 JMS OPENI /GET INPUT HANDLER
172 JMS DIRECT /ASCERTAIN DIRECTORY INFO
173 JMS HNDLRS /ASCERTAIN HANDLERS
177 JMS MONVER /ASCERTAIN MONITOR VERSION #
182 TEXT /%DEV IS NOT FILE STRUCTURED/
185 FINI, JMS CLOSEO /CLOSE OUTPUT FILE
188 JMP CD /COMMAND LINE ENDED WITH CR
189 CIF CDF 0 /COMMAND LINE ENDED WITH ALTMODE
190 JMP I (7605 /GO BACK TO MONITOR
192 /CURRENT PIP /Y FILES ARE 50 (DEC) = 62 (OCTAL) BLOCKS LONG
196 TAD (7757 /GET PTR INTO DEVICE CONTROL WORD TABLE
198 TAD I DCW /GET D.C.W.
220 /FAST GT 0 IF /L OR /E SWITCH SET
221 /EXTEN=1 IF /E SWITCH SET AND /L NOT SET
222 \fINPTR, 0 /POINTS TO INPUT FILE LIST
223 FILEN, 0 /INPUT FILE LENGTH (NEG IN BITS 0-7)
224 DCW, 0 /INPUT DEVICE CONTROL WORD
225 FILENO, 0 /INPUT FILE NUMBER IN INPUT LIST
226 SBLOCK, 0 /STARTING BLOCK # OF INPUT FILE
227 FLAG, 0 /NON-ZERO MEANS SPECIAL CASE OF NO FIRST ARG
230 ISZ FLAG /NOTE SPECIAL CASE
232 DCA I (7617 /FORCE FIRST INPUT TO BE SYS:
265 TPRINT, 0 /PRINT TO TELETYPE
293 JMP I TYPE /DON'T TYPE IF CONTROL/O FLAG SET
302 CTRLO, 0 /NON-ZERO MEANS CTRLO/O WAS STRUCK
361 \fCLOSEO, 0 /CLOSE OUTPUT FILE
362 TAD (232 /PUT ^Z IN BUFFER
365 DCA KNT /SEND 577 NULLS TO OUTPUT BUFFER
366 JMS PUTO /THIS GUARANTEES TO PURGE IT
372 L7601, 7601 /POINTER TO OUTPUT FILE NAME
373 OUTLEN, 0 /LENGTH OF OUTPUT FILE
374 HLT /SYSTEM ERROR, CANNOT OCCUR
391 1 /FETCH DEVICE HANDLER (POSSIBLY 2-PAGE)
392 OENTRY, 3401 /INTO PAGE 3400
393 HLT /SYSTEM ERROR CANNOT OCCUR
399 DCA I L7601 /DEFAULT OUTPUT NAME IS RE
404 DCA I (7604 / .LS IS DEFAULT OUTPUT EXTENSION
408 SBLKO, 7601 /POINTS TO OUTPUT FILE NAME
409 OLEN, 0 /COMPLEMENT OF ACTUAL OUTPUT FILE LENGTH
410 JMP DEVFUL /OUTPUT DEVICE FULL
420 \fDEFALT, TAD (3100 /SET TTY: AS DEFAULT OUTPUT DEVICE
425 1 /FETCH HANDLER BY NAME
427 DVN, 3100 /DEVICE TTY:
428 OENT, 3401 /INTO 3400
429 JMP NOTTY /NO TTY: ON SYS:
447 TAD (-10 /TRY DIGITS 0-7
499 CDF 10 /BUFFER FILLED
502 JMP DEVFUL /CAN'T WRITE ANYMORE
505 DCA OENTR /GET ON SAME PAGE
508 2400 /FIELD 0, LOC 2400
509 OBLOCK, 0 /OUTPUT BLOCK #
512 ISZ OBLOCK /POINT TO NEXT BLOCK
539 /PRINTS NAME FROM TABLE, ENTER WITH ENTRY # IN AC
556 SMA CLA /1 OR 2 PAGE?
595 TAD (-2 /CHANGE TO -4 TO TRY A-D
607 NAM, 0 /SPECIFIED NAME
630 \f/TRY0 SHOULD BE SPECIAL CASE TESTS
680 / JMP I COMB /TURN ON BIT 0 OF 1 WORD NAME
682 LIST1, TEXT /DTMTLTTDCSRKRFRX/
683 / ZBLOCK 1 /PATCH SPACE
698 TEXT /?OUTPUT DEV FULL/
702 TEXT /?OUTPUT DEV IS READ-ONLY/
705 TEXT /?TTY DOES NOT EXIST/
739 OPENI, 0 /FECTH INPUT HANDLER
740 TAD (3001 /INTO PAGES 3000, 3200
746 HLT /SYSTEM ERROR, CAN'T OCCUR
750 TEXT /FREE DEVICE SLOTS: /
754 TEXT /, FREE BLOCK SLOTS: /
762 JMP I DIRECT /NO DIRECTORY INFO FOR FILES
767 JMS DVALID /CHECK IF VALID DIRECTORY
770 JMP I DIRECT /NO DIRECT IN FAST MODE
781 DCA NENTRY /- NO. OF ENTRIES IN SEGMENT
783 DCA STBLK /STARTING BLOCK # OF FIRST FILE IN SEGMENT
785 DCA LINK /LINK TO NEXT SEGMENT
787 CLA /IGNORE FLAG WORD TO TENTATIVE FILE
789 DCA AIW /# OF ADDITIONAL INFO WORDS
794 JMP EMPTY /AN EMPTY ENTRY
799 DCA DIRPTR /POINT TO FILE LENGTH
800 JMS GETDIR /GET NEG OF NUMBER OF BLOCKS IN FILE
802 JMP NEXTF /A TENTATIVE FILE, IGNORE
813 NEXTF, ISZ DKNT /ANY MORE ENTRIES IN THIS SEGMENT?
820 TAD LINK /ASSUME LINKS ARE IN ORDER
823 STA /GO TO NEXT SEGMENT
829 USED, 0 /NO. OF BLOCKS USED
830 UNUSED, 0 /# OF UNUSED BLOCKS ON DEVICE
831 NFILES, 0 /# OF FILES
832 NMTS, 0 /# OF EMPTIES
833 NSEGS, 0 /# OF DIRECTORY SEGMENTS USED
839 NENTRY, 0 /- # OF ENTRIES IN SEGMENT
840 STBLK, 0 /STARTING BLOCK # OF FIRST FILE IN SEGMENT
841 LINK, 0 /LINK TO NEXT SEGMENT
842 AIW, 0 /# OF ADDITIOANAL INFORMATION WORDS
862 SLOTAB, ZBLOCK 10 /KEEPS TRACK OF USED SLOTS
877 JMP NOFLS /JUST # OF FREE BLOCKS UNLESS /E
934 TEXT / EXTRA INFO WDS/
936 \f/HNDGET GETS VALUE IN HANDLER FROM REL LOC IN AC
955 /THIS PRINTS A 4 CHAR NAME, ARG IN AC.
973 JMP I TEMP /BRANCH TO APPROPRIATE SUBROUTINE
977 /ENTER WITH BLOC POINTING TO HANDLER BLOCK IN CORE
979 /SRCH SEARCHES THE HANDLER FOR THE NEGATIVE
980 /OF THE NON-ZERO VALUE IN THE AC.
982 /IF FOUND, RETURN IS MADE WITH VALUE(WITHOUT MASK) IN AC
983 /IF NOT FOUND, AC IS 0 UPON RETURN
990 TAD (-230 /V3C MUST SEARCH 2 PAGES; TROUBLE IF TA8E IS IN LAST SLOT
1010 / **** NOTE: ALL HANDLERS SHOULD BE PADDED OUT TO FILL PAGE
1012 /BUILD SHOULD WRITE ZEROES IN 2ND PAGE OF ONE PAGE HANDLER
1013 \f/SPECIAL PURPOSE ROUTINES
1025 / IF HANDLER CONTAINS A 6021 IT IS A PT8E
1026 / OTHERWISE IT IS A LSPT
1039 / IF REL LOC 104 IS A 3203 IT IN 029 KIND
1040 / IF REL LOC 104 IS A 7735 IT IS AN 026 KIND
1041 / OTHERWISE IT IS AN UNKNOWN KIND
1045 TAD (-6652 /SEARCH FOR A 6652
1049 CLA IAC /LOOK AT REL LOC 1
1059 /IF HANDLER CONTAINS A 6652 IT'S AN L645
1060 /OTHERWISE, DEPENDS ON REL LOC 1
1061 / IF REL LOC 1 IS A 14, IT'S A LPSV
1062 / IF REL LOC 1 IS A 4, IT'S A LV8E
1063 / OTHERWISE IT'S UNKNOWN (POSSIBLY OLD LP08 OR LS8E KIND)
1079 CML RAL /TIMES 2 + LINK
1083 /FIGURE OUT KIND OF TD8E BY DEVICE CODE FOUND IN 67N1 INSTRUCTION
1110 \f/FIGURE OUT KIND OF TA8E BY DEVICE CODE FOUND IN 67N1 INSTRUCTION
1120 /LINK OFF MEANS PRINT LEADING SPACES
1121 /LINK ON MEANS DON'T PRINT LEADING SPACES OR ZEROS
1163 ZFLG, 0 /4000 MEANS PASSED LEADING ZEROES
1164 \f/PRINTS A 2-DIGIT OCTAL NUMBER WITH LEADING 0'S
1209 L40, 40 /CAN'T HURT TO CALL PR WITH A 0
1216 JMP SYSV /TEMP (ENTRY PT IS IN FIELD 1 7600
1241 TAD DTM /SCAN BACKWARDS FOR HANDLER VERSION # (LT 33)
1252 TAD I DTM /PRINT BAD VERSION # AS SPACE
1283 /CHECK FOR PS/8 AND COS
1297 DEVICE NULL /SHOULD BE IN NEXT TABLE
1302 ZBLOCK 10 /PATCH SPACE
1309 / ZBLOCK 2 /PATCH SPACE
1312 /INTERESTING NOTE: 'BAT', 'FOO2' AND 'RKC6' ALL HASH OUT TO 6601
1313 /** WANT TO CHANGE AIW PRINTER TO SAY 'NO' ADDITIONAL INFO WORDS
1326 \fTABASE, 4040;4040 /0
1334 KTD8, DEVICE TD8 /10
1335 KTA8, DEVICE TA8 /11
1347 \f/FORMAT OF SYSTEM HEAD FILE
1349 /REL BLK CONTENTS ABS BLK ON DEV
1351 /0 BOOTSTRAP & PAGE 0'S 0
1352 /1-4 KEYBOARD MONITOR 7-12
1354 /10-17 DEVICE HANDLERS 16-25
1356 /21-42 SCRATCH BLOCKS 27-50
1357 /43-45 COMMAND DECODER 51-53
1358 /46-47 SAVE,DATE 54-55
1359 /50 ERROR OVERLAY 56
1360 /51 CHAIN OVERLAY 57
1362 /56 RESERVED FOR EXPN 64
1364 /60 12K TD8E HANDLER 66
1366 \f/DIR DID NOT GET IN CORE ON /F?
1376 TAD I (4001 /GET STARTING BLOCK # OF FILES
1380 JMP NONSYS /FILES START AT BLOCK 7 OF DEVICE
1382 /CHECK TO SEE THAT DEVICE HAS SYSTEM ON IT
1386 TEXT /%NON SYSTEM DEVICE/
1390 TEXT /%NOT A SYSTEM HEAD/
1407 TAD (-400 /REMEMBER COS
1411 CLA /LINKS THOROUGHLY CHECKED ELSEWHERE
1424 TEXT \?BAD DIRECTORY\
1441 CLA IAC /ASSUME CORESIDENT HANDLERS ARE UNIT 1
1442 JMP ZOUN /ELSE, NO UNIT
1455 JMP BADFIL /FILE DOESN'T HAVE LENGTH 50 (DECIMAL)
1465 JMS READI /READ IN BLOCK 0
1468 FREEDV, /# OF FREE DEVICE NUMBERS
1470 TAD I (INPBL0+212 /** DEPENDS ON TD8E HANDLER
1472 SZA CLA /IS IT 12K TD8E?
1478 NOTD8E, TAD I (INPBL0+200
1481 JMP BADMON /BAD MONITOR ON DEVICE
1482 DCA 7 /DELETE CURRENT USR DIRECTORY SEGMENT
1483 /SINCE KBM READS OVER IT
1484 JMS READI /READ IN KEYBOARD MONITOR
1485 211 /ONLY FIRST 2 PAGES
1488 JMS READI /READ IN USR
1492 JMS READI /READ IN ALL HANDLERS (EXCEPT 2ND PAGE OF LAST ONE)
1503 LOOP, ISZ DEVNUM /PT TO NEXT HANDLER
1504 TAD I PDNT /LOOK AT DEVICE NAME
1513 JMS NAME /PRINT NAME
1517 JMS TIPE /PRINT TYPE
1521 JMS MODE /PRINT MODE
1522 JMS SIZE /PRINT SIZE
1523 JMS BLOCK /PRINT BLOCK # OF LOC OF HANDLER
1526 JMS KIND /PRINT KIND
1527 JMS VERSN /PRINT HANDLER VERSION #
1533 JMS NAME /PRINT USER NAME
1556 TEXT /# NAME TYPE MODE SIZ BLK KIND U V ENT USER/
1559 TEXT / NAME TYPE USER/
1568 TAD (7741-141-INPBL0
1579 DCA PDHRT /DEVICE HANDLER RESIDENCY TABLE
1581 \fCODE, 0 /DEVICE CODE
1610 ISZ PTYP /POINT TO SIZE
1624 ISZ PTYP /POINT TO KIND SUBROUTINE
1628 SMA CLA /1 OR 2 PAGE?
1690 JMS PUTO /"+" MEANS 2 PAGE HANDLER
1698 DCA BLOC /0 MEANS RESIDENT WITH SYS:
1754 / DEVICE LENGTH TABLE
1756 /FORMAT OF THIS TABLE:
1758 /1,2 DEVICE GENERALIZED NAME (CORR TO TYPE)
1760 /4 ADDRESS OF SUBR IN FIELD 1 FOR SPECIALIZATION
1762 TYPTBL, DEVICE TTY ;0000;QTTY /0
1763 DEVICE PTR ;0000;QPTR /1
1764 DEVICE PTP ;0000;QPTP /2
1765 DEVICE CR8E;0000;QCR8E /3
1766 DEVICE LPTR;0000;QLPTRX /4 V3D
1767 DEVICE RK8 ;1520;QRK8 /5
1768 DEVICE RF08;6001;PLAT1 /6 V3C
1769 DEVICE RF08;4002;PLAT2 /7
1770 DEVICE RF08;2003;PLAT3 /10
1771 DEVICE RF08;0004;PLAT4 /11 RF'S NOW ONLY HAVE LOGICALLY 1777 BLOCKS
1772 DEVICE DF32;7601;PLAT1 /12
1773 DEVICE DF32;7402;PLAT2 /13 V3C
1774 DEVICE DF32;7203;PLAT3 /14
1775 DEVICE DF32;7004;PLAT4 /15 DF'S HAVE 177 BLOCKS
1776 DEVICE TC08;6437;QTC08 /16
1777 DEVICE LINC;6437;QLINC /17
1778 DEVICE TM8E;0000;0 /20
1779 DEVICE TD8E;6437;QTD8E /21
1780 DEVICE BAT ;0000;0 /22
1781 DEVICE RK8E;1520;QRK8E /23
1782 DEVICE NULL;0000;0 /24
1783 DEVICE RX8E;7022;0 /25
1785 DEVICE TA8E;0000;QTA8E /27
1786 DEVICE VR12;0000;0 /30
1792 DEVICE DUMP;0000;0 /36