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

⟦e0c406eb5⟧ TextFile

    Length: 13378 (0x3442)
    Types: TextFile
    Names: »CTRL_ALL.I«

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_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!CTRL_ALL.I« 
└─⟦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_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!FILSYS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FILE.D!FMS.D!SINGLE.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!ALTFMS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!FILSYS.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!MY_SYSTEM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!QUATTRO_MUX.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »SYSTEMS.D!XAMOS.D!GEN850501.D!FMS.D!SINGLE.D!GENS.D!CTRL_ALL.I« 
└─⟦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_ALL.I« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_CRAM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MX_DMA.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!MY_SYSTEM.D!GENS.D!CTRL_ALL.I« 
    └─ ⟦this⟧ »CSP005_V0501.D!CSS920.D!LINK.D!SINGLE.D!GENS.D!CTRL_ALL.I« 

TextFile



«ff»
     "CR80 AMOS, FMS, Command Controller, Import procedures"
     "-----------------------------------------------------"

                        "GMC / 81 08 20"



import procedure get_fm_cmd(
                   r7;  "ref to handler descriptor of caller
                   r4;  "ref to a cmd_operation (on return)"
                   r0; r1; r5;  "destroyed"
                   r6  "link");

  "This procedure gets a command for a file mgr command handler to
  "execute. The procedure is part of the Controller Submodule.
  "The caller need not be aware of whether or not a DMA is in use. This
  "procedure may cause a waiting point. The caller can be sure that the
  "command he is given is within the range of his commands, but it could
  "still have an illeagl command id.
  "On return from this procedure, <cmd op> will contain a command operation,
  "as defined in CMD_OPERATION.


import procedure get_cram_cmd(
                   r7;  "ref to handler descriptor of caller
                   r4;  "ref to a cmd_operation (on return)"
                   r0; r1; r5;  "destroyed"
                   r6  "link");

  "This procedure gets a command for a cram mgr command handler to
  "execute. The procedure is part of the Controller Submodule.
  "The caller need not be aware of whether or not a DMA is in use. This
  "procedure may cause a waiting point. The caller can be sure that the
  "command he is given is within the range of his commands, but it could
  "still have an illeagl command id.
  "The first word of the handlers descriptor, after the part used by the
  "coroutine monitor is reserved for use by the controller.
  "On return from this procedure, <cmd op> will contain a command operation,
  "as defined in CMD_OPERATION.


import procedure get_tqm_cmd(
                   r7;  "ref to handler descriptor of caller
                   r4;  "ref to a cmd_operation (on return)"
                   r0; r1; r5;  "destroyed"
                   r6  "link");

  "This procedure gets a command for a transaction mgr command handler to
  "execute. The procedure is part of the Controller Submodule.
  "The caller need not be aware of whether or not a DMA is in use. This
  "procedure may cause a waiting point. The caller can be sure that the
  "command he is given is within the range of his commands, but it could
  "still have an illeagl command id.
  "The first 3 words after the part of the handler descriptor used by
  "the cor mon should be a semaphore, only accessible to the controller,
  "with the exception that it should have been initialised by init_tqm.
  "On return from this procedure, <cmd op> will contain a command operation,
  "as defined in CMD_OPERATION.


import procedure reply_cmd(
                   r4;  "ref to a port
                   r1;  "ref to a reply (destroyed)
                   r7;  "ref to handler descriptor of caller
                   r2; r3; r6;  "destroyed
                   r5  "link");

  "This procedure sends a reply to the user, that signals the completion
  "of his command. The procedure is part of the Controller Submodule.
  "The caller need not be aware of whether or not a DMA is in use, but
  "should be aware that if it is, then a waiting point may occur.
  "The PORT parameter must specify the port at which the command was
  "received (by GET_CMD). The REPLY should hold the 3 words that the
  "caller wants returned to the user. After this procedure, the
  "command handler may not engage in any further communication with
  "the user, involving this command.


import procedure init_internal_command(r7; "ref to command operation
                                       r3; r4; r5; "destroyed
                                       r6  "link");

  "This procedure initiates an internal command to be executed by a
  "command (file) handler. It is intended for use by the DCM to initiate
  "an update of a volume on which a bad sector has been substituted.


import procedure transfer(
                   r4;  "reference to a port
                   r7;  "ref to a handler descriptor
                   r6  "link; DMA completion code on return");

  "This procedure transfers data between the user and the File System.
  "The File System data that is to be transferred is specified by the
  "transfer list whose first element is the tle field of <port>. This
  "transfer list also specifies the amount of data to be transferred :
  "that is the data is transferred until this transfer list is exhausted
  "(signified by a link of 0 in a tle).
  "To build this transfer list, transfer list elements may be taken from
  "the pool of TLEs by calls of the procedure GRAB_TLE, and returned to
  "this pool by RETURN_TLE.
  "The user's data is specified by that part of the port which represents
  "the user's current transfer list and it's state.
  "The caller need not be aware of whether a DMA is in use or not. He should
  "realise, however, that in a dual processor system, this procedure may
  "cause a waiting point.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "Side effects of this procedure will be the updating of the state of the
  "user's transfer list and the destruction of part of the tle field of
  "<port>.
  "This procedure is part of the Command Controller Submodule.


import procedure receive_words(
                   r4;  "reference to a port
                   r1;  "rel addr from which the data is
                        "to be xferd (destroyed)
                   r3;  "nbr of words to be xferd (destroyed)
                        "signed integer, i.e. 1..32767
                   r7;  "ref to handler descriptor of caller
                   r6  "link; DMA completion code on return");

  "This procedure transfers data from the user to a contiguous area
  "within the File System's data space. The caller need not be aware of
  "whether or not a DMA is in use, except that in a DMA system, this
  "procedure will cause a waiting point.
  "The data to be transferred from the user's data area is specified by
  "the part of <port> which specifies the user's current transfer list
  "and its state. The locations to which the data is to be transferred
  "are specified by a base relative word address, <addr>, and a word
  "count, <size>.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "The effect of the procedure is that the next <size> words specified
  "by the user's transfer list are transferred to locations <addr> through
  "<addr> + <size> - 1, in the File System's process area. Side effects
  "will be the updating of the state of the user's transfer list and the
  "destruction of some fields in the tle field of <port>.
  "This procedure is part of the Command Controller Submodule.


import procedure send_words(
                   r4;  "reference to a port
                   r1;  "rel addr from which the data is
                        "to be xferd (destroyed)
                   r3;  "nb of words to be xferd (destroyed)
                         "signed integer, i.e. 1..32767
                   r7;  "ref to handler descriptor of caller
                   r6  "link; DMA completion code on return");

  "This procedure transfers data to the user from a contiguous area
  "within the File System's data space. The caller need not be aware of
  "whether or not a DMA is in use, except that in a DMA system, this
  "procedure will cause a waiting point.
  "Where the data is to be transferred to, in the user's process, is specified
  "by the part of <port> which specifies the user's current transfer list
  "and its state. The locations from which the data is to be transferred
  "are specified by a base relative word address, <addr>, and a word
  "count, <size>.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "The effect of the procedure is that locations <addr> through <addr>
  "+ <size> - 1, in the File System's process area, are transferred to
  "the locations that are specified by the user's transfer list. A side effect
  "will be the updating of the state of the user's transfer list and the
  "destruction of some fields in the tle field of <port>.
  "This procedure is part of the Command Controller Submodule.


import procedure receive_sectors(
                   r4;  "reference to a port
                   r0;  "byte offset, within the first sector,
                        "of the first byte to be xferd;
                        "set to 0 on return.
                   r5;  "rel addr of first sector's
                        "descriptor (destroyed)
                   r3;  "nbr of bytes to be xferd (destroyed)
                        "must be between 1 and 65535
                   r7;  "ref to handler descriptor of caller
                   r6  "link; DMA completion code on return");

  "This procedure transfers data from the user to a number of SECTOR
  "BUFFERs, within the disk cache. The caller need not be aware of whether
  "or not the DMA is used. But should be aware that if this is the case, then
  "a waiting point may occur. The data to be xferred from the user's data
  "area is specified by the part of the PORT, <port>, which specifies the
  "user's xfer list. The locations, in the File System, to which the data
  "is to be transferred are specified to be the sector contents (512 bytes)
  "of the chain of buffers, specified by the list of SECTOR DESCRIPTORs,
  "which start at <first>, starting at the <offset> th byte of the first sector
  "and finishing at the ((<offset> + <byte count> - 1) mod 512) th byte of
  "the ((<byte count> - 1) div 512) th sector in the chain. (All numbering
  "starting from 0). The effect of the procedure is that the next <byte
  "count> bytes specified by the user's transfer list are transferred to
  "the above described locations. Side effects are the updating of the
  "state of the user's transfer list, and the destruction of some fields
  "in the tle part of the <port>.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "This procedure is part of the Controller Submodule.


import procedure send_sectors(
                   r4;  "reference to a port
                   r0;  "byte offset, within the first sector,
                        "of the first byte to be xferd;
                        "set to 0 on return.
                   r5;  "rel addr of first sector's
                        "descriptor (destroyed)
                   r3;  "nbr of bytes to be xferd (destroyed)
                        "must be between 1 and 65535
                   r7;  "ref to handler descriptor of caller
                   r6  "link; DMA completion code on return");

  "This procedure transfers data to the user from a number of SECTOR
  "BUFFERs, within the disk cache. The caller need not be aware of whether
  "or not the DMA is used. But should be aware that if this is the case, then
  "a waiting point may occur. The locations in the user's data area to which
  "the data is to be xferd are specified by that part of <port> which specifies
  "the user's xfer list. The locations, in the File System, from which the data
  "is to be transferred are specified to be the sector contents (512 bytes)
  "of the chain of buffers, specified by the list of SECTOR DESCRIPTORs,
  "which start at <first>, starting at the <offset> th byte of the first sector
  "and finishing at the ((<offset> + <byte count> - 1) mod 512) th byte of
  "the ((<byte count> - 1) div 512) th sector in the chain. (All numbering
  "starting at 0). The effect of the procedure is that the above described
  "bytes in the File System's data area are transferred to the next <byte count>
  "bytes, specified by the user's transfer list. Side effects are the updating of
  "the state of the user's transfer list, and the destruction of some fields
  "in the tle part of the <port>.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "This procedure is part of the Controller Submodule.


import procedure skip(
                   r4;  "ref to a port
                   r2;  "number of TLEs to be skipped,
                        "destroyed on return
                   r7;  "ref to handler descriptor of caller
                   r6   "link");

  "This procedure skips a specified number of transfer list elements in
  "the user's transfer list. The caller need not be aware of whether or not
  "a DMA is in use. But should be aware that if it is, then this procedure
  "can cause a waiting point. If the last of the user's tles is reached,
  "before <count> xfer list elems have been skipped, then the user's
  "transfer list is left with this last tle as its current one. The effect
  "of the procedure is to change the state of the user's transfer list,
  "represented in <port>. A side effect will be the destruction of some
  "fields of the tle part of the <port>.
  "Regardless of whether or not a DMA is in use, the transfer may go
  "wrong. This is indicated by the returned <DMA completion code>.
  "This procedure is part of the Controller Submodule.
 «a5»