|
|
DataMuseum.dkPresents historical artifacts from the history of: CR80 Hard and Floppy Disks |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about CR80 Hard and Floppy Disks Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - download
Length: 3514 (0xdba)
Types: TextFile
Names: »COMONPARAMS.S«
└─⟦8c095a7f3⟧ Bits:30005798 CR80 Disc Pack ( Vol ILS systemdisk XAMOS TOS 10:01 hard boot #43c 19-7-87/JFJ )
└─⟦this⟧ »PREFIXES.D!XAMOS.D!SWELL.D!COMONPARAMS.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⟧ »PREFIXES.D!XAMOS.D!SWELL.D!COMONPARAMS.S«
"-----------------------------------------------------------------------
"
"
" 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 %