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