@CAT,P 1015-020-023.,///10000 @ASG,T TEMP.,///10000 @ELT,OI TEMP.1015-020-023,,,130105053241,000 )@@G@@**PF**@@@[^-@@@@@@@@@@@[@ 2@@@]FE@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@P@@ *@@@]F^ ;Q@@@@@@@@@@@R@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@P@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@^@@@@@@@@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@#@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@@@@@@@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Q@@@@@@@@J@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@AL )@@G@@@@@@@@@@@@@@@@@@@]@@@@@@@@@@@@@@@@@@@@@@@@@@F@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@E@@RAN )@@G@@STAT @@@@@@@@[@@C @ @@@[]@@@@L@@@@W@@#0[VEOUTPUT AO )@@G@@@@@@@@@@[@@B @ @@@[]@@@@J@@@@WL@<"[VECHG @@@@@@@@[@@ AP )@@G@@ @ @@@[]@@@@,@@@@W)LNBC EINFOR @@@@@@@@[@@A AQ )@@G@@@ @@@[]@@@@)@@@@XIL_8CHECHG @@@@@@@@ @@@ @@@@X8@@#@@EAR )@@G@@@@@@X,M0HCHEINFOR @@@@@@@@ @@@ @@@@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@@@ 0@D@@@@CHECK GB )@@G@@ DJZ A4,LEGAL . EXPONENT LEGAL @E@@@@ J GC )@@G@@ NERRA$ . EXPONENT UNNORMALIZED @ @@@@STORE DS A0,BAGD )@@G@@SE @ @@@@ DS A4,EXPON @D@@@@ TN 0,A2 GE )@@G@@ . BASE POSITIVE @E@@@@ J REF .GF )@@G@@ YES,START CALCULATIONS @G@@@@ LA,U A3,02074 . NO,TEGG )@@G@@ST EXPONENT FOR INTEGRAL VALUE@^@@@@ LDSL A2,60@F@@@@ GH )@@G@@ DFA A4,A2 . ELIMINATE FRACTION, IF ANY @ @@@@ GI )@@G@@ DAN A4,EXPON @ @@@@ DJZ A4,$+2 @G@@@@ GJ )@@G@@ J NERRB$ . BASE < 0 AND EXPONENT NON-INTEGER @ @@@@GK )@@G@@ AA A2,(0100,0)@E@@@@ DFA A2,EXPON .GL )@@G@@ ELIMINATE UNIT, IF ANY @ @@@@ DAN A2,EXPON @D@@@@ GM )@@G@@ DJZ A2,REF . EVEN EXPONENT @D@@@@ SN GN )@@G@@ A0,SIGN . ODD EXPONENT @ @@@@REF DL A3,BASE GO )@@G@@@ @@@@ LMJ X11,DLOGX @B@@@@. RETURN VALUE IN R1, GP )@@G@@R2 AND R3 @H@@@@ DFU A3,EXPON . START Q PRECISIONGQ )@@G@@ PRODUCT EXP*LOGE(BASE)@^@@@@ LDSC A4,11@^@@@@ SSCGR )@@G@@ A5,1 @ @@@@ DS A4,STOR @ @@@@ SA GS )@@G@@ A3,STOR+2 @^@@@@ DL A1,R1@^@@@@ LA A3,R3GT )@@G@@@^@@@@ LDSC A2,1 @^@@@@ SSC A3,1 @^@@@@ GU )@@G@@ LA A4,A3@^@@@@ SA A1,R2@^@@@@ SA GV )@@G@@ A2,A0@ @@@@ MI A2,STOR+1 @ @@@@ MI A4,STGW )@@G@@OR @^@@@@ DA A4,A2@ @@@@ MI A0,STOR GX )@@G@@@^@@@@ DSA A4,35@^@@@@ DA A4,A0@^@@@@ GY )@@G@@ DLSC A1,A4@^@@@@ SA A1,R3@^@@@@ LA GZ )@@G@@ A0,R2@ @@@@ AA A0,STOR+2 @ @@@@ ANA,U A0,01HA )@@G@@777,A3@^@@@@ DLM A4,A1@^@@@@ LA A3,A0@^@@@@HB )@@G@@ ANA,U A0,11@^@@@@ DFP A0,A4@A@@@@ LMJHC )@@G@@ X11,NEXP$ . @G@@@@ TP SIGN . IS BAHD )@@G@@SE NEGATIVE AND EXPONENT ODD @B@@@@ DLN A3,A3 .HE )@@G@@ YES @^@]@@ L X5,R4@ @]@@ DS A3,0,X5 . HF )@@G@@@ @]@@ L X11,OLDX11@E@@@] L X11,OLDX11HG )@@G@@ . RETURN RESULT IN A3-A4 @^@@@@ J 0,X11@ @@@@BASE HH )@@G@@ EQU DRTARG1+2 @ @@@@EXPON EQU DRTARG1+4@ @@@@SIGN HI )@@G@@ EQU DRTARG1+6 @ @@@@OLDX11 EQU DRTARG1+8 @ @@@@STOR HJ )@@G@@ EQU DRTARG1+9 @#@#@@NAME ' F**F '@A@@@#NAME INSERT 5HK )@@G@@,'F**','F ' . @]@@@@ END___TION RANGE @H@@@@. THE ARGUHL )@@G@@MENTS A AND B MUST BE NO*[@@@@*SDFF*@C@@@^. COPYRIGHT 1975 BY UNIVERSIHM )@@G@@TY OF MARYLAND @[@@@^. @D@@@^. QUESTIONS CONCERNING THIS SHOULDHN )@@G@@ BE DIRECTED TO: @[@@@^. @ @@@^. MARVIN V. ZELKOWITZ @B@@@^HO )@@G@@. DEPARTMENT OF COMPUTER SCIENCE @A@@@^. UNIVERSITY OF MHP )@@G@@ARYLAND @B@@@^. COLLEGE PARK, MARYLAND 20742 @[@@@^. HQ )@@G@@@G@@@^. PERMISSION TO USE THESE LISTINGS AND THE COMPUTER PROGRAMHR )@@G@@S THEY@E@@@^. REPRESENT IS GRANTED UNDER THE FOLLOWING CONDITIONS: HS )@@G@@@[@@@^. @G@@@^. 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS HT )@@G@@REPRESENTED BY @G@@@^. THESE LISTINGS PROVIDED THAT THE NAME PLUM OHU )@@G@@R UNIVERSITY OF MARYLAND@E@@@^. PL/1 COMPILER REMAINS ASSOCIATED WITH HV )@@G@@THESE PROGRAMS. @[@@@^. @F@@@^. 2. MODIFICATIONS MAY BE MADHW )@@G@@E TO THE LISTINGS PROVIDED: @[@@@^. @G@@@^. (A) ANY RESULTIHX )@@G@@NG PROGRAM, OR REPORT, PAPER OR DOCUMENTATION @G@@@^. DESCRIBINHY )@@G@@G SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROGRAM @E@@@^. IS HZ )@@G@@A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND @[@@@^. @G@@@^. IA )@@G@@ (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@^IB )@@G@@. OF ERRORS IN THE SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@^IC )@@G@@. A BRIEF DESCRIPTION OF THE FEATURE ADDED SHALL BE SUBMITTED ID )@@G@@@C@@@^. TO THE UNIVERSITY OF MARYLAND, AND @[@@@^. @F@@@^IE )@@G@@. (C) NO PROGRAMS DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@^IF )@@G@@. WITHOUT WRITTEN APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND IG )@@G@@@[@@@^. @F@@@^. (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTIH )@@G@@ED TO OTHER @G@@@^. LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEII )@@G@@ARLY INDICATE @G@@@^. WHETHER THE PROGRAMS ARE EXACT COPIES OIJ )@@G@@F THE UNIVERSITY OF @E@@@^. MARYLAND PLUM COMPILER OR ARE MODIK )@@G@@IFICATIONS TO IT. @[@@@^. @G@@@^. 3. THESE CONDITIONS ONLY APIL )@@G@@PLY TO THE PLUM COMPILER ITSELF, @F@@@^. AND ARE NOT MEANT TO APPLYIM )@@G@@ TO ANY PROGRAM WRITTEN USING PLUM. @E@@@^. THE PURPOSE OF THESE CONDIIN )@@G@@TIONS IS TO ALLOW ANY USER TO @F@@@^. EXPERIMENT WITH THE COMPILER AS IO )@@G@@LONG AS THE RESULTING PRODUCT @G@@@^. IS NOT SOLD AND AS LONG AS IT ISIP )@@G@@ KNOWN THAT THE PRODUCT DEVELOPED @#@@@^. FROM PLUM. @[@@@^. IQ )@@G@@@[@@@^. @[@@@^. @[@@@^. @[@@@^. @[@@@^/. @[@@@@. IR )@@G@@@D@@@@. UNIVAC 1108 FORTRAN V LIBRARY@[@@@@. IS )@@G@@@C@@@@. NEXP1$ - INTEGER BASE TO INTEGER EXPONENT @[@@@@. @]@@@@IT )@@G@@. USAGE @[@@@@. @^@@@@. FORTRAN V REFERENCE @G@@@@. C**D, WHIU )@@G@@ERE C IS THE (INTEGER) BASE AND D IS THE (INTEGER) EXPONENT.@[@@@@. IV )@@G@@@A@@@@. ASSEMBLER LANGUAGE REFERENCE @ @@@@. A LMJ X11,NEXPIW )@@G@@1$ @D@@@@. A+1 + LOC(C) . ADDRESS OF BASE @D@@@@IX )@@G@@. A+2 + LOC(D) . ADDRESS OF EXPONENT @C@@@@. A+3 + IY )@@G@@ SEQNUM,PRGNAM . WALK BACK WORD@C@@@@. A+4 IZ )@@G@@ . NORMAL RETURN @[@@@@. @A@@@@. ARGUMENT AND FUNCTION RANGE JA )@@G@@@H@@@@. THE ARGUMENTS C AND D MUST BE INTEGER NUMBERS SUCH THAT C**D .JB )@@G@@LE. 2**35-1,@E@@@@. AND IF C=0 , D > 0. THE FUNCTION RETURNS AN INTEGJC )@@G@@ER. @[@@@@. @^@@@@. FUNCTIONS REFERENCED@]@@@@. NONE @[@@@@JD )@@G@@. @^@@@@. ERROR CONDITIONS @H@@@@. ERROR TERMINATION IS CAUSEJE )@@G@@D IF C=0 AND D .LE. 0 OR IF C**D .GT. 2**35-1. @[@@@@. @^@@@@. MATJF )@@G@@HEMATICAL METHOD @H@@@@. C**D IS FOUND BY TAKING C AS A FACTOR ABS(D)JG )@@G@@ TIMES. C**D = 0 IF D < 0 AND@^@@@@. C IS NOT 0 OR 1. @[@@@@. JH )@@G@@@#@@@@. PERFORMANCE @[@@@@. @]@@@@. ACCURACY@G@@@@. THE FUNCJI )@@G@@TION IS EXACT FOR ALL VALUES FOR WHICH C**D .LE. 2**35-1. @[@@@@. JJ )@@G@@@]@@@@. TIMING @G@@@@. (9.9 + 4.8*K + 6.3*M) MICROSEC., WHERE K IS JK )@@G@@THE MOST SIGNIFICANT BIT@E@@@@. POSITION AND M IS THE NUMBER OF ONE BIJL )@@G@@TS IN ABS(D). @[@@@@. @^@@@@. CORE REQUIREMENTS @A@@@@. NUJM )@@G@@MBER OF INSTRUCTIONS 28 @A@@@@. SIZE OF DATA AREA 1 JN )@@G@@@A@@@@. TOTAL CORE REQUIREMENTS 29 @[@@@@. @A@@@@ AXRJO )@@G@@$ . @#@@@# DCLRG . @[@@@@$(3) @ @@@@REXFXBJP )@@G@@* RTSAVE NAME . @ @]@@ L X3,0,A1 .@A@]@@ JQ )@@G@@ L A2,*1,A1 . C @A@]@@ L A4,*2,A1 . DJR )@@G@@@A@@@] L A4,0,A2 . D @A@@@] L A2,JS )@@G@@0,A1 . C @A@]@@ SZ A3 . @A@@@@ LA,JT )@@G@@U A0,1 . @C@@@@ JZ A4,EXP1D . EXPONEJU )@@G@@NT = 0@C@@@@ LM A3,A2 . ABS(BASE) @A@@@@ JV )@@G@@ TG,U A3,2 . @D@@@@ J EXP1N . JW )@@G@@ABS(BASE) .GT. 1 @D@@@@ JNZ A2,$+3 . ABS(BASE) = JX )@@G@@1 @C@@@@ SZ A0 . BASE = 0 @E@@@@ JY )@@G@@ JN A4,NERRB$ . BASE = 0, EXP NEGATIVE @D@@@@ LM JZ )@@G@@ A4,A4 . ABS(BASE) = 1 @E@@@@ AND A3,A4 KA )@@G@@ . EXP EVEN (0), OR ODD (1)@A@@@@EXP1N JN A4,EXP1C KB )@@G@@ . @A@@@@AGAIN JNB A4,SQUARE . @A@@@@ MF A0,KC )@@G@@A2 . @C@@@@ JNZ A0,NERRC$ . OVERFLOW KD )@@G@@@A@@@@ DSC A0,37 . @A@@@@SQUARE SSL A4,1 KE )@@G@@ . @B@@@@ JZ A4,BACK . RETURN @A@@@@ KF )@@G@@ MF A2,A2 . @C@@@@ JNZ A2,NERRC$ . KG )@@G@@OVERFLOW @A@@@@ DSC A2,37 . @A@@@@ J KH )@@G@@ AGAIN . @F@@@@EXP1C SZ A0 . ABS(BAKI )@@G@@SE) .GT. 1,EXP IS NEG @D@@@@EXP1D JNZ A2,BACK . N**0 = KJ )@@G@@1, N .NE. 0 @D@@@@ J NERRB$ . BASE = 0, EXP = 0.KK )@@G@@@^@]@@BACK S A0,0,X3 . @D@@@]BACK S A0,A3 . RKL )@@G@@ETURN RESULT IN A3@^@@@@ J RTBACK . @#@#@[NAME ' I**I ' KM )@@G@@@A@@@#NAME INSERT 5,'I**','I ' . @A@@@@ END KN )@@G@@ . ___LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@^. REPRESENKO )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@^. @G@@@^. KP )@@G@@*[@@@@*SDFF*@C@@@A. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@AKQ )@@G@@. @D@@@A. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@AKR )@@G@@. @ @@@A. MARVIN V. ZELKOWITZ @B@@@A. DEPARTMENT OF CKS )@@G@@OMPUTER SCIENCE @A@@@A. UNIVERSITY OF MARYLAND @B@@@A. KT )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@A. @G@@@A. PERMISSIOKU )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@A. REPRESENKV )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@A. @G@@@A. KW )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@AKX )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDKY )@@G@@@E@@@A. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@AKZ )@@G@@. @F@@@A. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDLA )@@G@@ED: @[@@@A. @G@@@A. (A) ANY RESULTING PROGRAM, OR REPORT, PLB )@@G@@APER OR DOCUMENTATION @G@@@A. DESCRIBING SUCH PROGRAM WILL CLEALC )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@A. IS A DIALECT OF PLUM OR IS LD )@@G@@DERIVED FROM PLUM, AND @[@@@A. @G@@@A. (B) ALL SUCH MODIFICALE )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@A. OF ERRORS IN THLF )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@A. A BRIEF DESCRIPLG )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@A. TO THE UNLH )@@G@@IVERSITY OF MARYLAND, AND @[@@@A. @F@@@A. (C) NO PROGRAMSLI )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@A. WITHOUT WRITTENLJ )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@A. @F@@@A. LK )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@A. LL )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@ALM )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF LN )@@G@@@E@@@A. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@ALO )@@G@@. @G@@@A. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERLP )@@G@@ ITSELF, @F@@@A. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN LQ )@@G@@USING PLUM. @E@@@A. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USLR )@@G@@ER TO @F@@@A. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRLS )@@G@@ODUCT @G@@@A. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT LT )@@G@@DEVELOPED @#@@@A. FROM PLUM. @[@@@A. @[@@@A. @[@@@A. LU )@@G@@@[@@@A. @[@@@A. @[@@@A/. @[@@@]. @D@@@]. LV )@@G@@ UNIVAC 1108 FORTRAN V LIBRARY@[@@@]. @C@@@]. DLOG(X) - DOUBLELW )@@G@@ PRECISION NATURAL LOGARITHM @[@@@]. @]@@@]. USAGE @[@@@]. LX )@@G@@@^@@@]. FORTRAN V REFERENCE @F@@@]. DLOG(X), WHERE X REPRESENTS THE LY )@@G@@(DOUBLE PRECISION) ARGUMENT. @[@@@]. @A@@@]. ASSEMBLER LANGUAGE RLZ )@@G@@EFERENCE @ @@@]. DL A3,ARG @^@@@]. A LMJ X1MA )@@G@@1,DLOG@[@@@]. @A@@@]. ARGUMENT AND FUNCTION RANGE @H@@@]. THMB )@@G@@E ARGUMENT MUST BE A POSITIVE (NONZERO), NORMALIZED, DOUBLE PRECISION, MC )@@G@@@H@@@]. FLOATING POINT NUMBER. THE FUNCTION RETURNS A NORMALIZED, FLOMD )@@G@@ATING POINT @]@@@]. NUMBER. @[@@@]. @^@@@]. FUNCTIONS REFERENCEDME )@@G@@@]@@@]. NONE @[@@@]. @^@@@]. ERROR CONDITIONS @H@@@]. UNMF )@@G@@NORMALIZED, NEGATIVE OR ZERO ARGUMENTS RESULT IN ERROR TERMINATION. MG )@@G@@@[@@@]. @^@@@]. MATHEMATICAL METHOD @H@@@]. IF 0.96 .LE. X .LE. MH )@@G@@1.05, LOGE(X) IS APPROXIMATED BY P(Z), WHERE P IS A @G@@@]. TAYLOR SMI )@@G@@ERIES OF DEGREE TWELVE AND Z = X - 1. IF X .LT. 0.96 OR @H@@@]. X MJ )@@G@@.GT. 1.05, THE RANGE OF X IS REDUCED BY WRITING X = 2**B * M, WHERE MK )@@G@@@H@@@]. 0.5 .LE. M .LT. 1.0. THEN LOGE(X) = B * LOGE(2) + LOGE(M). LML )@@G@@ET A BE THE @H@@@]. FIVE MOST SIGNIFICANT BITS OF M. THEN LOGE(M) = LMM )@@G@@OGE(A) + LOGE(M/A). @H@@@]. LOGE(A) IS STORED IN A TABLE AND LOG(MMN )@@G@@/A) IS APPROXIMATED BY Z*Q(Z**2), @F@@@]. WHERE Q IS A FIFTH DEGREE MO )@@G@@POLYNOMIAL AND Z = (M - A)/(M + A). @[@@@]. @#@@@]. PERFORMANCE MP )@@G@@@[@@@]. @]@@@]. ACCURACY@H@@@]. NO. OF MAX. REMQ )@@G@@L. RMS REL. MAX. NO. FULL LENGTH @H@@@]. ARG. ARG.MR )@@G@@ ERROR ERROR ERRONEOUS ACCURACY @H@@@]. RANGEMS )@@G@@ VALUES *10**(-17) *10**(-17) BITS (%) @H@@@]MT )@@G@@. -------------- ------ ----------- ------------ -------- ------MU )@@G@@----- @H@@@]. (0,0.95) 3000 0.2567 0.0419 2MV )@@G@@ 91.8 @H@@@]. (0.95,1.05) 3000 0.3295 0.11MW )@@G@@95 3 35.1 @H@@@]. (1.05,10**3) 3000 0.0814MX )@@G@@ 0.0338 1 99.3 @F@@@]. THE ACCURACY IS COMPMY )@@G@@ARABLE OVER THE ENTIRE ARGUMENT RANGE. @[@@@]. @]@@@]. TIMING MZ )@@G@@@D@@@]. 137.3 MICROSEC. IF X .LT. 0.96 OR X .GT. 1.05. @C@@@]. 13NA )@@G@@3.5 MICROSEC. IF 0.96 .LE. X .LE. 1.05. @[@@@]. @^@@@]. CORE REQNB )@@G@@UIREMENTS @A@@@]. NUMBER OF INSTRUCTIONS 81 @A@@@]. SIZE OF NC )@@G@@DATA AREA 69 @A@@@]. TOTAL CORE REQUIREMENTS 150 @[@@@]ND )@@G@@. @#@@@] AXR$ . @#@@@ DCLRG . @C@@@# PLANE )@@G@@R . DEFINE AREC FOR X11 SAVE AREA @E@@@# USING AREC,X10 . NF )@@G@@ POINT TO CURRENT AREC @#@@@]$(5) LIT . @[@@@]$(3) @#@@@]NG )@@G@@BFLOGT* J DLOG@A@@@] J CDLOG . COMPLEX @^@@@]DLOG NH )@@G@@ RTSAVE NAME @[@@@]DLOGY @^@#@] SZ A3. @ @@@] NI )@@G@@ LA A2,(076,0) . @^@@@] DL A0,A3 . @D@@@] DFU NJ )@@G@@ A3,A0 . UNPACK ARGUMENT @F@@@] TLE A4,(040,NK )@@G@@0) . JUMP TO NERR$ IF ARGUMENT IS @G@@@] J NERRA$. NL )@@G@@ UNNORMALIZED, ZERO, OR NEGATIVE @A@@@] TG A0NM )@@G@@,(0200075341217) .@A@@@] TG A0,(0200141463146) .@E@@@] NN )@@G@@ J NORMAL X.LT.0.96 OR X.GT.1.05 @D@@@] J NO )@@G@@ TAYLOR . 0.96.LE.X.LE.1.05 @C@@@]NORMAL ANA,U A3,02000NP )@@G@@ . COMPUTE B @^@@@] SA A3,B . @C@@@] AND NQ )@@G@@ A2,A4 . A TO A3 @^@@@] DL A1,A4 . @B@@@]NR )@@G@@ AA A1,A3 . M+A @B@@@] ANA A4,A3 . NS )@@G@@ M-A @ @@@] LA,U A0,02000 . @C@@@] DFP NT )@@G@@ A0,A1 . FLOAT M+A @^@@@] DS A1,R1 . @C@@@]NU )@@G@@ DFP A0,A4 . FLOAT M-A @C@@@] DFD A1NV )@@G@@,R1 . (M-A)/(M+A) @^@@@] DS A1,R1 . @ @@@] NW )@@G@@ LA A0,(-4,20) . @^@@@] DFM A1,A1 . @F@@@] DL NX )@@G@@ A4,TCOEF,*A0 . COMPUTE LOGE(M/A)=Z*P(Z**2) @E@@@]LOOP1 DFM NY )@@G@@ A4,A1 . WHERE Z=(M-A)/(M+A) @ @@@] DFA A4NZ )@@G@@,TCOEF,A0 . @ @@@] JMGI A0,LOOP1 . @^@@@] DFM A4OA )@@G@@,R1 . @D@@@] DS A4,R2 . SAVE LOGE(M/A)/2 @G@@@]OB )@@G@@ LA A0,TABLE . LOAD MOST SIGNIF. PART OF LOGE(2) OC )@@G@@@G@@@] LA A4,TABLE-1 . LOAD LEAST SIGNIF. PART OF LOGOD )@@G@@E(2) @D@@@] MF A0,B . COMPUTE B*LOGE(2) @^@@@]OE )@@G@@ MF A4,B . @E@@@] DLSC A0,A0 . LOCATEOF )@@G@@ BINARY POINT @^@@@] TNZ A0 . @^@@@] LA,U A2OG )@@G@@,35 . @^@@@] LN A2,A2 . @^@@@] DSA A0,1 . @F@@@]OH )@@G@@ DSA A4,36,A2 . LINE UP LINARY POINT FOR ADD @C@@@]OI )@@G@@ DA A0,A4 . B*LOGE(2) @D@@@] SSL A3OJ )@@G@@,18 . USE A AS INDEX @D@@@] DL A4,TABLE-32,A3OK )@@G@@ . LOAD -LOGE(A) @F@@@] DSA A4,36,A2 . LINE UOL )@@G@@P LINARY POINT FOR ADD @D@@@] DAN A0,A4 . B*LOGEOM )@@G@@(2)+LOGE(A) @E@@@] DFU A3,R2 . UNPACK LOGE(M/A)/ON )@@G@@2 @F@@@] ANA,U A3,01777 . MULTIPLY BY 2, SUBTRACT OO )@@G@@BIAS @^@@@] TNZ A4 . @^@@@] SZ A3 . @^@@@]OP )@@G@@ ANU A2,A3 . @^@@@] LDSC A4,11 . @F@@@] DSA OQ )@@G@@ A4,36,A3 . LINE UP BINARY POINT FOR ADD @F@@@] DA OR )@@G@@ A0,A4 . B*LOGE(2)+LOGE(A)+LOGE(M/A) @C@@@] DLSCOS )@@G@@ A3,A0 . NORMALIZE @D@@@] DSA A3,1 . OT )@@G@@ INSURE NO OVERFLOW@G@@@] DS A3,R2 . SAVE 7OU )@@G@@0 BIT MANTISSA FOR NEXPB$ @H@@@] ANA A2,A5 . OV )@@G@@SUBTRACT SHIFT COUNT FROM CHARACTERISTIC @F@@@] AA,U A2,02032OW )@@G@@ . COMPUTE BIASED CHARACTERISTIC @F@@@] LR,XU R1,10OX )@@G@@,A2 . SAVE CHARACTERISTIC FOR NEXPB$@ @@@] LA,U A0,01000OY )@@G@@ . @^@@@] TP A3 . @^@@@] LN A0,A0 . @E@@@]OZ )@@G@@ DSA A0,36 . SET UP ROUNDING CONSTANT@B@@@] PA )@@G@@ DA A3,A0 . ROUND @F@@@] DFP A2,A3 . PB )@@G@@ CONVERT TO DOUBLE PRECISION @^@@@] J RTBACK .@G@@@]PC )@@G@@TAYLOR DFAN A0,(0.5D) . X-1/2-1/2 TO SAVE SIGNIFICANCE PD )@@G@@@ @@@] DFAN A0,(0.5D) . @ @@@] LA A3,(-2,24) . PE )@@G@@@^@@@] DL A4,A0 . @G@@@] DFM A0,TCOEF,*A3 . PF )@@G@@EVALUATE TAYLOR SERIES AROUND X=1 @ @@@]LOOP DFA A0,TCOEF,A3 . PG )@@G@@@^@@@] DFM A0,A4 . @ @@@] JMGI A3,LOOP . @H@@@]PH )@@G@@ DFU A2,A0 . SAVE RESULT IN FRACTIONAL FORM FOR NPI )@@G@@EXPB$ @^@@@] LDSC A3,10@^@@@] SA A2,R1@^@@@]PJ )@@G@@ DS A3,R2@^@@@] DL A3,A0 . @ @@@] J PK )@@G@@ RTBACK . @E@#@]DLOGX* SX,H2 X11,9,X10 . SET X11 IN X1PL )@@G@@1 SAVE AREA @E@^@#DLOGX* SX,H2 X11,ARSV11 . SET X11 IN X11 SAVPM )@@G@@E AREA@E@@@^DLOGX* STORE X11,ARSV11 . SET X11 IN X11 SAVE AREAPN )@@G@@@^@@@] J DLOGY . @#@ @]NAME ' LOG '@D@@@ NAME PO )@@G@@ INSERT 4,'LOG',' ' . @A@@@]TCOEF + 02001400PP )@@G@@00000 . @B@@@] + 0000000000000 . @A@@@] PQ )@@G@@ + 0577737777777 . @A@@@] + 0777777777777 . PR )@@G@@@A@@@] + 0177752525252 . @A@@@] + 05252525PS )@@G@@25253 . @A@@@] + 0600037777777 . @A@@@] + PT )@@G@@ 0777777777777 . @A@@@] + 0177663146314 . @A@@@]PU )@@G@@ + 0631463146315 . @A@@@] + 0600125252525 PV )@@G@@. @A@@@] + 0252525252524 . @A@@@] + 01PW )@@G@@77644444444 . @A@@@] + 0444444444445 . @A@@@] PX )@@G@@ + 0600137777777 . @A@@@] + 0777777777777 . PY )@@G@@@A@@@] + 0177570707070 . @A@@@] + 07070707PZ )@@G@@07071 . @A@@@] + 0600214631463 . @A@@@] + QA )@@G@@ 0146314631462 . @A@@@] + 0177556427213 . @A@@@]QB )@@G@@ + 0505642721351 . @A@@@] + 0600225252525 QC )@@G@@. @A@@@] + 0252525252524 . @A@@@] + 01QD )@@G@@77547304730 . @A@@@] + 0473047304731 . @#@@@]B QE )@@G@@ + 0 @G@@@] + 0216367465362 . LEASE SIGNIFICANT 35 QF )@@G@@BITS OF LOGE(2) @D@@@]TABLE + 0261344137676 . TABLE -- LOGE(AQG )@@G@@) @A@@@] + 0434757152744 . @A@@@] + 02QH )@@G@@41731776276 . @A@@@] + 0221704636605 . @A@@@] QI )@@G@@ + 0223226102115 . @A@@@] + 0155622360357 . QJ )@@G@@@A@@@] + 0205347334264 . @A@@@] + 00523722QK )@@G@@06561 . @A@@@] + 0170244241504 . @A@@@] + QL )@@G@@ 0711546624677 . @A@@@] + 0153651225111 . @A@@@]QM )@@G@@ + 0063350147253 . @A@@@] + 0137727643573 QN )@@G@@. @A@@@] + 0005215755715 . @A@@@] + 01QO )@@G@@24425340347 . @A@@@] + 0050753716040 . @A@@@] QP )@@G@@ + 0111513041046 . @A@@@] + 0466711170167 . QQ )@@G@@@A@@@] + 0077144343313 . @A@@@] + 01663362QR )@@G@@76631 . @A@@@] + 0065117551710 . @A@@@] + QS )@@G@@ 0533170667453 . @ @@@] + 0053375003265 @A@@@] QT )@@G@@ + 0207554375602 . @A@@@] + 0042136164042 . QU )@@G@@@A@@@] + 0374436757063 . @A@@@] + 00311465QV )@@G@@71352 . @ @@@] + 0624461053416 @A@@@] + 00QW )@@G@@20413142654 . @A@@@] + 0743500642121 . @A@@@] QX )@@G@@ + 0010101273047 . @A@@@] + 0472104216005 . QY )@@G@@@#@@@] END . ___IF. PART OF LOGE(2) *[@@@@*SDFF*@C@@@ . COQZ )@@G@@PYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@ . @D@@@ . QUESTIONRA )@@G@@S CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@ . @ @@@ . MARRB )@@G@@VIN V. ZELKOWITZ @B@@@ . DEPARTMENT OF COMPUTER SCIENCE @A@@@ RC )@@G@@. UNIVERSITY OF MARYLAND @B@@@ . COLLEGE PARK, MARYLANRD )@@G@@D 20742 @[@@@ . @G@@@ . PERMISSION TO USE THESE LISTINGS RE )@@G@@AND THE COMPUTER PROGRAMS THEY@E@@@ . REPRESENT IS GRANTED UNDER THE FRF )@@G@@OLLOWING CONDITIONS: @[@@@ . @G@@@ . 1. UNLIMITED USE MAY RG )@@G@@BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@ . THESE LISTINGS PROVIRH )@@G@@DED THAT THE NAME PLUM OR UNIVERSITY OF MARYLAND@E@@@ . PL/1 COMPILER RI )@@G@@REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@ . @F@@@ . 2. RJ )@@G@@MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDED: @[@@@ . @G@@@ RK )@@G@@. (A) ANY RESULTING PROGRAM, OR REPORT, PAPER OR DOCUMENTATION RL )@@G@@@G@@@ . DESCRIBING SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PRRM )@@G@@OGRAM @E@@@ . IS A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND RN )@@G@@@[@@@ . @G@@@ . (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIARO )@@G@@L CORRECTIONS @F@@@ . OF ERRORS IN THE SOURCE PROGRAMS, SHALLRP )@@G@@ BE REPORTED AND @G@@@ . A BRIEF DESCRIPTION OF THE FEATURE ADDERQ )@@G@@D SHALL BE SUBMITTED @C@@@ . TO THE UNIVERSITY OF MARYLAND, ANRR )@@G@@D @[@@@ . @F@@@ . (C) NO PROGRAMS DERIVED FROM THESE LISTRS )@@G@@INGS SHALL BE SOLD@G@@@ . WITHOUT WRITTEN APPROVAL FROM THE UNIVERT )@@G@@RSITY OF MARYLAND, AND @[@@@ . @F@@@ . (D) COPIES OF THESE PRU )@@G@@ROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@ . LOCATIONS PROVIDED THRV )@@G@@AT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@ . WHETHER THE PRORW )@@G@@GRAMS ARE EXACT COPIES OF THE UNIVERSITY OF @E@@@ . MARYLAND RX )@@G@@PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@ . @G@@@ . 3. RY )@@G@@THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILER ITSELF, @F@@@ . ANRZ )@@G@@D ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN USING PLUM. @E@@@ . THSA )@@G@@E PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USER TO @F@@@ . EXPERIMESB )@@G@@NT WITH THE COMPILER AS LONG AS THE RESULTING PRODUCT @G@@@ . IS NOT SSC )@@G@@OLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT DEVELOPED @#@@@ . FRSD )@@G@@OM PLUM. @[@@@ . @[@@@ . @[@@@ . @[@@@ . @[@@@ . SE )@@G@@@[@@@ /. @[@@@[. @D@@@[. UNIVAC 1108 FORTRSF )@@G@@AN V LIBRARY@[@@@[. @C@@@[. DLOG10(X) - DOUBLE PRECISION COMMON LOGASG )@@G@@RITHM @[@@@[. @]@@@[. USAGE @[@@@[. @^@@@[. FORTRAN V REFESH )@@G@@RENCE @F@@@[. DLOG10(X), WHERE X REPRESENTS THE (DOUBLE PRECISION) ARGSI )@@G@@UMENT.@[@@@[. @A@@@[. ASSEMBLER LANGUAGE REFERENCE @ @@@[. SJ )@@G@@ DL A3,ARG@ @@@[. A LMJ X11,DLOG10 @[@@@[. SK )@@G@@@A@@@[. ARGUMENT AND FUNCTION RANGE @H@@@[. THE ARGUMENT MUST BESL )@@G@@ A POSITIVE (NONZERO), NORMALIZED, DOUBLE PRECISION, @H@@@[. FLOATINGSM )@@G@@ POINT NUMBER. THE FUNCTION RETURNS A NORMALIZED, FLOATING POINT @]@@@[SN )@@G@@. NUMBER. @[@@@[. @^@@@[. FUNCTIONS REFERENCED@]@@@[. DLOG SO )@@G@@@[@@@[. @^@@@[. ERROR CONDITIONS @H@@@[. UNNORMALIZED, NEGATISP )@@G@@VE OR ZERO ARGUMENTS RESULT IN ERROR TERMINATION. @[@@@[. @^@@@[SQ )@@G@@. MATHEMATICAL METHOD @G@@@[. LOG10(X) IS EVALUATED BY THE IDETITY: SR )@@G@@LOG10(X) = LOG10(E) * LOGE(X).@[@@@[. @#@@@[. PERFORMANCE @[@@@[SS )@@G@@. @]@@@[. ACCURACY@H@@@[. NO. OF MAX. REL. ST )@@G@@RMS REL. MAX. NO. FULL LENGTH @H@@@[. ARG. ARG. SU )@@G@@ ERROR ERROR ERRONEOUS ACCURACY @H@@@[. RANGE SV )@@G@@ VALUES *10**(-17) *10**(-17) BITS (%) @H@@@[. --SW )@@G@@------------ ------ ----------- ------------ -------- ----------- SX )@@G@@@H@@@[. (0,0.95) 3000 0.2274 0.0590 3 SY )@@G@@ 53.1 @H@@@[. (0.95,1.05) 3000 0.3928 0.1261 SZ )@@G@@ 3 35.6 @H@@@[. (1.05,10**3) 3000 0.1472 TA )@@G@@ 0.0518 2 75.9 @F@@@[. THE ACCURACY IS COMPARABLETB )@@G@@ OVER THE ENTIRE ARGUMENT RANGE. @[@@@[. @]@@@[. TIMING @#@@@[TC )@@G@@. 8.9 MICROSEC. @A@@@[. (ADD EXECUTION TIME FOR DLOG). @[@@@[. TD )@@G@@@^@@@[. CORE REQUIREMENTS @A@@@[. NUMBER OF INSTRUCTIONS 9 TE )@@G@@@A@@@[. SIZE OF DATA AREA 4 @A@@@[. TOTAL CORE REQUIREMETF )@@G@@NTS 13 @B@@@[. (ADD CORE REQUIREMENTS FOR DLOG). @[@@@[. TG )@@G@@@A@@@[ AXR$ . @#@@@# DCLRG . @A@@@[TH )@@G@@$(5) LIT . @A@@@[$(3) TI )@@G@@ . @A@@@[BFLOG1* SX X11,DRTARG1 . @^@@@[ RTSAVE TJ )@@G@@NAME10@^@]@[ SZ A3 @C@@@[ LMJ X11,DLOGX . TK )@@G@@ LOG OF VALUE @A@@@[RTN DFM A3,LOG10 . @C@@@[ TL )@@G@@ LX X11,DRTARG1 . RESTORE RETURN@A@@@[ J 0,X11 TM )@@G@@ . @[@@@[. @[@@@[. @[@@@[. @ @@@[BFLOG2* SX XTN )@@G@@11,DRTARG1 .@^@@@[ RTSAVE NAME2 @^@]@[ SZ A3 TO )@@G@@@ @@@[ LMJ X11,DLOGX @^@@@[ DFM A3,LOG2@ @@@[TP )@@G@@ LX X11,DRTARG1 @^@@@[ J 0,X11 @[@@@[. TQ )@@G@@@[@@@[. @^@@@[LOG2 0200156125073 @^@@@[ 0122560277413 TR )@@G@@@A@@@[LOG10 + 0177767455730 . @A@@@[ + 05223345TS )@@G@@03432 . @^@#@[NAME10 + ' LOG10'@A@^@#NAME10 +INSERT 6,'LOG'TT )@@G@@,'10 ' . @A@@@^NAME10 INSERT 6,'LOG','10 ' . @^@#@[NAME2 + TU )@@G@@ ' LOG2 ' @A@^@#NAME2 +INSERT 5,'LOG','2 ' . @A@@@^NAME2 INSETV )@@G@@RT 5,'LOG','2 ' . @A@@@[ END . ___RSITW )@@G@@TY OF MARYLAND @[@@@ . @D@@@ . QUESTIONS CONCERNING THIS SHOULDTX )@@G@@ BE DIRECTED TO: @[@@@ . @ @@@ . MAR*[@@@@*SDFF*@C@@@N. COTY )@@G@@PYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@N. @D@@@N. QUESTIONTZ )@@G@@S CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@N. @ @@@N. MARUA )@@G@@VIN V. ZELKOWITZ @B@@@N. DEPARTMENT OF COMPUTER SCIENCE @A@@@NUB )@@G@@. UNIVERSITY OF MARYLAND @B@@@N. COLLEGE PARK, MARYLANUC )@@G@@D 20742 @[@@@N. @G@@@N. PERMISSION TO USE THESE LISTINGS UD )@@G@@AND THE COMPUTER PROGRAMS THEY@E@@@N. REPRESENT IS GRANTED UNDER THE FUE )@@G@@OLLOWING CONDITIONS: @[@@@N. @G@@@N. 1. UNLIMITED USE MAY UF )@@G@@BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@N. THESE LISTINGS PROVIUG )@@G@@DED THAT THE NAME PLUM OR UNIVERSITY OF MARYLAND@E@@@N. PL/1 COMPILER UH )@@G@@REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@N. @F@@@N. 2. UI )@@G@@MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDED: @[@@@N. @G@@@NUJ )@@G@@. (A) ANY RESULTING PROGRAM, OR REPORT, PAPER OR DOCUMENTATION UK )@@G@@@G@@@N. DESCRIBING SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PRUL )@@G@@OGRAM @E@@@N. IS A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND UM )@@G@@@[@@@N. @G@@@N. (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAUN )@@G@@L CORRECTIONS @F@@@N. OF ERRORS IN THE SOURCE PROGRAMS, SHALLUO )@@G@@ BE REPORTED AND @G@@@N. A BRIEF DESCRIPTION OF THE FEATURE ADDEUP )@@G@@D SHALL BE SUBMITTED @C@@@N. TO THE UNIVERSITY OF MARYLAND, ANUQ )@@G@@D @[@@@N. @F@@@N. (C) NO PROGRAMS DERIVED FROM THESE LISTUR )@@G@@INGS SHALL BE SOLD@G@@@N. WITHOUT WRITTEN APPROVAL FROM THE UNIVEUS )@@G@@RSITY OF MARYLAND, AND @[@@@N. @F@@@N. (D) COPIES OF THESE PUT )@@G@@ROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@N. LOCATIONS PROVIDED THUU )@@G@@AT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@N. WHETHER THE PROUV )@@G@@GRAMS ARE EXACT COPIES OF THE UNIVERSITY OF @E@@@N. MARYLAND UW )@@G@@PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@N. @G@@@N. 3. UX )@@G@@THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILER ITSELF, @F@@@N. ANUY )@@G@@D ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN USING PLUM. @E@@@N. THUZ )@@G@@E PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USER TO @F@@@N. EXPERIMEVA )@@G@@NT WITH THE COMPILER AS LONG AS THE RESULTING PRODUCT @G@@@N. IS NOT SVB )@@G@@OLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT DEVELOPED @#@@@N. FRVC )@@G@@OM PLUM. @[@@@N. @[@@@N. @[@@@N. @[@@@N. @[@@@N. VD )@@G@@@[@@@N/. @D@@@J/. EXCS CONVERT ARITHMETIC TO CHARACTER STRING VE )@@G@@@#@@@J. ENTRY @A@@@J. EXCVST DCVSTG WILL BE DIGIT STRING@C@@@JVF )@@G@@. DCVINT WILL BE LOCATION OF '.' @B@@@J. EXCVSD DCVSTG WIVG )@@G@@LL BE DEFAULT STRING @B@@@J. DCVINT = LENGTH OF STRING VH )@@G@@@#@@@J UNLIST . @#@@@J AXR$ . @#@@@J DCLRG . VI )@@G@@@#@@@J PLSD . @#@@@J PLWORD . @]@@@J@ADD PLTVDS @]@@@JVJ )@@G@@ LIST . @F@@@JDCVTST EQU DCVSV+7+FH1 . REGULAR OR JUST DIGVK )@@G@@IT STRING @D@@@JDCVSTL EQU DCVSV+7+FH2 . COUNT OF '+' & '.' VL )@@G@@@^@@@JDCVSTG EQU DLXCON . @E@@@JDCVFDS EQU DCVSTG+10 . SVM )@@G@@RCATCH SPACE FOR CVEDIT @#@@@J CEND . @#@@@J/. ENTRY VN )@@G@@@#@@@JEXCS CSECT 3 .@E@@@JLOG2Y* PROC *1,2 . CONVERTVO )@@G@@ 2**Y TO 10**X @A@@@J MPYS LOG2Y(1,1),19728,I . @D@@@J VP )@@G@@ SSA LOG2Y(1,1),16 . LOG 2 = 19728/65536@#@@@J END . VQ )@@G@@@E@@@JLOADSG* PROC *1,3 . LOAD SIGNED QUARTERWORD @B@@@JVR )@@G@@ LOAD LOADSG(1,1),LOADSG(1,2) . @A@@@J SLB LOADSG(1,VS )@@G@@1),27 . @A@@@J SSA LOADSG(1,1),27 . @#@@@J ENDVT )@@G@@ . @C@@@JEXCVST* LLOC . STRING ENTRY @C@@@J VU )@@G@@ MOVE DCVTST,0,I . SET FLAG @^@@@J GOTO CVSTR . VV )@@G@@@D@@@JEXCVSD* LLOC . DEFAULT STRING @D@@@J VW )@@G@@ MOVE DCVTST,1,I . SET DEFAULT STRING @D@@@JCVSTR LOCAL . VX )@@G@@ APPARENT ENTRY @C@@@J STORE A2,DCVSV . VY )@@G@@ SAVE REGS @ @@@J STORE X2,DCVSV+1 . @ @@@J STOVZ )@@G@@RE F,DCVSV+2 . @C@@@J STORED A7,DCVSV+3 . WA )@@G@@@ @@@J STORED A9,DCVSV+5 . @ @@@J STORE X3,DCVSV+9 WB )@@G@@@F@@@J LOAD F,DCVFLG. GET TYPE OF VARIABLE TO CONVERTWC )@@G@@@D@@@J LOADA A3,KFZERO . CLEAR OUTPUT AREA @ @@@J WD )@@G@@ LOADA A2,DCVSTG . @D@@@J LOAD R1,20,I . CLEAR 2WE )@@G@@0 WORDS @^@@@J LINK MO$VEZ . @D@@@J SETPC 4,DCVSTG WF )@@G@@. SET TO WRITE STRING@E@@@J IF SDDCBN,ON THEN,CVSTBNWG )@@G@@ . -> BINARY SOURCE @^@@@J/. FLOAT DECIMAL @#@@@JCVFLDC LABWH )@@G@@EL . @E@@@J LOADA X3,DCVFLT . PLACE WHERE NUMBER IS WI )@@G@@@E@@@J LINK CVSGPT . PUT IN THE SIGN IF NEEDED@E@@@JWJ )@@G@@ IF SDFXFL,OFF THEN,CVFXDC . -> FIXED DECIMAL @C@@@J WK )@@G@@ LOADD A7,DCVFLT . GET NUMBER @E@@@J IF A7,NE,0,IWL )@@G@@ THEN,CVSCL0 . -> NON ZERO NUMBER @E@@@J MOVE DCVINT,0,I . WM )@@G@@ SET EXPONENT TO ZERO @D@@@J IF DCVTST,ZERO THEN,CVRTWN )@@G@@N . -> NO '.' @C@@@J LOAD A8,'.',I . GET A '.' WO )@@G@@@G@@@J IF DCVSTL,NZERO THEN,CVFLD1 . IN SECOND OR THIRD POSITIWP )@@G@@ON? @D@@@J STORE A8,DCVSTG+FQ2 . SECOND POSITION @C@@@JWQ )@@G@@ GOTO CVSCL9 . -> FINISH @#@@@JCVFLD1 LABEL . WR )@@G@@@D@@@J STORE A8,DCVSTG+FQ3 . THIRD POSITION HERE@C@@@J WS )@@G@@ GOTO CVSCL9 . -> FINISH @C@@@JCVSCL0 LABEL . WT )@@G@@ SCALE NUMBER @B@@@J. DCVFLT = .C*2**X = C.*2**(X-074)=WU )@@G@@@A@@@J. C.*10**(LOG 2 * (X-074) ) @D@@@J IF A7,GE,0,IWV )@@G@@ THEN,CVSCL0B . -> + NUMBER @C@@@J DLN A7,A7 . GET ABSWW )@@G@@(NUMBER) @ @@@J STORED A7,DCVFLT . @#@@@JCVSCL0B LABEL . WX )@@G@@@D@@@J LINK CVSCL0A . CONVERT NUMBER @D@@@J WY )@@G@@ GOTO CVSCL9 . FINISH OUT THE FORM@ @@@J/. DIGIT STRINWZ )@@G@@G PRODUCER @F@@@JCVSCL0A LOCAL . USED FOR BOTH FIXEDXA )@@G@@ AND FLOAT @C@@@J SRB A7,24 . LEAVE 20XX @B@@@JXB )@@G@@ SUB A7,02074,I . (X-074)@D@@@J LOG2Y A7 . XC )@@G@@ LOG 2 *(X-074) @E@@@JCVSCL1 LABEL . AXD )@@G@@7=EXPONENT OF 10 NEEDED @ @@@J LOADD A9,DCVFLT . @G@@@J XE )@@G@@ IF A7,EQ,0,I THEN,CVSCL2 . -> NO SCALING @B@@@JXF )@@G@@ LOADM A8,A7 . SCALE @F@@@J IF A7,LT,0,IXG )@@G@@ THEN,CVSC1A . -> NEG SCF @B@@@JCVSC1B LABEL . XH )@@G@@ + SCF @E@@@J LOADA X3,CVDINS . DIVIDE BY POWXI )@@G@@ERS OF 10 @C@@@J GOTO CVSC1D . -> MERGE @D@@@JXJ )@@G@@CVSC1A LABEL . -SCF, MULTIPLY @ @@@J LOAXK )@@G@@DA X3,CVMINS . @C@@@JCVSC1D LABEL . SCALE NUMBER XL )@@G@@@D@@@J IF A8,LT,KFLTSZ/2+1,I THEN,CVSC1C . -> OK @D@@@J XM )@@G@@ LOAD A3,KFLTSZ,I . SET MAX EXPONENT @^@@@J EX 0,XXN )@@G@@3 . @ @@@J SUB A8,KFLTSZ/2,I .@D@@@J GOTO CVSC1D . XO )@@G@@ -> SCALE SOME MORE @#@@@JCVSC1C LABEL . @^@@@J LOAXP )@@G@@D A3,A8 . @^@@@J SLB A3,1 . @B@@@J EX 0,X3 . XQ )@@G@@ SCALE @F@@@JCVSCL2 LABEL . A7=EXP OF 10,XR )@@G@@ A9-A10=NUMBER @B@@@J IF A9,LT,KKPW10+34 THEN,CVSCSM @B@@@JXS )@@G@@ IF A9,LT,KKPW10+36 THEN,CVSCL3 @^@@@J ADD A7,1,I XT )@@G@@@^@@@J LOAD A8,1,I @^@@@J GOTO CVSC1B @#@@@JCVSCSMXU )@@G@@ LABEL . @^@@@J SUB A7,1,I @^@@@J LOAD A8,1,I XV )@@G@@@^@@@J GOTO CVSC1A @#@@@JCVSCL3 LABEL . @D@@@J ADDXW )@@G@@ A7,18,I . FIX UP MAGINITUDE @B@@@J FADDD A9,CVDONEXX )@@G@@ . ROUND @E@@@J DFU A8,A9 . A8=EXP A9-A10XY )@@G@@ = DIGITS @F@@@J SUB A8,02074,I . ALIGN TO BE AN INTXZ )@@G@@EGER (???) @E@@@J STORE A8,X3 . 'BORROW AN 'X' REGIYA )@@G@@STER @F@@@J LDSL A9,0,X3 . SHIFT OVER TO PROPER BOYB )@@G@@UNDS @E@@@J LINK CVCVD . PUT DIGITS IN STRING YC )@@G@@@G@@@J IF DCVTST,NZERO THEN,JMP . DO WE HAVE TO PRINT EXPONENYD )@@G@@T @F@@@J POP 1 . DELETE ONE LINK ON RETURNYE )@@G@@ STACK@C@@@J LOADSG A7,DCVDQ . GET THE SCALE@C@@@J YF )@@G@@ LOADN A7,A7 . GET -(SCALE) @D@@@J ADD A7,1,I YG )@@G@@ACCOUNT FOR THE FIRST DIGIT @E@@@J ADD A7,DCVINT . AYH )@@G@@DD IN THE MAGINUTUDE . @E@@@J STORE A7,DCVINT . SAVE THYI )@@G@@E POSITION OF '.' @E@@@J GOTO CVRTN . -> GO TO PAD YJ )@@G@@THE OUTPUT @#@@@JCVSCL9 LABEL . @[@@@J. @F@@@J. # OF DIGITSYK )@@G@@ TO SKIP = P + 1(FOR '.') + DCVSTL(FOR SIGN) @[@@@J. @B@L@J YL )@@G@@ LOAD A8,DCVDP . GET P @B@@@L LOAD A7,DCVDP . YM )@@G@@ GET P @B@L@J ADD A8,1,I . FOR '.'@B@@@L YN )@@G@@ ADD A7,1,I . FOR '.'@D@L@J ADD A8,DCVSTL . YO )@@G@@ COUNT IN THE SIGN @D@@@L ADD A7,DCVSTL . COUNT IYP )@@G@@N THE SIGN @D@@@J SETPC 4,DCVSTG . SET TO WRITE E+XXX YQ )@@G@@@F@L@J STORE A8,A3 . SAVE # OF DIGITS FOR LATER YR )@@G@@@F@@@L STORE A7,A3 . SAVE # OF DIGITS FOR LATER YS )@@G@@@D@L@J DSC A7,2 . GET # OF WORDS @D@@@L YT )@@G@@ SRBD A7,2 . GET # OF WORDS @F@L@J ADD XYU )@@G@@2,A8 . ADD IN NUMBER OF WORDS TO SKIP @F@@@L ADD XYV )@@G@@2,A7 . ADD IN NUMBER OF WORDS TO SKIP @C@L@J SRB AYW )@@G@@7,34 . GET REMAINDER@C@@@L SRB A8,34 . GYX )@@G@@ET REMAINDER@E@L@J ADD A2,A7 . NOW OFFSET CHAR POIYY )@@G@@NTER @E@@@L ADD A2,A8 . NOW OFFSET CHAR POINTER YZ )@@G@@@D@@@J LOAD A7,DCVINT . GET MAGINITUDE @D@@@J ZA )@@G@@ ADD A3,5,I . ACCOUNT FOR E+DDD @E@@@J STORE A3,ZB )@@G@@DCVINT . SAVE NUMBER OF DIGITS @B@@@J LOAD A8,'E',I ZC )@@G@@. PUT E @C@@@J IF SDFXFL,ON THEN,CVSC9F . E OR F? ZD )@@G@@@^@@@J LOAD A8,'F',I .@#@@@JCVSC9F LABEL . @#@@@J PUTZE )@@G@@C . @B@@@J CVE A7,R . +DDD @C@@@J LOAZF )@@G@@D A8,'+',I . ASSUME POSITIVE @B@@@J IF A7,GE,0,I THEN,CZG )@@G@@VSC9B . @C@@@J LOAD A8,'-',I . NO IT IS NEGITIVE @#@@@JZH )@@G@@CVSC9B LABEL . @#@@@J PUTC . @^@@@J LOAD A7,A4 . ZI )@@G@@@B@@@J SLB A7,9 . DDD0 @C@@@J SETL A10ZJ )@@G@@,3,I . 3 DIGITS @^@@@J LINK CVCVD5 . @D@@@J ZK )@@G@@ GOTO CVEDFN . PAD WITH BLANKS @[@@@J. @B@@@J. ZL )@@G@@ PUT DIGIT STRING INTO DCVSTG @[@@@J. @#@@@JCVCVD LOCAL . ZM )@@G@@@D@K@J DIV A9,CVPW10+8 . DIVIDE BY 10**8 @D@@@K ZN )@@G@@ DIV A9,CVPW10+9 . DIVIDE BY 10**9 @E@K@J SETL AZO )@@G@@3,10,I . 10 DIGITS IN UPPER HALF @E@M@K SETL A3,9,I ZP )@@G@@. 9 DIGITS IN UPPER HALF @E@@@M SETL A3,10,I . ZQ )@@G@@ 10 DIGITS IN UPPER HALF @#@@@JCVCVD1 LABEL . @D@@@J LOAZR )@@G@@D A8,0,I . CLEAR UPPER HALF @D@@@J DIV A8,CVPWZS )@@G@@10,A3 . PRODUCE FIRST DIGIT@C@@@J ADD A8,'0',I . AZT )@@G@@DD IN ZONE @E@@@J IF A8,NE,'0',I THEN,CVCVD2 . SKIP LEADING ZERZU )@@G@@OS @D@@@J SUB A7,1,I . ONE FEWER CHARS @F@@@JZV )@@G@@ LOOP A3,CVCVD1 . GET A DIFFERENT LEADING DIGIT @F@@@JZW )@@G@@CVCVD2 LABEL . LEADING DIGIT NOT ZERO HERE @D@@@JZX )@@G@@ PUTC . SET FIRST CHAR @D@@@J STOZY )@@G@@RE A7,DCVINT . SAVE MAGNITUDE @D@K@J IF DCVTST,ZERO ZZ )@@G@@THEN,CVCVD3 . PUT O_T '.'? @D@@@K IF DCVTST,ZERO THEN,CVCVD3 AA )@@G@@. PUT OUT '.'? @B@@@J LOAD A8,'.',I . GET '.'@E@@@JAB )@@G@@ PUTC . PLACE PERIOD INTO STRING @E@@@JCVCVD3AC )@@G@@ LABEL . HERE TO FINISH NUMBER @E@@@M SUBAD )@@G@@ A3,1,I . ACCOUNT FOR FIRST DIGIT @D@@@J LINK CAE )@@G@@VCVD4 . PUT OUT LAST DIGITS@E@@@J LOAD A9,A10 . AF )@@G@@ GET LOWER HALF OF NUMBER @F@K@J SETL A3,8,I . SAG )@@G@@AY 8 DIGITS IN LOWER HALF @F@@@K SETL A3,9,I . SAH )@@G@@AY 9 DIGITS IN LOWER HALF @D@@@J LINK CVCVD4 . PAI )@@G@@UT OUT LOWER HALF @B@@@J JMP . RETURN @D@@@JAJ )@@G@@CVCVD4 LLOC . PUT OUT DIGITS HERE@F@@@J LOAAK )@@G@@D A8,0,I . CLEAR UPPER HALF FOR DIVIDE @D@@@J DIVAL )@@G@@ A8,CVPW10,A3 . PRODUCE NEXT DIGIT @C@@@J ADD A8,'0',AM )@@G@@I . ADD IN ZONE @E@@@J PUTC . PUT CHAAN )@@G@@R INTO STRING @D@@@J LOOP A3,CVCVD4 . DO OTHER CHARAO )@@G@@S @E@K@J LJMP . RETURN FOR O_HER PARTS AP )@@G@@@E@@@K LJMP . RETURN FOR OTHER PARTS @#@@@JAQ )@@G@@CVCVD5 LLOC . @^@@@J LDSC A7,9 . @^@@@J AND,U A8,AR )@@G@@0777 .@B@@@J IF A9,GE,'0',I THEN,CVCVD6 . @B@@@J SUBAS )@@G@@ A8,A9 .GET RID OF JUNK @B@@@J ADD A8,'0',I . ADD IN ZEAT )@@G@@RO @#@@@JCVCVD6 LABEL . @#@@@J PUTC . @B@K@J LOOAU )@@G@@P A10,CVCVD3 . 6 LOWER@B@@@K LOOP A10,CVCVD5 . 6AV )@@G@@ LOWER@#@@@J LJMP . @ @@@J/. FIXED DECIMAL DATA @#@@@JAW )@@G@@CVFXDC LABEL . @C@@@J LOADD A7,DCVFFT . GET FORM AX )@@G@@@E@@@J IF A7,NE,0,I THEN,CVFXD1 . -> NON ZERO NUMBER @#@@@JAY )@@G@@CVFXD2 LABEL . @D@@@J IF DCVTST,NZERO THEN,CVFXD4 . DIGIT STRAZ )@@G@@ING? @E@@@J MOVE DCVINT,0,I . SET EXPONENT TO ZERO BA )@@G@@@C@@@J GOTO CVRTN . -> RETURN @#@@@JCVFXD4 LABBB )@@G@@EL . @D@@@J LOADD A9,KKD0 . SET ZERO DIGITS @C@@@JBC )@@G@@ GOTO CVEDIT . EDIT NUMBER @#@@@JCVFXD1 LABEL . BD )@@G@@@B@@@J IF A7,GE,0,I THEN,CVFXD5 . @^@@@J DLN A7,A7BE )@@G@@ . @#@@@JCVFXD5 LABEL . @C@@@J STORED ABF )@@G@@7,DCVFLT . @G@@@J IF A7,GE,KKPW10+36 THEN,CVEDT2 . DO IN FLOAT BG )@@G@@FORMAT IF TOO BIG @E@@@J LOADD A9,A7 . GET READY TO BH )@@G@@TRY TO DFU @E@@@J DFU A8,A9 . A8=EXP A9-A10 = DIGBI )@@G@@ITS @D@@@J SUB A8,02074,I . FIX UP SHIFT COUNT @D@@@JBJ )@@G@@ IF A8,LT,1,I THEN,CVENEW . MUST SHIFT RIGHT @D@@@J STOBK )@@G@@RE A8,X3 . SHIFT LEFT HERE @C@@@J LDSL A9,0,X3 . BL )@@G@@ SHIFT IT @B@@@J GOTO CVEDIT . ->MERGEBM )@@G@@@D@@@JCVENEW LABEL . SHIFT RIGHT HERE @F@@@J BN )@@G@@ IF A8,LT,-73,I THEN,CVEDT2 . ****** CHECK SCALEING??? @D@@@J BO )@@G@@ STOREN A8,X3 . CORRECT SHIFT COUNT@^@@@J DSL A9,0,BP )@@G@@X3 . @D@@@JCVEDIT LABEL . A9-A10 = DIGITS @E@@@JBQ )@@G@@ IF DCVTST,NZERO THEN,CVEDT1 . -> DEFAULT STRING @[@@@J. BR )@@G@@@A@@@J. EDIT TYPE HERE @[@@@J. @G@@@J GOTBS )@@G@@O CVSCL0A . PUT DIGITS INTO STRING, RETURN FROM THERE@#@@@JCVEDT1BT )@@G@@ LABEL . @B@@@J LOADSG A8,DCVDQ . GET Q @C@@@J BU )@@G@@ IF A8,LT,0,I THEN,CVEDT2 . -> Q<0 @C@@@J IF A8,GT,DCVBV )@@G@@DP THEN,CVEDT2 . DIGITS @F@@@J. Q=>0 QBW )@@G@@<=P. WRITE PPPP.PPPPP @G@@@J LOADD A6,A9 . GET NUMBX )@@G@@BER TO BE CONVERTED INTO A6 @E@@@J DIV A6,CVTTOT . SBY )@@G@@EPARATE INTO 2 PARTS @F@@@J LOAD A4,0,I . A4=TOTABZ )@@G@@L DIGITS PLACED SO FAR @B@@@J LOAD A9,A8 . A9=Q CA )@@G@@@E@@@J SETL A10,10,I . A10=#OF DIGITS IN A7 @E@@@JCB )@@G@@ SETPC 4,DCVFDS . POINT TO SCRATCH AREA @E@@@J CC )@@G@@ IF A9,EQ,0,I THEN,CVEDT9 . DON'T PUT '.' IF Q=0 @#@@@JCVEDT3 LABCD )@@G@@EL . @D@@@J IF A9,EQ,0,I THEN,CVEDT4 . TIME FOR '.'? @D@@@JCE )@@G@@ SRBD A7,36 . GET READY TO DIVIDE@D@@@J DIVCF )@@G@@ A7,10,I . GET DIGIT INTO A8 @E@@@J ADD A8,'0',I CG )@@G@@. ADD IN CODE FOR ZERO @#@@@J PUTC . @E@@@J CH )@@G@@ ADD A4,1,I . ONE MORE CHAR PLACED @E@@@J SUBCI )@@G@@ A9,1,I . ONE FEWER Q DIGIT LEFT @C@@@J LOOP A10CJ )@@G@@,CVEDT3 . DO NEXT DIGIT@B@@@J SRBD A6,36 . QCK )@@G@@>10 @D@@@J SETL A10,10,I . DO OTHER 10 DIGITS@^@@@JCL )@@G@@ GOTO CVEDT3 . @#@@@JCVEDT4 LABEL . @C@@@J LOAD A8,CM )@@G@@'.',I . TIME FOR '.' @#@@@J PUTC . @E@@@J LOACN )@@G@@D A9,1,I . A9 TELLS IF '.' PUT OUT @#@@@JCVEDT9 LABEL . CO )@@G@@@B@@@J IF A7,NE,0,I THEN,CVEDT5 . OK @D@@@J IF A6,NE,CP )@@G@@0,I THEN,CVEDT6 . STILL NUMBER LEFT @G@@@J LOAD A8,'0',I . NO CQ )@@G@@NUMBER LEFT AFTER '.', PUT IN LEADING ZERO@#@@@J PUTC . @C@@@JCR )@@G@@ ADD A4,1,I . ONE MORE CHAR@C@@@J GOTO CVEDCS )@@G@@SG . GO BLANK PAD @#@@@JCVEDT5 LABEL . @C@@@J IF CT )@@G@@ A7,EQ,0,I THEN,CVEDT6 . EMPTY A7 @^@@@J SRBD A7,36 . @^@@@JCU )@@G@@ DIV A7,10,I .@ @@@J ADD A8,'0',I . @#@@@J CV )@@G@@ PUTC . @D@@@J ADD A4,1,I . ANOTHER CHAR PLACEDCW )@@G@@@D@@@J LOOP A10,CVEDT5 . DUMP REST OF A7 @#@@@JCVEDT6CX )@@G@@ LABEL . @G@@@J IF A6,EQ,0,I THEN,CVEDSG . OUT OF NUMBER,GCY )@@G@@O FILL WITH ZERO'S@F@@@J IF A10,LT,0,I THEN,CVEDT8 . DON'T FILL CZ )@@G@@IF ALREADY FULL @F@@@J LOAD A8,'0',I . FILL OUT FOR DA )@@G@@A7 SINCE A6 NOT=0 @#@@@JCVEDT7 LABEL . @#@@@J PUTC . @^@@@JDB )@@G@@ ADD A4,1,I . @E@@@J LOOP A10,CVEDT7 . DUMP 0 DC )@@G@@FOR REST OF A7 @#@@@JCVEDT8 LABEL . @C@@@J SRBD A6,36 . DD )@@G@@ MOVE A6 OVER @D@@@J SETL A10,10,I . AT MOSTDE )@@G@@ TEN DIGITS @^@@@J GOTO CVEDT5 . @#@@@JCVEDSG LABEL . @E@@@JDF )@@G@@ IF DCVSTL,ZERO THEN,CVED10 . WAS THERE A SIGN? @C@@@J DG )@@G@@ LOAD A8,DCVSTG . PICK UP SIGN @D@@@J SRB A8,27 . DH )@@G@@ GET INTO POSITION @#@@@J PUTC . @#@@@JCVED10 LABDI )@@G@@EL . @B@@@J LOAD A5,DCVDP . GET P @E@@@J SUBDJ )@@G@@ A5,A4 . HOW MANY BLANKS TO PUT? @D@@@J ADD A4,DK )@@G@@DCVSTL . ACCOUNT FOR '+' @D@@@J ADD A4,A9 . DL )@@G@@ ACCOUNT FOR '.' @ @@@J LOAD A8,' ',I . @#@@@JCVEDS1DM )@@G@@ LABEL . @E@@@J PUTC . PUT IN LEADING BLADN )@@G@@NK @E@@@J ADD A4,1,I . ACCOUNT FOR EXTRA BLANK DO )@@G@@@D@@@J LOOP A5,CVEDS1 . PUT IN OTHER BLANKS@E@@@J DP )@@G@@ STORE A4,DCVINT . # OF CHARS IN STRING @^@@@J SRBDQ )@@G@@D A4,2 . @C@@@J SRB A5,34 . GET REMAINDER@D@@@JDR )@@G@@ LOAD X3,A4 . GET AN 'X' REGISTER@F@@@J SETDS )@@G@@PC 4,DCVSTG . PUT LETTERS IN PROPER PLACE @B@@@J IF DT )@@G@@ A5,EQ,0,I THEN,CVEDS2 . @F@@@J LOAD A8,DCVFDS,X3 . DU )@@G@@GET WORD READY TO REVERSE @F@@@J LOAD A7,A5 . FDV )@@G@@IGURE HOWMANY BITS TO MOVE @^@@@J MPYS A7,9,I . @D@@@J DW )@@G@@ LOAD X3,A7 . SET SHIFT COUNT @C@@@J LSSC A8,DX )@@G@@0,X3 . MOVE A8 OVER @E@@@J SETL A5,A5 . HDY )@@G@@OW MANY LETTERS IN A8? @C@@@J GOTO CVEDS3 . -> MERGDZ )@@G@@E @#@@@JCVEDS2 LABEL . @D@@@J SUB A4,1,I . OEA )@@G@@NE FEWER WORDS @D@@@J IF A4,LT,0,I THEN,CVEDFN . ->FINISH EB )@@G@@UP @E@@@J LOAD X3,A4 . USE 'X' REGISTER AGAIN EC )@@G@@@E@@@J LOAD A8,DCVFDS,X3 . GET NEXT WORD TO REVERSE @^@@@JED )@@G@@ SETL A5,4,I . @#@@@JCVEDS3 LABEL . @#@@@J PUTC . EE )@@G@@@^@@@J SRB A8,9 . @ @@@J LOOP A5,CVEDS3 . @^@@@JEF )@@G@@ GOTO CVEDS2 . @#@@@JCVEDT2 LABEL . @ @@@J LOADD A7,EG )@@G@@DCVFLT . @D@@@J LINK CVSCL0A . DIGIT STRING EH )@@G@@@C@@@J LOADSG A7,DCVDQ . @^@@@J ADDEI )@@G@@ A7,DCVINT .@ @@@J STORE A7,DCVINT . @^@@@J GOTO CVSCEJ )@@G@@L9 . @^@@@J/. FLOAT BINARY @C@@@JCVSTBN LABEL . EK )@@G@@ BINARY SOURCE@G@@@J IF SDFXFL,OFF THEN,CVFXBN . EL )@@G@@ -> FIXED BINARY @B@@@J LOAD A7,DCVBP . BIN P EM )@@G@@@D@@@J LOG2Y A7 . LOG2 BIN P = DEC P @E@@@J EN )@@G@@ ADD A7,1,I . FIX P AS PER PL/1 RULES @B@@@J STOEO )@@G@@RE A7,DCVDP . DEC P @E@@@J GOTO CVFLDC . -EP )@@G@@> DO AS FLOAT DECIMAL @^@@@J/. FIXED BINARY @E@@@JCVFXBN LABEQ )@@G@@EL . CONVERT TO FIXED DECIMAL @C@@@J LOADSG A7ER )@@G@@,DCVBQ . BINARY Q @F@@@J LOADN A6,A7 . GES )@@G@@ET NEG OF SCALE TO ''UNSCALE''@C@@@J LOG2Y A7 . DET )@@G@@ECIMAL Q @C@@@J STORE A7,DCVDQ . DECIMAL Q @C@@@JEU )@@G@@ LOAD A8,DCVBP . BINARY P @C@@@J LOG2Y A8 EV )@@G@@. DECIMAL P @E@@@J ADD A8,1,I . FEW )@@G@@IX P AS PER PL/1 RULES @C@@@J STORE A8,DCVDP . DECIMALEX )@@G@@ P @C@@@J LOADM A8,DCVINT . GET NUMBER @B@@@J EY )@@G@@ STORE A8,DCVFFT+1 . CONVERT@D@@@J ADD A6,02074,I . EZ )@@G@@ SET TO PROPER SCALE@C@@@J SLB A6,24 . LEFT JUFA )@@G@@STIFY @D@@@J STORE A6,DCVFFT . SET AS EXPONENT @C@@@JFB )@@G@@ LOADD A9,DCVFFT . NORMALIZE @^@@@J FADDD A9,FC )@@G@@KKD0 .@^@@@J DLM A9,A9 . @D@@@J LOADA X3,DCVINT . FD )@@G@@ POINT TO NUMBER @D@@@J LINK CVSGPT . PUT '+'FE )@@G@@ OR '-' @E@@@J IF DCVINT,ZERO THEN,CVFXD2 . HANDLE LIKE FIXEFF )@@G@@D DEC.@D@@@J. SCALE BY DECIMAL Q @C@@@JFG )@@G@@ LOADA X3,CVDINS . +SF, MPY @C@@@J IF A7,FH )@@G@@LT,0,I THEN,CVFXB3 . +SCF @C@@@J LOADA X3,CVMINS . -FI )@@G@@SF, DIVIDE @#@@@JCVFXB3 LABEL . @B@@@J LOADM A7,A7 . FJ )@@G@@ ABS(Q) @#@@@JCVFXB4 LABEL . @D@@@J IF A7,LT,KFLTSZ/2+FK )@@G@@1,I THEN,CVFXB5 . ->OK @D@@@J LOAD A3,KFLTSZ,I . SET MAXFL )@@G@@ EXPONENT @^@@@J EX 0,X3 . @ @@@J SUB A7,KFLTSZFM )@@G@@/2,I .@^@@@J GOTO CVFXB4 . @#@@@JCVFXB5 LABEL . @^@@@J FN )@@G@@ LOAD A3,A7 . @^@@@J SLB A3,1 . @B@@@J EX 0,XFO )@@G@@3 . SCALE @C@@@J FADDD A9,KUNZRO . TRUNCATFP )@@G@@E @ @@@J STORED A9,DCVFFT . @D@@@J GOTO CVFXDC . FQ )@@G@@ -> FIXED DECIMAL @E@@@J/. PUT SIGN INTO STRING AFTER FR )@@G@@CHECKING IF YOU SHOULD @[@@@J. @#@@@JCVSGPT LLOC . @D@@@J FS )@@G@@ MOVE DCVSTL,0,I . SET NO SIGN PUT OUT@D@@@J IF DCVTSTFT )@@G@@,ZERO THEN,LJMP . DIGIT STRING ONLY@ @@@J USING WORD,X3 . FU )@@G@@@D@@@J IF 0400,ON,W1Q1 THEN,CVSGP1 . NUMBER WAS NEG@E@@@JCVSGP3FV )@@G@@ LABEL . COME HERE FROM NEG ZERO @E@@@J LOAFW )@@G@@D A8,'+',I . SET LEADING BLANK IF POS @G@@@J IF SFX )@@G@@DRLCX,ON THEN,CVSGP2 . IF COMPLEX,DON'T BLOCK '+' @ @@@J LOAFY )@@G@@D A8,' ',I . @B@@@J GOTO CVSGP2 . ->MERGE@ @@@JFZ )@@G@@CVSGP1 LABEL . NUMBER IS NEG@ @@@J LOAD A8,'-',I . @D@@@JGA )@@G@@ IF W1,ZERO THEN,CVSGP3 . STOP SIGN IF ZERO @ @@@JCVSGP2 LABGB )@@G@@EL . MEGRE HERE @#@@@J PUTC . @D@@@J MOVE DCVSTL,GC )@@G@@1,I . SET ONE CHAR OUT @#@@@J LJMP . @ @@@J/. RETGD )@@G@@URN TO CALLER @D@@@JCVEDFN LABEL . FILLWITH BLANGE )@@G@@KS @D@@@J IF DCVTST,ZERO THEN,CVRTN . -> NO PADDING @B@@@JGF )@@G@@ LOAD A8,' ',I . PAD @^@@@J SETL A7,3,I . GG )@@G@@@#@@@JCVFLP LABEL . @#@@@J PUTC . @ @@@J LOOP A7,GH )@@G@@CVFLP . @B@@@J LOADD A7,KBLANK . 8 MORE @^@@@J GI )@@G@@ USING WORD,X2 .@^@@@J STORED A7,W1 . @#@@@JCVRTN LABEL . GJ )@@G@@@ @@@J LOAD A2,DCVSV . @ @@@J LOAD X2,DCVSV+1 . GK )@@G@@@ @@@J LOAD F,DCVSV+2 . @ @@@J LOADD A7,DCVSV+3 . GL )@@G@@@ @@@J LOADD A9,DCVSV+5 . @ @@@J LOAD X3,DCVSV+9 . GM )@@G@@@^@@@J JMP . RETURN @#@@@JEXCS CSECT 3 .@#@@@JCVDINS SFWGN )@@G@@ 0 .@A@@@J FDIVD A9,KKPW10-2,A3 . @#@@@JCVMINS SFW 0 .GO )@@G@@@A@@@J FMPYD A9,KKPW10-2,A3 . @B@@@JCVDONE SF 020014000GP )@@G@@0000 . ROUND @#@@@JFILL(1) SF 0 .@B@@@JCVTTOT SF 100000000GQ )@@G@@00 . 10**10 @#@@@J CEND . @#@@@J END . ___ERSGR )@@G@@*[@@@@*SDFF*@C@@@D. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@DGS )@@G@@. @D@@@D. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@DGT )@@G@@. @ @@@D. MARVIN V. ZELKOWITZ @B@@@D. DEPARTMENT OF CGU )@@G@@OMPUTER SCIENCE @A@@@D. UNIVERSITY OF MARYLAND @B@@@D. GV )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@D. @G@@@D. PERMISSIOGW )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@D. REPRESENGX )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@D. @G@@@D. GY )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@DGZ )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDHA )@@G@@@E@@@D. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@DHB )@@G@@. @F@@@D. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDHC )@@G@@ED: @[@@@D. @G@@@D. (A) ANY RESULTING PROGRAM, OR REPORT, PHD )@@G@@APER OR DOCUMENTATION @G@@@D. DESCRIBING SUCH PROGRAM WILL CLEAHE )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@D. IS A DIALECT OF PLUM OR IS HF )@@G@@DERIVED FROM PLUM, AND @[@@@D. @G@@@D. (B) ALL SUCH MODIFICAHG )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@D. OF ERRORS IN THHH )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@D. A BRIEF DESCRIPHI )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@D. TO THE UNHJ )@@G@@IVERSITY OF MARYLAND, AND @[@@@D. @F@@@D. (C) NO PROGRAMSHK )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@D. WITHOUT WRITTENHL )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@D. @F@@@D. HM )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@D. HN )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@DHO )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF HP )@@G@@@E@@@D. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@DHQ )@@G@@. @G@@@D. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERHR )@@G@@ ITSELF, @F@@@D. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN HS )@@G@@USING PLUM. @E@@@D. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USHT )@@G@@ER TO @F@@@D. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRHU )@@G@@ODUCT @G@@@D. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT HV )@@G@@DEVELOPED @#@@@D. FROM PLUM. @[@@@D. @[@@@D. @[@@@D. HW )@@G@@@[@@@D. @[@@@D. @[@@@D/. @[@@@ . @D@@@ . HX )@@G@@ UNIVAC 1108 FORTRAN V LIBRARY@[@@@ . @B@@@ . DATAN(X) - DOUBLHY )@@G@@E PRECISION ARCTANGENT @[@@@ . @]@@@ . USAGE @[@@@ . @^@@@ HZ )@@G@@. FORTRAN V REFERENCE @F@@@ . DATAN(X), WHERE X REPRESENTS THE (DOUBIA )@@G@@LE PRECISION) ARGUMENT. @[@@@ . @A@@@ . ASSEMBLER LANGUAGE REFERENIB )@@G@@CE @#@@@ . DL A3,X @ @@@ . A LMJ X11,DATAN @G@@@ IC )@@G@@. DATAN AND DATAN2 ARE ENTRY POINTS TO A FUNCTION WHICH COMPUTES THE ID )@@G@@@D@@@ . ARCTANGENT OF ONE OR TWO ARGUMENTS RESPECTIVELY. @[@@@ . IE )@@G@@@A@@@ . ARGUMENT AND FUNCTION RANGE @I@@@ . THE ARGUMENT MUST BEIF )@@G@@ A NORMALIZED, DOUBLE PRECISION, FLOATING POINT NUMBER. @H@@@ . THIG )@@G@@E FUNCTION RETURNS A NORMALIZED, FLOATING POINT NUMBER IN THE INTERVAL IH )@@G@@@#@@@ . (-PI/2,PI/2). @[@@@ . @^@@@ . FUNCTIONS REFERENCED@]@@@ II )@@G@@. NONE @[@@@ . @^@@@ . ERROR CONDITIONS @D@@@ . UNNORMALIJ )@@G@@IZED ARGUMENTS CAUSE ERROR TERMINATION. @[@@@ . @^@@@ . MATHEMATIIK )@@G@@CAL METHOD @G@@@ . IF ABS(X) .GE. 4.0, LET Z = 1/X AND ARCTAN(X) = PIIL )@@G@@/2 - ARCTAN(Z). @E@@@ . IF ABS(X) < 0.25, LET Z = X AND ARCTAN(X) = IM )@@G@@ARCTAN(Z). @I@@@ . IF 0.25 .LE. ABS(X) .LT. 4.0, LET X = TAN(Q + Y), IN )@@G@@WHERE ABS(TAN(Q)) < 0.25. @G@@@ . THEN Z = TAN(Q) = (TAN(Q + Y) - IO )@@G@@TAN(Y))/(TAN(Q + Y) * TAN(Y) + 1) @F@@@ . ARCTAN(X) = Q + Y, WHERE YIP )@@G@@ IS IN A TABLE AND Q = ARCTAN(Z). @G@@@ . ARCTAN(Z) IS APPROXIMATED IQ )@@G@@BY A RATIONAL APPROXIMATION OF THE FORM @G@@@ . Z*P(Z**2)/Q(Z**2), WIR )@@G@@HERE P AND Q ARE 4TH AND 5TH DEGREE POLYNOMIALS @#@@@ . RESPECTIVELY. IS )@@G@@@ @@@ . ARCTAN(-X) = -ARCTAN(X). @[@@@ . @#@@@ . PERFORMANCE IT )@@G@@@[@@@ . @]@@@ . ACCURACY@H@@@ . NO. OF MAX. REIU )@@G@@L. RMS REL. MAX. NO. FULL LENGTH @H@@@ . ARG. ARG.IV )@@G@@ ERROR ERROR ERRONEOUS ACCURACY @H@@@ . RANGEIW )@@G@@ VALUES *10**(-17) *10**(-17) BITS (%) @H@@@ IX )@@G@@. -------------- ------ ----------- ------------ -------- ------IY )@@G@@----- @H@@@ . (-0.5,0.5) 8000 0.4542 0.1318 3IZ )@@G@@ 26.5 @H@@@ . (0.5,10.0) 1000 -0.2316 0.07JA )@@G@@03 2 60.9 @F@@@ . AS THE ARGUMENT INCREASES IN MAGJB )@@G@@NITUDE THE ACCURACY IMPROVES. @[@@@ . @]@@@ . TIMING @B@@@ . 12JC )@@G@@1.9 MICROSEC. FOR ABS(X) < 0.25. @D@@@ . 154.5 MICROSEC. FOR 0.25 .JD )@@G@@LE. ABS(X) .LT. 4.0. @B@@@ . 150.1 MICROSEC. FOR ABS(X) .GE. 4.0. JE )@@G@@@[@@@ . @^@@@ . CORE REQUIREMENTS @A@@@ . NUMBER OF INSTRUCTIOJF )@@G@@NS 87 @A@@@ . SIZE OF DATA AREA 51 @A@@@ . TOTAL COJG )@@G@@RE REQUIREMENTS 138 @[@@@ . @[@@@ . @E@@@ . DATAN2 - DOUBLE JH )@@G@@PRECISION ARCTANGENT OF RATIO (X1/X2). @[@@@ . @]@@@ . USAGE JI )@@G@@@[@@@ . @^@@@ . FORTRAN V REFERENCE @H@@@ . DATAN2(X1,X2), WHEREJJ )@@G@@ X1 AND X2 REPRESENT (DOUBLE PRECISION) ARGUMENTS. @[@@@ . @A@@@ JK )@@G@@. ASSEMBLER LANGUAGE REFERENCE @^@@@ . DL A3,X1 @^@@@ JL )@@G@@. DL A1,X2 @ @@@ . A LMJ X11,DATAN2 @G@@@ . DAJM )@@G@@TAN AND DATAN2 ARE ENTRY POINTS TO A FUNCTION WHICH COMPUTES THE @D@@@ JN )@@G@@. ARCTANGENT OF ONE OR TWO ARGUMENTS RESPECTIVELY. @[@@@ . @A@@@ JO )@@G@@. ARGUMENT AND FUNCTION RANGE @H@@@ . ALL PAIRS OF NORMALIZED, DJP )@@G@@OUBLE PRECISION, FLOATING POINT NUMBERS EXCEPT @H@@@ . (0.0,0.0) ARE JQ )@@G@@VALID ARGUMENTS. THE FUNCTION RETURNS A NORMALIZED FLOATING@B@@@ . POJR )@@G@@INT NUMBER IN THE INTERVAL (-PI,PI).@[@@@ . @^@@@ . FUNCTIONS REFEJS )@@G@@RENCED@]@@@ . NONE @[@@@ . @^@@@ . ERROR CONDITIONS @H@@@ JT )@@G@@. ERROR TERMINATION IS CAUSED IF ONE OR BOTH ARGUMENTS ARE UNNORMALIZEJU )@@G@@D @A@@@ . OR IF BOTH ARGUMENTS ARE ZERO. @[@@@ . @^@@@ . MATJV )@@G@@HEMATICAL METHOD @H@@@ . IF X2 = 0 AND X1 .NE. 0, THEN ARCTAN(X1/X2) JW )@@G@@= PLUS OR MINUS PI/2, WHERE @C@@@ . THE SIGN OF THE RESULT IS THE SAJX )@@G@@ME AS X1. @A@@@ . IF X2 .NE. 0, LET Z = X1/X2. @G@@@ . IF ABS(ZJY )@@G@@) .GE. 4.0 LET W = 1/Z AND ARCTAN(Z) = PI/2 - ARCTAN(W). @E@@@ . IFJZ )@@G@@ ABS(Z) < 0.25, LET W = Z AND ARCTAN(Z) = ARCTAN(W). @I@@@ . IF 0.25 KA )@@G@@.LE. ABS(Z) .LT. 4.0, LET Z = TAN(Q + Y), WHERE ABS(TAN(Q)) < 0.25. KB )@@G@@@G@@@ . THEN W = TAN(Q) = (TAN(Q + Y) - TAN(Y))/(TAN(Q + Y) * TAN(Y) +KC )@@G@@ 1) @F@@@ . ARCTAN(Z) = Q + Y, WHERE Y IS IN A TABLE AND Q = ARCTAN(KD )@@G@@W). @G@@@ . ARCTAN(W) IS APPROXIMATED BY A RATIONAL APPROXIMATION OFKE )@@G@@ THE FORM @G@@@ . W*P(W**2)/Q(W**2), WHERE P AND Q ARE 4TH AND 5TH DKF )@@G@@EGREE POLYNOMIALS @#@@@ . RESPECTIVELY. @ @@@ . ARCTAN(-Z) = -ARCTANKG )@@G@@(Z). @F@@@ . THE QUADRANT IS DETERMINED BY THE SIGNS OF THE ARGUMENTSKH )@@G@@. @[@@@ . @#@@@ . PERFORMANCE @[@@@ . @]@@@ . ACCURACYKI )@@G@@@H@@@ . NO. OF MAX. REL. RMS REL. MAX. NO. KJ )@@G@@FULL LENGTH @H@@@ . ARG. ARG. ERROR ERROR KK )@@G@@ ERRONEOUS ACCURACY @H@@@ . RANGE VALUES *10**(-17) *KL )@@G@@10**(-17) BITS (%) @H@@@ . -------------- ------ --KM )@@G@@--------- ------------ -------- ----------- @H@@@ . X1:(-1,1) KN )@@G@@ 5000 -0.4171 0.0917 3 54.6 @#@@@ . KO )@@G@@X2:(-1,1) @G@@@ . AS THE QUOTIENT X1/X2 INCREASES IN MAGNITUDE THE AKP )@@G@@CCURACY INCREASES.@[@@@ . @]@@@ . TIMING @B@@@ . 147.3 MICROSKQ )@@G@@EC. FOR ABS(Z) < 0.25. @D@@@ . 179.9 MICROSEC. FOR 0.25 .LE. ABS(Z)KR )@@G@@ .LT. 4.0. @B@@@ . 175.5 MICROSEC. FOR 4.0 .LE. ABS(Z).@[@@@ . KS )@@G@@@^@@@ . CORE REQUIREMENTS @A@@@ . NUMBER OF INSTRUCTIONS 87 KT )@@G@@@A@@@ . SIZE OF DATA AREA 51 @A@@@ . TOTAL CORE REQUIREMEKU )@@G@@NTS 138 @[@@@ . @^@@@ AXR$ . @#@@@ $(5) LIKV )@@G@@T @[@@@ $(3) @B@@@ BFATAN* J DATAN . -> 1 ARG@C@@@ KW )@@G@@ J CDATAN . -> 1 COMPLEX @ @@@ RTSAVE KX )@@G@@ NDATAN . @A@@@ DS A1,DRTARG2 . @A@@@ DSKY )@@G@@ A3,DRTARG1 . @ @@@ L,U A0,DRTARG1@ @@@ KZ )@@G@@ L,U A1,DRTARG2@C@@@ DATAN2 DL A4,0,A1 . 2LA )@@G@@ND ARG@ @@@ LMJ A2,ARGTST @ @@@ DS A4,RLB )@@G@@1 @E@@@ S A4,TEMP2 . SIGN OF 2ND ARG LC )@@G@@@F@@@ DJZ A4,ZERO2 . SECOND ARGUMENT IS ZERO LD )@@G@@@C@@@ DL A4,0,A0 . 1ST ARG@ @@@ LMLE )@@G@@J A2,ARGTST @ @@@ DFD A4,R1 @F@@@ TNLF )@@G@@Z A4 . IS QUOTIENT EQUAL TO ZERO@I@@@ DLLG )@@G@@N A4,A4 . YES, NEG. SIGN FOR QUADRANT PROJECTION LH )@@G@@@D@@@ J COMP . NO OVERFLOW @D@@@ ZERO2 LI )@@G@@ DL A4,0,A0 . 1ST ARGUMENT @F@@@ DJZ LJ )@@G@@ A4,NERRB$ . BOTH ARGUMENT ARE ZERO @F@@@ DL LK )@@G@@ A3,PIOV2 . OVERFLOW, LOAD PI/2 @G@@@ LMJ LL )@@G@@ A2,ARGTST . TO SEE IF 1ST ARG UNNORMALIGED @F@@@ TPLM )@@G@@ A4 . 1ST ARGUMENT IS NEGATIVE @C@@@ DLLN )@@G@@N A3,A3 . YES @A@@@ RTBACK* LA A0,DRTSA0 LO )@@G@@. @ @@@ LMJ X5,EXML . @ @@@ J 0,X1LP )@@G@@1 . @ @@@ DATAN RTSAVE NDATAN @ @@@ DS A3,DRLQ )@@G@@TARG1 @A@@@ L,U A0,DRTARG1 . @E@@@ SZ LR )@@G@@ TEMP2 . SET ENTRY FLAG @ @@@ SZ A3 LS )@@G@@. @C@@@ DL A4,0,A0 . ARG @ @@@ LT )@@G@@ LMJ A2,ARGTST @H@@@ COMP S A4,TEMP1 . SLU )@@G@@IGN IF RESULT BETWEEN -PI/2 AND PI/2@H@@@ SZ,H2 TEMP1 LV )@@G@@ . PRESUME ABS(ARG) IS SMALLER THAN 4.0 @E@@@ DLM LW )@@G@@ A4,A4 . ABS(ARG)=TAN(X Y) @ @@@ DFU A1,ALX )@@G@@4 @H@@@ TG,U A1,02003 . IS ABS(ARG) EQUAL OLY )@@G@@R LARGER THAN 4.0 @C@@@ J LARGE . YES LZ )@@G@@@G@@@ TLE,U A1,01777 . IS ABS(ARG) LESS THAN 0.2MA )@@G@@5 @C@@@ J SMALL . YES @A@@@ MB )@@G@@ LDSL A2,0176001,A1 @ @@@ DSL A2,59 @ @@@ MC )@@G@@ JNB A3,$+2 @F@@@ A,U A3,1 MD )@@G@@ . MAKE TABLE INDEX EVEN @ @@@ L,U A0,02072 @C@@@ ME )@@G@@ DFP A0,A2 . TAN(Y) @ @@@ DS MF )@@G@@ A1,R1 @ @@@ DFM A1,A4 @ @@@ DFA MG )@@G@@ A1,ONE @E@@@ DFAN A4,R1 . TAN(X Y)-TAN(MH )@@G@@Y) @I@@@ DFD A4,A1 . TAN(X) , ABS(TAN(X)MI )@@G@@) IS LESS THAN 0.25 @ @@@ BACK DS A4,TANX @ @@@ MJ )@@G@@ DFM A4,A4 @ @@@ DS A4,R1 @ @@@ MK )@@G@@ L A2,(-4,12)@D@@@ LR,U R3,3 . 4ML )@@G@@ ITERATIONS @C@@@ DL A4,COEFF+6,A2 . B10 @C@@@ MM )@@G@@ DL A0,COEFF+4,A2 . A9 @ @@@ LOOP DFM MN )@@G@@ A4,R1 @H@@@ DFA A4,COEFF+2,A2 . ADD COEFFICIEMO )@@G@@NT B OF DENOMINATOR @ @@@ DFM A0,R1 @G@@@ MP )@@G@@ DFA A0,COEFF,*A2 . ADD COEFFICIENT A OF NOMINATOR @ @@@ MQ )@@G@@ JGD R3,LOOP @ @@@ DFM A4,R1 @D@@@ MR )@@G@@ DFA A4,COEFF . ADD B0 (=A1) @ @@@ DFMS )@@G@@D A0,A4 @C@@@ DFM A0,TANX . ANGLE XMT )@@G@@@D@@@ DFA A0,TABLE,A3 . ADD ANGLE Y @G@@@ MU )@@G@@ TNZ,H2 TEMP1 . IS ABS(ARG) LOWER THAN 4.0 @C@@@ MV )@@G@@ J FIN . YES @ @@@ DLN MW )@@G@@ A0,A0 @ @@@ DFA A0,PIOV2 @D@@@ FIN TP MX )@@G@@ TEMP1 . IS SIGN NEG @C@@@ DLN A0,A0 MY )@@G@@ . YES @D@@@ DL A3,A0 . SET RETMZ )@@G@@URN @A@@@ LA A0,DRTSA0 . @ @@@ LMJ NA )@@G@@ X5,EXML . @F@@@ TNZ TEMP2 . IS THERE ONE NB )@@G@@ARG ONLY @C@@@ J 0,X11 . YES @E@@@ NC )@@G@@ TN TEMP2 . IS 2ND ARG NEG @C@@@ ND )@@G@@ J 0,X11 . NO @G@@@ DLM A3,ANE )@@G@@3 . RESULT IN 2ND OR 3RD QUADRANT @D@@@ DFAN NF )@@G@@ A3,PI . ABS(X Y)-PI @F@@@ TP TEMP1 NG )@@G@@ . IS RESULT IN 2ND QUADRANT@C@@@ DLN A3,A3 NH )@@G@@ . NO @ @@@ J 0,X11 @D@@@ ARGTST TENI )@@G@@P A4,(0400040,0) . TEST ARG @G@@@ J 0,A2NJ )@@G@@ . ARG UNEQUAL ZERO AND NORMALIZED@ @@@ DLM NK )@@G@@ A4,A4 @F@@@ DJZ A4,0,A2 . RETURN IF LEGNL )@@G@@AL ZERO @E@@@ J NERRA$ . ARG IS UNNORMNM )@@G@@ALIZED@F@@@ LARGE SX,H2 X11,TEMP1 . ABS(ARG) IS 4.0 OR NN )@@G@@LARGER@ @@@ DS A4,R1 @ @@@ DL A4,ONO )@@G@@NE @D@@@ DFD A4,R1 . 1.0/ABS(ARG) @D@@@ NP )@@G@@SMALL SZ A3 . TAN(Y)=0.0 @^@@@ J NQ )@@G@@ BACK@[@@@ . @ @@@ . ATAND - IN DEGREES @[@@@ . NR )@@G@@@[@@@ . @^@@@ BFATND* J DEG1 @#@@@A LOCAL . @A@A@ NS )@@G@@ DFM A3,PIOV180 . @A@A@ DFM A1,PIOV180 NT )@@G@@. @ @A@ J BFATAN+2. @A@@@A LMJ X11,BFNU )@@G@@ATAN+2. @E@@@ABFATAND1 LABEL . CONVERT TO DEGREES NV )@@G@@HERE @E@@@A DFD A3,PIOV180 . WAS RADIANS , NOW DEGREESNW )@@G@@@#@@@A JMP . @ @A@ DEG1 DFM A3,PIOV180 @#@@@ADEG1 NX )@@G@@ LOCAL . @^@A@ J DATAN @ @@@A LMJ X11,DATNY )@@G@@AN . @E@C@A GOTO BFATAD1 . GO CONVERT TO DEGREES NZ )@@G@@@E@@@C GOTO BFATAND1 . GO CONVERT TO DEGREES @ @@@ OA )@@G@@TEMP2 EQU DRTTMP @ @@@ TEMP1 EQU DRTTMP+1 @ @@@ OB )@@G@@TANX EQU DRTTMP+2 @ @@@ ONE + 0200140,0 @^@@@ OC )@@G@@ + 0 @^@@@ PIOV180* 0177343575065 .@^@@@ 04OD )@@G@@5123516212 .@A@@@ PIOV2* + 0200162207732 @A@@@ + OE )@@G@@ 0504205506043 @A@@@ PI + 0200262207732 @A@@@ OF )@@G@@ + 0504205506043 @C@@@ COEFF + 0203647014OG )@@G@@575 . A1 @A@@@ + 0630000000000 @C@@@ OH )@@G@@ + 0203756155321 . B2 @A@@@ + 0464OI )@@G@@000000000 @C@@@ + 0203747553221 . A3 @A@@@ OJ )@@G@@ + 0760000000000 @C@@@ + 0203746035OK )@@G@@673 . B4 @A@@@ + 0530000000000 @C@@@ OL )@@G@@ + 0203665071467 . A5 @A@@@ + 0760OM )@@G@@000000000 @C@@@ + 0203562575117 . B6 @A@@@ ON )@@G@@ + 0440000000000 @C@@@ + 0203463510OO )@@G@@537 . A7 @A@@@ + 0200000000000 @C@@@ OP )@@G@@ + 0203256656465 . B8 @A@@@ + 0600OQ )@@G@@000000000 @C@@@ + 0203064657637 . A9 @A@@@ OR )@@G@@ + 0000000000000 @C@@@ + 0202466403OS )@@G@@020 . B10 @^@@@ TABLE + 0 @^@@@ + OT )@@G@@ 0 @A@@@ + 0177773261470 @A@@@ + OU )@@G@@ 0126067323665 @A@@@ + 0200062207732 @A@@@ OV )@@G@@ + 0504205506043 @A@@@ + 0200076714136 OW )@@G@@@A@@@ + 0450076646617 @A@@@ + 0200OX )@@G@@143333414 @A@@@ + 0456567621066 @A@@@ + OY )@@G@@ 0200146055553 @A@@@ + 0626511552054 @A@@@ OZ )@@G@@ + 0200147760273 @A@@@ + 0267520527PA )@@G@@777 @A@@@ + 0200151270207 @A@@@ + PB )@@G@@ 0706261151131 @A@@@ + 0200152332144 @A@@@ PC )@@G@@ + 0521723477115 @ @A@ NDATAN + ' ATAN ' @A@@@APD )@@G@@NDATAN INSERT 5,'ATA','N ' . @#@@@ END ___ DFPE )@@G@@D A4,A1 . TAN(X) , ABS(TAN(X)*[@@@@*SDFF*@C@@@^. COPF )@@G@@PYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@^. @D@@@^. QUESTIONPG )@@G@@S CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@^. @ @@@^. MARPH )@@G@@VIN V. ZELKOWITZ @B@@@^. DEPARTMENT OF COMPUTER SCIENCE @A@@@^PI )@@G@@. UNIVERSITY OF MARYLAND @B@@@^. COLLEGE PARK, MARYLANPJ )@@G@@D 20742 @[@@@^. @G@@@^. PERMISSION TO USE THESE LISTINGS PK )@@G@@AND THE COMPUTER PROGRAMS THEY@E@@@^. REPRESENT IS GRANTED UNDER THE FPL )@@G@@OLLOWING CONDITIONS: @[@@@^. @G@@@^. 1. UNLIMITED USE MAY PM )@@G@@BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@^. THESE LISTINGS PROVIPN )@@G@@DED THAT THE NAME PLUM OR UNIVERSITY OF MARYLAND@E@@@^. PL/1 COMPILER PO )@@G@@REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@^. @F@@@^. 2. PP )@@G@@MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDED: @[@@@^. @G@@@^PQ )@@G@@. (A) ANY RESULTING PROGRAM, OR REPORT, PAPER OR DOCUMENTATION PR )@@G@@@G@@@^. DESCRIBING SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PRPS )@@G@@OGRAM @E@@@^. IS A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND PT )@@G@@@[@@@^. @G@@@^. (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAPU )@@G@@L CORRECTIONS @F@@@^. OF ERRORS IN THE SOURCE PROGRAMS, SHALLPV )@@G@@ BE REPORTED AND @G@@@^. A BRIEF DESCRIPTION OF THE FEATURE ADDEPW )@@G@@D SHALL BE SUBMITTED @C@@@^. TO THE UNIVERSITY OF MARYLAND, ANPX )@@G@@D @[@@@^. @F@@@^. (C) NO PROGRAMS DERIVED FROM THESE LISTPY )@@G@@INGS SHALL BE SOLD@G@@@^. WITHOUT WRITTEN APPROVAL FROM THE UNIVEPZ )@@G@@RSITY OF MARYLAND, AND @[@@@^. @F@@@^. (D) COPIES OF THESE PQA )@@G@@ROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@^. LOCATIONS PROVIDED THQB )@@G@@AT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@^. WHETHER THE PROQC )@@G@@GRAMS ARE EXACT COPIES OF THE UNIVERSITY OF @E@@@^. MARYLAND QD )@@G@@PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@^. @G@@@^. 3. QE )@@G@@THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILER ITSELF, @F@@@^. ANQF )@@G@@D ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN USING PLUM. @E@@@^. THQG )@@G@@E PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USER TO @F@@@^. EXPERIMEQH )@@G@@NT WITH THE COMPILER AS LONG AS THE RESULTING PRODUCT @G@@@^. IS NOT SQI )@@G@@OLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT DEVELOPED @#@@@^. FRQJ )@@G@@OM PLUM. @[@@@^. @[@@@^. @[@@@^. @[@@@^. @[@@@^. QK )@@G@@@[@@@^/. @[@@@@. @D@@@@. UNIVAC 1108 FORTRQL )@@G@@AN V LIBRARY@[@@@@. @B@@@@. DSQRT(X) - DOUBLE PRECISION SQUARE ROOT QM )@@G@@@[@@@@. @]@@@@. USAGE @[@@@@. @^@@@@. FORTRAN V REFERENCE QN )@@G@@@F@@@@. DSQRT(X), WHERE X REPRESENTS THE (DOUBLE PRECISION) ARGUMENT. QO )@@G@@@[@@@@. @A@@@@. ASSEMBLER LANGUAGE REFERENCE @^@@@@. DQP )@@G@@L A3,ARG @ @@@@. A LMJ X11,DSQRT @[@@@@. @A@@@@. ARQQ )@@G@@GUMENT AND FUNCTION RANGE @I@@@@. THE ARGUMENT MUST BE A NON-NEGATQR )@@G@@IVE, NORMALIZED, DOUBLE PRECISION, FLOATING @H@@@@. POINT NUMBER. QS )@@G@@ THE FUNCTION RETURNS A NON-NEGATIVE, NORMALIZED, FLOATING @#@@@@. POQT )@@G@@INT NUMBER. @[@@@@. @^@@@@. FUNCTIONS REFERENCED@]@@@@. NONE QU )@@G@@@[@@@@. @^@@@@. ERROR CONDITIONS @F@@@@. UNNORMALIZED OR NEGAQV )@@G@@TIVE ARGUMENTS CAUSE ERROR TERMINATION. @H@@@@. THE ARGUMENT APPEARSQW )@@G@@ IN UNPACKED DOUBLE PRECISION FORMAT IN REGISTERS @#@@@@. A3, A4-AQX )@@G@@5. @[@@@@. @^@@@@. MATHEMATICAL METHOD @H@@@@. WRITE X = 2**(QY )@@G@@2*E) * M, WHERE E IS AN INTEGER AND 0.25 .LE. M .LT. 1.0. @ @@@@. SQQZ )@@G@@RT(X) = 2**E * SQRT(M) @G@@@@. SQRT(M) IS APPROXIMATED USING A POLYNORA )@@G@@MIAL APPROXIMATION OF THE FORM@D@@@@. C4 * M**4 + C3 * M**3 + C2 * M**RB )@@G@@2 + C1 * M + C0 @G@@@@. THIS APPROXIMATION IS IMPROVED WITH TWO NEWTRC )@@G@@ON-RAPHSON ITERATIONS. @[@@@@. @#@@@@. PERFORMANCE @[@@@@. RD )@@G@@@]@@@@. ACCURACY@H@@@@. NO. OF MAX. REL. RMS RERE )@@G@@L. MAX. NO. FULL LENGTH @H@@@@. ARG. ARG. ERRORRF )@@G@@ ERROR ERRONEOUS ACCURACY @H@@@@. RANGE VALUERG )@@G@@S *10**(-18) *10**(-18) BITS (%) @H@@@@. --------RH )@@G@@------ ------ ----------- ------------ -------- ----------- @H@@@@RI )@@G@@. (0.25,0.5) 3000 0.8459 0.4125 0 100RJ )@@G@@.0 @H@@@@. (0.5,1.0) 3000 -0.6063 0.2981 1RK )@@G@@ 99.9 @H@@@@. (0,25) 5000 0.8566 0.38RL )@@G@@15 1 100.0 @E@@@@. RESULTS ARE COMPARABLE FOR ARGUMRM )@@G@@ENTS GREATER THAN 25. @[@@@@. @]@@@@. TIMING @A@@@@. 76.3 MICRN )@@G@@ROSEC. IF X .NE. 0. @ @@@@. 7.8 MICROSEC. IF X = 0. @[@@@@. RO )@@G@@@^@@@@. CORE REQUIREMENTS @A@@@@. NUMBER OF INSTRUCTIONS 40 RP )@@G@@@A@@@@. SIZE OF DATA AREA 15 @A@@@@. TOTAL CORE REQUIREMERQ )@@G@@NT 55 @[@@@@. @#@@@@ AXR$ @#@@@] DCLRG . RR )@@G@@@]@@@@$(5) LIT@[@@@@$(3) @^@@@@BFSQRT* J DSQRT . @C@@@@ RS )@@G@@ J CDSQRT . COMPLEX @^@@@@DSQRT RTSAVE NAME RT )@@G@@@B@[@@ SZ A3 . @D@@@@ DL RU )@@G@@ A0,A3 . ARG IN A0,A1 @E@@@@ DS A0,R2 RV )@@G@@ . STORE ARG IN R2,R3 @G@@@@ DFU A3,A0 RW )@@G@@ . CHAR IN A3 , MANT IN A4,A5 @I@@@@ AA,U A3,01757 RX )@@G@@ . ADD BIAS - 22(FRACTIONAL) + 6(COEF) - 1 @H@@@@ DSCRY )@@G@@ A2,1 . CHAR FOR FIRST ESTIMATE, CHAR/2 IN A3@I@@@@RZ )@@G@@ SSL A2,35 . 0 IF CHAR ODD , 1 IF EVEN, (COESA )@@G@@F INDEX) @ @@@@ TLE A4,(040,0) @H@#@@ J SB )@@G@@ ZERO . ARG IS NON-POSITIVE OR UNNORMALIZED @H@@@# SC )@@G@@ J ZEROX . ARG IS NON-POSITIVE OR UNNORMALIZED SD )@@G@@@E@@@@ LDSL A4,10,A2 . LEFT JUSTIFY MANT @B@@@@SE )@@G@@ SA A4,R1 . Z@C@@@@ MF A4,E,SF )@@G@@A2 . EZ @C@@@@ AA A4,D,A2 . ESG )@@G@@Z + D @D@@@@ MF A4,R1 . EZZ + DZ @D@@@@SH )@@G@@ AA A4,C,A2 . EZZ + DZ + C @E@@@@ MF SI )@@G@@ A4,R1 . EZZZ + DZZ + CZ @E@@@@ AA SJ )@@G@@ A4,B,A2 . EZZZ + DZZ + CZ + B@F@@@@ MF A4,R1SK )@@G@@ . EZZZZ + DZZZ + CZZ + BZ @G@@@@ AA A4,A,SL )@@G@@A2 . EZZZZ + DZZZ + CZZ + BZ + A @H@@@@ DFP SM )@@G@@ A3,A4 . FIRST APPROXIMATION (Q1) IN A4,A5 @C@@@@ SN )@@G@@ DFD A0,A4 . ARG/Q1 @D@@@@ DFA A0,A4SO )@@G@@ . ARG/Q1 + Q1 @F@@@@ ANA A0,(0100,0) SP )@@G@@ . (1/2)*(ARG/Q1 + Q1) = Q2 @C@@@@ DL A4,R2 SQ )@@G@@ . ARG @C@@@@ DFD A4,A0 . ARG/Q2 @H@@@@SR )@@G@@ TG A0,A4 . TEST FOR FLOATING POINT ROUNDINSS )@@G@@G @^@@@@ J ROUND@F@@@@ DA A0,(01D) ST )@@G@@ . ROUND WHEN A4 GREATER @E@@@@ TOP A0,(040,0) SU )@@G@@ . ADDITION OVERFLOW? @C@@@@ AA A0,(040,0) SV )@@G@@ . YES @E@@@@RETURN TOP A4,(040,0) . ADDITION OVERSW )@@G@@FLOW? @C@@@@ AA A4,(040,0) . YES @D@@@@ SX )@@G@@ DFA A0,A4 . ARG/Q2 + Q2 @F@@@@ ANA SY )@@G@@ A0,(0100,0) . (1/2)*(ARG/Q2 + Q2) = Q3 @ @@@@BACK DL SZ )@@G@@ A3,A0. @ @@@@ J RTBACK . @D@#@@ZERO DJZ TA )@@G@@ A0,BACK . ARG = 0.0 @D@@@#ZEROX DJZ A0,BACK TB )@@G@@ . ARG = 0.0 @F@@@@ J NERRA$ . ATC )@@G@@RG < 0 OR UNNORMALIZED @F@@@@ROUND DA A4,(01D) . RTD )@@G@@OUND WHEN A4 NOT GREATER@ @@@@ J RETURN @^@]@@NAME TE )@@G@@ ' SQRT ' @A@@@]NAME INSERT 5,'SQR','T ' . @F@@@@A TF )@@G@@ + 0012273521505 . 0.22906994529/(8*SQRT(2))@E@@@@ TG )@@G@@ + 0016522123747 . 0.22906994529/8 @F@@@@B + TH )@@G@@ 0165562172450 . 1.3006690496/(4*SQRT(2)) @E@@@@ + TI )@@G@@ 0123174245456 . 1.3006690496/8 @G@@@@C - TJ )@@G@@ 0244465464430 . -0.90932104982/(2*SQRT(2)) @E@@@@ - TK )@@G@@ 0072144503525 . -0.90932104982/8 @F@@@@D + TL )@@G@@ 0265313040305 . 0.50104207633/SQRT(2) @E@@@@ + TM )@@G@@ 0040042113110 . 0.50104207633/8 @F@@@@E - 01277TN )@@G@@47535113 . -0.12146838249*SQRT(2) @I@@@@ - 00076TO )@@G@@14001010 . -0.12146838249/8 ADJUSTED THROUGH 1.0 @]@@@@ TP )@@G@@ END___IVE, NORMALIZED, FLOATING @#@@@@. POINT NUMBER. @[@@@@. TQ )@@G@@@^@@@@. FUNCTIONS REFERENCED@]@@@@. NONE @[@@@@. @^@@@@. ERTR )@@G@@ROR CONDITIONS @F@@@@*[@@@@*SDFF*@C@@@D. COPYRIGHT 1975 BY UNIVERSITS )@@G@@TY OF MARYLAND @[@@@D. @D@@@D. QUESTIONS CONCERNING THIS SHOULDTT )@@G@@ BE DIRECTED TO: @[@@@D. @ @@@D. MARVIN V. ZELKOWITZ @B@@@DTU )@@G@@. DEPARTMENT OF COMPUTER SCIENCE @A@@@D. UNIVERSITY OF MTV )@@G@@ARYLAND @B@@@D. COLLEGE PARK, MARYLAND 20742 @[@@@D. TW )@@G@@@G@@@D. PERMISSION TO USE THESE LISTINGS AND THE COMPUTER PROGRAMTX )@@G@@S THEY@E@@@D. REPRESENT IS GRANTED UNDER THE FOLLOWING CONDITIONS: TY )@@G@@@[@@@D. @G@@@D. 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS TZ )@@G@@REPRESENTED BY @G@@@D. THESE LISTINGS PROVIDED THAT THE NAME PLUM OUA )@@G@@R UNIVERSITY OF MARYLAND@E@@@D. PL/1 COMPILER REMAINS ASSOCIATED WITH UB )@@G@@THESE PROGRAMS. @[@@@D. @F@@@D. 2. MODIFICATIONS MAY BE MADUC )@@G@@E TO THE LISTINGS PROVIDED: @[@@@D. @G@@@D. (A) ANY RESULTIUD )@@G@@NG PROGRAM, OR REPORT, PAPER OR DOCUMENTATION @G@@@D. DESCRIBINUE )@@G@@G SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROGRAM @E@@@D. IS UF )@@G@@A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND @[@@@D. @G@@@D. UG )@@G@@ (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@DUH )@@G@@. OF ERRORS IN THE SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@DUI )@@G@@. A BRIEF DESCRIPTION OF THE FEATURE ADDED SHALL BE SUBMITTED UJ )@@G@@@C@@@D. TO THE UNIVERSITY OF MARYLAND, AND @[@@@D. @F@@@DUK )@@G@@. (C) NO PROGRAMS DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@DUL )@@G@@. WITHOUT WRITTEN APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND UM )@@G@@@[@@@D. @F@@@D. (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTUN )@@G@@ED TO OTHER @G@@@D. LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEUO )@@G@@ARLY INDICATE @G@@@D. WHETHER THE PROGRAMS ARE EXACT COPIES OUP )@@G@@F THE UNIVERSITY OF @E@@@D. MARYLAND PLUM COMPILER OR ARE MODUQ )@@G@@IFICATIONS TO IT. @[@@@D. @G@@@D. 3. THESE CONDITIONS ONLY APUR )@@G@@PLY TO THE PLUM COMPILER ITSELF, @F@@@D. AND ARE NOT MEANT TO APPLYUS )@@G@@ TO ANY PROGRAM WRITTEN USING PLUM. @E@@@D. THE PURPOSE OF THESE CONDIUT )@@G@@TIONS IS TO ALLOW ANY USER TO @F@@@D. EXPERIMENT WITH THE COMPILER AS UU )@@G@@LONG AS THE RESULTING PRODUCT @G@@@D. IS NOT SOLD AND AS LONG AS IT ISUV )@@G@@ KNOWN THAT THE PRODUCT DEVELOPED @#@@@D. FROM PLUM. @[@@@D. UW )@@G@@@[@@@D. @[@@@D. @[@@@D. @[@@@D. @[@@@D/. @[@@@ . UX )@@G@@@D@@@ . UNIVAC 1108 FORTRAN V LIBRARY@[@@@ . UY )@@G@@@D@@@ . NEXP9$ - DOUBLE PRECISION BASE TO INTEGER EXPONENT @[@@@ . UZ )@@G@@@]@@@ . USAGE @[@@@ . @^@@@ . FORTRAN V REFERENCE @G@@@ . A*VA )@@G@@*B, WHERE A IS THE (DOUBLE PRECISION) BASE AND B IS THE (INTEGER) @#@@@ VB )@@G@@. EXPONENT. @[@@@ . @A@@@ . ASSEMBLER LANGUAGE REFERENCE VC )@@G@@@ @@@ . A LMJ X11,NEXP9$ @D@@@ . A+1 + LOC(A) VD )@@G@@ . ADDRESS OF BASE @D@@@ . A+2 + LOC(B) . ADDRESS VE )@@G@@OF EXPONENT @C@@@ . A+3 + SEQNUM,PRGNAM . WALK BACK WORD@C@@@ VF )@@G@@. A+4 . NORMAL RETURN @[@@@ . @A@@@ . ARVG )@@G@@GUMENT AND FUNCTION RANGE @H@@@ . THE ARGUMENT A MUST BE A NORMALIVH )@@G@@ZED, DOUBLE PRECISION NUMBER AND B MUST BE@H@@@ . AN INTEGER SUCH THATVI )@@G@@ A**B .LE. 2.**1022-1. A AND B MUST NOT BOTH BE ZERO.@F@@@ . THE FUNCVJ )@@G@@TION RETURNS A NORMALIZED, DOUBLE PRECISION NUMBER. @[@@@ . @^@@@ VK )@@G@@. FUNCTIONS REFERENCED@]@@@ . NONE @[@@@ . @^@@@ . ERROR COVL )@@G@@NDITIONS @H@@@ . ERROR TERMINATION IS CAUSED WHEN THE BASE IS UNNORVM )@@G@@MALIZED OR WHEN BOTH A @H@@@ . AND B ARE ZERO. ERROR TERMINATION IS VN )@@G@@ALSO CAUSED IF THE FUNCTION VALUE @^@@@ . EXCEEDS 2.**1022-1. @[@@@ VO )@@G@@. @^@@@ . MATHEMATICAL METHOD @G@@@ . THE BASE IS TAKEN AS A FACVP )@@G@@TOR ABS(B) TIMES. IF B IS NEGATIVE, THE @G@@@ . RECIPROCAL IS COMPUTVQ )@@G@@ED. IF A**B < 10**(-308), ZERO IS RETURNED. @[@@@ . @#@@@ . PERVR )@@G@@FORMANCE @[@@@ . @]@@@ . ACCURACY@H@@@ . NO. OVS )@@G@@F MAX. REL. RMS REL. MAX. NO. FULL LENGTH @H@@@ . ARG.VT )@@G@@ ARG. ERROR ERROR ERRONEOUS ACCURACY @H@@@ VU )@@G@@. RANGE VALUES *10**(-17) *10**(-17) BITS (%VV )@@G@@) @H@@@ . -------------- ------ ----------- ------------ ----VW )@@G@@---- ----------- @H@@@ . A: (0.01,10) 3000 0.1862 0.06VX )@@G@@10 2 74.5 @#@@@ . B: (-100,100) @G@@@ . COMPARABVY )@@G@@LE ACCURACIES WERE OBTAINED FOR ARGUMENTS OUTSIDE THE ABOVE @#@@@ . INVZ )@@G@@TERVAL. @[@@@ . @]@@@ . TIMING @D@@@ . AVERAGE TIME = (43.3WA )@@G@@ + 21.5*K + 16.9*M) MICROSEC. @F@@@ . WHERE K IS THE MOST SIGNIFICANT WB )@@G@@BIT POSITION OF THE EXPONENT @G@@@ . AND M IS THE NUMBER OF 1 BITS INWC )@@G@@ THE ABSOLUTE VALUE OF THE EXPONENT.@D@@@ . ADD 20.3 MICROSEC. IF THE WD )@@G@@EXPONENT IS NEGATIVE. @[@@@ . @^@@@ . CORE REQUIREMENTS @A@@@ WE )@@G@@. NUMBER OF INSTRUCTIONS 81 @A@@@ . SIZE OF DATA AREA WF )@@G@@17 @A@@@ . TOTAL CORE REQUIREMENTS 98 @[@@@ . @#@@@ WG )@@G@@ AXR$ @#@@@ DCLRG . @]@@@ $(5) LIT@[@@@ $(3) @ @@@ WH )@@G@@REXFLT* RTSAVE NAME . @^@@@ L A0,A1@ @@@ WI )@@G@@ L A1,A2 . @B@@@ DL A10,(01766200000000000)WJ )@@G@@@G@@@ SZ A12 . ONE (70 BIT) IN A10,A11,WK )@@G@@A12 @F@@@ DLM A4,0,A0 . ABS(DP BASE) IN A4WL )@@G@@,A5 @H@@@ LR R1,0,A0 . 1ST WORD OF BASE FWM )@@G@@OR SIGN IN R1 @ @@@ LA A2,0,A1 @F@@@ SA WN )@@G@@ A2,SIGN . EXPONENT STORED IN SIGN @F@@@ LM WO )@@G@@ A9,A2 . ABS(INTEGER EXP) IN A9 @H@@@ LR WP )@@G@@ R3,A9 . ABS(EXP) FOR ODD-EVEN TEST IN R3 @A@@@ WQ )@@G@@ TEP A4,(0400040,0) @E@@@ J NX90 WR )@@G@@ . BASE UNEQUAL ZERO @ @@@ DJZ A4,$+2 @E@@@ WS )@@G@@ J NERRA$ . BASE UNNORMALIZED @E@@@ WT )@@G@@ JZ A9,NERRB$ . BASE AND EXP ZERO @^@@@ NX90 DFUWU )@@G@@ A0,A4@^@@@ LDSC A1,11@^@@@ SSC A2,1 WV )@@G@@@G@@@ ANA,U A0,02000 . BASE (70 BIT) IN A0,A1,AWW )@@G@@2 @ @@@ NX91 JNB A9,NX92 @ @@@ LA A5,A1WX )@@G@@1 @ @@@ LA A7,A12 @ @@@ LA A3,A1WY )@@G@@1 @^@@@ MI A5,A2@^@@@ MI A7,A1@^@@@ WZ )@@G@@ DA A7,A5@^@@@ MF A3,A1@^@@@ DSAXA )@@G@@ A7,34@^@@@ DA A7,A3@ @@@ DLSC A11,AXB )@@G@@7 @ @@@ AA A10,A0 @ @@@ ANA A10,AXC )@@G@@13 @^@@@ SSL A12,1@^@@@ NX92 SSL A9,1 @ @@@ XD )@@G@@ JZ A9,NX93 @^@@@ LA A5,A1@^@@@ XE )@@G@@ LA A7,A2@^@@@ LA A3,A1@^@@@ MI XF )@@G@@ A5,A2@^@@@ MI A7,A1@^@@@ DA A7,A5@^@@@ XG )@@G@@ MF A3,A1@^@@@ DSA A7,34@^@@@ DA XH )@@G@@ A7,A3@^@@@ DLSC A1,A7@^@@@ AA A0,A0XI )@@G@@@^@@@ ANA A0,A3@^@@@ SSL A2,1 @^@@@ XJ )@@G@@ J NX91 @^@@@ NX93 LSSL A12,1@A@@@ DA XK )@@G@@ A11,(02000D) @ @@@ DSL A11,11 @ @@@ AA,XL )@@G@@U A10,11 @ @@@ NX94 TG,U A10,03777 @D@@@ J XM )@@G@@ NERRC$ . OVERFLOW @E@C@ JN A10,ZERO XN )@@G@@ . UNDERFLOW OR OVERFLOW @E@@@C JN A10,ZEROXX XO )@@G@@ . UNDERFLOW OR OVERFLOW@ @@@ DFP A10,A11 @ @@@ XP )@@G@@ DL A0,A11 @E@@@ TN R1 XQ )@@G@@ . BASE NEGATIVE @C@@@ J NX95 . XR )@@G@@NO @^@@@ LA A4,R3@ @@@ JNB A4,NX95 XS )@@G@@@^@@@ DLN A0,A0@^@@@ NX95 TN SIGN @^@B@ XT )@@G@@ J OUT @^@@@B J OUTT @ @@@ DL XU )@@G@@ A11,A0 @ @@@ DL A0,(1.0D) @G@@@ DFD XV )@@G@@ A0,A11 . NEGATIVE EXP , TAKE RECIPROCAL @E@B@ OUT DS XW )@@G@@ A0,A3 . RETURN RESULT IN A3-A4 @E@@@BOUTT DS XX )@@G@@ A0,A3 . RETURN RESULT IN A3-A4 @ @@@ J RTBACXY )@@G@@K @^@C@ ZERO DSL A0,72 @^@@@CZEROXX DSL A0,72 @^@@@ XZ )@@G@@ TN SIGN @C@B@ J OUT . UNDERYA )@@G@@FLOW @C@@@B J OUTT . UNDERFLOW @C@@@ YB )@@G@@ J NERRC$ . OVERFLOW @A@@@ NAME INSERT 5,'F**'YC )@@G@@,'I ' . @ @@@ SIGN EQU DRTARG1+1 . @]@@@ END___ANGYD )@@G@@E @H@@@ . THE ARGUMENT A MUST BE A NORMALIZED, DOUBLE PRECISION NUYE )@@G@@*[S@@@*SDFF*@C@@@N. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@NYF )@@G@@. @D@@@N. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@NYG )@@G@@. @ @@@N. MARVIN V. ZELKOWITZ @B@@@N. DEPARTMENT OF CYH )@@G@@OMPUTER SCIENCE @A@@@N. UNIVERSITY OF MARYLAND @B@@@N. YI )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@N. @G@@@N. PERMISSIOYJ )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@N. REPRESENYK )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@N. @G@@@N. YL )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@NYM )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDYN )@@G@@@E@@@N. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@NYO )@@G@@. @F@@@N. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDYP )@@G@@ED: @[@@@N. @G@@@N. (A) ANY RESULTING PROGRAM, OR REPORT, PYQ )@@G@@APER OR DOCUMENTATION @G@@@N. DESCRIBING SUCH PROGRAM WILL CLEAYR )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@N. IS A DIALECT OF PLUM OR IS YS )@@G@@DERIVED FROM PLUM, AND @[@@@N. @G@@@N. (B) ALL SUCH MODIFICAYT )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@N. OF ERRORS IN THYU )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@N. A BRIEF DESCRIPYV )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@N. TO THE UNYW )@@G@@IVERSITY OF MARYLAND, AND @[@@@N. @F@@@N. (C) NO PROGRAMSYX )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@N. WITHOUT WRITTENYY )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@N. @F@@@N. YZ )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@N. ZA )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@NZB )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF ZC )@@G@@@E@@@N. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@NZD )@@G@@. @G@@@N. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERZE )@@G@@ ITSELF, @F@@@N. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN ZF )@@G@@USING PLUM. @E@@@N. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USZG )@@G@@ER TO @F@@@N. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRZH )@@G@@ODUCT @G@@@N. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT ZI )@@G@@DEVELOPED @#@@@N. FROM PLUM. @[@@@N. @[@@@N. @[@@@N. ZJ )@@G@@@[@@@N. @[@@@N. @[@@@N/. @#@@@M/ AXR$ . @#@@@M ZK )@@G@@ DCLRG . @]@@@M@ADD PLTVDS @]@@@M@ADD EXCDS @#@@@M PLWORD ZL )@@G@@@#@@@N PLAR @^@@@MHIST CSECT 3 . @B@@@MPLDUMP* LOZM )@@G@@CAL . ENTRY @F@@@M IF 040,OFF,DGOPT3 TZN )@@G@@HEN,PLDA . -> NO LABEL LIST @ @@@M LINK HILBL . @#@@@MZO )@@G@@PLDA LABEL . @F@N@M IF 0200,OFF,DGOPT3 THEN, PLDB .ZP )@@G@@ -> NO HISTOGRAM @F@@@N IF 0200,OFF,DGOPT3 THEN,PLDB . ZQ )@@G@@-> NO HISTOGRAM @^@@@M LINK HIENTR . @#@@@MPLDB LABEL . ZR )@@G@@@G@@@N IF 020,OFF,DGOPT3 THEN,PLDCX . -> NO STMT STATIC LANG ZS )@@G@@ANAL @^@@@N LINK EXSRDT . @#@@@NPLDCX LABEL . @#@@@M ZT )@@G@@ JMP . @^@@@M/ . HISTOGRAMS @[@@@M. @C@@@M. EXZU )@@G@@ECUTION ROUTINE TO PRODUCE CHARTS @[@@@M. @E@@@MEXHIST* LLOC . ZV )@@G@@ EXECUTION HISTOGRAMS @D@@@M LOAD A3,RZW )@@G@@11 . STATEMENT NUMBER @C@@@M LA,H2 A4,DRSTMT-1,A3 .ZX )@@G@@ UP COUNT @ @@@M ADD A4,1,I . @A@@@M SA,H2 ZY )@@G@@ A4,DRSTMT-1,A3 .@B@@@M LJMP . RETURN @[@@@MZZ )@@G@@. @[@@@M. @[@@@M. @[@@@M. @[@@@M. @#@@@MHIENTR LOAA )@@G@@CAL . @D@@@M LOAD A11,0,I . FIND MAX COUNT @A@@@MAB )@@G@@ LOAD X3,DHSCAN . @A@@@M SETL A9,DHSTMT AC )@@G@@. @#@@@MHILP1 LABEL . @A@@@M LOAD A8,W1H2,*X3 . AD )@@G@@@B@@@M IF A8,LT,A11 THEN,HILP2 @C@@@M LOAD AE )@@G@@ A11,A8 . NEW MAX. @#@@@MHILP2 LABEL . @ @@@M LOAF )@@G@@OP A9,HILP1 .@D@N@M LOAD X4,0,I . FIND SHIFT FAAG )@@G@@CTOR @#@N@MHILP4 LABEL . @D@N@M IF A11,LT,18,I THENAH )@@G@@,HILP3 . ->SCALED @C@N@M SRB A11,1 . SCALE NUMBER AI )@@G@@@ @N@M ADD X4,1,I . @D@N@M GOTO HILP4 . AJ )@@G@@ ->SCALE SOME MORE @D@@@N LOAD X4,1,I . GET DIVAK )@@G@@IDE FACTOR @E@@@N IF A11,LT,17,I THEN,HILP3 . -> NO DAL )@@G@@IVIDE @D@@@N ADD A11,15,I . ROUND UPWARDS @C@@@NAM )@@G@@ SRB A11,4 . SCALE FACTOR@ @@@N LOAD AN )@@G@@ X4,A11 . @#@@@MHILP3 LABEL . @E@@@M LOAD A14,3,I . AO )@@G@@ ASSUME BATCH 4 COL/PAGE @E@@@M IF 040,OFF,DGOPT3 TAP )@@G@@HEN,HILP5 . -> BATCH @D@@@M LOAD A14,1,I . ->DEMANAQ )@@G@@D 2 COL/PAGE@#@@@MHILP5 LABEL . @ @@@M LOAD A8,A14 AR )@@G@@@D@@@N ADD A8,1,I . NUMBER PER LINE@C@@@M AS )@@G@@ MPYS A8,50,I . NUMBER/PAGE @A@@@M LOAD A15,AT )@@G@@DHSTMT . @D@@@M SUB A15,1,I . FLOOR(NUM-1/PAGE) AU )@@G@@@ @@@M SRBD A15,36 . @C@@@M DI A15,A8 . AV )@@G@@ NUM PAGES-1 @D@@@M LOAD A11,1,I . NEXT STMT NUMAW )@@G@@. @E@@@M IF A14,NE,1,I THEN,HIPGLP . -> NOT DEMAND AX )@@G@@@B@@@M LOAD A15,0,I . 1PAGE @#@@@MHIPGLP LABEL . AY )@@G@@@D@@@M SETL A13,50,I . ASSUME FULL PAGE @ @@@M AZ )@@G@@ LOAD A10,50,I .@E@N@M IF A15,NE,0,I THEN,HIPGLPBA )@@G@@2 . ->FULL PAGE @E@@@N IF A15,NE,0,I THEN,HIPGLP2 . -BB )@@G@@>FULL PAGE @D@@@M LOAD A10,DHSTMT . NUM STMTS BC )@@G@@@E@@@M SUB A10,A11 . NUM REMAINING-1 @E@@@MBD )@@G@@ ADD A10,2,I . NUM REMAINING+1 @E@@@N BE )@@G@@ IF A14,EQ,1,I THEN,HIPGLP4 . -> TERMINAL @E@@@N ADDBF )@@G@@ A10,2,I . NUM REMAINING+3 @E@N@M IF BG )@@G@@ 040,ON,DGOPT3 THEN,HIPGLP4 . -> TERMINAL@E@N@M ADD A10,BH )@@G@@2,I . NUM REMAINING+3 @B@N@MHIPGLP4 SRB A10,1 . BI )@@G@@ /2@B@@@NHIPGLP4 SRB A10,1 . /2@D@@@N BJ )@@G@@ IF A14,EQ,1,I THEN,HIPGLP5 . ->TERMINAL @^@@@N SRB A1BK )@@G@@0,1 . @C@N@M IF 040,ON,DGOPT3 THEN,HIPGLP5 .@ @N@M BL )@@G@@ SRB A10,1 . @C@@@MHIPGLP5 LOAD A13,A10 . COBM )@@G@@UNT @ @@@M SETL A13 . @#@@@MHIPGLP2 LABEL . @D@N@MBN )@@G@@ MOVE DGOLIN,HHDR,4 . PRINT HEADER @D@@@N MOBO )@@G@@VE DGOLIN,HHDR,12 . PRINT HEADER @D@@@N CVE X4,RBP )@@G@@ . PRINT SCALE FACTOR @ @@@N STORE A4,DGOLIN+8 . @^@@@MBQ )@@G@@ LOAD X2,63,I .@F@N@M IF 040,OFF,DGOPT3 THEN,HIPGLP1BR )@@G@@7 . -> NOT TERMINAL @E@@@N IF A14,NE,1,I THEN,HIPGLP17 . BS )@@G@@-> NOT TERMINAL @C@@@M LOAD X2,1,I . TERMINAL SKIP BT )@@G@@@#@@@MHIPGLP17 LABEL . @A@@@M LOADA X1,DGOLIN . @ @@@MBU )@@G@@ LINK GOPRNT . @#@@@MHIPGLP3 LABEL . @ @@@M LOBV )@@G@@AD A12,A14 .@ @@@M LOAD X7,A11 . @E@@@M SUBW )@@G@@B X7,A10 . STMT NUM AT LEFT @A@@@M LOAD BX )@@G@@ X3,DHLINE . @#@@@MHILNLP LABEL . @D@@@M ADD X7,ABY )@@G@@10 . NEXT STMT NUMBER . @B@N@M CVE X7,DHTEMP . CBZ )@@G@@ONVERT@B@@@N CVE X7,R . CONVERT @ @@@N STOCA )@@G@@RE A4,0,X3 . @B@N@M LOAD A7,DHTEMP+1 . BBBNNN @B@N@MCB )@@G@@ SSC A7,30 . BBNNNB @A@N@M LOADA X5,DCC )@@G@@HSTRT . @B@@@M LOAD X6,DHSTRT-1+FH2,X7 . @B@N@M CD )@@G@@ CVE X6,DHTEMP . BBBCCC @A@@@N CVE X6,R . CE )@@G@@BBBCCC@A@N@M LOAD A8,DHTEMP+1 . @C@N@M DSC CF )@@G@@ A7,66 . BNNNB BBBCCCB@ @N@M STORED A7,0,X3 . @A@N@MCG )@@G@@ LOADD A8,KBLANK . @ @@@N STORED A3,1,X3 . CH )@@G@@@ @N@M LOAD A3,X6 . @ @@@N LOAD A4,X6 . CI )@@G@@@D@@@N LOAD A3,0,I . GET SCALED NUMBER @ @@@N CJ )@@G@@ DI A3,X4 . @E@@@N SLB A3,1 . 2 TIMES NCK )@@G@@O. OF *'S NEEDED @E@N@M SRB A3,0,X4 . SCALE NCL )@@G@@UMBER OF *'S@A@N@M LOAD A7,DKSTAR . @A@@@N LOCM )@@G@@ADD A7,DKSTAR . @B@N@M IF A3,GE,7,I THEN,HIDOT1 CN )@@G@@@C@@@N IF A3,GE,2*9,I THEN,HIDOT1 @C@N@M LOCO )@@G@@AD A7,DKSTR1,A3 . SET 0-6 *'S @C@@@N LOADD A7,DKSTR1,CP )@@G@@A3 . SET 0-8 *'S @ @@@N STORED A7,4,X3 . @A@@@N LOACQ )@@G@@DD A7,KBLANK . @ @@@M GOTO HIDN . @#@@@MHIDOT1CR )@@G@@ LABEL . @ @N@M SUB A3,6,I . @ @@@N SUB CS )@@G@@ A3,2*8,I .@C@N@M LOAD A8,DKSTAR . *'S 7-12 @D@N@MCT )@@G@@ IF A3,GE,7,I THEN,HIDOT2 . -> >12 *'S@C@@@N STOCU )@@G@@RED A7,4,X3 . SET 8 *'S @A@N@M LOAD A8,DKSTR1,CV )@@G@@A3 . @A@@@N LOADD A7,DKSTR1,A3 . @^@N@M GOTO CW )@@G@@ HIDN@#@N@MHIDOT2 LABEL . @ @N@M SUB A3,6,I . @C@N@MCX )@@G@@ LOAD A9,DKSTR1,A3 . CHAR 13-18 @#@@@MHIDN LABEL . CY )@@G@@@ @N@M STORED A7,2,X3 . @ @@@N STORED A7,6,*X3 .CZ )@@G@@@ @N@M STORE A9,4,*X3 .@D@@@M LOOP A12,HILNLPDA )@@G@@ . -> FIELDS/LINE @C@@@M LOADA X1,DGOLIN PRINT LDB )@@G@@INE @ @@@M LINK GOPRTL . @ @@@M ADD A11,DC )@@G@@1,I . @C@@@M LOOP A13,HIPGLP3 . ->DO PAGE @ @@@M DD )@@G@@ LOAD A11,X7 . @C@@@M ADD A11,1,I . NEXT PADE )@@G@@GE REF@C@@@M LOOP A15,HIPGLP . -> NEXT PAGE @C@@@M DF )@@G@@ JMP . ->RETURN @[@@@M. @[@@@M. @[@@@MDG )@@G@@. @#@@@M. EXTRAC @[@@@M. @[@@@M. @#@@@MEXTRAC* LLODH )@@G@@C . @#@@@NEXPFLW* LLOC . @E@@@M IF 01,OFF,DGOPT3 THEN,LJDI )@@G@@MP . ->NO FLOWTRACE @#@@@M LOCAL . @^@Q@M STORE X1,DJ )@@G@@DEXSV @^@@@Q STORE X1,DEXSV @ @Q@M STORE X2,DEXSV+1 DK )@@G@@@ @@@Q STORE X2,DEXSV+1 @ @Q@M STORE X3,DEXSV+2 DL )@@G@@@ @@@Q STORE X3,DEXSV+2 @ @Q@M STORED A7,DEXSV+3 DM )@@G@@@ @@@Q STORED A7,DEXSV+3 @D@@@M CVE R11,R . DN )@@G@@GET STATEMENT NUMBER @B@@@N LA A3,EXTRCN . > >@B@N@M STORE A4,DP )@@G@@DGOLIN . PRINT IT @B@@@N STORED A3,DGOLIN . PRINT IT DQ )@@G@@@ @@@M LOADA X1,DGOLIN . @^@@@M LINK GOPRTL . @^@Q@MDR )@@G@@ LOAD X1,DEXSV @^@@@Q LOAD X1,DEXSV @ @Q@M LOADS )@@G@@D X2,DEXSV+1 @ @@@Q LOAD X2,DEXSV+1 @ @Q@M LOADT )@@G@@D X3,DEXSV+2 @ @@@Q LOAD X3,DEXSV+2 @ @Q@M LOADU )@@G@@DD A7,DEXSV+3 @ @@@Q LOADD A7,DEXSV+3 @#@@@M JMPDV )@@G@@ . @#@@@NEXTRCN +' >NULL BRANCH @D@N@M CVE EY )@@G@@ A13,DHTEMP . FIELDATA LABEL@D@@@N CVE A13,R . EZ )@@G@@ FIELDATA LABEL @C@N@M LOAD A8,DHTEMP+1 . BBFA )@@G@@BNNN @C@N@M SLB A8,12 . BNNN@@ @C@N@M FB )@@G@@ ADD A8,' -',I . BNNNB- @C@N@M SSC A8,6FC )@@G@@ . -BNNNB @ @N@M STORE A8,0,*X4 .@ @@@N FD )@@G@@ STORE A4,0,*X4 .@#@@@MHILBLA LABEL . @F@@@M LOOP FE )@@G@@ A14,HILBLB . POINT TO HEAD OF BUFFER @A@@@M LOADXM FF )@@G@@ X3,DEXGOS+FU . @E@@@M LOAD A14,999,I . SET INFIFG )@@G@@NITE COUNT @#@@@MHILBLB LABEL . @E@@@M LOOP A15,HILBLCFH )@@G@@ . LOOP FOR ALL LABELS @D@@@M LOADA X1,DGOLIN . FI )@@G@@ PRINT LINE @ @@@M LINK GOPRTL . @C@@@M JMFJ )@@G@@P . ->RETURN @[@@@M. @[@@@M. @[@@@M. FK )@@G@@@C@@@M/. FLOW, NOFLOW AND SIGNAL STATEMENT @#@@@MEXFLOW* LLFL )@@G@@OC . @ @@@M LOAD A3,0,X11 . @^@@@M J *$,A3 . FM )@@G@@@^@@@M +EXFLW . 1@ @@@M +EXNFLW . 2 @ @@@MFN )@@G@@ +EXSIGN . 3 @C@@@N +EXFLWP . 4 FLOW FO )@@G@@TRACE ON @C@@@N +EXNFLWP . 5 NOFLOW TRACE @C@@@MFP )@@G@@EXFLW LABEL . FLOW STATEMENT @ @@@M SET 1,OFQ )@@G@@N,DGOPT3 . @#@@@M LJMP 1 .@#@@@MEXNFLW LABEL . @ @@@M FR )@@G@@ SET 1,OFF,DGOPT3 . @#@@@M LJMP 1 .@ @@@MEXSIGN STORE X11FS )@@G@@,DEXSGN . @D@@@M EXERR EXERSIGN,I LEVEL,1 . SIGNAL ERROR FT )@@G@@@ @@@M LOAD X11,DEXSGN . @^@@@M GOTO 1,X11 . @[@@@NFU )@@G@@. @B@@@NEXFLWP LABEL . FLOW PWOC @ @@@N SETFV )@@G@@ 2,ON,DGOPT3 . @#@@@N LJMP 1 . @B@@@NEXNFLWP LABEL . FW )@@G@@ NOFLOW PROC@ @@@N SET 2,OFF,DGOPT3 . @#@@@N LJMFX )@@G@@P 1 . @#@@@M/. DATA @ @Q@MDHTEMP EQU DEXSVE . @ @@@QFY )@@G@@DHTEMP EQU DEXSVE . @C@N@MDHLINE SAC +5,DGOLIN-(IN 63FZ )@@G@@,0,1,0) @C@@@NDHLINE SAC +8,DGOLIN-(IN 63,0,1,0) @C@@@MGA )@@G@@DHLINX SAC +1,DGOLIN-(IN 63,0,1,0) @ @@@MDHSCAN SAC GB )@@G@@ +1,DRSTMT @^@@@MDHGOTO SFW 0 @^@@@M 'GOTO HISTORY'GC )@@G@@@^@@@MHHDR SFW 0 @A@N@M 'EXECUTION HISTOGRAMS 'GD )@@G@@@E@@@N 'EXECUTION HISTOGRAMS EACH * = EXECUTIONS '@^@@@MGE )@@G@@DKSTR1 SFW 0 @#@N@M ' '@#@N@M '* 'GF )@@G@@@#@N@M '** '@#@N@M '*** '@#@N@M '**** 'GG )@@G@@@#@N@M '***** '@^@@@N ' ' @^@@@N '* GH )@@G@@ ' @^@@@N '** ' @^@@@N '*** ' GI )@@G@@@^@@@N '**** ' @^@@@N '***** ' @^@@@N GJ )@@G@@ '****** ' @^@@@N '******* ' @#@@@NDKSTAR SFW 0 .GK )@@G@@@^@@@N '********' @ @N@MDKSTAR SF '******' @#@@@MGL )@@G@@ CEND @A@@@MEXERSIGN EQU 86 . SIGNAL MSG @F@@@NERPRFLGM )@@G@@ EQU 1 . @G@@@NERRTFLGN )@@G@@ EQU 2 . @#@@@MGO )@@G@@ END ___X1,DEXSV @ @Q@M LOAD X2,DEXSV+1 @ @@@QGP )@@G@@ LOAD X2,DEXSV+*[S@@@*SDFF*@C@@@K. COPYRIGHT 1975 BY UNIVERSIGQ )@@G@@TY OF MARYLAND @[@@@K. @D@@@K. QUESTIONS CONCERNING THIS SHOULDGR )@@G@@ BE DIRECTED TO: @[@@@K. @ @@@K. MARVIN V. ZELKOWITZ @B@@@KGS )@@G@@. DEPARTMENT OF COMPUTER SCIENCE @A@@@K. UNIVERSITY OF MGT )@@G@@ARYLAND @B@@@K. COLLEGE PARK, MARYLAND 20742 @[@@@K. GU )@@G@@@G@@@K. PERMISSION TO USE THESE LISTINGS AND THE COMPUTER PROGRAMGV )@@G@@S THEY@E@@@K. REPRESENT IS GRANTED UNDER THE FOLLOWING CONDITIONS: GW )@@G@@@[@@@K. @G@@@K. 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS GX )@@G@@REPRESENTED BY @G@@@K. THESE LISTINGS PROVIDED THAT THE NAME PLUM OGY )@@G@@R UNIVERSITY OF MARYLAND@E@@@K. PL/1 COMPILER REMAINS ASSOCIATED WITH GZ )@@G@@THESE PROGRAMS. @[@@@K. @F@@@K. 2. MODIFICATIONS MAY BE MADHA )@@G@@E TO THE LISTINGS PROVIDED: @[@@@K. @G@@@K. (A) ANY RESULTIHB )@@G@@NG PROGRAM, OR REPORT, PAPER OR DOCUMENTATION @G@@@K. DESCRIBINHC )@@G@@G SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROGRAM @E@@@K. IS HD )@@G@@A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND @[@@@K. @G@@@K. HE )@@G@@ (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@KHF )@@G@@. OF ERRORS IN THE SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@KHG )@@G@@. A BRIEF DESCRIPTION OF THE FEATURE ADDED SHALL BE SUBMITTED HH )@@G@@@C@@@K. TO THE UNIVERSITY OF MARYLAND, AND @[@@@K. @F@@@KHI )@@G@@. (C) NO PROGRAMS DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@KHJ )@@G@@. WITHOUT WRITTEN APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND HK )@@G@@@[@@@K. @F@@@K. (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTHL )@@G@@ED TO OTHER @G@@@K. LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEHM )@@G@@ARLY INDICATE @G@@@K. WHETHER THE PROGRAMS ARE EXACT COPIES OHN )@@G@@F THE UNIVERSITY OF @E@@@K. MARYLAND PLUM COMPILER OR ARE MODHO )@@G@@IFICATIONS TO IT. @[@@@K. @G@@@K. 3. THESE CONDITIONS ONLY APHP )@@G@@PLY TO THE PLUM COMPILER ITSELF, @F@@@K. AND ARE NOT MEANT TO APPLYHQ )@@G@@ TO ANY PROGRAM WRITTEN USING PLUM. @E@@@K. THE PURPOSE OF THESE CONDIHR )@@G@@TIONS IS TO ALLOW ANY USER TO @F@@@K. EXPERIMENT WITH THE COMPILER AS HS )@@G@@LONG AS THE RESULTING PRODUCT @G@@@K. IS NOT SOLD AND AS LONG AS IT ISHT )@@G@@ KNOWN THAT THE PRODUCT DEVELOPED @#@@@K. FROM PLUM. @[@@@K. HU )@@G@@@[@@@K. @[@@@K. @[@@@K. @[@@@K. @[@@@K/. @#@@@I HV )@@G@@ AXR$ . @#@@@I DCLRG . @#@@@I PLWORD @#@@@I HW )@@G@@ PLAC @#@@@I PLSD @]@@@I@ADD PLTVDS @#@@@IEXMT CSEHX )@@G@@CT 3 .@B@@@I/ . EXECUTION DATA GATHERING ROUTINE @[@@@I. @[@@@IHY )@@G@@. @[@@@I. @^@@@IMETCAL* PROC *1,2 . @B@@@I LX,U X5,HZ )@@G@@DSREXL+METCAL(1,1)-1 . @^@@@I J METCMN . @#@@@I ENDIA )@@G@@ . @^@@@IMETTBL* PROC *1 . @B@@@IK DO METTBL(1,1) , MIB )@@G@@ETCAL K @#@@@I END . @[@@@I. @[@@@I. @[@@@I. IC )@@G@@@#@@@IEXMETR* LLOC . @B@@@I METTBL DSRSTL . GENERATE TABLES ID )@@G@@@#@@@IMETCMN LABEL . @^@@@I LA,H2 A3,0,X5 .@^@@@I ADDIE )@@G@@ A3,1,I . @^@@@I SA,H2 A3,0,X5 .@^@@@I J EXHIST . IF )@@G@@@B@@@I/ . PRINT OUT GATHERED STATISTICS @[@@@I. @[@@@I. IG )@@G@@@#@@@IEXSRDT* LOCAL . @E@@@I LOAD A12,0,I . CLEAR CIH )@@G@@OMPILE STMT COUNTS@F@@@I LOAD A15,0,I . CLEAR EXECUTIII )@@G@@ON STMT COUNTS @E@@@I SETL A13,DSRSTL,I . NUMBER OF STMIJ )@@G@@TS TYPES @C@@@I LXM,U X5,DSRCGL . START OF LIST@^@@@IIK )@@G@@ LXI,U X5,1 . @#@@@IMETLP1 LABEL . @E@@@I ADD A12IL )@@G@@,W1H2,X5 . ADD STATIC STMT COUNT @G@@@I ADD A15,W1H2+IM )@@G@@DSRSTL,*X5 . EXECUTION COUNTS @E@@@I LOOP A13IN )@@G@@,METLP1 . ->LOOP FOR ALL STMT TYPES@D@@@J STORE A15,A15+1IO )@@G@@ . SAVE STMT COUNT @B@J@I MOVE DGOLIN,METLN1,6 . HIP )@@G@@EADING@B@@@J MOVE DGOLIN,METLN1,8 . HEADING@ @@@I LOAIQ )@@G@@DA X1,DGOLIN . @^@@@I LOAD X2,4,I . @E@@@I LINK GOPIR )@@G@@RNT . 'STATIC LANG ANALYSIS' @A@J@I MOVE DGOLIN,MEIS )@@G@@TLN2,12 . @A@@@J MOVE DGOLIN,METLN2,17 . @ @@@I LOAIT )@@G@@D A7,DSRCMT . @^@@@I CVE A7,R . @D@J@I STORE A4,IU )@@G@@DGOLIN+2 . NUMBER OF COMMENTS @D@@@J STORE A4,DGOLIN+3 . IV )@@G@@ NUMBER OF COMMENTS @^@@@I CVE A12,R . @D@J@I STOIW )@@G@@RE A4,DGOLIN+6 . COMPILE STATEMENTS @D@@@J STORE A4,DGOLINIX )@@G@@+8 . COMPILE STATEMENTS @^@@@I CVE A15,R . @^@@@J IY )@@G@@ LDSC A3,18 . @E@J@I STORE A4,DGOLIN+11 . EXECUTION STAIZ )@@G@@TEMENTS @E@@@J STORED A3,DGOLIN+15 . EXECUTION STATEMENJA )@@G@@TS @ @@@I LOADA X1,DGOLIN . @^@@@I LOAD X2,3,I . JB )@@G@@@^@@@I LINK GOPRNT . @A@J@I MOVE DGOLIN+1,METLN3,5 . JC )@@G@@@A@@@J MOVE DGOLIN+2,METLN3,7 . @ @@@I LOADA X1,DGOLINJD )@@G@@ . @^@@@I LOAD X2,2,I . @D@@@I LINK GOPRNT . JE )@@G@@ 'COMPILE EXECUTION'@ @J@I MOVE DGOLIN,METLN4,6@ @@@J JF )@@G@@ MOVE DGOLIN,METLN4,9@ @@@I LOADA X1,DGOLIN . @E@@@I JG )@@G@@ LINK GOPRTL . 'NUMBER % NUMBER %' @E@@@I SETJH )@@G@@L A13,DSRSTL,I . PRINT OUT EACH COUNT @ @@@I LXM,U X5,JI )@@G@@DSRCGL . @D@@@I LXM,U X6,METSTM . FIELDATA NAMES JJ )@@G@@@^@J@I LXI,U X6,1 . @^@@@J LXI,U X6,2 . @E@@@IMETLP2JK )@@G@@ LABEL . EACH LINE BEGINS HERE @C@@@I SETJL )@@G@@L A11,2,I . 2 FIELDS/LINE@C@@@I LOAD X7,0,I . JM )@@G@@ 0 THEN 3 @^@@@I LOAD X8,0,I . @E@J@I LA A3,JN )@@G@@0,*X6 . GET FIELDATA STMT NAME @E@@@J LOADD A3,0,*X6JO )@@G@@ . GET FIELDATA STMT NAME @ @J@I STORE A3,DGOLIN . JP )@@G@@@ @@@J STORED A3,DGOLIN . @#@@@IMETLP3 LABEL . @^@@@I JQ )@@G@@ LOAD A3,X5 . @E@@@I ADD A3,X8 . POINT TO PROPJR )@@G@@ER COUNT @ @@@I LOAD A8,W1H2,A3 . @^@@@I CVE A8,JS )@@G@@R . @^@@@J LDSC A3,18 . @C@J@I SA A4,DGOLIN+1-(INJT )@@G@@ 63,0,1,0),X7 . @C@@@J DS A3,DGOLIN+2-(IN 63,0,1,0),X7 . JU )@@G@@@C@@@I MI,U A8,1000 . GET PERCENT @ @@@I DI JV )@@G@@ A8,A12,X7 . @^@@@I CVE A8,R . @C@J@I SLBD A3,JW )@@G@@30 . XXXXXX X00000@C@@@J SLBD A3,27 . XJX )@@G@@XXXXX X00000@C@J@I SLB A3,6 . XXXXX0 X00000@C@@@JJY )@@G@@ SLB A3,9 . XXXXX0 X00000@C@@@I ADD A3,JZ )@@G@@'.',I . XXXXX. X00000@B@J@I SRBD A3,30 . XKA )@@G@@XXX.X @B@@@J SRBD A3,27 . XXXX.X @C@J@I SA KB )@@G@@ A4,DGOLIN+2-(IN 63,0,1,0),X7 . @C@@@J SA A4,DGOLIN+4-(INKC )@@G@@ 63,0,1,0),X7 . @ @@@I ADD X8,DSRSTL,I . @^@J@I ADDKD )@@G@@ X7,3,I . @^@@@J ADD X7,4,I . @ @@@I LOOP A11,METLPKE )@@G@@3 . @ @@@I LOADA X1,DGOLIN . @^@@@I LINK GOPRTL . KF )@@G@@@^@@@I ADD X5,1,I . @ @@@I LOOP A13,METLP2 . @#@@@IKG )@@G@@ JMP . @^@@@I/ . DATA STORAGE @#@@@IMETLN1 SFW 0 .KH )@@G@@@C@J@I 'STATIC/DYNAMIC STATEMENT COUNTS ' @C@@@J 'STKI )@@G@@ATIC/DYNAMIC STATEMENT COUNTS ' @#@@@IMETLN2 SFW 0 .@H@J@I ' COKJ )@@G@@MMENTS =XXXXXX STATEMENTS =XXXXXX EXECUTED STATEMENTS =XXXXXX' KK )@@G@@@G@@@J ' COMMENTS =XXXX STATEMENTS =XXXX EXECUTED STATEMENTS =XXXXKL )@@G@@ ' @#@@@IMETLN3 SFW 0 .@B@J@I 'COMPILATION EXECUTIOKM )@@G@@N ' @B@@@J ' COMPILATION EXECUTION ' @#@@@IMETLN4 SFWKN )@@G@@ 0 .@C@J@I 'TYPE COUNT % COUNT % ' @C@@@J KO )@@G@@ 'TYPE COUNT % COUNT %' @#@@@IMETSTM LABEL . @#@J@IKP )@@G@@ 'BEGIN ' @^@@@J 'BEGIN ' @#@J@I 'CALL ' KQ )@@G@@@^@@@J 'CALL ' @#@J@I 'CLOSE ' @^@@@J 'CLKR )@@G@@OSE ' @#@J@I 'DCL ' @^@@@J 'DECLARE ' @#@J@IKS )@@G@@ 'END ' @^@@@J 'END ' @#@J@I 'ENTRY ' KT )@@G@@@^@@@J 'ENTRY ' @#@J@I 'FORMAT' @^@@@J 'FOKU )@@G@@RMAT ' @#@J@I 'GET ' @^@@@J 'GET ' @#@J@IKV )@@G@@ 'GOTO ' @^@@@J 'GOTO ' @#@J@I 'IF ' KW )@@G@@@^@@@J 'IF ' @#@J@I 'OPEN ' @^@@@J 'OPKX )@@G@@EN ' @#@J@I 'PROC ' @^@@@J 'PROC ' @#@J@IKY )@@G@@ 'PUT ' @^@@@J 'PUT ' @#@J@I 'RETRN ' KZ )@@G@@@^@@@J 'RETURN ' @#@J@I 'STOP ' @^@@@J 'STLA )@@G@@OP ' @#@J@I 'NULL ' @^@@@J 'NULL ' @#@J@ILB )@@G@@ 'DO ' @^@@@J 'DO ' @#@J@I 'DO WHL' LC )@@G@@@^@@@J 'DO WHILE' @#@J@I 'DO ITR' @^@@@J 'DOLD )@@G@@ ITER ' @#@J@I 'DO LTD' @^@@@J 'DO CASE ' @#@J@ILE )@@G@@ 'ASGN ' @^@@@J 'ASG GEN ' @#@J@I 'A=B ' LF )@@G@@@^@@@J 'ASG 0 OP' @^@J@I 'A=B+C ' @^@@@J LG )@@G@@ 'ASG 1 OP' @#@J@I '- ' @^@@@J '- ' LH )@@G@@@#@J@I '- ' @^@M@J '- ' @^@@@M 'FLLI )@@G@@OW ' @#@J@I 'EXIT ' @^@@@J 'EXIT ' @#@J@ILJ )@@G@@ 'FLOW ' @^@M@J 'FLOW ' @^@@@M 'ON LK )@@G@@' @#@J@I 'NOFLOW' @^@M@J 'NOFLOW ' @^@@@M LL )@@G@@ 'REVERT ' @#@J@I 'SIGNAL' @^@@@J 'SIGNAL ' LM )@@G@@@]@J@I 'DLETED' @^@@@J 'DELETED ' @^@@@J 'ALLOCATELN )@@G@@' @^@@@J 'FREE ' @^@@@J 'LEAVE ' @^@L@JLO )@@G@@ ' ' @^@@@L 'READ ' @^@L@J 'DOLP )@@G@@ RPEAT' @^@@@L 'WRITE ' @^@@@M '- ' LQ )@@G@@@^@@@M 'SYSTEM ' @#@@@I END . ___. NUMBER LR )@@G@@OF COMMENTS @D@@@J STORE A4,DGOLIN+3 . NUMBER OF COMMENTS LS )@@G@@@^@@@I CVE A12*[S@@@*SDFF*@C@@@#. COPYRIGHT 1975 BY UNIVERSILT )@@G@@TY OF MARYLAND @[@@@#. @D@@@#. QUESTIONS CONCERNING THIS SHOULDLU )@@G@@ BE DIRECTED TO: @[@@@#. @ @@@#. MARVIN V. ZELKOWITZ @B@@@#LV )@@G@@. DEPARTMENT OF COMPUTER SCIENCE @A@@@#. UNIVERSITY OF MLW )@@G@@ARYLAND @B@@@#. COLLEGE PARK, MARYLAND 20742 @[@@@#. LX )@@G@@@G@@@#. PERMISSION TO USE THESE LISTINGS AND THE COMPUTER PROGRAMLY )@@G@@S THEY@E@@@#. REPRESENT IS GRANTED UNDER THE FOLLOWING CONDITIONS: LZ )@@G@@@[@@@#. @G@@@#. 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS MA )@@G@@REPRESENTED BY @G@@@#. THESE LISTINGS PROVIDED THAT THE NAME PLUM OMB )@@G@@R UNIVERSITY OF MARYLAND@E@@@#. PL/1 COMPILER REMAINS ASSOCIATED WITH MC )@@G@@THESE PROGRAMS. @[@@@#. @F@@@#. 2. MODIFICATIONS MAY BE MADMD )@@G@@E TO THE LISTINGS PROVIDED: @[@@@#. @G@@@#. (A) ANY RESULTIME )@@G@@NG PROGRAM, OR REPORT, PAPER OR DOCUMENTATION @G@@@#. DESCRIBINMF )@@G@@G SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROGRAM @E@@@#. IS MG )@@G@@A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND @[@@@#. @G@@@#. MH )@@G@@ (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@#MI )@@G@@. OF ERRORS IN THE SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@#MJ )@@G@@. A BRIEF DESCRIPTION OF THE FEATURE ADDED SHALL BE SUBMITTED MK )@@G@@@C@@@#. TO THE UNIVERSITY OF MARYLAND, AND @[@@@#. @F@@@#ML )@@G@@. (C) NO PROGRAMS DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@#MM )@@G@@. WITHOUT WRITTEN APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND MN )@@G@@@[@@@#. @F@@@#. (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTMO )@@G@@ED TO OTHER @G@@@#. LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEMP )@@G@@ARLY INDICATE @G@@@#. WHETHER THE PROGRAMS ARE EXACT COPIES OMQ )@@G@@F THE UNIVERSITY OF @E@@@#. MARYLAND PLUM COMPILER OR ARE MODMR )@@G@@IFICATIONS TO IT. @[@@@#. @G@@@#. 3. THESE CONDITIONS ONLY APMS )@@G@@PLY TO THE PLUM COMPILER ITSELF, @F@@@#. AND ARE NOT MEANT TO APPLYMT )@@G@@ TO ANY PROGRAM WRITTEN USING PLUM. @E@@@#. THE PURPOSE OF THESE CONDIMU )@@G@@TIONS IS TO ALLOW ANY USER TO @F@@@#. EXPERIMENT WITH THE COMPILER AS MV )@@G@@LONG AS THE RESULTING PRODUCT @G@@@#. IS NOT SOLD AND AS LONG AS IT ISMW )@@G@@ KNOWN THAT THE PRODUCT DEVELOPED @#@@@#. FROM PLUM. @[@@@#. MX )@@G@@@[@@@#. @[@@@#. @[@@@#. @[@@@#. @[@@@#/. @#@@@@ MY )@@G@@ AXR$ @#@@@@ DCLRG @#@@@@ PLAR @#@@@@ MZ )@@G@@ PLWORD @#@[@@ PLSD @#@@@[. PLSD @#@@@@EXDI NA )@@G@@ CSECT 3 .@^@@@@ USING AREC,X10 @[@@@@. @[@@@@. @[@@@@NB )@@G@@. @^@@@@. A3=DV OF ARRAY @ @@@@. A2=DIMENSION NUMBER NC )@@G@@@ @@@@. X11 -> MAX DIMENSION @^@@@@. RETURN TO 1,X11 @[@@@@ND )@@G@@. @[@@@@. @[@@@@. @[@@@@. @^@@@@. DIMENSION NE )@@G@@@[@@@@. @#@@@@BFDIMT* LOCAL . @C@@@@ LOAD X5,X11 . NF )@@G@@ SAVE RETURN@D@@@@ LINK BFDCHK . CHECK ARGUMNG )@@G@@ENT @D@@@@ LOAD A3,W1H1+2,A3 . GET EXTENT-1 @^@@@@NH )@@G@@ ADD A3,1,I .@^@@@@ JMP 1 . @[@@@@. @[@@@@NI )@@G@@. @[@@@@. @[@@@@. @#@@@@. LBOUND @[@@@@. @#@@@@NJ )@@G@@BFLBND* LOCAL . @^@@@@ LOAD X5,X11 .@^@@@@ LINK BFNK )@@G@@DCHK @A@@@@ LOAD A3,W1XH2+2,A3 . @^@@@@ JMP 1 NL )@@G@@. @[@@@@. @[@@@@. @[@@@@. @[@@@@. @[@@@@. @#@@@@NM )@@G@@. HBOUND @[@@@@. @#@@@@BFHBND* LOCAL . @^@@@@ LONN )@@G@@AD X5,X11 .@^@@@@ LINK BFDCHK .@C@@@] LOAD A2,A3 .NO )@@G@@ POINT TO DV @ @]@@ LOAD A3,W1XH2+2,A3 @D@@@] NP )@@G@@ LOAD A3,W1XH2+2,A2 . GET LOWER BOUND @ @]@@ ADD A3NQ )@@G@@,W1H1,A3 . @D@@@] ADD A3,W1H1+2,A2 . ADD IN EXTENT - 1 NR )@@G@@@^@@@@ JMP 1 . @[@@@@. @[@@@@. @[@@@@. @B@@@@NS )@@G@@. SUB TO CHHEK VALIDITY OF ARG @[@@@@. @[@@@@. @#@@@@NT )@@G@@BFDCHK LLOC . @ @@@@ USING WORD,X5 . @C@@@@ IFNU )@@G@@ A2,GT,W1 THEN,BFDC01 . -> TOOBIG@D@@@@ IF A2,LT,1,I THENNV )@@G@@,BFDC01 . -> TOOSMALL @C@@@@ SUB A2,1,I . DIM NUMNW )@@G@@BER-1 @C@@@@ SLB A2,1 . 2*(DIM-1) @^@[@@ NX )@@G@@ ADD A3,A2 . @E@@@[ ADD A3,W1U+1,A2 . POINT TO PROPNY )@@G@@ER PAIR @#@@@@ LJMP . @[@@@@. @C@@@@BFDC01 LOCAL . NZ )@@G@@ INVALID ARG. @ @@@@ STORED A7,ARSVA7 . @ @@@@OA )@@G@@ STORE A9,ARSVA9 . @^@@@@ LOAD A7,A3 . @^@@@@ OB )@@G@@ LOAD A8,A2 . @ @@@@ LOAD A9,W1,X5 . @ @^@@ EXOC )@@G@@ERR EREXDM LEVEL,1@^@@@^ ONER EREXDM,1 @ @@@@ LOAD A9OD )@@G@@,ARSVA9 . @^@@@@ LOAD A3,A7 . @ @@@@ LOADD A7,ARSVAOE )@@G@@7 @#@@@@ JMP . @[@@@@. @^@@@@EREXDM EQU 99 . OF )@@G@@@]@@@@ END___OT BE ASSIGNED BECAUSE: *[S@@@*SDFF*@C@@@ . COOG )@@G@@PYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@ . @D@@@ . QUESTIONOH )@@G@@S CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@ . @ @@@ . MAROI )@@G@@VIN V. ZELKOWITZ @B@@@ . DEPARTMENT OF COMPUTER SCIENCE @A@@@ OJ )@@G@@. UNIVERSITY OF MARYLAND @B@@@ . COLLEGE PARK, MARYLANOK )@@G@@D 20742 @[@@@ . @G@@@ . PERMISSION TO USE THESE LISTINGS OL )@@G@@AND THE COMPUTER PROGRAMS THEY@E@@@ . REPRESENT IS GRANTED UNDER THE FOM )@@G@@OLLOWING CONDITIONS: @[@@@ . @G@@@ . 1. UNLIMITED USE MAY ON )@@G@@BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@ . THESE LISTINGS PROVIOO )@@G@@DED THAT THE NAME PLUM OR UNIVERSITY OF MARYLAND@E@@@ . PL/1 COMPILER OP )@@G@@REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@ . @F@@@ . 2. OQ )@@G@@MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDED: @[@@@ . @G@@@ OR )@@G@@. (A) ANY RESULTING PROGRAM, OR REPORT, PAPER OR DOCUMENTATION OS )@@G@@@G@@@ . DESCRIBING SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROT )@@G@@OGRAM @E@@@ . IS A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND OU )@@G@@@[@@@ . @G@@@ . (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAOV )@@G@@L CORRECTIONS @F@@@ . OF ERRORS IN THE SOURCE PROGRAMS, SHALLOW )@@G@@ BE REPORTED AND @G@@@ . A BRIEF DESCRIPTION OF THE FEATURE ADDEOX )@@G@@D SHALL BE SUBMITTED @C@@@ . TO THE UNIVERSITY OF MARYLAND, ANOY )@@G@@D @[@@@ . @F@@@ . (C) NO PROGRAMS DERIVED FROM THESE LISTOZ )@@G@@INGS SHALL BE SOLD@G@@@ . WITHOUT WRITTEN APPROVAL FROM THE UNIVEPA )@@G@@RSITY OF MARYLAND, AND @[@@@ . @F@@@ . (D) COPIES OF THESE PPB )@@G@@ROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@ . LOCATIONS PROVIDED THPC )@@G@@AT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@ . WHETHER THE PROPD )@@G@@GRAMS ARE EXACT COPIES OF THE UNIVERSITY OF @E@@@ . MARYLAND PE )@@G@@PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@ . @G@@@ . 3. PF )@@G@@THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILER ITSELF, @F@@@ . ANPG )@@G@@D ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN USING PLUM. @E@@@ . THPH )@@G@@E PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USER TO @F@@@ . EXPERIMEPI )@@G@@NT WITH THE COMPILER AS LONG AS THE RESULTING PRODUCT @G@@@ . IS NOT SPJ )@@G@@OLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT DEVELOPED @#@@@ . FRPK )@@G@@OM PLUM. @[@@@ . @[@@@ . @[@@@ . @[@@@ . @[@@@ . PL )@@G@@@[@@@ /. @#@@@] AXR$ @#@@@] DCLRG @#@@@] PM )@@G@@ UNLIST @]@@@]@ADD PLTVDS @]@@@]@ADD EXCDS @#@@@] LIST PN )@@G@@@#@@@] PLWORD @#@@@] PLAR @#@@@] PLSD PO )@@G@@@^@#@] USING ARDVDT,A2@^@@@# USING ARDVDT,X5@ @@@] PP )@@G@@ USING AREC,X10 . @#@@@]RTDT CSECT 3 @#@@@]/ . TIME BIF PQ )@@G@@@#@^@#BFTIME* LOCAL .@#@@@^BFDATE* LOCAL .@ @@@# STORE XPR )@@G@@1,DEXSVE . @C@@@# LINK ZTIME . GET TIME AND DATE@D@@@#PS )@@G@@ LINK BFTMAL . GET DV IN ACT. REC. @C@@@# LPT )@@G@@OADD A3,W1,X1 . MM/D D/YY @A@@@# STORE A4,W1H1+1,X5 PU )@@G@@. @B@@@# SRBD A3,27 . M M/DD @ @@@# SPV )@@G@@TORE A4,W1H2,X5 . @A@@@# SRBD A3,27 . MM @ @@@# PW )@@G@@ STORE A4,W1H1,X5 . @ @@@# LOAD X1,DEXSVE . @#@@@# PX )@@G@@ JMP . @[@@@#. @[@@@#. @#@^@#BFDATE* LOCAL .@#@@@^BFTIMEPY )@@G@@* LOCAL .@ @@@# STORE X1,DEXSVE . @^@@@# LINK ZPZ )@@G@@TIME .@ @@@# LINK BFTMAL . @A@@@# LOAD A3,W1+2QA )@@G@@,X1 . HH@ @@@# STORE A3,W1H1,X5 . @C@@@# LOADD QB )@@G@@ A3,W1+3,X1 . :MM: SSXX @C@@@# SRBD A3,18 . :QC )@@G@@M M:SS @A@@@# STORE A4,W1H1+1,X5 . @C@@@# SQD )@@G@@RBD A3,27 :MM @ @@@# STORE A4,W1H2,X5 . QE )@@G@@@ @@@# LOAD X1,DEXSVE . @#@@@# JMP . @[@@@#. QF )@@G@@@[@@@#. @G@A@#BFTMAL LLOC . ALLOCATE STACK SPAQG )@@G@@CE FOR 6 CHAR @G@@@ABFTMAL LOCAL . ALLOCATE STQH )@@G@@ACK SPACE FOR 6 CHAR @ @@@# LOAD X5,AREPTR . @ @A@# QI )@@G@@ LOADA A2,4,X5 . @^@@@A STKCHK 4,I . @E@A@# IQJ )@@G@@F A2,LE,ADPEND THEN,BFTMX1 . ->OK SPACE @^@A@# LOCAL QK )@@G@@. @ @A@# LINK WROVFL . @^@A@# UNSTK X11 . QL )@@G@@@#@A@#BFTMX1 LABEL .@E@@@# STORE X5,2,X5 . DV PQM )@@G@@OINTS TO STRING @D@A@# STORE A2,AREPTR . NEW TOP OFQN )@@G@@ STACK@C@@@# MOVE ARDVSZ+2,EXTIML . +6,6 @#@A@# QO )@@G@@ LJMP . @#@@@A JMP . @^@@@#EXTIML SFW 0 . @#@@@#QP )@@G@@ +6,6 @#@@@# CEND . @#@#@]BFTIME* LLOC . @ @#@]QQ )@@G@@ SA A0,DRTSA0 . @^@#@] ER DATE$ @^@#@] QR )@@G@@ LOAD A3,A1 . @^@#@] GOTO EXTIMG . @[@#@]. @[@#@]. QS )@@G@@@[@#@]. @[@#@]. @[@#@]. @#@#@]BFDATE* LLOC . @ @#@] QT )@@G@@ SA A0,DRTSA0 . @^@#@] ER DATE$ @^@#@] LOAQU )@@G@@D A3,A0 . @^@#@] LSSC A3,24 . @#@#@]EXTIMG LABEL . @ @#@]QV )@@G@@ LA A0,DRTSA0 . @ @#@] LOAD A1,AREPTR . @^@#@]QW )@@G@@ LOADA A2,3,A1 .@B@#@] IF A2,LE,ADPEND THEN,EXTIMH QX )@@G@@@#@#@] LOCAL . @^@#@] LINK WROVFL @#@#@] UNSQY )@@G@@TK X11@#@#@]EXTIMH LABEL . @^@#@] STORE A2,AREPTR@ @#@] QZ )@@G@@ STORE A3,W1,A1 . @^@#@] STORE A1,0,A2 .@ @#@] MOVRA )@@G@@E ARDVSZ,EXTIML .@#@#@] LJMP . @#@#@]EXTIML SFW 0 .@#@#@]RB )@@G@@ +6,6 @#@@@]/ . CLOCK BIF@#@@@]BFCLCK* LOCAL . @ @@@]RC )@@G@@ DS A7,DRTARG1 . @ @@@] SX X1,DRTARG2 . @ @@@]RD )@@G@@ LOAD A7,DGOCTM . @^@@@] LINK ZTINT . @ @@@] RE )@@G@@ ADD A7,DEXCLK . @^@@@] LOAD A3,A7 . @#@@@]BFCLRT LABRF )@@G@@EL . @ @@@] DL A7,DRTARG1 @ @@@] LX X1,DRTARGRG )@@G@@2 @#@@@] JMP . @[@@@]. @[@@@]. @[@@@]. @[@@@]RH )@@G@@. @ @@@]. CLOCK PSEUDO VARIABLE@[@@@]. @#@@@]BFCLPV* LOCRI )@@G@@AL @ @@@] DS A7,DRTARG1 @ @@@] SX X1,DRTARGRJ )@@G@@2 @ @@@] STORE A3,DEXCLK . @^@@@] LOAD A7,0,I . RK )@@G@@@^@@@] LINK ZTINT . @ @@@] STORE X1,DGOCTM . @^@@@]RL )@@G@@ GOTO BFCLRT . @#@@@] END . ___AINS ASSOCIATED WITH RM )@@G@@THESE PROGRAMS. @[@@@ . @F@@@ . 2. MODIFICATIONS MAY BE MADRN )@@G@@E TO THE LISTINGS PROVIDED: @[@@@ . @G@@@ . (A) ANY RESULTIRO )@@G@@*[S@@@*SDFF*@C@@@]. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@]RP )@@G@@. @D@@@]. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@]RQ )@@G@@. @ @@@]. MARVIN V. ZELKOWITZ @B@@@]. DEPARTMENT OF CRR )@@G@@OMPUTER SCIENCE @A@@@]. UNIVERSITY OF MARYLAND @B@@@]. RS )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@]. @G@@@]. PERMISSIORT )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@]. REPRESENRU )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@]. @G@@@]. RV )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@]RW )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDRX )@@G@@@E@@@]. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@]RY )@@G@@. @F@@@]. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDRZ )@@G@@ED: @[@@@]. @G@@@]. (A) ANY RESULTING PROGRAM, OR REPORT, PSA )@@G@@APER OR DOCUMENTATION @G@@@]. DESCRIBING SUCH PROGRAM WILL CLEASB )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@]. IS A DIALECT OF PLUM OR IS SC )@@G@@DERIVED FROM PLUM, AND @[@@@]. @G@@@]. (B) ALL SUCH MODIFICASD )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@]. OF ERRORS IN THSE )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@]. A BRIEF DESCRIPSF )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@]. TO THE UNSG )@@G@@IVERSITY OF MARYLAND, AND @[@@@]. @F@@@]. (C) NO PROGRAMSSH )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@]. WITHOUT WRITTENSI )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@]. @F@@@]. SJ )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@]. SK )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@]SL )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF SM )@@G@@@E@@@]. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@]SN )@@G@@. @G@@@]. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERSO )@@G@@ ITSELF, @F@@@]. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN SP )@@G@@USING PLUM. @E@@@]. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USSQ )@@G@@ER TO @F@@@]. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRSR )@@G@@ODUCT @G@@@]. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT SS )@@G@@DEVELOPED @#@@@]. FROM PLUM. @[@@@]. @[@@@]. @[@@@]. ST )@@G@@@[@@@]. @[@@@]. @[@@@]/. @#@@@@ AXR$ . @B@@@@ SU )@@G@@ DCLRG . FOR PIT@#@@@[. UNLIST @^@[@@. SV )@@G@@ @ADD PLTVDS @#@@@[. @ADD,P PLTVDS @]@@@@. @ADD EXCDS@#@@@[. SW )@@G@@ LIST . @^@@@@RAND CSECT 3 . @E@@@@ONEHAL +02000400000000SX )@@G@@00000000000 . FLOATING ONE HALF @D@@@@BIGCON +011060471625 . SY )@@G@@ BIG (ASSUMED) PRIME@D@@@@MASK +0377777777777 . MASK TOSZ )@@G@@ MASK POS @E@@@@EXRAND EQU 53 . ARG FOR RAND OUT OFTA )@@G@@ RANGE@B@@@@. .5 USED@[@@@@. @E@@@@TB )@@G@@BFRAND* LLOC . ENTRY POINT FOR RAND @ @[@@ TC )@@G@@ DL A3,*0,X11 . @C@@@@ LOADD A2,A3 . GET SEETD )@@G@@D @D@@@@ IF A2,GT,0,I THEN,BFRAN1 . IS THIS POS? @^@@@@TE )@@G@@ LOCAL . NOPE @C@[@@ EXERR EXRAND,LEVEL,1 . WRONG VTF )@@G@@ALUE @C@#@[ EXERR EXRAND LEVEL,1 . WRONG VALUE @C@@@# TG )@@G@@ ONER EXRAND,1 . WRONG VALUE @D@@@@ UNSTK X11 . TH )@@G@@ GET RETURN ADDRESS @C@@@@ LOADD A2,ONEHAL . ATI )@@G@@SSUME .5 @E@@@@BFRAN1 LABEL . MERGE WITH VALID SETJ )@@G@@ED @E@@@@ OR,U A3,1 . MAKE BOTTOM HALF ODD TK )@@G@@@C@@@@ LOAD A3,A4 . GET ODD HALF @ @@@@ MPYTL )@@G@@S A2,BIGCON . @D@@@@ MF A3,BIGCON . RANDOMIZE NUMTM )@@G@@BER @D@@@@ ADD A2,A3 . ADD HALFS TO GETHER@C@@@@TN )@@G@@ SSL A4,1 . SHIFT ONE BIT@C@@@@ AND ATO )@@G@@2,MASK . MAKE POS @C@@@@ LOAD A2,01765,I . GTP )@@G@@ET EXPONENT @F@@@@ DLCF A2,A3 . MAKE INTO A BIG SMATQ )@@G@@LL NUMBER @D@[@@ DS A3,*0,X11 . SAVE FOR FORTRAN TR )@@G@@@B@[@@ LJMP 2 .SKIP TWO ON RETURN @F@@@[ LJMP . TS )@@G@@ RETURN WITH NUMBER IN A3-A4 @#@@@[ CEND . TT )@@G@@@#@@@@ END . ___ . ED$$RECOVERY@CAT 005223K*ED$$A.,F4/2TU )@@G@@//4000 . @USE ED$$A,*[S@@@*SDFF*@C@@@S. COPYRIGHT 1975 BY UNIVERSITV )@@G@@TY OF MARYLAND @[@@@S. @D@@@S. QUESTIONS CONCERNING THIS SHOULDTW )@@G@@ BE DIRECTED TO: @[@@@S. @ @@@S. MARVIN V. ZELKOWITZ @B@@@STX )@@G@@. DEPARTMENT OF COMPUTER SCIENCE @A@@@S. UNIVERSITY OF MTY )@@G@@ARYLAND @B@@@S. COLLEGE PARK, MARYLAND 20742 @[@@@S. TZ )@@G@@@G@@@S. PERMISSION TO USE THESE LISTINGS AND THE COMPUTER PROGRAMUA )@@G@@S THEY@E@@@S. REPRESENT IS GRANTED UNDER THE FOLLOWING CONDITIONS: UB )@@G@@@[@@@S. @G@@@S. 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS UC )@@G@@REPRESENTED BY @G@@@S. THESE LISTINGS PROVIDED THAT THE NAME PLUM OUD )@@G@@R UNIVERSITY OF MARYLAND@E@@@S. PL/1 COMPILER REMAINS ASSOCIATED WITH UE )@@G@@THESE PROGRAMS. @[@@@S. @F@@@S. 2. MODIFICATIONS MAY BE MADUF )@@G@@E TO THE LISTINGS PROVIDED: @[@@@S. @G@@@S. (A) ANY RESULTIUG )@@G@@NG PROGRAM, OR REPORT, PAPER OR DOCUMENTATION @G@@@S. DESCRIBINUH )@@G@@G SUCH PROGRAM WILL CLEARLY INDICATE THAT THE PROGRAM @E@@@S. IS UI )@@G@@A DIALECT OF PLUM OR IS DERIVED FROM PLUM, AND @[@@@S. @G@@@S. UJ )@@G@@ (B) ALL SUCH MODIFICATIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@SUK )@@G@@. OF ERRORS IN THE SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@SUL )@@G@@. A BRIEF DESCRIPTION OF THE FEATURE ADDED SHALL BE SUBMITTED UM )@@G@@@C@@@S. TO THE UNIVERSITY OF MARYLAND, AND @[@@@S. @F@@@SUN )@@G@@. (C) NO PROGRAMS DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@SUO )@@G@@. WITHOUT WRITTEN APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND UP )@@G@@@[@@@S. @F@@@S. (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTUQ )@@G@@ED TO OTHER @G@@@S. LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEUR )@@G@@ARLY INDICATE @G@@@S. WHETHER THE PROGRAMS ARE EXACT COPIES OUS )@@G@@F THE UNIVERSITY OF @E@@@S. MARYLAND PLUM COMPILER OR ARE MODUT )@@G@@IFICATIONS TO IT. @[@@@S. @G@@@S. 3. THESE CONDITIONS ONLY APUU )@@G@@PLY TO THE PLUM COMPILER ITSELF, @F@@@S. AND ARE NOT MEANT TO APPLYUV )@@G@@ TO ANY PROGRAM WRITTEN USING PLUM. @E@@@S. THE PURPOSE OF THESE CONDIUW )@@G@@TIONS IS TO ALLOW ANY USER TO @F@@@S. EXPERIMENT WITH THE COMPILER AS UX )@@G@@LONG AS THE RESULTING PRODUCT @G@@@S. IS NOT SOLD AND AS LONG AS IT ISUY )@@G@@ KNOWN THAT THE PRODUCT DEVELOPED @#@@@S. FROM PLUM. @[@@@S. UZ )@@G@@@[@@@S. @[@@@S. @[@@@S. @[@@@S. @[@@@S/. @#@@@Q VA )@@G@@ AXR$ . @#@@@Q DCLRG . @#@@@Q UNLIST . @#@@@Q@ADD,PVB )@@G@@ PLTVDS @#@@@Q LIST . @#@@@Q CEND . @#@@@Q VC )@@G@@ PLWORD . @#@@@Q PLIOCB . @#@@@Q PLSD . @#@@@Q VD )@@G@@ PLAR . @#@@@Q PLIOCB . @F@@@QEXAI CSECT 3 . VE )@@G@@ COUNT LINENO REMOTE FORMAT @ @@@Q USING AREC,X10 . VF )@@G@@@^@T@Q/. ENDFILE BIF @[@T@Q. @[@T@Q. @#@T@QBFENDT* LOCVG )@@G@@AL . @ @T@Q STORE X3,ARSAX3 . @ @T@Q USING SDSECT,A3VH )@@G@@ . @ @T@Q LOADA X3,SDIOFN . @C@T@Q WRIOCB . VI )@@G@@ GET IOCB @^@T@Q USING IOCB,X3 .@C@T@R STOVJ )@@G@@RED A5,ARSVA5 . SAVE REGS @ @T@Q LOAD F,IOCBF1 . VK )@@G@@@D@T@Q IF IOCBOP,OFF THEN,EXIOF1 . -> NOT OPEN @D@T@Q VL )@@G@@ IF IOCBIN,OFF THEN,EXIOF2 . -> OUTPUT @C@R@Q LOAD A3,VM )@@G@@060,I . ASSUME FALSE @C@T@R LOAD A3,'0',I . AVN )@@G@@SSUME FALSE @E@T@Q IF IOCBEF,OFF THEN,BFENF1 . -> RETURN FALSVO )@@G@@E @C@R@Q LOAD A3,061,I . RETURN TRUE @C@T@R VP )@@G@@ LOAD A3,'1',I . RETURN TRUE @#@T@QBFENF1 LABEL . @ @T@QVQ )@@G@@ LOAD X3,ARSAX3 . @C@T@R LOADD A5,ARSVA5 . RVR )@@G@@ESET REGS @^@T@Q UNSTK X11 . @D@T@Q GOTO EXA3DV . VS )@@G@@-> CONVERT TO TEMP STRING @#@T@QEXIOF1 LABEL . @ @T@Q STOVT )@@G@@RE X3,ARSAX3 . @E@T@Q LOAD X3,IOCCBP . RESET IOCB VU )@@G@@TO EMPTY @^@T@Q USING WORD,X3 @ @T@Q MOVE W1,KBLANKVV )@@G@@,2 . @ @T@Q LOAD X3,ARSAX3 . @#@T@QEXIOF2 LABEL . @ @T@QVW )@@G@@ EXERR ERENDF LEVEL,0 @ @R@Q LOAD A3,061,I . @ @T@RVX )@@G@@ LOAD A3,'1',I . @A@T@Q GOTO BFENF1 . -> RETURN VY )@@G@@@[@@@Q/. @^@@@Q. LINENO BIF @[@@@Q. @#@@@QBFLINO* LOCVZ )@@G@@AL . @A@@@Q LOAD X5,A3 . SAVE SD @ @@@Q STORE X3,WA )@@G@@ARSAX3 . @ @@@Q USING SDSECT,A3 . @C@@@Q LOADA X3,WB )@@G@@SDIOFN . GET IOCB @#@@@Q WRIOCB . @^@@@Q USIWC )@@G@@NG IOCB,X3 .@C@@@R STORED A5,ARSVA5 . SAVE REGS @C@@@QWD )@@G@@ LOAD F,IOCBF1. CHECK STATUS @D@@@Q IF IOCWE )@@G@@BOP,OFF THEN,EXIOL1 . -> CLOSED FILE@E@@@Q IF IOCBPT,OFF THENWF )@@G@@,EXIOL3 . -> NOT PRINT FILE @C@@@Q LOAD A3,IOCBLN . GWG )@@G@@ET LINE NO @^@@@Q ADD A3,1,I . @E@@@Q LOAD X3,ARSAX3WH )@@G@@ . RESET X3 FROM CALLER @D@@@R LOADD A5,ARSVA5 . WI )@@G@@ GET SAVED REGS @C@@@Q JMP . ->RETURWJ )@@G@@N @#@@@QEXIOL1 LABEL . @ @@@Q STORE X1,ARSAX1 . @C@@@QWK )@@G@@ LOADA X1,EXIOLM . GET BIF NAME @B@@@Q GOTO EXIWL )@@G@@OC2 . MSG @#@@@QEXIOL3 LABEL . @ @@@Q STORE X1,WM )@@G@@ARSAX1 . @ @@@Q LOADA X1,EXIOLM . @#@@@QEXIOL5 LABEL . WN )@@G@@@A@T@Q EXERR ERIOLN LEVEL,1 . @ @@@T ONER ERIOLN,WO )@@G@@1 . @ @@@Q LOAD X1,ARSAX1 . @#@@@QEXIOL4 LABEL @C@@@QWP )@@G@@ LOAD A3,0,I . SET O VALUE @ @@@Q LOAD X3,WQ )@@G@@ARSAX3 . @D@@@R LOADD A5,ARSVA5 . GET SAVED REGS WR )@@G@@@C@@@Q JMP . -> RETURN @A@@@Q/. PAGWS )@@G@@ENO BUILT IN FUNCTION @[@@@Q. @[@@@Q. @#@@@QBFPANO* LOCAL . WT )@@G@@@B@@@Q LOAD X5,A3 . SAVE SD PTR @ @@@Q STORE X3,WU )@@G@@ARSAX3 . @ @@@Q USING SDSECT,A3 . @C@@@Q LOADA X3,WV )@@G@@SDIOFN . GET IOCB @#@@@Q WRIOCB . @^@@@Q USIWW )@@G@@NG IOCB,X3 .@C@@@R STORED A5,ARSVA5 . SAVE REGS @ @@@QWX )@@G@@ LOAD F,IOCBF1 . @D@@@Q IF IOCBOP,OFF THEN,EXOP0WY )@@G@@1 . -> NOT OPEN @E@@@Q IF IOCBPT,OFF THEN,EXOP02 . -> NOT PWZ )@@G@@RINT FILE @ @@@Q LOAD A3,IOCBPN . @C@@@Q ADD A3,XA )@@G@@1,I . GET ACTUAL COUNT @ @@@Q LOAD X3,ARSAX3 . @D@@@RXB )@@G@@ LOADD A5,ARSVA5 . GET SAVED REGS @C@@@Q JMPXC )@@G@@ . -> RETURN @#@@@QEXOP01 LABEL . @ @@@Q XD )@@G@@ STORE X1,ARSAX1 . @ @@@Q LOADA X1,EXIOPN . @^@@@Q XE )@@G@@ GOTO EXIOC2 . @#@@@QEXOP02 LABEL . @ @@@Q STORE X1,ARSAX1XF )@@G@@ . @ @@@Q LOADA X1,EXIOPN . @ @@@Q GOTO EXIOL5 . XG )@@G@@-> MSG@ @@@R/. PAGENO PSEUDO VAR @[@@@R. @[@@@R. @#@@@RXH )@@G@@BFPNPV* LOCAL . @D@@@R STORE A2,ARSVA7 . SAVE DESIRED XI )@@G@@VALUE @B@@@R LOAD X5,A3 . SAVE SD PTR @ @@@R STOXJ )@@G@@RE X3,ARSAX3 . @ @@@R USING SDSECT,A3 . @C@@@R LOAXK )@@G@@DA X3,SDIOFN . GET IOCB @#@@@R WRIOCB . @^@@@R XL )@@G@@ USING IOCB,X3 .@C@@@R STORED A5,ARSVA5 . SAVE REGS XM )@@G@@@ @@@R LOAD F,IOCBF1 . @D@@@R IF IOCBOP,OFF THENXN )@@G@@,EXOP01 . -> NOT OPEN @E@@@R IF IOCBPT,OFF THEN,EXOP02 . ->XO )@@G@@ NOT PRINT FILE @E@@@R LOAD A2,ARSVA7 . GET BACK DESIXP )@@G@@RED COUNT @D@@@R SUB A2,1,I . GET CORRECT COUNT XQ )@@G@@@C@@@R STORE A2,IOCBPN . SET NEW COUNT@ @@@R LOAXR )@@G@@D X3,ARSAX3 . @D@@@R LOADD A5,ARSVA5 . GET SAVED REGXS )@@G@@S @C@@@R JMP . -> RETURN @[@@@Q/. XT )@@G@@@B@@@Q. COUNT BIF NOT IN ANSCII STANDARD@[@@@Q. @[@@@Q. . XU )@@G@@@^@@@Q. . COUNT BIF @[@@@Q. . @#@@@Q. EXCNT* LOCAL .@^@@@QXV )@@G@@. LOAD X5,A3 .@C@@@Q. LOADA A3,SDIOFN . GET IXW )@@G@@OCB @^@@@Q. WRIOCB . @C@@@Q. LOAD F,IOCBF1 . XX )@@G@@ GET FLAGS @D@@@Q. IF IOCBOP,OFF THEN,EXIOC1 . CLOSEXY )@@G@@D FILE@ @@@Q. LOAD A3,IOCBCN . @C@@@Q. JMP . XZ )@@G@@ ->RETURN @#@@@Q. EXIOC1 LABEL .@ @@@Q. STORE XYA )@@G@@1,ARSAX1 . @C@@@Q. LOADA X1,EXIOCM . NAME OF BIF@#@@@QYB )@@G@@EXIOC2 LABEL . @C@@@Q MOVE IOCBFL,KBLANK,2 . CLEAR NAME YC )@@G@@@A@T@Q EXERR ERIOCM LEVEL,1 . @ @@@T ONER ERIOCM,YD )@@G@@1 . @E@U@Q LOAD X1,IOCCBP . RESET IOCB TO EMPTY YE )@@G@@@E@@@U LOAD X1,IOCBBP . RESET IOCB TO EMPTY @^@@@QYF )@@G@@ USING WORD,X1 @ @@@Q MOVE W1,KBLANK,2 . @ @@@Q YG )@@G@@ LOAD X1,ARSAX1 . @D@@@Q GOTO EXIOL4 . -> RETUYH )@@G@@RN O VALUE @[@@@Q/. @F@@@Q. EXFTGO INITIALYI )@@G@@IZE FORMAT STATEMENT @[@@@Q. @D@@@Q. A6=0 [GET], 1 [YJ )@@G@@PUT], 2 [FORMAT STMT] @ @@@Q. A1=SD OF FORMAT@ @@@Q. YK )@@G@@ A2=INV COUNT @B@@@Q. X11=RETURN TO R(LABEL) YL )@@G@@@G@@@Q. THE REMOTE FORMAT IS CALLED AND RETURNS A SAVE AREAYM )@@G@@. @F@@@Q. THE CURRENT FORMAT STACK IS SCANNED TO CHECK YN )@@G@@FOR @G@@@Q. RECURSIVE FORMATS (IF SAVE AREA IN STACK). THYO )@@G@@IS ENTRY @B@@@Q. IS THEN ADDED TO STACK. @C@@@Q. YP )@@G@@ NOTE:ARFMAT IS IN W1H1+3,X10 @^@@@Q. STACK ELT: YQ )@@G@@@G@@@Q. -------------------------------------------------YR )@@G@@- @G@@@Q. I POINTER TO I GET!PUT I RETUYS )@@G@@RN I @G@@@Q. I NEXT ELTMENT I FLAG IYT )@@G@@ ADDRESS I @G@@@Q. -------------------------------YU )@@G@@------------------- @[@@@Q. @[@@@Q. @^@@@QEXFTGO* LLOYV )@@G@@C . @ @@@Q USING SDSECT,A1 . @E@@@Q IF SD4FLB+SDYW )@@G@@4UDF,ON,SDCLS4 THEN,EXFT01 . ->OK @#@R@Q LOCAL . @#@@@REXFT02YX )@@G@@A LOCAL . @D@@@QEXFT02 LABEL . INVALID FORMATMSG YY )@@G@@@ @@@Q STORE X1,ARSAX1 . @^@@@Q LOAD X1,A1 . @A@T@QYZ )@@G@@ EXERR ERIO25 LEVEL,1 . @ @@@T ONER ERIO25,1 . ZA )@@G@@@ @@@Q LOAD X1,ARSAX1 . @#@@@Q JMP . @#@@@QEXFT01ZB )@@G@@ LABEL . @E@R@Q IF A2,NE,ARINCT THEN,EXFT02 . ->NON LOCALZC )@@G@@ FMAT @E@@@R IF A2,NE,ARINCT THEN,EXFT02A . ->NON LOCAL FMATZD )@@G@@@C@@@Q LOAD A3,SDADD . GOTO FMAT @D@@@Q LOAZE )@@G@@D A4,X11 . SAVE RETURN ADDRESS@^@@@Q LINK 0,A3 . ZF )@@G@@@D@@@Q LOAD A2,X5 . SAVE STACK PTR @F@@@Q ZG )@@G@@ LOADA A3,ARFMAT . SEE IF A2 IS ON FMAT STACK @#@@@QEXFT04ZH )@@G@@ LABEL . @^@@@Q USING WORD,A3 .@E@@@Q IF W1H1,ZEROZI )@@G@@ THEN,EXFT03 . ->END OF LIST, VALID@E@@@Q IF A2,NE,W1H1 THENZJ )@@G@@,EXFT05. ->NOT RECURSIVE @^@@@Q STACK A4 . @B@@@Q ZK )@@G@@ GOTO EXFT02 . MSG @#@@@QEXFT05 LABEL . @C@@@Q ZL )@@G@@ LOAD A3,W1H1 . NEXT IN CHAIN@^@@@Q GOTO EXFT04 .ZM )@@G@@@#@@@QEXFT03 LABEL . @^@@@Q USING WORD,A3 .@D@@@Q STOZN )@@G@@RE X5,W1H1 . SET FORWARD LINK @^@@@Q USING WORD,X5 .ZO )@@G@@@D@@@Q MOVE W1H1,0,I . SET END OF LIST @G@@@Q ZP )@@G@@ SLB A6,17 . PUT GET!PUT FLAG IN SIGN BIT POSITION@^@@@QZQ )@@G@@ ADD A4,A6 . @D@@@Q STORE A4,W1H2 . SET RETZR )@@G@@URN ADDRESS @D@@@Q GOTO 0,X11 . EXECUTE FORMAT ZS )@@G@@@[@@@Q. @D@@@Q. EXFTRT RETURN FROM FORMAT ZT )@@G@@@[@@@Q. @#@@@QEXFTRT* LLOC . @E@@@Q LINK EXFTGT . ZU )@@G@@ GET LAST STACK ENTRY. @^@@@Q USING WORD,A3 .@D@@@Q ZV )@@G@@ MOVE W1H1,0,I . SET NEW LIST END @D@@@Q LOAD A2,ZW )@@G@@W1,X5 . GET STACK ELT. @D@@@Q SLB A2,19 . ZX )@@G@@ DROP GET!PUT FLAG @G@@@Q SRB A2,19 . GET INTZY )@@G@@O NORMAL ADDRESS POSITION @G@R@Q LOAD X11,R8 . RZZ )@@G@@ESET X11 TO BE RELOADED ON RETURN @G@@@R LOAD X11,ARDED . AA )@@G@@ RESET X11 TO BE RELOADED ON RETURN @^@@@Q GOTO 0,A2 . AB )@@G@@@[@@@Q. @D@@@Q. EXFMAT FORMAT CALL EDIT AC )@@G@@@[@R@Q. @#@R@Q. EXFMAT* LOCAL .@D@R@Q. LINK EXFTGT . AD )@@G@@ GET STACK ELEMENT@^@R@Q. UNSTK X11. @D@R@Q. LAE )@@G@@OAD A2,W1. SEE IF GET OR PUT@D@R@Q. IF A2,LT,0AF )@@G@@,I THEN,EXPTED ELSE,EXGTED . @[@@@Q. @C@@@Q. SINCE THE FIRSTAG )@@G@@ FORMAT STACK ELT. SAYS @D@@@Q. WETHER THIS IS GET OR PUT I THINKAH )@@G@@ THAT ONE @C@@@Q. SHOULD CHECK THAT STACK ELT TO DECIDE @[@@@QAI )@@G@@. @D@@@QEXFMAT* LLOC . MY ENTRY POINT @F@@@QAJ )@@G@@ LOAD A2,ARFMAT . POINT TO FIRST ELT.IN CHAIN @D@@@QAK )@@G@@ LOAD A2,W1XH2,A2 . GET STACK ELT. @C@@@Q IF AL )@@G@@A2,LT,0,I THEN,EXPTED ELSE,EXGTED . @[@@@Q. @E@@@Q. EXFTGT AM )@@G@@ GET LAST STACK ELEMENT @[@@@Q. @#@@@QEXFTGT LLOAN )@@G@@C . @G@@@Q LOADA A3,ARFMAT . POINT TO NEXT TO LAST ITEAO )@@G@@M IN LIST @F@@@Q LOAD X5,ARFMAT . POINT TO FIRST ELT.AP )@@G@@ IN LIST @D@@@QEXFTG1 LABEL . SEARCH FOR END AQ )@@G@@@^@@@Q USING WORD,X5 @C@@@Q IF W1H1,ZERO THEN,LJMP .AR )@@G@@ END OF LIST@F@@@Q LOAD A3,X5 . SAVE NEXT TO LAST CAS )@@G@@HAIN ENTRY @D@@@Q LOAD X5,W1H1,X5 . GET NEXT STACK LINKAT )@@G@@@^@@@Q GOTO EXFTG1 . @#@@@Q/. DATA @#@@@QEXAI CSEAU )@@G@@CT 3 .@C@R@QEXIOEF SF 'BENDFI' . 7,ENDFILE @C@T@REXIOEFAV )@@G@@ INSERT 7,'END','FILE' . 7,ENDFILE @ @R@QFILL(1) SF 'LE ' AW )@@G@@. @C@R@QEXIOLM SF 'BLINEN' . 6,LINENO @C@@@REXIOLMAX )@@G@@ INSERT 6,'LIN','ENO ' . 6,LINENO @ @R@QFILL(1) SF 'O ' AY )@@G@@. @C@R@QEXIOPN SF 'APAGEN' . 6,PAGENO @C@@@REXIOPNAZ )@@G@@ INSERT 6,'PAG','ENO ' . 6,PAGENO @^@R@QFILL(1) SF 'O ' BA )@@G@@@#@@@Q CEND . @F@@@QERIOLN EQU 25 . LINENO.BB )@@G@@ FILE NOT A PRINT FILE @F@@@QERIOCM EQU 26 . 'BCX1'.BC )@@G@@ FILE 'SDX5' IS NOT OPEN@F@@@QERIO25 EQU 27 . 'SDX1' BD )@@G@@ ILLEGAL FORMAT LABEL @F@T@QERENDF EQU 91 . ENDFILBE )@@G@@E. NOT OPEN FOR INPUT @#@@@Q END . ___ FORMAT STATEMENT BF )@@G@@@[@@@Q. @D@@@Q. A6=0 [GET], 1 [PUT], 2 [FORMAT STMT] BG )@@G@@*[S@@@*SDFF*@C@@@C. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@CBH )@@G@@. @D@@@C. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@CBI )@@G@@. @ @@@C. MARVIN V. ZELKOWITZ @B@@@C. DEPARTMENT OF CBJ )@@G@@OMPUTER SCIENCE @A@@@C. UNIVERSITY OF MARYLAND @B@@@C. BK )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@C. @G@@@C. PERMISSIOBL )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@C. REPRESENBM )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@C. @G@@@C. BN )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@CBO )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDBP )@@G@@@E@@@C. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@CBQ )@@G@@. @F@@@C. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDBR )@@G@@ED: @[@@@C. @G@@@C. (A) ANY RESULTING PROGRAM, OR REPORT, PBS )@@G@@APER OR DOCUMENTATION @G@@@C. DESCRIBING SUCH PROGRAM WILL CLEABT )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@C. IS A DIALECT OF PLUM OR IS BU )@@G@@DERIVED FROM PLUM, AND @[@@@C. @G@@@C. (B) ALL SUCH MODIFICABV )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@C. OF ERRORS IN THBW )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@C. A BRIEF DESCRIPBX )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@C. TO THE UNBY )@@G@@IVERSITY OF MARYLAND, AND @[@@@C. @F@@@C. (C) NO PROGRAMSBZ )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@C. WITHOUT WRITTENCA )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@C. @F@@@C. CB )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@C. CC )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@CCD )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF CE )@@G@@@E@@@C. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@CCF )@@G@@. @G@@@C. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERCG )@@G@@ ITSELF, @F@@@C. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN CH )@@G@@USING PLUM. @E@@@C. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USCI )@@G@@ER TO @F@@@C. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRCJ )@@G@@ODUCT @G@@@C. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT CK )@@G@@DEVELOPED @#@@@C. FROM PLUM. @[@@@C. @[@@@C. @[@@@C. CL )@@G@@@[@@@C. @[@@@C. @[@@@C/. @#@@@B AXR$ . @#@@@B CM )@@G@@ DCLRG . @#@@@B PLWORD . @#@@@D PLAC . @#@@@B CN )@@G@@ UNLIST @]@@@B@ADD PLTVDS @]@@@B@ADD EXCDS @#@@@B LIST . CO )@@G@@@#@@@BNERR CSECT 3 .@B@@@B/ . WORKSPACE FOR RUN TIME ROUTINES CP )@@G@@@^@@@BDRTNAM* EQU DEXRTS . @^@@@BDRTSA0* EQU DEXRTS+1 @^@@@BDRTARGCQ )@@G@@1* EQU DEXRTS+2 @^@@@BDRTARG2* EQU DEXRTS+4 @^@@@BDRTTMP* EQU DEXCR )@@G@@RTS+6 @^@@@B/ . ERROR RETURNS @C@@@BNERRC$* LABEL . CS )@@G@@ OVERFLOW @ @C@B LA,U A8,DRTNAM . @ @@@C LA CT )@@G@@ A8,DRTNAM . @ @@@B LA A0,DRTSA0 . @E@C@B EXECU )@@G@@RR ERRTOV LEVEL,2 . 'OVERFLOW IN 'NAME' 0 USED @G@E@C ONUNIT ERCV )@@G@@RTOV,ACCDOV,2 R,I,R DRTNAM+(IN 63,0,1,0),8 DEXMAX,0 @I@F@E ONUCW )@@G@@NIT ERRTOV,ACCDOV,2 NERRX,NERRX,LJMP DRTNAM+(IN 63,0,1,0),8 DEXMAX,0 CX )@@G@@@I@@@F ONUNIT ERRTOV,ACCDOV,2 NERRX,NERRX,KLUK DRTNAM+(IN 63,0,1CY )@@G@@,0),8 DEXMAX,0 @A@@@C. OVERFLOW IN 'NAME'. 0 USED @^@E@B CZ )@@G@@ GOTO NERRX . @[@@@B. @[@@@B. @[@@@B. @D@@@BNERRB$* LABDA )@@G@@EL . ILLEGAL ARGUMENTS @#@@@BNERRA$* LABEL . @ @@@BDB )@@G@@ LA A0,DRTSA0 . @ @C@B LA,U A8,DRTNAM . @ @@@CDC )@@G@@ LA A8,DRTNAM . @D@C@B EXERR ERRTIL LEVEL,2 . 'ILLDD )@@G@@EGAL ARGUMENT' @C@@@C ONER ERRTIL,2 . 'ILLEGAL ARGUMENT' DE )@@G@@@#@@@BNERRX LABEL . @C@C@B FLINK X5,EXLM . RESTOREDF )@@G@@ REGS @C@@@C FLINK X5,EXML . RESTORE REGS @D@@@B DG )@@G@@ LOADD A1,KKD0 . COMPLEX RETURN @C@@@B LOADD A3,DH )@@G@@KKD0 . REAL RETURN @#@@@FKLUK LABEL . @#@@@B LJMDI )@@G@@P . @C@@@B/ . COMPLEX FUNCTIONS NOT YET INSTALLED @]@@@BCDSQRTDJ )@@G@@* @]@@@CRTCABF* @]@@@CRTCABX* @[@@@BCDLOG*@[@@@BCDCOS*@[@@@BDK )@@G@@CDSIN*@[@@@BCDTAN*@]@@@BCDATAN* @E@C@B EXERR EXERNI LEVEL,2 DL )@@G@@. 'COMPLEX NOT IN, 0 USED' @D@@@C ONER EXERNI,2 . 'COMPLEX NODM )@@G@@T IN, 0 USED' @^@@@B GOTO NERRX . @^@@@B/ . ERROR MESDN )@@G@@SAGES @D@@@BERRTOV EQU 93 . OVERFLOW IN FCN @C@@@BDO )@@G@@ERRTIL EQU 94 . ILLEGAL ARGS @E@@@BEXERNI EQU 95 DP )@@G@@. COMPLEX NOT INSTALLED @#@@@B END . ___ DQ )@@G@@ COMPLEX NOT INSTALLED @#@@@A END . ___@@HR#@^ LEFT BINARY @B@@@A ADD X1,4,I . FN )@@G@@ YES @#@@@ACVEN01 LABEL . @F@@@A IF SDFXFL,OFFO )@@G@@F THEN,CVEN02 . LEFT FLOAT @^@@@A ADD X1,2,I . FP )@@G@@@#@@@ACVEN02 LABEL . @D@@@A LOAD F,DCVTR . GET TYPFQ )@@G@@E RIGHT @B@@@A IF SDDCBN,ON THEN,CVEN03 . @^@@@A FR )@@G@@ ADD X1,1,I . @#@@@ACVEN03 LABEL . @F@B@A LOAD X11,CVTB+FS )@@G@@(IN 0,H1,0,0),X1 . ASSME H1 @D@@@B LOAD X11,CVTB+FT )@@G@@FH1,X1 . ASSME H1 @C@@@A IF SDFXFL,ON THEN,LJMP .FU )@@G@@ -> YUP, H1 @B@B@A LOAD X11,CVTB+(IN 0,H2,0,0),X1 .@A@@@B FV )@@G@@ LOAD X11,CVTB+FH2,X1 . @D@@@A GOTO 0,X11 . -FW )@@G@@> GO TO ROUTINE @^@@@AEXCN1 CSECT 3 . @ @@@ACVTB SAC CVBFX )@@G@@XBF,CVBXBX .@ @@@AFILL(1) SAC CVBXDF,CVBXDX .@ @@@AFILL(1) SAC CVBFY )@@G@@FBF,CVBFBX .@ @@@AFILL(1) SAC CVBFDF,CVBFDX .@ @@@AFILL(1) SAC CVDFZ )@@G@@XBF,CVDXBX .@ @@@AFILL(1) SAC CVDXDF,CVDXDX .@ @@@AFILL(1) SAC CVDGA )@@G@@FBF,CVDFBX .@ @@@AFILL(1) SAC CVDFDF,CVDFDX .@#@@@A CEND . GB )@@G@@@[@@@A. @[@@@A. @[@@@A. @#@@@ACVDFBF LABEL . @#@@@ACVBFDFGC )@@G@@ LABEL . @#@@@ACVBFBF LABEL . @#@@@ACVDFDF LABEL . @#@@@ACVBFDXGD )@@G@@ LABEL . @#@@@ACVDFDX LABEL . @B@@@A LOADD A7,W1,X2 . GE )@@G@@ SOURCE @B@@@A LD1SC A9,DCVQR . QR*2 @B@@@A GF )@@G@@ LINK CVDVPT . /10**QR@C@@@A GOTO CVCVST . GG )@@G@@ -> RETURN @[@@@A. @[@@@A. @[@@@A. @#@@@ACVBXDX LABGH )@@G@@EL . @D@@@B LOADD A7,W1,X2 . PICK UP NUMBER @B@@@AGI )@@G@@ LD1SC A9,DCVQR . QR*2 @B@@@A LINK CVDVPT . GJ )@@G@@ /10**QR@F@@@B LOADA X2,A7 . A7-A8 NOW CONGK )@@G@@TAIN NUMBER... @#@@@ACVBXBF LABEL . @#@@@ACVBXDF LABEL . @B@@@AGL )@@G@@ LD0SC A3,DCVQL . QL @D@@@A DFU A6,0,X2 . GM )@@G@@ UNPACK SOURCE @D@@@A SUB A6,02074,I . SGN )@@G@@ET SHIFT COUNT @D@@@A SUB A3,A6 . SCALE-SHIFT COUGO )@@G@@NT @E@@@A IF A3,LT,25,I THEN,CVBXD4 . IS NUMBER TOO BIG? GP )@@G@@@E@@@A IF A3,LT,60,I THEN,CVBXD5 . IS NUMBER TOO SMALL @D@@@AGQ )@@G@@ GOTO CVBXOK . -> REPLACE W/ZERO @#@@@ACVBXD4 LABGR )@@G@@EL . @E@@@A IF A7,EQ,0,I THEN,CVBXOK . IF ZERO NO MESS GS )@@G@@@D@D@A EXERR ERCV25 LEVEL,1 . NUMBER OUT OF RANGE@C@@@D GT )@@G@@ STORE A1,IOCBA1,X3 . RESTORE IOCB @ @@@D USING IOCB,X3GU )@@G@@ . @A@@@D MOVE IOCBX1,DCVSV . @A@@@D MOVE IGV )@@G@@OCBF1,DCVSV+5 . @A@@@D MOVE IOCBLF,DCVSV+2 . @H@@@D GW )@@G@@ ONUNIT ERCV25,ACCDSI,1 RDGBFS,CVBXOK,CVBXD5 DCVSV,6 DCVARL,1 GX )@@G@@@#@@@ACVBXOK LABEL . @D@B@A LOAD A9,0,I . SET DEFGY )@@G@@AULT VALUE @D@@@B SRBD A7,72 . SET DEFAULT VALUE GZ )@@G@@@#@@@ACVBXD5 LABEL . @B@B@A DSA A8,0,A3 . SHIFT HA )@@G@@@B@@@B DSA A7,0,A3 . SHIFT @C@@@A LOAD X2,HB )@@G@@DCVARL . TARGET ADDR @ @B@A STORE A9,W1,X2 . @ @@@BHC )@@G@@ STORE A8,W1,X2 . @C@@@A GOTO CVCVRT . -HD )@@G@@> RETURN @[@@@A. @[@@@A. @[@@@A. @#@@@ACVDXDF LABEL . HE )@@G@@@#@@@ACVDXBF LABEL . @B@@@A LOADD A7,W1,X2 . SOURCE HF )@@G@@@B@@@A LD1SC A9,DCVQL . QL @B@@@A LINK CVDHG )@@G@@VMT . 10**QR @ @@@A FADDD A7,KUNZRO . @B@@@A HH )@@G@@ GOTO CVCVST . RETURN @[@@@A. @[@@@A. @[@@@A. HI )@@G@@@#@@@ACVDXDX LABEL . @ @@@A LOADD A7,W1,X2 . @ @@@A HJ )@@G@@ LD1SC A9,DCVQR . @ @@@A LD1SC A3,DCVQL . @C@@@A HK )@@G@@ SUB A9,A3 . (QR-QL)*8 @C@@@A LINK CVDVPT . HL )@@G@@ /10**(QR-QL) @ @@@A FADDD A7,KUNZRO . @C@@@A HM )@@G@@ GOTO CVCVST . -> RETURN @[@@@A. @[@@@A. @[@@@AHN )@@G@@. @#@@@ACVBXBX LABEL . @B@@@A LOAD A7,W1,X2 . SHO )@@G@@OURCE @B@@@A LD0SC A3,DCVQR . QR @B@@@A LD0HP )@@G@@SC A9,DCVQL . QL @B@@@A SUB A3,A9 . QHQ )@@G@@R-QL @E@@@A IF A3,GE,36,I THEN,CVBXOK . DON'T UNDERFLOW HR )@@G@@@E@@@A IF A3,GE,0,I THEN,CVBXB1 . >=0 @^@@@AHS )@@G@@ LOADN A3,A3 . @E@@@A IF A3,GE,36,I THEN,CVBXD4 . HT )@@G@@DON'T OVERFLOW @D@@@A SLBD A6,36 . SHIFT A7 INTOHU )@@G@@ A6 @G@@@A DSA A6,36 . SHIFT BACK INTO A7 W/SIGNHV )@@G@@ EXTENSION @E@@@A LDSC A6,1,A3 . SCALE BY POWER OF THW )@@G@@WO @F@@@A IF A6,NE,0,I THEN,CVBXD4 . CHECK TO SEE IF OVEHX )@@G@@RFLOW @D@@@A DSA A6,1 . RESTORE NUMBER @C@@@AHY )@@G@@ GOTO CVBXB2 . -> CONTINUE @#@@@ACVBXB1 LABEL . HZ )@@G@@@C@@@A SSA A7,0,A3 . SHIFT DOWN @#@@@ACVBXB2 LABIA )@@G@@EL . @C@@@A LOAD X2,DCVARL . TARGET ADDR @ @@@A IB )@@G@@ STORE A7,W1,X2 . @C@@@A GOTO CVCVRT . -> RETUIC )@@G@@RN @[@@@A. @[@@@A. @[@@@A. @#@@@ACVDXBX LABEL . @#@@@AID )@@G@@CVDFBX LABEL . @#@@@ACVBFBX LABEL . @B@@@A LOAD A8,W1,X2 IE )@@G@@. SOURCE @D@@@A LOAD A7,KUNZRO . MAKE IT FLOAIF )@@G@@T EXP @D@@@A IF A8,GT,0,I THEN,CVBFB3 . -> + NUMBER @D@@@AIG )@@G@@ LOADN A7,A7 . NEGATE EXPONENT @#@@@ACVBFB3 LABIH )@@G@@EL . @B@@@A LD6SC A9,DCVQR . SCALE @C@@@A ADDII )@@G@@ A9,0200140,I . ADD EXPONENT @B@B@A STORE A9,IOCVSC+(IN 0IJ )@@G@@,H1,0,0) . @ @@@B STORE A9,IOCVSC+FH1 .@B@@@A FDIVD A7,IK )@@G@@IOCVSC . SCALE @ @@@A LD1SC A9,DCVQL . @C@@@A IL )@@G@@ LINK CVDVMT . SCALE *10**QL@A@@@A FADDD A7,KUNZROIM )@@G@@ . TRUNC @C@@@A GOTO CVCVST . -> RETURN @ @@@AIN )@@G@@/. UTILITY ROUTINES @#@@@ACVCVST LABEL . @B@@@A LOAIO )@@G@@D X2,DCVARL . TARGET @ @@@A STORED A7,W1,X2 . @B@@@AIP )@@G@@CVCVRT LABEL . RETURN @ @@@A LOAD F,DCVSV+5IQ )@@G@@ . @ @@@A LOADD A3,DCVSV . @^@@@A STORED A3,X1 . IR )@@G@@@ @@@A LOADD A7,DCVSV+2 . @ @@@A LOAD A9,DCVSV+4 . IS )@@G@@@C@@@A JMP . -> RETURN @[@@@A. @[@@@AIT )@@G@@. @[@@@A. @#@@@ACVDVPT LLOC . @C@@@A LOADN A9,A9 . IU )@@G@@ DO MPY 10**-Q@#@@@ACVDVMT LLOC . @B@@@A LOADM A3,IV )@@G@@A9. ABS(Q) @#@@@ACVDVM3 LABEL . @D@@@A IF A3,IW )@@G@@LT,KFLTSZ+1,I THEN,CVDVDN . -> DONE @B@@@A IF A9,LT,0,I THEN,IX )@@G@@CVDVDV . @A@@@A FMPYD A7,KKPW10+KFLTSZ-2 . @^@@@A GOTIY )@@G@@O CVDVM2 . @#@@@ACVDVDV LABEL . @A@@@A FDIVD A7,KKPW10+KFLTSIZ )@@G@@Z-2 . @#@@@ACVDVM2 LABEL . @ @@@A SUB A3,KFLTSZ,I . @^@@@AJA )@@G@@ GOTO CVDVM3 . @#@@@ACVDVDN LABEL . @A@@@A IF A3,JB )@@G@@EQ,0,I THEN,LJMP .@C@@@A IF A9,LT,0,I THEN,CVCVDX . -> DIVIDEJC )@@G@@@A@@@A FMPYD A7,KKPW10-2,A3 . @#@@@A LJMP . @#@@@AJD )@@G@@CVCVDX LABEL . @A@@@A FDIVD A7,KKPW10-2,A3 . @#@@@A JE )@@G@@ LJMP . @^@@@AEXCN1 CSECT 3 . @ @@@ADCVMXN SF 037777777JF )@@G@@7777 .@#@@@A CEND . @B@@@AERCV25 EQU 10 . NUMBER OUT OF RANJG )@@G@@GE @#@@@A END . ___ A7-A8 NOW CONTAIN NUMBER... @#@@@AJH )@@G@@CVBXBF LABEL . @#@@@ACVBXDF LABEL . @B@@@A LD0SC A3,DCVQLJI )@@G@@*[S@@@*SDFF*@C@@@Z. COPYRIGHT 1975 BY UNIVERSITY OF MARYLAND @[@@@ZJJ )@@G@@. @D@@@Z. QUESTIONS CONCERNING THIS SHOULD BE DIRECTED TO: @[@@@ZJK )@@G@@. @ @@@Z. MARVIN V. ZELKOWITZ @B@@@Z. DEPARTMENT OF CJL )@@G@@OMPUTER SCIENCE @A@@@Z. UNIVERSITY OF MARYLAND @B@@@Z. JM )@@G@@ COLLEGE PARK, MARYLAND 20742 @[@@@Z. @G@@@Z. PERMISSIOJN )@@G@@N TO USE THESE LISTINGS AND THE COMPUTER PROGRAMS THEY@E@@@Z. REPRESENJO )@@G@@T IS GRANTED UNDER THE FOLLOWING CONDITIONS: @[@@@Z. @G@@@Z. JP )@@G@@ 1. UNLIMITED USE MAY BE MADE OF THE PROGRAMS REPRESENTED BY @G@@@ZJQ )@@G@@. THESE LISTINGS PROVIDED THAT THE NAME PLUM OR UNIVERSITY OF MARYLANDJR )@@G@@@E@@@Z. PL/1 COMPILER REMAINS ASSOCIATED WITH THESE PROGRAMS. @[@@@ZJS )@@G@@. @F@@@Z. 2. MODIFICATIONS MAY BE MADE TO THE LISTINGS PROVIDJT )@@G@@ED: @[@@@Z. @G@@@Z. (A) ANY RESULTING PROGRAM, OR REPORT, PJU )@@G@@APER OR DOCUMENTATION @G@@@Z. DESCRIBING SUCH PROGRAM WILL CLEAJV )@@G@@RLY INDICATE THAT THE PROGRAM @E@@@Z. IS A DIALECT OF PLUM OR IS JW )@@G@@DERIVED FROM PLUM, AND @[@@@Z. @G@@@Z. (B) ALL SUCH MODIFICAJX )@@G@@TIONS, OTHER THAN TRIVIAL CORRECTIONS @F@@@Z. OF ERRORS IN THJY )@@G@@E SOURCE PROGRAMS, SHALL BE REPORTED AND @G@@@Z. A BRIEF DESCRIPJZ )@@G@@TION OF THE FEATURE ADDED SHALL BE SUBMITTED @C@@@Z. TO THE UNKA )@@G@@IVERSITY OF MARYLAND, AND @[@@@Z. @F@@@Z. (C) NO PROGRAMSKB )@@G@@ DERIVED FROM THESE LISTINGS SHALL BE SOLD@G@@@Z. WITHOUT WRITTENKC )@@G@@ APPROVAL FROM THE UNIVERSITY OF MARYLAND, AND @[@@@Z. @F@@@Z. KD )@@G@@ (D) COPIES OF THESE PROGRAMS MAY BE TRANSMITTED TO OTHER @G@@@Z. KE )@@G@@ LOCATIONS PROVIDED THAT SUCH TRANSMITTALS CLEARLY INDICATE @G@@@ZKF )@@G@@. WHETHER THE PROGRAMS ARE EXACT COPIES OF THE UNIVERSITY OF KG )@@G@@@E@@@Z. MARYLAND PLUM COMPILER OR ARE MODIFICATIONS TO IT. @[@@@ZKH )@@G@@. @G@@@Z. 3. THESE CONDITIONS ONLY APPLY TO THE PLUM COMPILERKI )@@G@@ ITSELF, @F@@@Z. AND ARE NOT MEANT TO APPLY TO ANY PROGRAM WRITTEN KJ )@@G@@USING PLUM. @E@@@Z. THE PURPOSE OF THESE CONDITIONS IS TO ALLOW ANY USKK )@@G@@ER TO @F@@@Z. EXPERIMENT WITH THE COMPILER AS LONG AS THE RESULTING PRKL )@@G@@ODUCT @G@@@Z. IS NOT SOLD AND AS LONG AS IT IS KNOWN THAT THE PRODUCT KM )@@G@@DEVELOPED @#@@@Z. FROM PLUM. @[@@@Z. @[@@@Z. @[@@@Z. KN )@@G@@@[@@@Z. @[@@@Z. @[@@@Z/. @ @@@Y. LEXICAL ANALYSIS KO )@@G@@@^@@@Y. DESTROYS X1-X5 A7-A11 @B@@@Y. SETS A14=DLXAC A15=DLXACN F=DLXCKP )@@G@@L @#@@@Y AXR$ . @#@@@Y DCLRG . @G@@@Y REGKQ )@@G@@S A7,A8,A9,A10,A11,A12,A13,A14,A15,A3 X1,X2,X3,X4,X5,X6,X7,;@A@@@Y KR )@@G@@ X8,X9,X10,A1,A2 . @G@@@Y ALREG A7,A8,A9,A10,A11,A12,KS )@@G@@A13,A14,A15 X1,X2,X3,X4,X5,X6,X7,; @ @@@Y X8,X9,X10 . KT )@@G@@@[@@@Y. @^@@@Y. SETUP DSECTS @#@@@Y UNLIST . @]@Z@YKU )@@G@@@ADD PLTVDS @#@@@Z@ADD,P PLTVDS @#@Z@Y LIST . @]@Z@Y@ADD PKV )@@G@@LSAW @#@@@Z@ADD,P EXCDS . @#@@@Z LIST . @E@@@Y PLWKW )@@G@@ORD . WORD DESIGNATION DSECT @E@@@Y PLSD . KX )@@G@@ SYMBOL TABLE DESCRIPTOR @C@@@Y PLAC . KY )@@G@@ ALPHA CODE @#@@@+ PLIOCB . @#@@@Y PLAR . KZ )@@G@@@F@@@YACCMT EQU 0001 . COMMENT TOKEN , INTERNAL ONLY LA )@@G@@@D@@@YACECMT EQU 0002 . END COMMENT */ @^@@@YUPPERCLB )@@G@@* PROC *0,3 . @^@@@Y LOAD A3,DCVINT@D@@@Y AND,U A3,LC )@@G@@0777-040 . CONVERT TO UPPER CASE @ @@@Y STORE A4,DCVINT . LD )@@G@@@#@@@Y END . @B@@@Y/ . LEXICAL ANALYZER - MAIN DRIVER LE )@@G@@@^@@@YLXSTOP EQU 128 . @#@@@YGETCX* PROC . @C@Z@Y LOALF )@@G@@D A3,DGOPSV+1 . GET CHAR-1 LEFT@C@@@Z LOAD A3,DEXLXS+7 . LG )@@G@@ GET CHAR-1 LEFT@E@@@Y ADD A3,1,I . GET TRUE NUMBERLH )@@G@@ REMAINING @D@@@Y LOOP A3,GETCX2 . VALID CHAR TO GET LI )@@G@@@C@@@Y ADD A3,1,I . SET COUNT TO -1@B@@@Y LOALJ )@@G@@D A8,LXSTOP,I . SET EOF @B@@@Y GOTO GETCX1 . -> LK )@@G@@MERGE @#@@@YGETCX2 LABEL . @B@@@Y EX 0,*A1 . GETLL )@@G@@ CHAR @^@@@Z SLB A8,29 .@E@@@Z SRB A8,29 . LM )@@G@@ KEEP ONLY 7 BITS FOR CHAR@#@@@YGETCX1 LABEL . @D@@@Y SUBLN )@@G@@ A3,1,I . DELETE CHAR COUNT. @ @Z@Y STORE A3,DGOPSLO )@@G@@V+1 . @ @@@Z STORE A3,DEXLXS+7 . @#@@@Y END . @^@-@YLP )@@G@@LXERR* PROC *1 . @A@-@Y EXERR LXERR(1,1) LEVEL,1 . @#@-@YLQ )@@G@@ END . @G@@@YLXT* PROC 1 . SPEC SYMBOL ELR )@@G@@NTRY,NUMBER CLASS,TOKEN @G@@@YXX FORM 9,9,18 . ///////LS )@@G@@///////////////////////////// @D@@@Y DO LXT(1,2)>I ,Y(1) EQU LT )@@G@@LXT(1,2)-LXNQP . @D@@@Y DO LXT(1,2)=I ,Y(1) EQU LXNLPN-LXNQPLU )@@G@@ . @B@@@Y XX LXT(1,1),Y(1),LXT(1,3) . @#@@@Y ENDLV )@@G@@ . @G@@@YLXOP FORM 18,9,9 . *********************************LW )@@G@@************@#@@@YEXLX CSECT 3 .@C@@@YLXILRT LABEL . LX )@@G@@ ERROR RETTRN @ @@@Y MOVE DLXACN,0,I . @ @@@Y MOVLY )@@G@@E DLXCLN,0777,I .@ @@@Y MOVE DLXSZN,7,I . @ @@@Y LOALZ )@@G@@DA A3,DLXCON . @ @@@Y STORE A3,DLXBCN . @A@@@Y MOVMA )@@G@@E DLXCON,LXERNM,2 . @#@@@YLXCRTN LABEL . @E@@@Y LOAD X11MB )@@G@@,1,I . SKIP 1 WORD ON RETURN @C@@@Y GOTO LXERRI . MC )@@G@@ -> RETURN @^@@@YLXERNM SF '*ERR' . @^@@@YFILL(1) SF MD )@@G@@ 'OR* ' . @#@@@Y CEND . @C@@@YLXCDND LABEL . ME )@@G@@ END OF IMAGE @E@@@Y LOAD X11,0,I . SKIP NO WORDSMF )@@G@@ ON RETURN @#@@@YLXERRI LABEL . @ @Z@Y LOAD A2,DGOCSV . MG )@@G@@@ @@@Z LOAD A2,DEXLXS . @ @Z@Y LOAD X2,DGOCSV+1 . MH )@@G@@@ @@@Z LOAD X2,DEXLXS+1 . @ @Z@Y LOAD X3,DGOCSV+2 . MI )@@G@@@ @@@Z LOAD X3,DEXLXS+2 . @ @Z@Y LOAD X4,DGOCSV+3 . MJ )@@G@@@ @@@Z LOAD X4,DEXLXS+3 . @ @Z@Y LOADD A5,DGOCSV+4 . MK )@@G@@@ @@@Z LOADD A5,DEXLXS+4 . @ @Z@Y LOAD X5,DGOPSV . ML )@@G@@@ @@@Z LOAD X5,DEXLXS+6 . @ @Z@Y LOADD A7,DGOPSV+1 . MM )@@G@@@ @@@Z LOADD A7,DEXLXS+7 . @ @Z@Y LOADD A9,DGOPSV+3 . MN )@@G@@@ @@@Z LOADD A9,DEXLXS+9 . @ @Z@Y LOAD A11,DGOPSV+5 . MO )@@G@@@ @@@Z LOAD A11,DEXLXS+11 .@E@@@Y A,H2 X11,0,A0 . ADJMP )@@G@@UST RETURN ADDRESS BY 1 OR 0 @C@@@Y JGD A0,0,X11 . RETURN ANMQ )@@G@@D POP STACK @F@@@YEXLXI* LOCAL . MAIN ENTRY POINT FRMR )@@G@@OM SYNA . @ @Z@Y STORE A2,DGOCSV . @ @@@Z STORE A2,MS )@@G@@DEXLXS . @ @Z@Y STORE X2,DGOCSV+1 . @ @@@Z STORE X2,MT )@@G@@DEXLXS+1 . @ @Z@Y STORE X3,DGOCSV+2 . @ @@@Z STORE X3,MU )@@G@@DEXLXS+2 . @ @Z@Y STORE X4,DGOCSV+3 . @ @@@Z STORE X4,MV )@@G@@DEXLXS+3 . @ @Z@Y STORED A5,DGOCSV+4 . @ @@@Z STORED A5MW )@@G@@,DEXLXS+4 . @ @Z@Y STORE X5,DGOPSV . @ @@@Z STORE X5,MX )@@G@@DEXLXS+6 . @ @Z@Y STORED A7,DGOPSV+1 . @ @@@Z STORED A7MY )@@G@@,DEXLXS+7 . @ @Z@Y STORED A9,DGOPSV+3 . @ @@@Z STORED A9MZ )@@G@@,DEXLXS+9 . @ @Z@Y STORE A11,DGOPSV+5 . @ @@@Z STORE A11NA )@@G@@,DEXLXS+11 .@#@@@YLXCRIN LABEL . @D@@@Y GETCX . NB )@@G@@ GET NEXT CHARCTER @#@@@YLXCRI2 LABEL . @F@@@Y LOAD X3,NC )@@G@@A8 . PUT CHARACTER INTO INDEX REG @G@@@Y LOAD X3,ND )@@G@@LXTRTB,X3 . GET ADDRESS OF ROUTINE FROM TABLE @H@@@Y GOTNE )@@G@@O 0,X3 . -> PROPER ROUTINE FOR LEADING CHARACTER @A@@@YNF )@@G@@. LXTRTB SQ OPERATOR CLASS ENTRY @A@@@Y. SQ NUMBER CLASS ENNG )@@G@@TRY @B@@@Y. SH FIRST CHARACTER TOKEN CLASS@D@@@YLXTRTB LABENH )@@G@@L . BRANCH TABLE . @G@@@Y DO 040 , LXTNI )@@G@@ 2,I,LXILGL . ASCII 000 TO 037 @C@@@Y LXT 2,INJ )@@G@@,LXCRIN . 040 BLANK @B@@@Y LXT 2,I,LXILGL . 0NK )@@G@@41 ! @D@@@Y LXT 2,I,LXILGL . 042 DOUBLE QUOTE @B@@@YNL )@@G@@ LXT 2,I,LXILGL . 043 # @B@@@Y LXT 2,I,LXILGNM )@@G@@L . 044 $ @B@@@Y LXT 2,I,LXILGL . 045 % @B@@@YNN )@@G@@ LXT 2,I,LXILGL . 046 & @B@@@Y LXT 2,I,LXSCONO )@@G@@N . 047 ' @B@@@Y LXT 2,I,LXSPEC . 050 ( @B@@@YNP )@@G@@ LXT 3,I,LXSPEC . 051 ) @B@@@Y LXT 2,I,LXILGNQ )@@G@@L . 052 * @B@Z@Y LXT 5,I,LXSPEC . 053 + @B@@@ZNR )@@G@@ LXT 4,I,LXSPEC . 053 + @B@Z@Y LXT 26,I,LXSPNS )@@G@@EC . 054 , @B@@@Z LXT 8,I,LXSPEC . 054 , @B@Z@YNT )@@G@@ LXT 8,I,LXSPEC . 055 - @B@@@Z LXT 6,I,LXSPENU )@@G@@C . 055 - @B@@@Y LXT 2,LXNLPD,LXNDEC . 056 . @B@@@YNV )@@G@@ LXT 2,I,LXILGL . 057 / @B@@@Y LXT 1,LXNLP1,NW )@@G@@LXNCON . 060 0 @B@@@Y LXT,1,LXNLP1,LXNCON . 061 1 @F@@@YNX )@@G@@ DO 8 , LXT 1,LXNLP2,LXNCON . 062-071 2-9@B@@@YNY )@@G@@ LXT 2,I,LXILGL . 072 : @C@Z@Y LXT 6,I,LXSPENZ )@@G@@C . 073 SEMICOLON@C@@@Z LXT 5,I,LXSPEC . 073 SEMOA )@@G@@ICOLON@B@@@Y LXT 2,I,LXILGL . 074 < @B@Z@Y LXTOB )@@G@@ 18,I,LXSPEC . 075 = @B@@@Z LXT 7,I,LXSPEC . 0OC )@@G@@75 = @B@@@Y LXT 2,I,LXILGL . 076 > @B@@@Y LXTOD )@@G@@ 2,I,LXILGL . 077 ? @B@@@Y LXT 2,I,LXILGL . 1OE )@@G@@00 @ @B@@@Y LXT 1,I,LXALFA . 101 A @B@@@Y LXTOF )@@G@@ 1,LXNBIN,LXALFA . 102 B @B@@@Y LXT 1,I,LXALFA , 1OG )@@G@@03 C @B@@@Y LXT 1,I,LXALFA . 104 D @B@@@Y LXTOH )@@G@@ 1,LXNEXP,LXALFA . 105 E @B@@@Y LXT 1,I,LXALFA . 1OI )@@G@@06 F @B@@@Y LXT 1,I,LXALFA . 107 G @B@@@Y LXTOJ )@@G@@ 1,I,LXALFA . 110 H @B@Z@Y LXT 1,LXNCP,LXALFA . 1OK )@@G@@11 I @B@@@Z LXT 1,LXNCMP,LXALFA . 111 I @C@@@Y DO OL )@@G@@17 , LXT 1,I,LXALFA . 112-132 J-Z @C@@@Y DO 3 , LXT 2,I,LXILGLOM )@@G@@ . 133-135 [\] @B@@@Y LXT 2,I,LXILGL . 136 ^ @C@@@YON )@@G@@ LXT 1,I,LXALFA . 137 BREAK @B@@@Y LXT 2,IOO )@@G@@,LXILGL . 140 @C@@@Y LXT 0,I,LXALFA . 141 LC OP )@@G@@A @C@@@Y LXT 0,LXNBNF,LXALFA . 142 LC B @C@@@Y OQ )@@G@@ LXT 0,I,LXALFA . 143 LC C @C@@@Y LXT 0,I,LXALFOR )@@G@@A . 144 LC D @C@@@Y LXT 0,LXNEXF,LXALFA . 145 LC OS )@@G@@E @D@@@Y DO 3 , LXT 0,I,LXALFA . 146-150 LC F G H @C@Z@YOT )@@G@@ LXT 0,LXNCMP,LXALFA . 151 LC I @C@@@Z LXT 0,LOU )@@G@@XNCMQ,LXALFA . 151 LC I @D@@@Y DO 17 , LXT 0,I,LXALFA . 1OV )@@G@@52-172_ LC J-Z @C@@@Y DO 5 , LXT 2,I,LXILGL . 0173-177 OW )@@G@@@D@@@Y LXT 2,I,LXCDND . 0200 STOP CHAR @C@@@YLXCTRTOX )@@G@@ LABEL . RETURN POINT @F@@@Y +LXALF2 . OY )@@G@@ LOWER CASE, CONVERT TO UPPER @E@@@Y +LXALF3 . OZ )@@G@@ UPPER CASE AND DIGITS . @[@@@-. @[@@@-. @[@@@-. PA )@@G@@@[@@@-. @D@@@-. ROUTINE TO SAVE IO REGS FOR ON UNIT CALL PB )@@G@@@#@@@-LXIOSV LOCAL . @ @@@- LOAD X3,DEXLXS+2 .@ @@@- PC )@@G@@ USING IOCB,X3 . @ @@@- LINK ONIOSN . @A@@@- PD )@@G@@ MOVE IOCBLF,DEXLXS+7 . @A@@@- MOVE IOCBF1,DEXLXS+4 . PE )@@G@@@#@@@- JMP . @F@@@Y/ . NAME CRACKING ROUTINE A8=CHARPF )@@G@@ACTER , X3=LXTRTB ENTRY @#@@@YLXALFA LABEL . @A@@@Y MOVE DLXPG )@@G@@CON,KBLANK,16 . @F@@@Y SETPC 4,DLXCON . MOVE NAME TO PH )@@G@@WORD BOUNDARY @E@@@Y SETL A9,63,I . SET MAXIMUM NPI )@@G@@AME SIZE @#@@@YLXALF2 LABEL . @E@@@Y SET 040,OFF,A8 . PJ )@@G@@ CONVERT TO UPPER CASE @#@Z@YLXALF2 LABEL . @#@@@ZLXALF3 LABPK )@@G@@EL . @F@@@Y PUTC . PUT CHARACTER INTO OUTPUTPL )@@G@@ AREA @D@@@Y GETCX . GET NEXT INPUT @^@@@YPM )@@G@@ LOAD X3,A8 . @C@@@Y L,Q1 A3,LXTRTB,X3 . TYPE OF CHAPN )@@G@@R @E@@@Y IF A3,GE,2,I THEN,LXALF4 . -> END OF STRING PO )@@G@@@ @@@Y LOAD X3,LXCTRT,A3 . @^@@@Y LOOP A9,0,X3 . @E@Z@YPP )@@G@@LXALF3 LABEL . PRINT MESSAGE AND RETTRN @F@-@Y PQ )@@G@@ LXERR LXER02 . [EROR MESSAGE, NAME TOO LONG] @D@-@Y PR )@@G@@ GOTO LXILRT . -> ERROR RETTRN @^@@@-. 'NAME TOOPS )@@G@@ LONG'@C@@@- LINK LXIOSV . SAVE REGS @H@@@- PT )@@G@@ ONUNIT LXER02,ACCDER,1 RDGBFS,LXILRT,LXILRT DEXWK1,4 DEXMAX,0 PU )@@G@@@#@@@YLXALF0 LABEL . @F@-@Y LXERR LXER63 . NAME NOPV )@@G@@T FOUND IN HASH TABLE @B@@@-. 'NAME NOT FOUND IN HASH TABLE' PW )@@G@@@ @@@- LINK LXIOSV . @F@@@- ONUNIT LXER63,ACCDERPX )@@G@@,1 RDGBFS,I,R DEXWK1,4 DEXMAX,0 @C@@@Y LOAD A9,DLXSZN . PY )@@G@@ ASSUME STRING@ @@@Y GOTO LXSCE1 . @#@@@YLXALF4 LABPZ )@@G@@EL . @F@@@Y LINK LXRERR . REREAD CHARACTER NEXT TIMQA )@@G@@E @D@@@Y LPCNT A9,63,I . FIND SIZE OF WORD @D@@@YQB )@@G@@ STORE A9,DLXSZN . SAVE SIZE OF TOKEN @D@@@Y LINQC )@@G@@K LXSRCH . SEARCH FOR NAME . @D@@@Y GOTO LXALF0 . QD )@@G@@ -> NAME NOT FOUND @B@@@Y. RETURN WITH X2=BCD ENTRY ADQE )@@G@@DRESS @ @@@Y USING SDBCD,X2 . @F@@@Y LOAD A8,SDBCLSQF )@@G@@ . SEE IF ILLEGAL RESERVED WWRD @E@@@Y IF A8,EQ,LXRQG )@@G@@SWD,I THEN,LXALF0 . -> YUP, ERROR @C@@@Y STORE A8,DLXCLN . QH )@@G@@ SET CLASS @B@@@Y MOVE DLXACN,0,I . SET VAR@E@@@YQI )@@G@@ STORE X2,DLXIDN . SAVE PTR TO SD ENTRY @D@@@Y QJ )@@G@@ LOADA X2,SDBBCD . SAVE PTR TO STRING @ @@@Y STORE X2,QK )@@G@@DLXBCN . @C@@@Y GOTO LXCRTN . -> RETURN @D@@@YQL )@@G@@LXILGL LABEL . ILLEGAL SYMBOL . @^@-@Y LXEQM )@@G@@RR LXER04 . @D@-@Y GOTO LXILRT . -> IGNORE SYMBOL . QN )@@G@@@ @@@-. 'ILLEGAL SYMBOL' @ @@@- LINK LXIOSV . QO )@@G@@@H@@@- ONUNIT LXER04,ACCDER,1 RDGBFS,LXILRT,LXILRT DEXWK1,4 QP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@Z@@@@@@@@@@@@@@?@@@QQ )@@G@@@@@@@)@@@@@@@@@@@@@@,@@W@@@@@P@@@@@@@@@@@@@@@@@@@@@@@:@@]@@@@@@@@@@@@@@@QR )@@G@@@@+@@^@@@@@@@@@@@J@@@@@@@@$@@@@@@@@A@@@@@@@@@@@@@@@@@-@@@@@@@@@@@@@@ @@@QS )@@G@@@@@@@@@@4@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@I@@@@@@@@@@@N@@@@@@@@@@@@@@@QT )@@G@@@@@@@@@@2@@@@@@@@@@@@@@@@@@@@U@@@@@@@@@@@O@@@@@@@@@@@@@@@@@@@@@@@@@@V@@@QU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@H@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@D@@@@@@QV )@@G@@@@@@@&@@@@@@@@@@@@@@@@@@@@@@@=@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@R@@@@@@QW )@@G@@@@@@@Q@@<@@@@@@@@@@@@@@@@@@@@*@@@@@@@@@@@@@@S@@@@@@@@@@@X@@@@@@@@@@@3@@@QX )@@G@@@@@@@@@@@@@[@@@@@@@@@@@@@@@@@F@@@@@@@@@@@Y@@C@@@@@@@@@@@@@@@@@@@@@@@@@@@QY )@@G@@@@@@@@@@L@@@@@@@@@@@M@@@@@@@@@@@G@@@@@@@@@@@!@@@@@@@@@@@@@@@@@@@@#@@@@@@QZ )@@G@@@@@@@1@@@@@@@@@@@@@@B@@@@@@@@(@@@@@@@@@@@@@@T@@>@@@@@0@@@@@@@@@@@@@@@@@@RA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@E@@@@@@@@@@@@@@@@@@@@^@@7CHANGE @@ @@@@@@@@@RB )@@G@@INFOR @@A@@K@@@@@@OUTPUT @@B@@5@@@@@@STAT @@C@@@@@@@@@RC )@@G@@CYLINDER @@E@@@@@@@@@ABSAD2 @@G@@@@@@@@@ABSAD @@G@@@@@@@@@RD )@@G@@SEARCH @@I@@%@@@@@@PACKID @@J@@@@@@@@@BASDAS @@J@@@@@@@@@RE )@@G@@DISC @@J@@@@@@@@@DRUM @@J@@@@@@@@@MASK1 @@J@@@@@@@@@RF )@@G@@P1MASK1 @@J@@@@@@@@@FATBL @@J@@\@@@@@@DAS @@J@@@@@@@@@RG )@@G@@MCT @@J@@@@@@@@@MCTLEN @@J@@@@@@@@@ANS @@J@@@@@@@@@RH )@@G@@DONE @@J@@@@@@@@@TRD4 @@J@@@@@@@@@LINE @@J@@@@@@@@@RI )@@G@@EDT @@J@@@@@@@@@PLIN @@J@@@@@@@@@PLIN1 @@J@@@@@@@@@RJ )@@G@@PLIN2 @@J@@@@@@@@@SKIP1 @@J@@@@@@@@@P1FLAG @@J@@@@@@@@@RK )@@G@@SSUUSP @@J@@@@@@@@@XOPT @@J@@@@@@@@@YOPT @@J@@@@@@@@@RL )@@G@@VOPT @@J@@@@@@@@@GOPT @@J@@7@@@@@@ADSPEC @@J@@@@@@@@@RM )@@G@@WRITING @@J@@@@@@@@@HMANY @@J@@@@@@@@@SPEC1AD @@J@@@@@@@@@RN )@@G@@BATCH @@J@@@@@@@@@ABSADSP @@J@@@@@@@@@PKIDX @@J@@@@@@@@@RO )@@G@@PYET @@J@@@@@@@@@R1F0 @@J@@@@@@@@@MAXADR @@J@@@@@@@@@RP )@@G@@CYLSP @@J@@@@@@@@@CYL @@J@@@@@@@@@HED @@J@@@@@@@@@RQ )@@G@@XPKID @@J@@@@@@@@@PKT @@J@@@@@@@@@ADDR @@J@@6@@@@@@RR )@@G@@BUF @@J@@@@@@@@@NOTMS @@J@@@@@@@@@NOTCON @@J@@@@@@@@@RS )@@G@@SEC0 @@J@@@@@@@@@FDBIN @@J@@@@@@@@@RDV1 @@L@@@@@@@@@RT )@@G@@ DOPTO . SET TO OUTPUT ELEMENT. @F@@@@ SZ RU )@@G@@ DOPTI . SET TO READ BACK FROM ELT.@D@@@@ TZ RV )@@G@@ INFIST . IS IN=OUT. @D@@@@ TZ LODC RW )@@G@@ . IS IT LOAD. @F@@@@ J DFIL4 . YERX )@@G@@S, OR IN .NOT.= OUT. @D@@@@ L,U A2,1 . GERY )@@G@@T FLAG. @E@@@@ DTE A0,ELTSV . IS ELT NAME NERZ )@@G@@W. @C@@@@ S A2,NEWFIL . YES. @D@@@@ SA )@@G@@ DL A0,OUTBL+6 . CHECK VERS. @C@@@@ DTE SB )@@G@@ A0,VERSV . NEW. @C@@@@ S A2,NEWFIL SC )@@G@@ . YES. @F@@@@ . IF BOTH SAME NSD )@@G@@EWFIL=0. @B@@@@DFIL4 . ENTRY IF NO NEW ELT NAME/VERS.@E@@@@ SE )@@G@@ L A0,LCT . GET LINE POSITION. @D@@@@ LXSF )@@G@@I,U A0,1 . SET FLAG. @C@@@@ S A0,LSG )@@G@@CTFS . SET IT. @F@@@@ LMJ X11,FILE1A . WRSH )@@G@@ITE OUTPUT AS IF @EOF. @E@@@@ DL A0,ELTSV . GESI )@@G@@T SAVED ELTN. @D@@@@ DS A0,OUTBL+2 . RESTORE SJ )@@G@@IT. @D@@@@ DL A0,VERSV . GET VERS. @C@@@@SK )@@G@@ DS A0,OUTBL+6 . RESTORE.@E@@@@ DL SL )@@G@@ A0,EDOUT . GET OUTPUT FNAME. @C@@@@ TZ LODCSM )@@G@@ . IF LOAD,@E@@@@ DL A0,INTBL . GESN )@@G@@T INPUT FNAME. @D@@@@ DS A0,EDIN . SET AS ISO )@@G@@NPUT. @D@@@@ DL A0,EDASV . GET EDIT$A. @D@@@@SP )@@G@@ DS A0,EDOUT . SET AS OUTPUT.@F@@@@ L SQ )@@G@@ A0,DOPTOS . GET SAVED OUTPUT OPT. @D@@@@ S SR )@@G@@ A0,DOPTO . RESTORE IT. @E@@@@ SZ A0 SS )@@G@@ . CLEAR IN CASE DATAF.@G@@@@ TNZ DOPTI ST )@@G@@ . IF DATA IN, SET INTBL+10 = 0. @E@@@@ L A0,OSU )@@G@@UTBL+10 . GET LAST WRITE ADDR.@D@@@@ S A0,INTBL+1SV )@@G@@0 . SET FOR INPUT.@C@@@@ SZ,H2 OUTBL+9 . CLSW )@@G@@EAR. @E@@@@ SZ PS1ALL . SET AS FIRST PASS. SX )@@G@@@E@@@@ S X11,ADSAVE . SET ADSAVE NONZERO. @F@@@@SY )@@G@@ SZ FCIMG . RESET LABEL IMAGE FLAG. @G@@@@SZ )@@G@@ SZ PRFIL . RESET PRINTFILE FLG IN CASE. TA )@@G@@@F@@@@ SZ FORF . RESET IS FORTRAN TYPE. TB )@@G@@@F@@@@ TZ LODC . TEST IF LOAD OR FILE. TC )@@G@@@C@@@@ J DLOAD2 . LOAD. @D@@@@ TNTD )@@G@@Z NEWFIL . TEST IF NEW. @E@@@@ SZ OUTBTE )@@G@@L+11 . CLEAR TDATE IF YES. @F@@@@ TZ NEWFIL TF )@@G@@ . IF UPDATING ELT, SKIP. @D@@@@ J DFIL51 TG )@@G@@ . USE OLD ADDR. @^@@@@DFIL5 . RETURN. @E@@@@ L TH )@@G@@ A0,INTBL+10 . GET NEW START ADDR. @C@@@@ S TI )@@G@@ A0,INPTST . SET IT. @B@@@@DFIL51 . ENTRY FROM FILE IF ELT/VTJ )@@G@@ USED.@D@@@@ LMJ X6,TOP2 . REOPEN FILES. @F@@@@TK )@@G@@ TZ A10 . TEST IF GOING TO TOP. @H@@@@TL )@@G@@ J GOTO4 . ENTER NEXT WITH A10 LOADED FROM TM )@@G@@FILE1.@F@@@@ PRINT EDITS,1,1,1 . PRINT EDIT TO WAKE UTN )@@G@@SER. @E@@@@ J NXRQ . GO TO NEXT REQ. TO )@@G@@@B@@@@DLOAD1* . ENTRY FOR 'LOAD' COMMAND. @E@@@@ . COMMANTP )@@G@@D FILES CURRENT ELT, THEN OPENS INPUT FROM@B@@@@ . NEW ELT NAMETQ )@@G@@D ON COMMAND. @]@@@@ . @^@@@@ . OPTIONS ARE:@B@@@@TR )@@G@@ . N - DO NOT FILE CURRENT FILE. @C@@@@ . R - SET READTS )@@G@@-ONLY FOR LOADED ELT. @ @@@@ . P - CONVERT TO FD.@A@@@@ TT )@@G@@ . Q - CONVERT TO ASCII. @]@@@@ . @D@@@@ L,U TU )@@G@@ A1,1 . GET FLAG. @D@@@@ S A1,LODC TV )@@G@@ . SET IS 'LOAD'.@E@@@@ L A0,ROPT . GETW )@@G@@T OLD OPTION. @C@@@@ S A0,ROPTS . SAVE IT.TX )@@G@@@E@@@@ SZ POPT . CLEAR OLD OPTIONS. @B@@@@TY )@@G@@ SZ QOPT . @B@@@@ SZ FOPTTZ )@@G@@ . @E@@@@ SZ,H1 ROPTS . CLEAR ROUA )@@G@@PT SETUP. @E@@@@ TNZ DELIM . IS THERE AN OPUB )@@G@@TION. @C@@@@ J DLOAD12 . NO. @B@@@@DLOAD1UC )@@G@@1 . REENTER FOR MORE OPTIONS. @E@@@@ LMJ X10,GET UD )@@G@@ . GET NEW OPTION. @E@@@@ OR,U A1,040 UE )@@G@@ . MAKE LOWER CASE. @C@@@@ L,U A0,1 . GEUF )@@G@@T 1. @D@@@@ TNE,U A2,'N'+040 . IS IT 'N'. @F@@@@UG )@@G@@ S A0,ROPT . SET ROPT ON IF 'N' SET. @B@@@@UH )@@G@@ TNE,U A2,'R'+040 . @E@@@@ S,H1 A0,RUI )@@G@@OPTS . SAVE 'R' IF GIVEN. @E@@@@ TNE,U A2,'P'+040UJ )@@G@@ . LOOK FOR P OPT. @C@@@@ S A0,POPT UK )@@G@@ . SET. @C@@@@ TNE,U A2,'Q'+040 . AND Q. @C@@@@UL )@@G@@ S A0,QOPT . SET. @E@@@@ TZ UM )@@G@@ DELIM . MORE SUBFIELDS? @C@@@@ J DLOAUN )@@G@@D11 . YES. @ @@@@DLOAD12 . END OR NO OPTIONS.@E@@@@ UO )@@G@@ DL A0,INTBL . GET ORIG INPUT. @E@@@@ TZUP )@@G@@ ROPT . TEST READ-ONLY. @E@@@@ DS UQ )@@G@@ A0,EDOUT . SET FOR FILE IF R/O.@F@@@@ J DFILUR )@@G@@11 . READ IN ELT/VER, ETC. @^@@@@DLOAD2 . DO PFS. US )@@G@@@E@@@@ L,H2 A1,ROPTS . GET PREVIOUS ROPT. @F@@@@UT )@@G@@ TZ,H1 ROPTS . TEST IF 'R' ON LOAD SET. @C@@@@UU )@@G@@ L,U A1,1 . YES. @E@@@@ S UV )@@G@@ A1,ROPT . RESTORE OR SET ROPT.@C@@@@ DL A0,EUW )@@G@@LTNB . GET ELT.@D@@@@ DS A0,INTBL+2 . SEUX )@@G@@T IN INTBL. @D@@@@ DL A0,VERNB . GET VERSION. UY )@@G@@@C@@@@ DS A0,INTBL+6 . SET. @E@@@@ L,UZ )@@G@@U A0,INTBL . SET UP FOR PFS. @C@@@@ ER VA )@@G@@ PFS$ . DO IT. @D@@@@ SZ A10 VB )@@G@@ . SET TO LINE 0.@E@@@@ L,S4 RC,INTBL+8 . GET CURRVC )@@G@@ENT CYCLE. @D@@@@ JZ A2,LOAD3 . ELT WAS FOUND.VD )@@G@@@ @@@@ . HANDLE NO FIND. @E@@@@ SZ RC VE )@@G@@ . SET TO CYCLE 0. @E@@@@ L A0,NCWD VF )@@G@@ . GET STND CYCLE WRD. @C@@@@ S A0,INTBL+8 . SEVG )@@G@@T @C@@@@ S A0,OUTBL+8 . IN BOTH.@D@@@@ VH )@@G@@ PRINT FM1,LFM1,1,1 . PRINT MSG. @E@@@@ PRINT VI )@@G@@ EDITS,1,1,1 . ALSO PRINT 'EDIT'. @E@@@@ SZ ICW VJ )@@G@@ . CLEAR ANY IMAGE. @E@@@@ SZ LENGTH VK )@@G@@ . OR IN CHAR BUF. @C@@@@ L,U A0,1 VL )@@G@@ . GET 1. @E@@@@ S A0,ELMNF . SET ELT NOT FOVM )@@G@@UND. @D@@@@ S A0,NOCHGF . FORCE SWITCH. @G@@@@VN )@@G@@ SN A0,INPTST . TURN OFF INPUT ELT MOVE CHECK. VO )@@G@@@D@@@@ SZ COPOUT+3 . CLEAR START. @E@@@@ VP )@@G@@ LMJ X10,OPNO . OPEN OUTPUT ONLY. @D@@@@ SZVQ )@@G@@ OK . SET AT EOF. @C@@@@ J TOP1VR )@@G@@ . RESTART.@B@@@@LOAD3 . SET UP OPTIONS IF ELT FOUND. VS )@@G@@@D@@@@ L,S1 A0,INTBL+9 . GET SUB TYPE. @D@@@@ VT )@@G@@ S,S1 A0,OUTBL+9 . SET IN OUTPUT.@D@@@@ L VU )@@G@@ A0,INTBL+11 . GET DATE. @C@@@@ S A0,OUTBL+1VV )@@G@@1 . SET. @D@@@@ L,S2 A0,INTBL+5 . GET ASCIVW )@@G@@I IND.@E@@@@ AND,U A0,020 . ISOLATE IT 2**28. VX )@@G@@@E@@@@ SSL A1,4 . MOVE TO LOW BIT. @D@@@@VY )@@G@@ S A1,ASCIN . SET FLAG. @D@@@@ L VZ )@@G@@ A1,A0 . RECOVER IN A1.@E@@@@ TZ POPTWA )@@G@@ . TEST FOR TO FD SET. @C@@@@ AND,U A0,057 WB )@@G@@ . SET. @E@@@@ TZ QOPT . TEST FORWC )@@G@@ ASCII. @C@@@@ OR,U A0,020 . SET. @D@@@@WD )@@G@@ S,S2 A1,OUTBL+5 . SET IN OUTPUT.@D@@@@ SSWE )@@G@@L A1,4 . SHIFT TO LOW. @D@@@@ S A1,AWF )@@G@@SCOUTF . SET FLAG. @D@@@@ J DFIL5 WG )@@G@@ . CONTINUE. @]@@@@/ . @D@@@@PFD L,U A0,INTBL WH )@@G@@ . GET I/O TABLE.@D@@@@ TNZ DOPTI . INWI )@@G@@PUT DATA ? @E@@@@ NF21 'INPUT NOT MASS STORAGE.' @A@@@@NF22 WJ )@@G@@ 'OUTPUT NOT MASS STORAGE.'@B@@@@OUTWK 'OUTPUT FILE NEEDS WRITE KWK )@@G@@EY.' @B@@@@WRNOFA 'WARNING! OUTPUT FILE ASSIGNED.'@B@@@@INRK 'IWL )@@G@@NPUT FILE NEEDS READ KEY. ' @B@@@@INWO 'INPUT FILE IS WRITE-ONLY.WM )@@G@@' @A@@@@REJMSG ' . FAC REJECT & ' @ @@@@TPF + WN )@@G@@ 'TPF$'D @A@@@@ RES BUFW*4+BUF1-$ @ @@@@BUF2 EQWO )@@G@@U BUF1+BUFW @A@@@@BUF3 EQU BUF1+BUFW*2 @A@@@@BUF4 WP )@@G@@ EQU BUF1+BUFW*3 @^@@@@MSGOUT RES 8 @#@@@@ WQ )@@G@@ 'REPLY:'@^@@@@MSGIN RES 9 @^@@@@OPK1 + 0 WR )@@G@@@ @@@@ + 0,BUF0 @^@@@@ + 0 @^@@@@WS )@@G@@OPK2 + 0 @ @@@@ + 0,MSGOUT @ @@@@ WT )@@G@@ + 50,MSGIN @^@@@@NAME + 0 @^@@@@OPMF + WU )@@G@@ 0 @^@@@@DISCAD + 0 @ @@@@IDEPKT E$PKT 14,BWV )@@G@@UF00 @#@@@@ 'TYPE: '@#@@@@PRTYPM ' '@^@@@@WTTRM + WW )@@G@@ 1 @^@@@@WTTIM + 0 @^@@@@CPKT + 0 WX )@@G@@@^@@@@RET + 0 @ @@@@PKTS + UNIT1 @ @@@@WY )@@G@@ + UNIT2 @ @@@@ + UNIT3 @ @@@@WZ )@@G@@ + UNIT4 @ @@@@ + UNIT5 @#@@@@XA )@@G@@IOTST 'SI$ '@#@@@@ ' '@^@@@@ + 0 XB )@@G@@@ @@@@ + R$,0,0 @ @@@@ + 1,BUF4 XC )@@G@@@^@@@@ + 0 @ @@@@ASGI '@ASG,A SI$. .' @ @@@@XD )@@G@@ASGO '@ASG,A SO$. .' @A@@@@ASGSPL '@CAT,P SPLIT$$$$$$$'XE )@@G@@@ @@@@ASGSL EQU $-ASGSPL @ @@@@IDLEMS EQU ASGSPL+3 XF )@@G@@@^@@@@ ' EDN IDLE. '@A@@@@IDLMSG + 0103,IDLEMS XG )@@G@@@^@@@@PFP RES 12 @^@@@@FAC RES 9 @^@@@@NOTIF1XH )@@G@@ + 0 @^@@@@NOTIF2 + 0 @#@@@@PFEM 'PFP 'XI )@@G@@@#@@@@DYN INFO 2 2@#@@@@INFO INFO 2 5@[@@@@$(2) @^@@@@BUF0 XJ )@@G@@ RES BUFW@^@@@@BUF00 + 0D @#@@@@ 'CONFR$'XK )@@G@@@#@@@@ ' '@^@@@@ + 0 @^@@@@ + XL )@@G@@ 6,0 @#@@@@ ' '@#@@@@ ' '@^@@@@ XM )@@G@@ + 0D @^@@@@ + 0D @A@@@@ RES XN )@@G@@ BUFW-$+BUF00 @[@@@@$(5) @^@@@@INPUT + 0 @^@@@@OUTPUTXO )@@G@@ + 0 @^@@@@IUNIT + 0 @^@@@@OUNIT + XP )@@G@@ 0 @^@@@@SPAD + 0 @^@@@@RBKF + 0 @^@@@@XQ )@@G@@ADDFF + 0 @^@@@@RONLY + 0 @^@@@@RONLX + XR )@@G@@ 0 @A@@@@ENDMSF 'END EDN. FILED ' @^@@@@BOPT + XS )@@G@@ 0 @ @@@@COM + 'ADD' @^@@@@IMODE + XT )@@G@@ 0 @^@@@@INPL + 0 @^@@@@IOPT + 0 @^@@@@XU )@@G@@DOPT + 0 @^@@@@AOPT + 0 @^@@@@LNSW + XV )@@G@@ 0 @^@@@@SQSW + 0 @^@@@@TERM + 0 XW )@@G@@@^@@@@INITOVER + 1 @^@@@@CLNUM + 0 @^@@@@PROMPTXX )@@G@@ + 0 @^@@@@AUTOF - 1 @^@@@@AUTOC + XY )@@G@@ 0 @^@@@@SFG + 0 @#@@@@$(3) LIT @[@@@@C$TB XZ )@@G@@@^@@@@ C$ -0 @ @@@@ C$ 'PON' @ @@@@YA )@@G@@ C$ 'SAVE' @ @@@@ C$ 'INIT' @ @@@@YB )@@G@@ C$ 'MSG' @ @@@@ C$ 'MSG*' @A@@@@YC )@@G@@ C$ 'AUTO' 1 -1 @ @@@@ C$ 'CONFR' YD )@@G@@@ @@@@ C$ 'POFF' @ @@@@ C$ 'SPL!' YE )@@G@@@^@@@@ C$ 'HL'@ @@@@ C$ 'HD' 0 0 1@ @@@@YF )@@G@@ C$ 'WHAT' @^@@@@ C$ 'PH'@ @@@@ YG )@@G@@ C$ 'CH' 0 0 1@^@@@@ C$ 'CC'@ @@@@ C$YH )@@G@@ 'CN' 0 0 1@ @@@@ C$ 'TAB' @ @@@@ C$YI )@@G@@ 'RON' @ @@@@ C$ 'ROFF' @ @@@@ C$YJ )@@G@@ 'SET' @ @@@@ C$ 'TCHA' @ @@@@ C$YK )@@G@@ 'TCHF' @ @@@@ C$ 'TCHC' @ @@@@ C$YL )@@G@@ 'TCHL' @ @@@@ C$ 'TCHCX' @ @@@@ C$YM )@@G@@ 'TCHLX' @ @@@@ C$ 'END' @ @@@@ C$YN )@@G@@ 'FILE' @ @@@@ C$ 'MSP' @^@@@@ C$YO )@@G@@ 'BR'@^@@@@ C$ 'NL'@^@@@@ C$ 'LN'YP )@@G@@@^@@@@ C$ 'SC'@ @@@@ C$ 'TYPE' @A@@@@YQ )@@G@@ C$ 'ADD' 0 0 1 @^@@@@ C$ 'L' @^@@@@YR )@@G@@ C$ 'LC'@ @@@@ C$ 'LD' 0 0 1@^@@@@ YS )@@G@@ C$ 'LP'@ @@@@ C$ 'LX' 0 0 1@^@@@@ C$YT )@@G@@ 'V' @^@@@@ C$ 'E' @^@@@@ C$ 'TD'YU )@@G@@@^@@@@ C$ 'T' @^@@@@ C$ 'X' @ @@@@ YV )@@G@@ C$ 'C' 0 0 1 @^@@@@ C$ 'B' @^@@@@ C$YW )@@G@@ 'P!'@ @@@@ C$ 'SQON' @ @@@@ C$ YX )@@G@@ 'SQOFF' @ @@@@ C$ 'LNON' @ @@@@ C$ YY )@@G@@ 'LNOFF' @ @@@@ C$ 'G' 1 @ @@@@ C$ YZ )@@G@@ 'COL' 2 @ @@@@ C$ 'PLM' 1 1 @ @@@@ C$ ZA )@@G@@ 'SAV' 1 1 @A@@@@ C$ 'IB' *1,'+' 0 1 @ @@@@ C$ZB )@@G@@ 'F' *1,'+'@A@@@@ C$ 'FC' *1,'+' @A@@@@ ZC )@@G@@ C$ 'FD' *1,'+' 0 1 @A@@@@ C$ 'FP' *1,'+' ZD )@@G@@@A@@@@ C$ 'FX' *1,'+' 0 1 @A@@@@ C$ 'S' ZE )@@G@@*1,'+' 0 1 @A@@@@ C$ 'I' *1,'+' 0 1 @A@@@@ C$ZF )@@G@@ 'R' *1,'+' 0 1 @A@@@@ C$ 'A' *1,'+' 0 1 @ @@@@ZG )@@G@@ C$ 'CT' 3 0 1@A@@@@ C$ 'CTC' 2 0 1 ZH )@@G@@@ @@@@ C$ 'N' 1 -1 @ @@@@ C$ 'U' 1 -1 ZI )@@G@@@^@@@@ C$ 'EH'@ @@@@C$TBA EQU $-C$TB @ @@@@ZJ )@@G@@ C$ 'CS' 2 @ @@@@ C$ 'P' 2 @ @@@@ZK )@@G@@ C$ 'SPL' 1 @A@@@@ C$ 'SPD' 1 0 1 ZL )@@G@@@ @@@@ C$ 'IH' 1 0 1@ @@@@ C$ 'RH' 1 0 1ZM )@@G@@@ @@@@ C$ 'AH' 1 0 1@A@@@@ C$ 'IHB' 1 0 ZN )@@G@@1 @ @@@@ C$ 'D' 2 0 1 @ @@@@C$TBL EQU ($-CZO )@@G@@$TB)/3@ @@@@RDPKT + 0116,BUF0 @A@@@@ + XREAZP )@@G@@DE,BUF0 @A@@@@PMNANS1 'PREV MSG NOT ANS''D.' @A@@@@PMNANS2 'WZQ )@@G@@AITING ON PREV MSG.' @ @@@@PMNANS3 'WAITING FOR REPLY.'@B@@@@ROUTP ZR )@@G@@ 'OUTPUT FILE IS READ-ONLY.' @ @@@@ASSROP 'READ-ONLY MODE. ' ZS )@@G@@@A@@@@ADDFD '@ADD IMAGES DISCARDED.' @#@@@@EDNLEV 'NYU ED'@ @@@@ZT )@@G@@ + LEVEL @#@@@@ ' & '@A@@@@ENDMSN 'EZU )@@G@@ND EDN. NO OUTPUT. ' @A@@@@ENDMSI 'END EDN. INIT ERROR. ' @^@@@@ZV )@@G@@ ON REP @B@@@@REPEMS1 'WRONG REP IN PROGRAM FILE.' ZW )@@G@@@B@@@@REPERR1 + 0300+$-REPEMS1,REPEMS1@C@@@@REPEMS2 'PLEASE ZX )@@G@@NOTIFY UHMC SYSTEMS STAFF.' @B@@@@REPERR2 + 0200+$-REPEMS2,RZY )@@G@@EPEMS2@ @@@@IBANKL + LEVEL @#@@@@ OFF @[@@@@ZZ )@@G@@$(1) @A@@@@EDN$* . START OF IBANK CODE. @^@@@@ ON AA )@@G@@ REP @ @@@@ L A0,DBANKL @ @@@@ L A1,IAB )@@G@@BANKL @ @@@@ TNE A0,A1 @ @@@@ J EDN$AC )@@G@@1 @ @@@@ DS A0,BUF0 @ @@@@ L A0,RAD )@@G@@EPERR1@ @@@@ ER PRINT$ @A@@@@ L A0,(AE )@@G@@0202,BUF0) @ @@@@ ER PRINT$ @ @@@@ L AF )@@G@@ A0,REPERR2@ @@@@ ER PRINT$ @^@@@@ ER AG )@@G@@ ERR$@#@@@@ OFF @ @@@@EDN$1 L A0,CNTGCY @ @@@@AH )@@G@@ ER IALL$ @A@@@@ L A0,(255,BUF0) AI )@@G@@@ @@@@ LMJ X11,RINF$ @ @@@@ J PROCER AJ )@@G@@@^@@@@ L,U A0,1@ @@@@ LMJ X11,SELT$ @ @@@@AK )@@G@@ J NOSPECS @ @@@@ DL A0,UNIT1+1@ @@@@AL )@@G@@ LMJ X11,DUSE$ @^@@@@ TP A0 @ @@@@ AM )@@G@@ J NOFILE @ @@@@ DL A0,UNIT1+1@ @@@@ AN )@@G@@ DS A0,FAC @ @@@@ L,U A0,FAC @ @@@@ AO )@@G@@ ER FACIL$ @ @@@@ L,S1 A0,FAC+6 @^@@@@ AP )@@G@@ SZ R8 @ @@@@ JNZ A0,GET1A @ @@@@ L,AQ )@@G@@U R1,',AR' @ @@@@ S,H1 R1,FROPT @ @@@@ L,AR )@@G@@U A0,ASGI @^@@@@ ER CSF$@ @@@@ S AS )@@G@@ A0,R8 @ @@@@ JN A0,CSFERR @ @@@@ L,U AT )@@G@@ A0,FAC @ @@@@ ER FACIL$ @ @@@@ L,S1 AU )@@G@@ A0,FAC+6 @ @@@@GET1A TG,U A0,030 @ @@@@ TG,U AV )@@G@@ A0,040 @ @@@@ J SP1NF2 @ @@@@ L,S2 AW )@@G@@ A0,FAC+6 @^@@@@ SSC A0,4@ @@@@ JB A0,IAX )@@G@@NPNRK @^@@@@ LSSC A0,3@ @@@@ JB A0,INPWO AY )@@G@@@ @@@@ L,S1 A0,ELT$+1 @ @@@@ JZ A0,TSTDF AZ )@@G@@@ @@@@ DL A0,ELT$+9 @ @@@@ DS A0,PFP+2 BA )@@G@@@ @@@@ DL A1,SPCS @ @@@@ L,S2 A0,ELT$+1 BB )@@G@@@ @@@@ JZ A0,$+2 @ @@@@ DL A1,ELT$+11BC )@@G@@@ @@@@ DS A1,PFP+6 @^@@@@ L,U A0,1@ @@@@BD )@@G@@ S,S3 A0,PFP+5 @ @@@@ DL A0,UNIT1+1@ @@@@BE )@@G@@ DS A0,PFP @ @@@@ L,U A0,PFP @^@@@@BF )@@G@@ ER PFS$@ @@@@ JNZ A2,PFPE1 @ @@@@ BG )@@G@@ SZ IMODE @ @@@@ L,T2 A0,PFP+8 @ @@@@ BH )@@G@@ S A0,ECYCLI @ @@@@ JZ A0,NOCYC @A@@@@ BI )@@G@@ L A0,(0105,PREVCI)@ @@@@ ER PRINT$ @ @@@@BJ )@@G@@NOCYC L A0,PFP+10 @ @@@@ S A0,INSEC @ @@@@BK )@@G@@ S A0,ISEC @ @@@@ L,S1 A0,PFP+9 @ @@@@BL )@@G@@ S A0,OUTYP @^@@@@GET2 L,U A0,2@D@@@@ BM )@@G@@ DL A14,ELT$ . SAVE SPEC1 INFO @ @@@@ LMJ BN )@@G@@ X11,SELT$ @^@@@@ J $+3 @^@@@@ SZ R8 BO )@@G@@@^@@@@ J $+2 @ @@@@ DS A14,ELT$ @ @@@@BP )@@G@@ DL A0,UNIT2+1@ @@@@ LMJ X11,DUSE$ @^@@@@BQ )@@G@@ TP A0 @ @@@@ J NOFILE @ @@@@ BR )@@G@@ DL A0,UNIT2+1@ @@@@ DS A0,FAC @ @@@@ BS )@@G@@ L,U A0,FAC @ @@@@ ER FACIL$ @ @@@@ BT )@@G@@ L,S1 A0,FAC+6 @ @@@@ JNZ A0,GET2B @ @@@@ BU )@@G@@ L,U R1,',AR' @ @@@@ S,H2 R1,FROPT @ @@@@ BV )@@G@@ L,U A0,ASGO @^@@@@ ER CSF$@ @@@@ S BW )@@G@@ A0,R8 @ @@@@ JN A0,CSFERR @ @@@@GET2A DLBX )@@G@@ A0,UNIT2+1@ @@@@ DS A0,FAC @ @@@@ L,BY )@@G@@U A0,FAC @ @@@@ ER FACIL$ @ @@@@ L,BZ )@@G@@S1 A0,FAC+6 @ @@@@GET2B TG,U A0,030 @ @@@@ TGCA )@@G@@,U A0,040 @ @@@@ J SP2NF2 @ @@@@ L,CB )@@G@@S2 A0,FAC+6 @^@@@@ SSC A0,3@ @@@@ L CC )@@G@@ A13,BUF0 @^@@@@ SZ A12 @A@@@@ TOP,U A13,CD )@@G@@1*/('Z'-'R')@ @@@@ L,U A12,9 @ @@@@ JB CE )@@G@@ A0,OUTNWK @^@@@@ LSSC A0,1@ @@@@ JB A0,RCF )@@G@@ONLYO @ @@@@ L,S1 A0,ELT$+1 @ @@@@ JZ A0,TCG )@@G@@ST2 @ @@@@ SZ ECYCLO @ @@@@ DL A0,ECH )@@G@@LT$+9 @ @@@@ DS A0,OUTELT @ @@@@ L,S2 A0,ECI )@@G@@LT$+1 @ @@@@ JZ A0,$+3 @ @@@@ DL A0,ECJ )@@G@@LT$+11@ @@@@ DS A0,OUTVER @ @@@@ L,U A0,UCK )@@G@@NIT2+1@ @@@@ ER PFWL$ @ @@@@ JNZ A2,PCL )@@G@@FPE2 @ @@@@ S A1,OUTSEC @ @@@@ S A1,OCM )@@G@@SEC @ @@@@EDN$2 SZ RONLY @ @@@@ L,U A1,0CN )@@G@@100000@A@@@@ L A0,(0105,WRNOFA)@ @@@@ TEP CO )@@G@@ A1,R8 @ @@@@ ER PRINT$ @ @@@@ L CP )@@G@@ A0,BUF0 @A@@@@ TEP,U A0,1*/('Z'-'R') @ @@@@ LMCQ )@@G@@J X11,RDONLY@ @@@@GO L,U A0,BUF0 @ @@@@ S,CR )@@G@@H2 A0,IDEPKT @ @@@@ LXM,U X11,$+1 @^@@@@ J CS )@@G@@ IDL @ @@@@ DL A0,NOTIF1 @ @@@@ OR CT )@@G@@ A0,A1 @ @@@@ JNB A1,$+3 @A@@@@ L CU )@@G@@ A0,(0116,BUF00) @ @@@@ ER PRINT$ @ @@@@ L,CV )@@G@@U A6,027 @ @@@@ L,U A7,037 @ @@@@ DLCW )@@G@@ A0,UNIT3+1@ @@@@ DS A0,BUF0 @ @@@@ L,CX )@@G@@U A0,BUF0 @ @@@@ ER FACIL$ @^@@@@ TZCY )@@G@@,S1 6,A0@^@@@@ J $+5 @ @@@@ L,U A0,ACZ )@@G@@SGA @^@@@@ ER CSF$@ @@@@ JN A0,NOSCR DA )@@G@@@^@@@@ J $+3 @ @@@@ TW,S1 A6,6,A0 @ @@@@DB )@@G@@ J NOSCR @ @@@@ DL A0,UNIT4+1@ @@@@DC )@@G@@ DS A0,BUF0 @ @@@@ L,U A0,BUF0 @ @@@@DD )@@G@@ ER FACIL$ @^@@@@ TZ,S1 6,A0@^@@@@ DE )@@G@@ J $+5 @ @@@@ L,U A0,ASGB @^@@@@ ERDF )@@G@@ CSF$@ @@@@ JN A0,NOSCR @^@@@@ J DG )@@G@@ $+3 @ @@@@ TW,S1 A6,6,A0 @ @@@@ J NOSCDH )@@G@@R @A@@@@ L,U A0,ASGSPL+3 @ @@@@ L DI )@@G@@ A1,(1,1) @^@@@@ ER PCT$@ @@@@ DL A0,UDJ )@@G@@NIT5+1@ @@@@ DS A0,BUF0 @ @@@@ L,U A0,BDK )@@G@@UF0 @ @@@@ ER FACIL$ @^@@@@ TZ,S1 6,A0DL )@@G@@@ @@@@ J EDN$CK @B@@@@ L A0,(ASGSL,DM )@@G@@ASGSPL) @^@@@@ ER CSF$@B@@@@ DL A1,(DN )@@G@@'@ASG,AD ') @^@@@@ ER OPT$@ @@@@ JNB DO )@@G@@ A0,$+2 @B@@@@ DL A1,('@ASG,A ') @ @@@@ DP )@@G@@ DS A1,ASGSPL @B@@@@ L A0,(ASGSL,ASGSPL) DQ )@@G@@@^@@@@ ER CSF$@ @@@@ JP A0,EDN$GO @ @@@@DR )@@G@@ TEP A0,(2,0) @ @@@@ J SPLRDO @ @@@@DS )@@G@@ S A0,ROLOUT @ @@@@ LMJ X11,EOCT @ @@@@DT )@@G@@ + ROLOUT @ @@@@ + SPLNTA+4 @ @@@@DU )@@G@@ (+ 12) @ @@@@ (+ 1) @ @@@@DV )@@G@@ NOP 0,0,0 @A@@@@ L A0,(0107,SPLNTA)DW )@@G@@@ @@@@ ER PRINT$ @ @@@@ J EDN$IG DX )@@G@@@A@@@@SPLRDO L A0,(0104,ROLOUT)@ @@@@ ER PRINDY )@@G@@T$ @ @@@@ J EDN$IG @B@@@@EDN$GO DL A0,(DZ )@@G@@'@USE SPLIT$,') @ @@@@ DS A0,ASGSPL @B@@@@ L EA )@@G@@ A0,(ASGSL,ASGSPL) @^@@@@ ER CSF$@ @@@@ EB )@@G@@ JN A0,NOSCR @ @@@@ J EDN$IG @ @@@@EDN$CKEC )@@G@@ TW,S1 A6,6,A0 @ @@@@ J NOSCR @^@@@@EDN$IGED )@@G@@ L,U A0,4@ @@@@ TP ECYCLO @ @@@@ S EE )@@G@@ A0,DOPT @ @@@@ J FORMAIN$ @A@@@@RONLYO L EF )@@G@@ A0,(0105,ROUTP) @ @@@@ S A0,RONLX @ @@@@ EG )@@G@@ DL A1,NOTIF1 @ @@@@ OR A1,A2 @ @@@@ EH )@@G@@ JB A2,$+2 @^@@@@ TZ A12 @ @@@@ EREI )@@G@@ PRINT$ @ @@@@ JB A2,NOFILE @ @@@@ L,EJ )@@G@@U X11,GO @ @@@@ JZ A12,RDONLY@A@@@@ L EK )@@G@@ A0,(0103,ASSROP)@ @@@@ ER PRINT$ @^@@@@RDONLYEL )@@G@@ L,U A0,1@ @@@@ S A0,RONLY @ @@@@ J EM )@@G@@ 0,X11 @^@@@@PFPE1 TNE,U A2,2@^@@@@ J EN )@@G@@ PFPE@^@@@@ TNE,U A2,1@ @@@@ J NOTIF EO )@@G@@@A@@@@ L A0,(0105,S1NPF) @ @@@@ ER PRINEP )@@G@@T$ @ @@@@ J NOFILE @^@@@@NOTIF L,U A0,1EQ )@@G@@@ @@@@ S A0,NOTIF1 @ @@@@ L,U A0,IDEPKT ER )@@G@@@ @@@@ LMJ X11,EDIT$ @ @@@@ DL A0,FAC+4 ES )@@G@@@ @@@@ LMJ X11,EFD2$ @ @@@@ L,U A0,'*' ET )@@G@@@ @@@@ LMJ X11,ECHAR$@ @@@@ DL A0,FAC+2 EU )@@G@@@ @@@@ LMJ X11,EFD2$ @ @@@@ L,U A0,'.' EV )@@G@@@ @@@@ LMJ X11,ECHAR$@ @@@@ DL A0,PFP+2 EW )@@G@@@ @@@@ LMJ X11,EFD2$ @ @@@@ TNZ,S2 ELT$+1 EX )@@G@@@ @@@@ J NOTIFB @ @@@@ L,U A0,'/' EY )@@G@@@ @@@@ LMJ X11,ECHAR$@ @@@@ DL A0,PFP+6 EZ )@@G@@@ @@@@ LMJ X11,EFD2$ @ @@@@NOTIFB L,U A0,NOTIFF FA )@@G@@@ @@@@ LMJ X11,EMSG$ @^@@@@NOTIFA L,U A0,1@ @@@@FB )@@G@@ S A0,IMODE @ @@@@ L,U A0,USEIO @^@@@@FC )@@G@@ ER CSF$@ @@@@ JN A0,NOFILE @ @@@@ FD )@@G@@ J GET2A @^@@@@PFPE2 TNE,U A2,2@^@@@@ J FE )@@G@@ PFPE@A@@@@ L A0,(0105,S2NPF) @ @@@@ ERFF )@@G@@ PRINT$ @ @@@@ J NOFILE @^@@@@PFPE DSFG )@@G@@L A2,3@^@@@@ LSSL A2,3@^@@@@ LDSL A2,3FH )@@G@@@ @@@@ AA,U A2,06060 @ @@@@ S,T3 A2,PFEM FI )@@G@@@A@@@@ L A0,(0101,PFEM) @ @@@@ ER PRINFJ )@@G@@T$ @ @@@@ J NOFILE @ @@@@FILE* L,U A5,'FK )@@G@@.' @ @@@@ EX STB,A1 @ @@@@ DL A0,OFL )@@G@@UTELT @ @@@@ L,U X1,ENDMSF @ @@@@ DJZ A0,NFM )@@G@@OFIL2 @ @@@@ DS A0,PFP+2 @ @@@@ DL A0,OFN )@@G@@UTVER @ @@@@ DS A0,PFP+6 @ @@@@ DL A0,UFO )@@G@@NIT2+1@ @@@@ DS A0,PFP @^@@@@ L,U A0,1FP )@@G@@@ @@@@ S,S3 A0,PFP+5 @ @@@@ L A0,OUTYP FQ )@@G@@@ @@@@ S,S1 A0,PFP+9 @ @@@@ L A0,(5,0,1)FR )@@G@@@ @@@@ S A0,PFP+8 @ @@@@ L A0,LSTSEC FS )@@G@@@ @@@@ L A1,OUTSEC @ @@@@ AN A0,A1 FT )@@G@@@ @@@@ S,H2 A0,PFP+9 @ @@@@ S A1,PFP+10 FU )@@G@@@ @@@@ SZ PFP+11 @ @@@@ L,U A0,PFP FV )@@G@@@^@@@@ ER PFI$@ @@@@ JNZ A2,PFPE @ @@@@FW )@@G@@ L A1,LSTSEC @ @@@@ L,U A0,UNIT2+1@ @@@@FX )@@G@@ ER PFUWL$ @ @@@@ JNZ A2,PFPE @ @@@@FY )@@G@@ J NOFIL2 @ @@@@NOFIL1* L,U X1,ENDMSN @A@@@@FZ )@@G@@NOFIL2 L A0,('@ FREE') @ @@@@ S A0,ASGI GA )@@G@@@ @@@@ S A0,ASGO @ @@@@ L A0,FROPT GB )@@G@@@ @@@@ S,H1 A0,ASGO+1 @ @@@@ SSC A0,18 GC )@@G@@@ @@@@ S,H1 A0,ASGI+1 @A@@@@ L A0,(-12,UNGD )@@G@@IT5+1)@ @@@@ J EXIT2 @ @@@@EXIT1 TLEM,U A0,UGE )@@G@@NIT2 @^@@@@ J EXIT@^@@@@EXIT2 TP 3,A0@ @@@@GF )@@G@@ ER WAIT$ @ @@@@ J EXIT1 @ @@@@GG )@@G@@EXIT L,U A0,ASGI @^@@@@ ER CSF$@ @@@@ GH )@@G@@ L,U A0,ASGO @^@@@@ ER CSF$@F@@@@ TNGI )@@G@@Z OPMF . CHECK FOR OUTSTANDING MSG @D@@@@ J GJ )@@G@@ PRGEX . NONE, GO ON. @B@@@@ L A0,(GK )@@G@@0104,PMNANS2) @ @@@@ ER PRINT$ @A@@@@ L GL )@@G@@ A0,(18,PMNANS3) @ @@@@ S A0,OPK1+1 @ @@@@ GM )@@G@@ L,U A0,OPK1 @^@@@@ ER COM$@ @@@@ ERGN )@@G@@ DACT$ @ @@@@PRGEX L,U A0,,X1 @ @@@@ LXGO )@@G@@I,U A0,68 @ @@@@PROCER ER PRINT$ @ @@@@ ERGP )@@G@@ EXIT$ @ @@@@TSTDF L,U A0,IOTST @^@@@@ ERGQ )@@G@@ IOW$@ @@@@ L,S1 A0,3,A0 @ @@@@ JZ GR )@@G@@ A0,TST1 @^@@@@ TE,U A0,5@ @@@@ J NOFIGS )@@G@@LE @ @@@@ S A0,NOTIF2 @ @@@@ L,U A0,IGT )@@G@@DEPKT @ @@@@ LMJ X11,EDIT$ @ @@@@ DL A0,FGU )@@G@@AC+4 @ @@@@ LMJ X11,EFD2$ @ @@@@ L,U A0,'GV )@@G@@*' @ @@@@ LMJ X11,ECHAR$@ @@@@ DL A0,FGW )@@G@@AC+2 @ @@@@ LMJ X11,EFD2$ @ @@@@ L,U A0,EGX )@@G@@MPFL @ @@@@ LMJ X11,EMSG$ @ @@@@ J NOTIGY )@@G@@FA @ @@@@TST1 L A0,BUF4 @A@@@@ TNE A0,(GZ )@@G@@'**PF**') @^@@@@ J ISPF@^@@@@ LN,U A0,1HA )@@G@@@ @@@@ S A0,ECYCLI @^@@@@ J GET2@A@@@@HB )@@G@@ISPF L A0,(0105,S1NEN) @ @@@@ ER PRINT$ HC )@@G@@@ @@@@ J NOFILE @ @@@@TST2 DL A0,UNIT2+1HD )@@G@@@ @@@@ DS A0,IOTST @ @@@@ L,U A0,IOTST HE )@@G@@@^@@@@ ER IOW$@^@@@@ LN,U A0,1@ @@@@ HF )@@G@@ S A0,ECYCLO @ @@@@ L A0,BUF4 @A@@@@ HG )@@G@@ TE A0,('**PF**') @ @@@@ J EDN$2 @A@@@@HH )@@G@@ L A0,(0105,S2NEN) @ @@@@ ER PRINT$ HI )@@G@@@ @@@@ J NOFILE @A@@@@SP1NF2 L A0,(0104,NHJ )@@G@@F21) @ @@@@ ER PRINT$ @ @@@@ J NOFIHK )@@G@@LE @A@@@@SP2NF2 L A0,(0104,NF22) @ @@@@ ER HL )@@G@@ PRINT$ @ @@@@ J NOFILE @A@@@@OUTNWK L HM )@@G@@ A0,(0105,OUTWK) @ @@@@ J RONLYO+1 @A@@@@INPWO L HN )@@G@@ A0,(0105,INWO) @ @@@@ ER PRINT$ @ @@@@ HO )@@G@@ J NOFILE @A@@@@INPNRK L A0,(0105,INRK) @ @@@@HP )@@G@@ ER PRINT$ @ @@@@ J NOFILE @A@@@@HQ )@@G@@NOSCR L A0,(0105,NSCR) @ @@@@ ER PRINT$ HR )@@G@@@ @@@@ J NOFILE @B@@@@NOSPECS L A0,(0105,NHS )@@G@@OSPCMS) @ @@@@ ER PRINT$ @ @@@@ J HT )@@G@@ NOFILE @ @@@@CSFERR L,U A0,IDEPKT @ @@@@ LMJ HU )@@G@@ X11,EDIT$ @ @@@@ L A0,ASGI @ @@@@ S HV )@@G@@ A0,BUF00 @^@@@@ L,U A0,8@ @@@@ LMJ X11,HW )@@G@@ECOL$ @ @@@@ L,S1 A0,ELT$ @ @@@@ JZ A0,$HX )@@G@@+5 @ @@@@ DL A0,ELT$+2 @ @@@@ LMJ X11,HY )@@G@@EFD2$ @ @@@@ L,U A0,'*' @ @@@@ LMJ X11,HZ )@@G@@ECHAR$@ @@@@ DL A0,ELT$+4 @^@@@@ TNZ,S2 ELT$IA )@@G@@@ @@@@ DL A0,TPF @ @@@@ LMJ X11,EFD2$ IB )@@G@@@ @@@@ L,U A0,REJMSG @ @@@@ LMJ X11,EMSG$ IC )@@G@@@ @@@@ L A0,R8 @ @@@@ L,U A1,12 ID )@@G@@@ @@@@ LMJ X11,EOCTF$@A@@@@ L A0,(0116,BIE )@@G@@UF00) @ @@@@ ER PRINT$ @ @@@@ J NOFIIF )@@G@@LE @ @@@@IDL* SX,H2 X11,RET @ @@@@ L,U A0,IIG )@@G@@DEPKT @ @@@@ LMJ X11,EDIT$ @ @@@@ L,U A0,EIH )@@G@@DNLEV @ @@@@ LMJ X11,EMSG$ @^@@@@ TNZ BOPTII )@@G@@@ @@@@ J IDLC1 @ @@@@ ER TDATE$ IJ )@@G@@@ @@@@ S A0,MODE @ @@@@ L,S1 A0,MODE IK )@@G@@@ @@@@ LMJ X11,EDECV$@ @@@@ L,U A0,'/' IL )@@G@@@ @@@@ LMJ X11,ECHAR$@ @@@@ L,S2 A0,MODE IM )@@G@@@ @@@@ LMJ X11,EDECV$@ @@@@ L,U A0,'-' IN )@@G@@@ @@@@ LMJ X11,ECHAR$@ @@@@ L,H2 A5,MODE IO )@@G@@@^@@@@ SZ A4 @ @@@@ DI,U A4,60 @ @@@@IP )@@G@@ DSL A4,36 @ @@@@ DI,U A4,60 @ @@@@IQ )@@G@@ L A0,A4 @^@@@@ TNZ A0 @ @@@@ IR )@@G@@ L,U A0,24 @ @@@@ LMJ X11,EDECV$@ @@@@ IS )@@G@@ L,U A0,':' @ @@@@ LMJ X11,ECHAR$@ @@@@ IT )@@G@@ L,U A0,'0' @ @@@@ TLE,U A5,10 @ @@@@ IU )@@G@@ LMJ X11,ECHAR$@ @@@@ L A0,A5 @ @@@@ IV )@@G@@ LMJ X11,EDECV$@ @@@@ L,U A0,'-' @ @@@@ IW )@@G@@ LMJ X11,ECHAR$@ @@@@IDLC1 L,U A0,'(' @ @@@@ IX )@@G@@ LMJ X11,ECHAR$@ @@@@ TP ECYCLI @ @@@@ IY )@@G@@ J IDLD1 @ @@@@ L A0,ECYCLI @ @@@@ IZ )@@G@@ LMJ X11,EDECV$@ @@@@ J IDLCM @ @@@@IDLD1 JA )@@G@@ TNZ ECYCLI @ @@@@ J IDLCM @ @@@@ JB )@@G@@ L,U A0,'D' @ @@@@ LMJ X11,ECHAR$@ @@@@IDLCM JC )@@G@@ L,U A0,',' @ @@@@ LMJ X11,ECHAR$@ @@@@ JD )@@G@@ TP ECYCLO @ @@@@ J IDLD2 @ @@@@ JE )@@G@@ L A0,ECYCLO @ @@@@ LMJ X11,EDECV$@^@@@@ JF )@@G@@ J IDL2@ @@@@IDLD2 TNZ ECYCLO @^@@@@ J JG )@@G@@ IDL2@ @@@@ L,U A0,'D' @ @@@@ LMJ JH )@@G@@ X11,ECHAR$@ @@@@IDL2 L,U A0,')' @ @@@@ LMJ JI )@@G@@ X11,ECHAR$@ @@@@ TZ CONFR$ @^@@@@ TNZ JJ )@@G@@ BOPT@ @@@@ J IDLEX @A@@@@ E$COPY 6,('JK )@@G@@ CONFR') @ @@@@IDLEX LMJ X11,EDITX$@ @@@@ L JL )@@G@@ A0,RDPKT @ @@@@ ER PRINT$ @ @@@@ LXM JM )@@G@@ X11,RET @ @@@@ J 1,X11 @^@@@@BLKR* SZ JN )@@G@@ A3 @ @@@@ L R1,*1,X11 @ @@@@ L,U A1,*JO )@@G@@0,X11 @ @@@@ LXM,U X11,3,X11 @ @@@@ L,U A0,SJP )@@G@@PCS @^@@@@ J $+7 @^@@@@BXFR* SZ A3 @ @@@@JQ )@@G@@ L R1,*2,X11 @ @@@@ L,U A0,*0,X11 @^@@@@JR )@@G@@ LXI,U A0,1@ @@@@ L,U A1,*1,X11 @ @@@@ JS )@@G@@ LXM,U X11,4,X11 @^@@@@ LXI,U A1,1@ @@@@ BTJT )@@G@@ A1,,*A0 @ @@@@ J 0,X11 @^@@@@CSF* SZJU )@@G@@ A3 @ @@@@ LXM,U A0,*0,X11 @ @@@@ LXI JV )@@G@@ A0,*1,X11 @^@@@@ SZ,S1 0,A0@^@@@@ ER CSF$JW )@@G@@@ @@@@ J 3,X11 @]@@@@NSTOP$* @]@@@@NERR2$* JX )@@G@@@]@@@@NERR3$* @ @@@@NERR4$* ER EABT$ @ @@@@COPY* LXJY )@@G@@I,U X11,0 @^@@@@ J MV1 @ @@@@SQOPY* LXI,XU JZ )@@G@@ X11,-1 @^@@@@MV1 SZ A3 @ @@@@ L A2,*KA )@@G@@1,X11 @^@@@@ TZ A2 @^@@@@ AN,U A2,1@ @@@@KB )@@G@@ DSL A2,36 @^@@@@ DI,U A2,6@^@@@@ KC )@@G@@ LXI,U A3,1@^@@@@ LXI,U A2,1@ @@@@ L KD )@@G@@ A5,A3 @^@@@@ SZ A3 @ @@@@ A,U A2,*KE )@@G@@0,X11 @ @@@@ L A0,*3,X11 @^@@@@ TZ A0 KF )@@G@@@^@@@@ AN,U A0,1@ @@@@ DSL A0,36 @^@@@@KG )@@G@@ DI,U A0,6@^@@@@ LXI,U A1,1@^@@@@ LXKH )@@G@@I,U A0,1@ @@@@ A,U A0,*2,X11 @ @@@@ L KI )@@G@@ A4,*4,X11 @^@@@@ SZ A6 @ @@@@ L A3,AKJ )@@G@@5 @^@@@@ J NOM2@ @@@@MVX1 EX LTB,*A3 KK )@@G@@@^@@@@ TN X11 @^@@@@ J NOM3@^@@@@ KL )@@G@@ TE,U A5,5@^@@@@ J NOM4@ @@@@ JNZ KM )@@G@@ A6,NOM2 @ @@@@ S A5,A6 @^@@@@ J KN )@@G@@ NOM3@^@@@@NOM4 SZ A6 @ @@@@NOM3 EX STB,*A1 KO )@@G@@@ @@@@NOM2 JGD A4,MVX1 @ @@@@ J 6,X11 KP )@@G@@@#@@@@SPCS ' '@#@@@@ ' '@#@@@@ZROS '000000'KQ )@@G@@@#@@@@ '000000'@ @@@@LTB L,S1 A5,,A2 @ @@@@ KR )@@G@@ L,S2 A5,,A2 @ @@@@ L,S3 A5,,A2 @ @@@@ KS )@@G@@ L,S4 A5,,A2 @ @@@@ L,S5 A5,,A2 @ @@@@ KT )@@G@@ LMJ X10,$+1 @ @@@@ L,S6 A5,,*A2 @ @@@@ KU )@@G@@ L A3,(1,0) @ @@@@ J 0,X10 @ @@@@STB KV )@@G@@ S,S1 A5,,A0 @ @@@@ S,S2 A5,,A0 @ @@@@ KW )@@G@@ S,S3 A5,,A0 @ @@@@ S,S4 A5,,A0 @ @@@@ KX )@@G@@ S,S5 A5,,A0 @ @@@@ LMJ X10,$+1 @ @@@@ KY )@@G@@ S,S6 A5,,*A0 @ @@@@ L A1,(1,0) @ @@@@ KZ )@@G@@ J 0,X10 @ @@@@EOCT* DL A4,ZROS @^@@@@ LA )@@G@@ L,U A1,0@^@@@@ SZ A6 @ @@@@ J LB )@@G@@ BNTA+1 @ @@@@EDEC* DL A4,SPCS @ @@@@ L,U LC )@@G@@ A1,053 @^@@@@BNTA L,U A6,1@^@@@@ SZ A3 LD )@@G@@@ @@@@ L A2,*0,X11 @^@@@@ TZ A6 @ @@@@LE )@@G@@ LM A2,A2 @^@@@@ SZ A0 @ @@@@BNTB LF )@@G@@ JNZ A6,BNTBA @^@@@@ AND,U A2,7@^@@@@ SSLG )@@G@@L A2,3@ @@@@ J BNTBB @ @@@@BNTBA DSL LH )@@G@@ A2,36 @ @@@@ DI,U A2,10 @ @@@@BNTBB AA,U LI )@@G@@ A3,0,A1 @ @@@@ AA,U A5,0,A3 @^@@@@ DSC LJ )@@G@@ A4,6@^@@@@ AA,U A0,1@ @@@@ JNZ A2,BNTB LK )@@G@@@^@@@@ SZ A3 @ @@@@ LM A2,*2,X11 @ @@@@LL )@@G@@ JNZ A2,$+2 @ @@@@ L A2,A0 @^@@@@LM )@@G@@ MSI,U A0,6@ @@@@ AN,U A0,72 @ @@@@ LN )@@G@@ TG,U A2,13 @ @@@@ L,XU A2,12 @ @@@@ LO )@@G@@ L A6,A2 @^@@@@ AN,U A6,1@^@@@@ MSLP )@@G@@I,U A2,6@ @@@@ AMA A2,A0 @^@@@@ SZ LQ )@@G@@ A1 @ @@@@ DI,U A1,72 @ @@@@ DSC A4,0LR )@@G@@,A2 @ @@@@ LM A0,*3,X11 @^@@@@ TZ A0 LS )@@G@@@^@@@@ AN,U A0,1@ @@@@ DSL A0,36 @^@@@@LT )@@G@@ DI,U A0,6@^@@@@ LXI,U A0,1@^@@@@ LXLU )@@G@@I,U A1,1@ @@@@ A,U A0,*1,X11 @^@@@@BNTC LDSC LV )@@G@@ A4,6@ @@@@ EX STB,*A1 @ @@@@ JGD A6,BLW )@@G@@NTC @ @@@@BNTD J 5,X11 @^@@@@GETC* SZ A3 LX )@@G@@@ @@@@ L A2,*1,X11 @^@@@@ TZ A2 @^@@@@LY )@@G@@ AN,U A2,1@ @@@@ DSL A2,36 @^@@@@ LZ )@@G@@ DI,U A2,6@ @@@@ L A5,A3 @^@@@@ SZMA )@@G@@ A3 @ @@@@ A,U A2,*0,X11 @ @@@@ L MB )@@G@@ A3,A5 @ @@@@ EX LTB,*A3 @ @@@@ S MC )@@G@@ A5,A0 @ @@@@ J 3,X11 @^@@@@PUTC* SZ MD )@@G@@ A3 @ @@@@ L A0,*2,X11 @^@@@@ TZ A0 ME )@@G@@@^@@@@ AN,U A0,1@ @@@@ DSL A0,36 @^@@@@MF )@@G@@ DI,U A0,6@ @@@@ A,U A0,*1,X11 @ @@@@ MG )@@G@@ L,S6 A5,*0,X11 @ @@@@ EX STB,*A1 @ @@@@ MH )@@G@@ J 4,X11 @ @@@@TYPS + 'SYM' @ @@@@ MI )@@G@@ + 'ELT' @ @@@@ + 'ASM' @ @@@@ MJ )@@G@@ + 'COB' @ @@@@ + 'FOR' @ @@@@ MK )@@G@@ + 'ALG' @ @@@@ + 'MAP' @ @@@@ ML )@@G@@ + 'DOC' @ @@@@ + 'SEC' @ @@@@ MM )@@G@@ + 'SSG' @ @@@@ + 'APL' @ @@@@ MN )@@G@@ + 'BAS' @ @@@@ + 'LSP' @ @@@@ MO )@@G@@ + 'PLS' @ @@@@ + 'RUN' @ @@@@ MP )@@G@@ + 'ADD' @ @@@@ + 'NOR' @ @@@@ MQ )@@G@@ + 'NRL' @ @@@@ + 'NPL' @ @@@@NTYPS MR )@@G@@ EQU $-TYPS @ @@@@ + '***' @ @@@@TYPER*MS )@@G@@ TN ECYCLO @^@@@@ J $+5 @ @@@@ L,MT )@@G@@U A1,'DF ' @ @@@@ TNZ ECYCLO @ @@@@ TPMU )@@G@@ ECYCLI @ @@@@ J PRTYP+4 @^@@@@ SZMV )@@G@@ A3 @^@@@@ L,U A0,1@ @@@@ L,H2 A1,*MW )@@G@@0,X11 @ @@@@ TNE,U A1,' ' @ @@@@ J PRTYMX )@@G@@P @ @@@@ L A2,(1,-1) @ @@@@ L,U R1,NMY )@@G@@TYPS @A@@@@ SE A1,TYPS+1,*A2 @ @@@@ J MZ )@@G@@ 2,X11 @^@@@@ SZ A0 @ @@@@ S,H2 A2,ONA )@@G@@UTYP @ @@@@ J 2,X11 @ @@@@PRTYP L,H2 A1,ONB )@@G@@UTYP @ @@@@ TG,U A1,NTYPS @ @@@@ L,U A1,NNC )@@G@@TYPS @ @@@@ L A1,TYPS,A1@ @@@@ S,H1 A1,PND )@@G@@RTYPM @B@@@@ L A0,(0102,PRTYPM-1) @ @@@@ ERNE )@@G@@ PRINT$ @^@@@@ SZ A0 @ @@@@ J NF )@@G@@ 2,X11 @ @@@@CNFERR P$RINT CNFERP1 @ @@@@ P$RINT NG )@@G@@ CNFERP2 @^@@@@ J 0,X4@C@@@@CNFERM1 'NO NH )@@G@@FURTHER INPUT POSSIBLE.'@B@@@@CNFERP1 + 0200+$-CNFERM1,CNFERM1NI )@@G@@@E@@@@CNFERM2 'USE ''*EXIT'' TO LEAVE CONFERENCE.' @B@@@@NJ )@@G@@CNFERP2 + 0100+$-CNFERM2,CNFERM2@ @@@@NOCONF P$RINT NOCONK )@@G@@NFR @ @@@@ J 2,X11 @D@@@@NOCNFM 'CONNL )@@G@@FERENCE SYSTEM NOT AVAILABLE.'@B@@@@NOCONFR + 0100+$-NOCNFM,NONM )@@G@@CNFM @ @@@@CONFR* TNZ CONFR$ @ @@@@ J NOCONN )@@G@@NF @^@@@@ SZ A4 @^@@@@ TZ BOPT@^@@@@NO )@@G@@ J $+3 @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@NZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ON )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@OZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@PZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@QZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ST )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@SZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@TZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@US )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@UZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@VZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@XZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ZZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@AZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@BZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@CZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DD )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DT )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DV )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DW )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DY )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@DZ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EA )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ED )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EE )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EF )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EG )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EI )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EJ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EK )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EL )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EO )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EP )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EQ )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ER )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ES )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ET )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EU )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@]@@@@ AXR$ @A@@_@MFDAL 'MFD EV )@@G@@ALLOCATION IN PROGRESS&'@ @@_@SATUR 'UNIT IS SATURATED&' @ @@_@LOCK EW )@@G@@ 'UNIT TABLE LOCK&' @#@@_@PREP 'PREPPING&'@ @@_@REG 'REGISTER IEX )@@G@@N PROGRESS&'@]@@@@$(1) . @D@@@@STAT* LA A6,FATBL,X4 .EY )@@G@@ GET STATUS BITS @C@@@@ SSL A6,34 . SHIFT DOWN EZ )@@G@@@E@@@@ JZ A6,UP . JUMP IF UNIT IS UP @#@@@@FA )@@G@@ E$DIT EDT@A@@@@ E$COPY 8,('UNIT IS ') @E@@@@ FB )@@G@@ LA,U A0,('DOWN& ') . ASSUME UNIT IS DOWN @C@@@@ TNE,UFC )@@G@@ A6,01 . SUSPENDED? @A@@@@ LA,U A0,('SUSPENDED&FD )@@G@@ ') @C@@@@ TNE,U A6,02 . RESERVED? @A@@@@ FE )@@G@@ LA,U A0,('RESERVED& ') @]@@@@ E$MSG@^@@@@ P$RINT PLIFF )@@G@@N1 @C@@@@ TNE,U A6,3 . IF DOWN, @B@@@@ FG )@@G@@ J DONE . EXIT @]@@@@UP . @D@@@@ LA FH )@@G@@ A6,FATBL,X4 . GET STATUS AGAIN @^@@@@ LSSL A6,2 FI )@@G@@@D@@@@ SSL A6,32 . GET OTHER BITS @E@@@@ FJ )@@G@@ TOP,U A6,04 . MFD ALLOC IN PROG? @^@@@@ J FK )@@G@@ NMFDAL @#@@@@ E$DIT EDT@^@@@@ E$MSG MFDAL @^@@@@FL )@@G@@ P$RINT PLIN1 @]@@@@NMFDAL . @C@@@@ TOP,U A6,020 FM )@@G@@ . SATURATED? @B@@@@ J NSATUR . NO FN )@@G@@@#@@@@ E$DIT EDT@^@@@@ E$MSG SATUR @^@@@@ P$RINFO )@@G@@T PLIN1 @]@@@@NSATUR . @D@@@@ TOP,U A6,1 .FP )@@G@@ UNIT TABLE LOCK? @B@@@@ J NLOCK . NO @#@@@@FQ )@@G@@ E$DIT EDT@^@@@@ E$MSG LOCK @^@@@@ P$RINT PLIFR )@@G@@N1 @]@@@@NLOCK . @C@@@@ TNZ DISC . DISC FS )@@G@@EQUIP?@E@@@@ J ANYHOW . NO, SKIP PREP/REG STUFFFT )@@G@@@D@@@@ LA,H2 A6,FATBL+1,X4 . GET PREP/REG BITS@D@@@@ FU )@@G@@ SSL A6,16 . POSITION THEM @C@@@@ TOP,U A6,FV )@@G@@02 . PREPPING? @^@@@@ J NPREP @#@@@@ FW )@@G@@ E$DIT EDT@^@@@@ E$MSG PREP @^@@@@ P$RINT PLIN1 FX )@@G@@@]@@@@NPREP . @C@@@@ TOP,U A6,1 . REGISTER? FY )@@G@@@B@@@@ J NREG . NO @#@@@@ E$DIT EDTFZ )@@G@@@#@@@@ E$MSG REG@^@@@@ P$RINT PLIN1 @]@@@@NREG . GA )@@G@@@D@@@@ TZ FATBL+4,X4 . PACK MOUNTED? @D@@@@ GB )@@G@@ J ANYHOW . YES, GO AHEAD @F@@@@ LA,U A0,GC )@@G@@TRD4 . ASK IF WE SHOULD TRY ANYHOW @^@@@@ ER TREGD )@@G@@AD$ @^@@@@ LA,S1 A0,ANS @B@@@@ TE,U A0,'Y' GE )@@G@@ . YES? @B@@@@ J DONE . NO @]@@@@ANYHOWGF )@@G@@ . @C@@@@ J 0,X10 . RETURN @]@@@@ GG )@@G@@ END ___@_@MFDAL 'MFD ALLOCATION IN PROGRESS&'@ @@_@SATUR 'UNIT IS SAGH )@@G@@TURATED&' @ @@_@LOCK 'UNIT TABLE LOCK&' @#@@_@PREP 'PREPPING&'GI )@@G@@*[@@@@*SDFF*@]@@@@ AXR$ @ @@@@ENTIRE 'ENTIRE SECTOR = &' @A@@@@GJ )@@G@@REST 'REMAINDER OF SECTOR = &' @]@@_@$(1) . @]@@@@OUTPUT* . GK )@@G@@@E@@@@ LX X4,(1,0) . INITIALIZE WORD INDEX @E@@@@GL )@@G@@ LA A0,BUF . GET 1ST WORD OF SECTOR @D@@@@ GM )@@G@@ LA,U A1,26 . FOR NEXT 27 WORDS@E@@@@ TE A0,GN )@@G@@BUF+1,A1 . CHECK FOR ALL SAME @B@@@@ J NOTSAM GO )@@G@@ . NO @F@@@@ JGD A1,$-2 . CONTINUE FOGP )@@G@@R WHOLE SECTOR @#@@@@ E$DIT EDT@C@@@@ E$MSG ENTIRE GQ )@@G@@ . GET MSG @C@@@@PREST E$OCTV BUF,X4 . ADD VGR )@@G@@ALUE @C@@@@ P$RINT PLIN1 . PRINT MSG @C@@@@ GS )@@G@@ J 0,X10 . RETURN @]@@@@NOTSAM . @E@@@@ GT )@@G@@ LA A0,SKIP1 . GET SET TO SKIP A LINE @C@@@@ TZ GU )@@G@@ BATCH . BATCH? @C@@@@ ER PRINT$ GV )@@G@@ . YES, DO IT @D@@@@ L,U R4,5 . 6 LINES IF GW )@@G@@DEMAND@^@@@@ TZ BATCH @C@@@@ L,U R4,3 GX )@@G@@ . 4 IF BATCH @]@@@@SECLP . @C@@@@ E$DIT EDT GY )@@G@@ . OPEN EDIT @D@@@@ LA A1,R4 . GET LINE NUGZ )@@G@@MBER @F@@@@ JZ A1,NTSAM2 . IF LAST LINE, DON'T BOTHA )@@G@@HER @D@@@@ LA,U A1,0,X4 . GET WORD INDEX @F@@@@HB )@@G@@ JZ A1,NTSAM2 . IF WORD 0, CHECKED ALREADY @^@@@@HC )@@G@@ LXI,U A1,1 @F@@@@ LA A0,BUF,X4 . GET CHD )@@G@@ONTENTS OF NEXT WORD @E@@@@ TE A0,BUF+1,A1 . SAME HE )@@G@@AS NEXT WORD? @D@@@@ J NTSAM2 . NO, CONTINUHF )@@G@@E @F@@@@ TLEM,U A1,26 . CHECK REMAINDER OF SECTHG )@@G@@OR @D@@@@ J $-3 . MORE TO CHECK @C@@@@HH )@@G@@ E$MSG REST . GET MSG @C@@@@ J PREHI )@@G@@ST . PRINT IT @]@@@@NTSAM2 . @^@@@@ L,U A0,HJ )@@G@@0,X4 @#@@@@ E$OCTF 2 @^@@@@ L,U R2,4 @^@@@@ HK )@@G@@ TZ BATCH @^@@@@ L,U R2,7 @]@@@@LINLP . @#@@@@HL )@@G@@ E$SKIP 2 @ @@@@ E$OCTF 12,BUF,*X4 @^@@@@ L,U HM )@@G@@ A0,0,X4 @^@@@@ TNE,U A0,28 @#@@@@ J $+2@^@@@@HN )@@G@@ JGD R2,LINLP @^@@@@ P$RINT PLIN1 @^@@@@ JGD HO )@@G@@ R4,SECLP @^@@@@ J 0,X10 @]@@_@ END ___^@)^@)^@)HP )@@G@@^@)^@,^[TC(N ))C-J^[DE))@I@@@@^@)^@)^@)^[G -P^@)^@)^[MA)?A*)^@)^@)^@)^@)HQ )@@G@@^@)^@)^@)^@,^@6^[GDDIC(N^[DC0)C- D([D1^^@)@ @@@@^@)^@)^@)^[OFK)^@)^@)^[]HR )@@G@@*[@@@@*SDFF*@]@@@@ AXR$ @F@@@@ABW$ EQU 014 HS )@@G@@ . DEFINE ABW$ IF NOT IN ERU$@#@@@@CHGD + 0 @^@@@@WWD 'WHATHT )@@G@@ WORD?' @^@@@@TWD + 0202,WWD @^@@@@ + NOCHG,ANSHU )@@G@@@#@@@@WORD + 0 @ @@@@CVL 'CURRENT VALUE: &' @#@@@@NVL HV )@@G@@'NEW VALUE&'@^@@@@TVL + 0107,LINE@^@@@@ + NOCHG,ANSHW )@@G@@@#@@@@ANS RES 2 @D@@@@LOAD LA,S1 A0,ANS . CHAR HX )@@G@@LOAD TABLE @^@@@@ LA,S2 A0,ANS @^@@@@ LA,S3 A0,ANS HY )@@G@@@^@@@@ LA,S4 A0,ANS @^@@@@ LA,S5 A0,ANS @^@@@@ HZ )@@G@@ LA,S6 A0,ANS @^@@@@ LA,S1 A0,ANS+1 @^@@@@ LA,S2 A0,IA )@@G@@ANS+1 @^@@@@ LA,S3 A0,ANS+1 @^@@@@ LA,S4 A0,ANS+1 @^@@@@IB )@@G@@ LA,S5 A0,ANS+1 @^@@@@ LA,S6 A0,ANS+1 @E@@@@ ER IC )@@G@@ EABT$ . CHOULDN'T GET HERE @[@@@@. @]@@@@$(1) ID )@@G@@ . @[@@@@. @]@@@@CHANGE* . @D@@@@ASKW LA,U A0,TWD IE )@@G@@ . GET TREAD$ PKT @F@@@@ ER TREAD$ . ASK WIF )@@G@@HICH WORD TO CHANGE @D@@@@ LA,U A0,0,A0 . GET WIG )@@G@@ORD COUNT @D@@@@ JZ A0,NOCHG . IF ZERO, GET OUT IH )@@G@@@C@@@@ TE,U A0,1 . ONE WORD? @B@@@@ ER II )@@G@@ EABT$ . NO @D@@@@ LA A0,ANS .IJ )@@G@@ GET RESPONSE @C@@@@ TNE A0,('NOMORE') . NOMORE? IK )@@G@@@B@@@@ J NOMORE . YES @^@@@@ LX X4,IL )@@G@@(1,0) @#@@@@ SZ A2 @^@@@@GETC EX LOAD,*X4 @C@@@@ IM )@@G@@ TNE,U A0,5 . BLANK? @B@@@@ J BL IN )@@G@@ . YES @C@@@@ TG,U A0,060 . NUMERIC? IO )@@G@@@A@@@@ TG,U A0,072 .@D@@@@ J ASKW IP )@@G@@ . NO, TRY AGAIN @D@@@@ A,U A2,1 .IQ )@@G@@ INC CHAR COUNT @C@@@@ TE A2,6 . MAX CHARS? IR )@@G@@@D@@@@ J GETC . NO, GET NEXT CHAR@F@@@@BL IS )@@G@@ JZ A2,ASKW . IF 1ST CHAR BLANK, TRY AGAIN @D@@@@ IT )@@G@@ LA,S1 A0,ANS . GET 1ST CHAR @D@@@@ TE,U A0,IU )@@G@@'0' . OCTAL VALUE? @D@@@@ J FDDEC IV )@@G@@ . NO, FD DECIMAL @E@@@@ MSI,U A2,6 . CONVEIW )@@G@@RT CHARS TO BITS @^@@@@ LA,U A3,36 @E@@@@ AN A3,IX )@@G@@A2 . CALCULATE SHIFT COUNT @D@@@@ LA A1,ANS IY )@@G@@ . GET RESPONSE @F@@@@ SSL A1,0,A3 .IZ )@@G@@ RIGHT JUSTIFY, ZERO FILL @E@@@@ LMJ X11,FDBIN .JA )@@G@@ CONVERT TO BINARY IN A2@D@@@@ SSL A2,18 . ADJUSJB )@@G@@T RESULT @E@@@@ SA A2,WORD . STORE FOR LATER UJC )@@G@@SE @C@@@@ J VAL . GET VALUE @]@@@@FDDEC JD )@@G@@ . @D@@@@ TG,U A2,3 . 1 OR 2 DIGITS? @D@@@@JE )@@G@@ J ASKW . NO, TRY AGAIN @D@@@@ LA,S1JF )@@G@@ A0,ANS . GET 1ST CHAR @D@@@@ AN,U A0,060 JG )@@G@@ . STRIP OFF FD @C@@@@ TE,U A2,2 .JH )@@G@@ 2 CHARS? @C@@@@ J ONE . NO, 1 CHAR @F@@@@JI )@@G@@ MSI,U A0,10 . MOVE 1ST DIGIT TO TENS PLACE @D@@@@JJ )@@G@@ LA,S2 A1,ANS . GET 2ND CHAR @D@@@@ AN,U JK )@@G@@ A1,060 . STRIP OFF FD @D@@@@ A A0,A1 JL )@@G@@ . FINAL RESULT @]@@@@ONE . @G@@@@ SA A0,JM )@@G@@WORD . STORE BINARY WORD # FOR LATER USE @]@@@@VAL . JN )@@G@@@D@@@@ LA A0,WORD . GET INPUT WORD # @F@@@@ JO )@@G@@ TG,U A0,28 . MAKE SURE IT'S LESS THAN 28 @D@@@@ JP )@@G@@ J ASKW . NOPE, TRY AGAIN @C@@@@ E$DIT EDTJQ )@@G@@ . OPEN EDIT @C@@@@ E$MSG CVL .JR )@@G@@ GET MSG @D@@@@ LA A1,WORD . GET WORD OFFSET JS )@@G@@@C@@@@ E$OCTF 12,BUF,A1 . EDIT VALUE @#@@@@ E$SKIJT )@@G@@P 3 @C@@@@ E$MSG NVL . NEW VALUE? @#@@@@ JU )@@G@@ E$CHAR '?'@#@@@@ E$MSGR @D@@@@ LA,U A0,TVL JV )@@G@@ . ASK FOR NEW VALUE@^@@@@ ER TREAD$ @D@@@@ LA,U JW )@@G@@ A0,0,A0 . GET WORD COUNT @F@@@@ JZ A0,ASKW JX )@@G@@ . NO CHANGE, ASK FOR ANOTHER @D@@@@ TG,U A0,3 JY )@@G@@ . 2 WORDS OR LESS? @B@@@@ ER EABT$ .JZ )@@G@@ NO @D@@@@ LA,U A1,12 . ASSUME 2 WORDS @C@@@@KA )@@G@@ TNE,U A0,1 . ONE WORD? @B@@@@ LA,U A1,KB )@@G@@6 . YES @^@@@@ LX X4,(1,0) @E@@@@ SZ KC )@@G@@ A2 . INITIALIZE CHAR COUNT @]@@@@CHAR . @C@@@@KD )@@G@@ EX LOAD,*X4 . GET A CHAR @C@@@@ TNE,U A0,KE )@@G@@5 . BLANK? @B@@@@ J BLANK .KF )@@G@@ YES @D@@@@ A,U A2,1 . INC CHAR COUNT @C@@@@KG )@@G@@ TE A2,A1 . MAX CHARS? @D@@@@ J CHAKH )@@G@@R . NO, GET NEXT CHAR@]@@@@BLANK . @F@@@@ JZ KI )@@G@@ A2,NOMORE . IF 1ST CHAR BLANK, GET OUT @D@@@@ TLE,UKJ )@@G@@ A2,7 . 7 CHARS OR MORE? @E@@@@ J CHKFD KK )@@G@@ . NO, MAY BE FD VALUE @E@@@@NUMBER MSI,U A2,6 KL )@@G@@ . CONVERT CHARS TO BITS @^@@@@ LA,U A3,72 @E@@@@ KM )@@G@@ AN A3,A2 . CALCULATE SHIFT COUNT @E@@@@ DL KN )@@G@@ A0,ANS . GET RESPONSE IN A0,A1 @F@@@@ DSL A0,KO )@@G@@0,A3 . RIGHT JUSTIFY, ZERO FILL @E@@@@ LMJ X11KP )@@G@@,FDBIN . CONVERT TO BINARY IN A2@D@@@@ LA A1,A0 KQ )@@G@@ . GET NEXT 6 DIGITS@D@@@@ LMJ X11,FDBIN .KR )@@G@@ SAME FOR THEM @E@@@@ SA A2,ANS . STORE CONVEKS )@@G@@RTED REPONSE@C@@@@ J GOTIT . CONTINUE @]@@@@KT )@@G@@CHKFD . @D@@@@ L A1,A2 . GET CHAR COUNT KU )@@G@@@D@@@@ AN,U A1,1 . LESS 1 FOR JGD @C@@@@ KV )@@G@@ EX LOAD,A1 . GET A CHAR @C@@@@ TG,U A0,060 KW )@@G@@ . NUMERIC? @A@@@@ TG,U A0,072 .@E@@@@KX )@@G@@ J GOTIT . NO, USE RESPONSE AS IS @D@@@@ KY )@@G@@ J NUMBER . YES, CONTINUE @]@@@@GOTIT . @C@@@@KZ )@@G@@ LA A1,WORD . GET WORD # @D@@@@ LA A0,LA )@@G@@ANS . GET NEW VALUE @F@@@@ SA A0,BUF,A1 LB )@@G@@ . STORE NEW VALUE IN BUFFER @D@@@@ LA,U A0,ABW$ LC )@@G@@ . GET ABW$ FUNCTION@D@@@@ SA,S2 A0,PKT+3 . STORELD )@@G@@ IN I/O PKT @F@@@@ SA A0,CHGD . SET CHANGED-SOMETLE )@@G@@HING FLAG @#@@@@ E$DIT EDT@ @@@@ E$COPY 6,('WORD: ') LF )@@G@@@D@@@@ E$OCTV WORD . WORD # (OCTAL) @#@@@@ LG )@@G@@ E$SKIP 2 @C@@@@ E$MSG NVL . NEW VALUE @#@@@@LH )@@G@@ E$CHAR ':'@#@@@@ E$SKIP 1 @B@@@@ E$OCTF 12,ANS LI )@@G@@ . VALUE@^@@@@ P$RINT PLIN1 @C@@@@ J ASKLJ )@@G@@W . GET ANOTHER@]@@@@NOMORE . @D@@@@ TNZ CHGLK )@@G@@D . CHANGED ANYTHING?@B@@@@ J NOCHG LL )@@G@@ . NO @#@@@@ E$DIT EDT@A@@@@ E$MSG ('NEW SECTOR& 'LM )@@G@@) @C@@@@ P$RINT PLIN2 . PRINT MSG @E@@@@ LN )@@G@@ LMJ X10,OUTPUT . DUMP BUFFER CONTENTS @E@@@@ SZ LO )@@G@@ R6 . SET FOR JUST ONE SECTOR@^@@@@ LA,U A0,LP )@@G@@1 @E@@@@ SA A0,WRITING . SET 'WRITING' FLAG LQ )@@G@@@E@@@@ J SEC0 . WRITE OUT THE SECTOR @]@@@@LR )@@G@@NOCHG . @B@@@@ P$RINT (0202,('NO CHANGE ')) @E@@@@ LS )@@G@@ J DONE . GET OUT GRACEFULLY @]@@@@ END LT )@@G@@___ @F@@@@ JZ A2,NOMORE . IF 1ST CHAR BLANK, GET LU )@@G@@OUT @D@@@@ TLE,U*[@@@@*SDFF*@#@@@@ AXR$ @]@@@@$(1) LV )@@G@@ . @]@@@@INFOR* . @D@@@@ L A0,(28,BUF) . LW )@@G@@READ INFOR @C@@@@ LMJ X11,RINF$ . OK? @C@@@@LX )@@G@@ J GOTINF . NO @E@@@@ L,U LY )@@G@@ A0,1 . YES, GET SPEC 1 @C@@@@ LMJ X11,LZ )@@G@@SELT$ . OK? @E@@@@ J GOTINF . MA )@@G@@SKIP IF NO GOOD @E@@@@ LA,S1 A0,ELT$+1 . GET ELMB )@@G@@T CHAR COUNT@D@@@@ TNE,U A0,12 . 12 CHARS? MC )@@G@@@E@@@@ J CHKAD2 . YES, FULL ADDR @F@@@@MD )@@G@@ L A8,ELT$+4 . GET FILENAME (PACKID) @F@@@@ME )@@G@@ TNZ,S2 ELT$ . ANY FILENAME GIVEN? @G@@@@MF )@@G@@ L A8,ELT$+9 . NO, GET IT FROM ELT FIELD MG )@@G@@@F@@@@ S A8,PACKID . STORE FOR LATER USE MH )@@G@@@E@@@@ TNZ,S2 ELT$ . FILENAME GIVEN? @G@@@@MI )@@G@@ J CHKVER . NO, CHECK FOR UNIT IN VERSION MJ )@@G@@@E@@@@ TZ,S4 ELT$ . READ KEY GIVEN? @F@@@@MK )@@G@@ J CHKRKY . YES, MAY BE UNIT NO. @]@@@@ML )@@G@@CHKADR . @E@@@@ LA,S1 A0,ELT$+1 . WAS ADDR GIVMM )@@G@@EN? @C@@@@ JZ A0,GOTINF . NO @E@@@@ MN )@@G@@ J CHKAD3 . MUST BE PACKID.ADDR @D@@@@CHKAD2 SAMO )@@G@@ A0,ABSADSP . ABS ADDR @ @@@@ SA A0,PMP )@@G@@ACKID @F@@@@ SA A0,SSUUSP . IMPLYING SS/UU SPECIMQ )@@G@@FIED @F@@@@CHKAD3 SA A0,ADSPEC . SET ADDR-SPEC'D FLMR )@@G@@AG @F@@@@ MSI,U A0,6 . CALCULATE SHIFT COMS )@@G@@UNT @ @@@@ LA,U A2,72 @ @@@@ AN A2,AMT )@@G@@0 @D@@@@ DL A0,ELT$+9 . GET ADDR @F@@@@MU )@@G@@ DSL A0,0,A2 . RIGHT JUSTIFY, ZERO FILL@F@@_@MV )@@G@@ TZ,S2 ELT$+1 . ELEMENT VERSION PRESENT? @F@@@@MW )@@G@@ J CYLHED . YES, MUST BE CYL/HEAD SPEC@E@@@@MX )@@G@@ LMJ X11,FDBIN . CONVERT TO BINARY @F@@@@ MY )@@G@@ LA A1,A0 . FIRST 6 CHARS, ALSO @ @@@@ MZ )@@G@@ LMJ X11,FDBIN @D@@@@ SA A2,SPEC1AD . NA )@@G@@STORE ADDR @H@@@@ELTCYC TNZ,S3 ELT$+1 . SEC CNT GIVENB )@@G@@N (SPEC1 ELT CYCLE)? @D@@@@ J GOTINF . NC )@@G@@NO, GO ON @F@@@@ LA,S6 A0,ELT$+1 . YES, GET BINND )@@G@@ARY CYCLE @E@@@@ AN,U A0,1 . LESS 1 FOR JNE )@@G@@GD @E@@@@ SA A0,HMANY . STORE SECTOR COUNTNF )@@G@@@C@@@@ J GOTINF . GO ON @]@@@@CHKVER . NG )@@G@@@F@@@@ LA,S2 A1,ELT$+1 . GET VERSION CHAR COUNT NH )@@G@@@H@@@@ JZ A1,GOTINF . IF NONE, SPEC1 IS PACKIDNI )@@G@@, NOT SS/UU @G@@@@ LA,S1 A9,ELT$+11 . YES, VERSIONNJ )@@G@@ IS UNIT NUMBER @E@@@@ LA,S1 A0,ELT$+1 . ELT CHNK )@@G@@AR COUNT @E@@@@ LX,U A2,5 . SS IN ELT FINL )@@G@@ELD @F@@@@ J CONSSU . CONVERT SS/UU TO BNM )@@G@@INARY @]@@@@CHKRKY . @F@@@@ LA,S4 A1,ELT$ . NN )@@G@@GET RKEY CHAR COUNT @G@@@@ LA,S1 A9,ELT$+7 . NO )@@G@@GET READ KEY (UNIT NUMBER) @F@@@@ LA,S2 A0,ELT$ NP )@@G@@ . FILENAME CHAR COUNT @F@@@@ SZ A2 NQ )@@G@@ . SS IN FILENAME FIELD @]@@@@CONSSU . @F@@@@ TE,U NR )@@G@@ A1,1 . UNIT MUST BE ONE CHAR @C@@@@ ER NS )@@G@@ EABT$ . NOPE @F@@@@ SA A1,SSUUSP NT )@@G@@ . SET SS/UU SPEC'D FLAG @F@@@@ AN,U A9,060 NU )@@G@@ . CONVERT UNIT TO BINARY @E@@@@ LA,S1 A8,ELT$+4,A2 NV )@@G@@ . GET 1ST CHAR OF SS@D@@@@ AN,U A8,060 . NW )@@G@@STRIP OFF FD@D@@@@ TNE,U A0,1 . ONE CHAR SS?NX )@@G@@@D@@@@ J GOTSSU . YES, GO ON @F@@@@ NY )@@G@@ MSI,U A8,10 . NO, MOVE TO TENS PLACE @E@@@@ NZ )@@G@@ LA,S2 A0,ELT$+4,A2 . GET UNITS DIGIT @D@@@@ ANOA )@@G@@,U A0,060 . STRIP OFF FD@E@@@@ A A8,AOB )@@G@@0 . ADD TO SS NUMBER @]@@@@GOTSSU . @F@@@@ SAOC )@@G@@ A8,PACKID . SET PACKID = SS NUMBER @H@@@@ JNOD )@@G@@Z A2,GOTINF . IF SS/UU IN ELT FIELD, THAT'S IT @H@@@@OE )@@G@@ L,S1 A0,ELT$+1 . ELSE CHECK FOR ADDR IN ELT FIEOF )@@G@@LD @B@@@@ JNZ A0,CHKAD3 . @E@@@@ OG )@@G@@ . ADDR IN ELT FIELD @]@@@@GOTINF . @C@@@@OH )@@G@@ J 0,X10 . RETURN@[@@@@. @]@@@@CYLHEDOI )@@G@@. @E@@@@ S A1,CYL . STORE CYLINDER SPEC OJ )@@G@@@G@@@@ S A1,CYLSP . SET CYL/HEAD-SPECIFIED FLAOK )@@G@@G @G@@@@ LA,S2 A0,ELT$+1 . GET VERSION CHARACTEOL )@@G@@R COUNT @F@@@@ MSI,U A0,6 . CALCULATE SHIFOM )@@G@@T COUNT @ @@@@ LA,U A2,72 @ @@@@ AN ON )@@G@@ A2,A0 @E@@@@ DL A0,ELT$+11 . GET VERSION (HOO )@@G@@EAD) @F@@@@ DSL A0,,A2 . RIGHT-JUSTIFY, ZERO-OP )@@G@@FILL @E@@@@ S A1,HED . STORE HEAD SPEC OQ )@@G@@@ @@@@ J ELTCYC @#@@@@ END ___ . OR )@@G@@)@@[K@*AG@TK@@@@@@NEW VAE: & T VALUCURREN@@@@@@@]F@@H@]]@@[ORD? WHAT WOS )@@G@@@@@@@@AA@@@@)@E@SEKDAG@TK@@@@@)@J@(@K^[@K@C=@@@HC*@@@HC?@@@HC0@@@HC4@@@HOT )@@G@@@]F@@H@[B@@@LUE& AB@@@@)@O[[@K^[@K^[@K)N@@@@[@@@@@@@@'=@@@@C)@@@IC=@@@IOU )@@G@@C*@@@IC?@@@IC0@@@IC4@@@IC)@@@HAC@@@@)@@[E()@-@*C@-@&-)@-)@)@/K@@[":@@@@WOV )@@G@@C@@@@H'=@@@@%8@@@[/@@@]FC8G@@@'=@@@@C8@@@#AD@@@@)@D[N#@@K0@^@^@@@@%@)@@AOW )@@G@@O;)@@[/K@@@@!8@@@'!8@@@0/K@@@O:8@@@ ')^)@J @@@@IR[@@@XAE@@@@)@N[N@K^G@[@OX )@@G@@@K0@@@;CZ@@@C@K@@HP#0@@IC80@@=T8)@@A/K@@@-%8@@@0C4@@@H/@)@@@/K@@@FAF@@@@OY )@@G@@)@X[F][OK0@K[@K0@@@@@@@@%8)@@]P;@@@0C4@@@H/K@@@@!8)@@#/K@@@?[@)@@ ;C)@@MOZ )@@G@@/,0@@@AG@@@@)@&[F@^G@@K0@K0@^@@@@@@@/K@@@@!8@@@WC@@@@ [@@@@ O#@@@HP;K@@0PA )@@G@@C0K@@HT8@@@E/K@@@:AH@@@@)@\[](@E-@@-)@-@G-)@-@MCK#)@@@/,0@@@C8K@@GC@H@@@PB )@@G@@C@K@@ /,0@@@C8@@@A/,0@@@C/@@@@AI@@@@)@7[]K)^K0@K)A^C@=C#]&@@@@@@@@C8@@@FPC )@@G@@/,0@@@/,0@@@C/@@@?/,0@@@C8@@@D/,0@@@C/@@@#AJ@@@@)@_[N][KK[][G[#@@@ @@@@IPD )@@G@@R[@@@XC8K@@A:8@@@[C8K@@G'=@@@@!8@@@#/@@@@@C8G@@@'=@@@@AK@@@@)[D[N#@@K@K^PE )@@G@@@K@@@@T8)@@A/K@@[W?8)@@B/@)@["/K@@[D%@)@@HO;)@@[/K@@[J:8@@@ ')^)@JAL@@@@PF )@@G@@)[N[E^G@[][OK)PK0@K@@@@@/K@@[<[@)@@H/,0@@@C@K@@G/,0@@@;GJ@@@9?@@@HP#0@@IPG )@@G@@C80@[CAM@@@@)[W[E^G@@K^[#@[#@@@@@@@@C@@@@HC@K@@ /K@@[M/K@@[[#]@=K)QK0@EK]*K@CS@@@@@@@@C8K@@AC8@@@Y/,0@@@PI )@@G@@C/@@@@[@@@@@[0@@@#C8@@@G[@H@@@AO@@@@)[![#]@5#@[]@/K)^K0@K)A@@@@@@@C/@@@:PJ )@@G@@/,0@@@C8@@@D/,0@@@C/@@@]/,0@@@C@@@@ /,0@@@AP@@@@)[5[#]@CK)^K0@^C[4C 4CA@PK )@@G@@@@@@@@'=@@@@R#@@@@/,0@@@C8K@@GC@@@@H/,0@@@C/@@@[/,0@@@AQ@@@@)[.[#@K0@K]=PL )@@G@@@%^@]A@]^@2^#C@@@@R#@@@@/,0@@@C8@@@Z/,0@@@C/@@@@/K@@]F(@@@@@/K@@@@AR@@@@PM )@@G@@)] [#][-][*^CA4CB^G@^CA@@@@@@@'=@@@@R#@@@9)@@^;D)@@)AE@@@@)@W[#]@?K]=@%^@]A@]^[]^[K@@@@@R#@@@@RG )@@G@@/,0@@@C8@@@ /,0@@@C/@@@@/K@@@>>9)@@K'=@@@@AF@@@@)@=[#]@?K]=@%^@]A@]^[]^[RH )@@G@@K@@@@@R#@@@@/,0@@@C8@@@C/,0@@@C/@@@@/K@@@!>9)@@['=@@@@AG@@@@)@?[F]@!]@5@RI )@@G@@K)D[@EK]*K@@/,0@@@C/@@@@/K@@@9>9)@@];D)@@KC =@@[/K@@[C(@@@@@'=@@@@AH@@@@RJ )@@G@@)@5[##@[]@-]@(]@?K]=@%^@@@@@@@/,0@@@C/@@@@/K@@[[>9)@@['=@@@@R#@@@@/,0@@@RK )@@G@@C8@@@FAI@@@@)@.[##@[]@-]@(]@!]@>@EKBCKB)@@'=@@@@C8@@@@/K@@[C*@^@@^'=@@@@RL )@@G@@R#@@@@/,0@@@C8@@@HAJ@@@@)[ @<][@K)G@)@L@*@@@@@@@DED& SUSPENDOWN& S RM )@@G@@UNIT I/KE@@@/K@@@@%8@@@YC4@@@@AK@@@@)@Q@K@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RN )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@ED& RESERVAL@@@@@@^@@]@@A@@L@@*@@[@@?@@@RO )@@G@@@@@@@S@@@@[DEDIT$ EDITR$ ECHAR$ ECOL$ ESKIP$ RP )@@G@@EDT ECOPY$ EPACK$ EMSG$ FATBL PLIN1 RQ )@@G@@PRINT$ DONE DISC TRD4 TREAD$ ANS RR )@@G@@STAT @@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@RS )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@#@@@@ AXR$ @^@@@@HOLDA1RT )@@G@@ RES 2 @^@@@@WDSPERREC EQU 112 @^@@@@RECPERTRK EQU RU )@@G@@ 12 @^@@@@TRKPERCYL EQU 20 @ @@@@LODCH L,S6 A1,,X1 RV )@@G@@@ @@@@ L,S5 A1,,X1 @ @@@@ L,S4 A1,,X1 RW )@@G@@@D@@@@CYLM 'CYLINDER & HEAD & - ADDRESS RANGE & - &' @A@@@@CYLOUTRX )@@G@@M 'CYLINDER OUT OF RANGE' @C@@@@CYLOUTP + 0100+($-CYLOUTM)RY )@@G@@,CYLOUTM @A@@@@HEDOUTM 'HEAD NUMBER OUT OF RANGE'@C@@@@HEDOUTP + RZ )@@G@@ 0100+($-HEDOUTM),HEDOUTM @[@@@@$(1). @]@@@@CYLINDER*. @ @@@@SA )@@G@@ DS A1,HOLDA1 @^@@@@ SZ A2 @^@@@@ SB )@@G@@ LA,U A3,2@ @@@@ L,U X1,CYL @[@@@@CYLLP.@ @@@@SC )@@G@@ EX LODCH,A3 @ @@@@ JZ A1,CYJGD @ @@@@SD )@@G@@ TG,U A1,060 @ @@@@ TG,U A1,072 @ @@@@SE )@@G@@ J CYLOUT @ @@@@ AN,U A1,060 @ @@@@SF )@@G@@ MSI,U A2,10 @ @@@@ A A2,A1 @ @@@@SG )@@G@@CYJGD JGD A3,CYLLP @ @@@@ J GOTCYL @ @@@@SH )@@G@@CYLOUT P$RINT CYLOUTP @^@@@@ J DONE@]@@@@GOTCYLSI )@@G@@. @ @@@@ L,U A3,406 @ @@@@ L A1,HSJ )@@G@@OLDA1 @^@@@@ TE,U A1,5@ @@@@ J CYLCK SK )@@G@@@A@@@@ L A1,HOLDA1+1 @A@@@@ L A1,MSL )@@G@@CT+1,A1 @ @@@@ LSSL A1,32 @ @@@@ SSL SM )@@G@@ A1,34 @^@@@@ TNZ A1 @ @@@@ L,U A3,2SN )@@G@@03 @ @@@@CYLCK TG A2,A3 @ @@@@ J CYLOSO )@@G@@UT @F@@@@ S,H1 A2,CYL . STORE CYLINDER NUMBESP )@@G@@R @^@@@@ SZ A2 @^@@@@ LA,U A3,1@ @@@@SQ )@@G@@ L,U X1,HED @[@@@@HEDLP.@ @@@@ EX LODCSR )@@G@@H,A3 @ @@@@ JZ A1,HEDJGD @ @@@@ TG,U A1,0SS )@@G@@60 @ @@@@ TG,U A1,072 @ @@@@ J HEDOST )@@G@@UT @ @@@@ AN,U A1,060 @ @@@@ MSI,U A2,1SU )@@G@@0 @ @@@@ A A2,A1 @ @@@@HEDJGD JGD A3,HSV )@@G@@EDLP @ @@@@ J GOTHED @ @@@@HEDOUT P$RINT HEDOSW )@@G@@UTP @^@@@@ J DONE@]@@@@GOTHED. @ @@@@ TGSX )@@G@@,U A2,20 @ @@@@ J HEDOUT @E@@@@ S,SY )@@G@@H1 A2,HED . STORE HEAD NUMBER @E@@@@ L,H1 SZ )@@G@@ A2,CYL . GET CYLINDER NUMBER @D@@@@ MSI,U A2,WTA )@@G@@DSPERREC*RECPERTRK*TRKPERCYL @ @@@@ DSL A2,36 @G@@@@TB )@@G@@ DI,U A2,28 . CALCULATE NUMBER OF SECTORS TC )@@G@@@ @@@@ S A2,SPEC1AD@ @@@@ LA,H1 A2,HED TD )@@G@@@B@@@@ MSI,U A2,WDSPERREC*RECPERTRK@ @@@@ DSL TE )@@G@@ A2,36 @ @@@@ DI,U A2,28 @ @@@@ A TF )@@G@@ A2,SPEC1AD@ @@@@ S A2,SPEC1AD@^@@@@ E$DIT TG )@@G@@ EDT @^@@@@ E$MSG CYLM@ @@@@ E$DECV CYL,,H1 TH )@@G@@@#@@@@ E$MSGR @ @@@@ E$DECV HED,,H1 @#@@@@ TI )@@G@@ E$MSGR @ @@@@ E$OCTV SPEC1AD @#@@@@ E$MSGR TJ )@@G@@@ @@@@ L A0,SPEC1AD@ @@@@ A,U A0,060-1 TK )@@G@@@#@@@@ E$OCTV @ @@@@ P$RINT PLIN1 @F@@_@ TL )@@G@@ TZ YOPT . PRINT ADDR RANGE ONLY? @^@@_@ TM )@@G@@ J DONE@ @@@@ L,U A0,060-1 @ @@@@ S TN )@@G@@ A0,HMANY @ @@@@ DL A1,HOLDA1 @ @@@@ J TO )@@G@@ 0,X10 @#@@@@ END ___1,060 @ @@@@ TGTP )@@G@@,U A1,072 @ @@@@)@][S@@@@@@@CYLIND- & NGE & ESS RA- ADDREAD & TQ )@@G@@ER & HCYLINDR:L@@@R$L@@@R[F@@K^[#@[][[][^@@@@@/K@@@@'=@@@@R#@@@P/K@@@,TX )@@G@@8#0@@-O#)@@HT8)@@EP;K@@0/K@@@:AG@@@@)@,[EK^C#=C])^C#4C#)@@@@CC)@@@A#)@@@TY )@@G@@W8)@@W;G)@@=T8)A=@RF)@@@AF)@@@/K@@@:!8)@@OAH@@@@)@7[E[]@.]@/(@E-@@-)@-@GTZ )@@G@@/,0@@@C8@@@ /,0@@@C/@@@@A#)@@@O#)@@@W8)@@W;G)@@=T8)@P@AI@@@@)[@[#]@(]@-]UA )@@G@@@5]@9]@-]@5]@.]@W@/,0@@@C@@@@@/,0@@@/,0@@@CC@@@@/,0@@@/,0@@@CC@@@@AJ@@@@UB )@@G@@)[C[#]@5]@/K)BK)NK)KK)OK)L@@@@/K@@@@*@@@@@'=@@@@R#@@@@/,0@@@O;@@@\R#@@@@UC )@@G@@/,0@@@AK@@@@)[K@+K)PK0@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@/KE@@@UD )@@G@@9?K@@@A#@@@@R;@@@\AL@@@@@@^@@]@@A@@Q@@2@@[@@6@@@@@@@@Q@@@@[OEDIT$ UE )@@G@@EDITR$ ECHAR$ ECOL$ ESKIP$ EDT EMSG$ UF )@@G@@EOCTV$ EDECV$ EFD1$ CYL EDITX$ ECOLN$ UG )@@G@@EMSGR$ HED SPEC1AD PRINT$ DONE MCT UH )@@G@@PLIN1 YOPT HMANY CYLINDER @@[@@@@@@@@@ 10453 UI )@@G@@*[@@@@*SDFF*@#@@@@ AXR$ @^@@@@HOLDA1 + 0 @^@@@@UJ )@@G@@HOLDSS + 0 @D@@@@OUTM 'ADDRESS: & PACK INDEX OUT OF UK )@@G@@RANGE&' @A@@@@NOTM 'SS & NOT MASS STORAGE&' @G@@@@MIXUP ' UL )@@G@@ FATBL SAID THIS DISC WAS & BUT THIS ADDR INDICATES &' @[@@@@. UM )@@G@@@]@@@@$(1) . @[@@@@. @A@@@@. ABSOLUTE SS/U ADDR FORMATION UN )@@G@@@[@@@@. @C@@@@. CALL: LMJ X10,ABSAD WITH ADDRESS IN A1@[@@@@UO )@@G@@. @^@@@@. USES A0,A1,A2 @[@@@@. @D@@@@ABSAD2* . SPECIAL UP )@@G@@ENTRANCE- A8=SS, A9=UNIT, A1=ADDR @C@@@@ SA A1,HOLDA1 UQ )@@G@@ . SAVE A1 @E@@@@ SA,T1 A8,HOLDA1 . STORE SSUR )@@G@@ NUMBER @C@@@@ J CHKA . GO ON @]@@@@US )@@G@@ABSAD* . @F@@@@ TNZ,H1 ADDR . FIRST TIME TUT )@@G@@HROUGH? @C@@@@ J FRSTIM . YES @D@@@@UU )@@G@@ TZ DISC . DISC EQUIP? @C@@@@ J UV )@@G@@ ITSDSC . YES @D@@@@ LA,T1 A0,ADDR UW )@@G@@ . GET SS # @E@@@@ LSSL A1,12 . UX )@@G@@SHIFT OFF JUNK @F@@@@ DSL A0,12 . COMBINUY )@@G@@E SS AND ADDR @E@@@@ SA A1,ADDR . STORE UZ )@@G@@IN I/O PKT @^@@@@ . SLJ TOFF$ @C@@@@ J 0,X1VA )@@G@@0 . RETURN@]@@@@ITSDSC . @D@@@@ SA A1,HVB )@@G@@OLDA1 . SAVE INPUT @ @@@@ SSL A1,30 @E@@@@VC )@@G@@ TOP,U A1,02 . PACK INDEX FORMAT?@C@@@@ VD )@@G@@ J NOTIDX . NO @D@@@@ TOP,U A1,0VE )@@G@@1 . FIXED DISC? @E@@@@ J NOTIDX VF )@@G@@ . NO, IGNORE INDEX @C@@@@ TZ R1F0 . VG )@@G@@FIXED?@G@@@@ J CHGRF . NO, HOW'D WE GET AVH )@@G@@ FIXED ADDR?@E@@@@ TNZ XPKID . ANY FIXED DIVI )@@G@@SCS? @D@@@@ J OUTRNG . OUT OF RANGE@E@@@@VJ )@@G@@ LA A1,HOLDA1 . GET INPUT ADDR @E@@@@ VK )@@G@@ LSSL A1,6 . SHIFT OFF JUNK @E@@@@ SSVL )@@G@@L A1,26 . JUSTIFY INDEX @C@@@@ JZ VM )@@G@@ A1,OUTRNG . UH-UH @F@@@@ LA,H2 A0,XPKID VN )@@G@@ . GET MAX FIXED DISCS @E@@@@ TLE A0,A1 VO )@@G@@ . WITHIN RANGE? @D@@@@ J OUTRNG . VP )@@G@@OUT OF RANGE@F@@@@ TNE A1,PKIDX . SAME AS PREVVQ )@@G@@IOUS INDEX? @E@@@@ J NOTIDX2 . YES, IGNORE VR )@@G@@INDEX @C@@@@ LA A0,(0202,('UNIT SWITCH ')) @D@@@@ VS )@@G@@ TZ PKIDX . NONE YET? @E@@@@ ER VT )@@G@@ PRINT$ . NO, PRINT MSG @F@@@@ SA A1,PVU )@@G@@KIDX . STORE NEW PACK INDEX @D@@@@ TZ P1FLVV )@@G@@AG . P1 EXEC? @E@@@@ J P1IDX VW )@@G@@ . YES, HANLE IT @F@@@@ LXI,H1 A0,XPKID,A1 . VX )@@G@@NO, THIS SHOULD BE EASY @E@@@@ LXM,H2 A0,HOLDA1 . VY )@@G@@SAVED INPUT ADDR @E@@@@ SA A0,ADDR . STORE VZ )@@G@@IN I/O PKT @^@@@@ . SLJ TOFF$ @C@@@@ J 0,X1WA )@@G@@0 . RETURN@]@@@@P1IDX . @F@@@@ L A2,HWB )@@G@@OLDA1 . GET INPUT FOR P1DSC2 @F@@@@ LA,H1 A1,XWC )@@G@@PKID,A1 . GET SS/UU OF THIS PACK @G@@@@ SSL A1,2WD )@@G@@ . ADJUST FOR COMBINING WITH ADDR@C@@@@ J WE )@@G@@ P1DSC2 . DO IT @]@@@@NOTIDX . @D@@@@ TEP,U WF )@@G@@ A1,01 . FIXED DISC? @C@@@@ J FIXED WG )@@G@@ . YES @E@@@@ TOP,U A1,02 . INDEX WH )@@G@@FORMAT? @F@@@@ J NOTIDX2 . NO, PROBLY SWI )@@G@@S/U - OK @G@@@@ TNZ R1F0 . DID FATBL SAWJ )@@G@@Y DISC WAS REM? @G@@@@ J CHGFR . NO, CHWK )@@G@@ANGED FROM FIXED TO REM @D@@@@ J NOTIDX2 . WL )@@G@@YES, OKAY @]@@@@FIXED . @F@@@@ TZ R1F0 WM )@@G@@ . DID FATBL SAY FIXED? @G@@@@ J CHGRF WN )@@G@@ . NO, CHANGED FROM REM TO FIXED @]@@@@NOTIDX2 . @E@@@@ LAWO )@@G@@ A1,HOLDA1 . RETRIEVE INPUT @D@@@@ TZ WP )@@G@@ P1FLAG . P1 EXEC? @C@@@@ J P1DSC WQ )@@G@@ . YES @E@@@@ SA,H2 A1,ADDR . NO, JUWR )@@G@@ST USE H2 @C@@@@ J 0,X10 . RETURN@]@@@@WS )@@G@@P1DSC . @E@@@@ AND A1,P1MASK1 . MASK OUT JUNWT )@@G@@K @E@@@@ LA A1,ADDR . GET CURRENT ADDR WU )@@G@@@E@@@@ SSL A1,20 . SHIFT OFF ADDR @D@@@@WV )@@G@@P1DSC2 LSSL A2,16 . ADJUST ADDR @F@@@@ DSWW )@@G@@L A1,16 . COMBINE SS/U AND ADDR @E@@@@ SAWX )@@G@@ A2,ADDR . STORE IN I/O PKT @ @@@@ LA WY )@@G@@ A1,HOLDA1 @C@@@@ J 0,X10 . RETURN@]@@@@WZ )@@G@@OUTRNG . @^@@@@ E$DIT EDT @^@@@@ E$MSG OUTMXA )@@G@@@E@@@@ E$OCTF 12,HOLDA1 . EDIT INPUT ADDR @#@@@@XB )@@G@@ E$MSGR @ @@@@ P$RINT PLIN2 @ @@@@ ERXC )@@G@@ EABT$ @]@@@@CHGRF . @^@@@@ E$DIT EDT @^@@@@XD )@@G@@ E$MSG OUTM@ @@@@ E$OCTF 12,HOLDA1 @ @@@@ XE )@@G@@ E$MSG MIXUP @B@@@@ E$COPY 9,('REMOVABLE ') XF )@@G@@@#@@@@ E$MSGR @A@@@@ E$COPY 5,('FIXED ') @^@@@@XG )@@G@@ J PRTM@]@@@@CHGFR . @^@@@@ E$DIT EDT XH )@@G@@@^@@@@ E$MSG OUTM@ @@@@ E$OCTF 12,HOLDA1 @ @@@@XI )@@G@@ E$MSG MIXUP @A@@@@ E$COPY 5,('FIXED ') XJ )@@G@@@#@@@@ E$MSGR @B@@@@ E$COPY 9,('REMOVABLE ') XK )@@G@@@ @@@@PRTM P$RINT PLIN2 @ @@@@ ER EABT$ XL )@@G@@@]@@@@FRSTIM . @^@@@@ . SLJ TON$ @D@@@@ SA XM )@@G@@ A1,HOLDA1 . SAVE INPUT @E@@@@ SSL A1,30 XN )@@G@@ . SHIFT BITS DOWN @F@@@@ TOP,U A1,02 XO )@@G@@ . PACKID INDEX FORMAT? @F@@@@ J NODX XP )@@G@@ . NO, MUST BE SS/U FORMAT @E@@@@ TNZ,H2 XPKID XQ )@@G@@ . ANY FIXED DISCS? @C@@@@ J OUTRNG . XR )@@G@@NO @D@@@@ LA A1,HOLDA1 . GET INPUT @E@@@@XS )@@G@@ LSSL A1,6 . ISOLATE INDEX @ @@@@ XT )@@G@@ SSL A1,26 @E@@@@ JZ A1,OUTRNG . XU )@@G@@IF ZERO, NO GOOD @F@@@@ LA,H2 A0,XPKID . GET MAXV )@@G@@X FIXED DISCS @E@@@@ TLE A0,A1 . WITHINXW )@@G@@ RANGE? @C@@@@ J OUTRNG . NO @D@@@@XX )@@G@@ LA,H1 A0,XPKID,A1 . GET SS/UU @B@@_@ SAXY )@@G@@,H1 A0,ADDR . ***** @E@@_@ SA A1,PKIDX XZ )@@G@@ . STORE PACK INDEX @F@@@@ DSL A0,6 . YA )@@G@@MOVE UNIT NO INTO A1 @D@@@@ SSL A1,30 . YB )@@G@@MOVE IT DOWN@D@@@@ TZ P1FLAG . P1 EXEC? YC )@@G@@@F@@@@ SSL A1,2 . MOVE IT DOWN SOME MORE YD )@@G@@@D@@@@ SA A0,PACKID . STORE SS NO @F@@@@ YE )@@G@@ DS A0,A8 . SS IN A8, UNIT IN A9 @D@@@@ YF )@@G@@ LSSL A0,6 . MOVE SS OVER@C@@@@ TZ YG )@@G@@ P1FLAG . P1? @F@@@@ LSSL A1,2 YH )@@G@@ . YES, MOVE UNIT OVER @E@@@@ A A0,A1 YI )@@G@@ . COMBINE SS/U IN A0@G@@@@ LSSL A0,18 . YJ )@@G@@POSITION FOR ABSOLUTE ADDR @D@@@@ L A1,MASK1 YK )@@G@@ . GET MASK @C@@@@ TZ P1FLAG . P1? YL )@@G@@@G@@@@ L A1,P1MASK1 . YES, GET 20-BIT ADDR MASYM )@@G@@K @E@@@@ OR A0,A1 . CREATE MAX ADDR YN )@@G@@@F@@@@ S A1,MAXADR . STORE IT FOR LATER USE YO )@@G@@@ @@@@ L A1,HOLDA1 @#@@@@ . SLJ TOFF$@C@@@@ YP )@@G@@ J 0,X10 . RETURN@]@@@@NODX . @D@@@@ YQ )@@G@@ L,S2 A8,HOLDA1 . GET SS NUMBER @F@@@@ L,T1 YR )@@G@@ A0,MCT+010 . GET HIGHEST SS NUMBER+1 @C@@@@ TZ,T2 YS )@@G@@ MCT+5 . P1 EXEC?@F@@@@ L,T1 A0,MCT+6 YT )@@G@@ . YES, GET IT FROM ELSEWHERE@E@@@@ TG A8,A0 YU )@@G@@ . SS WITHIN RANGE? @E@@@@ J NOTCON . SAYV )@@G@@Y NOT CONFIGURED @F@@@@ L A0,MCTLEN . GET MCT YW )@@G@@HEADER LENGTH @E@@@@ A A0,A8 . POINT TOYX )@@G@@ SS ENTRY @E@@@@ TP MCT,A0 . DEFINED SUSBSYYY )@@G@@STEM? @B@@@@ J NOTCON . NO@G@@@@ L,YZ )@@G@@T3 A0,MCT,A0 . GET INDEX TO SS STATUS ENTRY @D@@@@ ZA )@@G@@ L,S1 A0,MCT,A0 . GET EQUIP TYPE@ @@@@ TNE,U ZB )@@G@@ A0,022 @ @@@@ L,U A0,034 @E@@@@ TG,U ZC )@@G@@ A0,030 . CHECK WITHIN RANGE @B@@@@ TG,U A0,0ZD )@@G@@40 . @ @@@@ J NOTMS2 @E@@@@ ANZE )@@G@@,U A0,030 . ADJUST FOR INDEX @G@@@@ L,S3 ZF )@@G@@ A9,HOLDA1 . GET UNIT FIELD OF ADDRESS @G@@@@ EXZG )@@G@@ SHIFT,A0 . BRANCH OR SHIFT BASED ON EQUIP@F@@@@ ZH )@@G@@ J CHKA . IF JUST SHIFT, GO ON @C@@@@SHIFT ZI )@@G@@ SSL A9,2 . 030 F2@C@@@@ ER EABTZJ )@@G@@$ . 031 FB@C@@@@ J BF4 . ZK )@@G@@032 F4@C@@@@ ER EABT$ . 033 F8@D@@@@ ZL )@@G@@ J BF417 . 034 F17 @D@@@@ J ZM )@@G@@ BD . 035 F14/24 @D@@@@ J BD ZN )@@G@@ . 036 F40 @D@@@@ ER EABT$ . ZO )@@G@@037 FCS @C@@@@BF417 TLE,U A9,070 . F17? @C@@@@ZP )@@G@@ SSL A9,3 . YES @B@@@@BF4 TG,U ZQ )@@G@@ A9,070 . @F@@@@ AN,U A9,070 . ZR )@@G@@ALLOW FOR 432 ON TOP @D@@@@ J CHKA . ZS )@@G@@CONTINUE @D@@@@BD TZ P1FLAG . P1 EXEC? ZT )@@G@@@H@@@@ SSL A9,2 . YES, ADJUST FOR 20-BIT DZU )@@G@@ISC ADDR @[@@@@CHKA. @E@@@@ LA,S2 A0,HOLDA1 . ZV )@@G@@GET SS NUMBER @ @@@@ J SEARCH @]@@@@SRCHDUN. ZW )@@G@@@F@@@@ SA,T1 A0,ADDR . STORE SS # IN I/O PKT ZX )@@G@@@ @@@@ SA A0,PACKID @G@@@@ DS A0,A8 ZY )@@G@@ . STORE SS # IN A8, UNIT # IN A9@[@@@@. @D@@@@. FORM UNIT ZZ )@@G@@NUMBER PORTION OF ABSOLUTE SS/UU ADDRESS @[@@@@. @D@@@@ L AA )@@G@@ A1,HOLDA1 . GET ADDRESS @F@@@@ L,H1 A0,FAB )@@G@@ATBL+1,X11 . GET SS, UNIT FROM FATBL@F@@@@ LSSL A0,2AC )@@G@@4 . SHIFT OFF ANY GARBAGE @B@@@@ SSL A0,2AD )@@G@@4 . @F@@@@ EX JUMP,A2 . JUMP TAE )@@G@@O PROPER ROUTINE @C@@@@JUMP J SF2 . 030 F2AF )@@G@@@C@@@@ ER EABT$ . 031 FB@C@@@@ J AG )@@G@@ SF4 . 032 F4@C@@@@ ER EABT$ AH )@@G@@ . 033 F8@D@@@@ J SF17 . 034 F1AI )@@G@@7 @D@@@@ J SD . 035 F14/24 @D@@@@AJ )@@G@@ J SD . 036 F40 @D@@@@ ERAK )@@G@@ EABT$ . 037 FCS @E@@@@SF2 LSSL A1,1AL )@@G@@6 . SHIFT ADDRESS OVER@E@@@@ SSL A0,2 AM )@@G@@ . ADJUST UNIT NUMBER@G@@@@ LDSL A0,20 AN )@@G@@ . COMBINE UNIT/ADDRESS IN A0 @G@@@@ OR A0,P1MASK1AO )@@G@@ . CREATE MAXIMUM ADDR IN A1 @D@@@@ J SEX AP )@@G@@ . CONTINUE @E@@@@SF4 LSSL A1,18 AQ )@@G@@ . MOVE ADDR OVER @H@@@@ LDSL A0,18 . AR )@@G@@UNIT ALREADY ADJUSTED, MOVE INTO A0 @F@@@@ OR A0,(0,-0) AS )@@G@@ . CREATE MAX ADDR IN A1 @D@@@@ J SEX AT )@@G@@ . CONTINUE @E@@@@SF17 LSSL A1,15 . AU )@@G@@HANDLE 21-BIT ADDR@E@@@@ SSL A0,3 . ADJUSTAV )@@G@@ UNIT NUMBER@D@@@@ LDSL A0,21 . MOVE IN A0 AW )@@G@@@F@@@@ OR A0,(7,-0) . FORM MAX ADDR IN A1 AX )@@G@@@D@@@@ J SEX . CONTINUE @D@@@@SD AY )@@G@@ TZ P1FLAG . ON P1 EXEC? @H@@@@ J AZ )@@G@@ SF2 . YES, HANDLE 20-BIT ADDR LIKE F2 @F@@@@ BA )@@G@@ LSSL A1,18 . NO, ADDRESS JUST 18 BITS@F@@@@ BB )@@G@@ LDSL A0,18 . ADD UNIT NUMBER TO ADDR @F@@@@ BC )@@G@@ OR A0,(0,-0) . FORM MAX ADDR IN A1 @G@@@@SEX BD )@@G@@ TZ SSUUSP . IF ABS ADDR OR SS/UU.ADDR SPEC'D@F@@@@BE )@@G@@ S A0,SPEC1AD . STORE AS SPEC1 ADDRESS @E@@@@BF )@@G@@ S A0,ADDR . SET I/O PKT ADDR @G@@@@ BG )@@G@@ S A1,MAXADR . STORE MAXIMUM ADDR THIS DEVICE@ @@@@BH )@@G@@ L A1,A0 @C@@@@ J 0,X10 BI )@@G@@ . RETURN @[@@@@/. @D@@@@SEARCH LA,U A2,7 . BJ )@@G@@SEARCH FATBL@ @@@@SLOOP TNZ,H1 FATBL,A2 @E@@@@ J BK )@@G@@ SLOOPE . NONE OF THESE @G@@@@ LX,H1 X11,BL )@@G@@FATBL,A2 . POINTER TO UNIT SS TABLE @D@@@@ LR,T1 BM )@@G@@ R1,FATBL,X11 . NO OF UNITS@ @@@@ JGD R1,$+1 BN )@@G@@@F@@@@ A,U X11,3 . MOVE UP TO UNIT INFO BO )@@G@@@E@@@@ULOOP TE,T1 A0,FATBL+1,X11 . RIGHT SS NO? @C@@@@BP )@@G@@ J WRONG . NO @F@@@@ L,S3 BQ )@@G@@ A1,FATBL+1,X11 . YES, GET UNIT NUMBER @G@@@@ EX BR )@@G@@ ESHFT,A2 . BRANCH OR SHIFT BASED ON EQUIP@E@@@@ J BS )@@G@@ UCHK . JUMP IF JUST SHIFT@C@@@@ESHFT SSL BT )@@G@@ A1,2 . 030 F2@C@@@@ ER EABT$ BU )@@G@@ 031 FB@C@@@@ J UF4 . 032 F4@C@@@@BV )@@G@@ ER EABT$ . 033 F8@D@@@@ SSL BW )@@G@@ A1,3 . 034 F17 @D@@@@ J UD BX )@@G@@ . 035 F14/24 @D@@@@ J UD . BY )@@G@@036 F40 @D@@@@ ER EABT$ . 037 FCS BZ )@@G@@@ @@@@UF4 TG,U A1,070 @F@@@@ AN,U A1,070 CA )@@G@@ . ALLOW FOR 432 ON TOP @^@@@@ J UCHK@ @@@@CB )@@G@@UD TZ P1FLAG @F@@@@ SSL A1,2 CC )@@G@@ . ADJUST FOR 20-BIT ADDR @D@@@@UCHK TNE A1,A9 CD )@@G@@ . RIGHT UNIT? @D@@@@ J SRCHDUN . YES, RCE )@@G@@ETURN @E@@@@WRONG A,U X11,4 . NO, GET NEXT UNITCF )@@G@@@C@@@@ TE,U A2,5 . DISC? @^@@@@ TNCG )@@G@@E,U A2,6@E@@@@ A,U X11,1 . YES, ADD ONCH )@@G@@E MORE@D@@@@ JGD R1,ULOOP . NEXT UNIT @E@@@@CI )@@G@@SLOOPE JGD A2,SLOOP . NEXT EQUIP TYPE @^@@@@ CJ )@@G@@ E$DIT EDT @^@@@@ E$MSG NOTM@ @@@@ E$DECV CK )@@G@@ HOLDSS @#@@@@FNMS E$MSGR @ @@@@ P$RINT PLIN2 CL )@@G@@@ @@@@ ER EABT$ @ @@@@NOTMS2 L,T1 A8,HOLDA1 CM )@@G@@@ @@@@ L,S3 A9,HOLDA1 @ @@@@ J NOTMS CN )@@G@@@#@@@@ END ___ OR A0,(0,-0) . FORM MAX ADDCO )@@G@@R IN A1 @G@@@@SEX TZ SSUUSP )@@[S@@@@@@@OT MASSS & NCP )@@G@@& RANGEOUT OFINDEX PACK S: & ADDRES@@@@@@@@@@@@AA@@@@)@F[S@@@@@@@CQ )@@G@@CATES R INDIIS ADDBUT THWAS & DISC D THISBL SAI FATAGE& S STORAB@@@@CR )@@G@@)@Q@C@)@@@;#@[#@[@K)NK^C ^@@@@/K@@@G*@@@@@/K@@[2(C@@@@/K@@]8[Y@@@@[@K@@@CS )@@G@@& AC@@@@)@B[N][G^C^1#@@^@@>8K@@[/K@@@!>8K@@];CK@@Y[@K@@@/KE@@@[@K@@@CT )@@G@@;G@@@G;*K@@GCW@@@@AD@@@@)@L[F@K)PK^C =[#@@^@@@@@/@K@[#;CK@@U;*K@@AC@K@@@CU )@@G@@/K@@[#(@@@@@/K@@[I*@@@@@/K@@@!AE@@@@)@U[#][SK^C 4[#@[][X][)@@@@@@@'=@@@@CV )@@G@@*@@@@@C@@@@T/K@@@6:@K@@@/K@@[#?@@@@HC^@@@@AF@@@@)@+[#][X][>@K)QK0@K)N^G@CW )@@G@@@@@@@@R#)@@@/KE@@@[@@@@@QB@@@@&FH@@@/K@@@(*@@@@@[@K@@@AG@@@@)@%[F][SK[@^CX )@@G@@[][P@@@@@@@@/K@@[Z(@@@@@/K@@@6>8K@@]/K@@@4=8K@@[/K@@@";CK@@]CCX@@@AH@@@@CY )@@G@@)@3[#@K)PK^G@^CAO[][G@@@@@@@@@/KE@@@[^K@@@/K@@@;*@@@@@C@K@@@/K@@[I*@@@@@CZ )@@G@@/K@@@6AI@@@@)@;[F][(][G[][H#@@EK#@@@C/@@@@/KE@@@C@K@@@[@)@@@;GK@@K;*)@@KDA )@@G@@;CK@@OC@K@@@+@K@@@AJ@@@@)[^[#]@[#@[]@X#@@K)CK)HK)V@@@@R#@@@@/,0@@@/,0@@@DB )@@G@@C8K@@GC@@@@@/,0@@@C8@@@]/,0@@@AK@@@@)[G[#][-][0(@G-@@-)@-@I-)@@@@@C8K@@GDC )@@G@@C@@@@@/,0@@@C8@@@]/,0@@@C/@@@@'=@@@@'=@@@@AL@@@@)[O[#]@-#@[]@X#@@K)IK)HKDD )@@G@@0@@@@@C8@@@W/,0@@@/,0@@@C8K@@DC8@@@U/,0@@@C8@@@H/,0@@@AM@@@@)[W[]K)IK]=@DE )@@G@@2^@]A@]^@'A@@@@@@@C@@@@@/,0@@@C8@@@]/,0@@@C/@@@@/K@@[\/,0@@@C8K@@ AN@@@@DF )@@G@@)[=[]K)CK0@K)BK0@^C#=C#K@@@@@@/,0@@@/,0@@@C8K@@ C8@@@W/,0@@@C8@@@H/,0@@@DG )@@G@@C8K@@GAO@@@@)[?[F#@@K)IK)VK)SK)WK0@@>8K@@];CK@@Y[@K@@@'=@@@@'=@@@@R#@@@@DH )@@G@@/,0@@@C8K@@DC8@@@UAP@@@@)[5[F@K)QK^G@@K^C )@@@@@?@@@@HC^@@@@/@K@[#;CK@@UDI )@@G@@;*K@@AC@K@@@/K@@[#(^@@@@/K@@]OAQ@@@@)["[F@K)QK)NK)R[][=K)X@@[@@@@@;CK@@]DJ )@@G@@*@@@@@;CK@@Y;G@@@A[@K@@@[C@@@@CCH@@@/K@@[#AR@@@@)]B[E^CAK^CB=CAOCA)@@@@@DK )@@G@@R#K@@@*@@@@@R#K@@@;*@@@MO#@@@H;*K@@]*@@@@@;*@@@A9*@@@OAS@@@@)]K[EK)ZK0@^DL )@@G@@G@^CC^CC^CC@!]@@@GRZ@@@A*S@@@ RZ@@@CC2@@@@/KE@@@R#K@@@A#K@@@)@@@@HAT@@@@DM )@@G@@)]T[F]] ]]CK))K)-K))K))@R;@@@W:8@@@MR7G@@@RRG@@@/K@@@@0@G@@@O#@@@OR#@@@@DN )@@G@@/K@@@@AU@@@@)]+[M^@K0@K^@K)WK@/K@@]3'=@@@@;EK@@]/K@@]8')G@](C,K@@@P;@@@SDO )@@G@@/K@@^I!8@@@)!8@@@SAV@@@@)]?[N][1@K^[][0@K@/K@@]8H'K@@8!'K@@8;EK@@#?'K@@8DP )@@G@@'=@@@@/K@@]6/K@@]6/K@@]1'=@@@@AW@@@@)]6[#][=K0@K^C^4CBL#@@@@@@@@@@R#K@@@DQ )@@G@@9*@@@O[@@@@@[W@@@@/K@@#EL )@@G@@;*@@@S;C@@@S')I@W#/K@@WF'=@@@Q/K@@WK'=@@@Q/K@@WO*[@@@@*SDFF*@#@@@@ EM )@@G@@ AXR$ @ @@@@GTOKM 'GTB CHECKS OUT OK' @B@@@@GTOK + EN )@@G@@ 0100+($-GTOKM),GTOKM @ @@@@POSS 'POSSIBLE MI0 AT &' @E@@@@BADBAKEO )@@G@@ 'BAD GTB BACK PTR AT & - SHOULD BE &, BUT IS &' @ @@@@SW 'SEP )@@G@@WITCHED UNITS' @A@@@@SWITCH + 0100+($-SW),SW @C@@@@OUTM EQ )@@G@@ 'ADDRESS: & PACK INDEX OUT OF RANGE&'@^@@@@SADDR RES 1 ER )@@G@@@^@@@@SGTB RES 1 @ @@@@BACK + 040000,0 @[@@@@ES )@@G@@$(1). @[@@@@. @E@@@@. MAIN ITEM SEARCH ROUTINE - CALLED IF M-OPET )@@G@@TION SET @[@@@@. @]@@@@SEARCH* . @F@@@@ L X9,(EU )@@G@@3,0) . INITIALIZE DAS INDEX @]@@@@NTRACK . @F@@@@ EV )@@G@@ L A1,DAS,X9 . GET DAS TRACK DESCRIPTOR@E@@@@ EW )@@G@@ JN A1,ETK . SKIP IF NOT USED @F@@@@ LMEX )@@G@@J X10,ABSAD . CONVERT TO ABS SS/U ADDR@F@@@@ L EY )@@G@@ A6,DAS+1,X9 . GET SECTOR BIT MASK @E@@@@ L,EZ )@@G@@U R6,63 . SET FOR 64 SECTORS@E@@@@ J FA )@@G@@ SCZ . HANDLE SECTOR 0 @]@@@@NSEC . @H@@@@ FB )@@G@@ L A0,ADDR . INCREMENT ADDR TO GET NEXT SECTOR FC )@@G@@@^@@@@ A,U A0,1@F@@@@ TZ DRUM FD )@@G@@ . IF DRUM, SECTORS ARE 28 @D@@@@ A,U A0,27 FE )@@G@@ . WORDS APART @ @@@@ S A0,ADDR @E@@@@ L FF )@@G@@ A0,R6 . GET SECTOR COONT @H@@@@ TNE,U FG )@@G@@ A0,31 . TIME TO GET 2ND SECTOR BIT MASK? @C@@@@ FH )@@G@@ L A6,DAS+2,X9 . YES @]@@@@SCZ . @ @@@@. FI )@@G@@ L A0,ADDR @^@@@@. TZ DRUM@H@@@@. A,FJ )@@G@@U A0,27 . MAKE SURE ENTIRE SECTOR WITHIN RANGE@E@@@@FK )@@G@@. TG A0,MAXADR . ADDR < MAXIMUM? @G@@@@. FL )@@G@@ J ETK . NO, THAT'S ALL FOR THIS TRACK @ @@@@FM )@@G@@ L,U A0,PKT @E@@@@ ER IOW$ FN )@@G@@ . READ A SECTOR @D@@@@ TNZ,S1 PKT+3 . FO )@@G@@IO GO OK? @D@@@@ J IOK . YES, GO ON FP )@@G@@@E@@@@ J ETK . NO, GO TO NEXT TRACK@^@@@@FQ )@@G@@. E$DIT EDT @B@@@@. E$COPY 12,('IO ERR CODE ') FR )@@G@@@A@@@@. E$OCTF 2,PKT+3,,S1 @A@@@@. E$COPY 4,('FS )@@G@@ AT ') @ @@@@. E$OCTF 12,ADDR @ @@@@. P$RINT FT )@@G@@ PLIN2 @]@@@@IOK . @G@@@@ L,S1 A0,BUF FU )@@G@@ . CHECK FOR MAIN ITEM SECTOR 0 @^@@@@ TNZ XOPT@^@@@@FV )@@G@@ J NOX @ @@@@ TE,U A0,04 @^@@@@ FW )@@G@@ J NOX @^@@@@ E$DIT EDT @^@@@@ E$MSG FX )@@G@@ POSS@ @@@@ E$OCTF 12,ADDR @ @@@@ P$RINT PLINFY )@@G@@2 @[@@@@NOX. @^@@@@ SSL A0,2@ @@@@ TE,U FZ )@@G@@ A0,04 @ @@@@ TNE,U A0,014 @D@@@@ J GA )@@G@@ $+2 . GOT ONE @F@@@@ J NSECE GB )@@G@@ . NOPE, TRY NEXT SECTOR @^@@@@ E$DIT EDT @A@@@@GC )@@G@@ E$COPY 5,('MI0: ') @ @@@@ E$FD2 BUF+1 GD )@@G@@@^@@@@ E$CHAR '*' @ @@@@ E$FD2 BUF+3 @^@@@@GE )@@G@@ E$CHAR '(' @ @@@@ E$DECV BUF+17,,T3@A@@@@ GF )@@G@@ E$COPY 5,(') AT ') @ @@@@ E$OCTF 12,ADDR @^@@@@GG )@@G@@ E$SKIP 2 @G@@@@ JPS A6,UNALO . GH )@@G@@BIT MASK SHOWS ALLOC/UNALLOC @B@@@@ E$COPY 9,('ALLOCATED GI )@@G@@') @^@@@@ J ALO @B@@@@UNALO E$COPY 11,('UNALLGJ )@@G@@OCATED ') @]@@@@ALO . @D@@@@ P$RINT PLIN2 GK )@@G@@ . PRINT MSG @D@@@@ E$DIT EDT . ANOTHEGL )@@G@@R LINE@A@@@@ E$COPY 5,('MI1: ') @E@@@@ L GM )@@G@@ A0,BUF+13 . GET LINK TO MI1 @F@@@@ LSSL A0,4GN )@@G@@ . SHIFT OFF PCHAR BITS @D@@@@ SSL A0,4GO )@@G@@ . SHIFT BACK @D@@@@ JZ A0,NOMI1 GP )@@G@@ . MI1 EXIST? @E@@@@ E$OCTF 12 . YES, EGQ )@@G@@DIT ADDR @F@@@@ J GTB . GET GRANULE GR )@@G@@TABLE ADDR @A@@@@NOMI1 E$COPY 4,('NONE ') @^@@@@GTB E$GS )@@G@@SKIP 3 @B@@@@ E$COPY 12,('GRANULE TBL:') @^@@@@ GT )@@G@@ E$SKIP 1 @D@@@@ TP BUF . ANY GTGU )@@G@@B? @C@@@@ J NOGTB . NO @ @@@@ GV )@@G@@ L A0,BUF @F@@@@ LSSL A0,4 . GW )@@G@@SHIFT OFF ITEM BITS @^@@@@ SSL A0,4@F@@@@ S GX )@@G@@ A0,SGTB . SAVE IT FOR G-OPTION @^@@@@ E$GY )@@G@@OCTF 12 @^@@@@ J GTB2@A@@@@NOGTB E$COPY 4,('GZ )@@G@@NONE ') @ @@@@GTB2 P$RINT PLIN1 @]@@@@. SLJ TON$ @C@@@@HA )@@G@@. LMJ X10,OUTPUT . DUMP SECTOR@E@@@@ TZ HB )@@G@@ GOPT . IS G-OPTION SET? @E@@@@ TP BUF HC )@@G@@ . AND GTB EXISTS? @E@@@@ J NSECE HD )@@G@@ . NO, GET NEXT MI0 @E@@@@ L A0,ADDR HE )@@G@@ . SAVE CURRENT ADDR @D@@@@ S A0,SADDR . HF )@@G@@IN SADDR @G@@@@ S A0,BACK . FIRST BACK PHG )@@G@@OINTER IS TO MI0 @[@@@@NGTB. @ @@@@ L A1,SGTB @D@@@@HH )@@G@@ TZ R1F0 . REMOVABLE? @ @@@@ J HI )@@G@@ REMMM @B@@@@ L,S1 A0,SGTB . @D@@@@HJ )@@G@@ TEP,U A0,02 . PACKID INDEX@D@@@@ TOHK )@@G@@P,U A0,01 . FIXED ADDR? @D@@@@ J TAG0HL )@@G@@ . NO, GO ON @ @@@@ L,U X10,SGTB @E@@@@HM )@@G@@ TNZ,H2 XPKID . ANY FIXED DISCS? @C@@@@ HN )@@G@@ J OUTRNG . NO @D@@@@ L A0,SHO )@@G@@GTB . GET ADDR @E@@@@ LSSL A0,6 HP )@@G@@ . ISOLATE INDEX @B@@@@ SSL A0,26 . HQ )@@G@@@E@@@@ JZ A0,OUTRNG . IF ZERO, NO GOOD @F@@@@HR )@@G@@ LA,H2 A1,XPKID . GET MAX FIXED DISCS @E@@@@HS )@@G@@ TLE A1,A0 . WITHIN RANGE? @C@@@@ HT )@@G@@ J OUTRNG . NO @D@@@@ LA,H1 A1,XHU )@@G@@PKID,A0 . GET SS/UU @H@@@@ L,H1 A0,ADDR HV )@@G@@ . GET SS/U PORTION OF CURRENT ADDR @ @@@@ TNZ P1FLHW )@@G@@AG @^@@@@ J $+3 @H@@@@ SSL A0,2 HX )@@G@@ . BE SURE NO BITS FROM SECTOR ADDR @E@@@@ LSSL HY )@@G@@ A0,2 . ARE STILL AROUND @D@@@@ TNE A0,AHZ )@@G@@1 . SAME SS/U? @C@@@@ J TAG5 IA )@@G@@ . YES @ @@@@ P$RINT SWITCH @]@@@@TAG5 . @D@@@@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 )@@G@@ORAGE&ASS ST NOT MAJ@@@@)O*[S@@@@@@@(F3) (F60) (FCS) (F40) (F14) (F17) NH )@@G@@(F8) (F4) @@@@@@(F2) T= & AK@@@@)O3@K@)O7@)JA0)[E@)@@@M@@@@@@@=9K^@@NI )@@G@@%9@@@A@@@@@C@@W@O;@@@@@@@@@@@@(F24) @@@@@@AL@@@@)@][##@[#@[#@@K0@K0@K0@@NJ )@@G@@@@@@@@=9K]@@[[K@ND=[K@PS @@@NR=9K@]@[[@@NK=[K@PR[[@@NRAM@@@@)@E[F#@@K0@^NK )@@G@@G@[#@@K0@@@@[[K@NH=9K@@^[[K@NI=9K@@][[K@NG=9K@[@[[K@NF=9K[@@[[K@NEAN@@@@NL )@@G@@)@N[]K0@^G@]&@]^]+A@]^]*@@@@@@'=@@@@*4@@HM'=@@@@R;@@HM[[K@NO=9K@@[[[K@NJNM )@@G@@=9K@@KAO@@@@)@V[##@@K)PK0@K0@K0@K0@ES@@@@@R;@@@BA#@@M@RV@@HU*S@@HTRV@@HWNN )@@G@@'=@@@@!8@@^!RR@@HSAP@@@@)@<[F][SK)P[#@[#@[#@[@@@/@@@@2PF@@@DC^@@@DA#@@NBNO )@@G@@!8@@@L;C@@@Y'=@@@@0@@@@G'=@@@@AQ@@@@)@?[EK0@K0@^G@[][W()@-)@(@@@@@R;@@M#NP )@@G@@/,)@@@M#W)@@C@K@PT&;@@@[C8G@@ECC@@@D[@@@[[AR@@@@)@5[F][-#@@K0@K^G@@K0@@@NQ )@@G@@[@K@@]:8K@@A%8K@@ @@@@]/K@@]C(CH@@ER;K@@BC]@@@@'=@@@@AS@@@@)@"[F#@[#@[@NR )@@G@@^G@^[#@[@@@@A#K@@K/K@@[E(@@@NS/K@@]](@@@NCO9@@@#8L)@[[NX=@@ERDH@@EAT@@@@NS )@@G@@)[B[##@[][=K0@K0@K0@^@@@@@@@@@/K@@][#@^C OCAO[#@[#@[]]^@@@@@@@/K@@@@*@@@NE(@@@NKOX )@@G@@/K@@^G/,)@@@'=@@@@!;)@CW/GK@^%BU@@@@)^![F#@[#@[@K0@K[#@@@@@@;G@@@G;*K@@GOY )@@G@@C@K@N#C8@@__/K@@A;(@@@NG/K@@^7(@@@NRR]K@P)BV@@@@)^6[##@[#@[@K)TES@CK[CS@OZ )@@G@@CKA)@@/,0@@@C8@@OK/,0@@@C/@@MV/,)@@@/GK@A5R#T@^6[@K@N#BW@@@@)^"[F#@@K)LKPA )@@G@@)KK0@^C^L]@K/,0@@@C/@@@,/,0@@@C8K@@GC@D@^7/,0@@@/,0@@@C8K@@GC@@@O'BX@@@@PB )@@G@@) B[##@@K)LK0@K)WK0@K]&@@@@@@@C8@@MB/K@@ N*@@@NG'=@@@@R#@@N#/,0@@@C8K@@GPC )@@G@@C@D@^8BY@@@@) J[F][-#@@K[#@[@K0@@@@@O;@@@[R#@@O'/K@@ VC[(@^7N9)@@_/K@@A5PD )@@G@@%8@@@YC4@@MD'=@@@@BZ@@@@) S[##@@K0@K0@K0@^G@^@@@@@@@@@/K@@A"!@@@NWO;@@@VPE )@@G@@*@@@@#R#@@O'A#@@O'O;@@@V*@@@@#CA@@@@) )[##@[@ES@CK[CS@C]A@]^[*@@@@/,0@@@PF )@@G@@C8@@P-/K@@ ,*@@@NL/,0@@@C/@@MV/K@@A^*@@@NMCB@@@@) *[E[][^K)AK0@K)HK0@@@@PG )@@G@@C@@@O'/,0@@@C8@@PPJ )@@G@@'D)@ _CE@@@@)A#[#][1#@@K]&@]^@MA@]^[*@@@@@/,0@@@C8@@P(/,0@@@C/@@MV/K@@AMPK )@@G@@%8@@@GC0@@O8'=@@@@CF@@@@)AF[##@@K)LK0@K)WK0@K]&@@@@@@@R;@@O5/K@@A!*@@@NFPL )@@G@@'=@@@@R#@@N^/,0@@@C8K@@GC@@@O'CG@@@@)AN[#][.#@[@ES@CK[CS@]^[S@@@@@/,0@@@PM )@@G@@C8K@@EC8@@P:/,0@@@C/@@MV/K@@A)(4@@O8'=@@@@CH@@@@)AV[##@@K)LK0@K)WK0@^@@@PN )@@G@@@@@@@@/K@@A!:8@@@WRB@@O8'=@@@@R#@@N^/,0@@@C8K@@]C4@@O8CI@@@@)A<[]()@-@^-PO )@@G@@)@-@U-)@-@M-)@-@U@/,0@@@C8@@P,/,0@@@C^@@O8/,0@@@C8@@P!/,0@@@C/@@MVCJ@@@@PP )@@G@@)A:[##@[][1#@[@K))K0@K)+K@@@@@8L)@ Q/K@@@@*@@@ND/,)@@@/K@@A2*@@@NM'=@@@@PQ )@@G@@R#@@N^CK@@@@)A3[F#@[@^[#@[@K0@K^G@@@R#@@P1/K@@B[*@@@NO/K@@BP*@@@NM/K@@^7PR )@@G@@$]K@@U/K@@A7*@@@NLCL@@@@)A/[#][1]]H#@[][1@K0@K^G@@@@@@*@@@ND/K@@A;(@@@NLPS )@@G@@/K@@A;'=@@@@R#@@N='=@@@@'=@@@@CM@@@@)B^[F@ES@CKGCS@]@-)@CS@@AZ@@O8R;@@@GPT )@@G@@[@@@NM/K@@A;%8@@@YR7@@MD'=@@@@R;@@MP/K@@A;CN@@@@)BH[##@[#@@^G@^CAOG@^@@@PU )@@G@@@@@@@@/K@@ VN[)@NN/,)@@@C@K@NQM#W)@@N8K@@WR#K@PZR#@@P2CO@@@@)BP[##@[@K0@PV )@@G@@K)WK^G@^CB^@@@@@@@/K@@A;'=@@@@R#@@P7/K@@A;'=@@@@R#@@P5/K@@BU(@@@NDCP@@@@PW )@@G@@)BX[F#@[][>#@[#@@K0@K@@@;GK@@#N8K@@ /K@@ V @@@ND*@@@[A(@@@NRN[)@NN/,)@@@PX )@@G@@R#K@NQCQ@@@@)B&@UK@@@@@@)PR@0])@@@@@NO PACOUNTED NOT M@@[@N>@@)@@@@@]@@@PY )@@G@@/KF@@@8KK@B>;CK@@#CR@@@@)PX[S])@@@@@UNALLOTED ALLOCAS: & ADDRES NO. &PZ )@@G@@SECTOR@@#@@@@@[@O; ON K CS@@@@)P*[S@@@* @@@@@@NP@][@P0EXIT READ&QA )@@G@@ WORDSONLY &ROR I/O ERT & ABW$ ACATED CT@@@@)P3@*]) @@@@@@@@@@@@@@@@QB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@[[@P6ZEROED@[]@P3TEN REWRITCU@@@@0@@@]@) @@@@QC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@[[@P6ZEROED@[]@P3TEN REWRITCV@@@@QD )@@G@@@@^@@]@@A@@=@[I@@,@^A@@@@@@@P8@@@@B(MSALL$ ABR$ EDIT$ QE )@@G@@EDITR$ ECHAR$ ECOL$ ESKIP$ ECLR$ EOCTV$ QF )@@G@@EDECV$ EFD1$ ECOPY$ EPACK$ EMSG$ EDITX$ QG )@@G@@ECOLN$ EMSGR$ EOCTF$ EDECF$ EDCFZ$ MCT$ QH )@@G@@EABT$ MSCON$ INFOR TREAD$ ABSAD CYLINDER QI )@@G@@ABSAD2 PRINT$ STAT RDV1 IOW$ OUTPUT QJ )@@G@@SEARCH CHANGE EXIT$ PACKID @@@@@@@@@@@@BASDAS QK )@@G@@@@@@@@@@@@@[DISC @@@@@@@@@@@]DRUM @@@@@@@@@@@#MASK1 QL )@@G@@@@@@@@@@@@@ P1MASK1 @@@@@@@@@@@AFATBL @@@@@@@@@@@EDAS QM )@@G@@@@@@@@@@@@^6MCT @@@@@@@@@@HOMCTLEN @@@@@@@@@@M@ANS QN )@@G@@@@@@@@@@@@MDDONE @@[@@@@@@@A;TRD4 @@@@@@@@@@MTLINE QO )@@G@@@@@@@@@@@@M-EDT @@@@@@@@@@MVPLIN @@@@@@@@@@N#PLIN1 QP )@@G@@@@@@@@@@@@N^PLIN2 @@@@@@@@@@N SKIP1 @@@@@@@@@@NAP1FLAG QQ )@@G@@@@@@@@@@@@NBSSUUSP @@@@@@@@@@NCXOPT @@@@@@@@@@NHYOPT QR )@@G@@@@@@@@@@@@NIVOPT @@@@@@@@@@NJGOPT @@@@@@@@@@NKADSPEC QS )@@G@@@@@@@@@@@@NLWRITING @@@@@@@@@@NMHMANY @@@@@@@@@@NNSPEC1AD QT )@@G@@@@@@@@@@@@NQBATCH @@@@@@@@@@NRABSADSP @@@@@@@@@@NSPKIDX QU )@@G@@@@@@@@@@@@NTPYET @@@@@@@@@@NUR1F0 @@@@@@@@@@NVMAXADR QV )@@G@@@@@@@@@@@@NWCYLSP @@@@@@@@@@NXCYL @@@@@@@@@@NYHED QW )@@G@@@@@@@@@@@@NZXPKID @@@@@@@@@@N>PKT @@@@@@@@@@O5ADDR QX )@@G@@@@@@@@@@@@O'BUF @@@@@@@@@@O;NOTMS @@[@@@@@@@]QNOTCON QY )@@G@@@@[@@@@@@@]C8)@@ ')])K"C@K@[[+8K@_@;G)@@%W8)@@E/@)@DAG8)@@0')])K"C8\@@0')])K"WH )@@G@@C8)@@,')])K"+8K@@_C8I@Y?C8K@@ RE1@@#/K@@M? JAN UARY FEB RUARY MAR CWI )@@G@@H APR IL MAY JUN E JUL Y AUG UST SEP TWJ )@@G@@EMBER OCT OBER NOV EMBER DEC EMBER A^W@@#A@?@@^A@/@@ Q8W@@@1O@@G$WK )@@G@@/K@@D2C@)@@GC8@)@['=@@[\C@@@@I 0[@@@N?L@@@R@)@G*R^1@@@&80@@[C8@@G(M@/)@@WL )@@G@@Q^1@@@ ?[@@]/KF@@@A^W@@#A@?@@^A@/@@ Q8W@@@1O@@G$/K@@EAC@)@@GC8@)@['=@@[\WM )@@G@@C@@@@I 0[@@@&8)@@[Q4-@@[&80@@[Q01@@[O^1@@@/KF@@@A4-@@[P^1@@@A01@@[*0[@@@WN )@@G@@/K@@ENC8@@@['=@@[\C8[@@@Q^L@@#R@?@@^R@/@@ /KF@@@[W<@@@[K<@@@[S<@@@/?)@EWWO )@@G@@[O<)@@A^-@@]Q8)@@@/K[K@]C8?@@@')])ES/KF@@@;G@@@=W8@@@^G^[@@@Q8!@@@Q8/@@@WP )@@G@@/KF@@@G8]@@@C8N@@@H^L@@@;*K@@]G8H@@@/K@@E@@@KS/K@@H@XB )@@G@@>@@@KT/KF@@[C8H@@@?8I@@@/K@@G0C@@@KRC8K@@#/KF@@@C@@@KGC8K@@[/KF@@@[@@^@[XC )@@G@@C@@@KMC8K@@]/KF@@@L8@@@[C@)^@@G8)@@[*@I@@@?CY@@@/K@@HJG),@@@/K@@HD%CI@@@XD )@@G@@/KF@@@C)"@@@H80@@[T80@@AG="@@@9?I@@[?80@@BC@K@KU/KF@@[N8W@@@C^@^@@G8@@@[XE )@@G@@C9K@@[ @@^@JN8)@@@(@G@@@/K@@I^(4G@@@/K@@H4%1W@@@/K@@I^C?W@@@!8K@@A/K@@H7XF )@@G@@%(K^@J @@^@I[(K^@J9??@@[C-G@@@:9@@@[C@0@KU')H@I4H9@@@[T9@@@AG>G@@@')H@I/XG )@@G@@G)G@@@G8@@@[/K@@HZ:9K@@[/K@@H/C*?@@@:8)@@.N8)@@[%[K@[[/K@@H4/K@@H:%@)@KUXH )@@G@@[5@^@I:@)@KU[-K^@I/K@@H4(@@@[]:(K^@J/K@@ID[(K^@J @@^@I:[K@[[/K@@ILG9K@@[XI )@@G@@*@G@@@/K@@HY @@^@I @@^@J/KF@@@:(K^@J *@^@J9?K^@I98V@@@C8@@@-[=@^@J(?@^@JXJ )@@G@@/KF@@[C@@^@VD8)@@@C80@@@C!@^@J8^@@I=1@@@@I!8)@[@C80@@E[))^@J[=0^@J/KF@@[XK )@@G@@C8K@@@;=@@@A?8K@@'?8K@@0/K@@I\(@@@@JC80@[@H8K@@0T8)@@EG8!@@@/K@@IX/^0@I)XL )@@G@@%8K@@+:8K@@-C8.@@@/@0@I)/K@@IX9*)^@K9*)^@M[@)^@O[@)^@P[@)^@Q9*)^@R9*)^@TXM )@@G@@[@)^@V/K@@H_[1@^@I[!@^@I[(@^@I[>@^@I[5@^@J[1@^@J[!@^@JC80@@F+8K@@_:8)@@ XN )@@G@@;^@@@A8#0@JA9*@^@#C@@@KVC@K@KWC8)@@BC@0@KU[@"^@A8#)@JJN4K^@I9!@^@K/\)@J.XO )@@G@@C9K@@*(4@^@I*)@^@I')H)@@N0K^@I9!@^@M*@@@[[/K@@JYC[@@KXN8K@@^/\)@J.N?K^@IXP )@@G@@(@@@[[/K@@J*C9K@@(')H)@@C[@^@O/\)@J.C9K@@)')H)@@(*@^@I*=@^@I/K@@J,C@@@KYXQ )@@G@@'=@@@J/KF@@@C9K@@/')H)@@N*K^@IC[@^@P/\)@J.N=K^@I(@@@[[/K@@J:C9K@@/')H)@@XR )@@G@@C[@^@Q/\)@J./K@@J:;>@@@A')H)@@8KK@J;/KI@@@[5W@@@[1W@@@[!W@@@[(W@@@[>W@@@XS )@@G@@/\0@K [-W)@@Q;K@J_/KJ@@@PROCESSOR CALL ERROR @[^@KCABNORMAL RETURN FRXT )@@G@@OM READ$ @[ @KHTOO MANY SPECIFICATIONS @[^@KN]@@@@@[@@@@@ @@[^@AXU )@@G@@@@[@J_TPF$ @@G^@]A^W@@#A@?@@^A@/@@ Q8W@@@N?L@@@R@)@NIR^1@@@&80@@[C8@@NJXV )@@G@@M@/)@@Q^1@@@ ?[@@]/KF@@@A^W@@#A@?@@^A@/@@ Q8W@@@&8)@@[Q4-@@[&80@@[Q01@@[XW )@@G@@O^1@@@/KF@@@A4-@@[P^1@@@A01@@[C8[@@@Q^L@@#R@?@@^R@/@@ /KF@@@[4<@@@[0<@@@XX )@@G@@[?<@@@[*<@@@[=<@@@/?)@L^[)<)@@A^-@@]Q8)@@@/K[K@]C8?@@@')])K"/KF@@@;G@@@=XY )@@G@@W8@@@AG^[@@@Q8!@@@Q8/@@@/KF@@@G8]@@@C8N@@@H^L@@@T8K@@AG8H@@@/K@@LFN?L@@@XZ )@@G@@Q^1@@@C8@@NJM@/)@@Q8)@@@Q^1@@@/KF@@@C8#@@@H^[@@@T8@@@AG8]@@@/KF@@@C80@@ YA )@@G@@/K@@L&C80@@F;^@@[]+8K@@_%8)@@ :8)@@@/K@@L?')])K"8#0@L&/KF@@@&"0__"/K@@L1YB )@@G@@&'0@@@C8.@@@;G@@@M;CK@@M&;@@@[&;K@@[8#0@L8/KF@@@')G)MG0@@@@F%8)@@@')])K"YC )@@G@@/K@@L6C?[@@[C^L@@[/K@@M];G@@@M;CK@@M&;@@@[&;K@@[')G)MG:0-@@@/K@@MD')])K"YD )@@G@@/K@@M^[?[@@[[^L@@[/KF@@@C4!@@@C0!@@@C?!@@@C*!@@@C=!@@@/\@@MMC)!)@@[^[@@]YE )@@G@@Q;@@@@/K[K@]C80@@@;G@@@#/@@@MYG80@@[;G@@@#/^@@MTC8)@@0')])K"C8)@@@;=K@@#YF )@@G@@G8)@@0')])K"8#0@MY/KF@@@C8.@@@T8K@@#;GH@@@H80@@[/K@@MY&"0__"/K@@M!C8K@@@YG )@@G@@&'0@@@N8X@@@C80@@@;O@@@=W8@@@EE/X@@@;?)@@AG8.@@08KK@M5/^@@M\/C@@M/0@@@@FYH )@@G@@/K@@M/;?)@@AG80@@-8KK@M/C@K@@I0@@@@F1@@@@G/K@@N#R;)@@-')])K"8KK@N#C8)@@ YI )@@G@@0@@@@FC8)@@0/K@@NC')])K"8KK@NBC@)@@J')])K";GK@@A/^)@NE/KF@@@@@[@@@ YJ )@@G@@(@@^[U/K@@QAA])^[AC8@^QH'=@@@#(4@^QK/K@@N=C/@^N3/,0@KZC8@^@3/,0@M@C4@^QKYK )@@G@@C8K@@]/,0@M=/,0@L.C8@^[BC8K@@^/,0@L0R#@^OW'=@@@IC@@^QN:@@^@=/K@@N3C/@^N3YL )@@G@@/,0@KZC8@^[CC8K@@G/,0@L0C@@^QMC8K@@G/,0@M=R#@^OV'=@@@I/,)@*$/K@@X^C/@^@WYM )@@G@@/,0@D$C8@^@=/,0@FSC8@^QOC8K@@A/,0@FC/,0@FPC^@^QR/,0@G[/,0@FPC@@^QQ/,0@F?YN )@@G@@(@@^QS/K@@O /,0@FPC@@^QS/,0@G[/,0@EGR#@^@<'=@@@8C@0^[X*@@^OZC@0^[YC@O^[+YO )@@G@@[@K^[TC@@^QQ+@K@@J+@@@@J:@K@@I/K@@OP[@@^[TR#@^[ '=@@@IC/@^N3/,0@KZC8@^@7YP )@@G@@/,0@M@C@K^QQO;K@@[/,)@-/C@@@@H/,0@MQ/,0@L.R#@^OV'=@@@IR;@^QH'=@@@#(4@^QKYQ )@@G@@/K@@O2C/@^N3/,0@KZC8@^@3/,0@M@C4@^QKC8K@@]/,0@M=/,0@L.C8@^[EC8K@@E/,0@L0YR )@@G@@R#@^OW'=@@@IC/@^N3/,0@KZC8@^@;/,0@M@C8@^QRC8K@@A/,0@L0C/@@@#/,0@LLC8@^[GYS )@@G@@C8K@@A/,0@L0C@@^QN/,0@MQC/@@@#/,0@LLC8@^[HC8K@@A/,0@L0C@@^QO/,0@MQC/@@@#YT )@@G@@/,0@LLC8@^[IC8K@@G/,0@L0C^@^QS/,0@MQR#@^OW'=@@@IC/@^N3/,0@KZC8@^[KC8K@@^YU )@@G@@/,0@L0C8@^@./,0@M@CC@^QP/,0@M:C/@@@//,0@LCC^@^QP/,0@M:C/@@@#/,0@LLC8@^[LYV )@@G@@C8K@@A/,0@L0C8@^@./,0@M@CC@^QQ/,0@M:C/@@@//,0@LCC^@^QQ/,0@M:R#@^OW'=@@@IYW )@@G@@C/@^N3/,0@KZC8@^[MC8K@@D/,0@L0C4@^QT=8@@@K/K@@P7C8@^[OC8K@@^/,0@L0C8@^[PYX )@@G@@C8K@@A/,0@L0C8@^[QC8K@@G/,0@L0C@@^QU/,0@CSC/@@@]/,0@LLC@@^QU/,0@C@R#@^OWYY )@@G@@'=@@@IR])^[A*@@^O$/K@@X^/KE@@@%9@@@A=9K^@@[[@^O\=[K^Q\[[@^O*=9K@]@ @@^O\YZ )@@G@@=[K^Q0[[K^O-=9K]@@[[K^O+=9K[@@[[K^O<=9K@[@[[K^O==9K@@][[K^O&=9K@@^[[K^O>ZA )@@G@@=9K@@K[[K^O$=9K@@[[[K^O?R;@^I%'=@@@-*4@^I%'=@@@QRR@^I0!8@@^!'=@@@QRV@^I4ZB )@@G@@*S@^I1RV@^I2A#@^NSR;@^[Z'=@@[P0@@@@G'=@@@Q;C@@@Y!8@@@LA#@^OZC^@^[-PF@^[-ZC )@@G@@/@@@Q;[@@@[[CC@^[-C8G^[+&;@@@[C@K^Q1M#W)@@/,)@(YR;@^NV(@@^[S'=@@[]C]@^[SZD )@@G@@R;K@@B(CH^[+/K@@SL @@^[U%8K@@ :8K@@A[@K^[URDH^[+NX=^[+8L)@REO9@@@#(@@^O)ZE )@@G@@/K@@SF(@@^O0/K@@RNA#K@@KC@K^O,/,)@-/R#K@@KRZ@^I4*S@^I1RZ@^I2!]@@@G/K@@S?ZF )@@G@@R#)^NSO#)@@O0@I^I?/K@@S?RR,^I?R#I^I!;*@@@+;C@@@+:8@@@#H'@@@[[]@^[S*@@^O0ZG )@@G@@/K@@R2(@@^O(/K@@R:(@@^O5/K@@R:/,)@&E @@^O5[@K@@KC@K^QM(@@^O([@K^O,C@K^O,ZH )@@G@@/,)@-9C@K@@K%Y^^[=8@@@K @@^O3RF^^[<;*@@@MZO )@@G@@R#K^[X*@@^OZR#K^[Y)@@@@HA#K^O4*@@^O5/,)@&EC/@^N3/,0@KZ*@^^[&/K@@TNC8@^Q4ZP )@@G@@C8K@@B/,0@L0/K@@TQC8^^[&C8K@@A/,0@L0C8@^Q6C8K@@^/,0@L0CY^^[;*@@@A;C@@@AC8K@@G/,0@M=R#@^OV'=@@@I/,)@$YC@K^QM(@@^O)ZU )@@G@@/,)@-9*@@^O(/K@@X&/,)@NKC@K^[T;*K@@A;CK@@A/,)@-/ @@@@UR;@^QH'=@@@#*4@^QKZV )@@G@@'=@@@Q(@@^O**@@^O+/K@@U&C/@^N3/,0@KZC8@^P&/,0@M@C@@^QMC8K@@G/,0@M=R#@^OVZW )@@G@@'=@@@I/,)@*$R#@^Q7C@0@@UQ;Z^AI&;K@@[N8K@@WM#W)@@G;)@@VC@Z^A(/GK@U3!;)@CWZX )@@G@@'=@@@Q/,)@-//K@@UP(@@^O**@@^O+/K@@X2R]K^Q8(@@^O\/K@@V@(@@^O=/K@@X^C8@@__ZY )@@G@@C@K^OV;*K@@G;G@@@G[@K^OVR#T^AI/GK@W"/,)@-/C/@^N3/,0@KZC8@^P*/,0@M@C@@^QMZZ )@@G@@C8K@@G/,0@M=/,0@L.C@D^AJC8K@@G/,0@M=C/@@@,/,0@LCC@D^AKC8K@@G/,0@M=R#@^OVAA )@@G@@'=@@@I*@@^O=/K@@VWC8@^NZ'=@@[]C4@^N-%8@@@Y/K@@W"N9)@@_C[(^AJ/K@@V=R#@^QMAB )@@G@@O;@@@[*@@^[VO;@@@VA#@^QMR#@^QM*@@^[VO;@@@V!@@^O4/K@@XB*@@^O%/K@@WHC/@^N3AC )@@G@@/,0@KZ*@@^O(/K@@V7C8@^Q9/,0@M@C8@@@_P#@@[AC8K@@#/,0@M=C/@@@^/,0@LLC8@^Q;AD )@@G@@/,0@M@C@@^QMC8K@@G/,0@M=*@@^O(/K@@WFC@@@[A:8@@@ZC[(^AKC/@@@#/,0@LL'D)@WCAE )@@G@@C8@^Q.C8K@@D/,0@L0/K@@WFC8@^Q_C8K@@F/,0@L0R#@^OX'=@@@IC0@^QK%8@@@G/K@@WVAF )@@G@@C/@^N3/,0@KZC8@^R[/,0@M@C@@^QMC8K@@G/,0@M=R#@^OW'=@@@I*@@^OAP )@@G@@/K@@YO%8@@@^/K@@YOC/@^N3/,0@KZC8@^RO/,0@M@C@@^QMC8K@@G/,0@M=R#@^OX'=@@@IAQ )@@G@@;C@@@]%8@@@^:8@@@G/K@@YT/K@@-AR )@@G@@C/@@@*/,0@LC9?@^QQ/,0@L>C/@@@(/,0@LCCO@^Q=/,0@M:C8@^R,C8K@@ /,0@L0C@@^QMAS )@@G@@C8K@@G/,0@M=C/@@@]/,0@LL'D)@Y5C8@^R\C8K@@D/,0@L0/K@@Y8C8@^R1C8K@@F/,0@L0AT )@@G@@R#@^OX'=@@@IC/@^N3/,0@KZC8@^R3C8K@@ /,0@L0R#@^Q);*@@@^;C@@@^/@@@ZAC8K@@GAU )@@G@@/,0@M=/K@@ZDC8@^R4C8K@@^/,0@L0C/@@@#/,0@LLC8@^R5C8K@@G/,0@L0C/@@@[/,0@LLAV )@@G@@0@@^QN/K@@ZTR#@^QN;*@@@^;C@@@^A#@^R%C8K@@G/,0@M=/K@@ZWC8@^R4C8K@@^/,0@L0AW )@@G@@R#@^OW'=@@@I*@@^O*0@@^QN/K@@-8@@@[/K@@)PR')^R%(^@^O./K@@)ER#@^R%;*@@@A;C@@@U/@@@)EC^K^O.?@K@@GAY )@@G@@/K@@)ECCW^O.RF@^QM(@@^OZ/K@@Z;;C@@@];*@@@]:@@@@H/K@@Z_R#@^R+'=@@@IR#@@@HAZ )@@G@@R#K^R%;*K@@K(@@^OZ;*K@@]*@@^OZ;C@@@];G@@@K(@@^OZ;G@@@]/K@@)$C/@^N3/,0@KZBA )@@G@@C8@^R8@@@[BE )@@G@@/K@@-NR')^QO(^@^O./K@@)ER#@^QO;*@@@A;C@@@U/@@@)EC^K^O.?@K@@G/K@@)ERFG^O.BF )@@G@@R#K^QO;*K@@K(@@^OZ;*K@@]*@@^OZ;C@@@];G@@@K(@@^OZ;G@@@]R#@@@H/K@@-QC@@^QOBG )@@G@@;*@@@^;C@@@^%@@^R:/K@@-$0@@^QN/K@@-ZR#@^QMA#@^R:R#@^QNA#@^R%/K@@Z=R#@^RNBH )@@G@@'=@@@IR#@^R(A#@^QM8L)@X9$]K@@U/K@@X3/K@@X^C/@^N3/,0@KZC8@^RR/,0@M@C@@^QMBI )@@G@@C8K@@G/,0@M=/,0@L.C@@^R:C8K@@G/,0@M=/,0@L.C@@^QOC8K@@G/,0@M=R#@^OX'=@@@IBJ )@@G@@/K@@--[@K^R7[Y@^R7/K@@=1(C@^QM/K@@<:*@@^[U/K@@+ CW@^QM;*K@@G;G@@@G[@K^QMBK )@@G@@/KE@@@[@K^R7;CK@@Y>8K@@]/K@@+&>8K@@[/K@@+&*@@^O3/K@@8K@@]/K@@+\(@@^O3/K@@8K@@]/K@@=H(^@^O.BT )@@G@@/K@@+/C@K^R7;*K@@A;CK@@U/@K@+/C^@^O.?@@@@H/K@@+/CCH^O.[C@^QM[@K^O1;G@@@ABU )@@G@@;CK@@Y*@@^OZ;CK@@][@@^[S9*@@@O;*@@@A*@@^OZ;*K@@]O#@@@H;*@@@MR#K^[X*@@^OZBV )@@G@@R#K^[Y)@@@@HA#K^O4R#K^R7/KE@@@C2@^R7RZ@^I4*S@^I1RZ@^I2!]@@@G/K@@S?R#@^NSBW )@@G@@O#@@@O0@G^I?/K@@S?RRG^I?R7G^I?:8@@@MR;@@@W!8@@@S!8@@@)/K@@&BP;@@@SC,K^R7BX )@@G@@')G@=+/K@@=1;EK@@]'=@@@Q/K@@=?'=@@@Q/K@@=%/K@@=\/K@@=\'=@@@Q?'K@@8;EK@@#BY )@@G@@!'K@@8H'K@@8/K@@=1*@@^OZ;EK@@]C0@^R7/K@@>W[W@^QM[@@^[S9*@@@OR#K^R7RFF^[#'=@@@Q/K@@>C'=@@@Q/K@@>G/K@@>L/K@@>L'=@@@Q;*K@@KCA )@@G@@;C@@@];?@@@O)@@^[Y/K@@>Q;*K@@M;?@@@M)@@^SO/K@@>Q;*K@@J;C@@@#;?@@@P)@@^SPCB )@@G@@/K@@>Q*@@^OZ/K@@>#;*K@@M;?@@@M)@@^SO*@@^O)A#@^O,A#@^QMA#K^O4R#K@@G/KE@@@CC )@@G@@C8)@@B(CI^[+/K@@>/RE"^[+NWV^[+8KK@>+O'0@@#%WF^[7R\V^[<')I@>*/K@@>5CD )@@G@@;CK@@]'=@@@Q/K@@>0'=@@@Q;CK@@#/K@@>3/K@@>3'=@@@Q!8K@@8P;K@@8/K@@>5*@@^OZCE )@@G@@;CK@@]:@K@@P/K@@=3O'0@@^%8)@@ :8)@@AO'0@@[8KK@><8#)@>XC/@^N3/,0@KZC8@^S@CF )@@G@@/,0@M@C@@^R8/,0@M:/,0@L.R#@^OX'=@@@I'=@@@QCY@^R7C,K^R7/K@@SZ9*K^SQ @@@@ICG )@@G@@C80@@]R8K^O6')J^SS/@K@&Q!8K@@0!8K@@'/K@@&SP;K@@0T8)@@EO#)@@H8#0@&I/K@@&VCH )@@G@@R#@^S&'=@@@I/K@@X^R;0@AQR#K^SQ%8K@@ /K@@&>R#K^SRR#X^I!;*K@@);CK@@+(@@@@HCI )@@G@@R;0@#F!@)@@J/K@@&SAF)^O6 @@@@IC80@@[R8K^O7')J^SS/@K@&3!8K@@0!8K@@'/K@@&5CJ )@@G@@P;K@@0T8)@@EO#)@@H8#0@&:/K@@&8R#@^S:'=@@@I/K@@X^!8)@@O/K@@&5AF)^O7RF)^O6CK )@@G@@T8)A=@;G)@@=W8)@@WA#)^O,CC)^O7T8)@P@;G)@@=W8)@@WO#)^O,A#)^O,C/@^N3/,0@KZCL )@@G@@C8@^SV/,0@M@CC@^O6/,0@M:/,0@L.CC@^O7/,0@M:/,0@L.C@@^O,/,0@MQ/,0@L.R#@^O,CM )@@G@@O;@@@\/,0@MQR#@^OW'=@@@I*@@^O&/K@@X^R;@@@\A#@^O:9?K^SQ/KE@@@C[=^[+;D)@@+CN )@@G@@/[)@$0C/@^N3/,0@KZC8@^S.C8K@@C/,0@L0C8@^S_:9)@@[C8@^T@:9)@@]C8@^T]/,0@M@CO )@@G@@R#@^OW'=@@@I:9)@@#/K@@X^C[=^[+;()@@];D)@@)>9)@@^/K@@$;C/@^N3/,0@KZC8@^S?CP )@@G@@/,0@M@R#@^OW'=@@@I>9)@@K/K@@*#C/@^N3/,0@KZC8@^S1/,0@M@R#@^OW'=@@@I>9)@@[CQ )@@G@@/K@@*FC/@^N3/,0@KZC8@^S4/,0@M@R#@^OW'=@@@I(@@^[U/K@@*&C =^[<;D)@@K>9)@@]CR )@@G@@/K@@*RC/@^N3/,0@KZC8@^S7/,0@M@R#@^OW'=@@@I>9)@@[/K@@*ZC/@^N3/,0@KZC8@^S9CS )@@G@@/,0@M@R#@^OW'=@@@I*@^^[&/K@@*&C8@^N1'=@@[]C4@^N-%8@@@Y/K@@X^/KE@@@R[@^TFCT )@@G@@C@@^QNC8K@@U%@H^QO/K@@*68#K@*%C/@^N3/,0@KZC8@^T^/,0@M@C@^^QN/,0@MQR#@^OWCU )@@G@@'=@@@I/KE@@@C@@^OY*@@^O\'=@@@IN9@@@ *@@^O\N9@@@#C/@^N3/,0@KZC@K@[^/@K@(FCV )@@G@@C8O@@@/@K@(F&;K@@[C@^^QN%@H^QO/K@@(F$;K@@U/K@@(^C8@^TB/,0@M@/K@@*1R;^@@@CW )@@G@@C8K@@]/,0@M=N8)@@^*@@^O\N8)@@BC/@@@]/,0@LLC@^=QNC8K@@G/,0@M=R;^@@@:8@@@WCX )@@G@@/K@@(U8K)@(LR#@^OW'=@@@I8L@@*//KE@@@R#@^TG/,0@G%/K@@%-R;@@@[/,0@HT/K@@%-CY )@@G@@C4@^@J:8@@@G/K@@(2C]@^@M(0@^@IC]@^@R[]@^[S(0@^@I/K@@%B**@^@I/K@@%HC4@^@JCZ )@@G@@/@@@%-/K@@(5[@@^O0[@@^[S[@@^O)[@@^O(T8@@@AC8)@[CP#)@@G9?@^@R;GI@@@*0@^@JDA )@@G@@/K@@%+/,0@X!C@K@@G/,0@X![@)^O,(?@^@J/K@@%-C)@^@JP;@@@[[@@^O:/K@@%-C0K^@JDB )@@G@@/@K@%-C6K^@TC4@^@JR;)@@ /K@@%LC*K^@IC6K^@PC0@^@I @@@@I%8K@@['=@@@Q[@K^O)DC )@@G@@H'K@@0C6I^@MH'@@@0:8@@@[/K@@%XT'@@@EC0I^@MP;@@@0G]@@@G[]@^[S/^)@%-R7@^@JDD )@@G@@/^@@(5/KE@@@A#K^O6A#K^O5C0@^@JT8@@@AC8)@[CP#)@@G9?@^@T;GI@@@A#K^O7/K@@%[DE )@@G@@C8@^TK'=@@[]C8G@@@/@@@?7%8@@@['=@@@QC@@^TU:@@^T(/K@@?%R[@^T% @@@@I')^=TWDF )@@G@@:8@@@ /K@@:@!8@@@0!8@@@'/K@@%?O;)@@[%@)@@A/K@@%7/@)@%?C4@^TU%8@@@0/K@@:HDG )@@G@@T8)@@AC80@@=P#0@@IC@K^TU;CZ@@@/,0@X!;C)@@M[@)^TM/K@@:S!8)@@#/K@@%?C4@^TUDH )@@G@@P;@@@0%8)@@]/K@@:RT8@@@EC0K^TUP;K@@0O#@@@H[@@^TMC@@^TM!8@@@W/K@@%?C/@^N3DI )@@G@@/,0@KZC8@^TN/,0@M@C@K^TMC@H^QNC8K@@G/,0@M=C/@@@#/,0@LLC8@^TQ/,0@M@C/@@@?DJ )@@G@@/,0@LC/,0@L.C8@^TS'=@@[]C8G@@@/@@@%?!8@@@#'=@@@QC8K@@G:8@@@[C8K@@AR[@^T%DK )@@G@@ @@@@I')^=TW:8@@@ /K@@:;O;)@@[%@)@@H/K@@:5/@)@?%?8)@@B/K@@?CT8)@@AC80@[CDL )@@G@@P#0@@I9?@^TU;GJ@@@/,0@X!C@K@@G/,0@X![@)^TU/K@@?JR#K@@IP;K@@[')H^TW!8@@@0DM )@@G@@!8@@@'/K@@?J/K@@:"C@K^TMC@@^TU[@H^QNC8@@@G[0@^QK[@@^THC/@^N3/,0@KZC8@^T:DN )@@G@@C8K@@A/,0@L0C@@^TM/,0@MQC/@@@]/,0@LLC8@^TQ/,0@M@C/@@@:/,0@LCC/@@@[/,0@LLDO )@@G@@C@@^TUC8K@@G/,0@M=R#@^OW'=@@@I/K@@%?(@@^TH/K@@?7C/@^N3/,0@KZC8@^T?/,0@M@DP )@@G@@R#@^OX'=@@@I/,)@*$ @@@[AC8@@@[[@@^O%/K@@V=R#@^T0'=@@@I/K@@X^@@@@@@@@@@@@DQ )@@G@@@USE @@@@@@@@@@@@, @@@@@@@@@@@@@@@@@@@@@@@@@[-^N9@@@@@@[[@@@@@@@@@@DR )@@G@@@@@@@@@@@@@@^0@@@@@]Z^N9E1JD)1^[NCDTES)E[[CTFDD^B*)^0)^@)E[MC(KB*)^0)^@)DS )@@G@@CL[ET ^[^CDNB*)^0)^@)EL ET ELQC(^B*)^0)^@)I/O ERROR & READING & BASE DDT )@@G@@AS+1 (&) SAYS:& PACKID= & TRKS/POS= & THE TWO DAS ADDRESSES DO NOT MDU )@@G@@ATCH! @]A^@_@@@@@@VOL1 BAD VOL1 AT BASE DAS+1 HMBT= SMBT= MBT LENGTH= DV )@@G@@MAX AVAIL ACT FLAG NOT SET. TIME STAMP= @@@@@@@@@@@@@@@@@@@@@@@@DW )@@G@@@@@@@@@@@___@@#___@@@@@0@^?^[+@@@@@@@@@^I?@^?@@@@@@@@@@@@@@@@@@@@@@@@@@@DX )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@WHAT PACK? @[]^NT@X@^[SDUMP TRACK? @[]^NXDY )@@G@@@X@^N-@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@REALLY WANT TO ZERO OUT THE SEDZ )@@G@@CTOR? @]A^N$@X^^N-TRY ANYHOW? @[]^N\@X^^N-@&Q^N9@@@@@@[[@@@@@@@@@@@@@@@@EA )@@G@@@@@@@@@]Q^N9@[Q^N9@]Q^N9@[@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EB )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@EC )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@REACHED MAXIMUM ADDRESS @]^^O8DAS ATED )@@G@@ & DIRECTORY TRACK AT & ALLOC: &' EE )@@G@@ . NOT MASS STORAGE&SS #& IS NOT CONFIGURED& FATBL SAYS DAS=EF )@@G@@ &, MBT= & (F2) @@@@@@(F4) (F8) (F17) (F14) (F40) (FCS) (F60) (F3) EG )@@G@@@@@@@@(F24) @@@@@@@@@@@@@@@@@@@R@@@@@@W^QN@@@@@C@@@@@@@@@@@@@@@@@@@@@@@@EH )@@G@@@@@@@@@@@@@@@@]@@@@@)@@@@@[^O. NOT MOUNTEDNO PACK ON @@[^QN@@#@@@EI )@@G@@SECTOR NO. &ADDRESS: & ALLOCATED UNALLOCATED ABW$ AT & I/O ERROR EJ )@@G@@ONLY & WORDS READ&EXIT @][^RC@@@^O!REWRITTEN @[]^RFZEROED@[[^RIGTB CHEK )@@G@@ECKS OUT OK @[#^RKPOSSIBLE MI0 AT & BAD GTB BACK PTR AT & - SHOULD BE &,EL )@@G@@ BUT IS & SWITCHED UNITS @[#^RZADDRESS: & PACK INDEX OUT OF RANGE&EM )@@G@@@@@@@@@@@@@@^@@@@@@@#@@@MI0: ) AT ALLOCATED UNALLOCATED MI1: NONE EN )@@G@@GRANULE TBL:@@@@@@@@@@@@ADDRESS: & PACK INDEX OUT OF RANGE& SS & NEO )@@G@@OT MASS STORAGE& FATBL SAID THIS DISC WAS & BUT THIS ADDR INDICATES EP )@@G@@& UNIT SWITCH @]]^SIREMOVABLE FIXED @@@___@@B___@@@@@@@@@@@@RCHEVOL1 ODZ[KF)#,[D@K)EK^@FE )@@G@@*C@C@@@@@@@@/K@@^>>80)@@/KF@@[R]0@ GR;0@ JA#K@ KA#@@ J/,_@@@A]0@ GBH@@@ FF )@@G@@$IBANK @@@@@H$DBANK @@$@@E%WW@@@RAEDIT$ @@#@@@AEFD1$ FS )@@G@@@@#@[OAEMSGR$ @@#@[,AEMSG$ @@#@[1AEOCTV$ @@#@] AEPACK$ FT )@@G@@@@#@[ZAESKIP$ @@#@[]ANS @@!@MDBASDAS @@!@@[BATCH FU )@@G@@@@!@NRBUF @@!@O;CHANGE @@=@@@CYL @@!@NYCYLINDER FV )@@G@@@@S@@@CYLSP @@!@NXDAS @@!@^6DISC @@!@@]DONE FW )@@G@@@@J@A;DRUM @@!@@#ECHAR$ @@D@@(ECLEAR$ @@D@@8ECOLN$ FX )@@G@@@@D@@_ECOL$ @@D@@?ECOPY$ @@D@[LEDAY1$ @@@@@SEDAY2$ FY )@@G@@@@@@@$EDAY3$ @@@@@6EDCFZ$ @@D@]EEDECF$ @@D@]HEDECV$ FZ )@@G@@@@D@]GEDITR$ @@D@@HEDITX$ @@D@@REDIT$ @@D@@@EDIT$T GA )@@G@@@@D@@ZEDT @@!@MVEFD1$ @@D@[^EFD2$ @@D@[AELT$ GB )@@G@@@@$@@IEMSGR$ @@D@[YEMSG$ @@D@[-EOCTF$ @@D@] EOCTV$ GC )@@G@@@@D@[7EPACK$ @@D@[JESKIP$ @@D@@2ETIME$ @@@@@@FATBL GD )@@G@@@@!@@EFDBIN @@J@B=GOPT @@!@NKHED @@!@NZHMANY GE )@@G@@@@!@NNINFOR @@-@@@LINE @@!@M-MASK1 @@!@@ MAXADR GF )@@G@@@@!@NWMCT @@!@HOMCTLEN @@!@M@NOTCON @@J@]YOPT @@!@NIY$ENTRY BKSTAT YMORE$ Y$C$DR GN )@@G@@Y$FEHL YUPDD$ YDECL$ YOPTI$ YNXTP$ SNAP$ GO )@@G@@*[@@@@*SDFF*@G@@_@. @ABR ABSOLUTE READ/WRITE PROCESSOR - D. KURLAND, GP )@@G@@NYU 3/13/74 @[@@_@. @#@@@@ AXR$ @^@@@@DEBUG EQGQ )@@G@@U 0 @E@@@@PACKID* + 0 . FIELDATA PACGR )@@G@@KID @^@@@@BASDAS* + 0 @F@@@@ABW$ EQU 014 GS )@@G@@ . DEFINE ABW$ IF NOT IN ERU$@E@@@@DISC* + 0 GT )@@G@@ . SET IF DISC EQUIP @E@@@@DRUM* + 0 GU )@@G@@ . SET IF DRUM EQUIP @^@@@@SAVA1 + 0 @ @@@@MASK1* + GV )@@G@@ 0777777 @ @@@@P1MASK1* + 03777777 @F@@@@FATPK + GW )@@G@@ MSALL$ . MSCON$ MSALL$ PACKET @ @@@@ + GX )@@G@@ 300,FATBL @^@@@@ + 0 @E@@@@FATBL* RES GY )@@G@@ 300 . MSALL$ BUFFER @E@@@@DAS* RES 540 GZ )@@G@@ . ROOM FOR 20 DAS'S @]@@@@DASL . @D@@@@LMCT EQHA )@@G@@U 300 . MCT LENGTH @ @@@@MCTPK + 0,MCHB )@@G@@T @ @@@@ + LMCT,0 @D@@@@MCT* RES LMCTHC )@@G@@ . MCT BUFFER @E@@@@MCTLEN* + 0 HD )@@G@@ . HEADER LENGTH @^@@@@WATPAK 'WHAT PACK?' @G@@@@TRD + HE )@@G@@ 0102,WATPAK . TREAD FOR PACK IF NOT SPEC'D @A@@@@ HF )@@G@@ + EXIT,PACKID @G@@@@ASK2 'DUMP TRACK?' HG )@@G@@ . ASK IF DIREC TRK DUMP WANTED @ @@@@TRD2 + 0102,ASK2 HH )@@G@@@ @@@@ + EXIT,ANS @E@@@@ANS* RES 6 HI )@@G@@ . RESPONSE BUFFER @C@@@@ASK3 'REALLY WANT TO ZERO OUT THJ )@@G@@HE SECTOR?' @E@@@@TRD3 + 0206,ASK3 . IF Z-OPTION HK )@@G@@SPEC'D@ @@@@ + DONE,ANS @^@@@@ASK4 'TRY ANYHOW?' HL )@@G@@@ @@@@TRD4* + 0102,ASK4 @ @@@@ + DONE,ANS HM )@@G@@@D@@@@EDT* E$PKT 22,LINE . EDIT$ PKT @D@@@@LINE* HN )@@G@@ RES 34 . PRINT BUFFER@E@@@@PLIN* + HO )@@G@@ 0226,LINE . VARIABLE SPACING @E@@@@PLIN1* + 0126HP )@@G@@,LINE . SINGLE SPACING @D@@@@PLIN2* + 0226,LINE HQ )@@G@@ . DOUBLE SPACE@D@@@@SKIP1* + 0100,0 . HR )@@G@@SKIP A LINE @[@@@@. @E@@@@P1FLAG* + 0 . HS )@@G@@EXEC INDICATOR @E@@@@SSUUSP* + 0 . SS/UU HT )@@G@@SPEC'D FLAG @G@@@@COPT + 0 . C-OPTION FLAHU )@@G@@G (WORD CHANGE) @G@@@@MOPT + 0 . C-OPTIHV )@@G@@ON FLAG (WORD CHANGE) @E@@@@NOPT + 0 . HW )@@G@@TURN-OFF-ABW$ FLAG@F@@@@TOPT + 0 . DIREC HX )@@G@@TRACK DUMP FLAG @H@@@@XOPT* + 0 . SEARCH FOR '04' INSHY )@@G@@TEAD OF '22' IN MI0 (M-OPTION)@H@@@@YOPT* + 0 HZ )@@G@@ . FOR CYL/HEAD, JUST PRINT ADDR RANGE @E@@@@VOPT* + 0 IA )@@G@@ . VOL1-ONLY FLAG @E@@@@GOPT* + 0 IB )@@G@@ . GTB VERIFICATION @F@@@@ADSPEC* + 0 IC )@@G@@ . SET IF ADDRESS SPEC'D @E@@@@WRITING* + 0 ID )@@G@@ . SET IF DOING ABW$ @G@@@@HMANY* + 0 . IE )@@G@@NUMBER OF SECTORS TO DUMP @E@@@@ZOPT + 0 IF )@@G@@ . FLAG IF Z-OPT SET @E@@@@ZERO + 0 . IG )@@G@@CONSTANT ZERO @E@@@@SPEC1AD* + 0 . ADDRESIH )@@G@@S IF SPEC'D @E@@@@BATCH* + 0 . BATCH/DEMANDII )@@G@@ FLAG @G@@@@ABSADSP* + 0 . ABSOLUTE-ADDR-SPECIJ )@@G@@'D FLAG @D@@@@PKIDX* + 0 . PACKID INDEXIK )@@G@@@^@@@@PYET* + 0 @E@@@@R1F0* + 0 IL )@@G@@ . REM=1, FIXED=0 @G@@@@MAXADR* + 0 . IM )@@G@@MAXIMUM ADDRESS THIS DEVICE @F@@@@CYLSP* + 0 IN )@@G@@ . CYL/HEAD-SPECIFIED FLAG @E@@@@CYL* + 0 IO )@@G@@ . SPECIFIED CYLINDER @D@@@@HED* + 0 . SPIP )@@G@@ECIFIED HEAD@A@@@@MAX 'REACHED MAXIMUM ADDRESS' @A@@@@MAXP + IQ )@@G@@ 0200+($-MAX),MAX@E@@@@XPKID* RES 41 . IR )@@G@@ROOM FOR 40 PACKS @^@@@@M1 'DAS AT &' @C@@@@M2 'DIRECTOIS )@@G@@RY TRACK AT & ALLOC: &'' @ @@@@NOTMSM ' NOT MASS STORAGE&'@A@@@@IT )@@G@@NOTCOM 'SS #& IS NOT CONFIGURED&'@B@@@@FATSEZ ' FATBL SAYS DAS= IU )@@G@@&, MBT= &' @#@@@@FDEQP '(F2)' @^@@@@ + 0 @#@@@@IV )@@G@@ '(F4)' @#@@@@ '(F8)' @#@@@@ '(F17)' @#@@@@IW )@@G@@ '(F14)' @#@@@@ '(F40)' @#@@@@ '(FCS)' @#@@@@IX )@@G@@F2EQP '(F60)' @#@@@@ '(F3)' @^@@@@F14EQP + 0 IY )@@G@@@#@@@@ '(F24)' @D@@@@PKT* RES 2 . IZ )@@G@@I/O PKT @^@@@@ + 0 @E@@@@ + ABR$JA )@@G@@,0,0 . ABSOLUTE READ @E@@@@ + 28,BUF JB )@@G@@ . OF 28 WDS INTO BUF@D@@@@ADDR* + 010 JC )@@G@@ . VOL1 ADDR @D@@@@BUF* RES 28 . I/O BUJD )@@G@@FFER @[@@@@. @[@@@@$(1) .@]@@@@ST . @C@@@@ TE,U JE )@@G@@ A4,6 . BATCH?@E@@@@ TEP,U A5,1*/('Z'-'L') JF )@@G@@ . OR L-OPTION SET? @F@@@@ S A4,BATCH . JG )@@G@@YES, SET FOR LONG LINE @E@@@@ TEP A5,(1*/('Z'-'G')) . JH )@@G@@G-OPTION SET? @G@@@@ SA A4,GOPT . YES, SJI )@@G@@ET FOR GTB VERIFICATION @E@@@@ TEP,U A5,1*/('Z'-'S') . JJ )@@G@@S-OPTION SET? @F@@@@ SZ BATCH . YES, SJK )@@G@@ET FOR SHORT LINE @E@@@@ TEP A5,(1*/('Z'-'C')) . C-OPTIJL )@@G@@ON SET? @E@@@@ SA A5,COPT . YES, SET FLAJM )@@G@@G @A@@@@ TEP,U A5,1*/('Z'-'M') @ @@@@ SA JN )@@G@@ A5,MOPT @E@@@@ TEP,U A5,1*/('Z'-'N') . N-OPTION SETJO )@@G@@? @E@@@@ SA A5,NOPT . YES, TURN OFF ABW$JP )@@G@@@E@@@@ TEP,U A5,1*/('Z'-'T') . T-OPTION SET? @G@@@@JQ )@@G@@ SA A5,TOPT . YES, SET FOR DIREC TRK DUMP JR )@@G@@@D@@@@ TEP,U A5,1*/('Z'-'Y') . Y-OPTION SET? @D@@@@ JS )@@G@@ SA A5,YOPT . YES, SET FLAG @A@@@@ TEP,U JT )@@G@@ A5,1*/('Z'-'X') @ @@@@ SA A5,XOPT @A@@@@ TEJU )@@G@@P,U A5,1*/('Z'-'V') @F@@@@ SA A5,VOPT . JV )@@G@@V-OPTION FOR VOL1 ONLY @E@@@@ TEP,U A5,1*/('Z'-'Z') . JW )@@G@@Z-OPTION SET? @G@@@@ S A5,ZOPT . YES, WJX )@@G@@ANTS TO ZERO OUT SECTOR @E@@@@ L,U A0,MCTPK . JY )@@G@@SET FOR ER MCT$ @C@@@@ ER MCT$ . DO IT JZ )@@G@@@C@@@@ TZ,S1 MCTPK . OK? @C@@@@ ERKA )@@G@@ EABT$ . NO @E@@@@ L,T3 A0,MCT+4 KB )@@G@@ . GET MCT LENGTH @E@@@@ TG,U A0,LMCT+1 KC )@@G@@ . DID WE GET IT ALL?@C@@@@ ER EABT$ . KD )@@G@@NO @E@@@@ L,T2 A0,MCT+010 . GET HEADER LENGTH KE )@@G@@@F@@@@ TZ,T2 MCT+5 . ON LEVEL 30 OR ABOVE? KF )@@G@@@G@@@@ L,T2 A0,MCT+6 . YES, GET IT FROM ELSEWHEKG )@@G@@RE @F@@@@ S A0,MCTLEN . STORE FOR LATER USKH )@@G@@E @ @@@@ L,U A0,FATPK @D@@@@ ER MSCOKI )@@G@@N$ . DO MSALL$ @C@@@@ TP A0 KJ )@@G@@ . OK? @C@@@@ ER EABT$ . NO @E@@@@KK )@@G@@ SSL A0,30 . GET EXEC LEVEL @C@@@@ KL )@@G@@ TG,U A0,021 . P1? @E@@@@ S A0,PKM )@@G@@1FLAG . YES, SET FLAG @F@@@@ LA,H2 A0,FATPK+2KN )@@G@@ . TOTAL WORDS TRANSFERRED @G@@@@ AN,H1 A0,FATPK+2KO )@@G@@ . LESS FATBL LENGTH=XPKID LENGTH@E@@@@ JZ A0,NKP )@@G@@OXPK . IF NONE, SKIP @E@@@@ SA A0,R1 KQ )@@G@@ . NO OF WORDS TO BT @E@@@@ LA,H1 A0,FATPK+2 KR )@@G@@ . LENGTH OF FATBL @G@@@@ LA,U A0,FATBL,A0 . KS )@@G@@LOCATION OF XPKID IN FATBL @^@@@@ LXI,U A0,1@D@@@@ KT )@@G@@ LA A1,(1,XPKID) . XPKID BUFFER@F@@@@ BT KU )@@G@@ A1,0,*A0 . TRANSFER XPKID TO BUFFER@]@@@@NOXPK . @G@@@@KV )@@G@@ LMJ X10,INFOR . READ INFOR, SET UP SPECS/FLAGSKW )@@G@@@F@@@@WATPK L,U A0,TRD . GET SET TO ASK FOR PACK KX )@@G@@@D@@@@ TNZ PACKID . PACK SPEC'D?@E@@@@ KY )@@G@@ ER TREAD$ . NO, ASK FOR IT @D@@@@ L KZ )@@G@@ A8,PACKID . GET PACKID @F@@@@ LX,U A1,7LA )@@G@@ . CHECK ALL MS EQUIP TYPES@]@@@@SLOOP . @F@@@@ LB )@@G@@ TNZ,H1 FATBL,A1 . ANY OF THESE CONFIGURED?@C@@@@ LC )@@G@@ J SLOOPE . NO @E@@@@ SZ DISCLD )@@G@@ . ASSUME NOT DISC @C@@@@ TE,U A1,5 LE )@@G@@ . 8414 @D@@@@ TNE,U A1,6 . OR 844LF )@@G@@0? @F@@@@ SA A1,DISC . YES, SET DISC-EQUILG )@@G@@P FLAG@F@@@@ L,H1 X4,FATBL,A1 . GET UNIT TABLE POILH )@@G@@NTER @E@@@@ L,T1 R6,FATBL,X4 . NUMBER OF UNITS LI )@@G@@@E@@@@ JGD R6,$+1 . LESS 1 FOR JGD @E@@@@LJ )@@G@@ A,U X4,3 . POINT TO UNIT INFO@E@@@@ LK )@@G@@ TNZ SSUUSP . SS/UU SPEC'D? @F@@@@ J LL )@@G@@ PLOOP . NO, SEARCH FOR PACKID @ @@@@ TNLM )@@G@@Z ABSADSP @ @@@@ J LEGALS @ @@@@ S LN )@@G@@ A1,A4 @ @@@@ LA A1,SPEC1AD@ @@@@ LMLO )@@G@@J X10,ABSAD @ @@@@ L A1,A4 @[@@@@. @A@@@@LP )@@G@@. CHECK FOR LEGAL SUBSYSTEM NUMBER @[@@@@. @E@@@@LEGALS L,T1 LQ )@@G@@ A0,MCT+010 . GET HIGHEST # SS+1@C@@@@ TZ,T2 MCT+LR )@@G@@5 . P1? @G@@@@ L,T1 A0,MCT+6 . LS )@@G@@YES, GET IT FROM ELSEWHERE @E@@@@ TG A8,A0 LT )@@G@@ . LEGAL SS NUMBER? @C@@@@ J NOTCON . LU )@@G@@NO @F@@@@ L A2,MCTLEN . GET MCT HEADER LENLV )@@G@@GTH @E@@@@ A A2,A8 . POINT TO SS ENTRY LW )@@G@@@D@@@@ TP MCT,A2 . DEFINED SS? @C@@@@ LX )@@G@@ J NOTCON . NO @G@@@@ L,T3 A2,MLY )@@G@@CT,A2 . GET POINTER TO SS STATUS ENTRY@E@@@@ L LZ )@@G@@ A0,MCT+1,A2 . GET STATUS BITS @ @@@@ LSSL A0,3MA )@@G@@4 @G@@@@ SSL A0,34 . ISOLATE DUAL-CONTRMB )@@G@@OLLER BITS @E@@@@ TNE,U A0,3 . SECOND OF TWMC )@@G@@O? @G@@@@ AN,U A8,1 . YES, BACK UP TO MAMD )@@G@@IN SS NUMBER@F@@@@ S A8,PACKID . SAVE IT JUSTME )@@G@@ IN CASE @ @@@@ TZ ABSADSP @^@@@@ J MF )@@G@@ SULP@ @@@@ TNZ ADSPEC @ @@@@ J NOCYMG )@@G@@L @E@@@@ TNZ CYLSP . CYL/HEAD SPECIFIED? MH )@@G@@@D@@@@ J NOCYL . NO, GO ON @A@@@@ MI )@@G@@ LMJ X10,CYLINDER @D@@@@ SZ CYLSP MJ )@@G@@ . PREVENT LOOPS @[@@@@NOCYL.@ @@@@ SA A1,A4 @ @@@@MK )@@G@@ LA A1,ADDR @ @@@@ TNZ ADSPEC @ @@@@ML )@@G@@ SA A1,SPEC1AD@ @@@@ LA A1,SPEC1AD@ @@@@MM )@@G@@ LMJ X10,ABSAD2@ @@@@ LA A1,A4 @D@@@@MN )@@G@@SULP TE,T1 A8,FATBL+1,X4 . CORRECT SS? @C@@@@ J MO )@@G@@ SULPE . NO @D@@@@ LA,S3 A0,FATBL+1MP )@@G@@,X4 . GET UNIT NO @F@@@@ EX SHIFT,A1 . MQ )@@G@@SHIFT OR BRANCH BY EQUIP@E@@@@ J SULPT . MR )@@G@@J IF JUST SHIFT @C@@@@SHIFT SSL A0,2 . 030 F2MS )@@G@@@C@@@@ ER EABT$ . 031 FB@C@@@@ J MT )@@G@@ SULPF4 . 032 F4@C@@@@ ER EABT$ MU )@@G@@ . 033 F8@D@@@@ SSL A0,3 . 034 F1MV )@@G@@7 @D@@@@ J SULPD . 035 F14 @D@@@@MW )@@G@@ J SULPD . 036 F40 @D@@@@ ERMX )@@G@@ EABT$ . 037 UCS @B@@@@SULPF4 TG,U A0,0MY )@@G@@70 . @F@@@@ AN,U A0,070 . ALLOW MZ )@@G@@FOR 432 ON TOP @B@@@@ J SULPT . @C@@@@NA )@@G@@SULPD TZ P1FLAG . P1? @E@@@@ SSL NB )@@G@@ A0,2 . YES, FIX UNIT # @E@@@@SULPT TNE A0,ANC )@@G@@9 . CORRECT UNIT? @C@@@@ J FOUND ND )@@G@@ . YES @D@@@@SULPE A,U X4,4 . NEXT UNE )@@G@@NIT @D@@@@ TZ DISC . DISC EQUIP? @F@@@@NF )@@G@@ A,U X4,1 . YES, 5-WORD ENTRIES @D@@@@NG )@@G@@ JGD R6,SULP . ALL CHECKED?@F@@@@ J NH )@@G@@ SLOOPE . YES, GET NEXT EQUIP TYPE@D@@@@PLOOP TNNI )@@G@@Z DISC . DISC EQUIP? @D@@@@ J SLOONJ )@@G@@PE . NO, SKIP IT @E@@@@ TNE A8,FATBL+4,X4 NK )@@G@@ . SEARCH FOR PACK @D@@@@ J FOUND . NL )@@G@@FOUND IT @F@@@@ A,U X4,5 . NOT HERE, TRNM )@@G@@Y NEXT DRIVE@F@@@@ JGD R6,PLOOP . ALL DRIVES CNN )@@G@@HECKED? @G@@@@SLOOPE JGD A1,SLOOP . YES, CHECK ANO )@@G@@LL MS EQUIP TYPES @E@@@@ TZ SSUUSP . SS/UU NP )@@G@@SPEC'D? @G@@@@ J NOTMS . YES, EQUIP NNQ )@@G@@OT MASS STORAGE @E@@@@ E$DIT EDT . PACK NNR )@@G@@OT MOUNTED @D@@@@ E$FD1 A8 . SO SAY SO NS )@@G@@@B@@@@ E$COPY 12,(' NOT MOUNTED') @D@@@@ P$RINT NT )@@G@@ PLIN . PRINT MSG @F@@@@ SZ PACKID NU )@@G@@ . MARK AS PACK NOT SPEC'D @E@@@@ J WATPK NV )@@G@@ . ASK FOR PACKID @F@@@@NOTMS* E$DIT EDT NW )@@G@@ . DIDN'T FIND SS/UU AMONG @D@@@@ E$DECV A8 NX )@@G@@ . DISC UNITS @^@@@@ E$CHAR '/' @D@@@@ E$DECV NY )@@G@@ A9 . EDIT UNIT NO@E@@@@ E$MSG NOTMSM NZ )@@G@@ . 'NOT MASS STORAGE'@^@@@@PEX P$RINT PLIN@C@@@@ OA )@@G@@ J DONE . EXIT @]@@@@NOTCON*. @^@@@@ OB )@@G@@ E$DIT EDT @ @@@@ E$MSG NOTCOM @^@@@@ E$OC )@@G@@DECV A8 @#@@@@ E$MSGR @^@@@@ J PEX @]@@@@OD )@@G@@NOTDSC . @D@@@@ TG,U A1,1 . DRUM EQUIP? OE )@@G@@@^@@@@ TG,U A1,5@C@@@@ J $+2 OF )@@G@@ . NO @E@@@@ SA A1,DRUM . YES, SET FLAOG )@@G@@G @D@@@@ E$DIT EDT . OPEN EDIT @E@@@@OH )@@G@@ J GETFAT . SKIP VOL1 STUFF @]@@@@FOUND OI )@@G@@ . @E@@@@ SA A1,SAVA1 . SAVE EQUIP INDEX OJ )@@G@@@D@@@@ TNZ DISC . DISC EQUIP? @C@@@@ OK )@@G@@ J NOTDSC . NO @E@@@@ SA A1,ROL )@@G@@1F0 . MARK AS REMOVABLE @D@@@@ LA,S1 A0,FATBL+3OM )@@G@@,X4 . GET F/R BIT @C@@@@ TEP,U A0,020 . ON )@@G@@FIXED?@E@@@@ SZ R1F0 . YES, MARK AS FIXEDOO )@@G@@@C@@@@ L,H1 A0,FATBL+1,X4 . GET SS/U@D@@@@ LSOP )@@G@@SL A0,18 . SHIFT TO H1 @C@@@@ L A1,MOQ )@@G@@ASK1 . GET MASK@C@@@@ TZ P1FLAG . P1OR )@@G@@? @E@@@@ L A1,P1MASK1 . YES, GET 20-BIT MASKOS )@@G@@@D@@@@ OR A0,A1 . FORM MAX ADDR @ @@@@ OT )@@G@@ S A1,MAXADR @ @@@@ TZ CYLSP @A@@@@ OU )@@G@@ LMJ X10,CYLINDER @D@@@@ E$DIT EDT OV )@@G@@ . OPEN EDIT @E@@@@ TZ FATBL+4,X4 . IS THEOW )@@G@@RE A PACK? @C@@@@ J GETPAK . YES @B@@@@OX )@@G@@ E$COPY 7,('NO PACK ') @ @@@@ J GOTPOY )@@G@@AK @C@@@@GETPAK E$COPY 6,FATBL+4,X4 . PACKID@A@@@@GOTPAKOZ )@@G@@ E$COPY 4,(' ON ') @A@@@@ LA,T1 A8,FATBL+1,X4 PA )@@G@@@C@@@@GETFAT E$DECV A8 . SS @^@@@@ E$PB )@@G@@CHAR '/' @D@@@@ TNZ DISC . DISC EQUIP? PC )@@G@@@F@@@@ J GOTU . NO, HAVE UNIT IN A9 PD )@@G@@@D@@@@ LA,S3 A9,FATBL+1,X4 . GET UNIT NO @C@@@@ PE )@@G@@ TZ P1FLAG . P1? @G@@@@ SSL A9,2PF )@@G@@ . YES, CORRECT FOR 20-BIT ADDR @D@@@@GOTU E$DECV PG )@@G@@ A9 . EDIT UNIT NO@^@@@@ E$SKIP 1 @F@@@@PH )@@G@@ L A0,MCTLEN . GET MCT HEADER LENGTH @G@@@@PI )@@G@@ A,T1 A0,FATBL+1,X4 . POINT TO ENTRY FOR THIS SS PJ )@@G@@@G@@@@ L,T3 A0,MCT,A0 . GET POINTER TO SS STATUSPK )@@G@@ ENTRY@E@@@@ L A0,MCT+1,A0 . GET STATUS BITS PL )@@G@@@ @@@@ LSSL A0,32 @E@@@@ SSL A0,34 PM )@@G@@ . ISOLATE SUBTYPE @F@@@@ L A1,SAVA1 PN )@@G@@ . RETRIEVE EQUIP INDEX @E@@@@ JZ A0,NOSUB PO )@@G@@ . SKIP IF NO SUBTYPE@E@@@@ JZ A1,FASTR . PP )@@G@@JUMP IF FASTRAND @C@@@@ TE,U A1,5 . F14? PQ )@@G@@@D@@@@ J NOSUB . NO, SKIP @A@@@@ PR )@@G@@ E$FD1 F14EQP-1,A0 @^@@@@ J SUB @[@@@@FASTR.PS )@@G@@@ @@@@ E$FD1 F2EQP-1,A0@^@@@@ J SUB @[@@@@PT )@@G@@NOSUB.@F@@@@ E$FD1 FDEQP,A1 . EDIT EQUIPMENT TYPPU )@@G@@E @[@@@@SUB. @ @@@@ E$MSG FATSEZ @E@@@@ L PV )@@G@@ A0,FATBL,X4 . GET 'MFD-ADDR' @E@@@@ LSSL PW )@@G@@ A0,6 . SHIFT OFF STATUS @^@@@@ SSL A0,6PX )@@G@@@^@@@@ E$OCTF 12 @F@@@@ E$MSGR PY )@@G@@ . CONTINUE MSG (MBT ADDR) @D@@@@ LA A0,FATBL+3,X4 PZ )@@G@@ . GET MBT ADDR@^@@@@ LSSL A0,6@^@@@@ SSL QA )@@G@@ A0,6@^@@@@ E$OCTF 12 @D@@@@ P$RINT PLIN QB )@@G@@ . PRINT MSG @G@@@@ LMJ X10,STAT . QC )@@G@@DISPLAY STATUS IF NOT NORMAL @ @@@@ LA A1,ADDR @ @@@@QD )@@G@@ TNZ SSUUSP @ @@@@ LMJ X10,ABSAD2@G@@@@QE )@@G@@ TZ ADSPEC . WAS ADDR SPECIFIED IN SPEC1? QF )@@G@@@F@@@@ J ONEADR . YES, READ THAT ADDR QG )@@G@@@D@@@@ LMJ X10,RDV1 . READ VOL1 @I@@@@ QH )@@G@@ LA A1,BASDAS . GET BASE DAS ADDR FROM FATBL OR DAS+QI )@@G@@1 @E@@@@ LSSL A1,6 . REMOVE STATUS BITSQJ )@@G@@@^@@@@ SSL A1,6@F@@@@ LMJ X10,ABSAD QK )@@G@@ . CONVERT TO ABS ADDR @G@@@@ SZ A14 QL )@@G@@ . INITIALIZE DAS BUFFER ADDR @]@@@@DS . @ @@@@ L,QM )@@G@@U A0,PKT @D@@@@ ER IOW$ . READ DQN )@@G@@AS @C@@@@ TZ,S1 PKT+3 . OK? @C@@@@ QO )@@G@@ ER EABT$ . NO @D@@@@ TNZ GOPTQP )@@G@@ . G-OPTION, OR@E@@@@ TZ MOPT QQ )@@G@@ . M-OPTION SET? @E@@@@ J NDASMG . QR )@@G@@YES, SKIP DAS DUMP@^@@@@ E$DIT EDT @^@@@@ E$MSG QS )@@G@@ M1 @ @@@@ E$OCTF 12,ADDR @^@@@@ P$RINT PLINQT )@@G@@@E@@@@ LMJ X10,OUTPUT . YES, DUMP SECTOR @]@@@@QU )@@G@@NDASMG . @G@@@@ L A0,(1,BUF) . TRANSFER DASQV )@@G@@ TO HOLD AREA @F@@@@ LA A3,A14 . GET DAQW )@@G@@S BUFFER INDEX @E@@@@ LXM,U A1,DAS,A3 . GET BUQX )@@G@@FFER ADDR @^@@@@ LXI,U A1,1@ @@@@ L,U R1,2QY )@@G@@8 @ @@@@ BT A1,0,*A0 @F@@@@ A,U A14,QZ )@@G@@27 . GET SET FOR NEXT ONE @F@@@@ LA A1,DRA )@@G@@AS+27,A3 . GET LINK TO NEXT DAS @G@@@@ JN A1,TRB )@@G@@RACK . IF NEGATIVE, NO MORE DAS'S @F@@@@ TG,U RC )@@G@@ A14,((DASL-DAS)/27)*27 . ROOM LEFT IN BUFFER? @C@@@@ ER RD )@@G@@ EABT$ . NO @E@@@@ LMJ X10,ABSAD RE )@@G@@ . STORE IN I/O PKT @D@@@@ J DS . RF )@@G@@GET NEXT DAS@]@@@@TRACK . @D@@@@ TNZ GOPT RG )@@G@@ . G-OPTION, OR@E@@@@ TZ MOPT . M-OPTIRH )@@G@@ON SET? @G@@@@ J SEARCH . YES, SEARCH RI )@@G@@FOR MAIN ITEMS @E@@@@ LX X9,(3,0) . SET DARJ )@@G@@S INDEX @E@@@@ TNZ BATCH . LONG LISTINGRK )@@G@@? @C@@@@ J NTRACK . NO @E@@@@ RL )@@G@@ TNZ TOPT . T-OPTION SET? @D@@@@ J RM )@@G@@ DONE . NO, GET OUT @G@@@@ LA,U A0,0RN )@@G@@7777 . YES, SET PLIN FOR TOP-OF-PAGE @ @@@@ LA RO )@@G@@ A1,PLIN @ @@@@ LSSL A1,12 @ @@@@ DSL RP )@@G@@ A0,12 @ @@@@ SA A1,PLIN @G@@@@NTRACK . RQ )@@G@@ . DUMP DIR-TRK, SECTOR BY SECTOR @G@@@@ L RR )@@G@@ A1,DAS,X9 . YES, GET TRACK ADDR FROM DAS @E@@@@ RS )@@G@@ JN A1,ETK . SKIP EMPTY TRKS @F@@@@ LMRT )@@G@@J X10,ABSAD . STORE ADDR IN I/O PKT @^@@@@ E$RU )@@G@@DIT EDT @F@@@@ E$MSG M2 . GET 'DIRECT RV )@@G@@TRK' MSG @D@@@@ E$OCTF 12,ADDR . ADD ADDR RW )@@G@@@#@@@@ E$MSGR @A@@@@ E$OCTF 12,DAS+1,X9 @^@@@@RX )@@G@@ E$CHAR ',' @A@@@@ E$OCTF 12,DAS+2,X9 @D@@@@RY )@@G@@ P$RINT PLIN . PRINT MSG @E@@@@ TZRZ )@@G@@ TOPT . T-OPTION SET? @F@@@@ J SA )@@G@@ DOTRK . YES, DUMP THE TRACK @E@@@@ LA,U SB )@@G@@ A0,TRD2 . NO, ASK FIRST @ @@@@ ER TREASC )@@G@@D$ @D@@@@ LA,S1 A0,ANS . GET RESPONSE@C@@@@SD )@@G@@ TE,U A0,'Y' . YES? @F@@@@ J SE )@@G@@ ETK . NO, SKIP THIS TRACK @]@@@@DOTRK . @E@@@@SF )@@G@@ L,U R6,63 . FOR 64 SECTORS @H@@@@ SG )@@G@@ LA A6,DAS+1,X9 . GET BIT MASK FOR 1ST 32 SECTORS SH )@@G@@@F@@@@ J SEC0 . START WITH SECTOR 0 SI )@@G@@@E@@@@NSEC L A0,ADDR . INCREMENT ADDR @^@@@@SJ )@@G@@ A,U A0,1@D@@@@ TZ DRUM . SK )@@G@@DRUM EQUIP? @F@@@@ A,U A0,27 . YES, NEXT SESL )@@G@@CTOR +28 @ @@@@ S A0,ADDR @]@@@@SEC0* . @ @@@@SM )@@G@@ L A0,ADDR @D@@@@ TZ DRUM SN )@@G@@ . DRUM EQUIP? @I@@@@ A,U A0,27 . YES, MSO )@@G@@AKE SURE ENTIRE SECTOR IN RANGE @E@@@@ TG A0,MAXADR SP )@@G@@ . REACHED MAX YET? @D@@@@ J REACHM SQ )@@G@@ . YES, SAY SO @D@@@@ TZ WRITING . DOING SR )@@G@@ABW$? @E@@@@ J NOMSG . YES, NO PRINTING. SS )@@G@@@^@@@@ E$DIT EDT @D@@@@ TZ ADSPEC ST )@@G@@ . ADDR SPEC'D?@F@@@@ J PADR . YES, SSU )@@G@@KIP SOME OF MSG @A@@@@ E$MSG ('SECTOR NO. &')@ @@@@ SV )@@G@@ LA,U A0,63 @E@@@@ AN A0,R6 . SW )@@G@@COMPUTE SECTOR NO @E@@@@ E$OCTF 3 . EDIT SSX )@@G@@ECTOR NO @^@@@@ E$SKIP 4 @A@@@@PADR E$MSG ('ADSY )@@G@@DRESS: & ')@ @@@@ E$OCTF 12,ADDR @E@@@@ TZ SZ )@@G@@ ADSPEC . SPECIFIC ADDR? @E@@@@ J MSG TA )@@G@@ . YES, PRINT MSG @E@@@@ LA A0,R6 TB )@@G@@ . GET SECTOR NO @D@@@@ TNE,U A0,31 TC )@@G@@ . SECTOR 32? @H@@@@ LA A6,DAS+2,X9 . YES, GTD )@@G@@ET 2ND HALF OF TRK BIT MAP @^@@@@ E$SKIP 3 @E@@@@ TE )@@G@@ JPS A6,UNALLO . ALLOCATED TRACK? @B@@@@ E$TF )@@G@@COPY 9,('ALLOCATED ') @D@@@@ J MSG TG )@@G@@ . PRINT IT @B@@@@UNALLO E$COPY 11,('UNALLOCATED ') @]@@@@TH )@@G@@MSG . @E@@@@ P$RINT PLIN2 . PRINT SECTORTI )@@G@@ NO. @]@@@@NOMSG . @E@@@@ LA,S2 A0,PKT+3 . TJ )@@G@@GET I/O FUNCTION @C@@@@ TE,U A0,ABW$ . ABW$? TK )@@G@@@D@@@@ J IOOK . NO, DO I/O @^@@@@ TL )@@G@@ E$DIT EDT @A@@@@ E$MSG ('ABW$ AT & ')@ @@@@ TM )@@G@@ E$OCTF 12,ADDR @ @@@@ P$RINT PLIN1 @ @@@@ TN )@@G@@ ON DEBUG @D@@@@ J SKIPIO . TO )@@G@@SKIP THE I/O@ @@@@ OFF DEBUG @E@@@@ TZ TP )@@G@@ NOPT . IS N-OPTION SET? @E@@@@ J SKIPTQ )@@G@@IO . YES, DON'T DO ABW$@]@@@@IOOK . @D@@@@ L,TR )@@G@@U A0,PKT . READ SECTOR @^@@@@ ER IOW$TS )@@G@@@ @@@@ TNZ,S1 PKT+3 @^@@@@ J NOER@^@@@@TT )@@G@@ E$DIT EDT @B@@@@ E$COPY 10,('I/O ERROR ') TU )@@G@@@A@@@@ E$OCTF 2,PKT+3,,S1 @ @@@@ P$RINT PLINTV )@@G@@1 @F@@@@NOER L,H2 A0,PKT+3 . GET FINAL WORD COUTW )@@G@@NT @D@@@@ TNE,U A0,28 . 28 WORDS? @D@@@@TX )@@G@@ J SKIPIO . YES, OK @^@@@@ E$TY )@@G@@DIT EDT @ @@@@ E$MSG ('ONLY &')@ @@@@ E$DECV TZ )@@G@@ PKT+3,,H2 @A@@@@ E$MSG (' WORDS READ&')@ @@@@ P$UA )@@G@@RINT PLIN1 @]@@@@SKIPIO . @D@@@@ TZ WRITING UB )@@G@@ . WRITING? @F@@@@ J NSECE . UC )@@G@@YES, DON'T DUMP BUFFER @D@@@@ LMJ X10,OUTPUT . UD )@@G@@DUMP SECTOR @E@@@@ TZ COPT . C-OPTION SETUE )@@G@@? @G@@@@ J CHANGE . IF SO, JUMP TO CHAUF )@@G@@NGE ROUTINE @E@@@@NSECE JGD R6,NSEC . GET NEXT SECUG )@@G@@TOR @G@@@@ TZ ADSPEC . SPECIFIC START ADDUH )@@G@@R GIVEN? @E@@@@ J EXIT . YES, ALL DONUI )@@G@@E @G@@@@ETK TLEM X9,A14 NO, FINISHED ALL DIRECUJ )@@G@@ TRACKS? @E@@@@ J NTRACK . NO, GET NEXTUK )@@G@@ TRACK@]@@@@EXIT . @C@@@@ TZ WRITING DOING UL )@@G@@ABW$? @E@@@@ J ZROD . YES, SAY 'ZEROED' UM )@@G@@@G@@@@ TZ ZOPT . WANT TO ZERO OUT THE SECUN )@@G@@TOR? @G@@@@ J REALLY . IF SO, CHECK TO MAUO )@@G@@KE SURE @D@@@@DONE* P$RINT (0201,('EXIT ')) . IF NOT, EXITUP )@@G@@@ @@@@ ER EXIT$ @^@@@@REACHM P$RINT MAXP@^@@@@UQ )@@G@@ J DONE@D@@@@REALLY TNZ ADSPEC . UR )@@G@@ADDR SPEC'D?@D@@@@ J DONE . NO, GET OUT US )@@G@@@F@@@@ TZ COPT . C-OPTION?SET??????? UT )@@G@@@F@@@@ J DONE . YES, OVERRIDES Z-OPTION UU )@@G@@@D@@@@ L,U A0,TRD3 . MAKE SURE @ @@@@ UV )@@G@@ ER TREAD$ @ @@@@ L,S1 A0,ANS @D@@@@ UW )@@G@@ TE,U A0,'Y' . REALLY? @D@@@@ J UX )@@G@@ DONE . NO, GET OUT @E@@@@ SA A0,WRITINGUY )@@G@@ . SET 'WRITING' FLAG@F@@@@ L,U A0,ABW$ UZ )@@G@@ . YES, CHANGE TO ABW$ @D@@@@ S,T1 A0,PKT+3 VA )@@G@@ . IN I/O PKT @A@@@@ L A0,(0,ZERO) @ @@@@ VB )@@G@@ L A1,(1,BUF)@ @@@@ L,U R1,28 @E@@@@ VC )@@G@@ BT A1,0,*A0 . ZERO OUT BUFFER @E@@@@ LAVD )@@G@@ A1,SPEC1AD . GET SPEC'D ADDR @F@@@@ LMJ VE )@@G@@ X10,ABSAD . STORE ADDR IN I/O PKT @E@@@@ LR VF )@@G@@ R6,HMANY . GET SECTOR COUNT @E@@@@ J SEC0VG )@@G@@ . GO DO THE I/O @]@@@@ZROD . @E@@@@ TNVH )@@G@@Z COPT . C-OPTION SET? @E@@@@ J VI )@@G@@ DIDZRO . NO, ZEROED SECTOR @C@@@@ P$RINT (010VJ )@@G@@2,('REWRITTEN ')) @D@@@@ J DONE . VK )@@G@@FINISHED @B@@@@DIDZRO P$RINT (0101,('ZEROED')) @^@@@@ VL )@@G@@ J DONE@F@@@@ONEADR L A1,SPEC1AD . START VM )@@G@@AT SPEC'D ADDR @F@@@@ LMJ X10,ABSAD . STORE VN )@@G@@ADDR IN I/O PKT @E@@@@ LR R6,HMANY . GET SEVO )@@G@@CTOR COUNT @D@@@@ TNZ BATCH . BATCH MODE? VP )@@G@@@F@@@@ TZ R6 . OR MORE THAN ONE SECTOR?VQ )@@G@@@F@@@@ SZ COPT . YES, CAN'T HAVE C-OPTIONVR )@@G@@@D@@@@ J SEC0 . GO TO IT @[@@@@/. VS )@@G@@@]@@@@FDBIN* . @[@@@@. @E@@@@. FD OCTAL TO BINARY CONVERSIONVT )@@G@@ - INPUT IN A1, OUTPUT @E@@@@. IN A2 (SHOULD BE CALLED TWICE FOR 1VU )@@G@@2 DIGITS - LAST @ @@@@. SIX DIGITS FIRST). @[@@@@. @ @@@@VV )@@G@@. CALL: LA A1,INPUT @ @@@@. LMJ X11,FDBIN @[@@@@VW )@@G@@. @D@@@@ LR,U R1,5 . FOR 6 DIGITS@^@@@@VX )@@G@@ DSL A1,3@^@@@@ SSL A1,3@ @@@@ JGVY )@@G@@D R1,$-2 @C@@@@ J 0,X11 . RETURNVZ )@@G@@@^@@@@ END ST ___ @D@@@@DONE* P$RINT (0201,('EXWA )@@G@@IT ')) . IF NOT, EXIT@ @@@@ ER EXIT$ @^@@@@REACHMWB )@@G@@ P$RINT MAXP@^@@@@ J DONE*[@@@@*SDFF*@ @@@@ WC )@@G@@ A B R @]@@@@COLUMN 2 @]@@@@SPACE 15 @F@@@@ @ABR WD )@@G@@ ABSOLUTE READ/WRITE PROCESSOR - D. KURLAND, NYU 3/12/74 @[@@@@4 ABR WE )@@G@@@[@@@@SPACE @F@@@@ PERFORMS ABSOLUTE READ ON SPECIFIED UNIT, PACK, OR ADWF )@@G@@DRESS. THE @G@@@@ EXECUTING RUN MUST BE PRIVILEGED FOR READING, AND THEWG )@@G@@ EXEC MUST BE @A@@@@ PATCHED FOR WRITING TO BE POSSIBLE.@[@@@@SPACE WH )@@G@@@A@@@@ THE PATCH WE USE FOR LEVEL 31 IS: @[@@@@ *IO @]@@@@ -599,599 WI )@@G@@@C@@@@ TOP,U A5,040 . IS RUN PRIVILEGED?@C@@@@ EXR WJ )@@G@@ 4,IOERR . NO, I/O ERROR 024 @E@@@@ JK 15,IOABSF . WK )@@G@@IF JK 15 IS ON, ALLOW ABW$ @D@@@@ . OTHERWL )@@G@@WISE, JUST ABR$ @[@@@@SPACE @D@@@@ THE CALL IS OF THE FORM: @ABR<,OPTWM )@@G@@IONS> @[@@@@SPACE @ @@@@ THE RECOGNIZED OPTIONS ARE: @[@@@@WN )@@G@@SPACE @]@@@@COLUMN 6 @F@@@@ C - ALLOWS CHANGING THE CONTENTS OF ANY WWO )@@G@@ORD(S) IN A GIVEN SECTOR@D@@@@ G - GRANULE TABLE VERIFICATION (ASSUMES MWP )@@G@@-OPTION) @D@@@@ L - LONG OUTPUT (8 WORDS PER LINE) ASSUMED IN BATCH WQ )@@G@@@B@@@@ M - MAIN ITEM SEARCH OF SPECIFIED UNIT @E@@@@ N - USED WITH C OWR )@@G@@R Z OPTIONS - TURN OFF ABSOLUTE WRITE. @E@@@@ (EVERYTHING ELSE WIWS )@@G@@LL BE DONE, WRITE WILL BE SKIPPED). @D@@@@ S - SHORT OUTPUT (5 WORDS PERWT )@@G@@ LINE) ASSUMED IN DEMAND@C@@@@ T - DUMP ALL DIRECTORY TRACKS ON SPECIFIEWU )@@G@@D UNIT@D@@@@ V - ONLY PRINT FATBL AND VOL1 SUMMARY FOR THE UNIT @E@@@@WV )@@G@@ Y - JUST DISPLAY ADDRESS RANGE FOR GIVEN CYLINDER/HEAD @A@@@@ Z - TWW )@@G@@O ZERO OUT A GIVEN SECTOR @]@@@@COLUMN 2 @[@@@@SPACE @B@@@@ THE SWX )@@G@@PEC MAY BE ANY OF THE FOLLOWING: @[@@@@SPACE @]@@@@COLUMN 17 @F@@@@WY )@@G@@ SS/UU THE SPECIFIED UNIT'S FATBL ENTRY WILL BE ANALYZED.@E@@@@WZ )@@G@@ IF DISC, VOL1 WILL BE READ AS WELL. IF THE @F@@@@ XA )@@G@@ V-OPTION IS NOT SET, ALL DIRECTORY ALLOCATION @F@@@@ XB )@@G@@ SECTORS WILL THEN BE DUMPED. FOLLOWING THIS (IF @E@@@@ XC )@@G@@ THE T-OPTION IS NOT SET), ABR WILL PRINT THE@F@@@@ XD )@@G@@ ADDRESS AND ALLOCATION BITS OF EACH DIRECTORY @F@@@@ XE )@@G@@ TRACK, AND WILL ASK IF IT IS TO BE DUMPED. A @F@@@@ XF )@@G@@ RESPONSE OF 'Y' WILL CAUSE DUMPING A DUMP OF THE @F@@@@ XG )@@G@@ TRACK: 'N' WILL CAUSE ABR TO GO ON TO THE NEXT @F@@@@ XH )@@G@@ TRACK AND ASK AGAIN. AN @EOF WILL TERMINATE THE @^@@@@ XI )@@G@@ PROGRAM.@[@@@@SPACE @F@@@@ PACKID SAME AS ABOVE. ABR WILL DXJ )@@G@@ETERMINE WHICH SS/UU THE@F@@@@ PACK IS ON. IF NOT MOUNTEXK )@@G@@D, A MESSAGE TO THAT @F@@@@ EFFECT WILL BE PRINTED, ANXL )@@G@@D ANOTHER PACKID REQUE- @^@@@@ STED. @[@@@@SPACE @F@@@@XM )@@G@@ SS/UU.ADDR(N) THE SECTOR AT THE SPECIFIED ADDRESS IS DUMPED. IF@F@@@@XN )@@G@@ 'N' IS GIVEN, 'N' SECTORS WILL BE DUMPED STARTING @B@@@@XO )@@G@@ WITH THE GIVEN ADDRESS. @[@@@@SPACE @ @@@@ PACKID.ADDRXP )@@G@@(N) SAME AS ABOVE @[@@@@SPACE @G@@@@ ADDR IF A 12-DIGITS ADDREXQ )@@G@@SS IS GIVEN, ABR WILL DUMP THAT @F@@@@ ADDRESS. ABSOXR )@@G@@LUTE SUBSYSTEM/UNIT ADDRESS AND @E@@@@ PACKID INDEX AXS )@@G@@DDRESS FORMATS ARE ACCEPTED. @[@@@@SPACE @F@@@@ SS/UU.CYL/HEAD THE ENTIXT )@@G@@RE RANGE OF ADDRESSES WITHIN THE GIVEN @F@@@@ CYLINDERXU )@@G@@/HEAD ADDRESS (DECIMAL NUMBERS) IS DUMPED,@B@@@@ ONE SECTXV )@@G@@OR AT A TIME. @[@@@@SPACE @A@@@@ PACKID.CYL/HEAD SAME AS ABOVE XW )@@G@@@]@@@@COLUMN 2 @[@@@@SPACE @[@@@@SPACE @^@@@@ USE OF THE C-OPTION: XX )@@G@@@[@@@@SPACE @E@@@@ WHEN THE C-OPTION IS SPECIFIED IN CONJUNCTION WITH A XY )@@G@@SINGLE@G@@@@ ADDRESS, ABR WILL READ AND DUMP THE GIVEN SECTOR AND ASK WHXZ )@@G@@AT WORD @G@@@@ YOU WISH TO CHANGE. THIS MAY BE A DECIMAL NUMBER FROYA )@@G@@M 0 TO 27, OR @F@@@@ AN OCTAL NUMBER FROM 0 TO 033. ONCE THIS IS INYB )@@G@@PUT, ABR WILL @F@@@@ DISPLAY THE CURRENT CONTENTS OF THAT WORD AND AYC )@@G@@SK FOR THE NEW @F@@@@ VALUE. THIS MAY BE AN OCTAL VALUE OF UP TO 12 YD )@@G@@DIGITS, OR, IF IT @F@@@@ CONTAINS A NON-NUMERIC CHARACTER, THE VALUE IS YE )@@G@@ASSUMED TO BE A @E@@@@ FIELDATA STRING (NOT TO EXCEED 6 CHARACTERS) WHYF )@@G@@ICH WILL BE @F@@@@ LEFT-JUSTIFIED, SPACE-FILLED, AND INSERTED IN THE GIVYG )@@G@@EN WORD. @[@@@@SPACE @F@@@@ ABR WILL THEN GIVE YOU A CHANCE TO CHAYH )@@G@@NGE MORE WORDS, IF YOU @G@@@@ LIKE. WHEN NO MORE CHANGES ARE TO BE MADYI )@@G@@E, SAY 'NOMORE'. THE NEW @F@@@@ VERSION OF THE SECTOR WILL BE DUMPEYJ )@@G@@D, AND THE ABSOLUTE WRITE WILL@F@@@@ BE DONE. IF AN @EOF IS READ AS THEYK )@@G@@ RESPONSE TO ANY OF THESE @E@@@@ TREAD$ MESSAGES, ABR WILL EXIT WITHYL )@@G@@OUT DOING THE WRITE. ___@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@YM )@@G@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@*[@@@@*SDFF*@#@@@@ YN )@@G@@ AXR$ @G@@@@. ****************************************************YO )@@G@@**************** @G@@@@. **********************************************YP )@@G@@********************** @G@@@@. * YQ )@@G@@ * @G@@@@. * YR )@@G@@ * @G@@@@. * OPTIONS AVAILABLE ON EXECYS )@@G@@UTING DIRMAP. * @G@@@@. * YT )@@G@@ * @G@@@@. * A-X = PRINTYU )@@G@@ DIRECTORY ITEMS OF FILES WITH THESE DESC. TAGS * @G@@@@. * Y YV )@@G@@= DUMP ENTIRE DIRECTORY AFTER MAP * @G@@@@. * YW )@@G@@ * @G@@@@YX )@@G@@. * * YY )@@G@@@G@@@@. ****************************************************************YZ )@@G@@**** @G@@@@. **********************************************************ZA )@@G@@********** @[@@@@/ @I@@@@$(0) . ZB )@@G@@ ID @I@@@@DIRVERID . ZC )@@G@@ ID @I@@@@ ZD )@@G@@ 'DIRVER-06 ' ZE )@@G@@ID @I@@@@DIRVERIDL EQU $-DIRVERID ZF )@@G@@ ID @I@@@@H1LINE . ZG )@@G@@ ID @I@@@@ 'FILE ALLOCATIZH )@@G@@ON ON @@/@@/@@ AT @@:@@:@@ ' ID @I@@@@H1L ZI )@@G@@ EQU $-H1LINE ZJ )@@G@@ID @ @@@@PRTF FORM 12,6,18 @ @@@@PF FORM 12,6ZK )@@G@@,18 @ @@@@F1 FORM 12,6,18 @I@@@@ . ********** THIS MAY HZL )@@G@@AVE TO BE ENLARGED AT SOME SITES ********************** @E@@@@NOTRKSZM )@@G@@ EQU 3000 . RESERVE FOR CRTAB @H@@@@ ZN )@@G@@ . 3 WORDS ARE USED/DAS IN THE SYSTEM @I@@@@ZO )@@G@@ . *********************************************************************ZP )@@G@@******* @I@@@@NOFILES EQU 55*55 . MAX FILES PRZQ )@@G@@OCESSOR CAN HANDLE EXP @H@@@@NOF2 EQU 0 ZR )@@G@@ . NUMBER OF F2 IN INITIAL CONFIG @^@@@@NOF3 EQU 0 ZS )@@G@@@H@@@@NO432 EQU 1 . NUMBER OF 432 IN INITIALZT )@@G@@ CONFIG @^@@@@NO880 EQU 0 @H@@@@NO1782 EQU 1 ZU )@@G@@ . NUMBER OF 1782IN INITIAL CONFIG @^@@@@NO8414 EQZV )@@G@@U 8 @H@@@@NO8440 EQU 4 . NUMBER OF 84ZW )@@G@@40 IN INITIAL CONFIG @^@@@@NOBC EQU 0 @I@@@@F8460 EQZX )@@G@@U 8 . 8460 INDEX 8460 ZY )@@G@@@I@@@@NO8460 EQU 0 ZZ )@@G@@ 8460 @I@@@@F8424 EQU 9 . 8424 IAA )@@G@@NDEX 8424 @I@@@@NO8424 EQU 5 AB )@@G@@ . NUMBER OF 8424 IN INITIAL CONFIG 8424 @H@@@@TOT EQAC )@@G@@U NOF2*4097; . NUMBER OF F2 * SIM MBT LENGTH @H@@@@AD )@@G@@ + NOF3*6145; . NUMBER OF F3 * SIM MBT LENGTAE )@@G@@H @H@@@@ + NO432*50; . NUMBER OF 432 * SAF )@@G@@IM MBT LENGTH @H@@@@ + NO880*147; . NUMBERAG )@@G@@ OF 880 * SIM MBT LENGTH @H@@@@ + NO1782*391; AH )@@G@@ . NUMBER OF 1782 * SIM MBT LENGTH @H@@@@ + NO84AI )@@G@@14*1024; . NUMBER OF 8414 * SIM MBT LENGTH @I@@@@ + AJ )@@G@@ NO8424*2048; . NUMBER OF 8424 * SIM MBT LENGTH 8424 AK )@@G@@@H@@@@ + NO8440*3735; . NUMBER OF 8440 * SIM MBTAL )@@G@@ LENGTH @H@@@@ + NOBC*28; . NUMBER OF UCAM )@@G@@S * SIM MBT LENGTH @H@@@@ + NO8460*8662 . AN )@@G@@NUMBER OF 8460 * SIM MBT LENGTH @D@@@@FASIZE EQU 512 AO )@@G@@ . LDS***** @G@@@@CRTABSIZ EQU 3 . AP )@@G@@ENTRY LENGTH OF CRTAB,SIMDAS @I@@@@VWXOPT EQU 1*/('Z'-'V')+1*/AQ )@@G@@('Z'-'W')+1*/('Z'-'X')+1*/('Z'-'K') KVWX2 @F@@@@TP EQU AR )@@G@@ 017 . HIGHEST TAPE EQUIP CODE @H@@@@TOPEQP EQU AS )@@G@@ 037 . HIGHEST MASS STORAGE EQUIP TYPE @E@@@@K AT )@@G@@ EQU 030 . START OF FATBL @D@@@@F14 EQAU )@@G@@U 5 . 8414 DISK @D@@@@F40 EQU 6 AV )@@G@@ . 8440 DISK @D@@@@DISC EQU 02 AW )@@G@@ . DISC BIT @E@@@@FXDISC EQU 01 . FIXED AX )@@G@@DISC BIT @I@@@@DBLDGET EQU 3 . EXEC CAPABILAY )@@G@@ITY LEVEL DBL BUFF DGETLEV @I@@@@ABSFCYC EQU 4 AZ )@@G@@ . ABS F-CYCLE LEV @I@@@@DISCS EQU BA )@@G@@ 5 . 8440,8424 LEV @I@@@@BB )@@G@@USERUNIT EQU 6 . USRR UNIT SEBC )@@G@@LECT LEV @D@@@@U8414 EQU 0 . 8414 SUBCODEBD )@@G@@@D@@@@U8424 EQU 1 . 8424 SUBCODE@D@@@@U8440 BE )@@G@@ EQU 0 . 8440 SUBCODE@D@@@@U8430 EQU BF )@@G@@ 1 . 8430 SUBCODE@I@@@@LEADRSV EQUF 31 BG )@@G@@ . SAVE FOR LEAD ITEM REL DRUM ADDR SRT @I@@@@SRTACCT EQBH )@@G@@UF 29 . ACCOUNT FOR SORT SRT BI )@@G@@@I@@@@LDADSV EQUF 28 . SAVE FOR LEAD ITEM ADDR BJ )@@G@@DURING SORTSRT @I@@@@ . NOTE: BK )@@G@@THIS IS IN FIRST WORD OF MAINSRT @I@@@@ BL )@@G@@ . ITEM BUFFER SRT @[@@@@. @ @@@@BM )@@G@@. FATBL UNIT TABLES @[@@@@. @I@@@@MTRKS EQUF 0 BN )@@G@@ . MAX TRKS OBTAINABLE -SS EQU @I@@@@UNITS BO )@@G@@ EQUF 0,,T1 . TOTAL NUMBER OF UNITS THIS TYPE-SS EBP )@@G@@QU @I@@@@ETRKS EQUF 1 . REMAINING TRKS AVABQ )@@G@@IL -SS EQU @I@@@@MPOS EQUF 2,,H1 . BR )@@G@@MAX POS OBTAINABLE -SS EQU @I@@@@EPOS EQUF 2,,HBS )@@G@@2 . REMAINING POS AVAIL -SS EQU @I@@@@. UNBT )@@G@@IT TABLE EBU )@@G@@QU @I@@@@UDADR EQUF 0, . MFD TRK TRACK ADDRBV )@@G@@ UNIT EQU @I@@@@UPHSS EQUF 1,,T1 . BW )@@G@@PHYSICAL SS NUMBER UNIT EQU @I@@@@UPHU EQUF 1,,SBX )@@G@@3 . PHYSICAL UNIT NUMBER UNIT EQU @I@@@@UPHSU BY )@@G@@ EQUF 1,,H1 . SS/UNIT UNIT EBZ )@@G@@QU @I@@@@PREPBIT EQU 0400000 . PREP IN PROGRESS (CA )@@G@@BIT 17,WD 1) UNIT EQ @I@@@@UASGCT EQUF 1,,H2 . CB )@@G@@ASG COUNT FOR REMOVEABLE DISK UNIT EQU @B@@@@BAD EQUF 1,,HCC )@@G@@1 . @B@@@@MBTIN EQUF 1,,H2 . @I@@@@CD )@@G@@UTP EQUF 2 . CE )@@G@@UNIT EQU @I@@@@UTRK EQUF 2,,H1 . REMAINING TRCF )@@G@@KS AVAILABLE UNIT EQU @I@@@@ULSS EQUF 2,,S4 CG )@@G@@ . UNIT EQU @I@@@@UPOS EQUF CH )@@G@@ 2,,T3 . REMAINING POS AVAIL UNIT EQU @I@@@@CI )@@G@@UMBT EQUF 3 . ADDR OF MASTER BIT TABLE CJ )@@G@@UNIT EQU @I@@@@UCFD EQUF 3,,S1 . CK )@@G@@ UNIT EQU @I@@@@UPKID EQUF 4 CL )@@G@@ . PACKID UNIT EQU @I@@@@STAT EQUF CM )@@G@@ 0,,S1 . UNIT STATUS EQU @I@@@@CN )@@G@@DNBIT EQU 040 CO )@@G@@UNIT EQU @I@@@@STATBT EQU 060 CP )@@G@@ UNIT EQU @I@@@@UPSTAT EQU 0 CQ )@@G@@ . STATUS FOR UNIT UP UNIT EQU @I@@@@SUSTAT EQU CR )@@G@@ 1 . SUSPEND UNIT EQU @I@@@@CS )@@G@@RVSTAT EQU 2 . RESERVE CT )@@G@@UNIT EQU @I@@@@DNSTAT EQU 3 . CU )@@G@@ DOWN UNIT EQU @I@@@@STATSH EQU 4 CV )@@G@@ . UNIT EQU @I@@@@SECBIT EQU CW )@@G@@ 010 . UNIT EQU @I@@@@CX )@@G@@SATBIT EQU 4 . CY )@@G@@UNIT EQU @I@@@@RVBIT EQU 2 . CZ )@@G@@ UNIT EQU @I@@@@UCOMP EQU 040 DA )@@G@@ . COMPLETE UNIT ASSIGN UNIT EQU @I@@@@FDISC EQU DB )@@G@@ 020 . FIXED DISC BIT UNIT EQU @F@@@@DC )@@G@@MBTBIT EQU 010 . DISK MBT PLACEMENT FLAG @I@@@@DD )@@G@@. XPKID DE )@@G@@ EQU @I@@@@PCKTL EQUF 0,,H1 . TABLE LENGTHDF )@@G@@ EQU @I@@@@PCKNUM EQUF 0,,H2 DG )@@G@@ . MAX NUM OF FIXED DISC PACKS EQU @I@@@@PCKSSU EQUF DH )@@G@@ 1,,H1 . SS/U OF FIRST FIXED PACK ON SYS EQU @I@@@@DI )@@G@@PCKFTB EQUF 1,,H2 . FATBL POINTER DJ )@@G@@ EQU @[@@@@. @^@@@@. SEARCH ITEM @[@@@@. @D@@@@DK )@@G@@SQUAL EQUF 1 . QUALIFIER @D@@@@SFILE EQDL )@@G@@UF 3 . FILENAME @E@@@@SLITEM EQUF 5 DM )@@G@@ . LINK TO LEAD ITEM @F@@@@SILINK EQUF 0 DN )@@G@@ . LINK TO NEXT SEARCH ITEM@I@@@@. DO )@@G@@ LEAD EQU @I@@@@. LEDP )@@G@@AD ITEM LEAD EQU DQ )@@G@@@I@@@@. DR )@@G@@ LEAD EQU @I@@@@LILINK EQUF 0 . LINK TDS )@@G@@O SECTOR 1 OF LEAD ITEM LEAD EQU @I@@@@LQUAL EQUF 1 DT )@@G@@ . QUALIFIER LEAD EQU @I@@@@LFILE EQDU )@@G@@UF 3 . FILENAME LEAD EQU DV )@@G@@@I@@@@LPROJ EQUF 5 . PROJECT DW )@@G@@ LEAD EQU @I@@@@LRDKEY EQUF 7 . READ KDX )@@G@@EY LEAD EQU @I@@@@LWRKEY EQUF 8 DY )@@G@@ . WRITE KEY LEAD EQU @I@@@@LMEDIA EQDZ )@@G@@UF 9,,S1 . MEDIUM LEAD EQU EA )@@G@@@I@@@@LCOUNT EQUF 9,,S2 . COUNT OF F-CYCLES EB )@@G@@ LEAD EQU @I@@@@LMAX EQUF 9,,S3 . MAX F-EC )@@G@@CYCLE RANGE LEAD EQU @I@@@@LRANGE EQUF 9,,S4 ED )@@G@@ . CURRENT RANGE OF F-CYCLES LEAD EQU @I@@@@LCABS EQEE )@@G@@UF 9,,T3 . HIGHEST ABS F-CYCLE LEAD EQU EF )@@G@@@I@@@@LISTAT EQUF 10,,T1 . STATUS BITS EG )@@G@@ LEAD EQU @I@@@@GRD EQU 04000 . GUARD EH )@@G@@FILE LEAD EQU @I@@@@PLSONE EQU 02000 EI )@@G@@ . PLUS ONE EXISTS LEAD EQU @I@@@@EQSUCD EQEJ )@@G@@UF 10,,S3 . SUBCODE LEAD EQU EK )@@G@@@I@@@@CYC0 EQUF 10 . LINK TO M.I. OR 0 EL )@@G@@ LEAD EQU @I@@@@LCYC1 EQUF 11 . EM )@@G@@ LEAD EQU @I@@@@. EN )@@G@@ MAIN EQU @I@@@@. MAEO )@@G@@IN ITEM MAIN EQU EP )@@G@@@I@@@@. EQ )@@G@@ MAIN EQU @I@@@@MILINK EQUF 0 . LINK TER )@@G@@O FIRST G-TBL MAIN EQU @I@@@@MQUAL EQUF 1 ES )@@G@@ . QUALIFIER MAIN EQU @I@@@@MFILE EQET )@@G@@UF 3 . FILENAME MAIN EQU EU )@@G@@@I@@@@MPROJ EQUF 5 . PROJECT EV )@@G@@ MAIN E-U @I@@@@MACCT EQUF 7 . ACCOUNEW )@@G@@T MAIN EQU @I@@@@MWTIME EQUF 10 EX )@@G@@ . TIME 1ST WRITE FOLLOWING BKUP MAIN EQU @I@@@@MBLINK EQEY )@@G@@UF 11 . BACK LINK MAIN EQU EZ )@@G@@@I@@@@MFLG1 EQUF 11,,S1 . ROLLOUT FLAGS(DISABLE FLFA )@@G@@AGS) MAIN EQU @I@@@@DISABR EQU 040 . PREVENFB )@@G@@T ASG, OVERRIDE BY Q OPTMAIN EQU @I@@@@DISTRYD EQU 020 FC )@@G@@ . LINK ADDR POINTS TO DOWN UNIT MAIN EQU @I@@@@INCOM EQFD )@@G@@U 010 . INCOMPLETE MAIN EQU FE )@@G@@@I@@@@SECURE EQU 004 . SECURE REJECT FF )@@G@@ MAIN EQU @I@@@@MBBI EQUF 12 . BLOCK FG )@@G@@BUFFERING MAIN EQU @I@@@@MFLG3 EQUF 12,,T1 FH )@@G@@ . ROLLOUT FLAGS MAIN EQU @I@@@@RLOUT EQFI )@@G@@U 04000 . FILE IS ROLLED OUT MAIN EQU FJ )@@G@@@I@@@@BKUP EQU 02000 . FILE IS BACKED UP FK )@@G@@ MAIN EQU @I@@@@BADBKUP EQU 01000 . BACKUPFL )@@G@@ FILE CANNOT BE READ MAIN EQU @I@@@@LAPSE EQU 00400 FM )@@G@@ . LAPSE ENTRIES PRESENT MAIN EQU @I@@@@BADROLL EQFN )@@G@@U 00200 . ROLLOUT ITEM CANNOT BE READ MAIN EQU FO )@@G@@@I@@@@NITEMF EQU 00100 FP )@@G@@ MAIN EQU @I@@@@RDISC EQU 00010 . REMOVEFQ )@@G@@ DISC FLAG MAIN EQU @I@@@@MSCONB EQU 00020 FR )@@G@@ . MSCON HAS BEEN BUSY MAIN EQU @I@@@@TBWOLY EQFS )@@G@@U 00004 . TO BE WRITE ONLY AT FREE MAIN EQU FT )@@G@@@I@@@@TBROLY EQU 00002 . TO BE READ ONLY AT FREE FU )@@G@@ MAIN EQU @I@@@@DFLAG EQU 00001 . FILE IFV )@@G@@S TO BE DROPPED MAIN EQU @I@@@@EXTLNK EQUF 13 FW )@@G@@ . LINK TO NEXT M.I. SECTOR MAIN EQU @I@@@@MFLG2 EQFX )@@G@@UF 13,,S1 . MAIN EQU FY )@@G@@@I@@@@PGRAN EQU 040 . POS GRANULARITY FZ )@@G@@ MAIN EQU @I@@@@DGRAN EQU 020 . DISK PGA )@@G@@ACK GRANULARITY MAIN EQU @I@@@@WADD1 EQU 010 GB )@@G@@ . WORD ADDRESSABLE MAIN EQU @I@@@@PRFHSD EQGC )@@G@@U 004 . PREFERS HIGH SPEED DRUM MAIN EQU GD )@@G@@@I@@@@SYMB1 EQUF 14 . RESERVED FOR SYMBIONTS GE )@@G@@ MAIN EQU @I@@@@SYMB2 EQUF 15,,H1 . RESERVGF )@@G@@ED FOR SYMBIONTS MAIN EQU @I@@@@MTASSG EQUF 15,,H2 GG )@@G@@ . TOTAL ASSIGNS MAIN EQU @I@@@@MRUNID EQGH )@@G@@UF 16 . RUN 10 MAIN EQU GI )@@G@@@I@@@@MMEDIA EQUF 17,,S1 . MEDIA GJ )@@G@@ MAIN EQU @I@@@@MFLAGS EQUF 17,,S2 . FLAGS GK )@@G@@ MAIN EQU @I@@@@GUARD EQU 040 GL )@@G@@ . GUARDED FILE ASG,G MAIN EQU @I@@@@UNLD EQGM )@@G@@U 020 . UNLOAD INHIBIT ASG,V MAIN EQU GN )@@G@@@I@@@@PRIVATE EQU 010 . PRIVATE ASG,P GO )@@G@@ MAIN EQU @I@@@@EXCUSE EQU 004 . EXCLUSGP )@@G@@IVE USE ASG,X MAIN EQU @I@@@@WONLY EQU 002 GQ )@@G@@ . WRITE ONLY ASG,W MAIN EQU @I@@@@RONLY EQGR )@@G@@U 001 . READ ONLY ASG,R MAIN EQU GS )@@G@@@I@@@@MCASSG EQUF 17,,T2 . CURRENT ASSIGNS GT )@@G@@ MAIN EQU @I@@@@MACYC EQUF 17,,T3 . ABSOLUGU )@@G@@TE CYCLE MAIN EQU @I@@@@MRTIME EQUF 18 GV )@@G@@ . LAST REFERENCE TIME MAIN EQU @I@@@@MCTIME EQGW )@@G@@UF 19 . CATALOGUE TIME MAIN EQU GX )@@G@@@I@@@@MRESRV EQUF 20,,H1 . INITIAL RESERVE GY )@@G@@ F MAIN EQU @I@@@@MREELS EQUF 20,,H2 . NUMBERGZ )@@G@@ OF REELS ASSIGNED T MAIN EQU @I@@@@MT30 EQUF 20,,H2 HA )@@G@@ . NUMBER GRANULES TYPE 030 F MAIN EQU @I@@@@SPMODE EQHB )@@G@@UF 21,,T1 . U16/U12/U20 MODES MAIN EQU HC )@@G@@@I@@@@MMODE EQUF 21,,S4 . TAPE MODES HD )@@G@@ T MAIN EQU @I@@@@MGCT EQUF 21,,H1 . MAX GRHE )@@G@@ANULES F MAIN EQU @I@@@@MNOISE EQUF 21,,T3 HF )@@G@@ . NOISE CONSTANT T MAIN EQU @I@@@@MT31 EQHG )@@G@@UF 21,,H2 . NUMBER GRANULES TYPE 031 F MAIN EQU HH )@@G@@@I@@@@MHCT EQUF 22,,H1 . HIGHEST GRAN ASSIGNED HI )@@G@@ F MAIN EQU @I@@@@MT32 EQUF 22,,H2 . NUMBERHJ )@@G@@ GRANULES TYPE 032 F MAIN EQU @I@@@@MHT EQUF 23,,H1 HK )@@G@@ . HIGHEST GRAN REFERENCED F MAIN EQU @I@@@@MT33 EQHL )@@G@@UF 23,,H2 . NUMBER GRANULES TYPE 033 F MAIN EQU HM )@@G@@@I@@@@MT41 EQUF 24,,H1 . DAYS ASSIGNED HN )@@G@@ MAIN EQU @I@@@@MT34 EQUF 24,,H2 . NUMBERHO )@@G@@ GRANULES TYPE 034 F MAIN EQU @I@@@@MT42 EQUF 25,,H1 HP )@@G@@ . MILLISECONDS ASSIGNED MAIN EQU @I@@@@MT35 EQHQ )@@G@@UF 25,,H2 . NUMBER GRANULES TYPE 035 F MAIN EQU HR )@@G@@@I@@@@MT36 EQUF 26,,H2 . NUMBER GRANULES TYPE 036HS )@@G@@ F MAIN EQU @I@@@@MT37 EQUF 27,,H2 . NUMBERHT )@@G@@ GRANULES TYPE 037 F MAIN EQU @I@@@@MREEL1 EQUF 26 HU )@@G@@ . FIRST REEL CATALOGUED T MAIN EQU @I@@@@MREEL2 EQHV )@@G@@UF 27 SECOND REEL CATALOGUED T MAIN EQU HW )@@G@@@I@@@@ . HX )@@G@@ MAIN EQU @I@@@@ . MAIN ITEM EXTENSION HY )@@G@@ MAIN EQU @I@@@@ . HZ )@@G@@ MAIN EQU @I@@@@EXTIND EQIA )@@G@@UF 5 . EXTENSION SECTOR IND MAIN EQU IB )@@G@@@I@@@@EXTBLK EQUF 6 . EXTENSION SECTOR BACKLINIC )@@G@@K MAIN EQU @I@@@@EXNBKR EQUF 7,,T1 . NUMBERID )@@G@@ OF BACKUP REELS E-MAIN EQU @I@@@@EXBKAL EQUF 7,,S1 IE )@@G@@ . MAX # BKUP GENERATIONS ALLOWED FILEEQU @I@@@@ . EXNBKR EQIF )@@G@@UF 7,,S2 . NUMBER OF BACKUP REELS E-MAIN EQU IG )@@G@@@I@@@@EXNLAP EQUF 7,,T2 . NUMBER 2 WORD LAPSE ENT IH )@@G@@ E-MAIN EQU @I@@@@EXACYC EQUF 7,,T3 . EXTENSII )@@G@@ION SECTOR ABS F-CYC MAIN EQU @I@@@@PBIT EQUF 7,,S1 IJ )@@G@@ . DISC PACK ENTRY BIT MAIN EQU @I@@@@EXTIME EQIK )@@G@@UF 8 . DATE/TIME OF BACKUP E-MAIN EQU IL )@@G@@@I@@@@EXMEDIA EQUF 9,,S1 . MEDIA IM )@@G@@ E-MAIN EQU @I@@@@EXTAPM EQUF 9,,S2 . TAPE-MIN )@@G@@ODE-CODES E-MAIN EQU @I@@@@EXBKRET EQUF 9,,S3 IO )@@G@@ . # BKUP GENERATIONS RETAINED THIS FILE @I@@@@EXNBLK EQIP )@@G@@UF 9,,H2 . NUM 1800 WORD TEXT BLOCKS E-MAIN EQU IQ )@@G@@@I@@@@EXTNSE EQUF 10,,T1 . TAPE NOISE CONSTANT IR )@@G@@ E-MAIN EQU @I@@@@EXSTFL EQUF 10,,T2 . START IS )@@G@@FILE POSITION E-MAIN EQU @I@@@@EXWLBL EQUF 10,,T3 IT )@@G@@ . NUMBER WORDS LAST BLOCK E-MAIN EQU @I@@@@PAK6 EQIU )@@G@@UF 010 . LOCATION OF SIXTH PACK MAIN EQU IV )@@G@@@I@@@@DPCWD EQUF 021 . DISC PACK CONTROL WORD IW )@@G@@ MAIN EQU @I@@@@PAK1 EQUF 022 . SECTORIX )@@G@@ 1 PACKID 1 MAIN EQU @[@@@@. @^@@@@. GRANULE IY )@@G@@ITEM @[@@@@. @I@@@@GFLINK EQUF 0 . GRAN TIZ )@@G@@ABLE FORWARD LINK GRAN EQU @I@@@@GBLINK EQUF 1 JA )@@G@@ . GRAN TABLE BACKWARD LINK GRAN EQU @[@@@@. @[@@@@JB )@@G@@. @H@@@@. ROUTINE WHICH 1. OBTAINS SYSTEM FASTRAND-AVAILABILITY JC )@@G@@TABLE AND THE @D@@@@. MASTER CONFIGURATION TABLJD )@@G@@E. @H@@@@. 2. CHECKS SYSTEM ACTUAL MASS-STORAGE CONJE )@@G@@FIGURATION VERSUS @H@@@@. THE MINIMUM ASSUMED AND OJF )@@G@@BTAINS ADDITIONAL CORE BEYOND @I@@@@. MINIMUM FOR SIJG )@@G@@MULATED MASTER BIT TABLES TO BE BUILD LATER. @[@@@@. @[@@@@. JH )@@G@@@H@@@@. . . . . . . . . . . . . . . . . JI )@@G@@ . . . @H@@@@. ***FATAB*** . TABLE DESCRIPTION - IB #131 P.5-JJ )@@G@@1 . @H@@@@. . . . . . . . . JK )@@G@@ . . . . . . . . . . . @[@@@@. @H@@@@. JL )@@G@@ . . . . . . . . . . . . . . . . . . . @H@@@@. ***MJM )@@G@@CTAB*** . TABLE DESCRIPTION - IB #125 P.1-2 . JN )@@G@@@F@@@@. REFTAB FOR EACH EQUIP TYPE . JO )@@G@@@[@@@@. @H@@@@. . . . . . . . . . . . . JP )@@G@@ . . . . . . . @H@@@@. ***EQPTAB*** . # OF UP UNITS/EQ TYPEJQ )@@G@@ .POINTER TO BEGIN ADDR IN . @G@@@@. JR )@@G@@ REFTAB FOR EA EQ TYP.@H@@@@. . . JS )@@G@@ . . . . . . . . . . . . . . . . . @[@@@@. @[@@@@JT )@@G@@. @[@@@@. @[@@@@$(1) @B@@@@ASGDRM '@CAT,P DRUMFILE,F//POS/15JU )@@G@@ . ' @]@@@@ASGADRM . @A@@@@ '@ASG,ADKX DRUMFILE. . ' @I@@@@JV )@@G@@ASGMBT . JW )@@G@@ MBT @I@@@@ '@CAT,P MBTFILE,F//POS/10 . ' . JX )@@G@@ MBT @I@@@@ASGAMBT . JY )@@G@@ . MBT @I@@@@ '@ASG,ADJZ )@@G@@KX MBTFILE. . ' . MBT @]@@@@KA )@@G@@FDLOC . @A@@@@ '@FREE SYS$*DLOC$. . ' @G@@@@ASGDLOC 'KB )@@G@@@ASG,A SYS$*DLOC$/RDKDLC/WRKDLC .' . DMW*** @I@@@@ASGSRTKC )@@G@@ . SKD )@@G@@RT @I@@@@ '@ASG,T SORTF,D/115000' . KE )@@G@@ SRT @I@@@@ASGSRTL EQU $-ASGSRT . KF )@@G@@ SRT @I@@@@ASGSRTS EQU ASGSKG )@@G@@RT+3 . SRT @[@@@@START.KH )@@G@@@I@@@@ L A0,(0100300,ERROR5) . SET UP CONTINGENCY KI )@@G@@ CONT @I@@@@ ER IALL$ . REGISTKJ )@@G@@ER IT CONT @I@@@@ TNE,U A4,4 KK )@@G@@ . ON ERROR--JUST GIVE REGISTERS DMND @I@@@@ S KL )@@G@@ A4,DEMAND . STORE DEMAND FLAG DMD KM )@@G@@@^@@@@ ER OPT$@ @@@@ S A0,OPTION @I@@@@KN )@@G@@ SZ A9 . CLEAR A9 FOR LATER KO )@@G@@ 2 @I@@@@ L A0,(EOF,SECBUF1) . BUFFER FOR PKP )@@G@@ROCESSOR CARD VW2 @I@@@@ ER READ$ KQ )@@G@@ . READ PROCESSOR CARD VW2 @I@@@@ TOP KR )@@G@@ A0,(1*/31) . WAS THIS A PROCESSOR CALL VW2 @I@@@@KS )@@G@@ ER ERR$ . NO, ERR$ KT )@@G@@ VW2 @I@@@@ L,U R1,0,A0 . GET WORD COUKU )@@G@@NT VW2 @I@@@@ L A1,(1,SECBUF1-1)KV )@@G@@ . BUFFER WITH IMAGE VW2 @I@@@@ L,U KW )@@G@@ A2,010106 . ELT IMAGE INFOR FIELD TO LOOK FOR VW2 @I@@@@KX )@@G@@ SE,H1 A2,1,*A1 . FIND IT KY )@@G@@ VW2 @I@@@@ J CKFILE . SEE IF FILE KZ )@@G@@MODE IS WANTED JK2 @E@@@@ DL A2,1,A1 LA )@@G@@ . GET ACCT,PROJ,QUAL@]@@@@START1 . @I@@@@ L,S6 A0,0LB )@@G@@,A1 . GET NUMBER OF WORDS INPUT VW2 @I@@@@ LC )@@G@@ TNE,U A0,1 . WAS JUST ONE WORD INPUT VLD )@@G@@W2 @I@@@@ L A3,SPACES . YES, LOAD SPACES FLE )@@G@@OR SECOND WORD VW2 @I@@@@ DS A2,ACCTPROJ . LF )@@G@@SAVE FOR FUTURE VW2 @I@@@@NOPRAC . LG )@@G@@ VW2 @I@@@@ LH )@@G@@ L A0,(EOF,SECBUF1) . LI )@@G@@ 2 @H@@@@ L,U R1,5 . LOOP COUNTER FOR CLELJ )@@G@@AR OF READ BUFFER @C@@@@ L,U A1,SECBUF1 . BUFFER LK )@@G@@@B@@@@ LXI,U A1,1 . @D@@@@ SZ LL )@@G@@ 0,*A1 . CLEAR BUFFER @B@@@@ JGD R1,$-1 LM )@@G@@ . @E@@@@ ER READ$ . READ OPTION CALN )@@G@@RD @B@@@@ A,U A0,0100 . @B@@@@ LXLO )@@G@@I,U A0,0,A0 . @B@@@@ LXM,U A0,SECBUF1 LP )@@G@@ . @F@@@@ ER PRINT$ . PRINT SECOND OPTION LQ )@@G@@WORD @I@@@@ L,U A1,SECBUF1 . BUFFER LR )@@G@@ 2 @I@@@@ LXI,U A1,1