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

⟦2b5933482⟧ TextFile

    Length: 5276 (0x149c)
    Types: TextFile
    Names: »DCM.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!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!DCM.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!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!DCM.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!DCM.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_CRAM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_DMA.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MY_SYSTEM.D!GENS.D!DCM.DEFNS.S« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!SINGLE.D!GENS.D!DCM.DEFNS.S« 

TextFile

       "Disk Cache Manager Submodule : external data definitions"
       "--------------------------------------------------------"

                          "GMC / 82 07 09"


"The coroutine monitor defintions must be included before this file


"Throughout this file, 'pointer' is used to mean a single word, which
"can take either the value 'none' (=0), meaning that the pointer is
"not pointing to anything, or any other value less than 64k, meaning
"that the pointer contains the process base relative address of some
"data structure.



type

  sector_nbr = long;
  sector_count = 1..32767;

  dcb_id = reference;  "address of a dcb

const
  prolog_size = 16;  contents_size=256;  epilog_size=2;
type
  prolog = array[0..prolog_size-1] of integer;
  sector_contents = array[0..contents_size-1] of integer;
  epilog = array[0..epilog_size-1] of integer;

  sector =
    record
      pro  : prolog;
      cnts : sector_contents;  "user accessible information"
      epi  : epilog
    end "sector";

  sector_buffer =
    record
      next : absptr;  "used by disk driver
      sect : sector
    end "sector buffer";

  sector_state = integer;
  sector_cmd = (read_sect, write_sect, protect_sect, bad_mark_sect,
                format_sect, replace_sect, copy_sect, neutral);
  access_result = integer;  "result of disk access
  dc_priority = (lowest, low, normal, high, highest);
  dc_op_ptr = pointer;  "pointer to dc operation"
  sect_desc_ptr = pointer;  "pointer to a sector_descriptor"

"SECTOR DESCRIPTOR definition
  sector_descriptor =
    record
      nbr           : sector_nbr;  "logical sector number, on the disk;
                                   "1st word can also be used as a link
                                   "in the stack of free sect descs
      state         : sector_state;
      cmd           : sector_cmd;
      succ          : sect_desc_ptr;  "successor in a sector list
      pred          : sect_desc_ptr;  "predecessor in a sector list
      next_in_q     : sect_desc_ptr;  "next in released or awaiting bufs q
      prev_in_q     : sect_desc_ptr;  "previous in ......
      dev           : dcb_id;  "ptr to dev on which this sector resides
      claim_count   : integer;
      write_claimer : integer;  "none or the identity of a writer
      writer        : integer;  "identity of entity which has requested
                                "this sector to be written
      pri           : dc_priority;
      waiting_ops   : dc_op_ptr;  "pointer to first waiting op"
      source        : sect_desc_ptr;  "used by reposition
      alt_sect      : integer;  "either good_sect (#FFFF), meaning that
                                "this sect isn't bad, or index, within
                                "the BST, of an alternative sector
      buf           : pointer;  "pointer to this sector's contents
      result        : access_result  "result of the access to this sect
    end "sector descriptor";

"Operations
const
  read_and_read_claim =       #08;
  read_and_write_claim =      #28;
  read_dualize_and_claim =    #48;                        "JAS/831021
  write_claim =               #20;
  cond_read_and_read_claim =  #18;
  cond_read_and_write_claim = #38;
  write_mark =                #21;
  write_out =                 #29;
  write_mark_and_write_rel =  #31;
  write_out_and_write_rel =   #39;
  write_out_and_protect_and_write_rel = #59;
  write_out_and_bad_mark_and_write_rel = #79;
  format_and_write_release =  #99;
  format_and_write_rel     =  format_and_write_release;   "JAS/831021
  read_release =              #02;
  write_release =             #12;
  abandon =                   #1A;
  flush =                     #03;
  cancel =                    #04;
  reposition =                #05;
  write_dual_and_write_rel =  #B9;
  write_dualize_and_release = write_dual_and_write_rel;   "JAS/831021

type

  dc_op_type = read_release..write_dual_and_write_rel;

  sector_spec = record
                  nbr : sector_nbr;
                  desc : sect_desc_ptr
                end "sector spec";
  sectors_spec = record
                   first : sector_spec;
                   count : sector_count
                 end "sectors spec";

  writer_id = integer;  "any value except none (=0)

  DCM_result = integer;  "if < 0 then system error, disguised as a user
                         "error (ie with #300 added and #400 subtracted),
                         "else disk error (hardware fault)

"DC OPERATION definition
type
  dc_operation =
    record
      link    : coroutine_link;  "used by cor mon & as a ptr
                                 "to next in waiting op q"
      opn     : dc_op_type;  "any value except 0
      sem     : sem_id;  "id of the semaphore to which
                         "the reply should be signalled"
      dev     : dcb_id;  "id of device on which this op acts"
      sectors : sectors_spec;
      new_1st : sector_nbr;  "used in reposition and format
      id      : writer_id;
      pri     : dc_priority;
      result  : DCM_result
    end "dc operation";


"DCM result;
const
  disk_err_bn = 7;  "set in comp code, if disk err
  disk_err_length = 4;
  disk_err_posn = 0;
  disk0_bn = 4;  disk1_bn = 5;
  first_non_fatal_dual_disk_err = #90;
  first_fatal_dual_disk_err = #B0; «a5»