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

⟦1e338ef52⟧ TextFile

    Length: 3552 (0xde0)
    Types: TextFile
    Notes: Mikados_K
    Names: »WAITNG.K«

Derivation

└─⟦33b8385fd⟧ Bits:30009009 PSAP1
    └─⟦this⟧ »WAITNG.K« 

Mikados K File

;*************************************************************
;*         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

TextFile

>;*************************************************************>>;*         PASCAL STANDARD ASSEMBLER PACKAGE.                *>>;*                                                           *>>;* (C) 1980 DANSK DATA ELEKTRONIK APS.                       *>>;*************************************************************>▶01◀;▶01◀>;*************************************************************>>;* FUNCTION NAME:       WAITNG                               *>>;*************************************************************>▶01◀;▶01◀▶10◀; CT 07-MAY-1980▶10◀▶01◀;▶01◀>;=============================================================>▶0e◀; DESCRIPTION:▶0e◀;; 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>▶1a◀; SECTION 4.3 FOR DETAILS.▶1a◀▶01◀;▶01◀>;------------------------------------------------------------->0; STACK CONTENTS ON ENTRY:     I               I00;                              I---------------I00;                              I  RETURN ADR.  I00;                              I---------------I00;                              I DUMMY ELEMENT I00;                              I---------------I00;                              I DUMMY ELEMENT I00;                              I---------------I00;                              I DUMMY ELEMENT I00;                              I---------------I00;                              I DUMMY ELEMENT I00;                              I---------------I00;                              I               I0>;------------------------------------------------------------->0; STACK CONTENTS ON EXIT:      I               I00;                              I---------------I00;                              I TRUE / FALSE  I00;                              I---------------I00;                              I               I0>;=============================================================>▶01◀ ▶01◀▶0b◀       SKIP▶0b◀▶0b◀       SYMB▶0b◀▶01◀ ▶01◀▶08◀WAITNG::▶08◀▶01◀ ▶01◀▶01◀;▶01◀▶12◀;CLEAN UP ON STACK▶12◀▶01◀;▶01◀*       POP     B       ;BC:=RETURN ADDRESS*▶1e◀       POP     D       ;REMOVE▶1e◀▶1f◀       POP     D       ;  DUMMY▶1f◀#       POP     D       ;    ELEMENT#(       POP     D       ;      FROM STACK(▶01◀ ▶01◀▶01◀;▶01◀";GET VALUE FIELD OF MAIN SEMAPHORE"▶01◀;▶01◀2       LHLD    RUNN    ;HL->PCB OF CALLING PROCESS2▶16◀       LXI     D,KOSEM▶16◀5       DAD     D       ;HL->ADDRESS OF MAIN SEMAPHORE5▶1c◀       MOV     E,M     ;DE->▶1c◀        INX     H       ;    MAIN (       MOV     D,M     ;       SEMAPHORE(3       LDAX    D       ;A:=VALUE FIELD OF SEMAPHORE3+       CPI     1       ;ANY MESSAGE WAITING+▶1b◀       JZ      OK      ;YES▶1b◀▶01◀ ▶01◀▶01◀;▶01◀(;NO MESSAGE WAITING, RETURN VALUE:=FALSE(▶01◀;▶01◀!       LXI     D,0     ;DE:=FALSE!*       PUSH    D       ;STACK RETURN VALUE*.       PUSH    B       ;RESTORE RETURN ADDRESS.
       RET
▶01◀ ▶01◀▶01◀;▶01◀$;MESSAGE WAITING, RETURN VALUE:=TRUE$▶01◀;▶01◀ OK:    LXI     D,1     ;DE:=TRUE *       PUSH    D       ;STACK RETURN VALUE*.       PUSH    B       ;RESTORE RETURN ADDRESS.
       RET
▶01◀ ▶01◀
       END
▶00◀▶00◀ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc

Full view