INTERPRXESS
exM-UNICATICN
AND
DISPA'ICHING
EXAMPLE
Get-print_message:
Procedure:
/**********************************************************************************/
/*
Attempt
to
Receive a message
fran
the
Print
Request
Port,
Figure
F-2
*/
/**********************************************************************************/
W~ndow_4.frf-prcs_idx
=
process_l;
Wl.rrlow_
4.
frf_operand
(0) =
requestJ'Ort_obj_sel:
/*
Use
process
obj
ect
1.
/*
port
*/
*/
*/
Window_4.frf_operator
= Ol4H:
/*
Receive
function
code.
Call
Await_function_oampletion;
If
oqinnow
4.frf
function
state
and
0020H)
<>
0 Then
Do - - -
/******************************************************************************/
/*
Receive
instruction
blocked,
00
outstaming
print
requests
*/
/*
Busy
wait
until
a
GOP
process
sends
a
print
request
to
the
print
*/
/*
request
port.
See
Figure
F-3
for
the
SEND
unblocking
the
blocked
RECEIVE
*/
/*
Such
an
event
will
trigger
an
interrupt
in
the
AP
*/
/*
(which
we
have
disabled)
am
set
windCM
4.disp
state
true
*/
/*
indicating
the
nature
of
the
interrupt.-
-
*/
/*
See
Figure
F-4
for
details
on
the
wakeup
IPC
and
subsequent
interrupt.
*/
/******************************************************************************/
/******************************************************************************/
/*
At
this
point
WindcM
4.selected
index
contalns
the
index
of
the
*/
/*
process
object
which-was
dispatched.
Since
we
are
using
only
process
*/
/*
object
one
selected
index
will
equal
one.
Window
4.selected
state
*/
/*
contains
software
defined
info~tion
concerning~he
action~taken,
*/
/*
if
any,
by
software
in
cx::mpleting
this
instruction.
* /
/******************************************************************************/
Call
Dispatch:
/* Hang
IP
processor
carrier
on
dispatching
port.
*/
Em:
Em;
Em
Get-print_message:
Close_windcM:
F-"1