/35 VERSN3 AVL PHIL SIEMENS YVER= "3&77 /VERSION # YPLEV= "F&77 /PATCH LEVEL VURZUN= YVER^100+YPLEV / 29-SEP-78 --- OS8 V3D UPDATE / 11-NOV-84 --- CCLX CHANGES / VERSN3 PROVIDES AN EXPANDED CAPABILITY OF THE .VER / COMMAND. THE GENERAL STRUCTURE IS: / / .VER [ODEV:[FILE.XX]][<][IDEV:][OPTS] / / .VER IS THE DEFAULT COMMAND AND PRINTS THE VERSION # / OF OS/8 AND CCL AS USUAL. / / .VER IDEV: PRINTS THE VERSION # OF OS/8 AND CCL / THAT ARE PRESENT ON IDEV. IF ONE OR BOTH ARE / MISSING A "NOT PRESENT" MESSAGE IS OUTPUT, E.G.: / / SYSTEM NOT PRESENT / CCL V1F / / THE /E OPTION CAUSES AN EXPANDED PRINTOUT TO / OCCUR. THE VERSION NUMBERS OF ALL CUSPS THAT / VERSN3 KNOWS ABOUT ARE PRINTED ALSO. / / .VER /E / OS/8 KBM V3Q / CCL V1F / / ABSLDR.SV 4A / PIP.SV 12B / / IF THE FILE VERNUM.SV IS PRESENT ON SYS, IT WILL / BE USED TO SPECIFY ADDITIONAL CUSPS. SEE LATER / COMMENTS FOR TABLE FORMAT. ORIGIN THE TABLE AT / 00000, LOAD AND SAVE IT. THE LENGTH MUST BE LESS / THAN 1600 OCTAL. / NOTE THAT CCL MUST BE REASSEMBLED TO CHAIN / TO VERSN3 IN ORDER FOR THESE COMMANDS TO WORK. / / /TO MODIFY CCL: / SEARCH FOR TAG XVER, / CHANGE THIS LINE TO: / / XVER, 4000;STAR;0;0;0;0;VERSN3 / / SEARCH FOR TAG VMES, / CHANGE THIS LINE TO: / / VERSN, FILENAME VERSN3.SV / CORE LAYOUT / 00000-06577 SCRATCH / 06600-07177 INPUT HANDLER / 07200-07577 OUTPUT HANDLER / 10000-11777 USER SERVICE ROUTINE / 12000-16577 PROGRAM / 16600-17177 INPUT BUFFER / 17200-17577 OUTPUT BUFFER / PARAMETERS SCRACH=0 /SCRATCH BUFFER STARTING ADDRESS IBUF=6600 /INPUT BUFFER STARTING ADDRESS OBUF=7200 /OUTPUT BUFFER STARTING ADDRESS OUT=20 /POINTER TO OUTPUT HANDLER IN=21 /POINTER TO INPUT HANDLER IDEV=22 /INPUT DEVICE NUMBER ODEV=23 /OUTPUT DEVICE NUMBER SIZE=24 /SIZE OF OUTPUT FILE (TENTATIVE) VBUF=25 /POINTER TO VERSN TABLE CNT=26 TEM=27 AC4000= STL CLA RAR AC6000= STL CLA IAC RTR / THE VERSION # FOR CCL IS AT BLOCK / 'OFFS2' AT RELATIVE LOCATION 'QP'. QP=151 /[24] OFFS2=20 /[24] QPX=IBUF+QP DEBUG=0 /SET = 1 FOR DEBUG CODE XLIST DEBUG-1 IFNZRO DEBUG <*200 CIF 10 JMS I (7700 /LOCK USR 10 NOP HLT JMP .-1 *6600 ZBLOCK 1000> XLIST 0-0 FIELD 1 /START UP VERSN WITH A RUN OR CHAIN *2000 /ALLOW USR TO BE RESIDENT CLA CMA /.R OR .RU ENTRY DCA CHNFLG /CHAIN ENTRY JMS NOREST /SET JSW SO WE CAN'T BE RESTARTED /AND LOCK USR IN MEMORY ISZ CHNFLG /CHAIN ENTRY FROM CCL? JMP CHENT /YES JMS I (200 /GET COMMAND DECODER 5 5200 /IN SPECIAL MODE 0 CHENT, TAD I (7644 AND (4 /LOOK FOR /V SZA CLA JMS I (VERSUN /PRINT VERSION # OF VERSN3.SV TAD I (7600 SZA /WAS OUTPUT DEVICE SPECIFIED? JMP OOK /YES JMS I (200 /NO -- USE TTY AS DEFAULT 12 DEVICE TTY 0 JMP ER1 TAD .-3 /GET OUTPUT DEVICE NUMBER OOK, DCA ODEV TAD ODEV JMS I (200 /LOAD THE OUTPUT HANDLER 1 7201 JMP ER2 TAD .-2 /GET ENTRY POINT DCA OUT /SAVE IT TAD ODEV JMS I (200 /ENTER THE FILE 3 SBLK, 7601 0 JMP ER3 TAD SBLK /GET STARTING BLOCK DCA I (OBLK /INIT THE OUTPUT ROUTINE TAD SBLK+1 /GET SIZE AVAILABLE DCA SIZE TAD I (7605 SNA /WAS INPUT DEVICE SPECIFIED? CLA IAC /NO -- USE SYS AS DEFAULT DCA IDEV /SAVE INPUT DEVICE NUMBER TAD IDEV JMS I (200 /GET HANDLER 1 6601 JMP ER4 TAD .-2 DCA IN /INPUT HANDLER ENTRY POINT JMS I (PROS8 /PRINT OS8 AND CCL VERSIONS TAD I (7643 AND (200 SNA CLA /WAS /E OPTION SPECIFIED? JMP .+3 /NO JMS I (VNUMS /YES -- PRINT ALL KINDS OF VERSION #'S JMS I (VNLUK /SEE IF VERNUM FILE IS THERE TAD (232 JMS I (PACKB /CLOSE FILE NOP JMS I (BUFFUL /DUMP THE BUFFER TAD SBLK CIA TAD I (OBLK DCA CBLK /# OF BLOCKS ACTUALLY WRITTEN TAD ODEV JMS I (200 4 7601 CBLK, 0 JMP ER13 EXIT, JMS I (CRLF TSF /WAIT FOR LAST CHAR JMP .-1 CIF CDF 0 JMP I (7605 /BACK TO MONITOR CHNFLG=CBLK NOREST, 0 CDF 0 TAD I (7746 AND (6777 TAD (1000 DCA I (7746 /SET JSW FOR NO RESTART CDF 10 JMS I (7700 /LOCK USR IN MEMORY 10 JMP I NOREST ER1, JMS I (PRMESG /NO TTY HANDLER EMES1 JMP EXIT ER2, JMS I (PRMESG /NO SUCH OUTPUT DEVICE EMES2 JMP EXIT ER13, JMS I (PRMESG /NO ROOM FOR OUTPUT FILE EMES13 JMP EXIT ER3, JMS I (PRMESG /CAN'T CREATE OUTPUT FILE EMES3 JMP EXIT ER4, JMS I (PRMESG /NO INPUT HANDLER EMES4 JMP EXIT VERSUN, 0 /PRINT VERSION # OF VERSN3.SV JMS I (PRMESG VXXX JMS I (CRLF JMP I VERSUN PAGE / PRINT OS/8 AND CCL VERSION #'S PROS8, 0 TAD I (7600 /GET OUTPUT DEVICE SNA CLA /WAS ONE SPECIFIED? JMP PRO1 /NO -- DON'T GIVE TITLE ON TTY JMS I (TITLE /GIVE TITLE JMS I (XPRM VXXX JMS I (DATE PRO1, TAD IDEV JMS I (200 /LOOKUP CCL.SV 2 CBK, CCLSV 0 IAC /FILE NOT THERE DCA CCLFLG TAD CBK /CHECK IF FILE STRUCTURED SNA JMS I (NONFIL /ITS NOT TAD (OFFS2 DCA CB1 CIF 0 JMS I IN /GET DIRECTORY AND SYSTEM 1600 SCRACH 1 JMP ER8 CDF 0 TAD I (1 /CHECK DIRECTORY TAD (-70 SPA CLA /SYSTEM PRESENT? JMP NOSYS /NO TAD I (3000 /MAYBE TAD (-7 SMA CLA JMP NOSYS /NO SYSTEM TAD I (3000 DCA VNUM /GET VERSION OF MONITOR TAD I (3031 DCA PLEV /GET PATCH LEVEL OF MONITOR CDF 10 TAD PLEV SNA TAD ("! AND (77 DCA PLEV /MASK PATCH LEVEL TO 6 BIT TAD VNUM /GET VERSION SPA CLA TAD (60 CLL RTL RTL RTL TAD PLEV DCA VLOC /STORE VERSION AND PATCH LEVEL JMS I (XPRM OS8M JMP I (XTEND /[27] DO MORE MONITOR V#'S VCCL, JMP NOCL+3 /CCLX HACK /VCCL, TAD CCLFLG /GET CCL PRESENT FLAG SZA CLA /WAS CCL PRESENT? JMP NOCL /NO CIF 0 JMS I IN /GET CCL BLOCK 210 IBUF CB1, 0 JMP ER8 TAD I (QPX /GET VERSION # OF CCL DCA CV /PUT IN MESSAGE STRING JMS I (XPRM /PRINT CCL VERSION CCLM JMS I (XCRL JMP I PROS8 NOSYS, CDF 10 JMS I (XPRM EMES9 /SYSTEM NOT PRESENT JMS I (XCRL JMP VCCL NOCL, JMS I (XPRM EMES10 /CCL NOT PRESENT JMS I (XCRL JMP I PROS8 VNUM, 0 PLEV, 0 OS8M, TEXT \KBM ??\ VLOC=.-2 CCLM, TEXT \CCL ??\ CV=.-2 ER8, CLA JMS I (PRMESG /READ ERROR ON INPUT DEVICE EMES8 JMP I (EXIT CCLFLG, 0 CCLSV, FILENAME CCL.SV VNFIL, FILENAME VERNUM.SV PAGE XTEND, JMS I (XCRL /[27] CRLF CIF JMS I IN 110 /ONE PAGE IBUFI, IBUF 51 /COMMAND DECODER JMP I (ER8 /BAD SCENE TAD I IBUFI DCA CDLOC CIF JMS I IN 110 IBUF 60 /OCTAL DEBUGGING TECHNIQUE JMP I (ER8 TAD I IBUFI DCA ODTLOC CIF JMS I IN 110 IBUF 67 /CCL OVERLAY TABLE JMP I (ER8 TAD I IBUFI SNA TAD (377 /MAKE A ? TAD (3500 /SPACE (35 + 3 = 40) DCA OVLOC JMS I (XPRM CDM JMS I (XCRL JMS I (XPRM ODTM JMS I (XCRL JMP .+3 /CCLX HACK / JMS I (XPRM OVM JMS I (XCRL JMP I (VCCL CDM, TEXT \CD ??\ CDLOC=.-2 ODTM, TEXT \ODT ??\ ODTLOC=.-2 OVM, TEXT \CCL OVERLAY ??\ OVLOC=.-2 PAGE /PRINT VERSION NUMBERS OF CUSPS / FIRST DO ALL LOOKUPS / IF FILE NOT PRESENT SET WORD 5 IN TABLE TO 0 VNUMS, 0 JMS I (XCRL /GIVE AN EXTRA CR, LF TAD (BUF1 DCA VBUF /SET POINTER TO TABLE VLUK, TAD I VBUF /GET WORD FROM FILE NAME TABLE SNA CLA /END OF TABLE JMP VFIND /YES TAD VBUF DCA VN1 /SET UP POINTER TO FILE NAME FOR LOOKUP TAD VBUF TAD (4 DCA VBUF TAD IDEV JMS I (200 2 /LOOKUP THIS FILE VN1, 0 0 JMP VN2 /NO FILE TAD VN1 /CHECK FOR NON-FILE-STRUCTURED SZA CLA JMP .+4 TAD VN1+1 SNA CLA JMS I (NONFIL /ITS NOT FILE STRUCTURED TAD VN1 VN2, DCA I VBUF /STORE STARTING BLOCK OF FILE TAD (7 /[26] TAD VBUF /UPDATE POINTER DCA VBUF JMP VLUK /------------------- VFIND, TAD (BUF1 DCA VBUF /SET UP POINTER VFND0, DCA COL /ZERO COLUMN COUNT TAD (-3 DCA CNT /SET COUNTER FOR 6 CHARS TAD I VBUF SNA CLA JMP I VNUMS TAD VBUF TAD (4 DCA TEM TAD I TEM /GET BLOCK SZA CLA /IS IT ZERO? JMP VFND1 /NO TAD VBUF /YES -- NO FILE TAD (13 /[26] BUMP THE POINTER JMP VFND0-1 /-------------------- VFND1, TAD I VBUF JMS I (VP2 TAD I VBUF JMS I (VP ISZ VBUF ISZ CNT /DONE 6 CHARS? JMP VFND1 /NO TAD I VBUF /GET EXTENSION SNA CLA /IS IT ZERO? JMP VFND2 /YES TAD (". JMS I (PACKB /SEND OUT "." JMS I (BUFFUL ISZ COL TAD I VBUF /PRINT EXTENSION JMS I (VP2 TAD I VBUF JMS I (VP VFND2, ISZ VBUF /TAB OUT TO PROPER COLUMN TAD COL TAD (-13 DCA CNT VFND3, TAD (240 JMS I (PACKB JMS I (BUFFUL ISZ CNT JMP VFND3 TAD I VBUF /GET STARTING BLOCK ISZ VBUF DCA I (FN2 /SET UP DCA NONUM JMS BRANCH /FIRST LOC. JMS BRANCH /SECOND LOC. JMS BRANCH /THIRD LOC. JMS I (XCRL JMP VFND0 BRANCH, 0 /HANDLE A VERSION # LOCATION TAD I VBUF /GET TYPE WORD CLL RTR RTR RTR AND (77 /MASK THE TYPE OF VERSION # SNA /IS IT ZERO? JMP BR1 /YES -- IGNORE IT TAD (BRATAB /ADD TABLE START DCA TYPE TAD I TYPE /GET SUB. START DCA TYPE JMS I (FSEG /GET VERSION LOC. JMP NONUM JMS I TYPE /GO SEND IT OUT JMP I BRANCH BR1, ISZ VBUF ISZ VBUF JMP I BRANCH TYPE=VN1 COL=VN1+1 NONUM, 0 JMS I (XPRM /CAN'T FIND VERSION NUMBER EMES14 TAD .+2 DCA NONUM JMP I BRANCH PAGE /TYPE 1, ONE WORD, PACKED, STRIPPED ASCII TYPE1, 0 TAD TEM JMS I (VP2 /SEND LEFT HALF TAD TEM JMS I (VP /SEND RIGHT HALF JMP I TYPE1 /TYPE 2 -- RIGHT HALF 6 BITS ONLY ASCII TYPE2, 0 TAD TEM JMS I (VP JMP I TYPE2 /TYPE 3 -- LEFT HALF 6 BITS ONLY, ASCII TYPE3, 0 TAD TEM JMS I (VP2 JMP I TYPE3 /TYPE 5 -- ONE WORD, CONVERT TO DECIMAL TYPE5, 0 CLA DCA CNT TAD TEM /DIVIDE BY 100 TAD (-144 ISZ CNT SMA JMP .-3 TAD (144 DCA TEM CLA CMA TAD CNT JMS OTOD /CONVERT DIVIDEND TO ASCII DCA CNT TAD CNT TAD (-6040 SNA CLA JMP VFND9 TAD CNT CLL RTR RTR RTR AND (77 TAD (-40 SNA CLA JMP .+3 TAD CNT JMS I (VP2 TAD CNT JMS I (VP VFND9, TAD TEM JMS OTOD /CONVERT LOW ORDER DCA TEM TAD TEM CLL RTR RTR RTR AND (77 TAD (-40 SNA TAD (20 TAD (40 JMS I (VP TAD TEM JMS I (VP JMP I TYPE5 /TYPE 6 -- 2 CHARS IN CREF, PAL SYM TABLE STYLE TYPE6, 0 DCA D45 /CLEAR QUOTIENT JMP .+3 TYPE6A, ISZ D45 /INCREMENT THE QUOTIENT DCA TEM TAD TEM TAD (-52 SMA JMP TYPE6A TAD (52 JMS TYPE6F /MAKE ASCII DCA TEM TAD D45 JMS TYPE6F CLA CLL /[30] JMS I (VP /PRINT "V" TAD TEM JMS I (VP JMP I TYPE6 TYPE6F, 0 SNA JMP TYPE6G TAD (-37 SMA SZA TAD (-60 TAD (77 TYPE6G, TAD (240 JMP I TYPE6F OTOD, 0 /CONVERT OCTAL TO DECIMAL TO ASCII DCA TT DCA T TAD TT TAD (-12 ISZ T SMA JMP .-3 TAD (72 DCA TM STA TAD T SNA TAD (40-60 TAD (60 CLL RTL RTL RTL TAD TM JMP I OTOD TT, 0 T, 0 D45, TM, 0 PAGE /FIND THE BLOCK, AND OFFSET FOR VERSION NUMBER FSEG, 0 TAD I VBUF AND (70 CIA DCA TFLD /SAVE FIELD ISZ VBUF TAD I VBUF DCA LOCV ISZ VBUF FN1, CIF 0 JMS I IN /GET FIRST BLOCK OF FILE 210 IBUF FN2, 0 JMP ER15 TAD FN2-1 DCA PF0 /POINTER TO SEGMENTS TAD I PF0 ISZ PF0 ISZ PF0 ISZ PF0 ISZ PF0 DCA CNT /SAVE NUMBER OF SEGMENTS IAC DCA BLOCK /INIT BLOCK TO 1 NXSEG, TAD I PF0 DCA ORIG ISZ PF0 TAD I PF0 AND (70 DCA FLDX /FIELD OF SEGMENT TAD I PF0 ISZ PF0 CLL RAL AND (7600 DCA PNUM /WORD COUNT TAD TFLD TAD FLDX SNA CLA /DO FIELDS MATCH? JMP FLSEG /YES BUBLK, CLA TAD PNUM CLL RTL /NO -- UPDATE BLOCK COUNT RTL RAL SZL IAC AND (37 TAD BLOCK DCA BLOCK ISZ CNT JMP NXSEG JMP I FSEG /CAN'T FIND VERSION NUMBER /FOUND RIGHT FIELD FLSEG, CLL /CHECK TO SEE IF LOCATION IS TAD ORIG /IN THIS SEGMENT CIA TAD LOCV SNL JMP BUBLK CIA TAD PNUM SZL SNA CLA JMP BUBLK TAD ORIG CIA TAD LOCV DCA OFSEG /SAVE OFFSET INTO THIS SEGMENT TAD OFSEG CLL RTL RTL RAL AND (17 DCA BLKX TAD BLKX TAD BLOCK TAD FN2 DCA BLOCK /THIS IS THE BLOCK TAD BLKX CLL RTR RTR RAR CIA TAD OFSEG TAD (IBUF DCA OFFSET /THIS IS OFFSET IN THAT BLOCK CIF 0 JMS I IN /GET THE PROPER BLOCK 210 IBUF BLOCK, 0 JMP ER15 ISZ FSEG TAD I OFFSET /GET THE VERSION NUMBER WORD DCA TEM /SAVE IT JMP I FSEG OFFSET, 0 ORIG, 0 FLDX, 0 PF0, 0 OFSEG, 0 TFLD, 0 LOCV, 0 BLKX, 0 ER15, CLA JMP I FSEG PNUM, 0 NONFIL, 0 JMS I (PRMESG /NON-FILE STRUCTURED INPUT EMES15 JMP I (EXIT PAGE /COOKBOOK #45 / CURFLD=10 BUFFLD=10 BUFBEG=OBUF /NOTE: MUST BE EVEN NUMBER BUFEND=OBUF+377 0 PACKB, .-. DCA PACKB-1 TAD PACKSW CDF BUFFLD SZA JMP PACKB1 TAD PACKB-1 DCA I PACPTR TAD PACPTR CLL RAR SNL CLA JMP .+4 CLA CLL CMA RAL DCA PACKSW SKP ISZ PACPTR JMP PACKB2 PACKB1, CLA CLL CMA TAD PACPTR DCA PACPTR TAD PACKB-1 RTL RTL DCA PACKB-1 TAD PACKB-1 AND C7400 TAD I PACPTR DCA I PACPTR ISZ PACPTR ISZ PACKSW JMP PACKB1+3 TAD PACEND CMA CLL TAD PACPTR SNL CLA JMP PACKB2 TAD PACBEG DCA PACPTR SKP PACKB2, ISZ PACKB CDF CURFLD JMP I PACKB PACPTR, BUFBEG PACKSW, 0 PACBEG, BUFBEG PACEND, BUFEND C7400, 7400 / /MODIFIED COOKBOOK #10A XPRM, 0 CLA CMA TAD I XPRM DCA XPR3 ISZ XPRM XPR1, CLA CMA DCA XPR4 ISZ XPR3 TAD I XPR3 RTR RTR RTR XPR2, AND (77 SNA JMP I XPRM TAD (240 AND (77 TAD (240 JMS PACKB JMS BUFFUL ISZ XPR4 JMP XPR1 TAD I XPR3 JMP XPR2 XPR3, 0 XPR4, 0 BUFFUL, 0 /WHEN THE OUTPUT BUFFER IS FULL, CIF 0 /DUMP IT TO THE DEVICE JMS I OUT 4210 OBUF OBLK, 0 JMP ER12 ISZ OBLK ISZ SIZE JMP I BUFFUL JMS I (PRMESG /OUTPUT FILE FULL EMES11 ER11, CIF CDF 0 JMP I (7605 ER12, CLA JMS I (PRMESG /WRITE ERROR ON OUTPUT DEVICE EMES12 JMP ER11 VP, 0 AND (77 SNA JMP I VP TAD (240 AND (77 TAD (240 ISZ I (COL JMS I (PACKB JMS I (BUFFUL JMP I VP VP2, 0 CLL RTR RTR RTR JMS VP JMP I VP2 TYPE7, 0 /[29 - BASIC EDITOR TAD TEM TAD (3700 /XS41 TO PACKED ASCII JMS VP2 TAD TEM TAD (37 /XS41 TO PACKED ASCII JMS VP JMP I TYPE7 / 29] PAGE /COOKBOOK 10A PRMESG, 0 CLA CMA TAD I PRMESG DCA PRMES3 ISZ PRMESG PRMES1, CLA CMA DCA PRMES4 ISZ PRMES3 TAD I PRMES3 RTR RTR RTR PRMES2, AND (77 SNA JMP I PRMESG TAD (240 AND (77 TAD (240 JMS PRINT ISZ PRMES4 JMP PRMES1 TAD I PRMES3 JMP PRMES2 PRMES3, 0 PRMES4, 0 /PRINT ON CONSOLE DEVICE PRINT, 0 JMP .+3 TSF JMP .-1 TLS CLA TAD (7000 DCA PRINT+1 JMP I PRINT CRLF, 0 TAD (215 JMS PRINT TAD (212 JMS PRINT JMP I CRLF XCRL, 0 TAD (215 JMS I (PACKB JMS I (BUFFUL TAD (212 JMS I (PACKB JMS I (BUFFUL JMP I XCRL / PRINT TITLE TITLE, 0 JMS I (XPRM /VERSION NUMBER REPORT FOR VREP TAD (DEVTAB-1 DCA TEM /POINTER TO DEVICE TABLE CLA CMA TAD 36 /POINTER TO PERMANENT DEV NAMES TAD IDEV DCA CNT TAD I CNT /GET HASH CODE FOR INPUT DEVICE CIA DCA MDEV TITL1, ISZ TEM TAD I TEM /GET DEVICE HASH CODE TO COMPARE SNA JMP NODEV /DON'T KNOW ABOUT THIS DEVICE TAD MDEV ISZ TEM SZA CLA /IS THIS A COMPARE? JMP TITL1 /NO -- TRY AGAIN TAD I TEM /GET POINTER TO MESSAGE DCA TITL2 JMS I (XPRM /PRINT DEVICE NAME TITL2, 0 JMS I (XPRM /: SPACES COLSP JMP I TITLE NODEV, TAD (NODEVX JMP TITL2-2 MDEV, 0 VNLUK, 0 /LOOKUP MORE IN EXTERNAL FILE IAC CLA JMS I (200 /LOOKUP VERNUM.SV ON SYS 2 VNLA, VNFIL 0 JMP I VNLUK /ITS NOT THERE TAD VNLA IAC DCA VNLB /BLOCK # CIF 0 JMS I (7607 1010 BUF1 VNLB, 0 JMP I (ER8 JMS I (VNUMS /PRINT THESE VERSION #'S JMP I VNLUK TYPE10, 0 /[30 - 6BIT OCTAL & 6BIT ASCII AC6000 TAD TEM JMS I (VP2 TAD TEM JMS I (VP JMP I TYPE10 TYPE11, 0 /[35 PACKED XS40 AC4000 TAD TEM JMS I (VP2 TAD TEM TAD (240 JMS I (VP JMP I TYPE11 PAGE / DATE PRINTING ROUTINE DATE, 0 TAD I (7666 /GET DATE WORD SNA JMP NODATE /NO DATE PRESENT DCA DTEM TAD DTEM CLL RTL RTL RAL AND (17 DCA TM1 /MONTH TAD TM1 /CHECK IF VALID MONTH SNA JMP BADATE TAD (-14 SMA SZA CLA JMP BADATE TAD TM1 TAD (MONLST-1 DCA TM2 TAD I TM2 DCA MONP /POINTER TO MONTH TAD DTEM AND (7 DCA TM2 CDF /[24] V3D UPDATE TAD I (7777 /[ CDF 10 CLL RTR RTR AND (30 TAD TM2 DCA TM2 /] TAD TM2 TAD (106 /[24] JMS I (OTOD /[24] DCA YEAR /YEAR TAD DTEM CLL RTR RAR AND (37 DCA DTEM TAD DTEM SNA /VALID DAY? JMP BADATE /NO JMS I (OTOD DCA DAY /DAY IN STRIPPED ASCII STL CLA RTL /2 TAD TM2 CLL RTR SNL SMA JMP LEAP ISZ I (JAN ISZ I (FEB LEAP, AND (37 TAD TM2 TAD (3 TAD DTEM DCA DTEM TAD TM1 TAD (JAN-1 DCA TM1 TAD I TM1 TAD DTEM DIV7, CLL TAD (-7 SZL JMP DIV7 TAD (7 TAD (WEEKLST DCA TM2 TAD I TM2 DCA WKP JMS I (XPRM /PRINT DAY OF WEEK WKP, 0 JMS I (XPRM /PRINT 'DAY' DAYDAY JMS I (XPRM /PRINT MONTH MONP, 0 JMS I (XPRM DAY XDA, JMS I (XCRL JMS I (XCRL JMP I DATE DAY, 0 5440 6171 YEAR, 0 0 DT, 0 TM1, 0 TM2, 0 DTEM, 0 NODATE, JMS I (XPRM /NO DATE NONE JMP XDA BADATE, JMS I (XPRM /BAD DATE BADXX JMP XDA PAGE /BRANCH TABLE FOR VERSION TYPES BRATAB, TYPE1 /NEVER HAPPEN! TYPE1 TYPE2 TYPE3 TYPE2 TYPE5 TYPE6 TYPE7 /[29] TYPE10 /[30] TYPE11 /[35] /ERROR MESSAGES EMES1, TEXT \NO TTY HANDLER!\ EMES2, TEXT \NO SUCH OUTPUT DEVICE!\ EMES3, TEXT \CAN'T CREATE OUTPUT FILE!\ EMES4, TEXT \NO INPUT HANDLER!\ EMES8, TEXT \READ ERROR ON INPUT DEVICE!\ EMES9, TEXT \SYSTEM NOT PRESENT \ EMES10, TEXT \CCL NOT PRESENT\ EMES11, TEXT \OUTPUT FILE FULL!\ EMES12, TEXT \WRITE ERROR ON OUTPUT DEVICE!\ EMES13, TEXT \NO ROOM FOR OUTPUT FILE!\ EMES14, TEXT \CAN'T FIND VERSION NUMBER!\ EMES15, TEXT \INPUT DEVICE IS NON-FILE-STRUCTURED!\ VXXX, TEXT \VERSION ?? \ VCON=. *.-4; VXXXY=.; VURZUN *VCON VREP, TEXT \OS8 V3R VERSION NUMBERS ON \ COLSP, TEXT \: \ DAYDAY, TEXT \DAY \ NONE, TEXT \NO DATE\ BADXX, TEXT \BAD DATE\ MON1, TEXT \JANUARY \ MON2, TEXT \FEBRUARY \ MON3, TEXT \MARCH \ MON4, TEXT \APRIL \ MON5, TEXT \MAY \ MON6, TEXT \JUNE \ MON7, TEXT \JULY \ MON8, TEXT \AUGUST \ MON9, TEXT \SEPTEMBER \ MON10, TEXT \OCTOBER \ MON11, TEXT \NOVEMBER \ MON12, TEXT \DECEMBER \ JAN, 0 FEB, 3 4;0;2;5;0;3;6;1;4;6 MONLST, MON1 MON2 MON3 MON4 MON5 MON6 MON7 MON8 MON9 MON10 MON11 MON12 WEEKLST, DAY1 DAY2 DAY3 DAY4 DAY5 DAY6 DAY7 DAY1, TEXT \SATUR\ DAY2, TEXT \SUN\ DAY3, TEXT \MON\ DAY4, TEXT \TUES\ DAY5, TEXT \WEDNES\ DAY6, TEXT \THURS\ DAY7, TEXT \FRI\ /DEVICE TABLE DEVTAB, 4631; QSYS 5723; QDSK 6003; QDSK0 6004; QDSK1 6005; QDSK2 6006; QDSK3 4604; QDTA0 4605; QDTA1 4606; QDTA2 4607; QDTA3 5604; QLTA0 5605; QLTA1 5606; QLTA2 5607; QLTA3 6373; QRKA0 6473; QRKB0 6374; QRKA1 6474; QRKB1 6375; QRKA2 6475; QRKB2 6376; QRKA3 6476; QRKB3 6410; QRXA0 6411; QRXA1 6412; QRXA2 6413; QRXA3 5010; QRX50 5011; QRX51 5012; QRX52 5013; QRX53 4764; QRD50 4765; QRD51 4766; QRD52 4767; QRD53 4215; QRL0A 4216; QRL0B 4216; QRL0C 4263; QR20A 4264; QR20B 4265; QR20C 4266; QR20D 4267; QR20E 0 NODEVX, TEXT \?DEV?\ QSYS, TEXT \SYS\ QDSK, TEXT \DSK\ QDSK0, TEXT \DSK0\ QDSK1, TEXT \DSK1\ QDSK2, TEXT \DSK2\ QDSK3, TEXT \DSK3\ QDTA0, TEXT \DTA0\ QDTA1, TEXT \DTA1\ QDTA2, TEXT \DTA2\ QDTA3, TEXT \DTA3\ QLTA0, TEXT \LTA0\ QLTA1, TEXT \LTA1\ QLTA2, TEXT \LTA2\ QLTA3, TEXT \LTA3\ QRKA0, TEXT \RKA0\ QRKA1, TEXT \RKA1\ QRKB0, TEXT \RKB0\ QRKB1, TEXT \RKB1\ QRKA2, TEXT \RXA2\ QRKB2, TEXT \RKB2\ QRKA3, TEXT \RKA3\ QRKB3, TEXT \RKB3\ QRXA0, TEXT \RXA0\ QRXA1, TEXT \RXA1\ QRXA2, TEXT \RXA2\ QRXA3, TEXT \RXA3\ QRX50, TEXT \RX50\ QRX51, TEXT \RX51\ QRX52, TEXT \RX52\ QRX53, TEXT \RX53\ QRD50, TEXT \RD50\ QRD51, TEXT \RD51\ QRD52, TEXT \RD52\ QRD53, TEXT \RD53\ QRL0A, TEXT \RL0A\ QRL0B, TEXT \RL0B\ QRL0C, TEXT \RL0C\ QR20A, TEXT \R20A\ QR20B, TEXT \R20B\ QR20C, TEXT \R20C\ QR20D, TEXT \R20D\ QR20E, TEXT \R20E\ 0 /END OF DEVICE TABLE PAGE /VERSN TABLE FORMAT / /11 WORD ENTRIES / / WORDS 1-4 FILE NAME AND EXTENSION [ 0=END OF TABLE] / WORD 5 STARTING BLOCK OF THE FILE / WORD 6 -- TYPE AND FIELD [TTF0] / TT = TYPE OF VERSION # / F = FIELD OF VERSION # / TT=0 -- IGNORE THIS ENTRY / TT=1 -- STRIPPED ASCII, ONE WORD, XXYY / TT=2 -- RIGHTMOST 6 BITS IN PACKED ASCII / TT=3 -- LEFTMOST 6 BITS IN PACKED ASCII / TT=4 -- RIGHTMOST 8 BITS IN ASCII / TT=5 -- OCTAL TO DECIMAL / TT=6 -- 2 CHARS IN PAL, CREF SYMTAB FORMAT / TT=7 -- 2 CHARS IN BASIC EDITOR FORMAT / TT=10 - LEFT 6BIT IS OCTAL, RIGHT 6BIT IS ASCII / TT=11 - PACKED XS40, ONE WORD (2 CHARS) / WORD 7 MEMORY LOCATION / WORD 8 SECOND TYPE AND FIELD / WORD 9 SECOND MEMORY LOCATION / WORD 10 THIRD TYPE AND FIELD / WORD 11 THIRD MEMORY LOCATION BUF1, FILENAME ABSLDR.SV; 0;110;2200;0;0;0;0 FILENAME BASIC.SV; 0;700;1321;0;0;0;0 FILENAME BASIC.AF; 0;100;3400;0;0;0;0 FILENAME BASIC.FF; 0;110;3400;0;0;0;0 FILENAME BASIC.SF; 0;110;2000;0;0;0;0 FILENAME BASIC.UF; 0;1000;3400;0;0;0;0 FILENAME BATCH.SV; 0;200;1701;300;1702;0;0 FILENAME BCOMP.SV; 0;100;5154;0;0;0;0 FILENAME BITMAP.SV; 0;110;3617;0;0;0;0 FILENAME BLOAD.SV; 0;100;3027;0;0;0;0 FILENAME BOOT.SV; 0;400;2240;400;2237;0;0 FILENAME BRTS.SV; 0;400;1115;400;1116;0;0 FILENAME BUILD.SV; 0;200;737;300;740;0;0 FILENAME CAMP.SV; 0;200;507;300;510;0;0 FILENAME CREF.SV; 0;600;2577;400;2576;0;0 FILENAME DIRECT.SV; 0;110;4204;0;0;0;0 FILENAME DTCOPY.SV; 0;100;1207;300;1210;0;0 FILENAME DTFRMT.SV; 0;100;1010;0;0;0;0 FILENAME EDIT.SV; 0;400;2374;400;2373;400;2372 FILENAME EPIC.SV; 0;100;353;0;0;0;0 FILENAME F4.SV; 0;100;1130;0;0;0;0 FILENAME FORT.SV; 0;400;343;400;344;0;0 FILENAME FOTP.SV; 0;110;5036;310;5037;0;0 FILENAME FRTS.SV; 0;200;5533;300;5534;0;0 FILENAME FUTIL.SV; 0;210;2516;110;2517;110;2520 FILENAME HEADER.SV; 0;200;6107;300;6110;0;0 FILENAME HELP.SV; 0;1000;177;0;0;0;0 FILENAME KREF.SV; 0;400;1325;400;1326;0;0 FILENAME LDF.SV; 0;1120;215;0;0;0;0 /FILENAME LFORM.SV; 0;100;1414;0;0;0;0 FILENAME LIBRA.SV; 0;100;4404;300;4405;0;0 FILENAME LIBSET.SV; 0;110;2753;0;0;0;0 FILENAME LINK.SV; 0;200;110;300;111;0;0 FILENAME LOAD.SV; 0;110;2073;310;2074;0;0 FILENAME LOADER.SV; 0;110;7374;0;0;0;0 FILENAME MACOVR.SV; 0;410;6064;410;6065;0;0 FILENAME MACREL.SV; 0;410;3135;410;3136;0;0 FILENAME MCPIP.SV; 0;110;4031;0;0;0;0 FILENAME MSBAT.SV; 0;100;3671;0;0;0;0 FILENAME PAL8.SV; 0;400;1531;400;1532;400;1533 FILENAME PASS2.SV; 0;100;327;0;0;0;0 FILENAME PASS2O.SV; 0;100;6131;0;0;0;0 FILENAME PASS3.SV; 0;300;712;300;714;0;0 FILENAME PIP.SV; 0;110;6622;110;6623;0;0 FILENAME PIP10.SV; 0;100;4320;0;0;0;0 FILENAME RALF.SV; 0;100;6276;300;6277;0;0 FILENAME RESORC.SV; 0;110;2340;0;0;0;0 FILENAME RKLFMT.SV; 0;1000;0;0;0;0;0 FILENAME RTPIP.SV; 0;410;2016;410;2017;0;0 FILENAME RXCOPY.SV; 0;400;6430;400;6431;0;0 FILENAME SABR.SV; 0;210;7032;110;7033;0;0 FILENAME SET.SV; 0;100;6165;0;0;0;0 FILENAME SRCCOM.SV; 0;410;1374;410;1375;0;0 /FILENAME SVPIP.SV; 0;110;3647;0;0;0;0 FILENAME TDCOPY.SV; 0;200;74;300;75;0;0 FILENAME TDFRMT.SV; 0;200;1007;300;1010;0;0 FILENAME TDINIT.SV; 0;200;1420;300;1421;0;0 FILENAME TERMIN.SV; 0;100;404;0;0;0;0 FILENAME TECO.SV; 0;500;4573;0;0;0;0 FILENAME VERSN3.SV; 0;110;VXXXY;0;0;0;0 0 $