IMD 1.16: 1/09/2008 11:27:42 84-93181-06 g000 f18106 trans-basic compiler library  ?       VTOC .. F18106G0;CMP  d07/12/83COREPROC <;E VQU07/12/83INCLUDEUTL"!:VQU07/12/83 B2 B3 D3 E3 PASS1E PASS1E PASS1L PASS1L PASS2E PASS2L PASS2L PASS3E PASS3E PASS3L PASS4E PASS4E PASS4L PRTSPL  #B3  B3  B3  B3  B3  B3  B3  B3  B3   B3  B3 B3 B3 B3 B3 B3  B3  B3  B3  B3  B3  B3  B3  B3  B3  B3 B3  B3 B3 B3 B3  B3  B3  B3  B3  #B2 B2 B2 B2 B2 B2  B2  B2  B2   B2  B2  B2  B2  B2  B2  B2 B2 B2  B2 B2 B2  B2  B2  B2  B2  B2  B2  B2  B2  B2  B2 B2 B2 B2 B2 #B3  B3  B3  B3  B3  B3 B3 B3 B3  B3 B3  B3  B3  B3  B3  B3  B3  B3  D3  D3  D3 D3 D3 D3 D3 D3  D3  D3  D3  D3  D3  D3  D3  D3  D3  #D3 D3 E3 E3 E3 E3  E3  E3  E3   E3  E3  E3  E3  E3  E3  E3 E3 E3  E3 E3 E3  E3  E3  E3  E3  E3  E3  E3  E3  E3  E3 E3 E3 E3 E3 #E3  E3  E3  E3  E3  LIBDAT  LIBDAT  PASS1E  PASS1E  PASS1E  PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E PASS1E    B2 @PASS1:INC:07/11/83INCLUDE VERSION T:G000\ B2 T:G000 { OCEDURE:PSOURCE::QUQ 00 B2 UdSOURCETEMPVdBINARY::\EQUATE::VdPASS23 00 B2 TEMPLABELXTEMPFILE NAME UNIT  S B2 EC HD CYL OPERATION +(܀"LP2RLnLLL"n  B2    B \DJAPTRANS-BASIC B2 COMPILER (V) tzENTER SOURCE NAME VNot a TRANS-BASIC B2 source file €BȀENTER OBJECT NAME E z CODE FUNCTIONB2  E = SPOOL ERRORS  F = SPOOL LISTINGS  L = PRINT MINI LISTB2 ING (EXCLUDING INCLUDES):0 P = PRINT COMPLETE LISTING nSELECT TYPE OF C B2 OMPILE { P L F ЀPASS1:INC IN PROGRESS RB2 dV* INCLUDE  /$,*/$ 26:B2 PASS1 IN PROGRESS B LL;CMPPASS1Lh ;CMPPASS1Ev THIS LABB2 EL NOT IN THE EQUATE FILE >>> %<<< PROCEDURE ERROR ON RECORD:B2 LOG ERROR (Y/N)? N-Y ;CMPB2  N UTILDSKERR 8<>O  B2 OUTILUTIL0 4 BPHP' T, Z`79>ADGJQV]`gnsUUUB2 x$+UUUU]UUUUUB2 049=AEINRY\^eglnxUUUUUUUUUUB2   )-0157:;>ADMV[^gpw|~0UUUUUUUUQB2 ////A A ?AQQ B2 A A ?!!EE@EDQB2 !AAG"&&&)68;&>IDEAPPB2 "M&>_&b&epG"APPEAAEQB2 G"s&vb&>&>&>&>PAAAAB2 &&$AAAAPUPDE B2 s& @PPB2 G%# # # ?GQDQ@DB2 GGA#EDPQB2 AA FDELPDEAB2  &*, .02A9@&CAEUPEA    B2 X\&Ck&%""F&>mp{$TTPPDAPB2 "~ "JG=UQTB2 A() )*'A ,5PQEQB2 A-5A0.=5.=A4ADPPTETEB2 5+.=#T B3 @CNC: 08/13/83CONCORDANCE LISTING P1T: G000 B3 P1T: G000 YAND  BEGIN BINHEX  CHAIN CLOSE  CLR 0 B3 DATE  DELETE DISK  EDIT EJECT  ELSE END  ENTRY EQ 00 0B3  FILE FILE@  FILLER FOR  GE GET  GET@ GETFILE G0 0B3 LB GOSUB  GOTO GT  IF IF@  INIT@ INP  INPUT INX 0 B3  ISQ ISX  ITZ IXO  JUSTIFY KILL  LE LINK  LOAD@ 00000B3 LST  LT MOVE@  NE NEXT  OPEN OPEN@  OR OUT 000 B3 OUTPUT PLB  PRINT PRIORITY PRT PUT  PUT@ RAN  READ 00 B3 REDEFINES RENAME RESTORE RESUME RETURN  RNM SAVE  SAVES0B3 TATUS SCREEN  SEQ SHIFTL  SHIFTR SLEEP  SPACE SQRT  SRT   B3 START  STEP STOP  STORE@ SYSRES  THEN TIME  TITLE 0 0 B3 TO  WATCHDOG WORDMARK XOR ZERO 2  NNN 0  00 B3 OC:: VQUQUYOUNAMEIT!VQUQUCNC TEMP 000B3 EQUATE::VVTOC VFILE33 0B3 NAME UNIT  SEC HD CYL OPERATION + LP PVPVLV  B3 LL *:L`v vF   ~(B3 R }Y CONCORDANCE (  ) ENTER SOURCE FILE FOR CONCORDAB3 NCE:"N C INCLUDE RESERVED WORDS IN LISTING (Y/N)? N *{ :& @)B3 F PRESTRICTED V .. lpSOURCE LINE:  V* B3  LINCLUDE Y ʀ/$ */$ TITLE  B3 EJECT ~\LV B $|l 2B3 <d >FP HX' VA \Z b; hR/ r= x: ~TZB3 PN 9  1  FILE NAME: UNIT  ( PAGE B3 "INCLUDE" ERROR ON RECORD:   LOG ERROR (Y/N)? N - (B3 ;CMPB3 N . OUTILDSKERR B UTILUTIL0 P O j, p v0    B3  %).368?DUU]UUUUUUUB3 GINPS]dkmrw{UUUUUUUUUB3   "$&(*15:=AFHINUX[blq}WUUUUUuUUB3         ! " ' , / 4 ; E O S V Y [ a d fUUU]]uUUUB3 i k t y }   F\UUUUUUUQ B3 ;'>A /%>DL)ND>QAUWATPQB3 Z%\&]<fhk&B<~%g%\W&<@PUAA@PB3 $W$W'  >IGIATA@EPB3 35/++\  &<G;;DB3 %A&G&Dl PGAl/ PEEDP B3 l/-?;ZAZl-ZEDPB3 -Z-ZAA&AQDEPEB3 AAG&A Z +DQEB3 \ F]+\+\   GZEAEAB3 +.+A++AMG+A+PQE@ B3 +A M FM]+\;' QQDPEB3 "&<R&A$#LG,A&)"&)A,PTPDQ@B3 '.;,,A;*)A/))2)-)A5*L&$%LG)&AqEDETEB3 .&A&&)"&)A,2):27)A37)A=4GEDEB3 7)A557)A@67&$0.&)**A-9G*-")DQDUDQD B3 *WAJG(AG' .'(+8+A+AL+C.+A(IQQAPTETDB3 L+G.+A'I!'A(J>Z .AAOUGQDDQDQB3 R- V' <E'<Ya<Sf'ik<Yn R' B GUUPUUB3  M&Y}E %)Fi&<%+bEPAEAPPB3 Zc+bAZe' hAZh' JEAATE@ B3 iGA&"&A,qr"&rs&$p&PAPQEQB3 "&Au~"&Av~"&A,y.&A&~"&ADPPTEB3 .AA}~&$t.&A&lTETD3 @PRTSCN: 07/11/83PRINT SCREEN P1 D3 P1 G1 2 3 4 5 6 71234567890 0     D3 OC:: VQUQUBLP8 B Fh~3;00D3 VTOC   ΀  F(2&..p RESTRICT 0D3 ED #  CZ(.(<B LCP1 ZFIELD3 D#`LENGTHjtLINEzCOL OFFSETLIMIT 4 D3 CHMRW\2d΀.SCREEN FILE NAME: UNIT  ()  D3 PAGE ;DVLD3 PF UTILLOGERR0 lntwz UUD3  %(+0368DLOR^UU]UUUuUUUD3 jot{}FxIKMO Y [UuUUUWDUD3 Qb /Idgo&Wqg>t?v|I*vUPPQP@D3 Qd~ Q - QA3SSIaT@EQ@A@ D3 Ia6IaIaZ'~'9QAEUUD3 'h~>'hQABIcDIcQEUQEQD3 ='~'G'Z'QUADDEUUD3 ''h~''-UUUPUUPD3 QAVIcXIcPK'-qEDDq D3 'Yh['t'vZFfF iAUTUAD3  h I@'EE3 @SPOOL: 07/11/83 VIEW SPOOL FILE UTCT:G000  E3 CT:G000 SPOOL x/T#SPOOL x/  0E3 %FILE NAME UNIT  SEC HD CYL OPERATION +LԀ2|0 E3 @VIEW SPOOL FILE ( F) `fENTER NAME : l ~  E3  UNIT: { /xv PAGE 1  €/Gè/PE3 ܀gy.N  CS=SEARCH, E=FIND EE3 RR, N=NEXT PGM, R=RENAME, ,P=PRINT, D=DELETE, ELSE=CONTINUE: N H#NpS vE3 P |R E D 0LLL*  *  N C o(DELETE E3  AFTER PRINTING (Y/N)? N 'Y (Y L  ENTER SE3 =80 COLUMN LISTING, L=132 COLUMN LISTING: L 32JP/N;CMPPRTSPL^E3 ENTER NEW FILE NAME: l SPOOL:FILE L(THIS FILE ALREADY E3 EXISTSENTER STRING TO SEARCH FOR: " "  E3 Px(LOG ERROR (Y/N)? N.-DUTILSPOOL F J     E3 UTILDSKERRZ ~OOUTILUTIL0 x  $',28=UUUUE3 AGMQW]`chouzU]UWUUUUUE3  !&*06:<CJOTZ\chmsyUuU]WUWUUE3    "*058AFMOTZaflqu{UUUUUUUUUUE3 F/>&WWUUUUDAD E3 JF>>@J&&&$&DUPUAUPE3 ?HHHAZ&HUPQ@QEE3 H&HH&A `A_ADADQEE3 nlAglAdnleDEEEUE3 &l]nF>>@n& "&6$J9DDQ E3 A<sA?tABuAEv|AHwyAADQDEDE3 xSHJJLLNLLA HQAAQE3 AHJLLA&HHQEPEQE3 &AQAUAYLNL!SEDQ@QE3 A\AELJLHHHSNLLEPADA E3 H~^`& fu$nxz zA@ATADE3 }AzH & $nz@E@PAE3  @n& $n&ADPAPUAE3 &"BnASH& ETDEEE3 $n&G.AUPTPQDQ E3 &HA AHA&PQQEEE3 HH&HHHHADAADE3  A . .AEEDE3 SF>& $J#J+DUUPEPE3 2J>:A@PDLIBDAT PROGRAM LIBRARY ;CMP BUILT 07/11/83 ON UTILSHEL LIBDAT LIBDAT PROGRAM LIBRARY ;CMP BUILT 07/11/83 ON UTILSHEL LIBDATPASS1E O0SEGMENTBLANK o im MACRO (F200) @ T: ZQ XҽPASS1E  ˂̄W' ɀBȂDŽW' ;;PASS1E @ euX  PASS1E  Ÿ)3ǝœ)3ǚš )3ǘYp@PASS23TEMP K !D  # 3 ePASS1E   PW#  3P - 3PASS1E  Ń Ebݞ` 3 0 3E - +PASS1E  3E  0ɞC( 0 E20 οPASS1E ( Ȟ AɃу ( f  $U f PASS1E   %L>J  y *{z ya ( =YؾՃ DPB MPASS1E Ϟx L = {zE   ?9 . (3 , 1 냝PASS1E  FILLER  Cy  Z   " e 3pPASS1E ' qp '+b ) ,ޞۃ )  ՇΞ&͞BPASS1E ОAB  ǃAD 9>6;߾ ,.ʃ+l | PASS1E l   'ҧ v  U# !PASS1E ,*+     PASS1E E߱w  WP#o=PASS1E Ag 0Jzx D4FQcop % #   z PASS1E x @ʆ a h [ -:;ePASS1E x  žQQ)3—% G+ H+ Hލw'ׂׄW քPս#[ fPASS1E    t $   nP  PASS1E  e S RTRW #baR_ " ! fPASS1E J N‚p  l iQ X]PASS1E  W߽#x Wؽ# x0 ;CMPPASS2E P e dž PASS1E = : / ' A ņ 7瞀 9 0ߍ%'߉ނVPASS1E  L #DB e 'fc ac0PASS1E [ 'G UACU"QK %'+ u ГB> <=6;߾ ,.ʃ+l |l PASS1L   ' v   _]XbXY{ PASS1L    ߯| PASS1L WP#o4P Ag 7PzƟx4 PASS1L  > X ~ k    邵x  ޱx ʆ PASS1L S v KP $Kv   X B PASS1L   {P P  YP T SUSW #PASS1L baS_ U O P S‚t  p Q X}PASS1L ] W޽#x W׽# x ;CMPPASS2L P Y PASS1L  = : / ' A Ć 7枀 9 0PASS1L %'߇ނV _`aXdAg  DB f 'PASS1L jg eb1Ѿ 'H YADT#PŸJ %'+ u ГABPASS1L @<;q ߮|⬢% 'v ;sށq * &i% C F =  PASS1L 1m߂Ab et  ڟsֿמփ ҂ٽ# Ώ·Ξk PASS1L     ćzF Pj F G PASS1L jP Š }‹ y iPASS1L cvX YZk ! { lk n mji `f jPASS1L YZY Y  SV P 6 '  @ bPASS1L  '&‡* L' L' !% Lj  YPASS1L ``Ϳ_  񾠆 ン܆چ뾗؆ LBPASS1L  Y < 6  w +h   APASS1L qhkY  vXZ   PASS1L  Ò QÑQ8 Yb_` R1PASS1L P1T:  ᆂ  Y Fz xwpt  ̓Bȃ   PASS1L ҃σ  A  PASS1L    { ۋقُ7`PASS1L    6 ޹w u A  Yއދ݇  PASS1L ӆOi Ϳџ{  Ȃȿʟy  ȄWPĽ# \2n PASS1L  j@   **PASS1L ** EXPECTING LABEL NON E FOUND **** DUPLI CATE LABEL **** EXPEC TING VALUE NOPASS1L NE FOUND   **** VALUE NOT NUMER IC **** EXPECTING A C OMMA NONE FOUND ****PASS1L  VALUE NOT ENCLOSED IN ( ') **** LABEL UND EFINED **** VALUE TOO LARGE PASS1L **** SYNTAX ER ROR **** NO "STOP" O R "CHAIN" VERB DO Y OU WISH TO SUPRESS PASS1L LISTING N/Y  6 ENTER INPUT FILE NAME R ENTER PROGRAM FILE NAME SPASS1L TART END FILE ?ENTRY REDEFINES RESPASS1L UME WORDMARK FILE@ SPACE ZERO EDIT PASS1L TIME DATE  SAVE RESTORE PASS PASS1L RECEIVE STOP  CHAIN  FOR NEXT PASS1L IF GOTO GOSUB RETURN OPEN PASS1L CLOSE DELETE RENAME GET KILL PASS1L PUT  SYSRES INPUT OUTPUT OBTAIN PASS1L CONFIGURE SCREEN GETFILE PRINT DISK PASS1L WATCHDOG SLEEP LINK PRIORITY BEGIN MPASS1L OVE@ BINHEX READ JUSTIFY LOAD@ STO PASS1L RE@ IF@ SAVESTATUSDISKSTATUSELSE THEN PASS1L INPSTATUS GETMAIL PUTMAIL CHECKMAIL DEBUG PASS1L  MM/DD/YY HH:MM:SS   PAGE   SOURCE FILE = X XXXPASS1L XXXXXX BINARY FILE  = XXXXXXXXXX EJECT TITLE &LABELXTEMPPASS1L  PASS23TEMP  \ PASS1L  1  2 ( PASS1L PASS1L PASS1L PASS1L  8303201542 PASS1L 04830320154204820909173406PASS2E O0SEGMENTBLANK o im MACRO (F200) @ T: ZQ XPASS2E   ABW '# W#W'#PASS2E  “)3Ǟ)3Ǜ›)3ǙYp@OYDFG5 #%PASS2E \]R I^  DŽPaWĽ#\ OP PASS2E U Ny *b ^   ( =I dAPASS2E T  TUPd]d%   -hDW[ p߃ԃكi ( H rPASS2E ʾ[[\`W W (A aS ȃM (Z LFJF @ ,PASS2E = 9 ,۞;  - y "{ %'㈟xPPASS2E TQO\E9*&  ă  sW#GPASS2E W#Q X ]KM  ;CMPPASS3E  J PASS2E %v]BBB ‡ P LJ&   PASS2E = : / 'A V  ć6? 9 #ߓ Aߗ .ߓà #ߋPASS2E Q PMVSUNWTZRXY3) l 'mjh 2b 'HPASS2E \A D$ = + - * /_ݢ%'+ - ٞPASS2E nQO Cޞ  A J Ճ ޼ p%'޸i ƞ|PASS2E %'w ;tߺq  %'ޡޜw  p`l C F? =  PASS2E 1ޅl  dTU P PASS2E  eM\  ޟW # KND  PASS2E SÂGAMv :  { - , x%+$D   PASS2E     쾁l      s ܆  ӇPASS2E ҂ο  HAW/PȽ# # /PASS2E Lq1Ƃ  NKq m x  L PASS2E ZF = ! W P#  Az PASS2E  Fz xwmt    yA q{zywP PASS2E gaVS[Z ߆dGPASS2E M x I žQQ)3—% G+ H+ Hލw'W P#PASS2E ҟ[   ؾVXWI  ~Bʃ҂ŏ PASS2E   珰Aтↇ   PASS2E  { ̊ʂʎ; 5UTB_\E #    PASS2E A  SևދՇ   ˆUi Iž { WP#E \@PASS2E Wn \ .  **** EXPECTING LABEL NON E FOUNPASS2E D **** TO MA NY ENTRIES PER LINE.  **** VALUE NOT ENCLOSED IN (') PASS2E   **** SYNTAX ERROR   **** FIELD TYPE ERROR  COMPILE ABORTED IN PASS 2 PASS2E START END FILE REDEFINES RESUME PASS2E WORDMARK TITLE LINK FILLER EJECT FIPASS2E LE@  SPACE ZERO  EDIT TIME  DATE PASS2E ST OP CHAIN  MOVE@ BINHEX  SAVE REST ORE PASS2E PASS  RECEIVE SLEEP  WATCHDOG PRIORI TY BEGIN PASS2E JU STIFY STORE@  LOAD@ IF@  SAVESTATUSDISK SPASS2E TATUSREAD  FOR =  TO STEP  NEXTPASS2E IF LT 8 LE 8EQ  8ANE 8GT PASS2E  8AGE 8A GOTO  ELSE  THEN GOSUB  PASS2E ENTRY RE TURN GETFILE  OPEN INP  0OUT 0PASS2E CLOS E DELETE  RENAME GET  KILL PUT  PASS2E SYSRES RN M 0BDISK  SEQ 0ISQ  0INX PASS2E 0IXO  0 ISX 0  SRT 0LST  0!PRT 0PRTI PASS2E  0CLR 0IT Z 0 RAN 0 GLB 0 PLB  0 + PASS2E @-  @* @ / @SQRT   PAND XOPASS2E R  XXOR XSH IFTL XSHIFTR X INPUT OUTPUT   PASS2E OBTAIN CONF IGURE PRINT  SCREEN INPSTATUS  GETMAIL PASS2E PUTMAI L CHECKMAIL DEBUG &LABEL2TEMPPASS2E  PASS3 TEMP &PASS2E 2  x( T1SPOOL x < PASS2E PASS2E  83032015420483032015PASS2E 4204820909173406PASS2L O0SEGMENTBLANK oim MACRO (F200) @ P1T: ZQ XPASS2L |  A W#W'# Ž)3Ǘ–)3ǔPASS2L Yp@|DDP NGH= R DŽP PASS2L fWĽ#c PP [ Ty *b ^ PASS2L  ( =I dA T  ?@;OFM r < RQPASS2L -BF p߃ԃكi ( H r ʾ[[\`W W (A aS ȃMPASS2L (Z LFJF @ ,= 9 ,۞;  - yPASS2L "{ ⌢%'㈟xP?<:G"t  ă PASS2L  sW#GW#Q X ]6PASS2L 8 t ;CMPPASS3L   <_F B|B Ç P PASS2L ȇ&    = : / 'A V Ň6?PASS2L 9 #ߔ 'Aߗ .ߓà #ߋP ;8A>@9B?E=CDr PASS2L l 'mjh 1b 'G\A C# = + - * /_PASS2L %'+ - ؞n<:p C۞ A I PASS2L ҃  q %'޸j Ğ| %'w ;t߸q  %'ޡޜw PASS2L  p`l C F@  =  1ޅl  PASS2L O?@r P  gM^  ޟW PASS2L # MNF  SÂIAMv    { / . xPASS2L  -       쾁l   PASS2L   s ܆  ԇӂο  HAW/PȽ# PASS2L # /Lq1Ƃ  NKq m PASS2L x    ,O  ! W PPASS2L # ڟ Az  Fz xwmt    yA PASS2L  q{zywP gLA>FE 잇랅ꞃPASS2L  较征c KP $ Kw ھtXWҟ  ̃~B҃PASS2L ΃Ç  폲AՂ膇  NPASS2L   { ҂ҋЂЏɟ; N     4PASS2L 8COQ  A  O؇ދׇ  ͆i IPASS2L Ǿ{ DŽWPý#? \ n @\ @.PASS2L   **** EXPECTING LABEL NON E FOUND **** TO  MANY ENTRIES PER LINE PASS2L   **** VALUE NOT ENCLOSED IN (')   **** SYNTAX ERROR   **PASS2L ** FIELD TYPE ERROR  R COMPILE ABORTED IN PASS 2 START END PASS2L FILE REDEFINES RESUME WORDMARK TITLE  PASS2L LINK FILLER EJECT FILE@  SPACE PASS2L ZERO   EDIT TIME  DATE ST OP CHAIN PASS2L  MOVE@ BINHEX  SAVE REST ORE PASS  RECEIVEPASS2L SLEEP  WATCHDOG PRIORI TY BEGIN JU STIFY STORE@PASS2L  LOAD@ IF@  SAVESTATUSDISK STATUSREAD  FOPASS2L R =  TO STEP  NEXT IF LPASS2L T 8 LE 8EQ  8ANE 8GT  8AGE 8APASS2L  GOTO ELSE  THEN GOSUB  ENTRY RE TURN PASS2L GETFILE  OPEN INP  0OUT 0CLOS E DELETE PASS2L  RENAME GET  KILL PUT  SYSRES RN M PASS2L 0BDISK  SEQ 0ISQ  0INX 0IXO  0 ISX PASS2L 0  SRT 0LST  0!PRT 0PRTI  0CLR 0ITPASS2L Z 0 RAN 0 GLB  0 PLB  0 + @-  @PASS2L * @ / @SQRT  PAND XOR   XXOR XPASS2L SH IFTL XSHIFTR X INPUT OUTPUT  OBTAIN CONF IGURPASS2L E PRINT  SCREEN INPSTATUS  GETMAIL PUTMAI L CHECKMAPASS2L IL DEBUG &LABEL2TEMP PASS3 TPASS2L EMP &2  x( PASS2L PASS2L  #PASS2L PASS2L PASS2L PASS2L PASS2L PASS2L PASS2L PASS2L PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E #PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E  PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E PASS3E  #PASS3E PASS3E PASS3E PASS3E PASS3E PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L #PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS3L PASS4E PASS4E PASS4E #PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E #PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4E PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L  PASS2L PASS2L  83032015420483032015PASS2L 4204820909173406PASS3E O0SEGMENTBLANK o 6im MACRO (F200) @ T: 6 ZQ X PASS3E  B߂ބW'ܽ#ك Ä́W'ѽ#΂τWν# )3ǼN PASS3E Ƨ)3 )3Yp@ Iy T P R PW#PASS3E   чe\[f] >PASS3E e^a` 6 ,  ޜ ,TW P# XPASS3E Fރ߄d   6+٦΂  ֢%'PASS3E l ͢ %'   ޼e+ %' ( ++ %' + PASS3E  fޡ%'%' A:AQ. + + 㙟* & PASS3E 1[ mp fi  {`yw PASS3E {蟂,V  +6VY@L LLLLL L L`Ň`>+PASS3E a3Zɞy '6ƀ R+p+ Kj+Ey ( D -?-GPASS3E -qqqPASS3E q8988PASS3E 8888PASS3E 880PASS3E / @PASS3E @ //V PASS3E  0( 0HPASS3E ( ( ( 0"( PASS3E ( 0( 0 0 PASS3E ( 0  0!( 0! PASS3E 0"& K& /((PASS3E (]()^(*_#PASS3E $%(+_&RPASS3E S-',& PASS3E   / (PASS3E (@( PASS3E -1-2-3-PASS3E 4--PASS3E HI--PASS3E 0-ABC-PASS3E D-8EF-J&PASS3E P:/N-O(P(PASS3E Q/MAPASS3E PASS3E  8303201542PASS3E 04830320154204820909173406 PASS3L O0SEGMENTBLANK o im MACRO (F200) @ P1T: ZYp@Q XPASS3L  AW'#W# )3N ӧ)3 كهPASS3L ًهֿ؃؇؃؇Iy T P R ΄PW˽# Ƚ ƃ ˇ€ PASS3L  ޜ , WP#  XFރߢd GPASS3L  s  wFGPASS3L  [+צ΂  Ԣ%'l  %'޿  ޺PASS3L e+ %' ( ++ %' + fޟ%'% 'A:AQ. +PASS3L  +*   nq gjPASS3L   {ayw {蟂G~  +6VY@L LPASS3L LLLL L L`Ň`+a4Zɞy (6ƀ R+p+ Kj+EPASS3L y ( D PASS3L ?GXPASS3L XXX89PASS3L 8888PASS3L 888PASS3L 8PASS3L  @@ PASS3L G PASS3L  0 0H  PASS3L  0"  0PASS3L  0 0  0  PASS3L 0! 0! 0" PASS3L K /((D()E PASS3L (*F#$%PASS3L (+F&RSPASS3L ',   PASS3L  @PASS3L 1PASS3L 234PASS3L HIPASS3L 0APASS3L BCD8EPASS3L FJP:N PASS3L OPQM)PASS3L PASS4E @PASS4PE: 07/11/83 PASS 4 OF COMPILET:>P  PASS4E T:>  n  DEC BIN ALNUPRGMSUBRFILE FLT MEMF3 0PASS4E NAME NAME \PCKBINTEMP0 0 PASS4E lSPOOL x[FLPL(PASS4E IN PROGRESS PASS4E **LL\lЀ܀ PASS4E '  &d,28>DJPASS4E PV/\\hntzPASS4E )€BAD BINARY DATA, PACK BINARY ABORTEDPASS4E $[xBAD BINARY DATA, PACK BINARY ABORTED %DISK ERROR STATUS = " PACPASS4E K BINARY ABORTED:E R[-LABEL NAME  TYPE BYTE WORD LENG BLKA ARYL PASS4E `--LABEL NAME  TYPE BYTE WORD LENG BLKA ARYL -Ȁ7΀.-. PASS4E " ` =$BG$L,Q(VPASS4E .ERROR COUNT = 8 ENTER M = MASTER S = SPOOL UTILITY J%S tM zPASS4E UTILRTNPRC ;CMPB2  ;CMPE3    #*UUuUPASS4E /6;?FKPSV[`ejmpsuUUUUUUUUUUPASS4E    %,35;>@AUUUUUUUUUUPASS4E HJOTWY\_abglqv{UUUUUUUUUUPASS4E   #).36;DMRT[^acfmtv{}~UUUUUUUUUU PASS4E  "&*/38=ADHKUUUUUUUUUUPASS4E NQW\chovyUUUUUUUUUUPASS4E $(+258;;=;?ACE0G;&KVXA/Z]CUUEUAPASS4E \_E/bEbEdfd\FiknQAPPPASS4E 8hqhknitw bzk|.y.G@PPASS4E fnh.hv bhtG_G_Gh_- DQ@QEPASS4E  8 %Gh--.UTEPQPASS4E hh-G-G_G-nJ G_-GTDQEDUDPASS4E n-JGn G-J-G-GQDEQEDPASS4E _Gn5Q!-G-8nQQEDETQ PASS4E *.hnhhA02h-EadGhn0DDQEQPASS4E _7<-88Gn5G_G5.G.GQTE@TPASS4E ..n.tAFI btb?PTE@PPASS4E ?k.Gk.nJ8n..DQDQPTPASS4E n?kA_X\88kQ8PQAQDPASS4E 88kQG_G_GnGG_GAQDQEQPASS4E  bEEGvb Ef.nbEA@Q@QQ@PASS4E n.Gkruksu.n}A_vzGPTPQAQDPASS4E GG_kkGpmQDQP@TADPASS4E .n88.n.nPTDQ@PASS4E G_G_ EddGnG8.nQEAETPASS4E  EdbEb&obDQDAPASS4E Z %S ZFhh&o'?A*;AAAEPEPASS4E Z,v Z.G-Ib- Z ZndAA@PPPASS4E _hj;lnpA_._AAvQPDDEPASS4E nyAn8ny|GyGyy DQEQEPASS4E y8n8n_A]@TPTQDQDPASS4E hA_.j-hnIj- ZdghA_QDQ@UQPASS4E I Z;>\&o_&$?DAAAQPPASS4E ?A?ZA_&EEDA PASS4E PASS4L @PASS4PL: 07/11/83 PASS 4 OF COMPILE[P1T:'  PASS4L [P1T:' } DEC BIN ALNUPRGMSUBRFILE FLT MEMFNAME 0 PASS4L NAME \PCKBINTEMPl>LL03  PASS4L (6<PASS4L IN PROGRESSBL\b\lp|PASS4L  ' ƀd̀PASS4L Ҁހ/\PASS4L  &,28>D)JPV\bChBAD PASS4L BINARY DATA, PACK BINARY ABORTEDn$DISK ERROR STATUS =  PACK BINARY ABOPASS4L RTEDLABEL NAME  TYPE BYTE WORD LENG BLKA ARYL -LABEL NAME  TYPE BY  PASS4L TE WORD LENG BLKA ARYL -.74.-." `RX^PASS4L  d=$BG$L,Q(VUTILRTNPRC ;CMPB2 PASS4L  KTVZ^afkoqv{UUUUUUUUPASS4L    "'),.1468=?BDGIKMORTVY\_achUUUUUUUUUUPASS4L jloqvy{UUUUUUUUUUPASS4L  #%,38=DFKPU\^adgjmpuy~UUUUUUUUUUPASS4L  "%(+-27>EKOSWY]_aUUUUUUUUUUPASS4L djnqux{~  UUUUUUUUUUPASS4L !$0&*/,/.1d"QPEQAPASS4L ,464\F9;>88A8;>9D@EPASS4L DG ,J;L.IRO.OO6>8.8F ,@AQEPASS4L 8OsDXGZ1G]1G81 `|~8`TPQDUuUPASS4L c` `G8fzz.8`8zGZ`zGQuTDDDPASS4L i1Gl`>oolzGi1Gl`>oolQDQDQQTPASS4L zGi>GirzGu`zGx1Gl`>oolEDDEQDE PASS4L zGl`8`{`>oolz.8>88A~QDEQQPASS4L a84G8>x18`8`{E@DADPASS4L `Gx>Gx1G`.Z..Z.>.WEEApTPASS4L DA ,D,;a.DPQTPASS4L ;j.Z>Z8u>.urZ.u>u;QT@TDT PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L PASS4L  PASS4L  PASS4L  PASS4L  PASS4L  PASS4L  PASS4L  PASS4L  PRTSPL  PRTSPL  PRTSPL PRTSPL PRTSPL PRTSPL PRTSPL PRTSPL  PRTSPL  PRTSPL     PASS4L A188`;88`{8APTQAPTPASS4L ;G1G1Go>GG1G ,QQEQ@PPPASS4L GF, 6.>,>.;P@TPPASS4L ;.>A1GGG1;ETDQQTPASS4L ;o.o>o8r8PUQT PASS4L .>{ .>G1G1o AQEEEPASS4L 44Go>G8r.>{ DQDDQ@PASS4L 4,,"&"F88&EQPDQTPASS4L ''s>18E!#A1+,.1PQDA@E\PASS4L A-5A).3>,A>068>,//6G,26EEDDQ PASS4L G,{57, ,9;98988>:8><@TwUQAQEPASS4L 1>DA?H'8>''?&'g#'?2EEUUEPASS4L gGKJA1IJRYAAQ@PRTSPL @PRTSPL: 07/11/83PRINT SPOOL FILE xP1DNLPRTSPL xP1DNL : T#SPOOL VQUQUL00  PRTSPL P  n T Z h(tzD PRTSPL Y S Px dOUTILPRTSPLPRTSPL PF UTILLOGERR   ")+-2UUUUUPRTSPL 5:CFH#'*2|!'* /'42~TEPPTPRTSPL %74=:':ADFI':ALNL7:AQQAEAEA PRTSPL NL:@S AW AZ'+^aETPADQPPRTSPL NAL'c+'S+F Feo@v'DQADDTPRTSPL +^aFAITE! 5450)5491355323557335614 35655356813 !)5041#5042#5043#5044#5045 #5046 #5047 #5048 #5049 #5050#5051#5052#5053#5054#5055#5056#5057#5058#5059#5060$5061$5062$5063$5064$5065$5066$5067$5068$5069$5070$5071$5072$5073$5074$5075 $5076 $5077 $5078 $5079 $5080$5081$!)!5000"5001"5002"5003"5004"5005"5006"5007"5008"5009"5010"5011"5012"5013"5014"5015 "5016 "5017 "5018 "5019 "5020"5021"5022"5023"5024"5025"5026"5027"5028"5029"5030#5031#5032#5033#5034#5035#5036#5037#5038#5039#5040#!)5082$5083$5084$5085$5086$5087$5088$5089$5090%5091%5092%5093%5094%5095%5096%5097%5098%5099%5100%5101%5102%5103%5104%5105 %5106 %5107 %5108 %5109 %5110%5111%5112%5113%5114%5115%5116%5117%5118%5119%5120&5121&5122&!)5123&5124&5125&5126&5127&5128&5129&5130&5131&5132&5133&5134&5135 &5136 &5137 &5138 &5139 &5140&5141&5142&5143&5144&5145&5146&5147&5148&5149&5150'5151'5152'5153'5154'5155'5156'5157'5158'5159'5160'5161'5162'5163'))5164'5165 '5166 '5167 '5168 '5169 '5170'5171'5172'5173'5174'5175'5176'5177'5178'5179'5180(5181(5182(5183(5184(5185(5186(5187(5188(5189(5190(5191(5192(5193(5194(5195 (5196 (5197 (5198 (5199 (5200(5201(5202(5203(5204("  "FILENAME" 5001  5002 INCLUDE LIBRARY 5003  5004" 5005\L4  5006 GET_MESSAGE DECODE DISK ERROR STATUS  5007 INPUT_BEEP BEEP UNTIL OPERATOR RESPONDS 5008 FILE_CONTROL_BLOCK  DESCRIPTIVE BREAKDOWN OF FCB 5009 " PROC_LINKAGE REQUIREMENTS FOR A PROC PGM 5010 GET_PARAMS  GET PARAMETERS FROM PROC FILE 5011 INPUT_KEYS INPUT KEYS & GET NEAREST MATCH  5012 * UNIT_TABLE_POINTER BASEPAGE POINTER TO DISK UNIT TABLES 5013 * GET_VOLSER  GET DISK VOLUME SERIAL 5014"\9 * REQUIRE CHANGES AS DOCUMENTED WHEN CONVERTING BETWEEN LSI-2 AND LSI-4 5015\1 *** "FILENAME" *** 5016\2 GET_MESSAGE  5017\0 5018\9  PAGE"PAGE" GET_MESSAGE 5019"GET_MESSAGE 5020  5021* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  5022* * 5023* GET_MESSAGE: DECODE DISK STATUS * 5024#* * 5025* SAVESTATUS S  * 5026* GOSUB GET_MESSAGE *  5027* * 5028* ON RETURN, MESSAGE = DISK ERROR MESSAGE * 5029# * * * * * * * * * * * * * * * 5031  5032S 2,0 5033TEMP_S 2,0  5034#END_OF_FILE 2,3 5035DISK_FULL 2,4  5036ERROR_HEADER 79  5037 REDEFINES ERROR_HEADER 5038 FILLER 40,'FILE NAME UNIT ' 5039 # FILLER 39,' SEC HD CYL OPERATION' 5040G_M_BUFFER 79  5041 REDEFINES G_M_BUFFER  5042 FILLER 15 5043MESSAGE 26  5044# RESUME 5045*  5046GET_MESSAGE ENTRY  5047 DISKSTATUS S,G_M_BUFFER 5048 RETURN GET_MESSAGE  5049#*/$ 5050DISK_ERROR  5051*  5052ERROR_HEADER 70 5053 REDEFINES ERROR_HEADER  5054$ FILLER 40,'FILE NAME UNIT ' 5055 FILLER 30,' SEC HD CYL OPERATION' 5056MESSAGE 70  5057 RESUME 5058*/$  5059$  5061\9 PAGE"PAGE" INPUT_BEEP 5062INPUT_BEEP 5063  5064$* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5065*  * 5066* INPUT_BEEP: BEEP UNTIL OPERATOR RESPONDS *  5067* * 5068* MAKE_NOISE = <'Y' TO BEEP, ELSE DON'T BEEP> * 5069 $* CURSOR = * 5070* GOSUB INPUT_BEEP  * 5071* *  5072* IF OPERATOR HITS , GO TO "ABORT" * 5073* IF OPERATOR HITS , RETURN FROM SUBROUTINE * 5074$* * 5075* ON RETURN, RESPONSE = OPERATOR'S SINGLE-CHAR * 5076* RESPONSE *  5077* MAKE_NOISE = 'N' * 5078*  * 5079$* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5080  5081CURSOR 2,0  5082MAKE_NOISE 1,'Y' 5083  5084%BINBEEP 2,:0007 ;ASCII CRTL-G 5085 REDEFINES BINBEEP  5086 RESPONSE 1  5087 BEEP 1 5088 RESUME  5089%  5091INPUT_BEEP ENTRY  5092* 5093 IF MAKE_NOISE EQ 'Y' THEN 5094% MAKE_NOISE = 'N' 5095BEEP_LOOP  5096 OUTPUT BEEP  5097 WATCHDOG BEEP_LOOP,100 5098 ELSE  5099 % 5100 INPUT ABORT,RTN_IB .123.CURSOR,RESPONSE 5101RTN_IB  5102 RETURN INPUT_BEEP 5103  5104%*/$ 5105\2 FILE_CONTROL_BLOCK 5106\0  5107\9 PAGE"PAGE" FILE_CONTROL_BLOCK 5108FILE_CONTROL_BLOCK  5109% 5110* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5111* *  5112* FILE_CONTROL_BLOCK: DESCRIPTIVE BREAKDOWN OF FCB LAYOUT * 5113*  * 5114&* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5115  5116FILE_CONTROL_BLOCK START ;LENGTH = 76  5117 VTOC_PART START ;LENGTH = 46 INFORMATION RECORDED IN VTOC 5118 FILE_NAME  10 5119&  2,0 5121 ENDING_DATA_SECTOR 2,0  5122 ENDING_DATA_EXTENT 2,0 5123 FILE_PROTECT  2,0 5124& CYLINDER_COUNT 2,0 5125 FILE_TYPE  2,0 ;NONZERO = INDEX ONLY FILE 5126 LOGICAL_RECORD_LENGTH 2,0  5127 LOGICAL_KEY_LENGTH 2,0 ;LENGTH OF CONCATENATED KEY FIELDS 5128 KEY_FIELD  2(5) ;KEY FIELDS IN RECORD: LENGTH, OFFSET 5129 & CREATION_DATE 8 5130 END VTOC_PART  5131 CURRENT_DATA_SECTOR 2,0  5132 CURRENT_DATA_EXTENT 2,0 5133 CURRENT_DATA_RECORD 2,0 5134& CURRENT_INDEX_SECTOR 2,0 5135 CURRENT_INDEX_EXTENT 2,0 5136 CURRENT_INDEX_RECORD 2,0  5137 OPEN_FLAG 2,0 ;NONZERO = OPEN 5138 DRIVE_UNIT 2,0 5139& STARTING_VTOC_EXTENT 2,0 5140 KEY_BUFFER 2(5) ;KEY FIELDS IN BUFFER: LENGTH, OFFSET 5141 BUFFER 2,0 ;ADDRESS OF PROGRAM RECORD BUFFER  5142 END FILE_CONTROL_BLOCK 5143  5144'*/$ 5145\2  PROC_LINKAGE 5146\0  5147\9 PAGE"PAGE" PROC_LINKAGE 5148PROC_LINKAGE  5149' * * * * * * * * * * * * * * * 5151* *  5152* PROC_LINKAGE FRI 17 JUL 81 * 5153*  * 5154'* PROVIDES INITIAL LINKAGE NEEDED FOR A PROGRAM * 5155* WHICH CAN BE RUN BY A PROCEDURE FILE. * 5156* SHOULD BE FIRST EXECUTABLE STATEMENT OF PROGRAM. *  5157* * 5158* ON DROP-THROUGH:  * 5159 '* IF PROC1 NE 0 (THEN CALLED BY PROC) * 5160*  * 5161* PROGRAM TERMINATION ("SAVE" STATEMENT NEEDED *  5162* ONLY IF SAVE AREA HAS BEEN DESTROYED): * 5163*  * 5164'* IF PROC1 NE 0 THEN * 5165* SAVE PROC_FILE,PROC_BUFFER,PARAMETERS,RETURN_PROGRAM * 5166* CHAIN RETURN_PROGRAM *  5167* ELSE * 5168*  * 5169'* * 5170* * * * W A R N I N G * * * * 5171* *  5172* ANY GET OR PUT STATEMENT TO PROC_FILE *MUST* SPECIFY * 5173* THE RECORD BUFFER BEING READ OR WRITTEN (PROC_RECORD) * 5174(* * 5175* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5176  5177WORDMARK 5178  5179(  5181 END TERMINAL  5182 5183PARAMETERS START  5184( ALPHA 10(20) 5185 BIN 2(20)  5186 END PARAMETERS  5187 5188PROC_RECORD START  5189 ( PROC_BUFFER 80 5190 LINE_N 4.0,' '  5191 LINE_N_B 2  5192 END PROC_RECORD 5193  5194(RETURN_PROGRAM 10 5195  5196PROC_FILE FILE,'PROC::::',0,PROC_RECORD,LINE_N,LINE_N_B  5197 REDEFINES PROC_FILE 5198 PROC1 2,0  5199( FILLER 58 5200 PROC_UNIT 2,0  5201 RESUME  5202 5203EJECT  5204* SAVESTATUS BIN_TERM 5205 RESTORE PROC_FILE,PROC_BUFFER,PARAMETERS,RETURN_PROGRAM 5206 LOAD@ 1,BOX1  5207 5208*/$  5209) 5215*5216*5217*5218*5219*5220*5221*5222*5223*5224*5225 *5226 *5227 *5228 *5229 *5230*5231*5232*5233*5234*5235*5236*5237*5238*5239*5240+5241+5242+5243+5244+5245+))5246+5247+5248+5249+5250+5251+5252+5253+5254+5255 +5256 +5257 +5258 +5259 +5260+5261+5262+5263+5264+5265+5266+5267+5268+5269+5270,5271,5272,5273,5274,5275,5276,5277,5278,5279,5280,5281,5282,5283,5284,5285 ,5286 , ))5287 ,5288 ,5289 ,5290,5291,5292,5293,5294,5295,5296,5297,5298,5299,5300-5301-5302-5303-5304-5305-5306-5307-5308-5309-5310-5311-5312-5313-5314-5315 -5316 -5317 -5318 -5319 -5320-5321-5322-5323-5324-5325-5326-5327-))5328-5329-5330.5331.5332.5333.5334.5335.5336.5337.5338.5339.5340.5341.5342.5343.5344.5345 .5346 .5347 .5348 .5349 .5350.5351.5352.5353.5354.5355.5356.5357.5358.5359.5360/5361/5362/5363/5364/5365/5366/5367/5368/))5369/5370/5371/5372/5373/5374/5375 /5376 /5377 /5378 /5379 /5380/5381/5382/5383/5384/5385/5386/5387/5388/5389/5390053910539205393053940539505396053970539805399054000540105402054030540405405 05406 05407 05408 05409 03)541005411054120541305414054150541605417054180541905420154211542215423154241542515426154271542815429154301543115432154331543415435 15436 15437 15438 15439 15440154411544215443154441544515446154471544815449154502*  5211\9 PAGE"PAGE" GET_PARAMS 5212GET_PARAMS 5213  5214** * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5215*  * 5216* GET_PARAMS: THU 23 JUL 81 *  5217* * 5218* DECODE PARAMETERS IN PROC RECORD. * 5219 ** * 5220*  * 5221* [ PROGRAM_EXECUTING = ] *  5222* [ FIRST_COL = ] * 5223* [ MOUNT_VOL_SER = --Y/N> ] * 5225* GOSUB GET_PARAMS  * 5226* *  5227* * 5228* ON RETURN:  * 5229** MORE_PARAMS EQ 'N' => NO PARAMETERS FOUND; VALUES * 5230* OF ALPHA AND BIN UNDEFINED * 5231* MORE_PARAMS EQ 'Y' => ALPHA & BIN HAVE VALUES AS *  5232* IF JUST STARTED BY PROC * 5233*  * 5234+* MOUNT_VOLSER EQ 'Y' => DISK WITH REQUESTED VOL * 5235*  SER IS MOUNTED * 5236* (NOTE: IF THE STMT SPECIFIES MORE THAN ONE, *  5237* NO TEST IS MADE TO PREVENT OPERATOR FROM * 5238* REMOVING ONE DISK WHILE MOUNTING ANOTHER.) * 5239+ UE => NOT MOUNTED/DISK ERROR* 5241* BIN(I) NE BAD_VALUE => FOUND ON UNIT BIN(I) *  5242* WHERE BIN(I) CORRESPONDS TO THE VOL SER SPECIFIED * 5243* IN ALPHA(I)  * 5244+* * 5245*  * 5246* NOTES: *  5247* MUST FOLLOW: * 5248* *INCLUDE,'INCLUDELIB',,PROC_LINKAGE * 5249 +* * 5250* WHEN PROGRAM RETURNS TO PROC, IT *MUST* * 5251* *  5252* IF PROC1 NE 0 THEN * 5253* SAVE PROC_FILE,PROC_BUFFER,PARAMETERS,RETURN_PROGRAM * 5254+* CHAIN RETURN_PROGRAM * 5255* ELSE  * 5256* *  5257* PROGRAM MUST ALSO INCLUDE: * 5258* *INCLUDE,'INCLUDELIB',,INPUT_BEEP * 5259+* * 5260* USES THE EXTERNAL BINARY FIELD "S" FOR DISK STATUS* 5261* *  5262* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5263  5264,PROGRAM_EXECUTING 10,'GET_PARAMS' 5265FIRST_COL 2,1 ;COLUMN TO BEGIN SCANNING 5266MORE_PARAMS 1,'N'  5267MOUNT_VOLSER 1,'Y' ;HAVE OPERATOR MOUNT PACK IF NECESSARY WHEN 5268 ; @ SPECIFIED IN PROC STMT 5269,  5271SYSDATE START  5272 SYSMONTH 2 5273 FILLER 1  5274, SYSDAY 2 5275 FILLER 1  5276 SYSYEAR 2  5277 END SYSDATE 5278  5279 ,BAD_VALUE 2,32767 5280ASCII_ZERO 2,0  5281 REDEFINES ASCII_ZERO  5282 FILLER 1 5283 AZERO 1,'0'  5284, RESUME 5285REQ_VOLSER 8  5286SOURCE_COL 2,0  5287SAVED_COL 2,0 5288PARAMETER_N 2,0  5289,BASE 2,0 5290DIGIT 2,0  5291 REDEFINES DIGIT  5292 FILLER 1 5293 LAST_CHAR 1  5294- RESUME 5295BIN_VALUE 2,0  5296VALUE_TYPE 2,0  5297ALPHA_VALUE_COL 2,0 5298ALPHA_VALUE_SIZE 2,10 ;DIMENSION OF ALPHA_CHAR 5299-  5301 END ALPHA_VALUE  5302 5303 REDEFINES ALPHA_VALUE  5304- VOLSER_FIELD 8 5305 RESUME  5306  5307 REDEFINES PARAMETERS 5308 ALPHA_ARRAY 200  5309 - BIN_ARRAY 40 5310 RESUME  5311  5312 REDEFINES PROC_BUFFER 5313 SOURCE 1(80) 5314- RESUME 5315  5316VTOC_FILE FILE,'VTOC',0,PROC_RECORD  5317 5318 REDEFINES VTOC_FILE  5319- FILLER 60 5320 VTOC_FILE_UNIT 2,0  5321 RESUME  5322 5323*  5324.* 5325GET_PARAMS ENTRY  5326*  5327 MORE_PARAMS = 'N' 5328 ZERO BIN_ARRAY  5329.  5331 IF SOURCE(FIRST_COL) EQ '/' GOTO RTN_PROC_PARAMS  5332 MORE_PARAMS = 'Y' 5333 GOSUB DECODE_ESC  5334. SOURCE_COL = FIRST_COL 5335 FOR PARAMETER_N = 1 TO 20 5336 SAVED_COL = SOURCE_COL  5337 GOSUB GET_BIN_VALUE 5338 SOURCE_COL = SAVED_COL 5339 . GOSUB GET_FIELD 5340 ALPHA(PARAMETER_N) = ALPHA_VALUE 5341 GOSUB DECODE_VOLSER  5342 BIN(PARAMETER_N) = BIN_VALUE 5343 IF SOURCE(SOURCE_COL) EQ ' ' GOTO EXIT_PARAM_LOOP 5344. SOURCE_COL = SOURCE_COL + 1 5345 IF SOURCE_COL GT 80 GOTO EXIT_PARAM_LOOP 5346 NEXT  5347EXIT_PARAM_LOOP 5348 IF GET_NEXT_STMT EQ 'Y' GET PROC_FILE,EOF_PROC,SEQ,PROC_RECORD 5349. GOTO RTN_PROC_PARAMS 5350  5351EOF_PROC  5352 SAVESTATUS S 5353 IF S NE 3 GOTO PROC_DISK_ERR ;3 = END_OF_FILE 5354/ PROC_RECORD = '/* END OF PROCEDURE FILE' 5355  5356RTN_PROC_PARAMS  5357 RETURN GET_PARAMS 5358*  5359/  5361*  5362* DECODE ESCAPE SEQUENCES BEGINNING WITH '&' STARTING AT FIRST_COL 5363* ASSUMES SYSDATE HAS ALREADY BEEN SET TO THE SYSTEM DATE 5364/* 5365 FOR SOURCE_COL = FIRST_COL TO 79 5366 IF SOURCE(SOURCE_COL) EQ '&' THEN  5367 SAVED_COL = SOURCE_COL + 1 5368 LAST_CHAR = SOURCE(SAVED_COL) 5369 / IF LAST_CHAR EQ 'M' THEN 5370 MOVE@ SYSMONTH,SOURCE(SOURCE_COL),2 5371 SOURCE_COL = SAVED_COL  5372 GOTO NEXT_ESC 5373 ELSE  5374/ IF LAST_CHAR EQ 'D' THEN 5375 MOVE@ SYSDAY,SOURCE(SOURCE_COL),2 5376 SOURCE_COL = SAVED_COL  5377 GOTO NEXT_ESC 5378 ELSE  5379/ IF LAST_CHAR EQ 'Y' THEN 5380 MOVE@ SYSYEAR,SOURCE(SOURCE_COL),2 5381 SOURCE_COL = SAVED_COL  5382 GOTO NEXT_ESC 5383 ELSE  53840 IF LAST_CHAR EQ 'T' THEN 5385 MOVE@ TERMINAL,SOURCE(SOURCE_COL),2 5386 SOURCE_COL = SAVED_COL  5387 GOTO NEXT_ESC 5388 ELSE  53890  5391 NEXT  5392 RETURN DECODE_ESC 5393*  53940* 5395GET_FIELD ENTRY  5396*  5397* GET ALPHANUMERIC FIELD AND LEAVE IT IN ALPHA_VALUE 5398*  5399 0 SPACE ALPHA_VALUE 5400 ALPHA_VALUE_COL = 1  5401 FOR SOURCE_COL = SOURCE_COL TO 80  5402 LAST_CHAR = SOURCE(SOURCE_COL) 5403 IF LAST_CHAR EQ ' ' GOTO GET_FIELD_EXIT 54040 IF LAST_CHAR EQ ',' GOTO GET_FIELD_EXIT 5405 IF ALPHA_VALUE_COL LE ALPHA_VALUE_SIZE THEN 5406 ALPHA_CHAR(ALPHA_VALUE_COL) = LAST_CHAR  5407 ALPHA_VALUE_COL = ALPHA_VALUE_COL + 1 5408 ELSE  54090 NEXT 5410GET_FIELD_EXIT  5411 RETURN GET_FIELD  5412* 5413*  54141GET_BIN_VALUE ENTRY 5415*  5416* IF VALUE IS NOT VALID, BIN_VALUE = 0 AND VALUE_TYPE = BAD_VALUE  5417* 5418 ZERO VALUE_TYPE,BIN_VALUE 54191 RCE_COL) 5421 BASE = 8  5422 IF LAST_CHAR NE '0' THEN 5423 BASE = 10  54241 IF LAST_CHAR EQ ':' THEN 5425 BASE = 16  5426 SOURCE_COL = SOURCE_COL + 1  5427 ELSE 5428 ELSE  5429 1 5430 FOR SOURCE_COL = SOURCE_COL TO 80 5431 DIGIT = 0  5432 LAST_CHAR = SOURCE(SOURCE_COL) 5433 IF LAST_CHAR EQ ' ' GOTO BINARY_EXIT 54341 IF LAST_CHAR EQ ',' GOTO BINARY_EXIT 5435 IF LAST_CHAR GE 'A' DIGIT = DIGIT - 7 5436 DIGIT = DIGIT - ASCII_ZERO  5437 IF DIGIT GE BASE GOTO ERROR_GB 5438 IF DIGIT LT 0 GOTO ERROR_GB 54391 BIN_VALUE = BIN_VALUE * BASE 5440 BIN_VALUE = BIN_VALUE + DIGIT 5441 NEXT  5442 GOTO BINARY_EXIT 5443  54442ERROR_GB 5445 VALUE_TYPE = BAD_VALUE 5446 BIN_VALUE = 0  5447BINARY_EXIT 5448 RETURN GET_BIN_VALUE 54492  5451DECODE_VOLSER ENTRY  5452* 5453* ASSUMES ALPHANUMERIC FIELD IN QUESTION IS IN ALPHA_VALUE. 54542* IF NOT A VOL SER SPECIFICATION, BIN_VALUE IS UNCHANGED. 5455* IF DISK NOT MOUNTED AND MOUNT_VOLSER EQ 'Y', OPERATOR ASKED TO MOUNT IT. 5456* IF DISK NOT MOUNTED AND MOUNT_VOLSER EQ 'N', BIN_VALUE = BAD_VALUE.  5457* 5458 IF ALPHA_CHAR(1) EQ '@' THEN 5459 2 ZERO VALUE_TYPE 5460 BIN_VALUE = BAD_VALUE 5461 MOVE@ ALPHA_CHAR(2),REQ_VOLSER,8  5462 ALPHA_VALUE = REQ_VOLSER 5463 FOR ALPHA_VALUE_COL = 1 TO 8 54642 IF ALPHA_CHAR(ALPHA_VALUE_COL) EQ '?' THEN 5465 ZERO ALPHA_CHAR(ALPHA_VALUE_COL) 5466 ELSE  5467 NEXT 5468OPEN_VTOC_FILE  54692 DISK VTOC_FILE,PROC_DISK_ERR,CLR 5470 OPEN VTOC_FILE,NO_SUCH_DISK,INP,VOLSER_FIELD 5471 BIN_VALUE = VTOC_FILE_UNIT  5472 STORE@ 1,BOX1 ; RESTORE DISK CONTROL 5473 ELSE  54744RTN_VOLSER 5475 RETURN DECODE_VOLSER  5476  5477NO_SUCH_DISK 5478 SAVESTATUS S  54793 546125462254632546425465 25466 25467 25468 25469 2547025471254722547325474254752547625477254782547925480454814548245483454844548545486454874548845489454904549143)5492454934549445495 45496 45497 45498 45499 4550045501455024550345504455054550645507455084550945510555115551255513555145551555516555175551855519555205552155522555235552455525 55526 55527 55528 55529 5553055531555325 3)553355534555355553655537555385553955540655416554265543655446554565546655476554865549655506555165552655536555465555 65556 65557 65558 65559 655606556165562655636556465565655666556765568655696557075571755727557373)55747557575576755777557875579755807558175582755837558475585 75586 75587 75588 75589 7559075591755927559375594755957559675597755987559975600856018560285603856048560585606856078560885609856108561185612856138561483)5615 85616 85617 85618 85619 8562085621856228562385624856258562685627856288562985630956319563295633956349563595636956379563895639956409564195642956439564495645 95646 95647 95648 95649 9565095651956529565395654956559565695657956589565995660:5661:5662:5663:5664:5665:5666:5667:5668:5669:5670:5671:5672:5673:5674:5675 :5676 :5677 :5678 :5679 :5680:5681:4  ;14 = VOLUMN SERIAL NOT FOUND 5481 STORE@ 1,3 ; KEEP ALL BUFFERS CLEAR  5482 DISK VTOC_FILE,PROC_DISK_ERR,CLR 5483 OUTPUT .123.0.1,'HAVE OTHER TERMINALS RETURN TO THE MASTER MENU.' 54844 OUTPUT .1,'MOUNT DISK "',REQ_VOLSER,'" AND ENTER "R" WHEN READY:' 5485 CURSOR = 48  5486 SPACE RESPONSE  5487ASK_NO_SUCH 5488 GOSUB INPUT_BEEP 5489 4 IF RESPONSE NE 'R' GOTO ASK_NO_SUCH 5490 OUTPUT .123.0.1  5491 GOTO OPEN_VTOC_FILE  5492 ELSE 5493  54944PROC_DISK_ERR 5495 STORE@ 1,BOX1  5496 SAVE S,PROGRAM_EXECUTING,'F',PROC_FILE  5497 CHAIN 'UTILDSKERR' 5498  54994*/$ 5500\2  INPUT_KEYS 5501\0  5502\9 PAGE"PAGE" INPUT_KEYS 5503INPUT_KEYS  55045 5505* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5506* *  5507* INPUT_KEYS THU 30 JUL 81 * 5508*  * 55095  * 5511* *  5512* PROGRAM_EXECUTING = * 5513* K_FCB =  * 55145* GOSUB INPUT_KEYS * 5515* = K_FCB  * 5516* = K_BUF ;WARNING: LENGTH = 505 *  5517* * 5518* ON RETURN:  * 5519 5* RECORD_FOUND EQ 'Y' => K_BUF HOLDS RECORD. * 5520* RECORD_FOUND EQ 'N' => OPERATOR HIT ESCAPE. * 5521* VALUE OF K_BUF UNDEFINED. *  5522* * 5523* ON CRT:  * 55245* SCROLLS UP FROM BOTTOM OF SCREEN FOR INPUT. * 5525* RETURNS WITH LAST KEY ON BOTTOM LINE. * 5526* *  5527* USES EXTERNALLY DEFINED VARIABLES: * 5528* S 2,0 ;DISK STATUS * 55295* * 5530* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 5531  5532PROGRAM_EXECUTING 10,'INPUT_KEYS' 5533RECORD_FOUND 1,'N'  55346 5535MAX_KEY_LENGTH 2,25 ;LENGTH OF KEY(I), KEY1..KEY5, AND DOTS 5536KEY_INDEX 2,0  5537KEY_FIELD_LEN 2,0 5538DEC_KEY_INDEX 1.0  55396  5541K_BUF 505  5542KEY_BUF START 5543 KEY1 25  55446 KEY2 25 5545 KEY3 25  5546 KEY4 25  5547 KEY5 25 5548 END KEY_BUF  5549 6 5550 REDEFINES KEY_BUF  5551 INPUT_KEY 25(5)  5552 RESUME 5553  55546K_FILE FILE,'NAME',0,K_BUF,KEY1,KEY2,KEY3,KEY4,KEY5 5555K_FCB REDEFINES K_FILE  5556 FILLER 18  5557 KEY_FIELD 2(5) 5558 RESUME  55596 END K_FCB 5560  5561  5562INPUT_KEYS ENTRY 5563  55647 ZERO KEY_BUF,K_BUF 5565 RECORD_FOUND = 'N'  5566 FOR KEY_INDEX = 1 TO 5  5567 IF KEY_FIELD(KEY_INDEX) EQ 0 GOTO NO_MORE_KEYS 5568 KEY_FIELD_LEN = KEY_FIELD(KEY_INDEX) 55697 X_KEY_LENGTH KEY_FIELD_LEN = MAX_KEY_LENGTH 5571 DEC_KEY_INDEX = KEY_INDEX  5572 OUTPUT .123.0.1,'ENTER KEY FIELD #',DEC_KEY_INDEX 5573 MOVE@ DOTS,INPUT_KEY(KEY_INDEX),KEY_FIELD_LEN 55747 OUTPUT .123.23,INPUT_KEY(KEY_INDEX) 5575 ZERO INPUT_KEY(KEY_INDEX) 5576 INPUT RTN_INPUT_KEYS,NO_MORE_KEYS .123.23,INPUT_KEY(KEY_INDEX)  5577 OUTPUT .123.23,INPUT_KEY(KEY_INDEX) 5578 NEXT  5579 7 5580NO_MORE_KEYS  5581 OUTPUT .123.23,INPUT_KEY(KEY_INDEX)  5582 GET K_FILE,GET_NEAR_MATCH,INX,K_BUF,KEY1,KEY2,KEY3,KEY4,KEY5 5583 RECORD_FOUND = 'Y'  55847 GOTO RTN_INPUT_KEYS 5585  5586GET_NEAR_MATCH  5587 GET K_FILE,KEY_DISK_ERROR,SEQ,K_BUF 5588 RECORD_FOUND = 'Y'  55897 GOTO RTN_INPUT_KEYS 5590  5591KEY_DISK_ERROR  5592 SAVESTATUS S 5593 IF RECORD_FOUND EQ 'Y' GOTO KEY_ERROR_ABORT 55948 IF S NE 3 THEN ;3 = END_OF_FILE 5595KEY_ERROR_ABORT  5596 SAVE S,PROGRAM_EXECUTING,'F',K_FILE  5597 CHAIN 'UTILDSKERR' 5598 ELSE  55998  ;USED AS FLAG IF ERROR: GET LST ABORTED 5601 GET K_FILE,RTN_INPUT_KEYS,LST,K_BUF  5602 5603RTN_INPUT_KEYS  56048 RETURN INPUT_KEYS 5605  5606*/$  5607\2 UNIT_TABLE_POINTER 5608\0  5609 8\9 PAGE"PAGE" UNIT_TABLE_POINTER 5610UNIT_TABLE_POINTER  5611UNIT_TABLE_POINTER 2,:58 ;BASEPAGE POINTER TO UNIT TABLES  5612 ; :3A FOR LSI-2 5613  ; :58 FOR LSI-4 56148*/$ 5615\2  GET_VOLSER 5616\0  5617\9 PAGE"PAGE" GET_VOLSER 5618GET_VOLSER  56198 5620* * * * * * * * * * * * * * * * * * * * * * * * * * 5621* *  5622* GET_VOLSER THU 30 JUL 81 * 5623* GET DISK VOLUME SERIAL * 56249* * 5625* VTOC_UNIT = * 5626* GOSUB GET_VOLSER *  5627* * 5628* ON RETURN, VOLSER CONTAINS THE VOLUME SERIAL.* 56299 ...' * 5631* IF GOOD VOLSER FOUND, FILE VTOC HAS *  5632* BEEN OPENED FOR USE. * 5633*  * 56349* * 5635* *MUST* COME BEFORE ALL FIELD DEFINITIONS AND * 5636* EXECUTABLE STATEMENTS IN THE PROGRAM. *  5637* * 5638* TO USE WITH PROC_LINKAGE: * 5639 9* FIELD1 56 ;(FIRST FIELD IN PROGRAM) * 5640* * MORE FIELD DEFINITIONS * 5641* *INCLUDE,'INCLUDELIB',,PROC_LINKAGE *  5642* REDEFINES FIELD1 * 5643* *INCLUDE,'INCLUDELIB',,GET_VOLSER * 56449* * 5645* WHEN CONVERTING BETWEEN LSI-2 AND LSI-4, * 5646* CHANGE UNIT_TABLE_POINTER *  5647* * 5648* * * * * * * * * * * * * * * * * * * * * * * * * * 56499 5650VTOC_RECORD START  ;*MUST* BE FIRST FIELD IN PROGRAM 5651 FILLER 48  5652 DISK_PACK_LABEL 8 5653 END VTOC_RECORD  5654: 5655RESUME  5656  5657VTOC FILE,'VTOC',0,VTOC_RECORD 5658VTOC_FCB REDEFINES VTOC  5659:  5661 VOLSER 8  5662 FILLER 12 5663 VTOC_OPEN 2,0 5664: VTOC_UNIT 2,0 5665 FILLER 14 5666 RESUME  5667 END VTOC_FCB 5668  5669 :GOTO G_V_BYPASS 5670*  5671GET_VOLSER ENTRY  5672* 5673 VTOC_NAME = 'VTOC  ' 5674: OPEN VTOC,INVALID_VTOC,INP 5675INVALID_VTOC  5676 RETURN GET_VOLSER  5677 5678G_V_BYPASS  5679: 5680*/$  5681; ;C 41; 82; 125 ; 166; 207; 248C 251C ;) 42= 43= 44= 45= 46 = 47 = 48 = 49 = 50 = 51= 52= 53= 54= 55= 56= 57= 58= 59= 60= 61> 62> 63> 64> 65> 66> 67> 68> 69> 70> 71> 72> 73> 74> 75> 76 > 77 > 78 > 79 > 80 > 81> 82>;); 1< 2< 3< 4< 5< 6< 7< 8< 9< 10< 11< 12< 13< 14< 15< 16 < 17 < 18 < 19 < 20 < 21< 22< 23< 24< 25< 26< 27< 28< 29< 30< 31= 32= 33= 34= 35= 36= 37= 38= 39= 40= 41=;) 83> 84> 85> 86> 87> 88> 89> 90> 91? 92? 93? 94? 97? 98? 99? 100? 101? 102? 103? 104? 105? 106? 107? 108 ? 109 ? 110 ? 111 ? 112 ? 113? 114? 115? 116? 117? 118? 119? 120? 121? 122? 123@ 124@ 125@;) 126@ 127@ 128@ 129@ 130@ 131@ 132@ 133@ 134@ 135@ 136@ 137@ 138 @ 139 @ 140 @ 141 @ 142 @ 143@ 144@ 145@ 146@ 147@ 148@ 149@ 150@ 151@ 152@ 153A 154A 155A 156A 157A 158A 159A 160A 161A 162A 163A 164A 165A 166AC) 167A 168 A 169 A 170 A 171 A 172 A 173A 174A 175A 176A 177A 178A 179A 180A 181A 182A 183B 184B 185B 186B 187B 188B 189B 190B 191B 192B 193B 194B 195B 196B 197B 198 B 199 B 200 B 201 B 202 B 203B 204B 205B 206B 207B< <TITLE IN-CORE PROCEDURE PROCESSOR 1* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * 2* *  3* COREPROC: IN-CORE PROCEDURE PROCESSOR * 4*  * 5<* * 6* PERFORMS A PROCEDURE EXACTLY AS A PROCEDURE FILE IS PERFORMED, * 7* EXCEPT THAT IT IS HARD-CODED INTO AN ARRAY WITHIN THIS PROGRAM. *  8* ALSO, IT IS POSSIBLE DIRECTLY TO AN EXECUTABLE BINARY THAT IS * 9* NOT PROCABLE.  * 10 <* * 11* THE PROC STATEMENTS ARE ENTERED AS SUBFIELDS OF "STATEMENTS". * 12* THE SYNTAX IS EXACTLY THAT OF PROCEDURE FILES, WITH THE EXCEPTION*  13* THAT YOU MAY END THE LIST OF PROC STATEMENTS WITH A STATEMENT * 14* OF THE FORM '//CHAIN,PROGRAMNAM,UNIT' * 15<* * 16* ONLY SINGLE-LINE PROC CALLS MAY BE EXECUTED. * 17* THE LAST EXECUTABLE STMT MAY START ANOTHER IN-CORE PROC OR A *  18* PROCEDURE FILE OR MAY CHAIN TO AN EXECUTABLE BINARY. * 19* EACH STATEMENT MUST BE 80 CHARS LONG. * 20<* NOTE THAT "/*" *MUST* FOLLOW THE LAST PROC STATEMENT, UNLESS * 21* THE LAST PROC STATEMENT TAKES THE FORM '//CHAIN,PROGRAMNAM,UNIT'.* 22* *  23* "PROGRAM_EXECUTING" MUST BE SET TO THE NAME OF THE BINARY * 24* VERSION OF THIS PROGRAM (FILE NAME OR PROGRAM LIBRARY ENTRY). * 25=* * 26*  * 27* WAYS TO START AN IN-CORE PROCEDURE: *  28* * 29* . EXECUTE THE BINARY PROGRAM THROUGH THE MASTER MENU. * 30= =<* . START IT FROM WITHIN A PROGRAM: * 31* SAVE 0  ;BINARY ZERO * 32* CHAIN 'PROGRAMNAM' ;MUST BE FOUND ON SYSRES *  33* . START IT FROM THE *LAST* STATEMENT OF ANOTHER IN-CORE * 34* PROC OR FROM A PROC FILE: * 35=* //PROGRAMNAM MUST BE FOUND ON SYSRES * 36*  * 37* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * *  38* 39* DATA AREA  40 =* 41STATEMENTS START ;IN-CORE PROCEDURE STATEMENTS: 42  43FILLER 80,'* THIS IS A TEST OF IN-CORE PROCS (&M/&D/&Y). TYPE SOMETHING: $$$ ' 44FILLER 80,'* THIS IS MORE TEXT & MESSAGES TO BE DISPLAYED. TYPE 2 SPACES $$ ' 45=FILLER 80,'//UTILC2,,COREPROC,1,,0' 46FILLER 80,'*************** THAT''S ALL, FOLKS! ***************' 47  48* ONE OF THE FOLLOWING *MUST* FOLLOW LAST PROC STMT 49  50=FILLER 80,'/* END OF IN-CORE PROCEDURE' 51FILLER 80,'//CHAIN,VEWFIL:,1'  52END STATEMENTS  53 54REDEFINES STATEMENTS  55> PROC_STMT 80(2) ;ARRAY BOUNDS WILL BE CHECKED BY "// " SENTINEL 56 RESUME  57  58S 2,0 59END_OF_FILE 2,3  60> >=J 2,0 61SAVED_NAME 10  62EXECUTE_TYPE 1  63LAST_SOURCE 1 64LAST_B 2,0  65> REDEFINES LAST_B 66 FILLER 1  67 LAST 1  68 RESUME 69*  70 >* FILE AREA 71*  72PROGRAM FILE,'NAME',0,SAVED_NAME  73 REDEFINES PROGRAM 74 PROGRAM_NAME START 75> FILLER 4 76 LIB_NAME 6  77 END PROGRAM_NAME  78 FILLER 50 79 PROGRAM_UNIT 2,0  80> RESUME 81  82*INCLUDE,'INCLUDEUTL',,PROC_LINKAGE  83 REDEFINES PROC_FILE 84 FILLER 2  85? NEXT_STMT 2,0 86 RESUME  87*  88* 89* ** IMPORTANT ** SET "PROGRAM_EXECUTING" TO THE NAME OF THIS PROGRAM'S 90? ?>* ** IMPORTANT ** COMPILED BINARY FILE OR PROGRAM LIBRARY ENTRY. 91*  92 PROGRAM_EXECUTING = 'COREPROC: '  93 94 IF PROC1 NE 1 GOTO START_PROC 97? IF RETURN_PROGRAM NE PROGRAM_EXECUTING THEN 98START_PROC  99 PROC1 = 1  100 NEXT_STMT = 1 101 ELSE  102 ? 103 RETURN_PROGRAM = PROGRAM_EXECUTING 104 GET_NEXT_STMT = 'N'  105 DATE SYSDATE 106 OUTPUT .123.0.2  107? 108AGAIN  109 PROC_BUFFER = PROC_STMT(NEXT_STMT)  110 SOURCE_COL = 1 111 IF SOURCE(1) EQ '*' THEN 112? FIRST_COL = 2 113 GOSUB DECODE_ESC  114*  115* DECODE COMMENT 116*  117@ SPACE LAST_SOURCE 118 FOR SOURCE_COL = 1 TO 80 119 IF SOURCE(SOURCE_COL) EQ '$' THEN  120* 121* IF OPERATOR HIT TAB OR RETURN KEY, IGNORE FOLLOWING $'S 122@ @?* 123 IF LAST_SOURCE EQ '$' IF LAST_B EQ 0 GOTO TAB_RTN 124 ZERO RESPONSE  125 CURSOR = SOURCE_COL - 1 126 GOSUB INPUT_BEEP 127@ LAST = RESPONSE 128  129TAB_RTN  130 OUTPUT .123.SOURCE_COL 131 GOTO NEXT_COMMENT 132 @ ELSE 133 OUTPUT SOURCE(SOURCE_COL) 134NEXT_COMMENT  135 LAST_SOURCE = SOURCE(SOURCE_COL) 136 NEXT  137@ GOTO NEXT_PROC_STMT 138 ELSE  139 IF SOURCE(1) NE '/' THEN  140 OUTPUT PROC_BUFFER 141 GOTO SYNTAX_ERROR 142@ ELSE 143 FIRST_COL = 3  144 GOSUB DECODE_ESC  145* 146* DECODE PROC CALL STATEMENT 147A* 148 OUTPUT PROC_BUFFER  149 IF PROC_BUFFER EQ '/*' GOTO COMPLETED ;SENTINEL: END OF PROC 150 SOURCE_COL = 2 151 EXECUTE_TYPE = SOURCE(2) 152A A@ IF EXECUTE_TYPE NE '>' THEN 153 IF EXECUTE_TYPE NE '/' GOTO SYNTAX_ERROR 154 ELSE  155 SOURCE_COL = 3 156 GOSUB GET_FIELD  157A PROGRAM_NAME = ALPHA_VALUE 158 IF PROGRAM_NAME EQ 'CHAIN' THEN ; WANT TO CHAIN 159 SOURCE_COL = 9 ; GET PROGRAM NAME 160 GOSUB GET_FIELD 161 PROGRAM_NAME = ALPHA_VALUE ; GET PROGRAM NAME 162 A CHAINPROG = 100 ; SET TO CHAIN 163 ELSE  164 SYSRES PROGRAM  165 IF SOURCE(SOURCE_COL) NE ' ' THEN ;DEFAULT UNIT = SYSRES 166 SOURCE_COL = SOURCE_COL + 1 167A SAVED_COL = SOURCE_COL 168 GOSUB GET_BIN_VALUE 169 SOURCE_COL = SAVED_COL  170 GOSUB GET_FIELD 171 GOSUB DECODE_VOLSER 172A IF VALUE_TYPE EQ BAD_VALUE THEN 173 SOURCE_COL = SAVED_COL 174 GOTO SYNTAX_ERROR  175 ELSE 176 IF ALPHA_VALUE NE ' ' PROGRAM_UNIT = BIN_VALUE 177B IF CHAINPROG EQ 100 THEN 178 SAVE 0  179 CHAIN PROGRAM_NAME,PROGRAM_UNIT  180 ELSE 181 SOURCE_COL = SOURCE_COL + 1 182B BA ELSE 183*  184* MAKE SURE PROGRAM OR LIB IS THERE BEFORE TRYING TO EXECUTE IT.  185* PRESENCE OF PROGRAM IN LIB IS NOT TESTED. 186*  187B IF PROGRAM_NAME NE 'UTIL' THEN 188 SAVED_NAME = PROGRAM_NAME 189 IF PROGRAM_NAME EQ ';' SPACE LIB_NAME  190 OPEN PROGRAM,NO_PROGRAM,INP 191 PROGRAM_NAME = SAVED_NAME 192 B ELSE 193 FIRST_COL = SOURCE_COL 194 GOSUB GET_PARAMS  195 IF MORE_PARAMS NE 'Y' GOTO SYNTAX_ERROR 196*  197B* ERROR MESSAGE WILL BE DISPLAYED IF PROGRAM DOES A "CHAIN 'UTILRTNPRC'" 198* INSTEAD OF A "CHAIN RETURN_PROGRAM" LIKE IT SHOULD. 199*  200 PROC_BUFFER = '/**** ERROR: PROGRAM DIDN''T "CHAIN RETURN_PROGRAM"' 201*  202B* SAVE INDEX OF NEXT PROC STATEMENT IN PROC_BUFFER 203*  204 NEXT_STMT = NEXT_STMT + 1  205 SAVE PROC_FILE,PROC_BUFFER,PARAMETERS,RETURN_PROGRAM 206 OUTPUT .123.0.1  207D WATCHDOG EXECUTE,120 208 INPUT ABORT,ABORT RESPONSE 209 GOTO ABORT  210EXECUTE 211 IF EXECUTE_TYPE EQ '/' THEN 212C C) 208B 209B 210B 211B 212B 213D 214D 215D 216D 217D 218D 219D 220D 221D 222D 223D 224D 225D 226D 227D 228 D 229 D 230 D 231 D 232 D 233D 234D 235D 236D 237D 238D 239D 240D 241D 242D 243E 244E 245E 246E 247E 248E 249E 250E 251E C)5287 F5288 F5289 F5290F5291F5292F5293F5294F5295F5296F5297F5298F5299F5300G5301G5302G5303G5304G5305G5306G5307G5308G5309G5310G5311G5312G5313G5314G5315 G5316 G5317 G5318 G5319 G5320G5321G5322G5323G5324G5325G5326G5327GC)5328G5329G5330H5331H5332H5333H5334H5335H5336H5337H5338H5339H5340H5341H5342H5343H5344H5345 H5346 H5347 H5348 H5349 H5350H5351H5352H5353H5354H5355H5356H5357H5358H5359H5360I5361I5362I5363I5364I5365I5366I5367I5368IC)5369I5370I5371I5372I5373I5374I5375 I5376 I5377 I5378 I5379 I5380I5381I5382I5383I5384I5385I5386I5387I5388I5389I5390J5391J5392J5393J5394J5395J5396J5397J5398J5399J5400J5401J5402J5403J5404J5405 J5406 J5407 J5408 J5409 J)5410J5411J5412J5413J5414J5415J5416J5417J5418J5419J5420K5421K5422K5423K5424K5425K5426K5427K5428K5429K5430K5431K5432K5433K5434K5435 K5436 K5437 K5438 K5439 K5440K5441K5442K5443K5444K5445K5446K5447K5448K5449K5450LD DB STORE@ 0,BOX1 213 CHAIN PROGRAM  214 ELSE  215 BEGIN PROGRAM_NAME,PROGRAM_UNIT 216 NEXT_STMT = NEXT_STMT - 1 217D 218NEXT_PROC_STMT  219 NEXT_STMT = NEXT_STMT + 1  220 PROC_BUFFER = PROC_STMT(NEXT_STMT) 221 GOTO AGAIN  222 D* 223*  224NO_PROGRAM  225 OUTPUT .123.2,'^ *** PROGRAM NOT FOUND *** ' 226 GOTO PROGRAM_ERROR  227D 228SYNTAX_ERROR  229 SOURCE_COL = SOURCE_COL - 1  230 OUTPUT .123.SOURCE_COL,'^'.1 231 OUTPUT '>> IN-CORE PROCEDURE STATEMENT SYNTAX ERROR' 232D 233PROGRAM_ERROR  234 LINE_N = NEXT_STMT  235 OUTPUT ' AT PROC_STMT(',LINE_N,')'.1 236*  237E* 238COMPLETED  239 OUTPUT 'PRESS TO CONTINUE:'  240 CURSOR = 25 241COMP_INPUT  242E ED GOSUB INPUT_BEEP 243 GOTO COMP_INPUT  244  245*INCLUDE,'INCLUDEUTL',,GET_PARAMS 246*INCLUDE,'INCLUDEUTL',,INPUT_BEEP 247E 248ABORT  249 STORE@ 0,BOX1  250 STOP 251 EEEF  5691  5692 5693  5694F 5695  5696  5697 5698  5699 F 5700  5701  5702 5703  5704F 5705  5706  5707 5708SDUOSFGUIPOFGUIOF  5709F 5710G 5707 F5708 F5709 F5710FG VOLSER_FIELD 8 5305 RESUME  5306  5307 REDEFINES PARAMETERS 5308 ALPHA_ARRAY 200  5309 G BIN_ARRAY 40 5310 RESUME  5311  5312 REDEFINES PROC_BUFFER 5313 SOURCE 1(80) 5314G RESUME 5315  5316VTOC_FILE FILE,'VTOC',0,PROC_RECORD  5317 5318 REDEFINES VTOC_FILE  5319G FILLER 60 5320 VTOC_FILE_UNIT 2,0  5321 RESUME  5322 5323*  5324H* 5325GET_PARAMS ENTRY  5326*  5327 MORE_PARAMS = 'N' 5328 ZERO BIN_ARRAY  5329H  5331 IF SOURCE(FIRST_COL) EQ '*' GOTO RTN_PROC_PARAMS  5332 IF SOURCE(FIRST_COL) EQ '/' GOTO RTN_PROC_PARAMS 5333 MORE_PARAMS = 'Y'  5334H GOSUB DECODE_ESC 5335 SOURCE_COL = FIRST_COL 5336 FOR PARAMETER_N = 1 TO 20  5337 SAVED_COL = SOURCE_COL 5338 GOSUB GET_BIN_VALUE 5339 H SOURCE_COL = SAVED_COL 5340 GOSUB GET_FIELD  5341 ALPHA(PARAMETER_N) = ALPHA_VALUE  5342 GOSUB DECODE_VOLSER 5343 BIN(PARAMETER_N) = BIN_VALUE 5344H IF SOURCE(SOURCE_COL) EQ ' ' GOTO EXIT_PARAM_LOOP 5345 SOURCE_COL = SOURCE_COL + 1 5346 IF SOURCE_COL GT 80 GOTO EXIT_PARAM_LOOP  5347 NEXT 5348EXIT_PARAM_LOOP  5349H IF GET_NEXT_STMT EQ 'Y' GET PROC_FILE,EOF_PROC,SEQ,PROC_RECORD 5350 GOTO RTN_PROC_PARAMS  5351  5352EOF_PROC 5353 SAVESTATUS S  5354I IF S NE 3 GOTO PROC_DISK_ERR ;3 = END_OF_FILE 5355 PROC_RECORD = '/* END OF PROCEDURE FILE' 5356  5357RTN_PROC_PARAMS 5358 RETURN GET_PARAMS  5359I  5361DECODE_ESC ENTRY  5362* 5363* DECODE ESCAPE SEQUENCES BEGINNING WITH '&' STARTING AT FIRST_COL 5364I* ASSUMES SYSDATE HAS ALREADY BEEN SET TO THE SYSTEM DATE 5365*  5366 FOR SOURCE_COL = FIRST_COL TO 79  5367 IF SOURCE(SOURCE_COL) EQ '&' THEN 5368 SAVED_COL = SOURCE_COL + 1 5369 I LAST_CHAR = SOURCE(SAVED_COL) 5370 IF LAST_CHAR EQ 'M' THEN 5371 MOVE@ SYSMONTH,SOURCE(SOURCE_COL),2  5372 SOURCE_COL = SAVED_COL 5373 GOTO NEXT_ESC 5374I ELSE 5375 IF LAST_CHAR EQ 'D' THEN 5376 MOVE@ SYSDAY,SOURCE(SOURCE_COL),2  5377 SOURCE_COL = SAVED_COL 5378 GOTO NEXT_ESC 5379I ELSE 5380 IF LAST_CHAR EQ 'Y' THEN 5381 MOVE@ SYSYEAR,SOURCE(SOURCE_COL),2  5382 SOURCE_COL = SAVED_COL 5383 GOTO NEXT_ESC 5384J ELSE 5385 IF LAST_CHAR EQ 'T' THEN 5386 MOVE@ TERM,SOURCE(SOURCE_COL),2  5387 SOURCE_COL = SAVED_COL 5388 GOTO NEXT_ESC 5389J  5391NEXT_ESC  5392 NEXT 5393 RETURN DECODE_ESC  5394J* 5395*  5396GET_FIELD ENTRY  5397* 5398* GET ALPHANUMERIC FIELD AND LEAVE IT IN ALPHA_VALUE 5399 J* 5400 SPACE ALPHA_VALUE  5401 ALPHA_VALUE_COL = 1  5402 FOR SOURCE_COL = SOURCE_COL TO 80 5403 LAST_CHAR = SOURCE(SOURCE_COL) 5404J IF LAST_CHAR EQ ' ' GOTO GET_FIELD_EXIT 5405 IF LAST_CHAR EQ ',' GOTO GET_FIELD_EXIT 5406 IF ALPHA_VALUE_COL LE ALPHA_VALUE_SIZE THEN  5407 ALPHA_CHAR(ALPHA_VALUE_COL) = LAST_CHAR 5408 ALPHA_VALUE_COL = ALPHA_VALUE_COL + 1 5409J ELSE 5410 NEXT  5411GET_FIELD_EXIT  5412 RETURN GET_FIELD 5413*  5414K* 5415GET_BIN_VALUE ENTRY  5416*  5417* IF VALUE IS NOT VALID, BIN_VALUE = 0 AND VALUE_TYPE = BAD_VALUE 5418*  5419K TO BINARY_EXIT 5421 LAST_CHAR = SOURCE(SOURCE_COL)  5422 BASE = 8 5423 IF LAST_CHAR NE '0' THEN 5424K BASE = 10 5425 IF LAST_CHAR EQ ':' THEN 5426 BASE = 16  5427 SOURCE_COL = SOURCE_COL + 1 5428 ELSE  5429 K ELSE 5430  5431 FOR SOURCE_COL = SOURCE_COL TO 80  5432 DIGIT = 0 5433 LAST_CHAR = SOURCE(SOURCE_COL) 5434K IF LAST_CHAR EQ ' ' GOTO BINARY_EXIT 5435 IF LAST_CHAR EQ ',' GOTO BINARY_EXIT 5436 IF LAST_CHAR GE 'A' DIGIT = DIGIT - 7  5437 DIGIT = DIGIT - ASCII_ZERO 5438 IF DIGIT GE BASE GOTO ERROR_GB 5439K IF DIGIT LT 0 GOTO ERROR_GB 5440 BIN_VALUE = BIN_VALUE * BASE 5441 BIN_VALUE = BIN_VALUE + DIGIT  5442 NEXT 5443 GOTO BINARY_EXIT  5444L 5445ERROR_GB  5446 VALUE_TYPE = BAD_VALUE  5447 BIN_VALUE = 0 5448BINARY_EXIT  5449L L LLL