Reader's Clinic - Volume Pointer Record
Published By | Date | Version | Knowledge Level | Keywords |
---|---|---|---|---|
Sprezzatura Ltd | 01 JAN 1991 | 2.021+ | EXPERT | VOLUME, W559, POINTER, RTP49, MFS, BFS |
A reader writes "I've been using the tips from the December issue of REVMEDIA on creating Volume file variables and I keep getting a W559 error message"
ÚÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄ¿ ³ Cannot continue ³ ³ An attempt was made to execute a null ("") program ³ ³ Press any key to contine ³ ÀÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÄÙ
This problem occurs when the Volume pointer in Voc is modified to establish Volume MFSs. (It is possible to have an MFS apply to every file on a volume by inserting the MFS name before the BFS name (@VM delimited) in the Volume pointer.) When this happens the structure of the volume file variable changes slightly. In this case the @VMs in the Filing System list must be converted to @SVMs. Thus the code given on page 11 of issue 7 would be modified to be
FS = VOL_REC<4> DOS = VOL_REC<5> CONVERT @VM TO @SVM IN FS FILE_VAR = FS : @VM : DOS
Alternatively, if the Volume has not been attached, another way of getting all of the information required to create a volume file variable is to make a direct call to RTP49 (the routine used by the V18 ATTACH processor). This is a subroutine taking four parameters, (A,B,C,D) where A is the volume name, B is a flag (set to 0), C is the Volume Record returned and D is the Volume Pointer Record returned. C has five fields, the fifth of which is the Map file variable. D has three fields, the second of which is the FS list. Thus
CALL RTP49(A,B,C,D) DOS = C<5> FS = D<2> CONVERT @VM TO @SVM IN FS FILE_VAR = FS : @VM : DOS
(Volume 2, Issue 8, Page 3)