|
|
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)
Types: TextFile
Notes: Mikados_K
Names: »WAITNG.K«
└─⟦33b8385fd⟧ Bits:30009009 PSAP1
└─⟦this⟧ »WAITNG.K«
;*************************************************************
;* 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
0x000…040 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x040…080 Line {l1=0x3e, l2=»;* PASCAL STANDARD ASSEMBLER PACKAGE. *«, l3=0x3e}
0x080…0c0 Line {l1=0x3e, l2=»;* *«, l3=0x3e}
0x0c0…100 Line {l1=0x3e, l2=»;* (C) 1980 DANSK DATA ELEKTRONIK APS. *«, l3=0x3e}
0x100…140 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x140…143 Line {l1=0x01, l2=»;«, l3=0x01}
0x143…183 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x183…1c3 Line {l1=0x3e, l2=»;* FUNCTION NAME: WAITNG *«, l3=0x3e}
0x1c3…203 Line {l1=0x3e, l2=»;*************************************************************«, l3=0x3e}
0x203…206 Line {l1=0x01, l2=»;«, l3=0x01}
0x206…218 Line {l1=0x10, l2=»; CT 07-MAY-1980«, l3=0x10}
0x218…21b Line {l1=0x01, l2=»;«, l3=0x01}
0x21b…25b Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x25b…26b Line {l1=0x0e, l2=»; DESCRIPTION:«, l3=0x0e}
0x26b…2a8 Line {l1=0x3b, l2=»; THIS FUNCTIONS TESTS IF THERE ARE ANY MESSAGES WAITING ON«, l3=0x3b}
0x2a8…2d6 Line {l1=0x2c, l2=»; THE MAIN SEMAPHORE OF THE CALLING PROCESS.«, l3=0x2c}
0x2d6…316 Line {l1=0x3e, l2=»; PLEASE REFER TO THE PASCAL STANDARD ASSEMBLER PACKAGE MANUAL«, l3=0x3e}
0x316…332 Line {l1=0x1a, l2=»; SECTION 4.3 FOR DETAILS.«, l3=0x1a}
0x332…335 Line {l1=0x01, l2=»;«, l3=0x01}
0x335…375 Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x375…3a7 Line {l1=0x30, l2=»; STACK CONTENTS ON ENTRY: I I«, l3=0x30}
0x3a7…3d9 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x3d9…40b Line {l1=0x30, l2=»; I RETURN ADR. I«, l3=0x30}
0x40b…43d Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x43d…46f Line {l1=0x30, l2=»; I DUMMY ELEMENT I«, l3=0x30}
0x46f…4a1 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x4a1…4d3 Line {l1=0x30, l2=»; I DUMMY ELEMENT I«, l3=0x30}
0x4d3…505 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x505…537 Line {l1=0x30, l2=»; I DUMMY ELEMENT I«, l3=0x30}
0x537…569 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x569…59b Line {l1=0x30, l2=»; I DUMMY ELEMENT I«, l3=0x30}
0x59b…5cd Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x5cd…5ff Line {l1=0x30, l2=»; I I«, l3=0x30}
0x5ff…63f Line {l1=0x3e, l2=»;-------------------------------------------------------------«, l3=0x3e}
0x63f…671 Line {l1=0x30, l2=»; STACK CONTENTS ON EXIT: I I«, l3=0x30}
0x671…6a3 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x6a3…6d5 Line {l1=0x30, l2=»; I TRUE / FALSE I«, l3=0x30}
0x6d5…707 Line {l1=0x30, l2=»; I---------------I«, l3=0x30}
0x707…739 Line {l1=0x30, l2=»; I I«, l3=0x30}
0x739…779 Line {l1=0x3e, l2=»;=============================================================«, l3=0x3e}
0x779…77c Line {l1=0x01, l2=» «, l3=0x01}
0x77c…789 Line {l1=0x0b, l2=» SKIP«, l3=0x0b}
0x789…796 Line {l1=0x0b, l2=» SYMB«, l3=0x0b}
0x796…799 Line {l1=0x01, l2=» «, l3=0x01}
0x799…7a3 Line {l1=0x08, l2=»WAITNG::«, l3=0x08}
0x7a3…7a6 Line {l1=0x01, l2=» «, l3=0x01}
0x7a6…7a9 Line {l1=0x01, l2=»;«, l3=0x01}
0x7a9…7bd Line {l1=0x12, l2=»;CLEAN UP ON STACK«, l3=0x12}
0x7bd…7c0 Line {l1=0x01, l2=»;«, l3=0x01}
0x7c0…7ec Line {l1=0x2a, l2=» POP B ;BC:=RETURN ADDRESS«, l3=0x2a}
0x7ec…80c Line {l1=0x1e, l2=» POP D ;REMOVE«, l3=0x1e}
0x80c…82d Line {l1=0x1f, l2=» POP D ; DUMMY«, l3=0x1f}
0x82d…852 Line {l1=0x23, l2=» POP D ; ELEMENT«, l3=0x23}
0x852…87c Line {l1=0x28, l2=» POP D ; FROM STACK«, l3=0x28}
0x87c…87f Line {l1=0x01, l2=» «, l3=0x01}
0x87f…882 Line {l1=0x01, l2=»;«, l3=0x01}
0x882…8a6 Line {l1=0x22, l2=»;GET VALUE FIELD OF MAIN SEMAPHORE«, l3=0x22}
0x8a6…8a9 Line {l1=0x01, l2=»;«, l3=0x01}
0x8a9…8dd Line {l1=0x32, l2=» LHLD RUNN ;HL->PCB OF CALLING PROCESS«, l3=0x32}
0x8dd…8f5 Line {l1=0x16, l2=» LXI D,KOSEM«, l3=0x16}
0x8f5…92c Line {l1=0x35, l2=» DAD D ;HL->ADDRESS OF MAIN SEMAPHORE«, l3=0x35}
0x92c…94a Line {l1=0x1c, l2=» MOV E,M ;DE->«, l3=0x1c}
0x94a…96c Line {l1=0x20, l2=» INX H ; MAIN«, l3=0x20}
0x96c…996 Line {l1=0x28, l2=» MOV D,M ; SEMAPHORE«, l3=0x28}
0x996…9cb Line {l1=0x33, l2=» LDAX D ;A:=VALUE FIELD OF SEMAPHORE«, l3=0x33}
0x9cb…9f8 Line {l1=0x2b, l2=» CPI 1 ;ANY MESSAGE WAITING«, l3=0x2b}
0x9f8…a15 Line {l1=0x1b, l2=» JZ OK ;YES«, l3=0x1b}
0xa15…a18 Line {l1=0x01, l2=» «, l3=0x01}
0xa18…a1b Line {l1=0x01, l2=»;«, l3=0x01}
0xa1b…a45 Line {l1=0x28, l2=»;NO MESSAGE WAITING, RETURN VALUE:=FALSE«, l3=0x28}
0xa45…a48 Line {l1=0x01, l2=»;«, l3=0x01}
0xa48…a6b Line {l1=0x21, l2=» LXI D,0 ;DE:=FALSE«, l3=0x21}
0xa6b…a97 Line {l1=0x2a, l2=» PUSH D ;STACK RETURN VALUE«, l3=0x2a}
0xa97…ac7 Line {l1=0x2e, l2=» PUSH B ;RESTORE RETURN ADDRESS«, l3=0x2e}
0xac7…ad3 Line {l1=0x0a, l2=» RET«, l3=0x0a}
0xad3…ad6 Line {l1=0x01, l2=» «, l3=0x01}
0xad6…ad9 Line {l1=0x01, l2=»;«, l3=0x01}
0xad9…aff Line {l1=0x24, l2=»;MESSAGE WAITING, RETURN VALUE:=TRUE«, l3=0x24}
0xaff…b02 Line {l1=0x01, l2=»;«, l3=0x01}
0xb02…b24 Line {l1=0x20, l2=»OK: LXI D,1 ;DE:=TRUE«, l3=0x20}
0xb24…b50 Line {l1=0x2a, l2=» PUSH D ;STACK RETURN VALUE«, l3=0x2a}
0xb50…b80 Line {l1=0x2e, l2=» PUSH B ;RESTORE RETURN ADDRESS«, l3=0x2e}
0xb80…b8c Line {l1=0x0a, l2=» RET«, l3=0x0a}
0xb8c…b8f Line {l1=0x01, l2=» «, l3=0x01}
0xb8f…b9b Line {l1=0x0a, l2=» END«, l3=0x0a}
0xb9b…ba0 00 00 63 63 63 ┆ ccc┆
0xba0…bc0 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 63 ┆cccccccccccccccccccccccccccccccc┆
[…0x11…]
>;*************************************************************>>;* 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