@CAT,P 1015-021-023.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1015-021-023,,,130107053241,000 )@@G@@**PF**@@@@-A@@@@@@@@@@@[@]"@@@]FE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@]G@@@]F^ ;Q@@@@@@@@@@@ @@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@ AN )@@G@@RSI @@@@@@@@[@@] @ @@@[]@@@];@@@@W@[4*]]FRSI AO )@@G@@@@@@@@@@A@@@ )@@]@@@@@@@-@@@@Y;[4*]]FINST @@@@@@@@[@@@AP )@@G@@ @ @@@[@@@@@C@@@@ZWN-RFRECONSOLE @@@@@@@@[@@ AQ )@@G@@@ @@@[]@@@[N@@@@Z=H,7[XFCONSOLE @@@@@@@]A@@@ )@@]@@@@@@@JAR )@@G@@@@@@)7E!"[XFINFOR @@@@@@@@ @@@ @@@@Y@@@]@@ @@@@X;M0QCHEAS )@@G@@OUTPUT @@@@@@@@ @@@ @@@@YA@@]@@^@@@@Y]M0TCHESTAT AT )@@G@@@@@@@@@@ @@@ @@@@YI@@]@@A@@@@YCM0>CHECYL @@@@@@@@[@@EAU )@@G@@ @ @@@[]@@@@P@@@@YK#KFCIECYL @@@@@@@@ @@@ AV )@@G@@@@@@Y:@@]@@A@@@@Y>#KLCIEABSAD @@@@@@@@[@@G @ @@@[]@@@[WAW )@@G@@@@@@Y![:3EREABSAD @@@@@@@@ @@@ @@@@)U@@^@@L@@@@)D[?FEREAX )@@G@@SEARCH @@@@@@@@[@@I @ @@@[]@@@[C@@@@)YJ8EFTESEARCH AY )@@G@@@@@@@@@@ @@@ @@@@-8@@#@@M@@@@-&J8TFTEABR @@@@@@@@ @@MAZ )@@G@@ @@@@+)@@E@@>@@@@-;LJ G]EVOL1 @@@@@@@@[@@L BA )@@G@@@ @@@[]@@@@-@@@@+%ODQ[KFVOL1 @@@@@@@@ @@@ @@@@[KFBC )@@G@@ABR @@O@@@@@[@@@ @ @@@[]@@@]!@@@@>RK%I[SFABR BD )@@G@@@@@@@@@@[@@@DOC @ @@@[B@@@@V@@@@*^[)[[TFDIRVER @@@@@@@@[@@@BE )@@G@@ @ @@@[]@@@VO@@@@*Z[4O]]FDDUMP @@@@@@@@[@@R BF )@@G@@@ @@@[]@@@@M@@@[#3O 3GCEDDUMP @@@@@@@@A@@@ )@@]@@@@@@@WBG )@@G@@@@@[^ [U4G]ETXD @@@@@@@K[@@9 @ @@@[]@@@[8@@@@,]E1UCZEBH )@@G@@IMM @@@@@@@@[@@' @ @@@[]@@@@0@@@@\'C'#FKCTOPS BI )@@G@@@@@@@@@@[@@6 @ @@@[]@@@@T@@@@0%D]KFKCVARS @@@@@Y@@[@@1BJ )@@G@@ @ @@@[]@@@[!@@@@1#I,#DYDMISC @@@@@@@@[@@\ BK )@@G@@@ @@@[]@@@ G@@@@20BPOFEEMAIN @@@@@@@@[@@@MAP @ @@@[A@@@@#BL )@@G@@@@@@7/C ,CKBMSGS @@@@@@@K[@@" @ @@@[]@@@@'@@@@7_C1&FKCBM )@@G@@FLC @@@@@@@@[@@2 @ @@@[]@@@#8@@@@89A5OFEEGP BN )@@G@@@@@@@@@@[@@8 @ @@@[]@@@# @@@@/1D#AFKCINSTALLATION@@@@@@@@[@@@BO )@@G@@ @ @@@[B@@@@$@@@@_6O0UGYBMCCF @@@@@@@@ @@@ BP )@@G@@@@@[@4@@I@@R@@@[@XMP8FFEP1MAP @@>@@@@@[@@@ @ @@@[A@@@@ BQ )@@G@@@@@[[]C^>CKBEDQC$ @@@@@@@@[@[EP1MAP @ @@@[A@@@@ @@@[[BL5/FFEBR )@@G@@P1MAP @@(@@@@@[@@@SNOOPY @ @@@[A@@@@A@@@[[GC^>CKBCERU$ BS )@@G@@@@@@@@@@[@@$ @ @@@[]@@@@K@@@[[MN@!BECCERU$ @@@@@@@@ @@@BT )@@G@@ATT @@@[[+@@A@@@@@@[[+L17EHESYSIO @@@@@@@@[@@, BU )@@G@@@ @@@[]@@@[/@@@[[*B?OFEEP1MAP @@@@@@@@[@@@FLAP @ @@@[A@@@@ BV )@@G@@@@@[#=C^>CKBFILE @@@@[D@@[@@7 @ @@@[]@@@#P@@@[#(D[FFKCBW )@@G@@MACS @@@@@@@@[@@0 @ @@@[]@@@#K@@@[A"C3)FKCEDQT BX )@@G@@@@@@@@@@[@@@P1MAP @ @@@[A@@@@ @@@[EIL*>FFEEDDBK @@@@@@@@[@@_BY )@@G@@ @ @@@[]@@@[E@@@[ENL^2 ]CSYSIO @@@@@@@@ @@@ BZ )@@G@@@@@[F\@@^@@M@@@[FXK<4G]EMISC @@@@@@@@ @@@ @@@[G=@@O@@1CA )@@G@@@@@[F3K=MG]EMACS @@@@@@@@ @@@ @@@[HL@@^@@T@@@[G8K=!G]ECB )@@G@@VARS @@@@@@@@ @@@ @@@[H-@@#@@G@@@[HPK=/G]EFLC CC )@@G@@@@@@@@@@ @@@ @@@[I#@@^@@Z@@@[H=K>LG]EIRAS @@@@@@@@ @@@CD )@@G@@ @@@[IN@@^@@G@@@[IBK>)G]EDNG @@@@@@@@ @@@ CE )@@G@@@@@[IW@@#@@ @@@[IRK>%G]EPRINT @@@@@@@@ @@@ @@@[I+@@]@@#CF )@@G@@@@@[IZK>2G]ETOPS @@@@@@@@ @@@ @@@[I*@@#@@^@@@[I=K>'G]ECG )@@G@@FILE @@@@@@@@ @@@ @@@[JE@@A@@Z@@@[I:K&IG]EGP CH )@@G@@@@@@@@@@ @@@ @@@[J%@@ @@U@@@[JKK&>G]ETXD @@@@@@@@ @@@CI )@@G@@ @@@[J8@@]@@D@@@[J\K&,G]EIMM @@@@@@@@ @@@ CJ )@@G@@@@@[K[@@#@@B@@@[J'K&'G]EHDG @@@@@@@@ @@@ @@@[KC@@]@@^CK )@@G@@@@@[K^K$^G]ESEQ @@@@@@@@ @@@ @@@[KI@@]@@^@@@[KEK$GG]ECL )@@G@@CALLR @@@@@@@@ @@@ @@@[KP@@#@@ @@@[KKK$RG]EMSGS CM )@@G@@@@@@@@@@ @@@ @@@[K(@@J@@L@@@[KSK$=G]EEDDBK @@@@@@@@ @@@CN )@@G@@ @@@[LQ@@G@@Y@@@[K8K(WG]EEDDBF @@@@@@@@ @@@ CO )@@G@@@@@[L>@@]@@#@@@[L+K(*G]EMANUAL @@@@@@@K[@@@ @ @@@[[@@@NXCP )@@G@@@@@[L$N)'D#EMCC @@@@@@@@[@[# @ @@@[]@@@]Z@@@[>^C1&FKCCQ )@@G@@MCC @@@@@@@@ @@@ @@@[$'@@I@@R@@@[$ZGFEMACROS @@@@@@@@[@@@NYU CY )@@G@@@ @@@[@@@@@C@@@]##[2']]FEDQ @@@@@@@K[@@@NEWS @ @@@[[@@@#KCZ )@@G@@@@@]#F[2;]]FAAPCT @@@@@@@@[@@@ @ @@@[@@@@@K@@@@!4F]L[QFDA )@@G@@CKEY @@@@@@@@[@@@ @ @@@[@@@@[D@@@@,^FAO[QFCNSLIT DB )@@G@@@@@@@@@@[@@@ @ @@@[@@@@@B@@@@\HFE:[QFCSN @@@@@@@@[@@@DC )@@G@@ @ @@@[@@@@@^@@@@\OJ"K]$GBEDRC @@@@@@@@[@@@ @ @@@[@@@@@^@@@@\&KA1GBEDF )@@G@@EX8LOD @@@@@@@@[@@@ @ @@@[@@@@@]@@@@\%KB[GBEEXITF0 DG )@@G@@@@@@@@@@[@@@ @ @@@[@@@@@+@@@@\?KEXGBEFNCCNT @@@@[)@@[@@@DH )@@G@@ @ @@@[@@@@@^@@@@0IKFQGBEINIT1 @@@@[(@@[@@@ DI )@@G@@@ @@@[@@@@@^@@@@0MI(Q[]FINIT2 @@@@@@@@[@@@ @ @@@[@@@@@^DJ )@@G@@@@@@0QKG3GBEIO @@@@@@@@[@@@ @ @@@[@@@@@D@@@@0UAW9GMEDK )@@G@@KPOOL @@@@@@@@[@@@ @ @@@[@@@@@[@@@@0[L&EPEIO-WITH-FIX @@@@@@@@[@@@ @ @@@[@@@@[[EN )@@G@@@@@@8SL3 EQEAASMTAGS @@@@@@@@[@@@ @ @@@[[@@@[N@@@@9TEN5EREEO )@@G@@FALL @@@@@@@@[@@@ @ @@@[[@@@@Q@@@@'?O/1EVESN$AP EP )@@G@@@@@@@@@@[@@@ @ @@@[@@@@[=@@@@;]@I]EWEIO @@@@@@@@[@@@EQ )@@G@@ @ @@@[@@@@@/@@@@/&KZ%EYEIOMSA @@@@@@@@[@@@ ER )@@G@@@ @@@[@@@@@ @@@@.+MQREYESMSAPR @@@@]A@@[@@@ @ @@@[@@@@@FES )@@G@@@@@@.$MU2GDESMUPQ @@@@@@@@[@@@ EW )@@G@@@ @@@[@@@@@ @@@@":J#4GFEK DISTRIBUTION <<<<<<<<<',/,@G@@@@ *' ACCEX )@@G@@OUNT',T16,'FILES',T26,'FIXED',T37,'REMOV',T46,'SEC TAPES', @F@@@@ *EY )@@G@@T58,'V-OPTION',T69,'G-OPTION',T84,'F2',T95,'F4',T105,'F17', @E@@@@ *EZ )@@G@@T116,'F14',T127,'F40',/,' -----',21('------'),/,) @[@@@@ @ @@@@FA )@@G@@ 1003 FORMAT (1X,2A6,I6,10I11)@[@@@@ @B@@@@ 1004 FORMAT (1X,2A6,I4,FB )@@G@@I7,I6,6I5,2I6) @[@@@@ @D@@@@ 1005 FORMAT ('0FILES:',I6,', FIXEDFC )@@G@@ TRACKS:',I6, @E@@@@ *', V-OPT TRACKS:',I6,', SECURE BACKUP BLFD )@@G@@OCKS:',I6,/,@C@@@@ *16X,'REMOV TRACKS:',I6,', G-OPT TRACKS:',@ @@@@FE )@@G@@ *I6,A1,' UNLOADED:',I6) @[@@@@ @C@@@@ 1006 FORMAT(1H1,'SUMMARFF )@@G@@Y BY BILLING AREA: ', @E@@@@ *3X,'FILES (F) TRACKS (R) V/G-OPFG )@@G@@T SEC TAPES'/) @[@@@@ @A@@@@ 1007 FORMAT(1H0,4A6,4I9,3X,I9) FH )@@G@@@[@@@@ @ @@@@ 1008 FORMAT ('0END GBILL') @[@@@@ @ @@@@ 2000 FI )@@G@@FORMAT(4A6,I4,10I5,'GB')@[@@@@ @]@@@@ END ___ F1RE BACKUP BLFJ )@@G@@)@@@F]S@@@@@)@#@C@)@]@C@)[G@C@)@#@IS)@?@C@IN HOU@@@@@[@@@@@@@@@@@@@@@@@@FK )@@G@@/,0@@@AA@@@F)@![S@@@@@@@ /AMC ORNELLROCK/C ER L CENTMEDICAFL )@@G@@ SE AB@@@F)@8[S@@@@@@@,G) ACT (T,USTUDENCH RESEARSORED FM )@@G@@UNSPON SEARCHRED RESPONSOAC@@@F)[#[C@@@@@@@)@[@E@@@@@@@ FN )@@G@@ OTHER EXEC CTS AD@@@F)@][F#L#L#L#L] #@K3@@@@@FO )@@G@@;)@@@PC@@@@]@[=@@@@@@@[H/,0@@@ @@[X4 @@[X3 @@[X2 @@[X1AE@@@F)@F[M[@^G^G1FP )@@G@@#H#G@@C@@@@][^0@@]+8);__C^)@@][@@@@#C/@@@[/K@@@L*@@@@GG/@__";C@@@FZ )@@G@@ ENTRY@E@@@@ J NR11 . $T WAS IT FOUND ? GA )@@G@@@E@@@@ J NR2 . $A YES,NR2 NO,NR11 @A@@@@GB )@@G@@NR10 L A0,(-1) . @G@@@@ S,H1 A0,3,X8 GC )@@G@@. $P SET BAD LN # FLAG IN LENGTH IN PARAM @E@@@@ JNB A4,NR12 GD )@@G@@ . $T IS THIS NEXT-LN FNC @C@@@@ GE )@@G@@. $A YES NO,NR12 @G@@@@NR11 SZ,H1 3,X8 . $P PUT ZERO IN LGF )@@G@@ENGTH OF PARAM @E@@@@ L A0,LNNUM . $P GET LASGG )@@G@@T LINE IN PROC @E@@@@ A A0,LNINC . $P INC TO NEXT LGH )@@G@@INE @A@@@@ TG,U A0,2001 . @A@@@@ L,UGI )@@G@@ A0,2000 . @A@@@@ S,H2 A0,2,X8 . @C@@@@GJ )@@G@@NR12 SZ,H1 2,X8 . $P ZERO LINE-# @C@@@@ J *REGK )@@G@@TURN . $E RETURN @]@@@@ . @A@@@@ . GL )@@G@@ ** PF$AMW ** @]@@@@ . @C@@@@ . ROUTINE TO WRITE A LGM )@@G@@INE TO THE FILE @A@@@@ . FOR A PARTICULAR PROC@]@@@@ . GN )@@G@@ @^@@@@ . CALL IS @A@@@@ . LX,U X10,PGO )@@G@@ARAM @A@@@@ . LMJ X11,PF$AMW @C@@@@ . WHEGP )@@G@@RE PARAM IS FOLLOWING @E@@@@ . PARAM + PRGQ )@@G@@OC-NAME (2 WORDS) @G@@@@ . + LINE-#,[GR )@@G@@NEXT-LINE-#] (N-L-# RETURNED)@E@@@@ . + LEGS )@@G@@NGTH,BUF-ADDR @]@@@@ . @G@@@@ . THE ROUTINE CHGT )@@G@@ECKS TO SEE IF LINE-# HAS BEEN PREVIOUSLY @G@@@@ . ENTGU )@@G@@ERED, AND IF SO REPLACES IT WITH THE NEW LINE @]@@@@ . GV )@@G@@@C@@@@PF$AMW*. . $H PF$AMW @A@@@@ L GW )@@G@@ A4,(-1) . @C@@@@ J RNWS . $J RNWS GX )@@G@@ @]@@@@ . @E@@@@ . THIS PART OF LOGIC HANDLES STOREGY )@@G@@ OF LINE @C@@@@ . WHERE LINE # ALREADY EXISTS GZ )@@G@@@]@@@@ . @E@@@@W1 L A2,LNCNT . $P DECREMENT LINHA )@@G@@E COUNT @A@@@@ AN,U A2,1 . @A@@@@ S HB )@@G@@ A2,LNCNT . @E@@@@ TG,U A1,1900 . $T IS LINEHC )@@G@@ # < 1900 ? @G@@@@ SLJ LNWARN . $W LNWARN - PRINHD )@@G@@T MAX LINE WARNING @A@@@@ AN,U A0,1 . @E@@@@HE )@@G@@ L R3,A0 . $P SAVE INDEX ADDR FOR LINE @E@@@@ HF )@@G@@ L A0,0,A0 . $P GET ADDR OF OLD LINE @A@@@@ LSSHG )@@G@@L A0,12 . @A@@@@ SSL A0,12 . @A@@@@HH )@@G@@ L A5,A0 . @E@@@@ L,H1 A2,3,X8 HI )@@G@@. $P GET NEW LINE LENGTH @E@@@@ A,U A2,5 . $P AHJ )@@G@@DD WORD FOR HEADER @A@@@@ SZ A1 . @G@@@@HK )@@G@@ DI,U A1,6 . $P CONVERT LENGTH TO WORD LENGTH HL )@@G@@@A@@@@ A,U A1,1 . @E@@@@ L,H2 A3,0,A0 HM )@@G@@ . $P GET OLD LINE LENGTH @E@@@@ A,U A3,5 HN )@@G@@. $P ADD WORD FOR HEADER @A@@@@ SZ A2 . HO )@@G@@@G@@@@ DI,U A2,6 . $P CONVERT LENGTH TO WORD LENGTH HP )@@G@@ @A@@@@ A,U A2,1 . @G@@@@ TNE A1,HQ )@@G@@A2 . $T ARE OLD & NEW WORD LENGTHS EQUAL ? @C@@@@ J HR )@@G@@ W54 . $A NO YES,W54 @G@@@@ TG A1,A2 HS )@@G@@. $T WILL NEW LINE FIT IN OLD SPACE ? @C@@@@ J W3 HT )@@G@@ . $A YES NO,W3 @G@@@@ AN A2,A1 . $P CALCULAHU )@@G@@TE EXTRA SPACE SIZE AND LOC @A@@@@ AU A2,A5 . HV )@@G@@@G@@@@ SLJ ADDSTK . $W ADDSTK - PUT EXTRA SPACE ON AVAHW )@@G@@IL STK@C@@@@ J W54 . $J W54 @G@@@@W3 HX )@@G@@ L A3,A5 . $P GET SIZE AND LOC OF OLD LINE @G@@@@HY )@@G@@ SLJ ADDSTK . $W ADDSTK - PUT SPACE ON AVAIL STACK HZ )@@G@@@C@@@@ J W50 . $J W50 @]@@@@ . IA )@@G@@@C@@@@ADDSTK + 0 . $H ADDSTK @A@@@@ SZ IB )@@G@@ A4 . @A@@@@ L R1,AVCNT . @E@@@@IC )@@G@@ L X10,(1,AVSTK) . $P SET PTR TO AVAIL STACK @E@@@@ ID )@@G@@ SE,T1 A4,0,*X10 . $P FIND EMPTY SLOT ON STACK @A@@@@ J IE )@@G@@ ADD2 . @A@@@@ AN,U X10,1 . @A@@@@IF )@@G@@ J ADD3 . @A@@@@ADD2 L A4,AVCNT IG )@@G@@. @A@@@@ TG,U A4,500 . @A@@@@ J *ADIH )@@G@@DSTK . @A@@@@ A,U A4,1 . @A@@@@ II )@@G@@ S A4,AVCNT . @E@@@@ADD3 S A3,0,X10 . $P PIJ )@@G@@UT ENTRY INTO STACK @A@@@@ S,T1 A2,0,X10 . @C@@@@IK )@@G@@ J *ADDSTK . $E RETURN @]@@@@ . @E@@@@IL )@@G@@ . THIS SECTION OF LOGIC HANDLES WRITE FNC @C@@@@ . IM )@@G@@ FOR THE CASE OF A NEW LINE-# @]@@@@ . @E@@@@W40 IN )@@G@@ TG,U A1,1900 . $T IS LINE-# < 1900 ? @G@@@@ SLJIO )@@G@@ LNWARN . $W LNWARN - PRINT MAX LN WARNING @E@@@@ IP )@@G@@ L A0,LNCNT . $P GET # LINES AS INDEX CNT @A@@@@ SZ IQ )@@G@@ A4 . @G@@@@ TG,U A0,PRMXLN . $T HAVE MAIR )@@G@@X # LINES BEEN INPUT @C@@@@ J NR10 . $A NIS )@@G@@O YES,NR10 @A@@@@ L R1,A0 . @E@@@@ L IT )@@G@@ A0,INDXAD . $P GET START OF INDEX BLOCK @G@@@@ LXI,U A0,IU )@@G@@1 . $P SEARCH INDEX BLOCK FOR INSERT POINT @E@@@@ SG,IV )@@G@@T1 A1,0,*A0 . $T IS IT AT END OF BLOCK ? @C@@@@ J W41IW )@@G@@ . $A NO YES,W41 @E@@@@ A A0,R1 . $P GIX )@@G@@ET END OF INDEX BLOCK @G@@@@ LXI,U A0,-1 . $P SET INDIY )@@G@@ICES TO SHIFT INDEX BLOCK @A@@@@ L X9,A0 . IZ )@@G@@@A@@@@ AN,U X9,1 . @E@@@@ L A2,R1 JA )@@G@@ . $P GET SHIFT COUNT @A@@@@ A,U A2,1 JB )@@G@@. @A@@@@ L R1,A2 . @G@@@@ BT A0,JC )@@G@@0,*X9 . $P SHIFT INDEX BLOCK TO ALLOW NEW ENTRY @A@@@@W41 L JD )@@G@@ R3,A0 . @G@@@@W50 L,H1 A1,3,X8 . $P GET LINJE )@@G@@E LENGTH FROM PARAM @E@@@@ A,U A1,5 . $P AJF )@@G@@LLOW FOR HEADER WORD @A@@@@ SZ A0 . @G@@@@JG )@@G@@ DI,U A0,6 . $P CONVERT LENGTH TO WORD LENGTH JH )@@G@@@A@@@@ A,U A0,1 . @G@@@@ TNZ AVCNT JI )@@G@@ . $T IS THERE VACANT ALLOCATED SPACE ? @C@@@@ J W52JJ )@@G@@ . $A YES NO,W52 @A@@@@ L R1,AVCNT . JK )@@G@@@G@@@@ L A1,(1,AVSTK) . $P SET PTR TO AVAIL SPACE STACK JL )@@G@@ @G@@@@ SE,T1 A0,0,*A1 . $T IS THERE VACANT SPACE OF JM )@@G@@NEEDED SIZE?@C@@@@ J W51 . $A YES NO,W51 @A@@@@JN )@@G@@ AN,U A1,1 . @G@@@@ L A2,0,A1 JO )@@G@@. $P GET VACANT SPACE ENTRY FROM STACK @E@@@@ SZ 0,A1 JP )@@G@@ . $P CLEAR STACK ENTRY @G@@@@ LSSL A2,12 JQ )@@G@@. $P GET RELATIVE WORD ADDR OF SPACE @A@@@@ SSL A2,12 JR )@@G@@ . @C@@@@ J W53 . $J W53 @A@@@@JS )@@G@@W51 L R1,AVCNT . @G@@@@ L A1,(1,AVSTK) JT )@@G@@. $P SET PTR TO AVAIL SPACE STACK @G@@@@ SG,T1 A0,0,*A1 JU )@@G@@ . $T IS THERE ENTRY WITH ENOUGH SPACE ? @C@@@@ J W52JV )@@G@@ . $A YES NO,W52 @A@@@@ AN,U A1,1 . JW )@@G@@@E@@@@ L,T1 A4,0,A1 . $P GET # WORDS VACANT @A@@@@JX )@@G@@ AN A4,A0 . @G@@@@ L A2,0,A1 JY )@@G@@. $P GET REL WORD ADDR OF VACANT SPACE @A@@@@ LSSL A2,12 JZ )@@G@@ . @A@@@@ SSL A2,12 . @A@@@@ AU KA )@@G@@ A2,A0 . @G@@@@ S A3,0,A1 . $P UPDATE KB )@@G@@AVAIL STK ENTRY TO GIVE LEFT @E@@@@ S,T1 A4,0,A1 . $ OKC )@@G@@VER VACANT SPACE @C@@@@ J W53 . $J W53 KD )@@G@@ @G@@@@W52 L A2,NXTADR . $P GET NEXT UNALLOCATED SPACKE )@@G@@E FOR PROC @G@@@@ TNZ NXTADR . $T HAS NEW SPACE BUFFEKF )@@G@@R BEEN GOTTEN @C@@@@ J W521 . $A YES NO,W521 KG )@@G@@@G@@@@ AU A2,A0 . $P GET END OF NEW LINE IN THIS BUFKH )@@G@@FER @E@@@@ TG A3,LSTADR . $T WILL LINE FIT IN BUFFER KI )@@G@@@C@@@@ J W521 . $A YES NO,W521 @E@@@@ S KJ )@@G@@ A3,NXTADR . $P SAVE NEXT NEW ADDR @C@@@@ J W53KK )@@G@@ . $J W53 @E@@@@W521 L A3,A0 . $P SKL )@@G@@AVE NEW LINE LENGTH @E@@@@ L A0,LAST$D . $P MCORE NKM )@@G@@EW SPACE BUFFER @A@@@@ A,U A0,1 . @A@@@@ KN )@@G@@ L A2,A0 . @A@@@@ A,U A0,512 . KO )@@G@@@G@@@@ S A0,LSTADR . $P SAVE END ADDR OF NEW BUFFER KP )@@G@@ @A@@@@ AN,U A0,1 . @A@@@@ S A0,KQ )@@G@@LAST$D . @A@@@@ ER MCORE$ . @E@@@@ KR )@@G@@ L A0,A3 . $P RESTORE NEW LINE LENGTH @G@@@@ AU KS )@@G@@ A2,A0 . $P GET END OF NEW LINE IN THIS BUFFER @E@@@@ KT )@@G@@ S A3,NXTADR . $P SAVE NEXT NEW ADDR @G@@@@W53 L KU )@@G@@ X9,R3 . $P GET INDEX ENTRY ADDR FOR LINE @E@@@@ KV )@@G@@ S A2,0,X9 . $P SAVE ADDR IN INDEX @E@@@@ L,HKW )@@G@@1 A1,2,X8 . $P GET LINE-# FROM PARAM @E@@@@ S,T1 A1,KX )@@G@@0,X9 . $P SAVE LINE # IN INDEX @A@@@@ L A0,A2 KY )@@G@@ . @A@@@@W54 LXI,U A0,1 . @E@@@@ L,HKZ )@@G@@1 A1,2,X8 . $P GET LINE-# FROM PARAM @E@@@@ S,H1 A1,LA )@@G@@0,A0 . $P SAVE IT IN LINE HEADER @G@@@@ TG A1,LNNUM LB )@@G@@ . $T IS IT LESS THAN LAST-LINE-# ? @E@@@@ S A1,LC )@@G@@LNNUM . $P SAVE IT AS LAST-LINE-# @E@@@@ A A1,LNINC LD )@@G@@ . $P INCREMENT LINE # @E@@@@ TG,U A1,2001 LE )@@G@@. $T IS NEXT # < 2001 @E@@@@ L,U A1,2000 . $P SLF )@@G@@ET NEXT # TO 2000 @G@@@@ S,H2 A1,2,X8 . $P PUT IT LG )@@G@@IN NEXT-LINE-# OF PARAM @E@@@@ L,H1 A2,3,X8 . $P GLH )@@G@@ET LENGTH FROM PARAM @E@@@@ S,H2 A2,0,*A0 . $P SAVE ITLI )@@G@@ IN LINE HEADER @G@@@@ AN,U A2,1 . $P CONVERT CHAR LJ )@@G@@LENGTH TO WORD LENGTH @A@@@@ SZ A1 . @A@@@@LK )@@G@@ DI,U A1,6 . @A@@@@ A,U A1,1 LL )@@G@@. @G@@@@ L R1,A1 . $P SAVE IT FOR TRANSFER COUNLM )@@G@@T @E@@@@ L,H2 X9,3,X8 . $P GET BUF-ADDR FROM PLN )@@G@@ARAM @A@@@@ LXI,U X9,1 . @G@@@@ BT A0,LO )@@G@@0,*X9 . $P TRANSFER LINE TO BLOCK BUFFER @A@@@@ L LP )@@G@@ A1,LNCNT . @E@@@@ A,U A1,1 . $P INCREMELQ )@@G@@NT LINE COUNT @A@@@@ S A1,LNCNT . @C@@@@ LR )@@G@@ J *RETURN . $E RETURN @]@@@@ . @A@@@@ . LS )@@G@@ ** PF$AMD ** @]@@@@ . @C@@@@ . ROUTINE LT )@@G@@TO DELETE A LINE FROM PS$FILE @]@@@@ . @^@@@@ . CALL IS LU )@@G@@ @A@@@@ . LX,U X10,PARAM @C@@@@ . LV )@@G@@ LMJ X11,PF$AMD (PF$AMDN) @C@@@@ . WHERE PARAM IS FOLLOWLW )@@G@@ING - @E@@@@ . PARAM + PROC-NAME (2WORDS) LX )@@G@@ @E@@@@ . + LINE-#,[NEXT-LINE-#] LY )@@G@@@]@@@@ . @C@@@@PF$AMD*. . $H PF$AMD LZ )@@G@@@C@@@@ L,U A4,2 . $P SET FLAG @C@@@@ J MA )@@G@@ RNWS . $J RNWS @C@@@@PF$AMDN*. MB )@@G@@. $H PF$AMDN @C@@@@ L,U A4,3 . $P SET FLAG MC )@@G@@@C@@@@ J RNWS . $J RNWS @E@@@@D1 TE,MD )@@G@@U A4,2 . $T IS THIS DEL NEXT FNC ? @C@@@@ J D2 ME )@@G@@ . $A NO YES,D2 @G@@@@ AN,U A0,1 . $P RMF )@@G@@ESET TO INDEX ENTRY FOR THIS LINE @A@@@@ ANU,U A0,1 MG )@@G@@. @A@@@@ SZ A5 . @A@@@@ TG A1,MH )@@G@@INDXAD . @E@@@@ L,T1 A5,0,A1 . $P GET PRIOR LINMI )@@G@@E # @A@@@@ LSSL A5,18 . @E@@@@ A,HMJ )@@G@@1 A5,2,X8 . $P SAVE THIS LINE # @C@@@@ J D10MK )@@G@@ . $J D10 @E@@@@D2 JGD R1,D10 . $T IML )@@G@@S THERE ANOTHER INDEX @C@@@@ J NR11 . $A YES NO,MM )@@G@@NR11 @E@@@@D3 L A5,2,X8 . $P SAVE LINE # AND NEXT # MN )@@G@@@E@@@@D10 L A2,LNCNT . $P DECREMENT INDEX KEY CNT @A@@@@MO )@@G@@ AN,U A2,1 . @A@@@@ S A2,LNCNT MP )@@G@@. @E@@@@ L A3,0,A0 . $P SAVE INDEX KEY MQ )@@G@@@A@@@@ L A1,R1 . @E@@@@ SZ R2 MR )@@G@@ . $P GET ACTUAL NEXT LINE # @A@@@@ TZ A1 MS )@@G@@. @A@@@@ L,T1 R2,1,A0 . @G@@@@ L X9,MT )@@G@@A0 . $P SET INDICES FOR KEY TRANSFER @A@@@@ A,UMU )@@G@@ X9,1 . @E@@@@ BT A0,0,*X9 . $P PACK INMV )@@G@@DEX KEY BLOCK @C@@@@ LSSL A3,12 . $P GET WORD ADDRMW )@@G@@@A@@@@ SSL A3,12 . @A@@@@ L A0,A3 MX )@@G@@ . @E@@@@ L,H2 A2,0,A0 . $P GET LINE CHAR LENGTMY )@@G@@H @E@@@@ A,U A2,5 . $P ADD HEADER WORD MZ )@@G@@@A@@@@ SZ A1 . @G@@@@ DI,U A1,6 NA )@@G@@ . $P CONVERT LENGTH TO WORD LENGTH @A@@@@ A,U A1,NB )@@G@@1 . @A@@@@ L A2,A1 . @G@@@@ NC )@@G@@ SLJ ADDSTK . $W ADDSTK - PUT ENTRY ON AVAIL STACK @E@@@@ND )@@G@@ S A5,2,X8 . $P SET LINE #, NEXT # @G@@@@ NE )@@G@@ S,H1 R2,3,X8 . $P STORE ACTUAL NEXT LN # IN PARAM @C@@@@NF )@@G@@ J *RETURN . $E RETURN @]@@@@ . @A@@@@NG )@@G@@ . ** PF$AMQ ** @]@@@@ . @C@@@@ . RONH )@@G@@UTINE TO RESET LINE INCREMENT @]@@@@ . @^@@@@ . CANI )@@G@@LL IS @C@@@@ . L A0,NEW-INCREMENT @A@@@@NJ )@@G@@ . LMJ X11,PF$AMQ @]@@@@ . @C@@@@PF$AMQ*. NK )@@G@@ . $H PF$AMQ @E@@@@ S A0,LNINC NL )@@G@@. $P RESET INCREMENT @C@@@@ J 0,X11 . $E RNM )@@G@@ETURN @]@@@@ . @E@@@@ . THE FOLLOWING ROUTINES PRONN )@@G@@DUCE MESSAGES ON @C@@@@ . DETECTION OF CERTAIN CONDITNO )@@G@@IONS @]@@@@ . @E@@@@ . 1. PROC NOT INITIALIZED BEFORENP )@@G@@ R/W ATTEMPTED @]@@@@ . @C@@@@NOPROC. NQ )@@G@@. $H NOPROC @E@@@@ E$DIT PREPKT . $P SET UP ERROR NR )@@G@@MESSAGE @A@@@@ E$COPY 5,NPM1 . @A@@@@ DL NS )@@G@@ A0,0,X8 . @A@@@@ LMJ X11,EFD2$ . @A@@@@NT )@@G@@ E$COPY 42,NPM2 . @A@@@@ E$DITX NU )@@G@@. @E@@@@ P$RINT (PF 1,10,PREBUF) . $P PRINT MESSAGE NV )@@G@@@C@@@@ ER EXIT$ . $E TERMINATE @]@@@@ . NW )@@G@@@E@@@@ . 2. PROC LINE # > 1900 ENCOUNTERED, PRINT WARNING@]@@@@NX )@@G@@ . @C@@@@LNWARN + 0 . $H LNWARN @E@@@@NY )@@G@@ TZ MAXLN . $T IS THIS FIRST VIOLATION ?@E@@@@ NZ )@@G@@ J *LNWARN . $E RETURN WITH NO MESSAGE @A@@@@ L OA )@@G@@ R1,A0 . @E@@@@ L,U A0,1 . $P SET MESOB )@@G@@SAGE-PRINTED FLAG @A@@@@ S A0,MAXLN . @E@@@@ OC )@@G@@ P$RINT (PF 1,10,LWM1) . $P PRINT WARNING MESSAGE @A@@@@ L OD )@@G@@ A0,R1 . @C@@@@ J *LNWARN . $E RETURN OE )@@G@@ @]@@@@ . @E@@@@ . 3. MORE THAN 25 PROCS HAVE BEEOF )@@G@@N INPUT @]@@@@ . @C@@@@MAXPROC. OG )@@G@@. $H MAXPROC @E@@@@ SZ 0,X8 . $P ZERO OUT PROCOH )@@G@@ NAME @C@@@@ P$RINT (PF 1,8,MPM1) . $P PRINT MESSAGE@A@@@@OI )@@G@@ L X9,(3,PNMLST) . @A@@@@ L,U A5,4 OJ )@@G@@. @G@@@@MP1 E$DIT PREPKT . $P PRINT OUT ALL PROC NAMES,OK )@@G@@ 5 PER LINE @A@@@@ L,U A4,4 . @A@@@@MP2 L OL )@@G@@ A0,A4 . @A@@@@ MSI,U A0,15 . @A@@@@OM )@@G@@ LMJ X11,ECOL$ . @A@@@@ DL A0,0,*X9 ON )@@G@@. @A@@@@ LMJ X11,EFD2$ . @A@@@@ JGD A4,OO )@@G@@MP2 . @A@@@@ E$DITX . @A@@@@ OP )@@G@@ P$RINT (PF 1,12,PREBUF) . @A@@@@ JGD A5,MP1 . OQ )@@G@@@E@@@@ J *RETURN . $E RETURN CONTROL TO USER @]@@@@OR )@@G@@$(4). @A@@@@ . GENERAL STORAGE @A@@@@RETURN + OS )@@G@@ 0 . @^@@@@ . FLAGS @A@@@@PROCIN + OT )@@G@@ 0 . @A@@@@MAXLN + 0 . @A@@@@OU )@@G@@PNAD + 0 . @A@@@@ALLWRD + 0 OV )@@G@@. @A@@@@NXTADR EQUF ALLWRD,,H1 . @A@@@@LSTADR EQUF ALLOW )@@G@@WRD,,H2 . @A@@@@PCNT + 0 . @A@@@@PNMLSTOX )@@G@@ RES 125 . @A@@@@PRCPKT* RES 5 . OY )@@G@@@A@@@@PNAME EQUF PRCPKT . @A@@@@PNUM EQUF PRCPKT+2,OZ )@@G@@,S1 . @A@@@@PFLAG EQUF PRCPKT+2,,S3 . @A@@@@TBLAD EQUPA )@@G@@F PRCPKT+2,,H2 . @A@@@@LNCNT EQUF PRCPKT+3,,H1 . @A@@@@PB )@@G@@INDXAD EQUF PRCPKT+3,,H2 . @A@@@@LNINC EQUF PRCPKT+4,,H1 PC )@@G@@ . @A@@@@LNNUM EQUF PRCPKT+4,,H2 . @A@@@@AVCNT + 0 PD )@@G@@ . @A@@@@AVSTK RES 500 . @C@@@@ . PE )@@G@@ EDIT PACKET FOR PROC MESSAGES @A@@@@PREPKT* E$PKT 22,PREBUFPF )@@G@@ . @A@@@@PREBUF* RES 22 . @A@@@@ . ERPG )@@G@@ROR AND WARNING MESSAGES@A@@@@NPM1 'PROC ' . @E@@@@PH )@@G@@NPM2 ' WAS NOT INITIALIZED PRIOR TO READ/WRITE' . @G@@@@LWM1 PI )@@G@@ 'WARNING: LINE NUMBERS GREATER THAN 2000 ARE NOT ALLOWED. ' . @E@@@@PJ )@@G@@MPM1 'MAXIMUM OF 25 PROCS HAVE ALREADY BEEN INPUT: ' . @A@@@@ PK )@@G@@ END . ___KEY CNT @A@@@@ AN,U A2,1 PL )@@G@@*[@@@@*SDFF*@^@@@@ AXR$ @^@@@@$(4) LIT. PM )@@G@@@]@@@@$(1). @]@@@@. @E@@@@. THIS ROUTINE WILL REPN )@@G@@AD RECORDS FROM D$FILE @C@@@@. AND WRITE THEM TO T$FPO )@@G@@ILE @]@@@@. @C@@@@BLDT$F* PP )@@G@@ . $H @E@@@@ SX X11,SAVEX11 . $P SAVE RETURNPQ )@@G@@ ADDR @E@@@@ DL A0,USENME . $P GET FILE NAME PR )@@G@@@E@@@@ DS A0,NAMED2 . $P GIVE IT TO DF$AMR@E@@@@PS )@@G@@RDLOOP . $H READ LOOP @E@@@@ PT )@@G@@ LX,U X10,RDA . $P GET RDA ADDR @E@@@@ LMPU )@@G@@J X11,DF$AMR . $P READ A RECORD @C@@@@ LA PV )@@G@@ A0,(+0777777777777) . @G@@@@ TNE A0,RDA PW )@@G@@ . $T SEE IF END OF D$FILE @E@@@@ J ENDIT PX )@@G@@ . $A YES,ENDIT NO @G@@@@ TZ FIRST PY )@@G@@ . $T IS IT A FIRST RECORD @E@@@@ SLJ FIRSTLN PZ )@@G@@ . $W PERFORM SPEC CHK @E@@@@ LA A0,R3 QA )@@G@@ . $P GET RECORD LENGTH@G@@@@ SA A0,TFPKT . $PQB )@@G@@ BUILD TF$AM PACKET @E@@@@ LX,U X10,TFPKT QC )@@G@@ . $P GET PKT ADDR @E@@@@ LMJ X11,TF$SQW . $PQD )@@G@@ WRITE TO T$FILE @E@@@@ J RDLOOP . $J NXT OQE )@@G@@NE @C@@@@ENDIT . $H @E@@@@QF )@@G@@ LX X11,SAVEX11 . $P GET RETURN ADDR @E@@@@ QG )@@G@@ J 0,X11 . $J RETURN @G@@@@FIRSTLN +0QH )@@G@@ . $H ROUTINE TO CHK FOR ART KEY @E@@@@ QI )@@G@@ SZ FIRST . $P RESET SW @F@@@@ TZQJ )@@G@@ RDA . $T IS IT A SPEC RECORD @E@@@@ J QK )@@G@@ *FIRSTLN . $A YES NO,*RETURN @F@@@@ LA QL )@@G@@ A0,RDA+1 . $P GET THE RECORD HDR @E@@@@ TE QM )@@G@@ A0,(+077,0,2) . $T AN ART KEY @E@@@@ J *FIRQN )@@G@@STLN . $A YES NO,RETURN @E@@@@ LA A0,RDA+2 QO )@@G@@ . $P GET THE ART KEY @E@@@@ SA A0,ARTKEY QP )@@G@@ . $P SET IT @E@@@@ J RDLOOP . $JQQ )@@G@@ NXT RECORD @]@@@@$(4). @]@@@@FIRST +1@A@@@@TFPKT +0QR )@@G@@ . T$FILE PACKET @^@@@@ +RDA @]@@@@ +0QS )@@G@@@]@@@@SAVEX11 +0@^@@@@ END ___CS) A0,RDA+2 QT )@@G@@ . $P GET THE ART KEY @E@@@@ SA A0,ARTKEY . $PQU )@@G@@*[@@@@*SDFF*@]@@@@ . @A@@@@ . ** GETVAR ** QV )@@G@@@]@@@@ . @E@@@@ . COMMON ROUTINE FOR EDITOR WORKER ROUTIQW )@@G@@NES @E@@@@ . IT IS PASSED THE ADDR OF A SYMBOL TABLE ENTRQX )@@G@@Y @A@@@@ . AND AN INDEX VALUE @E@@@@ . AND RETUQY )@@G@@RNS THE ABSOLUTE CORE LOCATION OF @A@@@@ . THE VARIAQZ )@@G@@BLE @]@@@@ . @^@@@@ . CALL IS: @A@@@@ . RA )@@G@@ SLJ GETVAR @^@@@@ . WITH @E@@@@ . RB )@@G@@ X10 - SYMBOL TABLE ENTRY ADDR @C@@@@ . RC )@@G@@ A0 - BINARY INDEX VALUE @C@@@@ . OR 0RD )@@G@@ IF NO INDEX @^@@@@ . ON RETURN@E@@@@ . RE )@@G@@ A0 - CHARACTER LENGTH OF ITEM @E@@@@ . A1 -RF )@@G@@ ABSOLUTE WORD ADDR OF ITEM @C@@@@ . OR ERRG )@@G@@ROR CODE @E@@@@ . A2 - CHARACTER OFFSET (1 - 6RH )@@G@@) @C@@@@ . A3 - TYPE - 1 - PIC X @C@@@@RI )@@G@@ . 2 - PIC 9 @C@@@@ . RJ )@@G@@ 3 - PIC 9 COMP @E@@@@ . X10 - SYMBOL TABRK )@@G@@LE ENTRY ADDR @]@@@@ . @E@@@@ . IF ERROR CODE,RL )@@G@@ BIT 35 OF A1 WILL BE SET, @C@@@@ . BITS 34 - 0 WILRM )@@G@@L CONTAIN: @E@@@@ . 0 - VALUE NOT DEFINED IN CORRN )@@G@@E @E@@@@ . 1 - INVALID ITEM (I.E. SET NAME) RO )@@G@@ @C@@@@ . 2 - INVALID INDEX VALUE @]@@@@ . RP )@@G@@ @A@@@@ . ** GETVAR ** @]@@@@ . @^@@@@RQ )@@G@@ AXR$. @^@@@@$(2) LIT. @]@@@@$(1). RR )@@G@@@]@@@@ . @C@@@@GETVAR* + 0 . $H GETVAR RS )@@G@@@E@@@@ TNZ X10 . $T IS SYM TBL ADDR ZERO ? @C@@@@RT )@@G@@ J SYMERR . $A NO YES,SYMERR@E@@@@ TP A0 RU )@@G@@ . $T IS INDEX POSITIVE ? @C@@@@ J INDERR RV )@@G@@ . $A YES NO,INDERR@C@@@@ L,S4 A3,0,X10 . $P GET TYPRW )@@G@@E @E@@@@ TNZ TYPE,A3 . $T IS TYPE UNDEFINED PIC ? RX )@@G@@@C@@@@ J UNDEF . $A NO YES,UNDEF @E@@@@ TG,RY )@@G@@U A3,021 . $T IS THIS OCCURS SUBITEM ? @C@@@@ J SUBRZ )@@G@@OCC . $A NO YES,SUBOCC@E@@@@ TG,U A3,016 . $T ISA )@@G@@S THIS DEFINED ITEM ? @C@@@@ J ITEM . $A NO YES,SB )@@G@@ITEM @G@@@@ TG,U A3,7 . $T IS THIS OCCURS OR ARRAY ISC )@@G@@TEM ? @C@@@@ J OCCURS . $A NO YES,OCCURS@E@@@@SD )@@G@@ TNE,U A3,1 . $T IS THIS SET NAME ? @C@@@@ SE )@@G@@ J SYMERR . $A NO YES,SYMERR@G@@@@ITEM TG,U A0,2 SF )@@G@@ . $T IS INDEX OTHER THAN 0 OR 1 ? @C@@@@ J INDSG )@@G@@ERR . $A NO YES,INDERR@E@@@@ L,U A0,1 . $P SSH )@@G@@ET INDEX TO 1 @C@@@@ J FORM1 . $J FORM1 SI )@@G@@ @C@@@@OCCURS TNZ A0 . $T IS INDEX 0 ? @C@@@@ SJ )@@G@@ J INDERR . $A NO YES,INDERR@E@@@@ L,T3 A1,2,X10 SK )@@G@@ . $P GET HIGH # OCCURS VALUE @A@@@@ AND,U A1,07777 SL )@@G@@. @E@@@@ TLE A2,A0 . $T IS INDEX WITHIN RANGE ? SM )@@G@@@C@@@@ J INDERR . $A YES NO,INDERR@C@@@@FORM1 SLJSN )@@G@@ HEADER . $W HEADER @E@@@@ TG A1,SA1 SO )@@G@@. $T IS ADDR WITHIN RECORD ? @C@@@@ J SIZERR . $A YSP )@@G@@ES NO,SIZERR@E@@@@ L A2,A3 . $P PUT CHAR OFFSET IN SQ )@@G@@A2 @C@@@@ L,S4 A3,0,X10 . $P GET ITEM TYPE@E@@@@ SR )@@G@@ L A3,TYPE,A3 . $P CONVERT IT TO RETURN TYPE@A@@@@ J SS )@@G@@ *GETVAR . $E @]@@@@ . @C@@@@SUBOCC TNZ A0 ST )@@G@@ . $T IS INDEX 0 ? @C@@@@ J INDERR . $A NO YES,SU )@@G@@INDERR@E@@@@ L,H2 A2,C14 . $P GET C14 BASE ADDR SV )@@G@@@G@@@@ L A1,1,X10 . $P GET OCC-LINK TO OCCURS ITEM SW )@@G@@ @E@@@@ TN A1 . $T IS OCCURS ITEM IN C14 ? SX )@@G@@@E@@@@ L,H2 A2,C15 . $P GET C15 BASE ADDR @A@@@@SY )@@G@@ LSSL A1,1 . @A@@@@ SSL A1,19 SZ )@@G@@. @G@@@@ A A2,A1 . $P GET ABS ADDR OF OCCURS ITTA )@@G@@EM ENTRY @E@@@@ S X10,SX10 . $P SAVE SUB ITEM ENTRYTB )@@G@@ ADDR @E@@@@ L X10,A2 . $P SET PTR TO OCCURS ITEM TC )@@G@@@E@@@@ L,T3 A1,2,X10 . $P GET HIGH # OCCURS VALUE @A@@@@TD )@@G@@ AND,U A1,07777 . @E@@@@ TLE A2,A0 TE )@@G@@. $T IS INDEX WITHIN RANGE ? @C@@@@ J INDERR . $A YTF )@@G@@ES NO,INDERR@G@@@@ SLJ HEADER . $W HEADER - GET LOCATITG )@@G@@ON OF OCCURS IN CR@G@@@@ L X10,SX10 . $P RESET PTR TO TH )@@G@@SUB OCCURS ITEM ENTRY @D@[@@ L A2,A0 . $P SAVE CHTI )@@G@@AR LENGTH @G@@@@ L,T1 A0,0,X10 . $P GET CHAR DISP OF SUTJ )@@G@@B IN OCCURS @A@@@@ LSSL A0,24 . @A@@@@ TK )@@G@@ SSL A0,24 . @G@@@@ A A3,A0 . $P ATL )@@G@@DD IT TO OFF SET, START OF OCCURS @E@[@@ L A0,A2 TM )@@G@@. $P RESTORE CHAR LENGTH @D@@@[ L,T3 A0,0,X10 . $P GTN )@@G@@ET CHAR LENGTH @A@@@[ LSSL A0,24 . @A@@@[ TO )@@G@@ SSL A0,24 . @G@@@@ AN,U A3,2 . $P CTP )@@G@@ONVERT OFF SET TO WORDS + OFF SET @A@@@@ SZ A2 TQ )@@G@@. @A@@@@ DI,U A2,6 . @E@@@@ A A1,TR )@@G@@A2 . $P ADJUST ABS WORD ADDR @E@@@@ TG A1,SA1 TS )@@G@@ . $T IS ADDR WITHIN RECORD ? @C@@@@ J SIZERR TT )@@G@@. $A YES NO,SIZERR@E@@@@ A,U A3,1 . $P SET CHAR OFFSTU )@@G@@ET @A@@@@ L A2,A3 . @C@@@@ L,STV )@@G@@4 A3,0,X10 . $P GET ITEM TYPE@E@@@@ L A3,TYPE,A3 TW )@@G@@. $P CONVERT IT TO RETURN TYPE@A@@@@ J *GETVAR . $E TX )@@G@@@]@@@@ . @]@@@@ . @E@@@@UNDEF SZ A1 TY )@@G@@. $P SET ERROR CODE = 0 @C@@@@ J ERROR . $J ETZ )@@G@@RROR @E@@@@SYMERR L,U A1,1 . $P SET ERROR CODE = 1 UA )@@G@@ @C@@@@ J ERROR . $J ERROR @E@@@@INDERRUB )@@G@@ L,U A1,2 . $P SET ERROR CODE = 2 @C@@@@ J UC )@@G@@ ERROR . $J ERROR @A@@@@SIZERR LSSL A1,18 UD )@@G@@. @E@@@@ A,U A1,3 . $P SET ERROR CODE = 3 UE )@@G@@@E@@@@ERROR SSC A1,17 . $P SET BIT 35 OF A1 @A@@@@UF )@@G@@ A,U A1,1 . @A@@@@ SSC A1,1 UG )@@G@@. @A@@@@ J *GETVAR . $E @]@@@@ . @]@@@@UH )@@G@@ . @C@@@@HEADER + 0 . $H HEADER @E@@@@UI )@@G@@ L,T1 A1,1,X10 . $P GET SEQUENCE NUMBER @E@@@@ UJ )@@G@@ L,H1 A2,TT1 . $P GET # SEQ NO ASSIGNED @E@@@@ TLEUK )@@G@@ A2,A1 . $T IS SEQ NO WITHIN RANGE ? @C@@@@ J SYMUL )@@G@@ERR . $A YES NO,SYMERR@A@@@@ AN,U A1,1 . UM )@@G@@@E@@@@ A,H2 A1,TT1 . $P SET PTR TO SEQ LIST ENTRY@G@@@@UN )@@G@@ L,T1 A3,0,A1 . $P GET RECORD CODE FOR SEQ NO UO )@@G@@@E@@@@ L,H2 A1,0,A1 . $P GET CORE BUFFER ADDR @G@@@@UP )@@G@@ TNZ A1 . $T HAS BUFFER BEEN ALLOCATED ? UQ )@@G@@@C@@@@ J UNDEF . $A YES NO,UNDEF @G@@@@ A,UUR )@@G@@ A1,2 . $P GET ADDR OF NEW RECORD HEADER @E@@@@ US )@@G@@ L,S3 A2,0,X10 . $P GET MODE OF ITEM @E@@@@ TE,UT )@@G@@U A2,1 . $T IS MODE = OLD ? @C@@@@ J HEAUU )@@G@@D3 . $A YES NO,HEAD3 @G@@@@ TNZ,H1 C17 . $T AUV )@@G@@RE THERE ANY ART RULES (C17 ENTRIES)@C@@@@ J HEAD3 UW )@@G@@. $A YES NO,HEAD3 @E@@@@ L,H2 A2,C17 . $P SET PTR TO C1UX )@@G@@7 @G@@@@HEAD1 TNE,T1 A3,0,A2 . $T IS ENTRY FOR THIS RUY )@@G@@ECORD CODE ? @C@@@@ J HEAD2 . $A NO YES,HEAD2 UZ )@@G@@@E@@@@ TNZ,T3 0,A2 . $T MORE C17 ENTRIES ? @C@@@@VA )@@G@@ J HEAD3 . $A YES NO,HEAD3 @E@@@@ A,T3 A2,VB )@@G@@0,A2 . $P SET PTR TO NEXT C17 ENTRY@C@@@@ J HEAD1 VC )@@G@@ . $J HEAD1 @G@@@@HEAD2 A,H2 A1,0,A1 . $P GET ADDVD )@@G@@R OF OLD RECORD HEADER @G@@@@HEAD3 L A2,(0777777777) . $P VE )@@G@@SET END OF ITEM TO LARGE VALUE @E@@@@ L,S3 A3,0,X10 VF )@@G@@. $P GET MODE OF ITEM @E@@@@ TE,U A3,3 . $T IVG )@@G@@S ITEM DEFINED OR ARRAY @E@@@@ AU,H2 A1,0,A1 . $P CALC ENVH )@@G@@D ADDR OF RECORD @E@@@@ S A2,SA1 . $P SAVE END ADDRVI )@@G@@ OF ITEM @E@@@@ L,T1 A2,0,X10 . $P GET REL WORD OF ITEVJ )@@G@@M @A@@@@ AND,U A2,07777 . @G@@@@ A A1,VK )@@G@@A3 . $P GET ABS WORD ADDR OF 1ST OCCURRENCE @A@@@@ AN,VL )@@G@@U A0,1 . @E@@@@ L,T3 A2,0,X10 . $P GET CHAVM )@@G@@R LENGTH OF ITEM @A@@@@ AND,U A2,07777 . @A@@@@ VN )@@G@@ L A2,A3 . @G@@@@ MSI A3,A0 . $P MVO )@@G@@ULTIPLY BY INDEX-1 TO GET OCCUR @E@@@@ L A0,A2 VP )@@G@@. $P SAVE LENGTH OF ITEM @G@@@@ A,S3 A3,1,X10 . $P AVQ )@@G@@DD OCC DISP TO CHAR OFFSET @G@@@@ AN,U A3,1 VR )@@G@@. $P CONVERT OFFSET TO WORDS + OFFSET @A@@@@ SZ A2 VS )@@G@@ . @A@@@@ DI,U A2,6 . @E@@@@ A VT )@@G@@ A1,A2 . $P ADD WORD DISP TO ABS ADDR@E@@@@ A,U A3,VU )@@G@@1 . $P SET CHAR OFFSET @A@@@@ J *HEADER VV )@@G@@ . $E @]@@@@ . @]@@@@ . @]@@@@$(2). @A@@@@VW )@@G@@SA1 + 0 . @A@@@@SX10 + 0 VX )@@G@@. @A@@@@ . TYPE CONVERSION BLOCK @E@@@@ . OUTPUT TVY )@@G@@YPES: 1-PIC X, 2-PIC 9, 3-PIC 9 COMP @A@@@@TYPE + 0 VZ )@@G@@ . @A@@@@ + 1 . SET @C@@@@ + WA )@@G@@ 1 . RECORD @C@@@@ + 1 WB )@@G@@. ITEM PIC X @C@@@@ + 2 . '' PIC 9 WC )@@G@@@C@@@@ + 3 . '' PIC 9 COMP @C@@@@ + WD )@@G@@ 1 . '' PIC A @C@@@@ + 3 WE )@@G@@. ARRAY PIC 9 COMP@C@@@@ + 1 . '' PIC X WF )@@G@@@E@@@@ + 0 . '' UNDEFINED PIC @C@@@@WG )@@G@@ + 1 . OCCURS PIC X @C@@@@ + 2 WH )@@G@@ . '' PIC 9 @E@@@@ + 3 . ''WI )@@G@@ PIC 9 COMP @C@@@@ + 1 . '' PICWJ )@@G@@ A @E@@@@ + 3 . DEFINED PIC 9 COMP WK )@@G@@@C@@@@ + 1 . '' PIC X @E@@@@ + WL )@@G@@ 0 . '' UNDEFINED PIC @C@@@@ + 1 WM )@@G@@ . SUBOCCURS PIC X @C@@@@ + 2 . 'WN )@@G@@' PIC 9 @E@@@@ + 3 . '' PIC 9 COMP WO )@@G@@ @C@@@@ + 1 . '' PIC A @]@@@@ . WP )@@G@@ @^@@@@ END. ___ *[@@@@*SDFF*@]@@@@ . WQ )@@G@@ @A@@@@ . ** INTRP ** @[@@@@ . @C@@@@ . WR )@@G@@ REORG EDITOR WORKER ROUTINE @A@@@@ . TO INTERPWS )@@G@@RET DBP'S @]@@@@ . @^@@@@ . CALL IS @A@@@@ . WT )@@G@@ LX,U X10,PARAM @A@@@@ . LMJ X11,INTRP WU )@@G@@@^@@@@ . WHERE @C@@@@ . ---------------------WV )@@G@@---------- @C@@@@ . PARAM: LENGTH : 0 : +(INTRP) : @C@@@@WW )@@G@@ . :-----------------------------: @C@@@@ . : 1WX )@@G@@3 : : : : @C@@@@ . :--------------------WY )@@G@@---------: @C@@@@ . : : @C@@@@WZ )@@G@@ . = OPERAND PTR = @C@@@@ . : XA )@@G@@ : @C@@@@ . ---------------------XB )@@G@@---------- @]@@@@ . @C@@@@ . THE RESULTS OF THE INTERPRXC )@@G@@ET ARE @C@@@@ . STORED IN RESERVED WORDS @C@@@@XD )@@G@@ . AREACODE, PAGENUM, SLOTNUM @]@@@@ . @^@@@@XE )@@G@@ AXR$. @^@@@@$(4) LIT. @A@@@@PF FORXF )@@G@@M 12,6,18 . @]@@@@$(3). @]@@@@ . @C@@@@INTRP*XG )@@G@@. . $H INTRP @D@@@@ S,H2 X11,RETURXH )@@G@@N . $P SAVE RETURN ADDR @D@@@[ SZ STATUS . $P RXI )@@G@@ESET STATUS TO 0 @E@@@@ L X7,X10 . $P SET PTR TO OPXJ )@@G@@ERAND PTR @A@@@@ A,U X7,2 . @A@@@@ L,UXK )@@G@@ A13,1 . @E@@@@ SLJ GETSYM . $W GETSYM XL )@@G@@- GET OPERAND ADDR@E@@@@ JN A1,SYMERR . $T WAS GET SUCCEXM )@@G@@SSFUL ? @C@@@@ . $A YES NO,SYMERR@E@@@@XN )@@G@@ TNE,U A3,1 . $T IS OP TYPE PIC X ? @C@@@@ XO )@@G@@ J TYPERR . $A NO YES,TYPERR@E@@@@ TNE,U A3,4 XP )@@G@@ . $T IS OP TYPE NOT SET PTR ? @E@@@@ L,U A3,3 XQ )@@G@@. $P SET TYPE TO PIC 9 COMP @E@@@@ SLJ GETNUM . $W GXR )@@G@@ETNUM - GET OP VALUE @E@@@@ SLJ DBP$APS . $W DBP$APSXS )@@G@@ - INTERPRET VALUE@E@@@@ JZ A1,ARERR . $T WAS AREA CODEXT )@@G@@ VALID ? @C@@@@ . $A YES NO,ARERR @E@@@@XU )@@G@@ S A1,AREACODE . $P SET INTRPED VALUES @A@@@@ XV )@@G@@ S A2,PAGENUM . @A@@@@ S A3,SLOTNUM . XW )@@G@@@A@@@@ L A0,A4 . @A@@@@ DL A0,1,A0 XX )@@G@@ . @A@@@@ DS A0,AREANAME . @A@@@@ J XY )@@G@@ *RETURN . $E @]@@@@ . @E@@@@ARERR TZ PERFSW XZ )@@G@@ . $T IS THIS PERFORM MODE @C@@@@ J ARER2 YA )@@G@@. $A NO YES,ARER2 @A@@@@ L A4,A0 . @E@@@@ YB )@@G@@ E$DIT INTPKT . $P PRINT ERROR MESSAGE @A@@@@ E$CYC )@@G@@OPY 29,AM . @A@@@@ L A0,A4 . @A@@@@YD )@@G@@ L,U A1,13 . @A@@@@ LMJ X11,EOCTF$ YE )@@G@@. @A@@@@ E$DITX . @A@@@@ P$RINT (PYF )@@G@@F 1,8,INTBUF) . @E@@@@ARER2 SZ AREACODE . $P SET ALL VALUEYG )@@G@@S NULL @A@@@@ SZ PAGENUM . @A@@@@ SZ YH )@@G@@ SLOTNUM . @A@@@@ DL A0,BLNKS . @A@@@@YI )@@G@@ DS A0,AREANAME . @E@@@@ L,U A0,51 YJ )@@G@@. $P SET STATUS VALUE @A@@@@ S A0,STATUS . YK )@@G@@@A@@@@ J *RETURN . $E @E@@@@TYPERR P$RINT (PF 1,6,YL )@@G@@TM) . $P PRINT ERROR MESSAGE @E@@@@SYMERR L,U A0,1 YM )@@G@@. $P SET FATAL ERROR FLAG @A@@@@ S A0,FATAL . YN )@@G@@@A@@@@ J *RETURN . $E @]@@@@ . @]@@@@$(4). YO )@@G@@ @A@@@@RETURN + 0 . @A@@@@BLNKS ' YP )@@G@@ ' . @C@@@@AM 'ERROR - CANNOT INTERPRET DBP ' . YQ )@@G@@@E@@@@TM 'ERROR - CANNOT INTERPRET PIC X FIELD' . @A@@@@YR )@@G@@INTPKT E$PKT 8,INTBUF . @A@@@@INTBUF RES 8 YS )@@G@@. @^@@@@ END . ___ -[D*)^@)^@)^@)^@) 0)^@)^@)@D@@@@YT )@@G@@^@)^@)^@)^@)^[G^@)^@)^[[A@?CC4^@)^@)^@)^@)^@) 0)*[@@@@*SDFF*@G@@@@ . **YU )@@G@@**************************************************************** @G@@@@YV )@@G@@ . * ED LEVEL 12 * YW )@@G@@@G@@@@ . * YX )@@G@@ * @G@@@@ . * TO BE COMPATIBLE WITH PREVIOUS VERSIONS OF THE EDITOYY )@@G@@R * @G@@@@ . * THE FOLLOWING PARAMETERS MUST BE SET: YZ )@@G@@ * @G@@@@ . * ZA )@@G@@ * @G@@@@ . * EDMODE EQU 1 ZB )@@G@@ * @G@@@@ . * REGBRIEF EQU 0 ZC )@@G@@ * @G@@@@ . * SUPBRIEF EQU 1 ZD )@@G@@ * @G@@@@ . * SPLITDLI EQU ZE )@@G@@ 1 * @G@@@@ . * EOFMODE ZF )@@G@@ EQU 0 * @G@@@@ . * ZG )@@G@@ * @G@@@@ . * ZH )@@G@@ TEM * @G@@@@ZI )@@G@@ . * * ZJ )@@G@@@G@@@@ . **************************************************************ZK )@@G@@**** @I@@@@ . ZL )@@G@@ ED010020 @I@@@@ . ***************************************ZM )@@G@@**************************** ED010030 @I@@@@ . * 12.01 CHANGES ZN )@@G@@ * ED010040 @I@@@@ . * ZO )@@G@@ * ED0100ZP )@@G@@50 @I@@@@ . * DEFAULT 077'S CHANGED TO 0777'S ZQ )@@G@@ * ED010060 @I@@@@ . * CORRECTION FOR RE-ENTRANT PROBLEM ZR )@@G@@ * ED010070 @I@@@@ . * SYMBOLIC TYPE ONZS )@@G@@ SPLIT OUTPUT * ED010080 @I@@@@ . * ZT )@@G@@ A6 CONFLICT * ED0100ZU )@@G@@90 @I@@@@ . * CORRECTIONS FOR CYCLING AROUND 62 ZV )@@G@@ * ED010100 @I@@@@ . * CORRECTION FOR SPLIT OF WHOLE FILEZW )@@G@@ * ED010110 @I@@@@ . * CORRECTION OF LIZX )@@G@@NE COUNT FOR ADD * ED010120 @I@@@@ . * ZY )@@G@@ CHANGE TO TRY LINK$ BEFORE DOING RLIST, AND INDICATOR * ED0101ZZ )@@G@@30 @I@@@@ . * ASSIGN TEMPORARY ED$TB IF CAN'T ASSIGN CATALOGED AA )@@G@@ * ED010140 @I@@@@ . * R TO OVERIDE ASSUMED U ON DATA FILAB )@@G@@E UPDATE * ED010150 @I@@@@ . * A.B,.C TO MEAN PAC )@@G@@RODUCE A.C * ED010160 @I@@@@ . * AD )@@G@@ PRINT DISABLED MSG FOR INTERNAL FILE. * ED0101AE )@@G@@70 @I@@@@ . * U OPTION ASSUMED FOR DATAFILE IF NO OPTION & 1 FIELDAF )@@G@@ *_ ED010180 @I@@@@ . * T OPTION TO TRANSFER ALL CYCLES TOAG )@@G@@ OUTPUT ELEMENT * ED010190 @I@@@@ . * CORRECTION TO SEAH )@@G@@ND BLANKS TO UNISCOPE FOR BLANK LINE *_-ED010200 @I@@@@ . * AI )@@G@@ CORRECTION TO GET RID OF LINES ADDED & THEN DELETED IN * ED0102AJ )@@G@@10 @I@@@@ . * SAME CYCLE. AK )@@G@@ * ED010220 @I@@@@ . * CORRECT CYCLE NUMBERS ON SPLIT OUTAL )@@G@@PUT * ED010230 @I@@@@ . * END-OF-FILE MSG AM )@@G@@FOR I-O ERROR 5 * ED010240 @I@@@@ . * AN )@@G@@ ERROR MSG FOR 044012,044212, AND 012212 ERRORS * ED0102AO )@@G@@50 @I@@@@ . * OUTPUT FILE OVERFLOW RECOVERY AP )@@G@@ * ED010260 @I@@@@ . * AQ )@@G@@ * ED010270 @I@@@@ . *********************AR )@@G@@********************************************** ED010280 @G@@@@ . ***AS )@@G@@**************************************************************** @G@@@@AT )@@G@@ . * ED 12.02 CHANGES: * AU )@@G@@@G@@@@ . * MINIMIZE AUTO FILE CONFLICTS AV )@@G@@ * @G@@@@ . * RELEASE INTERNAL USE NAMES AW )@@G@@ * @G@@@@ . * MINIMIZE MAIL FILE CONFLICTS AX )@@G@@ * @G@@@@ . * DELETE 1,1 BUG AY )@@G@@ * @G@@@@ . * BUG IN HEAD COMMAND AZ )@@G@@ * @G@@@@ . * INDICATE ATTEMPTS TO CHANGE FBA )@@G@@ILE IN READ-ONLY MODE * @G@@@@ . * IDENTIFY ELEMENT SITED BB )@@G@@OR LNSITED * @G@@@@ . *********************BC )@@G@@********************************************** @G@@@@ . ***************BD )@@G@@**************************************************** @G@@@@ . * ED 12BE )@@G@@.03 CHANGES: * @G@@@@ . * BF )@@G@@ IDENTIFY ELEMENT WHEN TIME COMMAND USED * @G@@@@BG )@@G@@ . * FIX BAD LINE RETURN AFTER MOVE DELETE SEQUENCE * BH )@@G@@@G@@@@ . * ACCEPT OCTAL SYMBOLIC TYPE IN TYPE COMMAND BI )@@G@@ * @G@@@@ . * IMPLEMENT DELETE+ BJ )@@G@@ * @G@@@@ . * MAKE UP WORK ON DATAFILES BK )@@G@@ * @G@@@@ . * FIX - TO LINE 1 BL )@@G@@ * @G@@@@ . * DYNAMICALLY ASSIGN FILES FOR SPLIT BM )@@G@@& ADD * @G@@@@ . * FIX IGDM ON LNQ OF 0 LENGTH LBN )@@G@@INE * @G@@@@ . * FIX OUTPUT WITH NO OPERBO )@@G@@AND FAILURE * @G@@@@ . * FIX INSERT+ WITH BP )@@G@@NO OPERAND FAILURE * @G@@@@ . * FIX OVERPRIBQ )@@G@@NT BATCH FILE NOT ASSIGNED * @G@@@@ . * FIX PBR )@@G@@+ * @G@@@@ . ***BS )@@G@@**************************************************************** @I@@@@BT )@@G@@ . ************************************************************ BU )@@G@@817TM003 @I@@@@ . * BV )@@G@@ * 817TM004 @I@@@@ . * ENHANCEMENTS AND FIXES IN LEVBW )@@G@@EL 13.00 * 817TM005 @I@@@@ . * BX )@@G@@ * 817TM006 @I@@@@BY )@@G@@ . * FIX ERR$ ON X-OPTION * BZ )@@G@@817TM007 @I@@@@ . * CHECK FOR POSSIBLE MAXTIME CA )@@G@@ * 817TM008 @I@@@@ . * CHECK FOR MATCHING I AND D BACB )@@G@@NKS * 817TM009 @I@@@@ . * REVISE INTECC )@@G@@RNAL AUTO FILE TO DO ASG,ADX * 817TM010 @I@@@@CD )@@G@@ . * ENHANCE THE STATUS COMMAND * CE )@@G@@817TM011 @I@@@@ . * FIX CHANGE AT LINE 0 CF )@@G@@ * 817TM012 @I@@@@ . * MAX ESTIMATED CPU TIME CHECK CG )@@G@@ * 817TM013 @I@@@@ . * FIX MAIL FICH )@@G@@LE PROBLEMS * 817TM014 @I@@@@CI )@@G@@ . * FIX CHANGE OF TRAILING BLANKS * CJ )@@G@@817TM015 @I@@@@ . * FIX LOCATE OF TRAILING BLANKS CK )@@G@@ * 817TM016 @I@@@@ . * FIX INLINE FAILURE WITH AUTO CL )@@G@@SAVE * 817TM017 @I@@@@ . * FIX GARBAGECM )@@G@@ AFTER SEQ COMMAND * 817TM018 @I@@@@CN )@@G@@ . * FIX VERSION NAME ON ADD COMMAND * CO )@@G@@817TM019 @I@@@@ . * FIX LINE NUMBER RETURN AFTER MOVE DELETE CP )@@G@@ * 817TM020 @I@@@@ . * PREVENT PRINTOUT OF NOTEQUAL CQ )@@G@@ON SITE * 817TM021 @I@@@@ . * FIX READ OFCR )@@G@@ FORTRAN I-O FILES * 817TM022 @I@@@@CS )@@G@@ . * CHECK FOR ATTEMPT TO EDIT PROGRAM FILE AS DATA FILE * CT )@@G@@817TM023 @I@@@@ . ***************************************************CU )@@G@@********* 817TM024 @G@@@@ . *********************************CV )@@G@@********************************** @G@@@@ . * ED 14.0 CHANGES CW )@@G@@ * @G@@@@ . * INPUT FILES MAY BCX )@@G@@E ASCII, FIELDATA, OR MIXED A-F * @G@@@@ . * INTERNAL FICY )@@G@@LES ARE ASCII * @G@@@@ . * ALL CCZ )@@G@@HAR MANIPULATION IN ASCII (ER ATREAD$ USED) * @G@@@@ . * DA )@@G@@ OUTPUT FILES MAY BE ASCII OR FIELDATA * @G@@@@DB )@@G@@ . * TWO NEW OPTIONS: Q & P (FOR OUTPUT FILES) * DC )@@G@@@G@@@@ . * MESSAGE PRINTED AFTER EXIT GIVING CODE OF OUTPUT FILE DD )@@G@@ * @G@@@@ . * NEW COMMAND: CASE (UPPER OR NORMAL) DE )@@G@@ * @G@@@@ . * PLIMIT COMMAND ENHANCED: EITHER 1 OR 2 LIMITS DF )@@G@@ * @G@@@@ . * STATUS COMMAND ENHANCED: PRINTS PLIMITS ADG )@@G@@ND CASE * @G@@@@ . * UNIMOD INITIALLY ON DH )@@G@@ * @G@@@@ . * ADD FILES MAY BE ASCII, FIELDDI )@@G@@ATA, OR MIXED A-F * @G@@@@ . * SPLIT FILES MAY BE ASCIDJ )@@G@@I OR FIELDATA (SAME AS OUTPUT FILE) * @G@@@@ . * MORE CORE OBTAINEDK )@@G@@D FOR LARGE FILES (ER MCORE$) * @G@@@@ . * DOC COMMANDDL )@@G@@ AT LINE 0 BUG FIXED ('ILLEGAL' MESSAGE) * @G@@@@ . *********DM )@@G@@********************************************************** @^@@@@ DN )@@G@@ AXR$ @E@@@@$(1),ILIT LIT . IBANK LDO )@@G@@ITERALS @^@@@@$(0),BGND$ . @^@@@@ FIELDATA DP )@@G@@@I@@@@BASE EQU '14' . SYMBOLIC BASE LEVEL DQ )@@G@@ 817TM027 @I@@@@UPDATE EQU '2A' . UPDATE NUMBDR )@@G@@ER -LOCAL- LOCAL @G@@@@EDMODE EQU 1 DS )@@G@@ . ED COMPATIBILITY MODE @C@@@@ DO EDMODE ,EDIBNK EQDT )@@G@@U 'EDR$ ' . @E@@@@ DO 1-EDMODE ,EDIBNK EQU 'EDITR$' . EDDU )@@G@@IT IBANK @^@@@@ ASCII @^@@@@ . SYSTEM DEFAULT DV )@@G@@VALUES@I@@@@REGBRIEF EQU 0 . PLAIN BRIEF INDICATODW )@@G@@R INITIALIZATION @G@@@@SUPBRIEF EQU 1 . BRDX )@@G@@IEF FOR SPLIT ADD INDICATOR @G@@@@LNLINES EQU 0 DY )@@G@@ . PRINT OUT LINE NUMS WITH LINES @I@@@@SEQSOU EQU 1 DZ )@@G@@ . SOLICIT INPUT WITH SEQ NUMBERS ED010320 @G@@@@MEMSTD EEA )@@G@@QU 0 . REMEMBER MODES BETWEEN USES=1 @C@@@@EOFMODEB )@@G@@E EQU 0 . EOF MODE@I@@@@MINAUT EQU 5 EC )@@G@@ . MIN NUMBER OF AUTO LINES ED010340 @G@@@@SPLITDED )@@G@@LI EQU 1 . DELETE LINES WHEN SPLITTING=1 @E@@@@EE )@@G@@ . THIS MUST BE SET TO 1 TO BE COMPATIBLE TO ED 11 @G@@@@LN132 EF )@@G@@ EQU 0 . =1 MEANS 132 CHAR OUTPUT LINE @G@@@@EG )@@G@@SAVESTD EQU 132 . SAVE STANDARD FOR CHANGE EH )@@G@@@G@@@@SAVECLS EQU 80 . MAXIMUM LINE LENGTH IN CHEI )@@G@@ARS @G@@@@ . IF YOU NEVER MESS WITH LINES OVER 80 COLUMNS THEN SET TO EJ )@@G@@80 @I@@@@CONTSTD EQU 0777 . STANDARD INPUTEK )@@G@@ CONTINUATION CHARED010360 @G@@@@TRANSCHARF EQU 040 EL )@@G@@ . DEFAULT TRANSPARENT CHARACTER @E@@@@TABSTD EQU ';' EM )@@G@@ . STANDARD TAB @E@@@@PLIMSTD EQU 33 EN )@@G@@ . STANDARD PRINT LIMIT@I@@@@STDMSP EQU 0777 . SEO )@@G@@TANDARD MASTERSPACE LINE 1 ED010380 @G@@@@STDLCHR EQU 047 EP )@@G@@ . STANDARD LOCATE QUOTE CHAR @E@@@@DCT5 EQU EQ )@@G@@ 0 . NO STOP CODE FLAG @G@@@@ . UNISCOPES, DCT500'S NER )@@G@@OT IN TTY MODE MUST HAVE THIS SET TO 1 @E@@@@CYLIM EQU ES )@@G@@ 5 . CYCLE SAVE LIMIT @G@@@@ . IF YOU DON'T USE CYCLET )@@G@@ES, SET THIS TO ONE-- THE SMALLER THIS @C@@@@ . NUMBER THE FASTEU )@@G@@ER THE EDITOR WILL RUN @C@@@@ . THIS PROC GENERATES INITIAL TAB SEV )@@G@@ETTINGS @C@@@@SET$* PROC . @E@@@@EW )@@G@@K DO SET$(1) ,TAB$*(K) EQU SET$(1,K)-1 @A@@@@TABLNTEX )@@G@@* EQU SET$(1) @^@@@@ END @G@@@@ EY )@@G@@ SET$ 11,21,39,73 . THESE ARE THE INITIAL TABS @]@@@@EZ )@@G@@ . @G@@@@ . THE FOLLOWING ARE FOR DEBUGGIN PURPOSES AND SHOULD FA )@@G@@BE SET TO @^@@@@ . ZERO FOR PRODUCTION. @E@@@@TIMIT EQU FB )@@G@@ 0 . TIME TEST @I@@@@DEBUG EQU 0 FC )@@G@@ . DEBUGGINF STUFF ON=1 ED010400 @I@@@@DUMP FD )@@G@@ EQU 0 . DUMP D BANK ED0104FE )@@G@@20 @E@@@@DUMMSG EQU 0 . SEND DUMP MESSAGE FF )@@G@@@E@@@@P$ PROC 1 . STORE NON ZERO @^@@@@FG )@@G@@SNZ* NAME . @G@@@@ S R10,P$(1,1),P$(1,2),P$FH )@@G@@(1,3) . R3 CONTAINS 1 @^@@@@ END @A@@@@P$ FI )@@G@@ PROC 1 . @E@@@@FTYPE* NAME 0 FJ )@@G@@ . FIELDATA PRINT @G@@@@TYP* NAME 1 . ASFK )@@G@@CII PRINT - P$(1,1)=MSG ADDR @G@@@@FF FORM 12,6,18 FL )@@G@@ . P$(1,2)= LENGTH OF MSG @C@@@@ LA A0,( FF 1,FM )@@G@@P$(1,2),P$(1,1)) @C@@@@ DO 1-P$(0,0) , ER PRINT$ FN )@@G@@@E@@@@ DO P$(0,0) , ER APRINT$ . ASCII PRINT @^@@@@FO )@@G@@ END @C@@@@ ON DUMP . FP )@@G@@ @^@@@@$(10) . DUMP DBANK @C@@@@DUMPING + 0 FQ )@@G@@ . @E@@@@ DO 8 , + 0777777777777 . MARK REGISTEFR )@@G@@RS AREA @E@@@@DBFF RES 3*16 . REGISTERS GO HFS )@@G@@ERE @A@@@@ENDD$ . DON'T DUMP BEYOND HERE @^@@@@ FIELDATAFT )@@G@@ @A@@@@DIOPK 'ED$DF ' . @^@@@@ ASCII FU )@@G@@ @C@@@@ + 0 . @C@@@@ FV )@@G@@ + 0,W$,0,0,0,0 . @C@@@@ + 0,BGFW )@@G@@ND$ . @C@@@@ + 0 . FX )@@G@@ @E@@@@EETAB A$EPKT 33,IMBUF . AEDIT$ PACKET FY )@@G@@@C@@@@DTKN 'DUMP OF & WORDS TAKEN &' . @^@@@@ FIFZ )@@G@@ELDATA @A@@@@ASGDF '@ASG,T ED$DF,F2' . @^@@@@ ASGA )@@G@@CII @A@@@@SORMS ' SORRY-NO DUMP!' . @C@@@@ ONGB )@@G@@ DUMMSG . @G@@@@DMSG1 'IF YOU WISH THIS ERGC )@@G@@ROR TO BE DIAGNOSED, EXIT FROM THE EDITOR'@E@@@@DMSG2 'IMMEDIATELY AGD )@@G@@ND ENTER THE FOLLOWING TWO LINES:' @C@@@@DMSG3 '@TDP,DSM ED$DF,,' @E@@@@DMSG4 '' @G@@@@DMSG5 ' WHERE IS THE NUMBER OF WORDS INDGG )@@G@@ICATED DUMPED' @C@@@@ OFF DUMMSG . GH )@@G@@@G@@@@SITEDUMP + 0 . ENTER DBANK DUMP HERE GI )@@G@@ @E@@@@ TZ DUMPING . ALREADY DUMPING? GJ )@@G@@@E@@@@ J SORRY . MUST BE A MESS @A@@@@GK )@@G@@ SNZ DUMPING .@E@@@@ L A0,IBF+1 GL )@@G@@ . GET ORIGINAAL A0 @C@@@@ DS A0,DBFF GM )@@G@@ . SAVE IT @E@@@@K DO 7 , DS A0+K*2,DBFF+2*K . SAVE REST OF GN )@@G@@A REGS@C@@@@ S R1,DBFF+16 . SAVE R1@G@@@@ GO )@@G@@ L A0,(1,R2) . PREPARE TO SAVE R REGS @C@@@@GP )@@G@@ L A1,(1,DBFF+17) . @C@@@@ L,U GQ )@@G@@ R1,15 . @C@@@@ BT A1,0,*A0 GR )@@G@@ . @C@@@@ L A0,(1,X1) . @C@@@@GS )@@G@@ L,U R1,15 . @C@@@@ BT GT )@@G@@ A1,0,*A0 . @C@@@@ L,U A2,ENDD$ GU )@@G@@ . @C@@@@ AN,U A2,BGND$ . @G@@@@GV )@@G@@ S,H1 A2,DIOPK+4 . NUMBER OF WORDS TO BE DUMPED GW )@@G@@@C@@@@ L A0,(3,ASGDF) . @C@@@@ ERGX )@@G@@ CSF$ . @C@@@@ JNZ A0,SORRY GY )@@G@@ . @C@@@@ L,U A0,DIOPK . GZ )@@G@@@C@@@@ ER IOW$ . @E@@@@ A$HA )@@G@@EDIT EETAB . MESSAGE @C@@@@ A$EMSG HB )@@G@@ DTKN . @E@@@@ A$EDECV DIOPK+4,,H1 HC )@@G@@ . NUM WORDS @^@@@@ A$EMSGR . @^@@@@ A$HD )@@G@@EDITX . @C@@@@ TYP IMBUF,21 . @E@@@@HE )@@G@@ ON DUMMSG . PRINT OUT MESSAGE @C@@@@ HF )@@G@@ TYP DMSG1,DMSG2-DMSG1 . @C@@@@ TYP DMSGHG )@@G@@2,DMSG3-DMSG2 . @C@@@@ TYP DMSG3,DMSG4-DMSG3 . HH )@@G@@ @C@@@@ TYP DMSG4,DMSG5-DMSG4 . @C@@@@ HI )@@G@@ TYP DMSG5,15 . @C@@@@ OFF DUMMHJ )@@G@@SG . @C@@@@ J *SITEDUMP . REHK )@@G@@TURN @C@@@@SORRY TYP SORMS,5 . @C@@@@ HL )@@G@@ J *SITEDUMP . RETURN @C@@@@ OFF DUMPHM )@@G@@ . @]@@@@$(0) . @C@@@@SNOOP$* PROC 0 HN )@@G@@ . @E@@@@ TZ TRACE . TRHO )@@G@@ACE ON? @^@@@@ END . @E@@@@INSTAT EQU HP )@@G@@ 0 . INTERNAL STATISTICS@C@@@@ ON INSTHQ )@@G@@AT . @C@@@@STATIO 'STATFILE ' . HR )@@G@@ @^@@@@ DO 2 , + 0 @C@@@@ + 28,STATBUFHS )@@G@@ . @^@@@@ DO 3 , + 0 @C@@@@STATBUF RES HT )@@G@@ 28 . @^@@@@ . FORMAT OF BUFFER @^@@@@ . HU )@@G@@0 RUNID @^@@@@ . 1 OPTION WORD @A@@@@ . 2 FILE LENHV )@@G@@GTH IN IMAGES @A@@@@ . 3 FILE LENGTH IN WORDS @^@@@@ . HW )@@G@@4 TIME USED @A@@@@ . 5 TRANACTION COUNT,TOP COUNT@G@@@@ . HX )@@G@@6 S1-EXIT TYPE,S2-LINE NUM,S3-QON,S4-NOSEQ,S5-INLINE,S6-DITTO @^@@@@HY )@@G@@ . 7 MSPCHR,LOCHR @A@@@@ . 8 THETAB,CONTCHAR @^@@@@HZ )@@G@@ . 9 BREAK,IGDM @^@@@@ . 10 IOPR,ERR$ @^@@@@ FIIA )@@G@@ELDATA @A@@@@ASGSTATA '@ASG,A STATFILE' . @A@@@@ASGSTATC '@IB )@@G@@ASG,CP STATFILE,F2' . @C@@@@USESTAT '@USE STATFILE,STAT*STATFILE$' IC )@@G@@. @A@@@@FRESTAT '@FREE,R STATFILE' . @I@@@@RFRESTAT '@FREE SID )@@G@@TATFILE' 817TM033 @^@@@@IE )@@G@@ ASCII @A@@@@STATAD + 0 .@A@@@@IF )@@G@@ OFF INSTAT @E@@@@P$ PROC 1 IG )@@G@@ . TEST FOR OPTION @^@@@@TOPTN* NAME 0 @^@@@@TNOPTNIH )@@G@@* NAME 1 @E@@@@ L A0,OPTN . GET OPTII )@@G@@ION WORD @G@@@@ DO P$(0,0) , TEP A0,BITS('Z'-P$(1,1)) . SIJ )@@G@@KIP IF NOT ON @G@@@@ DO 1-P$(0,0) , TOP A0,BITS('Z'-P$(1,1IK )@@G@@)) . SKIP IF ON @^@@@@ END @^@@@@OPT** FUIL )@@G@@NC @A@@@@Z EQU OPT(1) @G@@@@ DOIM )@@G@@ (Z<-1*/17+1)++(Z>1*/18-2)++(Z=-0) , END (Z) @E@@@@ IN )@@G@@ END +(I$ 0,U+(Z<0),,,3**Z*/-16,0177777**Z) @^@@@@BITS** FUIO )@@G@@NC @A@@@@Z EQU 1*/BITS(1) @E@@@@I DOIP )@@G@@ BITS-1 ,Z EQU Z++1*/BITS(I+1) @C@@@@ DO IQ )@@G@@ BITS(*1) , END OPT(-Z) @A@@@@ END OPT(Z) IR )@@G@@@C@@@@P$ PROC 1 . @E@@@@CONVFA* NAIS )@@G@@ME 0 . CONVERT FD TO ASCII @E@@@@CONVAF* NAME IT )@@G@@ 1 . CONVERT ASCII TO FD @E@@@@ L,U A1,PIU )@@G@@$(1,1) . INPUT BUFFER ADDRESS@G@@@@ L,U A2,P$(1,2)IV )@@G@@ . OUTPUT BUFFER ADDRESS @C@@@@ DO P$(0,0) , LMJ X1IW )@@G@@1,ASCFD . @C@@@@ DO 1-P$(0,0) , LMJ X11,FDASC . IX )@@G@@ @^@@@@ END . @C@@@@P$ PROC 1 IY )@@G@@ . @E@@@@TNOASG* NAME . TEST TO SEE IF FILE ASSIGIZ )@@G@@NED @G@@@@ DO P$(1,1)>0 , DL A0,(P$(1,1)) . JA )@@G@@ SKIP IF NOT @G@@@@ DS A0,FRMIMG . PUT IN JB )@@G@@FACIL$ PACKET @E@@@@ L,U A0,FRMIMG . PJC )@@G@@ACKET ADD @C@@@@ ER FACIL$ . JD )@@G@@@E@@@@ TZ,S1 FRMIMG+6 . IF ZERO, NOT ASGED @^@@@@JE )@@G@@ END @E@@@@P$ PROC 1 . JF )@@G@@GO TO LINE @C@@@@GOLINE* NAME 1 . JG )@@G@@@E@@@@GOPLUS* NAME 2 . GO PLUS N @E@@@@JH )@@G@@ SNZ GORET . SET RETURN FLAG @E@@@@ JI )@@G@@ DO P$(0,0)=1 , LMJ X6,LINENUM+1 @E@@@@ DOJJ )@@G@@ P$(0,0)=2 , LMJ X6,GOPL+2 @G@@@@ LMJ JK )@@G@@ X10,P$(1,1) . END OF FILE RETURN @^@@@@ ENJL )@@G@@D @E@@@@P$ PROC 1 . CHANGE IMAGE LJM )@@G@@ENGTH @A@@@@IL23* NAME . IL*2/3 => IL @C@@@@ L JN )@@G@@ A0,P$(1,1) . @E@@@@ LSSL A0,1 JO )@@G@@ . MULT BY 2 @E@@@@ A,U A0,2 . FOJP )@@G@@R ROUNDING UP @E@@@@ DSL A0,36 . GET READJQ )@@G@@Y FOR DIVIDE@E@@@@ DI,U A0,3 . DIVIDE BY 3 JR )@@G@@ @C@@@@ S A0,P$(1,1) . @^@@@@ JS )@@G@@ END . @E@@@@P$ PROC 1 . CHANGE IJT )@@G@@MAGE LENGTH @A@@@@IL32* NAME . IL*3/2 => IL @C@@@@ L JU )@@G@@ A0,P$(1,1) . @E@@@@ MSI,U A0,3 JV )@@G@@ . MULT BY 3 @E@@@@ A,U A0,1 JW )@@G@@ . FOR ROUNDING UP @E@@@@ SSL A0,1 . DIJX )@@G@@VIDE BY 2 @C@@@@ S A0,P$(1,1) . JY )@@G@@@^@@@@ END . @^@@@@P$ PROC 1 @E@@@@INCR* JZ )@@G@@ NAME 1 . INCREMENT LOCATION @E@@@@DECR* NAKA )@@G@@ME 0 . DECREMENT LOCATION @C@@@@ L KB )@@G@@ A0,P$(1,1),P$(1,2),P$(1,3) .@E@@@@ DO P$(0,0)=1 , A,U KC )@@G@@A0,1 . @A@@@@ DO P$(0,0)=0 , AN,U A0,1 . @C@@@@KD )@@G@@ S A0,P$(1,1),P$(1,2),P$(1,3) .@^@@@@ END KE )@@G@@ @A@@@@P FORM 12,6,18 @A@@@@F FORM KF )@@G@@ 6,6,6,18 @E@@@@LCT EQU A12 . LINE KG )@@G@@COUNT @^@@@@IC EQU A14 @^@@@@RC EQU A15 KH )@@G@@@^@@@@$(1) . IBANK TABLES @^@@@@ FIELDATA . @E@@@@LEVEL KI )@@G@@ + 'ED& @@'++BASE . ID LINE @C@@@@ + KJ )@@G@@ '.@@-&-'++UPDATE*/18 . @^@@@@ '(&&&&&' . @^@@@@KK )@@G@@ ASCII . @^@@@@EDITS 'EDIT' @C@@@@INPUT 'IKL )@@G@@NPUT ' . @E@@@@PROGNAM 'PROG NAME? ' . KM )@@G@@USED IF NO FIELDS SPEC FOR @ED@^@@@@ FIELDATA . @A@@@@ KN )@@G@@ 'SYM ' . UNTYPED @^@@@@ELT +'ELT' . ELT @G@@@@ KO )@@G@@ +'ASM' . ASSEMBLER THIS TABLE MUST BE IN THIS SEQUENCE. @^@@@@KP )@@G@@ +'COB' . COBOL @A@@@@ +'FOR' . FORTRAN @^@@@@KQ )@@G@@ +'ALG' . ALGOL @A@@@@ +'MAP' . COLLECTOR @^@@@@KR )@@G@@ +'DOC' . DOC @C@@@@ +'SEC' . SECURE PROCESSOR KS )@@G@@ @A@@@@ +'SSG' . SSG PROCESSOR @A@@@@ +'APL' KT )@@G@@ . APL PROCESSOR @A@@@@ +'BAS' . BASIC PROCESOR@A@@@@ KU )@@G@@ +'LSP' . LISP PROCESSOR@I@@@@ + 'PLS' KV )@@G@@ . PLUS 817TM036 @E@@@@ELTLEN EQU KW )@@G@@ $-ELT . NUMBER OF TYPES @E@@@@UPPER + 'UPPKX )@@G@@ER' . FOR CASE COMMAND @E@@@@NORMAL + 'NORMAL' KY )@@G@@ . FOR CASE COMMAND @^@@@@ ASCII . @]@@@@ . @/ KZ )@@G@@ @]@@@@$(0) .@E@@@@OPTN RES 1 . OPLA )@@G@@TION WORD @C@@@@VAR1 + 0 . LB )@@G@@@C@@@@VAR2 + 0 . @C@@@@VAR3 + LC )@@G@@ 0 . @C@@@@VAR4 + 0 LD )@@G@@ . @C@@@@VAR5 RES 1 . LE )@@G@@@C@@@@VAR6 RES 1 . @C@@@@VAR7 RELF )@@G@@S 1 . @C@@@@VAR8 RES 1 LG )@@G@@ . @C@@@@VAR9 RES 1 . LH )@@G@@@C@@@@VAR10 RES 1 . @C@@@@VAR11 RELI )@@G@@S 1 . @C@@@@VAR12 + 0 LJ )@@G@@ . @C@@@@VAR13 RES 1 . LK )@@G@@@I@@@@VAR14 + 0777,0777 . EXCHAR LL )@@G@@ ED010440 @C@@@@VAR15 + 0 . LM )@@G@@@C@@@@VAR16 + 0 . @C@@@@VAR17 RELN )@@G@@S 1 . @E@@@@ILSAV RES 1 LO )@@G@@ . SAVE OF ICW @E@@@@COUNT EQUF VAR1,,H1 LP )@@G@@ . TYPEIN CHAR COUNT @G@@@@OCOUNT EQUF VAR1,,H2 . OLD LQ )@@G@@LOCATE STRING LENGTH @G@@@@EDCT EQUF VAR2,,H1 .LR )@@G@@ CHAR CURRENTLY POINTED AT BY GET @C@@@@LIMIT EQUF VAR2,,H2 LS )@@G@@ . LOCATE LIMIT@G@@@@LENGTH EQUF VAR3,,H1 . NUMBER CHALT )@@G@@RS IN IMAGE80 @G@@@@SSAVE EQUF VAR3,,H2 LU )@@G@@ . SCAN COUNT SAVE @E@@@@LCTSV EQUF VAR4,,H1 LV )@@G@@ . SAVE OF LCT. @C@@@@RPTK EQUF VAR4,,H2 . REPEAT LW )@@G@@COUNT @E@@@@OPTIONS + 0,0,0,0,0,0 . OPTION FLAGS LX )@@G@@@E@@@@DOPT EQUF OPTIONS,,S1 . D OPTION @G@@@@LY )@@G@@DOPTI EQUF OPTIONS,,S2 . INPUT IS DATA FILE=1 LZ )@@G@@@G@@@@DOPTO EQUF OPTIONS,,S3 . OUTPUT IS DATAFILE=1 MA )@@G@@ @E@@@@TRACE EQUF OPTIONS,,S4 . TRACE FLAG MB )@@G@@@G@@@@PNTINQ EQUF OPTIONS,,S5 . REAL PRINT WHEN IN QUICK MMC )@@G@@ODE @G@@@@NUMACT EQUF OPTIONS,,S6 . NUMBERED ACTIVITY FOMD )@@G@@R MAIN @C@@@@OPTIONS1 + 0 . @G@@@@ME )@@G@@EDS1A EQUF OPTIONS1,,S1 . SPEC1 FILE ASSIGNED=1 MF )@@G@@@G@@@@EDS2A EQUF OPTIONS1,,S2 . SPEC 2 FILE ASSIGNED=1 MG )@@G@@ @E@@@@WINHIB EQUF OPTIONS1,,S3 . WRITE INHIBIT MH )@@G@@@E@@@@STATUS EQUF OPTIONS1,,S4 . STATUS REQUESTED @E@@@@MI )@@G@@WMAIL EQUF OPTIONS1,,S5 . MAIL WAITING FLAG @G@@@@RLSTCDMJ )@@G@@ EQUF OPTIONS1,,S6 . CARD WAITING TO BE PROCESSED @E@@@@MK )@@G@@OPTIONS2 + 0,0,0,0,0,0 . MORE FLAGS @E@@@@MOVEF ML )@@G@@ EQUF OPTIONS2,,S1 . MOVE COMMAND @G@@@@OK EQMM )@@G@@UF OPTIONS2,,S2 . OK=1 - NOT AT END OF FILE @G@@@@LCFLG MN )@@G@@ EQUF OPTIONS2,,S3 . FLAG FOR 'LC' AND 'FC' COMMANDS@G@@@@MO )@@G@@IBFLG EQUF OPTIONS2,,S4 . FLAG FOR 'IB' COMMAND MP )@@G@@@E@@@@GOEXIT EQUF OPTIONS2,,S5 . GO TO EXIT FLAG @G@@@@MQ )@@G@@HEADC EQUF OPTIONS2,,S6 . CHANGE AT HEAD OF LINE MR )@@G@@@E@@@@OPTIONS3 + 0,0,0,0,0,0 . MORE FLAGS @G@@@@MS )@@G@@CYCS EQUF OPTIONS3,,S1 . IF SET CYCLE NUMBER WAS GIVEN MT )@@G@@@G@@@@BLKLINE EQUF OPTIONS3,,S2 . BLANK LINE TO BE INSERTEDMU )@@G@@ @I@@@@DIDRLS EQUF OPTIONS3,,S3 . DID AN RLIST FLAG MV )@@G@@ ED010460 @G@@@@DIASGD EQUF OPTIONS3,,S5 . DMW )@@G@@ITTO FILE ED$DI ASSIGNED @G@@@@AUTOREC EQUF OPTIONS3,,S6 MX )@@G@@ . AUTO SAVE RECOVERY FLAG @C@@@@OPTIONS4 + 0 MY )@@G@@ . @G@@@@ADSAVE EQUF OPTIONS4,,S1 . NOT STAMZ )@@G@@NDARD FILENAMES FLAG @G@@@@DGONXT EQUF OPTIONS4,,S2 . WHNA )@@G@@ERE TO GO AFTER DELETE @C@@@@PRTEST EQUF OPTIONS4,,S3 NB )@@G@@ . @G@@@@REEXIT EQUF OPTIONS4,,S5 . RECOVERY IF FNC )@@G@@LAG = 0 @G@@@@DYNASG EQUF OPTIONS4,,S6 . DYNAMIC ND )@@G@@ASG FLAG FOR SPLIT+ADD @C@@@@OPTIONS5 + 0 . NE )@@G@@ @E@@@@ABSPEC EQUF OPTIONS5,,S1 . ABSENT SPEC FIELDS NF )@@G@@@E@@@@DOCCOM EQUF OPTIONS5,,S2 . DOCUMENT COM IND @G@@@@NG )@@G@@GLOBAL EQUF OPTIONS5,,S3 . G ON CHANGE COMMAND=1 NH )@@G@@@G@@@@DOCP EQUF OPTIONS5,,S4 . DOCUMENT COM PERIOD IND NI )@@G@@ @G@@@@ONSITE EQUF OPTIONS5,,S5 . PRINTOUT TO ONSITE NJ )@@G@@PRINTER @I@@@@ERR$X EQUF OPTIONS5,,S6 . ERROR REALLY NK )@@G@@OCCURRED 817TM040 @C@@@@OPTIONS6 + 0 NL )@@G@@ . @G@@@@AUTCALL EQUF OPTIONS6,,S1 . USED WHEN AUTONM )@@G@@ COMMAND IS CALLED@G@@@@QSTRING EQUF OPTIONS6,,S2 . LOCATE NN )@@G@@QUOTES OPTIONS @E@@@@GORET EQUF OPTIONS6,,S3 . RNO )@@G@@ETURN FROM GO EXIT@E@@@@ONNLINE EQUF OPTIONS6,,S4 . STRING NP )@@G@@ON NEXT LINE@G@@@@INREPF EQUF OPTIONS6,,S5 . REPLACE ON INNQ )@@G@@LINE COMMAND @G@@@@INDELF EQUF OPTIONS6,,S6 . DELETE NR )@@G@@ON INLINE COMMAND @E@@@@OPTIONS7 + 0 . NS )@@G@@FLAG WORD @G@@@@DEMAND EQUF OPTIONS7,,S1 . DEMNT )@@G@@AND MODE=1, BATCH=0 @E@@@@STRFND EQUF OPTIONS7,,S2 NU )@@G@@ . STRING FOUND @G@@@@INPUTF EQUF OPTIONS7,,S3 . INNV )@@G@@PUT MODE=1, EDIT MODE=0 @G@@@@QUICKP EQUF OPTIONS7,,S4 NW )@@G@@. QUICK PRINT INDICATOR @G@@@@QUOTE EQUF OPTIONS7,,S5 NX )@@G@@ . QUOTE INDICATOR FOR QUICK @E@@@@MCRD$ EQUF OPTIONS7,,NY )@@G@@S6 . MCORE DONE FLAG @C@@@@OPTIONS8 + 0 NZ )@@G@@ . @G@@@@CASEUP EQUF OPTIONS8,,S1 . CONVERT LOWER OA )@@G@@TO UPPER CASE FLAG@E@@@@PUNCH EQUF OPTIONS8,,S2 . PUNCH POB )@@G@@APER TAPE @G@@@@FASTREAD EQUF OPTIONS8,,S3 . FAST READ- NOOC )@@G@@ DECODE @G@@@@BRKSET EQUF OPTIONS8,,S4 . BREAK KOD )@@G@@EY HAS BEEN DEPRESSED @G@@@@LNPRT EQUF OPTIONS8,,S5 . LIOE )@@G@@NE NUMBERS ON SITE PRINTOUT=1 @E@@@@CARDPCH EQUF OPTIONS8,,S6 OF )@@G@@ . CPUNCH COMMAND @C@@@@OPTIONS9 + 0 . OG )@@G@@ @G@@@@FQOPT EQUF OPTIONS9,,S1 . FLAG FOR P AND Q OPTOH )@@G@@IONS @E@@@@OUTFIL EQUF OPTIONS9,,S2 . FLAG FOR OUTPUOI )@@G@@T FILE@G@@@@FD EQUF OPTIONS9,,S3 . FIELDATA INPUT FILE OJ )@@G@@FLAG @G@@@@FDADD EQUF OPTIONS9,,S6 . FD FLAG FOR ADOK )@@G@@D FILES @G@@@@GET2F EQUF OPTIONS9,,S4 . FLAG USEOL )@@G@@D BY GET ROUTINE @G@@@@FILEONLY EQUF OPTIONS9,,S5 . FIOM )@@G@@LE ONLY DESIGNATED=1 @^@@@@X11SAV RES 1 @C@@@@X10SAVON )@@G@@ RES 1 . X10 TEMP SAVE @^@@@@ . MAIL COMMAND DATA OO )@@G@@@^@@@@ FIELDATA . @E@@@@ASGCMF '@ASG,CP MF$$,F2///20' OP )@@G@@ . ASSIGN MAIL FILE @C@@@@ASGAMF '@ASG,A MF$$' .OQ )@@G@@ @C@@@@FREMF '@FREE MF$$' . @C@@@@FREDMFOR )@@G@@ '@FREE,D MF$$' . @C@@@@BRKMF '@BRKPT MF$$' OS )@@G@@ . @A@@@@REDMF + ENDMF,EDIT14 @^@@@@OT )@@G@@ 'MF$$ '@^@@@@ ASCII . @C@@@@TREDOC + OU )@@G@@ 0 . @G@@@@ + DOCEOF,EDIOV )@@G@@T14 . TREAD FOR DOC COMMAND @A@@@@TREADML + 0106OW )@@G@@,ASKML @A@@@@ + FIEXIT,EDIT14 @A@@@@ASKML 'DOX )@@G@@O YOU WANT YOUR MAIL?' @C@@@@PRNTML + 0100,EDIT14 . OY )@@G@@ @^@@@@ FIELDATA @C@@@@ 'MF$$ ' OZ )@@G@@ . @^@@@@ ASCII . @C@@@@TREADNM P PA )@@G@@ 1,2,('MAIL** ') . @C@@@@ + MAIEOF,EDIT14 PB )@@G@@ . @C@@@@USERID RES 1 . USERID @E@@@@PC )@@G@@RUNID RES 1 . USER RUNID @I@@@@MAXCP PD )@@G@@ + 0 . MAX EST CPT TIME 817TM0PE )@@G@@43 @G@@@@PTL1 EQUF VAR5,,S1 . PRINT LIMIT 1 FOR PLPF )@@G@@IMIT @G@@@@PTL2 EQUF VAR5,,S2 . PRINT LIMIT 2 PG )@@G@@FOR PLIMIT @E@@@@CPTL1 EQUF VAR17,,H1 . COLUMN PPH )@@G@@RINT LIM 1 @E@@@@CPTL2 EQUF VAR17,,H2 . COLUMN PRINT LPI )@@G@@IM 2 @G@@@@EDIL EQUF VAR5,,H2 . TYPEIN IMAGE WORD LENPJ )@@G@@GTH @E@@@@SAVE2 EQUF VAR6,,H1 . LIMITS FOR CHANGE COMPK )@@G@@ @A@@@@SAVE21 EQUF VAR6,,H2 . @G@@@@TREADMSG P PL )@@G@@ 1,2,('MSG? ') . @C@@@@ + PM )@@G@@ FILE1,EDIT14 . @E@@@@TREADSEQ P 1,3,IMBUF PN )@@G@@ . TYPE IMAGE @E@@@@ + FILE1,EDIT14 PO )@@G@@ . READ IMAGE @A@@@@TREADSITE P 1,2,('HDG? ')@C@@@@PP )@@G@@ + FILE1,IMBUF+2 . @G@@@@REL RES PQ )@@G@@ 1 . RELATIVE CYCLE INITIALLY ZERO @^@@@@ FIPR )@@G@@ELDATA . @E@@@@DASH '------------' . USED FOR SITE PS )@@G@@ @^@@@@ADSAVF 'ED$TB '@C@@@@XFTBL 'ED$XF ' . EXPT )@@G@@TRA FILE TABLE @C@@@@ DO 3 , + 0 . PU )@@G@@@C@@@@ + 1,0 . @C@@@@ DO 6 , + PV )@@G@@ 0 . @G@@@@XFENAME EQU XFTBL+2 PW )@@G@@ . EXTRA FILE ELEMENT NAME @G@@@@XFVERS EQU XFTBPX )@@G@@L+6 . EXTRA FILE VERSION @G@@@@XFCYCL RES PY )@@G@@ 1 . EXTRA FILE ELEMENT CYCLE @C@@@@RELXF REPZ )@@G@@S 1 . @C@@@@RCXF RES 1 QA )@@G@@ . @^@@@@FRMIMG ' '@G@@@@ RES 7 QB )@@G@@ . SPACE FOR ER FACIL$ PKT. @^@@@@BLANKS ' QC )@@G@@ '@^@@@@EDSDF '*SDFF*' @^@@@@ ASCII . QD )@@G@@@E@@@@BLANK2 ' ' . 8 ASCII SPACES @]@@@@QE )@@G@@ . @/ @G@@@@OBLS EQU 16 . SECTOR LENGTH QF )@@G@@OF OUTPUT BUFFERS @G@@@@IBLS EQU 16 . SECTOR LQG )@@G@@ENGTH OF INPUT BUFFERS @G@@@@LBLS$ EQU 64 . 64QH )@@G@@ SECTORS FOR LARGE FILE @C@@@@LBL$ EQU LBLS$*28 QI )@@G@@ . WORDS @A@@@@LIN$ + IN1,IN1+LBL$ @C@@@@LOUT$ + QJ )@@G@@ IN1+2*LBL$,IN1+3*LBL$ . @E@@@@IBL EQU IBLS*28 QK )@@G@@ . INPUT BUFFER WORD LENGTH @E@@@@OBL EQU OBLS*28 . OUTQL )@@G@@PUT BUFFER WORD LENGTH @E@@@@ETAB A$EPKT 33,IMBUF . AEQM )@@G@@DIT$ PACKET @^@@@@ FIELDATA . @E@@@@FTAB E$PKT QN )@@G@@ 22,FIMBUF . EDIT$ PACKET @G@@@@ALTPKT + 0 QO )@@G@@ . ALTERNATE PRINT PACKET @E@@@@ 'ED$PR QP )@@G@@ ' . IMAGE IN I MBUF @E@@@@IMBUF RES 33 QQ )@@G@@ . ASCII BUFFER @I@@@@FIMBUF RES 33 QR )@@G@@ . USUALLY FD BUFFER, SOMETIMES ASCII @^@@@@ . DITTO COMQS )@@G@@MAND DATA @G@@@@DITSECL EQU 4 . DITTO BUFFER QT )@@G@@LENGTH IN SECTORS @E@@@@DITLEN EQU 28*DITSECL . DQU )@@G@@ITBUF LENGTH@G@@@@DITBUF RES DITLEN . SPACE TO SAVEQV )@@G@@ DITTO IMAGES @E@@@@DBUFCNT EQUF DITBUF,,H2 . TOTAL IQW )@@G@@MAGE LENGTH @E@@@@DITPKT 'ED$DI ' . DITTO FILE PAQX )@@G@@CKET @C@@@@ DO 2 , + 0 . @C@@@@ QY )@@G@@ + DITLEN,DITBUF . @C@@@@ DO 3 , + 0 QZ )@@G@@ . @E@@@@DITCODE EQUF DITPKT+3,,S2 . IRA )@@G@@-O CODE @E@@@@DITFAST EQUF DITPKT+5 . FASTRANRB )@@G@@D ADDRESS @E@@@@DIT1 EQUF VAR7,,H1 . STARTING POINT RC )@@G@@ @E@@@@DIT2 EQUF VAR7,,H2 . ENDING POINT RD )@@G@@@I@@@@STR EQU VAR7 . USED BY CHANGE-REQUIRES 3RE )@@G@@ CONSEC LOC @E@@@@DITLN EQUF VAR8,,H1 . INSERT LINERF )@@G@@ NUMBER @G@@@@DITFIL EQUF VAR8,,H2 . NUMBER OF DITTO FRG )@@G@@ILE IMAGES @E@@@@DITX10S EQUF VAR9,,H1 . SAVE AREA FRH )@@G@@OR X10 @G@@@@DITLENTH EQUF VAR9,,H2 . LENGTH OR AREARI )@@G@@ TO BE DITTOED @E@@@@AUTOTST EQUF VAR10,,H1 . TRANSACTIRJ )@@G@@ON TEST @E@@@@AUTOCNT EQUF VAR10,,H2 . TRANSACTION COURK )@@G@@NT @E@@@@THETAB EQUF VAR11,,H1 . TAB CHARACTER RL )@@G@@@I@@@@TRCHF EQUF VAR11,,H2 . TRANSPARENT CHAR FOR FINDRM )@@G@@ COMMAND @G@@@@INCONT EQUF VAR12,,H1 . CONTINUARN )@@G@@TION FLAG AND PTR SAVE @E@@@@CONTCHAR EQUF VAR12,,H2 . CORO )@@G@@NTINUATION CHAR @E@@@@LOCHR EQUF VAR13,,H1 . LOCATE RP )@@G@@QUOTE CHAR @E@@@@MSPCHR EQUF VAR13,,H2 . MASTERSPACE LRQ )@@G@@INE 1 @E@@@@CHGCHR EQUF VAR14,,H1 . EXCHANGE CHAR RR )@@G@@@E@@@@NCHGCHR EQUF VAR14,,H2 . NEW EXCH CHR @G@@@@RS )@@G@@SAVECL EQUF VAR15,,H1 . MAX LINE LENGTH IN CHARS RT )@@G@@@G@@@@LLSTCD EQUF VAR15,,H2 . LENGTH OF LAST CARD IN ILSRU )@@G@@TCD @E@@@@DELIM EQUF VAR16,,H1 . DELIMITER FOUND BY GETRV )@@G@@@G@@@@COMPKT . . COM$ PACKET FOR OPERATOR MERW )@@G@@SSAGES@C@@@@ DO 3 , + 0 . @E@@@@COMICHRX )@@G@@R EQUF COMPKT,,H2 . NUMBER INPUT CHARS @G@@@@COMCHR EQRY )@@G@@UF COMPKT+1,,H1 . NUMBER OF OUTPUT CHARS @E@@@@COMADDRZ )@@G@@ EQUF COMPKT+1,,H2 . ADDRESS FOR OUTPUT @G@@@@COMIEXP EQSA )@@G@@UF COMPKT+2,,H1 . NUM CHARS EXPECTED ON INPUT @E@@@@COMIADSB )@@G@@D EQUF COMPKT+2,,H2 . ADDRESS FOR INPUT @^@@@@EDOUT 'ESC )@@G@@D$TA ' @^@@@@ ' ' @^@@@@ RES 9 SD )@@G@@@^@@@@EDIN 'ED$TB ' @^@@@@ ' ' @^@@@@ SE )@@G@@ RES 9 @I@@@@ . FILE CONTROL TABLE SKELETONS SF )@@G@@ ED010480 @^@@@@COPIN + 0 @A@@@@SG )@@G@@ F 0,020,0,0 @A@@@@ + IBL,0 SH )@@G@@ @^@@@@ + 0 @A@@@@ + IN1,IN2 SI )@@G@@ @A@@@@ + IBLS,33 @A@@@@ + SJ )@@G@@ 1,IMAGE @^@@@@ + 1,0 @^@@@@ + SK )@@G@@ 0 @^@@@@COPOUT + 0 @A@@@@ F 0,010,0,0 SL )@@G@@ @A@@@@ + OBL,0 @^@@@@ + SM )@@G@@ 0 @A@@@@ + OUT1,OUT2 @A@@@@ + SN )@@G@@ OBLS,0 @A@@@@ + 1,IMAGE @^@@@@ SO )@@G@@ + 1,0 @^@@@@ + 0 @]@@@@$(0) . @A@@@@SP )@@G@@ . EXTRA FILE DATA FOR SPLIT AND ADD@C@@@@XFBLS EQU 4 SQ )@@G@@ . @G@@@@XFBL EQU XFBLS*28 . LENGTH OSR )@@G@@F BUFFER IN WORDS @C@@@@XF1 RES XFBL . SS )@@G@@ @C@@@@XF2 RES XFBL . @^@@@@EDXF ST )@@G@@ 'ED$XF ' @C@@@@ DO 2 , + 0 . SU )@@G@@@A@@@@ + XFBL,0 @C@@@@ + 0 SV )@@G@@ . @C@@@@ + XF1,XF2 . SW )@@G@@ @C@@@@ + XFBLS,33 . @C@@@@ SX )@@G@@ + 1,IMAGE . @C@@@@ + 1,0 SY )@@G@@ . @C@@@@ + 0 . SZ )@@G@@ @^@@@@ ASCII . @E@@@@ICWXF EQU EDXF+10 TA )@@G@@ . IMAGE CONTROL WORD @G@@@@ILXF EQUF EDXF+10,,S2 TB )@@G@@ . IMAGE LENGTH FOR CONTROL WORDS @C@@@@DCXF EQUF EDXF+10,,STC )@@G@@4 . @C@@@@ACXF EQUF EDXF+10,,S6 . TD )@@G@@@E@@@@AC1XF EQUF EDXF+10,,S5 . ADDED THIS UPDATE @E@@@@TE )@@G@@DC1XF EQUF EDXF+10,,S3 . DELETED THIS UPDATE @]@@@@$(20) TF )@@G@@ . @E@@@@IN1* RES IBL . FIRST INPUT BUFFER TG )@@G@@@E@@@@IN2* RES IBL . 2ND INPUT BUFFER @E@@@@TH )@@G@@ . NOTE: INITIALIZATION CODE IS IN THE TWO OUTPUT BUFFERS @E@@@@ . OUTTI )@@G@@1 AND OUT2. THIS CODE IS,OF COURSE, OVERWRITTEN ONCE @A@@@@ . INITIALIZTJ )@@G@@ATION IS DONE. @E@@@@OUT1* RES IBL . BEGINNING OF FIRSTK )@@G@@T OUTPUT BUFFER @E@@@@OUT2* RES IBL . BEGINNING OF FIRST OUTPTL )@@G@@UT BUFFER @I@@@@DCON + DBKEND-IBKEND,BASE*/6++UPDATE . VATM )@@G@@LIDITY CONSTANT 817TM046 @E@@@@INITIAL TN )@@G@@ . INITIALIZATION @C@@@@ L,U A0,0400001 . TO )@@G@@ @C@@@@ ER PSR$ . SET IT @A@@@@ TP )@@G@@ SA A1,OLDPSR @C@@@@ L,U R10,1 TQ )@@G@@ . @G@@@@ L A0,(+ SAVESTD,SAVESTD-1) . STR )@@G@@ET SAVE2,SAVE21 @C@@@@ S A0,VAR6 . TS )@@G@@@G@@@@ SZ AUTOTST . AUTO 0 ASSUMED INITALLY TT )@@G@@ @C@@@@ SNZ ADSAVE . INITIALLY NONZERO @E@@@@ TU )@@G@@ L,U A0,TABSTD . SET THE TAB TO A @C@@@@ S TV )@@G@@ A0,THETAB . @G@@@@ SZ REL TW )@@G@@ . SET RELATIVE CYCLE TO ZERO @I@@@@ L,U A0,TTX )@@G@@RANSCHARF . SET TRANSPARENT CHARACTER FOR FIND @C@@@@ TY )@@G@@ S A0,TRCHF . @G@@@@ SNZ CPTLTZ )@@G@@1 . STANDARD COL PRINT LIM 1 @G@@@@ L,U UA )@@G@@ A0,132 . STANDARD COL PRINT LIM 2 @C@@@@ S UB )@@G@@ A0,CPTL2 . @G@@@@ SNZ PTL1 UC )@@G@@ . STANDARD PRINT LIMIT 1 = 1 @G@@@@ L,U A0,PUD )@@G@@LIMSTD . LOAD STANDARD PRINT LIMIT 2 @C@@@@ S UE )@@G@@ A0,PTL2 . @I@@@@ L,U A0,CONTSTD UF )@@G@@ . SET STANDARD INPUT CONTINUATION CHAR @C@@@@ S UG )@@G@@ A0,CONTCHAR . @G@@@@ L,U A0,STDMSP UH )@@G@@ . STANDARD MASTERSPACE LINE 1 @C@@@@ S A0,MSPCHR UI )@@G@@ . @G@@@@ L,U A0,STDLCHR . STANDARUJ )@@G@@D LOCATE QUOTE CHAR @C@@@@ S A0,LOCHR . UK )@@G@@ @E@@@@ L,U A0,SAVECLS . SET MAX LINE LENGTHUL )@@G@@@C@@@@ S A0,SAVECL . @E@@@@ L,UM )@@G@@U A0,131 . ZERO TABS @C@@@@ SZ UN )@@G@@ TAB80,A0 . @C@@@@ JGD A0,$-1 UO )@@G@@ . @E@@@@ L,U R1,TABLNT-1 . TAB TABLE LENUP )@@G@@GTH @E@@@@ L A1,(1,0) . TAB TABLE PTR UQ )@@G@@@E@@@@ L A3,(1,0) . TAB80 PTR @E@@@@UR )@@G@@INITAB L A10,TABTBLS,*A1 . GET NEXT TAB (-1) @E@@@@ US )@@G@@ A A10,(1,0) . GIVE IT AN INC @E@@@@ S UT )@@G@@ A10,TAB80,*A3 . STORE IT @E@@@@ TLE UU )@@G@@ A3,A10 . FILLED YET^ @C@@@@ J $-2 UV )@@G@@ . @E@@@@ JGD R1,INITAB . LUW )@@G@@OOP TO IT @E@@@@ L A0,(4,DITBUF) . GET RUNIUX )@@G@@D @E@@@@ ER PCT$ . ITS IN THE PCTUY )@@G@@ @C@@@@ L A0,DITBUF . USERID @C@@@@ UZ )@@G@@ S A0,USERID . @G@@@@ L A0,DVA )@@G@@ITBUF+1 . SECOND WORD IS GENERATED RUNID @C@@@@ S VB )@@G@@ A0,RUNID . @I@@@@ L A0,DITBUF+3 VC )@@G@@ . GET MAX EST TIME 817TM054 @I@@@@ S VD )@@G@@ A0,MAXCP . 817TM055 @I@@@@VE )@@G@@ SZ R14 . CLEAR R14 THE MAX TIME THINGER VF )@@G@@817TM056 @E@@@@ ER COND$ . GET CONDITION VG )@@G@@WORD @E@@@@ TOP A0,BITS(11) . WAS THIS A MEMORY? VH )@@G@@@E@@@@ J NOMEMY . DEFINITELY NOT! @C@@@@VI )@@G@@ SNZ MEMORY . SET MEMORY @E@@@@ SZ VJ )@@G@@ QUICKON . LETS ASSUME IT IS @C@@@@ SZ BRIEVK )@@G@@F2 . @C@@@@ SZ ALLLN . VL )@@G@@ @C@@@@ SZ RECPCNT . @C@@@@ VM )@@G@@ SZ SPLITDEL . @C@@@@ SZ BRIEVN )@@G@@F3 . @C@@@@ SZ TYPESEQ . VO )@@G@@ @E@@@@ SZ LKMAIL . LOOK FOR MAIL VP )@@G@@@E@@@@ SZ EOFMOD . CLEAR EOF MODE @E@@@@VQ )@@G@@ SZ UNIMOD . CLEAR UNISCOPE MODE @C@@@@ VR )@@G@@ TEP A0,BITS(0) . QUICK @A@@@@ SNZ QUICVS )@@G@@KON .@C@@@@ TEP A0,BITS(1) . BRIEF @A@@@@VT )@@G@@ SNZ BRIEF2 .@C@@@@ TEP A0,BITS(2)VU )@@G@@ . ALLLN @A@@@@ SNZ ALLLN .@E@@@@ VV )@@G@@ TEP A0,BITS(3) . READ PRINT CONTROLS @A@@@@ SNVW )@@G@@Z RECPCNT .@G@@@@ TEP A0,BITS(4) . DEVX )@@G@@LETE WHEN SPLITTING @A@@@@ SNZ SPLITDEL .VY )@@G@@@G@@@@ TEP A0,BITS(5) . BRIEF FOR SPLIT AND ADD VZ )@@G@@ @A@@@@ SNZ BRIEF3 .@G@@@@ TEP WA )@@G@@ A0,BITS(6) . SEQUENCE NUMBER TREAD @A@@@@ SNWB )@@G@@Z TYPESEQ .@E@@@@ TEP A0,BITS(7) . LOWC )@@G@@OK FOR MAIL @A@@@@ SNZ LKMAIL .@C@@@@ WD )@@G@@ TEP A0,BITS(8) . EOF MODE@A@@@@ SNZ EOFMWE )@@G@@OD .@E@@@@ TEP A0,BITS(9) . UNISCOPE MODE WF )@@G@@ @C@@@@ SNZ UNIMOD . @E@@@@NOMEMYWG )@@G@@ TNE,U A4,4 . DEMAND? @C@@@@ SNWH )@@G@@Z DEMAND . YES! @E@@@@ ON INSTAT WI )@@G@@ . STATISTICS @C@@@@ L A0,(5,USESTAT) WJ )@@G@@ . DO USE @C@@@@ ER CSF$ . @^@@@@WK )@@G@@ FIELDATA . @E@@@@ TNOASG 'STATFILE ' . AWL )@@G@@SSIGNED? @^@@@@ ASCII . @C@@@@ J WM )@@G@@ STATASGD . YES @C@@@@ L A0,(3,ASGSTATA) WN )@@G@@ . @C@@@@ ER CSF$ . ASSIGN @C@@@@WO )@@G@@ JP A0,STATASGD . @E@@@@ L WP )@@G@@ A0,(3,ASGSTATC) . ASSIGN WITH C @C@@@@ ER CSF$WQ )@@G@@ . @C@@@@ JN A0,NOSTAT . NWR )@@G@@O LUCK@E@@@@ L A0,(3,FRESTAT) . FREE FILE WS )@@G@@@C@@@@ ER CSF$ . @C@@@@ JNWT )@@G@@ A0,NOSTAT . @E@@@@ L A0,(3,ASGSWU )@@G@@TATA) . REASSIGN @C@@@@ ER CSF$ WV )@@G@@ . @C@@@@ JN A0,NOSTAT . @E@@@@WW )@@G@@ L,U A2,1 . NEXT BLOCK @C@@@@WSTATHWX )@@G@@ SZ STATIO+5 . @C@@@@ S A2,SWY )@@G@@TATBUF . @E@@@@ L A0,(0,W$,0,0,0,0) . WWZ )@@G@@RITE HEAD BLOCK @C@@@@ S A0,STATIO+3 . XA )@@G@@@C@@@@ L,U A0,STATIO . @C@@@@ ERXB )@@G@@ IOW$ . @C@@@@ S A2,STATIO+XC )@@G@@5 . @E@@@@ L,U A0,27 . ZERO THEXD )@@G@@ BUFFER @C@@@@ SZ STATBUF,A0 . @C@@@@XE )@@G@@ JGD A0,$-1 . @C@@@@ L,U XF )@@G@@ A0,STATIO . @C@@@@ ER IOW$ XG )@@G@@ . @C@@@@ J STAINT . @E@@@@XH )@@G@@STATASGD SZ STATIO+5 . READ HEAD BLOCK @C@@@@ XI )@@G@@ L A0,(0,R$,0,0,0,0) . @C@@@@ S A0,SXJ )@@G@@TATIO+3 . @C@@@@ L,U A0,STATIO . XK )@@G@@ @C@@@@ ER IOW$ . @E@@@@ XL )@@G@@ L A2,STATBUF . GET ADDRESS @^@@@@ A,XM )@@G@@U A2,1@E@@@@ J WSTATH . GO WRITE HEADXN )@@G@@ OUT @E@@@@STAINT L A0,RUNID . SAVE RUNID XO )@@G@@@C@@@@ S A0,STATBUF . @C@@@@ SNXP )@@G@@Z STATAD . SET FLAG @E@@@@ ER TDATE$ XQ )@@G@@ . GET START TIME @C@@@@ S A0,STATBUF+11 XR )@@G@@ . @E@@@@ ER TIME$ . INITIAL TIME XS )@@G@@ @C@@@@ S A0,STATBUF+4 . @]@@@@NOSTATXT )@@G@@ . @C@@@@ OFF INSTAT . @I@@@@ XU )@@G@@ SNZ REEXIT . KILL IF ERROR ED0107XV )@@G@@10 @I@@@@ E$DIT FTAB . APPLY USE FOR UNIQUEXW )@@G@@ ED$ITB ED020040 @I@@@@ E$MSG USETB . @UXX )@@G@@SE ED$ITB,ED$TB& ED020050 @I@@@@ E$FD1 USERXY )@@G@@ID . USERID ED020060 @I@@@@ XZ )@@G@@ E$DITX . ED0200YA )@@G@@70 @I@@@@ L A0,(6,FIMBUF) . DO IT YB )@@G@@ ED020080 @I@@@@ ER CSF$ . YC )@@G@@ ED020090 @^@@@@ FIELDATA . YD )@@G@@@E@@@@ TNOASG 'ED$TA ' . ED$TA ASGD? @C@@@@YE )@@G@@ J AASGD . SKIP ASG. @C@@@@ L A0,YF )@@G@@(4,ED1) . DO IT. @C@@@@ ER CSF$ .YG )@@G@@ X @E@@@@AASGD TNOASG 'ED$TB ' . ED$TB ASGD? YH )@@G@@ @C@@@@ J BASGD . YES. @I@@@@ YI )@@G@@ TNZ DEMAND . DEMAND OR BATCH? ED0201YJ )@@G@@10 @I@@@@ J BASGD$ . NO AUTO IN BATCH YK )@@G@@ ED020120 @I@@@@ L A0,(4,CATB) . CYL )@@G@@ATALOG ED010730 @C@@@@ ER CSF$YM )@@G@@ . @I@@@@ L A0,(3,ED2A) . REYN )@@G@@-ASSIGN ED020140 @C@@@@ ER CSF$YO )@@G@@ . @I@@@@ JP A0,BASGD . ASYP )@@G@@SIGNED ED010750 @I@@@@BASGD$ L A0,(YQ )@@G@@4,ASGBT) . TRY TO ASSIGN TEMP ED020160 @I@@@@ YR )@@G@@ ER CSF$ . ED0107YS )@@G@@70 @I@@@@ JN A0,FACERP . ERROR? YT )@@G@@ ED010790 @I@@@@ TNZ DEMAND . DEYU )@@G@@MAND? ED020180 @I@@@@ J BASGYV )@@G@@D . NO DON'T PRINT MSG ED020190 @I@@@@ YW )@@G@@ TYP E113,L113 . AUTO CANNOT BE DONE ED0108YX )@@G@@00 @G@@@@BASGD TNOASG 'ED$DI ' . IS DITTO FILE ASSIGYY )@@G@@NED? @^@@@@ ASCII . @D@@@@ SNZ DIASYZ )@@G@@GD . YES, SET FLAG @^@@@@ SZ IC @E@@@@ ZA )@@G@@ SZ SSAVE . RESET SCAN COUNT @E@@@@ SZZB )@@G@@ LCT . ZERO LINE COUNT PLEASE. . @A@@@@ LMJ ZC )@@G@@ X10,OPNO @C@@@@ L A0,(+IOERR,INFOR) ZD )@@G@@@A@@@@BEG1 LA A0,SAVEA0 @A@@@@ A A0,LZE )@@G@@ENGTH @A@@@@ S A0,LENGTH @A@@@@ LSZF )@@G@@SL A0,+4 @E@@@@ JP A0,PCERR . NOTZG )@@G@@ INFOR FORMAT @A@@@@ LSSL A0,+1 @G@@@@ ZH )@@G@@ L A1,LENGTH . # OF VALID WORDS IN INFOR @A@@@@ZI )@@G@@ A,U A1,INFOR @G@@@@ S A1,ENDINF ZJ )@@G@@ . ADDRESS AFTER END INFOR TABLE @E@@@@ JN A0,BZK )@@G@@EG2 . INFOR NOT COMPLETE @A@@@@ L A0,INFOR ZL )@@G@@ @A@@@@ SSL A0,+26 @A@@@@ TE,U ZM )@@G@@ A0,051 @E@@@@ J PCERR . NOT PROZN )@@G@@CESSOR CALL @A@@@@ L X11,(1,INFOR+1) @A@@@@AA TZZO )@@G@@,S1 0,X11 @G@@@@ J PCERR . CZP )@@G@@OMMAND IMAGE NOT FOLLOWING @E@@@@GETSIN L,S6 A0,0,X11 ZQ )@@G@@ . NO IS FILENAME FIELD @E@@@@ A X11,A0 . SKZR )@@G@@IP TO GET COMMAND @G@@@@ TNZ,S1 1,*X11 . MORE COMZS )@@G@@MAND IMAGE STUFF? @E@@@@ J GETSIN . YEZT )@@G@@S, KEEP GOING @E@@@@ L A0,INFOR . GET OPTIZU )@@G@@ONS @C@@@@ S A0,OPTN . @C@@@@ZV )@@G@@ DO INSTAT , S A0,STATBUF+1 . @E@@@@ TOPTN ZW )@@G@@ 'Q' . Q OPTION ON? @C@@@@ J FOPTZX )@@G@@ . NO @G@@@@ SZ OUTFIL . YEZY )@@G@@S, OUTPUT FILE IS ASCII @E@@@@ SZ FQOPT ZZ )@@G@@ . Q OPTION SPEC @C@@@@ J NEXOPT . AA )@@G@@ @E@@@@FOPT TOPTN 'P' . P OPTION ON? AB )@@G@@@C@@@@ J NOFQ . NO @G@@@@ SNAC )@@G@@Z OUTFIL . YES, OUTPUT FILE IS FD @E@@@@ AD )@@G@@ SNZ FQOPT . P OPTION SPEC @C@@@@ J AE )@@G@@ NEXOPT . @C@@@@NOFQ L,U A1,2 AF )@@G@@ . @I@@@@ S A1,FQOPT . FQOPT = AG )@@G@@2 IF NEITHER P OR Q IS GIVEN @E@@@@NEXOPT TNOPTN 'D' AH )@@G@@ . ACT LIKE DEMAND? @C@@@@ SNZ DEMAND AI )@@G@@ . YES @E@@@@ TNOPTN 'N' . N OPTION? AJ )@@G@@ @E@@@@ SNZ BRIEF2 . SET BRIEF MODE AK )@@G@@@E@@@@ TOPTN 'E' . STUPID E OPTION @E@@@@AL )@@G@@ J NOESETH . NO E SET HERE @E@@@@ AM )@@G@@ L A0,BITS('Z'-'L') . SET THE L OPTION @E@@@@ ORAN )@@G@@ A0,OPTN . THATS ALL E IS @C@@@@ S AO )@@G@@ A1,OPTN . RESTORE @E@@@@NOESETH TNOPTN 'B' AP )@@G@@ . BATCH MODE? @C@@@@ SZ DEMAND . YEAQ )@@G@@S @E@@@@ TNOPTN 'A' . TEST FOR A OPTION AR )@@G@@@E@@@@ SNZ AUTOREC . SET AUTO FLAG @E@@@@AS )@@G@@ TZ AUTOREC . IF AUTO THEN @E@@@@ AT )@@G@@ SZ ADSAVE . ZERO ADSAVE @A@@@@ SZAU )@@G@@ LENGTH @A@@@@ DL A4,TPFIMG @A@@@@AV )@@G@@ DS A4,INTBL @E@@@@ DS A4,OUTBL AW )@@G@@ . SET TPF$ IN OUTBL @E@@@@ DS A4,FRMIMG AX )@@G@@. IN ASG IMAGE TOO. @E@@@@ TNOPTN 'I' . I AY )@@G@@OPTION? @C@@@@ J NOSP . YES AZ )@@G@@@A@@@@ L,U A0,INTBL @A@@@@ L,U A1,0BA )@@G@@1 @E@@@@ LMJ X10,INFOR1 . INFOR INFO TO BB )@@G@@INTBL @E@@@@ J NOSPECF . NO FILED SPEC BC )@@G@@@E@@@@ L A1,INTBL+2 . GET ELMT NAME @E@@@@BD )@@G@@ TNE A1,BLANKS . IS IT BLANK? @E@@@@ BE )@@G@@ S A1,DOPTI . INPUT IS DATAFILE. @E@@@@ TOBF )@@G@@PTN 'U' . U OPTION? @C@@@@ J BG )@@G@@ NONOTU . NOPE @E@@@@ TZ DOPTI BH )@@G@@ . INPUT DATA FILE? @E@@@@ SNZ DOPTO . OUBI )@@G@@TPUT MUST BE TOO @C@@@@ J UOPT . BJ )@@G@@@C@@@@NONOTU L,U A1,02 . SPEC2 @C@@@@ DL BK )@@G@@ A4,TPFIMG . GET TPF$ @E@@@@ DS A4,FRMIMG BL )@@G@@ . SET IN ASG IMAGE. @E@@@@ L,U A0,OUTBL BM )@@G@@. GET OUTTABLE @C@@@@ LMJ X10,INFOR1 . SCANBN )@@G@@ @C@@@@ J NOSP2 . NOSPEC @E@@@@ BO )@@G@@ L A1,OUTBL+2 . GET OUT ELMT NAME @E@@@@ TNBP )@@G@@E A1,BLANKS . IS IT BLANK? @E@@@@ SNZ DBQ )@@G@@OPTO . OUT IS DATAFILE @A@@@@UOPT L,U A0,IBR )@@G@@NTBL @C@@@@ TNZ DOPTI . IS INPT @E@@@@BS )@@G@@ TZ DOPTO . OR OUT DATA? @E@@@@ BT )@@G@@ SNZ DOPT . SET D OPTION @E@@@@ LMBU )@@G@@J X10,PFS . PROG FILE SEARCH @E@@@@ L,S1 A0,BV )@@G@@INTBL+9 . GET SYMB SUBTYPE @C@@@@ S,S1 A0,OUTBL+BW )@@G@@9 . SET @C@@@@ L A0,INTBL+11 . GET DBX )@@G@@ATE @C@@@@ S A0,OUTBL+11 . SET IT. @A@@@@ BY )@@G@@ DL A0,INTBL @E@@@@ TZ AUTOREC BZ )@@G@@ . AUTORECOVERY? @^@@@@ FIELDATA . @I@@@@AUTOI DLCA )@@G@@ A0,('ED$TB ') . GET ED CB )@@G@@@^@@@@ ASCII . @A@@@@ DS A0,EDIN CC )@@G@@@A@@@@ LA A0,INTBL+10 @A@@@@ SA A0,CCD )@@G@@OPIN+3 @E@@@@ TZ AUTOREC . AUTORECOVERY? CE )@@G@@ @E@@@@ SZ COPIN+3 . TREAT AS DATA FILE CF )@@G@@@C@@@@ L,U A0,33 . SET TO 22 WRDS@C@@@@ TZCG )@@G@@ DOPT . IF DATAFILE @C@@@@ S,H2 A0,COPIN+5CH )@@G@@ . STORE IT @A@@@@ LX,U X9,INTBL @C@@@@ CI )@@G@@ LMJ X10,CYLSET . @E@@@@ TOPTN 'X' CJ )@@G@@ . X OPTION? @A@@@@ SZ REEXIT CK )@@G@@ @G@@@@ LMJ X10,OPNI . OPEN INPUT ON GIVENCL )@@G@@ FILE @E@@@@ SNZ OK . NOT AT END OF FICM )@@G@@LE @E@@@@ LMJ X10,IDMSG . PRINT ID LINE. CN )@@G@@@E@@@@ LMJ X10,MAILQ . ANY MAIL? @E@@@@CO )@@G@@ SZ WMAIL . NO MAIL WAITING @E@@@@ CP )@@G@@ TNZ AUTOREC . AUTORECOVERY? @A@@@@ J CQ )@@G@@ EDIT1 @E@@@@ SZ AUTOREC . CLCR )@@G@@EAR FLAG @G@@@@ TYP E110,L110 . TYPE 'CS )@@G@@AUTO RECOVERY' @C@@@@ J EDIT1 . GOCT )@@G@@ EDIT @]@@@@NOSP . @E@@@@ L A0,FQOPT . P-CU )@@G@@Q OPTION FLAG @G@@@@ TE,U A0,2 . WAS EITHCV )@@G@@ER P OR Q SPEC? @E@@@@ J $+3 . YECW )@@G@@S, ONE WAS @I@@@@ SNZ OUTFIL . OUTPUT FCX )@@G@@IELDATA IF I BUT NO P OR Q @G@@@@ SNZ FQOPT CY )@@G@@ . AS IF P OPTION WERE SPEC @C@@@@ L,U A1,01 CZ )@@G@@ . SET INDEX @C@@@@ L,U A0,OUTBL . SET DA )@@G@@OUTBL @C@@@@ LMJ X10,INFOR1 . SCAN @C@@@@ DB )@@G@@ J PCERR . NONE @E@@@@ J IONCDC )@@G@@ARD . I OPTION ON CARD @I@@@@NELR . DD )@@G@@ .RETURN HERE IF NOT X OPT AND ELMT NOT FOUND. @C@@@@ LR,U DE )@@G@@ R1,014 . COPY 12 WRDS @C@@@@ LA A1,(1,INTBLDF )@@G@@) . INTBL @C@@@@ LA A0,(1,OUTBL) . TO OUTBL DG )@@G@@@C@@@@ BT A0,0,*A1 . DO IT @E@@@@ TYDH )@@G@@P E35,L35 . INPUT MODE ASSUMED @E@@@@ L DI )@@G@@ A0,OPTN . GET OPTION WORD @E@@@@ OR A0,BDJ )@@G@@ITS('Z'-'I') . OR IN I OPTION @E@@@@ S A1,OPTN DK )@@G@@ . RESTORE OPTION WORD @E@@@@IONCARD L A1,OUTBL+2 DL )@@G@@. IS OUT DATA? @C@@@@ TE A1,BLANKS . ? DM )@@G@@ @C@@@@ J $+3 . NO @E@@@@ DN )@@G@@ SNZ DOPTO . SET OUTPUT D OPTION @E@@@@ SNDO )@@G@@Z DOPT . AND D OPTION @E@@@@ SZ RC DP )@@G@@ . SET TO CYCLE 0. @E@@@@ TZ AUTODQ )@@G@@REC . AUTO OPTION? @E@@@@ J AUTOI DR )@@G@@ . DO AN AUTO @G@@@@ SZ OK DS )@@G@@ . SIGNIFIES AT END OF FILE @E@@@@ TOPTN 'X' DT )@@G@@ . X OPTION? @A@@@@ SZ REEXIT DU )@@G@@@A@@@@ LMJ X10,LABEL @E@@@@ LMJ X10,IDMSGDV )@@G@@ . PRINT ID LINE. @E@@@@ S R10,WMAIL DW )@@G@@ . MAIL MAYBE WAITING @A@@@@ J INPUT2 DX )@@G@@@C@@@@ . COME HERE IF ONE SPEC FIELD AND NO OPTION U @I@@@@NOSP2 L DY )@@G@@ A1,DOPTI . DATA FILE INPUT? ED010830 DZ )@@G@@@I@@@@ TOPTN 'R' . AND NOT READ-ONLY MODE? EA )@@G@@ ED010840 @I@@@@ JNZ A1,UPDATA . U IT EB )@@G@@ ED010850 @E@@@@ TNOPTN 'C' EC )@@G@@ . C OPTION SET? @E@@@@ J UPOPT ED )@@G@@ . DON'T SET R OPTION @I@@@@ L A0,OPTN . GEEE )@@G@@T OPTION WORD ED010870 @E@@@@ OR A0,BEF )@@G@@ITS('Z'-'R') . OR IN R OPTION @E@@@@ S A1,OPTN EG )@@G@@ . RESTORE OPTION WORD @G@@@@ TYP E41,L41 EH )@@G@@ . TELL HIM NO CORRECTIONS @C@@@@ J UOPT EI )@@G@@ . TREAT AS U @E@@@@UPDATA SNZ DOPTO . SET DATAEJ )@@G@@ OUT OPTION @G@@@@ TYP E112,L112 . U OPTION ASSUMEK )@@G@@ED FOR DATAFILE @I@@@@UPOPT L A0,OPTN . GET OPTIEL )@@G@@ONS ED010890 @I@@@@ OR A0,BITS('ZEM )@@G@@'-'U') . OR IN U OPTION ED010900 @I@@@@ S EN )@@G@@ A1,OPTN . RESTORE OPTIONS ED010910 EO )@@G@@@I@@@@ J UOPT . GO DO U STUFF EP )@@G@@ ED010940 @C@@@@BEG2 L A0,(+IOERR,ENDINF) EQ )@@G@@@A@@@@ TG,U A1,46 @A@@@@ J IOERER )@@G@@R @^@@@@ J BEG1@G@@@@ . NO SPEC FIELD. ASSUMEES )@@G@@ HE WANTS AN ELEMENT IN TPF$. ASK FOR THE NAME. @E@@@@SKDUMY L ET )@@G@@ X10,X8 . PRESERVE X10 @]@@@@NOSPECF . @E@@@@ EU )@@G@@ DL A0,PROGNAM . ASK FOR ELTNAME @C@@@@ DSEV )@@G@@ A0,IMBUF . @C@@@@ L A0,PROGNAMEW )@@G@@+2 . @C@@@@ S A0,IMBUF+2 . EX )@@G@@@E@@@@ SZ COUNT . CLEAR COUNT @C@@@@EY )@@G@@ S X10,X8 . SAVE X10@E@@@@ L,H1 EZ )@@G@@ A7,TREADSEQ+1 . GET EOF ADDRESS @E@@@@ L,U A0,OFA )@@G@@END . REPLACE WITH END @E@@@@ S,H1 A0,TREADSEFB )@@G@@Q+1 . PUT EOF ADDRESS @E@@@@ LMJ X10,LTYPEIN FC )@@G@@ . READ FILENAME @E@@@@ S,H1 A7,TREADSEQ+1 . PUFD )@@G@@T EOF ADDRESS @E@@@@ LMJ X10,GET2 . GET AN EFE )@@G@@LEMENT NAME @E@@@@ DL A0,FIMBUF . GET ELEMENT NFF )@@G@@AME @E@@@@ TNE A0,BLANKS . BLANK NAME? FG )@@G@@@E@@@@ J SKDUMY . YES ASK AGAIN @E@@@@FH )@@G@@ DS A0,INTBL+2 . PUT IN PF PACKET @I@@@@ FI )@@G@@ DL A0,TPFIMG . ASSUFJ )@@G@@ME @E@@@@ DS A0,INTBL . PUT IN PF PACKET FK )@@G@@@G@@@@ S,H1 R10,INTBL+5 . SET TO SYMBOLIC ELEMNT FL )@@G@@ @E@@@@ S,S1 R10,INTBL+9 . SET TO ELT FM )@@G@@@E@@@@ L A0,BITS('Z'-'U') . SET U FLAG @G@@@@FN )@@G@@ OR A0,OPTN . OR IN PRESENT OPTIONS FO )@@G@@@C@@@@ S A1,OPTN . @E@@@@ SNFP )@@G@@Z ABSPEC . SET ABSENT SPEC FLAG @C@@@@ J FQ )@@G@@ 1,X8 . @^@@@@ FIELDATA . @A@@@@TPFIMGFR )@@G@@ 'TPF$ ' . TPF$ @A@@@@ED1 '@ASG,T ED$TA,F///800' FS )@@G@@@I@@@@CATB '@CAT,VG ED$TB,F///800' FT )@@G@@ ED010960 @I@@@@USETB '@USE ED$TB,ED$TB&' . 2 FU )@@G@@ ED020210 @I@@@@ASGBT '@ASG,T ED$TB,F///80FV )@@G@@0' . ED010970 @I@@@@ED2A '@FW )@@G@@ASG,ADX ED$TB .' 817TM068 FX )@@G@@@^@@@@ ASCII . @]@@@@ELMERR . @C@@@@ E$DIT FY )@@G@@ FTAB . @E@@@@ E$MSG E1 FZ )@@G@@ . ELEMENT ... @E@@@@ E$FD2 INTBL+2 . ELGA )@@G@@EMENT NAME @A@@@@ E$MSGR . NOT FOUND ... @^@@@@ GB )@@G@@ E$DITX . @C@@@@ FTYPE FIMBUF,9 . GC )@@G@@@E@@@@ TZ ABSPEC . ABSENT SPEC FIELDS? @E@@@@GD )@@G@@ J NELR . ENTER INPUT MODE @I@@@@ GE )@@G@@ TNOPTN 'C' . C OPTION MEANS ENTER INPUT MODE IF NO GF )@@G@@EL @E@@@@ J NELR . YES, ENTER INPUT MODE. GG )@@G@@@C@@@@ J OEND . NO, EXIT. @]@@@@PFERR . GH )@@G@@@E@@@@ TYP E101,L101 . NOT A PROGRAM FILE @A@@@@GI )@@G@@ J RECTST @A@@@@ . AUTO FILE NOT ASSIGNED ERROGJ )@@G@@R @G@@@@AUTOERR TYP E102,L102 . TYPE 'NO AUTO FILEGK )@@G@@' @C@@@@ J ERXT . @G@@@@GL )@@G@@PCERR TYP E103,L103 . PROCESSOR CALL SYNTAX ERROR GM )@@G@@@E@@@@ J OEND . ERROR EXIT @C@@@@GN )@@G@@E101 'FILE NOT PROGRAM FILE FORMAT ' @A@@@@L101 EQU GO )@@G@@ $-E101 @E@@@@E103 'ERROR READING PROCESSOR CALL STATEMEGP )@@G@@NT' . @C@@@@L103 EQU $-E103 . @I@@@@GQ )@@G@@E102 'AUTO FILE BAD OR NONEXISTANT' . GR )@@G@@817TM070 @C@@@@L102 EQU $-E102 . @]@@@@GS )@@G@@PFS . @C@@@@ ER PFS$ . @E@@@@GT )@@G@@ JZ A2,0,X10 . A2=0:FIND MADE @^@@@@ GU )@@G@@ TNE,U A2,2@E@@@@ J IOERR . A2=2:IOEGV )@@G@@RR @A@@@@ TZ DOPTI @A@@@@ J GW )@@G@@ 0,X10 . RETURN@C@@@@ TNE,U A2,1 . GX )@@G@@ @G@@@@ J ELMERR . A2=1:NO ELEMENT FOUGY )@@G@@ND @I@@@@ J PFERR . OTHERWISE:PROGZ )@@G@@GRAM FILE UNDEFINED @C@@@@CYLSET . . HA )@@G@@ . @G@@@@ L,S4 RC,8,X9 . GET MOST CURREHB )@@G@@NT CYCLE @E@@@@ TNZ CYCS . CYCLEHC )@@G@@ SPECIFIED? @E@@@@ J 0,X10 . NO,RETURN HD )@@G@@ @G@@@@ TNZ,H1 REL . RELATIVE CYCLE GIVHE )@@G@@EN? @C@@@@ LA,H2 RC,REL . NO @G@@@@HF )@@G@@ TP REL . RELATIVE CYCLE NEGATIVE? HG )@@G@@@C@@@@ ANA,XH2 RC,REL . YES @A@@@@ L,HH )@@G@@S4 A0,8,X9 @A@@@@ ANU,S6 A0,8,X9 @I@@@@HI )@@G@@ TG A0,RC . IS REQUESTED CYCLE> MOST RECENHJ )@@G@@T CYCLE? @I@@@@ TG A1,RC . IS REQUESTEDHK )@@G@@ CYCLE< OLDEST CYCLE? @E@@@@ J CYLERR HL )@@G@@ . YES,ERROR @E@@@@ J 0,X10 . HM )@@G@@NO,RETURN @]@@@@CYLERR . @A@@@@ TYP E104,L104 HN )@@G@@ @A@@@@ J RECTST @C@@@@E104 'CYCLEHO )@@G@@ NUMBER OUT OF RANGE.' @A@@@@L104 EQU $-E104 HP )@@G@@@]@@@@ . @/ @E@@@@. INFOR* RES 46 . INFOR HQ )@@G@@TABLE @E@@@@ENDINF RES 1 . END OF INFOR HR )@@G@@TABLE @E@@@@INFOR1 S X11,X11SAV . INDEX IN INFOR TABLEHS )@@G@@@C@@@@ S A1,R5 . @A@@@@ L,HT )@@G@@U A2,0,X11 @E@@@@ TNG A2,ENDINF . ENHU )@@G@@D OF INFOR? @G@@@@ TE,S2 A1,0,X11 . FOLLOWINHV )@@G@@G FROM WANTED FIELD? @C@@@@ J 0,X10 . NOHW )@@G@@ @A@@@@ L A2,(1,0) @C@@@@ S HX )@@G@@ A2,5,A0 . TYPE @^@@@@ SZ 4,A0@^@@@@ HY )@@G@@ SZ 8,A0@^@@@@ SZ 9,A0@A@@@@ SZ HZ )@@G@@ 10,A0 @A@@@@ SZ 11,A0 @E@@@@ IA )@@G@@ SZ QUAL . ZERO QUALIFIER @A@@@@ DLIB )@@G@@ A4,BLANKS @E@@@@ DS A4,2,A0 . BLIC )@@G@@ANK ELEMENT NAME @E@@@@ DS A4,6,A0 . BLANK VEID )@@G@@RSION @E@@@@ S A4,FCY . CLEAR F CYCLE IE )@@G@@ @E@@@@ S A4,KEY1 . CLEAR KEYS IF )@@G@@@E@@@@ S A4,KEY2 . CLEAR KEYS @^@@@@IG )@@G@@ FIELDATA . @G@@@@ DL A6,('ED$S1 ') IH )@@G@@ . USE WILL BE DONE @E@@@@ TE,U A1,1 II )@@G@@ . IS IT SPEC 1 @G@@@@ DL A6,('ED$S2 ') .IJ )@@G@@ NO USE SPEC2 USE NAME @E@@@@ DS A6,0,A0 IK )@@G@@ . PUT IN TABLE @E@@@@INFOR2 L,S3 A1,0,X11 . SUIL )@@G@@B FIELD # @I@@@@ L,S4 A3,0,X11 . TO DETECIM )@@G@@T .ELEMENT ED011000 @G@@@@ L,S6 A2,0,*X11 IN )@@G@@ . # OF WORDS IN SUBFIELD @C@@@@ TNE,U A2,1IO )@@G@@ . 1 WORD @C@@@@ J INFOR3 . YEIP )@@G@@S @C@@@@ TE,U A2,2 . 2 WORDS @C@@@@ IQ )@@G@@ J SYNERR . NO @A@@@@ DL A4,0IR )@@G@@,*X11 @^@@@@ J $+3 @A@@@@INFOR3 L A4,0IS )@@G@@,X11 @A@@@@ L A5,BLANKS @^@@@@ J IT )@@G@@ $,A1@E@@@@ JMGI X11,INFR31 . QUALIFIER IU )@@G@@ @C@@@@ JMGI X11,INFR32 . FILENAME@C@@@@ IV )@@G@@ JMGI X11,INFR33 . F-CYCLE @C@@@@ JMGI X11,IW )@@G@@INFR34 . KEY1 @C@@@@ JMGI X11,INFR35 . KEIX )@@G@@Y2 @E@@@@ JMGI X11,INFOR4 . ELEMENT NAME IY )@@G@@@E@@@@ JMGI X11,INFR41 . VERSION NAME @C@@@@IZ )@@G@@ JMGI X11,FRP0 . CYCLE @A@@@@ JMGI JA )@@G@@ X11,INFOR5 @E@@@@INFR31 DS A4,QUAL . STORE QUALIFJB )@@G@@IER @C@@@@ J INFOR5 . CONTINUE @E@@@@JC )@@G@@INFR32 DS A4,FRMIMG . AND IN ASG TABLE @C@@@@ JD )@@G@@ J INFOR5 . CONT @C@@@@INFR33 S A4,FJE )@@G@@CY . STORE FCY @C@@@@ J INFOR5 . CONT JF )@@G@@ @C@@@@INFR34 S A4,KEY1 . KEY1 @C@@@@ JG )@@G@@ J INFOR5 . CONT @C@@@@INFR35 S A4,KJH )@@G@@EY2 . KEY2 @C@@@@ J INFOR5 . CONT JI )@@G@@ @A@@@@INFOR4 DS A4,2,A0 @E@@@@ TE,U A3,JJ )@@G@@'.' . CHECK FOR .ELMENT @C@@@@ J INFOR5 JK )@@G@@ . NO @E@@@@ DL A4,INTBL . GET PJL )@@G@@REVIOUS. @C@@@@ DS A4,OUTBL . STORE. JM )@@G@@@^@@@@ J $+2 @A@@@@INFR41 DS A4,6,A0 JN )@@G@@@A@@@@INFOR5 L A1,R5 @A@@@@ L,U A2,0JO )@@G@@,X11 @E@@@@ TNG A2,ENDINF . END OF TABLE? JP )@@G@@ @E@@@@ TE,S2 A1,0,X11 . END OF FIELD? JQ )@@G@@@^@@@@ J $+2 @E@@@@ J INFOR2 JR )@@G@@ . GET NEXT SUBFIELD @A@@@@ S X11,X11SAV @E@@@@JS )@@G@@ E$DIT FTAB . ENTER EDIT MODE @C@@@@ JT )@@G@@ E$MSG USEIMG . @E@@@@ E$FD2 A6 JU )@@G@@ . INSERT USE NAME @C@@@@ E$CHAR ',' JV )@@G@@ . INSERT ,@E@@@@ TNZ QUAL . QUAILIFIJW )@@G@@ER @E@@@@ J NOQUAL . SKIP OVER * JX )@@G@@ @E@@@@ DL A0,QUAL . GET QUALIFIER JY )@@G@@@E@@@@ LMJ X11,EFD2$ . PACK 12 CHARACTERS @C@@@@JZ )@@G@@ E$CHAR '*' . GET * @E@@@@NOQUAL E$FD2 KA )@@G@@ FRMIMG . GET FILENAME @C@@@@ L A0,FCY KB )@@G@@ . F CYCLE @C@@@@ TNE A0,BLANKS . NONE?KC )@@G@@ @E@@@@ J AKEY1 . GO TO FIRST KEY. KD )@@G@@@E@@@@ E$CHAR '(' . BUILD F-CYCLE @C@@@@KE )@@G@@ E$FD1 FCY . F CYCLE @E@@@@ E$CHAR KF )@@G@@ ')' . END IT HERE @C@@@@AKEY1 L A0,KEY1 KG )@@G@@ . GET KEY1 @E@@@@ TNE A0,BLANKS . IS ITKH )@@G@@ BLANK? @E@@@@ J AKEY2 . YES, GO TO KI )@@G@@KEY2 @C@@@@ E$CHAR '/' . FOR KEY @E@@@@KJ )@@G@@ E$FD1 KEY1 . INSERT KEY(READ) @C@@@@AKEY2 KK )@@G@@ L A0,KEY2 . KEY2 ? @C@@@@ TNE A0,BLANKSKL )@@G@@ . BLANK ? @C@@@@ J APER . GO TOKM )@@G@@ END. @E@@@@ L A0,KEY1 . WAS THERE A RKEY? KN )@@G@@@C@@@@ TE A0,BLANKS . ? @C@@@@ J KO )@@G@@ $+3 . YES @E@@@@ E$CHAR '/' KP )@@G@@ . GET ANOTHER / @E@@@@ E$CHAR '/' KQ )@@G@@ . AND YET ANOTHER @E@@@@ E$FD1 KEY2 . GEKR )@@G@@T WRITE KEY @E@@@@APER E$SKIP 2 . SPACE TWKS )@@G@@O COLS @G@@@@ E$CHAR '.' . PERIOD TO TERMKT )@@G@@INATE CSF$ SCAN @E@@@@ E$SKIP 2 . 2 MORE SKU )@@G@@PACES @G@@@@ E$FD2 (' . REJECTED') . GET REJECTED MKV )@@G@@ESS IN CASE @^@@@@ E$DITX . @^@@@@ ASCII KW )@@G@@ . @I@@@@ L A0,(14,FIMBUF) . APPLY USE TO QUAL*KX )@@G@@FILENAME/RKEY/WKEY @^@@@@ ER CSF$@C@@@@ L KY )@@G@@ A2,A0 . @E@@@@ DL A0,A6 KZ )@@G@@ . TEST FOR ASSIGN @^@@@@ TNOASG . @I@@@@ LA )@@G@@ J BDKYS . LOCAL LOCLB )@@G@@AL @G@@@@ L A1,R5 . GET SPEC FILED NUMBELC )@@G@@R @G@@@@ TNE,U A1,1 . GOINT TO TRY TLD )@@G@@O ASSIGN @E@@@@ SNZ EDS1A . TRIED TO ASLE )@@G@@SIGN SPEC 1 @C@@@@ TNE,U A1,2 . @E@@@@LF )@@G@@ SNZ EDS2A . TRIED TO ASSIGN SPEC 2 @^@@@@ LG )@@G@@ E$DIT FTAB@E@@@@ E$MSG ASGIMG . ASSIGN ILH )@@G@@MAGE @E@@@@ TOPTN 'O' . EXCLUSIVE USE?LI )@@G@@ @C@@@@ J NEXUSE . NO @C@@@@ LJ )@@G@@ E$CHAR 035 . @E@@@@NEXUSE E$SKIP 2 LK )@@G@@ . INSERT 2 BLANKS @E@@@@ E$FD2 A6 LL )@@G@@ . INSERT USE NAME @^@@@@ E$DITX . @E@@@@ LM )@@G@@ L A0,(4,FIMBUF) . ASSIGN IT @C@@@@ ERLN )@@G@@ CSF$ . @E@@@@ JZ A0,OKASG LO )@@G@@ . SUCCESSFUL ASSIGN? @E@@@@ L A5,A0 LP )@@G@@ . SAVE FAC BITS @I@@@@ AND A0,(044300100200) . LQ )@@G@@CHECK TO SEE IF FATAL ED0110 @G@@@@ JZ A1,ALR )@@G@@SGERR . READ OR WRITE KEYS MAY NOT BE @E@@@@ DL LS )@@G@@ A0,A6 . WAS IT ONLY A WARNING@^@@@@ TNOASG . LT )@@G@@@E@@@@ J ISASG . ASSIGNED OK @E@@@@LU )@@G@@ J ASGERR . ERROR NOT ASSIGNED @I@@@@ISASG LV )@@G@@ TEP,U A5,0200 . DISABLED FILE TEST ED0110LW )@@G@@40 @I@@@@ J DISABF . YES LX )@@G@@ ED011050 @E@@@@ANUSE TEP,U A5,0100000 . FILY )@@G@@LE IN USE BIT @C@@@@ J FINUSE . YES LZ )@@G@@@]@@@@BDKYS . @I@@@@ L,S2 A7,FRMIMG+6 . GET READMA )@@G@@-WRITE KEY INDICATOR ED011070 @G@@@@ L A1,R5 MB )@@G@@ . GET SPEC FIELD NUMBER @C@@@@ TNE,U A1,2MC )@@G@@ . SPEC 2? @C@@@@ J PASGO . YEMD )@@G@@S @I@@@@ TOP,U A7,2 . INPUT FILE READ LOCME )@@G@@K? ED011090 @C@@@@ J PASUOP . NMF )@@G@@OPE @E@@@@ TYP E108,L108 . SEND MSG MG )@@G@@@E@@@@ J FREOEND . FREE FILE AND END @G@@@@MH )@@G@@PASUOP TNOPTN 'U' . U OPTION INPUT IS ALSO OUTPUT MI )@@G@@@I@@@@PASGO TOP,U A7,4 . OUTPUT FILE WRITE LOCK? MJ )@@G@@ ED011110 @C@@@@ J OKASG2 . NOPE MK )@@G@@@E@@@@ TYP E109,L109 . TELL HIM SO @C@@@@ML )@@G@@FREOEND E$DIT FTAB . @G@@@@ E$MSG MM )@@G@@ FREIMG . FREE OF ASSIGNED FILE @E@@@@ E$MN )@@G@@FD2 A6 . INSERT USE NAME @^@@@@ E$DITX MO )@@G@@ . @E@@@@ L A0,(2,FIMBUF) . FREE FILE MP )@@G@@@C@@@@ ER CSF$ . @E@@@@ J MQ )@@G@@ OEND . MIGHT AS WELL END @E@@@@OKASG DS MR )@@G@@ A6,FRMIMG . SOTE FILENAME @C@@@@ L,U A0,FMS )@@G@@RMIMG . DO FACIL@C@@@@ ER FACIL$ . MT )@@G@@ @C@@@@OKASG2 DL A0,BLANKS . GET BLANKS @C@@@@ MU )@@G@@ DS A0,QUAL . TO QUAL @E@@@@ S A0,KEY1 MV )@@G@@ . GET THE KEYS @C@@@@ S A0,KEY2 MW )@@G@@ . NOW TOO. @E@@@@ S A0,FCY . AND THE F-CMX )@@G@@YCLE @E@@@@ L,S1 A0,FRMIMG+6 . GET EQUIPMENT MY )@@G@@CODE @E@@@@ JZ A0,NOEQUI . NO EQUIPMENT? MZ )@@G@@@G@@@@ SSL A0,3 . SHIFT OFF LOWER DIGIT NA )@@G@@ @E@@@@ TE,U A0,3 . FASTRAND FORMAT? NB )@@G@@@E@@@@ J NOTFAS . NOPE-CAN'T HANDLE IT@C@@@@NC )@@G@@ L X11,X11SAV . RESTORE X11@G@@@@ J ND )@@G@@ 1,X10 . RETURN SPEC FIELD IN INTBL @E@@@@ASGERR A$NE )@@G@@EDIT ETAB . REOPEN EDIT$ PACKET @G@@@@ A$EMSG NF )@@G@@ E107 . 'FILE IN FIELD ...' @E@@@@ A$NG )@@G@@EDECV R5 . SPEC FIELD NUMBER @C@@@@ A$EMSGR NH )@@G@@ . CANNOT BE ASSIGNED @E@@@@ A$EOCTF 12,A5 NI )@@G@@ . GIVE BITS @^@@@@ A$EDITX . @G@@@@ L NJ )@@G@@ A0,(0116,IMBUF) . GET ERROR MSG PACKET @E@@@@ NK )@@G@@ ER APRINT$ . ASCII PRINT @C@@@@ J NL )@@G@@ OEND . EXIT @C@@@@NOTFAS A$EDIT ETAB NM )@@G@@ . @E@@@@ A$EMSG E107 . FILE INN )@@G@@N SPEC FIELD@C@@@@ A$EDECV R5 . NUMBER @G@@@@NO )@@G@@ A$EMSG E105 . NOT ON FASTRAND FORMAT DEVICE NP )@@G@@@^@@@@ A$EDITX . @C@@@@ TYP IMBUF,15 NQ )@@G@@ . @C@@@@ J OEND . @C@@@@NR )@@G@@E105 ' NOT ON FASTRAND FORMAT DEVICE&' . @C@@@@NOEQUI A$EDIT NS )@@G@@ ETAB . @E@@@@ A$EMSG E107 NT )@@G@@ . FILE IN SPEC FIELD@C@@@@ A$EDECV R5 . NNU )@@G@@UMBER @G@@@@ A$EMSG E106 . NOT ON FASTRAND FONV )@@G@@RMAT DEVICE @^@@@@ A$EDITX . @C@@@@ TYP IMBUNW )@@G@@F,15 . @C@@@@ J OEND . NX )@@G@@ @C@@@@E106 ' HAS NO EQUIPMENT ASSIGNED TO IT.&' .@I@@@@DISABFNY )@@G@@ A$EDIT ETAB . ED011NZ )@@G@@130 @I@@@@ A$EMSG E107 . FILE IN SPEC FIELDOA )@@G@@ ED011140 @I@@@@ A$EDECV R5 . NOB )@@G@@UMBER ED011150 @I@@@@ A$EMSG E11OC )@@G@@1 . IS DISABLED ED011160 @I@@@@ OD )@@G@@ A$EDITX . ED011OE )@@G@@170 @C@@@@ TYP IMBUF,15 . @E@@@@ OF )@@G@@ J ANUSE . CHECK OTHER BITS @C@@@@FINUSE A$OG )@@G@@EDIT ETAB . @E@@@@ A$EMSG E107 OH )@@G@@ . FILE IN FIELD ? @E@@@@ A$EDECV R5 OI )@@G@@ . FIELD NUMBER @G@@@@ A$EMSG E114 . IOJ )@@G@@N USE BY ANOTHER RUN @^@@@@ A$EDITX . @C@@@@ OK )@@G@@ TYP IMBUF,10 . TYPE MSG@E@@@@ J BDKYOL )@@G@@S . CHECK OTHER BITS @I@@@@E111 ' DISABLED--ACCEPTEDOM )@@G@@&' . 817TM072 @]@@@@ . @/ ON )@@G@@@C@@@@FRP0 SZ A2 . @C@@@@ SZ OO )@@G@@ A3 . @I@@@@ L A1,R5 OP )@@G@@ . GET NUMBER 817TM074 @E@@@@ TEOQ )@@G@@,U A1,1 . IS IT FIELD 1 @G@@@@ J OR )@@G@@ INFOR5 . NO-DON'T READ CYCLE WORD @E@@@@ S OS )@@G@@ X11,CYCS . SET CYCLE SPECIFIED. @^@@@@ FIELDATAOT )@@G@@ . @C@@@@ LDSL A3,6 . @E@@@@ OU )@@G@@ TLE,U A3,'9'+1 . IS IT NUMERIC @C@@@@ TLOV )@@G@@E,U A3,'0' . @C@@@@ J $+2 OW )@@G@@ . @C@@@@ J FRP2 . YES OX )@@G@@@C@@@@ TNE,U A3,'-' . MINUS @C@@@@ LNAOY )@@G@@ A3,A3 . YES @C@@@@ TE,U A3,'+' OZ )@@G@@ . @G@@@@ JP A3,NUMERR . SHOULD PA )@@G@@HAVE BEEN A NUMBER @C@@@@ SA,H1 A3,REL . PB )@@G@@ @C@@@@FRP1 . @^@@@@ PC )@@G@@ SZ A3 @E@@@@ LDSL A3,6 . GET CHPD )@@G@@ARACTER @C@@@@ TNE,U A3,' ' . SPACE?@A@@@@PE )@@G@@ J INFOR5 @E@@@@ TLE,U A3,'9'+1 PF )@@G@@ . IS IT NUMERIC @C@@@@ TLE,U A3,'0' PG )@@G@@ . @C@@@@ J NUMERR . NO @C@@@@PH )@@G@@FRP2 . . @G@@@@ MSI,U PI )@@G@@ A2,10 . CONVERT FD TO BINARY @C@@@@ ANAPJ )@@G@@,U A3,060 . @C@@@@ AA A2,A3 PK )@@G@@ . @A@@@@ S,H2 A2,REL @C@@@@ PL )@@G@@ J FRP1 . @A@@@@ASGIMG '@ASG,A&' . ASPM )@@G@@SIGN IMAGE @A@@@@USEIMG '@USE &' . USE IMAGE @E@@@@FREIMG '@PN )@@G@@FREE & ' . FREE FILE @C@@@@QUAL ' PO )@@G@@ ' . QUALIFIER @A@@@@KEY1 ' ' . KEY1 PP )@@G@@@A@@@@KEY2 ' ' . KEY2 @A@@@@FCY ' ' . PQ )@@G@@F-CYCLE @^@@@@ ASCII . @]@@@@LABEL . @E@@@@ PR )@@G@@ L A1,(0500100,1) . IMAGE CONTROL WORD @C@@@@ S PS )@@G@@ A1,EDOUT+10 . @C@@@@ LA A1,EDSDF PT )@@G@@ . @C@@@@ SA A1,IMAGE . PU )@@G@@@A@@@@ LA,U A0,EDOUT @C@@@@ LMJ X11,PV )@@G@@SDFO . @A@@@@ J IOERRA @E@@@@PW )@@G@@ SNZ WINHIB . INHIBIT WRITE @C@@@@ PX )@@G@@ SZ ICW . @A@@@@ J 0,X1PY )@@G@@0 @E@@@@E107 'FILE IN FIELD & CANNOT BE ASSIGNED: &' PZ )@@G@@ @A@@@@E108 'INPUT FILE READ LOCK' @C@@@@L108 EQU QA )@@G@@ $-E108 . @C@@@@E109 'OUTPUT FILE WRITE LOCK' QB )@@G@@. @C@@@@L109 EQU $-E109 . @C@@@@QC )@@G@@E110 'AUTO RECOVERY' . @C@@@@L110 EQU QD )@@G@@ $-E110 . @I@@@@E112 'U OPTION ASSUMED FOR DATAQE )@@G@@FILE.' ED011220 @I@@@@L112 EQU QF )@@G@@ $-E112 . ED011230 @I@@@@QG )@@G@@E113 'AUTO COMMAND CANNOT BE USED. AUTO FILE IN USE.' . QH )@@G@@ED011240 @I@@@@L113 EQU $-E113 . QI )@@G@@ ED011250 @C@@@@E114 ' IN USE BY ANOTHER RUN &'QJ )@@G@@ . @C@@@@TABTBLS . INITIAL TAB TABLE SEE SET$ PROC @C@@@@QK )@@G@@I DO TABLNT , + TAB$(I) . @]@@@@SAVEX11 +0@]@@@@QL )@@G@@$(0) . @G@@@@AREA RES 132 . AREA TABLE FORQM )@@G@@ EDIT80, @G@@@@ . IMAG80,CQN )@@G@@HAN80, AND TAB80 @E@@@@ + 0777777777777 . BQO )@@G@@UFFER WORD @E@@@@EDIT80 EQUF AREA,,Q1 . TYPEIN IMAGE EXPQP )@@G@@ANDED @E@@@@IMAG80 EQUF AREA,,Q2 . IMAGE FROM FILE EXPANDQQ )@@G@@ED @E@@@@CHAN80 EQUF AREA,,Q3 . CHANGE IMAGE EXPANDED QR )@@G@@@C@@@@TAB80 EQUF AREA,,Q4 . TABULATION @C@@@@ + QS )@@G@@ 0 . @^@@@@INTBL RES 12 @A@@@@QT )@@G@@OUTBL . OUTPUT PFI TABLE @A@@@@ DO 12 , + 0 . 12 WORDS OQU )@@G@@F ZERO@^@@@@ FIELDATA . @A@@@@FEDS1A '@FREE,RA ED$S1.' QV )@@G@@ @A@@@@FEDS2A '@FREE,RA ED$S2.' @A@@@@UNUSE1 '@FREE,AQW )@@G@@ ED$S1.' . @A@@@@UNUSE2 '@FREE,A ED$S2.' . @A@@@@FRSAVTQX )@@G@@ '@FREE ED$TB. ' @I@@@@FRSAVA '@FREE ED$TA. ' QY )@@G@@ . * LOCAL @E@@@@ASGDI '@ASG,T QZ )@@G@@ED$DI,F///600' . ASSIGN DITTO FILE @I@@@@$(1) . THIS CAN BE RA )@@G@@IN I BANK ED011270 @A@@@@FREPR RB )@@G@@ '@FREE &' .@I@@@@ASGPR '@ASG,CG &,F2///2000&' . SRC )@@G@@YM PRINTFILE 817TM079 @E@@@@BRKPR '@BRKPT RD )@@G@@&' . BREAKPOINT PRINTFILE @^@@@@SYMPR '@SYM &,,PR&' RE )@@G@@@E@@@@SYMCP '@SYM &,,CP&' . PUNCH ALT PUNCH FILE @^@@@@RF )@@G@@ ASCII . @C@@@@HEADPA 'H,,1, ' . APRTCA$ CONTROL WRG )@@G@@ORD @I@@@@$(0) . BACK TO D BANK RH )@@G@@ ED011290 @G@@@@ECHOIN '****' . MUSTRI )@@G@@ PRECEDE EDIT14 FOR E OPTION @C@@@@EDIT14* RES 33 . SPACE FOR PRRJ )@@G@@INT FILES @C@@@@IMAGE* RES 33 . SPACE FOR PRINT FILES @C@@@@RK )@@G@@IMSAV RES 33 . SAVE AREA FOR IMAGE. @A@@@@ILSTCD RES RL )@@G@@ 33 . @A@@@@ICW EQU EDIN+10 @A@@@@OCW RM )@@G@@ EQU EDOUT+10 @E@@@@CL EQUF OUTBL+8,,S2 RN )@@G@@ . CYCLE LIMIT @E@@@@LC EQUF OUTBL+8,,S4 . LARO )@@G@@TEST CYCLE @E@@@@CC EQUF OUTBL+8,,S6 . CYCLE RP )@@G@@COUNT @E@@@@DC1 EQUF EDIN+10,,S3 . DELETED THIS URQ )@@G@@PDATE @E@@@@DC EQUF EDIN+10,,S4 . CYCLE DELETED RR )@@G@@@E@@@@AC1 EQUF EDIN+10,,S5 . ADDED THIS UPDATE @E@@@@RS )@@G@@AC EQUF EDIN+10,,S6 . ACTUAL CYCLE @A@@@@IL RT )@@G@@ EQUF EDIN+10,,S2 @G@@@@CONCODE EQUF EDIN+10,,S1 RU )@@G@@ . CONTROL CODE FOR LABEL IMAGES @]@@@@ . @/ @C@@@@$(0),DLIT LIRV )@@G@@T . SPECIAL LITERALS TO DBANK @E@@@@$(1) LIT RW )@@G@@ . LITERALS TO I-BANK@]@@@@ . @/ @I@@@@ICON + RX )@@G@@ DBKEND-IBKEND,BASE*/6++UPDATE . VALIDITY CONSTANT 817TM082 @I@@@@RY )@@G@@BEGIN* . I-BANK ENTRY POINT ******************** RZ )@@G@@817TM083 @G@@@@ SX X11,SAVEX11 . $P SAVE X11 FOSA )@@G@@R RETURN @I@@@@ J INITIAL . YES, GO SB )@@G@@INITIALIZE 817TM086 @I@@@@ TYP E55,L55 SC )@@G@@ . PRINT BANKS DON'T MATCH 817TM087 @I@@@@ ERSD )@@G@@ ERR$ . GO TO ERROR$ 817TM088 SE )@@G@@@E@@@@EDIT1 SZ INPUTF . EDIT MODE @E@@@@SF )@@G@@ TZ WMAIL . HAVE WE DONE A MAIL?@E@@@@ SG )@@G@@ LMJ X10,MAILQ . LOOK AND SEE @E@@@@ SZSH )@@G@@ WMAIL . WELL, WE TRIED @E@@@@ TZ SI )@@G@@ BRIEF2 . BRIEF PRINT? @^@@@@ J NXRQSJ )@@G@@@A@@@@ TYP EDITS,1 @]@@@@NXRQ . @E@@@@ SK )@@G@@ ON INSTAT . STATISTICS @G@@@@ L,SL )@@G@@H1 A0,STATBUF+5 . INCR TRANSACTION COUNT @C@@@@ SM )@@G@@ A,U A0,1 . @C@@@@ S,H1 A0,SSN )@@G@@TATBUF+5 . @A@@@@ OFF INSTAT @C@@@@SO )@@G@@ ON TIMIT . @C@@@@ A$EDIT SP )@@G@@ ETAB . @C@@@@ A$EMSG ('T=&MS&') SQ )@@G@@ . @C@@@@ ER TIME$ . @C@@@@SR )@@G@@ AN A0,A15+1 . @C@@@@ A$EDECV SS )@@G@@ . CONVERT TO DECIMAL @^@@@@ A$EMSGR . @^@@@@ ST )@@G@@ A$EDITX . @C@@@@ TYP IMBUF,5 . SU )@@G@@@C@@@@ OFF TIMIT . @G@@@@ SZSV )@@G@@ BRKSET . CLEAR BREAK KEY INDICATOR @G@@@@ SW )@@G@@ SZ QUICKP . RESET QUICK INDICATOR @G@@@@SX )@@G@@ SZ LNPRT . ZERO LINE NUMBER PRINTING SY )@@G@@@G@@@@ TZ ONSITE . ONSITE PRINTOUT LAST REQUSZ )@@G@@EST? @E@@@@ J ONSREC . YES- FINISH IT TA )@@G@@@E@@@@ TZ LKMAIL . LOK FOR MAIL? @C@@@@TB )@@G@@ LMJ X10,MAILQ . YES @I@@@@ JGD TC )@@G@@ R14,TIMNEX . DON'T TEST EXCEPT EVERY SO MANY 817TM091 @I@@@@TD )@@G@@ L,U R14,5 . TRY 10 TE )@@G@@817TM092 @I@@@@ L,U A0,DITBUF . TF )@@G@@ 817TM093 @I@@@@ L A1,(1,026) TG )@@G@@ . WORD 026 817TM094 @I@@@@ ER TH )@@G@@ PCT$ . GET CURRENT ACCUMULATED TIME 817TM095 @I@@@@TI )@@G@@ L A0,DITBUF . GET IT TJ )@@G@@817TM096 @I@@@@ MSI,U A0,10 . GET 10 9THS OFTK )@@G@@ IT 817TM097 @I@@@@ DSA A0,36 TL )@@G@@ . 817TM098 @I@@@@ DI,U TM )@@G@@ A0,9 . DIVIDE 817TM099 @I@@@@TN )@@G@@ TNG A0,MAXCP . STILL LESS THAN MAXCP TO )@@G@@817TM100 @I@@@@ J TIMNEX . TIME NOT EXCEETP )@@G@@DED 817TM101 @I@@@@ L A4,MAXCP TQ )@@G@@ . GET MAX TIME 817TM102 @I@@@@ AN TR )@@G@@ A4,DITBUF . SUBTRACT CURRENT 817TM103 @I@@@@TS )@@G@@ TYP E56,L56 . CPU TIME REMAINING: TT )@@G@@817TM104 @I@@@@ J PRNTTIM . GO PRINT WITH TU )@@G@@CPT COMMAND 817TM105 @I@@@@TIMNEX . TV )@@G@@ 817TM106 @A@@@@ LMJ TW )@@G@@ X10,TYPEIN @C@@@@ ON TIMIT . TX )@@G@@@C@@@@ ER TIME$ . @E@@@@ S TY )@@G@@ A0,A15+1 . SAVE IN A16 @C@@@@ OFF TZ )@@G@@ TIMIT . @I@@@@ SZ EDCT UA )@@G@@ . EDCT=NUMBER OF CHARACTERS LOOKED AT @G@@@@ LMJ UB )@@G@@ X10,GET . RETURNS COMMAND WORD IN A1 @E@@@@ TZUC )@@G@@ COUNT . NO COMMAND? @C@@@@ J UD )@@G@@ COMFND . @E@@@@ TZ EOFMOD UE )@@G@@ . EOF MODE? @G@@@@ J COMERR . IFUF )@@G@@ IN EOF MODE ILLEGAL COM @G@@@@ J INPUT2 UG )@@G@@ . OTHERWISE CHANGE MODE TO INPUT @G@@@@COMFND L A0,EDIT80 UH )@@G@@ . GET FIRST CHARACTER IN LINE @E@@@@ TLE,U A0,'UI )@@G@@9'+1 . IS IT NUMERIC @C@@@@ TLE,U A0,'0' UJ )@@G@@ . @C@@@@ J $+2 . NOPE UK )@@G@@@E@@@@ J LINENUM . YES, TREAT AS GO TO@E@@@@UL )@@G@@ L,Q1 A2,EDIT14 . GET FIRST CHAR @G@@@@ UM )@@G@@ TNE,U A2,'+' . SKIP N LINES FORWARD @C@@@@UN )@@G@@ J GOPL . YES @E@@@@ TNE,U UO )@@G@@ A2,'-' . SKIP N LINES BACK? @C@@@@ J GOMIUP )@@G@@N . YES @G@@@@$(3),COMLST1 . 1UQ )@@G@@ AND 2 LETTER COMMANDS @^@@@@ FIELDATA . @C@@@@ UR )@@G@@ + '@@L',LOC1 . LOCATE @E@@@@ + '@@QUS )@@G@@',QUICK1 . QUICK PRINT @C@@@@ + '@@P',PRINUT )@@G@@T1 . PRINT @C@@@@ + '@@F',FIND1 . FIND UU )@@G@@@E@@@@ + '@RP',RPSET . SET REPEAT @E@@@@UV )@@G@@ + '@LC',LC1 . LOCATE AND COUNT @E@@@@ UW )@@G@@ + '@LN',TLIN . LINE NUMBER @E@@@@ + UX )@@G@@ '@FC',FC1 . FIND AND COUNT @E@@@@ + UY )@@G@@ '@UP',UPOPS . U OPTION SET @C@@@@ + '@PLUZ )@@G@@',PRLIM . PLIMIT @C@@@@ + '@ON',ON1 . ONVA )@@G@@ @G@@@@ ON EDMODE . THESE COMMANDS FOR EVB )@@G@@D COMPAT @C@@@@ + '@@V',VER1 . VERIFY @C@@@@VC )@@G@@ + '@BR',BRIEF1 . BRIEF @C@@@@ + VD )@@G@@ '@@T',TOP1 . TOP @C@@@@ + '@@H',HEAD1 VE )@@G@@ . HEAD @E@@@@ + '@@O',OUTPT1 . LIKE P+ IN EDIVF )@@G@@T @G@@@@ + '@GO',GT1 . JUST THE NUM DOES THVG )@@G@@IS IN EDIT @E@@@@ + '@@N',NEX1 . LIKE + OR - NUVH )@@G@@M @C@@@@ OFF EDMODE . @E@@@@ALTRS1VI )@@G@@ . THE COMMANDS WHICH ALTER THE FILE FOLLOW: @C@@@@ ONVJ )@@G@@ EDMODE . @C@@@@ + '@@B',APP1VK )@@G@@ . BOTTOM @C@@@@ OFF EDMODE . VL )@@G@@@C@@@@ + '@@C',CHANG1 . CHANGE @C@@@@ + VM )@@G@@ '@@D',DEL1 . DELETE @C@@@@ + '@@I',INPUVN )@@G@@T1 . INSERT @E@@@@ + '@IB',IBIN . INSERT VO )@@G@@BEFORE @C@@@@ + '@IN',INLINE1 . INLINE @C@@@@VP )@@G@@ + '@@R',RETYP1 . RETYPE @C@@@@ + VQ )@@G@@ '@@A',APP1 . APPEND @C@@@@LST1LEN EQU $-COMLST1 VR )@@G@@ . @G@@@@$(1) L,U R1,LST1LEN . GET COMMAND LVS )@@G@@IST LENGTH @E@@@@ L A2,(1,0) . GET INDVT )@@G@@EX @E@@@@ SE,H1 A1,COMLST1,*A2 . SEARCH PRINT VU )@@G@@ @E@@@@ J NOFNDC . NO FIND VV )@@G@@@G@@@@ L,U A0,ALTRS1 . GET ALTER COMMAND ADDR VW )@@G@@ @G@@@@ TNG,U A0,COMLST1,A2 . DOES IT ALTER THE FIVX )@@G@@LE? @E@@@@ LMJ X11,ALTRSF . YES-CHECK IT VY )@@G@@ @E@@@@ L,H2 A2,COMLST1-1,A2 . GET JUMP ADDRESS VZ )@@G@@@E@@@@ J 0,A2 . GO TO IT @C@@@@WA )@@G@@$(3),COMLST2 . 3 OR MORE CHARS @C@@@@ + WB )@@G@@ 'LOC',LOC1 . LOCATE @C@@@@ + 'LNQ',LNQ1 WC )@@G@@ . LNQUICK@E@@@@ + 'QUI',QUICK1 . QUICK PRINT WD )@@G@@ @C@@@@ + 'PRI',PRINT1 . PRINT @C@@@@ WE )@@G@@ + 'LNP',LNP1 . LNPRINT@C@@@@ + 'FINWF )@@G@@',FIND1 . FIND @C@@@@ + 'LAS',LAST1 . LAWG )@@G@@ST @G@@@@ + 'EXI',FIEXIT . EXIT - APPLY CORRWH )@@G@@ECTION @G@@@@ + 'OMI',OEND . OMIT-END NO CWI )@@G@@ORRECTIONS @E@@@@ + 'TAB',TAB1 . TAB CHAWJ )@@G@@R @E@@@@ + 'SET',SET1 . SET TABS WK )@@G@@ @G@@@@ + 'CLI',CLIMIT1 . CLIMIT (FOR CHANGWL )@@G@@E COMMAND) @G@@@@ + 'PLI',PRLIM . PLIMIT (FOR PWM )@@G@@RINT COMMAND) @C@@@@ + 'CSF',CSFIT1 . CSF WN )@@G@@@C@@@@ + 'LCH',LCHAR1 . LCHAR @C@@@@ + WO )@@G@@ 'MSC',MSCHAR1 . MSCHAR @C@@@@ + 'PUN',PUNCWP )@@G@@H1 . PUNCH @C@@@@ + 'AUT',AUTO1 . AUTO WQ )@@G@@@C@@@@ + 'TYP',SETTP . TYPE @C@@@@ + WR )@@G@@ 'TCH',SETTCF . TCHAR @C@@@@ + 'SPL',SPLIWS )@@G@@T1 . SPLIT @C@@@@ + 'SIT',SITE1 . SITE WT )@@G@@@C@@@@ + 'LNS',LNSITE1 . LNSITE @C@@@@ + WU )@@G@@ 'CPU',CPUNCH . CPUNCH @E@@@@ + 'OPR',OPR1WV )@@G@@ . OPR MESSAGE @C@@@@ + 'OFF',OFF1 WW )@@G@@ . OFF @C@@@@ + 'TIM',TIME1 . TIME @C@@@@WX )@@G@@ + 'CPT',CPT1 . CPT @C@@@@ + WY )@@G@@ 'SCA',SCALE1 . SCALE @C@@@@ + 'CCH',CCHAR1 WZ )@@G@@ . CCHAR @C@@@@ + 'EXC',EXC1 . EXCHAR @C@@@@XA )@@G@@ + 'MAI',MAIL1 . MAIL @C@@@@ + XB )@@G@@ 'MAX',MAXLN1 . MAXLINE@C@@@@ + 'STA',STATUS1 XC )@@G@@ . STATUS @C@@@@ + 'CAS',CASE1 . CASE @E@@@@XD )@@G@@ DO DEBUG , + 'WZZ',WAIT1 . WAITE @A@@@@ DO DEXE )@@G@@BUG**DUMP , + 'DUM',DUMP1 . @C@@@@ DO DEBUG , + 'TRA',TRACE1 XF )@@G@@ . @C@@@@ ON EDMODE . @C@@@@XG )@@G@@ + 'VER',VER1 . VERIFY @C@@@@ + XH )@@G@@ 'BRI',BRIEF1 . BRIEF @C@@@@ + 'TOP',TOP1 XI )@@G@@ . TOP @E@@@@ + 'END',OEND . LIKE OMIT EXITXJ )@@G@@ @C@@@@ + 'HEA',HEAD1 . HEAD @C@@@@ XK )@@G@@ + 'GOT',GT1 . GOTO @C@@@@ + 'NEXXL )@@G@@',NEX1 . NEXT @C@@@@ + 'OUT',OUTPT1 . OUXM )@@G@@TPUT @C@@@@ + 'SAV',CLIMIT1 . SAVE @C@@@@ XN )@@G@@ OFF EDMODE . @E@@@@ALTRS2 . THE FOLLOWINXO )@@G@@G COMMANDS ALTER THE FILE: @A@@@@ ON EDMODE XP )@@G@@ @C@@@@ + 'BOT',APP1 . BOTTOM @^@@@@ XQ )@@G@@ OFF EDMODE @I@@@@ + 'DOC',DOCUMENT1 . XR )@@G@@ 817TM110 @C@@@@ + 'CHA',CHANXS )@@G@@G1 . CHANGE @C@@@@ + 'DEL',DEL1 . DELETE XT )@@G@@@C@@@@ + 'INS',INPUT1 . INSERT @C@@@@ + XU )@@G@@ 'INL',INLINE1 . INLINE @C@@@@ + 'RET',RETYXV )@@G@@P1 . RETYPE @C@@@@ + 'APP',APP1 . APPEND XW )@@G@@@E@@@@ + 'INP',INPUT2 . INPUT MODE @C@@@@XX )@@G@@ + 'DIT',DITTO1 . DITTO @C@@@@ + XY )@@G@@ 'SEQ',SEQ1 . SEQ.ID @C@@@@ + 'ADD',ADD1 XZ )@@G@@ . ADD @C@@@@ + 'MOV',MOVEF1 . MOVE @C@@@@YA )@@G@@LST2LEN EQU $-COMLST2 . @^@@@@ ASCII YB )@@G@@ . @E@@@@$(1),NOFNDC L,U R1,LST2LEN . GET LIST LENGTH YC )@@G@@@C@@@@ L,U A0,1 . @E@@@@ COYD )@@G@@NVAF EDIT14,IMBUF . ASCII TO FD @C@@@@ L YE )@@G@@ A2,(1,0) . @G@@@@ L,H1 A3,IMBUF YF )@@G@@ . GET FIRST THREE CHARS @E@@@@ SE,H1 A3,COMLST2YG )@@G@@,*A2 . SEARCH PRINT @E@@@@ J COMERR YH )@@G@@ . NO FIND @G@@@@ L,U A0,ALTRS2 . ADYI )@@G@@DRESS FOR ALTER COMMALDS @E@@@@ TNG,U A0,COMLST2,A2 YJ )@@G@@ . IS IT ONE OF THEM @E@@@@ LMJ X11,ALTRSF . YEYK )@@G@@S-GO CHECK @E@@@@ L,H2 A2,COMLST2-1,A2 . GET ADDYL )@@G@@RESS @E@@@@ J 0,A2 . JUMP TO IT YM )@@G@@ @]@@@@COMERR . @A@@@@ TYP E8,L8 @^@@@@YN )@@G@@ J NXRQ@E@@@@ALTRSF TOPTN 'R' . ISYO )@@G@@ IT READ ONLY @E@@@@ J 0,X11 . NOPE RETYP )@@G@@URN @E@@@@ TYP E41,L41 . TELL HIM SO YQ )@@G@@ @G@@@@ J 0,X11 . NOW RETURN AND DO ITYR )@@G@@ ANYWAY @C@@@@ ON DEBUG . @E@@@@YS )@@G@@WAIT1 LMJ X10,GET . GET NUMBER @E@@@@ YT )@@G@@ LMJ X10,BIN0 . CONVERT TO BINARY @E@@@@ TGYU )@@G@@,U A10,30000 . GREATER THAN 30 SECS@C@@@@ L,U YV )@@G@@ A10,30000 . LOAD 30 @C@@@@ L A1,A10 YW )@@G@@ . @C@@@@ ER TWAIT$ . @C@@@@YX )@@G@@ J NXRQ . @C@@@@ OFF YY )@@G@@ DEBUG . @C@@@@ ON DUMP YZ )@@G@@ . @E@@@@DUMP1 SLJ SITEDUMP . DUMP D BANK ZA )@@G@@ @C@@@@ J NXRQ . @C@@@@ ZB )@@G@@ OFF DUMP . @A@@@@ . @/ ID LINE PRINT ROUTZC )@@G@@INE. @^@@@@ FIELDATA . @E@@@@IDMSG E$DIT FTABZD )@@G@@ . START EDIT MODE @G@@@@ E$MSG LEVEL ZE )@@G@@ . START MESSAGE ED X.Y- @E@@@@ DO 1-EDMODE , E$FD1 ZF )@@G@@ ('IT@@@@') . CHANGE TO EDIT @I@@@@ TNZ DIDRLS ZG )@@G@@ . DID WE HAVE TO DO AN RLIST$ ED011420 @I@@@@ J ZH )@@G@@ IDREP . NO ED011430 ZI )@@G@@@I@@@@ E$CHAR 05 . INSERT A BLANK TO TELL HIMZJ )@@G@@ SO ED011440 @I@@@@IDREP E$MSGR . REST OF ZK )@@G@@MSG ED011460 @E@@@@TIMMSG ER TDATE$ ZL )@@G@@ . GET DATE AND TIME. @E@@@@ S A0,A4 .ZM )@@G@@ SAVE RESULT. @C@@@@ LMJ X11,EDAY1$ . ZN )@@G@@DATE @E@@@@ E$SKIP -3 . NO YEAR ZO )@@G@@@E@@@@ E$CHAR '-' . INSERT DASH @C@@@@ZP )@@G@@ E$TIME A4 . TIME @E@@@@ E$SKIP ZQ )@@G@@ -3 . NO SECONDS @E@@@@ E$MSGR ZR )@@G@@ . ...-(... @E@@@@ TOPTN 'I' ZS )@@G@@ . I OPTION? @E@@@@ J OLDCYC ZT )@@G@@ . NO, PRINT OLD CYCLE@E@@@@ E$CHAR ',' . NZU )@@G@@EW ONE- INSERT , @E@@@@OLDCYC E$DECV RC . REQUESZV )@@G@@TED CYCLE @E@@@@ TNOPTN 'I' . I OPTION? ZW )@@G@@ @E@@@@ J FIDCYC . YES, DONE ZX )@@G@@@E@@@@ E$CHAR ',' . INSERT A , @E@@@@ZY )@@G@@ TOPTN 'U' . U OPTION? @E@@@@ ZZ )@@G@@ J FIDCYC . NO, NO NEW CYCLE @E@@@@ L AA )@@G@@ A0,RC . PRESENT CYCLE @C@@@@ A,U AB )@@G@@ A0,1 . +1= NEW@I@@@@ TNE,U A0,63 AC )@@G@@ . CYCLE 63? ED011480 @I@@@@ L,S2 AD )@@G@@ A0,INTBL+8 . GET CYCLE LIMIT ED011490 @E@@@@AE )@@G@@ E$DECV . CONVERT TO DECIMAL FIELDATA AND INSERT@C@@@@FIDCYCAF )@@G@@ E$CHAR ')' . @C@@@@ LMJ X11,EDITXAG )@@G@@$ . TERM @^@@@@ ASCII . @E@@@@ FTAH )@@G@@YPE FIMBUF,5 . PRINT ID LINE @C@@@@ J 0,XAI )@@G@@10 . RETURN @A@@@@ . LINE COUNT ROUTINE AJ )@@G@@@E@@@@CLIN A$EDIT ETAB . START EDIT @C@@@@AK )@@G@@ LA A0,LCT . GET LINE COUNT @C@@@@ LMJ X11AL )@@G@@,AEDECV$ . CONVERT @C@@@@ A$ECHAR ':' AM )@@G@@ . @C@@@@ LMJ X11,AEDITX$ . TERM EDIT @E@@@@AN )@@G@@ TYP IMBUF,3 . LINE : ... @A@@@@ AO )@@G@@ J 0,X10 . RETURN @C@@@@TLIN LMJ X10,CLIN . GET CONAP )@@G@@V LCT @C@@@@ J NXRQ . ON TO NEXT @^@@@@AQ )@@G@@ . STATUS OF MODES @I@@@@CHARST 'TAB:& CCHAR:& LCHAR:& MSCHAR:& AR )@@G@@CLIMIT:& AUTO:& MAXLINE:&' 817TM113 @E@@@@CHARST2 'TABS:& TCHAAS )@@G@@R:& EXCHAR:& PLIMITS:& CASE:&' @I@@@@GENNST 'STA QUICK BRIEF NUMAT )@@G@@BER PCNTRL DSPLIT ' 817TM115 @I@@@@ 'XAU )@@G@@BRIEF SEQ LOOK EOF UNIMOD MEMORY ' 817TM116 AV )@@G@@@I@@@@LGENNST EQU $-GENNST . AW )@@G@@ 817TM117 @E@@@@STATUS1 SNZ STATUS . SET STATAX )@@G@@US @E@@@@ LMJ X10,GET . GET FIRST THINAY )@@G@@G @E@@@@ TNZ A1 . ANY MODES SPEC? AZ )@@G@@@C@@@@ J STCH . NO @E@@@@ E$BA )@@G@@DIT FTAB . FOR MODES PRINTOUT @C@@@@ J BB )@@G@@ TURN1+1 . @G@@@@STCH A$EDIT ETAB BC )@@G@@ . FOR SPECIAL CHAR PRINT @I@@@@ A$EMSG CHARST BD )@@G@@ . START STATUS STUFF 817TM121 @I@@@@ L BE )@@G@@ A0,THETAB . GET THE TAB CHAR 817TM122 BF )@@G@@@I@@@@ TNE,U A0,0777 . IF 077 THEN BG )@@G@@ 817TM123 @I@@@@ LMJ X11,NNO . ENNTER NBH )@@G@@NO 817TM124 @I@@@@ A$ECHAR . ENTER CBI )@@G@@HAR 817TM125 @I@@@@ A$BJ )@@G@@EMSGR . CONTINUE MSG 817TM126 BK )@@G@@@I@@@@ L A0,CONTCHAR . CONTINUTATION CHAR BL )@@G@@ 817TM127 @I@@@@ TNE,U A0,0777 . IF 077 TBM )@@G@@HEN 817TM128 @I@@@@ LMJ X11,NNO BN )@@G@@ . ENNTER NNO 817TM129 @I@@@@ A$BO )@@G@@ECHAR . ENTER CHAR 817TM130 BP )@@G@@@I@@@@ A$EMSGR . CONTINUE MSG BQ )@@G@@ 817TM131 @I@@@@ L A0,LOCHR . LOCATE CBR )@@G@@HAR 817TM132 @I@@@@ TNE,U A0,0777 BS )@@G@@ . IF 077 THEN 817TM133 @I@@@@ LMBT )@@G@@J X11,NNO . ENNTER NNO 817TM134 BU )@@G@@@I@@@@ A$ECHAR . ENTER CHAR BV )@@G@@ 817TM135 @I@@@@ A$EMSGR . CONTINUE MSG BW )@@G@@ 817TM136 @I@@@@ L A0,MSPCHR BX )@@G@@ . MASTER SPACE CHAR 817TM137 @I@@@@ TNBY )@@G@@E,U A0,0777 . IF 077 THEN 817TM138 BZ )@@G@@@I@@@@ LMJ X11,NNO . ENNTER NNO CA )@@G@@ 817TM139 @I@@@@ A$ECHAR . ENTER CHAR CB )@@G@@ 817TM140 @I@@@@ A$EMSGR . CONTINUCC )@@G@@E MSG 817TM141 @I@@@@ L CD )@@G@@ A0,SAVE2 . CHANGE LIMIT 817TM142 CE )@@G@@@I@@@@ A$EDECV . TO DECIMAL CF )@@G@@ 817TM143 @I@@@@ A$EMSGR . CONTINUE MSG CG )@@G@@ 817TM144 @I@@@@ L A0,AUTOTSTCH )@@G@@ . AUTO 817TM145 @I@@@@ A$CI )@@G@@EDECV . TO DECIMAL 817TM146 CJ )@@G@@@I@@@@ A$EMSGR . MAXLINE- CK )@@G@@ 817TM147 @I@@@@ L A0,SAVECL . MAXLINE CL )@@G@@ 817TM148 @I@@@@ A$EDECV . CM )@@G@@ 817TM149 @I@@@@ A$CN )@@G@@EDITX . 817TM150 CO )@@G@@@C@@@@ TYP IMBUF,33 . @I@@@@ A$CP )@@G@@EDIT ETAB . START ANOTHER EDIT 817TM152 CQ )@@G@@@I@@@@ A$EMSG CHARST2 . TABS: CR )@@G@@ 817TM153 @I@@@@ L,U X5,0 . 0 TO X5 CS )@@G@@ 817TM154 @I@@@@ SZ R5 CT )@@G@@ . ZERO R5 817TM155 @I@@@@GNXTBX L CU )@@G@@ X5,TAB80,X5 817TM156 CV )@@G@@@I@@@@ L,U A0,1 . +1 CW )@@G@@ 817TM157 @I@@@@ A A0,X5 . TAB CX )@@G@@ 817TM158 @I@@@@ TZ TAB80,X5 CY )@@G@@ . ZERO TAB 817TM159 @I@@@@ TGCZ )@@G@@,U A0,134 . OR GREATER THAN 132 817TM160 DA )@@G@@@I@@@@ L,U R5,-1 . SET R5 TO -1 DB )@@G@@ 817TM161 @I@@@@ L A6,A0 . SAVE TABDC )@@G@@ 817TM162 @I@@@@ TNZ R5 DD )@@G@@ . FIRST TIME? 817TM163 @I@@@@ J DE )@@G@@ F1STTM . YES 817TM164 DF )@@G@@@I@@@@ A$ECHAR ',' . INSERT , DG )@@G@@ 817TM165 @I@@@@ J $+2 . SKIP THEDH )@@G@@ NEXT INST 817TM166 @I@@@@F1STTM L,U R5,1 DI )@@G@@ . SET TO 1 817TM167 @I@@@@ A$DJ )@@G@@EDECV A6 . TO DECIMAL FIELDATA 817TM168 DK )@@G@@@I@@@@ L A0,R5 . GET IND DL )@@G@@ 817TM169 @I@@@@ JB A0,GNXTBX . GET NDM )@@G@@EXT TAB 817TM170 @I@@@@LSTTABX A$EMSGR . TRANS CDN )@@G@@HAR 817TM171 @I@@@@ L DO )@@G@@ A0,TRCHF . GET RANSPARENT CHAR 817TM172 DP )@@G@@@I@@@@ TNE,U A0,0777 . TURNED OFF? DQ )@@G@@ 817TM173 @I@@@@ LMJ X11,NNO . PRINT NODR )@@G@@NE 817TM174 @I@@@@ A$ECHAR . INSERT DS )@@G@@THE CHAR 817TM175 @I@@@@ A$DT )@@G@@EMSGR . EXC CHAR 817TM176 DU )@@G@@@I@@@@ L A0,CHGCHR . DV )@@G@@ 817TM177 @I@@@@ L A6,A0 . SAVE IN DW )@@G@@A6 817TM178 @I@@@@ TNE,U A0,0777 DX )@@G@@ . IF 077 THEN 817TM179 @I@@@@ LMDY )@@G@@J X11,NNO . INSERT NONE 817TM180 DZ )@@G@@@I@@@@ A$ECHAR . EA )@@G@@ 817TM181 @I@@@@ TNE,U A6,0777 . IF 077 TEB )@@G@@HEN 817TM182 @I@@@@ J PNONE EC )@@G@@ . PRINT NONE 817TM183 @C@@@@ A$ED )@@G@@ECHAR '=' . INSERT =@I@@@@ A$EOCTV NCHGCHR EE )@@G@@ . IS REALLY THIS CHAR 817TM185 @I@@@@ A$EF )@@G@@ECHAR '(' . CHAR IN PAREN 817TM186 EG )@@G@@@I@@@@ L A0,NCHGCHR . GET NEW CHAR EH )@@G@@ 817TM187 @I@@@@ A$ECHAR . IN ALPHEI )@@G@@A 817TM188 @I@@@@ A$ECHAR ')' EJ )@@G@@ . CHAR IN PAREN 817TM189 @I@@@@PNONE . EK )@@G@@ 817TM190 EL )@@G@@@A@@@@ A$EMSGR . PLIMITS @E@@@@ A$EDECV CPTLEM )@@G@@1 . FIRST COL LIM @G@@@@ A$ECHAR ',' EN )@@G@@ . SEPARATE PLIMITS WITH COMMA @E@@@@ A$EDECV CPTLEO )@@G@@2 . SECOND COL LIM @A@@@@ A$EMSGR . CASE EP )@@G@@ @E@@@@ TNZ CASEUP . UPPER CASE FLAG SET?EQ )@@G@@@E@@@@ J NORM . NO, NORMAL CASE @E@@@@ER )@@G@@ A$EFD2 ('UPPER ') . INSERT 'UPPER' @C@@@@ ES )@@G@@ J $+3 . @E@@@@NORM A$EFD2 ('NOET )@@G@@RMAL ') . INSERT 'NORMAL' @I@@@@ A$EDITX EU )@@G@@ 817TM191 @E@@@@ TYEV )@@G@@P IMBUF,33 . TYPE IT OUT @I@@@@ L EW )@@G@@ A0,(1,ILSTCD) . LAST CARD IMAGE 817TM193 @I@@@@EX )@@G@@ L A1,(1,GENNST) . STATUS COMMAND EY )@@G@@817TM194 @I@@@@ L,U R1,LGENNST . LENNGTH EZ )@@G@@ 817TM195 @I@@@@ BT A0,,*A1 FA )@@G@@ . TRANSFER 817TM196 @E@@@@ L,U FB )@@G@@ A0,LGENNST . 4 WORD IMAGE @C@@@@ S A0,LFC )@@G@@LSTCD . @E@@@@ SNZ RLSTCD . SEFD )@@G@@T INDICATOR @E@@@@ J NXRQ . GO READ FE )@@G@@IT @I@@@@NNO L A0,('NONE') . NONE FF )@@G@@ 817TM200 @I@@@@ A,U X11,1 FG )@@G@@ . SKIP PAST RETURN 817TM201 @I@@@@ J FH )@@G@@ AEFD1$ . INSERT IT 817TM202 @A@@@@FI )@@G@@ . TURNS MODES ON AND OFF @E@@@@ON1 L A8,R10 FJ )@@G@@ . TURN FLAG ON @C@@@@ J TURN0 FK )@@G@@ . @E@@@@OFF1 SZ A8 . TURNN FLAG OFFFL )@@G@@ @C@@@@TURN0 SZ STATUS . @E@@@@TURN1 FM )@@G@@ LMJ X10,GET . GET NEXT WORD @C@@@@ S FN )@@G@@ A1,A6 . SAVE @E@@@@TURN2 AND A1,(077777FO )@@G@@7777700) . ISOLATE 1ST CHAR@E@@@@ JZ A2,TURN3 FP )@@G@@ . NONE IN UPPER @E@@@@ SSL A1,6 . SFQ )@@G@@HIFT OFF CHAR @E@@@@ J TURN2 . LOOK AGFR )@@G@@AIN @E@@@@TURN3 L,U R1,TURNTL . TABLE LENGTH FS )@@G@@ @C@@@@ L X6,(1,0) . PTR @E@@@@ FT )@@G@@ SE,S1 A1,TURNT,*X6 . LOOK FOR KEY WORD @C@@@@ JFU )@@G@@ TURNER . NO FIND@G@@@@ AN,U X6,1 FV )@@G@@ . DECR TO CORRECT ADDRESS @E@@@@ TZ STATFW )@@G@@US . STAUS COMMAND? @C@@@@ J STATPR FX )@@G@@ . YES @G@@@@ S,S6 A8,TURNT,X6 . SET FLAGFY )@@G@@ APPROPRIATELY @E@@@@TURN4 LMJ X10,GET . ANFZ )@@G@@Y MORE MODES? @E@@@@ TNZ STATUS . STATUS CGA )@@G@@OMMAND? @C@@@@ J TURN5 . NO @G@@@@GB )@@G@@ DL A2,IMBUF . RESTORE FIRST 3 WORDS OF FIMBUF GC )@@G@@@C@@@@ DS A2,FIMBUF . @C@@@@ L GD )@@G@@ A2,IMBUF+2 . @C@@@@ S A2,FIMBUF+GE )@@G@@2 . @E@@@@TURN5 S A1,A6 . SAVE MODGF )@@G@@E WORD @G@@@@ JZ A1,TURDUN . IGNORE ANYGG )@@G@@THING ELSE @E@@@@ J TURN2 . INSPECT GH )@@G@@IT @E@@@@TURNER TYP E47,L47 . INCORRECT MODGI )@@G@@E NAME@C@@@@ J RECTST . @I@@@@STATPRGJ )@@G@@ . 817TM2GK )@@G@@06 @E@@@@ E$FD1 A6 . MODE NAME GL )@@G@@@C@@@@ E$SKIP 1 . SKIP 1 @C@@@@ TNGM )@@G@@Z,S6 TURNT,X6 . SET? @C@@@@ J STOFF GN )@@G@@ . OFF @^@@@@ FIELDATA . @C@@@@ E$MSG GO )@@G@@ ('ON&&&&') . ON @C@@@@ J STON GP )@@G@@ . @C@@@@STOFF E$MSG ('OFF&&&') . OFF @^@@@@GQ )@@G@@ ASCII . @I@@@@STON E$SKIP 2 . SKGR )@@G@@IP TWO SPACES 817TM208 @G@@@@ DL A0,FGS )@@G@@IMBUF . SAVE FIRST 3 WORDS OF FIMBUF @C@@@@ DS GT )@@G@@ A0,IMBUF . @C@@@@ L A0,FIMBUF+2 GU )@@G@@ . @C@@@@ S A0,IMBUF+2 . @E@@@@GV )@@G@@ J TURN4 . ANY MORE? @I@@@@TURDUNGW )@@G@@ TNZ STATUS . STATUS COMMAND? 817TM2GX )@@G@@10 @I@@@@ J NXRQ . EXIT GY )@@G@@ 817TM211 @I@@@@ E$DITX . EXIT EDIT MODE GZ )@@G@@ 817TM212 @E@@@@ FTYPE FIMBHA )@@G@@UF,22 . TYPE OUT LINE @I@@@@ J NXRQ HB )@@G@@ . EXIT 817TM214 @^@@@@$(0) . MODE HC )@@G@@TABLE @C@@@@F630 FORM 6,30 . @]@@@@HD )@@G@@TURNT .@^@@@@ FIELDATA . @E@@@@QUICKON EQUF $,,HE )@@G@@S6 . QUICK PRINT MODE @C@@@@ F630 'Q',0 HF )@@G@@ . @E@@@@BRIEF2 EQUF $,,S6 . BRIEF MHG )@@G@@ODE @C@@@@ F630 'B',REGBRIEF . @G@@@@HH )@@G@@ALLLN EQUF $,,S6 . PRINT LINE NUMBERS MODE HI )@@G@@@I@@@@ F630 'N',LNLINES . NUMBER HJ )@@G@@ ED011510 @G@@@@RECPCNT EQUF $,,S6 . RECOGNIHK )@@G@@ZE PRINT CONTROL IMAGES @C@@@@ F630 'P',0 . PCNHL )@@G@@TRL @G@@@@SPLITDEL EQUF $,,S6 . DELETE LINES WHEN SHM )@@G@@PLITTING @C@@@@ F630 'D',SPLITDLI . DSPLIT @G@@@@HN )@@G@@BRIEF3 EQUF $,,S6 . BRIEF FOR SPLIT AND ADD HO )@@G@@@C@@@@ F630 'X',SUPBRIEF . XBRIEF @C@@@@TYPESEQ EHP )@@G@@QUF $,,S6 . SEQ @I@@@@ F630 'S',SEQSOHQ )@@G@@U . ED011530 @E@@@@LKMAIL EQHR )@@G@@UF $,,S6 . LOOK FOR MAIL @C@@@@ F630 HS )@@G@@ 'L',0 . @E@@@@MEMORY EQUF $,,S6 HT )@@G@@ . REMEMBER MODES? @C@@@@ F630 'M',MEMSTD . MEMHU )@@G@@ORY @E@@@@EOFMOD EQUF $,,S6 . EOF MODE FLAG HV )@@G@@@C@@@@ F630 'E',EOFMODE . @E@@@@UNIMOD EQHW )@@G@@UF $,,S6 . UNISCOPE MODE @E@@@@ F630 HX )@@G@@ 'U',1 . NORMALLY ON FOR RSI @C@@@@TURNTL EQU $-THY )@@G@@URNT . @^@@@@ ASCII . @^@@@@$(1) . RETURHZ )@@G@@N TO I-BANK @^@@@@ . CSF$ THE IMAGE @E@@@@CSFIT1 L A0,EIA )@@G@@DIL . IMAGE LENGTH @E@@@@ AN,U A0,1 IB )@@G@@ . MINUS ONE WORD @E@@@@ CONVAF EDIT14+1,EDIT14 IC )@@G@@ . CONVERT ASCII TO FD @E@@@@ L A3,EDIL . EDID )@@G@@IL*2/3 => EDIL @C@@@@ LSSL A3,1 . IE )@@G@@@C@@@@ DSF,U A3,3 . @C@@@@ S IF )@@G@@ A4,EDIL . @C@@@@ L,U A0,EDIT14 IG )@@G@@ . @E@@@@ LXI A0,EDIL . SET UP CIH )@@G@@SF$ CALL @C@@@@ ER CSF$ . CSF IT @C@@@@II )@@G@@CSFRET S A0,EDIT14 . SAVE AO @C@@@@ A$EDIT IJ )@@G@@ ETAB . SAVE AO@C@@@@ A$EMSG E3S IK )@@G@@ . STATUS:@E@@@@ A$EOCTV EDIT14 . VALUE OF A0 IL )@@G@@ @^@@@@ A$EDITX . @C@@@@ TYP IMBUF,6 IM )@@G@@ . @C@@@@ J NXRQ . IN )@@G@@@^@@@@ . SET LOCATE CHARACTER @E@@@@LCHAR1 LMJ X10,GET3 IO )@@G@@ . GET CHAR @E@@@@ LMJ X11,FIXCHR . SEIP )@@G@@E IF @ OR BLANK @C@@@@ S A1,LOCHR . IQ )@@G@@@C@@@@ J NXRQ . @A@@@@FIXCHR . IR )@@G@@FIX CHAR TO @ OR BLANK @E@@@@ TZ A1 . FIIS )@@G@@ND ANY CHARS @E@@@@ J 0,X11 . YES -NOTIT )@@G@@HING TO DO @I@@@@ L,U A1,0777 . LOAD ILLEGAL CIU )@@G@@HAR OR END INDICATOR @G@@@@ TNE A1,DELIM IV )@@G@@ . IS THE DELIMITER 0777 @G@@@@ J 0,X11 IW )@@G@@ . YES-LEAVE ILLEGAL CHAR @E@@@@ SZ A1 IX )@@G@@ . CLEAR A1 TO @ @C@@@@ J 0,X11 IY )@@G@@ . RETURN @C@@@@ . SET MASTERSPACE IN COLUMN 1 CHARACTER IZ )@@G@@@E@@@@MSCHAR1 LMJ X10,GET3 . GET CHAR @E@@@@JA )@@G@@ TNZ A1 . NO CHAR? @I@@@@ JB )@@G@@ L,U A1,0777 . USE NONEXISTANT CODE ED0115JC )@@G@@70 @C@@@@ S A1,MSPCHR . @C@@@@ JD )@@G@@ J NXRQ . @E@@@@EXC1 LMJ X10,JE )@@G@@GET3 . GET FIRST ITEM @I@@@@ TNE A1,NCHGCHRJF )@@G@@ . IS IT THE PRESENT NEW CHANGE CHAR @G@@@@ L JG )@@G@@ A1,CHGCHR . MUST HAVE MEANT REDEFINITION @E@@@@ JH )@@G@@ LMJ X11,FIXCHR . SEE IF @ OR BLANK @G@@@@ S JI )@@G@@ A1,CHGCHR . THIS IS CHAR TO LOOK FOR @E@@@@ JJ )@@G@@ LMJ X10,GET . GET NEXT FIELD @C@@@@ TNJK )@@G@@Z A1 . @I@@@@ L,U A1,0676767JL )@@G@@ . NONEXISTANT CODE AGAIN ED011610 @I@@@@ ANJM )@@G@@D,U A1,070707 . QUICK AND DIRTY FD TO OCTAL ED011630 JN )@@G@@@C@@@@ DSL A2,3 . @C@@@@ SSJO )@@G@@L A2,3 . @C@@@@ DSL A2,3 JP )@@G@@ . @C@@@@ SSL A2,3 . JQ )@@G@@@C@@@@ LDSL A2,6 . @C@@@@ S JR )@@G@@ A2,NCHGCHR . VOILA! @C@@@@ J NXRQ JS )@@G@@ . @C@@@@ . CASE COMMAND: SET OR CLEAR FLAG (CASEUP) JT )@@G@@@E@@@@CASE1 . SET LOWER-TO-UPPER-CASE ASCII CONVERSION FLAG, @E@@@@JU )@@G@@ . OR RESET NORMAL CASE FLAG (NO CONVERSION) @E@@@@ JV )@@G@@ LMJ X10,GET . GET UPPER OR NORMAL @C@@@@ TNJW )@@G@@E,U A1,032 . FD 'U'? @C@@@@ J UPCASE JX )@@G@@ . YES @E@@@@ TNE A1,UPPER . FD 'UPPJY )@@G@@ER'? @C@@@@ J UPCASE . YES @C@@@@JZ )@@G@@ TNE,U A1,023 . FD 'N'? @C@@@@ J KA )@@G@@ NORCASE . YES @E@@@@ TNE A1,NORMAL KB )@@G@@ . FD 'NORMAL'? @C@@@@ J NORCASE . YEKC )@@G@@S @E@@@@ TYP E4,L4 . TYPE ERROR MESSAGE KD )@@G@@@C@@@@ J NXRQ . CONTINUE@E@@@@UPCASE SNKE )@@G@@Z CASEUP . SET UPPER CASE FLAG @C@@@@ J KF )@@G@@ NXRQ . CONTINUE@G@@@@NORCASE SZ CASEUP KG )@@G@@ . CLEAR UPPER CASE FLAG @C@@@@ J NXRQ KH )@@G@@ . CONTINUE@^@@@@ . TRACE WITH SNOOPY @C@@@@ ON KI )@@G@@ DEBUG . @G@@@@TRACE1 L A0,TRACE KJ )@@G@@ . INVERT RECOGNIZE TRACE FLAG @C@@@@ SZ TRACE KK )@@G@@ . @C@@@@ JNZ A0,NXRQ . KL )@@G@@@C@@@@ SNZ TRACE . @C@@@@ J KM )@@G@@ NXRQ . @C@@@@ OFF DEBUG KN )@@G@@ . @A@@@@ . THIS ROUTINE SENDS MAIL @^@@@@ KO )@@G@@ FIELDATA . @E@@@@USEMF '@USE MF$$,&*ED$M&' . EDITKP )@@G@@*USERID @^@@@@ ASCII . @E@@@@MAIL1 SZ A5 KQ )@@G@@ . ZERO COUNT @E@@@@ LMJ X10,GET KR )@@G@@ . GET USERID @C@@@@ L R5,A1 KS )@@G@@ . SAVE IT @C@@@@TRYSM E$DIT FTAB . @G@@@@KT )@@G@@ L A0,(2,FREMF) . FREE ANY SCRAP LEFT AROUND KU )@@G@@@C@@@@ ER CSF$ . @E@@@@ E$KV )@@G@@MSG USEMF . @USE MF$$,EDIT*... @C@@@@ E$FD1 KW )@@G@@ R5 . @C@@@@ E$MSGR KX )@@G@@ . @C@@@@ E$DECV A5 . COUNT @C@@@@KY )@@G@@ E$DITX . @C@@@@ L KZ )@@G@@ A0,(4,FIMBUF) . @E@@@@ ER CSF$ LA )@@G@@ . APPLY USE @E@@@@ L A0,(4,ASGCMF) . ALB )@@G@@SG FILE @^@@@@ ER CSF$@E@@@@ JP LC )@@G@@ A0,OKSML . IF ZERO OK @E@@@@ TG,U A5,1LD )@@G@@0 . 10 MESSAGE MAX @C@@@@ J CANTML LE )@@G@@ . @E@@@@ A,U A5,1 . TRY ANOTLF )@@G@@HER NUMBER @C@@@@ J TRYSM . @E@@@@LG )@@G@@OKSML L,U R2,9 . MAX 10 LINES @E@@@@PMAIL LH )@@G@@ L,U A0,TREADNM . TYPE 'MAIL**' @C@@@@ ERLI )@@G@@ ATREAD$ . + READ@E@@@@ S,S3 A0,PRNTML LJ )@@G@@ . WORD COUNT @C@@@@ L A2,A0 LK )@@G@@ . @C@@@@ TOPTN 'L' . L OPTION @E@@@@LL )@@G@@ J NOECOM . NO-DON'T ECHO @E@@@@ LM )@@G@@ LSSL A2,18 . GET READY TO ECHO @E@@@@ A LN )@@G@@ A2,(0101,EDIT14-1) . ADD IN ADDRESS @C@@@@ L LO )@@G@@ A0,A2 . @E@@@@ ER APRINT$ LP )@@G@@ . PRINT IF IT IS @C@@@@NOECOM L,U A0,PRNTML . LQ )@@G@@ @G@@@@ ER APRNTA$ . PRINT TO EDIT*USERLR )@@G@@ID @C@@@@ JGD R2,PMAIL . @^@@@@LS )@@G@@ FIELDATA . @G@@@@ENDPM L A0,('FROM: ') . INLT )@@G@@DICATE WHO ITS FROM @^@@@@ ASCII . @C@@@@ LU )@@G@@ L A1,USERID . USERID @C@@@@ DS A0,ELV )@@G@@DIT14 . @G@@@@ ER DATE$ . GELW )@@G@@T TIME AND DAY IN FIELDATA @E@@@@ L A2,BLANKS LX )@@G@@ . GET BLANKS @C@@@@ S A2,EDIT14+2 . BLLY )@@G@@ANKS @C@@@@ S A0,EDIT14+3 . DATE @C@@@@ LZ )@@G@@ S A2,EDIT14+4 . BLANKS @C@@@@ S A1,EMA )@@G@@DIT14+5 . TIME @C@@@@ L,U A0,6 . 6 MB )@@G@@WORDS @C@@@@ S,S3 A0,PRNTML . @C@@@@ MC )@@G@@ L,U A0,PRNTML . @C@@@@ ER PRNTMD )@@G@@A$ . @G@@@@ L A0,(2,BRKMF) . BME )@@G@@REAKPOINT EDIT*USERID @^@@@@ ER CSF$@C@@@@ MF )@@G@@ L A0,(2,FREMF) . FREE IT@^@@@@ ER CSF$MG )@@G@@@E@@@@ TNZ GOEXIT . GO TO EXIT? @^@@@@MH )@@G@@ J NXRQ@E@@@@ J FIEXIT . ITMI )@@G@@'S ALL OVER BABY @E@@@@CANTML TYP E50,L50 . TYPE MAIMJ )@@G@@L FILE FULL @^@@@@ J NXRQ@E@@@@MAIEOF JP A0,EMK )@@G@@NDPM . WAS IT AN @EOF @E@@@@ SNZ GOEXIT ML )@@G@@ . NO, LEAVE WHEN DONE @C@@@@ J ENDPM MM )@@G@@ . @C@@@@ . THIS ROUTINE DOES THE LOOKING FOR MAIL @C@@@@MN )@@G@@MAILQ SZ A5 . @G@@@@ L MO )@@G@@ A0,(2,FREMF) . FREE ANY SCRAP LEFT AROUND @C@@@@ ERMP )@@G@@ CSF$ . @E@@@@RCMML E$DIT FTAB MQ )@@G@@ . APPLY USE @A@@@@ E$MSG USEMF MR )@@G@@@E@@@@ E$FD1 USERID . EDIT*USERID @C@@@@MS )@@G@@ E$MSGR . @C@@@@ E$DECV MT )@@G@@ A5 . @^@@@@ E$DITX @A@@@@ MU )@@G@@ L A0,(4,FIMBUF) @^@@@@ ER CSF$@^@@@@ MV )@@G@@ FIELDATA . @E@@@@ TNOASG 'MF$$ ' . ASSIGNEMW )@@G@@D @^@@@@ ASCII . @E@@@@ J FNDMMX )@@G@@L . YES-THERES MAIL @E@@@@ L A0,(2,ASGAMY )@@G@@MF) . TRY TO ASSIGN IT @C@@@@ ER CSF$ MZ )@@G@@ . @E@@@@ JN A0,0,X10 . NO FILE,NO MANA )@@G@@IL @G@@@@FNDML L,U A0,TREADML . ASK IF HE WANTS MAINB )@@G@@L @E@@@@ JNZ A5,NEMOR . DON'T ASK AFTERNC )@@G@@ FIRST@C@@@@ TNZ DEMAND . DEMAND? @G@@@@ ND )@@G@@ J NEMOR . NAW JUST GIVE IT TO HIM @C@@@@NE )@@G@@ ER ATREAD$ . @I@@@@ LXI,U NF )@@G@@ A0,0 . CLEAR OUT UPPER A0 817TM221 @E@@@@NG )@@G@@ JZ A0,0,X10 . CR-IGNORE @E@@@@ NH )@@G@@ L,Q1 A1,EDIT14 . GET FIRST CHAR @E@@@@ TNNI )@@G@@E,U A1,0131 . UPPER CASE 'Y'? @C@@@@ J NJ )@@G@@ NEMOR . YES @E@@@@ TE,U A1,0171 NK )@@G@@ . LOWER CASE 'Y'? @C@@@@ J SAVINGQ . NONL )@@G@@ @E@@@@NEMOR L,U R2,10 . MAX 11 LINES NM )@@G@@@E@@@@RENXTM L,U A0,REDMF . READ FROM MAIL FILE@A@@@@NN )@@G@@ ER AREADA$ @E@@@@ LSSL A0,18 NO )@@G@@ . WORD COUNT @G@@@@ A A0,(0100,EDIT14)NP )@@G@@ . 1 SPACE FROM EDIT 14 @E@@@@ ER APRINT$ NQ )@@G@@ . PRINT IT @E@@@@ TNZ BRKSET NR )@@G@@ . WAS BREAK KEY HIT? @C@@@@ JGD R2,RENXTM . LNS )@@G@@OOP @E@@@@ENDMF L A0,(2,BRKMF) . BREAKPOINT FILE NT )@@G@@@C@@@@ ER CSF$ . @E@@@@ L NU )@@G@@ A0,(2,FREDMF) . DELETE FILE @C@@@@ ER NV )@@G@@ CSF$ . @C@@@@ A,U A5,1 NW )@@G@@ . @E@@@@ J RCMML . LOOK FOR ANOTHNX )@@G@@ER @E@@@@SAVINGQ S A0,LLSTCD . SAVE WORD COUNT NY )@@G@@@E@@@@SCLOOP JGD A0,MVE14 . MOVE FROM E14 @C@@@@NZ )@@G@@ SNZ RLSTCD . SET FLAG@C@@@@ J OA )@@G@@ 0,X10 . RETURN @C@@@@MVE14 L A1,EDIT14,A0 OB )@@G@@ . GET WORD@E@@@@ S A1,ILSTCD,A0 . STORE IT OC )@@G@@ @C@@@@ J SCLOOP . @C@@@@. ROUTOD )@@G@@INE TO SET REPEAT COUNTER FOR I COMMAND @]@@@@. @C@@@@RPSET OE )@@G@@ LMJ X10,GET . GET COUNT @A@@@@ LMJ X10,BIN OF )@@G@@ . CONVERT@A@@@@ S A10,RPTK . SET IT.@C@@@@ J OG )@@G@@ NXRQ . TO NEXT COMMAND @C@@@@. ROUTINE TO SET TYPE - ELT, AOH )@@G@@SM, ETC. @]@@@@. @]@@@@SETTP . @E@@@@ LMJ OI )@@G@@ X10,GET . GET NEXT FIELD @E@@@@ L A2,OJ )@@G@@(1,0) . LOAD POINTER @E@@@@ TNE A1,ELT,*AOK )@@G@@2 . COMP WITH TABLE. @C@@@@ J SETTP2 OL )@@G@@ . FIND @E@@@@ TLE A2,(1,ELTLEN) . END OF OM )@@G@@TABLE? @C@@@@ J $-3 . NEXT ENTRY @E@@@@ON )@@G@@ AND,U A1,07070 . GET FIELD BITS @G@@@@ OO )@@G@@ TE,U A2,06060 . 06X6X OR 06X ACCEPTABLE @G@@@@OP )@@G@@ TNE,U A2,060 . 06X6X OR 06X ACCEPTABLE OQ )@@G@@@C@@@@ J OCTYP . OK @E@@@@ TYOR )@@G@@P E20,L20 . NO FIND ON TYPE @C@@@@ J OS )@@G@@ NXRQ . @G@@@@OCTYP AND,U A1,0707 OT )@@G@@ . GET SIGNIFICANCE BITS @E@@@@ DSL A2,3 OU )@@G@@ . SAVE LOWER @E@@@@ SSL A2,3 OV )@@G@@ . SHIFT OFF ZERO @E@@@@ LDSL A2,3 . BROW )@@G@@ING EM TOGETHER @E@@@@SETTP2 S,S1 A2,OUTBL+9 . SUB FIELD OX )@@G@@FOR SYMB. @G@@@@ S,S1 A2,INTBL+9 . PUT IN INPUT OY )@@G@@TABLE ALSO @C@@@@ J NXRQ . GO ON. OZ )@@G@@@]@@@@. @E@@@@. ROUTINE TO SET PRINT LIMIT. THE FIRST N COLUMNPA )@@G@@S WILL BE @G@@@@. PRINTED IF THE COMMAND PL N IS USED. PL 0 RESETS TO PB )@@G@@FULL LINE. @^@@@@. MAX N IS 132. @E@@@@. IF PL N1 N2 IS UPC )@@G@@SED, COLUMNS N1 THRU N2 WILL BE PRINTED. @]@@@@. @C@@@@PRLIM PD )@@G@@ LMJ X10,GET . GET COUNT. @C@@@@ LMJ X10,BIN0 PE )@@G@@ . CONVERT IT.@G@@@@ LUF A0,A10 . GEPF )@@G@@T COUNT + ADJUST FOR DIVIDE @C@@@@ TNZ A1 .PG )@@G@@ IS IT 0? @E@@@@ J COLERR+2 . SET STANDARD LPH )@@G@@IMITS @C@@@@ DI,U A0,4 . GET WORDS @E@@@@ PI )@@G@@ TZ A1 . TEST FOR REMAINDER @C@@@@ A,U PJ )@@G@@ A0,1 . ROUND UP. @E@@@@ TG,U A0,33 PK )@@G@@ . IS A0 TOO BIG? @G@@@@ L,U A0,PLIMSTD .PL )@@G@@ RESET TO STANDARD (VARIABLE). @E@@@@ S A0,PTL1 PM )@@G@@ . SET FIRST LIMIT @G@@@@ TG,U A10,132 PN )@@G@@ . GREATER THAN MAX 132? @E@@@@ L,U A10,132 PO )@@G@@ . YES, LOAD MAX @E@@@@ S A10,CPTL1 PP )@@G@@ . STORE COL LIM 1 @E@@@@ LMJ X10,GET . GEPQ )@@G@@T SECOND LIMIT @E@@@@ TZ A1 . WAS THERPR )@@G@@E ONE? @C@@@@ J LIM2 . YES @E@@@@PS )@@G@@ L A0,PTL1 . NO, LOAD THE LIMIT @G@@@@ PT )@@G@@ S A0,PTL2 . STORE AS THE SECOND LIMIT @E@@@@PU )@@G@@ SNZ PTL1 . STANDARD FIRST LIMIT@E@@@@ PV )@@G@@ L A0,CPTL1 . LOAD THE COL LIM @G@@@@ S PW )@@G@@ A0,CPTL2 . STORE AS THE SECOND COL LIM @G@@@@ PX )@@G@@ SNZ CPTL1 . STANDARD FIRST COL LIM @C@@@@PY )@@G@@ J NXRQ . CONTINUE@E@@@@LIM2 LMJ PZ )@@G@@ X10,BIN0 . CONVERT SECOND LIMIT@E@@@@ SZ A0 QA )@@G@@ . SET FOR DIVIDE @C@@@@ L A1,A10 QB )@@G@@ . @E@@@@ DI,U A0,4 . GET NUMBQC )@@G@@ER OF WORDS @E@@@@ TZ A1 . REMAINDER? QD )@@G@@ @E@@@@ A,U A0,1 . YES, ROUND UP QE )@@G@@@E@@@@ TLE A0,PTL1 . SECOND LIMIT BIGGER?@G@@@@QF )@@G@@ J COLERR . NO, FIRST IS BIGGER - ERROR QG )@@G@@@E@@@@ TG,U A0,33 . GREATER THAN MAX? @E@@@@QH )@@G@@ L,U A0,PLIMSTD . YES, LOAD MAX @E@@@@ QI )@@G@@ S A0,PTL2 . STORE SECOND LIMIT @E@@@@ TGQJ )@@G@@,U A10,132 . GREATER THAN MAX? @E@@@@ L,U QK )@@G@@ A10,132 . YES, LOAD MAX @E@@@@ S A10,QL )@@G@@CPTL2 . STORE COL LIM 2 @C@@@@ J NXRQ QM )@@G@@ . CONTINUE@E@@@@COLERR TYP E211,L211 . TYPE ERRQN )@@G@@OR MESSAGE @E@@@@ SNZ PTL1 . STANDARD FIRSTQO )@@G@@ LIMIT@G@@@@ L,U A0,PLIMSTD . STANDARD SECOND LIMIQP )@@G@@T @C@@@@ S A0,PTL2 . @E@@@@QQ )@@G@@ SNZ CPTL1 . STANDARD COL LIM 1 @E@@@@ QR )@@G@@ L,U A0,132 . STANDARD COL LIM 2 @C@@@@ S QS )@@G@@ A0,CPTL2 . STORE IT@C@@@@ J NXRQ QT )@@G@@ . CONTINUE@A@@@@ . SET TRANSPARENT CHAR FOR FIND @E@@@@SETTCFQU )@@G@@ LMJ X10,GET3 . GET NEW CHAR. @E@@@@ LMQV )@@G@@J X11,FIXCHR . SEE IF @ OR BLANK @C@@@@ TNE,U A1,QW )@@G@@'BL' . BLANK? @C@@@@ L,U A1,' ' .QX )@@G@@ SET BLANK. @C@@@@ S A1,TRCHF . SET IT. @C@@@@QY )@@G@@ J NXRQ . NEXT. @^@@@@ . SET CONTINUATIOQZ )@@G@@N CHAR@E@@@@CCHAR1 LMJ X10,GET3 . GET CHAR RA )@@G@@@E@@@@ LMJ X11,FIXCHR . SEE IF @ OR BLANK @C@@@@RB )@@G@@ S A1,CONTCHAR . SET CHAR@E@@@@ J RC )@@G@@ NXRQ . NEXT COMMAND @]@@@@ . @^@@@@ . SETRD )@@G@@ U OPTION @E@@@@UPOPS L A0,BITS('Z'-'U') . SET RE )@@G@@U FLAG @G@@@@ OR A0,OPTN . OR IN PRESERF )@@G@@NT OPTIONS @C@@@@ S A1,OPTN . RG )@@G@@@E@@@@ TZ DOPTI . INPUT DATA? @E@@@@RH )@@G@@ SNZ DOPTO . SO MAKE OUT DATA TOO@E@@@@ RI )@@G@@ TOPTN 'R' . R OPTION ON? @C@@@@ J RJ )@@G@@ NXRQ . NEXT @E@@@@ XOR A1,BITS('ZRK )@@G@@'-'R') . CLEAR R OPTION @C@@@@ S A2,OPTN RL )@@G@@ . @C@@@@ J NXRQ . @]@@@@RM )@@G@@ . @]@@@@ . @/ @E@@@@ . THIS ROUTINE INPUTS LINERN )@@G@@S FROM EDIT STREAM @G@@@@ . POINTER IS LEFT AT THRO )@@G@@E LAST LINE INSERTED @G@@@@INPUT1 LA A0,EDCT RP )@@G@@ . IS LINE-TO-BE-INSERTED IN THE @I@@@@ TNG A0,COUNT RQ )@@G@@ . COMMAND-LINE OR IN THE LINES AFTER IT? @C@@@@ J RR )@@G@@ RETYP2 . IMAGE IN LINE@E@@@@ L A1,DELIM RS )@@G@@ . GET DELIMITER @C@@@@ TNE,U A1,'+' RT )@@G@@ . IS IT + @E@@@@ J RETYP2 . ALSO TO INSET RU )@@G@@AFTER @E@@@@ TNZ EOFMOD . EOF MODE? RV )@@G@@@G@@@@ J INPUT2 . IF NOT, ENTER INPUT MODE RW )@@G@@ @G@@@@ SNZ BLKLINE . BLANK LINE TO BE INSERTRX )@@G@@ED @E@@@@ J RETYP2 . GO INSERT IT RY )@@G@@ @E@@@@INPUT2 SNZ INPUTF . SET INPUT MODE RZ )@@G@@@E@@@@ TZ BRIEF2 . BRIEF PRINT? @A@@@@SA )@@G@@ J INPUT3 @E@@@@ TYP INPUT,2 SB )@@G@@ . TYPE OUT MESSAGE @]@@@@INPUT3 . @I@@@@ ON SC )@@G@@ INSTAT . STATISTICS 817TM223 @I@@@@SD )@@G@@ L,H1 A0,STATBUF+5 . INCR TRANSACTION COUNT SE )@@G@@817TM224 @I@@@@ A,U A0,1 . SF )@@G@@ 817TM225 @I@@@@ S,H1 A0,STATBUF+5 SG )@@G@@ . 817TM226 @I@@@@ OFF SH )@@G@@ INSTAT 817TM227 @A@@@@SI )@@G@@ LMJ X10,TYPEIN @C@@@@ TZ EOFMOD SJ )@@G@@ . EOF MODE?@E@@@@ J DONCHG . DONT EVESK )@@G@@R CHANGE @E@@@@ TNZ COUNT . CHANGE MODES? SL )@@G@@ @C@@@@ J EDIT1 . YES @A@@@@DONCHGSM )@@G@@ LMJ X10,WRB @E@@@@ SZ WINHIB SN )@@G@@ . CLEAR WRITE INHIBIT @C@@@@ AA,U LCT,1 . INCR LINE SO )@@G@@COUNT @E@@@@ SNA RC,AC1 . IMAGE ADDED BY ED SP )@@G@@@C@@@@ LA A0,(1,1) . @E@@@@ SZSQ )@@G@@ A1 . INITIALIZE A1 @E@@@@ L SR )@@G@@ A5,EDIT80-1,A0 . GET COLUMN 1 CHAR @C@@@@ L,U A6,'SS )@@G@@@' . @E@@@@ TNE A5,MSPCHR . MST )@@G@@ASTERSPACE CHAR? @G@@@@ S A6,EDIT80-1,A0 . STORE MSU )@@G@@ASTERSPACE IN LINE @E@@@@ TZ COUNT . BSV )@@G@@LANK LINE? @C@@@@ J FILLIN . NOPE SW )@@G@@@E@@@@ L A5,BLANK2 . GET A BLANK @E@@@@SX )@@G@@ J INSBLK . GO STICK IT IN @E@@@@FILLINSY )@@G@@ LA A5,EDIT80-1,A0 . GET EDIT CHARACTER @E@@@@ TNSZ )@@G@@E A5,THETAB . IS IT A TAB? @A@@@@ LMJ TA )@@G@@ X10,ADJUST @A@@@@INSBLK SA A5,IMAG80,A1 @E@@@@ TB )@@G@@ A,U A1,1 . INCREMENT @E@@@@ TGTC )@@G@@ A1,SAVECL . LINE LIMIT MAX? @A@@@@ J TD )@@G@@ INPUT4 @I@@@@ TLEM A0,COUNT . HAVE ALTE )@@G@@L EDIT CHARACTERS BEEN SEEN? @C@@@@ J FILLIN TF )@@G@@ . NO @]@@@@INPUT4 . @A@@@@ S A1,LENGTH TG )@@G@@ @A@@@@ LMJ X10,PACK @G@@@@ J TH )@@G@@ INPUT3 . YES, GO GET NEXT LINE @G@@@@ADJUST LATI )@@G@@ A2,TAB80,A1 . LOAD MODIFIER FOR CORRECT TAB @A@@@@ TJ )@@G@@ LA,U A5,040 @E@@@@ADJUSB SA A5,IMAG80,A1 TK )@@G@@ . STORE BLANK @C@@@@ A,U A1,1 . INTL )@@G@@CR A1 @E@@@@ TG A1,SAVECL . LINE LIMIT MAX? TM )@@G@@@C@@@@ J 2,X10 . YES @G@@@@ TLTN )@@G@@E A1,A2 . IS TAB COUNT SATISFIED ? @G@@@@ TO )@@G@@ J ADJUSB . NO,STORE ANOTHER BLANK @A@@@@TP )@@G@@ J 2,X10 @]@@@@ . @/ @A@@@@ . FIND, FINTQ )@@G@@D AND COUNT COMMANDS @E@@@@FC1 S A1,LCFLG . SET TR )@@G@@FIND AND COUNT @G@@@@ SNZ LNPRT . SET LINETS )@@G@@ NUMBER PRINT @C@@@@ J $+2 . ENTETT )@@G@@R @E@@@@FIND1 SZ LCFLG . ZERO COUNT FLAG TU )@@G@@@I@@@@ LA A0,COUNT . TEST TO SEE IF PREVIOUS CTV )@@G@@OMMAND'S @I@@@@ TNE A0,EDCT . STRING TW )@@G@@SHOULD BE USED- SKIP IF NOT @A@@@@ LA A0,OCOUNT TX )@@G@@ @A@@@@ SA A0,OCOUNT @^@@@@ TNZ TY )@@G@@ OK @A@@@@ LMJ X3,TOPS @]@@@@FIND2 . @A@@@@TZ )@@G@@ LMJ X10,WRB @A@@@@ LMJ X10,READ UA )@@G@@ @^@@@@ J EOF @E@@@@ TZ BRKSET UB )@@G@@ . SET BREAK KEY? @C@@@@ J NXRQ UC )@@G@@ . YES @A@@@@ LA A2,(1,2) @A@@@@ AAUD )@@G@@ A2,EDCT @A@@@@ LA A3,(1,0) @A@@@@UE )@@G@@COMP LA A5,EDIT80-1,A2 @A@@@@ TNE A5,IMAG80,UF )@@G@@*A3 @A@@@@ J MATCH1 @E@@@@ TE UG )@@G@@ A5,TRCHF . TEST TRANS CHAR. @A@@@@ J FINDUH )@@G@@2 @A@@@@MATCH1 TLEM A2,OCOUNT @^@@@@ J UI )@@G@@ COMP@E@@@@ TNZ LCFLG . IS THIS FC ENTRY? UJ )@@G@@ @C@@@@ J MATCH2 . NO. @E@@@@ UK )@@G@@ TZ BRIEF2 . BRIEF MODE? @C@@@@ LMUL )@@G@@J X10,CLIN . GET LINE NO. @A@@@@MATCH2 TNZ BRIEF2 UM )@@G@@ @A@@@@ LMJ X10,TYPOUT @C@@@@ TZ UN )@@G@@ LCFLG . IS IT FC? @E@@@@ J FIND2 . YUO )@@G@@ES, LOOK FOR MORE @^@@@@ J NXRQ@]@@@@ . @/ UP )@@G@@@A@@@@ . LOCATE, LOCATE AND COUNT COMMANDS@E@@@@LC1 S A1,LCFUQ )@@G@@LG . SET LC ENTRY FLAG @G@@@@ SNZ LNPRT UR )@@G@@ . PINT NUMBER ON SAME LINE @]@@@@ . @C@@@@ US )@@G@@ J $+2 . ENTER @I@@@@ . THISUT )@@G@@ ROUTINE LOCATES A LINE CONTAINING A @E@@@@ UU )@@G@@ . GIVEN CHARACTER STRING @C@@@@LOC1 SZUV )@@G@@ LCFLG . SET 'L' ENTRY @G@@@@ SZ QSTRING UW )@@G@@ . CLEAR QUOTE TYPE INDICATOR @I@@@@ LA A0,CUX )@@G@@OUNT . TEST TO SEE IF PREVIOUS COMMAND'S @I@@@@ UY )@@G@@ TNE A0,EDCT . STRING SHOULD BE USED- SKIP IF NOT UZ )@@G@@ @A@@@@ LA A0,OCOUNT @A@@@@ SA VA )@@G@@ A0,OCOUNT @^@@@@ TNZ OK @A@@@@ LMJ VB )@@G@@ X3,TOPS @A@@@@ LA,U A10,' ' @E@@@@ VC )@@G@@ L A2,EDCT . SAVE CHAR POS @G@@@@ L VD )@@G@@ A6,LOCHR . INITIALIZE WITH QUOTE CHAR @E@@@@LOC11 VE )@@G@@ TG A2,COUNT . COUNT EXCEEDED? @E@@@@ J VF )@@G@@ LOC2 . CAN'T BE QUOTE TYPE@E@@@@ A,U VG )@@G@@ A2,1 . INCR POINTER @E@@@@ TNE A10,VH )@@G@@EDIT80-1,A2 . IS CHAR BLANK? @G@@@@ J LOC11 VI )@@G@@ . YES, GET THE NEXT ONE @E@@@@ TE A6,EVJ )@@G@@DIT80-1,A2 . IS IT A QUOTE? @G@@@@ J LOC2 VK )@@G@@ . NO - MUST BE NORMAL LOCATE @E@@@@ S A10,VL )@@G@@EDIT80-1,A2 . CHANGE TO BLANK @I@@@@ AN,U A2,1 VM )@@G@@ . ADJUST TO LOOK AT NEXT CHAR AFTER QUOTE @C@@@@ S VN )@@G@@ A2,EDCT . @G@@@@ SNZ QSTRING VO )@@G@@ . SET QUOTE STRIN INDICATOR @]@@@@LOC2 . @A@@@@ VP )@@G@@ LMJ X10,WRB @A@@@@ LMJ X10,READ VQ )@@G@@@^@@@@ J EOF @E@@@@ TZ BRKSET VR )@@G@@ . WAS BREAK KEY HIT? @G@@@@ J NXRQ . YVS )@@G@@ES, GET NEXT COMMAND @G@@@@ L A0,LENGTH VT )@@G@@ . GET LENGTH OF IMAGE READ @I@@@@ L,U A2,3 VU )@@G@@ . 6 TRAILING BLANKS 817TM230 @I@@@@ L,VV )@@G@@U A1,' ' . 817TM231 VW )@@G@@@I@@@@ LXI,U A0,1 . VX )@@G@@ 817TM232 @I@@@@ S A1,IMAG80,*A0 . VY )@@G@@ 817TM233 @I@@@@ JGD A2,$-1 VZ )@@G@@ . LOOP 817TM234 @I@@@@ LXWA )@@G@@I,U A0,0 . CLEAR INCR 817TM235 WB )@@G@@@G@@@@ A A0,EDCT . ADD COMMAND PART OF LOCATWC )@@G@@E @G@@@@ ANA A0,OCOUNT . SUBTRACT TOTAL LOCATE LENGWD )@@G@@TH @C@@@@ AA,U A0,1 . ADJUST FOR TEST @E@@@@WE )@@G@@ TZ QSTRING . QUOTE STRING? @I@@@@ WF )@@G@@ A,U A0,2 . ADJUST ONE MORE BECAUSE OF TRAILING 'WG )@@G@@ @C@@@@ JN A0,LOC2 . LINE TOO SHORT @C@@@@ WH )@@G@@ SA A0,LIMIT . SET LIMIT @A@@@@ LA A1,(WI )@@G@@1,0) @]@@@@LOC3. @A@@@@ LA A2,(1,2) WJ )@@G@@@A@@@@ AA A2,EDCT @A@@@@ LA A3,AWK )@@G@@1 @A@@@@COMPAR LA A5,EDIT80-1,A2 @G@@@@ TGWL )@@G@@ A3,(1,132) . AT THE END OF THE IMAGE @E@@@@ WM )@@G@@ J LOC2 . GO GET ANOTHER LINE @A@@@@ TNWN )@@G@@E A5,IMAG80,*A3 @A@@@@ J MATCH @E@@@@WO )@@G@@ TZ QSTRING . QUOTE TYPE? @C@@@@ WP )@@G@@ J INQOTE . YES @C@@@@LIMTST TLEM A1,LWQ )@@G@@IMIT . TEST HERE @C@@@@ J $+2 . CONTIWR )@@G@@NUE @E@@@@ J LOC2 . TIME FOR NEXT WS )@@G@@@E@@@@ TZ QSTRING . IN QUOTE? @E@@@@WT )@@G@@ J LOC3 . YES, NO LUCK @A@@@@ WU )@@G@@ TNE A10,IMAG80-1,A3 @E@@@@ TE A10,IMAG80-2,A3 WV )@@G@@ . WAS LAST A BLANK @C@@@@ J LOC3 . FAILURE WW )@@G@@ @G@@@@ AN,U A1,1 . DIDN'T WANT TO INCRWX )@@G@@EMENT @G@@@@ J COMPAR+1 . OK COMPARE SOWY )@@G@@ME MORE @E@@@@INQOTE TE A6,EDIT80-1,A2 . QUOTE IWZ )@@G@@N LOCATE? @E@@@@ J LIMTST . NO MISMATCHXA )@@G@@ @E@@@@ J FOUND . YES, FOUND A MATCH XB )@@G@@@A@@@@MATCH TLEM A2,OCOUNT @A@@@@ J COMPXC )@@G@@AR @E@@@@FOUND TNZ LCFLG . IS IT LC ENTRY? XD )@@G@@ @C@@@@ J FOUND1 . NO. @E@@@@ XE )@@G@@ TZ BRIEF2 . BRIEF MODE? @I@@@@ LMXF )@@G@@J X10,CLIN . BRIEF MODE OR NOT LINE NUM MODE- GET NUM XG )@@G@@@E@@@@FOUND1 TNZ BRIEF2 . TEST OF BRIEF MODE @A@@@@XH )@@G@@ LMJ X10,TYPOUT @E@@@@ TZ LCFLG XI )@@G@@ . IS IT LC ENTRY? @E@@@@ J LOC2 . YXJ )@@G@@ES, LOOK FOR MORE @^@@@@ J NXRQ@]@@@@ . @/ XK )@@G@@@G@@@@ . THIS ROUTINE CHANGES A GIVEN CHAR STRING INTO A SECOND GIVEN STXL )@@G@@RING @G@@@@ . EITHER THROUGHOUT THE ENTIRE LINE OR JUST THE FIRST OCCURXM )@@G@@ANCE FOR @E@@@@ . ANY GIVEN NO. OF LIXN )@@G@@NES @G@@@@CHANG1 SZ STRFND . ZERO STRING FOUND INDXO )@@G@@ICATOR @C@@@@ L X1,(1,0) . STR PTR @C@@@@XP )@@G@@ L X2,(1,0) . CHAR PTR @A@@@@ AX XQ )@@G@@ X2,EDCT @G@@@@ LA A0,EDIT80,*X2 . STRINGSXR )@@G@@. THE B-WORD ARRAY STR @E@@@@ TNE,U A0,' ' .XS )@@G@@ BLANK? @G@@@@ TE A0,EDIT80,X2 . CONTAINS XT )@@G@@THE RELATIVE ADDRESS @G@@@@ J DEFINE . OXU )@@G@@F THE 3 QUOTE CHARACTERS @C@@@@ TLEM X2,COUNT XV )@@G@@ . @C@@@@ J $-3 . @E@@@@XW )@@G@@ L A0,EDCT . IF NO DELIMITER THAN@E@@@@ XX )@@G@@ S A0,STR . USE FIRST CHAR @G@@@@ILLSTR A$XY )@@G@@EDIT ETAB . INCOMPLETE STRING MESSAGE START @^@@@@ XZ )@@G@@ A$EMSG E15@G@@@@ L A0,STR . PRINT STRYA )@@G@@ING DELIMITER @A@@@@ L A0,EDIT80,A0 @A@@@@YB )@@G@@ LMJ X11,AECHAR$ @^@@@@ A$EDITX @E@@@@YC )@@G@@ TYP IMBUF,17 . TYPE MESSAGE @C@@@@ YD )@@G@@ J NXRQ . LEAVE @G@@@@DEFINE S X2,STYE )@@G@@R,X1 . SAVE DELIM POINTER @E@@@@ SZ,H1 YF )@@G@@ STR,X1 . ZERO LEFT HALF @E@@@@ TLEM,U X1,2YG )@@G@@ . THREE DELIMS? @E@@@@ J $+2 YH )@@G@@ . NOT ENOUGH DELIMS @C@@@@ J DEFFND YI )@@G@@ . YES @G@@@@ L A0,EDIT80,*X2 . GET DELIM YJ )@@G@@AND INC X2 @E@@@@ TNE A0,EDIT80,X2 . COMPARE NYK )@@G@@EXT CHAR @E@@@@ J DEFINE . ANOTHER DELIMITYL )@@G@@ER @E@@@@ TLEM X2,COUNT . CHAR COUNT EXCEEDED YM )@@G@@@C@@@@ J $-3 . NOPE @C@@@@ J YN )@@G@@ ILLSTR . YES ERROR@]@@@@DEFFND @^@@@@ AXYO )@@G@@,U X2,1@C@@@@ S X2,EDCT . @G@@@@YP )@@G@@ SZ GLOBAL . DECIDE FOR HOW MANY LINES YQ )@@G@@@E@@@@ SZ HEADC . CLEAR HEAD FLAG @^@@@@YR )@@G@@ SZ A10 @C@@@@ LMJ X10,GET . YS )@@G@@ @A@@@@ JZ A1,GFOUND+1 @^@@@@ FIELDATAYT )@@G@@ . @A@@@@ TNE,U A1,'G' @C@@@@ J YU )@@G@@ GFOUND . @E@@@@ TE,U A1,'A' YV )@@G@@ . CHANGE ALL? @C@@@@ TNE,U A1,'ALL' . YW )@@G@@ @C@@@@ J CHALL . YES @C@@@@ YX )@@G@@ LMJ X10,BIN . @E@@@@RECHAL S A10,YY )@@G@@SSAVE . RESET SCAN COUNT @A@@@@ LMJ X10,GET YZ )@@G@@ @E@@@@ TNE,U A1,'G' . TEST FOR GLOBAL ZA )@@G@@@^@@@@ ASCII . @E@@@@GFOUND SNZ GLOBAL ZB )@@G@@. SET GLOBAL FLAG @G@@@@ LA A0,STR . TZC )@@G@@EST FOR REPLACING HEAD OF LINE@G@@@@ AA,U A0,1 ZD )@@G@@ . IF SO 'G' HAS NO EFFECT @C@@@@ TG A0,STR+1 ZE )@@G@@ . @E@@@@ SNZ HEADC . SET HEA?D ZF )@@G@@FLAG @I@@@@STARTS TZ LCT . AT LINE 0? ZG )@@G@@ 817TM238 @I@@@@ J NOTLNZ ZH )@@G@@ . NOPE 817TM239 @E@@@@ JNZ ZI )@@G@@ A10,ATLN0 . YES-GO TO 1 @I@@@@ J IBERZJ )@@G@@R . 1 LINE CHANGE AT LINE 0 ILLEGAL 817TM241 @I@@@@NOTLNZZK )@@G@@ . 817TM2ZL )@@G@@42 @G@@@@ TZ HEADC . CHANGE AT HEAD OF LZM )@@G@@INE @C@@@@ J HEAD . YES @G@@@@ZN )@@G@@ LA A0,LENGTH . GET LENGTH OF IMAGE READ IN ZO )@@G@@@I@@@@ L,U A2,3 . 6 TRAILING BLANKS ZP )@@G@@ 817TM245 @I@@@@ L,U A1,' ' . ZQ )@@G@@ 817TM246 @I@@@@ LXI,U A0,1 ZR )@@G@@ . 817TM247 @I@@@@ S ZS )@@G@@ A1,IMAG80,*A0 . 817TM248 ZT )@@G@@@I@@@@ JGD A2,$-1 . LOOP ZU )@@G@@ 817TM249 @I@@@@ LXI,U A0,0 . CLEAR INZV )@@G@@CR 817TM250 @A@@@@ JZ A0,NOCHAN ZW )@@G@@ @A@@@@ TG A0,SAVE2 @C@@@@ LA ZX )@@G@@ A0,SAVE2 . @E@@@@ AA A0,STR ZY )@@G@@ . CALCULATE LIMIT @C@@@@ ANA A0,STR+1 . ZZ )@@G@@ @^@@@@ AA,U A0,1@A@@@@ JN A0,NOCHAN AA )@@G@@ @A@@@@ SA A0,LIMIT @E@@@@ LA AB )@@G@@ A1,(1,0) . IMAGE COUNTER @E@@@@ LA A2,(AC )@@G@@1,0) . CHANGE COUNTER @G@@@@ LA A3,(1,0) AD )@@G@@ . IMAGE INTO CHANGE COUNTER @G@@@@ SZ PRTEAE )@@G@@ST . ZERO IN PRTEST MEANS LINE IS NT@C@@@@SLINE LX AF )@@G@@ X1,(1,2) . @C@@@@ AX X1,STR AG )@@G@@ . @C@@@@ LX X2,A1 . @C@@@@AH )@@G@@ LA A5,EDIT80-1,X1 . @G@@@@ TE AI )@@G@@ A5,IMAG80,*X2 . ARE CHARACTERS EQUAL? @C@@@@ J AJ )@@G@@ RESTAR . NO @G@@@@ TLEM X1,STR+1 AK )@@G@@ . YES,IS ENTIRE STRING FOUND? @C@@@@ J $-4 AL )@@G@@ . NO @I@@@@ J SFOUND . YAM )@@G@@ES,GO REPLACE IT WITH NEW STRING @]@@@@RESTAR . @A@@@@ AN )@@G@@ TLEM A1,LIMIT @E@@@@ J SLINE AO )@@G@@ . YES,CONTINUE SEARCH@G@@@@ TZ PRTEST . NAP )@@G@@ON-ZERO MEANS LINE WAS CHANGED@A@@@@ J CHDONE AQ )@@G@@@]@@@@NOCHAN . @C@@@@ JZ A10,EXNXRQ . NO AR )@@G@@@A@@@@ LMJ X10,WRB @^@@@@ TZ OK AS )@@G@@@A@@@@ LMJ X10,READ @^@@@@ J EOFCAT )@@G@@@A@@@@ JGD A10,STARTS @C@@@@SFOUND SNZ STRFAU )@@G@@ND . SET FLAG @G@@@@ TNE A1,A2 .MOVAV )@@G@@E BEGINNING OF LINE TO @E@@@@ J REPLAC AW )@@G@@ . ALTERNATE BUFFER @C@@@@ LA A5,IMAG80,*A2 . AX )@@G@@ @A@@@@ SA A5,CHAN80,A3 @A@@@@ TLEM AY )@@G@@ A3,SAVE21 . @A@@@@ J SFOUND @^@@@@ AZ )@@G@@ J TT @G@@@@HEAD SNZ STRFND . STRING ALWBA )@@G@@AYS FOUND ON HEAD @I@@@@ LX A3,(1,0) . EBB )@@G@@NTRY HERE TO REPLACE OF LINE @A@@@@ LX X2,(BC )@@G@@1,0) @G@@@@REPLAC LX A0,STR+1 . CHECK TO SEE BD )@@G@@IF STRING IS @E@@@@ AX,U A0,1 . ALREADYBE )@@G@@ REPLACED ? @C@@@@ TNE A0,STR+2 . @C@@@@BF )@@G@@ J REDONE . YES @I@@@@ LA BG )@@G@@ A5,EDIT80,A0 . NO,MOVE NEXT CHAR OF SECOND STRING @A@@@@BH )@@G@@ SA A5,CHAN80,A3 @A@@@@ TLEM A3,SAVE21 BI )@@G@@ . @C@@@@ J REPLAC+1 . @^@@@@ BJ )@@G@@ J TT @G@@@@REDONE SNZ PRTEST . NON-ZERO MBK )@@G@@EANS LINE IS CHANGED @C@@@@ LA A0,X2 . BL )@@G@@ @C@@@@ LA A1,X2 . @C@@@@ BM )@@G@@ ANA,U A1,1 . @C@@@@ LA A2,XBN )@@G@@2 . @G@@@@ TZ GLOBAL . IBO )@@G@@S REST OF LINE TO BE CHANGED ?@C@@@@ J RESTAR BP )@@G@@ . @]@@@@CHDONE . @A@@@@ LA A1,LENGTH BQ )@@G@@@^@@@@ ANA,U A1,1@A@@@@ TG A1,SAVE21 BR )@@G@@@A@@@@ LA A1,SAVE21 @A@@@@ AA A1,(BS )@@G@@1,0) @C@@@@MOVE1 TLE A1,A0 . @C@@@@BT )@@G@@ J TT . @C@@@@ LA BU )@@G@@ A5,IMAG80,*A0 . @A@@@@ SA A5,CHAN80,A3 BV )@@G@@@A@@@@ TLEM A3,SAVE21 . @C@@@@ J MOVEBW )@@G@@1 . @A@@@@TT LA A1,LENGTH @G@@@@BX )@@G@@ TG A1,SAVE21 . CHANGED TO SAVE2-1 ***** BY )@@G@@@A@@@@ J MOVE2-1 @A@@@@ S A3,LBZ )@@G@@ENGTH @A@@@@ ANA A3,(1,1) @A@@@@ J CA )@@G@@ MOVE3 @A@@@@ LA,U A5,040 @A@@@@CB )@@G@@MOVE2 SA A5,CHAN80,A3 @A@@@@ TLEM A3,SAVE21 CC )@@G@@ . @A@@@@ J MOVE2 @A@@@@ LA CD )@@G@@ A3,SAVE21 . @A@@@@MOVE3 LA A5,CHAN80,A3 @A@@@@ CE )@@G@@ SA A5,IMAG80,A3 @A@@@@ JGD A3,MOVE3 CF )@@G@@@E@@@@ SNA RC,DC1 . IMAGE DELETED BY ED @A@@@@CG )@@G@@ LMJ X10,WRB @E@@@@ SNA RC,AC1 CH )@@G@@ . IMAGE ADDED BY ED @E@@@@ L A0,LENGTH CI )@@G@@ . GET IMAGE LENGTH @G@@@@ TG A0,SAVECL . MACJ )@@G@@X LINE LENGTH GREATER? @E@@@@ L A0,SAVECL CK )@@G@@ . USE SAVECL @C@@@@ S A0,LENGTH . CL )@@G@@ @A@@@@ LMJ X10,PACK @A@@@@FF TNZ CM )@@G@@ BRIEF2 @A@@@@ LMJ X10,TYPOUT @A@@@@ CN )@@G@@ JZ A10,EXNXRQ @A@@@@ATLN0 LMJ X10,WRB CO )@@G@@@A@@@@ LMJ X10,READ @^@@@@ J EOFCCP )@@G@@@E@@@@ TZ BRKSET . WAS BREAK KEY HIT? @C@@@@CQ )@@G@@ J EXNXRQ . YES @A@@@@ JGD CR )@@G@@ A10,STARTS @E@@@@EOFC SZ FASTREAD . GET RIDCS )@@G@@ OF FASTREAD@E@@@@ SZ MOVEF . CLEAR FLAGS CT )@@G@@ @C@@@@ SZ DGONXT . @E@@@@ CU )@@G@@ SNZ WINHIB . WRITE INHIBIT @E@@@@ TNCV )@@G@@Z GORET . RETURN EXIT @C@@@@ J CW )@@G@@ NOGOJ . NO @E@@@@ SZ GORET CX )@@G@@ . CLEAR FLAG @C@@@@ J 0,X6 . YCY )@@G@@ES @E@@@@NOGOJ TNZ PUNCH . PUNCH MODE? CZ )@@G@@@C@@@@ J NOPUNW . NOPE @E@@@@ L,DA )@@G@@U A1,10000 . 3SECONDS @E@@@@ ER DB )@@G@@ TWAIT$ . WAIT 1 SECOND @E@@@@ SZ PUNCDC )@@G@@H . CLEAR PUNCH @G@@@@NOPUNW AN A10,SSAVE DD )@@G@@ . SUBTRACT OLD SCAN COUNT @E@@@@ SM A10,DE )@@G@@A10 . MAKE IT POSITIVE @E@@@@ A$EDIT ETAB DF )@@G@@ . START EDIT @E@@@@ A$EMSG E11 DG )@@G@@ . SCAN COUNT:... @G@@@@ A$EDECV A10 . DH )@@G@@INSERT ACTUAL COUNT @E@@@@ A$EDITX DI )@@G@@ . END EDIT @G@@@@ TNZ ONSITE . NODJ )@@G@@ SCAN COUNT ON ONSITE @E@@@@ TYP IMBUF,6 DK )@@G@@ . TYPE IT OUT @E@@@@ SZ PNTINQ . CLDL )@@G@@EAR PRINT FLAG @^@@@@ J EOF @E@@@@EXNXRQ TZ DM )@@G@@ STRFND . STRING FOUND? @C@@@@ J NXRQDN )@@G@@ . YES @E@@@@ TYP E17,L17 . NODO )@@G@@, TELL HIM SO @E@@@@ J NXRQ . NOW GO BACDP )@@G@@K @E@@@@CHALL L,U A10,0777776 . BIG NUMBER DQ )@@G@@ @E@@@@ SNZ GLOBAL . REALLY GET EM ALL DR )@@G@@@E@@@@ J RECHAL . GO CHANGE EM ALL @]@@@@DS )@@G@@ . @/ @E@@@@INLINE1 . . PERFORM INLINE MODIFICATION DT )@@G@@ @C@@@@ DO INSTAT , S,S5 R10,STATBUF+6 . @G@@@@ DU )@@G@@ L,U A10,'!' . ! IS NORMAL TERMINATION CHAR @E@@@@DV )@@G@@ LMJ X10,GET . GET FIRST ARG @G@@@@ DW )@@G@@ JZ A1,TERMSUB+1 . NO ARGS MEANS THIS LINE @E@@@@DX )@@G@@INLINE2 LMJ X10,BIN0 . CONVERT TO BINARY @E@@@@ DY )@@G@@ GOLINE LINERR . GO TO LINE @E@@@@ TZDZ )@@G@@ BRKSET . WAS BREAK KEY HIT? @C@@@@ J EA )@@G@@ NXRQ . EXIT @E@@@@ L,U A10,'!' EB )@@G@@ . RESTORE EXCLAMATION @G@@@@ LMJ X10,GET3 . EC )@@G@@SEE IF ONE SUPPLIED @E@@@@ TZ A1 ED )@@G@@ . IF SO, USE IT @C@@@@TERMSUB S A1,A10 . EE )@@G@@ @E@@@@ LMJ X9,IMAGESAV . SAVE IMAGE EF )@@G@@@E@@@@ SNA RC,DC1 . DELETE OLD IMAGE @G@@@@EG )@@G@@ LMJ X10,WRB . WRITE OUT DELETED IMAGE EH )@@G@@@E@@@@ SNA RC,AC1 . MARK NEW ONE ADDED @G@@@@EI )@@G@@ L A1,LENGTH . MOVE IMAGE FOR PRINTOUT EJ )@@G@@@E@@@@ L A0,A1 . ALSO TO A0 @C@@@@EK )@@G@@MVPLZZ L A2,IMAG80-1,A1 . @C@@@@ S EL )@@G@@ A2,IMAG80+1,A1 . @E@@@@ TZ UNIMOD EM )@@G@@ . UNISCOPE MODE? @E@@@@ S A2,IMAG80+2,A1 . UPEN )@@G@@ ONE MORE @G@@@@ JGD A1,MVPLZZ . MOVE OVEO )@@G@@ER TO MAKE ROOM @G@@@@ L,U A2,'+' . HEP )@@G@@EAD LINE WITH TWO PLUSES @C@@@@ S A2,IMAG80+1 EQ )@@G@@ . @C@@@@ S A2,IMAG80 . @E@@@@ER )@@G@@ TNZ UNIMOD UNISCOPE MODE? @C@@@@ ES )@@G@@ J NOTUNI . NOPE @E@@@@ S A2,IET )@@G@@MAG80+2 . ANOTHER PLUS @E@@@@ A,U A0,1 EU )@@G@@ . ADD ANOTHER TO A0 @E@@@@NOTUNI A,U A0,2 EV )@@G@@ . ADJUST FOR PLUSES @C@@@@ S A0,LENGTH . EW )@@G@@ @G@@@@ LMJ X10,PACK+1 . PACK IMAG80 INTO EX )@@G@@IMAGE @E@@@@ L R6,ALLLN . SAVE LINE NUMBEY )@@G@@ERS @E@@@@ L R7,QUICKON . AND QUICK FLAGS EZ )@@G@@@C@@@@ SZ ALLLN . CLEAR @C@@@@ SZFA )@@G@@ QUICKON . @E@@@@ LMJ X10,TYPOUTFB )@@G@@ . PRINT OUT IMAGE @C@@@@ S R6,ALLLN FC )@@G@@ . @C@@@@ S R7,QUICKON . @I@@@@FD )@@G@@ S A10,DIT1 . FE )@@G@@817TM253 @E@@@@ SNZ ONNLINE . SET TO SOLICIT WFF )@@G@@ITH + @E@@@@ LMJ X10,TYPEIN . READ LINE FG )@@G@@@E@@@@ SZ ONNLINE . CLEAR FLAG @I@@@@FH )@@G@@ L A10,DIT1 . FI )@@G@@817TM255 @E@@@@ L,U A0,IMAGE . CHANGE EDIT$ FJ )@@G@@BUFFER@C@@@@ S,H2 A0,ETAB . @I@@@@ FK )@@G@@ L A11,COUNT . GET CHAR COUNT OF INPUT EDIT STRING FL )@@G@@ @G@@@@ A A11,(1,0) . ADD IN INCR FOR TESFM )@@G@@T @C@@@@ A$EDIT ETAB . @E@@@@FN )@@G@@ L X4,(1,0) . EDIT80 POINTER @E@@@@ FO )@@G@@ L X5,(1,0) . IMAG80 POINTER @E@@@@ TZFP )@@G@@ UNIMOD . UNISCOPE? @E@@@@ A,U FQ )@@G@@ X5,1 . ANOTHER PLUS @E@@@@ L X7,LFR )@@G@@ENGTH . INITIAL LENGTH @E@@@@ AN,U X7,2 FS )@@G@@ . ADJUST FOR PLUSES @E@@@@ TZ UNIMOD FT )@@G@@ . UNISCOPE MODE? @E@@@@ AN,U X7,1 . ADFU )@@G@@JUST SOME MORE @E@@@@ L A13,(1,1) . USED FOFV )@@G@@R TEST @G@@@@SCANED SZ INREPF . ZERO REPLACE FW )@@G@@INDICATOR @G@@@@ SZ INDELF . ZERO DEFX )@@G@@LETE INDICATOR @E@@@@ L A4,EDIT80,*X4 . GFY )@@G@@ET EDIT CHAR @E@@@@ TNG A11,X4 . END OF FZ )@@G@@EDIT STRING?@E@@@@ J INEND . YES, EXIT GA )@@G@@ @G@@@@ TNE A13,X4 . IS THIS THE FIRST EGB )@@G@@DIT CHAR? @C@@@@ J TESTEDC . YES @I@@@@GC )@@G@@ L A0,IMAG80+2,*X5 . TRANSFER CHAR FROM PRESENT SGD )@@G@@NG @C@@@@ LMJ X11,AECHAR$ . @I@@@@GE )@@G@@ . +2 IS TO IGNORE ++ INSERTED FORGF )@@G@@ PRINTOU @E@@@@TESTEDC TNE,U A4,' ' . BLANK EDIT CHGG )@@G@@AR? @E@@@@ J SCANED+2 . YES, CONTINUE SCAN GH )@@G@@@C@@@@ TNE,U A4,'I' . INSERT?@C@@@@ J GI )@@G@@ ININSE . YES @C@@@@ TNE,U A4,'D' GJ )@@G@@ . DELETE?@C@@@@ J INDELE . YES GK )@@G@@@E@@@@ TNE,U A4,'R' . REPLACE? @C@@@@GL )@@G@@ J INREPL . YES @C@@@@ TNE,U GM )@@G@@ A4,0151 . INSERT? @C@@@@ J ININSE GN )@@G@@ . YES @C@@@@ TNE,U A4,0144 . DELETE? @C@@@@GO )@@G@@ J INDELE . YES @C@@@@ TNE,U GP )@@G@@ A4,0162 . REPLACE?@C@@@@ J INREPL GQ )@@G@@ . YES @G@@@@ L,U A5,E27 . INVALID EDIT GR )@@G@@CHAR ERROR @E@@@@INERRX LMJ X9,IMAGEREC . RECOVERGS )@@G@@ IMAGE @^@@@@ A$EDITX . @G@@@@ L,U A0,IGT )@@G@@MBUF . REPLACE EDIT$ BUFFER @C@@@@ S,H2 GU )@@G@@ A0,ETAB . @E@@@@ A$EDIT ETAB GV )@@G@@ . START EDIT @E@@@@ L A0,A5 . GGW )@@G@@ET MESSAGE ADDRESS@E@@@@ LMJ X11,AEMSG$ . INSERTGX )@@G@@ IT @E@@@@ L A0,A4 . GET OFFENSIVEGY )@@G@@ CHAR @E@@@@ LMJ X11,AECHAR$ . INSERT IT GZ )@@G@@@^@@@@ A$EDITX . @C@@@@ TYP IMBUF,8 HA )@@G@@ . TYPE IT @E@@@@ J RECTST . NEXT COMMAND HB )@@G@@ @G@@@@TERMERR L A4,A10 . MISSING TERMINATIONHC )@@G@@ CHAR @E@@@@ L,U A5,E28 . MESSAGE E28 HD )@@G@@ @E@@@@ J INERRX . PRINT AND EXIT HE )@@G@@@E@@@@INDELE SNZ INDELF . SET DELETE FLAG @E@@@@HF )@@G@@ J ININSE . GO DO IT @E@@@@INREPLHG )@@G@@ SNZ INREPF . SET REPLACE FLAG @E@@@@ININSE L HH )@@G@@ A4,EDIT80,*X4 . GET NEXT EDIT CHAR @G@@@@ TNG HI )@@G@@ A11,X4 . HAVE LOOKED AT ALL EDIT CHAR? @G@@@@ J HJ )@@G@@ TERMERR . YES, MISSING TERMINATOR @G@@@@ HK )@@G@@ TNE A4,A10 . IS THIS A TERMINATOR @G@@@@HL )@@G@@ J SCANED . YES GO BACK FOR MORE EDIT STUFFHM )@@G@@@C@@@@ TZ INDELF . DELETE?@C@@@@ J HN )@@G@@ INDELE1 . YES @G@@@@ L A0,A4 HO )@@G@@ . GET CHAR FROM EDIT STREAM @E@@@@ LMJ X11,HP )@@G@@AECHAR$ . INSERT IT @E@@@@ TZ INREPF HQ )@@G@@ . REPLACE? @C@@@@ J INDELE1 HR )@@G@@ . YES @G@@@@ A,U X7,1 . NO - INSERT -HS )@@G@@ ADD TO LENGTH @E@@@@ J ININSE . YES- NEHT )@@G@@XT CHAR @G@@@@INDELE1 A,U X5,1 . SPACE OVER IMHU )@@G@@AG80 CHARS @E@@@@ J ININSE . GET NEXHV )@@G@@T EDIT CHAR @E@@@@INEND SZ A1 . CLEAR A1 HW )@@G@@ @E@@@@ TZ UNIMOD . UNISCOPE MODE? HX )@@G@@@E@@@@ A,U X7,1 . ADD 1 TO COUNT @]@@@@HY )@@G@@INENDU . @E@@@@ LXM A1,X5 . GET X5 IN A RHZ )@@G@@EG @I@@@@ A,U A1,2 . IA )@@G@@ 817TM258 @I@@@@ TG A1,LENGTH . IB )@@G@@ 817TM259 @C@@@@ J INENIC )@@G@@D2 . YES @E@@@@ L A0,IMAG80+2,*X5 ID )@@G@@ . TRANSFER @C@@@@ LMJ X11,AECHAR$ . IE )@@G@@@E@@@@ J INENDU . NEXT CHAR @I@@@@IF )@@G@@INEND2 . IG )@@G@@817TM261 @I@@@@ A$ECOLN . GET LINE LENGTH IH )@@G@@ 817TM263 @E@@@@ TG A0,SAVECL II )@@G@@ . LINE LIMIT MAX? @E@@@@ L A0,SAVECL . LIJ )@@G@@OAD MAX @I@@@@ DSL A0,36 . SHIFT TOIK )@@G@@ A1 817TM265 @E@@@@ DI,U A0,4 IL )@@G@@ . WORD LENGTH WANTED @E@@@@ TZ A1 IM )@@G@@ . REMAINDER ZERO? @G@@@@ A,U A0,1 . NIN )@@G@@O, ADD ONE TO WORD COUNT @E@@@@ S A0,IL IO )@@G@@ PUT IN IMAGE LENGTH @I@@@@ A$EDITX . IP )@@G@@ 817TM267 @I@@@@ L,U A0,IIQ )@@G@@MBUF . RESTORE IMBUF AS ETAB ADDRES 817TM268 @I@@@@ IR )@@G@@ S,H2 A0,ETAB . 817TM2IS )@@G@@69 @E@@@@ LMJ X10,TYPOUT . TYPE IT OUT IT )@@G@@@E@@@@ LMJ X10,DECODE . DECODE TO IMAG80 @E@@@@IU )@@G@@ J NXRQ . EOF IMPOSSIBLE @E@@@@ IV )@@G@@ AN,U LCT,1 . ADJUST BACK @E@@@@ J IW )@@G@@ NXRQ . NEXT COMMAND @]@@@@ . @]@@@@IX )@@G@@ . @/ @E@@@@ . THIS ROUTINE REPLACES THE POINTER LINE WITH THE EDIIY )@@G@@T LINE@E@@@@ . THE POINTER LOCATIION IS NOT CHANGED IZ )@@G@@@]@@@@RETYP1 . @G@@@@ TNZ LCT . RETYPE JA )@@G@@ON LINE ZERO? @E@@@@ J IBERR . IJB )@@G@@T'S A NO-NO @E@@@@ SNA RC,DC1 . IMAGE DEJC )@@G@@LETED BY ED @G@@@@ AN,U LCT,1 . RETYPE DOESN'JD )@@G@@T INCREASE LCT @]@@@@RETYP2 . @E@@@@ L A9,RPTK JE )@@G@@ . LOAD REPEAT COUNTER @A@@@@ LMJ X10,WRB JF )@@G@@@C@@@@ AA,U LCT,1 . INCR LINE COUNT @E@@@@ALENT2 SNJG )@@G@@A RC,AC1 . IMAGE ADDED BY ED @E@@@@ L JH )@@G@@ A1,DELIM . GET DELIMITER @E@@@@ TE,U A1,'JI )@@G@@+' . IS IT + ? @C@@@@ J THISLINE JJ )@@G@@ . NO @E@@@@ SNZ ONNLINE . SET FLAG FJK )@@G@@OR NEXT LINE@E@@@@ LMJ X10,TYPEIN . READ A FULL LJL )@@G@@INE @E@@@@ SZ ONNLINE . CLEAR FLAG NOW JM )@@G@@@E@@@@ SZ BLKLINE . ZERO BLANK LINE @C@@@@JN )@@G@@ SNZ EDCT . COLUMN 1 @C@@@@ L JO )@@G@@ A0,(1,1) . @C@@@@ J THISLINE+2 JP )@@G@@ . GO @C@@@@THISLINE LA A0,(1,2) . @C@@@@JQ )@@G@@ AA A0,EDCT . @E@@@@ SZ JR )@@G@@ A1 . IMAG80 PTR @E@@@@ TNZ BLKLJS )@@G@@INE . BLANK LINE? @C@@@@ J $+3 JT )@@G@@ . NO @E@@@@ L A5,BLANK2 . LOAD A JU )@@G@@BLANK CHAR @E@@@@ J INSTYP . GO INSERT IT JV )@@G@@ @E@@@@LOAD LA A5,EDIT80-1,A0 . GET EDIT CHARACTER JW )@@G@@@E@@@@ TNE A5,THETAB . IS IT A TAB? @A@@@@JX )@@G@@ LMJ X10,ADJUST @E@@@@INSTYP S A5,IMAG80,JY )@@G@@A1 . STORE CHAR IN IMAGE@E@@@@ A,U A1,1 . INJZ )@@G@@CR A1 ANYHOW. @E@@@@ TG A1,SAVECL . LINKA )@@G@@E LIMIT MAX? @A@@@@ J RETYP3 @I@@@@ KB )@@G@@ TLEM A0,COUNT . HAVE ALL EDIT CHARACTERS BEEN SEEN? KC )@@G@@ @G@@@@ J LOAD . NO ,JUMP AND GET NEKD )@@G@@XT CHARACTER@]@@@@RETYP3 . @A@@@@ S A1,LENGTH KE )@@G@@@A@@@@ LMJ X10,PACK @I@@@@ TNZ BRKSKF )@@G@@ET . IF BREAK KEY WAS HIT, DON'T REPEAT @E@@@@ KG )@@G@@ JGD A9,RETYP2+1 . REPEAT ON COUNT. @E@@@@ TZ KH )@@G@@ IBFLG . IS IT 'IB' COMMAND? @C@@@@ J IBRKI )@@G@@ET . YES @G@@@@ SZ BLKLINE KJ )@@G@@ . ZERO BLANK LINE INDICATOR @^@@@@ J NXRQ@C@@@@KK )@@G@@. THIS IS 'IB' - INSERT BEFORE - CODE. @E@@@@IBIN TNZ KL )@@G@@ LCT . IS THIS LINE 0? @E@@@@ J IBERKM )@@G@@R . YES JUMP TO ERROR @E@@@@ LMJ X9,IMAGESAKN )@@G@@V . SAVE IMAGE @E@@@@ L A9,RPTK KO )@@G@@ . SET REPEAT @E@@@@ SNZ IBFLG . SET KP )@@G@@'IB' FLAG @E@@@@ J ALENT2 . TREAT LKQ )@@G@@IKE RETYPE @C@@@@IMAGESAV LA A1,(1,IMAGE) . DO @E@@@@KR )@@G@@ LA A0,(1,IMSAV) . COPY OF IMAGE @C@@@@ KS )@@G@@ L R1,IL . TO IMSAV @C@@@@ BT A0,0,*A1 KT )@@G@@ . DO IT. @G@@@@ L A0,ICW . GET KU )@@G@@LENGTH OF EDIN REC. @C@@@@ S A0,ILSAV .KV )@@G@@ SAVE IT. @C@@@@ J 0,X9 . RETURN @G@@@@KW )@@G@@IBERR TYP E21,L21 . TYPE ILLEGAL AT LINE 0 KX )@@G@@@G@@@@ J NXRQ . READ ANOTHER COMMAND KY )@@G@@ @E@@@@IBRET LMJ X10,WRB . WRITE OUT INSERT. KZ )@@G@@@E@@@@ AA,U LCT,1 . INCR LINE COUNT. @E@@@@LA )@@G@@ SZ IBFLG . TURN OFF IBFLG. @E@@@@ LB )@@G@@ LMJ X9,IMAGEREC . RECOVER IMAGE @E@@@@ J LC )@@G@@ NXRQ . NEXT COMMAND @C@@@@IMAGEREC LA ALD )@@G@@1,(1,IMSAV) . RESTORE @C@@@@ LA A0,(1,IMAGE) .LE )@@G@@ IMAGE @G@@@@ L A2,ILSAV . GET IMAGE LENGLF )@@G@@TH IN R1 @C@@@@ SSL A2,24 . LG )@@G@@@C@@@@ L R1,A2 . @C@@@@ BT LH )@@G@@ A0,0,*A1 . DO IT. @C@@@@ L A0,ILSAV LI )@@G@@ . GET OLD @C@@@@ S A0,ICW . SET. LJ )@@G@@@E@@@@ LMJ X10,DECODE . CONVERT INTO IMAG80. @E@@@@LK )@@G@@ J LINERR . EOF - IMPOSSIBLE @E@@@@ LL )@@G@@ AN,U LCT,1 . ADJUST LINE COUNT @C@@@@ J LM )@@G@@ 0,X9 . RETURN @A@@@@/ . DITTO FUNCTION AND MOVE LN )@@G@@ @E@@@@MOVEF1 SNZ MOVEF . SET MOVE COM FLAG LO )@@G@@@E@@@@ J $+2 . SKIP FLAG CLEAR @E@@@@LP )@@G@@DITTO1 SZ MOVEF . CLEAR MOVE FLAG @G@@@@ LQ )@@G@@ S LCT,R8 . SAVE FOR MOVE RECOVERY @E@@@@LR )@@G@@ LMJ X8,CHKEOF . AT THE END OF FILE @E@@@@ LS )@@G@@ SZ DITFIL . SET FILE COUNT ZERO@C@@@@ DO INSTAT LT )@@G@@, S,S6 R10,STATBUF+6 . @C@@@@ SNZ DBUFCNT LU )@@G@@ . DBUFCNT=1 @E@@@@ SZ DITFAST . FASTRAND ADLV )@@G@@DRESS=0 @E@@@@ LMJ X10,GET . GET FIRST FIELW )@@G@@LD @E@@@@ JZ A1,NUMERR . NO FIELDS? LX )@@G@@@E@@@@ LMJ X10,BIN0 . CONV TO BINARY @C@@@@LY )@@G@@ S A10,DIT1 . SAVE @E@@@@ LMJ LZ )@@G@@ X10,GET . GET 2ND FIELD @G@@@@ JZ A1,DMA )@@G@@ITTO3 . 0= DITTO ONLY ONE LINE @C@@@@ LMJ MB )@@G@@ X10,BIN0 . CONV @C@@@@ S A10,DIT2 MC )@@G@@ . SAVE @G@@@@ TLE A10,DIT1 . FIRST FIELD >MD )@@G@@SECOND? @C@@@@ J LINERR . YES ME )@@G@@@E@@@@DITANAL L A10,LCT . GET LINE COUNT @C@@@@MF )@@G@@ S A10,DITLN . SAVE @E@@@@ L MG )@@G@@ A10,DIT1 . GET LINE TO GO TO @G@@@@ GOLINE LINEMH )@@G@@RR . GO, ON EOF GO TO LINERR @G@@@@ L A10,DIMI )@@G@@T2 . THIS IS THE LINE TO BE DITTOED @E@@@@ ANMJ )@@G@@ A10,DIT1 . FORM LENGTH @E@@@@ S MK )@@G@@ A10,DITLENTH . SAVE LENGTH @G@@@@DITRD LMJ X10ML )@@G@@,WRDIT . WRITE TO DITTO FILE @E@@@@ LMJ MM )@@G@@ X10,WRB . WRITE TO EDIT FILE@E@@@@ LMJ XMN )@@G@@10,READ . READ NEXT IMAGE @E@@@@ LMJ X10,DITERMO )@@G@@R2 . EOF IS AN ERROR @E@@@@ JGD A10,DITRD MP )@@G@@ . READ 'EM ALL @G@@@@ L A10,DITLN . MQ )@@G@@GET LINE ORIGINALLY AT @E@@@@ GOLINE DITERR2 MR )@@G@@ . GO TO IT @E@@@@ TZ BRKSET . WMS )@@G@@AS BREAK KEY HIT? @G@@@@ J NXRQ . YES,MT )@@G@@ ESCAPE FROM DITTO HERE @G@@@@ . THIS SECTION ADDS IN IMAGES FROM SAVE AMU )@@G@@REA AND FILE (IF NECESSARY) @]@@@@ . FOR DITTO@E@@@@ TNZ MV )@@G@@ DITFIL . WAS FILE USED? @E@@@@ J NOFIMW )@@G@@L . NO FILE NEEDED @I@@@@ LMJ X9,TOOLONGMX )@@G@@ . FILE USED WRITE OUT PRESENT IMAGE AREA @G@@@@ SZMY )@@G@@ DITFAST . MOVE FASTRAND ADD TO ZERO @E@@@@READNXMZ )@@G@@T L,U A0,DITPKT . GET DITTO I-O PKT @E@@@@ L,NA )@@G@@U A1,R$ . READ CODE @C@@@@ S NB )@@G@@ A1,DITCODE . @E@@@@ ER IOW$ NC )@@G@@ . READ FIRST SECTION @I@@@@ L,U A0,DITSECL . GND )@@G@@ET DITTO BUFFER LENGTH IN SECTORS @G@@@@ A A0,DNE )@@G@@ITFAST . ADD TO PRESENT FASTRAND ADDRESS@C@@@@ S NF )@@G@@ A0,DITFAST .REPLACE @E@@@@ DECR DITFIL NG )@@G@@ . DECREMENT DITFIL @C@@@@NOFIL L X8,(1,1) . NH )@@G@@ @G@@@@NEXTIM LMJ X10,WRB . WRITE OUT CURRENT LNI )@@G@@INE @G@@@@ A,U LCT,1 . INCREMENT LINNJ )@@G@@E COUNT @C@@@@ L A2,DITBUF,X8 . GET ICWNK )@@G@@@C@@@@ S A2,ICW . @I@@@@ SNNL )@@G@@A RC,AC1 . MARK IT ADDED ED011650 NM )@@G@@@G@@@@ L,S2 R1,DITBUF,*X8 . GET WORD COUNT OF IMAGE NN )@@G@@ @G@@@@ L A2,(1,IMAGE-DITBUF) . GET DESTINATNO )@@G@@ION @E@@@@ BT A2,DITBUF,*X8 . TRANSFERNP )@@G@@ IMAGE@E@@@@ TNZ BRIEF2 . BRIEF MODE? NQ )@@G@@@E@@@@ LMJ X10,TYPOUT . TYPE OUT LINE @E@@@@NR )@@G@@ TZ BRKSET . WAS BREAK KEY HIT? @C@@@@ NS )@@G@@ J DITBRK . YES @G@@@@ L,U A2,0NT )@@G@@,X8 . GET RID OF INCREMENT @E@@@@ TLE NU )@@G@@ A2,DBUFCNT . END OF BUFFER? @E@@@@ J NEXTNV )@@G@@IM . NO, GET NEXT IMAGE @E@@@@ TZ DITFIL NW )@@G@@ . ANY MORE IN FILE? @G@@@@ J READNXT NX )@@G@@ . READ NEXT FILE SECTION @E@@@@DITBRK LMJ X10,DECODENY )@@G@@ . RECOVER LAST IMAGE @E@@@@ ER ERR$ NZ )@@G@@ . EOF IMPOSSIBLE @I@@@@ AN,U LCT,1 . DOA )@@G@@ECREMENT LINE COUNT FOR CORRECT VALUE @E@@@@ TNZ MOVEOB )@@G@@F . MOVE COM? @C@@@@ J NXRQ OC )@@G@@ . NOT MOVE@E@@@@ L A10,DIT2 . GET LASTOD )@@G@@ LINE @G@@@@ TNG A10,DITLN . LESS THAN INSEOE )@@G@@RT SPOT? @G@@@@ J DORGLN . YES, USEOF )@@G@@ ORIGINAL LN NUM FOR DEL@C@@@@ L A10,DITLN . OG )@@G@@ @E@@@@ TG A10,DIT1 . DIT1 >INSERT SPOT? OH )@@G@@@C@@@@ J MVERR . NO-ERROR@C@@@@ L OI )@@G@@ A0,DIT1 . @C@@@@ L A10,DIT2 OJ )@@G@@ . @G@@@@ S A10,DIT1 . DIT1=DITOK )@@G@@2+1(-1 FOR DELETE) @C@@@@ A A10,DIT2 . OL )@@G@@ @C@@@@ AN A10,A0 . @I@@@@ OM )@@G@@ S A10,DIT2 . DIT2=DIT2+DIT2-DIT1+1(-1 FOR DEL) ON )@@G@@ @C@@@@ J MVDEL . @E@@@@DORGLNOO )@@G@@ DECR DIT1 . (-1 FOR DELETE) @E@@@@ DEOP )@@G@@CR DIT2 . (-1 FOR DELETE) @E@@@@ L OQ )@@G@@ A10,DIT2 . DIT2 MUST BE IN A10 @E@@@@ J MVDEOR )@@G@@L . GO DELETE LINES @G@@@@MVERR TYP E52,L52 OS )@@G@@ . MOVE WITHIN MOVE ILLEGAL @E@@@@ J NXRQOT )@@G@@ . NEXT COMMAND @E@@@@DITTO3 L A0,DIT1 OU )@@G@@ . GET FIRST SPEC @E@@@@ S A0,DIT2 OV )@@G@@ . PUT IN SECOND @E@@@@ J DITANAL . POW )@@G@@ROCEED NORMALLY @G@@@@ . THIS ROUTINE WRITES LINES TO DITTO FILE. THEOX )@@G@@ FILE IS USED ONLY @G@@@@ . IF THERE IS NOT ENOUGH ROOM TO SAVE THEOY )@@G@@ DITTO INFORMATION IN THE @^@@@@ . DITTO BUFFER @G@@@@WRDIT OZ )@@G@@ L A3,DBUFCNT . GET BUFFER WORD COUNT @E@@@@PA )@@G@@ AU A3,IL . ADD IMAGE LENGTH + @E@@@@ PB )@@G@@ A,U A4,1 . 1 FOR ICW @G@@@@ TGPC )@@G@@,U A4,DITLEN . EXCEEDS BUFFER LENGTH @E@@@@ PD )@@G@@ LMJ X9,TOOLONG . THEN WRITE TO FILE @E@@@@ LXPE )@@G@@I,U A3,1 . LOAD INCREMENT @E@@@@ L PF )@@G@@ A0,ICW . TRANSFER ICW @C@@@@ S A0,DPG )@@G@@ITBUF,*A3 . @E@@@@ L A2,(1,IMAGE-DITBUF) PH )@@G@@ . SOURCE LOC @E@@@@ L R1,IL . IMAGE LPI )@@G@@ENGTH @E@@@@ BT A3,DITBUF,*A2 . TRANSFERPJ )@@G@@ IMAGE@E@@@@ S A3,DBUFCNT . SAVE COUNT PK )@@G@@@C@@@@ J 0,X10 . RETURN @C@@@@ . IF TOO MUPL )@@G@@CH OPEN DITTO FILE AND WRITE @E@@@@TOOLONG TZ DIASGD PM )@@G@@ . DITTO FILE ASGED? @C@@@@ J WRITEDIT PN )@@G@@ . YES @E@@@@ L A0,(4,ASGDI) . ASSIGN IT PO )@@G@@ @C@@@@ ER CSF$ . @E@@@@ PP )@@G@@ JNZ A0,FILERR . ASSIGN ERROR @E@@@@ SNPQ )@@G@@Z DIASGD . SET ASSIGNED FLAG @E@@@@WRITEDIT L,U PR )@@G@@ A0,DITPKT . LOAD I-OPKT @E@@@@ L,U A1,WPS )@@G@@$ . WRITE CODE @C@@@@ S A1,DITCODEPT )@@G@@ . @E@@@@ ER IOW$ . PERFORMPU )@@G@@ I-O @I@@@@ L,U A0,DITSECL . GET DITTO BUFPV )@@G@@FER LENGTH IN SECTORS @G@@@@ A A0,DITFAST PW )@@G@@ . ADD TO PRESENT FASTRAND ADDRESS@C@@@@ S A0,DITFASTPX )@@G@@ .REPLACE @E@@@@ INCR DITFIL . INCREMEPY )@@G@@NT DITFIL @G@@@@ L,U A3,1 . RESET POINTERPZ )@@G@@ FOR BUFFER @C@@@@ J 0,X9 . RETURN QA )@@G@@@C@@@@ J 0,X10 . @^@@@@ . DITTO ERRQB )@@G@@ORS @A@@@@DITERR2 JNZ A10,LINERR @C@@@@ L QC )@@G@@ R9,X10 . SAVE X10@C@@@@ SZ OK QD )@@G@@ . @C@@@@ SZ ICW . QE )@@G@@@E@@@@ SNZ WINHIB . INHIBIT WRITING @C@@@@QF )@@G@@ LMJ X3,TOPS2 . GO TO TOP@C@@@@ L QG )@@G@@ X10,R9 . @E@@@@ SZ A10 QH )@@G@@ . RESET A10 @C@@@@ J 0,X10 . QI )@@G@@ @E@@@@LINERR TYP E22,L22 . EOF ERROR QJ )@@G@@@C@@@@ J RECTST . @G@@@@CHKEOF . QK )@@G@@THIS ROUTINE CHECKS TO SEE IF PAST THE END OF FILE @E@@@@ QL )@@G@@ TZ OK . PAST END OF FILE? @E@@@@ J QM )@@G@@ 0,X8 . NOPE RETURN @G@@@@ L QN )@@G@@ A10,LCT . GET CURRENT LINE COUNT @I@@@@ A,QO )@@G@@U LCT,1 . INCREMENT LINE COUNT TO FORCE A TOP QP )@@G@@@G@@@@ GOLINE LINERR . SHOULD ALWAYS FIND LINE QQ )@@G@@ @C@@@@ J 0,X8 . RETURN @G@@@@ . @/ QR )@@G@@AUTO SAVE ROUTINES. AUTO SAVE IS PERFORMED BY COPYING THE CURRENT @G@@@@QS )@@G@@ . SCRATCH FILE INTO THE CATALOGED FILE ED$TB. THIS CAN BE RECOVERED QT )@@G@@@A@@@@ . BY DOING AN @ED WITH AN R OPTION.@]@@@@ . @A@@@@ . THIQU )@@G@@S ROUTINE SETS AUTO NUMBER @I@@@@AUTO1 TNZ DEMAND QV )@@G@@ . DEMAND? ED020270 @I@@@@ J QW )@@G@@ BAUTO . NO, CAN'T DO AN AUTO ED020280 @I@@@@QX )@@G@@ TNOPTN 'D' . IS THIS REALLY DEMAND? QY )@@G@@ED020290 @I@@@@ J BAUTO . NO, DON'T LET QZ )@@G@@HIM DO IT ED020300 @G@@@@ SNZ AUTCALL RA )@@G@@ . FLAG: AUTO COMMAND WAS CALLED @E@@@@ LMJ X10,GET RB )@@G@@ . GET NUMBER @G@@@@ JZ A1,DOAUTO RC )@@G@@ . NO NUMBER, DIRECT AUTO @E@@@@ LMJ X10,BIN0 RD )@@G@@ . CONVER TO BINARY @G@@@@ TNG,U A10,MINAUT RE )@@G@@ . GREATER THAN MINIMUM? @C@@@@ JNZ A10,MAUTERRF )@@G@@ . @C@@@@ S A10,AUTOTST . RG )@@G@@@G@@@@ SZ AUTOCNT . ZERO TRANSACTION COUNT RH )@@G@@ @E@@@@ J NXRQ . NEXT COMMAND RI )@@G@@@I@@@@BAUTO TYP E53,L53 . NO AUTO ALLOWED IN BATCH RJ )@@G@@ ED020320 @I@@@@ J NXRQ . RK )@@G@@ ED020330 @E@@@@MAUTER A$EDIT ETAB RL )@@G@@ . TOO SMALL @G@@@@ A$EMSG E51 RM )@@G@@ . TELL HIM WHAT MIN IS @C@@@@ A$EDECV MINAUT,,URN )@@G@@ . @^@@@@ A$EDITX . @C@@@@ TYP RO )@@G@@ IMBUF,6 . @C@@@@ J NXRQ RP )@@G@@ . @A@@@@ . THIS ROUTINE DOES THE AUTO SAVE @E@@@@DOAUTO SZRQ )@@G@@ X10 . THIS IS DIRECT AUTO @I@@@@ L,U RR )@@G@@ A0,0377776 . BIG NUMBER ED011670 @E@@@@RS )@@G@@ TNZ AUTOTST . AUTO TEST SET? @G@@@@ RT )@@G@@ S A0,AUTOTST . SET TO REDICULOUSLY BIG NUMBER @E@@@@RU )@@G@@AUTOSAV S X10,DITX10S . SAVE X10 @G@@@@ RV )@@G@@ S LCT,DITLN . SAVE LINE AT WHICH AUTO DONE @E@@@@RW )@@G@@ TYP E24,L24 . TYPE 'AUTO' @G@@@@ RX )@@G@@ LMJ X3,TOPS . GET ALL CORRECTIONS INTO ED$TB @G@@@@RY )@@G@@ TNZ AUTCALL . WAS AUTO COMMAND CALLED? RZ )@@G@@@G@@@@ J AUTOGO . NO, DON'T SET BIT AGAIN SA )@@G@@ @E@@@@ TNZ OUTFIL . OUTPUT FILE FD? SB )@@G@@@E@@@@ J AUTOGO-1 . NO, ASCII @G@@@@SC )@@G@@ L A0,ICW . SET BIT IN ICW (HEADER) SD )@@G@@@G@@@@ OR,U A0,010 . SAYING OUTPUT FILE IS FD SE )@@G@@ @G@@@@ S A1,ICW . STORE RESULT BACK INSF )@@G@@ ICW @G@@@@ LMJ X3,TOPS . GET BIT CORRECSG )@@G@@TION INTO FILE @E@@@@ SZ AUTCALL . CLEAR FLSH )@@G@@AG @]@@@@AUTOGO . @E@@@@ SZ AUTOCNT SI )@@G@@ . CLEAR COUNT @G@@@@ L A10,DITLN . GSJ )@@G@@ET ORIGINAL LINE NUMBER @E@@@@ GOLINE EOFC SK )@@G@@ . GO TO LINE A10 @E@@@@ L X10,DITX10S . RSL )@@G@@ECOVER X10 @E@@@@ TZ X10 . DIRECT SSM )@@G@@AVE? @E@@@@ J NOTAUTO . RETURN TO TYSN )@@G@@PEIN @C@@@@ J NXRQ . @]@@@@ . @/ SO )@@G@@ @C@@@@ . THIS ROUTINE DELETES THE NEXT N LINES @E@@@@ SP )@@G@@ . POINTER IS LEFT AT THE LAST LINE DELETED@^@@@@DEL1 . SQ )@@G@@DELETE @E@@@@ L A1,DELIM . GET DELIMITER SR )@@G@@ @E@@@@ TNE,U A1,'+' . WAS IT A PLUS SS )@@G@@@E@@@@ SNZ DGONXT . YES- SET FLAG @A@@@@ST )@@G@@ LMJ X10,GET @A@@@@ LMJ X10,BIN SU )@@G@@ @C@@@@ S A10,DIT1 . SAVE ARG ONE @C@@@@ SV )@@G@@ LMJ X10,GET . GET ARG 2 @G@@@@ JZ A1,DSW )@@G@@ELNXT . MEANS DELETE NEXT DIT1 LINES @C@@@@ LMJ SX )@@G@@X10,BIN . CONVERT @C@@@@MVDEL TG A10,DIT1 . IS SY )@@G@@DIT1 BIGGER?@C@@@@ J DEL3 . NO, NEW FMT @E@@@@SZ )@@G@@ JNZ A10,LINERR . INVALID LINE @C@@@@DELNXTTA )@@G@@ TNZ LCT . LINE 0? @C@@@@ J IBERTB )@@G@@R . ILLEGAL @C@@@@ L A10,DIT1 . RELOAD ARTC )@@G@@G ONE.@E@@@@ S A10,SSAVE . RESET LINE COUNT TD )@@G@@@]@@@@DEL2 . @A@@@@ SZ LENGTH @E@@@@ TE )@@G@@ TZ BRKSET . WAS BREAK KEY HIT? @E@@@@ J TF )@@G@@ NXRQ . YES, DELETE NO MORE@E@@@@ SNA TG )@@G@@ RC,DC1 . IMAGE DELETED BY ED @A@@@@ LMJ X10,TH )@@G@@WRB @E@@@@ AN,U LCT,1 . DCREMENT LINE COUNT TI )@@G@@ @A@@@@ JZ A10,DONDEL @A@@@@ LMJ TJ )@@G@@ X10,READ @^@@@@ J EOFC@A@@@@ JGD TK )@@G@@ A10,DEL2 @C@@@@DEL3 AN A10,DIT1 . NET LENGTH TL )@@G@@@E@@@@ S A10,SSAVE . SAVE FOR SCAN COUNT@E@@@@TM )@@G@@ S A10,DIT2 . SAVE DIFF IN DIT2 @E@@@@ TN )@@G@@ L A10,DIT1 . GET START @C@@@@ A,TO )@@G@@U A10,1 . ADJUST @E@@@@ GOLINE EOFC TP )@@G@@ . GO TO LINE @C@@@@ L A10,DIT2 . NETTQ )@@G@@ TO DEL @E@@@@ S A10,SSAVE . SAVE FOR SCAN TR )@@G@@COUNT @C@@@@ J DEL2 . DO IT. @E@@@@DONDELTS )@@G@@ L A10,LCT . GET LINE COUNT @E@@@@ TZTT )@@G@@ DGONXT . GO TO NEXT LINE? @E@@@@ A,U TU )@@G@@ A10,1 . GO TO NEXT LINE @I@@@@ TNZ MOVETV )@@G@@F . DELETE FOR MOVE COMMAND 817TM274 @I@@@@ TW )@@G@@ J NOMOVV . NOPE 817TM2TX )@@G@@75 @G@@@@ L A10,R8 . GET LINE COQNT FROM TY )@@G@@R8 @I@@@@ J GOMVV . GO TO LINE TZ )@@G@@ 817TM277 @I@@@@NOMOVV TNZ DGONXT UA )@@G@@ . GO TO NEXT LINE 817TM279 @E@@@@ A,U UB )@@G@@ LCT,1 . NO-FORCE A TOP @I@@@@GOMVV GOLINE EOFCUC )@@G@@ . GO TO THIS LINE 817TM281 @E@@@@ UD )@@G@@ SZ MOVEF . CLEAR FLAGS @C@@@@ SZUE )@@G@@ DGONXT . @E@@@@ J NXRQ UF )@@G@@ . NEXT COMMAND @A@@@@ . @/ MOVE TO SPECIFIED LINE UG )@@G@@@C@@@@ ON EDMODE . @E@@@@GT1 LMUH )@@G@@J X10,GET . GET NUMBER @C@@@@ J UI )@@G@@ LINENUM . GO TO IT@E@@@@NEX1 LMJ X10,GET UJ )@@G@@ . GET +,-, OR NUMBER @^@@@@ FIELDATA . @C@@@@ TNUK )@@G@@E,U A1,'-' . GO BACK?@C@@@@ J GOMIN+1 UL )@@G@@ . YES @E@@@@ TNE,U A1,'+' . GO FORWAUM )@@G@@RD? @^@@@@ ASCII . @C@@@@ J GOPLUN )@@G@@+1 . YES @G@@@@ J GOPL+2 . YEUO )@@G@@S BUT HAVE THE NUM ALREADY @G@@@@HEAD1 L,U A10,1 UP )@@G@@ . GO TO HEAD,I.E. LINE 1 @C@@@@ J LINENUM+1 UQ )@@G@@ . @C@@@@ OFF EDMODE . UR )@@G@@@]@@@@ . @E@@@@GOPL SNZ EDCT . SET TO GETUS )@@G@@ AT COL 2 @C@@@@ LMJ X10,GET . GET REL COUNT@C@@@@UT )@@G@@ LMJ X10,BIN . CONVERT @C@@@@ J UU )@@G@@ GOTO4 . DO IT *** @E@@@@GOMIN SNZ EDCT UV )@@G@@. SET TO GET A COL 2 @C@@@@ LMJ X10,GET . GET RELUW )@@G@@ COUNT@C@@@@ LMJ X10,BIN0 . CONVERT @C@@@@ UX )@@G@@ TNZ A10 . -0 @E@@@@ L,U A10,UY )@@G@@1 . ACTS LIKE -1 @E@@@@ LN A10,A10 UZ )@@G@@ . MAKE NEGATIVE @E@@@@ A A10,LCT VA )@@G@@ . ADD IN CURRENT COUNT@E@@@@ GOLINE EOFC . GOVB )@@G@@ TO CORRECT LINE @C@@@@ J GOTO9 . LEAVE VC )@@G@@@]@@@@GOTO3 . @E@@@@ LMJ X3,TOPS . GO TO TOP OVD )@@G@@F FILE @]@@@@NEXT2 . @A@@@@ LMJ X10,WRB VE )@@G@@@E@@@@ LMJ X10,FREAD . FAST READ @^@@@@VF )@@G@@ J EOFC@]@@@@GOTO4 . @G@@@@ TNZ BRKSVG )@@G@@ET . EXIT IF BREAK KEY HIT @A@@@@ JGD VH )@@G@@ A10,NEXT2 @E@@@@ SZ FASTREAD . CLEAR FVI )@@G@@ASTREAD @C@@@@GOTO5 LMJ X10,WRB . WRITE @G@@@@VJ )@@G@@ LMJ X10,READ . REGULAR READ OF LINE WANTED VK )@@G@@@E@@@@ J EOFC . END OF FILE @C@@@@VL )@@G@@GOTO7 TNZ GORET . RETURN?@C@@@@ J VM )@@G@@ $+3 . NO @E@@@@ SZ GORET VN )@@G@@ . CLEAR FLAG @C@@@@ J 1,X6 . YVO )@@G@@ES @E@@@@GOTO9 TZ BRIEF2 . BRIEF MODE? VP )@@G@@@C@@@@ J NXRQ . YES @E@@@@ TZVQ )@@G@@ A10 . NO, LINE 0? @A@@@@ LMJ VR )@@G@@ X10,TYPOUT @^@@@@ J NXRQ@]@@@@ . @G@@@@VS )@@G@@LINENUM LMJ X10,BIN0 . CONVERT SPEC FIELD TO BINARYVT )@@G@@@E@@@@ S A10,SSAVE . SAVE FOR SCAN @G@@@@VU )@@G@@ TNE A10,LCT . ARE WE THERE ALREADY? VV )@@G@@@C@@@@ J GOTO7 . YES! @E@@@@GOTOIT JZVW )@@G@@ A10,GOTO0 . 'GO TO 0'='TOP' @G@@@@ AN,U VX )@@G@@ A10,1 . DECREMENT FOR CORRECT LOOP VALUE @I@@@@ ANVY )@@G@@ A10,LCT . IS REQUESTED LINE ABOVE POINTER? VZ )@@G@@@C@@@@ JP A10,GOTO4 . NO @C@@@@ AAWA )@@G@@ A10,LCT . @E@@@@ JGD A10,GOTO3 WB )@@G@@ . DO A TOP AND SCAN @E@@@@ LMJ X3,TOPS WC )@@G@@ . DO A TOP @G@@@@ J GOTO5 . WWD )@@G@@ANTS TO GO TO LINE 1 @E@@@@GOTO0 LMJ X3,TOPS WE )@@G@@ . GO TO TOP @C@@@@ J GOTO7 . EXWF )@@G@@IT @^@@@@ . MOVE TO LAST LINE @G@@@@LAST1 TNZ OK WG )@@G@@ . AT THE END OF THE FILE ALREADY @I@@@@ LMJ X3,TWH )@@G@@OPS . HAVE TO GO ROUND TO GET IT TO WORK @E@@@@ WI )@@G@@ L,U X3,NXRQ . REGULAR ENTRY @E@@@@LAST3 LMWJ )@@G@@J X9,IMAGESAV . SAVE IMAGE @E@@@@ LMJ WK )@@G@@ X10,WRB . WRITE OUT IMAGE @E@@@@ LMJ X10,WL )@@G@@FREAD . READ FAST @E@@@@ J LAST2 WM )@@G@@ . END OF FILE @E@@@@ TNZ BRKSET WN )@@G@@ . BREAK KEY? @E@@@@ J LAST3 . RWO )@@G@@EAD ANOTHER @C@@@@LAST2 SZ FASTREAD . WP )@@G@@@E@@@@ LMJ X9,IMAGEREC . RECOVER IMAGE @E@@@@WQ )@@G@@ TNZ BRIEF2 . BRIEF MODE? @C@@@@ WR )@@G@@ LMJ X10,TYPOUT . TYPE IT@C@@@@ SZ ICW WS )@@G@@ . @E@@@@ SNZ WINHIB . WRITEWT )@@G@@ INHIBIT @C@@@@ SZ LENGTH . WU )@@G@@@C@@@@ J 0,X3 . NEXT @G@@@@ . @/ THIS CWV )@@G@@OMMAND SENDS A MESSAGE TO THE OPERATOR AND MAY SOLICIT @^@@@@ . A RWW )@@G@@ESPONSE @E@@@@OPR1 L A0,BLANK2 . BLANK OUWX )@@G@@T COMMAND @C@@@@ S A0,EDIT14 . @G@@@@WY )@@G@@OPR2 SZ COMPKT . CLEAR 1ST AND 3RD WORDS WZ )@@G@@@C@@@@ SZ COMPKT+2 . @E@@@@ SZXA )@@G@@ A0 . SET FOR DIVIDE @E@@@@ L XB )@@G@@ A1,COUNT . GET NO. _CHAR @E@@@@ DI,U A0,4XC )@@G@@ . GET NO. WORDS @E@@@@ TZ A1 XD )@@G@@ . REMAINDER? @E@@@@ A,U A0,1 XE )@@G@@ . YES, ROUND UP @E@@@@ CONVAF EDIT14,EDIT14 . ASXF )@@G@@CII TO FD @E@@@@ L,U A0,FIMBUF . GET MESXG )@@G@@SAGE ADDRESS@E@@@@ S A0,COMADD . PUT IN PACKETXH )@@G@@ @E@@@@ E$DIT FTAB . START EDIT XI )@@G@@@G@@@@ E$FD1 RUNID . INSERT RUNID AT HEAD OF MSXJ )@@G@@G @C@@@@ E$CHAR 053 . INSET : @I@@@@ XK )@@G@@ TZ CARDPCH . CARD PUNCH MSG? ED0116XL )@@G@@90 @I@@@@ J ALL1WD . YES, COPY ALL OF 1STXM )@@G@@ WORD ED011700 @C@@@@ E$CHAR EDIT14,,S5 . 1SXN )@@G@@T CHAR@E@@@@ E$CHAR EDIT14,,S6 . SECOND CHARACTER XO )@@G@@@I@@@@ J COPRES . COPY THE REST XP )@@G@@ ED011720 @I@@@@ALL1WD E$COPY 6,EDIT14 . COPY ALLXQ )@@G@@ OF 1ST WORD ED011730 @I@@@@ SZ CARDPCH XR )@@G@@ . CLEAR FLAGC ED011740 @I@@@@COPRES L,XS )@@G@@U A0,EDIT14+1 . COPY STARTING WITH SECOND WORD ED011760 XT )@@G@@@E@@@@ L A1,COUNT . CHAR COUNT @E@@@@XU )@@G@@ AN,U A1,6 . MINUS FIRST WORD @C@@@@ XV )@@G@@ E$COPY . STICK IN THE REST @C@@@@ E$COLN . GEXW )@@G@@T COLUMN NUMBER @E@@@@ TG,U A0,51 . CXX )@@G@@OUNT >50? @C@@@@ L,U A0,50 . XY )@@G@@@C@@@@ S A0,COMCHR . @^@@@@ E$XZ )@@G@@DITX . @E@@@@ L A1,DELIM . GET DELIMITERYA )@@G@@ @E@@@@ TE,U A1,'*' . * MEANS SOLICITED YB )@@G@@@E@@@@ J OPROUT . NO ANSWER WANTED @E@@@@YC )@@G@@ L,U A0,50 . MAX ANSWER=50 @C@@@@ YD )@@G@@ S A0,COMIEXP . @E@@@@ L,U A0,FYE )@@G@@IMBUF . ANSWER TO IMBUF @A@@@@ S A0,COMIADDYF )@@G@@ @E@@@@OPROUT L,U A0,COMPKT . PACKET ADDRESS YG )@@G@@@G@@@@ ER COM$ . SEND MESSAGE TO CONSOLE YH )@@G@@ @E@@@@ TE,U A1,'*' . ANSWER REQUIRED? YI )@@G@@@C@@@@ J NXRQ . NO @E@@@@ L YJ )@@G@@ A0,COMICHR . INPUT CHAR COUNT @E@@@@ DSA YK )@@G@@ A0,36 . SHIFT FOR DIVIDE @C@@@@ DI,U A0,6YL )@@G@@ . @C@@@@ TZ A1 . YM )@@G@@ @C@@@@ A,U A0,1 . @C@@@@ YN )@@G@@ LSSL A0,18 . @E@@@@ A A0,(YO )@@G@@0100,FIMBUF) . FORM PRINT PACKET @E@@@@ ER PRINT$ YP )@@G@@ . PRINT IT @E@@@@ J NXRQ YQ )@@G@@ . NEXT COMMAND @A@@@@ . @/ THIS ROUTINE PRINT LINES @G@@@@YR )@@G@@LNP1 SNZ LNPRT . SET LINE NUMBER PRINTER YS )@@G@@@E@@@@PRINT1 SNZ PNTINQ . REAL PRINT ENTRANCE @E@@@@YT )@@G@@PRINT1Q L A1,DELIM . GET DELIMITER @E@@@@ YU )@@G@@ TNE,U A1,'+' . WAS IT PLUS? @G@@@@ J YV )@@G@@ OUTPT1 . YES, DON'T PRINT THIS LINE @E@@@@ YW )@@G@@ TNE,U A1,'!' . PRINT ALL @C@@@@ J YX )@@G@@ PRINTALL . YES @E@@@@ LMJ X10,GET YY )@@G@@ . GET FIRST ARG @G@@@@ TZ ONSITE YZ )@@G@@ . ONSITE PRINTOUT? @E@@@@ JZ A1,PRINTALZA )@@G@@L . ASSUME A ! IF NO ARG@A@@@@ LMJ X10,BIN ZB )@@G@@@E@@@@ S A10,DIT1 . SAVE FIRST ARG @C@@@@ZC )@@G@@ LMJ X10,GET . LOOK FOR NEXT@C@@@@ LMJ ZD )@@G@@ X10,BIN . CONVERT @C@@@@ TG A10,DIT1 . FZE )@@G@@IRST BIGGER?@E@@@@ JNZ A10,PRINT3 . NO, NEW FORMAT ZF )@@G@@ @E@@@@ JNZ A10,LINERR . LINE REF ERROR ZG )@@G@@@E@@@@ L A10,DIT1 . YES, RELOAD ARG ONE. @E@@@@ZH )@@G@@ S A10,SSAVE . SAVE FOR SCAN COUNT@E@@@@ ZI )@@G@@ TNZ LCT . ADD 1 IF LINE 0 @G@@@@ A,ZJ )@@G@@U A10,1 . ADJUST TO PRINT OUT CORRECT NUMB @]@@@@PRINT2ZK )@@G@@ . @G@@@@ TZ LCT . SKIP TYPOUT IF LINE ZL )@@G@@COUNT IS 0 @A@@@@ LMJ X10,TYPOUT @A@@@@ JZZM )@@G@@ A10,LIEXIT @E@@@@ TZ BRKSET . WZN )@@G@@AS BREAK KEY HIT? @E@@@@ J LIEXIT . YES, STZO )@@G@@OP PRINTING @A@@@@ LMJ X10,WRB @A@@@@ LMZP )@@G@@J X10,READ @^@@@@ J EOFC@A@@@@ JGZQ )@@G@@D A10,PRINT2 @C@@@@PRINT3 AN A10,DIT1 . NET LZR )@@G@@ENGTH @E@@@@ S A10,DIT2 . SAVE DIFF ZS )@@G@@@E@@@@ S A10,SSAVE . SAVE FOR SCAN COUNT@E@@@@ZT )@@G@@ L A10,DIT1 . GET STRT @C@@@@ ZU )@@G@@ A,U A10,1 . ADJUST @E@@@@ GOLINE EOFCZV )@@G@@ . GO TO LINE @C@@@@ L A10,DIT2 ZW )@@G@@ . RELOAD A10 @C@@@@ J PRINT2 . PRINT LINES ZX )@@G@@@I@@@@PRINTALL LMJ X3,TOPS . COMMAND TO PRINT ALL LINZY )@@G@@ES IN FILE @G@@@@ L,U A10,0777776 . BIGZZ )@@G@@ NUMBER IN A10 @E@@@@ S A10,SSAVE . SAA )@@G@@AVE FOR SCAN COUNT@E@@@@ SNZ FASTREAD . FAST READ WAB )@@G@@ILL DO @E@@@@ J PRINT2+3 . DON'T PRINT 1ST LIAC )@@G@@NE @E@@@@LIEXIT SZ PNTINQ . CLEAR REAL PRINT AD )@@G@@@E@@@@ TNZ PUNCH . PUNCH COMMAND? @C@@@@AE )@@G@@ J NXRQ . NOPE @E@@@@ L,U AF )@@G@@ A1,10000 . 3SECONDS @E@@@@ ER TWAIAG )@@G@@T$ . WAIT 1 SECOND @C@@@@ SZ PUNCH AH )@@G@@ . @C@@@@ J NXRQ . EXIT AI )@@G@@@A@@@@ . OUTPUT AFTER PRESENT LINE @]@@@@ . @G@@@@OUTPT1AJ )@@G@@ LMJ X10,GET . PICK UP NUMBER OF LINES @E@@@@AK )@@G@@ TNZ A1 . NOHING FOUND ? @C@@@@ AL )@@G@@ L,U A1,061 . ASSUME 1@E@@@@ LMJ X10,AM )@@G@@BIN . CONVERT TO BINARY @E@@@@ TNZ OK AN )@@G@@ . END OF FILE? @C@@@@ J EOFC AO )@@G@@ . YES @G@@@@ LMJ X10,WRB . CURRENT IMAGEAP )@@G@@ TO OUTPUT FILE @G@@@@ LMJ X10,READ . IMAGE FAQ )@@G@@ROM INPUT FILE @E@@@@ J EOFC . EAR )@@G@@ND OF FILE RETURN @I@@@@ J PRINT2 . NORMAL AS )@@G@@RETURN- USE PRINT ROUTIN E NOW @C@@@@ . THIS COMMAND PUNCH USED TO AT )@@G@@PUNCH PAPER TAPE @C@@@@PUNCH1 TYP E30,L30 . AU )@@G@@@C@@@@ L,U A1,3000 . 3SECONDS@E@@@@ ERAV )@@G@@ TWAIT$ . WAIT 1 SECOND @C@@@@ SNZ AW )@@G@@ PUNCH . PROCEED @C@@@@ J PRINT1 AX )@@G@@ . @C@@@@ . SEND PRINTOUT TO ONSITE PRINTER(OR PUNCH) @E@@@@AY )@@G@@LNSITE1 SNZ LNPRT . PRINT LINE NUMBERS @C@@@@ AZ )@@G@@ J SITE1 . @G@@@@CPUNCH SNZ CARDBA )@@G@@PCH . SET PUNCH FLAG AND ACT LIKE SITE @C@@@@SITE1 E$DIT BB )@@G@@ FTAB . @^@@@@ FIELDATA . @G@@@@ BC )@@G@@ E$MSG ('PR$&&&') . START USE IMAGE @^@@@@BD )@@G@@ ASCII . @E@@@@ ER DATE$ . GBE )@@G@@ET TIME OF DAY @C@@@@ E$FD1 A1 . USE IT BF )@@G@@@C@@@@ E$DITX . @A@@@@ DLBG )@@G@@ A0,FIMBUF @E@@@@ DS A0,ALTPKT+1 .BH )@@G@@ PUT IN PACKET @C@@@@ E$DIT FTAB . BI )@@G@@@E@@@@ E$MSG ASGPR . START ASG IMAGE @E@@@@BJ )@@G@@ E$FD2 ALTPKT+1 . PUT IN FILENAME @A@@@@ BK )@@G@@ E$MSGR . FINISH MESSAGE@^@@@@ E$DITX . @C@@@@ BL )@@G@@ L A0,(5,FIMBUF) . CSF IT@C@@@@ ER CSF$BM )@@G@@ . @C@@@@ JNZ A0,FILERR . EBN )@@G@@RROR @C@@@@ SNZ ONSITE . SET FLAG @C@@@@ BO )@@G@@ TZ CARDPCH . PUNCH? @C@@@@ J PRINBP )@@G@@T1 . YES @E@@@@ L,U A0,TREADSITE . HBQ )@@G@@EADING? @C@@@@ ER ATREAD$ . BR )@@G@@@G@@@@ L,U A1,'.' . INSERT . TO STOP PRTCA$ SBS )@@G@@CAN @C@@@@ S,Q1 A1,IMBUF+2,A0 . @I@@@@ BT )@@G@@ DL A1,HEADPA . GET START OF HEADING CONTROL IMAGE BU )@@G@@ @C@@@@ DS A1,IMBUF . PUT IN @E@@@@ BV )@@G@@ LSSL A0,18 . SHIFT WORD COUNT @E@@@@ A BW )@@G@@ A0,(5,ALTPKT+1) . FORM PRTCA$ PACKET @C@@@@ ER BX )@@G@@ APRTCA$ . @E@@@@ TZ BRKSET BY )@@G@@ . BREAK KEY HIT? @C@@@@ J SITEBRK . EBZ )@@G@@SCAPE @G@@@@ TZ NUMACT . IS THIS A NUMBERED ACA )@@G@@CTIVITY? @C@@@@ J FORKTR . YES @E@@@@CB )@@G@@ L A0,(0201,FORKTR) . LET'S BE CLEVER @G@@@@ CC )@@G@@ ER FORK$ . GET AN ACTIVITY NUMBER @G@@@@CD )@@G@@ SNZ NUMACT . SET FLAG SAYING WE NUMED IT CE )@@G@@@G@@@@ ER EXIT$ . FORGET THE UNNUMBERED ONE CF )@@G@@ @G@@@@FORKTR L A0,(0100,TRAILM) . START ANOTHER ACTIVICG )@@G@@TY @E@@@@ ER FORK$ .. TO ASK FOR MSCH )@@G@@G @E@@@@ J PRINT1 . GO TO PRINT ROUTINECI )@@G@@@E@@@@SITEBRK SZ ONSITE . CLEAR FLAG @E@@@@CJ )@@G@@ J NXRQ . NEXT COMMAND @]@@@@PNTALTCK )@@G@@ . @E@@@@ S A0,ALTPKT . PUT A0 IN PACKET CL )@@G@@@E@@@@ L,U A0,ALTPKT . GET PACKET ADDRESS @C@@@@CM )@@G@@ TZ CARDPCH . CPUNCH? @C@@@@ J CN )@@G@@ PNCHALT . YES @E@@@@ ER PRNTA$ CO )@@G@@ . ALT PRINT @C@@@@ J 0,X10 . EXCP )@@G@@IT @E@@@@PNCHALT SZ,S2 ALTPKT . REMOVE LINE SKIP CQ )@@G@@@C@@@@ ER PNCHA$ . PUNCH IT@C@@@@ J CR )@@G@@ 0,X10 . EXIT @^@@@@ . FINISH HERE @E@@@@CS )@@G@@ONSREC SZ ONSITE . CLEAR POINTER @G@@@@ CT )@@G@@ SZ LNPRT . CLEAR LINE NUMBER INDICATOR @E@@@@CU )@@G@@ TZ CARDPCH . CARD PUNCH COMMAND?@C@@@@ CV )@@G@@ J ONSBRK . YES @G@@@@ E$DIT FTABCW )@@G@@ . TIME AND DATE SIGN OFF @E@@@@ E$MSG CX )@@G@@ E33 . END PRINT ... @E@@@@ ER TDATCY )@@G@@E$ . GET TIME AND DATE @C@@@@ S A0,A5 CZ )@@G@@ . SAVE @C@@@@ E$DAY3 . MONTH DAY, YEAR DA )@@G@@@A@@@@ E$MSGR . AT ... @E@@@@ E$TIME A5 DB )@@G@@ . TIME OF DAY @^@@@@ E$DITX . @G@@@@DC )@@G@@ L A0,(0212,FIMBUF) . PRINT IT ALTERNATELY DD )@@G@@@G@@@@ LMJ X10,PNTALT . PUT IN ALTERNATE FILE DE )@@G@@ @G@@@@ LMJ X10,FILELT . PRINT FILE.ELEMENT NDF )@@G@@AME @E@@@@ L A0,(0114,FIMBUF) . PRINT IT ALTDG )@@G@@ERNATE@C@@@@ LMJ X10,PNTALT . @E@@@@ DH )@@G@@ L A0,(06601,BLANKS) . SKIP A PAGE @G@@@@ LMDI )@@G@@J X10,PNTALT . PRINT TO ALTERNATE FILE @E@@@@ DJ )@@G@@ E$DIT FTAB . START EDIT @C@@@@ L,DK )@@G@@U R2,10 . 10 WORDS@A@@@@ASKLPS E$FD2 DASH . DL )@@G@@ @C@@@@ JGD R2,ASKLPS . LOOP @^@@@@ DM )@@G@@ E$DITX . @C@@@@ L A0,(0326,FIMBUF) . DN )@@G@@@C@@@@ LMJ X10,PNTALT . PRINT IT @C@@@@ L DO )@@G@@ A0,(0326,FIMBUF) . @C@@@@ LMJ X10,PNTALTDP )@@G@@ . PRINT IT @G@@@@ L A0,(P 1,L42,E42) . **NO CADQ )@@G@@RD DECK** PLEASE RETURN @C@@@@ LMJ X10,PNTALT . DR )@@G@@ @E@@@@ L A0,BITS(1) . WAIT FOR ACTIVITY 1 DS )@@G@@@C@@@@ ER AWAIT$ . @E@@@@ L DT )@@G@@ A0,IMSAV . GET CONTROL WORD @G@@@@ LMJ DU )@@G@@ X10,PRNTALT . PRINT TO ALTERNATE FILE @E@@@@ONSBRK E$DV )@@G@@DIT FTAB . BREAKPOINT FILE @C@@@@ E$MSG DW )@@G@@ BRKPR . @C@@@@ E$FD2 ALTPKT+1 DX )@@G@@ . @^@@@@ E$DITX . @C@@@@ L A0,(DY )@@G@@3,FIMBUF) . @C@@@@ ER CSF$ . DZ )@@G@@ @E@@@@ E$DIT FTAB . FREE FILE EA )@@G@@@C@@@@ E$MSG FREPR . @C@@@@ E$EB )@@G@@FD2 ALTPKT+1 . @A@@@@ E$DITX . EC )@@G@@ @E@@@@ L A0,(4,FIMBUF) . FREE FILE ED )@@G@@@C@@@@ ER CSF$ . @C@@@@ E$EE )@@G@@DIT FTAB . @E@@@@ TZ CARDPCH EF )@@G@@ . PUNCH FILE? @C@@@@ J SIPCH EG )@@G@@ . YES @C@@@@ E$MSG SYMPR . @C@@@@EH )@@G@@ J SIPRT . @E@@@@SIPCH E$MSG EI )@@G@@ SYMCP . SYM PUNCH @C@@@@SIPRT E$FD2 ALTPEJ )@@G@@KT+1 . @^@@@@ E$MSGR . @^@@@@ E$EK )@@G@@DITX . @E@@@@ L A0,(4,FIMBUF) . SYM FILE EL )@@G@@ @C@@@@ ER CSF$ . @E@@@@ EM )@@G@@ JNZ A0,CSFRET . GO PRINT A0 @E@@@@ TNEN )@@G@@Z CARDPCH . CPUNCH COMMAND? @E@@@@ J EO )@@G@@ NXRQ . GET NEXT COMMAND @I@@@@ DL A0,(EP )@@G@@'MSG? ') . TYPE A @C@@@@ EQ )@@G@@ DS A0,IMBUF . @E@@@@ L,U A0,TER )@@G@@READSEQ . HEADING? @C@@@@ ER ATREAD$ ES )@@G@@ . @E@@@@ JZ A0,NXRQ . EXIT NO ET )@@G@@MSG @C@@@@ MSI,U A0,4 . CHANGE TO CHARS @E@@@@EU )@@G@@ S A0,C*[@@@@*SDFF*@G@@@@. R S I $ TEST PROGRAM EV )@@G@@ - D. KURLAND, NYU APRIL, 1974 @[@@@@. @F@@@@. WORKS AS EW )@@G@@OF 31.244 IF RSI$ THINGS ARE TURNED ON IN CONFIG. @F@@@@. (RSGAW$ FEX )@@G@@UNCTION DOES NOT WORK PROPERLY IN RELEASE 31.244 -- @F@@@@. THE FIXESEY )@@G@@ FOUND IN OUR 31 TCF FILE MUST BE APPLIED IF RSGAW$ @C@@@@. IS TO BE EZ )@@G@@USED - IF NOT, SET TAG 'GAW' TO 0). @[@@@@. @F@@@@. PERMITS USER ATFA )@@G@@ ONE TERMINAL TO RUN UP TO 9 SEPARATE RUNS, AND @C@@@@. KEEP THEM ALL SFB )@@G@@TRAIGHT (IF HIS MIND CAN). @[@@@@. @F@@@@. PROG WILL ASK FOR 6-FC )@@G@@CHAR SITEID TO BE USED FOR FIRST SITE. @F@@@@. LAST CHAR WILL BE REFD )@@G@@PLACED BY '1'. EACH ADDITIONAL SITE WILL @ @@@@. INCREMENT THE LAST DFE )@@G@@IGIT. @G@@@@. TO ENTER AN IMAGE TO BE SENT TO A PARTICULAR SITE, PUT TFF )@@G@@HE NUMBER @F@@@@. OF THAT SITE IN COLUMN 1. THE IMAGE SHOULD BEGIN FG )@@G@@IN COLUMN 5.@[@@@@. @^@@@@. CONTROL STATEMENTS: @A@@@@. # - INFH )@@G@@IT NEW SITE (UP TO 9) @F@@@@. #A - SEND IMAGE BEGINNING IN COLUMN 5FI )@@G@@ TO ALL ACTIVE SITES @ @@@@. #L - LIST ACTIVE SITES @A@@@@. #IFJ )@@G@@ - PRINT THESE INSTRUCTIONS @ @@@@. #1 - TERMINATE SITE #1 @A@@@@FK )@@G@@. #9 - TERMINATE SITE #9 (ETC.) @H@@@@. #=N - ASSUME THAT ALL INPUFL )@@G@@T NOT BEGINNING WITH NUMBER OF ACTIVE SITE IS @G@@@@. MEANT FOFM )@@G@@R SITE 'N'. IMAGES SHOULD BEGIN IN COLUMN 1, AND MAY @F@@@@. INFN )@@G@@CLUDE CONTROL CARDS. IF N=0, TURN OFF ASSUMPTION. @H@@@@. #E - STFO )@@G@@OP PROGRAM, AND TERMINATE ALL SITES ...ALSO DONE VIA @END X . @E@@@@FP )@@G@@. #S - LIMIT SPACING TO 2 LINES, IF IMAGE SAYS MORE. @C@@@@. #MFQ )@@G@@ - ALLOW MULTIPLE SPACING (NORMAL MODE). @[@@@@. @F@@@@. IF PROG FR )@@G@@IS NAMED 'ELT' AND D-OPTION IS USED, ALL CONTROL CARDS@G@@@@. (EXCEPT FS )@@G@@FOR @END WITH PROPER SENTINEL) WILL BE PASSED TO THE PROGRAM@B@@@@. ASFT )@@G@@ INPUT, AND WILL NOT TERMINATE IT. @[@@@@. @#@@@@ AXR$ FU )@@G@@@H@@@@GAW EQU 1 . SET TO ZERO IF RSGAW$ DOFV )@@G@@ESN'T WORK @ @@@@NOGAW EQU 1-GAW @H@@@@TRDOK EQU FW )@@G@@ 0 . SET NON-ZERO IF INPUT PROMPT DESIRED@[@@@@. FX )@@G@@@E@@@@RSI$ EQU 0112 . RSI$ ER INDEX @[@@@@FY )@@G@@. @A@@@@. RSI$ INITIALIZATION FUNCTIONS @[@@@@. @F@@@@RSDEM$FZ )@@G@@ EQU 050 . INITIALIZE DEMAND SITE @H@@@@RSBAT$GA )@@G@@ EQU 040 . INITIALIZE BATCH TERMINAL WITHOUT GB )@@G@@@C@@@@ . PUNCH @H@@@@RSPUN$ EQGC )@@G@@U 041 . INITIALIZE BATCH TERMINAL WITH PUNCH@[@@@@GD )@@G@@. @^@@@@. TERMINATION FUNCTIONS @[@@@@. @E@@@@RSTRM$ EQU GE )@@G@@ 060 . TERMINATE SITE @G@@@@RSTRA$ EQU 061 GF )@@G@@ . EMERGENCY SHUTDOWN ALL SITES @[@@@@. @#@@@@. INPUGG )@@G@@T FUNCTION @[@@@@. @I@@@@RSPUT$ EQU 010 . GH )@@G@@SEND INPUT IMAGE TO SPECIFIED TERMINAL @[@@@@. @#@@@@. OUTPUT FUNGI )@@G@@CTIONS@[@@@@. @G@@@@RSGET$ EQU 020 . GET PRGJ )@@G@@INT/PUNCH OUTPUT IMAGE @F@@@@RSGPU$ EQU 021 . GK )@@G@@GET PUNCH OUTPUT IMAGE @F@@@@RSGPR$ EQU 022 . GL )@@G@@GET PRINT OUTPUT IMAGE @H@@@@RSGTI$ EQU 063 . GM )@@G@@WAIT FOR OUTPUT FOR SPEC. TERMINAL @I@@@@RSGTW$ EQU 064 GN )@@G@@ . SAME AS RSGTI$, BUT INPUT REQUEST WILL @F@@@@ GO )@@G@@ . CAUSE 'NO OUTPUT' RETURN@H@@@@RSGTA$ EQGP )@@G@@U 070 . REQUEST OUTPUT FOR ANY TERMINAL @H@@@@GQ )@@G@@RSGAW$ EQU 074 . WAIT FOR OUTPUT FOR ANY TERMINGR )@@G@@AL @H@@@@RSGIO$ EQU 075 . SAME AS RSGAW$, BUGS )@@G@@T INPUT REQUEST @G@@@@ . WILL CGT )@@G@@AUSE 'NO IMAGE' RETURN @G@@@@RSNOT$ EQU 065 . GU )@@G@@RSGET$ WITH NO DATA TRANSFER @[@@@@. @D@@@@RSPKT . GV )@@G@@ . INPUT PACKET@F@@@@ + RSDEM$,0 GW )@@G@@ . FUNCTION,TERMINAL NUMBER@G@@@@ + 0,0 GX )@@G@@ . INPUT CHAR COUNT,INPUT BUFFER @G@@@@ + 0 GY )@@G@@ . STATUS BITS,TERMINAL NUMBER @F@@@@ + 0 GZ )@@G@@ . USED FOR OUTPUT ONLY @G@@@@SITE 'TRY001' HA )@@G@@ . SITEID FOR INITIALIZATION ONLY@[@@@@. @E@@@@OUTPKTHB )@@G@@ . . OUTPUT PACKET @E@@@@ DOHC )@@G@@ GAW , + RSGAW$,0 . WAIT FOR OUTPUT @F@@@@ DO NOGAWHD )@@G@@ , + RSGTA$,0 . DON'T WAIT FOR OUTPUT @E@@@@ + HE )@@G@@ 132,OUT . CHAR COUNT,BUFFER@G@@@@ + 0 HF )@@G@@ . STATUS BITS,TERMINAL NUMBER @G@@@@ + HG )@@G@@ 0 . CHARS RECEIVED,PRINT SPACING @D@@@@ 'THH )@@G@@RY001' . FILLER? @[@@@@. @E@@@@. OUTPKT WILHI )@@G@@L BE USED ONLY FOR OUTPUT FUNCTIONS. RSPKT WILL@C@@@@. BE USED FOR ALL HJ )@@G@@INPUT AND CONTROL FUNCTIONS. @[@@@@. @E@@@@FUNC EQUF RSPKHK )@@G@@T,,H1 . FUNCTION CODE @E@@@@TERM1 EQUF RSPKT,,H2 HL )@@G@@ . TERMINAL NUMBER @F@@@@CHAR1 EQUF RSPKT+1,,H1 HM )@@G@@ . DESIRED INPUT CHAR COUNT@D@@@@BUFF1 EQUF RSPKT+1,,H2 HN )@@G@@ . INPUT BUFFER@E@@@@A EQUF RSPKT+2,,S1 . INPUT HO )@@G@@STATUS BITS @E@@@@OA EQUF OUTPKT+2,,S1 . OUTPUT STATUHP )@@G@@S BITS@F@@@@ . 040 - BAD RSI$ CALHQ )@@G@@L @G@@@@ . 020 - OUTPUT IS AVHR )@@G@@AILABLE @F@@@@ . 010 - READY HS )@@G@@FOR INPUT @H@@@@ . 004 - OUTPUTHT )@@G@@ REQUESTED, NONE AVAIL @G@@@@ . HU )@@G@@002 - @@COMMAND DONE - SEE D @G@@@@ HV )@@G@@ . 001 - PAGE EJECT IS REQUIRED @B@@@@ HW )@@G@@ . @E@@@@B EQUF RSPKT+2,,S2 . INPUT STATUSHX )@@G@@ BITS @E@@@@OB EQUF OUTPKT+2,,S2 . OUTPUT STATUS BITSHY )@@G@@@I@@@@ . 040 - OUTPUT IMAGE IS LAHZ )@@G@@ST IN A SERIES @H@@@@ . 020 - IA )@@G@@INCOMPLETE IMAGE: MORE COMING @F@@@@ IB )@@G@@ . 010 - SPECIAL FORMS @H@@@@ IC )@@G@@ . 004 - THIS BEGINS A NEW OUTPUT IMAGE@D@@@@ ID )@@G@@ . 002 - UNUSED@I@@@@ IE )@@G@@ . 001 - IMAGE IS PRINT PORTION OF TREAD$ @B@@@@ IF )@@G@@ . @F@@@@C EQUF RSPKT+2,,S3 . IG )@@G@@MORE INPUT STATUS BITS @F@@@@OC EQUF OUTPKT+2,,S3 . IH )@@G@@MORE OUTPUT STATUS BITS @D@@@@ . II )@@G@@040 - UNUSED@G@@@@ . 020 - REQUESIJ )@@G@@T FAILURE - EXPOOL@H@@@@ . 010 - IK )@@G@@PUNCH OUTPUT REQ, BUT NO PUNCH@G@@@@ IL )@@G@@ . 004 - OUTPUT IS FOR THE PUNCH @F@@@@ IM )@@G@@ . 002 - INPUT OUTSTANDING @G@@@@ IN )@@G@@ . 001 - INPUT NOT SOLICITED YET @B@@@@ IO )@@G@@ . @H@@@@TERM2 EQUF RSPKT+2,,H2 . UNIQUEIP )@@G@@ TERMINAL NUMBER RETURNED @F@@@@CHAR2 EQUF OUTPKT+3,,T1 IQ )@@G@@ . ACUTAL CHARS OUTPUT @F@@@@OD EQUF OUTPKT+3,,S3 IR )@@G@@ . LINE SPACING FOR OUTPUT @G@@@@ IS )@@G@@ . IF BIT 02 IS SET IN FIELD A, @G@@@@ IT )@@G@@ . SIGNIFIES WHICH @@ COMMAND: @D@@@@ IU )@@G@@ . 0 - @@END @D@@@@ IV )@@G@@ . 1 - @@1 @C@@@@ . ... IW )@@G@@@D@@@@ . 7 - @@7 @[@@@@. IX )@@G@@@F@@@@CODE RES 9 . TERMINAL NUMBER TABLE IY )@@G@@@G@@@@COUNT + 1 . NUMBER OF ACTIVE TERMINAIZ )@@G@@LS @H@@@@ASSUME + 0 . SITE TO ASSUME IF JA )@@G@@NONE ON INPUT @F@@@@TRMING + 0 . OTHER JB )@@G@@ACT TERMING FLAG @#@@@@FDEOF '@EOF ' @F@@@@SITE1 'TRY001' JC )@@G@@ . INITIALLY ASSUMED SITEID@I@@@@ JD )@@G@@ . USED IF 'SITE?' IS ANSWERED WITH @EOF @E@@@@SITRD JE )@@G@@ + 0101,('SITE? ') . SITE TREAD$ PACKET@ @@@@ + JF )@@G@@ GOON,IN @F@@@@ADDIMG '@ADD KURLAND*PF.INST . ' . INSTRUJG )@@G@@CTION ADD IMAGE @D@@@@INSTP + 0100,IN . PRINT JH )@@G@@PKT @G@@@@LINMOD + 0 . 0=MULTI-SPACE, 1=SJI )@@G@@INGLE-SPACE @ @@@@ACTIVE 'ACTIVE TERMINALS: '@^@@@@ACTERM RES JJ )@@G@@ 3 @D@@@@FDBLNK ' ' . FD BLANKS @[@@@@JK )@@G@@. @#@@@@ ASCII @ @@@@ ON TRDOK @D@@@@JL )@@G@@TRD + 0101,('> ') . TREAD PACKET@ @@@@ OFJM )@@G@@F TRDOK @ @@@@RD + EOF,INID @^@@@@INID + JN )@@G@@ 0 @D@@@@IN ' ' . INPUT BUFFERJO )@@G@@@^@@@@ RES 29 @#@@@@OUTID '1: ' @E@@@@OUT REJP )@@G@@S 33 . OUTPUT BUFFER @D@@@@BLANKS ' ' JQ )@@G@@ . ASCII BLANKS@^@@@@EXPMSG 'EXPOOL TIGHT'@A@@@@JR )@@G@@NOTMSG 'TERMINAL X NOT ACTIVE' @ @@@@STERM 'SITE X TERMED' JS )@@G@@@ @@@@ATERM 'ALL SITES TERMED' @ @@@@TRMERR 'SHUTDOWN ERROR' JT )@@G@@@[@@@@. @ @@@@LOAD L,S6 A0,IN @ @@@@ L,S5 JU )@@G@@ A0,IN @ @@@@ L,S4 A0,IN @ @@@@ L,S3 JV )@@G@@ A0,IN @ @@@@ L,S2 A0,IN @ @@@@ L,S1 JW )@@G@@ A0,IN @[@@@@. @[@@@@$(1). @D@@@@ST S A5,A15 JX )@@G@@ . SAVE OPTIONS@ @@@@ L A0,(28,IN)@E@@@@ JY )@@G@@ LMJ X11,RINF$ . DISCARD INFOR @#@@@@ NOJZ )@@G@@P @E@@@@ TEP A15,(1*/('Z'-'I')) . I-OPTION SET? KA )@@G@@@F@@@@ LMJ X11,INST . YES, PRINT INSTRUCTIONS KB )@@G@@@E@@@@ L,U A0,RSBAT$ . MAYBE BATCH SITE @B@@@@KC )@@G@@ TEP A5,(1*/('Z'-'B')) . @C@@@@ S,H1 A0,RKD )@@G@@SPKT . YES @E@@@@ L,U A0,SITRD . KE )@@G@@GET TREAD$ PKT @E@@@@ ER TREAD$ . ASK FOKF )@@G@@R SITEID @F@@@@ L A1,IN . GET FIRST WOKG )@@G@@RD READ @C@@@@ TNE A1,FDEOF . @EOF? @F@@@@KH )@@G@@ J GOON . YES, ASSUME 'TRY001' @ @@@@KI )@@G@@ L X11,(1,0) @D@@@@TLP EX LOAD,X11 KJ )@@G@@ . GET A CHAR @C@@@@ TNE,U A0,5 . SPACE KK )@@G@@@E@@@@ J TAKEIT . YES, TAKE IT AS IS@F@@@@KL )@@G@@ TLEM,U X11,5 . ALL 5 CHARS CHECKED @E@@@@KM )@@G@@ J TLP . NO, CHECK THE REST@E@@@@ KN )@@G@@ S A1,SITE1 . YES, STORE ID @C@@@@ L,KO )@@G@@U A0,061 . FD '1'@G@@@@ S,S6 A0,SITE1 KP )@@G@@ . STORE IN SITEID TO BE SURE @D@@@@ L A1,SKQ )@@G@@ITE1 . GET SITEID @E@@@@TAKEIT S A1,SITE KR )@@G@@ . STORE IN RSPKT @[@@@@. @ @@@@. INITIALIZE FIRST DEMAND SITEKS )@@G@@@[@@@@. @E@@@@GOON L,U A0,RSPKT . LOAD RSI$ PKKT )@@G@@T ADDR@E@@@@ ER RSI$ . INITIALIZE SITE KU )@@G@@@ @@@@ TP RSPKT+2 @E@@@@ ER EABT$ KV )@@G@@ . NO GOOD, ERROR OFF@E@@@@ L A0,C KW )@@G@@ . GET STATUS BITS @E@@@@ TEP,U A0,020 . KX )@@G@@TIGHT EXPOOL? @F@@@@ J EXPOOL . YES, SKY )@@G@@AY SO, AND EXIT @F@@@@ L A0,TERM1 . GET TEKZ )@@G@@RMINAL NUMBER @D@@@@ S A0,CODE . SAVE ILA )@@G@@T @ @@@@ L,U A0,INPUT @F@@@@ ER FORKLB )@@G@@$ . START INPUT ROUTINE @I@@@@ L,U X10,LC )@@G@@OUT1 . SET ERROR ROUTINE RETURN FOR THIS ACT @[@@@@. LD )@@G@@@#@@@@. OUTPUT ACTIVITY @[@@@@. @[@@@@OUT1. @F@@@@ L,U LE )@@G@@ A0,OUTPKT . GET RSI$ OUTPUT PKT ADDR@E@@@@ ER LF )@@G@@ RSI$ . GET OUTPUT IMAGE @E@@@@ TZ TRMILG )@@G@@NG . INPUT ACT TERMING?@D@@@@ ER EXIT$ LH )@@G@@ . IF SO, EXIT @E@@@@ TP OUTPKT+2 . LI )@@G@@DID OUTPUT GO OK? @I@@@@ DO GAW , J GETERR . NO, SOLJ )@@G@@ME TERMINAL MUST HAVE TERMINATED @I@@@@ DO NOGAW , ER EXIT$ LK )@@G@@ . NO, ALL TERMINALS MUST HAVE TERMINATED @E@@@@ L LL )@@G@@ A0,OC . GET STATUS BITS @E@@@@ TEP,U LM )@@G@@ A0,020 . TIGHT EXPOOL? @F@@@@ J EXPOLN )@@G@@OL . YES, SAY SO, AND EXIT @E@@@@ L A0,OLO )@@G@@A . GET STATUS BITS @D@@@@ TEP,U A0,04 LP )@@G@@ . NO IMAGE? @E@@@@ DO GAW , J OUT1 . LQ )@@G@@YUP, TRY AGAIN @F@@@@ DO NOGAW , J NOTYET . YUP, WLR )@@G@@AIT AND TRY AGAIN @F@@@@ L,H2 A0,OUTPKT+2 . RETRIELS )@@G@@VE TERMINAL ID @F@@@@ L,U R1,9 . FIND TLT )@@G@@ERMINAL INDEX @ @@@@ L X11,(1,0) @A@@@@ SELU )@@G@@ A0,CODE,*X11 @D@@@@ ER EABT$ . LV )@@G@@NO FIND @F@@@@ L,U A0,060,X11 . CONVERT INDELW )@@G@@X TO ASCII @ @@@@ L A1,OUTID @F@@@@ LSSL LX )@@G@@ A1,9 . ADD TO OUTPUT IMAGE @^@@@@ DSL LY )@@G@@ A0,9@ @@@@ S A1,OUTID @F@@@@ L A0,CLZ )@@G@@HAR2 . GET CHARACTER COUNT @ @@@@ DSL A0,3MA )@@G@@6 @F@@@@ DI,U A0,4 . CONVERT TO WORD COMB )@@G@@UNT @E@@@@ TZ A1 . REMAINDER PRESENT MC )@@G@@@F@@@@ A,U A0,1 . YES, NEED ANOTHER WORD MD )@@G@@@F@@@@ TG,U A0,33 . LESS THAN 33 WORDS? ME )@@G@@@G@@@@ L,U A0,32 . NO, LIMIT TO 32 (PLUS TEMF )@@G@@RM ID)@E@@@@ L A1,OD . GET LINE SPACING MG )@@G@@@F@@@@ TNZ LINMOD . SINGLE SPACING MODE? MH )@@G@@@D@@@@ J $+3 . NO, GO ON @E@@@@ MI )@@G@@ TG,U A1,3 . JUST 1 OR 2 LINES?@G@@@@ L,MJ )@@G@@U A1,2 . NO, LIMIT TO 2 LINES @D@@@@ MK )@@G@@ LSSL A1,6 . SHIFT OVER @ @@@@ A,U ML )@@G@@ A0,1,A1 @E@@@@ LSSL A0,18 . SET UP PRINTMM )@@G@@$ PKT @D@@@@ LXM,U A0,OUTID . IMAGE ADDR @D@@@@MN )@@G@@ ER APRINT$ . PRINT IT @E@@@@ J MO )@@G@@ OUT1 . GET ANOTHER IMAGE @[@@@@. @ @@@@ MP )@@G@@ ON NOGAW @E@@@@NOTYET L,U A1,1000 . MQ )@@G@@WAIT FOR OUTPUT @ @@@@ ER TWAIT$ @D@@@@ J MR )@@G@@ OUT1 . TRY AGAIN @ @@@@ OFF NOGAMS )@@G@@W @[@@@@. @#@@@@. INPUT ROUTINE @[@@@@. @[@@@@INPUT.@G@@@@MT )@@G@@ TNZ TRMING . OUTPUT ACT TERMINATING, OR MU )@@G@@@F@@@@ TNZ COUNT . ALL SITES TERMINATED? MV )@@G@@@D@@@@ ER EXIT$ . YES, SO EXIT@ @@@@ MW )@@G@@ ON TRDOK @E@@@@ L,U A0,TRD . MX )@@G@@GET TREAD$ PKT @E@@@@ ER ATREAD$ . SOLICIMY )@@G@@T INPUT @#@@@@ OFF @ @@@@ ON TRDOK<1 MZ )@@G@@@E@@@@ L A0,RD . GET READ$ PKT @C@@@@NA )@@G@@ ER AREAD$ . DO IT @#@@@@ OFF NB )@@G@@@F@@@@ TZ TRMING . OUTPUT ACT TERMINATING? NC )@@G@@@D@@@@ ER EXIT$ . YES, SO EXIT@F@@@@ ND )@@G@@ L,U X10,INPUT . SET FOR RETURN TO INPUT @F@@@@ NE )@@G@@ L,U A2,IN . ASSUME INPUT BUFFER ADDR@E@@@@ NF )@@G@@ L,U A0,0,A0 . GET WORD COUNT @E@@@@ JZNG )@@G@@ A0,ZROIN . IF NONE, TRY AGAIN@E@@@@ L NH )@@G@@ A1,INID . GET FIRST WORD @E@@@@ SSL A1,2NI )@@G@@7 . GET FIRST CHAR @D@@@@ TNE,U A1,'#' NJ )@@G@@ . POUND SIGN? @F@@@@ J CONTROL . NK )@@G@@IF SO, CONTROL IMAGE @F@@@@ AN,U A1,060 . NL )@@G@@IF NOT, MUST BE NUMBER @E@@@@ TG,U A1,1 . NM )@@G@@BETWEEN 1 AND 9 @ @@@@ TG,U A1,10 @D@@@@ J NN )@@G@@ ERRIN . IT'S NOT @F@@@@ TNZ CODENO )@@G@@-1,A1 . IS THIS TERMINAL ACTIVE @C@@@@ J NOTENP )@@G@@RM . NO @F@@@@ S A1,X11 . NQ )@@G@@SAVE TERMINAL INDEX @E@@@@ L A1,CODE-1,A1 . NR )@@G@@GET TERMINAL CODE @G@@@@ AN,U A0,1 . CORRECNS )@@G@@T FOR EXTRA WORD READ @F@@@@ JNZ A0,IN2 . NT )@@G@@HANDLE IMAGE, IF ANY @H@@@@PTBLNK L A0,BLANKS . NU )@@G@@NO, SEND A WORD OF BLANKS INSTEAD @ @@@@ S A0,IN NV )@@G@@@D@@@@ L,U A0,1 . ONE WORD? @E@@@@ NW )@@G@@ L,U A2,IN . SET BUFFER ADDR @G@@@@IN2 LSNX )@@G@@SL A0,2 . MULT BY 4 TO GET CHAR COUNT @F@@@@ NY )@@G@@ S A0,CHAR1 . STORE IN CHAR COUNT @F@@@@ NZ )@@G@@ S A1,TERM1 . STORE TERMINAL CODE @E@@@@ OA )@@G@@ S A2,BUFF1 . STORE BUFFER ADDR @ @@@@ L,OB )@@G@@U A0,RSPUT$ @E@@@@ S A0,FUNC . SET INOC )@@G@@PUT FUNCTION@E@@@@ L,U A0,RSPKT . GET RSI$ PKTOD )@@G@@ ADDR @E@@@@ ER RSI$ . SEND INPUT IMAGE OE )@@G@@@C@@@@ TP RSPKT+2 . OK? @F@@@@ J OF )@@G@@ PUTERR . NO, HANDLE INPUT ERROR @^@@@@ L OG )@@G@@ A0,C@E@@@@ TEP,U A0,020 . EXPOOL TIGHTOH )@@G@@? @F@@@@ J EXPOOL . YES, SAY SO, AND EOI )@@G@@XIT @F@@@@ J 0,X10 . GO BACK FOR MORE IOJ )@@G@@NPUT @[@@@@. @ @@@@. RSGAW$ OUTPUT ERROR ROUTINE @[@@@@. @^@@@@OK )@@G@@ ON GAW @G@@@@GETERR L,H2 A0,OUTPKT+2 . OL )@@G@@GET TERMINAL NUMBER RETURNED @F@@@@ TNZ A0 OM )@@G@@ . ANY TERMINAL NUMBER? @G@@@@ J EOF ON )@@G@@ . NO, ALL MUST HAVE TERMINATED @F@@@@ L,U R1,9 OO )@@G@@ . YES, FIND TERMINAL INDEX@ @@@@ L X11,(1,0) OP )@@G@@@A@@@@ SE A0,CODE,*X11 @E@@@@ J 0,X1OQ )@@G@@0 . NO FIND, IGNORE IT@^@@@@ OFF GAW @[@@@@OR )@@G@@. @G@@@@. RSPUT$ INPUT ERROR ROUTINE, AND CONTINUATION OF OUTPUT ERROS )@@G@@OR ROUTINE. @B@@@@. MARK INDICATED TERMINAL 'INACTIVE'. @[@@@@. OT )@@G@@@F@@@@PUTERR SZ CODE-1,X11 . CLEAR TERMINAL CODE OU )@@G@@@E@@@@ SZ A . CLEAR STATUS BITS @F@@@@OV )@@G@@ L,U A0,' 0',X11 . FORM ASCII SITE NUMBER @ @@@@OW )@@G@@ S,H1 A0,STERM+1@D@@@@ L A0,(0104,STERM) OX )@@G@@ . GET MSG @D@@@@ ER APRINT$ . PRINT OY )@@G@@IT @F@@@@ L A0,COUNT . GET ACTIVE SITE COOZ )@@G@@UNT @E@@@@ AN,U A0,1 . DECREASE BY ONE PA )@@G@@@E@@@@ S A0,COUNT . STORE NEW COUNT @E@@@@PB )@@G@@ JZ A0,EOF2 . IF NONE LEFT, EXIT@E@@@@ PC )@@G@@ J 0,X10 . GO BACK FOR MORE @[@@@@. @C@@@@PD )@@G@@. INPUT EOF, OR #E CONTROL STATEMENT ENCOUNTERED@[@@@@. @[@@@@EOF. PE )@@G@@@G@@@@ TZ TRMING . OTHER ACT ALREADY TERMINPF )@@G@@G? @D@@@@ ER EXIT$ . YES, SO EXIT@F@@@@PG )@@G@@ L,U A0,1 . SET FLAG SO OTHER ACT @E@@@@PH )@@G@@ S A0,TRMING . KNOWS TO EXIT ALSO@G@@@@ PI )@@G@@ L,U A0,,X10 . GET INPUT/OUTPUT ACT INDICATOR@D@@@@PJ )@@G@@ TNE,U A0,OUT1 . OUTPUT ACT? @E@@@@ J PK )@@G@@ OEX . YES, SKIP TO OEX @E@@@@ TNZ PL )@@G@@ COUNT . ANY SITES LEFT? @D@@@@ J OEX PM )@@G@@ . NO, EXIT @F@@@@ L,U A0,RSTRA$ PN )@@G@@ . YES, MUST TERMINATE THEM@F@@@@ S A0,FUNC PO )@@G@@ . SET TERMINATE FUNCTION @E@@@@ L,U A0,RSPKT PP )@@G@@ . GET RSI$ PKT ADDR @E@@@@ ER RSI$ . PQ )@@G@@SHUTDOWN ALL SITES@[@@@@EOF2. @ @@@@ L,U A0,,X10 @ @@@@PR )@@G@@ TNE,U A0,OUT1 @^@@@@ J OEX @A@@@@ PS )@@G@@ L A0,(0104,TRMERR)@C@@@@ TN RSPKT+2 PT )@@G@@ . OK? @A@@@@OEX L A0,(0104,ATERM) @F@@@@ ERPU )@@G@@ APRINT$ . PRINT TERMINATION STATUS@D@@@@ ERPV )@@G@@ EXIT$ . AND GO AWAY @[@@@@. @F@@@@ERRIN TZPW )@@G@@ ASSUME . ASSUME-INPUT FOR SITE X?@G@@@@ J PX )@@G@@ ASMIMG . YES, MUST BE ASSUME-IMAGE @E@@@@ PY )@@G@@ L A0,(0102,('INPUTERR')) . INPUT ERROR @ @@@@ ERPZ )@@G@@ APRINT$ @E@@@@ J INPUT . GET MOQA )@@G@@RE INPUT @[@@@@. @ @@@@. HANDLE CONTROL FUNCTIONS @ @@@@. #L QB )@@G@@- LIST ACTIVE TERMINALS @ @@@@. #I - PRINT INSTRUCTIONS @B@@@@. # QC )@@G@@- INITIALIZE NEW TERMINAL (UP TO 9) @ @@@@. #1 - TERMINATE SITE #1 QD )@@G@@@A@@@@. #9 - TERMINATE SITE #9 (ETC) @E@@@@. #=N - ASSUME INPUT FORQE )@@G@@ SITE #N (IF 0, TURN OFF ASSUMPTION)@D@@@@. #A - SEND THIS INPUT IMAGE QF )@@G@@TO ALL ACTIVE TERMINALS @ @@@@. #E - TERMINATE PROGRAM @[@@@@. QG )@@G@@@G@@@@CONTROL. . INITIALIZE/TERMINATE SITQH )@@G@@ES @G@@@@ L A1,INID . GET CONTROL CHARACQI )@@G@@TERS AGAIN @D@@@@ LSSL A1,9 . SHIFT Q2 QJ )@@G@@@D@@@@ SSL A1,27 . TO BOTTOM @F@@@@ QK )@@G@@ TNE,U A1,'=' . ASSUME-INPUT CONTROL @E@@@@ QL )@@G@@ J SETASM . YES, HANDLE IT @E@@@@ L,QM )@@G@@H2 A2,INID . GET 2ND TWO CHARS @D@@@@ TE,U QN )@@G@@ A2,' ' . BOTH BLANK @H@@@@ J ERRIN QO )@@G@@ . NO, INPUT ERROR, OR ASSUME IMAGE @E@@@@ TNE,U QP )@@G@@ A1,' ' . 2ND CHAR BLANK @E@@@@ J NEWSQQ )@@G@@IT . YES, INIT NEW SITE@F@@@@ TNE,U A1,'A' QR )@@G@@ . INPUT TO ALL SITES? @E@@@@ J ALLMSG QS )@@G@@ . YES, HANDLE IT @C@@@@ TNE,U A1,'E' QT )@@G@@ . EXIT? @C@@@@ J EOF . YES @E@@@@QU )@@G@@ TNE,U A1,'L' . LIST ACTIVE SITES @D@@@@ QV )@@G@@ J LIST . YES, DO IT @E@@@@ TNE,U QW )@@G@@ A1,'S' . SINGLE SPACE MODE?@E@@@@ J SINGQX )@@G@@LE . YES, SET FLAG @E@@@@ TNE,U A1,'M' QY )@@G@@ . MULTI-SPACE MODE? @G@@@@ J MULTI QZ )@@G@@ . YES, CLEAR SINGLE LINE FLAG @E@@@@ TNE,U A1,'I' RA )@@G@@ . PRINT INSTRUCTIONS@C@@@@ J PINST RB )@@G@@ . YES @F@@@@ AN,U A1,060 . NO, CHECK FORC )@@G@@R NUMBER @E@@@@ TG,U A1,1 . GREATER THANRD )@@G@@ 0 @E@@@@ TG,U A1,10 . AND LESS THAN 10 RE )@@G@@@D@@@@ J ERRIN . NO GOOD @E@@@@ RF )@@G@@ TNZ CODE-1,A1 . TERMINAL ACTIVE @C@@@@ J RG )@@G@@ NOTERM . NO @F@@@@ L,U A0,RSTRM$ RH )@@G@@ . GET TERMINATE FUNCTION @ @@@@ S A0,FUNC RI )@@G@@@E@@@@ L A0,CODE-1,A1 . GET TERMINAL CODE @E@@@@RJ )@@G@@ S A0,TERM1 . AND STORE IN PKT @D@@@@ RK )@@G@@ L,U A0,RSPKT . GET RSI$ PKT@C@@@@ ER RL )@@G@@ RSI$ . DO IT @F@@@@ SZ CODE-1,A1 RM )@@G@@ . CLEAR CODE FROM TABLE @G@@@@ L A0,COUNT RN )@@G@@ . GET ACTIVE TERMINAL COUNT @D@@@@ AN,U A0,1 RO )@@G@@ . SUBTRACT 1 @E@@@@ S A0,COUNT . RP )@@G@@STORE NEW VALUE @E@@@@ JZ A0,EOF . IF NONRQ )@@G@@E LEFT, EXIT@G@@@@ L,U A1,' 0',A1 . GET ASCII TERR )@@G@@RMINAL NUMBER @ @@@@ S,H1 A1,STERM+1@A@@@@ L RS )@@G@@ A0,(0104,STERM) @C@@@@ TP RSPKT+2 . RT )@@G@@OK @B@@@@ L A0,(0101,('ERR ')) @D@@@@ ERRU )@@G@@ APRINT$ . PRINT MSG @F@@@@ J INPURV )@@G@@T . AND GO BACK FOR MORE @]@@@@NEWSIT. @G@@@@ RW )@@G@@ L A0,COUNT . GET NUMBER OF ACTIVE TERMINALS@E@@@@RX )@@G@@ TG,U A0,9 . LESS THAN NINE @G@@@@ RY )@@G@@ J ERRIN . NO, CAN'T HANDLE ANY MORE @ @@@@RZ )@@G@@ L,U A0,RSDEM$ @F@@@@ S A0,FUNC SA )@@G@@ . SET DEMAND INIT FUNCTION@F@@@@ SZ A0 SB )@@G@@ . SEARCH FOR OPEN SLOT @^@@@@ L,U R1,9@ @@@@ SC )@@G@@ L X11,(1,-1)@D@@@@ SE A0,CODE+1,*X11 . SD )@@G@@FIND ONE @D@@@@ ER EABT$ . IMPOSSIBLE! SE )@@G@@@F@@@@ L A0,SITE1 . GET ORIGINAL SITEID SF )@@G@@@D@@@@ A,U A0,,X11 . ADD INDEX @F@@@@ SG )@@G@@ S A0,SITE . STORE SITEID IN RSPKT @ @@@@ SH )@@G@@ L,U A0,RSPKT @E@@@@ ER RSI$ . SI )@@G@@INITIALIZE SITE @ @@@@ TP RSPKT+2 @C@@@@ ERSJ )@@G@@ EABT$ . ERROR @^@@@@ L A0,C@ @@@@SK )@@G@@ TEP,U A0,020 @ @@@@ J EXPOOL @E@@@@SL )@@G@@ L A0,TERM1 . GET TERMINAL CODE @E@@@@ SM )@@G@@ S A0,CODE,X11 . STORE IN TABLE @G@@@@ L SN )@@G@@ A0,COUNT . BUMP ACTIVE TERMINAL COUNT @^@@@@ SO )@@G@@ A,U A0,1@ @@@@ S A0,COUNT @E@@@@ J SP )@@G@@ INPUT . GO BACK FOR MORE @[@@@@. @A@@@@EXPOOLSQ )@@G@@ L A0,(0103,EXPMSG)@ @@@@ ER APRINT$ @^@@@@SR )@@G@@ J EOF @[@@@@. @ @@@@SETASM L,H2 A1,INID SS )@@G@@@F@@@@ SSL A1,9 . GET TERMINAL NUMBER ST )@@G@@@E@@@@ AN,U A1,060 . STRIP OFF ASCII @F@@@@SU )@@G@@ JN A1,ERRIN . IF NON-NUMERIC, ERROR @E@@@@SV )@@G@@ TG,U A1,10 . ALSO MUST BE <10 @ @@@@ SW )@@G@@ J ERRIN @F@@@@ JZ A1,CLRASM . SX )@@G@@IF ZERO, CLEAR ASSUME @F@@@@ TNZ CODE-1,A1 . SY )@@G@@IS THIS SITE ACTIVE? @C@@@@ J NOTERM . SZ )@@G@@NO @G@@@@CLRASM S A1,ASSUME . SET/CLEAR ASSUME-ITA )@@G@@NPUT FLAG @E@@@@ J INPUT . GO BACK FOR TB )@@G@@MORE @[@@@@. @F@@@@NOTERM TZ ASSUME . ASSUMETC )@@G@@-INPUT FLAG SET @E@@@@ J ASMIMG . YES, STD )@@G@@END IT THERE@F@@@@ LSSL A1,18 . POSITION SITTE )@@G@@E NUMBER @A@@@@ A A1,(' 0 N') @D@@@@ S TF )@@G@@ A1,NOTMSG+2 . STORE IN MSG@A@@@@ L A0,(TG )@@G@@0106,NOTMSG)@D@@@@ ER APRINT$ . PRINT MSG TH )@@G@@@E@@@@ J INPUT . GET MORE INPUT @[@@@@TI )@@G@@. @D@@@@ZROIN TNZ ASSUME . ASSUME MODE?@F@@@@TJ )@@G@@ J INPUT . NO, IGNORE BLANK LINE @F@@@@TK )@@G@@ L A1,ASSUME . YES, GET TERM TO ASSUME @E@@@@TL )@@G@@ L A1,CODE-1,A1 . GET TERM CODE @E@@@@ TM )@@G@@ J PTBLNK . SEND A BLANK LINE @[@@@@. @F@@@@TN )@@G@@SINGLE SA A1,LINMOD . SET SINGLE-SPACE MODE @D@@@@TO )@@G@@ J INPUT . NEXT IMAGE @F@@@@MULTI SZTP )@@G@@ LINMOD . CLEAR SINGLE-SPACE MODE @C@@@@ J TQ )@@G@@ INPUT . GO ON @[@@@@. @[@@@@PINST.@E@@@@ TR )@@G@@ LMJ X11,INST . PRINT INSTRUCTIONS@F@@@@ J TS )@@G@@ INPUT . RETURN FOR MORE INPUT @F@@@@ASMIMG. TT )@@G@@ . ASSUME-UNAGE RECEIVED @F@@@@ L TU )@@G@@ A1,ASSUME . GET ASSUME TERM INDEX @D@@@@ S TV )@@G@@ A1,X11 . SAVE INDEX @E@@@@ L A1,CTW )@@G@@ODE-1,A1 . GET TERMINAL CODE @E@@@@ L,U A2,INID TX )@@G@@ . SET BUFFER ADDR @E@@@@ J IN2 TY )@@G@@ . SEND IT TO RSI$ @[@@@@. @F@@@@ALLMSG AN,U A0,1 TZ )@@G@@ . CORRECT INPUT WORD COUNT@D@@@@ S A0,A4 UA )@@G@@ . AND SAVE IT @E@@@@ L,U A2,IN . UB )@@G@@SET BUFFER ADDR @E@@@@ L A3,(1,0) . FOR ALUC )@@G@@L SITES @E@@@@MSGLP L A1,CODE,A3 . GET TERMINALUD )@@G@@ CODE @ @@@@ L,U X11,,A3 @F@@@@ JZ A1,MUE )@@G@@SGLPE . IF NOT ACTIVE, SKIP IT @F@@@@ L A0,AUF )@@G@@4 . RETRIEVE WORD COUNT @G@@@@ JZ A0,AUG )@@G@@LBLNK . IF ZERO, SEND BLANK LINES @F@@@@ LMJ UH )@@G@@ X10,IN2 . SEND IMAGE TO EACH SITE @D@@@@ J UI )@@G@@ MSGLPE . NEXT UNIT @E@@@@ALBLNK LMJ X10,PTBLNKUJ )@@G@@ . SEND BLANK LINES @D@@@@MSGLPE TLEM,U A3,8 UK )@@G@@ . NEXT SITE @ @@@@ J MSGLP @E@@@@ J UL )@@G@@ INPUT . ALL SITES SENT @[@@@@. @E@@@@LIST UM )@@G@@ L A0,FDBLNK . GET WORD OF BLANKS@D@@@@ S UN )@@G@@ A0,ACTERM . CLEAR MSG @A@@@@ S A0,AUO )@@G@@CTERM+1 @A@@@@ S A0,ACTERM+2 @ @@@@ L UP )@@G@@ A3,(1,0) @ @@@@ L A2,(1,0) @F@@@@LISTL TNUQ )@@G@@Z CODE,A3 . IS THIS SITE ACTIVE @C@@@@ J UR )@@G@@ LISTE . NO @F@@@@ L,U A1,061,A3 US )@@G@@ . GET FD TERMINAL NUMBER @E@@@@ EX ACST,*A2 UT )@@G@@ . STORE IN IMAGE @D@@@@LISTE TLEM,U A3,8 UU )@@G@@ . ALL DONE @E@@@@ J LISTL . NO, MOUV )@@G@@RE TO DO @D@@@@ P$RINT (0106,ACTIVE) . PRINT MSG UW )@@G@@@C@@@@ J INPUT . DONE @[@@@@. @ @@@@UX )@@G@@ACST S,S1 A1,ACTERM @ @@@@ S,S3 A1,ACTERM @ @@@@UY )@@G@@ S,S5 A1,ACTERM @A@@@@ S,S1 A1,ACTERM+1 UZ )@@G@@@A@@@@ S,S3 A1,ACTERM+1 @A@@@@ S,S5 A1,AVA )@@G@@CTERM+1 @A@@@@ S,S1 A1,ACTERM+2 @A@@@@ S,VB )@@G@@S3 A1,ACTERM+2 @A@@@@ S,S5 A1,ACTERM+2 @[@@@@VC )@@G@@. @[@@@@INST. @ @@@@ L,U A0,ADDIMG @F@@@@ ERVD )@@G@@ CSF$ . @ADD,E KURLAND*PF.INST @^@@@@ TPVE )@@G@@ A0 @ @@@@ ER EABT$ @E@@@@INST1 LXI,U VF )@@G@@ A0,0,X11 . GET RETURN DDR @E@@@@ LXM,U A0,IVG )@@G@@N . GET READ$ BUFFER @F@@@@ ER AREAD$ VH )@@G@@ READ LINE OF INSTRUCTIONS @ @@@@ L,U A0,0,A0 VI )@@G@@@G@@@@ S,S3 A0,INSTP . SET WORD COUNT IN PRINT VJ )@@G@@PKT @E@@@@ L A0,IN . GET FIRST WORD VK )@@G@@@C@@@@ TNE A0,('@EOF') . EOF @D@@@@ J VL )@@G@@ 0,X11 . YES, RETURN @ @@@@ L A0,IVM )@@G@@NSTP @E@@@@ ER APRINT$ . AND PRINT LINE VN )@@G@@@E@@@@ J INST1 . GO BACK FOR MORE @^@@@@VO )@@G@@ END ST ___DE @ @@@@ L,======@@^@@ @@@@@@@@@@@@VP )@@G@@@@ @F1@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NZ/FRE70-1 @@@[@@VQ )@@G@@@@@@@W@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@G@@A@@A@@D@@#@@@@@@@@^@@@@IW@@@@@@VR )@@G@@@^@@@]@^@]@[@ @@@]K^@[@) UASGCT,A1 . $T IS ASSIGN COUNT = ZERO?VS )@@G@@@D@@[@ J LEAVIN . $J LEAVIN @G@@[@ VT )@@G@@ L,U A5,ABW$ @C9@C@)BB@K9@@@___@@E^@@@@0^@V@@E^[+@@\^]^)@L^@EVU )@@G@@)@R^[F)@S^[?) H^]3@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___VV )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___[@@^@@C8W@@@KCK^@@H8)@@[VW )@@G@@&;K@CQC@@@@H'=@@@HG8W@@@ @H@@@>@@@F%/K@@CN>@@@F:/KF@@[C8H@@@?8I@@@/K@@C VX )@@G@@C@@@F(C8K@@#/KF@@@C@@@FYC8K@@[/KF@@@C@@@F=C8K@@]/KF@@@L8@@@[C@)^@@G8)@@[VY )@@G@@*@I@@@?CY@@@/K@@C-G),@@@/K@@CV%CI@@@/KF@@@C)"@@@H80@@[T80@@AG="@@@9?I@@[VZ )@@G@@?80@@BC@K@F?/KF@@[N8W@@@C^@^@@G8@@@[C9K@@[ @@^@IN8)@@@(@G@@@/K@@DQ(4G@@@WA )@@G@@/K@@DA%1W@@@/K@@DQC?W@@@!8K@@A/K@@DD%(K^@I @@^@H[(K^@I9??@@[C-G@@@:9@@@[WB )@@G@@C@0@F?')H@EAH9@@@[T9@@@AG>G@@@')H@EIG)G@@@G8@@@[/K@@C1:9K@@[/K@@DIC*?@@@WC )@@G@@:8)@@.N8)@@[%[K@[[/K@@DA/K@@C.%@)@F?[5@^@H:@)@F?[-K^@H/K@@DA(@@@[]:(K^@IWD )@@G@@/K@@DV[(K^@I @@^@H:[K@[[/K@@D@^@HWI )@@G@@[5@^@I[1@^@I[!@^@IC80@@F+8K@@_:8)@@ ;^@@@A8#0@ES9*@^@]C@@@F!C@K@F,C8)@@BWJ )@@G@@C@0@F?[@"^@ 8#)@E-N4K^@H9!@^@J/\)@FJC9K@@*(4@^@H*)@^@H')H)@@N0K^@H9!@^@LWK )@@G@@*@@@[[/K@@E0C[@@F\N8K@@^/\)@FJN?K^@H(@@@[[/K@@E'C9K@@(')H)@@C[@^@N/\)@FJWL )@@G@@C9K@@)')H)@@(*@^@H*=@^@H/K@@F@C@@@F0'=@@@J/KF@@@C9K@@/')H)@@N*K^@HC[@^@OWM )@@G@@/\)@FJN=K^@H(@@@[[/K@@E.C9K@@/')H)@@C[@^@P/\)@FJ/K@@E.;>@@@A')H)@@8KK@FHWN )@@G@@/KI@@@[5W@@@[1W@@@[!W@@@[(W@@@[>W@@@/\0@FR[-W)@@Q;K@FL/KJ@@@PROCESSOR CAWO )@@G@@LL ERROR @[^@FUABNORMAL RETURN FROM READ$ @[ @FZTOO MANY SPECIFICAWP )@@G@@TIONS @[^@F>]@@@@@[@@@@@ @@[^@ @@[@FLTPF$ @@G^@[[[K@@VR#@^]-/,0@C@WQ )@@G@@/S@@@@=#0^]+/,0@K%R;@@@)=[K^]R;@@G"'=@@@FR')@GQR;@^@)'=@@[EWT )@@G@@*@@^@0'=@@@D0@@^@+/K@@H(R\@^@+=8@@@K/K@@JXR7@^@+=8@@@^/K@@GQRB@^@+N8K@@DWU )@@G@@R]0^]=2@F=@>'=@@@QR;F@@0R#K^[+;*K@@D;G@@@DA#K^[+RZ@^@<;G@@@=W8@@@^*@@@@HWV )@@G@@O;@@@[!8@@@-R;@@@)R\K^@<(@@^@'/K@@G8!8K@@#R;K@@];*K@@AO;H@@[;*@@@MQ;@^[+WW )@@G@@'=@@@8/K@@GQ(@@^@0(@@^@,'=@@@DR#@^[]'=@@[6*@@^@0'=@@@DR')@G"R;)^[^R;G@@@WX )@@G@@/@@@J3R#K^[#;CK@@V:8K@@/KE@@@ @F^@= 4@^@XR;F^@0AF@^]JR#@^]>'=@@@8R#@^@,P;@@@[XB )@@G@@A#@^@,/@@@IC/KE@@@*@@^@0'=@@@DR;@@@[A#@^@0R;E@@@:8@@GQ/K@@IH(@@^@,/K@@IHXC )@@G@@R;@@@1AF@^@VR;@^@V'=@@[ER;E@@@:8@@GQ/K@@IHR#@^]&1@@^@XR#@^]$'=@@@8'=@@@DXD )@@G@@*@@^@\/K@@J"R#@^]%'=@@@8/K@@G"R#K^[#;*K@@D;CK@@V:8K@@./K@@J)RB)^[#%8)^@)XE )@@G@@/K@@IK:8K@@)/K@@J#:8K@[[/K@@K#:8K@[ /K@@H;:8K@[G/K@@KM:8K@[N/K@@J8:8K@[HXF )@@G@@/K@@J':8K@[D/K@@J/P;K@@0!8K@@[!8K@@E/K@@IK(@H^@=/K@@J:R;@@@0AF@^@VR#H^@=XG )@@G@@AB@^@VR;@^@V'=@@[E @H^@=R#@^@,P;@@@[A#@^@,/@@@H;R;X^@0AFK^]JR#@^]>0@@^@XXH )@@G@@R#@^]?'=@@@8/K@@G"R#@^@,!8@@@D/K@@IKR;@@@*AF@^@V @@@@GN8K@@DR]0^]!2@F=@&XI )@@G@@'=@@@QR#@^@2O;F@@@A#@^@ZR;@^@V'=@@[E0@@^@X'=@@@QR\@^@X=8@@@K/K@@JXRB@^@VXJ )@@G@@A#F^@>R#@^@,O;@@@[A#@^@,/K@@G"R#@^],'=@@@8/K@@H;RBK^[#;CK@@DP;K@@0/GK@IKXK )@@G@@!8K@@E/K@@IK/@K@J((@H^@=/K@@J:A#K^@\/K@@G"*@@^@\/K@@J";*K@@MO#K^]\A#K^]EXL )@@G@@R#@^]0'=@@@8/K@@G"(@@^@\/K@@G"R#K^@\R#X^@=/K@@HR[@K^@'/K@@G" @@^@'/K@@G"XM )@@G@@/,0@K%/K@@G"R#K^@\A#K@@FR#X^@=R;)^[#/K@@HVP;@@@[A#@@@KR;)^[^R#0^]=R#Z^@>XN )@@G@@R'_@@@/@K@KJR#@@@K/@@@KI/,)@HV/K@@KJ/,)@HR$;0@@C/K@@KB/K@@G"R#@^[[A#@^@"XO )@@G@@A#@^@_A#@^[@R#0^]=R#)^]=(@J^@>/K@@KWR;Z@@1')I)K-$;0@@C/K@@KSR#@^]1'=@@@IXP )@@G@@/K@@G"A7K^@"A\K^@"A$K^@"A7K^@_A\K^@_A$K^@_A7K^[@A\K^[@A$K^[@R;@^@5'=@@@JXQ )@@G@@0@@@@G'=@@@Q&;F@@@Q;@^[^'=@@[6R;G@@@A\@^@9R#@^[^:@@^]2/KF@@@R#@^@9'=@@@8XR )@@G@@/K@@K,@@@@@@@USE @@@@@@@@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*@@@XS )@@G@@@@@@@@@@@@@@@@@@@@TRY001@@/@@@@]^^[<@@@@@@@@@@@@TRY001@@@@@@@@@@@@@@@@@@XT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@EOF TRY001@[[^])XU )@@G@@@GE^[^@ADD KURLAND*PF.INST . @[@^[^@@@@@@ACTIVE TERMINALS: @@@@@@@@@@@@XV )@@G@@@@@@@@ @H;^[#@@@@@@^@)^@)@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC'^@)XW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@^@)^@)C(SE[JD9G^[OXX )@@G@@DDBD[OE- ELHDDICDG^[S^[ID9O^[[CTODDQC*)^@)ETDE- ^[S^[OC(MD( C))^@)CDGD))XY )@@G@@ETDE- ES)E- ELHC(^ETCE(OC-JE9I^[ ELMD9M^@)R<@^[^R$@^[^R:@^[^R\@^[^R3@^[^XZ )@@G@@R7@^[^SITE? @@W^[^@@@)@@@[@@@@@@[@@@@[^^]I@[^^]Q@[^^]MDDIE[PE- ELM@[]^]*YA )@@G@@C(MEK)@[[^]:@@[__"@[#^] ^@0^[I@[A^]C@[A^@;C[ D9A@@@@@@@@@@@@@@@@@@@@@@@@YB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YC )@@G@@$MAIN$ @@^@@^@@@@@]@@@#@ @@@@@] LMJ X10,ALTSSU YD )@@G@@ . $P FIND ALTERNATE UNIT @B@@[@ L,U A5,1 YE )@@G@@ . @D@@[@ TOELT NZ;FREERU$ D1<]FEINFOR$ YF )@@G@@DQD^KB TZ R2 . $T FROM IO @D@@[@ J YG )@@G@@ SCRH . $A YES,SCRH @B@@[@$IBANK @@@@@]$DBANKYH )@@G@@ @@A@@] . @G@@[@ L A4,USSSUU,A0 . $P PICK YI )@@G@@UP SWITCHED FROM UNIT @B@@[@ L A5,SSSUU,A0 . YJ )@@G@@@@@@@AK@@[@^@#1@C@@@@@@@@@@[@^@ C@F1@@@@@A0@@@@ @@V^@@@@@@@@)@@@@ @]S^@VYK )@@G@@@]@@[@SCRH . @H@@[@ S,H1 A4,IOPKT+5,A0 . $P SET UYL )@@G@@P IO PACKET AND ABS SSS/RINF$ @@@@@@ DLABEL @B@@[@ YM )@@G@@ L A3,A2 . @D@@[@ LMJ X8,CLNSWT YN )@@G@@ . $P CLEAR MOVE @B@@[@ L *[@@@@*SDFF*@[@@@@ YO )@@G@@@ @@@@ PROG CALL IS @FILE.ELT,D ,,X@E@@@@ PROG WILL ASK FOR 6-CHAR SITEYP )@@G@@ID TO BE USED FOR FIRST SITE. @F@@@@ LAST CHAR WILL BE REPLACED BY '1'. YQ )@@G@@ EACH ADDITIONAL SITE WILL @ @@@@ INCREMENT THE LAST DIGIT. @F@@@@YR )@@G@@ TO ENTER AN IMAGE TO BE SENT TO A PARTICULAR SITE, PUT THE NUMBER@F@@@@YS )@@G@@ OF THAT SITE IN COLUMN 1. THE IMAGE SHOULD BEGIN IN COLUMN 5. @[@@@@YT )@@G@@ @^@@@@ CONTROL STATEMENTS: @ @@@@ # - INIT NEW SITE (UP TO 9)YU )@@G@@@E@@@@ #A - SEND IMAGE BEGINNING IN COLUMN 5 TO ALL ACTIVE SITES @^@@@@YV )@@G@@ #L - LIST ACTIVE SITES@A@@@@ #I - PRINT THESE INSTRUCTIONS @^@@@@YW )@@G@@ #1 - TERMINATE SITE #1@A@@@@ #9 - TERMINATE SITE #9 (ETC.) @G@@@@YX )@@G@@ #=N - ASSUME THAT ALL INPUT NOT BEGINNING WITH NUMBER OF ACTIVE SITE ISYY )@@G@@@G@@@@ MEANT FOR SITE 'N'. IMAGES SHOULD BEGIN IN COLUMN 1, AND MYZ )@@G@@AY @E@@@@ INCLUDE CONTROL CARDS. IF N=0, TURN OFF ASSUMPTION. ZA )@@G@@@G@@@@ #E - STOP PROGRAM, AND TERMINATE ALL SITES ...ALSO DONE VIA @ENDZB )@@G@@ X . @D@@@@ #S - LIMIT SPACING TO 2 LINES, IF IMAGE SAYS MORE. @C@@@@ZC )@@G@@ #M - MULTIPLE SPACING MODE (NORMAL MODE). @[@@@@ @F@@@@ IF PRZD )@@G@@OG IS NAMED 'ELT' AND D-OPTION IS USED, ALL CONTROL CARDS @G@@@@ (EXCEZE )@@G@@PT FOR @END WITH PROPER SENTINEL) WILL BE PASSED TO THE PROGRAM @B@@@@ZF )@@G@@ AS INPUT, AND WILL NOT TERMINATE IT. @[@@@@ @[@@@@@EOF ___D9IZG )@@G@@C*)E1DCC)C[ D1^^[S^@,^@)*[@@@@*SDFF*@B@@@@. CONSOLE DEMAND CCR - NOT QUIZH )@@G@@TE FINISHED @[@@@@. @]@@@@ AXR$ @[@@@@$(0). @]@@@@P PROC ZI )@@G@@@^@@@@CLEAR* NAME @E@@@@ L,U R1,P(1,2) ZJ )@@G@@ . GET LOOP COUNT @E@@@@ L X8,(1,0) .ZK )@@G@@ INDEX BUFFER @E@@@@CLEAR1 SZ P(1,1),*X8 . CLEAZL )@@G@@R OUT BUFFER@F@@@@ JGD R1,CLEAR1 . CLEAR SOZM )@@G@@ME MORE @]@@@@ END @ @@@@ . RSI$ FUNCTIONS USED @D@@@@ZN )@@G@@RSDEM$ EQU 050 . INITIALIZE DEMAND SITE @D@@@@RSTRM$ ZO )@@G@@ EQU 060 . TERMINATE DEMAND SITE @^@@@@ . INPUT FUNCTION ZP )@@G@@@F@@@@RSPUT$ EQU 010 . PASS INPUT TO EXEC AS TERMINAL INPUTZQ )@@G@@@^@@@@ . OUPUT FUNCTION @F@@@@RSGAW$ EQU 074 . WAIT FZR )@@G@@OR PRINT AND PUNCH OUTPUT @^@@@@ . RSI INPUT PACKET@[@@@@INP. ZS )@@G@@@D@@@@ +RSDEM$,0 . FCN CODE,TERMINAL NUMBER @E@@@@ ZT )@@G@@+0,IN . INPUT CHAR COUNT,INPUT BUFFER @B@@@@ +0 ZU )@@G@@ . STATUS BITS @C@@@@ +0 . USED FOR OZV )@@G@@UTPUT ONLY @C@@@@ 'YUG999' . FILLER WILL BE SITEID@]@@@@ZW )@@G@@PCT RES 2 @^@@@@ . RSI OUPUT PACKET@[@@@@OUP. @D@@@@ +RSGAWZX )@@G@@$,0 . FCN CODE,TERMINAL NUMBER @F@@@@ +50,OUT ZY )@@G@@. OUPUT CHAR COUNT,OUTPUT BUFFER ADDRESS @B@@@@ +0 ZZ )@@G@@. STATUS BITS @E@@@@ +0 . CHAR RECEIVED ,LINE SPAA )@@G@@ACING OR @@ @B@@@@ 'YUG999' . FILLER SITEDID @B@@@@ AB )@@G@@. INPUT AND OUTPUT PACKETS EQUFS @]@@@@ . @]@@@@ . AC )@@G@@@C@@@@INFC EQUF INP,,H1 . INPUT FUNCTION CODE @C@@@@INTER EQUF AD )@@G@@ INP,,H2 . TERMINAL NUMBER @E@@@@INCH EQUF INP+1,,H1 . CHARAE )@@G@@ COUNT(ASCII QUARTER WORD) @C@@@@INA EQUF INP+2,,S1 . INPUT STATAF )@@G@@US BITS @C@@@@OUA EQUF OUP+2,,S1 . OUPUT STATUS BITS @C@@@@AG )@@G@@ . 040- BAD RSI$ CALL @D@@@@ AH )@@G@@ . 020- OUTPUT IS AVAILABLE @C@@@@ . 010-AI )@@G@@ READY FOR INPUT @C@@@@INB EQUF INP+2,,S2 . INPUT STATUS BITS AJ )@@G@@@C@@@@OUB EQUF OUP+2,,S2 . OUTPUT STATUS BITS @F@@@@ AK )@@G@@ . 040- OUTPUT IMAGE IS LAST IN SERIES @F@@@@ AL )@@G@@ . 020- INCOMPLETE IMAGE (MORE COMING) @C@@@@ AM )@@G@@ . 010- SPECIAL FORMS @D@@@@ . 004-AN )@@G@@ BEGINS NEW OUTPUT IMAGE@B@@@@ . 002- UNUSED AO )@@G@@@E@@@@ . 001- IMAGE IS PORTION OF TREAD$ @C@@@@AP )@@G@@INC EQUF INP+2,,S3 . MORE INPUT STATUS BITS@D@@@@OUC EQUF OUP+AQ )@@G@@2,,S3 . MORE OUTPUT STATUS BITS @B@@@@ . 040-AR )@@G@@ UNUSED @F@@@@ . 020- REQUEST FAILURE( EXPOOLAS )@@G@@ TIGHT ) @H@@@@ . 010- PUNCH OUTPUT REQUESTED AT )@@G@@/NO PUNCH CONFIGURED @D@@@@ . 004- OUTPUT IS FAU )@@G@@OR THE PUNCH@C@@@@ . 002- INPUT OUTSTANDING@D@@@@AV )@@G@@ . 001- INPUT NOT SOLICITED YET@C@@@@OUCH EQUF AW )@@G@@ OUP+3,,H1 . ACTUAL CHARS OUTPUT @E@@@@OUTER EQUF OUP,,H2 .AX )@@G@@ TERMINAL NUMBER FOR OUTPUT @D@@@@OUD EQUF OUP+3,,S3 . LINE SPACIAY )@@G@@NG FOR OUTPUT @G@@@@ . IF BIT 002=1 IN A FIELAZ )@@G@@D THEN IT SIGNIFIES @E@@@@ . WHICH @@ COMMANDBA )@@G@@ WAS PROCESSED @B@@@@IN RES 20 . INPUT BUFFER @B@@@@BB )@@G@@OUT RES 23 . OUTPUT BUFFER @E@@@@EXTRA RES 8 BC )@@G@@. CONTINUATION BUFFER FOR INPUT @ @@@@LOAD L,Q1 A4,0,X9 . BD )@@G@@@ @@@@ L,Q2 A4,0,X9 . @ @@@@ L,Q3 A4,0,X9 . BE )@@G@@@ @@@@ LMJ X11,$+1 . @ @@@@ L,Q4 A4,0,*X9 . BF )@@G@@@#@@@@ LXM,U A3,0@B@@@@ J 0,X11 . RESET INDEX BG )@@G@@@]@@@@ . @]@@@@ . @ @@@@STORE S,Q1 A4,IN,A0 . BH )@@G@@@ @@@@ S,Q2 A4,IN,A0 . @ @@@@ S,Q3 A4,IN,A0 . BI )@@G@@@ @@@@ LMJ X11,$+1 . @ @@@@ S,Q4 A4,IN,*A0 . BJ )@@G@@@B@@@@ LXM,U A1,0 . RESET INDEX @A@@@@ J 0,X1BK )@@G@@1 . RETURN @]@@@@ . @]@@@@ . @ @@@@LOAD1 L,Q4 BL )@@G@@ A3,IN-1,A0 . @ @@@@ L,Q1 A3,IN,A0 . @ @@@@ L,Q2 BM )@@G@@ A3,IN,A0 . @ @@@@ L,Q3 A3,IN,A0 . @]@@@@ . BN )@@G@@@#@@@@TEMP RES 1 @]@@@@ . @]@@@@ . @B@@@@ BO )@@G@@. COM$ PACKET FOR THE INPUT ACTIVITY@E@@@@COMPK + 4,0 . BP )@@G@@CONSOLE CLASS/S3=CONTROL BITS @D@@@@ +1,STAR . OUTPUT CHAR COUBQ )@@G@@NT,OUTPUT BUFFER @E@@@@ +50,IN . INPUT CHAR COUNT,INPUBR )@@G@@T BUFFER @]@@@@ . @]@@@@ . @^@@@@ . COMPACKET BS )@@G@@EQUFS @D@@@@COMAC EQUF COMPK,,H2 . ACTUAL INPUT CHAR COUNT @C@@@@BT )@@G@@COMOC EQUF COMPK+1,,H1 . OUTPUT CHAR COUNT @B@@@@COMAD EQUF COMPBU )@@G@@K+1,,H2 . OUTPUT BUFFER @D@@@@COMIC EQUF COMPK+2,,H1 . INPUT CHAR COUBV )@@G@@NT(EXPECTED)@B@@@@COMID EQUF COMPK+2,,H2 . INPUT BUFFER @]@@@@ BW )@@G@@. @C@@@@ . COM$ PACKET FOR THE OUTPUT ACTIVITY @]@@@@ BX )@@G@@. @]@@@@COMPK1. @H@@@@ + 4,0 . CONSOLE CLABY )@@G@@SS,CONTROL BITS,ACTUAL CHAR INPUT @E@@@@ +0,OUT . OUTPBZ )@@G@@UT CHAR COUNT,OUTPUT BUFFER @C@@@@ +0 . NO RESPONSCA )@@G@@E REQUIRED @]@@@@ . @H@@@@COMOUT EQUF COMPK1+1,,H1CB )@@G@@ . OUTPUT CHAR COUNT(QUARTER WORD ASCII) @]@@@@ . @#@@@@TERMF CC )@@G@@+ 0 @#@@@@FIRST + 1 @#@@@@COUNT + 0 @]@@@@ CD )@@G@@ASCII @B@@@@EXPMSG 'EXPOOL TIGHT' . EXPOOL MSG@^@@@@TRMSG 'CONSOCE )@@G@@L TERMED' @#@@@@CONT 'CONT:' @B@@@@BLANKS ' ' . BLACF )@@G@@NKS(ASCII) @]@@@@STAR '* ' @]@@@@ . @]@@@@ . @]@@@@CG )@@G@@ . @^@@@@ . MAIN PROGRAM @^@@@@ . INITIALIZATION CH )@@G@@@[@@@@$(1). @[@@@@INIT. @ @@@@ L A0,(2,PCT) @^@@@@ CI )@@G@@ER PCT$ @^@@@@ L A0,PCT+1 @^@@@@ S A0,CJ )@@G@@INP+4 @B@@@@ L,U A0,INP . GET RSI$ PACKET @C@@@@ ER CK )@@G@@ RSI$ . INITIALIZE DEMAND SITE@A@@@@ TP INP+2 . BAD CL )@@G@@CALL @A@@@@ ER EABT$ . ERROR OFF @B@@@@ L A0,ICM )@@G@@NC . GET STATUS BITS @B@@@@ TEP,U A0,020 . EXPOOL TIGHT? CN )@@G@@@B@@@@ J EXPOOL . SAYS0 AND EXIT @G@@@@ L A0,ICO )@@G@@NTER . GET TERMINAL NUMBER FROM INITIALIZATION @F@@@@ L,U CP )@@G@@ A0,RSPUT$ . GET INPUT RSI PACKET FUNCTION CODE @D@@@@ S CQ )@@G@@ A0,INFC . STORE IT IN RSI$ PACKET@E@@@@ L,U A0,INACT CR )@@G@@. GET ADDRESS OF INPUT ACTIVITY @B@@@@ ER FORK$ . ACTICS )@@G@@VATE IT @]@@@@ . @]@@@@ . @^@@@@ . OUTPUT ACTCT )@@G@@IVITY @]@@@@OUTACT. @D@@@@ TZ TERMF . INPUT ACTIVITY TCU )@@G@@ERMINATING @ @@@@ ER EXIT$ . EXIT@D@@@@ L,U A0,OCV )@@G@@UP . GET ADDRESS OF RSI$ PACKET @B@@@@ ER RSI$ . DO CW )@@G@@AN RSGAW$ @B@@@@ TP OUP+2 . BAD RSI$ CALL @C@@@@ CX )@@G@@J TERM1 . TEST @B@@@@ L A0,OUC CY )@@G@@. GET STATUS BITS @B@@@@ TEP,U A0,020 . EXPOOL TIGHT @B@@@@CZ )@@G@@ J EXPOOL . SAY SO AND EXIT @C@@@@ L A0,OUA DA )@@G@@. GET OUTPUT STATUS BITS@A@@@@ TEP,U A0,04 . NO IMAGE @A@@@@DB )@@G@@ J OUTACT . TRY AGAIN @^@@@@ TNZ FIRST @^@@@@DC )@@G@@ J NTFRST @^@@@@ SZ FIRST @^@@@@ J DD )@@G@@ OUTACT @]@@@@NTFRST. @D@@@@ L A0,OUCH . GET ODE )@@G@@UPUT CHAR COUNT @G@@@@ SSL A0,6 . SHIFT OFF EXTRA STAT BDF )@@G@@ITS FROM CHAR COUNT @C@@@@ S A0,COMOUT . STORE IN COM$ PDG )@@G@@ACKET @D@@@@ L,U A0,COMPK1 . GET ADDRESS OF COM$ PACKET @C@@@@DH )@@G@@ ER COM$ . SEND OUTPUT TO CONSOLE@H@@@@ CLEAR OUTDI )@@G@@,23 . STORE ZEROS IN THE OUTPUT BUFFER @B@@@@ DJ )@@G@@J OUTACT . GET MORE OUTPUT @]@@@@ . @]@@@@ . DK )@@G@@@]@@@@ . @^@@@@ . INPUT ACTIVITY @]@@@@ . @[@@@@DL )@@G@@INACT.@D@@@@ TZ TERMF . OUTPUT ACTIVITY TERMINATING @D@@@@DM )@@G@@ J TERM1 . OUTPUT TERMINATING ACTIVITY @D@@@@ L,U DN )@@G@@ A0,1 . OUTPUT CHAR COUNT FOR COM$ @C@@@@ S A0,COMOC DO )@@G@@. STORE IN COM$ PACKET @C@@@@ L,U A0,STAR . INPUT SOLICIT CHDP )@@G@@AR @C@@@@ S A0,COMAD . STORE IN COM$ PACKET @C@@@@ DQ )@@G@@L,U A0,50 . SET MAX INPUT FOR COM$@C@@@@ S A0,COMIC DR )@@G@@. STORE IN COM$ PACKET @D@@@@ L,U A0,IN . GET ADDRESS OF IDS )@@G@@NPUT BUFFER @C@@@@ S A0,COMID . STORE IN COM$ PACKET @D@@@@DT )@@G@@ L,U A0,COMPK . GET ADDRESS OF COM$ PACKET @D@@@@ ER DU )@@G@@ COM$ . SOLICIT INPUT AND RETRIEVE @G@@@@ L A0,COMAC DV )@@G@@ . GET NUMBER OF CHAR(QUARTER WORD ASCII) @E@@@@ S A0,IDW )@@G@@NCH . STORE CHAR COUNT IN RSI$ PACKET @E@@@@ JNZ A0,$+6 DX )@@G@@ . SEND WHAT U HAVE @F@@@@ L A0,BLANKS . TRYIDY )@@G@@NG TO SEND A LINE OF BLANKS(MAYBE) @C@@@@ S A0,IN . STORDZ )@@G@@E INTO IMAGE BUFF @A@@@@ L,U A0,4 . CHAR COUNT@D@@@@ EA )@@G@@S A0,INCH . STORE IN RSI$ PACKET @#@@@@ J SENDEB )@@G@@@F@@@@ L,U A1,'@' . LOAD ASCII GLICH(CONTROL CHAR) EC )@@G@@@D@@@@ L,Q1 A0,IN . INPUT FIRST OWRD @C@@@@ ED )@@G@@TNE,U A0,0137 . IS IT AN UPARROW@E@@@@ S,Q1 A1,IN EE )@@G@@. REPLACE WITH PROPER CONTROL CHAR @D@@@@ L,Q2 A0,IN EF )@@G@@ . TEST SECOND CHAR @C@@@@ TNE,U A0,0137 . WAS IT AND UPAREG )@@G@@ROW @E@@@@ S,Q2 A1,IN . REPLACE WITH PROPER CONTROL CAHR EH )@@G@@@G@@@@ . THIS PORTION OF PROG WILL CHECK WETHER MORE INPUT IS NECESEI )@@G@@SARY @C@@@@ L A0,COMAC . GET CHAR COUNT AGAIN @ @@@@ EJ )@@G@@DSL A0,36 . @D@@@@ DI,U A0,4 . A0=WORD INDEX A1EK )@@G@@=CHAR INDEX @C@@@@ EX LOAD1,A1 . GET LAST CHAR OF INPUT@C@@@@EL )@@G@@ TNE,U A3,0137 . WAS IT AN UPARROW @C@@@@ J MOREEM )@@G@@ . NO THEN GET MORE INPUT@D@@@@SEND L,U A0,INP . GET ADDREEN )@@G@@SS OF RSI$ PACKET @E@@@@ ER RSI$ . SEND IT TO EXEC FROM TEO )@@G@@ERMINAL 1 @B@@@@ TP INP+2 . BAD RSI$ CALL @D@@@@ EP )@@G@@J TERM1 . TERM THIS SITE @B@@@@ L A0,IEQ )@@G@@NC . GET STATUS BITS @B@@@@ TEP,U A0,020 . EXPOOL TIGHT ER )@@G@@@B@@@@ J EXPOOL . SAY SO AND EXIT @F@@@@ CLEAR IN,ES )@@G@@20 . CLEAR OUT INPUT BUFFER @G@@@@ CLEAR EXTET )@@G@@RA,8 . CLEAR OUT EXTRA INPUT BUFFER @B@@@@ J EU )@@G@@ INACT . GO BACK FOR MORE@]@@@@ . @]@@@@ . @]@@@@EV )@@G@@ . @G@@@@ . THIS ROUTINE WILL ISSUE ANOTHER COM$ TO GET EXEW )@@G@@TRA IMAGES FROM @F@@@@ . THE CONSOLE. AND PACK THE DATA INTO THE EX )@@G@@OUTPUT BUFFER FOR @A@@@@ . RSI TO SEND TO THE EXEC @[@@@@MORE. EY )@@G@@@E@@@@ L A0,COMAC . GET OLD CHAR COUNT FROM FIRST COM$@D@@@@EZ )@@G@@ AN,U A0,1 . SUBTRACT ONE FOR THE UPARROW@C@@@@ S FA )@@G@@ A0,TEMP . SAVE FOR LATER USE @C@@@@ L,U A0,CONT . GET FB )@@G@@CONTINUE SOLICIT @C@@@@ S A0,COMAD . STORE IN COM$ PACKET FC )@@G@@@C@@@@ L,U A0,5 . GET OUTPUT CHAR COUNT @D@@@@ S FD )@@G@@ A0,COMOC . STORE IN THE COM$ PACKET @E@@@@ L,U A0,EXTRA FE )@@G@@. GET ADRESS OF NEW INPUT BUFFER @C@@@@ S A0,COMID . STORFF )@@G@@E INTO COM$ PACKET@B@@@@ L,U A0,COMPK . GET COM$ PACKET @B@@@@FG )@@G@@ ER COM$ . GET EXTRA INPUT @C@@@@ L A0,COMAC FH )@@G@@. GET NEW CHAR COUNT @C@@@@ JZ A0,MORE3 . NONE THEN FORGETFI )@@G@@ IT @C@@@@ S A0,R2 . STORE FOR LOOP COUNT @C@@@@ FJ )@@G@@JGD R1,$+1 . DECREMENT COUNT BY ONE@D@@@@ L X9,(1,EXTRFK )@@G@@A) . INDE FOR NEW INPUT BUFFER@D@@@@ L A0,TEMP . GET OLD BUFL )@@G@@FF CHAR COUNT @ @@@@ DSL A0,36 . @D@@@@ DI,U FM )@@G@@ A0,4 . A0=WORD INDEX A1=CHAR INDEX @C@@@@ TNZ A1 FN )@@G@@. IS IT WITHIN A WORD @E@@@@ A,U A0,1 . SET A0 INDEX TO FO )@@G@@THE NEXT WORD @F@@@@ LXI,U A0,1 . SET IFP )@@G@@NCREMENT ALSO @F@@@@ LXI,U A1,1 . SET IFQ )@@G@@NCREMENT IN A1 @F@@@@ LXM,U A3,0 . A3=CHAR INDEX FOR NEFR )@@G@@W INPUT BUFFER @G@@@@ LXI,U A3,1 . SET IFS )@@G@@NCREMNT PORTION OF A3 @F@@@@MORE1 EX LOAD,*A3 . GET CHAR FROM NEFT )@@G@@W WORD AND PUT INTO A4 @G@@@@ EX STORE,*A1 . STORE IN DESIGNAFU )@@G@@TED CHAR POSITION OF OLD BUFF @C@@@@ JGD R2,MORE1 . GET NEXT CFV )@@G@@HAR IN WORD @C@@@@MORE3 L A0,COMAC . GET NEW CHAR COUNT @D@@@@FW )@@G@@ AA A0,TEMP . ADD IT TO THE OLD CHAR COUNT@C@@@@ S FX )@@G@@ A0,INCH . STORE IN RSI$ PACKET @A@@@@ J SEND . SENDFY )@@G@@ IT @B@@@@ . ROUTINE FOR BAD IDENT RECOVERY @]@@@@ . FZ )@@G@@@]@@@@ . @]@@@@ . @]@@@@EXPOOL. @C@@@@ L,U GA )@@G@@ A0,12 . EXPOOL MSG CHAR COUNT @C@@@@ S A0,COMOC . STORGB )@@G@@RE IN COM$ PACKET @D@@@@ L,U A0,EXPMSG . GET ADDRESS OF EXPOOL GC )@@G@@MSG @C@@@@ S A0,COMAD . STORE IN COM$ PACKET @C@@@@ GD )@@G@@SZ COMPK+2 . NO RESPONSE REQUIRED @D@@@@ L,U A0,COMPK GE )@@G@@. GET ADDRESS OF COM$ PACKET @A@@@@ ER COM$ . SEND IT GF )@@G@@@]@@@@ . @]@@@@ . @ @@@@ . TERMINATION FUNCTION GG )@@G@@@[@@@@TERM1.@ @@@@ L,U A0,1 . @C@@@@ S A0,TGH )@@G@@ERMF . SET TERM FLAG(SAFETY) @C@@@@ L,U A0,RSTRM$ . GET TERM FGI )@@G@@UNCTION @C@@@@ S A0,INFC . STORE IN RSI$ PACKET @C@@@@GJ )@@G@@ L,U A0,13 . GET TERMSG CHAR COUNT @C@@@@ S A0,CGK )@@G@@OMOC . STORE IN COM$ PACKET @C@@@@ L,U A0,TRMSG . GET ADDRESSGL )@@G@@ OF TERM MSG@C@@@@ S A0,COMAD . STORE IN COM$ PACKET @C@@@@GM )@@G@@ SZ COMPK+2 . NO RESPNSE REWUIRED @D@@@@ L,U A0,CGN )@@G@@OMPK . GET ADDRESS OF COM$ PACKET @C@@@@ ER COM$ . TELLGO )@@G@@ HIM HES TERMING @B@@@@ L,U A0,INP . GET RSI$ PACKET @C@@@@GP )@@G@@ ER RSI$ . KILL THIS TERMINAL @^@@@@ ER EXITGQ )@@G@@$ @#@@@@ END INIT___M$ PACKET@B@@@@ L,U A0,COMPK GR )@@G@@. GET COM$ PACKET @B@@@@ ER COM$ . GET EXTRA INPUT @C@@@@GS )@@G@@======@@^@@ @@@@@@@@@@@@@@ @C@@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GT )@@G@@@@@@@@E?7[XF71-3 @@^@]@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@A@@A@@A@@AGU )@@G@@@@@@@@@@@@@^@@@@A=@@@@@@@^@@@]@^@[@[@ @@@]K^@[@)R FRODO GV )@@G@@ Y@]@@[@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@GW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@]K@C@) 0@EK@@@___@@G^@@GX )@@G@@@@%^@_)@3^@G)AR^[(@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___GY )@@G@@@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___@@@___GZ )@@G@@R#@^[&'=@@@4R#@^@AA#@^@^R;@^@@'=@@[E0@@^@]'=@@@QR\@^@]=8@@@K/K@@D;RB@^@@HA )@@G@@R;@@@CAF@^@@R;@@C%'=@@@F*@@^[S'=@@@DR;@^@B'=@@[E0@@^@D/K@@E]R\@^@D=8@@@KHB )@@G@@/K@@D;R7@^@D=8@@@^/K@@CK(@@^[T/K@@C) @@^[T/K@@CKRF@^@E;C@@@AAF@^[QR;@^[PHC )@@G@@'=@@@CN8K@@RR]@^[$ @C=@)8KK@C$/K@@CK*@@^[S/K@@E]R;@@@[AF@^[NR;@^[>AB@^[NHD )@@G@@R;@@@2AF@^[OR;@^@GAB@^[OR;@^[M'=@@@CRB@^[MAF@^@[/^@@C"R#@^[=A#@^@GR;@@@^HE )@@G@@AF@^@[/K@@DFR;K@[@RZ@^@G:8@@[ZAZK^@GRN@^@G:8@@[ZANK^@GRB@^[M;G@@@=W8@@@^HF )@@G@@')H^[H:80@[Z/K@@DVR;@^@@'=@@[E0@@^@]/K@@E]R\@^@]=8@@@K/K@@D;N8K@@OR]@^[$HG )@@G@@ @C=@G8KK@DON8K@@CR]@^[$ @C=@78KK@DS/K@@C%RB@^[MP;@@@[A#@^[LR;@^[+AB@^[NHH )@@G@@R;@@@ AF@^[NR;@^@7AB@^[OR;@^[M'=@@@CRB@^[M/@@@D7A#@@[]8KK@D%R]K^[*R#@^[LHI )@@G@@;G@@@=W8@@@^(@@@@HO;@@@[&;@@@[&;K@@[Q;0@@@&;0@@[')J=@_')H=[A8K)@D4RB@^[MHJ )@@G@@G@@^[LAF@^@[/K@@DFR;@@@GAF@^[NR;@^[VAB@^[N @@^[OR;@^[M'=@@@CR;@@@[A#@^[SHK )@@G@@R;@@@0AF@^@@R;@@@HAF@^[NR;@^[YAB@^[N @@^[OR;@^[M'=@@@CR;@^@@'=@@[E'=@@@DHL )@@G@@@@*@@@@@@^@G@@@@@@@@@@@@YUG999@@@@@@@@@@@@@@/@@@@@2^@)@@@@@@@@@@@@YUG999HM )@@G@@CXD@@@CLD@@@CTD@@@/,0^[#CPD)@@Q;0@@@/KF@@@[XG^@G[LG^@G[TG^@G/,0^[E[PG=@GHN )@@G@@Q;K@@@/KF@@@RR/^@FRZ/^@GRN/^@GRV/^@G@@@@@@@@^@@@@@[^[>@@2^@G@@^@@@@@@^@)HO )@@G@@@@@@@@@@@@@@@@@@@[@@@@@@C(SE[JD9G^[ODDBD[OCTJD1ND9G^[OC(MD( C))^@)CTJD1OHP )@@G@@BK)^@)^@)^@) K)^@)@@]^@ @@[@@@@@[^@7@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@$MAIN$ @@^@@^@@@@@]HS )@@G@@@@@#@ @@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HU )@@G@@CONSOLE E?)[XFERU$ [XYGHE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@$IBANK @@@@@[$DBANK @@#@@[#@KW)B@[@@@[HX )@@G@@FOEG5T@@@@]^@@@<@@9102 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@HY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[@^@]K@C@@@@@@@HZ )@@G@@)@@@@ @[(^@@ Y@]@@[@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@IB )@@G@@ L A0,A1 . GET NEW SS/U@E@@@@ L IC )@@G@@ A1,SGTB . GET FULL GTB ADDR @ @@@@ LSSL ID )@@G@@ A1,16 @F@@@@ TNZ P1FLAG . SHIFT OFF PAIE )@@G@@CKID INDEX @^@@@@ LSSL A1,2@ @@@@ TZ P1FLIF )@@G@@AG @E@@@@ SSL A0,2 . ADJUST SS/U FOR P1 IG )@@G@@@G@@@@ DSL A0,16 . NEW ABS-FORMAT ADDR IN AIH )@@G@@1 @ @@@@ TNZ P1FLAG @^@@@@ DSL A0,2II )@@G@@@^@@@@ J SAME@]@@@@OUTRNG . @^@@@@ E$DIT IJ )@@G@@ EDT @^@@@@ E$MSG OUTM@ @@@@ E$OCTF 12,0,X10 IK )@@G@@@#@@@@ E$MSGR @ @@@@ P$RINT PLIN2 @ @@@@ IL )@@G@@ ER EABT$ @]@@@@TAG0 . @ @@@@ L,H1 A0,SIM )@@G@@GTB @ @@@@ TNE,H1 A0,ADDR @^@@@@ J SAMEIN )@@G@@@^@@@@ SZ,H1 ADDR@ @@@@ LMJ X10,ABSAD @ @@@@IO )@@G@@ P$RINT SWITCH @^@@@@ J DOIO@[@@@@REMMM.IP )@@G@@@ @@@@ L A0,ADDR @ @@@@ SSL A0,18 IQ )@@G@@@ @@@@ TZ P1FLAG @^@@@@ SSL A0,2@ @@@@IR )@@G@@ LSSL A1,16 @ @@@@ TNZ P1FLAG @^@@@@IS )@@G@@ LSSL A1,2@ @@@@ DSL A0,16 @ @@@@ IT )@@G@@ TNZ P1FLAG @^@@@@ DSL A0,2@[@@@@SAME. @ @@@@IU )@@G@@ S A1,ADDR @[@@@@DOIO. @ @@@@ L,U A0,PIV )@@G@@KT @^@@@@ ER IOW$@ @@@@ TZ,S1 PKT+3 IW )@@G@@@ @@@@ ER EABT$ @E@@@@ L A0,BUF+1 IX )@@G@@ . GET BACK POINTER @D@@@@ TNZ R1F0 IY )@@G@@ . REMOVABLE? @C@@@@ J TAG1 . NO IZ )@@G@@@G@@@@ LSSL A0,16 . YES, GET JUST THE SECTORJA )@@G@@ ADDR @ @@@@ TNZ P1FLAG @E@@@@ LSSL A0,2JB )@@G@@ . IF NOT P1, 18 BITS@F@@@@ L A1,BACK JC )@@G@@ . GET CORRECT BACK ADDR @ @@@@ LSSL A1,16 JD )@@G@@@E@@@@ TNZ P1FLAG . ADJUST IT, TOO @^@@@@JE )@@G@@ LSSL A1,2@C@@@@ TE A0,A1 . JF )@@G@@MATCH?@F@@@@ J WBP . NO, WRONG BACK POIJG )@@G@@NTER @D@@@@ J TAG2 . YES, GO ON @]@@@@JH )@@G@@TAG1 . @B@@@@ L,S1 A0,BUF+1 . @D@@@@ JI )@@G@@ TEP,U A0,02 . PACK INDEX @D@@@@ TOP,U JJ )@@G@@ A0,01 . FIXED ADDR? @C@@@@ J TAG3 JK )@@G@@ . NO @ @@@@ L,U X10,BUF+1 @E@@@@ TNJL )@@G@@Z,H2 XPKID . ANY FIXED DISCS? @C@@@@ J JM )@@G@@ OUTRNG . NO @D@@@@ L A0,BUF+1 JN )@@G@@ . GET ADDR @E@@@@ LSSL A0,6 . ISOLATJO )@@G@@E INDEX @B@@@@ SSL A0,26 . @E@@@@ JP )@@G@@ JZ A0,OUTRNG . IF ZERO, NO GOOD @F@@@@ LAJQ )@@G@@,H2 A1,XPKID . GET MAX FIXED DISCS @E@@@@ TLJR )@@G@@E A1,A0 . WITHIN RANGE? @C@@@@ J JS )@@G@@ OUTRNG . NO @G@@@@ L,H1 A0,XPKID,A0 JT )@@G@@ . GET SS/U FROM PACKID TABLE @F@@@@ L A1,BUF+1 JU )@@G@@ . GET FULL BACK POINTER @ @@@@ LSSL A1,16 JV )@@G@@@F@@@@ TNZ P1FLAG . SHIFT OFF PACKID INDEX JW )@@G@@@^@@@@ LSSL A1,2@ @@@@ TZ P1FLAG @E@@@@JX )@@G@@ SSL A0,2 . ADJUST SS/U FOR P1 @G@@@@ JY )@@G@@ DSL A0,16 . NEW ABS-FORMAT ADDR IN A1 @ @@@@JZ )@@G@@ TNZ P1FLAG @^@@@@ DSL A0,2@D@@@@ KA )@@G@@ L A0,A1 . PUT IN A0 @E@@@@ J KB )@@G@@ TESTEE . OK, NOW CHECK @]@@@@TAG3 . @E@@@@ KC )@@G@@ LA A0,BUF+1 . GET BACK POINTER @^@@@@ LSKD )@@G@@SL A0,4@^@@@@ SSL A0,4@D@@@@TESTEE TE A0,BKE )@@G@@ACK . CORRECT? @C@@@@ J WBP KF )@@G@@ . NO @H@@@@TAG2 TP BUF . ANY MORE (FOKG )@@G@@RWARD POINTER POSITIVE?)@H@@@@ J NOMGTB . KH )@@G@@NO, NO MORE GRANULE TABLE ENTRIES @E@@@@ L A0,ADDR KI )@@G@@ . GET NEW BACK POINTER@C@@@@ S A0,BACK KJ )@@G@@ . STORE IT@F@@@@ L A0,BUF . GET NEXT GTBKK )@@G@@ ADDR, TOO. @E@@@@ S A0,SGTB . SAVE NEXT GTKL )@@G@@B ADDR@F@@@@ J NGTB . TAKE IT AWAY, NTGBKM )@@G@@! @]@@@@NOMGTB . @^@@@@ P$RINT GTOK@ @@@@NOMGT2 L KN )@@G@@ A0,SADDR @ @@@@ S A0,ADDR @]@@@@NSECE . KO )@@G@@@F@@@@ JGD R6,NSEC . GET ALL SECTORS IN TRACKKP )@@G@@@]@@@@ETK . @G@@@@ TLEM X9,A14 . REACHEKQ )@@G@@D LAST TRACK DESCRIPTOR?@F@@@@ J NTRACK . KR )@@G@@NO, GET THE NEXT ONE @E@@@@ J DONE . KS )@@G@@YES, FINISHED @]@@@@WBP . @^@@@@ E$DIT EDT @ @@@@KT )@@G@@ E$MSG BADBAK @ @@@@ E$OCTF 12,ADDR @#@@@@KU )@@G@@ E$MSGR @ @@@@ E$OCTF 12,BACK @#@@@@ E$KV )@@G@@MSGR @ @@@@ E$OCTF 12,BUF+1 @ @@@@ P$RINT PLINKW )@@G@@2 @ @@@@ J NOMGT2 @#@@@@ END ___? KX )@@G@@@C@@@@ J OUTRNG . )@@[S@*@@@@@T & - PTR AKY )@@G@@B BACKBAD GT AT & LE MI0POSSIB@[#@@@UT OK ECKS OGTB CHAA@@@@)@F[S@@E@@@@KZ )@@G@@PACK IS: & ADDRES@[#@@JTS ED UNISWITCHS & BUT I BE &,SHOULDAB@@@@LA )@@G@@)@Q@S@)@V@C@)@@@<#@[][T@K)R@@@/,)@@@/GK@#2R#T@@@R]K@@W^@@@@@RANGE&UT OF LB )@@G@@NDEX OAC@@@@)@^[F][SK^C]1][)K)F@@@@@R#@@[AA#@@@@O;@@@V*@@@@@O;@@@[R#@@@@LC )@@G@@/K@@@JN9)@@_C[(@@[AD@@@@)@H[]K)QEKG*KHCKG*]@-@Y@@@@@@@R7@@@@/K@@#2/K@@@OLD )@@G@@(4@@@#'=@@@@R;@@@@C[(@@]:8@@@ZAE@@@@)@P[#][!@^@(@G-@@-)@-@I@@@@@@@/,0@@@LE )@@G@@C8@@@^/,0@@@C/@@@@/K@@@+%8@@@^/K@@@+(@@@@@AF@@@@)@X[F]@?K)CK)WK)X@K@@@@@LF )@@G@@/K@@@$:8@@@G%8@@@^;C@@@]'=@@@@R#@@@@/,0@@@C8K@@GC@@@@@AG@@@@)@&[#@EK#CK@LG )@@G@@CS@]^[+^['^[0@@@@@/,0@@@9?@@@[/,0@@@C8K@@ C8@@@X/,0@@@C/@@@@/K@@#1AH@@@@LH )@@G@@)@,[]K)]K)JK)I^C@=C#4C^K@@@@@@/,0@@@CO@@@L/,0@@@C/@@@(/,0@@@9?@@@#/,0@@@LI )@@G@@C/@@@*AI@@@@)@6[F#@@K)GK)F^C][]@L@@@'D)@[#/,0@@@C/@@@]/,0@@@C8K@@GC@@@@@LJ )@@G@@/,0@@@C8K@@ C8@@@YAJ@@@@)@_[##@@K)GK^G@[]@1][0@@@@@@@@R#@@@@/,0@@@C8K@@FLK )@@G@@C8@@@-/K@@[A/,0@@@C8K@@DC8@@@ZAK@@@@)[B[F][4(@G-@@-)@CKACKB);C@@@^;*@@@^LL )@@G@@R#@@@H/,0@@@C8K@@ C8@@@AN@@@@LO )@@G@@)[+[EK0@^C]^[#@@K)GK)Y@@R#@@@@/,0@@@C8K@@^C8@@@=/K@@[%/,0@@@C8K@@GA#@@@ULP )@@G@@;C@@@^AO@@@@)[:[#][5][.]@.@K)FK0@K0@K0@@@@R#K@@UA#@@@VA#@@@TR#@@@@/K@@#1LQ )@@G@@0@@@@@*@@@@@'=@@@@AP@@@@)[3[F]][@K0@[@ES@CKK*@@@/K@@]S(^@@@@R')@@U/K@@]8@@@[=8@@@]R7@@@U/K@@]:*@@@@@AQ@@@@)[/[F#@@^[]]^K^CCOC]0@@@RF@@@@CCW@@@LS )@@G@@/K@@]S?@K@@GC^K@@@/@@@]S;C@@@U;*@@@AR#@@@UAR@@@@)] [F]]D@@K^G@^CBK@@@@@@LT )@@G@@R#@@@H'=@@@@R#@@@M/K@@]H:@@@@H;*@@@];C@@@]/K@@]D(@@@@@AS@@@@)]I[F#@@K)+^LU )@@G@@CC)K)+@@@@@@;G@@@](@@@@@;G@@@K;C@@@]*@@@@@;*K@@](@@@@@;*K@@KR#K@@UAT@@@@LV )@@G@@)]R[#@EK#CK@CS@CK#)-@K@@@@@@@@/,0@@@C8K@@GC@E@@@/,0@@@C8@@@N/,0@@@C/@@@@LW )@@G@@/K@@]5AU@@@@)]Z[#][P][1][5]]H#@[]@!@K)F@@@ C@@@@/K@@]5:C@@@@RF@@@U'=@@@@LX )@@G@@'=@@@@R#@@@@/,0@@@AV@@@@)]$[F][X#@[][5@K)F^CC)@@;*K@@K;C@@@]*@@@@@;C@@@MLY )@@G@@R#@@@@/K@@]6'=@@@@R#@@@M/,)@@@AW@@@@)]0[F]]C^CC-]@?(@2-@4-@2*4@@@#'=@@@@LZ )@@G@@R;@@@@A#K@@@;G@@@](@@@@@;G@@@K;*K@@](@@@@@AX@@@@)]9[F]]H]@.]][@^CC-#@@@@MA )@@G@@;*K@@KR#K@@V;*@@@](@@@@@;*@@@K/K@@#B(@@@@@R#@@@['=@@@@AY@@@@)#][F]]C^[@KMB )@@G@@)J[@@@@@@@@@/K@@#->8@@@[=8@@@]R7@@@[/K@@#&/K@@#5%@@@@H;*K@@](@@@@@AZ@@@@MC )@@G@@)#F[E(@Y-[])CKB))CKK)@@@?@K@@GC^K@@@/@@@]S;C@@@U;*@@@AR#@@@[/K@@]S(^@@@@MD )@@G@@R')@@[BA@@@@)#O[F@K)-K)J^CC-]]C@@@@@;G@@@K;C@@@]*@@@@@;*K@@](@@@@@;*K@@KME )@@G@@R#K@@[RFG@@@/K@@]SBB@@@@)#X[F]]C^[]@/^G@^@@@@@@@/K@@#5%@@@@V;C@@@^;*@@@^MF )@@G@@C@@@@[/K@@#=R#@@@H;G@@@](@@@@@BC@@@@)#&[#]@.@K)FK0@K)JK0@K^G@@@@@@R#@@@#MG )@@G@@/K@@[2A#@@@UR#@@@@A#@@@VR#@@@@/K@@#!0@@@@@BD@@@@)#,[#][5#@[]@!@^[]]K(@G@MH )@@G@@@@@@@@C/@@@@/K@@@@/K@@@[$]K@@U8L)@@BA#@@@@R#@@@T'=@@@@BE@@@@)#6[#]@[#@[]MI )@@G@@@X]@?K)CK)PK0@@@@@C@@@@V/,0@@@/,0@@@C8K@@GC@@@@@/,0@@@C8@@@B/,0@@@BF@@@@MJ )@@G@@)#"[]K)CK)PK)J^C]^CB^CBK@@@@@@'=@@@@R#@@@@/,0@@@C8K@@GC@@@@[/,0@@@/,0@@@MK )@@G@@C8K@@GBG@@@@)^A@F@@@@@@@)@W[@@@@@@@@MI1: CATED UNALLOTED ALLOCA) AT ML )@@G@@MI0: @@#@@@/K@@#\BH@@@@)@=@S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@MM )@@G@@@@@@@@@@@@@@E TBL:GRANULNONE BI@@@@@@@@@@[SK^C]1][)K)F@@@@@R#@@[AA#@@@@MN )@@G@@O;@@@V*@@@@@O;@@@[R#@@@@/K@@@JN9)@@_C[(@@[AD@@@@@@^@@]@@A@@>@[K@@[@[O@@@MO )@@G@@@@@@@$@@@@^BEDIT$ EDITR$ ECHAR$ ECOL$ ESKIP$ MP )@@G@@ECLR$ EDT EMSG$ EOCTF$ EDECF$ EDCFZ$ MQ )@@G@@ADDR ECOPY$ EPACK$ EFD2$ BUF EOCTV$ MR )@@G@@EDECV$ EFD1$ EDITX$ ECOLN$ EMSGR$ DAS MS )@@G@@ABSAD DRUM PKT IOW$ XOPT PLIN2 MT )@@G@@PRINT$ PLIN1 GOPT R1F0 XPKID P1FLAG MU )@@G@@EABT$ DONE SEARCH @@[@@@@@@@@@)@@[K@@JA@)@E@@@@@@@@@@@MV )@@G@@@^?@@E@@@@@@@@#___@@@___@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA@@@@)HM@K*@@@@@@MW )@@G@@)M@@0@*AG@TK@@@@@@DUMP T@A7@@@@[]@M[ACK? WHAT P@@@@@@@^?@@@@@@@HOAB@@@@MX )@@G@@)MA@SE[<@AO@)MJ@0@@@@@@@CTOR? THE SEO OUT TO ZER WANT REALLY@A7@MD@[]@M MY )@@G@@RACK? AC@@@@)MP[C*AG@TK@*AG@TKE@@@@@[[@@@@@@@@@@@&Q@M-@A;@MD@[]@MRYHOW? MZ )@@G@@TRY AN@A;@MD@]A@MJAD@@@@)MY@S@)N#@8* @*@@@@@@@@@@@@@@@@@@@@@@[@@@@@]Q@M-NA )@@G@@@[Q@M-@]Q@M-@@@@@@@@@@@@@@@@@@AE@@@@)NE[S@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF@@@@)NP[S@@@@@@@@@@@@@@@@@@@NC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG@@@@)N)@*@E@@@@@ND )@@G@@)OI@)@@@@@@@ORY TRDIRECT & DAS AT@]^@N)DRESS MUM ADD MAXIREACHEAH@@@@NE )@@G@@)OM[S@@@@@@@. &' LLOC: & ANF )@@G@@ACK ATAI@@@@)OX[S@@@@@@@ &, MBS DAS=BL SAY FATGURED& CONFIIS NOTSS #& NG )@@^@@ORAGE&ASS ST NOT MAJ@@@@ NH @EOF @COPY,IO TEMP.1015-021-023,1015-021-023. @FREE TEMP.