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

⟦b119b14ce⟧ TextFile

    Length: 2144 (0x860)
    Types: TextFile
    Names: »COMON1.S«

Derivation

└─⟦1dc3ed39a⟧ Bits:30005066 8" CR80 Floppy CR80FD_0003 ( Id. O.K Vol. FLOPPY VOL: NSS )
    └─⟦02b6ff5ea⟧ 
        └─ ⟦this⟧ »TDXDR.851216.D!COMON1.S« 

TextFile

;=======================================================================
;
;       COROUTINE MONITOR,  PART 1 OF 4
;
;       DATA DEFINITIONS PREAMBLE
;
;=======================================================================

MESSAGE       <:CALL: COMON1, 790813:>

;=======================================================================
;
; COROUTINE SYSTEM.
;
; THIS SYSTEM IS A MULTIPROGRAMMING SYSTEM FOR RUNNING A NUMBER OF
; PARALLEL ACTIVITIES WITHIN A SINGLE PROCESS.
;
; THE BASIC ENTITIES ARE:
;             COROUTINES  (PSEUDO PROCESSES)
;             SEMAPHORES  (SYNCHRONIZING AND COMMUNICATION PRIMITIVES)
;             OPERATIONS  (BUFFERS / MESSAGES)
;
; THE BASIC FUNCTIONS ARE:
;             SIGNAL  (SEMAPHORE)
;             WAIT  (SEMAPHORE)
;             SIGNALCH  (CHAINED SEMAPHORES)
;             WAITCH  (CHAINED SEMAPHORE)
;             WAITANSWER  (MESSAGEREF)
;             WAITMESSAGE
;             WAIT-TIMER-OR-INTERRUPT
;
;=======================================================================


USE BASE

;-----------------------------------------------------------------------
;
; BASIC DESCRIPTORS:
;


; CHAIN ELEMENTS AND QUEUE HEADS

AX=0
SUCC:=        AX, AX=AX+1           ;   SUCCESSOR (FORWARD CHAIN)
PRED:=        AX, AX=AX+1           ;   PREDECESSOR (BACKWARD CHAIN)
CHAINSIZE:=   AX                    ;   SIZE OF CHAIN HEAD

; SEMAPHORE

AX=0
SEMFST:=      AX, AX=AX+1           ;   FIRST WAITING COROUTINE
SEMLST:=      AX, AX=AX+1           ;   LAST WAITING COROUTINE
SEMVAL:=      AX, AX=AX+1           ;   SEMAPHORE VALUE
SEMSIZE:=     AX                    ;   SIZE OF SEMAPHORE

; COROUTINE DESCRIPTION

AX=CHAINSIZE                        ;   ROOM FOR CHAIN FIELDS
SV0:=         AX, AX=AX+1           ;   REGISTER SAVE AREA
SV1:=         AX, AX=AX+1           ;
SV2:=         AX, AX=AX+1           ;
SV3:=         AX, AX=AX+1           ;
SV4:=         AX, AX=AX+1           ;
SV5:=         AX, AX=AX+1           ;
SV6:=         AX, AX=AX+1           ;
CORUSIZE:=    AX                    ;   SIZE OF COROUTINE DESCRIPTOR

CCHAIN=0                            ;   CHAIN FOR INITIALIZATION