14 22FL SEG WHATGENS,867,SECT.FILE,,G262 7 22_= #LIS K0WHATGENS 13 23DW # FOR UGUG MEND M262 (WHATGENS COMMAND) 11 23YG SEGENTRY K1WHATGENS,START 11 24D6 SEGENTRY K2WHATGENS,SPENT 4 24XQ # 20 25CB # WHATGENS (WG) COMMAND - GIVEN AN ENTRANT DESCRIPTION AS %A, 19 25X2 # RETURNS HIGHEST AND LOWEST F.G.N. OF ANY ENTRANT MATCHING 16 26BL # THAT DESCRIPTION, IN FORMAT $3ZD^,^,3ZD$ . 4 26W= # 20 27*W # RESTRICTIONS - WORKTAPES AND WORKFILES NOT ALLOWED (COMMAND 19 27TG # IS POINTLESS IN THESE CASES, EXCEPT TO CHECK EXISTENCE), 18 28*6 # DIRECTORIES SIMILARLY (ALSO TECHNICALLY INCONVENIENT); 19 28SQ # MAGNETIC TAPE DESCRIPTIONS NOT ALLOWED IF A T.S.N., R.S.N. 19 29#B # OR R.P. IS INCLUDED, BUT HANDLED CORRECTLY OTHERWISE (THIS 20 29S2 # COULD BE RELAXED, BUT CODING EFFORT WOULD BE DISPROPORTIONATE 20 2=?L # TO USEFULNESS). SIMILARLY, A CHECK THAT ANY GIVEN QUALIFIERS 19 2=R= # WERE MATCHED WOULD BE A LOT OF EFFORT; TO AVOID MISLEADING 18 2?=W # USERS, ADJUNCTS ARE CHECKED FOR, AND ERROR ^AN ILLEGAL 20 2?QG # QUALIFIER HAS BEEN GIVEN^ OCCURS IF ANY QUALIFIERS AT ALL WERE 7 2#=6 # SUPPLIED. 20 2#PQ # ERROR : ^FILE NAME PARAMETER NOT APPROPRIATE TO THIS COMMAND^ 19 2*9B # IF ONE OF THE RESTRICTIONS IS VIOLATED, OTHERWISE STANDARD 17 2*P2 # ERROR MESSAGES RELEVANT TO ENTRANT DESCRIPTIONS. 4 2B8L # 8 2BN= TEN +10 8 2C7W XBCH +0.1 9 2CMG ZCOMM 4H , 4 2D76 # 8 2DLQ # ERROR MESSAGES 16 2F6B ZFNAPP +FNAPP [ NOT APPROPRIATE 17 2FL2 ZJPARMIS +JPARMIS [ PARAMETER MISSING 17 2G5L ZALQUAL +ALQUAL [ ILLEGAL QUALIFIER 16 2GK= ZAMISS +AMISS [ .... MISSING 15 2H4W ZUSNA +JUSNA [ USER NAME 16 2HJG ZGENERR +GENERR [ ERROR ... %C 4 2J46 # 5 2JHQ START 7 2K3B SPARAPASS 7 2KH2 NGNC 0 1 19 2L2L SPENT NGN 0 0 [ SIDE-ENTRY FROM SETPARAM 9 2LG= STO 0 AWORK4(2) 10 2L_W MHUNT 3,CPB,CUNI 9 2MFG NGX 6 ANUM(3) 10 2M_6 LDX 7 ZJPARMIS(1) 21 2NDQ BPZ 6 PERR [ NO PARAMETER OR 1ST PARAMETER NULL 9 2NYB LDX 7 ZAMISS(1) 10 2PD2 BCONTEXT USER,2,USER 17 2PXL LDCH 0 APARA(3) [ NO USER CONTEXT - 19 2QC= ERN 0 #12 [ FAIL IF NOT ABSOLUTE NAME 9 2QWW LDX 6 ZUSNA(1) 8 2RBG BNZ 0 PERR2 10 2RW6 USER NAMETOP 3,FILE,FNAME 7 2S*Q FNORM 1 10 2STB MHUNT 3,FILE,FNAME 10 2T*2 NAMETOP 3,CPB,CUNI 21 2TSL TESTREP2 NAMEFORM,XIT [ FNORM FAIL - ERROR MESSAGE IN FNORM 19 2W#= LDX 7 ZFNAPP(1) [ 'FILE NAME NOT APPROPRIATE' 10 2WRW HUNT 3,FILE,FABSNB 17 2X?G BNG 3 PERR [ FNORM GROSS ERROR 8 2XR6 LDN 0 #2600 9 2Y=Q ANDX 0 ATYPE(3) 16 2YQB BNZ 0 PERR [ *MT OR WORKFILE 7 2_=2 LDN 0 4 10 2_PL TXL 0 ALOGLEN(3) 20 329= BCC PERR [ USERNAME ONLY - NOT CATERED FOR 10 32NW LDX 7 ZGENERR(1) 20 338G LDX 6 ZALQUAL(1) [ ALL ACTUAL ADJUNCTS ARE ILLEGAL 21 33N6 TESTREP2 ADJUNCTS,PERR2 [ BUT ! FILES GIVE 'ADJUNCTS' REPLY 9 347Q LDX 7 ZFNAPP(1) 18 34MB TESTRPN2 OK,PERR [ ANY POSSIBLE NASTIES 20 3572 LDX 6 ATYPE(3) [ TO CHECK IF LANG PRESENT LATER 7 35LL LDN 0 2 21 366= ORS 0 ATYPE(3) [ TO ACCEPT FILE OR *MT IN OPENDIR 21 36KW ADX 3 A1(3) [ NOW = WORD AFTER LOCAL NAME DETAILS 7 375G LDN 5 0 19 37K6 LDX 4 A1-2(3) [ FGN GIVEN - FIDDLE TO CHECK 19 384Q BNZ 4 RIGF [ EXISTENCE BUT AVOID SEARCH 8 38JB ANDN 6 #100 20 3942 BZE 6 NLANG [ LEAVE X4 ZERO IF NO LANG GIVEN 15 39HL LDX 4 A1-1(3) [ LANGUAGE 15 3=3= NLANG LDX 5 A1-6(3) [ LOCAL NAME 9 3=GW RIGF LDX 6 A1-5(3) 9 3?2G LDX 7 A1-4(3) 9 3?G6 LDN 1 A1-6(3) 18 3?_Q SUM 0 3 [ INDEX KEY IN DIRECTORY 9 3#FB STO 0 AWORK3(2) 11 3#_2 OPENDIR XBRK,READ,QUERY 19 3*DL # NOW HAVE DIRECTORY OPEN, FIRST RELEVANT NAME RECORD IN A 17 3*Y= # FILE/ENT, AND DIRECTORY POSITIONED JUST AFTER IT. 8 3BCW REPERR2 OK 10 3BXG XIT IF +AWORK4(2),PZ 6 3CC6 THEN 6 3CWQ UP 6 3DBB ELSE 7 3DW2 ENDCOM 5 3F*L FI 10 3FT= OK MHUNT 1,FILE,ENT 9 3G#W LDX 3 EGEN(1) 17 3GSG STO 3 AWORK2(2) [ LOWEST FGN SO FAR 18 3H#6 JBC NMDF,1,BEMDF [ = HIGHEST UNLESS MDF 20 3HRQ BZE 5 NMDF [ MDF WAS SPECIFIED EXPLICITLY 18 3J?B LDEX 3 ESTREND(1) [ NO. OF ELTS = TOP FGN 17 3JR2 LDN 5 0 [ TO AVOID SCANNING 15 3K=L NMDF STO 3 AWORK1(2) [ HIGHEST FGN 7 3KQ= FREECORE 1 18 3L9W BZE 5 STOP [ FGN WAS GIVEN BY USER 4 3LPG # 21 3M96 SRCH [ LOOK FOR OTHER FILES MATCHING %A 6 3MNQ STEP 17 3N8B BZE 3 STOP [ END OF DIRECTORY 9 3NN2 LDX 0 FRH+1(3) 16 3P7L BNZ 0 SRCH [ NOT NAME RECORD 9 3PM= TXU 5 ELOC1N(3) 9 3Q6W TXU 6 ELOC2N(3) 9 3QLG TXU 7 ELOC3N(3) 21 3R66 BCS XNAME [ DIFFERENT NAME - CHECK IF SAME KEY 18 3RKQ JBS SRCH,3,BNERASE [ IGNORE IF TO-BE-ERASED 8 3S5B BZE 4 XLANG 17 3SK2 TXU 4 ELANN(3) [ CHECK LANG IF GIVEN 8 3T4L BCS SRCH 16 3TJ= XLANG LDX 0 EGENN(3) [ NEW LOWEST FGN 9 3W3W STO 0 AWORK2(2) 16 3WHG BRN SRCH [ SEE IF ANY MORE 4 3X36 # 9 3XGQ XNAME LDN 1 ELOC1N(3) 7 3Y2B SUM 0 3 18 3YG2 TXU 0 AWORK3(2) [ IF NAME HAS SAME KEY, 16 3Y_L BCC SRCH [ KEEP ON TRYING 4 3_F= # 18 3_YW STOP CLOSETOP [ FREE DIRECTORY A.S.A.P. 10 42DG IF +AWORK4(2),PZ 6 42Y6 THEN 10 43CQ LDX 5 AWORK1(2) 10 43XB LDX 6 AWORK2(2) 11 44C2 STO 5 ACOMMUNE1(2) 11 44WL STO 6 ACOMMUNE2(2) 8 45B= UPPLUS 2 5 45TW FI 15 46*G LDN 6 0 [ FIRST TIME 9 46T6 LDX 5 AWORK1(2) 20 47#Q NUM LDX 7 ACES [ EASY 4-CHAR NUMBER CONVERSION 8 47SB LDCT 3 #600 9 48#2 NDIG DVS 4 TEN(1) 8 48RL DCH 4 7(3) 9 49?= SBX 3 XBCH(1) 8 49QW BNZ 5 NDIG 20 4==G BVSR / [ THE SBX MAY HAVE SET OVERFLOW 8 4=Q6 BNZ 6 PRINT 7 4?9Q LDX 6 7 9 4?PB LDX 5 AWORK2(2) 20 4#92 TXU 5 AWORK1(2) [ ONLY NEED TO CONVERT 2ND NUMBER 18 4#NL BCS NUM [ TO CHARS IF DIFFERENT 4 4*8= # 18 4*MW PRINT MHUNT 3,CPB,CUNI [ MUST BE >= 3 WORDS LONG 8 4B7G STO 6 A1(3) 9 4BM6 LDX 6 ZCOMM(1) 8 4C6Q SLC 67 18 9 4CLB STO 6 A1+1(3) 9 4D62 STO 7 A1+2(3) 7 4DKL LDN 4 9 10 4F5= OUTPARAM 4,A1,CPB,CUNI 9 4FJW MONOUT AWSNAME 6 4G4G ENDCOM 4 4GJ6 # 10 4H3Q XBRK IF +AWORK4(2),PZ 6 4HHB THEN 8 4J32 UPPLUS 1 6 4JGL ELSE 8 4K2= COMBRKIN 5 4KFW FI 4 4K_G # 7 4LF6 PERR NGN 6 1 8 4LYQ PERR2 ERRORX 7,6 10 4MDB IF +AWORK4(2),PZ 6 4MY2 THEN 6 4NCL UP 6 4NX= ELSE 7 4PBW ENDCOM 5 4PWG FI 4 4QB6 # 4 4QTQ #END 3 4R*B ... 6 ____ ...370121040002