[comp.sys.ibm.pc] Intra Applications Communication Area - Help?

holly@tut.cis.ohio-state.edu (Joe Hollingsworth) (01/30/89)

Some time ago (within the last few months), someone posted a message
about the intra applications communications area to either this
newswgroup, or to comp.binaries.ibm.pc.  The message contained some
assembly code to read/write the ICA.  I've lost that message and
would like to have it now.  Does anybody have it laying around?
Could you send it to me?
On the otherhand, can someone tell me how to get at the ICA from MSC?

Thanks,
Joe

Joe Hollingsworth  Computer and Information Science @ OSU
holly@cis.ohio-state.edu  or ...!{att,pyramid,killer}!cis.ohio-state.edu!holly

ajw@donk.UUCP (ajw) (01/31/89)

In article <32985@tut.cis.ohio-state.edu>, holly@tut.cis.ohio-state.edu (Joe Hollingsworth) writes:
> 
> On the otherhand, can someone tell me how to get at the ICA from MSC?
> 
> Thanks,
> Joe
> 
> Joe Hollingsworth  Computer and Information Science @ OSU
> holly@cis.ohio-state.edu  or ...!{att,pyramid,killer}!cis.ohio-state.edu!holly

	#include <dos.h>
	char far *ICAptr;

	FP_SEG(ICAptr) = 0;
	FP_OFF(ICAptr) = 0x4F0;

	*ICAptr = <a byte>;
	*(ICAptr + 1) = <another byte>...

Note that ICAptr is a far pointer, so you can't just
call strcpy(), or whatever, unless you're prepared
to make your entire program large model.

-- Alan Waldock, just offering individual opinions while happening to work at 
Intel Corp, M/S HF2-37, 5200 NE Elam Young Pkwy, Hillsboro, Oregon 97124-6497
ajw@aus.hf.intel.com   ...uunet!littlei!intelhf!aus!ajw  "Live malloc or die"

simon@ms.uky.edu (Simon Gales) (01/31/89)

In article <242@donk.UUCP> ajw@donk.UUCP (ajw) writes:
>In article <32985@tut.cis.ohio-state.edu>, holly@tut.cis.ohio-state.edu (Joe Hollingsworth) writes:
>> On the otherhand, can someone tell me how to get at the ICA from MSC?
>
>	#include <dos.h>
>	char far *ICAptr;
>
>	FP_SEG(ICAptr) = 0;
>	FP_OFF(ICAptr) = 0x4F0;
>

How large is this area?  Does DOS ever touch it?  Any warnings before I
go and use it?  Is this place set up by the BIOS or by DOS?

-- 
/------------------------------------------------------------------------\
  Simon Gales@University of Ky
  {rutgers, uunet}!ukma!simon  -  simon@ms.uky.edu  -  simon@UKMA.BITNET

dmt@mtunb.ATT.COM (Dave Tutelman) (01/31/89)

Answers from Norton's book, p.58:

In article <10997@s.ms.uky.edu> simon@ms.uky.edu (Simon Gales) writes:
>
>How large is this area?  
	16 bytes.  (not much.  Enough for a few pointers perhaps.)

>Does DOS ever touch it?  
	No, but some applications do.  Norton cites IBM Async Comm,
	Volkswriter, and TimeMark.

>Any warnings before I go and use it?  
	Note that the name is INTRA-application, not INTER-application.
	It's intended to be used by multiple executables in THE SAME
	application.  Don't count on long-term stability of the data;
	when you run another app, it may change the data.  In fact, Norton
	recommends including a signature and checksum to assure its
	integrity.  I see some limitations to this strategy:
	   -	There's very little room for it.
	   -	If you restrict yourself to ONLY a single running of
		one application, you're only vulnerable to apps that
		use the data area on an interrupt (say, a TSR).  I
		know of no such apps, BUT if they existed....
	   -	...you'd have to disable interrupts to maintain the
		checksum/read-data pair as an incorruptible atomic
		unit.

>Is this place set up by the BIOS or by DOS?
	It's at the end of the BIOS data area.


+---------------------------------------------------------------+
|    Dave Tutelman						|
|    Physical - AT&T Bell Labs  -  Lincroft, NJ			|
|    Logical -  ...att!mtunb!dmt				|
|    Audible -  (201) 576 2442					|
+---------------------------------------------------------------+

ajw@donk.UUCP (ajw) (02/01/89)

In article <10997@s.ms.uky.edu>, simon@ms.uky.edu (Simon Gales) writes:
[asking about the Intra-Application Communications Area]
 
> How large is this area?  Does DOS ever touch it?  Any warnings before I
> go and use it?  Is this place set up by the BIOS or by DOS?
> 
> -- 
> /------------------------------------------------------------------------\
>   Simon Gales@University of Ky
>   {rutgers, uunet}!ukma!simon  -  simon@ms.uky.edu  -  simon@UKMA.BITNET

The ICA is sixteen bytes long (4F0-4FF).  DOS doesn't touch it.

In "Programmers Guide to the PC", Norton lists "some versions
of IBM's Asynchronous Communications, Lifetree's Volkswriter,
and [his] TimeMark" as programs known to use the area.
I dare say that there are some TSR's out there that fool around
with it too; evaluate in your own environment, and all that.

As to whether it's a DOS or BIOS area - well, it's in the 400-block
which is pretty much a BIOS control information repository;
however, if you use an operating system other than DOS, there's
no guarantee that it will leave this area free unless it says it does...

-- Alan Waldock, just offering individual opinions while happening to work at 
Intel Corp, M/S HF2-37, 5200 NE Elam Young Pkwy, Hillsboro, Oregon 97124-6497
ajw@aus.hf.intel.com   ...uunet!littlei!intelhf!aus!ajw  "Live malloc or die"