DataMuseum.dk

Presents historical artifacts from the history of:

MIKADOS

This is an automatic "excavation" of a thematic subset of
artifacts from Datamuseum.dk's BitArchive.

See our Wiki for more about MIKADOS

Excavated with: AutoArchaeologist - Free & Open Source Software.


top - download

⟦e8a92f484⟧

    Length: 3552 (0xde0)
    Notes: Mikados TextFile, Mikados_K
    Names: »WAITNG«

Derivation

└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS
    └─ ⟦this⟧ »WAITNG« 

Text

;*************************************************************
;*         PASCAL STANDARD ASSEMBLER PACKAGE.                *
;*                                                           *
;* (C) 1980 DANSK DATA ELEKTRONIK APS.                       *
;*************************************************************
;
;*************************************************************
;* FUNCTION NAME:       WAITNG                               *
;*************************************************************
;
; CT 07-MAY-1980
;
;=============================================================
; DESCRIPTION:
; THIS FUNCTIONS TESTS IF THERE ARE ANY MESSAGES WAITING ON
; THE MAIN SEMAPHORE OF THE CALLING PROCESS.
; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL
; SECTION 4.3 FOR DETAILS.
;
;-------------------------------------------------------------
; STACK CONTENTS ON ENTRY:     I               I
;                              I---------------I
;                              I  RETURN ADR.  I
;                              I---------------I
;                              I DUMMY ELEMENT I
;                              I---------------I
;                              I DUMMY ELEMENT I
;                              I---------------I
;                              I DUMMY ELEMENT I
;                              I---------------I
;                              I DUMMY ELEMENT I
;                              I---------------I
;                              I               I
;-------------------------------------------------------------
; STACK CONTENTS ON EXIT:      I               I
;                              I---------------I
;                              I TRUE / FALSE  I
;                              I---------------I
;                              I               I
;=============================================================
 
       SKIP
       SYMB
 
WAITNG::
 
;
;CLEAN UP ON STACK
;
       POP     B       ;BC:=RETURN ADDRESS
       POP     D       ;REMOVE
       POP     D       ;  DUMMY
       POP     D       ;    ELEMENT
       POP     D       ;      FROM STACK
 
;
;GET VALUE FIELD OF MAIN SEMAPHORE
;
       LHLD    RUNN    ;HL->PCB OF CALLING PROCESS
       LXI     D,KOSEM
       DAD     D       ;HL->ADDRESS OF MAIN SEMAPHORE
       MOV     E,M     ;DE->
       INX     H       ;    MAIN
       MOV     D,M     ;       SEMAPHORE
       LDAX    D       ;A:=VALUE FIELD OF SEMAPHORE
       CPI     1       ;ANY MESSAGE WAITING
       JZ      OK      ;YES
 
;
;NO MESSAGE WAITING, RETURN VALUE:=FALSE
;
       LXI     D,0     ;DE:=FALSE
       PUSH    D       ;STACK RETURN VALUE
       PUSH    B       ;RESTORE RETURN ADDRESS
       RET
 
;
;MESSAGE WAITING, RETURN VALUE:=TRUE
;
OK:    LXI     D,1     ;DE:=TRUE
       PUSH    D       ;STACK RETURN VALUE
       PUSH    B       ;RESTORE RETURN ADDRESS
       RET
 
       END