/ NODATE, JMS I (PRMESG NONE DT, 0 TM1, 0 TM2, 0 DATEM, 0 DAY, 0 YEAR, 0 SQSUB, 0 TAD I (7600 SZA CLA JMP I SQSUB TAD I (7617 DCA I (7600 JMP I SQSUB CREFSB, 0 JMP I CREFSB PAGE /CCL REMEMBERS UP TO 8 COMMAND LINES (EACH UP TO 55 DECIMAL /SIXBIT CHARACTERS LONG) IN BLOCK 65 ON THE SYSTEM DEVICE. /THIS BLOCK WHEN READ INTO 04000-04377 HAS THE FOLLOWING FORMAT: /4000-4037 REM-LINE 0 /4040-4177 REM-LINE 1 /4100-4137 REM-LINE 2 /4140-4177 REM-LINE 3 /4200-4237 REM-LINE 4 /4240-4277 REM-LINE 5 /4300-4337 REM-LINE 6 /4340-4377 REM-LINE 7 /EACH REM-LINE HAS THE FOLLOWING FORMAT: /WORD 0: IN-USE FLAG, MUST BE '1234' TO INDICATE LINE WAS REMEMBERED HERE /WORD 1: DATE LINE WAS REMEMBERED /WORD 2: COMMAND DEPENDENT INFORMATION /WORD 3: RESERVED FOR FUTURE EXPANSION /WORDS 4-37 COMMAND LINE NOT INCLUDING KEYWORD OR FOLLOWING SPACES / PACKED IN 6-BIT AND TERMINATED BY A 6-BIT 0. /ROUTINES: / TAD (DEP / JMS REMEM / N /REMEMBERS CURRENT LINE IN REM-LINE N. AC IS LINE DEPENDENT INFORMATION. /IF LINE IS TOO BIG, THIS PRINTS A WARNING MESSAGE AND RETURNS AS IF OK. / JMS RECALL / N /RECALLS REM-LINE N INTO BUFFER /IF NOTHING THERE, PRINTS A BAD SYNTAX MESSAGE AND RETURNS TO OS/8. /UPON RETURN, LINE-DEPENDENT INFO IS IN AC. /IF DATES DON'T MATCH, IT'S NOT THERE UNLESS DATE = -1 /0 USED BY TECO, MAKE COMMANDS /1 USED BY EDIT, CREATE COMMANDS /2 USED BY COMPILE, EXECUTE COMMANDS & PAL. / DEPENDENT WORD IS PTR TO FIRST ENTRY IN MAIN TABLE /3 USED BY 'UA' COMMAND /4 USED BY UB /5 USED BY UC / JMS FOREVER /CAUSES NEXT CALL TO REMEM TO INSERT -1 AS DATE REMSPACE=4000 REMBLOCK=65 REMEM, 0 DCA DEP TAD I (REMD SMA CLA JMP I REMEM /DON'T REMEMBER IF JUST RECALLED JMS I (RDREM JMP I (MEMBIG TAD I REMEM ISZ REMEM CLL RTL RTL RAL /MULTIPLY BY 40 TAD (REMSPACE DCA LPTR TAD (1234 CDF 0 DCA I LPTR CDF 10 ISZ LPTR FORVR, TAD I (DATWD /REPLACED BY CMA IF WANT NO DATE JMS LPUT /STORE DATE TAD DEP JMS LPUT /STORE DEPENDENT INFO JMS LPUT /RESERVED JMS I (SCAN /GO PAST KEYWORD AND BLANKS TAD I (LBEGIN DCA XR RELUP, JMS I (GETF JMP LZER JMS I (ROTL DCA TML JMS I (GETF JMP RZER TAD TML JMS LPUT JMP RELUP RZER, TAD TML LZER, JMS LPUT JMS I (WRREM JMP I (MEMBIG REMGO, JMP I REMEM DEP, 0 LPTR, 0 /PTS TO REM-LINE TML, 0 /TEMP /PUT INTO REM-LINE LPUT, 0 DCA TML TAD LPTR AND (37 SNA CLA JMP I (MEMBIG TAD TML CDF 0 DCA I LPTR CDF 10 ISZ LPTR JMP I LPUT FOREVER,0 TAD LCMA DCA FORVR JMP I FOREVER /NON-ZERO MEANS SET DATE TO -1 RECALL, 0 JMS I (RDREM JMP I (REMERR TAD I RECALL ISZ RECALL JMS I (ROTL RAR TAD (REMSPACE DCA LPTR JMS LGET TAD (-1234 SZA CLA JMP I (REMER2 JMS LGET SNA JMP I (REMER2 LCMA, CMA SNA JMP FOREV IAC TAD I (DATWD /SAME DAY? SZA CLA JMP I (REMER2 FOREV, JMS LGET DCA DEP JMS LGET /IGNORE RESERVED WORD CLA TAD (BEGLN-1 DCA XR TAD (BEGLN-1 DCA I (LBEGIN RECLUP, JMS LGET DCA TML TAD TML JMS I (ROTL RAL JMS I (PUTF JMP RECLV TAD TML JMS I (PUTF JMP RECLV JMP RECLUP RECLV, TAD DEP JMP I RECALL LGET, 0 CDF 0 TAD I LPTR CDF 10 ISZ LPTR JMP I LGET PAGE PUTF, 0 AND (77 SNA JMP PUTZ ISZ PUTF TAD (240 AND (77 TAD (240 PUTZ, CDF 0 DCA I XR CDF 10 JMP I PUTF CHKSUP, 0 JMS FUDG JMS I (ASSIGN TAD NAME1 SNA CLA JMP I CHKSUP /CAN'T SUP IF NO FILENAME TAD I (DVICE JMS I (LOOK /LOOK UP FILE NAME1 JMP I CHKSUP /NOT FOUND (GOOD) JMS I (PRINT SUP JMP I CHKSUP REMERR, JMS I (PRMESG REMBAD REMER2, JMS I (PRMESG BADREM MEMBIG, CLA JMS I (PRINT MEMWARN JMP I (REMGO RDREM, 0 CIF 0 JMS I (7607 200 /READ 2 PAGES INTO FIELD 0 4000 /LOCATION 4000 REMBLOCK SKP CLA ISZ RDREM JMP I RDREM WRREM, 0 CIF 0 JMS I (7607 4200 /WRITE 2 PAGES FROM FIELD 0 4000 /LOCATION 4000 REMBLOCK SKP CLA ISZ WRREM JMP I WRREM FUDG, 0 DCA I (OUTSW /LOAD HANDLER TAD I (OUTLIM CIA DCA CLXR JMP I FUDG K8, 0 TAD (1716 JMS I (PRWD TAD (1431 JMS I (PRWD JMP I K8 ROTL, 0 CLL RTL RTL RTL JMP I ROTL /GET FROM INPUT LINE VIA XR GETF, 0 CDF 0 TAD I XR CDF 10 SZA ISZ GETF AND (77 JMP I GETF /THIS GETS A DEV:NAME.EXT SPECIFICATION (USING LXR) /PUTTING RESULT IN DEV1,DEV2, NAME1-4. /IT GIVES A FATAL ERRORR MESSAGE IF BAD. GETSPC, 0 STA DCA DVFLAG DCA DEV1 FILLP1, DCA DEV2 FILLP, JMS I (GNAME TAD (-": /AC CONTAINED DELIM SNA CLA JMP DEVNAM DCA I (NUMC JMP I GETSPC DEVNAM, CLA IAC TAD I (PERDSW TAD I (NUMC SZA CLA JMP CDERA /. OR # IN DEVICE NAME TAD NAME1 DCA DEV1 ISZ DVFLAG JMP CDERA /CATCHES A:B: TAD NAME2 JMP FILLP1 DVFLAG, 0 CDERA, JMS I (PRMESG BADEV PAGE / TAD (-# OF LOCS TO MOVE / JMS MOVE / FROM CDF / FROM LOC / TO CDF / TO LOC MOVE, 0 DCA T TAD I MOVE /GET FROM CDF DCA FRCDF ISZ MOVE STA TAD I MOVE /GET FROM LOC-1 DCA XR ISZ MOVE TAD I MOVE /GET TO CDF DCA TOCDF ISZ MOVE STA TAD I MOVE /GET TO LOC-1 DCA XR2 ISZ MOVE /POINT TO RETURN FRCDF, HLT TAD I XR TOCDF, HLT DCA I XR2 ISZ T JMP FRCDF CDF 10 JMP I MOVE CDINIT, 0 TAD I DEFALT TAD (-5200 SZA CLA /IS THIS A REQUEST FOR A /"SPECIAL DECODE"? JMP CDCONT /NO TAD ALTLIM DCA OUTLIM /YES, SET UP THE PROPER LOCATIONS TAD ALTDF1 DCA LIMDIF /TO GET 1 OUTPUT AND 5 INPUT FILES TAD ALTDF2 DCA BEGDIF /ALL OF WHICH ARE /5-WORD ENTRIES DCA I PLKUPS TAD STARJM DCA I PSTARS /AND ALLOW * /AS A FILE OR EXTENSION NAME TAD CCLA /STOPS FETCHES IN SPECIAL MODE DCA I PSPKG1 /NO HANDLER FETCHES NECESSARY EITHER /SINCE NO LOOKUPS CDCONT, JMS I (BKA STA DCA I (OUTSW JMS I (ZEROCD TAD LBEGIN DCA LXR JMP I CDINIT /CONSTANTS NECESSARY TO SUPPORT "SPECIAL DECODE" MODE ALTLIM, 1-MOFILE-5 ALTDF1, MOFILE+5-MPARAM+5 ALTDF2, 5 PLKUPS, LKUPSW STARJM, RELOC STARNM JMP STARNM RELOC PSTARS, STARSW PSPKG1, SPKLG1 BEGDIF, MIFILE-MOFILE LIMDIF, MIFILE-MPARAM+2 OUTLIM, 1-MIFILE LBEGIN, 0 /PTS TO 1 CHAR BEFORE COMMAND KEYWORD ARGUMENT NMOVE, 0 TAD I (FLAG RTL SMA CLA /FEATURE ENABLED? JMP CCERB /NO TAD I (OUTSW SZA CLA JMP CCERB /ON OUTPUT SIDE TAD I NMOVE ISZ NMOVE DCA PT1 TAD I PT1 SNA IAC DCA I PT1 /SET DEVICE TO SYS IF NONE ISZ PT1 TAD I PT1 /WAS THERE A SPECIFICATION THERE? SZA CLA JMP I NMOVE /YES, DO NOTHING TAD I (FLAG AND (200 /GET 'COPY EXTENSION' BIT SZA CLA STA /COPY 4 WORDS IF BIT 4 WAS ON TAD (-3 /OTHERWISE ONLY COPY 3 WORDS JMS MOVE CDF 10 NAME1 CDF 10 TEM, PT1, 0 JMP I NMOVE CCERB, JMS I (PRMESG BADSW VERTN, 0 JMS I (RDMON /READ MONITOR CDF 0 TAD I (2031 /GET PATCH LEVEL SNA TAD ("! AND (77 DCA TEM TAD I (2000 /GET VERSION # CDF 10 SPA CCLA, CLA /"0" MEANS OLD TAD (60 JMS I (ROTL TAD TEM CDF 0 DCA I (VLOC CDF 10 JMS I (PRMESG VMES PAGE ZBLOCK 7600-. /CCL.SV (THE IMPORTANT PART) MUST BE A SINGLE CORE-LOAD /CONTIGUOUS LOAD, BECAUSE OF THE WAY THE MONITOR LOADS IT. /FORTUNATELY, FIELD 0 STUFF OCCURS AFTER FIELD 1 STUFF IN THE /OS/8 CORE-IMAGE FORMAT. /FOR VERSION OF THE MONITOR BEFORE LEVEL A, /THE TOTAL LENGTH OF CCL.SV MUST BE LESS THAN14 BLOCKS /OR IT READS OVER 7600. /BUT NOW CCL COMES IN AND READS THE REMAINDER OF ITSELF /INTO FIELD 0. 400-777 IS IGNORED BY SKIPPING A BLOCK, /THEN THER REST OF CCL (7 PAGES) IS READ IN. FIELD 0 *400 /IT LOADS OVER THE SAVE, DATE OVERLAY /AND STARTS AT LOCATION 600 /KEYWORD TABLE IN 400- /CONSISTS OF COMMANDS 2 CHARS PER LOCATION /IN 5-BIT ASCII (ONLY LETTERS ARE LEGAL) /SEPARATED FROM EACH OTHER BY 6-BIT 00'S. /EACH ENTRY STARTS ON A WORD BOUNDARY, BUT IF YOU /NEED THE ROOM, THEY NEED NOT WITH A SIMPLE FIX /BIT 40 ON MEANS THAT THE CHARACTER ISN'T REQUIRED /BUT IF THE USER DOES TYPE A LETTER, IT MUST MATCH. VNO, CCLTAB KEYWRD, 0530 /EX ECUT 4543 6564 0002 /BA CKSP 0143 5363 6000 0217 /BO OT 5764 0003 /CCL 0314 0003 /COMPA R 1715 2001 6200 0317 /COM PIL 1560 5154 0003 /COP Y 1720 7100 0317 /COR E 2245 0003 /CREA TE 2205 0164 4500 0322 /CREF 0506 0004 /DA TE 0164 4500 0405 /DEL ETE 1445 6445 0004 /DE A 0541 0004 /DIR ECT 1122 4543 6400 0504 /ED IT 5164 0005 /EO F 1746 0010 /HE LP 0554 6000 1411 /LI ST 6364 0014 /LO AD 1741 4400 1501 /MAK E 1345 0015 /MAP 0120 0015 /MUNG 2516 0700 2001 /PAL 1400 2022 /PRI NT 1156 6400 2025 /PU NCH 5643 5000 2205 /REN AME 1641 5545 0022 /RES 0523 0022 /REW IND 0527 5156 4400 2305 /SET 2400 2313 /SK IP 5160 0023 /SQ UISH 2165 5163 5000 2325 /SU BMIT 4255 5164 0024 /TE CO 0543 5700 2431 /TY PE 6045 0025 /UN LOAD 1654 5741 4400 2501 /UA 0025 /UB 0200 2503 /UC 0026 /VE R 0562 0032 /ZERO 0522 1700 00 ZBLOCK 600-. PAUSE