Enscribe Programmer's Guide

STRING vol^names [0:29];
INT part^part^key^len;
STRING part^part^key^val [0:9];
END;
namelen := name^length;
item^list ':=' [ZSYS^VAL^FCREAT^FILETYPE,
ZSYS^VAL^FCREAT^FILECODE,
ZSYS^VAL^FCREAT^LOGICALRECLEN,
ZSYS^VAL^FCREAT^BLOCKLEN,
ZSYS^VAL^FCREAT^KEYOFFSET,
ZSYS^VAL^FCREAT^KEYLEN,
ZSYS^VAL^FCREAT^PRIMEXTENTSIZE,
ZSYS^VAL^FCREAT^SCNDEXTENTSIZE,
ZSYS^VAL^FCREAT^NUMPRTNS,
ZSYS^VAL^FCREAT^PRTNDESC,
ZSYS^VAL^FCREAT^PRTNVOLLEN,
ZSYS^VAL^FCREAT^PRTNVOLNAMES,
ZSYS^VAL^FCREAT^PRTNPARTKEYLEN,
ZSYS^VAL^FCREAT^PRTNPARTKEYVAL ];
value^list.file^type := 3;
value^list.file^code := 1000;
value^list.rec^len := 150;
value^list.block^len := 4096;
value^list.key^offset := 0;
value^list.key^length := 34;
value^list.pri^extent := 50;
value^list.sec^extent := 20;
value^list.partitions := 5;
value^list.part^info[0].part^pri^extent := 50;
value^list.part^info[0].part^sec^extent := 20;
value^list.part^info[1].part^pri^extent := 50;
value^list.part^info[1].part^sec^extent := 20;
value^list.part^info[2].part^pri^extent := 50;
value^list.part^info[2].part^sec^extent := 20;
value^list.part^info[3].part^pri^extent := 50;
value^list.part^info[3].part^sec^extent := 20;
value^list.part^info[4].part^pri^extent := 50;
value^list.part^info[4].part^sec^extent := 20;
value^list.vol^name^len.vol^name^act^len[0] := 6;
value^list.vol^name^len.vol^name^act^len[1] := 6;
value^list.vol^name^len.vol^name^act^len[2] := 6;
value^list.vol^name^len.vol^name^act^len[3] := 6;
value^list.vol^name^len.vol^name^act^len[4] := 6;
value^list.vol^names ':=' "$PART1$PART2$PART3$PART4$PART5";
value^list.part^part^key^len := 2;
value^list.part^part^key^val ':=' "DAHALAPATA";
ERROR := FILE_CREATELIST_ (filename:name^length,namelen,
item^list, item^list^len, value^list,
$LEN(value^list), error2);
END;
Byte counts for the values array are listed in the System Procedure Calls Reference Manual.
Accessing Key-Sequenced Files
The following paragraphs discuss the end-of-file pointer and how to access Enscribe key-sequenced
files.
End-of-File (EOF) Pointer
An EOF pointer is associated with each disk file and is shared by all opens of that file. For
key-sequenced files this pointer contains the relative byte address of the byte following the last
(highest address) block that currently contains data. Note that a key-sequenced file can have empty
Accessing Key-Sequenced Files 85