|
DataMuseum.dkPresents historical artifacts from the history of: MIKADOS |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about MIKADOS Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - download
Length: 3552 (0xde0) Notes: Mikados TextFile, Mikados_K Names: »WAITNG«
└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS └─ ⟦this⟧ »WAITNG«
;************************************************************* ;* 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