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 - 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"; %