{{htmlmetatags>metatag-description:(ICL George 3 and George 4 source: FSERR867)}}
====== FSERR867 ======
(George Source)
**Macros used:** [[george:macro:CONSERNO|CONSERNO]], [[george:macro:DOWN|DOWN]], [[george:macro:EMSCONWT|EMSCONWT]], [[george:macro:ENGMESS|ENGMESS]], [[george:macro:FREECORE|FREECORE]], [[george:macro:GEOERR|GEOERR]], [[george:macro:HUNT|HUNT]], [[george:macro:INFORMX|INFORMX]], [[george:macro:MHUNT|MHUNT]], [[george:macro:MHUNTW|MHUNTW]], [[george:macro:OUTMESS|OUTMESS]], [[george:macro:OUTNUM|OUTNUM]], [[george:macro:OUTPARAM|OUTPARAM]], [[george:macro:OUTPARAX|OUTPARAX]], [[george:macro:RELST|RELST]], [[george:macro:SEG|SEG]], [[george:macro:SEGENTRY|SEGENTRY]], [[george:macro:UNLOCKSU|UNLOCKSU]], [[george:macro:UP|UP]], [[george:macro:UPPLUS|UPPLUS]]
22FL SEG FSERR,866,S.SEXTON
22^= # (C) COPYRIGHT INTERNATIONAL COMPUTERS LTD 1982
23DW SEGENTRY K1FSERR,QK1
23YG SEGENTRY K2FSERR,QK2
24D6 SEGENTRY K3FSERR,QK3
24XQ SEGENTRY K4FSERR,QK4
25CB SEGENTRY K5FSERR,QK5
25X2 SEGENTRY K7FSERR,QK7
26BL SEGENTRY K8FSERR,QK8
26W= # THIS SEGMENT CONTAINS ERROR PATHS USED BY
27*W # FINDFS AND BRADSPLT
27TG # THE FOLLOWING ERROR CASES ARE DEALT WITH AT
28*6 # K1FSERR
28SQ # 1. FILE OCCUPIES MORE THAN ONE FILE AREA
29#B # 2. THE FILE AREA IS ON A DIFFERENT DISC
29S2 # 3. THE RETENTION PERIOD HAS NOT EXPIRED
2=?L # 4. THE FILE IS A SYSTEM FILE
2=R= # 5. BUCKET SIZE IS > 1 BLOCK
2?=W # THE APPROPRIATE MESSAGE IDENTIFIER IS
2?QG # PASSED DOWN IN AWORK2
2#=6 # ENTERED FROM FINDFS AND BRADSPLT
2#PQ #
2*9B # K2FSERR FILE USED TWICE
2*P2 # ENTERED FROM FINDFS
2B8L #
2BN= # K3FSERR FAILURE WHILST REWRITING FIC
2C7W # ENTERED FROM FINDFS AND BRADSPLT
2CMG #
2D76 # K4FSERR NOT OK REPLY FROM EXOPEN
2DLQ # ENTERED FROM FINDFS
2F6B #
2FL2 # K5FSERR NOT OK REPLY FROM EXOPEN
2G5L # ENTERED FROM BRADSPLT
2GK= #
2H4W # K7FSERR FILE NOT FOUND
2HJG # ENTERED FROM FINDFS
2J46 # ACOMMUNE9 IS USED TO PASS AMOUNT OF CORE
2JHQ # TO BE REMOVED FROM FDTABLE FOR ERASED
2K3B # FILESTORE AND SWAP DEFINITIONS TO FINDFS
2KH2 #
2L2L # K8FSERR FILE NOT FOUND
2LG= # ENTERED FROM BRADSPLT
2L^W #
2MFG #SKI EMSJNL<1$1
2M^6 ZM6 +5,16HIS IT AVAILABLE?
2NDQ XN2 #77777
2NYB XSUIT +FIFSSUIT [NOT SUI0ABLE
2PD2 XUSED +FIFUSED [USED TWICE
2PXL XFIR +FIRES [RESIDENCE N NOT FOUND
2QC= XFAIL +FIFSFAIL [FAILURE ON
2QWW XONL +FIFSONL [NOT ONLINE
2RBG XNOTF +FIFSNOTF [NOT FOUND....
2RW6 #
2S*Q Y 4H000Y
2STB N 4H000N
2T*2 #
2TSL #
2W#= #
2WRW #
2X?G # S/R TO OUTPUT MESSAGE NO CONTAINING A FILENAME.
2XR6 # ON ENTRY X3 CONTAINS IDENTIFIER OF MESSAGE.
2Y=Q # LINK X4, X0 OVERWRITTEN; ON EXIT X1=FX1, X2=FX2.
2YQB #
2^=2 #
2^PL ROUTE +1 [ROUTING PARAMETER
329= MESSOUT
32NW SBX 4 FX1 [DATUMISE LINK
338G LDX 1 FX1
33N6 INFORMX ROUTE(1),3,1
347Q CALL 5 XEMSCWT
34MB ADX 4 FX1 [RESET LINK
3572 EXIT 4 0
35LL #
366= #
36KW # S/R TO OUTPUT MESSAGE CONTAINING FILENAME WHICH IS IN
375G # BSTB/FSTAB BLOCK.
37K6 # LINK X4, USES X0 X1 X2 X4, X3 CONTAINS IDENTIFIER OF MESSAGE
384Q # ON EXIT X1=FX1, X2=FX2.
38JB #
3942 #
39HL #
3=3= MESSOUTX
3=GW SBX 4 FX1
3?2G MHUNTW 1,BSTB,FSTAB
3?G6 SMO 7
3?^Q LDN 1 FIRSS(1) [POINT TO FILENAME.
3#FB LDN 2 12
3#^2 XMS2 LDCH 0 0(1) [GET NEXT CHAR OF FILENAME
3*DL BCHX 1 £ [POINT TO NEXT
3*Y= SBN 0 #20
3BCW BZE 0 XMS1 [HAVE COME TO END OF NAME
3BXG NGX 5 2 [ADJUST COUNT OF CHARS
3CC6 XMS1 BCT 2 XMS2
3CWQ ADN 5 13 [X5 = NO. OF CHARS IN NAME
3DBB SMO 7
3DW2 LDN 1 FIRSS
3F*L OUTPARAX 5,1,BSTB,FSTAB [SUPPLY NAME IN BSTB/FSTAB AS %A
3FT= INFORMX ROUTE(1),3,1 [OUTPUT MESSAGE TO OP'S CONSOLE
3G#W CALL 5 XEMSCWT
3GSG ADX 4 FX1
3H#6 EXIT 4 0
3HRQ #
3J?B #
3JR2 #
3K=L # S/R TO WAIT FOR OPS MESSAGE TO BE OUTPUT
3KQ= #
3L9W XEMSCWT
3LPG SBX 5 FX1
3M96 STO 3 ASUPUSER(2)
3MNQ STO 4 ASUPUSER+1(2)
3N8B EMSCONWT
3NN2 LDX 3 ASUPUSER(2)
3P7L LDX 4 ASUPUSER+1(2)
3PM= ADX 5 FX1
3Q6W EXIT 5 0
3QLG #
3R66 #
3RKQ # S/R TO SUPPLY CONTENTS OF X5 AS %A OF NEXT MESSAGE.
3S5B # WILL BE A SERIAL NUMBER. CALLED VIA X4
3SK2 #
3T4L OUTNUM
3TJ= SBX 4 FX1
3W3W CONSERNO 5,ACOMMUNE1 [CONVERT OCTAL TO CHARS
3WHG LDN 0 1
3X36 ADS 0 ACOMMUNE1(2) [INSERT OUR OWN COUNT
3XGQ LDX 0 ACOMMUNE2(2)
3Y2B LDX 1 ACOMMUNE3(2)
3YG2 SRL 01 6
3Y^L STO 0 ACOMMUNE2(2) [SHIFT CSN
3^F= STO 1 ACOMMUNE3(2) [ALONG A CHAR
3^YW LDCT 0 #320 [INSERT *
42DG ORS 0 ACOMMUNE2(2)
42Y6 OUTPARAM ACOMMUNE1(2),ACOMMUNE2
43CQ ADX 4 FX1
43XB EXIT 4 0
44C2 #
44WL #
45B= # S/R TO UNLOCK & RELEASE STORAGE UNIT
45TW # CALLED VIA X4. EXPECTS SUSN IN ASUSN(3).
46*G #
46T6 UNLKRLST
47#Q SBX 4 FX1
47SB UNLOCKSU ASUSN(3)
48#2 MHUNTW 3,EWDAS,EXOF
48RL RELST ASUSN(3)
49?= ADX 4 FX1
49QW EXIT 4 0
4==G #
4=Q6 #
4?9Q #
4?PB XREST
4#92 SBX 4 FX1
4#NL MHUNTW 1,BSTB,FSTAB
4*8= LDCT 0 4
4*MW SMO 7
4B7G LDX 5 FIRSS+3(1) [B0-5 TYPE,B6=1 SWAP,B7-23 RESNUM
4BM6 ANDX 0 5
4C6Q BNZ 0 XRT1 [J IF SWAP
4CLB OUTMESS FIFSTR [MAKE %A FILESTORE
4D62 BRN XRT2
4DKL XRT1
4F5= OUTMESS FISWAP [MAKE %A SWAP
4FJW XRT2
4G4G ANDN 5 #77
4GJ6 OUTNUM 5,0 [RESIDENCE NUMBER
4H3Q ADX 4 FX1
4HHB EXIT 4 0
4J32 #
4JGL #
4K2= # ENTRY POINT 1
4KFW #
4K^G QK1
4LF6 SMO FX1
4LYQ LDX 3 XSUIT [OUTPUT NOT SUITABLE
4MDB CALL 4 MESSOUTX [MESSAGE
4MY2 SMO FX2
4NCL LDX 3 AWORK2
4NX= CALL 4 MESSOUT [OUTPUT EXPLANATION
4PBW BRN S3AA
4PWG #
4QB6 #
4QTQ # ENTRY POINT 2
4R*B #
4RT2 QK2
4S#L S4 SMO FX1
4SS= LDX 3 XUSED [USED TWICE
4T?W S3A CALL 4 MESSOUTX [OUTPUT MESSAGE
4TRG S3AA MHUNTW 1,BSTB,FSTAB
4W?6 SMO 7
4WQQ LDCH 0 FIRSS+3(1) [GET TYPE
4X=B LDN 4 3
4XQ2 STO 4 AWORK1(2) [COUNT OF CORE TO REMOVE FDTABLE
4Y9L SBN 0 9
4YP= BZE 0 S4B [JUMP IF SLOW DRUM
4^8W SBN 0 16
4^NG BZE 0 S4B [OK 2851
5286 MHUNTW 3,EWDAS,EXOF
52MQ ADS 4 AWORK1(2)
537B CALL 4 UNLKRLST [UNLOCK & RELEASE SU
53M2 BRN S4D
546L S4A MHUNTW 1,BSTB,FSTAB
54L= SMO 7
555W LDCH 0 FIRSS+3(1) [GET TYPE
55KG LDN 4 3
5656 STO 4 AWORK1(2) [COUNT OF CORE TO REMOVE FDTABLE
56JQ SBN 0 9
574B BZE 0 S4B
57J2 SBN 0 16
583L BZE 0 S4B
58H= ADS 4 AWORK1(2)
592W S4D
59GG MHUNTW 3,EWDAS,EXOF
5=26 BRN S4C
5=FQ S4B MHUNTW 3,EWDAS,FDRUM
5=^B S4C FREECORE 3
5?F2 LDX 4 AWORK1(2) [PASS AMOUNT OF CORE TO BE
5?YL STO 4 ACOMMUNE9(2) [REMOVED FDTABLE UP IN ACOMMUNE9
5#D= UP
5#XW #
5*CG # ENTRY POINT 3
5*X6 #
5BBQ QK3
5BWB #
5CB2 # FAILURE TO OPEN FILE,OR FAIL WHILST REWRITING FIP
5CTL #
5D*= #
5DSW #
5F#G #
5FS6 S5 MHUNT 3,EWDAS,EXOF [FAIL WHILE REWRITING FIP
5G?Q LDX 5 ASUSN(3)
5GRB CALL 4 UNLKRLST [UNLOCK & RELEASE SU
5H?2 BRN S5A
5HQL #
5J== #
5JPW # ENTRY POINT 4 & 5
5K9G #
5KP6 QK4 NGNC 5 1
5L8Q QK5 LDN 5 0
5LNB STO 5 AWORK2(2)
5M82 MHUNTW 3,EWDAS,GEXD
5MML LDX 0 EMARK(3) [CHECK REASON FOR FAIL
5N7= ANDN 0 ANONL
5NLW BNZ 0 U1 [UNIT NOT ONLINE
5P6G LDX 0 EMARK(3)
5PL6 ANDN 0 AFAIL [TRANSFER FAIL
5Q5Q BNZ 0 U2
5QKB LDX 0 EMARK(3)
5R52 ANDN 0 ANFOUND
5RJL BNZ 0 U3 [FILE NOT FOUND
5S4= GEOERR 1,WRNGBITS
5SHW #
5T3G #
5TH6 U1
5W2Q LDX 3 XONL(1)
5WGB BZE 5 U1A [J IF BRADSPLT ENTRY
5X22 CALL 4 XREST [SET %A=FILESTORE OR SWAP %B=RESNO
5XFL OUTMESS FISTUN [%C=STORAGE UNIT
5X^= LDX 3 XFIR(1)
5YDW U1A STO 3 AWORK2(2)
5YYG MHUNTW 3,EWDAS,EXOF
5^D6 LDX 5 ASUSN(3) [GET SERIAL NO.
5^XQ SLL 5 6
62CB SRL 5 6
62X2 CALL 4 OUTNUM [SET USN AS %A OF MESSAGE
63BL LDX 3 AWORK2(2)
63W= CALL 4 MESSOUT [OUTPUT MESSAGE
64*W BRN U7A [WAIT FOR SUMMAT TO HAPPEN
64TG U2 MHUNTW 1,BSTB,FSTAB
65*6 SMO 7
65SQ LDX 5 FIRSS+4(1) [GET CSN
66#B BZE 5 U3 [NOT SUPPLIED
66S2 S5A SLL 5 6
67?L SRL 5 6
67R= CALL 4 OUTNUM [SET USN AS %A OF MESSAGE
68=W LDX 3 XFAIL(1) ['FAILURE ON'
68QG CALL 4 MESSOUT [OUTPUT TO CONSOLE
69=6 U3 LDX 4 AWORK2(2)
69PQ BZE 4 QK8 [J IF BRADSPLT ENTRY
6=9B #
6=P2 # ENTRY POINT 7
6?8L #
6?N= QK7
6#7W CALL 4 XREST [SET %A-FILESTORE OR SWAP %B=RESNO
6#MG OUTMESS FIFNAM [%C-FILENAME
6*76 SMO FX1
6*LQ LDX 3 XFIR [RESIDENCE NOT FOUND
6B6B U3A
6BL2 CALL 4 MESSOUTX [OUTPUT MESSAGE RE FILE NOT FOUND
6C5L U7A MHUNTW 1,BSTB,FSTAB [REQUIRE DEVICE TYPE FROM
6CK= [FSTAB BLK FOR ENGMESS
6D4W SMO 7
6DJG LDCH 5 FIRSS+3(1) [LEAVE IT IT IN X5
6F46 #SKI EMSJNL
6FHQ ENGMESS FIFSQUN,2,5,U7AB [WAIT FOR ENGEGE BUTTOM
6G3B #SKI EMSJNL<1$1
6GH2 ENGMESS ZM6,2,5,U7AB [WAIT FOR ENAGAGE BUTTON
6H2L BNG 2 U4 [WE HAVE CONSOLE INPUT
6HG= SMO FX2
6H^W STO 2 AWORK3 [STORE D.L.PTR FOR CARTCONT
6JFG DOWN CARTCONT,2
6J^6 U7B MHUNTW 1,BSTB,FSTAB
6KDQ SMO 7
6KYB LDCH 5 FIRSS+3(1) [PICK UP DEVICE TYPE AGAIN
6LD2 BRN U7AB
6LXL #
6MC= U4 HUNT 1,CONBUFF,EMSIN
6MWW BNG 1 U7B [NOTHING DOING
6NBG LDCH 4 A1+1(1) [GET 1ST CHAR OF REPLY - Y OR N
6NW6 FREECORE 1 [DISPOSE OF BLK
6P*Q TXU 4 N(1)
6PTB BCC S4A [JUMP IF NO
6Q*2 TXU 4 Y(1) [JUMP IF NOT YES OR NO
6QSL BCS U7A
6R#= UPPLUS 1
6RRW #
6S?G # ENTRY POINT 8
6SR6 #
6T=Q QK8 LDX 3 XNOTF(1) ['NOT FOUND' MSG
6TQB BRN U3A
6W=2 #
6WPL #END
^^^^ ...060055760001