Contributor: GUY MCLOUGHLIN           

{
GUY MCLOUGHLIN

 Program to load data into 16 Byte area of RAM known as
 the Dos "Inter-Process Communication Area".
}

Program Load_Dos_IPCA;

Type
  arby16 = Array[1..16] of Byte;

{ "Absolute" Array Variable used to access the Dos IPCA. }
Var
  IPCA  : arby16 Absolute $0000:$04F0;
  Index : Byte;

begin
{ Write data to the Dos IPCA. }
  For Index := 1 to 16 do
    IPCA[Index] := (100 + Index)
end.

{ Program to read data from 16 Byte area of RAM known  }
{ as the Dos "Inter-Process Communication Area". }
Program Read_Dos_IPCA;

Type
  arby16 = Array[1..16] of Byte;

{ "Absolute" Array Variable used to access the Dos IPCA. }
Var
  IPCA  : arby16 Absolute $0000:$04F0;
  Index : Byte;

begin
  Writeln;
  { Display the current data found in the Dos IPCA. }
  For Index := 1 to 16 do
    Write(IPCA[Index] : 4);
  Writeln
end.

{
  NOTE:
  if you plan on using this in any of your serious applications, I would
  recommend using the last 2 Bytes of the IPCA as a CRC-16 error-check. As
  you have no guarantee that another Program won't use the IPCA too.
}