home *** CD-ROM | disk | FTP | other *** search
- MODULE P1;
-
-
- FROM PortSig IMPORT PortSIGNAL,PortFLAG,
- SignalInit,SignalDone,
- SendSignalTo,WaitForSignalAndClear;
- IMPORT IO;
-
-
- CONST
- PortADR = 763; (* COM2-Base 2F8H + 3 *)
- EOL = CHR( 13) + CHR( 10);
-
- VAR
- sig : PortSIGNAL;
- count1,
- count2 : CARDINAL;
-
- BEGIN
- count1 := 0;
- sig := SignalInit( PortADR, f_P1);
-
- REPEAT
- INC( count1);
-
- IO.WrStr("P1: Waiting for Signal... ");
- WaitForSignalAndClear( sig);
- IO.WrStr("Signal received.");
- count2 := 0;
- REPEAT
- INC( count2);
- SendSignalTo( sig, f_P2);
- IO.WrStr(" Signal sent to P2."+EOL);
-
- IO.WrStr("P1: Waiting for Signal... ");
- WaitForSignalAndClear( sig);
- IO.WrStr("Signal received.");
- UNTIL count2 = 5;
-
- IF count1 < 2 THEN
- SendSignalTo( sig, f_P2);
- IO.WrStr(" Signal sent to P2."+EOL);
- ELSE
- IO.WrStr(" Program ends, no more Signals sent !"+EOL);
- END;
- UNTIL count1 = 2;
-
- SignalDone( sig);
- END P1.