/38 CCL FOR OS/8 / / / / / / / / / /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. / / / / / / / / / / MOFILE=7600 MIFILE=7617 MPARAM=7643 XR2=15 XR=16 TXR=17 AMFLAG=17 T=20 TT=21 DEF=22 NAME1=23 NAME2=24 NAME3=25 NAME4=26 NMBASE=27 DEV1=30 DEV2=31 DELIM=32 DEFALT=33 /POINTS TO DEFAULT EXTENSION LIST LXR=34 CLXR=35 PTR=36 DATWD=7666 BATERR=7000 /JMP HERE TO ABORT BATCH BATOUT=7400 /JMS HERE TO PRINT ON BATCH LOG BATSPL=7200 /MS HERE TO PERFORM SPOOLING WITH DEFAULT EXT IN AC BEGLN=1000 /CCL STARTING ADDRESS: 12000 /STARTING ADDRESS: 12001 /CHAIN STARTING ADDRESS:12002 / JOB STATUS WORD = 2003 CCLSW=435 DEASADR=427 PRQMRK=1357 GETCCL=1362 CCLBLK=67 /BLOCK ON SYS: USED BY CCL CCLTAB="E /MUST BE UPDATED IF TABLES CHANGE CCLVER="B /CCL VERSION # HNDLR=4400 BFR=5000 / CHANGES SINCE FIELD RELEASE VERSION: /1. RECURSIVE 'U' BUG FIXED /2. INTERNAL STRUCTURE OF CCL KEYWORD TABLE CHANGED /3. BUG RE REWRITING BLOCK CONTAINING PTR TO CORRECT FORTRAN FIXED /4. .SV PARTS OF FILENAMES REMOVED FROMT ABLE TO SAVE SPACE /5. COMPARE PASSES ALTMODE /6. TTY BECAME DEFAULT FOR COMPAR, DIRECT, AND MAP /7. BUG RE PASSING DEFAULT * FIXED /8. .LS FORM OF .CREF COMMAND REMOVED /9. BUG CONCERNING PROCESSOR SWITCHES FIXED /10. CCL SWITCH ALLOWED AFTER =N OPTION /11. BUG RE 'BAD SWITCH OPTION' MESSAGE FIXED /12. EXTRA SPACES NOW ALLOWED BEFORE CCL ARGUMENT /13. 'DOES NOT EXIST' MESSAGE NOW SPELLED CORRECTLY /14. 'BAD CCL SWITCH' MESSAGE ADDED /15. CCL EDIT # CHANGED TO CCL VERSION # /16. .EX CHAINS TO BCOMP NOT BASIC FOR .BA FILES /17. MUNG PTR: NOW WORKS /18. FIXED BUG RE MUNG /19. FIXED BUG RE CD FOR FILE > 2047 BLKS /20. FIXED BUG RE MAKE PTR: /21. ALLOWED 'EDIT' TO COPY FILE EXTENSION /22. FIXED BUG RE .CCL ON WRITE-LOCKED DEVICE /23. FIXED DATE PROBLEM /24. ALLOWED FF AND VT IN AN INDIRECT FILE TO BE IGNORED / FORMAT OF CCL TABLE /ENTRY PURPOSE / TABLE WIDTH=7 (BUT VARIES) /0 FLAG WORD /BIT MEANING IF ON /0 PERFORM CD (IF 0, OMIT ENTRIES 1-6) /1 DON'T PERMIT SPOOLING /2 ALLOW .LS, .NB, .MP SWITCHES /3 ADD _ TO END OF COMMAND STRING /4 SET OUTPUT EXTENSION = INPUT EXTENSION (IF BIT 2 ON) /6-8 SPECIFIES AUTOMATIC INPUT REMEMBERING (REM LINE MINUS 1) / 0 MEANS NONE. 7 RESERVED FOR SPECIAL USE. /10 CAUSE -L, ETC. TO GO TO 2ND OUTPUT FILE /11 WANT DEFAULT ALTMODE (COMPL IF AMFLAG=1) /1 PTR TO DEFAULT EXTENSION LIST FOR INPUT FILES. / IF PTS TO 0, NONE. IF PTS TO 5200, USE SPECIAL MODE. /2-4 DEFAULT SWITCHES TO BE OR'ED INTO THOSE / EXPLICITLY GIVEN. /5 ADDRESS OF SUBROUTINE TO BE CALLED / AFTER C.D. HAS BEEN DONE. 0 IF NONE. /6 PTR TO FILENAME OF PROGRAM / TO BE CHAINED TO. 0 IF NONE. / FIELD 0 /1000-1777 LINE BUFFER /2000-2777 LINE BUFFER EXTENSION /4000-4377 REM-LINES /4400-4777 HANDLER /5000-5577 BUFFER /6000-7577 MORE CCL (7 PAGES) REST=6000 FIELD 1 *2000 START, JMP .+3 /START FROM MONITOR JMP I (MONFIX /START FROM .RUN COMMAND JMP MONCHN /START WHEN CHAINED TO CLA CDF 0 /READ IN REST OF CCL TAD I (CCLBLC /GET BLOCK OF START CDF 10 TAD CCLREM DCA CCLREM /GET BLOCK OF REST CIF 0 JMS I (7607 700 /READ 7 MORE PAGES REST CCLREM, 1+14+1 /SKIP CCB AND *400 STUFF JMP ERR2 JMS TWAIT CDF 0 TAD I (VNO CDF 10 TAD (-CCLTAB /DO VERSION #'S AGREE? SZA CLA JMP BADVNO PREGO, JMS I (AT STA DCA I (REMD /ALLOW RECURSIVE U'S CDF 0 TAD I (ENTRY /GET ENTRY # KCIDF, CIF CDF 10 TAD (PTBL /GET ADDRESS OF PTR TO START OF ENTRY DCA PTR TAD I PTR /GET PTR TO START OF ENTRY DCA PTR JMP I (GO MONCHN, TAD (-44 JMS I (MOVE /ASSUME COMMAND LINE IS IN CDF 10 /17600-17643 7600 CDF 0 1000 /MOVE TO OS/8 LINE BUFFER REGO, TAD KCIDF CDF 0 DCA I (RETCIF /ALLOW 'FINDIT' TO RETURN TO FIELD 1 CIF CDF 0 STA DCA I (HALF DCA I (ENTRY TAD (KEYWRD DCA I (KPTR JMS I (FINDIT /LOOK UP KEYWORD SMA CLA JMP PREGO /FOUND IT CMDERR, JMS I (PRMESG /NOT A LEGAL KEYWORD ERRCMD ERR2, CIF CDF 0 JMP I (NOCCL BADVNO, JMS I (PRINT BADVMS JMS I (VERTN JMP I (LEAVE /GO AWAY /TEST END OF TABLE USRSUB, 0 TAD I (REMD SMA CLA JMP REGO /REMEMBERED A NEW LINE TAD I (FLAG /WANT TO AND (70 CLL RTR RAR TAD (-1 /IN THIS REM-LINE DCA UREM JMS I (FOREVER /NO DATE JMS I (REMEM UREM, 0 JMP I USRSUB TWAIT, 0 JMS BATCH JMP TW /BATCH NOT RUNNING CLA /WE'RE RUNNING UNDER BATCH JMP I TWAIT TW, TSF JMP .-1 /WAIT FOR THINGS TO QUIET DOWN JMP I TWAIT /SKIP IF BATCH IS RUNNING AND PUT CIF BATCH FIELD IN AC BATCH, 0 CDF 0 TAD I (7777 CDF 10 DCA BWORD TAD BWORD RTL SNL CLA /IS BATCH RUNNING? JMP I BATCH /NO TAD BWORD /YES AND (70 /ISOLATE FIELD OF BATCH TAD KCIF /FORM CIF TO THE HIGHEST FIELD ISZ BATCH /AND TAKE SKIP RETURN WITH IT IN AC JMP I BATCH BWORD, 0 KCIF, CIF 0 FILDMY, FILENAME DUMMY.SV PAGE MONFIX, JMS I (RDMON CDF 0 OLOC, TAD I ZERO /7600 OR 7605 TAD (-7607 SNA CLA JMP I PCCER3 /ALWAYS WRITE OUT CCL BLOCK CDF 10 CIF 0 JMS I L7607 4200 /WRITE 1 RECORD FROM FIELD 0 400 /LOCATIONS 400-777 CCLBLK /INTO THE SYSTEM'S CCL BLOCK JMP I (IOERR CDF 0 TAD I (2000+CCLSW TAD (-PRQMRK SNA JMP MONOK TAD (PRQMRK-GETCCL SZA CLA JMP I PCCER3 / CIF CDF 0 / JMP I L7605 MONOK, TAD (GETCCL DCA I (2000+CCLSW STA DCA I (2000+DEASADR /DELETE DEASSIGN JMS WRMON JMS I (LOOK YFORT /LOOK FOR FORT.SV TAD (YF4-YFORT /NOT FOUND, USE F4 TAD (YFORT /FOUND USE IT DCA I (FORTE TAD I (FORTE TAD (-YFORT SZA CLA TAD (YLOAD-YLOADER /F4 TAD (YLOADER DCA I (LOADE JMP I (WRITFT /UNKLUTZ L200, WRMON, 200 CDF 10 CIF 0 JMS I L7607 4200 L2400, 2400 10 JMP I (IOERR JMP I WRMON L7600, 7600 L5, MONRES, 5 JMS I (RDMON CDF 0 TAD (PRQMRK DCA I (2000+CCLSW TAD (-405 DCA I (2000+DEASADR JMS WRMON JMP I MONRES L7605, SETLPT, 7605 JMS SETDEV LPTDEV JMP I SETLPT L7607, SETTV, 7607 JMS SETDEV TVDEV JMP I SETTV M7607, SETTTY, -7607 JMS SETDEV TTYDEV JMP I SETTTY PCCER3, SETPTP, CCER3 JMS SETDEV PTPDEV JMP I SETPTP SETDEV, 0 TAD I SETDEV ISZ SETDEV DCA DEVPTR CLL STA RAL /-2 JMS I (MOVE CDF 0 DEVPTR, 0 CDF 10 DVNM1 JMS SETOUT JMP I SETDEV SETOUT, 0 TAD I (FLAG RTR SZL CLA TAD L5 TAD L7600 DCA OLOC TAD I OLOC SZA CLA JMP I SETOUT /HE'S SPECIFIED SOMTHING JMS I L200 12 /INQUIRE DVNM1, 0 DVNM2, 0 ZERO, 0 JMP I (CCER2 /NO SUCH DEVICE TAD DVNM2 DCA I OLOC JMP I SETOUT PAGE GO, JMS I (SCAN /ADVANCE SCAN UNTIL AFTER SPACES GO2, TAD I PTR /GET FLAG DCA FLAG /SAVE IT TAD DELIM SNA CLA /IS TYPED LINE EMPTY AFTER KEYWORD? TAD FLAG /AND IS SPECIAL REMEMBERING BITS ON? CLL RTR RAR /AND HAS GOD WILLED US TO REMEMBER? AND (7 /AND ARE THE ZODIAK SIGNS FAVORABLE? SNA JMP NORM /NO TAD REMD /YES, GET REM-LINE (SUBTRACT 1) DCA REMD CDF 0 TAD I (BEGLN CDF 10 DCA NMPTR JMS I (RECALL /RECALL LINE REMD, -1 /-1 MEANS DIDN'T RETRIEVE A REMEMBER LINE DCA DEPN /SAVE DEPENDENT INFO TAD NMPTR SZA CLA /EG COMMAND? JMP NORM /NO ISZ DELIM /YES TAD DEPN DCA PTR /RESET PTR FROM CMD DEPENDENT WORD JMP GO2 NORM, TAD FLAG L7700, SMA CLA JMP CHAINN /SKIP ENTRIES IF NO CD ISZ PTR /POINT TO DEFAULT INPUT EXTENSION TAD I PTR /GET DEFAULT INPUT EXTENSION PTR DCA DEFALT /SAVE IT TAD (7641 DCA XR TAD FLAG CDF 0 TAD I (AMFLAG /COMBINE ALTMODE BITS CDF 10 RAR /IN POSITION 11 CLA RAR /PUT NEW ALTMODE BIT ALONE IN BIT 0 DCA I XR /STORE AWAY IN C.D. OPTION TABLE ISZ PTR /POINT TO SWITCH WORD 1 TAD I PTR /GET TO 1ST OPTION WORD DCA I XR /STORE AWAY IN C.D. OPTION TABLE ISZ PTR /POINT TO SWITCH WORD 2 TAD I PTR /GET 2ND OPTION WORD DCA I XR /STORE AWAY IN OPTION TABLE ISZ PTR /POINT TO SWITCH WORD 3 TAD I PTR /GET 3RD WORD DCA I XR /STORE AWAY LIKEWISE DCA I XR /ZERO L.O. = TAD FLAG AND (400 SZA CLA JMS I (INSARR /INSERT BACK ARROW IF FLAG BIT SET JMS I (CD /PERFORM COMMAND DECODE IF FLAG BIT /0 SET CHAI, TAD FLAG RAL SMA CLA /IS SPOOLING PROHIBITED? JMS I (SPOOLIT /NO CHAINN, ISZ PTR /POINT TO AFTER CD SUBR TAD I PTR /GET SUBR ADDRESS JMS I (JMSUB TAD I (DEFILE SZA /IS THERE A FILENAME SET TO CHAIN TO? JMP ZOW /YES ISZ PTR /NO, POINT TO FILENAME TAD I PTR SNA JMP I (LEAVE /NO FILE TO CHAIN TO ZOW, DCA NMPTR JMS LOOK /LOOKUP FILE NMPTR, 0 JMP I (CCER1 /NOT FOUND CHAIN, JMS I (200 /CHAIN TO IT 6 /CHAIN DEPN, /REM LINE DEPENDENT INFO BLK, 0 / ----- /LOOK, LOOKS UP FILE ON DEVICE . POINTER IS IN ARG1 / ARG2 IS ERROR RETURN IF NOT FOUND /DEVICE NUMBER IS IN AC. IF 0, USE SYS: LOOK, 0 SNA IAC DCA DEV TAD I LOOK /GET PTR TO FILE NAME IN FIELD 0 DCA HISFIL TAD HISFIL AND L7700 SNA CLA JMP FLD1 /PTR LT 100 MEANS IN FIELD 1 TAD (-3 JMS I (MOVE /MOVE IT UP CDF 0 HISFIL, 0 CDF 10 PFILDMY,FILDMY TAD PFILDMY SETN, DCA NAMPTR /STORE AWAY PTR TO FILENAME ISZ LOOK /POINT TO ERROR RETURN TAD DEV /GET DEVICE NUMBER JMS I (200 2 /LOOKUP NAMPTR, 0 0 JMP I LOOK /TAKE ERROR RETURN IF NOT FOUND TAD NAMPTR /STORE STARTING BLOCK # IN 'BLK' DCA BLK ISZ LOOK /POINT TO NORMAL RETURN JMP I LOOK /RETURN FLAG, 0 DEV, 0 /DEVICE NUMBER FLD1, TAD HISFIL JMP SETN PAGE PAUSE