{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: DTSTART867)}}
====== DTSTART867 ======
(George Source)
**Macros used:** [[george:macro:ACROSS|ACROSS]], [[george:macro:ALTLEN|ALTLEN]], [[george:macro:BBUS|BBUS]], [[george:macro:BC|BC]], [[george:macro:BS|BS]], [[george:macro:BXE|BXE]], [[george:macro:BXU|BXU]], [[george:macro:CLOSETAPE|CLOSETAPE]], [[george:macro:COOR1|COOR1]], [[george:macro:DOWN|DOWN]], [[george:macro:FDTENT|FDTENT]], [[george:macro:FPUT|FPUT]], [[george:macro:GEOERR|GEOERR]], [[george:macro:JBC|JBC]], [[george:macro:JBS|JBS]], [[george:macro:LF|LF]], [[george:macro:LONGON|LONGON]], [[george:macro:MENDAREA|MENDAREA]], [[george:macro:MFREEW|MFREEW]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:MONOUT|MONOUT]], [[george:macro:OUTPACK|OUTPACK]], [[george:macro:QUICKUNL|QUICKUNL]], [[george:macro:REMOVE|REMOVE]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:SETBIT|SETBIT]], [[george:macro:STARTACT|STARTACT]], [[george:macro:SUICIDE|SUICIDE]], [[george:macro:TAPEOPEN|TAPEOPEN]], [[george:macro:TAPEWRONG|TAPEWRONG]], [[george:macro:TESTREP|TESTREP]], [[george:macro:TRACE|TRACE]], [[george:macro:UPDOLC|UPDOLC]]
228= ... SEG DTSTART,867,SECT.FILE,SCHEDULER
22BG ...[
22JQ ...[ (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
22R2 ...[
22^= SEGENTRY K1DTSTART,X1DTSTART
23DW SEGENTRY K2DTSTART,X2DTSTART
23YG SEGENTRY K3DTSTART,X3DTSTART
24D6 SEGENTRY K4DTSTART,X4DTSTART
24XQ SEGENTRY K5DTSTART,X5DTSTART
25CB SEGENTRY K7DTSTART,X7DTSTART
25X2 [
26BL [
26W= TYPEFGET +0 [FILE/FGET BLOCK
27*W #FID 0 11 FILE+FGET
27TG ...[
28*6 ...[ S.R.TO FIND FGET BLOCK,AND POINT THE ENTRY FOR THIS ACT'S TSN
28SQ ...[
2=?L SFGET
2=R= SMO FX1
2?=W LDX 0 TYPEFGET
2?QG LDX 2 BACT
2#2# ... LDN 3 2 [MAY BE 2 BLOCKS IF PARALLEL DUMP
2#=6 SACT LDX 2 FPTR(2)
2#PQ BXU 2 BACT,SACT1
2*9B GEOERR 1,FGOTTEN [NO FGET BLOCK FOUND
2*P2 SACT1 BXU 0 ATYPE(2),SACT [J IF BLOCK NOT FOUND
2B8L ...[
2BN= ...[ THIS IS THE UNIQUE OCCURRENCE OF THE FGET BLOCK
2C7W ...[
2CMG SMO FX2
2D76 LDX 0 ADTSN [TSN
2F?J ... LDX 7 INCCOPIES(2)
2H4W NEXTFGET
2HJG BXE 0 FGETSER(2),THISFGET [JUMP IF ENTRY FOUND
2J46 ADN 2 FGETLEN
2K9L ... BCT 7 NEXTFGET
2KL6 ... BCT 3 SACT
2L2L GEOERR 1,NOTNFGET
2MFG THISFGET
2NDQ TRACE 0,FGETHERE
2NYB EXIT 6 0
2PD2 [
2PXL [
2QC= [ THIS SUBROUTINE IS DESIGNED TO DO A NON-COORDINATING SEARCH OF THE
2QWW [ OLC,UPDATING ALL THE RELEVANT REQUEST BLOCKS. THERE ARE FOUR
2RBG [ ENTRY POINTS CORRESPONDING TO FOUR SEPERATE ACTIONS TO BE TAKEN
2RW6 [
2S*Q [ 1 XTAPEM/XTAPEP : SEARCH DOWN THE OFF LINE CHAIN
2STB [ INCREMENTING/DECREMENTING ADTCOUNT IN
2T*2 [ ALL REQUEST BLOCKS WHOSE INC. NO. IS IN
2TSL [ THE RANGE GIVEN BY FILE FDINCS BLOCK
2W#= [
2WRW ...[ ENTRY : X2 = FX2
2X?G ...[ FILE FDINCS BLOCK PRESENT
2XR6 [
2Y=Q [ 2 XCOUNT : SEARCH DOWN OLC UPDATING ADTCOUNT WITH A
2YQB ...[ VALUE SPECIFIED IN X0, IN ALL REQUEST
2^=2 [ BLOCKS WHOSE INC. NO. IS SAME AS IN X4
2^FS ...[ AND WHOSE FILESTORE NUMBER IS IN X6.
2^PL [
3266 ...[ ENTRY : X2 = FX2
32GL ...[ X0 = COUNT OF DTAS AVAILABLE
32X6 ...[ X4 = INC.NO.
33?L ...[ X6 = FILESTORE NUMBER.
33N6 [
347Q [ 3 XSTATE : SEARCH DOWN OLC SETTING APPROPRIATE BIT IN
34MB [ FDTSTATE WORD IN ALL REQUEST BLOCKS WHOSE
34^R ...[ INC. NO. IS GIVEN IN X4 AND WHOSE FILESTORE
35#8 ...[ NUMBER IS IN X6.
35LL [
3636 ...[ ENTRY : X2 = FX2
36CL ...[ X0 = STATE WORD
36S6 ...[ X4 = INCREMENT NUMBER
378L ...[ X6 = FILESTORE NUMBER
37K6 [
384Q ...[ EXIT IN ALL THESE CASES ALL THE ACCUMULATORS ARE C
3942 [
39HL [ NOTE THE LINK ACCUMULATOR IS X7
3=3= [
3=GW UPDOLC
3=J? ...[
3=KN ...[ ******************************************************************
3=M5 ...[
3=NG ...[ THIS SUBROUTINE SEARCHES THE FDT FOR A PARTICULAR ENTRY
3=PX ...[ - TSN IN X4, X2 WILL POINT TO ENTRY. IF NO ENTRY FOUND
3=R# ...[ SR WILL GEOERR.
3=SP ...[
3=W6 ...SEARCHFDT [
3=XH ... FDTENT 2,4 [
3=YY ... EXIT 7 0 [LINK IS X7
3?2G [
3?C? ...[ ******************************************************************
3?S4 ...[
3#8T ...[ THIS CHAPTER CONTROLS THE OPENING AND CLOSING OF THE TAPE
3#KL ...[ ASSOCIATED WITH ITS ACTIVITY
3*2C ...[
3*C8 ...[ ENTRY POINT 1
3*R^ ...[
3B8Q ...[ A DUMP TAPE ACTIVITY HAS BEEN SET UP BY SCHEDMTX, 'FPUT'ING THIS
3BKH ...[ CHAPTER, WHICH TRIES TO OPEN THE MT WHOSE TSN IS IN ADTSN
3C2# ...[
3CC6 X1DTSTART
3CLY ...[
3CWQ [ OPEN THE TAPE WHOSE TSN IS IN ADTSN
3D6J ...[
3DBB LDX 4 ADTSN(2)
3DGH ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY
3DLN ...#UNS FTS2
3DQT ...(
3DX2 ... LF 2,FDTFSNO,6 [X6 => FILESTORE NUMBER
3F37 ... BZE 6 OPENHOST [J IF HOST FILESTORE
3F7# ... DOWN SCHEDMTA,4 [GO DOWN TO OPEN ALIEN TAPE
3F?F ... BRN REPCHECK [GO TO CHECK REPLY
3FCL ... BRN REPCHECKA [ALIEN TAPE INSECURE(REPLY 'OPWRONG'
3FHR ...OPENHOST [
3FMY ...)
3FS5 ... JBS OPENREAD,2,BIFDTNW [J IF NO WPR REQUIRED
3FY= ...[
3G4C ...[ OPEN TAPE FOR WRITING
3G8J ...[
3G#W TAPEOPEN XBREAKIN,4,WRITE,NOTOL,DUMPER
3GSG BRN REPCHECK
3GYC ...[
3H4# ...[ OPEN TAPE WITHOUT CARING ABOUT WPR
3H89 ...[
3H#6 OPENREAD
3HLH ... TAPEOPEN XBREAKIN,4,,NOTOL,DUMPER
3HYY ...[
3J?B [ CHECK REPLY
3JH8 ...[
3JR2 REPCHECK
3L9W MFREEW CPAR,GPERCON
3LG? ...REPCHECKA
3LQN ...[
3M35 ...[ FIND FDT RECORD FOR THIS TAPE
3M?G ...[
3MHX ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY
3MS# ... TESTREP OK,TAPEOPEN,OPWRONG,SREND
3N4P ... TESTREP NODECKS,NODECKS,USWRONG,SREND
3N*6 ... TESTREP NOTOWN,QUEER,QUERY,QUEER
3NKH ... BNZ 6 TESTALIEN [J IF ALIEN FILESTORE
3NTY ... TESTREP HDDRDIS,MESSAGE,NOTAV,NOTAV
3P6* ...TESTALIEN
3PBQ ... TESTREP HDDRDIS,QUEER,NOTAV,SREND
3PM= GEOERR 1,OPENTAPE [CANT OPEN DUMP TAPE
3Q6W ...[
3QLG ...[ TAPE HAS BEEN SUCCESSFULLY OPENED
3R66 ...[
3RKQ ...TAPEOPEN [
3S5B ... BS 2,BIFDTFO [SET 'TAPE FULLY OPEN' BIT
3T4L ACROSS DTSCAN,1
3W3W [
3WHG [ REPLY NOTOWN-TAPE IS POOL,WORKTAPE,OR BELONGS TO SOMEONE ELSE
3X36 [ REPLY QUERY-DITTO
3XGQ [
3XT7 ...QUEER
3Y7J ... DOWN DTSUBSS,9 [TAPEWRONG TAPE AND OUTPUT MESSAGE
3YG2 BRN SREND
3YSC ...[
3^6S ...[ REPLY HDDRDIS-HEADER READ FAIL
3^F= [
3^YW NODECKS [NO DECK ON SITE OR ALL WRONGED
42DG LDX 2 FX2
42Y6 TAPEWRONG ADTSN(2) [WRONG THE TAPE
43CQ MFREEW AONBS,GLIST [JUNK TO US
43XB OUTPACK ADTSN(2),1,TSN
44C2 MONOUT AWR [MT %A WRONGED: NO SUITABLE DECK
44WL BRN SREND [AVAILABLE
45B= [
46*G MESSAGE
46T6 ... DOWN DTSUBSS,3 [MESSAGE,MARK INCINDEX,FDT
47#Q BRN SREND
47SB NOTAV
48#2 ... DOWN DTSUBSS,5 [SHUFFLE INCINDEX
4==G SREND
4=JX ...[
4=X# ...[ TAPE CANNOT BE USED
4?9Q #SKI K6DTSTART>99-99
4?PB (
4#92 LDX 2 FX2
4#NL TRACE ADTSN(2),NOTOPEND
4*8= )
4*MW ...WAKE
4B7G ...[
4BM6 ...[ WAKE UP ALL ACTIVITIES WAITING FOR FILES ON INCREMENTS IN FDINCS
4C6Q ...[ BLOCK AFTER REMOVING FDT ENTRY FOR THIS TAPE.
4CLB ...[
4D62 ...[ FIRST REMOVE RECORD FOR THIS TAPE FROM FDT
4DKL ...[
4K2= LDX 1 BOLC
4KFW LDX 2 A1(1) [NO OF ENTRIES
4K^G LDX 3 2
4LF6 SMO FX2
4LYQ LDX 4 ADTSN [TSN
4MDB NEXTFDSN
4MY2 BXE 4 FDSN(1),REMOVE [J IF ENTRY FOUND
4NCL ADN 1 4
4NX= BCT 2 NEXTFDSN
4PBW #SKI K6DTSTART>99-99
4PWG CALL 0 SKIPERR
4QB6 REMOVE [ENTRY FOUND
4QTQ LDX 5 FDST(1) [PICK UP STATE WORD
4R*B SBN 2 1
4RT2 BZE 2 XALTER
4S#L LDN 0 FDSN+4(1) [X0POINTS TO NEXT ENTRY
4SS= ADN 1 FDSN
4T?W SLL 2 2
4TRG NMOV LDEX 7 2 [REST OF ENTRIES ARE MOVED UP
4W?6 SMO 7 [ALLOWANCE BEING MADE FOR >512 WORDS
4WQQ MOVE 0 0 [MOVE UP TO 512 WORDS
4X=B BNZ 7 RSID [J IF 512 WORDS NOT JUST MOVED
4XQ2 LDN 7 512
4Y9L RSID SBX 2 7
4YP= BNG 2 XALTER [J IF NO
4^8W BZE 2 XALTER [MORE TO MOVE
4^NG ADX 0 7 [UPDATE MOVE
5286 ADX 1 7 [ADDRESSES
52MQ BRN NMOV
537B XALTER
53M2 LDX 2 FX2
546L LDX 1 BOLC
54L= SBN 3 1 [DECREASE NUMBER OF ENTRIES
555W STO 3 A1(1)
55KG BBUS 2,5,NOTDUMP [J IF NOT DUMPERS TAPE
5656 ...[
56JQ ...[ THIS TAPE WAS REQUESTED BY DUMPER BUT IS NOT SUITABLE
574B ...[ SEARCH FOR FGET BLOCK AND MARK ENTRY UNOBTAINABLE
57J2 ...[
583L CALL 6 SFGET
58H= SETBIT 2,FGETSTATE(2) [MARK FGET ENTRY AS UNOBTAINABLE
592W LONGON FGOTWAIT [WAKE UP DUMPER
59GG ...[
5=26 NOTDUMP
5=FQ CALL 7 XTAPEM [DECREMENT ALL APPROPRIATE
5=^B [ REQUEST BLOCKS
5?F2 MFREEW FILE,FDINCS [FREE FILE FDINCS BLOCK
5?YL STARTACT RET [KICK DUMP TAPE SCHEDULER
5#D= SUI
5#XW SUICIDE
5*CG [
5*NW ...[ ******************************************************************
5B2= ...[
5B?L ...[ ENTRY POINT IF TAPE FAILS
5BK2 ...[
5BWB X4DTSTART
5CB2 #SKI K6DTSTART>99-99
5CTL TRACE ADTSN(2),FAILED
5D*= ... DOWN DTSUBSS,1 [CONSOLE MESSAGE,MARK INCINDEX AND F
5DSW BRN QUICK
5F7? ...[
5FFN ...[ ******************************************************************
5FS5 ...[
5G6G ...[ ENTRY IF TAPE FORMAT ERROR
5GDX ...[
5GRB X5DTSTART
5H?2 #SKI K6DTSTART>99-99
5HQL TRACE ADTSN(2),FORMATER
5J== ... DOWN DTSUBSS,2 [CONSOLE MESSAGE,MARK INCINDEX AND F
5JPW QUICK QUICKUNL [SO THAT OPS CAN CHANGE DECK IF REQD
5K9G #SKI K6DTSTART>599-599
5KP6 TRACE ADTSN(2),QUICKUNL
5L8Q BRN WAKE
5LHX ...[
5LX4 ...[ ******************************************************************
5M=9 ...[
5MKB ...[ ENTRY POINT 2,TO UNLOAD A TAPE AND WAKE UP ALL ACTIVITIES THAT
5MYH ...[ THOUGHT IT WOULD DO FOR THEM.
5N?N ...[
5NLW X2DTSTART
5P6G [
5X22 UNL
5X9S ...[
5XFL [ CLOSE THE TAPE BUT DONT DISENGAGE,SO THAT IF MORE RESTORE REQUESTS
5X^= [ APPEAR,THE OPS WONT HAVE TO ENAGE THE TAPE
5Y94 ... SEGENTRY K98DTSTART
5YDW CLOSETAPE
5YYG #SKI K6DTSTART>99-99
5^D6 TRACE ADTSN(2),UNLOADMT
5^TG ... BRN WAKE [GO AND REMOVE TAPE ENTRY FROM FDT
62=W ...[
62N= ...[ ******************************************************************
635L ...[
63H2 ...[ ENTRY POINT 3 - DUMPER NEEDS THIS TAPE
63YB ...[
64*W X3DTSTART
64D5 ...#UNS IDC
64G# ...(
64JH ... LDX 4 ADTSN(2) [X4 => TSN
64LQ ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY
64N^ ... JBC QUICK,2,BIFDTD [J IF DUMP CANCELLED
64R8 ...)
64TG CALL 6 SFGET [FIND FGET ENTRY FOR TSN IN AWORK2
655# ...[
65*6 ...[ X2 POINTS TO ENTRY
65JY ...[
65SQ SETBIT 1,FGETSTATE(2) [MARK FGET ENTRY AS POSITIONED
6632 ... LDX 3 FX2 [ PICK UP UNIT NUMBER
669= ... SMO CPPTR(3) [ FROM DEVICE LIST
66CG ... LDX 0 K52+2 [ AND STORE IT IN
66KQ ... DEX 0 FGETSTATE(2) [ THE ENTRY IN THE FGET
66NG ... LDX 2 FX2
66R= ... STOZ AWORK1(2) [MARKER WORD TO REMEMBER FAILS
66W2 ... LONGON FGOTWAIT [WAKE UP DUMPER
66YQ ... COOR1
673G ... GEOERR BRIEFPM,DTA FPUT
676C ...[
67DS ...[ ******************************************************************
67R9 ...[
685L ...[ RETURN FROM DUMPER
68D3 ...[
68QG X7DTSTART
692# ...[
69=6 [ X6 CONTAINS NO.OF NEW INCREMENT-NEGATIVE IF UNRELIABLE
69PQ [ THIS MUST BE ADDED TO FDINCS SO THAT REQUESTS FOR FILES IN THIS
6=9B [ INCREMENT WILL ALSO BE WOKEN UP.NORMALLY THE PRESENCE OF REQUESTS
6=P2 [ FOR THIS INC.MEANS THE UNJAMMER HAS BEEN BUSY.ABNORMALLY,IT IS
6?8L [ VERY QUEER
6?DD ...[
6?N= LDX 4 ADTSN(2)
6#7W ... CALL 7 SEARCHFDT [ON EXIT X2 -> FDT ENTRY
6#MG ... BC 2,BIFDTD [CLEAR 'NEEDED BY DUMPER' BIT
6*LQ BNG 6 QUICK [QUICKUNL ON TAPE IF UNRELIABLE IE
6*WJ ...[
6B6B [ FAIL,SO THAT IF DUMPER TRIES AGAIN IT DOESNT PICK UP THE SAME
6BL2 [ FAULTY TAPE WITHOUT ASKING THE OPS TO LOAD IT AND SO ALLOW CANTDO.
6C5L [
6CK= [ ONLY MARK FDINCS IF INC RELIABLE
6CT4 ...[
6D4W MHUNTW 3,FILE,FDINCS
6DJG ... LDX 4 FDINCNO(3) [X4 => NUMBER OF ENTRIES
6F46 ... ADN 4 5 [EXTRA ENTRY +3 FOR 'RED TAPE'
6FHQ ... [PLUS ONE SPARE
6G3B ALTLEN 3,4,FILE,FDINCS
6GH2 MHUNTW 3,FILE,FDINCS
6GQS ... SBN 4 4 [RESET X4
6H2L SMO 4
6HG= ... STO 6 FDINCINC(3) [STORE INC.NO
6J^6 LDN 0 1
6KDQ ... ADS 0 FDINCNO(3) [INCR.COUNT OF ENTRIES
6KYB BRN UNL
6LD2 #SKI K6DTSTART>99-99
6LXL (
6MC= SKIPERR
6MWW GEOERR 1,DTSTSKIP
6NBG )
6NW6 XBREAKIN
6P*Q GEOERR 1,SYSBRKIN [OPENING INCINDEX OR TAPE
6PTB MENDAREA 40,K99DTSTART
6Q*2 #END
6QSL
^^^^ ...16666135000300000000