PROGRAM HAHA;TYPE PCB=^INTEGER;      AR=ARRAY (0..0) OF INTEGER; %     MESSAGE=ARRAY (1..3) OF INTEGER;%     ALLOPTR=^AR;,     PARMARRAY=PACKED ARRAY (1..40) OF CHAR;,VAR PARM:^PARMARRAY;    ISF:AR;
    I:PCB;
    TRANS:ALLOPTR;    STAT,L[NGDE:INTEGER;    POST:MESSAGE;(*$R-*)APROCEDURE SENDM(RECIEVER:PCB;VAR CONTENTS:MESSAGE;LENGTH:INTEGER;A$                VAR STATUS:INTEGER);$	EXTERNAL;	IPROCEDURE RECEIV(VAR SENDER:PCB;VAR CONTENTS:MESSAGE;VAR LENGTH:INTEGER);I	EXTERNAL;	%PROCEDURE ALLOCA(VAR ADDRESS:ALLOPTR;%$                     LENGTH:INTEGER;$%                 VAR STATUS:INTEGER);%	EXTERNAL;	!PROCEDURE DEALLO(ADDRESS:ALLOPTR;!%                 VAR STATUS:INTEGER);%	EXTERNAL;	PROCEDURE WASTE;BEGIN  WRITELN('SEND 1, MODTAG 2');  READLN;READ(STAT);  CASE STAT OF1:BEGIN  L[NGDE:=6; REPEAT  READLN;READ(POST(3));  ALLOCA(TRANS,POST(3),STAT);!  WRITELN('ALLOCA STAT ',STAT:5);! UNTIL STAT=0;H  FOR STAT:=0 TO POST(3) DIV 2 -1 DO TRANS^(STAT):=POST(3) DIV 2 - STAT;H  POST(2):=ISF(2);  SENDM(I,POST,L[NGDE,STAT);#  WRITELN('UP SENDT STAT ',STAT:8);#  END;2:BEGIN  RECEIV(I,POST,L[NGDE);?  WRITELN('UP MODTAGET ',POST(1):5,POST(2):5,POST(3):5,STAT:5);?  ISF(2):=POST(2);=  FOR STAT:=0 TO POST(3) DIV 2 -1 DO WRITELN(TRANS^(STAT):5);=  DEALLO(TRANS,STAT);   WRITELN('DEALLO STAT ',STAT:5)   END  END;END;BEGIN  ISF(1):=0;
  STAT:=1;
  FOR L[NGDE:=1 TO 5 DO  BEGIN0    ISF(1):=ISF(1)+STAT*(ORD(PARM^(L[NGDE))-48);0"    IF L[NGDE<5 THEN STAT:=STAT*10"  END;  REPEAT
    WASTE;
  UNTIL POST(1)=499;END.  CKED ARRAY (1..40) OF CHAR;,VAR PARM:^PARMARRAY;    ISF:AR;
    I:PCB;
   ccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccccc 