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