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

⟦253b557be⟧ TextFile

    Length: 3514 (0xdba)
    Types: TextFile
    Names: »COMONPARAMS.S«

Derivation

└─⟦732a9e2da⟧ Bits:30005117 8" CR80 Floppy CR80FD_0076 ( CR/D/2322 Diverse systemmoduler SWELL PREFIX F Copy af CRD2315 I K CRD2322 810225 AEK S )
    └─⟦b9b5abdc9⟧ 
        └─ ⟦this⟧ »SWELLPREFIX.D!COMONPARAMS.S« 

TextFile

"-----------------------------------------------------------------------
"
"
"  MODULE NAME:      COROUTINE MONITOR PARAMETERS (COMONPARAMS)
"  MODULE ID NMB:    CSS/879
"  MODULE VERSION:   0101
"  MODULE TYPE:      PREFIX
"  MERGE  FILES:     -
"  
"  SPECIFICATIONS:   -
"  AUTHOR/DATE:      JSL/800603
"
"  DELIVERABLE:      -
"  SOURCE LANGUAGE:  SWELL
"  COMPILE COMPUTER: CR80
"  TARGET COMPUTER:  CR80
"  OPER. SYSTEM:     AMOS
"
"-----------------------------------------------------------------------
"
"  CHANGE RECORD
"
"  VERSION    AUTHOR/DATE    DESCRIPTION OF CHANGE
"  -------    -----------    ---------------------
"
"-----------------------------------------------------------------------
"PAGE«ff»
TYPE  OP_TYPE = INTEGER;          "USED TO DESTINGUISH BETWEEN MESSAGES
                                  "ANSWERS AND INTERNAL SIGNALS AT A GE
                                  "NERAL SEMAPHORE
  
TYPE  SEM_ID  = INTEGER;          "SEMAPHORE IDENTIFICATION (ITS ADDRESS)
  
TYPE  COROUTINE_LINK = ABSPTR;    "TO THE NEXT ELEMENT IN A QUEUE
  
TYPE  COROUTINE_QUEUE =           "QUEUE OF COROUTINES OR OPERATIONS
        RECORD
          FIRST:  COROUTINE_LINK; "QUEUE HEAD
          LAST:   COROUTINE_LINK; "QUEUE TAIL
        END;
  
TYPE  COROUTINE_DESCRIPTOR =
        RECORD
          LINK:   COROUTINE_LINK; "TO THE NEXT COROUTINE DESCRIPTOR
          SAVE:   ARRAY[0..7] OF INTEGER; "REGISTER SAVE ARRAY
        END;
  
TYPE  SEMAPHORE =
        RECORD
          Q:      COROUTINE_QUEUE;"QUEUE OF COROUTINES WAITING AT (OR
                                  "OPERATIONS SIGNALLED TO) THIS SEM
          VAL:    INTEGER;        "THE VALUE OF THIS SEMAPHORE
        END;
  
TYPE  INTERNAL_OPERATION =
        RECORD
          LINK:   COROUTINE_LINK; "LINK TO OTHER OPERATIONS WHICH ARE
                                  "QUEUED AT THE SAME SEMAPHORE
"        <USER DEFINED FIELDS>     THE FIRST OF WHICH SHOULD BE OP_TYPE
"                                  IF THE OPERATION WILL BE DELIVERED
"                                  AT A GENERAL SEMAPHORE
        END;
  
TYPE  EXTERNAL_OPERATION =
        RECORD
          LINK:   COROUTINE_LINK; "IN A QUEUE OF OPERATIONS
          OPN:    OP_TYPE;        "TYPE OF OPERATION DELIVERED (USER DEF)
          SEM:    SEM_ID;         "ADDRESS OF SEMAPHORE AT WHICH THIS EX
                                  "TERNAL OPERATION SHALL BE DELIVERED
          EVT:    EVENT;          "IDENTIFICATION OF ASSOCIATED EVENT
          BUF:    MESSAGE_BUFFER; "AMOS MESSAGE BUFFER
        END;
  
"A POINTER TO A VARIABLE OF TYPE COMON_VAR MUST BE SUPPLIED AS THE FIRST
"PARAMETER FOLLOWING A COROUTINE MONITOR CALL. THUS THE CALLING SEQUENCE
"IS MON(COR, POINTER, SUBFUNCTION, VARIABLE_EXPRESSIONS);
  
TYPE  COMON_VAR =
        RECORD
          CURRENT_COROUTINE:                     COROUTINE_LINK;
          READY_Q, WAITING_MES_Q, WAITING_ANS_Q: COROUTINE_QUEUE;
          MES_BUF:                               MESSAGE_BUFFER;
          WAITING_INT_Q:                         COROUTINE_QUEUE;
        END;
  
"COROUTINE MONITOR PROCEDURES SUBFUNCTION CODES:
CONST
      CM_SIGNAL           =   0;
      CM_WAIT             =   1;
      SIGNAL_OP           =   2;
      WAIT_OP             =   3;
      SEM_SEND_SYS_MES    =   4;
      SEM_ALLOC_SYS_MES   =   5;
      CM_SEND_SYS_ANS     =   6;
      CM_INIT             =   7;
      CM_ADD              =   8;
      SEM_INIT            =   9;
      SEM_ALLOC_INT       =  10;
  



    "END OF COMONPARAMS :