[comp.binaries.ibm.pc] priac, reads/writes inter-application comm. area v1.1

W8SDZ@SIMTEL20.ARMY.MIL (Keith Petersen) (10/24/88)

[ The program PRIAC.ASM, that reads the inter-applications communi-
cations area, was earlier posted to this newsgroup.  Here is an
enhanced version.  -- R.D. ]

PRIAC1.ARC

Inter-Applications Communications area expanded demo.  v1.1 has .COM
format, demonstrates how to read AND write data to the IAC for later
program use.  Original and tweaked .ASM source and executables.

David Kirschbaum
Toad Hall
kirsch@braggvax.ARPA

[
Uudecode this article or feed to the "combine" script.

checksum     size (bytes)  file
   33015         9160      this uuencoded posting
   53332         6626      priac11.arc

By the way, it's easy to read or write the IAC from a C program if
you have FAR pointers.  Here's an example that works with Turbo C
1.0.  The MK_FP macro is defined in <dos.h> and combines a segment
value and an offset into a FAR pointer.

--cut here--cut here--
#include <stdio.h>
#include <dos.h>
#define  HOW_MANY    16                /* how many bytes in IAC */

main()
{
   int i;
   char far *iac = MK_FP (0x40, 0xf0);    /* pointer to IAC */

   /* print contents of IAC */
   printf ("Was: ");
   for (i = 0;  i < HOW_MANY;  i++)
      printf ("%02xh ", iac[i]);
   printf ("\n");

   /* change contents of IAC */
   for (i = 0;  i < HOW_MANY;  i++)
      iac[i] = HOW_MANY - i;

   /* print changed contents of IAC */
   printf ("Now: ");
   for (i = 0;  i < HOW_MANY;  i++)
      printf ("%02xh ", iac[i]);
   printf ("\n");
}
--cut here--cut here--


-- R.D.
]

BEGIN--cut here--cut here
begin 644 priac11.arc
M&@A04DE!0RY!4TT`7EY>^P8``"41>WSMWE,+```,8]ZT:5/&#9T$?!HH4)B`
M"IHT<T#`D?/FC)PP;4#(*1.&3,0P;LAH+`/GC1PZ$>F@*0-B3!TY&PVV?&.P
M($H0;\R`4,DR24TY+1@&@0.'39HQ8>BDH0EBB,`V==P<3;K43<0@&\.`0)$D
MR)`4+A0R=-C3*PB((&+8`"$F#YTR$<64.9/&C50W9T`DU4N&C!P0,&#0@*$C
ML!$8:%R`".(FCT2*%C&V!,GPCIPT;\^Z,6.R#56F=-[L7`FBZQ`0G/^"?,/S
M[\2*%S.&'ME1,10V'.>48>B&=1D=(*+BGI.2M)DT<N;0>0Q;,AGD9<;089,G
M05T[;];`'<U2=\"0S".W8<$0\V2[K)F_E<Z]M%DS%#/*K9LW#)NW&T6VU>M&
M,WX[!=$77FQA*=`0:::=QQ9+=>A&!@NHF:29<B"-40:$L\$1!G'\\>477!'!
M)Q!.;K#TFG@,S<83""7B04>!#%UQ&1UO]9<:"$T$,443(-3@`@QL.89$&'(\
MUY\0%+46HH10#"$%7&^\9*%B9.%T&5UNV,=0&$1QE)]F[0UU&1MIY8`##F<1
M5P=+.7&''`B>G1&&'G65H5@1!D$W4TT&1913BJ2)F0:9,9B))D1SK+G55TV]
M`4<>5Z*Q7*%G!LE0`I@F0<01C0X4U51*T33'"U"4@9\8)D5Y!AH0^C0&C`8.
M661=("#)VDK)I:D7:AN5P4:%)D(6&T&J@;<>&E(A1:9EF)4AAV(R-INB:`]E
MM)<,.`#IA&)#8`1'@XL!Z`*$510%TH--!0$""#G$<`,.-MSIQAALO*';KKJQ
M8490!G;T(7%EH$MA&W`$#$)!`-9;<(2JC514'K`B))8"3!B10!EQU)$`#$&@
MD<`.(!A5HAEE&#P&&D0JY.3%&6],A,<@(P53&F&<P=)&=+S4W\DI*S`%%40\
M4045+&L<P\<@4!@2D2)%2<>WRY%1AAU'[;:0`D5@D031GHU!40)V:&E@&V_8
MD4`02$!(PQ`>(YV$$U2`($,,:"3M+-46@K`V&L"5@8=Y(F9T8FR78@JR?7.(
MAK/.'X$0-AMK*K:1N1;ZR89(;\<M`V(%)D"VV4$P`>'CAH^4LQS]/:YH6V^5
M9U`"<Z/!4$%DM#%Q`BXT\00113"1P(ZA,\&0"S][M<3M+A`1!!5!*+02'AN.
M@2D98B1P`@PQR#`##378\&X.00@Q!.]&G#"Q4M.50<+TU3L)8<674F^]4WS>
MU*9/^+4P5%&@5M4I5,GZ3'^PPA'S&2@!\CO!5DR3`AV<`$+N`T'%("B%]QE!
M(??!#&XPA3&-D:`%Z,,-"2;&.O6QSWH@,.`8W&`'.JP/@=53(`C08$`VE)"#
M+?M@"4=X-=P-87=%F!B%3J(#SY7M;%B`$!#(D)0P,.1S"2#"%"`4!"R4KBZ8
MH9E1],`2)M)!*[K)RT;HHAQG,00W88AB$G>B01,>KB]_D:(.B(`%B;RA+C>9
MC=.@EC0Z7`8O3SSB$-:8P?0A;8]U6(YR_IB7$LXD*G0(I-F$L,:?!6UH2&-6
M9F:C-"86"2>)Y*/4\&8U(X(N;7I#3.DR)S>ZV4T.I$PEWT"@29;,YCBX><$H
MJ^:Z@\1.DDB$4&`&`[-:)>$)4]!,:CP3JOZ$D2`&`681IK@8*R(-BTJQ3QJX
M"()I`G,*21#F88HYQ.7<SRO`'"2$8J!*I.$&+RK!B4X21*L2SF%B;(!#$:$8
M.@A-4P=;`&<7D&:SY6C%D8%SSQ`8\JTY>&R0#&V0QRA9NCF$`4`A>X.C'BF3
M<X%@EWE#64APPQ!EL2$!WP'024J74F<MQYX[$8V.AI"$)##440F@*-(VHAR3
ML$2D9""I@="H1@CM$&G^BN,4YEC'DN`Q):)!I"+]2)]T$O*&(%ND@!P9$$@"
M$VUJ0TPO84>WF\(A`8,L'4]#LY&,;K2KT3107:0'SM(Y52:S:=%+W<(26IGF
MC!H]:SY92A.EN$%1]7+45U$)`QFT#62LC-TK8]G86=9R5SS["R?I0`:G`9,(
MHFN*%,;ZR[$=$:R`<>QG0PL_N;ZNM`G(VM8V5KK>R,$S9,)/&^HB0,?99TT3
M:RD1S\B1*(:S)2QT(=+D2(0DV/&I,>VC26K&$B)QA+AII"2$GA>]Y2Z5DL_M
M4W1G6M.=7,0JOVIF'QFY6"KZ#FG:(<E,'B7/(+7.M&8;0FAI4%%3L2@-8A`#
M;C@:20,Y5`YG"ZU^2_<Y6VY4*@$><&?OX`:&X"&].;4FR/P(DCFDER40%K"#
M%S,%FCHWL\#<0G.[X%ZD];2MY#TQRN3@.NDUUZYWQ*MH]-J2&2=-0Q;Z:FC1
MIE:XL)4E)=Q22!(LSL?":4-KB"D<_AOA4EXX*1DN'8?1FY120E'%26#Q8GR7
MU2/WN&<)P-GM:)>`<DY,`QH(4%))04,N15A%`%Y>7M,````E$8%\:C:S`@``
M#$VTS`(@`$```"``!`'P[Q\#```(V#@"$:*'B@</0OH'`)(X7`8`.,+6R(($
M`+EZ`-AUD!:09B%P`1$)S!<\E!``F%!$(,H4="(`;"GY!"4!`"YA9C$B#ATM
M`;(:P'PJ2\%4)K``P&SD`PJ`1AX**@(7BX`T=-<0%3BBB!B)!VD+#(,10\8,
M&C5LW,"1(XB0(42*&&F@8,@;-W3*()X#XHT9$$D0EY'3(@@<.&S2C`E#)\UA
M$(;;M*GC1C-GSVY`!)%3)@P(%$F"#$FA@S!A$+C1`!H(4%))04,N35-'`%Y>
M7LL#```[$3U/7RU$!0``#$;DO&FC`\28,W.`U&E#IH:+A61<E"%3!P2*(6CD
MI)D#8DH>-G;"I'&3HH$")V7NS#DCL`Z<.07'#(3C0LS(,!K+S'&11DP;%W#&
MF)Q21XR:,F/H%(2C,<P8%B#(;(3#)DP>CB/IE)'3(@P<JFG&A*&3YHT;@P/;
MU'$3=FQ9-QQQE@ECDLC8,@5ES.A8!@X('#A`Z-4!(P9A&2".-*$R=&$;G'F6
M-AWC`N?3J%.K7@61=6O7KVS:DC6+MHU:MF)'PP4AEZZ"(%\%VIE8D`P:G6F`
MB)E3I\68G56J#(%BTB04*4F"#`$A9RZ9N&[(,._[1@X=CG1N&ZPCI[D;.FB_
ME_G.\8T9$-G+@$@BGBMLL*G?FAR2=JWHMQR#-`]C,?F0%"Z```(5VI6!!U)U
MT!&&&&RH%T9TK,TQ1QEM,)@'"'.\P=T8#C9GTDACL%$'&1.Y4)P"!*KG'V<<
MQ6`#"&+DH15'8I1QQDALN7$&:^"%0089<H```PPTP$`8#$;`@$:`0;AQ(5-O
ML!1&&P8]",(=&FGUH1MF5/>8:NB]@9YV*W89Y(-OI!<DE%)228>8^T4D8(KK
M*5?E636:5,>$9$!E)F=P*>@&AU"]"0(<84C(VED^`JD31V8(1*59ZK$IQY1A
MCJF>&P;28:(")A&X$8L@4%KJ>=DU5ZE`;<X!58TC[0C'&W-H)9U,<"%(UFQL
M7&AH=AN9Q*E*+&D(1Z%HC'5EHE=FJ=59>\8*0A-!3-$$"`[!`..%2.`DU5E"
M"*0FI-5I:A)L&K$!0@PY`,8B;^J9!P(4RTFADX9R<`C"8V>$H<=(94!U40H@
MT`=''AJ=@09X[+H;XWI$'#%??:BY9=8<+T!1AE9RB%&=A@I#Q1YE)W8KQ[<@
MA)OF;7)@%1<(D9911E6#KAKEI:9MM:AT6HV!1L7J8ID&QP%>D649)AF*1AI4
M*BL##MHZ$>`04\*Q)PA!S.8"5%50]6"?!0<A8`XQW("##0$6,2@;M#J(X<QF
MM&!2H\U).!%4M58]$0CC\?H&'.K]R5]S5.7QJ4EVQ.!"#%#)<`-??KD[X!L^
M@M`M&^HF.\8:)K50L%FS6;>WH2X,\<2U9G[9G^5!4%$$""X4@<7KEDY);I#I
M30A":'30T>"8L>Y4D@*>4Y&&PL_N7=WQ-ZDK$XF=@T`$A6*B\<8=F388QFR`
MIF[Q62-I6N=R?U;%\70^[F32$PDWCR&^^GX-N^RO-V@&>%DYY>F)=MF1AG1+
M2$/+?":&,"PD5)23SN788)(U"'`./M/-I<YPAI#@P05!D`(4@F`2#0`:"%!2
M24%#,2Y!4TT`7E[2#```.Q'63OKXVQ8```QCWK1I4\8-G01\&BA0F(`*FC1S
M0,"1\^:,G#!M0,@I$X9,Q#!NR&@L`^>-'#H1Z:`I`V),'3D;#;9\8[`@2A!O
MS(!0R3))33DM&`:!`X=-FC%AZ*2A"6*(P#9UW!Q-NM1-Q"`;PX!`D23(D!0N
M%#)TV-,K"(@@8M@`(28/G3(1Q90YD\:-5#=G0"352X:,'!`P8-"`H2.P$1AH
M7(`(XB:/1(H6,;8$R?".G#1OS[HQ8[(-5:9TWNQ<":+K$!"<_X)\P_/OQ(H7
M,X8>V5$Q%#8<YY1AZ(9U&1T@HN*>DY*TF31RYM!Y#%LR&>1EQM!ADR=!73MO
MUL`=S5)WP)#,([=AP1#S9+NLF;^5SKVT63,4,\JMFS<,F[<;1;;5ZT8S?CL%
MT1=>;&$IT!!IIIW'%DMUZ$8&"ZB9I)ER((U1!H2SP1$&<?SQY1=<$<$G$$YN
ML/2:>`S-QA,()>)!1X$,77$9'6_UEQH(300Q11,@U.`"#&PYAD08<CS7GQ`4
MM1:BA%`,(05<;[QDH6)DX70976[8QU`81'&4GV;M#749&VGE@`,.9Q%7!TLY
M<8<<")Z=$88>=96A6!$&03=3309%E%.*I(F9!IDQF(DF1'.LN=573;T!1QY7
MHK%<H6<&R5`"F"9!Q!&-#A355$K1-,<+4)2!GQ@F17D&&A#Z-`:,!@Y99%T@
M(,G:2LFEJ1=J&Y7!1H4F0A8;0:J!MQX:4B%%IF68E2&'8C(VFZ)H#V6TEPPX
M`.F$8D-@!$>#BP'H`H15%`72@TT%`0((.<1P`PXVW.G&&&R\H=NNNK%A1E`&
M=O0A<66@2V$;<`0,0D$`UEMPA*J-5%0>L-H1@PLQ0"C##2!,01((E5+Q1D<@
M#,D&F53<P=$:"K70J!L`GF3P;"X,\02/J7E&1\J+]26@5D;1B!L(]2K+5AUF
MF.$L"'.(9K*";;P!8'LVZ9F@&$0;_5=="JT;M'W4%:BR4RP[NUS4&[EW&I$<
M@4!&4EK5-=M*>$!(!1)%.*$V1.8ZAIG7(%0QAX!,/$'$%$+P)](45#Q!.,-(
M9RG'<7@%^5:(\9F-X4K]*5<U?5GO)%J4?U%=M+-\,^%EB2(E39!*.Z-:QW(K
M8L%$$%1,2(<<=4A7U59HO'&'YSBU?!D9+/'4>1EX%"R=P8,#I]L9!!F40@CK
M"N'8BG>$D0>$PH$(0AY1GE`V&6_LW)_3S@Y_8>?@UZ$V32<LAT005A0!_!S*
MIV&&8T)@L94(>/C5<L2`!Q&`95T`%*`(=*6&!BT'<G;J7/]T%94QH`$D9P@8
MA)+VO2B]SPWQ"QG][#>;C=0+9.;AB`4G,S*^!4%GD>,99J93/+C0`3A(HT/5
M=D40XH0A@V!:48+0II4;&4\!ZW)"$;!0.Z40!`1+PUU_6!>1$\6&>B`X0AH`
M%!%PJ<Y4#XE<"3FB'[BD@7B=@\$)YE`@(H3!#F<$P1*0,P<+BB$,=6B#0CP&
M,I&Q02%KH*,%@2"&BYSA#'8(`QY<$`0I0"$(8C%00A:B`"88(0%EB$,=$@"#
M(*`!4SL`6IV,9C`+$DDA3L*D)CE)A$\F()1(@4D:?LB2C>A0#OTQI1P4@C@B
M/*$*5%#E)F,`RAR>BT@BB1(=OK4<XL'10@HQ#1/J)LP$Q``&2"CFU*IV-+2H
M17+;J1=>,"4QBD5RB4D(IF?&0)$$)/*/"MA!`IIFAP0$`0D0HL$07!G*)#BA
M=C*(`1J0YJQGLD2?:``.\LPCHHQ8$2,*D2>F7JD7-G#0EB^QRJ[>N2;%;,1<
M%O(3&T3B3X`BID#RI*<]F0"A=Q83H[@$`4=9TI:W,$2EBF2!/@.#!!"L0*;V
MH:@9-H0?O7P$BB8APT3+&8/R&"0!`44#0PI"!CU2<@C/2\`4BG"$)M2M=E"H
M@A"8D(33/%(*ZCJ!4XAW`E`N=6)--9".IE`%KR9@"%/0`5;G`J'F[?4,$"I"
M7O_ZRK>:DY(),,D9K,G3B1:6G'"-)(5.DH#7C"$!)2+21"4*V</.TVD)(`(6
M()03,^@&=IC!#0DHZJ^_-$^T$BE?GX"G3&:Z,[(&<FPHE7.9<78VKI^MYQ!&
M"P(F4"&=TRQF;5^7P][FI:8L"4A4;F8@E?8/0KW\93`IRJS,S(9"(4$F3E['
M3+65P:`W!>T]\XF8S1)4#@8%P6`2"L49%4\TQ\'-"YQYE-T8R&U0%6@D@VM/
MX@9FOL440A(4IYF:?29S<XD>=0D\.!8HTKT^P<PLC:('EMQH#HZ#W&*9*I0I
MT-6NS7/"K>A33"4X$'AR81%'#G+;PZ:WGE-(`H1@<!A^@J!Y?P-!#XQY$ISH
MQ#0,418;$H"$A>[/O4W&@_[T9A!J(4]T9H#0<_#WJ^J0F)([8&K&!,*2$OWN
M.'TQ"EYT$%$CT'$Y]"P>:<A6EM-@N9M5'N]?MD:F68X!RX:32)>AB)F![BVB
M9.E/G)%&9J"]06AKHT/;\BQ$L]RY6"(AWUF6\\,PU`56"5"R5D/\!=,4LPGH
M,YO:V.8?T?!Y:*/;)6*_-8=/#LZ]<WBCG/<RF)XFZ'D2OG$"<HI785=8D24^
M<1%".UB-`5:P>LTJ157\NSN8))"1H]6K+SV'`:OT;RPH[6G/$H8_5XVB49YR
M>[;-S;]0<2=I($B2N<9D)U>GF.G>WX_S&N1SW8W+VMLTJ$L"AP0(UKV"%;*J
M@6T388-;W*:"-PU)X%,94!353P.=*'W&$K=19"?(F[!*G\,"'F,3X7E]CL(!
M)!T)S6:;L1;V&.(FS;IE#`E22(LV+=UNH!7D#"H!D[6+U&T#?32X<[B#>S'.
MII>`W$6M;@^2$8O3N!6[NJ`5K(7Q@'*%:SP@Q",H]&RB%SEA#;&BG@*I37WQ
M5*_(S*J^-%O*O0;-")L,<8/X<OR,98IJ_-(RI[E7INF$8KHA=&[9SFRZZU\"
M7S=C5/`E,(O)^/M).KQ%&N\RF<M?:&*]GNN5;WN+J1OX]E?T]*W\;/);AOV>
MM[]./4A4!XS.8,+`O;V1@V?(A)\VU.7!0&7#FG@I:<I2%0Z15#N1S%!JKU26
M(I?-K!S<:EC@TMK64Q!V3@$CF)-35,$,CK16B&CL*6Q=V#G><8^+">0T*'RR
MRVG3U`D\W%8-WN93P+G.0XD;O`1=_F9!*T/G$7>7!J15-./&=^<62M"F<D/&
M;C%G="2!=$I73(MF'F=768[";`QA2[RT=LYW?)&4;'6U;"FV8KZU`UJQ$;X7
M$LY2?9&T`WA25'=0:/NF`T%6$FXC(+,A=^U#:+4&`G"C/VD0,"X`@PJ0;]5A
M69CE)9OE6%]&8"1G9*85<7#3=PR8<NXW9'`#:U;S6\)V77HGA,BS(9<52LTS
M03HX6[.A(T.0!$D`AI\7:H(W!(1G>(@W.<`SA$]68\!%+TKE7G61*&63&ME3
M)'+(!G#`9@92+QXA!KJ511&G%=#%*R/2?G(8:O0&-BU#8Q3U'9T(3BDA&FX(
MAV08-Y>":SI4-&#2A9>6B?6R@8KH7M^A%&Z@*+&(?'.84YT$`T20311%!<[2
M@DG!$EW(6P)2@T'G)"]@23*%6PF@'/9R!PQQ?<SF7E.@:_N&+]&!A`1&;%/P
MA-ZH4L?&==27B7-5@LP6;7,ACG(8>"SP'*KH7`<#'BM`3)DX<GF'@%9X90MX
MBLW%@Z*Q97F3B8D"B3,7C^9(42H#?PJG2Z/X;P49A=9%7-DU>=QE7Y9W3)FW
M7,WT>IY'8*&'8*174*<W7\"A>O@U**W7>8T'8+-G(`1WC2]E0R;!$K>6B1Z8
MA/:&22%1<.[HAY'$B6+S?(_6A)IUCD(YAWC'`C/G7A,!%P4577C@:(XR$]/U
M@A2I7OBT&$S@7MJQ,0'Q*$8&3L)FA_F$:Q$G%6(@!C\C70;!$+4V?4'`4DWQ
ME1;H=E?)EF[)$N1S!V[`$`&4%'>55UM`0%W@7K<#$G,@0&66!FWY,V^#/"UQ
M07\1A=(X!Y"HBC<9,I2I2_FH7G9Y3^ZU$=)8-M"U)2&Q4NKG2A3E&7-0=Z$!
M!RP"F7TIF`)4F#IPF'B0F,6TF%;AF-Z8F9M)>J%1-J`9FO644R<@A&U53"<P
M4"<`(1O1,@YBD*&1=)%XFATW1:2!C+ZUE?64D'A7FC:)G`L9A3M)E,;WD[H%
MA;BE$'!CA@E`!I!X`C`0`S(P`S10`S;P+CD0!$(P!$10!$9P`I&D%!-7GY#H
M)!!B20QAGPF@5C11(S<A?S_1`D-1%*"R.T[A*<D"?%C!$0AJ(!+:G%SA%2F@
M`]/9%%+PH$8`(0Y:7$:@$,:%7,N629M$`BV@H*H520K(BCJ:`*L%2HL&<U83
M=;A2!DOI6*]T(Y8%(@*"`M\$71$A3F>0`DMYA><VI$&J$S]5<X6W`W+7@W4P
M*")QC+?#8E^&2EE%547GDTH%?PJA`1H(4%))04,Q+D-/30!>7N0````[$=U.
MJ$3N````#+IB!<C5`P`D`+L"`*`%I%D(7$``.,+F"QX`=$8NP@#@@1&RB;[<
M!4"'`\`!7[,"_+*8"P&`>:4\.@*&3@(`72)S04"HD*%#7`"8./0`42)%EBY_
MB83Y8=@O?P%VA1JXDQ\K=!L`B-.'JX&"51T_8EOT3!?4%<H2+FP8HNFB:(K`
MQ2(@#9V+:ZH4$2/QX*XJ7&A`K%JD;!B,&#)FT*AAXP:.'$&$#"%2Q(C7(6_<
MT"FC>0Z(-V9`)-%<1DZ+('#@L$DS)@R=-)E!8&[3IHX;UJYANP$11$Z9,"!0
+)`DR)(4.KUX!&@!<
`
end
END--cut here--cut here