22FL SEG BSUNJAM,83,PETER CAMPBELL,BSUNJ 22^= [ 23DW [ 23YG [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 24D6 [ 24XQ [ 25CB #DEF Z=K6BSUNJAM>599-599 25X2 SEGENTRY K1BSUNJAM,X1BSUNJAM 26BL MASTER 12HMASTER [ NAME OF MASTER DIRECTORY 26W= SEGENTRY BSUJSW 27*W +0 [THIS IS A SWITCH WORD USED TO LIST 27TG [ STATISTICS IF NON-ZERO,BY ENTRY TO 28*6 [ BSUJSTAT SEGMENT 28SQ NFRES +4 [NO. OF WORDS PER RESIDENCE USED 29#B [IN FILE/FRESNUM BLOCK 29S2 #SKI IFS<1$1 2=?L ( 2=R= SMAPP 2?=W #HAL FILE+FMAPP,0 2?QG ) 2#=6 PARALT 12HFORMULA [INSTALLATION PARAMETER USED BY INSTP 2#PQ # THIS ROUTINE IS CALLED IN BY THE BACKING STORE 2*9B # ALLOCATION SYSTEM WHEN A CERTAIN PERCENTAGE OF ANY 2*P2 # BACKING STORE IS USED 2B8L [ 2BN= BITDEFS AWORK3,0,XBDESPDUMP,XBABJOBS,XBNONSPEC 2C7W BITDEFS AWORK3,22,XBDUMPED,XBNOTFIRST 2CMG [ AWORK3=0 IF FIRST PASS 2D76 [ B23 SET IF NOT FIRST PASS 2DLQ [ B0 SET IF UNJAMMER HAS DONE A 'DESPERATE'DUMP 2F6B [ B1 SET IF ABANDON JOBS MESSAGE HAS BEEN OUTPUT 2FL2 [ B2 SET IF A NON SPECIAL RESIDENCE JAMMED 2G5L [ AWORK4 CONTAINS NO.CLEANCTS SPENT WAITING FOR DIRECTORIES 2GK= [ 2H4W [ BEGINNING OF LOOP 2HJG [ 2J46 RETURNA 2JHQ BS 2,XBNOTFIRST 2K3B IFUJSTAT 2 [GO DOWN TO WRITE MAIN RECORD 2KH2 # X6 -VC IF ONLY SPECIAL RESIDENCES WERE JAMMED AT 2L2L # END OF LAST PASS - IN THIS CASE FORMULA SHOULD 2LG= # NOT BE RECALCULATED 2L^W TCCAO BNG 6 NRCAL 2MFG NGX 5 5 [ X5 := NO OF JAMMED RESIDENCES 2M^6 CALL 0 PMISC [ FIND FIRST BSLIST BLOCK 2NDQ BRN XNUMRES [ JUMP IF END OF CHAIN 2NYB ADN 5 1 [ ADD 1 FOR EACH RESIDENCE 2PD2 BRN NMISC [ FIND NEXT RES 2PXL XNUMRES 2QC= MHUNTW 1,FILE,INCUNJ 2QWW STO 5 ANOJAM(1) [ STORE NO OF UNJAMMED RES 2RBG LDX 2 FX2 2RW6 #SKI Z 2S*Q ( 2STB TRACE BSNDUMP(1),BSNDUMP 2T*2 TRACE BSLEFT(1),BSLEFT 2TSL ) 2W#= JBSC NODUMP2,2,XBDUMPED 2WRW LDX 0 BSNDUMP(1) [ NUMBER OF BLOCKS TO BE DUMPED 2X?G BXL 0 BSLEFT(1),NODUMP2 [ JUMP IF LESS THAN BLOCKS TO CLEAR J 2XR6 LDN 2 0 [ COUNT OF BLOCKS ONLINE 2Y=Q LDX 0 BSAB [ TYPE OF BSTB/BSLIST BLOCK 2YQB LDX 3 BMISC [ PICK UP BASE OF MISC CHAIN 2^=2 TODU1 LDX 3 FPTR(3) [ PICK UP NEXT BLOCK 2^PL BXE 3 CXMI,TODU2 [ JUMP IF END OF CHAIN 329= BXU 0 ATYPE(3),TODU1 [ JUMP IF NOT BSLIST 32NW LDX 4 BSLETH(3) [ JUMP IF SWAP FILE 338G BNG 4 TODU1 [ 33N6 ADX 2 BSTOT(3) [ ADD TOTAL SIZE OF RESIDENCE 347Q SBX 2 BSFREE(3) [ SUBTRACT FREE BLOCKS 34MB BRN TODU1 [ 3572 TODU2 SRL 2 2 [ DIVIDE SIZE OF ONLINE F/S BY 4 35LL BXL 2 BSNDUMP(1),TRYDP [ JUMP IF > 25% TO BE DUMPED 366= NODUMP2 36KW LDX 2 FX2 375G LDX 0 FORMULA 37K6 BNZ 0 NTDMP [GO ON UNJAMMING UNLESS DESPERATE 384Q [ 38JB [ IF THE UNJAMMERS FORMULA IS ZERO,THEN WE ONLY WANT TO DO A 3942 [ 'DESPERATE' DUMP ONCE.OTHERWISE ONLY DUMP WHEN FORMULA=ZERO IF 39HL [ THERE IS ENOUGH TO CLEAR THE JAM 3=3= [ 3=GW JBSS NDDMP,2,XBDESPDUMP 3?2G TRYDP 3?G6 #SKI K6BSUNJAM>99-99 3?^Q TRACE BSNDUMP(1),DUMPING 3#FB OUTPAR TIMENOW 3#^2 CALL 3 OPMESS [OUTPUT 'BACKING STORE JAM DUMPER 3*DL +BSJDUM [ STARTED' 3*Y= +3 [TO ALL CONSOLES 3BCW DUMPINC [SET THE DUMPER GOING 3BXG BS 2,XBDUMPED 3CC6 LDN 6 0 3CWQ IFUJSTAT 3 3DBB BRN NRCAL 3DW2 NDDMP JBSS NABAN,2,XBABJOBS 3F*L CALL 3 OPMESS [OUTPUT 'ABANDON JOBS' 3FT= +BSABAN 3G#W +1 [TO CENTRAL CONSOLE 3GSG NTDMP 3H#6 NABAN 3HRQ LDN 6 1 3J?B IFUJSTAT 3 [ APPEND FILE/INCUNJ TO STSTS FILE 3JR2 BRN NRCAL 3K=L X1BSUNJAM 3KQ= OUTPAR DATENOW,TIMENOW 3L9W OUTPACK GMTNOW,1,NUMA 3LPG CALL 3 OPMESS [OUTPUT 'BACKING STORE JAM' 3M96 +BACJAM 3MNQ +3 [TO ALL RESIDENCES 3N8B SEGENTRY K10BSUNJAM 3NN2 BRN NOFF 3P7L # 3PM= # OUTPUT 'PARAMETERS FOR FILE FORMULA ARE X1,X2,X3,X4' 3Q6W # 3QLG LDN 4 BSUJFORM1 3R66 LDN 5 1 3RKQ LDN 6 JPDNUMA 3S5B CALL 7 PACKMESS 3SK2 LDN 4 BSUJFORM2 3T4L CALL 7 PACKMESS 3TJ= LDN 4 BSUJFORM3 3W3W CALL 7 PACKMESS 3WHG LDN 4 BSUJFORM4 3X36 CALL 7 PACKMESS 3XGQ MONOUT BSFFPARS 3Y2B BRN NNOFF 3YG2 SEGENTRY K11BSUNJAM 3Y^L NOFF MONOUT BSFFNORM [STANDARD FORMULA 3^F= NNOFF LDX 7 BSUJSW(1) [PICK UP SWITCH 3^YW IFUJSTAT 1 [ TRY TO OPEN STATS FILE ,TURN OFF SW 42DG [ IF UNSUCCESSFUL 42Y6 # CARRY OUT A MISC CHAIN SEARCH TO FIND OUT THE NUMBER OF 43CQ # ONLINF RESIDENCES DURING THIS JAM. 43XB # THIS VALUE IS STORED IN IRESNUM OF THE INCUNJ BLOCK 44C2 LDN 5 0 44WL CALL 0 PMISC [FIND NEXT RESIDENCE 45B= BRN XOUT [EXIT FOR END OF CHAIN 45TW ADN 5 1 46*G BRN NMISC 46T6 XOUT 47#Q LDX 4 5 47SB SETNCORE 8,2,FILE,INCUNJ 48#2 STO 4 IRESNUM(2) [NUMBER OF RESIDENCES IN X4 48RL LDN 6 4 49?= MPY 4 6 [ALLOW FOUR WORDS PER RES 49QW ADN 5 1 [PLUS ONE FOR REC HEDDR 4==G SETUPCORE 5,3,FILE,FRESNUM 4=Q6 SBN 5 2 4?9Q STOZ A1+1(3) 4?PB LDN 1 A1+1(3) 4#92 LDN 2 1(1) 4#NL SMO 5 4*8= MOVE 1 0 4*MW # ZEROISE WORDS IN FILE,FRESNUM 4B7G SETNCORE 6,1,FILE,FLOCNB 4BM6 SETNCORE 4,3,FILE,FABSNB 4C6Q LDN 0 4 4CLB STO 0 A1(3) 4D62 ADN 3 A1+1 4DKL LDN 2 MASTER(1) 4F5= MOVE 2 3 4FJW NRCAL 4G4G MHUNTW 2,FILE,INCUNJ 4GJ6 [ 4H3Q [ START OF MAIN LOOP 4HHB [ 4J32 TINCUJ 4JGL #SKI K6BSUNJAM>99-99 4K2= ( 4KFW TRACE CLEANCT,BSU ENT 4K^G TRACE FORMULA,FORMULA 4LF6 ) 4LYQ LDN 0 8 4MDB STO 0 INREC(2) 4MY2 STOZ INREC+2(2) 4NCL LDN 0 INREC+2(2) 4NX= LDN 1 ANOJAM(2) 4PBW MOVE 0 5 4PWG # CARRY OUT A MISC CHAIN SEARCH TO DETERMINE WHICH 4QB6 # RESIDENCES ARE ABOVE THRESHOLD ANM/OR JAMMED 4QTQ # FRESNUM HOLDS 4 WORD ENTRIES PER RESIDENCE 4R*B # 1ST =RESIDENCE NUMBER 4RT2 # 2ND = STATE WORD 4S#L # 3RD = NO. OF FILES THROWN OFF 4SS= # 4TH = SIZE OF FILES THROWN OFF 4T?W MHUNTW 3,FILE,FRESNUM 4TRG STOZ FRREC(3) 4W?6 LDN 1 0 [USE X1 TO HOLD NUM. OF JAMMED 4WQQ [RESIDENCES 4X=B CALL 0 PMISC [FIND NEXT RESIDENCE 4XQ2 RESET BRN TOUT [EXIT FOR END O CHAIN 4Y9L BC 2,BSLTHRESH [ CLEAR YHRESHOLD BIT IF SET 4YP= LDX 4 BACK1(2) 4^8W STO 4 FRNUM(3) [INSERT RESUDENCE NUMBERS 4^NG JBS ZHARDJAM,2,BSLJAM [ JUMP IF JAM BIT SET 5286 LDX 5 BSFREE(2) 52MQ BNG 5 ZHARDJAM [MUST BE JAMMED 537B BXGE 5 BSTHRESH(2),NSET [J IF NOT ABOVE THRESHOLD 53M2 BS 2,BSLTHRESH [ SET THRESHOLD BIT 546L ZHARDJAM 54L= LDCT 4 #600 [PRESERVE B0/B1 555W ANDS 4 FRSTATE(3) 55KG BS 3,BFTHRESH 5656 JBC NOSET,2,BSLJAM 56JQ ZJAM ADN 1 1 [INCREASE NO. OF JAMMED RESIDENCES 574B MBI 3,BFJAM,BFTHRESH [ SET JAM UNSET THRESHOLD BITS 57J2 BRN NOSET 583L NSET STOZ FRSTATE(3) 58H= NOSET 592W #SKI Z 59GG ( 5=26 TRACE FRNUM(3),RESNUM 5=FQ TRACE FRSTATE(3),RESTATE 5=^B ) 5?F2 STOZ FRNTOFF(3) 5?YL STOZ FRSTOFF(3) 5#D= MHUNTW 3,FILE,FRESNUM 5#XW SMO FX1 5*CG LDX 0 NFRES 5*X6 ADS 0 FRREC(3) 5BBQ ADX 3 FRREC(3) 5BWB SMO FX1 5CB2 LDN 0 RESET [RESTORE LINK ADDRESS TO PMISC 5CTL BRN NMISC 5D*= TOUT 5DSW LDX 6 1 [X1->X6 WHILE MESSAGES OUTPUT 5F#G LDX 2 FX2 5FS6 JBS NOSTAT4,2,XBNONSPEC 5G?Q IFUJSTAT 4 5GRB NOSTAT4 5H?2 #SKI Z 5HQL TRACE 6,TOTJRES 5J== CALL 3 OUTMESS [JAM ON RESIDENCE . . . 5JPW +0 5K9G +BSJAMRES 5KP6 BRN NOSPEC1 [EXIT 3 3 IF A SPEC RES JAMMED 5L8Q [EXIT 3 2 IF NO SPEC RES JAMMED 5LNB CALL 3 OUTMESS [CC AO ON RESIDENCE . . . 5M82 +4 5MML +BSSPECRES 5N7= BRN NOSPEC1 [EXIT 3 2 IF BOTH TYPES OR RES JAMME 5NLW [EXIT 3 3 - ONLY SPEC RES JAMMED 5P6G LDN 5 0 5PL6 BRN NOSPEC2 5Q5Q NOSPEC1 5QKB LDCT 5 #400 5R52 NOSPEC2 5RJL MHUNTW 2,FILE,INCUNJ 5S4= OPENINC ,READ [OPEN INCINDEX 5SHW LDN 6 0 5T3G RINC STEP [READ NEXT RECORD 5TH6 BZE 3 OVER [LAST RECORD 5W2Q LDX 6 AINCNO-A1(3) [HIGHEST INC.NO 5WGB JBS REDUMP,3,BIREDUMPR 5X22 LDX 2 AMTSR(3) [ NO TAPES ? 5XFL BZE 2 REDUMP [ NO NOT WRONGED TAPES 5X^= NEXTTAPE 5YDW JMBAC RINC,3,BMUSWRR,BMOPWRR [ AT LEAST ONE TAPE OK ! 5YYG ADN 3 2 5^D6 BCT 2 NEXTTAPE [ LOOK AT NEXT TAPE 5^XQ # 62CB # ALL TAPES WRONGED 62X2 # 63BL REDUMP 63W= LDX 4 6 [NO OF THIS INCREMENT 64*W #SKI Z 64TG ( 65*6 TRACE AINCSTATE-A1(3),UNRINCST 65SQ TRACE 4,UNRINC 66#B ) 66S2 CALL 1 NUMINC 67?L BRN RINC 67R= OVER MHUNTW 3,FILE,INCUNJ 68=W ADN 6 1 68QG SMO A1(3) 69=6 STO 6 A1-1(3) [LATEST INC.NO+1 69PQ CLOSETOP [INCINDEX 6=9B BZE 5 SPECS 6=P2 BNG 5 NOSPEC 6?8L GEOERR 1,FORTEST 6?N= # ONLY SPECIAL RESIDENCES ARE JAMMED 6#7W # 6#MG SPECS 6*76 LDX 5 ASYSTEMMESS [IP MESSAGETIME 6*LQ LDN 1 FONINTP 6B6B DVS 4 1 6BL2 SLEEP 6C5L COOR3 #62 [SLEEP THE LENGTH OF MESSAGETIME 6CK= CALL 0 PMISC [UNLESS A NON SPECIAL TES JAMMED 6D4W BRN NDOZE 6DJG LDX 1 BACK1(2) [IF SPECIAL RES -CAN 6F46 SBN 1 48 [SLEEP A LITTLE LONGER 6FHQ BPZ 1 NDOZE 6G3B ANDN 4 #4000 6GH2 BZE 4 NMISC 6H2L LDX 2 FX2 6HG= BS 2,XBNOTFIRST 6H^W BRN NRCAL [RESET X2 6JFG NDOZE 6J^6 BCT 5 SLEEP 6KDQ LDCT 3 #400 6KYB BRN SONLY 6LD2 # 6LXL NOSPEC 6MC= CALL 3 OUTMESS [ABOVE THRESHOLD ON RES . . . 6MWW +1 6NBG +BSTHRESHR 6NW6 JBS PASS2,2,XBNONSPEC 6P*Q REFORMUL 6PTB SMO FX2 6Q*2 STO 6 AWORK2 [ SAVE VALUE OF FORMULAFROM 1ST PASS 6QSL BRN NEWF 6R#= PASS2 JBC NODUMP,2,XBDUMPED 6RRW [ IF DUMPER WAS STARTED ON LAST PASS LEAVE FORMULA UNC 6S?G BRN ZDUMPED 6SR6 NODUMP REFORM 6T=Q NEWF STO 6 FORMULA [CHANGE VALUE IN CORE 6TQB OUTPACK FORMULA,1,NUMA [OUTPUT WORKING VALUE OF FORMULA 6W=2 CALL 3 OPMESS [OUTPUT MESSAGE TO CONSOLE 6WPL +BSUFORM 6X9= +1 6XNW ZDUMPED 6Y8G #SKI Z 6YN6 TRACE 0(3),BEGINMAS 6^7Q OPENMAS XBRK,GENERAL 6^MB [ 7272 [ DOWN TO BSPRUNE FOR FILESTORE PASS 72LL [ 736= DOWN BSPRUNE,1 73KW [ 745G [ 74K6 [ 754Q LDX 0 ACOMMUNE1(2) 75JB STO 0 AWORK4(2) [PRESERVE CLEANCT TOTAL 7642 #SKI Z 76HL TRACE 0,DIRWTIM 773= MASTL CLOSETOP [CLOSE MASTER 77GW BS 2,XBNONSPEC 782G LDN 3 0 78G6 SONLY CALL 0 PMISC [FIND NEXT RESIDENCE 78^Q SRSET BRN SOUT [EXIT IF END OF CHAIN 79FB MHUNTW 1,FILE,FRESNUM 79^2 NERES 7=DL LDX 0 FRNUM(1) 7=Y= BXE 0 BACK1(2),THRES [J IF FOUND RIGHT RESIDENCE 7?CW SMO FX1 7?XG ADX 1 NFRES [STEP ON TO NEXT RESIDENCE 7#C6 BRN NERES 7#WQ THRES LDX 5 BSFREE(2) [NO. OF BLOCKS LEFT 7*BB BNG 5 SJAM [STILL IN HARD JAM 7*W2 JBC NJAM,2,BSLJAM [ JUMP IF WASNT JAMMED 7B*L BXL 5 BSJAML(2),SJAM [ STILL JAMMED - ADD INTO BSLEFT 7BT= BXL 5 BSTHRESH(2),NTHRESH [WAS JAMMED- STILL ABOVE THRESHOLD 7C#W MBC 2,BSLJAM,BSLTHRESH [ WAS JAMMED-NOW BELOW THRESHOLD-CLEA 7CSG [ THRESHOLD BITS 7D#6 BS 1,BFTHRESHCL 7DRQ BRN SNEXT 7F?B NTHRESH 7FR2 # WAS JAMMED BUT STILL ABOVE THRESHOLD- UNSET JAM MARKER 7G=L # ONLY IN BSLETH AND SET B21 OF STATEWD 7GQ= BC 2,BSLJAM 7H9W BS 1,BFJAMCL 7HPG BRN SNEXT 7J96 SJAM 7JNQ LDX 4 BSJAML(2) [JAM LIMIT 7K8B SBX 4 BSFREE(2) [ - NO. OF BLOCKS LEFT 7KN2 BNG 4 SNEXT 7L7L LDX 5 BACK1(2) [DONT ADD INTO BSLETH IF FILE 7LM= SBN 5 48 [ON A SPECIAL RESIDENCE 7M6W BPZ 5 WRES 7MLG MHUNTW 1,FILE,INCUNJ 7N66 ADS 4 BSLEFT(1) [BLOCKS INTO JAM TO BSLEFT 7NKQ WRES 7P5B ADN 3 1 [INCREASE NUMBER OF UNITS STILL JAMME 7PK2 BRN SNEXT [PICK UP NEXT FPTR 7Q4L NJAM JBC SNEXT,1,BFTHRESH 7QJ= BXL 5 BSTHRESH(2),SJAM [STILL ABOVE THRESH - LEAVE IT - 7R3W [BUT FIRST CHECK IT HASNT JAMMED 7RHG # NOW BELOW THRESHOLD - UNSET THRESHOLD BIT 7S36 BC 2,BSLTHRESH 7SGQ BS 1,BFTHRESHCL 7T2B SNEXT SMO FX1 7TG2 LDN 0 SRSET [RESET LINK ADDRESS FOR PMISC 7T^L BRN NMISC 7WF= # 7WYW SOUT LDX 6 3 [NO. OF JAMMED UNITS- B0 SET IF 7XDG [FROM CC AO MESSAGE 7XY6 CALL 3 OUTMESS [JAM CLEARED ON RES . . . 7YCQ +2 7YXB +BSJAMCL 7^C2 LDEX 5 6 7^WL BNZ 5 STILJAM [J IF NOT END OF JAM 82B= MHUNTW 3,FILE,INCUNJ [PREPARE FILE/INCUNJ FOR 82TW LDN 0 8 [BSUPTHRESH MESSAGE 83*G STO 0 INREC(3) 83T6 STILJAM 84#Q BNG 6 PCCAO 84SB CALL 3 OUTMESS [RES . . . CLEARED BELOW THRESHOLD 85#2 +3 85RL +BSTHRESHCL 86?= PCCAO 86QW #SKI K6BSUNJAM>99-99 87=G TRACE CLEANCT,BSU END 87Q6 #SKI Z 889Q ( 88PB TRACE 6,STILJAMD 8992 TRACE 0,CLCTEND 89NL ) 8=8= IFUJSTAT 4 8=MW LDEX 5 6 [IGNORE B0 IF SET 8?7G # 8?M6 # 8#6Q BNZ 5 RETURNA 8#LB [ JAM CLEARED 8*62 IFUJSTAT 5 8*KL OUTPAR TIMENOW 8B5= CALL 3 OPMESS [OUTPUT'BACKING STORE JAM CLEARED' 8BJW +BSJCL 8C4G +3 [TO ALL CONSOLES 8CJ6 CALL 3 OPPMESS [RESIDENCE%A %B NOW ABOVE THREXHOLD 8D3Q +5 8DHB +BSUPTHRESH 8F32 LDX 2 FX2 8FGL JBC NOUPD,2,XBNONSPEC 8G2= LDX 6 AWORK2(2) [PICK UP VALUE FROM 1ST PASS 8GFW CALL 3 NEWFORM [ CHANGE VALUE IN PARAMINDEX 8G^G OPENMAS XBRK,GENERAL 8HF6 LDX 0 GMTNOW 8HYQ #SKI IFS 8JDB MASFCB 3 8JY2 #SKI IFS<1$1 8KCL LDX 3 BFILE [MASTERS FCB 8KX= STO 0 FLASTJAM(3) [CURRENT GMT 8LBW MBS 3,BFALTB,BFALTR [SET FILE BEING ALTERED BITS 8LWG #SKI IFS 8MB6 SFMAPP 3,3,XBRK 8MTQ #SKI IFS<1$1 8N*B ( 8NT2 NMAPP 8P#L LDX 3 FPTR(3) [SERCH FILE CHAIN FOR F/FMAPP 8PS= LDX 4 ATYPE(3) 8Q?W BXE 4 FILEPLUSFCB,XBRK [GEOERR IF NO F/FMAPP 8QRG BXU 4 SMAPP(1),NMAPP 8R?6 ) 8RQQ [ X3 NOW POINTS TO MASTERS F/FMAPP BLOCK 8S=B LDN 0 3 8SQ2 STO 0 FBCOMM(3) [REQUIRED IN UPDATING MASTER 8T9L CLOSETOP 8TP= NOUPD 8W8W MFREEW FILE,FABSNB 8WNG MFREEW FILE,FLOCNB 8X86 MFREEW FILE,FRESNUM 8XMQ MFREEW FILE,INCUNJ 8Y7B CALL 0 PMISC [TEST TO SEE IF A NEW JAM 8YM2 BRN NOMOREJAMS [END OF BSLIST 8^6L ANDN 4 #4000 8^L= BNZ 4 NUJAM [ JUMP IF JAM MARKER IN BSLETH SET 925W BRN NMISC [NO. SO LOOK AT NEST RESIDECE 92KG NOMOREJAMS 9356 LONGON #21 [WAKE UP ACTS WAITING FOR END BSJAM 93JQ [E.G.MK3 PROCESSOR 944B STARTACT RET [KICK D.T. SCHEDULER 94J2 NOSTARTACT 953L COOR3 #11 [SET WAITING FOR NEXT JAM 95H= NUJAM 962W LDX 2 FX2 96GG STOZ AWORK3(2) [SET'NEW JAM' 9726 BRN K1BSUNJAM [NEW JAM HAS OCCURRED 97FQ # 97^B XBRK GEOERR 1,BRK BSUJ [BREAKIN 98F2 # 98YL # SUBROUTINE TO SEND MESSAGE TO CONSOLE 99D= # 99XW OUTMESS 9=CG MHUNTW 1,FILE,INCUNJ 9=X6 LDX 5 IRESNUM(1) [NUMBER OF ONLINE RESIDENCES 9?BQ ADN 5 2 [INCLUDE 1 FOR REC HEDDR 9?WB [AND ANOTHER FOR A1+1 (NOT USED) 9#B2 SBX 3 FX1 9#TL SETUPCORE 5,2,FLIB,FLINC 9**= ADX 3 FX1 9*SW LDN 0 1 9B#G STO 0 A1(2) [SET UP REC HEDDR FOR FLINC 9BS6 LDN 5 0 9C?Q MHUNTW 1,FILE,FRESNUM 9CRB ADX 2 A1(2) [INCREASE POINTER FOR F/FLINC 9D?2 NRESN 9DQL LDX 0 0(3) [PICK UP FIRST PARAMETER OF CALL 9F== BZE 0 XJAMRES [JAM ON RESIDENCE 9FPW SBN 0 1 9G9G BZE 0 XTHRESHR [ABOVE THRESHOLD 9GP6 SBN 0 1 9H8Q BZE 0 XJAMCL [JAM CLEARED 9HNB SBN 0 1 9J82 BZE 0 XTHRESHCL [CLEARED BELOW THRESHOLD 9JML BRN XJAMRESCCAO [CC AO MESSAGE WITH X0=1 9K7= TRES 9KLW LDX 4 FRNUM(1) [INSERT RESNUM INTO F/FLINC 9L6G STO 4 A1+1(2) 9LL6 MHUNTW 2,FLIB,FLINC 9M5Q LDN 0 1 9MKB ADS 0 A1(2) [INCREASE POINTER IN F/FLINC 9N52 ADX 2 A1(2) [AND UPDATE X2 9NJL NSUIT 9P4= MHUNTW 1,FILE,FRESNUM 9PHW ADN 5 4 9Q3G BXE 5 FRREC(1),RESEN [J IF END OF SEARCH 9QH6 ADX 1 5 [UPDATE F/FRESNUM POINTER BY 4 9R2Q BRN NRESN [LOOK AT NEXT RES NUMBER 9RGB # 9S22 # FINALLY OUTPUT MESSAGE 9SFL # 9S^= RESEN 9TDW MHUNTW 2,FLIB,FLINC 9TYG LDX 5 A1(2) [CHECK IF ANY VALUES TO O/P 9WD6 SBN 5 1 9WXQ BZE 5 NOMESS [DONT BOTHER WITH MESSAGE IF NOT 9XCB LDX 4 1(3) [PICK UP UNIVERSAL IDENTIFIER 9XX2 SBX 3 FX1 9YBL OUTINCS [SET UP OUTPARAM FOR O/P 9YW= SMO FX2 9^*W STO 7 AWORK1 [PRESERVE STATS SWITCH 9^TG LDN 7 0 [MESSAGE TO CENTRAL CONSOLE =2*6 INFORMX 7,4,1 =2SQ ADX 3 FX1 [RESTORE CALL ADDRESS =3#B LDX 7 AWORK1(2) [RESTRORE STATS SWITCH =3S2 NOMESS =4?L LDX 4 0(3) =4R= BZE 4 PDEAL [CHECK IF NEED TO DEALLOCATE =5=W SBN 4 4 =5QG BZE 4 SRES [J IF COME FROM CCAO MESSAGE =6=6 NORMAL =6PQ MFREEW FLIB,FLINC =79B EXIT 3 2 [NORMAL EXIT =7P2 PDEAL BPZ 6 NORMAL [NO NEED TO DEALLOCATE =88L [ - EXIT NORMALLY =8N= SPECONLY =97W MFREEW FLIB,FLINC =9MG EXIT 3 3 ==76 SRES LDEX 0 6 [DONT NEED B0 ==LQ BXE 0 5,SPECONLY [ONLY SPEC RES JAMMED =?6B BRN NORMAL [NORMAL EXIT DO UNJAM PASS =?L2 # =#5L # =#K= # SETS B20 - JAM ON RESIDENCE. . . =*4W [ =*JG [ =B46 XJAMRES [JAM ON RESIDENCES =BHQ JBC NSUIT,1,BFJAM [ IF NOT JAMMED LOOK AT NEXT RESIDENC =C3B LDX 4 FRNUM(1) [ RESIDENCE NUMBER =CH2 SBN 4 48 =D2L BNG 4 NSPECJ [ JUMP IF NOT SPEC RES =DG= LDCT 4 #400 [ IF SPEC RES SET BIT 0 IN X2 =D^W ORS 4 6 =FFG NSPECJ =F^6 JBSS NSUIT,1,BFJAMOP [ IF MESSAGE ALREADY OUTPUT DONT REPE =GDQ BRN TRES [ INSERT RES NO =GYB [ =HD2 [ =HXL XTHRESHR [ ABOVE THRESHOLD ON RES =JC= JBC NSUIT,1,BFTHRESH [ DONT OUTPUT MESSAGE IN NOT ABOVE TH =JWW JBSS NSUIT,1,BFTHRESHOP [ OR IF MESSAGE ALREADY OUTPUT =KBG BRN TRES =KW6 [ =L*Q [ =LTB XJAMCL [ JAM CLEARED ON RESIDENCE =M*2 JBC NSUIT,1,BFJAM [ JUMP IF IT WASNT JAMMED =MSL JMBAC NSUIT,1,BFJAMCL,BFTHRESHCL [ =N#= MBC 1,BFJAMOP,BFTHRESHOP [ CLEAR MESSAGE OUTPUT BITS =NRW BRN TRES =P?G [ =PR6 [ =Q=Q XTHRESHCL =QQB JMBAC NSUIT,1,BFJAM,BFTHRESH,BFTHRESHCL =R=2 JBS THRESHB,1,BFTHRESHCL =RPL LDEX 4 6 =S9= BNZ 4 NSUIT [ =SNW LDX 4 FRNUM(1) [ =T8G CALL 1 NUMINC [ INSERT RES NO IN INCUNJ =TN6 MHUNTW 2,FLIB,FLINC =W7Q ADX 2 A1(2) [ RESET POINTER TO FLIB FLINC =WMB BRN NSUIT =X72 THRESHB =XLL MBC 1,BFJAMOP,BFTHRESHOP =Y6= BRN TRES =YKW [ =^5G [ =^K6 XJAMRESCCAO ?24Q JBC NSUIT,1,BFJAM ?2JB LDX 4 FRNUM(1) ?342 SBN 4 48 ?3HL BPZ 4 TRES ?43= BRN NSUIT ?4GW [ ?52G [ ?5G6 OPMESS ?5^Q LDX 1 0(3) [ADDRESS OF MESSAGE ?6FB LDX 5 1(3) [ROUTING PARAMETER ?6^2 SBX 3 FX1 ?7DL INFORMX 5,1,1 ?7Y= ADX 3 FX1 ?8CW EXIT 3 2 ?8XG OPPMESS ?9C6 MHUNTW 2,FILE,INCUNJ ?9WQ LDN 4 INREC(2) [FIND OUT THE NUMBER OF RESIDENCES ?=BB ADX 4 INREC(2) [STILL ABOVE THRESHOLD ?=W2 SBN 4 INCUNR(2) ??*L SBX 3 FX1 ??T= SETUPCORE 4,2,FLIB,FLINC [AND SET UP FLINC FOR THEM ?##W ADX 3 FX1 ?#SG SBN 4 1 ?*#6 STO 4 A1(2) [REMEMBER A1+1 IN FLINC ?*RQ SBN 4 1 ?B?B BZE 4 NORMAL ?BR2 ADN 2 A1+2 ?C=L MHUNTW 1,FILE,INCUNJ ?CQ= ADN 1 INCUNR+1 ?D9W SMO 4 ?DPG MOVE 1 0 ?F96 BRN RESEN ?FNQ # ?G8B # NUMINC IS USED AT THE START OF THE PASS TO INSERT ?GN2 # UNRELIABLE INCREMENT NUMBERS INTO FILE/INCUNJ BLOCK ?H7L # ALSO USED AT END OF JAM TO HOLD NUMBERS OF ANY ?HM= # RESIDENCES STILL ABOVE THRSHOLD ?J6W # ?JLG NUMINC ?K66 SBX 3 FX1 ?KKQ SBX 1 FX1 ?L5B LDX 2 FX2 ?LK2 STO 3 ACOMMUNE2(2) ?M4L STO 1 ACOMMUNE1(2) [TEMP STORAGE FOR LINK ADDRESS ?MJ= MHUNTW 3,FILE,INCUNJ ?N3W SMO INREC(3) [STORE NUMBER IN ?NHG STO 4 INREC-1(3) [NEXT WORD OF INCUNJ ?P36 LDN 0 1 ?PGQ ADS 0 INREC(3) [INCREASE INCUNJ REC HEDDR. ?Q2B LDX 4 INREC(3) ?QG2 BXL 4 ALOGLEN(3),NUFF ?Q^L ALTLEN 3,4,FILE,INCUNJ [INCREASE INCUNJ LENGTH ?RF= NUFF LDX 1 ACOMMUNE1(2) [RESTORE LINKS IN X3 & X1 ?RYW ?SDG LDX 3 ACOMMUNE2(2) ?SY6 ADX 3 FX1 ?TCQ ADX 1 FX1 ?TXB EXIT 1 0 ?WC2 # ?WWL # S/R PICKS UP NEXT BSLIST BLOCK ?XB= # EXIT 0 0 IF END OF CHAIN ?XTW # EXIT 0 1 IF SUITABLE RESIDENCE FOUND ?Y*G # ?YT6 PMISC LDN 2 BMISC ?^#Q LDX 6 BSAB [HAMTYPE OF BSLIST BLOCK ?^SB NMISC LDX 2 FPTR(2) [NEXT BLOCK IN CHAIN #2#2 BXE 2 CXMI,NOUT [END OF CKAIN? #2RL BXU 6 ATYPE(2),NMISC [NOT A BSLIST BLOCK #3?= LDX 4 BSLETH(2) #3QW BNG 4 NMISC [J IF SWAP FILE #4=G EXIT 0 1 #4Q6 NOUT EXIT 0 0 #59Q # #5PB # S/R TO ALTER VALUE OF FORMULA #692 # IN CORE AND ON B.S. IF GMT NOT ZERO #6NL # OR JUST IN CORE IF ZERO #78= # #7MW NEWFORM #87G SMO FX1 #8M6 LDN 4 PARALT #96Q SBX 3 FX1 #9LB INSTPARA XBRK,4,6,OVERL #=62 NWLIM #=KL ADX 3 FX1 #?5= EXIT 3 0 #?JW OVERL ##4G OUTPACK 6,1,NUMA [PICK UP VALUE OF FORMULA ##J6 INFORM 1,BSLIMIT,1 #*3Q BRN NWLIM #*HB # S/R FOR PARAMETERS FOR FILE FORMULA MESSAGE #B32 PACKMESS #BGL SBX 7 FX1 #C2= OUTPACKX 4,5,6 #CFW ADX 7 FX1 #C^G EXIT 7 0 #DF6 MENDAREA 20,K99BSUNJAM #DYQ #END ^^^^ ...042113120002