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: 21674 (0x54aa) Types: TextFile Names: »IOSPARAMS.S«
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII ) └─ ⟦this⟧ »CSP005_V0501.D!CSS872.D!IOSPARAMS.S«
"----------------------------------------------------------------------- " " " MODULE NAME: IO SYSTEM PARAMETERS (IOSPARAMS) " MODULE ID NMB: CSS/872 " MODULE VERSION: 02 " MODULE TYPE: PREFIX " MERGE FILES: - " " SPECIFICATIONS: - " AUTHOR/DATE: PHF/850418 " " DELIVERABLE: - " SOURCE LANGUAGE: SWELL " COMPILE COMPUTER: CR80 " TARGET COMPUTER: CR80 " OPER. SYSTEM: AMOS " "----------------------------------------------------------------------- " " CHANGE RECORD " " VERSION AUTHOR/DATE DESCRIPTION OF CHANGE " ------- ----------- --------------------- " " 0102 JSL /801030 LAYOUT CHANGED TO SCL STANDARD " " 0103 AEK /801105 MAGTAPE = 74, ADDED TO " DEVICE SPECIFICATION CONSTANTS " " 0104 AEK /810211 DEVICE_DESCRIPTION_DUAL CHANGED " " 0105 AEK /820120 MAGTAPE_DRIVER FUNCTION NAMES ADDED " " 0106 SMA /830201 PARTNER_DEVICE_ATTRIBUTES ADDED. " STARTDUALIZE, FINISHDUALIZE AND " DUALIZESECTORS ADDED. " " 0107 FP/830928 SETFILETHRESHOLD, SETVOLUMETHRESHOLD, " AND GETVOLUMEINFORMATION DELETED. " " UNMOUNT, INITDUALIZESECTORS, " INITREADSECTORS, INITWRITESECTORS, " INITWRITEANDMARKSECTORS, " INITWRITEANDPROTECTSECTORS, " INITFORMAT, AND GETDEVICEINFORMATION " ADDED. " " 0108 JAS/831027 DEVICE_INFORMATION TYPE ADDED. " MAGTAPE COMPLETION CODES CHANGED. " NEW FMS COMPLETION CODES ADDED. " CHANGEVOLUMEID, CHANGEBOOTENTRY, " RESERVE AND RELEASE ADDED. " " 0109 JAS/840405 DEVICE_INFORMATION TYPE CHANGED. " SETFILESIZE AND EXMOUNT CMDS ADDED. " NEW DISK TYPE, FMD675, KIND 30. " NEW COMPLETION CODES. " " 0110 FP/840702 NEW COMMANDS: " INITCREATE,INITDISMANTLE,INITPROTECT, " INITRESET,INITOFFER,INITACCEPT, " INITGETFILEINFORMATION,INITASSIGN,INITDEASSIGN, " INITMOUNT,INITDISMOUNT,INITGETROOT,INITUSERON, " INITUSEROFF,INITENTER,INITLOOKUP,INITDESCENT, " INITRENAME,INITREMOVE,INITUPDATE,INITSTARTDUALIZE, " INITFINISHDUALIZE,INITASSIGNDUAL,INITDISCARD, " INITRESERVE,INITRELEASE,INITUNMOUNT, " INITGETDEVICEINFORMATION,INITCHANGEVOLUMEID, " INITCHANGEBOOTENTRY,INITSETFILESIZE, " INITEXMOUNT,MULTIAWAIT. " END_OF_VOLUME CC RESTORED AS A MAGTAPE CC. " " 0111 JAS/840807 NEW VOLUME USE - PARTIAL_DUALIZABLE_VOL. " DEVICE TABLE ENTRY TYPE ADDED. " INCLUDEDEVICEKIND CMD ADDED. " NEW COMPLETION CODE. " ACCESS_TYPES TYPE ADDED (FOR THIS PREFIX TO " BE ABLE TO CO-EXIST WITH VOL_STRUCTURES.S) " " 0201 PHF/850418 New file types describing VDUs "----------------------------------------------------------------------- "PAGE«ff» "GENERAL TYPES TYPE FD = INTEGER; "FILE DESCRIPTION IDENTIFIER TYPE TSTREAM = INTEGER; "STREAM IDENTIFIER TYPE STREAM_MODE = (INPUT_MODE, OUTPUT_MODE); "EXIT DEFINITIONS TYPE INELEMENT_EXITS = (IE_ERROR, IE_NUMBER, IE_IDENTIFIER, IE_SPECIAL); TYPE INFILEID_EXITS = (IF_ERROR, IF_SYNTAX, IF_DONE); CONST DNAMELENGTH = 4; TYPE DEVICE_NAME = ARRAY[0..DNAMELENGTH-1] OF CHAR; CONST VNAMELENGTH = 16; TYPE VOLUME_NAME = ARRAY[0..VNAMELENGTH-1] OF CHAR; CONST FNAMELENGTH = 16; TYPE FILE_NAME = ARRAY[0..FNAMELENGTH-1] OF CHAR; TYPE FILE_NAMES = RECORD OLD_NAME: FILE_NAME; NEW_NAME: FILE_NAME; END; TYPE VOLUME_USE = ( SINGLE_VOL, DUAL_VOL, DUALIZABLE_VOL, PARTIAL_DUALIZABLE_VOL ); "DEVICE SPECIFICATION CONST "FLOPPY DISK TYPES FD_SINGLE = 10; "SINGLE SIDED FD_DOUBLE = 12; "DUAL SIDED "MINI MODULE DRIVES MMD12 = 20; MMD24 = 22; MMD81 = 24; "80MB (1MB FIXED) MMD82 = 26; "80MB (2MB FIXED) MMD160 = 28; FMD675 = 30; "STORAGE MODULE DRIVES SMD40 = 40; SMD80 = 42; SMD150 = 44; SMD300 = 46; SMD600 = 48; "CARTRIDGE MODULE DRIVES CMD32 = 60; CMD64 = 62; CMD96 = 64; "OTHER DEVICES LINEPRINTER = 70; CARDREADER = 72; MAGTAPE = 74; TYPE DEVICE_KIND = FD_SINGLE..CARDREADER; TYPE CDC_TYPE = (MINI_MODULE, STORAGE_MODULE, CARTRIDGE_MODULE); TYPE DRIVER_KIND = (FLOPPY_DRIVER,CDC_DRIVER, PRINTER_DRIVER,CARD_READER_DRIVER, MAGNETIC_TAPE_DRIVER); TYPE DEVICE_TABLE_ENTRY = RECORD DEV_KIND : DEVICE_KIND; CDC : CDC_TYPE; DRIVER : DRIVER_KIND; LAST_UNIT : INTEGER; "LAST UNIT ALLOWED BY DRIVER" SECTOR_COUNT0 : LONG; "SECTORS ON SUBUNIT 0" SECTORS_PR_CYLINDER0 : INTEGER; "SECTORS/CYLINDER ON SUBUNIT 0" SECTOR_COUNT1 : LONG; SECTORS_PR_CYLINDER1 : INTEGER; END "DEVICE_TABLE_ENTRY"; TYPE DEVICE_DESCRIPTION = RECORD IO_KIND: DEVICE_KIND; IO_ADDR: INTEGER; UNIT: INTEGER; SUBUNIT: INTEGER; NAME: DEVICE_NAME; END; TYPE DUAL_DEVICE_DESCRIPTION = RECORD DEV_DESC: DEVICE_DESCRIPTION; IO_ADDR_1: INTEGER; UNIT_1: INTEGER; END; TYPE PARTNER_DEVICE_ATTRIBUTES = RECORD IO_ADDR: INTEGER; UNIT: INTEGER; END; TYPE FILE_SYSTEM_NAME = RECORD PNAME: PROCESS_NAME; GNAME: GROUP_NAME; END; CONST GT400 = 1; "VDU TYPE GT400 ANSI = 2; " - - ANSI (VT100) VT52 = 3; " - - VT52 Teletype = 4; " - - Teletype DIRECTORY = 10; "TYPE DIRECTORY FILE CONTIGUOUS = 12; "TYPE CONTIGUOUS FILE RANDOM = 14; "TYPE RANDOM FILE TYPE FILE_ORGANIZATION = GT400..RANDOM; TYPE FILE_ATTRIBUTES = RECORD VOLUME: VOLUME_NAME; ORGANIZATION: FILE_ORGANIZATION; ALLOCATION_SIZE: LONG; AREA_SIZE: INTEGER; END; TYPE VOLUME_THRESHOLD = LONG; TYPE FILE_THRESHOLD = LONG; TYPE FILE_INFORMATION = LONG; TYPE FILE_INFORMATION_TYPE = (F_ORGANIZATION, F_BYTESIZE, F_ALLOCATIONSIZE, "IF CONT FILE THEN SECTORS ELSE AREAS F_BODYADDRESS, "LOGICAL SECTOR NUMBER OF INDEX OR BODY F_AREASIZE, "SECTORS F_FILETHRESHOLD, "BYTES F_LINKS, "FROM DIRECTORIES F_IN_BFD, "BOOLEAN F_BFD_NUMBER, "BFD ENTRY NUMBER F_NBR_OF_USERS); "NBR OF USERS OF FILE TYPE DEV_STATE = (UNUSED, ASSIGNED, RESERVED, MOUNTED, DISK_CHANGED, WRITE_PROTECTED); TYPE VOL_STATE = (AMOS_VOL, MOUNTED_SINGLE, MOUNTED_DUAL, DISMOUNTED_SINGLE, DISMOUNTED_DUAL, DUALIZING_VOL); TYPE BFDNBR = LONG; TYPE DUAL_DISK_STATE = (DISK_OPENED, DISK_REDUALISING, DISK_DUALISING, DISK_CLOSED, DISK_DISCARDED); TYPE LOGICAL_DEVICE_INFO = RECORD STATE: DEV_STATE; "ASSIGNED, RESERVED OR MOUNTED RESERVER: INTEGER; "USER ID - ONLY VALID IF RESERVED DEVNAME: DEVICE_NAME; "LOG DEVICE NAME DUAL: BOOLEAN; "DUAL DISK OR NOT SECTORCOUNT: LONG; "NUMBER OF SECTORS ON VOLUME NBR_ERRORS: INTEGER; "NUMBER OF NON_REPORTED ERRORS "HAVE OCCURED ON THIS DEVICE END; TYPE CTRL_INFO = RECORD IOADDR : INTEGER; RAMADDR: INTEGER; END; TYPE PHYSICAL_DEVICE_INFO = RECORD KIND : DEVICE_KIND; USED_UNIT : INTEGER; "BIT 0 : SUB_UNIT "BIT 1 - 15: UNIT CONTROLLER_INFO: CTRL_INFO; STATUS : DUAL_DISK_STATE; END; TYPE TIME = ARRAY [0..2] OF INTEGER; TYPE VOLUME_INFO = RECORD VOLNAME: VOLUME_NAME; "NAME ASSIGNED TO VOLUME FREE_ENTRIES: LONG; "NUMBER OF FREE ENTRIES IN BFD BOOT_ENTRY: BFDNBR; "BFD NUMBER CREATION_DATE: TIME; ACCESS_DATE: TIME; FORMAT: INTEGER; "IDENTIFICATION OF FORMAT OF VOLUME STATE: VOL_STATE; END; TYPE DEVICE_INFORMATION = RECORD LOG_DEV_INFO: LOGICAL_DEVICE_INFO; PHYS_DEV_INFO: ARRAY [0..1] OF PHYSICAL_DEVICE_INFO; VOL_INFO: VOLUME_INFO; "ONLY VALID IF VOLUME MOUNTED FILLER: ARRAY [38..39] OF INTEGER; END; TYPE SECTOR_ADDRESS = RECORD FIRST_SECTOR: LONG; SECTOR_COUNT: LONG; TRANSFERRED_SECTORS: LONG; END; TYPE FILE_ADDRESS = RECORD FIRST_BYTE: LONG; BYTE_COUNT: LONG; TRANSFERRED_BYTES: LONG; END; TYPE FILE_IDENT = RECORD NAME: FILE_NAME; D: FD; "DIRECTORY FD F: FD; "FILE FD S: TSTREAM; "STREAM IDENTIFIER END; TYPE ACCESS_TYPES = RECORD ACCESS1: INTEGER; ACCESS2: INTEGER; END; TYPE ACCESS_DESCRIPTION = RECORD USER: USERID; RIGHTS: ARRAY[0..1] OF BITS; " = ACCESS_TYPES END; "ACCESS RIGHT DEFINITIONS CONST BNAREADBYTES = 0; BNAMODIFYBYTES = 1; BNAAPPENDBYTES = 2; BNAENTER = 5; BNALOOKUP = 6; BNARENAME = 7; BNAREMOVE = 8; BNARESET = 10; BNAGETFILEINFORMATION = 11; BNAPROTECT = 12; BNASETFILETHRESHOLD = 13; BNAOFFER = 14; "BUFFER TYPE DESIGNATIONS CONST BNUPPERBYTE = 0; BNLOCALBUFFER = 1; BNEXTERNALBUFFER= 2; BMLOCALLOWER = 1 SHIFTLL BNLOCALBUFFER; BMLOCALUPPER = 1 SHIFTLL BNLOCALBUFFER + 1 SHIFTLL BNUPPERBYTE; BMEXTERNAL = 1 SHIFTLL BNEXTERNALBUFFER; TYPE BUFFER_TYPE = BMLOCALLOWER..BMEXTERNAL; TYPE BUFFER_LIST_ELEMENT = RECORD KIND: BUFFER_TYPE; LINK: RELPTR; ADDR: RELPTR; BYTE_SIZE: INTEGER; END; TYPE STREAM_POSITION = LONG; "IOS MONITOR PROCEDURE SUBNAME DEFINITIONS CONST CREATE = #0000; DISMANTLE = #0001; PROTECT = #0002; RESET = #0003; OFFER = #0004; ACCEPT = #0005; GETFILEINFORMATION = #0006; SPECIAL = #0007; ASSIGN = #0008; DEASSIGN = #0009; MOUNT = #000A; DISMOUNT = #000B; FORMAT = #000C; GETROOT = #000D; USERON = #000E; USEROFF = #000F; ENTERFILE = #0010; LOOKUP = #0011; DESCENT = #0012; RENAME = #0013; REMOVE = #0014; READSECTORS = #0015; WRITESECTORS = #0016; WRITEANDPROTECT = #0017; WRITEANDMARK = #0018; READBYTES = #0019; MODIFYBYTES = #001A; APPENDBYTES = #001B; INITREADBYTES = #001C; INITMODIFYBYTES = #001D; INITAPPENDBYTES = #001E; WAITOPERATION = #001F; WAITOPERATIONS = #0020; TESTOPERATION = #0021; CANCEL = #0022; UPDATE = #0023; STARTDUALIZE = #0024; FINISHDUALIZE = #0025; DUALIZESECTORS = #0026; ASSIGNDUAL = #0027; DISCARD = #0028; RESERVE = #0029; RELEASE = #002A; ASSIGNMT = ASSIGN; MOUNTMT = #002B; DISMOUNTMT = #002C; INITMT = #002D; REWIND = #002E; CREATEMT = #002F; FINDMT = #0030; SKIPMT = #0031; SKIPMTBLOCKS = #0032; BREAKMTFILE = #0033; RESUMEMTFILE = #0034; UNMOUNT = 53; INITDUALIZESECTORS = 54; INITREADSECTORS = 55; INITWRITESECTORS = 56; INITWRITEANDMARKSECTORS = 57; INITWRITEANDPROTECTSECTORS = 58; INITFORMAT = 59; GETDEVICEINFORMATION = 60; CHANGEVOLUMEID = 61; CHANGEBOOTENTRY = 62; SETFILESIZE = 63; EXMOUNT = 64; INITCREATE = 65; INITDISMANTLE = 66; INITPROTECT = 67; INITRESET = 68; INITOFFER = 69; INITACCEPT = 70; INITGETFILEINFORMATION = 71; INITASSIGN = 72; INITDEASSIGN = 73; INITMOUNT = 74; INITDISMOUNT = 75; INITGETROOT = 76; INITUSERON = 77; INITUSEROFF = 78; INITENTER = 79; INITLOOKUP = 80; INITDESCENT = 81; INITRENAME = 82; INITREMOVE = 83; INITUPDATE = 84; INITSTARTDUALIZE = 85; INITFINISHDUALIZE = 86; INITASSIGNDUAL = 87; INITDISCARD = 88; INITRESERVE = 89; INITRELEASE = 90; INITUNMOUNT = 91; INITGETDEVICEINFORMATION= 92; INITCHANGEVOLUMEID = 93; INITCHANGEBOOTENTRY = 94; INITSETFILESIZE = 95; INITEXMOUNT = 96; MULTIAWAIT = 97; INCLUDEDEVICEKIND = 98; "STREAM PROCEDURES CONST CONNECT = #0000; DISCONNECT = #0001; GETPOSITION = #0002; SETPOSITION = #0003; INBYTE = #0004; BACKSPACE = #0005; INREC = #0006; OUTBYTE = #0007; OUTREC = #0008; FLUSH = #0009; INTYPE = #000A; INELEMENT = #000B; OUTTEXTP = #000C; OUTTEXTB = #000D; OUTHEXA = #000E; OUTINTEGER = #000F; OUTLONGINTEGER = #0010; OUTNL = #0011; INLINE = #0012; OUTLINE = #0013; "IOS, FMS, DISK AND MT COMPLETION AND ERROR CODES CONST IO_OK = 0; EOF = #201; NO_FDS_AVAILABLE = #202; ILLEGAL_FD = #203; NO_IOCBS_AVAILABLE = #204; ILLEGAL_IOCB = #205; NO_STREAMS_AVAILABLE = #206; ILLEGAL_STREAM = #207; NO_XFELEMS_AVAILABLE = #208; ILLEGAL_ADDRESS = #209; ILLEGAL_BLE = #20A; FILE_NOT_OPEN = #20B; DIFFERENT_FILE_SYSTEMS = #20C; UNKNOWN_FILE_SYSTEM = #20D; ILLEGAL_COMMAND = #20E; IO_SYSTEM_ERROR = #20F; NOT_ENOUGH_SPACE = #210; ILLEGAL_MODE = #211; ILLEGAL_MEMORY_PARM = #212; NO_BUFFER_SPACE = #213; NOT_CONNECTED = #214; NOT_OUTPUT_MODE = #215; NOT_INPUT_MODE = #216; ELEMENT_OVERFLOW = #217; SYNTAX_ERROR = #218; NONEXISTING_DEVICE = #400; ILLEGAL_DEVICE_KIND = #401; ILLEGAL_CR80_ADDR = #402; DEVICE_NAME_IN_USE = #403; ILLEGAL_UNIT = #404; ILLEGAL_SUBUNIT = #405; WRONG_VOLUME_NAME = #406; NONEXISTING_VOLUME = #407; VOLUME_MOUNTED = #408; DIFFERENT_VOLUMES = #409; ILLEGAL_FILE = #40A; ILLEGAL_ORGANIZATION = #40B; ILLEGAL_ALLOC_SIZE = #40C; ILLEGAL_AREA_SIZE = #40D; ILLEGAL_WRITE = #40E; FILE_CLOSED = #40F; FILES_OPEN = #410; NO_FILE_TO_ACCEPT = #411; NONEXISTING_USER = #412; USER_ALREADY_ACTIVE = #413; NO_CONNECTION = #414; ILLEGAL_USERGROUP = #415; ILLEGAL_CALLER = #416; OTHER_USERS = #417; NOT_CONTIGUOUS_DUALIZE = #418; OUT_OF_RANGE = #419; FILE_FULL = #41B; ACL_FULL = #41C; PROTECTION_FAILURE = #41D; ILLEGAL_DIRECTORY = #420; NAME_EXISTS = #421; NONEXISTING_NAME = #422; NOT_ALLOCATABLE = #423; KIND_UNIT_CONFLICT = #425; KIND_CTRLR_CONFLICT = #426; ILLEGAL_FILE_INF_TYPE = #428; NOT_A_DUAL_DISK = #429; ILLEGAL_DISCARD = #42A; UNKNOWN_COMMAND = #42C; BAD_SECTOR_DURING_FORMAT = #42D; BAD_SECTOR_TABLE_FULL = #42E; UNIT_IS_IN_USE = #42F; VOLUME_NAME_IS_IN_USE = #430; DEVICE_NOT_RESERVED = #431; DEVICE_ALREADY_RESERVED = #432; DEVICE_NOT_SINGLE = #433; DEVICE_NOT_DUAL = #434; ILLEGAL_DCB_INDEX = #435; UNKNOWN_VOLUME_USE = #436; ILLEGAL_FINISH_DUALIZE = #437; ILLEGAL_START_DUALIZE = #43B; NOT_DUALIZING = #43C; DUALIZING_WITHOUT_MOUNT = #43D; BAD_SECTOR_READ = #441; CORRUPT_HOMEBLOCK = #442; BAD_SECTOR_IN_ASF = #443; BST_FULL = #444; BAD_SECTOR_REPLACED = #448; LAST_BAD_SECTOR_REPLACED = #449; DIFFERENT_VOLUME_NAMES = #44A; DIFFERENT_ACCESS_DATES = #44B; NOT_ASSIGNED_DUAL = #44C; NOT_DISMOUNTED_DUAL = #44D; NOT_MOUNTED_DUAL = #44E; SECTOR_COUNT_CONFLICT = #44F; BST_SIZE_TOO_BIG = #450; NOT_EMPTY_DIRECTORY = #451; NO_DISK_CHANGE = #452; NO_SPARE_DEVICE_KINDS = #453; DRIVE_NOT_READY = #481; WRITE_PROTECTED_DEVICE = #482; UNEXPEC_DISK_I_F_STATUS = #483; DATA_OR_SYNC_ERROR = #484; ADDRESS_OR_SYNC_ERROR = #485; BAD_SECTOR = #486; WRITE_PROTECTED_SECTOR = #487; ILLEGAL_SECTOR = #488; TIMING_ERROR = #489; SUBBUS_OVERRUN = #48A; PARITY_ERROR = #48B; SELFTEST_RUNNING = #48C; CONTROLLER_RESET = #48D; SELFTEST_FAILED = #48E; CONTROLLER_FAILURE = #48F; TAPE_DEVICE_FAILURE = #B00; TAPE_SOFT_FAILURE = #B01; TAPE_NOT_INITIATED = #B03; TAPE_WRITE_PROTECTED = #B04; BEGINNING_OF_TAPE_SENSED = #B05; END_OF_TAPE_SENSED = #B06; LOGICAL_EOT_SENSED = #B07; FILE_MARK_SENSED = #B08; INVALID_RECORD_LENGTH = #B09; SHORT_DATA_RECORD = #B0A; LONG_DATA_RECORD = #B0B; TAPE_MUST_BE_LABELED = #B0C; FILE_MUST_BE_OPEN_FOR_INPUT = #B0D; FILE_NOT_BREAKABLE = #B0E; ILLEGAL_RESUME_TAPE = #B0F; END_OF_VOLUME = #B10; "DEFINITIONS FOR FILE-NAME UTILITIES: CONST NAMELISTMAXINDEX = 10; TYPE NAMELISTTYPE = ARRAY [0..FNAMELENGTH*NAMELISTMAXINDEX-1] OF CHAR; "END OF IOSPARAMS «a5»