{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FAIL5)}} ====== FAIL5 ====== (George Source) **Macros used:** [[george:macro:ALTLEND|ALTLEND]], [[george:macro:COMBRKIN|COMBRKIN]], [[george:macro:ENDCOM|ENDCOM]], [[george:macro:FPCACA|FPCACA]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:GETWORD|GETWORD]], [[george:macro:HUNT|HUNT]], [[george:macro:HUNT2|HUNT2]], [[george:macro:HUNTW|HUNTW]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MONOUT|MONOUT]], [[george:macro:NAME|NAME]], [[george:macro:OUTBLOCK|OUTBLOCK]], [[george:macro:OUTMILL|OUTMILL]], [[george:macro:OUTNULL|OUTNULL]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPACKC|OUTPACKC]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPARN|OUTPARN]], [[george:macro:PHOTO|PHOTO]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETUPCORE|SETUPCORE]], [[george:macro:SPARANOT|SPARANOT]], [[george:macro:TESTMOVE|TESTMOVE]], [[george:macro:TESTREP2|TESTREP2]], [[george:macro:TRACE|TRACE]], [[george:macro:WORDFIN|WORDFIN]] 22FL #LIS K0FAIL>K0ALLGEO>K0GREATGEO>K0COMMAND 22^= #SEG FAIL5 [R.H.THOMPSON F6 23DW #OPT K6FAIL=0 23YG 8HFAIL 24D6 SEGENTRY K1FAIL,XX1F 24XQ PFCATCH #77777700 25CB WORDSIXMASK #17777777 25X2 WORNINEMSK1 #40077777 26BL WORNINEMSK2 #37700000 26W= ZMEM 12HIN MEMBER 27*W #DEF XBLEN=3 [SO THAT APEDSP1+XBLEN IS A RELATIVE 27TG [POINTER TO MESSAGE IN APED BLOCK 28*6 # 1 28SQ # 1 THE FAIL SEGMENT HANDLES THE COMMAND -FAIL-. ACTION TAKEN DEPENDS 29#B # 1 ON WHETHER THE USER WISHES TO MONITOR HIS OWN ILLEGALS 29S2 # 1 AND, IF SO, WHETHER THE COMMAND WAS ISSUED AT BREAK-IN 2=?L # 1 2=R= # 2 2?=W # 2 INPUT -1.USER WORD 8 2?QG # 2 2.JOB REQUEST SLIP (AOBRES). 2#=6 # 2 3.COMMAND PROCESSING BLOCK (CPB/CALAS). 2#PQ # 2 4.ACTIVITY BLOCK POINTED TO BY X2 2*9B # 2 2*P2 # 3 2B8L # 3 OUTPUT-1.USER WORD 8 SAVED IN PROGRAM WORD 14 IF OWN 2BN= # 3 MONIT.ALSO B1-8 OF WORD 9 WILL BE SAVED IN WORD 15,B22-23 2C7W # 3 OF WHICH WILL BE SET TO THE MEMBER NO. 2CMG # 3 2.USER WORD 8 SET EQUAL TO USER ILLEG. MONIT IF OWN MONIT. 2D76 # 3 3.CATEGORY BITS SET EQUAL TO 6 IF BREAK-IN DURING RUNNING 2DLQ # 3 OF OBJECT PROGRAM AND NOT OWN MONITOR. 2F6B # 3 4.OLD PROGRAM EVENT DESTROYED AND 'FAIL' EVENT CREATED IF 2FL2 # 3 NOT OWN MONIT, OR OWN MONIT AND NOT BREAK-IN 2G5L # 3 DURING OBJECT PROGRAM RUNNING 2GK= # 3 5.MESSAGE TO USER MONITOR FILE PROVIDED BREAK-IN DURING 2H4W # 3 OBJECT PROGRAM CONDITION AND OWN MONIT. CONDITION DO 2HJG # 3 NOT EXIST TOGETHER 2J46 # 3 6.IF USER OWN MONIT WORD IS NOT ZERO,B0,1 ARE SET ZERO 2JHQ # 3 AFTER ORIGINAL CONTENTS MOVED TO WORD 8 OF PROGRAM 2K3B # 3 2KH2 # 4 2L2L # 4 ERROR ACTION - GEOERR (FAILGETW) IF MINI-SWAP-IN FAILS 2LG= # 4 GEOERR (FAILNOIP) IF CPB/CALAS BLOCK NOT FOUND 2L^W # 4 2MFG # 4 THE CONDITION 'ALREADY CATEGORY 6' IS NOT CHECKED 2M^6 # 4 2NDQ # 7 2NYB # 7 FIXED STORE SEGMENTS CALLED - NONE EXCEPT VIA MACROS 2PD2 # 7 BACKING STORE CHAPTERS CALLED - NONE EXCEPT VIA MACROS 2PXL # 7 2QC= XX1F 2QWW #SKI K6FAIL>699-699 2RBG TRACE 1,STRTFAIL 2RW6 LDN 4 8 [OBJECT PROGRAM ADDRESS REQUIRED 2S*Q # [FOR POSSIBLE CHANGE 2STB GETWORD 4,5,READ,,,ZBRK 2T*2 TESTREP2 OK,PFOK 2TSL TESTREP2 LOADERR,PFA11 2W#= BRN PFERR 2WRW PFOK 2X?G FPCACA 2 [GET POINTER TO PCA 2XR6 #SKI G4 2Y=Q ( 2YQB HUNT2 3,BSTB,BSCB,2 2^=2 LDX 6 AQUOTA(3) [QUOTA 2^PL ANDN 6 #7777 329= LDX 7 ATSWAPS(3) [PAGETURNS 32NW SMO FX2 338G STO 6 AWORK3 33N6 SMO FX2 347Q STO 7 AWORK4 34MB ) 3572 HUNT2 3,AOBRES,0,2 [GET POINTER TO JOB REQUEST SLIP 35LL # [IF FAILURE OCCURS, HUNT2 WILL LOOP 366= LDX 6 ANM(2) 36KW ANDN 6 3 375G SMO FX2 37K6 STO 6 AWORK1 384Q LDN 0 0 38JB LDX 4 A1+6(3) 3942 ANDX 4 WORDSIXMASK(1) 39HL TXU 0 4 [WILL USER MONITOR OWN ILLEGALS? 3=3= BCC PFA08 [NO, SO END MINISWAP PROCEDURES 3=GW #SKI GENIE<1$1 3?2G ( 3?G6 LDX 6 APROCESSOR(2) 3?^Q ANDN 6 4 3#FB BZE 6 PFA08 [NOT OWN MONIT UNLESS B21 SET 3#^2 ) 3*DL #SKI GENIE 3*Y= ( 3BCW LDCT 6 #200 3BXG ANDX 6 AMON(2) 3CC6 BNZ 6 PFA08 [NOT OWN MONITORING IF B1 SET 3CWQ ) 3DBB #SKI K6FAIL>699-699 3DW2 TRACE 1,FAILOWNM 3F*L ADN 0 1 [MARK MONITOR OWN ILLEGALS 3FT= LDX 6 A1+6(3) [GET USER MONITOR ADDRESS 3G#W STO 4 A1+6(3) [SAVE OWN MONIT ADDR. WITH B0,1 CLEAR 3GSG SMO 5 3H#6 LDX 4 0 [GET USER LAST POSITION 3HRQ SMO 5 3J?B STO 4 6 [STORE OLD ONR IN USER 14 3JR2 SMO 5 3K=L STO 6 0 [USER WILL NOW 'RESUME' AT THE 3KQ= # [START OF HIS MONITORING ROUTINE 3L9W SMO 5 3LPG LDX 4 1 3M96 ANDX 4 WORNINEMSK2(1) 3MNQ LDX 6 WORNINEMSK1(1) 3N8B SMO 5 3NN2 ANDS 6 1 3P7L LDX 2 FX2 3PM= ADX 4 AWORK1(2) 3Q6W LDN 3 ACOMMUNE4(2) 3QLG LDN 2 ZMEM(1) 3R66 MOVE 2 3 3RKQ SMO 5 3S5B STO 4 7 [B22,23 HOLD MEMBER NO. 3SK2 LDX 4 0 [SAVE OWN/NOT OWN CONDITION 3T4L PFA08 3TJ= LDX 6 4 [SAVE OWN/NOT OWN CONDITION 3W3W WORDFIN [DON'T NEED OBJECT PROGRAM ANY MORE 3WHG #SKI K6FAIL>699-699 3X36 TRACE 6,PFSTATE1 3XGQ LDX 4 CONTEXT(2) [CHECK IF BREAK-IN 3Y2B SLL 4 9 [ALIGN RIGHT FLAG BIT 3YG2 BPZ 4 PFA4 [NOT BREAK-IN 3Y^L PFA1 3^F= #SKI K6FAIL>699-699 3^YW TRACE 1,PFA1 42DG LDEX 7 EXT+10(2) 42Y6 LDX 3 FX2 43CQ PFA2 HUNT2 3,CPB,CALAS [FIND THE CALAS 43XB LDEX 4 CPBCPLEV(3) [BLOCK AT FIRST 44C2 TXU 4 7 [BRK-IN LEVEL 44WL BCS PFA2 45B= LDX 4 CPBFSD(3) [FETCH CATEGORY 45TW #SKI K6FAIL>699-699 46*G TRACE 4,CATEGIN 46T6 LDX 5 4 [SAVE IT 47#Q ANDN 4 #77 [ONLY BITS 18-23 WANTED 47SB SBN 4 5 [WE WANT CATEGORY 5 48#2 BNZ 4 PFA4 [IF NOT ZERO WE DO NOT CHANGE 48RL SBN 6 1 [OWN/NOT OWN MONITOR 49?= BZE 6 PFA11 [OWN MONIT. SO THAT'S ALL 49QW ANDX 5 PFCATCH(1) [MASK OUT LAST 6 BITS 4==G ORN 5 #6 [MAKE IT 6 4=Q6 STO 5 CPBFSD(3) [STORE NEW CATEGORY 4?9Q PFA4 [START OF MAIN PROCESSING 4?PB #SKI K6FAIL>699-699 4#92 TRACE 1,PFA4 4#NL HUNTW 3,APED,ANEVENT 4*8= BNG 3 PFA42 [NONE FOUND 4*MW FREECORE 3 [BLOCK FOUND SO FREE IT 4B7G BRN PFA44 [ONE OR THE OTHER NOT BOTH 4BM6 PFA42 HUNTW 3,APED,ADELETE 4C6Q BNG 3 PFA44 [NONE FOUND 4CLB FREECORE 3 [BLOCK FOUND SO FREE IT 4D62 PFA44 4DKL SPARANOT 1 [GET USER MESSAGE, IF ANY 4F5= HUNT 3,CPB,CUNI [FIND BLOCK FORMED BY PARA- MACRO 4FJW LDX 6 ANUM(3) [TEST FOR NO PARAMETERS 4G4G BNG 6 PFA5 [IF NEGATIVE 4GJ6 BNZ 6 PFA6 [PARAMETER EXISTS 4H3Q PFA5 [WHAT TO DO WHEN NONE 4HHB #SKI K6FAIL>699-699 4J32 TRACE 1,PFA5 4JGL NAME 3,APED,ANEVENT [FROM CPB/CUNI TO APED/ANEVENT 4K2= PHOTO 5 [TRY NO HUNT LATER 4KFW ALTLEND 3,XBLEN,APED,ANEVENT [JUST PREFACE LENGTH 4K^G TESTMOVE 5,PFA55 4LF6 PFA53 4LYQ #SKI K6FAIL>699-699 4MDB TRACE 1,PFA53 4MY2 HUNTW 3,APED,ANEVENT 4NCL PFA55 [HUNT OR NO HUNT 4NX= #SKI K6FAIL>699-699 4PBW TRACE 1,PFA55 4PWG STOZ APEDSP1+2(3) [ZERO FOR CHARACTER COUNT 4QB6 LDX 7 AWORK1(2) 4QTQ STO 7 APEDSP1(3) [PUT MEMBER NO. IN APED/ANEVENT BLOCK 4R*B LDN 5 APEDFAIL [CONTROL VALUE FOR IF COMMAND 4RT2 STO 5 APEDSP1+1(3) 4S#L #SKI G4 4SS= LDN 5 7 [NO. OF WDS. FOR PARAMS. +1 WORD EACH 4T?W #SKI G3 4TRG LDN 5 3 [2-WORD TIME + 1 WORD EACH PARAM. 4W?6 BZE 7 PFA57 4WQQ ADN 5 4 [3-WORD PARAM FOR MEMBER NO. + 1 WORD 4X=B PFA57 OUTBLOCK 5 [GET THE MONITORING FILE BLOCK 4XQ2 OUTMILL [TAG WITH THE TIME 4Y9L #SKI G4 4YP= ( 4^8W #SKI JNLPACK 4^NG ( 5286 LDX 4 AWORK3(2) 52MQ LDX 5 AWORK4(2) 537B OUTPACKC 4,1,QUOTA [OUTPUT QUOTA 53M2 OUTPACKC 5,1,PAGETURN [OUTPUT PAGETURNS 546L ) 54L= #SKI JNLPACK<1$1 555W ( 55KG OUTNUM AWORK3(2),0 [OUTPUT QUOTA 5656 OUTNUM AWORK4(2),0 [OUTPUT PAGETURNS 56JQ ) 574B ) 57J2 BZE 7 PFA10 583L LDX 3 GSIGN 58H= ADX 3 2 592W DCH 7 ACOMMUNE6(3) [APPEND MEMBER NO. TO CHAR. STRING 59GG OUTPARN 11,ACOMMUNE4 [PREPARE PARAM FOR MEMBER NO. 5=26 # NO MESSAGE 5=FQ BRN PFA10 [CARRY ON SERGEANT 5=^B PFA6 [CARRY ON SMILING 5?F2 #SKI K6FAIL>699-699 5?YL TRACE 1,PFA6 5#D= LDEX 5 ANUM(3) [GET CHARACTER COUNT 5#XW SBN 5 41 [MAX. TO BE PASSED ON ANYWAY (+1) 5*CG BNG 5 PFA7 [40 OR LESS CHARACTERS. 5*X6 PFA65 5BBQ #SKI K6FAIL>699-699 5BWB TRACE 1,PFA65 5CB2 LDN 5 40 [TRUNCATE TO 40 5CTL BRN PFA8 [SKIP ROUND TO GET CORE 5D*= PFA7 [USE ACTUAL SIZE 5DSW #SKI K6FAIL>699-699 5F#G TRACE 1,PFA7 5FS6 ADN 5 41 [BACK TO NORMAL 5G?Q PFA8 [CONFLUENCE OF CODE STREAMS 5GRB #SKI K6FAIL>699-699 5H?2 TRACE 1,PFA8 5HQL LDX 6 5 [SAVE COUNT FOR GETTING CORE 5J== LDX 7 6 [AND AGAIN TO MOVE MESSAGE 5JPW ADN 5 XBLEN*4+3 [ROUND AND INCLUDE APED/ANEVENT 5K9G SRL 5 2 [REDUCE TO WORDS 5KP6 SETUPCORE 5,5,APED,ANEVENT [GET SPACE FOR AND NAME NEW BLOCK 5L8Q HUNT 3,CPB,CUNI [GET MESSAGE BLOCK BACK 5LNB LDX 4 5 [SAVE BLOCK START ADDRESS 5M82 ADN 7 3 [ROUND FOR WORD MOVE 5MML SRL 7 2 [REDUCE TO WORDS 5N7= ADN 3 APARA [MOVE UP TO MESSAGE -FROM- 5NLW ADN 4 APEDSP1+XBLEN [MOVE UP TO MESSAGE -TO- 5P6G SMO 7 [PURE PROCEDURE MODIFY 5PL6 MOVE 3 0 [MOVE THE MESSAGE 5Q5Q LDX 3 5 [SWITCH FOR GOOD MODIFIER 5QKB PFA9 [OTHER INITIALIZATION 5R52 #SKI K6FAIL>699-699 5RJL TRACE 1,PFA9 5S4= STO 6 APEDSP1+2(3) [CHARACTER COUNT 5SHW LDX 5 7 [SAVE MESSAGE WORD COUNT 5T3G LDX 7 AWORK1(2) 5TH6 STO 7 APEDSP1(3) [MEMBER NO. 5W2Q LDN 4 APEDFAIL [CONTROL VALUE FOR IF COMMAND 5WGB STO 4 APEDSP1+1(3) 5X22 #SKI G4 5XFL ADN 5 9 [NO. OF WDS. FOR PARAMS. +1 WORD EACH 5X^= #SKI G3 5YDW ADN 5 5 [TWO WORD TIME + ONE WORD EACH PARAM 5YYG BZE 7 PFA91 5^D6 ADN 5 3 [THREE WORD PARAM FOR MEMBER NO. 5^XQ PFA91 OUTBLOCK 5 [GET THE MONITORING FILE BLOCK 62CB OUTMILL [TIME TAG 62X2 #SKI G4 63BL ( 63W= #SKI JNLPACK 64*W ( 64TG LDX 4 AWORK3(2) 65*6 LDX 5 AWORK4(2) 65SQ OUTPACKC 4,1,QUOTA [OUTPUT QUOTA 66#B OUTPACKC 5,1,PAGETURN [OUTPUT PAGETURNS 66S2 ) 67?L #SKI JNLPACK<1$1 67R= ( 68=W OUTNUM AWORK3(2),0 [OUTPUT QUOTA 68QG OUTNUM AWORK4(2),0 [OUTPUT PAGETURNS 69=6 ) 69PQ ) 6=9B BZE 7 PFA92 6=P2 LDX 3 GSIGN 6?8L ADX 3 2 6?N= DCH 7 ACOMMUNE6(3) [APPEND MEMBER NO. TO CHAR. STRING 6#7W OUTPARN 11,ACOMMUNE4 [PREPARE PARAM FOR MEMBER NO. 6#MG BRN PFA93 6*76 PFA92 OUTNULL [MEMBER NO. NOT APPLICABLE 6*LQ PFA93 OUTPARAM 6,APEDSP1+XBLEN,APED,ANEVENT [PREPARE MON. OUT BLOCK 6B6B PFA10 6BL2 #SKI K6FAIL>699-699 6C5L TRACE 1,PFA10 6CK= #SKI G4 6D4W MONOUT JZFAILEDG4 6DJG #SKI G3 6F46 MONOUT JZFAILED [SHOOT IT AWAY 6FHQ # PRODUCES - TIME FAILED IN MEMBER N:MESSAGE (N>0) 6G3B # OR - TIME FAILED :MESSAGE (N=0) 6GH2 PFA11 6H2L #SKI K6FAIL>699-699 6HG= TRACE 1,PFA11 6H^W ENDCOM RETURN TO COMMAND PROCESSOR 6JFG PFERR [BADSWAP-IN 6J^6 GEOERR 1,FAILGETW 6KDQ ZBRK COMBRKIN 6KYB MENDAREA 20,K100FAIL 6LD2 #END ^^^^ ...26246436000100000000