|
|
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«
└─⟦38ff28550⟧ Bits:30004682 Pascal Standard Assembler til MIKADOS
└─⟦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 eb 22 b6 ┆ " ┆
0xba0…bc0 69 eb 21 b8 69 06 08 cd 73 00 c3 1a 67 21 c1 42 11 b8 69 0e 08 06 28 7e fe 20 ca 13 67 fe 3a c2 ┆i ! i s g! B i (ü g : ┆
0xbc0…be0 f0 66 23 05 5e 23 05 56 eb 22 c0 69 eb c3 ff 66 fe 2c ca 11 67 12 23 13 05 0d c2 d7 66 2b 04 23 ┆ f# ^# V " i f , g # f+ #┆
0xbe0…c00 05 7e fe 20 ca 13 67 fe 3a ca e2 66 fe 2c c2 ff 66 23 05 eb 21 c1 42 cd 73 00 21 00 00 7c b5 2b ┆ ü g : f , f# ! B s ! ø +┆
0xc00…c20 c2 31 67 21 fe 03 11 00 fc 19 7e 2f 77 be c2 26 67 f9 21 fe ff 39 22 f9 42 3e 00 cd d4 67 21 56 ┆ 1g! ü/w &g ! 9" B> g!V┆
0xc20…c40 41 cd cb 67 21 a6 41 36 00 21 a8 41 cd cb 67 21 35 42 cd cb 67 2a f9 42 2b 46 2b 4e 7d 91 6f 7c ┆A g! A6 ! A g!5B g* B+F+Nå oø┆
0xc40…c60 98 67 22 f7 42 2b 46 2b 4e 7d 91 6f 7c 98 67 22 4e 41 2a f7 42 01 f8 ff 09 4e 23 46 97 91 6f 3e ┆ g" B+F+Nå oø g"NA* B N#F o>┆
0xc60…c80 00 98 67 39 f9 e5 2a aa 69 5e 23 56 21 06 00 19 36 00 e3 11 32 04 d5 11 c1 42 d5 11 35 42 d5 11 ┆ g9 * i^#V! 6 2 B 5B ┆
0xc80…ca0 a8 41 d5 11 56 41 d5 e5 21 fc ff 39 e5 21 d6 00 e5 e5 21 fc ff 39 e5 e5 22 f5 42 22 f3 42 01 0a ┆ A VA ! 9 ! ! 9 " B" B ┆
0xca0…cc0 00 09 22 4a 41 22 4c 41 c3 fb 42 36 00 23 36 01 23 36 20 c9 e1 22 50 41 f5 2a 48 41 eb 21 a8 fc ┆ "JA"LA B6 #6 #6 "PA *HA ! ┆
0xcc0…ce0 39 7d 93 7c 9a 1e 4b da 2e 43 21 03 00 e5 2a c0 69 7d fe 50 ca fa 67 21 20 20 e5 21 00 00 e5 e5 ┆9å ø K .C! * iå P g! ! ┆
0xce0…d00 3e 50 f5 21 b8 69 e5 2a 48 41 e5 cd 74 6a a7 c4 76 69 2a 48 41 11 50 00 19 f1 87 87 5f 16 00 19 ┆>P ! i *HA tj vi*HA P _ ┆
0xd00…d20 46 23 4e 23 56 23 5e d5 2a 48 41 19 eb 21 28 fc 39 7d 93 7c 9a d2 44 68 2a 48 41 e5 cd f1 00 1e ┆F#N#V#^ *HA !( 9å ø Dh*HA ┆
0xd20…d40 4b c3 2e 43 60 69 23 29 29 eb 2a 48 41 01 0a 00 09 7e a7 c2 a2 68 13 21 08 00 cd 4f 00 29 29 29 ┆K .C`i#)) *HA ü h ! O )))┆
0xd40…d60 29 29 e5 7b b2 ca 94 68 2a 48 41 01 2a 00 09 4e 23 46 23 7e 2a 48 41 eb cd fd 00 2a 48 41 11 13 ┆)) æ h*HA * N#F#ü*HA *HA ┆
0xd60…d80 00 19 cd 1e 01 23 36 01 3e 01 2a 48 41 cd 00 01 a7 c4 76 69 2a 48 41 11 1e 00 19 d1 73 23 72 c3 ┆ #6 > *HA vi*HA s#r ┆
0xd80…da0 0d 69 2a 48 41 01 0b 00 09 7e 23 66 6f 29 29 29 2b cd 4f 00 e5 7a b3 ca e6 68 d5 2a 48 41 eb cd ┆ i*HA ü#fo)))+ O z h *HA ┆
0xda0…dc0 e8 00 3e 01 2a 48 41 cd 00 01 a7 c4 76 69 2a 48 41 11 3d 00 19 eb 21 d0 ff 19 06 03 cd 73 00 d1 ┆ > *HA vi*HA = ! s ┆
0xdc0…de0 1b 7a b3 c2 ba 68 d1 7a b3 ca 16 69 2a 48 41 01 22 00 09 36 20 d5 21 c4 ff 39 e5 2a 48 41 e5 63 ┆ z h z i*HA " 6 ! 9 *HA c┆