DataMuseum.dk

Presents historical artifacts from the history of:

CR80 Hard and Floppy Disks

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about CR80 Hard and Floppy Disks

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦b83d2f60d⟧ TextFile

    Length: 12432 (0x3090)
    Types: TextFile
    Names: »IOSPARAMS.S«

Derivation

└─⟦b8af24a88⟧ Bits:30005796 CR80 Disc Pack ( MINICAMPS )
    └─ ⟦this⟧ »GENS.D!SWELLPREFIX.D!IOSPARAMS.S« 

TextFile

"-----------------------------------------------------------------------
"
"
"  MODULE NAME:      IO SYSTEM PARAMETERS (IOSPARAMS)
"  MODULE ID NMB:    CSS/872
"  MODULE VERSION:   0105
"  MODULE TYPE:      PREFIX
"  MERGE  FILES:     -
"
"  SPECIFICATIONS:   -
"  AUTHOR/DATE:      AEK/820120
"
"  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
"
"-----------------------------------------------------------------------
"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;

"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;
                          "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  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  FILE_SYSTEM_NAME =
        RECORD
          PNAME:      PROCESS_NAME;
          GNAME:      GROUP_NAME;
        END;

CONST
      DIRECTORY   = 10;       "TYPE DIRECTORY FILE
      CONTIGUOUS  = 12;       "TYPE CONTIGUOUS FILE
      RANDOM      = 14;       "TYPE RANDOM FILE

TYPE  FILE_ORGANIZATION = DIRECTORY..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

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_DESCRIPTION =
        RECORD
          USER:   USERID;
          RIGHTS: ARRAY[0..1] OF BITS;
        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;
      SETVOLUMETHRESHOLD      =   #0024;
      GETVOLUMETHRESHOLD      =   #0025;
      SETFILETHRESHOLD        =   #0026;
      ASSIGNDUAL              =   #0027;
      DISCARD                 =   #0028;

      ASSIGNMT                =   ASSIGN;
      MOUNTMT                 =   #002B;
      DISMOUNTMT              =   #002C;
      INITMT                  =   #002D;
      REWIND                  =   #002E;
      CREATEMT                =   #002F;
      FINDMT                  =   #0030;
      SKIPMT                  =   #0031;
      SKIPMTBLOCKS            =   #0032;
      BREAKMTFILE             =   #0033;
      RESUMEMTFILE            =   #0034;

"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 AND FMS 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_CALLER           = #416;   OTHER_USERS              = #417;
                                         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;
      VOL_THRESHOLD_EXCEEDED   = #424;   FILE_THRESHOLD_EXCEEDED  = #425;
      VOL_THRESHOLD_TOO_LARGE  = #426;
      ILLEGAL_FILE_INF_TYPE    = #428;   NOT_DUAL_DISK            = #429;
      ILLEGAL_DISCARD          = #42A;
      UNKNOWN_COMMAND          = #42C;   END_OF_VOLUME            = #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;

      TAPE_NOT_INITIATED       = #433;   TAPE_NOT_WRITE_PROTECTED = #434;
      BEGINNING_OF_TAPE_SENSED = #435;   END_OF_TAPE_SENSED       = #436;
      LOGICAL_EOT_SENSED       = #437;   FILE_MARK_SENSED         = #438;
      INVALID_RECORD_LENGTH    = #439;   SHORT_DATA_RECORD        = #43A;
      LONG_DATA_RECORD         = #43B;   TAPE_MUST_BE_LABELED     = #43C;
      FILE_MUST_BE_OPEN_FOR_INPUT        = #43D;
      FILE_NOT_BREAKABLE       = #43F;   ILLEGAL_RESUME_TAPE      = #43F;

      WRITE_PROTECTED_DEVICE   = #442;   UNEXPEC_DISK_IF_STATUS   = #443;
      DATA_OR_SYNC_ERROR       = #444;   ADDRESS_OR_SYNC_ERROR    = #445;
      BAD_SECTOR               = #446;   WRITE_PROTECTED_SECTOR   = #447;
      ILLEGAL_SECTOR           = #448;   TIMING_ERROR             = #449;
      SUBBUS_OVERRUN           = #44A;   PARITY_ERROR             = #44B;
      BAD_SECTOR_READ          = #44C;   BAD_HOME_BLOCK           = #44D;



"DEFINITIONS FOR FILE-NAME UTILITIES:
CONST
     NAMELISTMAXINDEX = 10;
TYPE NAMELISTTYPE     =
     ARRAY [0..FNAMELENGTH*NAMELISTMAXINDEX-1] OF CHAR;










"END OF IOSPARAMS «a5»