DTSUBSS867
(George Source)
Macros used: ALTLEN, BACKSPACE, BBS, BC, BCASTX, BS, BXE, BXL, BXU, CLOSETOP, CONSERNO, FDTENT, FINDREC, FREECORE, GEOERR, HUNTW, JBC, JBS, JMBS, JOBLOCK, LF, LONGON1, MAGICNO, MBS, MFREEW, MHUNTW, MONOUTX, NAME, OPENINC, OUTMESSX, OUTNULL, OUTPARAM, READ, READAGAIN, REWIND, REWRITE, SEG, SEGENTRY, SETBIT, SETNCORE, SETUPCORE, STEP, STF, TAPEWRONG, TRACE, UNNORM, UP, VFREEW
- DTSUBSS867.txt
22FL SEG DTSUBSS,867,JP-AML,SCHEDULER 22^= [ 23DW [ 23YG [ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982 24D6 [ 24XQ [ 25CB SEGENTRY K1DTSUBSS,X1DTSUBSS 25X2 SEGENTRY K9DTSUBSS,X9DTSUBSS 26BL SEGENTRY K3DTSUBSS,X3DTSUBSS 26W= SEGENTRY K2DTSUBSS,X2DTSUBSS 27*W SEGENTRY K5DTSUBSS,X5DTSUBSS 27TG SEGENTRY K15DTSUBSS,X15DTSUBSS 28*6 SEGENTRY K16DTSUBSS,X16DTSUBSS 28SQ [ 29#B [ 29S2 [ 2=?L [ MONITORING FILE IDENTIFIERS 2=R= [ 2?=W MBBC +BRVOL [%A IS NOW ONLINE 2?QG MBBC1 +BRVTL [%A IS TEMPORARILY UNAVAILABLE 2#=6 MBBC2 +BRVPL [%A IS PERMANENTLY LOST 2#PQ MBBC3 +BRVNE [%A DOES NOT EXIST 2*9B [ 2*P2 [ 2B8L [ 2BN= [ MONITORING FILE MESSAGES 2C7W [ 2CMG WFAIL +JMTFAILM [MT %B FAILED(%A) 2D76 WFORM +JMTFORM [MT %B FORMAT ERROR%A 2DLQ WALIEN +JMTALFT [(ALIEN FILESTORE TAPE) 2F6B WHEAD +JMTNOTG3 [MT %A0NOT LABELLED "GEO3DUMPTAPE" 2FL2 WQUEER +HNOWNED [TAPE %A IN QUERY STATUS AND HAS BEEN 2G5L [WRONGED 2GK= TAPEFAIL [THESE CHARACTER STRINGS 2H4W +9 [ARE USED BY TAPEFAIL 2HJG 12HREAD FAIL [MESSAGE....... 2J46 +10 2JHQ 12HPLACE LOST [.......THEY MUST BE KEPT 2K3B +7 [CONTIGUOUS 2KH2 12HNO DATA 2L2L +17 2LG= 20HDECK DISCONNECTED 2L^W [ 2MFG [ ****************************************************************** 2M^6 [ 2NDQ [ THIS SUBROUTINE APPENDS TO THE FDT AN ENTRY FOR THE TSN SPECIFIED 2NYB [ IN AWORK2 OF THE ACTIVITY BLOCK. IF AN ENTRY ALREADY EXISTS THEN T 2PD2 [ SUBROUTINE WILL UNFORTUNATELY GEOERR. 2PXL [ AWORK3 ON ENTRY CONTAINS STATE OF TAPE,SO AS TO DECIDE WHETHER WPR 2QC= [ OR NOT,REQUIRED.IF THIS IS A DUMPER REQUEST,THEN AWORK3 ZERO,AND 2QWW [ SO'NO WPR REQUIRED'BIT IS UNSET,SO WPR REQUESTED 2RBG [ THE LINK ADDRESS MUST BE RELATIVISED 2RW6 [ 2S*Q [ 2STB X16DTSUBSS [WAS UPFDT IN SCHEDMTX 2T*2 SMO FX2 [ 2TSL LDX 5 AWORK2 [GET TSN 2W#= [ 2WRW [ FIND FDT ENTRY FOR TSN IN X5-IF NOT IN,GO TO NOFDTTAPE 2X?G [ 2XR6 FDTENT 3,5,NOFDTTAPE [J TO NOFDTTAPE NORMALLY 2Y=Q GEOERR 1,SHMTSKIP [GEOERR 2YQB [ 2^=2 [ TAPE NOT IN,MAKE NEW ENTRY 2^PL [ FDT BLOCK MUST ALWAYS HAVE 4 SPARE WORDS-THERE CAN BE NO COORD. 329= [ BETWEEN SEARCH AND NEW ENTRY INSERTION. 32NW [ 338G NOFDTTAPE 33N6 LDX 3 BOLC [POINT TO FDT BLOCK 347Q LDX 3 A1(3) [X3 => NUMBER OF ENTRIES 34MB SLL 3 2 [FOUR WORD ENTRIES 3572 ADX 3 BOLC [POINT TO SPACE FOR NEW ENTRY 35LL STO 5 FDSN(3) [SET UP NEW ENTRY -TSN 366= STOZ FDINC(3) [ -INCREMENT NUMBER 36KW STOZ FDFILE(3) [ -FILE NUMBER 375G STOZ FDST(3) [ -STATE WORD 37K6 MBS 3,BIFDTO,BIFDTNW [SET 'BEING OPENED' &'NO WPR' BITS 384Q JBS NOWPR,BOLC,BIFDTAFS [J IF ALIEN TAPE 38JB SMO FX2 [ 3942 LDX 5 AWORK3 [STATE OF TAPE 39HL BBS 5,5,NOWPR [J IF NOT CURRENT DUMP TAPE 3=3= BS 3,BIFDTCD [SET THE 'CURRENT DUMP TAPE' BIT 3=GW BC 3,BIFDTNW [CLEAR THE "NO WPR REQUIRED" BIT 3?2G NOWPR [ 3?G6 STF 3,FDTFSNO,6 [STORE FILESTORE NUMBER 3?^Q LDX 3 BOLC [X3 -> OFLC 3#FB LDX 6 A1(3) [NUMBER OF ENTRIES 3#^2 ADN 6 1 [UPDATED 3*DL STO 6 A1(3) [BY ONE. 3*Y= [ 3BCW [ GET SPACE FOR NEXT ENTRY 3BXG [ 3CC6 SLL 6 2 [FOUR WORD ENTRY 3CWQ ADN 6 5 [NEW ENTRY + A1 3DBB ALTLEN BOLC,6 [LENGTHEN FDT 3DW2 UP 3F*L [ 3FT= [ ************************************************************* X15DTS 3G#W [ 3GSG [ 3H#6 [ 3HRQ [ 3J?B [ FREQ BLOCK FOUND TO BE IN A TERMINAL STATE 3JR2 [ 3K=L [ BIT BINCUNVERR INCREMENT UNVERIFIED 3KQ= [ BIT BFILERES FILE HAS BEEN RVED OK 3L9W [ BIT BFILNEXI FILE NO LONGER EXISTS 3LPG [ BIT BPERLOST FILE PERMENTLY LOST 3M96 [ BIT BTEMLOST FILE TEMPORARILY LOST 3MNQ [ BIT BFILBRES FILE IS BEING RVED 3N8B [ 3NN2 [ USER NAME/LOCAL NAME OF FILE MUST BE STORED IN DTS ACTIVITY 3P7L [ BLOCK BECAUSE OF UNADVOIDABLE CO-ORDINATION 3PM= [ 3PQB ...X15DTSUBSS [THIS WAS TERMST IN SCHEDMTX 3PTG ... LDX 3 BOLC [REFIND FREQ 3PYL ...NFREQ 3Q3Q ... LDX 3 FPTR(3) [FIRST FREQ 3Q6W ... BXE 3 CXOL,OUT [END OF FREQS 3Q=2 ... JMBS NFREQ,3,BHAPPY,BINCUNVERR [J IF DEALT WITH 3Q*6 ... JBS TERMS,3,BTERMST [TERMINAL STATE 3QD= ... BRN NFREQ [NEXT FREQ 3QHB ...TERMS 3QLG LDX 4 FREVCT(3) [X4 => NUMBER OF JOB NOS 3R66 BZE 4 NOJOBS [J IF NO JOB NOS 3RKQ LDX 1 FX1 [PICK UP BROADCAST 3S5B JBS XIDENT,3,BFILERES [IDENTIFIER BEFORE 3SK2 ADN 1 1 [COORDINATIONS 3T4L JBS XIDENT,3,BTEMLOST [ 3TJ= ADN 1 1 [ 3W3W JBS XIDENT,3,BPERLOST [ 3WHG ADN 1 1 [ 3X36 JBC (GEOERR),3,BFILNEXI [REMOVE WHEN WORKING 3XGQ XIDENT [ 3Y2B LDX 6 MBBC(1) [PICK UP IDENTIFIER 3YG2 SMO 4 [PICK UP JOB NO 3Y^L LDX 7 FREVCT(3) [TAKING LAST ONE FIRST 3^F= LDX 2 FX2 [ 3^YW LDN 0 FFUSER1(3) [MOVE IN USER NAME 42DG LDN 1 ACOMMUNE1(2) [ 42Y6 MOVE 0 3 [ 43CQ LDN 0 FFLOG1(3) [ 43XB LDN 1 ACOMMUNE4(2) [MOVE IN LOCAL NAME 44C2 MOVE 0 5 [ 44WL LDX 0 FFLANG(3) [UPDATE WITH LANGUAGE WORD 45B= STO 0 ACOMMUNE9(2) [ 45TW LDX 5 ALOGLEN(3) [ 46*G LDN 1 1 [ 46T6 SBS 1 FREVCT(3) [ 47#Q SBS 1 5 [ALTER THE SIZE OF FREQ BLK 47SB ALTLEN 3,5 [ 48#2 [ 48RL [ CHECK FIRST TO SEE IF ITS WORTH DOING A BROADCAST 49?= [ 49QW BZE 7 OUT [J IF ISSUED IN NO-USER CONTEXT 4==G LDX 2 7 [ 4=Q6 JOBLOCK 2,1 [ 4?9Q BNG 1 OUT [J IF JOB NOLONGER PRESENT 4?PB LDX 0 JMISC(1) [ 4#92 BNG 0 OUT [OR NOT A MOP JOB 4#NL SETNCORE 10,3,FILE,FABSNB [SET UP FOR BCASTX 4*8= LDN 0 10 [SET UP RECORD HEADER 4*MW STO 0 A1(3) [ 4B7G LDN 0 ACOMMUNE1(2) [MOVE IN USER/LOCAL NAMES 4BM6 LDN 1 A1+1(3) [ INTO FILE FABSNB 4C6Q MOVE 0 9 [ 4CLB SETNCORE 40,3,ADATA,CREADL [SET UP FOR UNNORM 4D62 STOZ A1(3) [ 4DKL UNNORM TWO [SET UP FILE NAME FOR OUTPARAM 4F5= MHUNTW 3,ADATA,CREADL [ 4FJW OUTPARAM A1(3),CPDATA,ADATA,CREADL [ CONVERT TO PAR. BLK 4G4G BCASTX 6,7 [BROADCAST TO USER 4GJ6 MFREEW FILE,FABSNB 4H3Q MFREEW ADATA,CREADL 4HHB [ 4J32 [ IF JOB NOT THERE OR BEEN DISCONNECTED THEN BROADCAST 4JGL [ LEAVES GMON/ASET AROUND 4K2= [ 4KFW VFREEW GMON,ASET 4K^G LDX 1 FX1 4LF6 OUT UP 4LYQ NOJOBS 4MDB LDX 7 FREQCT(3) [ NO OF WAITERS 4MY2 BZE 7 XFREBLOK [J IF NO JOBS & NO WAITERS 4NCL LDX 4 FDTINCNUM(3) [X4 => INC NO 4NX= LDX 5 FDTFILNUM(3) [X5 => FILE NO 4PBW MAGICNO 5,4,1 [X1 => AUXILLIARY WAITING STYLE 4PWG LONGON1 #24,1 [WAKE UP ALL ACTIVITIES WAITING FOR T 4QB6 BS 3,BHAPPY [SET 'FREQ DEALT WITH' BIT 4QTQ UP 4R*B XFREBLOK 4RT2 LDX 1 3 4S#L LDX 3 FPTR(3) 4SS= FREECORE 1 [NO-ONE LEFT WAITING FOR FREQ 4T?W UP 4TRG [ 4W?6 [ MESSAGE IN X4 TO OPS CONSIOLE 4WQQ [ 4X=B OPSMESS 4XQ2 SBX 7 FX1 4Y9L CONSERNO ADTSN(2),ACOMMUNE1 4YP= OUTPARAM ACOMMUNE1(2),ACOMMUNE2 4^8W MONOUTX 4 4^NG ADX 7 FX1 5286 EXIT 7 0 52MQ [ 537B [ 53M2 [ TAPE IS QUERY STATUS 546L [ 54L= [ ISSUE TW MACRO,TELL OPS THAT TAPE HAS BEEN WRONGED 555W [ OPS CAN DO TAPERIGHT WHEN IT GETS OUT OF QUERY STATUS 55KG [ 5656 [ 56JQ [ ******************************************************************** 574B [ 57J2 X9DTSUBSS 583L TAPEWRONG ADTSN(2) [WRONG TAPE 58H= MFREEW AONBS,GLIST [RUBBISH BLOCK FROM LIBRARIAN 592W LDX 4 WQUEER(1) [TAPE %A IN QUERY STATUS AND HAS BEEN 59GG LDX 2 FX2 [RESET X2 5=26 CALL 7 OPSMESS 5=FQ UP 5=^B [ 5?F2 [ ENTRY FOR FAILED TAPE - TYPE MESSAGE, UPDATE FDT AND INCINDEX 5?YL [ 5#D= [ ******************************************************************** 5#XW [ 5*CG X1DTSUBSS 5*X6 LDX 4 WFAIL(1) 5BBQ LDX 5 CPRW1(2) [CHECK REPLY WORD FOR FAIL TYPE 5BWB ANDN 5 #3 [WE ARE ONLY INTERESTED IN BITS 5CB2 LDN 7 4 [22 AND 23 5CTL MPY 5 7 [FAIL TYPE TABLE ENTRY 5D*= STO 6 ACOMMUNE1(2) [IS 4 WORDS LONG 5DSW ADX 1 ACOMMUNE1(2) [X1 => POINTER TO RELAVENT ENTRY 5F#G LDX 7 TAPEFAIL(1) [X7 => NO. OF CHARACTERS 5FS6 LDN 5 TAPEFAIL+1(1) [X5 => POINTS TO FIRST WORD 5G?Q LDN 6 ACOMMUNE1(2) [OF PARAMETER 5GRB MOVE 5 5 [MOVE PARAMETER INTO ACTIVITY 5H?2 OUTPARAM 7,ACOMMUNE1 [OUTPUT RELAVENT PARAMETER (1 OF 4) 5HQL MHUNTW 3,FILE,FDINCS 5J== LF 3,FDINCFSNO,6 [DON'T UPDATE INCINDEX IF ALIEN FS 5JPW BRN SBT 5K9G [ 5KP6 [ ENTRY FOR FORMAT ERROR - TYPE MESSAGE 5L8Q [ 5LNB [ ******************************************************************** 5M82 [ 5MML X2DTSUBSS 5N7= MHUNTW 3,FILE,FDINCS [X3 -> FDINCS 5NLW LF 3,FDINCFSNO,6 [X6 => FILESTORE NUMBER 5P6G BZE 6 THOSTAPE [J IF HOST FILESTORE TAPE 5PL6 LDX 6 WALIEN(1) [X6 => %A IDENTIFIER 5Q5Q OUTMESSX 6 [OUTPUT %A 5QKB BRN TOUTPUT [ 5R52 THOSTAPE [ 5RJL OUTNULL [%A NULL 5S4= TOUTPUT [ 5SHW LDX 4 WFORM(1) [X4 => MESSAGE SKELETON IDENTIFIER 5T3G LDN 6 1 [DON'T MARK INCINDEX FLAG 5TH6 SBT CALL 7 OPSMESS [OUTPUT MESSAGE 5W2Q BNZ 6 SUP [J IF INCINDEX NOT TO BE MARKED 5WGB LDX 0 CPRW1(2) [CHECK REPLY WORD FOR FAIL TYPE 5X22 LDCT 5 #10 5XFL ANDX 5 0 5X^= BNZ 5 SUP [J IF DECK INOP,DONT MARK INCINDEX 5YDW TFAIL ANDN 0 #3 5YYG BNZ 0 SUP [J IF NOT FAIL TYPE 0 5^D6 [AND DONT MARK INCINDEX 5^XQ TPINC LDCT 5 #400 [SET 'FAILED'BIT 62CB OPENINC ,GENERAL 62X2 CALL 7 SETBIT 63BL SUP UP 63W= [ 64*W [ ENTRY FOR HEADER DISAGREEMENT - TYPE MESSAGE, UPDATE FDT AND INCI 64TG [ 65*6 [ ******************************************************************** 65SQ [ 66#B X3DTSUBSS 66S2 LDN 6 0 [ SET MARK INCINDEX FLAG 67?L STOZ CPRW1(2) [ FORCE TAPEFAIL 67R= LDX 4 WHEAD(1) 68=W BRN SBT 68QG [ 69=6 [ AT PRESENT,THIS S.R.IS ONLY USED IN ONE PLACE-K2DTSUBS 69PQ [ 6=9B [ SUBROUTINE TO UPDATE FDT BLOCK AND INCINDEX WITH BITS IN X5 6=P2 [ INCINDEX IS ONLY UPDATED FOR FAIL TYPE 0 6?8L [ X2 = FX2 ON ENTRY 6?N= [ LINK IN X7 6#7W [ 6#MG SETBIT 6*76 SBX 7 FX1 6*LQ LDX 4 ADTSN(2) 6B6B FDTENT 3,4,NOTIN [FIND FDT ENTRY 6BL2 ORS 5 FDST(3) [SET THE BITS 6C5L BNZ 6 XCLOSEIT [J IF INCINDEX NOT TO BE MARKED 6CK= SFDINCS 6D4W MHUNTW 3,FILE,FDINCS 6DJG LDX 0 FDINCNO(3) [NO OF INCS ON TAPE 6F46 BZE 0 XCLOSEIT [J IF NO INCS E.G.NEW'D IN TAPE 6FHQ LDX 4 FDINCINC(3) [NUMBER OF FIRST INCREMENT ON TAPE 6G3B USEIT [POSITION ON RECORD IN FDT OR FDINCS 6GH2 FINDREC ,AINCNO-A1,4,REWINCX 6H2L BACKSPACE 6HG= NOTIN [NO FDT OR FDINCS,SO MUST CHECK EACH 6H^W [RECORD 6JFG READ 6J^6 READ [READ THIS RECORD 6KDQ MHUNTW 3,FILE,FRB 6KYB NAME 3,FILE,FWB 6LD2 LDX 0 A1(3) 6LXL BZE 0 TINCEND [BRANCH AT END OF INCINDEX 6MC= LDX 4 ADTSN(2) [PICK UP S/N AGAIN 6MWW SMO A1(3) 6NBG LDN 0 A1(3) 6NW6 ADN 3 AMAG 6P*Q TSL 6PTB BXE 4 0(3),TSN [LOOK FOR OUR TSN 6Q*2 ADN 3 2 6QSL BXL 3 0,TSL [LOOP TILL FOUND 6R#= BRN UNFWB 6RRW TSN 6S?G [ SETBIT FROM X5 INTO INCINDEX 6SR6 ORS 5 1(3) [SET THE BITS 6T=Q [ 6TQB [ IF THIS IS A FAIL WHILE PROCESSING,AND IN THE INC THAT THE PROCESS 6W=2 [ IS PROCESSING,GTHEN PUT FAIL DATA FROM APROC BOLOCK INTO INCINDEX 6WPL [ RECORD FOR THAT INCREMENT 6X9= BPZ 5 REW [J IF NOT FAIL 6XNW HUNTW 2,FILE,APROC 6Y8G BNG 2 REW [J IF NOT PROCESSOR 6YN6 LDX 4 AINCNO(2) [INCREMENT NUMBER FROM APROC BLOCK 6^7Q MHUNTW 3,FILE,FWB 6^MB BXU 4 AINCNO(3),REW [J IF NOT CORRECT INCREMENT 7272 LDX 4 AINCSTAT1(2) [MOVE FILE NO AT WHICH FAIL OCCURRED 72LL STO 4 AINCSTAT1(3) [WHILE PROCESSING,INTO INCINDEX RECOR 736= #SKI K6DTSUBSS>99-99 73KW TRACE 4,PROCFAIL 745G REW 74K6 REWRITE 754Q UNFWB 75JB MFREEW FILE,FWB 7642 BRN READ [GO FOR NEXT RECORD 76HL TINCEND 773= MFREEW FILE,FWB 77GW XCLOSEIT 782G CLOSETOP [INCINDEX 78G6 UPDEND 78^Q ADX 7 FX1 79FB EXIT 7 0 79^2 REWINCX 7=DL REWIND [MT PROBABLY OVERWRITTEN-MARK FDINCS 7=Y= BRN SFDINCS [ENTRIES AS FAILED 7?CW [ USED TO BE GEOERR INCENDER 7?XG [ 7#C6 [ 7#WQ [ PUT CANT DONE TAPE AT END OF INCINDEX 7*BB [ 7*W2 [ ******************************************************************** 7B*L [ 7BT= X5DTSUBSS 7C#W OPENINC ,GENERAL 7CSG LDX 4 ADTSN(2) 7D#6 MHUNTW 3,FILE,FDINCS 7DRQ LDX 7 FDINCNO(3) 7F?B BZE 7 NCEND [J IF NO INCS ON TAPE 7FR2 LDN 7 1 7G=L LDX 6 FDINCINC(3) 7GQ= STEPIT 7H9W STEP 7HPG BZE 3 NCEND 7J96 BXU 6 AINCNO-A1(3),STEPIT [J IF NOT REQD INC 7JNQ LDN 5 1 7K8B BXE 5 AMTS-A1(3),NEXTINC [J IF ONLY ONE TAPE 7KN2 LDX 5 0(3) 7L7L READAGAIN 7LM= SETUPCORE 5,3,FILE,FWB 7M6W MHUNTW 2,FILE,FRB 7MLG LDX 1 AMTS(2) [NO OF ENTRIES 7N66 ADN 2 A1 7NKQ ADN 3 A1 7P5B MOVE 2 AMAG-A1 [RED TAPE OF INCINDEX RECORD 7PK2 ADN 2 AMAG-A1 7Q4L ADN 3 AMAG-A1 7QJ= NEXTAC 7R3W BXU 4 0(2),TAPEAC 7RHG [ 7S36 [ CANT DONE TAPE FOUND 7SGQ #SKI K6DTSUBSS>99-99 7T2B TRACE 0,CANTTAPE 7TG2 LDX 5 1(2) [PICK UP STATE WORD 7T^L BRN ONNEXT 7WF= TAPEAC 7WYW LDX 0 0(2) [COPY ENTRY 7XDG STO 0 0(3) 7XY6 LDX 0 1(2) 7YCQ STO 0 1(3) 7YXB ADN 3 INCMAGLEN 7^C2 ONNEXT 7^WL ADN 2 INCMAGLEN 82B= BCT 1 NEXTAC 82TW STO 4 0(3) [PUT CANT DONE TAPE AT END 83*G STO 5 1(3) 83T6 REWRITE [INCREMENT RECORD 84#Q MFREEW FILE,FRB 84SB MFREEW FILE,FWB 85#2 NEXTINC 85RL MHUNTW 3,FILE,FDINCS 86?= BXE 7 FDINCNO(3),NCEND [J IF END OF FDINCS 86QW LDN 0 FDINCLEN 87=G MPY 0 7 87Q6 SMO 1 889Q LDX 6 FDINCINC(3) 88PB ADN 7 1 8992 BRN STEPIT 89NL NCEND CLOSETOP 8=8= UP 8=MW [ 8?7G [ 8?M6 #END 8#6Q ^^^^ ...000700560003