JWUPDATE867
(George Source)
Macros used: ALTLENG, CLOSETOP, FREECORE, GEOERR, HUNTMISB, JLADJUST, MHUNT, RUNJSA, SEG, SEGENTRY, SETNCORE, SHORTEN, TRACE, UP, VOP
- JWUPDATE867.txt
22^= #LIS K0JWUPDATE>K0ALLGEO>K0GREATGEO>K0COMMAND 236D ... SEG JWUPDATE,867,SECTION CENT 23?L ...[ 23DS ...[ 23L2 ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 23R8 ...[ 23YG #DEF RRH=A1+FRH 24D6 [ 24XQ [ THIS SEGMENT PERFORMS ANY NECESSARY UPDATING OF JWELL AT 25CB [ JOBSTARTING AND JOB SUBMISSION TIME... 25X2 [ ALSO AT JOB ENDING OR ABANDON TIME 26BL [ NEW TYPES MAY BE CREATED OR DESTROYED BY THE PROCESS 26W= [ ACCOMUNE2 CONTAINS THE COUNT TO BE UPDATED 27*W [ AND A JWELL/COPYSYS BLOCK HOLDS THE JOBLIST ENTRY AND SO 27TG [ ITS JOB TYPE (JLSTAT) 28*6 [ 28F3 ...[ ACOMMUNE3 IS NORMALLY 0 BUT IS SET TO 1 WHEN A 28JY ...[ DEGENERATE JOB IS BEING PRODUCED (K2) OR REMOVED (K1) 28NT ...[ 28SQ [ 29#B SEGENTRY K1JWUPDATE,WELLUPDATE 29S2 SEGENTRY K2JWUPDATE,WELLSUB 2=?L [ 2=R= [ 2?=W [ 2?QG [ 2#=6 [ 2#PQ [ 2*9B [ THE ACCESS SEMAPHORE MUST BE SET BY THE CALLING ROUTINE 2*P2 [ 2B8L [ 2BN= [ 2C7W [ ROUTINE TO UPDATE THE JWELL BLOCK. THIS MAY INVOLVE CREATION OF A 2CMG [ NEW JOBTYPE OR JUST UPDATING AN EXISTING TYPE. 2D76 [ 2DLQ [ THE JOBTYPE AND JOBNUMBER OF THE JOB WHICH HAS CAUSED THE UPDATE MAY 2F6B [ BE FOUND IN ITS JOBLIST ENTRY HELD IN A JWELL/COPYSYS BLOCK 2FL2 [ 2G5L [ THE COUNT TO BE UPDATED (LIVE JOBS OR WELL JOBS) IS DEFINED IN 2GK= [ ACOMMUNE2. IT IS EITHER 1(LIVEJOBS) OR JWELLONE(WELLJOBS). IF LIVEJOBS 2H4W [ IS UPDATED THEN THIS MAY INVOLVE RE-ORDERING THE BLOCK IN THE CASE OF 2HJG [ CLUSTER JOBS (FOR SHARING OF CLUSTERS). 2J46 [ 2JHQ [ THE FIRST STAGE IS TO FIND OR CREATE THE JOBTYPE AND UPDATE THE 2K3B [ COUNTS RE-ORDERING IF NECESSARY. THE UPDATES OF JNEXTS ARE CARRIED OUT 2KH2 [ DEPENDING ON VARIOUS CONDITIONS: 2L2L [ 2LG= [ IF A NEW TYPE IS CREATED THEN JNEXT IS SET AS A POINTER(LIVEJOBS=1) 2L^W [ OR JOBNUMBER(WELLJOBS=1). 2MFG [ 2M^6 [ IF WELLJOBS IS INCREASED FROM 0 TO 1 THEN JNEXT IS SET TO JOBNO 2NDQ [ 2NYB [ IF WELLJOBS IS INCREASED THEN BECAUSE OF CO-ORDINATIONS AND THE 2PD2 [ POSSIBILITY OF RECYCLING JOB NUMBERS VARIOUS CHECKS MUST BE PERFORMED 2PXL [ TO SEE IF JNEXT SHOULD BE UPDATED.IF JNEXT IS UPDATED IT IS SET 2QC= [ TO THE JOBNUMBER OF THE CURRENT JOB. 2QWW [ 2RBG [ IF (J) - CURRENT JOBNO 2RW6 [ (N) - NEXT JOBNO (FROM JNEXT) 2S*Q [ (F) - NEXT JOBNO THAT WOULD BE OBTAINED FROM FIXED CORE 2STB [ 2T*2 [ 2TSL [ THEN THE FOLLOWING POSSIBILITIES OCCUR 2W#= [ 2WRW [ F < J < N UPDATE 2X?G [ F < N < J 2XR6 [ J < F < N 2Y=Q [ J < N < F UPDATE 2YQB [ N < F < J UPDATE 2^=2 [ N < J < F NORMAL CASE 2^PL [ 329= [ 32NW [ THE ROUTINE IS PASSED TWICE - ONCE FOR THE FULL TYPE AND ONCE 338G [ FOR THE MOP/BACK TYPE 33N6 [ 347Q [ 34MB [ X4 MAY HOLD THE ADDRESS OF THE FIRST ENTRY IN JWELL WHERE,IF THE 3572 [ JOBTYPE WERE NEW,IT WOULD BE INSERTED TO MAINTAIN THE ORDERING 35LL [ ACCORDING TO LIVEJOBS. IE IN INCREASING ORDER OF LIVEJOBS WITHIN A 366= [ TYPE. EG ALL REMOTE MOP ETC. 36KW [ 375G [ 37K6 [ X3 USUALLY POINTS TO UPDATED ENTRY 384Q [ X4 38JB [ X5 1 IF LIVEJOBS BEING UPDATED ELSE 0 3942 [ X6 JOB TYPE 39HL [ X7 PROPERTY 3=3= [ 3=GW [ ACOMMUNE WORDS 3?2G [ 3?G6 [ 1 ADDRESS OF NEW TYPE TO BE INSERTED 3?^Q [ 2 COUNTS TO BE UPDATED (1 LIVEJOBS OR 1 WELLJOBS) 3#FB [ THIS IS SET BY THE CALLING ROUTINE 3#P8 ...[ 3 1 INDICATES A DEGENERATE JOB UPDATE 3#^2 [ 5 ABS ADDRESS OF JWELL START 3*DL [ 6 COUNT FOR TWO PASSES 3*Y= [ 8 JOBNO 3BCW [ 3BXG WELLUPDATE 3B^P ...# 3CC6 MHUNT 3,JWELL,COPYSYS 3CWQ LDX 0 JLJOBNO+RRH(3) 3DBB LDX 7 JLPROPNO+RRH(3) 3DW2 JLADJUST 3 3F*L LDX 6 JLSTAT(3) 3FT= ANDN 6 3 3G#W ADN 6 2 3GSG TRACE 6,WELLADD 3H#6 STO 0 ACOMMUNE8(2) [ JOBNO 3HRQ LDX 5 ACOMMUNE2(2) 3J?B ANDN 5 1 [ MARKER FOR LIVEJOBS UPDATE 3JR2 LDN 0 1 3K=L STO 0 ACOMMUNE6(2) [ LOOP MARKER - MUST PASS TWICE 3KQ= SEC HUNTMISB 3,JWELL 3L9W STO 3 ACOMMUNE5(2) [ ABS START OF BLOCK 3LPG LDN 3 JOBENTS(3) [ START OF ENTRIES 3M96 LDN 4 0 [ INITIALISE X4 3MNQ BRN SAVE 3N8B NEXT1 ADN 3 JWENTRY [ NEXT JWELL ENTRY ADDRESS 3NN2 SAVE STO 3 ACOMMUNE1(2) [ ADDRESS OF (M) 3P7L LDX 0 JOBTYPE(3) 3PM= BNG 0 NEW1 [ J IF END OF JWELL BLOCK 3Q6W ANDN 0 JOBBITS [ TYPE 3QLG TXL 0 6 3R66 BCS NEXT1 [ J IF THIS TYPE NOT REACHED 3RKQ TXU 0 6 3S5B BCS NEW1 [ JUMP IF NEW TYPE PASSED 3SK2 LDEX 0 JOBCTS(3) 3T4L TXL 5 0 [ IF NEW,WOULD TYPE BE INSERTED AFTER 3TJ= BCC POST [ THIS ENTRY TO KEEP LIVEJOB ORDER 3W3W BNZ 4 PAST [ NO - SO SAVE THIS ADDRESS IF FIRST 3WHG LDX 4 3 [ TIME 3X36 BRN PAST 3XGQ POST LDN 0 JWENTRY(3) [ ENTRY WOULD GO AFTER SO REMEMBER 3Y2B STO 0 ACOMMUNE1(2) 3YG2 PAST LDX 0 JOBTYPE(3) 3Y^L ANDN 0 JWCLUSB 3^F= BZE 0 SAME [ IF NOT CLUSTER THEN TYPE FOUND 3^YW TXU 7 JOBPROP(3) 42DG BCS NEXT1 [ J IF CLUS PROPERTIES DIFFERENT 42Y6 [ 43CQ [ AT THIS POINT THE CORRECT TYPE,AND IF CLUSTER,PROPERTY HAVE BEEN 43XB [ FOUND. THE COUNTS (JOBCTS) ARE UPDATED AND IF LIVEJOBS CHANGES 44C2 [ ANY RE-ORDERING OF CLUSTERS THAT MAY BE REQUIRED IS PERFORMED 44WL [ 452H ...SAME LDX 4 JWDEG(3) 456D ... SBX 4 ACOMMUNE3(2) 45=* ... BPZ 4 POSCT 45B= ... GEOERR 1,FEW DG 45G7 ...POSCT STO 4 JWDEG(3) 45L4 ... LDX 4 ACOMMUNE2(2) 45TW ADS 4 JOBCTS(3) 46*G BZE 5 RENUM [ J IF WASN'T LIVEJOBS UPDATE 46T6 BZE 0 SDONE [ J IF NOT CLUSTER UPDATE 47#Q [ 47SB [ SEE IF RE-ORDERING REQUIRED 48#2 [ 48RL LDX 1 3 [ X1 = (M) X3 = (N)-NEXT 49?= LDEX 4 JOBCTS(1) [ (M) LIVEJOBS 49QW XMOOR ADN 3 JWENTRY [ NEXT ENTRY 4==G LDX 0 JOBTYPE(3) 4=Q6 BNG 0 SEEIF [ J IF END OF JWELL 4?9Q ANDN 0 JOBBITS [ TYPE 4?PB TXU 0 6 [ J IF DIFFERENT 4#92 BCS SEEIF 4#NL LDEX 0 JOBCTS(3) [ LIVEJOBS(N) 4*8= TXL 4 0 [ IS (M).LT.(N) 4*MW BCC XMOOR [ J IF (M).GE.(N) 4B7G [ 4BM6 [ END OF TYPE FOUND OR NEW POSITION BECAUSE OF LIVEJOBS 4C6Q [ 4CLB SEEIF SBN 3 JWENTRY [ MUST GO BEFORE LAST ENTRY 4D62 TXU 1 3 4DKL BCC SDONE [ JUMP IF NO CHANGE 4F5= [ 4FJW [ RE-ORDER ENTRIES BY MOVING (M) ABOVE (N) AND (M+1)TO(N) DOWN 4G4G [ 4G=? ...[ X1 ADDRESS OF ENTRY TO BE MOVED 4GD4 ...[ X3 ADDRESS TO BE MOVED TO 4GKT ...[ 4GRL ... SBX 3 ACOMMUNE5(2) [ BLOCK 4G^C ... SBX 1 ACOMMUNE5(2) [ RELATIVE 4H78 ... STO 1 AWORK1(2) [ ADDRESSES 4H#^ ... STO 3 AWORK3(2) 4HGQ ... SETNCORE JWENTRY,2,ADATA,CSTORE 4HNH ... LDN 2 A1(2) 4HW# ... HUNTMISB 3,JWELL 4J45 ... SMO FX2 [ PRESERVE BLOCK ADDRESS 4J9W ... STO 3 ACOMMUNE5 4JCM ... LDX 1 3 [ RESTORE BLOCK POINTERS 4JKD ... SMO FX2 4JR9 ... ADX 1 AWORK1 4J^2 ... SMO FX2 4K6R ... ADX 3 AWORK3 4K#J ... MOVE 1 JWENTRY [ PRESERVE ENTRY TO BE MOVED 4KG* ... LDX 4 3 [ CALC SIZE OF OTHER ENTRIES 4KN6 ... SBX 4 1 4KTX ... LDN 0 JWENTRY(1) [ START ADDRESS 4L3N ... SMO 4 4L9F ... MOVE 0 0 4LC= ... MOVE 2 JWENTRY [ AND MOVE ENTRY TO NEW PLACE 4LK3 ... SBN 2 A1 4LQS ... FREECORE 2 4LYQ LDX 2 FX2 4MDB BRN SDONE 4MY2 [ 4NCL [ POSSIBLE UPDATE OF JNEXT 4NX= [ 4P74 ...RENUM LDX 0 ACOMMUNE2(2) 4PBW ... BZE 0 SDONE 4PLN ... LDX 0 ACOMMUNE8(2) [ CURRENT JOBS JOBNO(J) 4PWG LDX 4 JOBCTS(3) 4QB6 SRL 4 9 4QTQ SBN 4 1 4R*B BZE 4 STUFF [ J IF FIRST WELLJOB 4RT2 [ 4S#L [ RESET (IF NECESSARY) ACCORDING TO TABLE 4SS= [ J TO SDONE IF NO UPDATE 4T?W [ 4TRG LDX 4 JOBNUMBER 4W?6 ADN 4 1 [ NEXT JOBNO (F) 4WQQ LDXC 5 JNEXT(3) [ (N) 4X=B TXL 5 4 4XQ2 BCS XN [ J IF (N).LT.(F) 4Y9L TXL 5 0 4YP= BCS SDONE [ OUT IF (N).LT.(J) 4^8W TXL 4 0 4^NG BCS STUFF [ OK IF (F).LT.(J) 5286 BRN SDONE 52MQ XN TXL 4 0 537B BCS STUFF [ OK IF (F).LT.(J) 53M2 TXL 0 5 546L BCC SDONE [ OUT IF (J).NOT.LT.(N) 54L= STUFF STO 0 JNEXT(3) [ UPDATE JNEXT 555W SDONE 55KG LDX 0 ACOMMUNE6(2) [ LOOP MARKER 5656 SBN 0 1 56JQ BPZ 0 WOUND 574B UP [ RETURN AFTER SECOND PASS 57J2 [ 583L [ 58H= [ 592W WOUND STO 0 ACOMMUNE6(2) 59GG ANDN 6 1 [ SECOND TYPE MOP OR BACK 5=26 LDX 5 ACOMMUNE2(2) 5=FQ ANDN 5 1 [ LIVEJOBS COUNT MARKER 5=^B BRN SEC 5?F2 [ 5?YL [ TYPE NOT FOUND SO LENGTHEN BLOCK AND INSERT NEW TYPE 5#D= [ 5#LG ...NEW1 LDX 0 ACOMMUNE3(2) 5#SQ ... BZE 0 NEW2 5#WS ...#SKI JWPHASE3 5#YW ... BNG 0 NEW2 5*32 ... GEOERR 1,NO DEGJB 5*9= ...NEW2 BNZ 4 ORLIV [ J IF ORDERED BY TYPE 5*CG LDX 4 ACOMMUNE1(2) [ LIVEJOBS ORDER 5*X6 ORLIV LDX 3 4 [ ADDRESS FOR NEW ENTRY 5BBQ SBX 4 ACOMMUNE5(2) 5BWB STO 4 ACOMMUNE1(2) [ REL ADDRESS OF NEW ENTRY 5CB2 BRN Y 5CTL X ADN 3 JWENTRY 5D*= Y LDX 0 JOBTYPE(3) 5DSW BPZ 0 X [ LOOK FOR END OF BLOCK 5F#G SBX 3 ACOMMUNE5(2) [ REL ADDRESS OF BLOCK END 5FS6 SBX 3 4 [ DIFFERENCE BETWEEN NEW AND END 5G?Q LDX 5 3 5GRB [ 5H?2 [ ALTER BLOCK LENGTH 5HQL [ 5J== LDX 3 ACOMMUNE5(2) [ JWELL START 5JPW LDX 4 ALOGLEN(3) 5K9G ADN 4 JWENTRY [ LENGTH REQUIRED 5KP6 BRN PULL [ LENGTHEN IT 5L8Q [ 5LNB RELOC HUNTMISB 2,JWELL [ REFIND THE BLOCK 5M82 EXIT 1 0 5MML [ 5N7= PULL ALTLENG 3,4,RELOC [ ALTER LENGTH 5NLW HUNTMISB 3,JWELL [ REFIND 5P6G ADX 3 ACOMMUNE1(2) [ ADDRESS OF NEW ENTRY 5PL6 LDX 0 GSIGN 5Q5Q BZE 5 NEWND [ J IF NEW TYPE AT THE END 5QKB ADX 3 5 [ ADDRESS AFTER LAST ENTRY 5R52 STO 0 JWENTRY(3) 5RJL LDX 2 3 5S4= PUSH SBN 2 JWENTRY [ LAST ENTRY 5SHW MOVE 2 JWENTRY [ MOVE UP 1 5T3G SBN 5 JWENTRY [ ENTRIES TO BE MOVED(WORD COUNT) 5TH6 LDX 3 2 [ NEXT DESTINATION IS LAST START 5W2Q BNZ 5 PUSH 5WGB LDX 2 FX2 [ X3 STILL POINTS TO NEW ENTRY 5X22 BRN TOEND 5XFL NEWND STO 0 JWENTRY(3) [ NEW END OF BLOCK 5X^= TOEND STO 6 JOBTYPE(3) [ FILL IN NEW ENTRY 5YDW STO 7 JOBPROP(3) [ PROP 5YNM ... LDX 0 ACOMMUNE3(2) 5YR= ... NGS 0 JWDEG(3) 5YYG LDX 0 ACOMMUNE2(2) 5^D6 STO 0 JOBCTS(3) [ COUNTS 5^XQ ANDN 0 1 [ FINISHED IF LIVE JOBS 62CB BNZ 0 SDONE 62X2 LDX 0 ACOMMUNE8(2) 63BL STO 0 JNEXT(3) 63W= BRN SDONE [ IF WELLJOBS JNEXT=JOBNO 64*W [ 64TG [ 65*6 [ SEMAPHORE MUST BE SET BY CALLING ROUTINE ********* 65SQ [ BUT IS CLEARED BY THIS ROUTINE ON EXIT ********* 66#B [ ALSO :SYSTEM.JOBLIST MUST BE OPEN...... 66S2 [ THE USUAL CALL OF JWUPDATE IS FROM JOBLIST WHICH IS 67?L [ CALLED FROM THE LOGOUT CHAPTER 67R= [ 68=W [ 68QG [ 69=6 [ UPDATE THE JWELL BLOCK BY DECREMENTING LIVEJOBS OR WELLJOBS. THE JOB 69PQ [ TYPE IS HELD IN THE JOBLIST ENTRY IN A FILE/FRB BLOCK. THE COUNT TO 6=9B [ BE UPDATED ( 1 -(LIVEJOBS)OR JWELLONE(WELLJOBS)) IS HELD IN ACOMMUNE2 6=P2 [ IF THE COUNTS FOR A PARTICULAR TYPE ARE REDUCED TO ZERO THE TYPE IS 6?8L [ REMOVED. IF LIVEJOBS IS DECREASED THEN ANY RE-ORDERING OF TYPES (FOR 6?N= [ CLUSTER SHARING) IS CARRIED OUT AS REQUIRED. 6#7W [ 6#MG WELLSUB 6*76 UWAY LDX 7 ACOMMUNE2(2) [ UPDATE COUNT 6*LQ LDN 6 0 [ NEW T0-E ADDRESS 6B6B MHUNT 3,JWELL,COPYSYS [ JOBLIST ENTRY 6BL2 LDX 4 JLPROPNO+RRH(3) 6C5L JLADJUST 3 6CK= LDX 5 JLSTAT(3) 6D4W ANDN 5 3 6DJG ADN 5 2 [TYPE 6F46 TRACE 5,WELLSUB 6FHQ HUNTMISB 2,JWELL 6FNY ... SMO FX2 6FW6 ... STO 2 ACOMMUNE5 [ PRESERVE START OF BLOCK ADDRESS 6G3B LDN 2 JOBENTS(2) [ START OF JWELL ENTRIES 6GH2 ULOOP LDX 3 2 6H2L BRN UTEST [ MAIN LOOP 6HG= ULUPE ADN 3 JWENTRY 6H^W UTEST LDX 0 JOBTYPE(3) [ NEXT ENTRY 6JFG BPZ 0 UBITS 6J^6 GEOERR 1,NO TYPE [ GEOERR IF TYPE NOT FOUND 6KDQ UBITS ANDN 0 JOBBITS 6KYB TXU 0 5 6LD2 BCS ULUPE [ J. IF TYPES NOT THE SAME 6LXL ANDN 0 JWCLUSB 6MC= BZE 0 RSAME [ IF NOT CLUSTER THEN TYPE FOUND 6MWW TXU 4 JOBPROP(3) 6NBG BCS ULUPE [ J IF NOT SAME PROPERTY 6NW6 RSAME SBS 7 JOBCTS(3) 6N^J ... SMO FX2 6P52 ... LDX 0 ACOMMUNE3 6P8G ... ADS 0 JWDEG(3) 6P*Q BNZ 6 UDONE [ J I6 SECOND PASS 6PTB LDX 6 3 6Q*2 ANDN 5 1 [ FOR OTHER TYPE 6QSL BRN ULOOP [ REPEAT 6R#= [ 6RRW UDONE LDX 3 6 [ MAIN TYPE ADDRESS 6S?G LDX 0 JOBCTS(3) 6SH# ... ADX 0 JWDEG(3) 6SR6 BZE 0 SHORTEN [ IF BOTH COUNTS ZERO REMOVE TYPE 6T=Q ANDN 7 1 6TQB BZE 7 NOCHANGE [ J IF WELLJOBS UPDATE 6W=2 LDX 0 JOBTYPE(3) 6WPL ANDN 0 JWCLUSB 6X9= BZE 0 NOCHANGE [ NO CHANGE IF NOT CLUSTER 6XNW LDEX 1 JOBCTS(3) [ LIVEJ-BS FOR THIS TYPE 6Y8G LDX 5 JOBTYPE(3) 6YN6 ANDN 5 JOBBITS [ TYPE 6^7Q LDN 4 0 [ POSSIBLE NEW ADDRESS 6^MB XBACK SBN 3 JWENTRY [ WORK BACKWARDS 7272 TXL 3 2 72LL BCS NOMOR [ J IF PAST FRONT OF BLOCK 736= LDX 0 JOBTYPE(3) 73KW ANDN 0 JOBBITS [ PREVIOUS TYPE 745G TXU 0 5 74K6 BCS NOMOR [ J IF NOT THE SAME 754Q LDEX 0 JOBTYPE(3) 75JB TXL 1 0 7642 BCC NOMOR [ J IF NEW.GE.THIS 76HL LDX 4 3 [ REMEMBER THIS POSITION 773= BRN XBACK 77GW NOMOR BZE 4 NOCHANGE [ J IF NO NEW POSITION FOUND 782G [ 78G6 [ NOW HAVE TO RE-ORDER 78^Q [ 79=M ...[ X6 ENTRY TO BE REORDERED 79HJ ...[ X4 TO THIS ADDRESS 79SF ...[ 7=5B ... LDX 2 FX2 7=B? ... SBX 4 ACOMMUNE5(2) [ BLOCK RELATIVE ADDRESS 7=M8 ... SBX 6 ACOMMUNE5(2) 7=Y5 ... SETNCORE JWENTRY,3,ADATA,CSTORE 7?92 ... HUNTMISB 1,JWELL 7?FX ... LDN 7 A1(3) [ PRESERVE SINGLE ENTRY 7?QS ... ADX 4 1 7#3P ... ADX 6 1 7##L ... MOVE 6 JWENTRY 7#KH ...UMOOV LDX 7 6 7#WD ... SBN 6 JWENTRY [ LOOP MOVING REST UP 7*7* ... MOVE 6 JWENTRY 7*D= ... TXU 4 6 [ STOP WHEN DESTINATION REACHED 7*P7 ... BCS UMOOV 7B24 ... LDN 5 A1(3) 7B=^ ... MOVE 5 JWENTRY [ AND RESTORE THIS ENTRY 7BHW ... FREECORE 3 7BT= BRN NOCHANGE 7C#W [ 7CSG [ TYPE TO BE REMOVED AND ENTRIES COMPRESSED 7D#6 [ 7DRQ SHORTEN 7F?B [ 7FR2 LDX 3 6 [ DESTINATION 7G=L USEE ADN 3 JWENTRY 7GQ= LDX 0 JOBTYPE(3) 7H9W BPZ 0 USEE [ LOOK FOR END OF TYPES 7HPG SMO 6 7J96 LDN 5 JWENTRY [ MOVE START 7JNQ SBX 3 5 [ WORDS IN BETWEEN HERE AND END 7K8B ADN 3 1 [ INCLUDE END 7KN2 MOVE 5 0(3) [ COMPRESS 7L7L [ 7LM= SBN 2 JOBENTS [ BACK TO START OF BLOCK 7M6W LDX 6 ALOGLEN(2) 7MLG ... SBN 6 JWENTRY [ NEW LENGTH 7N66 ... ALTLENG 2,6,RELOC 7NKQ [ 7P5B NOCHANGE 7PK2 [ 7Q4L [ IF A LIVE JOB WAS REMOVED THEN A RUNJSA IS CARRIED OUT 7QJ= [ 7R3W [ NB. AS THE SEMAPHORE IS SET A RUNJSA HOSTOPEN IS DONE 7RHG [ WITH THE ASSUMPTION THAT SYSTEM.JOBLIST IS ALREADY OPEN. 7S36 [ 7SGQ SMO FX2 7T2B LDX 5 ACOMMUNE2 7TG2 ANDN 5 1 7XDG [ 7XF# ...THOME HUNTMISB 3,JWELL 7XG6 ... LDN 3 JOBENTS(3) [ START OF ENTRIES 7XGY ...[ 7XHQ ...[ RESET ANY JNEXTS THAT REQUIRE IT 7XJJ ...[ 7XKB ... MHUNT 2,JWELL,COPYSYS 7XL8 ... LDX 6 JLJOBNO+RRH(2) [ JOBNO OF UPDATED JOB 7XM2 ... LDX 7 GSIGN [ POINTER MARKER 7XMS ... BRN SJNO 7XNL ...SJRND ADN 3 JWENTRY [ NEXT 7XPD ...SJNO LDX 0 JOBTYPE(3) [ SEE IF ENTRY 7XQ= ... BNG 0 REALLY [ J IF END OF BLOCK 7XR4 ... TXU 6 JNEXT(3) [ SEE IF JOBNO'S THE SAME 7XRW ... BCS SJRND [ LOOP IF NOT 7XSN ... ORS 7 JNEXT(3) [ ELSE MARK AS POINTER 7XTG ... BRN SJRND [ AND CONTINUE 7XW# ...REALLY 7XW* ... LDX 2 FX2 7XWB ... LDX 6 ACOMMUNE3(2) 7XWC ... BZE 5 NOJSAREQ 7XWN ... RUNJSA HOSTOPEN 7XWR ...NOJSAREQ 7XWS ... LDX 2 FX2 7XWT ...[ 7XWW ...[ DON'T TIDY UP IF DEGENERATE JOBS UPDATE 7XWX ...[ 7XXB ... BNZ 6 XIT 7XXD ...[ 7XXG ...[ CLOSE SYSTEM JOBLIST 7XXJ ...[ 7XXL ... CLOSETOP 7XXN ...[ 7XY6 VOP ,JWACCESS 7YCQ ...XIT UP 7YXB [ 82B= [ 82TW #END ^^^^ ...52354562000100000000