|
|
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: 5648 (0x1610)
Types: TextFile
Names: »DISKDRVPARAMS.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!DISKDRVPARAMS.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!DISKDRVPARAMS.S«
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII )
└─⟦this⟧ »CSP005_V0501.D!CSS881.D!DISKDRVPARAMS.S«
"-----------------------------------------------------------------------
"
" MODULE NAME: Disk Driver Parameters
" ----------------------
"
"
" MODULE ID NMB: CSS/881
" MODULE VERSION: 0203
" 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
" ------- ----------- ---------------------
"
" 0101 GMC/801020 Initial release.
" 0102 AEK/810211 CHANGE TO DISK_XFER_MSG TO FACILITATE
" HANDLING OF THE SPECIFICATION OF THE
" SECTORS TO BE TRANSFERRED
" 0103 GMC/810827 Change to definition of privacy bits,
" in the second word of a disk xfer msg.
" 0104 GMC/820503 The completion code disk_timeout is added.
" 0201 JAS/831101 New layouts of disk_init_msg and
" disk_include_msg.
" New completion codes.
" disk_shutdown command added.
" 0202 JAS/840413 disk_clearvol command added.
" The 'standard' fields in the messages
" (word 0) must now be zero for fms
" messages.
" 0203 JAS/840807 cdc_type type deleted (is now in FMSPARAMS.S
" and IOSPARAMS.S).
"
"-----------------------------------------------------------------------
"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;
disk_shutdown = 10;
disk_clearvol = 11;
type
disk_drv_cmd = disk_read..disk_clearvol;
"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; "must be 0
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_wait_bn = 4;
disk_release_bn = 5;
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 = 12;
"(Primary) completion codes
disk_okay = 0;
drv_not_ready = 1;
write_protected_drv = 2;
unexpected_status = 3;
data_or_sync_err = 4;
addr_or_sync_err = 5;
bad_sect = 6;
write_protected_sect = 7;
illegal_sect = 8;
timing_err = 9;
subbus_overr = 10;
parity_err = 11;
controller_err = 15;
type
disk_cc = disk_okay..controller_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; "must be 0
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;
"Format of a Initialise request
"------------------------------
type
disk_init_msg =
record
std : integer; "must be 0
cmd : disk_drv_cmd;
io_addr : integer;
ram_addr : integer; "ram address in multiples of 4K
min_ram_size : integer; "min disk ram size (in sectors)
end "disk init msg";