|
|
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: 4896 (0x1320)
Types: TextFile
Names: »DISKDRVPARAMS.S«
└─⟦732a9e2da⟧ Bits:30005117 8" CR80 Floppy CR80FD_0076 ( CR/D/2322 Diverse systemmoduler SWELL PREFIX F Copy af CRD2315 I K CRD2322 810225 AEK S )
└─⟦b9b5abdc9⟧
└─⟦this⟧ »SWELLPREFIX.D!DISKDRVPARAMS.S«
"-----------------------------------------------------------------------
"
" MODULE NAME: DISK DRIVER PARAMETERS
" ----------------------
"
"
" MODULE ID NMB: CSS/881
" MODULE VERSION: 0102
" MODULE TYPE: PREFIX
" MODULE FILES: -
" MERGE FILES: -
"
" SPECIFICATIONS: CR80 DISK DRIVER PRODUCT SPECIFICATION,
" CSS/006/PSP/0005.
" AUTHOR/DATE: JHO/790323
"
" DELIVERABLE: YES
" SOURCE LANGUAGE: SWELL
" COMPILE COMPUTER: CR80
" TARGET COMPUTER: CR80
" OPER. SYSTEM: AMOS
"
"
"-----------------------------------------------------------------------
"
" CHANGE RECORD
"
" VERSION AUTHOR/DATE DESCRIPTION OF CHANGE
" ------- ----------- ---------------------
"
" 001 GMC/801020 INITIAL RELEASE.
"
" 0102 AEK/810211 CHANGE TO DISK_XFER_MSG TO FACILITATE
" HANDLING OF THE SPECIFICATION OF THE
" SECTORS TO BE TRANSFERRED
"-----------------------------------------------------------------------
"THROUGHOUT, A SECTORS'S NUMBER MEANS ITS LOGICAL SECTOR NUMBER, AS
"DEFINED IN THE DISK DRIVER PSP. NOTE THAT THIS IS A 3 BYTE INTEGER.
"PAGE«ff»
"COMMANDS
"--------
CONST
DISK_READ = 0;
DISK_WRITE = 1;
DISK_WRITE_AND_PROTECT = 2;
DISK_WRITE_AND_MARK = 3;
DISK_FORMAT = 4;
DISK_CHECK = 6;
DISK_INITIALISE = 7;
DISK_INCLUDE = 8;
DISK_EXCLUDE = 9;
TYPE
DISK_DRV_CMD = DISK_READ..DISK_EXCLUDE;
"FORMAT OF A DISK TRANSFER REQUEST
"---------------------------------
CONST
FIRST_MOST = 0;
SECT_COUNT = 1;
TYPE
LOGICAL_SECTORS_SPEC =
RECORD
FIRST_LEAST : INTEGER; "2 LEAST SIGNIF BYTES OF 1ST SECT'S NBR
FIELD2 : ARRAY [FIRST_MOST..SECT_COUNT] OF BYTE
END;
TYPE
DISK_XFER_MSG =
RECORD
STD : INTEGER; "STANDARD, NOT USED
CMD_PRIV_UNIT : INTEGER; "COMPOUND OF COMMAND, PRIVACY, UNIT
" AND SUBUNIT FIELDS
SECTORS : LOGICAL_SECTORS_SPEC; "SPECIFICATION OF SECTORS
"TO BE TRANSFERRED
BUF_ADDR : ABSPTR "ABSOLUTE ADDRESS OF FIRST SECTOR'S BUFFER
END "DISK XFER MSG";
"COMPOSITION OF CMD_PRIV_UNIT FIELD
CONST
DISK_CMD_POSN = 0; DISK_CMD_LENGTH = 4;
DISK_PRIV_POSN = 4; DISK_PRIV_LENGTH = 2;
DISK_UNIT_POSN = 8; DISK_UNIT_LENGTH = 2;
DISK_SUBUNIT_POSN = 12; DISK_SUBUNIT_LENGTH = 1;
"FORMAT OF A DISK TRANSFER REPLY
"-------------------------------
"COMPOSITION OF CC FIELD
CONST
PRIMARY_CC_POSN = 0; PRIMARY_CC_LENGTH = 4;
SECONDARY_CC_POSN = 4; SECONDARY_CC_LENGTH = 11;
"(PRIMARY) COMPLETION CODES
DISK_OKAY = 0;
WRITE_PROTECTED_DRV = 2;
UNEXPECTED_STATUS = 3;
DATA_OR_SYNC_ERR = 4;
ADDR_OR_SYNC_ERR = 5;
BAD_SECT = 6;
WRITE_PROTECTED = 7;
ILLEGAL_SECT = 8;
TIMING_ERR = 9;
SUBBUS_OVERR = 10;
PARITY_ERR = 11;
TYPE
DISK_CC = DISK_OKAY..PARITY_ERR;
TYPE
DISK_DRV_ANS =
RECORD
RESULT : INTEGER; "STANDARAD RESULT, DEFINED IN DRIVERPARAMS.S
CC : DISK_CC; "DISK DRIVER COMPLETION CODE
LAST : LONG; "IF RESULT IS OKAY, THEN THIS IS THE NUMBER
"OF THE LAST SECTOR ACCESSED + 1. OTHERWISE,
"IT IS THE NUMBER OF THE LAST SECTOR ACCESSED.
"N.B. CONTENTS OF THE MOST SIGNIFICANT BYTE
"ARE UNDEFINED.
BUF_ADDR : ABSPTR "ABSOLUTE ADDRESS OF THE FIRST SECTOR'S BUFFER
END "DISK DRV ANS";
"FORMAT OF AN INCLUDE (SUB)UNIT REQUEST
"-------------------------------------
TYPE
DISK_INCLUDE_MSG =
RECORD
STD : INTEGER; "STANDARD, NOT USED
CMD_TYPE_UNIT : INTEGER; "COMPOUND OF COMMAND, TYPE, UNIT & SUBUNIT
MAX_SECT_NBR : LONG; "MAXIMUM SECTOR NUMBER OF THE (SUB)UNIT
SECTS_PER_CYL : INTEGER; "NUMBER OF PHYSICAL SECTORS PER CYLINDER,
"FOR THIS (SUB)UNIT
END "DISK INCLUDE MSG";
"COMPOSITION OF CMD_TYPE_UNIT FIELD
CONST
"THE COMMAND AND UNIT FIELDS ARE AS FOR A TRANSFER REQUEST
DISK_TYPE_POSN = 4; DISK_TYPE_LENGTH = 2;
"TYPE FIELD
TYPE
CDC_TYPE = (MINI_MODULE, STORAGE_MODULE, CARTRIDGE_MODULE);
"FORMAT OF A INITIALISE REQUEST
"------------------------------
TYPE
DISK_INIT_MSG =
RECORD
STD : INTEGER; "STANDARD, NOT USED
CMD : DISK_DRV_CMD;
ADDR : INTEGER; "COMPOUND OF PRIORITY AND I/O ADDRESS
NOT_USED : ARRAY [3..5] OF INTEGER
END "DISK INIT MSG";
"COMPOSITION OF PRI_AND_ADDR FIELD
CONST
PRIORITY_POSN = 0; PRIORITY_LENGTH = 2;
ADDRESS_POSN = 2; ADDRESS_LENGTH = 6;