8 22FL #OPT K0IFXCODES=0 15 22_= #LIS K0IFXCODES>K0ALLGEO>K0GREATGEO>K0COMMAND 14 23DW #SEG IFXCODES701 [R TERRY 10 23YG ... 8HIFXCODES 21 24D6 # THIS SEGMENT IS ENTERED FROM IFEXPAN TO DEAL WITH THOSE SIMPLE IF 19 24XQ # CONDITIONS WHICH INVOLVE COMPARISON OF CHARACTER STRINGS 21 25CB # ON ENTRY:XCHPTR CONTAINS CHAR PTR RELATIVE TO START OF LINE BUFFER 17 25X2 # XCHARS CONTAINS COUNT OF CHARS REMAINING 16 26BL # ON EXIT :XCHPTR & XCHARS MAY HAVE BEEN UPDATED 21 26W= # X7 CONTAINS RESULT- 0-TRUE,1-FALSE,B0=1-ERROR,B1=1-ERROR 8 27*W # ENTRY POINTS 16 27TG SEGENTRY K1IFXCODES,XHALTED [IF HALTED ETC 12 28*6 SEGENTRY K2IFXCODES,XDELETED 12 28SQ SEGENTRY K3IFXCODES,XDISPLAYED 12 29#B SEGENTRY K4IFXCODES,XFAILED 12 29S2 SEGENTRY K5IFXCODES,XMONITOR 12 2=?L SEGENTRY K7IFXCODES,XSTRING 12 2=R= SEGENTRY K12IFXCODES,XABSENT 12 2?=W SEGENTRY K13IFXCODES,XPRESENT 12 2?QG SEGENTRY K14IFXCODES,XREPLY 7 2?T5 ...#SKI JWPHASE3 4 2?XN ...( 11 2#2? ... SEGENTRY K15IFXCODES,XRES 11 2#4W ... SEGENTRY K16IFXCODES,XGEN 4 2#7F ...) 7 2#8* ...#UNS FPARTRES 11 2#99 ... SEGENTRY K17IFXCODES,XPAR 7 2#9# ... FSHSKIP 4 2#9C ...( 7 2#9G ...#UNS FSHIFMAC 12 2#9K ... SEGENTRY K18IFXCODES,XMACRV 4 2#9N ...) 8 2#9R ... FSHCODE AORB 11 2#9W ... SEGENTRY K18IFXCODES,XMAC 13 2#=6 # WORKING SPACE USED IN ACT BLOCK. 10 2#PQ #DEF XSTATE=EXT+3 9 2*9B #DEF XLBP=EXT 10 2*P2 #DEF XCHARS=EXT+1 10 2B8L #DEF XCHPTR=EXT+2 16 2BN= # POSITIONS IN APED BLOCKS-RELATIVE TO APEDSP1/2 17 2C7W #DEF VMCOND=1 [CATEGORY OF EVENT 18 2CMG #DEF VCOUNT=2 [NO OF CHARS IN MESSAGE 16 2D76 #DEF VMESS=3 [START OF MESSAGE 8 2DLQ # WORKING SPACE 9 2F6B #DEF XSTPTR=ACOMMUNE1 9 2FL2 #DEF XSTCHS=ACOMMUNE2 9 2G5L #DEF XSTSP=ACOMMUNE3 10 2GK= #DEF XCONDITION=ACOMMUNE4 9 2H4W #DEF XCURRENT=ACOMMUNE5 21 2HJG # THIS SECTION SETS THE RESULT OF A CONDITION IN X7 & RETURNS TO IFE 7 2J46 XTRUE LDN 7 0 9 2JHQ XRET ACROSS IFEXPAN,3 5 2K3B XFALSE 7 2KH2 LDN 7 1 8 2L2L BRN XRET 5 2LG= XERROR 8 2L_W LDCT 7 #400 8 2MFG BRN XRET 16 2M_6 XERROR1 [REPORTED ERROR 8 2NDQ LDCT 7 #600 8 2NYB BRN XRET 5 2PD2 XBREAK 8 2PXL LDCT 7 #700 8 2QC= BRN XRET 21 2QWW # THIS SECTION DEALS WITH THE SIMPLE CONDITIONS DELETED,HALTED,FAILE 13 2RBG # & MONITOR WHICH ARE VERY SIMILAR. 21 2RW6 # IF A CHARACTER STRING IS INCLUDED IN THE CONDITION THE NEXT CHAR S 21 2S*Q # BE (,',^ & IN THIS CASE WE READ THE CHAR STRING UPDATING THE PTR & 21 2STB # COUNT IN XCHPTR,XCHARS & OBTAINING A PTR TO & COUNT OF THE NO.OF C 11 2T*2 # GIVEN IN THE CHAR STRING. 21 2TSL # A SEARCH IS MADE FOR AN APED,ADELETE OR APED,ANEVENT BLOCK WHICH W 21 2W#= # CONTAIN THE CATEGORY & MESSAGE ASSOC WITH THE MOST RECENT PROGRAM 21 2WRW # EVENT.THESE ARE COMPARED WITH THE CATEGORY AND CHAR STRING OF THE 19 2X?G # CONDITION.THE CONDITION IS ONLY SATISFIED IF THEY MATCH. 9 2XR6 # DEAL WITH'FAILED' 5 2Y=Q XFAILED 9 2YQB LDN 0 APEDFAIL 9 2_=2 BRN XHALTED1 9 2_PL # DEAL WITH'MONITOR' 5 329= XMONITOR 9 32NW LDN 0 APEDMON 9 338G BRN XHALTED1 10 33N6 # DEAL WITH 'DELETED 5 347Q XDELETED 9 34MB LDN 0 APEDDEL 9 3572 BRN XHALTED1 8 35LL # DEAL WITH 'HALTED' 5 366= XHALTED 9 36KW LDN 0 APEDHALT 5 375G XHALTED1 9 37K6 #SKIP K6IFEXPAN>99-99 10 384Q TRACE 0,IFHALDEL 10 38JB STO 0 XCONDITION(2) 18 3942 CALL 7 XFLB [FIND LB & SET CHAR PTR 15 39HL CALL 7 XFSTR [FIND STRING 17 3=3= STOZ XSTCHS(2) [SET 'NULL' STRING 18 3=GW CALL 7 XFAPED [FIND TERMINAL APED BLOCK 16 3?2G BRN XFALSE [IF NONE-FALSE 17 3?G6 LDX 0 VMCOND(1) [COMPARE SUB-CONDS 10 3?_Q SBX 0 XCONDITION(2) 9 3#FB BNZ 0 XFALSE 20 3#_2 LDX 5 XSTCHS(2) [SET UP PTRS & COUNTS FOR STRINGS 9 3*DL LDX 3 XSTPTR(2) 9 3*Y= LDX 4 VCOUNT(1) 8 3BCW ADN 1 VMESS 9 3BXG CALL 7 XCOMPARE 7 3CC6 ANDN 0 1 9 3CWQ BZE 0 XFALSE 8 3DBB BRN XTRUE 8 3DW2 # DEAL WITH'DISPLAY' 21 3F*L # THE CHAR STRING FOLLOWING^DISPLAY^IS COMPARED WITH THE DISPLAY MES 16 3FT= # STORED AN ^APEDDISM^IN AN APED,ADISPLAY BLOCK 6 3G#W XDISPLAYED 9 3GSG #SKIP K6IFEXPAN>99-99 10 3H#6 TRACE 3,IFDISPLY 20 3HRQ CALL 7 XFLB [FIND LINE BUFFER & SET CHAR PTR 15 3J?B CALL 7 XFSTR [FIND STRING 9 3JR2 STOZ XSTCHS(2) 10 3K=L HUNT 1,APED,ADISPLAY 9 3KQ= BNG 1 XFALSE 9 3L9W LDX 5 XSTCHS(2) 9 3LPG LDX 3 XSTPTR(2) 10 3M96 LDX 4 APEDDISM(1) 10 3MNQ ADN 1 APEDDISM+1 20 3N8B CALL 7 XCOMPARE [COMPARE STRINGS-TRUE IF MATCH 18 3NN2 ANDN 0 1 [TO END OF GIVEN STRING 9 3P7L BZE 0 XFALSE 8 3PM= BRN XTRUE 9 3Q6W # DEAL WITH'REPLY' 20 3QLG # THE CHAR STRING FOLLOWING^REPLY^ IS COMPARED WITH THE CURRENT 21 3R66 # REPLY WHICH IS HELD IN AN ADATA,BREPLY BLOCK CHAINED AFTER THE 18 3RKQ # CPAT . THIS BLOCK HAS THE SAME FORMAT AS GMON,AOUT : 21 3S5B # A1 - WORDS IN RECORD (SO CHARS=[A1]-2X4) & REPLY STARTS AT A1+2 5 3SK2 XREPLY 16 3T4L CALL 7 XFLB [FIND LINE BUFFER 20 3TJ= CALL 7 XFSTR [FIND CHAR STRING FOLLOWING REPLY 19 3W3W STOZ XSTCHS(2) [IF NONE TREAT AS NULL STRING 17 3WHG HUNTW 1,ADATA,BREPLY [LOOK FOR REPLY BLOCK 18 3X36 BNG 1 XFALSE [IF NONE CONDITION FALSE 19 3XGQ LDX 4 A1(1) [CALC NO OF CHARS IN REPLY 7 3Y2B SBN 4 2 7 3YG2 SLL 4 2 19 3Y_L ADN 1 A1+2 [SET PTR TO START OF REPLY 21 3_F= LDX 5 XSTCHS(2) [NO OF CHARS IN STRING AFTER REPLY 19 3_YW LDX 3 XSTPTR(2) [START OF STRING AFTER REPLY 21 42DG CALL 7 XCOMPARE [COMPARE STRINGS-CONDITION IS TRUE 20 42Y6 ANDN 0 1 [IF THEY MATCH TO THE END OF THE 19 43CQ BZE 0 XFALSE [SPECIFIED (IE X3,5)STRING 8 43XB BRN XTRUE 19 44C2 # THIS SUBR FINDS THE LINE BUFFER AND SETS X3 AS THE CHAR PTR 9 44WL XFLB HUNTACTF CLB,1,FX2 9 45B= STO 1 XLBP(2) 7 45TW ADX 3 1 8 46*G LDX 1 FX1 10 46T6 #SKIP K6IFEXPAN>999-999 9 47#Q TRACE 3,IFXFLB 7 47SB EXIT 7 0 21 48#2 # TABLE OF POSSIBLE DELIMITERS OF A CHARACTER STING.THREE WORDS FOR 21 48RL # 1)START CHARACTER 2)FINISH CHAR 3)SPACE CHAR(IGNORED DURING COMPAR 7 49?= #DEF VDELIMS=5 8 49QW QDELIMS #30 8 4==G #31 8 4=Q6 QSP #20 8 4?9Q #37 8 4?PB #37 8 4#92 #20 8 4#NL #17 8 4*8= #17 8 4*MW #20 8 4B7G #27 8 4BM6 #27 8 4C6Q #100 8 4CLB #22 8 4D62 #22 8 4DKL #100 21 4F5= # THIS SUBR EXPECTS TO FIND A CHARACTER STRING ENCLOSED IN ONE OF TH 21 4FJW # DELIMITER SETS.IF THERE IS NO CHAR STRING(I.E.START CHAR NOT THERE 21 4G4G # IT EXITS+0.OTHERWISE IT EXITS+1 WITH WITH A PTR TO THE STRING PROP 21 4GJ6 # & THE NO.OF CHARS IT CONTAINS&ITS SPACE CHAR (LEFT IN XSTPTR,XSTCH 21 4H3Q # X3,4 ARE USED AS CHAR PTR & COUNT & LEFT UPDATED.CHAR PTR & COUNT 21 4HHB # XCHPTR,XCHARS ARE UPDATED TOO.X1=FX1,X2=FX2,X7=LINK,X0,5,6 USED 7 4J32 ZF1 BCHX 3 / 18 4JGL XFSTR BCT 4 ZF2 [ERROR IF NO MORE CHARS 9 4K2= BRN XERROR 17 4KFW ZF2 LDCH 0 0(3) [FIND FIRST NON-SPACE 9 4K_G TXU 0 QSP(1) 8 4LF6 BCC ZF1 20 4LYQ LDN 2 QDELIMS-3(1) [LOOK UP CHAR IN DELIMETER TABLE 9 4MDB LDN 5 VDELIMS 7 4MY2 ZF3 ADN 2 3 8 4NCL TXU 0 0(2) 8 4NX= BCC ZF4 8 4PBW BCT 5 ZF3 8 4PWG LDX 2 FX2 17 4QB6 EXIT 7 0 [EXIT IF NO DELIMETER 7 4QTQ ZF4 BCHX 3 / 10 4R*B #SKIP K6IFEXPAN>999-999 10 4RT2 TRACE 0(2),IFXFSTR1 8 4S#L SMO FX2 17 4SS= STO 3 XSTPTR [STORE PTR TO STRING 16 4T?W LDX 5 4 [STORE CHAR COUNT 16 4TRG LDN 6 0 [INIT DEPTH COUNT 7 4W?6 ZF6A ADN 6 1 8 4WQQ ZF6 BCT 4 ZF5 18 4X=B BRN XERROR [ERROR IF NO MORE CHARS 8 4XQ2 ZF5 LDCH 0 0(3) 7 4Y9L BCHX 3 / 17 4YP= TXU 0 1(2) [JUMP IF TERMINATOR 8 4_8W BCC ZF7 18 4_NG TXU 0 0(2) [JUMP UNLESS START CHAR 8 5286 BCS ZF6 19 52MQ BRN ZF6A [JUMP TO INCREASE DEPTH COUNT 17 537B ZF7 BCT 6 ZF6 [REDUCE DEPTH COUNT 19 53M2 SBX 5 4 [STORE NO OF CHARS IN STRING 7 546L SBN 5 1 8 54L= SMO FX2 9 555W STO 5 XSTCHS 10 55KG #SKIP K6IFEXPAN>999-999 10 5656 TRACE 5,IFXFSTR2 16 56JQ LDX 5 2(2) [STORE SPACE CHAR 8 574B LDX 2 FX2 19 57J2 STO 5 XSTSP(2) [UPDATE CHAR PTR & COUNT IN 17 583L LDX 0 3 [THE ACTIVITY BLOCK 9 58H= SBX 0 XLBP(2) 9 592W STO 0 XCHPTR(2) 9 59GG STO 4 XCHARS(2) 7 5=26 EXIT 7 1 21 5=FQ # THIS SUBR COMPARES THE CHAR STRINGS WITH PTRS IN X1,X3 & COUNTS IN X4, 19 5=_B # USING THE SPACE CHAR IN XSTSP.ON EXIT X0 IS SET AS FOLLOWS: 21 5?F2 # 0-NO MATCH,3-EXACT MATCH,1-MATCH TO END OF X3,5 STRING,2-MATCH TO END 7 5?YL # OF X1,4 STRING 5 5#D= XCOMPARE 16 5#XW ADN 4 1 [ADJUST COUNTS 7 5*CG ADN 5 1 18 5*X6 ZG1 BCT 5 ZG2 [EXIT IF END OF X3 STRING 17 5BBQ ZG7 BCT 4 ZG6 [EXIT IF EXACT MATCH 7 5BWB LDN 0 3 7 5CB2 EXIT 7 0 18 5CTL ZG6 LDCH 0 0(1) [SEARCH FOR 'NON-SPACE' 7 5D*= BCHX 1 / 9 5DSW TXU 0 XSTSP(2) 8 5F#G BCC ZG7 21 5FS6 LDN 0 1 [EXIT IF MATCH TO END OF X3,5 STRING 7 5G?Q EXIT 7 0 17 5GRB ZG2 LDCH 0 0(3) [FIND NON 'SPACE'CHAR 7 5H?2 BCHX 3 / 9 5HQL TXU 0 XSTSP(2) 8 5J== BCC ZG1 8 5JPW ZG4 BCT 4 ZG5 21 5K9G LDN 0 2 [EXIT IF MATCH TO END OF X1,4 STRING 7 5KP6 EXIT 7 0 18 5L8Q ZG5 LDCH 6 0(1) [FIND NON 'SPACE' CHAR 7 5LNB BCHX 1 / 9 5M82 TXU 6 XSTSP(2) 8 5MML BCC ZG4 16 5N7= SBX 0 6 [COMPARE CHARS 16 5NLW BZE 0 ZG1 [EXIT IF NO MATCH 7 5P6G LDN 0 0 7 5PL6 EXIT 7 0 21 5Q5Q # THIS SUBR SEARCHES FOR AN APED BLOCK & SETS A PTR TO THE EVENT INF 21 5QKB # IN AN APED,ANEVENT THIS IS AT APEDSP1,& IN AN APED,ADELETE AT APES 5 5R52 XFAPED 10 5RJL HUNT 1,APED,ANEVENT 8 5S4= BPZ 1 ZH2A 10 5SHW HUNT 1,APED,ADELETE 8 5T3G BPZ 1 ZH2 7 5TH6 EXIT 7 0 9 5W2Q ZH2 ADN 1 APEDSP2 8 5WGB BRN ZH2B 9 5X22 ZH2A ADN 1 APEDSP1 4 5XFL ZH2B 9 5X_= #SKI K6IFEXPAN>999-999 11 5YDW TRACE ATYPE(1),IFXFAPED 7 5YYG EXIT 7 1 20 5_D6 # THIS SUBR READS THE NEXT SIGN CHAR INTO X0.USES X7 AS LINK & X38X4 9 5_XQ # AS POINTER AND LINK 5 62CB XNONSP 8 62X2 BCT 4 ZSP1 9 63BL BRN XERROR 8 63W= ZSP1 LDCH 0 0(3) 7 64*W BCHX 3 / 9 64TG TXU 0 QSP(1) 9 65*6 BCC XNONSP 11 65SQ #SKIP K6IFEXPAN>999-999 9 66#B TRACE 0,IFNONSP 7 66S2 EXIT 7 0 17 67?L # THIS SECTION DEALS WITH THE IF STRING CONDITION 21 67R= # THE'STRING'SHOULD BE FOLLOWED BY TWO CHAR STRINGS ENCLOSED IN SUIT 21 68=W # DELIMETERS.& SEPERATED BY = OR < OR > .THE SPACE CHAR ASSOC WITH 21 68QG # DELIMETER SETS SHOULD BE THE SAME THE STRINGS ARE THEN COMPARED : 21 69=6 # IF SEPERATOR IS = THE CONDITION IS SATISFIED ONLY IF THEY MATCH EX 21 69PQ # IF IT IS < THE MATCH SHOULD BE TO THE END OF THE FIRST STRING & IF 11 6=9B # TO THE END OF THE SECOND. 5 6=P2 XSTRING 16 6?8L CALL 7 XFLB [FIND LINE BUFFER 15 6?N= CALL 7 XFSTR [FIND STRING 16 6#7W BRN XERROR [IF NONE-ERROR 18 6#MG LDN 7 XSTPTR(2) [MOVE PTR TO STRING ETC 10 6*76 LDN 0 XSTPTR1(2) 7 6*LQ MOVE 7 3 15 6B6B CALL 7 XNONSP [CHECK FOR = 7 6BL2 LDN 7 3 16 6C5L TXU 0 QEQ(1) [IF'=':EXACT COMP 8 6CK= BCC ZSTR1 7 6D4W LDN 7 1 20 6DJG TXU 0 QLT(1) [IF'<':UP TO END OF FIRST STRING 8 6F46 BCC ZSTR1 20 6FHQ TXU 0 QGT(1) [IF'>':UP TO END OF SECOND STRING 15 6G3B BCS XERROR [ELSE ERROR 7 6GH2 LDN 7 2 9 6H2L ZSTR1 STO 7 XSEP(2) 16 6HG= CALL 7 XFSTR [SECOND STRING 9 6H_W BRN XERROR 9 6JFG LDX 0 XSTSP(2) 9 6J_6 TXU 0 XSTSP1(2) 9 6KDQ BCS XERROR 10 6KYB LDX 5 XSTCHS1(2) 10 6LD2 LDX 3 XSTPTR1(2) 9 6LXL LDX 4 XSTCHS(2) 9 6MC= LDX 1 XSTPTR(2) 9 6MWW CALL 7 XCOMPARE 19 6NBG ANDX 0 XSEP(2) [COMPARE RESULT OF COMPARISON 20 6NW6 TXU 0 XSEP(2) [WITH RESULT REQD BY SEPERATOR 16 6P*Q BCS XFALSE [I.E. > OR < OR = 8 6PTB BRN XTRUE 8 6Q*2 #DEF XSEP=ACOMMUNE6 9 6QSL #DEF XSTPTR1=ACOMMUNE7 9 6R#= #DEF XSTCHS1=ACOMMUNE8 9 6RRW #DEF XSTSP1=ACOMMUNE9 9 6S?G #DEF XPTRPAR=XSTCHS1 13 6SR6 QLT #14 [< 13 6T=Q QGT #16 [> 13 6TQB QEQ #15 [= 21 6W=2 # THIS SECTION DEALS WITH THE PRESENT & ABSENT(=NOT PRESENT) CONDITI 21 6WPL # THE CHAR STRING GIVEN IS COMPARED IN TURN WITH EACH ENTRY IN THE 21 6X9= # PARAMETER BLOCK ASSOCIATED WITH THE COM PROC LEVEL ABOVE THE CURRE 18 6XNW # IF NO SUCH BLOCK EXISTS(MOP?)THE CONDITION IS FALSE 21 6Y8G # ASSUMED FORMAT:-FIRST PARAM STARTS AT APARAFIR.PARAM STORED AS NO 21 6YN6 # IN BOTTOM 12BITS(MAY BE ZERO)FOLLOWED BY CHARS OF 20 6_7Q # A'MINUS ONE'TERMINATES THE LIST OF PARAMETERS. 5 6_MB XPRESENT 17 7272 LDN 7 1 [PRESENT = NOT ABSENT 9 72LL ERS 7 XSTATE(2) 5 736= XABSENT 11 73KW #SKIP K6IFEXPAN>99-99 10 745G TRACE 3,IFABSPRE 16 74K6 CALL 7 XFLB [FIND LINE BUFFER 19 754Q CALL 7 XFSTR [FIND STRING-ERROR IF NONE 9 75JB BRN XERROR 18 7642 HUNT 3,CPB,CALAS [FIND SECOND PARAM BLOCK 9 76HL HUNT2 3,CPB,CALAS 11 773= #SKIP K6IFEXPAN>999-999 10 77GW TRACE 3,IFPARAMB 20 782G BNG 3 XTRUE [IF NONE THE CONDITION IS TRUE 17 78G6 ADN 3 APARAFIR [PTR TO FIRST PARAM 10 78_Q STO 3 XPTRPAR(2) 10 79FB ZABS2 LDX 1 XPTRPAR(2) 17 79_2 STO 1 XCURRENT(2) [DUMP CURRENT POINTER 19 7=DL LDX 4 0(1) [TEST FOR LAST PARAM (-) & 8 7=Y= SMO FX1 9 7?CW TXU 4 QMINUS1 17 7?XG BCC XTRUE [IF SO COND IS TRUE 17 7#C6 ANDN 4 #7777 [MASK OFF NO OF CHARS 7 7#WQ SMO 4 17 7*BB LDN 0 7 [UPDATE PTR TO PARAM 7 7*W2 SRL 0 2 10 7B*L ADS 0 XPTRPAR(2) 7 7BT= ADN 1 1 11 7C#W #SKIP K6IFEXPAN>999-999 10 7CSG TRACE 0(1),IFABSPAR 9 7D#6 LDX 5 XSTCHS(2) 9 7DRQ LDX 3 XSTPTR(2) 9 7F?B CALL 7 XCOMPARE 7 7FR2 ANDN 0 1 19 7G=L [IF MATCH COND FALSE ELSE TRY 15 7GQ= BZE 0 ZABS2 [NEXT PARAM 18 7H9W LDCT 7 #400 [IF PARAMETER ACCESSED 17 7HPG LDX 3 XCURRENT(2) [SET B0 IN CPB,CALAS 8 7J96 ORS 7 0(3) 9 7JNQ BRN XFALSE 21 7K8B QMINUS1 #77777777 [THIS INDICATES LAST PARAM IN BLOCK 7 7K8J ...#SKI JWPHASE3 4 7K8Q ...( 4 7K8Y ...# 11 7K96 ...# IF RESTARTED AND IF GENRES 4 7K9# ...# 16 7K9G ...XJLBITS #01100000 [RESTARTED BITS 15 7K9N ... #00400000 [GENRES BIT 7 7K9Q ...#UNS FPARTRES 15 7K9S ... #40000000 [PARTRES BIT 9 7K9W ...TEXT1 5HRERUN 9 7K=4 ...TEXT2 5HBREAK 9 7K== ...TEXT3 5HQUERY 9 7K=D ...TEXT4 7HABANDON 9 7K=L ...TEXT5 7HRUNDUMP 9 7K=S ...XTP1 +5,+TEXT1 9 7K?2 ... #00001000 9 7K?8 ... +5,+TEXT2 9 7K?B ... #00200000 9 7K?J ... +5,+TEXT3 9 7K?Q ... #00002000 9 7K?Y ... +7,+TEXT5 9 7K#6 ... #00000400 8 7K## ... +0 9 7K#G ...XTP2 +5,+TEXT2 9 7K#N ... #01000000 9 7K#W ... +7,+TEXT4 9 7K*4 ... #00100000 8 7K*= ... +0 7 7K*D ...XGEN NGNC 7 1 7 7K*L ...XRES LDN 7 0 9 7K*S ... STO 7 AWORK2(2) 8 7KB2 ... CALL 7 XFLB 8 7KB8 ... CALL 7 XFSTR 5 7KB? ...XPAR1 7 7KBB ... LDN 7 0 10 7KBJ ... LDX 0 CONTEXT(2) 7 7KBQ ... ANDN 0 1 19 7KBY ... BZE 0 XFALSE [FALSE IF IN NO USER CONTEXT 8 7KC6 ... FJOCA 3,2 12 7KC# ... JBC XFALSE,3,JBRESTARTED 9 7KCG ... BZE 7 NOQUAL 8 7KCN ... LDN 6 XTP1 9 7KCW ... LDX 7 AWORK2(2) 8 7KD4 ... BNZ 7 NRES 8 7KD= ... LDN 6 XTP2 9 7KDD ...NRES STO 6 AWORK1(2) 7 7KDL ... SMO 6 8 7KDS ... LDX 4 0(1) 19 7KF2 ... BZE 4 XFALSE [J TO FALSE IF END OF TABLE 7 7KF8 ... SMO 6 8 7KFB ... LDX 1 1(1) 8 7KFJ ... ADX 1 FX1 9 7KFQ ... LDX 5 XSTCHS(2) 9 7KFY ... LDX 3 XSTPTR(2) 9 7KG6 ... CALL 7 XCOMPARE 8 7KG# ... LDX 1 FX1 9 7KGG ... LDX 6 AWORK1(2) 7 7KGN ... ANDN 0 1 18 7KGW ... BNZ 0 XFND [J IF GOOD ENOUGH MATCH 7 7KH4 ... ADN 6 3 8 7KH= ... BRN NRES 5 7KHD ...NOQUAL 9 7KHL ... LDX 7 AWORK2(2) 7 7KHS ... SMO 7 10 7KJ2 ... LDX 7 XJLBITS(1) 8 7KJ8 ... BRN XFND1 7 7KJB ...XFND SMO 6 8 7KJJ ... LDX 7 2(1) 11 7KJQ ...XFND1 OPENSYS XBRK,JOBLIST,READ 9 7KJY ... LDX 6 JOBNO(2) 9 7KK6 ... GETJOB 6,SYSTEM 7 7KK# ... STEPAGAIN 10 7KKG ... ADX 3 JOBDATASIZE 7 7KKH ...#UNS FPARTRES 4 7KKJ ...( 16 7KKK ... BPZ 7 NPAR [J IF NOT ^IF PAR^ 10 7KKL ... ANDX 7 JLSTATX(3) 8 7KKM ... BRN XPAR2 4 7KKN ...NPAR 4 7KKP ...) 9 7KKQ ... ANDX 7 JLSTAT(3) 5 7KKR ...XPAR2 7 7KKW ... CLOSETOP 8 7KL4 ... BNZ 7 XTRUE 9 7KL= ... BRN XFALSE 7 7KLD ...XBRK COMBRKIN 4 7KLL ...) 7 7KLR ...#UNS FPARTRES 4 7KLY ...( 4 7KM5 ...XPAR 7 7KM= ... LDN 0 2 9 7KMC ... STO 0 AWORK2(2) 8 7KMJ ... BRN XPAR1 4 7KMP ...) 8 7KN7 ... FSHCODE AORB 4 7KNK ...( 4 7KP3 ...XMAC 4 7KPF ...# 20 7KPX ...# THIS CODE IMPLEMENTS THE 'IF MACHINE(X)' COMMAND FOR SHARED 7 7KQ* ...# FILESTORE 4 7KQR ...# 19 7KR9 ... CALL 7 XFLB [FIND THE COMMAND LINE BLOCK 19 7KRM ... CALL 7 XFSTR [& LOCATE THE STRING IN IT!! 20 7KS5 ... BRN XERROR [ERROR IF THERE ISN'T ANY STRING 4 7KSH ...# 21 7KS_ ... LDN 4 1 [SET LENGTH OF STRING FOR COMPARISON 9 7KTC ... FSHCODE A,XNOTA 4 7KTT ...( 21 7KW? ... LDN 1 TEXTMACA(1) [SET ADDRESS OF STRING FOR COMPARISON 5 7KWP ...XNOTA 4 7KX7 ...) 9 7KXK ... FSHCODE B,XNOTB 4 7KY3 ...( 21 7KYF ... LDN 1 TEXTMACB(1) [SET ADDRESS OF STRING FOR COMPARISON 5 7KYX ...XNOTB 4 7K_* ...) 20 7K_R ... LDX 5 XSTCHS(2) [LENGTH OF USER SUPPLIED STRING 20 7L29 ... LDX 3 XSTPTR(2) [ADDRESS OF USER SUPPLIED STRING 16 7L2M ... CALL 7 XCOMPARE [COMPARE STRINGS 7 7L35 ... ERN 0 3 19 7L3H ... BZE 0 XTRUE [JIF STRING MATCHES EXACTLY 15 7L3_ ... BRN XFALSE [JIF NO MATCH 4 7L4C ...# 6 7L4T ...#UNS FSHA 8 7L5? ...TEXTMACA 4HA 6 7L5P ...#UNS FSHB 8 7L67 ...TEXTMACB 4HB 4 7L6K ...) 15 7L6L ...[SHFS REVERSION CODE FOR ^IF MACHINE(X)^ COMMAND 16 7L6M ...[GIVES FALSE REPLY FOR CORRECTLY FORMATED COMMAND 16 7L6N ...[& COMMAND ERROR FOR INCORRECTLY FORMATED COMMAND 7 7L6P ...#UNS FSHIFMAC 4 7L6Q ...( 5 7L6R ...XMACRV 14 7L6S ... CALL 7 XFLB [FIND CLB 21 7L6T ... CALL 7 XFSTR [FIND STRING ENCLOSED IN DELIMITERS 19 7L6W ... BRN XERROR [NO STRING - COMMAND ERROR 20 7L6X ... BRN XFALSE [CORRECTLY FORMATED - FALSE REPLY 4 7L6Y ...) 11 7L73 ... MENDAREA 15,GAPIFXCODES 4 7L7L #END 8 ____ ...14122511000200000000