(George Source)
Macros used: ACROSS, AND, ANOTHER, BC, BITDEFS, BS, BSXD, CHAIN, CLOSE, CLOSEDIR, CLOSETHAW, CLOSETOP, COOR1, COOR1X, DO, DOWN, ELSE, ELSF, FCAJO, FI, FREECORE, FSHENTRY, GEOERR, IF, JOBLOCK, KEEPREP, LFBBS, LFBBUS, LFBITCLR, LFBITSET, LFEND, LFHUNT, LFTHAW, LONGON1, MBSXD, MFREE, MFREEW, MHUNT, MHUNTW, NAME, NAMETOP, OPEN, OR, PICKREP2, PUTREP2, REPEAT, RV, SAWCEJ, SEGENTRY, SETNCORE, SETPROP, SETREP, SETREP2, STARTACT, STEP, TERMON, THEN, TOPFCB, UNNORM, VFREE, WHILE
22FL #OPT K0LISTOPEN=0 22^= #LIS K0LISTOPEN 23DW #SEG LISTOPEN [ COMM 23YG 8HLISTOPEN 248# ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1983 24D6 SEGENTRY K1LISTOPEN,Z1LISTOPEN 24J3 ... FSHENTRY K2LISTOPEN,,Z2LISTOPEN,Z2LISTOPEN 24MY ... FSHENTRY K3LISTOPEN,,Z3LISTOPEN,Z3LISTOPEN 24RT ... FSHENTRY K4LISTOPEN,,Z4LISTOPEN,Z4LISTOPEN 24TR ... FSHENTRY K5LISTOPEN,Z5LISTOPEN,,Z5LISTOPEN 24W= ... SEGENTRY K6LISTOPEN,Z6LISTOPEN 24WP ... SEGENTRY K7LISTOPEN,Z7LISTOPEN 24X8 ... SEGENTRY K8LISTOPEN,Z8LISTOPEN 24X# ...[ 24XD ...[ ENTRY POINTS K50,K51 USED BY THE LFSTARTJL MACRO 24XJ ...[ 24XQ [ CARE MUST BE TAKEN WITH THE FOLLOWING INTERLOCKS: 25CB [ 1. WHEN THE MAINFILE IS OPENED,IT IS REQUIRED TO GET THE TIME AND 25X2 [ DATE LAST ACCESSED.THIS INFORMATION CAN BE OBTAINED FROM THE FILE/ENT 26BL [ AND WILL BE ACCURATE UNLESS THE DIRECTORY IS ABOUT TO BE UPDATED BY 26W= [ AN AUTOCLOSE.IN THIS CASE A BIT WILL BE SET IN THE FCB,AND THE TIME 27*W [ LAST ACCESSED IS TAKEN TO BE THE CURRENT TIME.TO MAINTAIN AN INTERLOCK 27TG [ IT IS NECESSARY TO KEEP THE DIRECTORY OPEN WHILE THIS IS DONE 28*6 [ 28SQ [ 2. IF THE OPEN FAILS BECAUSE THE FILE IS OFFLINE,A RETRIEVE IS ISSUED. 29#B [ HOWEVER TO ENSURE THAT ITS RETRIEVAL IS NOT MISSED,A KEY BLOCK IS 29S2 [ SET UP AND CHAINED IN THE LFCHAIN,TOGETHER WITH A COPY OF THE FABSNB. 2=?L [ THIS OVERHEAD WILL ONLY BE ENCOUNTERED IF A MULTIFILE 2=R= [ ELEMENT IS OFFLINE ( REMEMBER WE DONT CHECK FOR OFFLINE MULTIFILES 2?=W [ IN LISTFREE ) OR IF A FROZEN FILE HAS BEEN THROWN OFFLINE 2?QG [ 2#=6 [ 2#PQ [*********************************************************************** 2*9B [ 2*P2 [ PRESET DATA 2B8L [ 2BN= [*********************************************************************** 2C7W [ 2CMG [ BITS IN CPAT 2D76 [ 2DLQ BITDEFS JOBEVENTS,0,WBBREAKIN,,WBNOTICED 2F6B BITDEFS EXT+9,22,WBSERVICE 2FL2 [ 2G5L PLISTING 12H#LISTING OF 2GK= [ 2H4W TABFILE 2HJG #40000012 [ GRAPHIC 2J46 0 [ AMORPHOUS 2JHQ #40000002 [ NORMAL 2K3B #40000022 [ ALLCHAR 2KH2 #00100000 [ PAPER TAPE PUNCH - MK6 2L2L [ 2LG= [ MAIN FILE TYPE BITS FOR GOUT/INFO 2L^W TABMTYPE 2MFG BSXD 4,BLFBASIC 2M^6 LDN 4 0 2NDQ MBSXD 4,BLFNORM,BLFBASIC 2NYB MBSXD 4,BLFALLC,BLFBASIC 2PD2 BSXD 4,BLFTPMK6 2PXL [ 2QC= [ SETUP FILE TYPE BITS FOR GOUT/INFO 2QWW TABSTYPE 2RBG BSXD 4,BLFSETBAS 2RW6 LDN 4 0 2S*Q MBSXD 4,BLFSETNORM,BLFSETBAS 2STB MBSXD 4,BLFSETALLC,BLFSETBAS 2T*2 LDN 4 0 2TSL [ 2W#= [*********************************************************************** 2WRW [ 2X?G SFILETYPE 2XR6 [ 2Y=Q [*********************************************************************** 2YQB [ 2^=2 [ CONVERT FILE TYPE IN FILE/ENT TO TYPE IN GOUT/INFO 2^PL [ 329= [ X6 = TABMTYPE OR TABSTYPE IE. MAIN OR SETUP FILES 32NW [ 338G [ ON EXIT X1 -> GOUT/INFO 33N6 [ 347Q MHUNT 1,FILE,ENT 34MB LDX 4 ETM(1) 3572 LDX 1 FX1 35LL WHILE 4,U,TABFILE(1) [ FILE TYPE NOT FOUND 366= DO 36KW ADN 1 1 375G REPEAT 37K6 SMO 6 384Q OBEY 0(1) [ TYPE BIT(S) IN X4 38JB MHUNT 1,GOUT,INFO 3942 ORS 4 GFTY(1) [ INTO GOUT/INFO 39HL EXIT 7 0 3=3= [ 3=GW [ 3?2G [*********************************************************************** 3?G6 [ 3?^Q SOPEN 3#FB [ 3#^2 [*********************************************************************** 3*DL [ 3*Y= [ OPEN A FILE 3BCW [ 3BXG [ X1 -> COPY OF A FILE/FABSNB 3CC6 [ 3CWQ [ ON EXIT 3DBB [ X2 = FX2 3DW2 [ 3F*L [ 1) REPLY OK ( OPEN SUCCESSFUL ) 3FT= [ FILE/ENT EXISTS 3G#W [ COPY OF FILE/FABSNB CALLED FILE/FABSNB 3GSG [ 3H#6 [ 2) REPLY MAG ( FILE OFFLINE ) 3HRQ [ X3 -> GOUT/GUPDATE 3J?B [ GOUT/GUPDATE ( GMODE = 0 ) AND FILE/FABSNB ON LF CHAIN 3JR2 [ 3K=L [ 3) REPLY NOFILE ( FILE DOES NOT EXIST ) 3KQ= [ AWORK2 = GMODE 3L9W [ GOUT/INFO ( GMODE = 0 ) AND GOUT/INFO4 ON ACTIVITY CHAIN 3LPG [ 3M96 SBX 7 FX1 3MNQ SMO FX2 3N8B STO 7 AWORK1 3NN2 NAMETOP 1,FILE,FABSNB 3P7L [ 3PM= [ REENTRY POINT FROM WITHIN THE SUBROUTINE 3Q6W [ 3QLG SOPENA 3R66 [ 3RKQ [ 3S5B OPEN (GEOERR),READ,LEAVE,NOWAIT,ERASING,DIROPEN,REPLY,QUERY 3SK2 IF REP2,OK 3T4L THEN 3TJ= TOPFCB 1 3W3W IF MBAS,1,BFUWB,BFSOLE [ DIRECTORY ENTRY TO BE UPDATED 3WHG [ BY AUTOCLOSE AFTER BEING WRITTEN 3X36 THEN 3XGQ MHUNTW 1,FILE,ENT 3Y2B LDX 0 EDATE [ DO THE UPDATE FOR HEADINGS 3YG2 STO 0 EWRITDAY(1) 3Y^L LDX 0 CLEANCT 3^F= STO 0 EWRITTIME(1) 3^YW FI 42DG MHUNT 1,FILE,FABSNB 42Y6 IF BC,1,BFABWORK [ NOT A WORKFILE 43CQ THEN 43XB CLOSEDIR [ DIRECTORY AT LEVEL 1 44C2 FI 44WL ELSE 45B= PICKREP2 6 [ SAVE OPEN REPLY 45TW VFREE FILE,ENT 46*G MHUNT 1,FILE,FABSNB 46GN ... IF RPN2,CLOSEAB 46MW ... THEN 46T6 IF BC,1,BFABWORK [ NOT A WORKFILE 47#Q THEN 47SB CLOSETOP [ CLOSE DIRECTORY AT LEVEL 0 48#2 FI 48HS ... FI 48RL PUTREP2 6 [ RESET OPEN REPLY 49?= IF REP2,CANT 49QW THEN 4==G BRN SOPENA [ TRY AGAIN 4=Q6 [-------------- 4?9Q ELSF REP2,MAG [ OFFLINE 4?PB THEN 4#92 ANOTHER FILE,FABSNB 4#NL LDX 2 FX2 4*8= MHUNT 1,GOUT,INFO 4*MW LDX 0 GMODE(1) 4B7G STO 0 AWORK2(2) 4BM6 LDX 0 GOUTKEY1(1) 4C6Q STO 0 AWORK3(2) 4CLB LDX 0 GOUTKEY2(1) 4D62 STO 0 AWORK4(2) 4DKL STOZ GMODE(1) 4F5= NAME 1,GOUT,GKEY 4FJW CHAIN 1,BLF+1 [ PUT GOUT/GKEY AND FILE/FABSNB ON 4G4G CHAIN 3,BLF+1 [ TO NOTICE FILE COMING ONLINE 4GJ6 RV 4H3Q LFHUNT 7,AWORK3(2),AWORK4(2) [ FIND GOUT/GKEY ON LF CHAIN 4HHB IF EITHER,REP2,ONLINE [ ONLINE BY RV MACRO 4J32 OR BS,3,BLFCLOSE [ ONLINE DURING RV MACRO 4JGL THEN 4K2= LDX 1 FPTR(3) [ -> FILE/FABSNB 4KFW FREECORE 1 4K^G NAME 3,GOUT,INFO 4LF6 CHAIN 3,2 [ RESET GOUT/INFO ON ACTIVITY C 4LYQ LDX 0 AWORK2(2) 4MDB STO 0 GMODE(3) 4MY2 BRN SOPENA [ OPEN AGAIN 4NCL [-------------- 4NX= ELSF REP2,OK 4PBW THEN 4PWG NAME 3,GOUT,GUPDATE 4QB6 SETREP2 MAG 4QTQ ELSF REP2,LOST [ NO VALID INC. NO. 4R*B THEN 4RT2 LDX 1 FPTR(3) [ -> FILE/FABSNB 4S#L NAMETOP 1,GOUT,INFO4 4SS= NAME 3,GOUT,INFO [ NB. GMODE = 0 4T?W CHAIN 1,2 4TRG CHAIN 3,2 [ NOW ON ACTIVITY CHAIN 4W?6 SETREP NOFILE 4WQQ ELSE 4X=B GEOERR 1,LFRVREP 4XQ2 FI 4Y9L ... ELSF REP2,NOFILE [ FILE NOT EXIST - 4YP= [ OR SPARSE MULTIFILE 4^8W THEN 4^#2 ... MHUNTW 1,GOUT,INFO 4^C6 ... LDX 0 GMODE(1) 4^G= ... STO 0 AWORK2(2) [AWORK = COPY OF GMODE 4^KB ... STOZ GMODE(1) [GMODE = ZERO - DELETE ENTRY FROM SY 4^NG MHUNT 1,FILE,FABSNB 5286 NAMETOP 1,GOUT,INFO4 5295 ... ELSF REP2,CLOSEAB [ FILE NOT EXIST - THEN 52=4 ... THEN 52?3 ... MHUNT 1,FILE,FABSNB 52#2 ... IF BC,1,BFABWORK 52#^ ... THEN 52*Y ... CLOSEDIR 52BX ... FI 52CW ... CLOSETHAW 52DT ... SETREP NOFILE 52FS ... MHUNTW 1,GOUT,INFO 52GR ... LDX 0 GMODE(1) 52HQ ... STO 0 AWORK2(2) [AWORK = COPY OF GMODE 52JP ... STOZ GMODE(1) [GMODE = ZERO - DELETE ENTRY FROM SY 52KN ... MHUNT 1,FILE,FABSNB 52LM ... NAMETOP 1,GOUT,INFO4 52MQ ELSE 537B GEOERR 1,LFOPEN 53M2 FI 546L FI 54L= LDX 2 FX2 555W LDX 7 AWORK1(2) 55KG ADX 7 FX1 5656 EXIT 7 0 56JQ [ 574B [ 57J2 [*********************************************************************** 583L [ 58H= SFINDCPA 592W [ 59GG [*********************************************************************** 5=26 [ 5=FQ [ 5=^B [ FIND CPA FOR JOB WHICH ISSUED ONLINE REQUEST 5?F2 [ NO NEED TO CHECK AUXILARLY STYLE AS ONLY URGENCY & JOB NO. 5?YL [ 5#D= [ ON EXIT 5#XW [ X1 NEGATIVE - NOT FOUND 5*CG [ X1 POSITIVE -> CPAT 5*X6 [ 5BBQ MHUNT 1,GOUT,INFO 5BWB JOBLOCK GJOBS(1),1 5CB2 IF 1,PZ [ JOB BLOCK 5CTL FCAJO 1 5D*= AND 1,PZ [ CPAT 5DSW LDEX 0 CLNG1(1) 5F#G SBN 0 #27 5FS6 AND 0,ZE [ WAITNG FOR ONLINE 5G?Q THEN 5GRB IF BS,1,WBSERVICE [ BREAKIN LOCKED OUT 5GYJ ... AND BS,1,WBBREAKIN 5H5Q ... AND BC,1,WBNOTICED 5H?2 THEN 5HQL BC 1,WBSERVICE [ FREE LOCK 5KP6 TERMON 1,#27 [ SIMULATE BREAKIN 5L8Q NGN 1 #7777 5M82 FI 5MML ELSE 5N7= NGN 1 #7777 5NLW FI 5P6G EXIT 7 0 5PL6 [ 5Q5Q [ 5QKB [ NO CPA FOUND EXIT PATH 5R52 [ 5RJL ZNOCPA 5RM9 ... MHUNT 1,GOUT,INFO 5RPS ... IF BS,1,BLFSETUP 5RSC ... THEN 5RX2 ... CLOSE 5R^K ... FI 5S2X ...ZNOCP2 5S4= CALL 7 STIDYER 5S#4 ... MFREEW GOUT,INFO 5SHW ACROSS LISTNEXT,5 5T3G [------------------ 5TH6 [ 5W2Q [ 5WGB [ 5X22 [*********************************************************************** 5XFL [ 5X^= STIDYPROP 5YDW [ 5YYG [*********************************************************************** 5^D6 [ 5^XQ [ 62CB [ TIDY UP BLOCKS USED / SET UP 62X2 [ 63BL LDX 2 FX2 65*6 MHUNT 1,GOUT,INFO 65SQ LDX 0 GOUTKEY1(1) 66#B STO 0 AWORK1(2) 66S2 LDX 0 GOUTKEY2(1) 67?L STO 0 AWORK2(2) 67R= FREECORE 1 68=W [ 68QG [ 69=6 STIDYER 69PQ [ 6=9B [ 6=P2 VFREE APERI,APROPNOS 6?8L VFREE GOUT,INFO2 6?N= VFREE GOUT,INFO3 6#7W [ 6#MG [ 6*76 STIDYSET 6*LQ [ 6B6B [ 6BL2 VFREE FILE,ENT 6C5L VFREE FILE,FABSNB 6CK= EXIT 7 0 6CK? ...SETFE LDX 2 FX2 6CK# ... PUTREP2 6 [RESET REPLY 6CK* ... LFBITSET E,2 6CKB ... LFBITCLR F,2 6CKC ... STARTACT OUT 6CKD ... EXIT 7 0 6CKL ...[ 6CL2 ...[ 6CLB ...[*********************************************************************** 6CLQ ...[ 6CM6 ...[SETPROP SUBROUTINE 6CMG ...[ 6CMW ...[*********************************************************************** 6D3W ...# 6D4W [ 6D4Y ...#SKI ANIP 6D52 ...( 6D54 ...[ 6D56 ...[ 6D5D ...[*********************************************************************** 6D5Q ...[ 6D64 ...SLPSFIN 6D6B ...[ 6D6N ...[*********************************************************************** 6D72 ...[ 6D7# ...[ SUBROUTINE TO WAKE UP NIP CPAT AFTER CLOSING DOWN LISTFILE 6D7L ...[ CALLED ON X7 6D7Y ...[ 6D8= ... LFBBS S,2,SFIN2 [BETWEEN LISTINGS 6D8J ... LFBITCLR Q,2 [CLEAR @BEFORE FIRST LINE@ BIT 6D8W ... LFBITCLR R,2 [CLEAR @END OF LISTING@ BIT 6D98 ... LFBITSET S,2 [SET @BETWEEN LISTINGS@ BIT 6D9G ... LFBBS B,2,SBRK [BREAKIN HAS OCCURRED 6D9S ...[ WAKE UP CPAT - MACRO COMPLETED 6D=6 ...SWAKE LONGON1 AWAITNIP,JOBNO(2) 6D=D ...SFIN3 COOR1X [GO TO SLEEP 6D=Q ... GEOERR 0,NOLINK [SHOULD NOT BE FPUT HERE 6D?4 ...[ 6D?B ...[ BETWEEN LISTINGS - NIPSTART MACRO IN PROGRESS 6D?N ...SFIN2 LFBBS B,2,SBRK [BREAKIN HAS OCCURRED 6D#2 ... EXIT 7 0 6D## ...[ 6D#L ...[ BREAKIN HAS OCCURRED 6D#Y ...SBRK LFBITCLR B,2 6D*= ... LONGON1 ANIPBRK,JOBNO(2) 6D*J ... BRN SFIN3 [GO TO SLEEP 6D*W ...[ 6DB8 ...[ 6DBG ...[*********************************************************************** 6DBS ...[ 6DC6 ...SLPSCPAT 6DCD ...[ 6DCQ ...[*********************************************************************** 6DD4 ...[ 6DDB ...[ SUBROUTINE TO FIND THE CPAT OF THE NIP JOB 6DDN ...[ MUST CHECK THE BREAKIN BIT BEFORE ACCESSING CPAT 6DF2 ...[ CALLED ON X7 6DF# ...[ 6DFL ... JOBLOCK JOBNO(2),3 6DFY ... BNG 3 (GEOERR) [MUST EXIST IF BREAKIN CLEAR 6DG= ... FCAJO 3 6DGJ ... BNG 3 (GEOERR) [MUST EXIST IF BREAKIN CLEAR 6DGW ... EXIT 7 0 6DH8 ...[ 6DHG ...[ 6DHS ...) 6DJ6 ...[ 6DJG [ 6F46 [*********************************************************************** 6FHQ [ 6G3B Z1LISTOPEN 6GH2 [ 6H2L [*********************************************************************** 6HG= [ 6H^W MHUNTW 3,GOUT,INFO 6J9N ... BC 3,BLFWLSIZE 6JFG IF BS,3,BLFONLINE [ ONLINE REQUEST 6J^6 THEN 6KDQ CALL 7 SFINDCPA 6KYB ... BNG 1 ZNOCP2 [ J IF NO JOB 6LD2 MHUNT 1,GOUT,INFO 6LXL IF BS,1,BLFSETUP [ SETUP FILE 6MC= THEN 6MWW MHUNT 1,GOUT,INFO3 6NBG CALL 7 SOPEN 6NW6 IF REP2,NOFILE 6P*Q THEN 6PTB LFTHAW [ SETUP FILE 6Q*2 CALL 7 STIDYER 6QSL ACROSS LISTNEXT,9 6R#= [------------------ 6RRW ELSF REP2,MAG 6S?G THEN 6SR6 BS 3,BLFSETNAV [ SETUP FILE NOT ONLINE 6T=Q CALL 7 SFINDCPA 6TQB IF 1,NG [ NO JOB 6W=2 THEN 6WPL LDX 1 FPTR(3) 6X9= FREECORE 1 [ FREE BLOCKS ON LF CHAIN 6XNW FREECORE 3 6Y8G FI 6YN6 CALL 7 STIDYER 6^7Q ACROSS LISTNEXT,5 6^MB FI 7272 LDN 6 TABSTYPE 72LL CALL 7 SFILETYPE 736= CALL 7 STIDYSET 73KW FI 745G CALL 7 SFINDCPA 74K6 BNG 1 ZNOCPA [ J IF NO JOB 754Q SETPROP XOCANT,XOCANT 75JB XOCANT 75S8 ... PICKREP2 6 [SAVE REPLY 7642 CALL 7 SFINDCPA 76HL BNG 1 ZNOCPA 773= IF RPN2,OK [ PROPERTIES NOT ON DEVICE 77GW THEN 77KF ... MHUNT 1,GOUT,INFO 77N4 ... IF BS,1,BLFSETUP 77QM ... THEN 77T= ... CLOSE 77XT ... FI 782G CALL 7 STIDYPROP 78=# ... CALL 7 SETFE 78G6 COOR1 78^Q [---- 79FB FI 79^2 BS 1,WBSERVICE [ LOCK OUT BREAKIN IN JOB 7=DL LDX 2 FX2 7=Y= STOZ ALFTRANS(2) [ ACCOUNTING WORDS 7?CW STOZ ALFWORDS(2) 7?DK ...# 7?XG ELSE 7#C6 MHUNT 1,GOUT,INFO2 [ MAIN FILE FABSNB 7#WQ CALL 7 SOPEN 7*BB IF REP2,NOFILE 7*W2 THEN 7B*L CALL 7 STIDYER 7BT= ACROSS LISTNEXT,9 7C#W [------------------ 7CSG ELSF REP2,MAG 7D#6 THEN 7DRQ BS 3,BLFNAV [ MAIN FILE NOT ONLINE 7F?B CALL 7 STIDYER 7FR2 ACROSS LISTNEXT,5 7G=L [------------------ 7GQ= FI 7H9W MHUNT 1,FILE,FABSNB 7HPG NAMETOP 1,GOUT,INFO2 7J96 LDN 6 TABMTYPE 7JNQ CALL 7 SFILETYPE 7JQ3 ...#SKI ANIP 7JR# ...( 7JSK ...[ NIP LISTFILES IGNORE ANY SETUP FILE 7JTW ... SAWCEJ XNOT,XNOT,XNOT,XNIP 7JX7 ...XNIP IF BS,1,BLFSETUP 7JYD ... THEN 7J^P ... BC 1,BLFSETUP 7K32 ... MFREE GOUT,INFO3 7K4? ... FI 7K5J ...XNOT 7K6T ...) 7K8B IF BS,1,BLFSETUP [ SETUP FILE 7KN2 THEN 7L7L MHUNT 1,GOUT,INFO3 [ SETUP FILE FABSNB 7LM= CALL 7 SOPEN 7M6W IF REP2,NOFILE 7MLG THEN 7N66 CLOSETHAW [ MAIN FILE 7NKQ MHUNT 1,GOUT,INFO 7P5B IF BC,1,BLFNLASTEL [ NOT OTHER THAN LAST ELEMEN 7PK2 THEN 7Q4L LFTHAW [ SETUP FILE 7QJ= FI 7R3W CALL 7 STIDYER 7RHG ACROSS LISTNEXT,9 7S36 [------------------ 7SGQ ELSF REP2,MAG 7T2B THEN 7TG2 BS 3,BLFSETNAV [ SETUP FILE NOT ONLINE 7T^L CLOSE [ MAIN FILE 7WF= CALL 7 STIDYER 7WYW ACROSS LISTNEXT,5 7XDG [------------------ 7XY6 FI 7YCQ LDN 6 TABSTYPE 7YXB CALL 7 SFILETYPE 7^C2 CALL 7 STIDYSET 7^WL FI 7^X7 ...#SKI ANIP 7^XN ...( 7^Y9 ...[ IF NIP DO NOT DO SETPROP 7^YQ ... SAWCEJ XNOT1,XNOT1,,XNIP1 7^^? ...XNOT1 7^^S ...) 82B= SETPROP XCANT,XCANT 82TW XCANT 835N ... PICKREP2 6 [SAVE REPLY 83*G IF RPN2,OK 83T6 THEN 84#Q MHUNT 1,GOUT,INFO 84SB IF BS,1,BLFSETUP [ SETUP FILE 85#2 THEN 85RL CLOSE 86?= FI 86QW CLOSE 87=G CALL 7 STIDYPROP 87G# ... CALL 7 SETFE 87Q6 COOR1 889Q [---- 88PB FI 88PJ ...#SKI ANIP 88PQ ...XNIP1 88^N ...# 892? ...Z2LISTOPEN 8992 SETNCORE 15,2,ADATA,CREADL 89NL LDN 4 12 8=8= STO 4 A1(2) 8=MW LDN 4 PLISTING(1) 8?7G LDN 5 CPDATA(2) 8?M6 MOVE 4 3 8#6Q MHUNT 1,GOUT,INFO2 8#LB NAMETOP 1,FILE,FABSNB 8*62 UNNORM TWO 8*KL MHUNT 1,FILE,FABSNB 8B5= NAME 1,GOUT,GABSNB [ N.B. CLEARS BOTTOM 12 BITS OF ATYPE 8BJW LDX 2 FX2 8C4G STOZ ALFTRANS(2) [ ACCOUNTING WORDS 8CJ6 STOZ ALFWORDS(2) 8D3Q MHUNT 3,GOUT,INFO 8DHB IF EITHER,+GFLI(3),NZ [ "FROM" SELECTION 8F32 OR BS,3,BLFTOCTEXT [ "TO" CONTEXT SELCTION 8FGL THEN 8G2= DOWN LISTRING,2 8GFW ELSE 8G^G LDN 1 0 8HF6 IF BS,3,BLFSETUP 8HYQ THEN 8JDB LDN 1 1 8JY2 FI 8KCL STEP 0(1) [ GET FIRST RECORD OF MAIN FILE 8KX= IF 3,ZE [ FILE EMPTY 8LBW THEN 8LWG DOWN LISTRING,3 8MB6 FI 8MTQ FI 8MX^ ...[ LFSTARTJL RESTORE TIME MACRO 8N28 ...[ GOES DOWN TO LISTNEXT TO ISSUE THE START OF LF MESSAGE 8N3M ... SEGENTRY K50LISTOPEN 8N56 ... BRN SNOJL 8N6L ...#UNS ASTRTJL 8N8T ... DOWN LISTNEXT,12 8N?4 ...SNOJL SEGENTRY K51LISTOPEN 8N*B FI 8NK8 ...XSOURCE 8NP5 ...#UNS ANIP 8NT2 ...#SKI 8NYX ... SAWCEJ XCENTRAL,XIPB 8P4S ...#UNS ANIP 8P8P ... SAWCEJ XCENTRAL,XIPB,,XNIP2 8P#L ACROSS PCTLISTA,1 8PS= [------------------ 8Q?W XIPB 8QRG ACROSS IPBLISTA,1 8R?6 [------------------ 8RQQ XCENTRAL 8S=B MHUNT 1,GOUT,INFO 8SQ2 LDCH 0 GOPTY(1) 8T9L SBN 0 1 8TP= IF 0,ZE [ TAPE PUNCH 8W8W THEN 8WNG ACROSS LISTHEAD,1 8X86 [------------------ 8XMQ ELSF TRUE 8Y7B SBN 0 1 8YM2 AND 0,ZE [ LINE PRINTER 8^6L THEN 8^L= ACROSS LISTINIT,1 925W [------------------ 92KG ELSE [ CARD PUNCH 9356 ACROSS LISTINTC,1 93JQ [------------------ 944B FI 944S ...#SKI ANIP 945= ...( 945N ...XNIP2 9466 ...[ FINISH OFF NIPSTART MACRO 946J ...[ IF BREAKIN SET OR FINISH THEN CANTDO LISTFILE 9472 ...[ ELSE PASS GOUT/INFO AND FILE/FABSNB TO NIP JOB 947D ...[ AND WAKE IT UP 947W ... ANOTHER GOUT,INFO 948# ... ANOTHER GOUT,GABSNB 948Q ... LDX 2 FX2 9498 ... LFBBUS B,2,XNOTB [BREAKIN NOT SET 949L ...[ BREAKIN SET - CANTDO LISTFILE 94=4 ...XCD MFREEW GOUT,GABSNB 94=G ... MFREEW GOUT,INFO 94=Y ... LFEND CD 94?B ...[ 94?S ...[ NOT BREAKIN - CHECK FOR FINISH NOW OR TIMEUP 94#= ...XNOTB LDX 0 FINISH 94#N ... SLL 0 1 94*6 ... BNG 0 XCD [GO TO CANTDO 94*J ...[ FINISH NIPSTART 94B2 ... CALL 7 SLPSCPAT 94BD ... MHUNTW 1,GOUT,GABSNB 94BW ... NAME 1,FILE,FABSNB 94C# ... CHAIN 1,3 94CQ ... MHUNTW 1,GOUT,INFO 94D8 ... CHAIN 1,3 94DL ... LFBITSET Q,2 [SET @BEFORE FIRST LINE OF LISTING@ 94F4 ... LFBITCLR S,2 [CLEAR @BETWEEN LISTINGS@ 94FG ... KEEPREP 6,OK 94FY ... BRN XNTB3 [GO TO SET REPLY AND WAKE CPAT 94GB ...[ 94GS ...) 94J2 [ 953L [ 954H ...# 955D ...Z3LISTOPEN 96DY .._ 96YJ ...[ 97D8 ...[*********************************************************************** 97XS ...[ 98CD ...Z6LISTOPEN 98X4 ...[ 99BN ...[*********************************************************************** 99W# ...[ 9=*Y ...#SKI ANIP 9=TJ ...( 9?*8 ...[ ENTRY POINT FROM LISTFIND WHEN THERE ARE NO AVAILABLE ENTRIES 9?SS ...[ 9##D ... LFBBS B,2,SBRK [BREAKIN HAS OCCURRED 9#S4 ... LDX 0 FINISH 9*?N ... SLL 0 1 9*R# ... BNG 0 XNTB4 [FINISH NOW OR TIMEUP 9B=Y ... KEEPREP 6,NOTAV [NO AVAILABLE ENTRIES 9BQJ ...XNTB6 CALL 7 SLPSCPAT 9C=8 ...XNTB3 STO 6 EXEC3(3) 9CPS ... BRN SWAKE [GO TO WAKE CPAT 9D9D ...[ 9DP4 ...) 9F8N ...[ 9FN# ...[ 9G7Y ...[*********************************************************************** 9GMJ ...[ 9H78 ...Z7LISTOPEN 9HLS ...[ 9J6D ...[*********************************************************************** 9JL4 ...[ 9K5N ...#SKI ANIP 9KK# ...( 9L4Y ...[ ENTRY POINT FROM LISTNEXT WHEN FINISH HAS OCCURRED AFTER CLOSING 9LJJ ...[ DOWN A LISTFILE 9M48 ...[ 9MHS ... CALL 7 SLPSFIN [GO TO SLEEP UNLESS NIPSTART 9N3D ...XNTB4 KEEPREP 6,FAIL 9NH4 ... BRN XNTB6 [GO TO WAKE CPAT 9P2N ...[ 9PG# ...) 9P^Y ...[ 9QFJ ...[ 9Q^8 ...[*********************************************************************** 9RDS ...[ 9RYD ...Z8LISTOPEN 9SD4 ...[ 9SXN ...[*********************************************************************** 9TC# ...[ 9TWY ...#SKI ANIP 9WBJ ...( 9WW8 ...[ ENTRY POINT FROM LISTNEXT IF NORMAL CLOSEDOWN OF LISTFILE 9X*S ...[ 9XTD ... CALL 7 SLPSFIN [GO TO SLEEP UNLESS NIPSTART 9Y*4 ...[IF NIPSTART MUST HAVE FOUND AN @UNSUITABLE FILE@ AND HAD TO 9YSN ...[ CLOSE DOWN LISTFILE. MUST ALLOW THE SCHEDULER TO HAVE ANOTHER GO 9^## ... LFEND EB 9^RY ...[ =2?J ...) =2R8 ...#END ^^^^ ...767411130001