{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: DEMAND860)}} ====== DEMAND860 ====== (George Source) **Macros used:** [[george:macro:BXL|BXL]], [[george:macro:DOWN|DOWN]], [[george:macro:FREEBUFF|FREEBUFF]], [[george:macro:FREECORE|FREECORE]], [[george:macro:HUNTW|HUNTW]], [[george:macro:INFORMX|INFORMX]], [[george:macro:LONGOFF|LONGOFF]], [[george:macro:LONGSTOP|LONGSTOP]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETNCORE|SETNCORE]], [[george:macro:TESTBRKIN|TESTBRKIN]], [[george:macro:TRACE|TRACE]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]] 22FL #LIS K0DEMAND>K0ALLGEO>K0GREATGEO 22^= #SEG DEMAND60 [RICHARD GRIMWADE 23DW 8HDEMAND 23YG # THIS SEGMENT IMPLEMENTS THE DEMAND AND OUTPAUSE MACROS 24D6 # DEMAND : K1DEMAND (SEE PRM FOR MACRO DEFN) 24XQ # DEMAND USES THE OUTPAUSE CODE TO DETERMINE WHEN TO O/P THE 25CB # SYSTEM REQUEST 25X2 # IF DEMAND GOES UP FOR AN EVENT ACCS4-7 (INC) ARE SAVED IN AN 26BL # ADATA/ADEMAND BLOCK:- 26W= # X3 :CONTAINS A REPLACER FOR UPPLUS 27*W # X4 CONTAINS THE MESSAGE IDENTIFIER 27TG # X5 :CONTAINS TIME DELAY BEFORE MESSAGE O/P 28*6 # X6 :CONTAINS TIME FACTOR BETWEEN REPEATS 28SQ # X7 :CONTAINS A COPY OF EXECS 29#B # EXEC1 :CONTAINS MESS IDEN AND IS SET -VE ON REENTRY 29S2 # EXEC2 :CONTAINS TIME FACTORS 2=?L # EXEC3 :CONTAINS STATE OF WAIT COMPATIBLE WITH OUTPAUSE 2=R= # OUTPAUSE:K2DEMAND 2?=W # OUTPAUSE USES X0-X3 ONLY AND KEEPS THE STATE OF THE WAIT IN 2?QG # EXEC3 : THIS HAS B0 SET IF REENTRY AND THE REST OF THE WORD 2#=6 # IS THE TIME (IN SPRING CLEANS FOR THE NEXT EXIT 2#PQ SEGENTRY K1DEMAND,SENTRY1 2*9B SEGENTRY K2DEMAND,SENTRY2 2*P2 #DEF XEC1=EXEC1 2B8L #DEF XEC2=EXEC2 2BN= #DEF XEC3=EXEC3 2C7W [ 2CMG [ WORDS IN THE ADATA/ADEMAND BLOCK 2D76 #DEF XACCS=A1 [4 WORDS; COPIES X4-7 INCLUSIVE 2DLQ #DEF XROUTE=XACCS+4 [ROUTING PARAMETER COPIED FROM AWORK4 2F6B #DEF XDEMANDLEN=XROUTE+1-XACCS [LOGICAL LENGTH OF BLOCK 2FL2 [ 2G5L X1 60*60/K9*1000*24 2GK= SENTRY2 2H4W LDN 7 1 [MARKER FOR MACRO 2HJG SR1 2J46 LDXC 0 XEC3(2) 2JHQ BCS TIME [J IF REENTRY 2K3B LDN 0 1000/K9 2KH2 MPY 0 XEC3(2) 2L2L LDX 0 1 2LG= MPY 0 ASYSTEMMESS [CALCULATE TIME FOR W/UP 2L^W ADX 1 JTIME 2M45 ... SMO FX1 2M6# ... BXL 1 X1,UNDER 2M8H ... SMO FX1 2M=Q ... SBX 1 X1 2M#^ ... ORX 1 CACT [B1 IS MIDNIGHT MARKER 2MC8 ...UNDER 2MFG ORX 1 GSIGN [SET -VE TO INDICATE REENTRY 2M^6 STO 1 XEC3(2) 2N6# ...#UNS FREEBUFF 2N7K ... LDN 0 XEC1(2) 2N8W ... LDN 1 AWORK1(2) 2N=7 ... MOVE 0 3 2N?G ... FREEBUFF [ FREES FURBS AND WRITES AWAY FUWBS TO CURRENT ACTIVITY 2NDQ LDN 3 0 [SET MARKER = REPLACER FOR B-IN 2NNJ ... BRN WAIT2 2NYB WAIT LDX 2 FX2 2PD2 LDN 0 XEC1(2) 2PXL LDN 1 AWORK1(2) 2QC= MOVE 0 3 [SAVE TIME FACTORS ETC. 2QWW ...WAIT2 LONGSTOP XBI,SPUR 2RBG LDN 0 AWORK1(2) 2RW6 LDN 1 XEC1(2) 2S*Q MOVE 0 3 2STB ADN 3 1 [REPLACER FOR EVENT 2T*2 BZE 7 XEVEN [J IF DEMAND ENTRY 2TSL MAC UPPLUS 0(3) 2W#= SPUR LDN 0 AWORK1(2) 2WRW LDN 1 XEC1(2) 2X?G MOVE 0 3 2XR6 LDN 3 3 [REPLACER FOR TIME OR SPURIOUS 2Y=Q XBI HUNTW 1,GMON,AOUT 2YQB BZE 3 YBI [J IF B-IN 2^=2 BNG 1 ZTIME 2^PL LDXC 0 A1(1) 329= BCC ZTIME 32NW LDN 3 2 [REPLACE FOR CANTDO 338G YBI BNG 1 NBLK [NO BLOCK TO FREE 33N6 FREECORE 1 347Q NBLK LONGOFF 34MB BNZ 7 MAC 3572 BZE 3 XBIN [J IF B-IN 35LL BRN XCANT 366= ZTIME 36KW NGNC 0 1 375G ANDX 0 XEC3(2) 37K6 TIME LDX 1 JTIME 384Q LDN 3 0 [REPLACER MARKER 38JB TXL 1 0 3942 BCS X3 39HL X2 3=3= LDN 3 3 3=GW BZE 7 XTIME [J IF TIME 3?2G #SKI K6DEMAND>99-99 3?G6 TRACE JTIME,TIME UP 3?^Q BRN MAC 3#FB ...X3 LDCT 2 #200 3#^2 ... ANDX 2 0 3*DL ... BZE 2 WAIT [CANT BE TIME UNLESS MIDNIGHT MARKER SET 3*Y= ... ERX 0 2 3BCW ... SMO FX1 3BXG ... LDX 2 X1 3CC6 ... SRA 2 1 3CWQ ... BXL 2 JTIME,WAIT [J IF NOT GONE PAST MIDNIGHT 3DBB ... LDX 2 FX2 3DW2 ... BRN TIME [CHECK AGAIN 3G#W NRENT LDX 4 XEC1(2) [MESSAGE ID 3GSG LDX 5 XEC2(2) [TIME LAG 3H#6 ANDN 5 4095 3HRQ LDX 6 XEC2(2) [TIME FACTOR 3J?B SRL 6 12 3JR2 STO 6 XEC3(2) 3K=L LDN 7 0 3KQ= BNZ 5 SR1 [OUTPAUSE 3L9W NPAUS TESTBRKIN XBIN 3LPG LDEX 0 CLONG1(2) 3M96 BNZ 0 ZINF [J IF NO EVENT ALROADY 3MNQ STOZ XEC3(2) 3N8B XEVEN LDX 7 XEC3(2) 3NN2 SETNCORE XDEMANDLEN,2,ADATA,ADEMAND 3P7L LDN 1 4 3PM= ADN 2 XACCS 3Q6W MOVE 1 4 [SAVE ACCS 3QLG SMO FX2 3R66 LDX 0 AWORK4 3RKQ STO 0 XROUTE-XACCS(2) [KEEP ROUTING PARAMETER 3S5B LDN 3 2 [REPLACER FOR EVENT 3SK2 #SKI K6DEMAND>99-99 3T4L TRACE JTIME,EVENT 3TJ= BRN MAC 3W3W XCANT1 3WHG LONGOFF 3X36 XCANT LDN 3 0 [REPLACER FOR CANTDO 3XGQ #SKI K6DEMAND>99-99 3Y2B TRACE JTIME,CANTDOUP 3YG2 BRN MAC 3Y^L XBIN LDN 3 1 [REPLACER B-IN 3^F= #SKI K6DEMAND>99-99 3^YW TRACE JTIME,BRKIN 42DG BRN MAC 42Y6 SENTRY1 43CQ #SKI K6DEMAND>199-199 43XB ( 44C2 TRACE XEC1(2),DEMAND1 44WL TRACE XEC2(2),DEMAND2 45B= ) 45TW LDX 0 ACOMMUNE1(2) 46*G STO 0 AWORK4(2) 46T6 LDXC 4 XEC1(2) 47#Q BCC NRENT [J IF NOT REENTRY 47SB HUNTW 1,GMON,AOUT 48#2 BNG 1 NTHER [ TEST FOR CANTDO 48RL LDXC 0 A1(1) 49?= BCS XCANT1 [J IF CANTDO 49QW NTHER MHUNTW 1,ADATA,ADEMAND 4==G ADN 1 XACCS 4=Q6 LDN 2 4 4?9Q MOVE 1 4 [RESTORE ACCS 4?PB LDX 2 FX2 4#92 LDX 0 XROUTE-XACCS(1) [RESTORE ROUTING PARAMETER 4#NL STO 0 AWORK4(2) [RESTORE ROUTING PARAMETER 4*8= LDX 0 6 4*MW SLL 0 12 4B7G ORX 0 5 4BM6 STO 0 XEC2(2) [RESTORE TIMING WORD 4C6Q MFREEW ADATA,ADEMAND 4CLB BZE 7 NPAUS [J IF NO WAIT 4D62 STO 7 XEC3(2) 4DKL LDN 7 0 [SET MARKER 4F5= BRN ZTIME [CHECK IF TIME YET 4FJW XTIME HUNTW 1,GMON,AOUT 4G4G LDN 7 0 [SET MARKER 4GJ6 BPZ 1 XBUFF [J IF BLOCK THERE 4H3Q ZINF LDN 0 XEC1(2) 4HHB LDN 1 AWORK1(2) 4J32 MOVE 0 3 [SAVE EXEC WORDS 4JGL INFORMX AWORK4(2),4,0 [OUTPUT MESSAGE 4K2= WSR2 4KFW LDN 0 AWORK1(2) 4K^G LDN 1 XEC1(2) 4LF6 MOVE 0 3 [RESTORE 4LYQ SR2 LDX 0 XEC2(2) 4MDB SRL 0 12 4MY2 STO 0 XEC3(2) 4NCL BRN SR1 4NX= XBUFF LDN 0 XEC1(2) 4PBW LDN 1 AWORK1(2) 4PWG MOVE 0 3 4QB6 DOWN MONFILE,5 [RE-OUTPUT 4QTQ BRN WSR2 4R*B MENDAREA 20,GAPDEMAND 4RT2 #END ^^^^ ...45755417000400000000