koreth@panarthea.ebay.sun.com (Steven Grimm) (10/23/90)
Submitted-by: ersmith@uwovax.uwo.ca (Eric R. Smith) Posting-number: Volume 4, Issue 13 Archive-name: bgacc Here's the source code for the bgacc desk accessory. Bgacc allows you to run TOS programs in the background with GEM programs, and to disconnect from and reconnect to them at will. The source code is interesting because it illustrates how to set up a server process that a desk accessory can make GEMDOS requests from. This is necessary because D.A.'s run in the environment of the current GEM program, and hence file handles (for example) that were available when the D.A. first started may no longer be available. Bgacc requires MiNT to work. It may be possible to adapt it for use under RTX as well. The source code is for GNU C, with the MiNT library; users of a different compiler/library will have a bit of work to do (nothing major, just changing stuff like getpid() into the appropriate <mintbind.h> calls). -- Eric R. Smith email: Dept. of Mathematics ersmith@uwovax.uwo.ca University of Western Ontario ersmith@uwovax.bitnet London, Ont. Canada N6A 5B7 ph: (519) 661-3638 ======================== cut here =========================== table !"#$%&'()*+,-./0123456789:;<=>? @ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_ begin 644 bgaccsrc.arc M&@A"1T%#0RY# 4!4 $X5$9BTB0DG ,+U0T4 !"!0@Q9\*,&>-Bz MC X0<NJX 1$&!!PY;\[("=,&Q)TT=-" #D'1)(73R"6(9-&3IDQ=%:"H/.&y MHL4Y9>J0>=,BIIPV:=R$8>-B8$&C!I/0 3$FS,2A<VHJ7!JF9$4R9>:LH;@Px M:U0Y>5R8G!@R3<DV;["R\%@&!)HP=MK2!'&F9DB,=<Z@00HB:INV8]ZXH2F'w M3AK!)>>>*;,T9-LY:<X(96/5#1F3*-TZ)<,F*\3(:.B(O?)VZ9VV._F:]8BFv MS,33)UR",--RSM*F;#J367MZ]ALY6]^8,6-S#)HT;"X'M8D33IB-,6>B<1F&u MC%@JK=VPX'LG>YFX<J2CSKI5X1BOO_.,M HSC9TP,7>S[>OZ<L4I28X,>>*$t M2M_(D_$UEV-,'9?<3#7=$<8:;8$$0AUP7-=:@<A=UA19V8&PDWB8/;'69JRYs M-EM09K5&!E\X66;5?Y(-=9!"6PTX(6Z=R3%:6V_%A:"&-3E85DD*JB?&2V'4r M@1-?3G%UWAQ?J1>1&R4M1V!@@Y6!QU+"L0;?=V6$=]$;2P)9%5>&Z=B=B 0:q MV26*970&DTP@[2#=:G\YE5AI(W:FF66=S;$68PQ1))L*;KQ!AT%NO.35<\BIp MAQ,=?$'(89#SD6C84&PXRIAX'4F*@I038J4537"<4!*5,5V9@EA"J)=C4&<@o M29]ST+7U99B\ 98DJABQP:%K=K0DV%^#%4600,=Z) =(,4TDAGI%+#L&"%*(n M-050(5%DF45L* 0GAK;6(08;:4R[4QMA!&7L4<EBM]J7&G'DT9AW+$M'L[Z%m MIZ9'((ETA!-5@#"$MI<1V$0:_8% KA@;@256%9"Y$6NR#GZ4[55I#->E:[>]l MT08<R'5)\ N_*9P&P\^I]U%N(-0YT:L2[X@N@RAZ#-A;$F>UK@HO##30"$&-k MP89.;?%@&TMON("&#S\'/316(!@-X%!*,ZT T&X(37341R]<==-9/UWT&W.(j M$91U2X.M-=0\ #68V99]?356M"4*PA=?./'$%TT80800>"<0$$5VO)&&A8*9i M02Y,44ZT6!MF5"6:2""2FV@82A?4\]5.;\W#XY';)C?6:Q<=1E9PHVTUZ6)'h M;7D9F*>MP,]T!]56%%4D0<421621 QXP "##3' D!M)=1=UM$%#'%$E0\g M 04(,"2_/ A0,!%$$DY0[[,"@Q^Q$%."Q37881.94;)YZ"WK&<_?&_?<W;;!f M^$5K8<"Q!0TPY&!#%SL82.$.5Y#[P0X.8JA*6WH A0,\#(J2,$7ZC>&-1@Pe M?P%4 !L$<P;ZT6$-D-'# O\C0N&@8()TL!_^X)""#'XO*%19R X2(#B#/*<Md MO4D2^YB4GA]H[H6#.<@90'89!K8@!C.L(8628RJ+'(Z&\%. _,+CDS8(Y2];c MF($, *A$..!$)SRI8E!<=,6V1!&&('A#'>1@AB*"X(AK6</AV@@"(R)1B;31b M$\XXXQGU47%"<*"#>J(XD,$!90Z!>L^RPC"N/I;L26Z U1+)X)*)1'&*() Ca M&<JX!2,D@0E%<$(0FE $O@4!"P <""8UZ9R0=/*3H1QE*9MPRE3.#GP&460:z M&*DG/Y*O#6V02+G@@[Z#,.8T(JH($8) L)'0X50&N@P*<"('\*3 (A@)TP]Qy M.2\&2:H'#(1!RV ')0[1BF-]08,:#S0DB$@DDA*3DX*\"0<0^(!ZX[03AXQ3x M(12ILPX'>M*'MG6F])%H#B9BT63,F4VOL(9LMB+@:I8SSYS 2F;*URW#*,Gw M-%840BZ4XEO"HX*A/',,+G'-# =7'4HZ-$N)ND-?4%H&$1%2 3!,P!G8<+\Iv M9C"G._W"'7PZ$*#R] YB> ,>?CH8G?(4#4E=JA+GD ?;E*$C(7S?YHH:Q 3 u M 0U5O=]F.K-2@WRUJL/TU1U^ \(4&D8P>^+C-M&8@#V2E8:#"U9AZN"BM0*Gt M?F]]V5C-N%6<-O4C7S@#'EB 5X/@@7R_88E0HN-+ HEJ#:3R"%LE><.*1#$!s MB#U#'ABK1/4$)K)CI&S)+$N>S/I5CC'K[#9!FX;$WH&T@_L(&;*5)=:.Z@WUr M?"UGJ3/;T*(AB8-K#6BP1!S?8A:XF@7.<&$WU\,>M[%Q[>7Z9K,@')[M#3*]q MZ0AJ9S<C;(\)($C $:UG.Q \80F_^][@@"LBO=*!KVIE*V"+&<4'IA$.KOF"p M'5Z+@A0,9 \#28!'V?J%H&PA!C'@XN"2X 8XU*$Q-3G"%+!@D>=PA#$B>\Y&o M!KDY!0?QM5]0(QVV4(,;2-@@3[BPA9=B!HQT1,,<IM6'?2*H$<_6)6<P"X_1n MF(:0)L"/G^H!#.24AJB!H'CR9+"#T[""%72ACD]N88)1[.#B=:$',LA@70?;m M@[/.0:Q\*H.8[9!B.+AAP&M 9>U P(3V+4,O&&PBK6L@#X $5(*6 P=X%5&l M%)31P I( "8)]>$,(CC15O+)1!:]+,M8J<!BWN^T,/G:5J)A"SB 01?6DD?7k M?/C!-;"EHD=:D#F(&8TUS@I Z4!J,5R8)FXP<L8:V&GX?%K4=0SG-1]-PUZ[j M$M@,)(*@*6F' H-@!2 X01!.(&;0LM73#[XR T^@ VHG. '*9HRG46 "8W]Zi MBVN! 9]I:!LY-(4.<KZVK]<B BYP003K]G.B?3E-+)M;3BIP=5^J/.QO[QH%h M 0]VM%5P@FO692Z%6AD9FB(',HA9WPEH]QC@D(=ITEL%+E !OD,:\0I1G PZg M2'"LYS!K+)L!)SP-RHSC#1Q/DSID95R+"<Q@ZWL)9MT'7WG+>1!.$/"!#[/If M.:Y!$ (&QL#H2 ]!J3DI:D33T"7WE<-$S/O)3&.YTEC! \W78/-HV[OAKR8.e M"D(P!ZMG',OEEK<KMRCF-ATIT1FOLI@3'LY,T\'='#?TA_-<<U^O6^/P$?Q?d M;MZ90XL9ZVN<R'LSJ.]"(JL@\PG,7]RRL1 E"CS%B::&TI 5C'[O@0/!2G6^c MH$EG/WIP.&E0<R<T!P"/(6/EFB1;8M.@*KG$JLH1;$E8(I//'APA1+0G]0J.b M]X/+,3<H0/[ATGU-'BP?!,2&Q "D[\8CBEG["@()"CX5Q BJN]H8UW?E<<F7a M+F$D/"Z!PV\,$S/;U&$XIK\EZA7@_M]\(9 =AVC$YD=M\ 5#T27P%@/TM@5;z MM 5#L$Z;= )8 F!/<1,YL1,]T25N0S5=L 4@0 5O4!-"4!T@T 4C-Q#KMW_]y M)P=?X$=Q)H J]QL%>("%@0(*" (BP( =^( %8$TQE8V$5/8!"9>X0(=" )3x M\'=.L1@E>()]=GJ&<R+\)P?O]P5N V\PN&\R:( UDH +V( 'DS"K42@Q5"9Ew M$ )'. 6_ 19-R&<I&(4#L8)6>%4%=F Q^!-<B( V^(4=Z 2& @*NH49Z,4YHv M 19HZ(%$\!P388)N*%^79Q"/\B#U5!%>=(%A)$CYQU6 ]B@0\G^"Y'H)5GN5u M1@=F@ )5E',X& 4Z8&\?X08N4 (P, -D( )K(6A$5&#KID9LY$9&0%-;8HH:t MB(KF]053D 530 5%T 1\,(Q(D 1$T#Q. '1JIXMT9'WJAGW?!GE:!P)<QP07s MEV":1$<,9 3TY0; ^!.H* /2V$#A>!G6R'Q7QQB1QXWG]8V)IHV2MP24YXA\r M(6B$F![YHBT4P0:2MB4SE5)ND(DB-3_($E.(A)!UJ #$MD$Q$Q,?(V84V4%9q M)6:+ICYOL!8J@'5&]CIA .8%HII($)8AC=#83LMX -?8 57( 5!,#T&805?p MD 6FA 5&9I'UQ$!-@"E@,DTIV1;05@,QH(YIUT AX)/7A(\-M&@IL&0Q6!,,o MA'58A@)2B0(-Y),K@)0Q<$TF )^ )8@L&[=$3(-E%4MT +*=XTJX)%5AF5+n MID1" SM_]!@T95,E!I4BB8+\F"P$,A7X-1,:.$:^<E4 14QP9082T1Z"H9#[m M)T:3\06*N5%E$)'$AC=3$!F.F35IE!R0<0:Z%D2T(0>V81B;YW1E-2*HV1AIl ML'EW(8@B02 ;!%P_X$/&=V(8$1_P$088R4%,L19RX'?$-"T2,9J)8B&L9FMFk M\& R@ .C5A!BP)&LI@)M ))^4A#=8AMST)W'E6"+9F8@N4&D^3T)P&;'@15?j M, 8H<&<MI$1HL2]CL$9?D4;#L4T)9IY9*95,D!$)A!,GF6AFUI_7F0)0 %9Ei MHT #FF!3P!@/65/F:%(1ZAH?0I 52F='M&Y#0"5W, <H4&^Q. -E,'()H'V#h M4Y^H63)P=5-']ALHL ,[ (\)$![C&!2 A0+42 ;KIF!J%Q[W=(W9-P#U8B@Kg M\9M8AD0)!GX&TA8H( =M^9;P>#S3,HZ"-D4ZND9M1'W?1P!&,&-8>H-CP*5+f M.@!]0$/?AG$)8'=E4*9%ZILI1)=&YJ,-Q'T*=T1U-I9O>J1Q"D[7-Z1LAE#@e MU9[O.5A<*I]JA!-I9$DEIGU!5QOW$IME,*4$<)JI*:ER6J88IWULBHV)=CS?d M65-P8(/KIGV;.@ =*A@?&J)<,*)FT*HS, -%, 3J!%$V 2\;T1%S\21<( =<c MX 9.>*(#<'"VB!$M\A<HH$F'IG#=:'7'PS"PLP9&IGTEP4"LY&MRTA'6>CAEb M)"?=^4S@B677&A+32J1-&I58AIT$YZDG2@ '5Z7;=G;7]*W?614BP4"NMJ0$a M$'!SR4!C\'UF6J;\"FU])[#T&JX%>TO":J<,9 <N.*#">GQ#1$#OR*['(X</z M6ZH$ *T+ K"GVJD2FWQ^*J3Z2@80(@/).D?RL:%=:K)P@++M2*:?2@ N"[,Jy MNQ9AV;(GF[)DL*4@H)3ZZGR'@VU5MZ0%8!PL(0<\ZVD:"P56\A(H( /"$T?<x M.G@X2(M1>:#GIZ^6B0?BE[.:6J;J>3AE0*CPV9KSJ:C"01R?I7VIZ@:K*J*Qw M6@2P2J+!F@#K1T,'9P0XZE8HL*%3.@!5RHU7.E)_>X-;^ZG#JG;P"@*XHSN\v MDP50QQ1.IF[ZRK'26J9?>F%8NJ-K,:;+AWX)AG%O&[=U:P8FFJ+VR:+YZ:(/u M>E(0:9YK09YO!+:)%JCJ= =F:ZBABZC[TJ*%M7[CI3SM91Y?0'S.AF0R.FR t M: >#,8=S$ 9G@ )M, =GX)QFT$(@\(:'4U22\1N9F87K%Q "0GM= GI/TCASs M4A*?"9FNR(V0FBOTT1C'(3$E(2ES 2#@RQ0(F"X)F2S*"142(B*]$8F20HF"r M-%"7 1FFD2[TUT&517M3XRLA 1_<40:\1R;NL276H9 P-!!/,D'GVR6@>+M1q MV$ EY;XI +$>U5U$%%*#4TD?ED;VV29Q41*?)8HP5(K*:K4B@ 6KR 5'D(ROp M&(NS6(OB=CBXF&D7L<-+.V\X",3V)@1'$ 1#, 3!*L/(VL.+ETE#:W@P#(F;o M(BD!3!FS5<8H@!_Z@01,0 1KH7IDP'J'<W@3G,;YP3U4L!;ZZQ+:B\9J_+AYn M/!+?R\>95L=J3 7'" 5Z/,B3*B=^G!]40 7<L\B%0L@@@)(MP@9V? 21_ 15m M0,G@RV<)=G"<" >>&(#,>EYN-Q7%Q$!R"(!U1QFRUT -1*%[.1$,Y)"WC(L*l M!S!,P 2K[+Y8)H=_T0:QK*C?QLIPQ4"4.126&4R8:63*.Z/LFEL.')!E/!LVk MUF&5M!2?!5KG*F?=)2E$MWQEZAQJ K&@Y<($Q$ ?!0?5AG#*[ 8KW*/OG*EXj M]WR:7%%$M!9JO!_]D6^ >4OH$A2:.<I!E#]P$',6A]!+4;W7>W_/*9VO%D34i M!!XOC%W)ER47+3*WXE N&FE=,A%H9(!P ,]*-+(!N4--,ELBO8TE;84P9&3Fh M@64A8-+PC)X*S=!8MM,-%DE8*&9FAF9RQ4#Q8@9$W1GD%E1#-5(Z%U1H,$5/g M?511-=7W$U6Y2($"1F"BG&@'9QXT>G!X<X4*1[**2\PP!+':9[S(VZ-Y2Z=<f M.4TC+ <B.Q,/&\(=+0?45WU_6J:O_(FE.@!L37KJ_-;$4@=? &1"1L(^/7TXe M" (@,((5I!%JM"U0( <==+>M&,>"A@+-\SS1H\@@< 5&\ 57\ 12L 18D 57d M@ 0Z%UJ+56>A-5JR75MG<%ME6MN)A09=34/3'+C?\;Q_$;W3"]'8&]@'9]P2c MO07(QD!6_ 72$TKP.#@;XA>V@G6"Y$0PL49:I:_=X6]GTY[4$1,HD#W;XP2\b M8=NQ/=OI;5O;\:D%P"^[K;%'G5@8@51*A0(PP +[+;4L4#PL -L!;MNC%5JWa M95P:N]EMYAIRA@;MK5@/3ML&_N"\;60LU1[O$1T$DM=B45#.U$0[D2AZ;!K(z MX2LI<AE&0A$)!@+:]\_\X1_9#"*1>,\)5$$[4CV)-EO'<\]&G<1DH-8$H,]Ry M74U=TL](F!\ 304)'L[WW'3F#-_H+* )'MY" U$-3M\;@=0(56EK$%7ZS=\Lx MX-\ +N#L/>$(WJ4*CA6=0=[=$=AJFGX)UJG$EG&&C.1L[,8: CMQK$D]*M8Rw M'40C"]Q4Z']7B&DJD743H:1X]]:D+(^F#(#.YJ?-:K$#\-<!*"=6\K5N;7!Jv MAP*VC)!8ILL0F0+7Y*>^#,R43LQTJ+V9GH";CG?-S%.7^8L"K;!L)C1S &>%u MFF;KYM.M#K%0295/>$OD*Y@/V[Z!]2&870?$0@<I\!#U4Q@K(H1WH>?X"8AXt M\!(75DR0!"NJ 2Y],<,M]7LE47O>,L @0.W38>V"%B7/E$9W,!$TL 1]D4(5s M]-Z8)^,I).T40;]M,>X.M1S(7DP6(Q(B\!QGP.P<(P*+RB$4M ;X;A!IX )Er M(!9C$A*TR2$%/1&X*B]O81],@2DFPR X./""X>G+WNPI( ([\X$3LO%#&"\=q M@2I!40>>\;3U^<#IG2VD"(3X*$D$\M%,HAHN8!W7/B71U/)^J.%X<DX)O2W\p M=" (=4,./\/%G!YR\B/DTX,AKR9\\26-5+W\DBW6;3(HPX8TLIUDR$OJ@2ZYo M,92KHI"#PSJ>0S:I4S7;1/=L$Z!EX!R+(3?L93?XH05% +\XS],\#V:!@+[n M%^WW-:IB8'5"$ 134 10$ 1#3)V.YM HW+[U')RQA=G2_)A9B48(5\\I( 8Om M:<IDP/=BAO!8IOH^P/J-)V904$4HT+XH?P:DOH^W],$*T// D?N/J>R\S_D(l MY_D0FY&"<IX2F6"37_F7G_DJ4)V<_\+H*099&?V6C_F%'T%.F^WN"06E- 3<k M/_U%D&Y,0&]8"P/ +&9-L.5!$6=BX,])0/CK)ONF3 =\;Z ,F0*.#U()IO_'j MV_\,I)4'VKYBIO_'VW@]+?H)5M?A#[7%0P/JOQ;U3SWOGV!0B?W##AH(0D=!i M0T,N1$]# $X% !.%;68\#J@" #$*.!!DR1 >(,"#$A!FSYHR<-W7<h MD $!YZ'#,&T.CAE39LZ<-W+R@# #$D23-$ZH-%!P14X:.G3*N$DHLHC+,2"Dg MN QI<U+-"!0E+GI8HY/.FB U+GSQL68,"E6KJ2")LT<BA;E8 1AE>M,I&4Hf MUA'#)@U.,F_:A$GC9B>1-R#N_.1*)RZ:,'7S0(R;A@V;G4&NAEDY!J*<F'/Re ML*#(IDR8.6'9CF%3ATQ8L)!!H!US52[2@WXU6Z7C4DP=.FG>N)FS.(Q$$&?2d MV"FSLN(;.$-!C)%3ALQ+$'3@@CUX&@W(G4[>Q 1^MVX8-D@AG@&:Y,1LX!UCc M3OSM>N+=V6Y.T%E),N)$UR)-GV$-0F\=$&I%S@X9MTQH,VPGVB9;IDWGN>[)b M05$8AYE5!QL$K@09'77 L0,(=63F&5!/G99:6U(I(((89RPTA@A<"0;"'&FTa M 4=C()0%$XH>=O01?4CA!9ML'1TTDV.)Q16&2&^8 8(<$;G!UAE3/3$%5F]<z MY)]7S(6E$$,.0?1:CP>!<$0138SHXH4[36%?&6.@YL89S'75HD<@Y5';;5<Uy M6"5^*$+66)@EB?$&'@]&>%E55]F)!W!PR0EF7</9IF1[>]WAVG@*!/=C1#M1x MU=4<QATXD0IN**="0F$A=&66AFK5QH/N@<9;&&2(]%VG5F*)I)(K >F&D&,Nw M5E*I3%D:7EUB=,H?H+"50:AP:(35ADSO*21'"*UF*5=H9:UAGYH*]%K8L2 8v M)T=I;(A4F!MFZ+F=CV#Q=I"Y=##UJJA7J;7&D,WJ]AP;<RA8XH%TN%8&1'-Tu MZT*&3[C!$:)U6!>6H&'VUN2Z6^&ZZ&(OG1!:KX^V!0(5</'&H!Q?O;'2'<V5t M,5^\H3:<Z%!A13CD8A6Y"$(53A#Q1*3%7FPDPQD]RX9NJHE9!VV-9AP1D\,]s MV=!#YI&ZUU,S:5P'Q\#^)H9(873(EI9SBDFF"$(L=+249*P$A1QG@&C&0QD-r M9]D<:VC$$9KT'>M&'3LEX6.I9>#QV]EI+6QTE.;5EA5&BY4;ELZ<5BF&2V7Xq M"$<8>MHXT7!P'OPEG0+ZR5=H8<"!6X(*5+W63!\Q)V.I3&,]J(W*%2M@R6D+p MC:$"*R&11$I3Z+!2<LO%F-=>JP(;_$DI,1D@<8Z2Q(9E<K3VFJSQJC7WO(JMo MY*B[>W;%E!QMHY"&"V7L]&FVCP$[1[Z'00@'A!+E1CP5BV5:EQUFE='"?'- n M]:\"=IN$$A4AVI5&4',=D,F$8"-"7UT^M1CW2&QG9Q"6C4 S%%[=24<<&])*m M2D4EI'3%# MQSFN&<Z87B01Q\O/*^>9%%SF987\K.<.!MI(ZBD&/;QGAD(<6l M8QI"N:X,)Q#1?AJ3L[E$$";P,AJ@5O*I!\D001GAC5K@<)7AP$QF()"62!SUk MD6-Y<$P@L ]D=I*%I;F&?6B!S0S;$,25:-%.!)K(%.$ KPGQQ'9&H,(*D% $j M)D!A,:4;CJ*V")>\_:8K4\"C'OGHQY&\P2]ON$-O5C*UE\5L9A?+6'9 $I8Gi M8B2(\.D<'<?4F6+-I%2\:8%,8B*@EQ0N#[@!P1">D!(I/($)*V "#!4PA;1Th M4BMPJ IG0 "2-*Q28;"["EH$&,(Z4"^4THI7$(IPI*?XA3W=L5ZQ,E/#L-P0g M;0GIT$9V,K8W\&=)! I+8SR2HC1(JUO >L-&GL:5NT$D5D,KU.!BQS,3-08Uf MJJF;/=^C*#<,"SCTR1MN7"(WK2TFC2]1D"]1@RT#GA(B)S!7"M$"+_1\D4PEe B@@-(\F50YTV$8BU['&\FYS$%\,9.RJDG N\"1C=]:G\: #!7d c end