File: RESORW.PA of Tape: Various/System-Tapes/s5
(Source file text)
/12 OS/8 RESOURCES PROGRAM / / / / / / / / / /COPYRIGHT (C) 1974 BY DIGITAL EQUIPMENT CORPORATION / / / / / / / / / / /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 TO THE PURCHASER /UNDER A LICENSE FOR USE ON A SINGLE COMPUTER SYSTEM AND CAN BE COPIED /(WITH INCLUSION OF DIGITAL'S COPYRIGHT NOTICE) ONLY FOR USE IN SUCH /SYSTEM, EXCEPT AS MAY OTHERWISE BE PROVIDED IN WRITING BY DIGITAL. / /DIGITAL EQUIPMENT CORPORATION ASSUMES NO RESPONSIBILITY FOR THE USE /OR RELIABILITY OF ITS SOFTWARE ON EQUIPMENT THAT IS NOT SUPPLIED BY /DIGITAL. / / / / / / / / / / / S.R. /SAVE INFO: / .R ABSLDR / *RESORC$ / .SAVE SYS RESORC;12000=6003 /CORE MAP: /0000-1777 C.D. /2000-2377 DEVICE NAME AND LENGTH TABLE /2400-2777 OUTPUT BUFFER (DOESN'T OVERLAP BETA REGISTER) /3000-3377 INPUT HANDLER /3400-3777 OUTPUT HANDLER /4000-7377 INPUT DIRECTORY /4000-7577 INPUT HANDLERS (LOSE 2ND HALF OF LAST ONE) /FIELD 1 /10000-11777 USR /11400-11777 INPUT KBM /12000-15777 PROGRAM **W** /16000-16377 INPUT BLOCK 0 **W** /16400-17577 INPUT USR **W** INPBL0=6000 /**W** INPKBM=1400 INPUSR=6400 /**W** INPHND=4000 FAST=20 DIG=21 EXTEN=22 DEVNUM=23 /DEVICE NUMBER OF HANDLER CNT=24 PDNT=25 /PTS TO DEVICE NAME TABLE TEMP=26 PUDNT=27 /PTS TO USER DEVICE NAME TABLE PDHIT=30 /PTS TO DEVICE HANDLER INFO TABLE PDCWT=31 /PTS TO DEVICE CONTROL WORD TABLE PTYP=32 LFT=33 RT=LFT+1 DVNO=35 BLOC=36 PDHRT=37 /POINTS TO DEVICE HANDLER RESIDENCY TABLE UN=6 X0=10 XR1=11 RESVERSION="F /FIXES SINCE FIELD TEST RELEASE: /1. 'INPUT ERROR' MESSAGE NO LONGER GARBLED /2. '%NON SYSTEM DEVICE' NEVER PRINTS HANDLERS /PATCHES: /DEC-74. RECOGNIZING PAPER TAPE AND CASSETTE HANDLERS /APR-75. WRONG LENGTH FOR RF08 /W VERSION: W.V.D.M /READ IN ONLY 5 PAGES OF USR FOR MORE PROGRAM SPACE FIELD 1 *2000 START, SKP JMP NOCD /CHAIN ENTRY POINT / JMS I (7700 /WE ASSUME THE USR IS IN CORE / 10 /DON'T HAVE TO LOCK USR IN CORE IF JSW SET RIGHT CD, JMS I (200 5 /COMMAND DECODE 2331 /DEFAULT INPUT EXTENSION = 'SY' NOCD, DCA CTRLO JMS OPENO /OPEN OUTPUT FILE DCA FILENO TAD (7617 DCA INPTR /POINT TO FIRST INPUT FILE TAD I (7644 AND (4 / V OPTION? SZA CLA JMS TYPEV /OUTPUT VERSION # JMS SETSW DCA FLAG TAD I (7617 SNA CLA JMS SPCASE /NO FIRST ARG MEANS USE SYS: IN SPECIAL SENSE JMP INL2 INLOOP, TAD I INPTR /GET INPUT FILE # AND LENGTH SNA CLA JMP FINI /NO MORE INPUT JMS PRDASH INL2, TAD I INPTR AND (17 DCA DVNO /GET 4-BIT DEVICE # ISZ FILENO TAD I INPTR AND (7760 /GET NEGATIVE OF FILE LENGTH DCA FILEN ISZ INPTR TAD I INPTR /GET STARTING BLOCK OF FILE DCA SBLOCK ISZ INPTR TAD DVNO JMS GETDCW SMA CLA JMP NOFLST /DEVICE IS NOT FILE STRUCTURED JMS OPENI /GET INPUT HANDLER JMS DIRECT /ASCERTAIN DIRECTORY INFO JMS HNDLRS /ASCERTAIN HANDLERS TAD EXTEN SZA CLA JMS CNTSLT JMS MONVER /ASCERTAIN MONITOR VERSION # NEXT, JMS CRLF DCA FLAG JMP INLOOP NOFLST, JMS PRINT TEXT /%DEV IS NOT FILE STRUCTURED/ JMP NEXT FINI, JMS CLOSEO /CLOSE OUTPUT FILE FINIS, TAD I (7642 SMA CLA JMP CD /COMMAND LINE ENDED WITH CR CIF CDF 0 /COMMAND LINE ENDED WITH ALTMODE JMP I (7605 /GO BACK TO MONITOR /CURRENT PIP /Y FILES ARE 50 (DEC) = 62 (OCTAL) BLOCKS LONG GETDCW, 0 AND (17 TAD (7757 /GET PTR INTO DEVICE CONTROL WORD TABLE DCA DCW TAD I DCW /GET D.C.W. DCA DCW /SAVE (WHY?) TAD DCW JMP I GETDCW SETSW, 0 DCA FAST DCA EXTEN CLA IAC AND I (7643 SNA CLA JMP NOTF ISZ FAST JMP I SETSW NOTF, TAD I (7643 AND (200 SNA CLA JMP I SETSW ISZ EXTEN ISZ FAST JMP I SETSW /FAST GT 0 IF /L OR /E SWITCH SET /EXTEN=1 IF /E SWITCH SET AND /L NOT SET INPTR, 0 /POINTS TO INPUT FILE LIST FILEN, 0 /INPUT FILE LENGTH (NEG IN BITS 0-7) DCW, 0 /INPUT DEVICE CONTROL WORD FILENO, 0 /INPUT FILE NUMBER IN INPUT LIST SBLOCK, 0 /STARTING BLOCK # OF INPUT FILE FLAG, 0 /NON-ZERO MEANS SPECIAL CASE OF NO FIRST ARG SPCASE, 0 ISZ FLAG /NOTE SPECIAL CASE CLA IAC DCA I (7617 /FORCE FIRST INPUT TO BE SYS: JMP I SPCASE PAGE PRINT, 0 TAD I PRINT DCA PRT ISZ PRINT TAD PRT JMS RTR6 JMS PR JMP I PRINT TAD PRT JMS PR JMP I PRINT JMP PRINT+1 PRT, 0 RTR6, 0 TTY212, RTR RTR RTR JMP I RTR6 PR, 0 AND (77 SNA JMP I PR TAD (240 AND (77 TAD (240 JMS PUTO ISZ PR JMP I PR TPRINT, 0 /PRINT TO TELETYPE CLA TAD I TPRINT DCA PRT ISZ TPRINT TAD PRT JMS RTR6 JMS TPUT TAD PRT JMS TPUT JMP TPRINT+1 TPUT, 0 AND (77 SNA JMP PUTCR TAD (240 AND (77 TAD (240 JMS TYPE JMP I TPUT PUTCR, JMS TCRLF JMP I TPRINT TYPE, 0 DCA TYTEM TAD CTRLO SZA CLA JMP I TYPE /DON'T TYPE IF CONTROL/O FLAG SET KSF SKP JMS LOOKC TAD TYTEM JMS TYPE2 JMP I TYPE TYTEM, 0 CTRLO, 0 /NON-ZERO MEANS CTRLO/O WAS STRUCK TYPE2, 0 TLS TSF JMP .-1 CLA JMP I TYPE2 LOOKC, 0 KRB AND (177 TAD (-17 SNA /IS IT ^O? JMP CTROLO /YES TAD (17-3 /NO SZA CLA /IS IT ^C? JMP I LOOKC /NO CIF CDF 0 /YES JMP I (7605 CTROLO, TAD ("^ JMS TYPE2 TAD ("O JMS TYPE2 ISZ CTRLO TAD (215 JMS TYPE2 TAD TTY212 JMS TYPE2 JMP I TYPE TYPEV, 0 JMS PRINT TEXT /RESORC V W2 / /**W** *.-2 RESVERSION&77+6200 *.+1 JMS CRLF JMP I TYPEV CRLF, 0 TAD (215 JMS PUTO TAD TTY212 JMS PUTO JMP I CRLF TCRLF, 0 TAD (215 JMS TYPE TAD (212 JMS TYPE JMP I TCRLF PAGE CLOSEO, 0 /CLOSE OUTPUT FILE TAD (232 /PUT ^Z IN BUFFER JMS PUTO TAD (-600 DCA KNT /SEND 600 NULLS TO OUTPUT BUFFER JMS PUTO /THIS GUARANTEES TO PURGE IT ISZ KNT JMP .-2 TAD I (7600 JMS I (200 4 /CLOSE L7601, 7601 /POINTER TO OUTPUT FILE NAME OUTLEN, 0 /LENGTH OF OUTPUT FILE HLT /SYSTEM ERROR, CANNOT OCCUR JMP I CLOSEO OPENO, 0 JMS OINIT DCA OUTLEN TAD (3401 DCA OENTRY TAD I (7600 SNA CLA JMP DEFALT TAD I (7600 JMS GETDCW RAL SPA CLA JMP NOWR /READ ONLY TAD I (7600 JMS I (200 1 /FETCH DEVICE HANDLER (POSSIBLY 2-PAGE) OENTRY, 3401 /INTO PAGE 3400 HLT /SYSTEM ERROR CANNOT OCCUR O2, TAD L7601 DCA SBLKO TAD I L7601 SNA TAD (2205 /RE DCA I L7601 /DEFAULT OUTPUT NAME IS RE DCA OLEN TAD I (7604 SNA TAD (1423 /LS DCA I (7604 / .LS IS DEFAULT OUTPUT EXTENSION TAD I (7600 JMS I (200 3 /ENTER OUTPUT FILE SBLKO, 7601 /POINTS TO OUTPUT FILE NAME OLEN, 0 /COMPLEMENT OF ACTUAL OUTPUT FILE LENGTH JMP DEVFUL /OUTPUT DEVICE FULL TAD SBLKO DCA OBLOCK TAD OLEN SZA TAD (-1 DCA OLEN JMP I OPENO KNT, 0 DEFALT, TAD (3100 /SET TTY: AS DEFAULT OUTPUT DEVICE DCA DVN TAD (3401 DCA OENT JMS I (200 1 /FETCH HANDLER BY NAME 2424 /TT DVN, 3100 /DEVICE TTY: OENT, 3401 /INTO 3400 JMP NOTTY /NO TTY: ON SYS: TAD OENT DCA OENTRY TAD DVN DCA I (7600 JMP O2 OUTERR, JMS TPRINT TEXT /?OUTPUT ERROR/ JMS CRLF JMP FINIS TRY09, 0 TAD (60 CIA TAD NAM DCA DIG TAD DIG CLL TAD (-10 /TRY DIGITS 0-7 SZL CLA JMP I TRY09 TAD DIG TAD (60 TAD RT DCA RT JMP GOTIT PUTSP, 0 TAD (40 JMS PUTO JMP I PUTSP PAGE PUTO, 0 AND (377 CDF 0 JMP I PUTJMP PUTJMP, X1 X1, DCA I PUTPT1 TAD (X2 DCA PUTJMP PUTLV, CDF 10 JMP I PUTO /RETURN X2, DCA I PUTPT2 TAD (X3 DCA PUTJMP JMP PUTLV X3, DCA TMP TAD TMP CLL RTL RTL AND (7400 TAD I PUTPT1 DCA I PUTPT1 TAD TMP CLL RTR RTR RAR AND (7400 TAD I PUTPT2 DCA I PUTPT2 ISZ PUTPT1 ISZ PUTPT1 ISZ PUTPT2 ISZ PUTPT2 TAD (X1 DCA PUTJMP ISZ PUTKNT JMP PUTLV CDF 10 /BUFFER FILLED ISZ OLEN SKP JMP DEVFUL /CAN'T WRITE ANYMORE CIF 0 TAD OENTRY DCA OENTR /GET ON SAME PAGE JMS I OENTR 4200 /WRITE 1 BLOCK 2400 /FIELD 0, LOC 2400 OBLOCK, 0 /OUTPUT BLOCK # JMP OUTERR ISZ OUTLEN ISZ OBLOCK /POINT TO NEXT BLOCK JMS OINIT JMP I PUTO /RETURN PUTPT1, 0 PUTPT2, 0 PUTKNT, 0 ZDEC, IAC /25 ZMISC, IAC /24 ZSID, IAC /23 23-25 **W** PLAT4, IAC /22 PLAT3, IAC /21 PLAT2, IAC /20 PLAT1, IAC /17 ZSD8, IAC /16 /**W** ZKL8E, IAC /15 ZRK8E, IAC /14 ZRK8, IAC /13 ZASR, IAC /12 ZTA8, IAC /11 ZTD8, IAC /10 ZL645, IAC /7 ZLPSV, IAC /6 ZLV8E, IAC /5 Z026, IAC /4 Z029, IAC /3 ZLSPT, IAC /2 ZPT8E, IAC /1 NOKIND, CLL RAL /PRINTS NAME FROM TABLE, ENTER WITH ENTRY # IN AC PRNAM, TAD (TABASE JMS PUTNAM JMS UNIT JMP KINDRET TMP, GETD77, 0 TAD (7707 DCA MASK TAD (-6704 /DSN DEC-75 JMS SRCH RTR RAR AND (7 JMP I GETD77 QTTY, TAD I PDHIT SMA CLA /1 OR 2 PAGE? JMP ZASR /1 PAGE JMP ZKL8E /2 PAGE QRK8E, TAD I PDHIT AND (7 CLL RAR DCA UN JMP ZRK8E OENTR, TSTUN, 0 TAD I PDHIT AND (7 DCA UN JMP I TSTUN PAGE NAME, 0 DCA NAM TAD FAST SZA CLA JMP TRY1 STA TAD DEVNUM SNA CLA JMP TRY1 TAD (", JMS PUTO TRY1, TAD (LIST1 DCA NM1 LP1, TAD I NM1 SNA JMP TRY2 DCA LFT ISZ NM1 /TRY A-B TAD (-2 /CHANGE TO -4 TO TRY A-D DCA TEMP DCA RT LP1X, TAD RT TAD (100 DCA RT JMS COMB JMS TRY09 ISZ TEMP JMP LP1X JMP LP1 NAM, 0 /SPECIFIED NAME NM1, 0 TRY2, TAD (LIST2 DCA NM1 LP2, TAD I NM1 SNA JMP TRY3 DCA LFT ISZ NM1 TAD I NM1 ISZ NM1 DCA RT JMS COMB DCA TEMP TAD TEMP CIA TAD NAM SNA CLA JMP GOTIT TAD TEMP JMS TRY09 JMP LP2 /TRY0 SHOULD BE SPECIAL CASE TESTS TRY3, TAD NAM SPA /**W** JMP NODI JMS RTR6 AND (37 SNA JMP NODI /**W** JMS SETIFA CLL RAR JMS RTR6 DCA LFT TAD NAM AND (77 JMS SETIFA TAD LFT DCA LFT DCA RT JMP GOTIT SETIFA, 0 SNA JMP I SETIFA TAD (-33 SPA JMP LETR TAD (33-60 CLL TAD (-12 SZL JMP NODI TAD (12+60-33 LETR, TAD (33 JMP I SETIFA NODI, CLA TAD EXTEN /**W** SNA CLA JMP TRY4 TAD (-6 DCA NM1 LTRY, JMS PUTSP ISZ NM1 JMP LTRY JMP NAMLV /**W** TRY4, TAD NAM JMS NNAME NAMLV, JMP I NAME CMFLG, 0 /COMB, 0 / TAD RT / SZA CLA / STA / DCA CMFLG / TAD LFT / TAD RT / ISZ CMFLG / JMP I COMB / CLL RAL / STL RAR / JMP I COMB /TURN ON BIT 0 OF 1 WORD NAME COMB, 0 /TEMP TAD LFT TAD RT SMA TAD (4000 JMP I COMB PAGE DEVFUL, JMS TPRINT TEXT /?OUTPUT DEV FULL/ JMP FINIS NOWR, JMS TPRINT TEXT /?OUTPUT DEV IS READ-ONLY/ JMP FINIS NOTTY, JMS TPRINT TEXT /?TTY DOES NOT EXIST/ JMP FINIS OINIT, 0 TAD (-200 DCA PUTKNT TAD (2400 DCA PUTPT1 TAD (2401 DCA PUTPT2 TAD (X1 DCA PUTJMP JMP I OINIT READI, 0 TAD I READI DCA ARG1 ISZ READI TAD I READI DCA ARG2 ISZ READI TAD I READI DCA ARG3 ISZ READI CIF 0 JMS I IENTRY ARG1, 0 ARG2, 0 ARG3, 0 JMP INERR JMP I READI /REURN INERR, JMS TPRINT TEXT /?INPUT ERROR/ JMP FINIS OPENI, 0 /FECTH INPUT HANDLER TAD (3001 /INTO PAGES 3000, 3200 DCA IENTRY TAD DVNO JMS I (200 1 /FETCH HANDLER IENTRY, 3001 HLT /SYSTEM ERROR, CAN'T OCCUR JMP I OPENI PRFREE, 0 JMS PRINT TEXT /FREE DEVICE SLOTS: / TAD FREEDV JMS XPRINT JMS PRINT TEXT /, FREE BLOCK SLOTS: / TAD SLKNT JMS XPRINT JMP I PRFREE PAGE DIRECT, 0 TAD SBLOCK SZA CLA JMP I DIRECT /NO DIRECTORY INFO FOR FILES JMS READI 1400 /READ 6 BLOCKS 4000 /INTO 04000 1 /FROM BLOCK 1 JMS DVALID /CHECK IF VALID DIRECTORY TAD FAST SNA CLA JMP I DIRECT /NO DIRECT IN FAST MODE JMS CRLF DCA USED DCA UNUSED DCA NFILES DCA NMTS DCA NSEGS STL CLA RAR /4000 DIRLUP, DCA DIRPTR ISZ NSEGS JMS GETDIR DCA NENTRY /- NO. OF ENTRIES IN SEGMENT JMS GETDIR DCA STBLK /STARTING BLOCK # OF FIRST FILE IN SEGMENT JMS GETDIR DCA LINK /LINK TO NEXT SEGMENT JMS GETDIR CLA /IGNORE FLAG WORD TO TENTATIVE FILE JMS GETDIR DCA AIW /# OF ADDITIONAL INFO WORDS TAD NENTRY DCA DKNT SEGLUP, JMS GETDIR SNA CLA JMP EMPTY /AN EMPTY ENTRY TAD AIW CIA TAD (3 TAD DIRPTR DCA DIRPTR /POINT TO FILE LENGTH JMS GETDIR /GET NEG OF NUMBER OF BLOCKS IN FILE SNA JMP NEXTF /A TENTATIVE FILE, IGNORE CIA TAD USED DCA USED ISZ NFILES JMP NEXTF EMPTY, JMS GETDIR CIA TAD UNUSED DCA UNUSED ISZ NMTS NEXTF, ISZ DKNT /ANY MORE ENTRIES IN THIS SEGMENT? JMP SEGLUP /YES TAD LINK SNA CLA JMP GOTINFO TAD NSEGS CMA TAD LINK /ASSUME LINKS ARE IN ORDER SZA CLA JMP BADDIR STA /GO TO NEXT SEGMENT TAD DIRPTR AND (7400 TAD (400 JMP DIRLUP DKNT, 0 USED, 0 /NO. OF BLOCKS USED UNUSED, 0 /# OF UNUSED BLOCKS ON DEVICE NFILES, 0 /# OF FILES NMTS, 0 /# OF EMPTIES NSEGS, 0 /# OF DIRECTORY SEGMENTS USED GOTINFO,JMS PRINFO LVDIR, JMS CRLF JMS CRLF JMP I DIRECT NENTRY, 0 /- # OF ENTRIES IN SEGMENT STBLK, 0 /STARTING BLOCK # OF FIRST FILE IN SEGMENT LINK, 0 /LINK TO NEXT SEGMENT AIW, 0 /# OF ADDITIOANAL INFORMATION WORDS GETDIR, 0 CDF 0 TAD I DIRPTR CDF 10 ISZ DIRPTR JMP I GETDIR DIRPTR, 0 XPRINT, 0 SNA JMP NONEPR JMS OPRINT JMP I XPRINT NONEPR, JMS PRINT TEXT /NONE/ JMP I XPRINT SLOTAB, ZBLOCK 10 /KEEPS TRACK OF USED SLOTS GETTYP, 0 CDF 0 TAD I PTYP CDF 10 JMP I GETTYP PAGE PRINFO, 0 TAD EXTEN SNA CLA JMP NOFLS /JUST # OF FREE BLOCKS UNLESS /E TAD NFILES SNA JMP NOFLS STL JMS DPRINT JMS PRINT TEXT / FILES IN / TAD USED STL JMS DPRINT JMS PRINT TEXT / BLOCKS/ STA TAD NSEGS SNA CLA JMP ONESEG JMS PRINT TEXT / USING / TAD NSEGS STL JMS DPRINT JMS PRINT TEXT / SEGMENTS/ ONESEG, JMS CRLF NOFLS, TAD UNUSED STL JMS DPRINT JMS PRINT TEXT / FREE BLOCKS/ TAD EXTEN SNA CLA JMP I PRINFO TAD NMTS CLL RAR SNA CLA JMP MT1 JMS PRINT TEXT / (/ TAD NMTS STL JMS DPRINT JMS PRINT TEXT / EMPTIES)/ MT1, CLA IAC TAD AIW SZA CLA JMS PRAIW JMP I PRINFO PRAIW, 0 JMS CRLF TAD AIW CIA STL JMS DPRINT JMS PRINT TEXT / EXTRA INFO WDS/ JMP I PRAIW /HNDGET GETS VALUE IN HANDLER FROM REL LOC IN AC HNDGET, 0 TAD BLOC DCA TEMP CDF 0 TAD I TEMP CDF 10 JMP I HNDGET PUTNAM, 0 DCA PUTNMT TAD I PUTNMT JMS PUTPAK ISZ PUTNMT TAD I PUTNMT JMS PUTPAK JMP I PUTNAM PUTNMT, 0 /THIS PRINTS A 4 CHAR NAME, ARG IN AC. PAGE KIND, 0 JMS PUTSP TAD BLOC SNA CLA JMP NOKIND JMS GETTYP SNA JMP NOKIND DCA TEMP JMP I TEMP /BRANCH TO APPROPRIATE SUBROUTINE KINDRET,JMP I KIND /KIND SUBROUTINES /ENTER WITH BLOC POINTING TO HANDLER BLOCK IN CORE /SRCH SEARCHES THE HANDLER FOR THE NEGATIVE /OF THE NON-ZERO VALUE IN THE AC. /MASKED BY MASK. /IF FOUND, RETURN IS MADE WITH VALUE(WITHOUT MASK) IN AC /IF NOT FOUND, AC IS 0 UPON RETURN SRCH, 0 DCA LOOK4 STA TAD BLOC DCA XR1 TAD (-230 /MUST SEARCH 2 PAGES; TROUBLE IF TA8E IS IN LAST SLOT **DSN DEC-75 DCA SRCHCNT SRCHLP, CDF 0 TAD I XR1 CDF 10 DCA TEMP TAD TEMP AND MASK TAD LOOK4 SNA CLA JMP SRCHGOT ISZ SRCHCNT JMP SRCHLP JMP I SRCH SRCHGOT,TAD TEMP JMP I SRCH SRCHCNT,-400 LOOK4, 0 / **** NOTE: ALL HANDLERS SHOULD BE PADDED OUT TO FILL PAGE / WITH ZEROES /BUILD SHOULD WRITE ZEROES IN 2ND PAGE OF ONE PAGE HANDLER /SPECIAL PURPOSE ROUTINES QPTP, QPTR, STA DCA MASK TAD (-6021 JMS SRCH SZA CLA JMP ZPT8E JMP ZLSPT /FOR TYPE PTR / IF HANDLER CONTAINS A 6021 IT IS A PT8E / OTHERWISE IT IS A LSPT QCR8E, TAD (104 JMS HNDGET TAD (-3203 SNA JMP Z029 TAD (3203-7735 SNA CLA JMP Z026 JMP NOKIND /FOR TYPE CR8E / IF REL LOC 104 IS A 3203 IT IN 029 KIND / IF REL LOC 104 IS A 7735 IT IS AN 026 KIND / OTHERWISE IT IS AN UNKNOWN KIND QLPTR, STA DCA MASK TAD (-6652 /SEARCH FOR A 6652 JMS SRCH SZA CLA JMP ZL645 /FOUND IT CLA IAC /LOOK AT REL LOC 1 JMS HNDGET TAD (-4 SNA JMP ZLV8E TAD (4-14 SNA CLA JMP ZLPSV JMP NOKIND /IF HANDLER CONTAINS A 6652 IT'S AN L645 /OTHERWISE, DEPENDS ON REL LOC 1 / IF REL LOC 1 IS A 14, IT'S A LPSV / IF REL LOC 1 IS A 4, IT'S A LV8E / OTHERWISE IT'S UNKNOWN (POSSIBLY OLD LP08 OR LS8E KIND) MASK, 0 QTA8E, JMS GETD77 IAC DCA TEMP TAD KTA8+1 AND (7700 TAD TEMP DCA KTA8+1 STA TAD I PDHIT AND (177 SNA CLA CLA IAC DCA UN STA TAD TEMP CLL RAL TAD UN DCA UN JMP ZTA8 /FIGURE OUT KIND OF TA8E BY DEVICE CODE FOUND IN 67N1 INSTRUCTION / N KIND / 0 TA8A / 1 TA8B /... / 6 TA8G / 7 TA8H PAGE /DECIMAL PRINT /LINK OFF MEANS PRINT LEADING SPACES /LINK ON MEANS DON'T PRINT LEADING SPACES OR ZEROS DPRINT, 0 DCA DTM RAR DCA LNK DCA ZFLG TAD (DLST DCA PLST DPL2, DCA DYG DPLUP, TAD I PLST SNA JMP I DPRINT CLL TAD DTM SNL JMP NEGG ISZ DYG DCA DTM JMP DPLUP NEGG, CLA TAD DYG TAD ZFLG SNA JMP PRBLNK TAD (60 JMS PUTO STL CLA RAR /4000 DCA ZFLG ISZZ, ISZ PLST JMP DPL2 PRBLNK, TAD LNK CLL RAL TAD L40 SNL JMS PUTO CLA JMP ISZZ DYG, 0 PLST, 0 ZFLG, 0 /4000 MEANS PASSED LEADING ZEROES /PRINTS A 2-DIGIT OCTAL NUMBER WITH LEADING 0'S OPRINT, 0 DCA OTEM TAD OTEM RTR RAR JMS OPRI TAD OTEM JMS OPRI JMP I OPRINT OPRI, 0 AND (7 TAD (260 JMS PUTO JMP I OPRI PRINT4, 0 DCA DTM TAD DTM JMS RTR6 JMS OPRINT TAD DTM JMS OPRINT JMP I PRINT4 DTM, 0 PUTPAK, 0 DCA DTM TAD DTM JMS RTR6 JMS PR JMS BLNKIT TAD DTM JMS PR JMS BLNKIT JMP I PUTPAK BLNKIT, 0 TAD FAST SZA CLA TAD L40 JMS PR L40, 40 /CAN'T HURT TO CALL PR WITH A 0 JMP I BLNKIT LNK, VERSN, 0 JMS PUTSP TAD BLOC SNA CLA JMP SYSV /TEMP (ENTRY PT IS IN FIELD 1 7600 TAD I PDHIT AND (177 TAD BLOC GOVR, DCA DTM JMS GETV CLL IAC TAD (-34 SZL CLA JMP NOOOP JMS GETV PUTVR, SZA TAD L40 TAD L40 JMS PUTO JMP I VERSN OTEM, GETV, 0 CDF 0 TAD I DTM CDF 10 JMP I GETV NOOOP, STA TAD DTM /SCAN BACKWARDS FOR HANDLER VERSION # (LT 33) JMP GOVR SYSV, TAD I PDHRT AND (177 TAD (INPBL0+200 DCA DTM TAD I DTM CLL TAD (-34 SNL CLA TAD I DTM /PRINT BAD VERSION # AS SPACE JMP PUTVR PAGE MONVER, 0 TAD FAST SNA CLA JMP I MONVER TAD I (1400 TAD (-7607 SNA JMP NOTV3 TAD (7607+60 DCA TEMPX TAD I (1400+31 DCA TMPTWO OS8, TAD ("O JMS PUTO MONV2, JMS PRINT TEXT \S/8 V\ TAD TEMPX JMS PUTO TAD TMPTWO JMS PUTO JMS CRLF JMP I MONVER TMPTWO, 0 TEMPX, 0 NOTV3, TAD (40 DCA TMPTWO /CHECK FOR PS/8 AND COS TAD (61 DCA TEMPX TAD I (1400+35 /**W** TAD (-7607 SNA JMP OS8 ISZ TEMPX TAD (7607-4560 SNA CLA JMP OS8 TAD (40 DCA TEMPX TAD ("C JMS PUTO JMP OS8 /**W** LIST2, DEVICE LPT DEVICE TTY DEVICE PTR DEVICE PTP DEVICE CDR DEVICE SYS DEVICE DSK DEVICE CDP DEVICE DEV DEVICE OUT DEVICE INP DEVICE BAT DEVICE NULL /SHOULD BE IN NEXT TABLE 0 /LIST3, DEVICE NULL / DEVICE TEST / DEVICE LIST / 0 /INTERESTING NOTE: 'BAT', 'FOO2' AND 'RKC6' ALL HASH OUT TO 6601 TABASE, 4040;4040 /0 DEVICE PT8E /1 DEVICE KS33 /2 DEVICE 029 /3 DEVICE 026 /4 DEVICE LV8E /5 DEVICE LPSV /6 DEVICE L645 /7 KTD8, DEVICE TD8 /10 KTA8, DEVICE TA8 /11 DEVICE AS33 /12 DEVICE RK01 /13 DEVICE RK05 /14 DEVICE KL8E /15 KSD8, DEVICE SD8 /16 TEXT / =1/ /17 TEXT / =2/ /20 TEXT / =3/ /21 TEXT / =4/ /22 DEVICE MO43 /23 DEVICE USER /24 DEVICE DEC /25 23-25**W** PAGE /FORMAT OF SYSTEM HEAD FILE /REL BLK CONTENTS ABS BLK ON DEV /0 BOOTSTRAP & PAGE 0'S 0 /1-4 KEYBOARD MONITOR 7-12 /5-7 USR 13-15 /10-17 DEVICE HANDLERS 16-25 /20 ENTER 26 /21-42 SCRATCH BLOCKS 27-50 /43-45 COMMAND DECODER 51-53 /46-47 SAVE,DATE 54-55 /50 ERROR OVERLAY 56 /51 CHAIN OVERLAY 57 /52-55 ODT 60-63 /56 RESERVED FOR EXPN 64 /57 CCL SCRATCH 65 /60 12K TD8E HANDLER 66 /61 CCL OVERLAY 67 /DIR DID NOT GET IN CORE ON /F? DEV, DCA BLCK0 TAD (66 DCA BLCK66 TAD (7 DCA KBM TAD (13 DCA USRBLK CDF 0 TAD I (4001 /GET STARTING BLOCK # OF FILES CDF 10 TAD (-7 SNA CLA JMP NONSYS /FILES START AT BLOCK 7 OF DEVICE TAD (16 /CHECK TO SEE THAT DEVICE HAS SYSTEM ON IT JMP RD NONSYS, JMS PRINT TEXT /%NON SYSTEM DEVICE/ JMP NEXT BADFIL, JMS PRINT TEXT /%NOT A SYSTEM HEAD/ JMP NEXT BADMON, JMS PRINT TEXT /%BAD MONITOR/ JMP NEXT DVALID, 0 STL CLA RAR /4000 DCA DIRPTR JMS GETDIR CLL TAD (200 SNL CLA JMP BADDIR JMS GETDIR SNA JMP BADDIR TAD (-400 /REMEMBER COS SMA CLA JMP BADDIR JMS GETDIR CLA /LINKS THOROUGHLY CHECKED ELSEWHERE JMS GETDIR SNA JMP OKDIR TAD (-1400 CLL TAD (-1000 SZL CLA JMP BADDIR OKDIR, JMS GETDIR SPA SNA CLA JMP I DVALID BADDIR, JMS PRINT TEXT \?BAD DIRECTORY\ JMP LVDIR UNIT, 0 JMS PUTSP TAD BLOC SNA CLA JMP TSTSUN TAD UN SPA TAD (40+1-60 ZOUN, TAD (60 JMS PUTO JMP I UNIT TSTSUN, TAD I PDHRT TAD (-7607 SZA CLA CLA IAC /ASSUME CORESIDENT HANDLERS ARE UNIT 1 JMP ZOUN /ELSE, NO UNIT PAGE HNDLRS, 0 TAD SBLOCK SNA /IS IT A FILE? JMP DEV /NO DCA BLCK0 /YES TAD BLCK0 TAD (60 DCA BLCK66 TAD FILEN TAD (-6340 SZA CLA JMP BADFIL /FILE DOESN'T HAVE LENGTH 50 (DECIMAL) TAD BLCK0 IAC DCA KBM TAD BLCK0 TAD (5 DCA USRBLK TAD BLCK0 TAD (10 RD, DCA HNDBLK JMS READI /READ IN BLOCK 0 210 /2 PAGES INPBL0 FREEDV, /# OF FREE DEVICE NUMBERS BLCK0, 0 TAD I (INPBL0+212 /** DEPENDS ON TD8E HANDLER TAD (-3 SZA CLA /IS IT 12K TD8E? JMP NOTD8E /NO JMS READI /YES 110 /1 PAGE INPBL0 BLCK66, 66 NOTD8E, TAD I (INPBL0+200 TAD (-4207 SZA CLA JMP BADMON /BAD MONITOR ON DEVICE DCA 7 /DELETE CURRENT USR DIRECTORY SEGMENT /SINCE KBM READS OVER IT JMS READI /READ IN KEYBOARD MONITOR 211 /ONLY FIRST 2 PAGES INPKBM KBM, 7 JMS READI /READ IN USR 511 /5 PAGES **W** INPUSR USRBLK, 13 JMS READI /READ IN ALL HANDLERS (EXCEPT 2ND PAGE OF LAST ONE) 1700 /17 PAGES INPHND HNDBLK, 16 TAD (-17 DCA CNT DCA FREEDV JMS ZEROSL DCA DEVNUM JMS SETPTS / JMS HEADING **W** LOOP, ISZ DEVNUM /PT TO NEXT HANDLER TAD I PDNT /LOOK AT DEVICE NAME SNA CLA JMP NOXXT TAD EXTEN SNA CLA JMP NONUM TAD DEVNUM JMS OPRINT NONUM, TAD I PDNT JMS NAME /PRINT NAME TAD FAST SNA CLA JMP NEXXT JMS OCTNAM /PRINT OCTAL VALUE OF NAME **W** JMS TIPE /PRINT TYPE TAD EXTEN SNA CLA JMP PUSER JMS MODE /PRINT MODE JMS SIZE /PRINT SIZE JMS BLOCK /PRINT BLOCK # OF LOC OF HANDLER STA DCA UN JMS KIND /PRINT KIND JMS VERSN /PRINT HANDLER VERSION # JMS ENTRY PUSER, TAD I PUDNT SZA /**W** JMS NAME /PRINT USER NAME EOL, JMS CRLF NEXXT, ISZ PDNT ISZ PUDNT ISZ PDHIT ISZ PDCWT ISZ PDHRT ISZ CNT JMP LOOP JMS CRLF JMP I HNDLRS NOXXT, ISZ FREEDV JMP NEXXT PAGE HEADING,0 TAD FAST SNA CLA JMP I HEADING TAD EXTEN SNA CLA JMP REGLR JMS PRINT TEXT /# NAME =OCT TYPE MODE SIZ BLK KIND U V ENT USER/ JMP HDLV REGLR, JMS PRINT TEXT / NAME TYPE USER/ HDLV, JMS CRLF JMP I HEADING SETPTS, 0 TAD I (INPUSR+36 TAD (INPUSR DCA PDNT TAD FLAG SZA CLA TAD (7741-141-INPBL0 TAD (INPBL0+141 DCA PUDNT /CHANGE FOR FLAG? TAD I (INPUSR+37 TAD (INPUSR DCA PDHIT /FLAG? TAD (INPBL0+160 DCA PDCWT TAD (INPBL0+47 DCA PDHRT /DEVICE HANDLER RESIDENCY TABLE JMS HEADING /**W** JMP I SETPTS CODE, 0 /DEVICE CODE NNAME, 0 DCA TIPE TAD ("( JMS PUTO TAD TIPE JMS PRINT4 TAD (") JMS PUTO JMP I NNAME TIPE, 0 TAD I PDCWT RTR RAR AND (77 DCA CODE TAD CODE CLL RTL TAD (TYPTBL DCA PTYP JMS GETTYP ISZ PTYP SNA JMP UNKN JMS PUTPAK JMS GETTYP JMS PUTPAK ISZ PTYP /POINT TO SIZE JMP I TIPE UNKN, JMS PUTSP TAD CODE JMS OPRINT JMS PUTSP ISZ PTYP JMP I TIPE SIZE, 0 JMS GETTYP CIA CLL JMS DPRINT JMS PUTSP ISZ PTYP /POINT TO KIND SUBROUTINE JMP I SIZE PAGE MODE, 0 JMS PUTSP TAD (-4 DCA MKNT TAD I PDCWT RTL RAL JMS MSET "R TAD I PDCWT RTL JMS MSET "W TAD I PDCWT RAL CML JMS MSET "F JMS PUTSP ISZ MKNT JMP .-3 JMP I MODE MSET, 0 CLA TAD I MSET DCA MCHAR ISZ MSET SZL JMP I MSET ISZ MKNT TAD MCHAR JMS PUTO JMP I MSET MKNT, 0 ET, BLOCK, 0 TAD I PDHIT JMS RTL6 AND (17 SNA JMP SYS DCA SLTM STA TAD SLTM CLL RTR RTR RAR TAD (INPHND DCA BLOC TAD SLTM TAD (15 JMS OPRINT TAD I PDHIT SMA CLA TAD (40-"+ TAD ("+ JMS PUTO /"+" MEANS 2 PAGE HANDLER TAD SLTM TAD (SLOTAB-1 DCA SLTM ISZ I SLTM JMP I BLOCK SYS, JMS PRINT TEXT /SYS/ DCA BLOC /0 MEANS RESIDENT WITH SYS: JMP I BLOCK MCHAR, ENTRY, 0 JMS PUTSP TAD BLOC SNA CLA JMP SYSENT TAD I PDHIT EN2, DCA ET TAD ET JMS RTR6 AND (1 SZA TAD (20 TAD (40 JMS PUTO TAD ET JMS OPRINT JMP I ENTRY SYSENT, TAD I PDHRT JMP EN2 SLTM, 0 SLKNT, ZEROSL, 0 TAD (-10 DCA SLTM TAD (SLOTAB-1 DCA X0 DCA I X0 ISZ SLTM JMP .-2 JMP I ZEROSL CNTSLT, 0 TAD (-10 DCA SLTM DCA SLKNT TAD (SLOTAB-1 DCA X0 CNSLP, TAD I X0 SNA CLA ISZ SLKNT ISZ SLTM JMP CNSLP JMS PRFREE JMS CRLF JMP I CNTSLT PAGE LIST1, TEXT /DTMTLTTDCSRKRFSDDK/ DLST, -1750 /1000 -144 /100 -12 /10 -1 /1 0 /END PRDASH, 0 JMS PRINT TEXT /------/ JMS CRLF JMS CRLF JMP I PRDASH RTL6, 0 RTL RTL RTL JMP I RTL6 QTC08, QLINC, JMS TSTUN JMP NOKIND QRK8, JMS TSTUN JMP ZRK8 QSID, JMS TSTUN /**W** JMP ZSID QTD8E, JMS GETD77 /MOD **W** CIA TAD (10 DCA QTEMP TAD I PDHIT RTR RAR STA TAD QTEMP CML RAL /TIMES 2 + LINK DCA UN TAD (175 /CHECK FOR TD8E JMS HNDGET TAD (-3 SZA CLA JMP QSD8E TAD KTD8+1 AND (7700 TAD QTEMP DCA KTD8+1 JMP ZTD8 QSD8E, TAD KSD8+1 AND (7700 TAD QTEMP DCA KSD8+1 JMP ZSD8 QTEMP, 0 /FIGURE OUT KIND OF TD8E BY DEVICE CODE FOUND IN 67N1 INSTRUCTION / N TYPE / 7 TD8A / 6 TD8B /.. / 1 TD8G / 0 TD8H QVR12, JMS HNDGET TAD (-26 SNA CLA JMP ZDEC JMP ZMISC /**W** GOTIT, TAD FAST SZA CLA JMS PUTSP TAD (LFT JMS PUTNAM TAD FAST SZA CLA JMS PUTSP JMP NAMLV OCTNAM, 0 /**W** TAD EXTEN SNA CLA JMP I OCTNAM TAD I PDNT CLL JMS PRINT4 JMS PUTSP JMP I OCTNAM PAGE FIELD 0 *2000 / DEVICE LENGTH TABLE /FORMAT OF THIS TABLE: /1,2 DEVICE GENERALIZED NAME (CORR TO TYPE) /3 NEG OF LENGTH /4 ADDRESS OF SUBR IN FIELD 1 FOR SPECIALIZATION TYPTBL, DEVICE TTY ;0000;QTTY /0 DEVICE PTR ;0000;QPTR /1 DEVICE PTP ;0000;QPTP /2 DEVICE CR8E;0000;QCR8E /3 DEVICE LPTR;0000;QLPTR /4 DEVICE RK8 ;1520;QRK8 /5 DEVICE RF08;6001;PLAT1 /6 DEVICE RF08;4001;PLAT2 /7 DEVICE RF08;2001;PLAT3 /10 /DSN APR-75 DEVICE RF08;0001;PLAT4 /11 DEVICE DF32;7601;PLAT1 /12 DEVICE DF32;7401;PLAT2 /13 DEVICE DF32;7201;PLAT3 /14 DEVICE DF32;7001;PLAT4 /15 DEVICE TC08;6437;QTC08 /16 DEVICE LINC;6437;QLINC /17 DEVICE TM8E;0000;0 /20 DEVICE TD8E;6437;QTD8E /21 DEVICE BAT ;0000;0 /22 DEVICE RK8E;1520;QRK8E /23 DEVICE NULL;0000;0 /24 ZBLOCK 4 /25 ZBLOCK 4 /26 DEVICE TA8E;0000;QTA8E /27 DEVICE VR12;0000;QVR12 /30 ZBLOCK 4 /31 ZBLOCK 4 /32 ZBLOCK 4 /33 ZBLOCK 4 /34 ZBLOCK 4 /35 ZBLOCK 4 /36 ZBLOCK 4 /37 DEVICE SIDK;1600;QSID /40 /**W** ZBLOCK TYPTBL+400-. PAGE FIELD 1 *2000 $