|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 6158 (0x180e)
Types: TextFile
Names: »VOL_STRUCTURES.S«
└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ )
└─⟦this⟧ »PREFIXES.D!XAMOS.D!SWELL.D!VOL_STRUCTURES.S«
└─⟦c2e810e96⟧ Bits:30005799 CR80 Disc Pack ( XAMOS 841129 ILS TOS 10-01 System Disk Tilhører ILS/MSG hard boot boot entry #43c )
└─⟦this⟧ »PREFIXES.D!XAMOS.D!SWELL.D!VOL_STRUCTURES.S«
"-----------------------------------------------------------------------
"
"
" MODULE NAME: VOLUME STRUCTURES (VOL_STRUCTURES.S)
" MODULE ID NMB: CSS/882
" MODULE VERSION: 0601
" MODULE TYPE: PREFIX
" MERGE FILES: -
"
" SPECIFICATIONS: CR80 AMOS, FMS, File Manager, PSP, CSS/920/PSP/0048
" AUTHOR/DATE: DAK/840103
"
" DELIVERABLE: -
" SOURCE LANGUAGE: SWELL
" COMPILE COMPUTER: CR80S
" TARGET COMPUTER: CR80S
" OPER. SYSTEM: AMOS
"
"-----------------------------------------------------------------------
"
" CHANGE RECORD
"
" VERSION AUTHOR/DATE DESCRIPTION OF CHANGE
" ------- ----------- ---------------------
"
" 1.1 MAC/801121 INITIAL RELEASE
" 2.1 GMC/810402 FILE EXPANSION DELETED. COMPATIBLE WITH
" VERSION 2 OF THE FMS (CSS/920).
" 3.1 GMC/810521 DEFINITIONM OF PROTECTION PARAMETERS,
" GET FILE INFORMATION PARAMETERS
" AND FILE_NAME REMOVED, AS THEY ARE NOW
" PRESENT IN FMSPARAMS.
" 4.1 GMC/820216 Definition of DATE, HOMEBLOCK and
" BFDENTRY changed, to be same as in DAMOS.
" The bad sector table now has a variable
" size, defined by the filed BST_SIZE in
" the HB. The max size is 16.
" 5.1 PHF/830913 Definition of BOOT_ENTRY in HOMEBLOCK
" 6.1 DAK/840104 MAX_BAD_SECTORS is expanded to 100.
" The old HB field BST_SIZE is split in two
" fields - BST_SIZE1 and BST_SIZE2.
" BST_SIZE1 is used by FM versions older than
" V0601 only capable of substituting up to 16
" bad sectors.
" BST_SIZE2 is used by FMS version V0601 and
" on.
"
"-----------------------------------------------------------------------
"PAGE«ff»
" NOTE: THE PREFIX FMSPARAMS.S SHOULD BE INCLUDED BEFORE THIS PREFIX.
" ---- THIS PREFIX CANNOT BE INCLUDED IN THE SAME SCOPE AS IOSPARAMS.
"*************************"
" INITIAL VOLUME LAYOUT "
"*************************"
CONST
"SECTOR ADDRESSES:"
HBADDR_LEAST=0; "HOME BLOCK."
HBADDR_MOST =0;
"INITIAL ENTRIES IN THE BFD:"
BFDENTRYNBR_LEAST=0;
BFDENTRYNBR_MOST =0;
MDENTRYNBR_LEAST =1;
MDENTRYNBR_MOST =0;
BMENTRYNBR_LEAST =2;
BMENTRYNBR_MOST =0;
ASFENTRYNBR_LEAST=3;
ASFENTRYNBR_MOST =0;
OLD_MAX_BAD_SECTORS = 16;
MAX_BAD_SECTORS = 100;
TYPE
BAD_SECTOR_TABLE = ARRAY[0..MAX_BAD_SECTORS-1] OF LONG;
DATE = ARRAY [0..2] OF INTEGER;
HOMEBLOCK=
RECORD
VOLNAME : VOLUME_NAME; "NAME ASSIGNED TO VOLUME
BFDADDR : LONG; "ADDRESS OF DESCRIPTION OF BFD
FREE_ENTRIES : LONG; "NUMBER OF FREE ENTRIES IN BFD
FIRST_FREE : LONG; "ADDRESS OF FIRST FREE ENTRY IN BFD
SECTORS : LONG; "NUMBER OF SECTORS ON VOLUME
BST_SIZE1 : INTEGER; "BST_SIZE USED BY OLD FMS VERSION
"IF 0 THEN THERE IS NO ASF
ASF_ADDR : LONG; "BODY ADDRESS OF ASF
BST : BAD_SECTOR_TABLE;
BST_SIZE2 : INTEGER; "BST_SIZE USED BY CURRENT VERSION OF FMS
"IF 0 THEN THERE IS NO ASF
NOTUSED : ARRAY[220..245] OF INTEGER;
BOOT_ENTRY : LONG; "USED IN DAMOS AND MX
CREATION_DATE : DATE;
ACCESS_DATE : DATE;
FORMAT : INTEGER; "IDENTIFICATION OF FORMAT OF VOLUME
STATE : INTEGER; "USED IN DAMOS
END "HOMEBLOCK";
"**************"
" PROTECTION "
"**************"
CONST
"INITIAL ACCESS RIGHTS
ACREATOR1=#5C07;
ACREATOR2=0;
APUBLIC1=#4801;
APUBLIC2=0;
ADIRECTORY1=#59E1;
ADIRECTORY2=0;
APUBLICDIRECTORY1=#4841;
APUBLICDIRECTORY2=0;
CONST
PUBLICINDEX=0;
LASTACCESSRIGHT=73;
TYPE
ACL_INDEX = 0..LASTACCESSRIGHT;
ACCESSCONTROLLIST = ARRAY [ACL_INDEX] OF ACCESSRIGHT;
"************************"
" BASIC FILE DIRECTORY "
"************************"
ENTRY_STATE = (ENTRY_FREE,ENTRY_USED);
BFDENTRY=
RECORD
"ADMINISTRATIVE DATA:"
STATE :ENTRY_STATE; "STATE (FREE/USED) OF ENTRY
NEXT_FREE :LONG; "LINK TO NEXT FREE ENTRY IN BFD
"PHYSICAL LAYOUT OF FILE:
ORGANIZATION :FILE_ORGANIZATION;
SIZE_BYTE :LONG; "SIZE OF FILE IN BYTES
ALLOCSIZE :LONG; "NUMBER OF AREAS ALLOCATED TO FILE
AREASIZE :INTEGER; "SIZE OF AN ALLOCATION AREA IN SECTORS
BODYADDR :LONG; "ADDRESS OF INDEX OR FIRST BLOCK IN FILE
"PROTECTION:
ACL :ACCESSCONTROLLIST;
UN_USED :ARRAY [233..238] OF INTEGER;
"USAGE:
LINKS :INTEGER; "NUMBER OF SFD REFERENCES TO FILE
"PERTINENT DATES:
CREATION_DATE :DATE;
ACCESS_DATE :DATE;
CHANGE_DATE :DATE;
SEC_PROF :INTEGER; "USED IN DAMOS
"REST OF ENTRY:
NOT_USED :ARRAY [250..255] OF INTEGER;
END "BFDENTRY";
"***************************"
" SYMBOLIC FILE DIRECTORY "
"***************************"
SFDENTRY=
RECORD
STATE :ENTRY_STATE; "STATE (FREE/USED) OF ENTRY"
NAME :FILE_NAME; "NAME OF FILE"
BFDNBR :LONG; "INDEX OF FILE IN BFD"
NOTUSED : ARRAY[11..15] OF INTEGER
END "SFDENTRY";
CONST
SFDPAGESIZE =16; "NUMBER OF SFD ENTRIES IN A PAGE"
TYPE
SFDPAGEINDEX=1..SFDPAGESIZE;
SFDPAGE = ARRAY [SFDPAGEINDEX] OF SFDENTRY;
"***************"
" INDEX SECTORS "
"***************"
CONST
FIRST_INDEX = 0;
LAST_INDEX = 125;
TYPE
INDEXES = ARRAY [FIRST_INDEX..LAST_INDEX] OF LONG;
INDEXSECTOR=
RECORD
BACK_PTR :LONG; "ADDRESS OF PREVIOUS INDEX BLOCK"
INDEX :INDEXES; "INDEX INFORMATION
FORWARD_PTR :LONG; "ADDRESS OF NEXT INDEX BLOCK"
END "INDEXSECTOR";
%