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

⟦66d591daf⟧ TextFile

    Length: 5104 (0x13f0)
    Types: TextFile
    Names: »CTRL.DEFNS.S«

Derivation

└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ )
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!ALTFMS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!CTRL.DEFNS.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⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!ALTFMS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!CTRL.DEFNS.S« 
└─⟦e0c43619c⟧ Bits:30005797 CR80 Disc pack ( Vol:FNJ1 861029/EC CR80 S/W Package II+III+IV+V+VII )
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!ERP_SINGLE.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_CRAM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_DMA.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MY_SYSTEM.D!GENS.D!CTRL.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!SINGLE.D!GENS.D!CTRL.DEFNS.S« 

TextFile

       "Command Controller Submodule : external data definitions"
       "--------------------------------------------------------"

                           "GMC / 80 12 19"


"These data definitions make use of definitions made in the files
"generalparams.s and comonparams.s .



type

  command_ident = integer;  "useron_cmd..tqm_cmd"

"XFER LIST ELEM (Transfer List Element) definition"
  xfer_list_elem = record  "used in communication with the dma driver"
                     cmd_sectn  : integer;  "command & section bits"
                     link       : absptr;   "next xferlist element"
                     byte_count : integer;  "byte count"
                     buf_addr   : absptr;   "abs addr of buffer"
                     byte_ofs   : integer  "byte offset from buf_addr"
                   end "xfer list elem";

"Composition of tle command and section fields, in terms of bit positions and lengths"
const
  tle_sect_posn = 2;  tle_sect_length = 2;
  tle_cmd_posn = 8;  tle_cmd_length = 8;

"Transfer List Element commands"
  input_xfer = 0;
  output_xfer = 1;
  terminate_xfer = 2;
  skip_xfers = 3;
  skip_to_last_xfer = 4;
type
  tle_command = input_xfer..skip_to_last_xfer;

  groupname = record
                least, most : two_chars
              end;

  dma_drv_msg = record  "a message or answer sent to or received from"
                        "the dma driver or the user"
                  cmd_or_result : integer;
                  xfladdr_or_cc : integer;
                  port_nbr      : integer;
                  group         : groupname
                end "dma_drv_msg";


"User environment identification.
"The users environment (operating system) is recognized by the 'gate'
"by which the command arrived. The 'gate' is either the 'direct message'
"interface or the dma-link driver via which the command was received.
"To make the identification of the user unique, an identification of the
"environment is added to the user identification specified within the
"commands.

const
  local_user= 0; "user located on the same computer as the fms
type
  user_remote= 1..15; "user connected via dma link
  user_environment= 0..15;


  user_com_operation =
    record
      link : coroutine_link;  "link in a queue of operations"
      opn  : user_environment;
      sem  : sem_id;  "address of semaphore to which this
                      "external operation is to be delivered"
      evt  : event;  "identification of the associated event"
      buf  : dma_drv_msg  "holds messages/answers from/to the user"
    end "ext com operation";

"PORT definition
  port = record  "represents a communication channel, for 1 cmd, between
                 "the user and the file system. it should only be
                 "accessed via special procedures (eg. send & receive)."
           ext_op : user_com_operation;  "used to communicate with
                                         "the user (or dma)"
           tle : xfer_list_elem;  "used by controller and handler. it
                                  "specifies first data transfer, from the
                                  "file system's point of view."
           tle2: xfer_list_elem;  "used by handler,
                                  "may specify second data transfer.
           xtdref : pointer;      "pointer to local or remote port extention
                                  "handler save locations:
           w6: integer;           "used by the procedures
                                  "  receive_words, send_words,
                                  "  receive_sectors, send_sectors, xfer_sectors
           w6transfer: integer;   " used by the procedure transfer
         end "port";

  portx_l= record "port descriptor extention for local port"
             users_tle : xfer_list_elem;  "copy of users current tle
             mess_cmd_sectn : integer;  "message command and section of transfer list
           end "portx_l";

  portx_r= record "port descriptor extention for remote port"
             dmaref: pointer;  "pointer to dma-driver process name
             semph : semaphore;"answer semaphore used by handler
           end "portx_r";

"COMMAND definition
  command = record
              cmd_id : command_ident;
              caller : user_name;
              params : array[0..5] of integer  "depend upon 'cmd_id'"
            end "command";

"CMD OPERATION definition
  cmd_operation =
    record
      prt : port;
      suspended : boolean;
      curnt_cap : pointer;      "current users cap ptr"
      sem_awaited : sem_id;
      cmd : command;
                             " STATISTICS:
      cmds_pending : integer;" nbr of pending when (before) actual command arrived
    end "cmd operation";


"DMA completion codes"
const
  dma_ok           = 0;      "transfer ok
  dma_port_err     = 1;      "port error
  dma_ill_cmd      = 2;      "illegal command or event
  dma_tle_err      = 3;      "transfer list error
  dma_xmission_err = 4;      "transmission error
  dma_aborted      = 5;      "dma aborted
  dma_stopped      = 6;
type
  dma_comp_code = dma_ok..dma_stopped;