File ECCLX.PA (PAL assembler source file)

Directory of image this file is from
This file as a plain text file

/OS/8 CONCIS COMMAN LANGUA FOR ETOS
/ECCL V2.002 6:04 PM 12/16/75
/MODIFI FOR ETOS DOUG BERGEN, EDUCOM CORP.
/FURTHE MODIFI TOM SCHREI, EDUCOM CORP.
/ASSEMB INSTRU:
/  .COM ECCL/E/L
/  ERRORS DETECT: 0
/  LINKS GENERA: 0
/  .SAVE DSK CCL.E1;12001=2003

/40  CCL FOR OS/8
/
/
/
/
/
/
/
/
/
/COPYRI  (C)  1974 DIGITA EQUIPM CORPOR
/
/
/
/
/
/
/
/
/
/
/THE INFORM IN THIS DOCUME SUBJEC CHANGE WITHOU NOTICE
/AND SHOULD NOT BE CONSTR AS A COMMIT DIGITA EQUIPM
/CORPOR.  DIGITA EQUIPM CORPOR ASSUME NO RESPON
/FOR ANY ERRORS THAT MAY APPEAR IN THIS DOCUME.
/
/THE SOFTWA DESCRI IN THIS DOCUME FURNIS THE PURCHA
/UNDER A LICENS FOR USE ON A SINGLE COMPUT SYSTEM AND CAN BE COPIED
/(WITH INCLUS OF DIGITA'S COPYRI NOTICE) ONLY FOR USE IN SUCH
/SYSTEM, EXCEPT AS MAY OTHERW BE PROVID IN WRITIN DIGITA.
/
/DIGITA EQUIPM CORPOR ASSUME NO RESPON FOR THE USE
/OR RELIAB OF ITS SOFTWA ON EQUIPM THAT NOT SUPPLI 
/DIGITA.
/
/
/
/
/
/
/
/
/
/

/ /ETOS DEFINI / DATXNO=11 /FUNCTI NO. FOR DATAXS TEXNO=13 /FUNCTI NO FOR TEXSET CURJNO=15 /FUNCTI NO. FOR CURREN JOB WHEOFF=16 /DATAXS OFFSET FOR CONSOL SYSCAL=6200 /ETOS SYSCAL 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 DEFAUL EXTENS LIST LXR=34 CLXR=35 PTR=36 DATWD=7666 BATERR=7000 /JMP HERE ABORT BATCH B+&@YTMA@ f Ss ";\\Evz)F_3}@{id 6~9DoD|v{}|F{stu oHX0N? P?p~/@"!0|ps`}?t`@g3O5v zO  ~;l 06{&z&0y9Jxs500557 1552 1552;5354;5556;5760;6162;0104;1211;3374 BLE LL .ff^ v(f{}v })fX8@p|ojy8LJDIjH?utjsiA"?$u)"+(/r~2(z}(/ uy Jq(&p&,(on)m"(zl?$((b kreffghfj&@.(/@&ie&|b-{bb@cLz-FZ!c!d-DFj"|b--cii&i(/z-#hz)-DWi&,0cb(xzz /mj+tjpApe_sh(/&6sA&^s)0G[zs)[ ^za /"hb(Dz~"(~igi#5 .f" l6}I2Xo?p)%g9!= |?>e)d}i /{j:" Jzh{k~"(Hzz(/cB(+{j(/yx2 jzw2(zb)!{&v&ak1"({{ o9"9ok?0M6vBi6QEIXED /8. .LS FORM OF .CREF COMMAN REMOVE /9. BUG CONCER PROCES SWITCH FIXED /10. CCL SWITCH ALLOWE =N OPTION /11. BUG RE 'BAD SWITCH OPTION' MESSAG FIXED /12. EXTRA SPACES NOW ALLOWE BEFORE CCL ARGUME /13. 'DOES NOT EXIST' MESSAG NOW SPELLE CORREC /14. 'BAD CCL SWITCH' MESSAG ADDED /15. CCL EDIT # CHANGE CCL VERSIO # /16. .EX CHAINS BCOMP NOT BASIC FOR .BA FILES /17. MUNG PTR: NOW WORKS /18. FIXED BUG RE MUNG <CR> /19. FIXED BUG RE CD FOR FILE > 2047 BLKS /20. FIXED BUG RE MAKE PTR: /VERSIO B FIXES: /21. ALLOWE 'EDIT' COPY FILE EXTENS /22. FIXED BUG RE .CCL ON WRITE- DEVICE /23. FIXED DATE PROBLE /24. ALLOWE FF AND VT IN AN INDIRE FILE BE IGNORE /VERSIO C FIXES: /25. FIXED BUG RE SPACES AND SLASHE IN MUNG TEXT ARGUME /26. ALLOWE EDIT COMMAN USE SAME OUT DEVICE / AS IN DEVICE (IF NONE SPECIF) /27. ADDED MORE SYNTAX CHECKI ZERO COMMAN /VERSIO D CHANGE: /28. ALLOWE EDIT A<B COMMAN REMEMB ONLY UP '<'.
/ FORMAT OF CCL TABLE / ENTRY PURPOS / TABLE WIDTH=7 (BUT VARIES) /0 FLAG WORD / BIT MEANIN IF ON /0 PERFOR CD (IF 0, OMIT ENTRIE 1-6) /1 DON'T PERMIT SPOOLI /2 ALLOW .LS, .NB, .MP SWITCH /3 ADD _ END OF COMMAN STRING /4 SET OUTPUT EXTENS = INPUT EXTENS (IF BIT 2 ON) /6-8 SPECIF AUTOMA INPUT REMEMB (REM MINUS 1) / 0 MEANS NONE. 7 RESERV FOR SPECIA USE. /10 CAUSE -L, ETC. GO 2ND OUTPUT FILE /11 WANT DEFAUL ALTMOD (COMPL IF AMFLAG=1) /1 PTR DEFAUL EXTENS LIST FOR INPUT FILES. / IF PTS 0, NONE. IF PTS 5200, USE SPECIA MODE. /2-4 DEFAUL SWITCH BE OR'ED THOSE / EXPLIC GIVEN. /5 ADDRES OF SUBROU BE CALLED / C.D. HAS BEEN DONE. 0 IF NONE. /6 PTR FILENA OF PROGRA / BE CHAINE 0 IF NONE. / FIELD 0 /1000-1777 BUFFER /2000-2777 BUFFER EXTENS /4000-4377 REM-LI /4400-4777 HANDLE /5000-5577 BUFFER /6000-7577 MORE CCL (7 PAGES) REST=6000
FIELD 1 *2000 START, JMP .+3 /START MONITO JMP I ( MONFIX /START .RUN COMMAN JMP MONCHN /START WHEN CHAINE 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 /*ETOS* JMS TWAIT CDF 0 TAD I (VNO CDF 10 TAD ( -CCLTA /DO VERSIO #'S AGREE? SZA CLA JMP BADVNO PREGO, JMS I ( STA DCA I ( REMD /ALLOW RECURS U'S CDF 0 TAD I ( ENTRY /GET ENTRY # KCIDF, CIF CDF 10 TAD ( PTBL /GET ADDRES OF PTR START OF ENTRY DCA PTR TAD I PTR /GET PTR START OF ENTRY DCA PTR JMP I (GO MONCHN, TAD (-44 JMS I ( MOVE /ASSUME COMMAN IN CDF 10 /17600-17643 7600 CDF 0 1000 /MOVE OS/8 BUFFER REGO, TAD KCIDF /*ETOS* CDF 0 CIF CDF 0 /*ETOS* DCA I ( RETCIF /ALLOW 'FINDIT' RETURN FIELD 1 /*ETOS* CIF CDF 0 STA DCA I (HALF DCA I (ENTRY TAD (KEYWRD DCA I (KPTR JMS I ( FINDIT /LOOK UP KEYWOR SMA CLA JMP PREGO /FOUND IT CMDERR, JMS I ( PRMESG /NOT A LEGAL KEYWOR 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 /REMEMB A NEW TAD I ( FLAG /WANT AND (70 CLL RTR RAR TAD (-1 /IN THIS REM-LI DCA UREM JMS I ( FOREVE /NO DATE JMS I (REMEM UREM, 0 JMP I USRSUB
/*ETOS* TWAIT, 0 /*ETOS* JMS BATCH /*ETOS* JMP TW /BATCH NOT RUNNIN /*ETOS* CLA /WE'RE RUNNIN UNDER BATCH /*ETOS* JMP I TWAIT /*ETOS* TW, TSF /*ETOS* JMP .-1 /WAIT FOR THINGS QUIET DOWN /*ETOS* JMP I TWAIT /SKIP IF BATCH RUNNIN AND PUT CIF BATCH FIELD IN AC BATCH, 0 CDF 0 TAD I (7777 CDF 10 DCA BWORD TAD BWORD RTL SNL CLA /BATCH RUNNIN? JMP I BATCH /NO TAD BWORD /YES AND (70 /ISOLAT FIELD OF BATCH TAD KCIF /FORM CIF THE HIGHES FIELD ISZ BATCH /AND TAKE SKIP RETURN WITH IT IN AC JMP I BATCH BWORD, 0 KCIF, CIF 0 FILDMY, FILENA 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 FIELD 0 400 /LOCATI 400-777 CCLBLK /THE SYSTEM'S CCL BLOCK JMP I (IOERR CDF 0 TAD I (2000+CCLSW TAD (-PRQMR SNA JMP MONOK TAD (PRQMRK SZA CLA JMP I PCCER3 / CIF CDF 0 / JMP I L7605 MONOK, TAD (GETCCL DCA I (2000+CCLSW STA DCA I (2000+ DEASAD /DELETE DEASSI 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- /F4 TAD (YLOADE DCA I (LOADE JMP I ( WRITFT /UNKLUT
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+DEASAD 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 PTB 0B
 kB}N 0BnkBz0B$kBB'N0B9#kBA6>(0B !-kB*>20 LN@~8;B]BdB76BBK] r }{!.]b]b|({4z9J0yJ&Jc6x6w0~v3uo& LJx~<t0pMNUj(Ye=PR ~ _(/}|2{iz_(ysx2@w{v_( zuY8Y(Y(Y(#*tYsY8_(/rF>Hr(:z] /2q"p:]|bgww og(/n2(m{l(/kj2(Tzi /hg7 eXdacd7v:_hKb' GY0]?EzNa/8"&-`/pR~/M %c~!j#Y<9 0MpO, 0 JMP I (CCER2 /NO SUCH DEVICE TAD DVNM2 DCA I OLOC JMP I SETOUT PAGE
GO, JMS I ( SCAN /ADVANC SCAN SPACES GO2, TAD I PTR /GET FLAG DCA FLAG /SAVE IT TAD DELIM SNA CLA /TYPED EMPTY KEYWOR? TAD FLAG /AND SPECIA REMEMB BITS ON? CLL RTR RAR /AND HAS GOD WILLED US REMEMB? AND (7 /AND ARE THE ZODIAK SIGNS FAVORA? SNA JMP NORM /NO TAD REMD /YES, GET REM-LI (SUBTRA 1) DCA REMD CDF 0 TAD I (BEGLN CDF 10 DCA NMPTR JMS I ( RECALL /RECALL REMD, -1 /-1 MEANS DIDN'T RETRIE A REMEMB DCA DEPN /SAVE DEPEND INFO TAD NMPTR SZA CLA /EG COMMAN? JMP NORM /NO ISZ DELIM /YES TAD DEPN DCA PTR /RESET PTR CMD DEPEND WORD JMP GO2
NORM, TAD FLAG L7700, SMA CLA JMP CHAINN /SKIP ENTRIE IF NO CD ISZ PTR /POINT DEFAUL INPUT EXTENS TAD I PTR /GET DEFAUL INPUT EXTENS PTR DCA DEFALT /SAVE IT TAD (7641 DCA XR TAD FLAG CDF 0 TAD I ( AMFLAG /COMBIN ALTMOD BITS CDF 10 RAR /IN POSITI 11 CLA RAR /PUT NEW ALTMOD BIT ALONE IN BIT 0 DCA I XR /STORE AWAY IN C.D. OPTION TABLE ISZ PTR /POINT SWITCH WORD 1 TAD I PTR /GET 1ST OPTION WORD DCA I XR /STORE AWAY IN C.D. OPTION TABLE ISZ PTR /POINT SWITCH WORD 2 TAD I PTR /GET 2ND OPTION WORD DCA I XR /STORE AWAY IN OPTION TABLE ISZ PTR /POINT SWITCH WORD 3 TAD I PTR /GET 3RD WORD DCA I XR /STORE AWAY LIKEWI 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 /PERFOR COMMAN DECODE IF FLAG BIT /0 SET CHAI, TAD FLAG RAL SMA CLA /SPOOLI PROHIB? JMS I ( SPOOLI /NO CHAINN, ISZ PTR /POINT CD SUBR TAD I PTR /GET SUBR ADDRES JMS I (JMSUB TAD I (DEFILE SZA /THERE A FILENA SET CHAIN TO? JMP ZOW /YES ISZ PTR /NO, POINT FILENA TAD I PTR SNA JMP I ( LEAVE /NO FILE CHAIN ZOW, DCA NMPTR JMS LOOK /LOOKUP FILE NMPTR, 0 JMP I (CCER1 /NOT FOUND CHAIN, JMS I (200 /CHAIN IT 6 /CHAIN DEPN, /REM DEPEND INFO BLK, 0 / -----
/LOOK, LOOKS UP FILE ON DEVICE . POINTE IN ARG1 / ARG2 ERROR RETURN IF NOT FOUND /DEVICE NUMBER IN AC. IF 0, USE SYS: LOOK, 0 SNA IAC DCA DEV TAD I LOOK /GET PTR 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 PFILDM,FILDMY TAD PFILDM SETN, DCA NAMPTR /STORE AWAY PTR FILENA ISZ LOOK /POINT ERROR RETURN TAD DEV /GET DEVICE NUMBER JMS I (200 2 /LOOKUP NAMPTR, 0 0 JMP I LOOK /TAKE ERROR RETURN IF NOT FOUND JMS I ( SETTEX /SET ETOS PROGRA ISZ LOOK /POINT NORMAL RETURN JMP I LOOK /RETURN
FLAG, 0 DEV, 0 /DEVICE NUMBER FLD1, TAD HISFIL JMP SETN PAGE
XEXE, 5033; EXTEXE; 40;0;0; EXSUB; YPAL8 /EXECUT MUST BE FIRST FOR TECO EG XBAC, 0; 0; YCAMP /BACKSP XBOO, 0; 0; YBOOT /BOOT XCCL, 0; MONRES; 0 /CCL XCOMPA, 4001; EXTNUL; 0;0;0; SETTTY; YSRCCO /COMPAR XCOMPI, 5033; EXTCOM; 0;0;0; EXSUB; YPAL8 /COM XCON, 0; CONSOL;0 /CON XCOP, 4001; STAR; 1;0;0; MOVRT; YFOTP /COPY XCOR, 0; DETCOR; 0 /CORE XCREA, 4400; EXTNUL; 0;0;0; CRSUB; YEDIT /CREATE XCREF, 4002; EXTCF; 1000;0;0; CREFSB; YPAL8 /CREF XDAT, 0; DATE; 0 /DATE XDEL, 4001; STAR; 401;0;0; KILRT; YFOTP /DELETE XDEA, 0; DEASSI;0 /DEASSI XDIR, 4001; STAR; 0;0;0; SETTTY; YDIREC /DIRECT XEDI, 5220; EXTNUL; 0;0;0; EDSUB; YEDIT /EDIT XEOF, 0; 0; YCAMP /EOF XHEL, 4001; EXTHL; 0;20;0; HLPSUB; YPIP /HELP XJOB, 0; JOB;0 /JOB XLIS, 4001; STAR; 0;10;0; SETLPT; YFOTP /LIST XLOA, 5031; EXTLO; 0;0;0; EXSUB; YABSLD /LOAD XMAK, 0; MAKSUB; YTECO /MAKE XMAP, 4001; EXTBN; 0;0;0; SETTTY; YBITMA /MAP XMUN, 0; MNGSUB; YTECO /MUNG XPAL, 5033; EXTPA; 0;0;0; EXSUB; YPAL8 /PAL XPRI, 4000; STAR; 0;0;0; SETLPT; YLPTSP /PRINT XPUN, 4001; EXTNUL; 0;0;0; SETPTP; YPIP /PUNCH XREN, 4001; STAR; 1;100;0; RENRT; YFOTP /RENAME XRES, 4001; EXTSY; 0;0;0; SETTTY; YRESOR /RESOUR XREW, 0; 0; YCAMP /REWIND XSET, 0; 0; YCAMP /SET XSKI, 0; 0; YCAMP /SKIP XSQU, 4001; EXTNUL; 0;40;0; SQSUB; YPIP /SQUISH XSUB, 4000; EXTBI; 0;0;0; 0; YBATCH /SUBMIT XSYS, 4401; 0;0;0;20;0; YSYSTA /SYSTAT XTEC, 10; TECSUB; YTECO /TECO XTIM, 4000;0;0;0;0;0; YTIME / XTYP, 4001; STAR; 0;10;0; SETTTY; YFOTP /TYPE XUNL, 0; 0; YCAMP /UNLOAD XUA, 40; USRSUB; 0 /UA XUB, 50; USRSUB; 0 /UB XUC, 60; USRSUB; 0 /UC XVER, 0; VERTN; 0 /VERSIO XZER, 4401; EXTNUL; 0;0;2000; ZERSUB; YPIP /ZERO ZBLOCK 2
PTBL, XEXE XBAC XBOO XCCL XCOMPA XCOMPI XCON XCOP XCOR XCREA XCREF XDAT XDEL XDEA XDIR XEDI XEOF XHEL XJOB XLIS XLOA XMAK XMAP XMUN XPAL XPRI XPUN XREN XRES XREW XSET XSKI XSQU XSUB XSYS XTEC XTIM XTYP XUNL XUA XUB XUC XVER XZER ZBLOCK 4
STAR, 5200; 0 0; 0 EXTSY, 2331; 0 0; 0 EXTBI, 0211; 0 0; 0 EXTCF, 2001; COMPA /EXTLS, 1423; COMLS 0; COMPA EXTPA, 2001; COMPA 0; COMPA EXTBN, 0216; 0 0; COMBN EXTHL, 1014; 0 0; 0 EXTNUL, 0; 0 EXTLO, 0216; COMBN /BN 2214; COMRL /RL 0; 0 EXTCM, 0315; 0 0; 0
EXTEXE, 2001; COMPA /PA EXTFT, 0624; COMFT /FT EXTBA, 0201; COMBA /BA 0216; COMBN /BN EXTRL, 2214; COMRL /RL EXTRA, 2201; COMRA /RA EXTSB, 2302; COMSB /SB 0; 0 ZBLOCK 4 EXTCOM, 2001; COMPA /PA 0624; COMFT /FT 0201; COMBA /BA 2201; COMRA /RA 2302; COMSB /SB 0; 0 ZBLOCK 4
/ TAD (-# OF LOCS MOVE / JMS MOVE / CDF / LOC / CDF / LOC MOVE, 0 DCA T TAD I MOVE /GET CDF DCA FRCDF ISZ MOVE STA TAD I MOVE /GET LOC-1 DCA XR ISZ MOVE TAD I MOVE /GET CDF DCA TOCDF ISZ MOVE STA TAD I MOVE /GET LOC-1 DCA XR2 ISZ MOVE /POINT RETURN FRCDF, HLT TAD I XR TOCDF, HLT DCA I XR2 ISZ T JMP FRCDF CDF 10 JMP I MOVE PAGE
/CAN PATCH AN EXTENS -1 IGNORE IT IN ABOVE TABLE FORTE, YF4 /COULD BE CHANGE YFORT .R CCL LOADE, YLOAD /MAY BECOME YLOADE COMBN, 0 TAD I (EXTBN DCA SETEXT TAD (YABSLD DCA DEFILE JMP I COMBN COMRL, 0 TAD I (EXTRL DCA SETEXT TAD LOADE DCA DEFILE JMP I COMRL COMPA, 0 TAD I (EXTPA DCA SETEXT TAD (YPAL8 DCA DEFILE JMP I COMPA COMFT, 0 TAD I (EXTFT DCA SETEXT TAD FORTE DCA DEFILE JMP I COMFT COMBA, 0 TAD I (EXTBA DCA SETEXT TAD (YBASIC DCA DEFILE JMP I COMBA COMRA, 0 TAD I (EXTRA DCA SETEXT TAD (YRALF DCA DEFILE JMP I COMRA COMSB, 0 TAD I (EXTSB DCA SETEXT TAD (YSABR DCA DEFILE JMP I COMSB
DEFILE, 0 /PTR FILENA CHAIN /COMLS, 0 / TAD I (EXTLS / DCA SETEXT / TAD (YCREF / DCA DEFILE / ISZ I ( DONB /CREF FOO.LS MAKES NO BINARY / JMP I COMLS RDMON, 0 CDF 10 CIF 0 CLA JMS I (7607 0400 /READ 2 RECORD 2000 /LOCATI 2000 FIELD 0 7 /BLOCK 7,10 JMP I (IOERR JMP I RDMON
UNKN, 0 TAD SETEXT SZA TAD T /NEG OF SWITCH REQUES SZA CLA JMP I ( CCERA /CAN'T HAVE 2ND DEFAUL EXTENS TAD T CIA DCA SETEXT /SET DEFAUL EXTENS TAD DEFALT /SEE IF IT'S IN COMMAN'S SEARCH LIST DCA DEF TAD SETEXT JMS I (EXTLUK SNA CLA /DID WE FIND IT? JMP I (CDER4 /NO ISZ DEF /YES TAD I ( JMSUB /ALLOW RECURS CALL DCA HOLD TAD I DEF JMS I ( JMSUB /CALL ITS SUBR TAD HOLD DCA I (JMSUB JMP I UNKN DOLS, 0 JMS I (NMOVE 7605 JMP I DOLS DOMP, 0 JMS I (NMOVE 7612 JMP I DOMP SETEXT, 0 /EXT WHICH HAS BEEN SET A CCL SWITCH HOLD, 0
WRITFT, JMS I (LOOK YCCL JMP I ( IOERR /CCL.SV NOT FOUND TAD I (BLK TAD (4 /*3400 4TH BLOCK OF CCL NOT COUNTI CCB DCA FBLK CDF 10 CIF 0 JMS I (7607 4210 /WRITE 1 RECORD FILED 1 3400 /LOCS 3400-3777 FBLK, 0 JMP I (IOERR CIF CDF 0 JMP I (7605 PAGE
CD, 0 JMS I (200 13 /RESET HANDLE JMS I (CDINIT BEGGRP, TAD OUTSW SNA CLA TAD I ( BEGDIF /DIFF BETWEE INPUT & OUTPUT AREAS TAD (MOFILE1 DCA CLXR JMS I (GETSPC JMS I (ASSIGN TAD OUTSW SNA CLA TAD I ( LIMDIF /DIFF BETWWE END OF OUTPUT & INPUT AREAS TAD I ( OUTLIM /END OF OUTPUT AREA TAD CLXR SMA CLA JMP I (CDER1 JMS I (CCLSWT TAD OUTSW SNA CLA LKUPSW, JMP INFILE /ZEROED IF IN "SPECIAL DECODE" MODE TAD I (DVICE JMS PCLXR TAD NAME1 JMS PCLXR TAD NAME2 JMS PCLXR TAD NAME3 JMS PCLXR TAD NAME4 JMP LSTPUT INFILE, JMS I (LOOKUP JMS PCLXR /STORE LENGTH AND DEV NUMBER TAD I ( LNAME /GET BLOCK LSTPUT, JMS PCLXR TAD OUTSW SNA CLA TAD I (FLAG CLL RTL SPA CLA /FEATUR ENABLE? TAD LKUPSW SNA CLA JMP DLOOK /IN SPECIA MODE OR ON OUTPUT SIDE TAD DONB SZA CLA JMP NBS JMS I ( NMOVE /MOVE NAME OUTPUT FILE NAMES 7600 JMP DLOOK
NBS, DCA DONB /ZERO 1ST OUTPUT FILE TAD (7577 DCA XR2 DCA I XR2 DCA I XR2 DCA I XR2 DCA I XR2 DCA I XR2 DLOOK, STA DCA I (DVFLAG TAD DELIM SNA JMP I CD TAD (-"[ SNA JMP I (OLENGT TAD ("[-", SNA JMP I (FILLP /**** JUMPING INTO ROUTINE (IS THIS A BUG?) TAD (",-"< SNA JMP BKAROW TAD ("<-"= SZA CLA JMP I (CDER2 /BAD CHAR DCA I (NUMFUJ JMS I (NUMBER DCA I (MPARAM+3 CLA CLL CML RAR AND I (MPARAM-1 /PRESERVE ALTMODE TAD I (HIORD DCA I (MPARAM-1 JMS I (CCLSWT JMP DLOOK BKAROW, ISZ OUTSW JMP I (CDER2 /TWO BACK-ARROWS TAD LXR /GET PTR TO ARROW DCA I (ARLOC /SAVE IT ('EDIT' MIGHT NEED IT) JMP BEGGRP PCLXR, 0 ISZ CLXR DCA I CLXR JMP I PCLXR DONB, 0 /ENTRY PT USED AS FLAG JMP I DONB
OUTSW, -1 /-1 MEANS ON OUTPUT SIDE, 0 ON INPUT SIDE PAGE
NUMBER, 0 SZA CLA TAD (NUM&177+1200-SKP TAD (SKP DCA NUMADD/SET NUMADD TO EITHER "SKP" OR "TAD NUM" DCA HIORD NUMLP, DCA NUM JMS I (GCH ISZ NUMKNT SKP JMP EONUM2 CMA TAD NUMFUJ TAD ("8 /TEST INPUT CHARAC FOR RANGE CLL CMA /0-7 IF NUMFUJ=0 TAD (10 /0-9 IF NUMFUJ=2 TAD NUMFUJ SNL JMP EONUM DCA T CLA CLL CMA RTL DCA DELIM TAD NUM ROTLP, CLL RAL DCA NUMX TAD HIORD RAL NUMSKP, SPA /MODIFI # JMP I (CDER5 DCA HIORD TAD NUMX ISZ DELIM JMP ROTLP NUMADD, TAD NUM /SKP IF OCTAL TAD NUM TAD T JMP NUMLP EONUM, TAD ("0 EONUM2, DCA DELIM TAD NUMKNT SPA CLA JMP I (CDER5 /FEWER THAN CORRECT NUMBER OF DIGITS TAD NUM JMP I NUMBER NUM, 0 NUMX, 0 NUMFUJ, 0 NUMKNT, 0 /SET TO -N-1 TO FORCE N DIGITS HIORD, 0
ASSIGN, 0 TAD CLXR AND I (DVFLAG TAD I (OUTLIM SMA SZA CLA /CHECK FOR OUTPUT OR FIRST INPUT JMP ASNORM /IF DEVICE WAS SPECIFIC, /OR IF WE ARE ON THE INPUT SIDE, /PROCEED NORMALLY TAD NAME1 SNA CLA JMP ASGNST TAD DFLTNM+1 DCA DEV2 TAD DFLTNM DCA DEV1 ASNORM, TAD DEV1 DCA AS+1 TAD DEV2 DCA AS+2 TAD I (OUTSW SNA CLA /DON'T LOAD HANDLER /IF WE ARE ON OUTPUT SIDE OF "_" TAD NAME1 SPKLG1, SNA CLA /OR THERE IS NO FILE NAME TO LOOK UP TAD GETHND /GETHND=11 NORMALLY, /0 IF IN "SPECIA DECODE" MODE IAC DCA AS TAD (HNDLR+1 /ALLOW TWO PAGE HANDLERS DCA ASADR CIF 10 JMS I (200 AS, 0 0 0 ASADR, HNDLR+1 JMP I (CDER0 TAD AS+2 ASGNST, DCA I (DVICE JMP I ASSIGN
DFLTNM, DEVICE DSK GETHND, 11 /1+11=12 (1=FETCH, 12=INQUIRE) LOVE, 0 TAD NAME1 TAD (-1417 SZA CLA JMP I LOVE TAD NAME2 TAD (-2605 SZA CLA JMP I LOVE TAD NAME3 TAD NAME4 SZA CLA JMP I LOVE JMS I (PRINT LOVMES JMP I LOVE PAGE
/GETS A NAME FROM FIELD ZERO BUFFER VIA LXR /RETURNS WITH DELIMETER IN AC /GIVES ERROR MESSAGE IF NAME IS BAD TN, /DON'T CALL CCLSWT FROM GNAME UNLESS THIS IS MOVED GNAME, 0 DCA NAME1 DCA NAME2 DCA NAME3 DCA NAME4 TAD (NAME1 DCA NMBASE CLA CMA DCA PERDSW DCA NAMECT JMS I (GCH TAD (-"# SNA JMP NUMCON TAD ("# SKP GTNMLP, JMS I (GCH DCA DELIM TAD DELIM TAD (-"? SZA TAD ("?-"* SNA STARSW, JMP CDER6 /"JMP STARNM" /IF "SPECIAL DECODE" MODE TAD ("*-". SNA CLA JMP PERIOD TAD DELIM JMS I (DECODE JMP LV STARNM, CLA /THIS CODE HANDLE *'S AND ?'S CORREC TAD DELIM AND (77 DCA DELIM TAD NAMECT TAD (-6 SMA CLA JMP GTNMLP TAD NAMECT CLL RAR TAD NMBASE DCA TT TAD DELIM SNL /*ETOS* JMS I (ROTL BSW /*ETOS TAD I TT DCA I TT ISZ NAMECT JMP GTNMLP PERIOD, TAD NAME1 SZA CLA ISZ PERDSW JMP I (CDER7 /NULL NAME OR DOUBLE EXTENS ISZ NMBASE TAD (4 DCA NAMECT JMP GTNMLP CDER6, JMS I (PRMESG BADSTR
CCLSWT, 0 TAD DELIM TAD (-"- SZA CLA JMP I CCLSWT TAD I (OUTSW SZA CLA JMP I (CDER4 /CCL EXT ON OUTPUT FILE TAD (SWTCHS DCA DEF JMS GETL JMP I (CDER44 /NON-ALPHANUMERIC CCL SWITCH /*ETOS* JMS I (ROTL BSW /*ETOS* DCA TN JMS GETL JMP XLK2 /ONE CHAR CCL SWITCH TAD TN DCA TN JMS GETL SKP CLA /2 CHAR CCL SWITCH JMP I (CDER44 /3 CHAR CCL-SWITCH XLK, TAD TN JMS I (EXTLUK CLA ISZ DEF TAD I DEF JMS I (JMSUB /CALL SUBR JMP CCLSWT+1 XLK2, CLA JMP XLK
GETL, 0 JMS I (GCH DCA DELIM TAD DELIM JMS I (DECODE JMP I GETL /NON-ALPHANUM IN CCL SWITCH CLA TAD DELIM AND (77 ISZ GETL JMP I GETL NUMCON, JMS I (NUMC LV, CLA TAD DELIM JMP I GNAME PERDSW, 0 NAMECT, 0 PAGE
LOOKUP, 0 DCA LNAME TAD NAME1 SNA CLA JMP LKUPST TAD I (PERDSW TAD NAME4 SNA CLA CLA IAC /FORCE NAMERM NON-0 IF . AND NO EXT TAD NAME4 DCA NAMERM /REMEMBER TYPED EXTENSION TAD DEFALT DCA DEF TAD I (SETEXT SNA /HAS AN EXTENSION BEEN SET? TAD NAMERM /NO SNA /DOES FILE HAVE EXTENSION? JMP EXT2 /NO EXTENSION TYPED OR SET, DO SUCCESSIVE LOOK-UPS JMS EXTLUK /LOOK FOR EXTENSION SNA CLA /DID WE FIND IT? JMP EXT3 /NO, FORCE NULL EXTENSION TO MATCH EXT2, TAD I DEF IAC SNA CLA JMP NEXTEXT /IGNORE -1'S TAD NAMERM SZA CLA JMP EXT3 TAD I DEF DCA NAME4 /SET NEW EXTENSION EXT3, TAD (NAME1 DCA LNAME TAD I (AS+2 JMS I (200 2 LNAME, 0 /NAME1 LENGTH, 0 JMP LFAILD ISZ DEF /POINT TO FOLLOW-UP SUBROUTINE TAD I DEF JMS JMSUB /CALL IT TAD LENGTH CLL TAD (400 SNL CLACON, 7600 /CLA CLL RTL RTL AND (7760 LKUPST, TAD DVICE JMP I LOOKUP
LFAILD, TAD NAMERM SNA CLA /WAS THERE AN EXPLICIT EXTENSION? TAD I DEF /NO - WAS THERE A DEFAULT EXTENSION? SNA CLA JMP I (CDER3 /NO DEFALT EXTENSION OR YES EXPLICIT EXTENSION NEXTEXT,ISZ DEF /NO EXPLICIT EXT AND YES DEFAULT EXT ISZ DEF /POINT TO NEXT POSSIBLE DEFAULT EXTENSION JMP EXT2 /AND TRY FOR IT NAMERM, 0 DVICE, 0 EXTLUK, 0 CIA DCA T XLUK, TAD I DEF SNA /AT NULL? JMP I EXTLUK /YES TAD T /NO SNA CLA /MATCH? JMP MAT /YES ISZ DEF /NO ISZ DEF /POINT TO NEXT ENTRY JMP XLUK /TRY AGAIN MAT, TAD I DEF /RETURN WITH IT IN AC JMP I EXTLUK ZERSUB, 0 TAD I (7601 SNA CLA /WAS FILENAME SPECIFIED ON ZERO CMD? TAD I CLACON /OR WAS NO OUT DEVICE SPECIFIED? SNA CLA JMP I (CDER2 /YES... ERROR JMP I ZERSUB /NO, OKAY.
IOERR, JMS I (PRMESG SYSER TS, HLPSUB, 0 JMS I (SETTTY /IF NO INPUT FILE, WANT TO CHAIN TO DIRECT /WITH *.HE/F AFTER TYPING "INFO ON:" JMP I HLPSUB EXSUB, 0 TAD PTR TAD (-5 /PUSH PTR BACK TO BEGIN OF ENTRIES JMS I (REMEM /REMEMBER THIS IN DEPENDENT WORD 2 JMP I EXSUB JMSUB, 0 SNA JMP I JMSUB DCA TS JMS I TS JMP I JMSUB
SPOOLIT,0 JMS I (BATCH /IS BATCH RUNNING? JMP I SPOOLIT /NO DCA CB /YES TAD I DEFALT TAD (-5200 SNA CLA TAD I DEFALT /LEAVE 5200 IN AC IF SPECIAL MODE CB, HLT /CIF TO FIELD OF BATCH JMS I (BATSPL /ALLOW BATCH TO SPOOL STUFF JMP I SPOOLIT PAGE
SLSHCH, 0 DCA DELIM TAD (MPARAM-1 DCA T TAD DELIM JMS DECODE JMP CDER8 SZL TAD (32 CMA STL /THE FOLLOWING TURNS /ON THE CORRECT OPTION BIT DCA TT SLSHLP, SZL ISZ T RAR SNL ISZ TT JMP SLSHLP DCA TT TAD TT CMA AND I T TAD TT DCA I T JMP I SLSHCH /THIS ROUTINE DETERMINES IF THE CHARACTER IN THE AC IS A LETTER OR DIGIT /IF LETTER, RETURNS TO RET+1 WITH LETTER-"A IN AC AND LINK=0 /IF DIGIT, RETURN RET+1 WITH DIGIT-"0 IN AC AND LINK=1 /IF NEITHER, RETURNS TO RET WITH CHAR-"A IN AC. DECODE, 0 TAD (-"9-1 /MIGHT BE CALLED WITH ANY DF CLL TAD ("9+1-"0 SZL JMP DCDYES TAD ("0-"Z-1 CLL CML TAD ("Z-"A+1 SNL DCDYES, ISZ DECODE JMP I DECODE CDER8, CLA JMS I (PRMESG BADOPT
ZEROCD, 0 TAD (-42 /AC MAY BE NON-0 DCA T TAD (MOFILE-1 DCA XR DCA I XR /ZERO THE COMMAND DECODER OUTPUT AREA ISZ T JMP .-2 JMP I ZEROCD GCH, 0 JMS GLXR TAD (-240 SNA JMP GCH+1 TAD (240-"/ SNA JMP SLASH TAD ("/-"( SNA JMP OPENP TAD ("( JMP I GCH SLASH, JMS GLXR JMS SLSHCH JMP GCH+1 OPENP, JMS GLXR TAD (-") SNA JMP GCH+1 TAD (") JMS SLSHCH JMP OPENP GLXR, 0 CDF 0 ISZ LXR TAD I LXR CDF 10 JMP I GLXR
OLENGT, TAD I (OUTSW AND NAME1 /[N] IS ONLY LEGAL /ON THE OUTPUT SIDE OF THE "_" SNA CLA /AND ONLY AFTER A FILE NAME JMP I (CDER2 TAD (-4 TAD CLXR DCA NMBASE CLA CLL CML RTL DCA I (NUMFUJ /SET "NUMBER" TO ACCEPT /DIGITS 8 AND 9 STA /ALLOW DECIMAL JMS I (NUMBER CLL RTL RTL AND (7760 TAD I NMBASE DCA I NMBASE CDF 0 TAD DELIM TAD (-"] /THERE A CLOSIN BRACKE? SNA /IF NOT, /"DLOOK" ROUTIN WILL DETECT IT JMS I (GCH DCA DELIM JMP I (DLOOK PAGE
PRMESG, 0 CLA TAD I PRMESG DCA .+2 JMS PRINT HLT LEAVE, /JMS I ( TWAIT /*ETOS* /*ETOS* TCF CIF CDF 0 TAD FATALF SNA CLA JMP I (7605 FATALF,0 /CIF CDF BATCH FIELD IF WANT ABORT JMP I (BATERR PRWD, 0 /*ETOS* CHECK PRINT BEFORE CHANGI T DCA T TAD T /TTY212, RTR /*ETOS* /*ETOS* RTR /*ETOS* RTR BSW /*ETOS* JMS PCHAR TAD T JMS PCHAR JMP I PRWD PCHAR, 0 AND (77 SNA JMP I PCHAR /IGNORE NULLS TAD (240 AND (77 TAD (240 /CAN'T USE 'TTY240' JMS TYPE JMP I PCHAR PRNAME, 0 TAD NAME1 JMS PRWD TAD NAME2 JMS PRWD TAD NAME3 JMS PRWD TAD NAME4 SNA CLA JMP I PRNAME TAD (256 JMS PCHAR TAD NAME4 JMS PRWD JMP I PRNAME
TYPE, 0 DCA TE2 JMS I (BATCH JMP TTYOUT DCA CIFB CIFB, HLT /REPLAC CIF BATCH FIELD TAD TE2 JMS I (BATOUT TAD TE2 TAD (-"# TTY240, SZA CLA JMP I TYPE TAD CIFB IAC /CONVERT CIF TO CIF CDF DCA FATALFLG JMP I TYPE TTYOUT, TAD TE2 TAD (-"# /DON'T TYPE #'S SNA CLA JMP I TYPE /*ETOS* TAD T7600 /*ETOS* KRS /*ETOS* TAD (-7603 /*ETOS* SNA /*ETOS* JMP LEAVE /*ETOS* TAD (203-217 /*ETOS* SNA CLA /*ETOS* JMP I TYPE TAD TE2 /*ETOS* TJUMP, JMP .+3 /*ETOS* TSF /*ETOS* JMP .-1 TLS T7600, 7600 /*ETOS* TAD (7000 /*ETOS* DCA TJUMP JMP I TYPE
PRINT, 0 DCA CRLF /AC NON-0 MEANS DON'T CRLF TAD I PRINT ISZ PRINT DCA TE PRINTP, CDF 0 TAD I TE CDF 10 JMS PRWD /*ETOS* CDF 0 /*ETOS* TAD I TE /*ETOS* CDF 10 ISZ TE TAD T /*ETOS* SEE IF END OF TEXT AND (77 SZA CLA JMP PRINTP TAD CRLF SNA CLA JMS CRLF JMP I PRINT TE, 0 TE2, 0
CRLF, 0 TAD (215 JMS TYPE /*ETOS* TAD TTY212 TAD (212 /*ETOS* JMS TYPE JMP I CRLF CDER2, JMS PRMESG BADSYN / /ETOS ROUTIN SET PROGRA FOR SYSTAT / SETTEX, 0 TAD ( TEXNO /ETOS FUNCTI NO. MQL CLA CMA /SET AC -1 TAD I ( PFILDM /POINTE NAME ADDRES SYSCAL /ETOS IOT TAD I (NAMPTR DCA I ( BLK /STORE STARTI BLOCK # IN 'BLK' JMP I SETTEX /BAK / / PAGE
CDER1, JMS I (PRMESG TOOMAN CDER5, JMS I (PRMESG BADNUM CCER1, TAD I (NAMPTR DCA NMX TAD (-4 JMS I (MOVE /*ETOS* CDF 10 NOP /*ETOS* MOVING IN FIELD 1 NMX, 0 /*ETOS* CDF 10 NOP /*ETOS* NOP ARE FASTER CDFS NAME1 CDER3, TAD (4300 JMS I ( PRWD /# JMS I (PRNAME JMS I (PRMESG NF CCER2, TAD I (DVNM1 DCA DEV1 TAD I (DVNM2 DCA DEV2 CDER0, TAD DEV1 SNA CLA JMP I (CDER2 /B DOES NOT EXIST TAD (4300 /# JMS I (PRWD TAD DEV1 JMS I (PRWD TAD DEV2 JMS I (PRWD JMS I (PRMESG DNE
KILRT, 0 JMS I (PRINT KILMES JMP I KILRT RENRT, 0 JMS I (PRINT RENMES JMP I RENRT MOVRT, 0 JMS I (PRINT MOVMES JMP I MOVRT SWTCHS, 1423; DOLS /LS 1602; DONB /NB 1520; DOMP /MP 1400; SETLPT /L 2400; SETTTY /T 2300; SETTV /S 2000; SETPTP /P 0000; UNKN /UNKNOW ZBLOCK 4
SCAN, 0 TAD (BEGLN-1 DCA T CDF 0 NOBLUP, CLA ISZ T TAD I T SNA JMP ENDOFB JMS I (DECODE SKP CLA JMP NOBLUP SKP BLUP, ISZ T END2, TAD I T TAD (-240 SNA JMP BLUP TAD (240 ENDOFB, DCA DELIM STA TAD T CDF 10 DCA I (LBEGIN JMP I SCAN
/ALLOW DEASSI FOO ? DEASSI,0 TAD (7740 DCA XR TAD (-17 DCA T DCA I XR ISZ T JMP .-2 CDF 0 TAD I (7746 AND (6777 TAD (1000 DCA I (7746 CDF 10 JMP I DEASSI PAGE
ALTMOD=233 SETPA, 0 JMS I (SETX "P;" A /KEEP HERE MAKE EASY PATCH JMP I SETPA MAKSUB, 0 TAD DELIM SNA CLA JMP I ( CMDERR /DON'T ALLOW MAKE <CR> JMS SETLXR JMS I (GETSPC JMS I (LOVE JMS TECPUT "E;"W;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMOD;0 JMS I (CHKSUP JMS I (REMEM 0 JMP I MAKSUB SETLXR, 0 TAD I (LBEGIN DCA LXR TAD (MOFILE1 DCA I (TYR TAD (-5 /ZERO OPTION TABLE TOO JMS I (ZEROCD TAD LXR DCA SAVLXR JMP I SETLXR /PUT FOLLOW CHARS TECO BUFFER VIA TXR TECPUT, 0 / TAD NAME1 / SNA CLA / JMP I (CDER2 TAD I TECPUT ISZ TECPUT SNA JMP I TECPUT JMS I (TPUT JMP TECPUT+1
/MOVE CHARS FIELD 0 BUFFER /SAVLXR+1 LXR-1 INCLUS /TECO BUFFER 17600 TECMOV, 0 TAD SAVLXR DCA XR2 TAD SAVLXR CMA TAD LXR SNA CLA JMP I (CDER2 /NO FILE SPEC TECL, CDF 0 TAD I XR2 CDF 10 JMS I (TPUT TAD XR2 CMA TAD LXR SNA CLA JMP I TECMOV JMP TECL TECSUB, 0 JMS SETLXR JMS I (GETSPC TAD DELIM SNA JMP TECNOR TAD (-"< /ALLOW "_" AS WELL AS "<" SNA JMP EXTEN TAD ("<-"_ SZA CLA JMP I (CDER2 EXTEN, CDF 0 DCA I LXR /CHANGE < TO 0 CDF 10 JMS TECPUT "E;"W;0 JMS TECMOV JMS SETPA TAD LXR DCA SAVLXR JMS I (CHKSUP JMS I (GETSPC JMS TECPUT ALTMODE;"E;"R;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMODE;"Y;0 JMP TECLV
TECNOR,JMS TECPUT "E;"B;0 JMS TECMOV JMS SETPA JMS TECPUT ALTMOD;"Y;0 TECLV, JMS I (REMEM 0 JMP I TECSUB SAVLXR, 0 PAGE
TPUT, 0 AND (177 /TECO LIKES 7-BIT ISZ TYR DCA I TYR TAD TYR TAD (-7646 /CHECK FOR OVERFLOW OF CD AREA SZA CLA JMP I TPUT CDER9, JMS I (PRMESG TOOLNG MNGSUB, 0 JMS I (SETLXR JMS I (GETSPC JMS I (TECPUT "E;"R;0 JMS I (TECMOV JMS SETX "T;"E EXTOK, JMS I (TECPUT ALTMODE;"Y;"H;"X;"Y;"H;"K;"I;0 TAD DELIM SNA JMP IFIN TAD (-", SZA CLA JMP I (CDER2 G, STL CLA RAR /PREVENT 'GCH' FROM HANDLING SPACE AND / JMS I (GCH AND (177 /GET RID OF HIGH ORDER BIT SNA JMP IFIN JMS TPUT JMP G IFIN, JMS I (TECPUT ALTMODE;"M;"Y;0 /MACRO GETS CALLED WITH POINTER PAST CHARS JMP I MNGSUB TYR, 0
/SET DEFAULT EXTENSION SETX, 0 TAD I SETX DCA C1 ISZ SETX TAD I SETX DCA C2 /FALL THRU 2ND EXT TAD NAME4 SNA CLA TAD NAME1 SNA CLA JMP I SETX TAD I TYR /GET LAST CHAR (NO EXT) TAD (-56 /WAS IT A DOT? SNA CLA JMP I SETX /YES JMS I (TECPUT /NO, USE DEFAULT EXTENSION ". C1, 0 C2, 0 0 TAD C1 AND (77 /*ETOS* JMS I (ROTL BSW /*ETOS* DCA C1 TAD C2 AND (77 TAD C1 DCA NAME4 JMP I SETX CCERA, JMS I (PRMESG CONTRA
CRSUB, 0 TAD I (7617 SNA CLA /BETTER BE NO INPUT TAD I (7600 /ANYTHI THERE? SNA CLA JMP I (CDER2 /NO OUTPUT OR YES INPUT JMS EDSUB /REMOVE BACK-A AND REMEMB CREATE JMP I CRSUB EDSUB, 0 CDF 0 DCA I ARLOC /REPLAC ARROW NULL CDF 10 JMS I ( REMEM /REMEMB NEW COMMAN 1 JMP I EDSUB ARLOC, . /LOCATI OF BACK-A IN COMMAN /'.' HARMLE POINTE IN CASE NO ARROW CCER3, CDF 10 JMS I (PRMESG BADMON CDER4, CLA JMS I (PRMESG BADSW CDER44, CLA JMS I (PRMESG BADSW2 CDER7, JMS I (PRMESG BADX PAGE
INSARR, 0 TAD (BEGLN DCA XR CDF 0 TAD I XR SZA CLA JMP .-2 STA TAD XR DCA XR TAD ("< DCA I XR DCA I XR CDF 10 STA TAD XR DCA I (ARLOC /REMEMBER WHERE WE INSERTED A "_" JMP I INSARR BKA, 0 TAD I (LBEGIN DCA CLXR GG, CDF 0 ISZ CLXR TAD I CLXR CDF 10 SNA JMP NOBKAR TAD (-"< SNA JMP I BKA TAD ("<-"_ SZA CLA JMP GG TAD ("< CDF 0 DCA I CLXR CDF 10 JMP I BKA NOBKAR, ISZ BKA JMP I BKA
AT, 0 TAD (BEGLN-1 DCA LXR ATLOOP, JMS I (GLXR SNA JMP I AT TAD (-300 SZA CLA JMP ATLOOP TAD LXR DCA I (SAVL JMS I (FUDG JMS I (GETSPC JMS I (ASSIGN DCA I (SETEXT TAD (EXTCM DCA DEFALT JMS I (LOOKUP CLA TAD I (LNAME /GET BLOCK NUMBER DCA BLN TAD I (ASADR /GET HANDLER ADDRESS DCA T CIF 0 JMS I T 200 /READ 2 PAGES NWB, BFR+200 /INTO BUFFER BLN, 0 /FROM THIS BLOCK JMP ATERR / I/O ERROR TAD (-200 DCA COUNT TAD (BFR-1 DCA XR TAD NWB DCA T CDF 0 ALP, TAD I T JMS I (P CLL RTR RTR DCA BKA ISZ T TAD I T JMS I (P CLL RTL RTL RAL TAD BKA JMS I (P CLA ISZ T ISZ COUNT JMP ALP JMP I (ATOVER
ATERR, CDF 10 CLA JMS I (PRMESG ATIO COUNT, 0 PAGE
P, 0 AND (177 SNA JMP CTZ /END AT 0 OR ^Z TAD (-32 SNA JMP CTZ TAD (32-16 /IGNORE CR,LF,FF,VT CLL TAD (16-12 SZL JMP POGO TAD (212 /FORCE 8-BIT DCA I XR POGO, CLA TAD I T AND (7400 JMP I P
CTZ, CDF 10 TAD LXR DCA ATEND STA TAD LXR DCA LXR /INCASE @ GOES TO EOL JMS I (GLXR /SEARCH FOR EOL SZA CLA JMP .-2 TAD LXR CMA TAD ATEND DCA ENDLEN TAD XR CMA TAD (BFR /GET LENGTH OF INSERTED STUFF DCA NEWLEN TAD ENDLEN JMS I (MOVE /MOVE REST OF LINE UP CDF 0 ATEND, 0 /FIRST CHAR POSITION AFTER @ SPEC /*ETOS* CDF 0 NOP /*ETOS* SAME FIELD, NOP FASTER BEGLN+1000 TAD NEWLEN JMS I (MOVE /MOVE IN NEW STUFF CDF 0 BFR /*ETOS* CDF 0 NOP /*ETOS* SAVL, 0 /POINTS TO @ TAD NEWLEN CIA TAD SAVL DCA NEWEND CLL TAD NEWEND TAD (-BEGLN-1000 SZL CLA JMP ATOVER TAD ENDLEN JMS I (MOVE /MOVE BACK END CDF 0 BEGLN+1000 /*ETOS* CDF 0 NOP /*ETOS* NEWEND, 0 /FIRST POSITION AFTER NEW STUFF JMP I (AT+1 /LOOK FOR MORE ATOVER, JMS I (PRMESG OVFLOW ENDLEN, 0 /- NO. OF CHARS AT END INCLUDING 0 NEWLEN, 0 /- NO. OF CHARS BEING INSERTED
NUMC, 0 TAD (SKP DCA I (NUMSKP TAD (-11 DCA I (NUMKNT JMS I (NUMBER DCA NAME2 TAD I (HIORD DCA NAME1 STA TAD LXR DCA LXR TAD (-11 DCA I (NUMKNT JMS I (NUMBER DCA NAME4 TAD I (HIORD DCA NAME3 TAD (SPA DCA I (NUMSKP JMP I NUMC /ETOS ROUTINES FOR CURRENT JOB AND CURRENT CONSOLE / /CURRENT JOB JOB, 0 TAD (CURJNO /CURRENT JOB FUNCTION NO. MQL SYSCAL /ETOS SYSCAL MQL JMS I (OCTPRI /PRINT IT JMP I JOB / /CURRENT CONSOLE / CONSOL, 0 TAD (DATXNO /DATAXS FUNCTION NO. MQL TAD (WHEOFF /OFFSET FOR CONSOLE SYSCAL /ETOS SYSCAL JMS I (OCTPRI /PRINT IT JMP I CONSOL / / PAGE
HISIZ, 0 /HIGHEST CORE BANK NEWCOR, 0 /PROPOSED NEW CORE BANK DETCOR, 0 CIF 0 JMS I (CORE TAD (-10 SNA JMS I (K8 TAD (-30 SNA JMS K32 TAD (40 JMS OTOD CDF 0 DCA I (CORMES CDF 10 TAD I (LBEGIN DCA LXR CDF 0 STA TAD I (CORSIZ DCA HISIZ JMS I (GLXR /GET NEXT CHAR SNA JMP COREQ /NOT SETTING CORE SIZE TAD (-260 DCA NEWCOR TAD NEWCOR AND (7770 SZA CLA JMP I (CMDERR /TRIED TO SET CORE SIZE GT 7 TAD NEWCOR CIA TAD HISIZ SPA CLA JMP BADCOR /TRIED TO SET SOFTWARE CORE SIZE GT REAL CORE SIZE CDF 0 TAD I (7777 CDF 10 RTL /BATCH BIT TO LINK SZL CLA JMP WRSCOR /CAN'T CHANGE CORE SIZE UNDER BATCH TAD NEWCOR CLL RTL RAL DCA NEWCOR CDF 0 TAD I (7777 AND (7707 TAD NEWCOR DCA I (7777 COREQ, CDF 0 TAD I (7777 CDF 10 AND (70 SNA JMP ABSCOR TAD (10 CLL RAR JMS OTOD CDF 0 DCA I (SCRMES TAD I (SCRMES CIA TAD I (CORMES CDF 10 SNA CLA JMP ABSCOR /DON'T PRINT SOFT IF = REAL JMS I (PRINT SCRMES JMP I DETCOR BADCOR, JMS I (PRINT NOCORE JMP COREQ ABSCOR, JMS I (PRINT CORMES JMP I DETCOR WRSCOR, JMS I (PRINT BATCOR JMP COREQ
OTOD, 0 DCA TT DCA T TAD TT TAD (-12 ISZ T SMA JMP .-3 TAD (72 DCA CORETM STA TAD T SNA TAD (40-60 TAD (60 /*ETOS* JMS I (ROTL BSW /*ETOS* TAD CORETM JMP I OTOD
CORETM, K32, 0 TAD (4100 CDF 0 DCA I (CORMES+4 CDF 10 JMP I K32 PAGE
DATE, 0 TAD I (DATWD SNA JMP NODATE DCA DATEM TAD DATEM CLL RTL RTL RAL AND (17 DCA TM1 TAD TM1 TAD (MONLST-1 DCA TM2 CDF 0 TAD I TM2 CDF 10 DCA MONP TAD DATEM AND (7 DCA TM2 TAD TM2 TAD (6760 DCA YEAR TAD DATEM CLL RTR RAR AND (37 DCA DATEM TAD DATEM JMS I (OTOD DCA DAY CDF 0 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 DATEM DCA DATEM TAD TM1 TAD (JAN-1 DCA TM1 TAD I TM1 CDF 10 TAD DATEM DIV7, CLL TAD (-7 SZL JMP DIV7 TAD (7 TAD (WEEKLST DCA TM2 CDF 0 TAD I TM2 CDF 10 DCA WKP STA /DON'T CRLF JMS I (PRINT WKP, 0 STA JMS I (PRINT DAYDAY STA JMS I (PRINT MONP, 0 STL CLA RAR JMS I (PRWD /SPACE TAD DAY JMS I (PRWD STA JMS I (PRINT COM19 TAD YEAR JMS I (PRWD JMS I (CRLF JMS I (LOOK /LOOKUP SYS:DATE.SV YDATE JMP I DATE /DO NOTHING IF IT'S NOT THERE JMP I (CHAIN /CHAIN TO IT, IF IT'S THERE
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 CONTAI 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 /CATCHE A:B: TAD NAME2 JMP FILLP1 DVFLAG, 0 CDERA, JMS I (PRMESG BADEV PAGE
CDINIT, 0 TAD I DEFALT TAD (-5200 SZA CLA /THIS A REQUES FOR A /"SPECIAL DECODE"? JMP CDCONT /NO TAD ALTLIM DCA OUTLIM /YES, SET UP THE PROPER LOCATI TAD ALTDF1 DCA LIMDIF /GET 1 OUTPUT AND 5 INPUT FILES TAD ALTDF2 DCA BEGDIF /OF WHICH ARE /5-WORD <DEVICE,NAME> ENTRIE DCA I PLKUPS TAD STARJM DCA I PSTARS /AND ALLOW * /AS A FILE OR EXTENS NAME TAD CCLA /STOPS FETCHE IN SPECIA MODE DCA I PSPKG1 /NO HANDLE FETCHE NECESS EITHER /SINCE NO LOOKUP CDCONT, JMS I (BKA STA DCA I (OUTSW JMS I (ZEROCD TAD LBEGIN DCA LXR JMP I CDINIT /CONSTA NECESS SUPPOR "SPECIAL DECODE" MODE ALTLIM, 1-MOFIL5 ALTDF1, MOFILE+5-MPARA+5 ALTDF2, 5 PLKUPS, LKUPSW PSTARS, STARSW PSPKG1, SPKLG1 BEGDIF, MIFILE LIMDIF, MIFILE+2 OUTLIM, 1-MIFIL LBEGIN, 0 /PTS 1 CHAR BEFORE COMMAN KEYWOR ARGUME
NMOVE, 0 TAD I (FLAG RTL SMA CLA /FEATUR ENABLE? JMP CCERB /NO TAD I (OUTSW SZA CLA JMP CCERB /ON OUTPUT SIDE TAD I NMOVE ISZ NMOVE DCA PT1 TAD I PT1 SNA CLA CLL IAC RAL /*ETOS* SET DEVICE DSK IF NONE DCA I PT1 ISZ PT1 TAD I PT1 /WAS THERE A SPECIF THERE? SZA CLA JMP I NMOVE /YES, DO NOTHIN TAD I (FLAG AND (200 /GET 'COPY EXTENS' BIT SZA CLA STA /COPY 4 WORDS IF BIT 4 WAS ON TAD (-3 /OTHERW ONLY COPY 3 WORDS JMS I (MOVE /*ETOS* CDF 10 NOP /*ETOS* WE DON'T REALLY NEED THOSE CDFS NAME1 /*ETOS* CDF 10 NOP /*ETOS* AND NOPS ARE FASTER TEM, PT1, 0 TAD I ( FLAG /LOOK 'COPY EXT' BIT AND (1200 /*ETOS* AND '-LP, ECT.' BIT SNA CLA JMP I NMOVE /IT WASN'T SET TAD I (7617 /GET FIRST OUTPUT DEVICE AND (17 /ISOLAT DEVICE BITS DCA I (7600 /FORCE THIS BE FIRST OUTPUT DEVICE JMP I NMOVE CCERB, JMS I (PRMESG BADSW
VERTN, 0 JMS I ( RDMON /READ MONITO 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 /*ETOS* JMS I (ROTL BSW /*ETOS* TAD TEM CDF 0 DCA I (VLOC CDF 10 JMS I (PRMESG VMES /ROUTINE TO PRINT A TWO DIGIT NUMBER CURRENTLY IN MQ / OCTPRI, 0 MQA /INTO AC AND (0070 /BITS 6-8 TAD (260 JMS I (TYPE MQA AND (0007 /BITS 9-11 TAD (260 JMS I (TYPE JMP I OCTPRI / / STARJM, RELOC STARNM /DUMP LITERALS AT LAST POSSIBLE MOMENT JMP STARNM RELOC 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 /CON SOLE 1716 6357 5445 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 1217 /JO B 4200 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 0023 /SY STAT 3163 6441 6400 2405 /TE CO 4357 0024 /TI ME 1155 4500 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-.
IFDEF XYZMCR < THIS IS THE TECO MACRO WHICH WAS USED TO CREATE THE ABOVE TABLE: HKGYJ2SR0,.KHXAHKMA TYPE COMMANDS, SPACE SEPARATES MANDATORY PART FROM OPTIONAL PART, CR TERMINATES COMMANDS, ^Z TERMINATES ALL. ** NO EDITING ** HKHXYHXN0UO0UB0UN !CHLP!^TULQL-32"EOBLAN'QL-13"EOCR'QL-26"EOEND' !CHLP0!QL&63+QBUT QT/8UXQX+48IQT-(8*QX)+48I QL"NZJ.UZGNQLIQZJXNK%N' %O&1"NOCHLP' QN-3"LZUH'I OCHLP !BLANK! 32UBZJ.UZGNQLIQZJXNK%NOCHLP !CR! QHJ /GNZJXN0UN0UB0ULOCHLP0 !END!I00  >
*600 JSBITS=7746 SYSTEM=22 PRMES=330 ERRET=33 /THESE ARE LOCATIONS FROM OS/8 MONITOR /RUNS IN FIELD 0 ONLY. ENTRY, 0 /INITIALLY 0 MEANS 'EX' COMMAND LINPTR, JMP ENTREE /OS/8 JUMPS HERE (ACTUALLY TO 600) TEMM, TEKLDG, ISZ CCLNHR /TECO 'EG' JUMPS HERE DCA I (BEGLN /ZERO COMMAND LINE JMP TEGO /FIRST WE DISABLE CALLS TO MONITOR ENTREE, TAD (7605 DCA ERRET TAD SYSTEM DCA MYSYS JMS FINDIT SPA CLA /WAS IT A LEGAL COMMAND? JMP I (PRQMRK /NO TEGO, TAD (6003 /YES DCA I (JSBITS CIF 10 JMS I MYSYS /CALL USR AND LOCK IN CORE 10 CLA IAC CIF 10 JMS I (200 2 CCLBLC, CCLSV CCLEN, 0 CCLNHR, JMP NOCCL /ISZ'ED IF KBM NOT IN CORE CLA IAC TAD CCLBLC DCA CCLRDB JMS I (7607 CCLCCW, 2711 /READ 27 PAGES OF CCL.SV CCLSTR, 2000 MYSYS, CCLRDB, 7700 /INITIALLY POINTS TO USR JMP NOCCL CIF CDF 10 JMP I CCLSTR
CCLSV, FILENAME CCL.SV NOCCL, CLA SKP JMP I (7605 /GO BACK TO MON IF CCL NOT FOUND ON TECO EG COMMAND JMS I (PRMES /PRINT ERROR MESSAGE OTHERWISE TEXT /NO CCL!/ 0
/FINDS IF INPUT LINE STARTS WITH A COMMAND /LEAVES ENTRY # IN AC, -1 IF NOT FOUND /ENTRIES START AT ENTRY 0. /CALLABLE FROM ANY FIELD FINDIT, 0 MORE, TAD (BEGLN-1 DCA LINPTR ISZ LINPTR TAD I LINPTR TAD (-240 SNA CLA JMP .-4 JMS GETKAR JMP ENDOFT /NO MATCH JMP INTO FNLUP, TAD I LINPTR TAD (-301 STL TAD (-32 SNL CLA JMP NOLET /NOT A LETTER JMS GETKAR JMP MATCH INTO, CIA TAD I LINPTR AND (37 /5-BIT ASCII ISZ LINPTR SNA CLA /DO THEY MATCH? JMP FNLUP /YES NOMT, JMS GETKAR SKP JMP .-2 /SCAN TO NEXT ENTRY ISZ ENTRY JMP MORE NOLET, JMS GETKAR JMP MATCH CLA ISZ SIGNIF JMP NOMT MATCH, TAD ENTRY SKP ENDOFT, STA RETCIF, CDF 0 /RETURN TO CALLING FIELD (MAY BE OVERLAID) JMP I FINDIT KPTR, KEYWRD
HALF, -1 /0 MEANS LEFT HALF SIGNIF, 0 /1 MEANS 40 BIT ON WHICH MEANS CHAR IS SIGNIF ONLY IF PRESENT /GETKAR GETS NEXT 5-BIT CHAR, LEAVES IT IN AC /SETS SIGNIF TO -1 IF 40 BIT WAS PRESENT /TAKES RETURN 1 IF CHAR IS 0 /TAKES RETURN 2 OTHERWISE GETKAR, 0 ISZ HALF JMP RTHALF TAD I KPTR RTR RTR RTR JMP INSIDE RTHALF, STA DCA HALF TAD I KPTR ISZ KPTR INSIDE, AND (77 DCA TEMM TAD TEMM AND X40 X40, SZA CLA STA DCA SIGNIF TAD TEMM SZA ISZ GETKAR AND (37 JMP I GETKAR PAGE
*REST CORE, 0 COR0, CDF 0 TAD CORSIZ CLL RTL RAL AND COR70 TAD COREX DCA .+1 COR1, CDF TAD I CORLOC COR2, NOP DCA COR1 TAD COR2 DCA I CORLOC COR70, 70 TAD I CORLOC CORX, 7400 TAD CORX TAD CORV SZA CLA JMP COREX TAD COR1 DCA I CORLOC ISZ CORSIZ JMP COR0 COREX, CDF 0 TAD CORSIZ CLL RTL CIF CDF 10 JMP I CORE CORLOC, CORX CORV, 1400 CORSIZ, 1
ERRCMD, TEXT /#ERROR IN COMMAND/ BADVMS, TEXT /#CCL 3X OVERLAY AND MONITOR INCOMPATIBLE/ AAAA=. *BADVMS+3 CCLTAB&77^100+40 *AAAA
LOVMES, TEXT /NOT WAR?/ KILMES, TEXT /FILES DELETED:/ RENMES, TEXT /FILES RENAMED:/ MOVMES, TEXT /FILES COPIED:/ SCRMES, TEXT \00K/\ *.-1 CORMES, TEXT /00K CORE/ DAYDAY, TEXT /DAY /
NOCORE, TEXT /# NOT ENOUGH CORE/ BATCOR, TEXT /#CANNOT CHANGE CORE CAPACITY WHILE RUNNING BATCH/ JAN, 0 FEB, 3 4;0;2;5;0;3;6;1;4;6
SUP, TEXT /%SUPERCEDING/ MEMWARN,TEXT /%CAN'T REMEMBER/ SYSER, TEXT \#I/O ERROR ON SYS:\ BADSYN, TEXT /#ILLEGAL SYNTAX/ TOOMAN, TEXT /#TOO MANY FILES/ NF, TEXT / NOT FOUND/ DNE, TEXT / DOES NOT EXIST/
BADMON, TEXT /#BAD MONITOR/ ATIO, TEXT /#INPUT ERROR READING INDIRECT FILE/ OVFLOW, TEXT /#COMMAND LINE OVERFLOW/ BADNUM, TEXT /#BAD NUMBER/ BADSTR, TEXT /#ILLEGAL * OR ?/
BADX, TEXT /#BAD EXTENSION/ BADOPT, TEXT /#BAD SWITCH OPTION/ TOOLNG, TEXT /#COMMAND TOO LONG/ REMBAD, TEXT \#I/O ERROR TRYING TO RECALL\
BADSW, TEXT /#SWITCH NOT ALLOWED HERE/ BADSW2, TEXT /#BAD CCL SWITCH/ NONE, TEXT /NONE/ BADREM, TEXT /#BAD RECOLLECTION/ BADEV, TEXT /#BAD DEVICE/ CONTRA, TEXT /#CONTRADICTORY SWITCHES/
VMES, TEXT \OS/8 VERSION 3 (CCL VERSION A)\ VLOC=VMES+7 *.-2 CCLVER&77^100+51 / X) *.+1
YEDIT, FILENAME EDIT.SV *.-1 YBOOT, FILENAME BOOT.SV *.-1 YFORT, FILENAME FORT.SV *.-1 YF4, FILENAME F4.SV *.-1 YBITMAP,FILENAME BITMAP.SV *.-1 YSRCCOM,FILENAME SRCCOM.SV *.-1 YBASIC, FILENAME BCOMP.SV *.-1 YPAL8, FILENAME PAL8.SV *.-1 YFOTP, FILENAME FOTP.SV *.-1 /YCREF, FILENAME CREF.SV / *.-1 YDIRECT,FILENAME DIRECT.SV *.-1
YPIP, FILENAME PIP.SV *.-1 YABSLDR,FILENAME ABSLDR.SV *.-1 YLOADER,FILENAME LOADER.SV *.-1 YLOAD, FILENAME LOAD.SV *.-1 YTECO, FILENAME TECO.SV *.-1 YLPTSPL,FILENAME LPTSPL.SV *.-1 YCAMP, FILENAME CAMP.SV *.-1 YRESORC,FILENAME RESORC.SV *.-1 YBATCH, FILENAME BATCH.SV *.-1 YRALF, FILENAME RALF.SV *.-1 YSABR, FILENAME SABR.SV *.-1 YDATE, FILENAME DATE.SV *.-1 YCCL, FILENAME CCL.SV *.-1 YSYSTA, FILENAME SYSTAT.SV *.-1 YTIME, FILENAME TIME.SV *.-1
MONLST, MON1 MON2 MON3 MON4 MON5 MON6 MON7 MON8 MON9 MON10 MON11 MON12
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/
COM19, TEXT /, 19/ 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/ LPTDEV, DEVICE LPT TVDEV, DEVICE TV TTYDEV, DEVICE TTY PTPDEV, DEVICE PTP
FIELD 1 *2001 $
Note: Lines longer than 256 characters were wrapped



Feel free to contact me, David Gesswein djg@pdp8online.com with any questions, comments on the web site, or if you have related equipment, documentation, software etc. you are willing to part with.  I am interested in anything PDP-8 related, computers, peripherals used with them, DEC or third party, or documentation. 

PDP-8 Home Page   PDP-8 Site Map   PDP-8 Site Search