[net.micro.atari16] rtxdemo as promised

turner@imagen.UUCP (D'arc Angel) (03/04/86)

~~~~~~~~~~~~~~~~~~~~~\ lineater, \~~~~~~~~~~~~~~~~~~~~~~~~~~~

here it is rtxdemo.uue (uudecode it to rtxdemo.tos) and a c program
to demonstrate how to use mult-tasking, the c program will not
compile and is meant as an example only. i wish i had the package
program for shar so i could bundle this properly, perhaps some kind
soul could point me in the right direction.

==========================================================================
begin 664 rtxdemo.tos
M8!H  #D.   *#   IW                   "I/*FT !"/-  !#&B M  S0
MK0 4T*T '-"\   % "( THW"O/____XN02\ +PU"9S\\ $I.0=_\    #"!Y
M  !#&B)H !C3Z  <(\D  $,>1>@ @! : H    #_/P O"IW.3KD  "-\3OD 
M  "Z(B\ !# \ ,A.0DYU(&\ !" (0>@! +_(9 1P_TYU(\   $,>0H!.=4Y6
M   P+P ((B\ "DY"O_D  $,>9!0P/  )0?D  #IJ(@A.0C \  !.0DY>3G4@
M;P $,B\ "# O  I(P%. ;P80P5'(__Q"@$YU(&\ !# O  A*$&8$0H!.=; 8
M9O0@"%. 3G5.5O^B3KD   ?H0E="ITZY   *[EB/T'S_G#U _Z@P+O^H1$ ^
M@$*G3KD   KN6(\NO   .MY.N0  %$HNO   .QE.N0  %$HNO   .T%.N0  
M%$HNO   .WQ.N0  %$HNO   .[A.N0  %$HNO   .^Q.N0  %$HNO   /"E.
MN0  %$HNO   /&).N0  %$HNO   /(%.N0  %$HNO   /)A.N0  %$HNO   
M/*Q.N0  %$HNO   /+XO#@:7____L&$  P!8CQ N_[!(@&   6XNO   /,$O
M#@:7____L&$  N)8CRZ\   \SB\\   \S2\.!I?___^P0F<_/ !+3KD  !.B
MW_P    ,8  !1BZ\   \SR\\  #&RF$  J98CT*70F<O/    VX_/  4/SP 
M9$ZY   +9M_\    "F   1)"ET)G+SP   1&/SP %#\\ &1.N0  "V;?_   
M  I@  #P+KP  #S6+SP  ,;*80 "4%B/0I="9R\\   $4#\\ !0_/ !D3KD 
M  MFW_P    *8   O"Z\   \W4ZY   42DZY   %V&   *8NO   //4O#@:7
M____L&$  @18CRZ.!I?___^P80 !%&   ()@  !^+KP  #S\3KD  !1*+KP 
M #T=3KD  !1*+KP  #T\3KD  !1*+KP  #UB3KD  !1*+KP  #U\3KD  !1*
M+KP  #V73KD  !1*+KP  #VK3KD  !1*8"8NO   /;5.N0  %$I@&& 62, @
M?   .HYR";"85\G__"!H "1.T PN 'C_L&8 _EA.N0  "9HNO   /=E.N0  
M%$I.7DYU3E;_]BZ\   ]Y"\\  #&RDZY   C,EB/+4#_^F=,8"P0+O_^2( ^
M@#\\  1.N0  $Z)4CPPN  K__F80/KP #3\\  1.N0  $Z)4CRZN__I.N0  
M)!0=0/_^L'S__V; +J[_^DZY   LADY>3G5.5O_V+KP  #WF+RX "$ZY   C
M,EB/+4#_^F<X8!8NO   04P0+O_^2( _ $ZY   OOE2/+J[_^DZY   D%!U 
M__ZP?/__9M8NKO_Z3KD  "R&8!(NK@ (+SP  #WH3KD  !1*6(].7DYU3E;_
M_&#^3EY.=4Y6__8NO   /?LO/   QLI.N0  (S)8CRU __IG3& L$"[__DB 
M/H _/  %3KD  !.B5(\,+@ *__YF$#Z\  T_/  %3KD  !.B5(\NKO_Z3KD 
M "04'4#__K!\__]FP"ZN__I.N0  +(9.7DYU3E;__"ZN  P_/  )3KD  !.B
M5(\@;@ ($+P 3BZN  @_/  *3KD  !.B5(\@;@ ($"@  4B 2,#0K@ (($!"
M*  "+KP  $%,/SP "DZY   OOE2/+JX "%27+RX "$ZY   ?<EB/3EY.=4Y6
M_ZPNK@ (+PX&E____[!AA%B/+HX&E____[!.N0  '\).7DYU3E;__$CG 00J
M?   0WI@%"!5,"@ 7")N  @R*0!<L$%M!BI52I5FZ"!N  @@E6<,(&X ""!0
M(6X "  $*JX ""!N  @A30 $(&X " )H__L 5B!N  @ :  " %9*GTS?( !.
M7DYU3E;__$CG 00J>0  0WI@!BZ-868J52 -9O9*GTS?( !.7DYU3E;__$CG
M 01"ES\\ "!.N0  $Z)4CRU __PNO   /@9.N0  %$HNO   /D!.N0  %$HN
MN0  /?YA'&&@+J[__#\\ "!.N0  $Z)4CTJ?3-\@ $Y>3G5.5O_\(&X ""ZH
M % @;@ (/R@ 6"!N  @_* !<+RX ""\\   ^BDZY   42M_\    #"!N  @(
M*  " %=G#"Z\   ^MTZY   42B!N  @(*  ! %=G#"Z\   ^P$ZY   42BZ\
M  !!3#\\  I.N0  +[Y4CTY>3G5.5@  2.<!!"IY  !#>F XN^X "&8P(&X 
M""!H  0B;@ (()$@;@ (2I!G$"!N  @@4")N  @A:0 $  0@;@ ( FC__0!6
M*E4@#6;$2I],WR  3EY.=4Y6  !(YP$$*GD  $-Z(]4  $-Z2I5G""!5(6T 
M!  $ FW__0!6+HUA  .@( U*GTS?( !.7DYU3E;__$CG 00J>0  0XX@#6=P
M(^T "   0XX[? #_ %Q";0!80FT 5CM\ #( 6D)M %8@>0  /?XM: !N__P^
MO  O3KD  !.B*T  M#Z\ !E.N0  $Z([0 !R0E<O#0:7    =#\\ $=.N0  
M$Z)<CR!Y   ]_B%N__P ;CM\  $ N" -2I],WR  3EY.=4Y6__P@;@ ((7D 
M $..  @C[@ (  !#CB!N  @Q?  ! %9.7DYU3E;_ZD*7/SP ($ZY   3HE2/
M+4#_[BU\  !#AO_X0F[_]BU\  !#RO_\8$ @;O_\0F@ 6"!N__PQ?  R %H@
M;O_\0F@ 7"!N__@@+O_\(4  ""U __@&K@  (,#__"!N__PQ?  ! +A2;O_V
M#&X !/_V;;@@;O_X(7P       A"N0  0WHC_   0WH  $-^80#^NB/    ^
M BZY   ^ F$  CP]?  "__9@3BZ\_____S\N__8_/  %3KD  !-R6(\O #!N
M__;1R-'(T?P  $.2()\P+O_V<ACC8$C @+P   R>+H _+O_V/SP !4ZY   3
M<EB/4F[_]@QN  G_]F^J+KP   UX/SP )#\\  5.N0  $W)8CRZ\   ,QC\\
M $4_/  %3KD  !-R6(\CP   0\(NO/____\_/ $"/SP !4ZY   3<EB/(\  
M $/&+KD  $/&/SP! C\\  5.N0  $W)8CRZ\   -?C\\ "T_/  %3KD  !-R
M6(\CP   0[HNO   #<H_/  A/SP !4ZY   3<EB/(\   $.^+J[_[C\\ "!.
MN0  $Z)4CTY>3G5.5O_T3KD   U4/4#__BZY  !#NC\\ "T_/  %3KD  !-R
M6(\NN0  0[X_/  A/SP !4ZY   3<EB/+KD  $/&/SP! C\\  5.N0  $W)8
MCRZY  !#PC\\ $4_/  %3KD  !-R6(\]?  "__Q@)C!N__S1R-'((GP  $.2
M+K"8 #\N__P_/  %3KD  !-R6(]2;O_\#&X "?_\;](^KO_^3KD   UB3EY.
M=4Y6__H@>0  /?XQ;@ ( %P@>0  /?XQ;@ * %HNK@ 2/RX $"\N  Q.N0  
M#&9<CTY>3G5.5O_\+KD  #W^80#]/DY>3G5.5O_X('D  #W^+6@ 9O_\8 9.
MN0  # @^K@ (/SP  4ZY   3<E2/2H!GYB!Y   ]_B%N__P 9DY>3G5.5O_\
M2.<!!"IN  @CS0  /?X ;0 $ %8";?_^ +A*GTS?( !.7DYU3E;_]D*7/SP 
M($ZY   3HE2/+4#__$JN  AF""UY   ]_@ ((&X "#UH %S_^C N  PB;@ (
MT6D 7"!N  A*: !<;0P@;@ (#&@ _P!<;PH@;@ (,6[_^@!<+J[__#\\ "!.
MN0  $Z)4CTZY   ,"# N__I.7DYU+PY.N0  #50L>0  /?X]0 !42.X__P 0
M+5\ #"U? % J3TY$3F@M2 !(+4\ 3"\.3KD   5.6(].N0  !S0M0  02H!G
M-BQ 0>X0N$Y@3^X@N"\ 3KD   K&+JT "C\M  @O+0 $/RT  C\53KD   I$
M3^\ #DZY   *>$ZY   &_"Q +FX 3"!N $A.8"\N % _+@!43.X__P 0+&X 
M#$YS+PY.N0  #50L>0  /?X]0 !42.X__P 0+5\ #"U? %!.1$YH+4@ 2"U/
M $PO#DZY   %3EB/3D1.N0  !OPL0"!N $A.8"YN $PO+@!0/RX 5$SN/_\ 
M$"QN  Q.<TY6   @;@ .0H P+@ ,3FF3P)/ 3F%*@&<&,MA30&#V1OP# &$ 
M_WP@;@ (3I!.1$;\)P!.7DYU3KD   F:80).<4*!$A?2@=*!(!_ O/\   !!
M^0  0Y* L!  ($!.T$;\)P O#DAY   ,W$#G+'D  $/"3M9&_"< +'D  #W^
M4FX 6%*N %X(+P %  1F6DCN/_\ $"U?  Q.:"U( $@]7P!4+5\ 4"U/ $PP
M+@!8L&X 6FT@0FX 6"\.3KD   5.6(].N0  !OPL0"!N $A.8"YN $PO+@!0
M/RX 5$SN/_\ $"QN  Q.<RQ?3G- P#( @GP' $Y$1L%.=2!?,!= P0)!(  "
M0-__@$%.1$; 3M  5R  3G,(%P %9CY.:$#  D '  Q  P!F,# 0#$   F8.
M/R@  DZY   *BE2/8!H@>0  /?XP* !8L&@ 6FT*0F@ 6$ZY   ,""!Y  !#
MND[0"!< !68:('D  #W^,"@ 6+!H %IM"D)H %A.N0  # A.: @7  5G!$'O
M  9"@# 0#$  5VXB2&@  B!\   ^R-" T( @< @ 3I!8CTI 9P@@.0  0W9.
M<R!Y  !#OD[03E;__$) 3EY.=4Y6__@@>0  /?XM: !N__Q@!DZY   ,"#Z\
M  M.N0  $Z)*@&?L('D  #W^(6[__ !N0D!.7DYU3E;_^"!Y   ]_BUH &[_
M_& &3KD   P(/KP $TZY   3HDJ 9^P@>0  /?XA;O_\ &Y"0$Y>3G5.5O_X
M('D  #W^+6@ ;O_\8 9.N0  # @^O  13KD  !.B2H!G["!Y   ]_B%N__P 
M;D) 3EY.=4Y6__@@>0  /?XM: !N__Q@!DZY   ,"#Z\ !).N0  $Z)*@&?L
M('D  #W^(6[__ !N0D!.7DYU3E;__"!N  @,4 #_9@1A /\00D!.7DYU3E;_
M^$CG P0@>0  /?XM: !N__@@;@ (*E!"1Q 52( ]0/_^5(T^O  (3KD  !.B
M'4#__ PN  /__&8:+KP  $ D/SP "4ZY   3HE2/0E=.N0  $Z(,+@ )__QG
M  #\#"X (/_\;0H,+@!___QM  #J#"X "/_\9P@,+@!___QF/DI'9P !!E.-
M4T<,%0 @;!@,%0 )9Q(NO   0"D_/  )3KD  !.B5(\NO   0"T_/  )3KD 
M !.B5(]@  #.#"X #?_\9P  R PN !C__&<(#"X %?_\9CY@-%.-4T<,%0 @
M;!@,%0 )9Q(NO   0#$_/  )3KD  !.B5(\NO   0#4_/  )3KD  !.B5(]*
M1V;(8   =KYN__YF$CZ\  <_/  "3KD  !.B5(]@7#Z\ %X_/  "3KD  !.B
M5(\0+O_\2( ^@ 97 $ _/  "3KD  !.B5(]@++YN__YF$CZ\  <_/  "3KD 
M !.B5(]@&A N__Q(@#Z /SP  DZY   3HE2/&N[__%)'8 #^F# '(FX "")1
M$T   1 N__Q(@#Z /SP  DZY   3HE2/('D  #W^(6[_^ !N0KD  $-V< %*
MGTS?((!.7DYU3E;_]B!Y   ]_@@H    N68  )8@>0  /?XM: !N__HNN0  
M0[X_/  A/SP !4ZY   3<EB/('D  #W^+J@ M#\\ !I.N0  $Z)4CR!Y   ]
M_CZH '(_/  .3KD  !.B5(\NN0  /?X&EP   '0_/  [3KD  !.B5(\@>0  
M/?X :  ! +@NO   #<H_/  A/SP !4ZY   3<EB/('D  #W^(6[_^@!N0D!.
M7DYU3E;_^"!Y   ]_BUH &[__&$ _T NN0  0[X_/  A/SP !4ZY   3<EB/
M(&X ""Z0/SP &DZY   3HE2/(\   $-V/KP +TZY   3HB\ ('D  #W^(5\ 
MM"Z\   -RC\\ "$_/  %3KD  !-R6(\@>0  /?XA;O_\ &YP 4Y>3G5.5O_X
M('D  #W^+6@ ;O_\80#^P"ZY  !#OC\\ "$_/  %3KD  !-R6(\@;@ (/I _
M/  .3KD  !.B5(\CP   0W8O.0  /?X_/  93KD  !.B5(\@7S%  '(NO   
M#<H_/  A/SP !4ZY   3<EB/('D  #W^(6[__ !N< %.7DYU3E;_^"!Y   ]
M_BUH &[__&$ _CXNN0  0[X_/  A/SP !4ZY   3<EB/(&X ""Z0/SP .TZY
M   3HE2/(\   $-V0E<O.0  /?X&EP   '0_/ !'3KD  !.B7(\NO   #<H_
M/  A/SP !4ZY   3<EB/('D  #W^(6[__ !N< %.7DYU3E;__&$ _<8@>0  
M/?XP* "Z(GD  #W^4FD ND) 3EY.=4Y6__QA /VD('D  #W^,"@ NB)Y   ]
M_E-I +I"0$Y>3G4@>0  /?XA7P!F3DT@>0  /?XO* !F3G4@>0  /?XA7P!J
M3DX@>0  /?XO* !J3G4@>0  /?XA7P!N3D$@>0  /?XO* !N3G5.5O_^2.<#
M $)'8"HNK@ .3KD  "04'4#__F\@$"[__DB ,D?3[@ ($H"P?  *0,!21T3 
M9P:^;@ ,;= P1]'N  A"$$HN__YO!B N  A@ D) 2I],WP" 3EY.=4Y6  !(
MYP$$*FX "& "4HTNO   03Y.N0  )!0:@+!\  IFZD(5("X "$J?3-\@ $Y>
M3G5.5O[\+HX&EP    PO+@ (+PX&E____P!A&E"/+KP  $%,+PX&E____P!A
M  +N6(].7DYU3E;_^$CG 0PJ;@ (*&X #&   4@,+@ E__IG"!KN__I@  $X
M'5S_^@PN ##_^F8$<#!@ G @$\   $-20GD  $-08" P.0  0U#!_  *$B[_
M^DB!T$'0?/_0,\   $-0'5S_^@PN ##_^FT(#"X .?_Z;] ,+@!L__IG!$) 
M8 )P 3U __AG!!U<__H0+O_Z2(!@  "P&N[_^F   +Y@  #$/KP  2\.!I< 
M   080  OEB/+H O#6$ #$!8CRI 8   F#ZN__@O#@:7    $&$  )Q8CTB 
M&L!@  !^/KP "C\N__@O#@:7    $&$  'Y<CR\ +PUA  "P4(\J0&!8/KP 
M"#\N__@O#@:7    $&%:7(\O "\-80  CE"/*D!@-CZ\ ! _+O_X+PX&EP  
M !!A.%R/+P O#6%L4(\J0& 62, @?   0#IR!K"85\G__"!H !A.T!U<__IF
M /ZT0A5*GTS?, !.7DYU3E;_^$*N__Q*;@ ,9Q(@;@ ((% M4/_\(&X "%B0
M8!0@;@ ((% P$$C +4#__"!N  A4D" N__Q.7DYU3E;_NDCG!P1+[O_ 0F[_
MOD)N_[P\+@ 02,9*K@ ,9@P:_  P4F[_OF   '9*K@ ,;!B\O     IF$#U\
M  '_O" N  Q$@"U   PN+@ ,8$PO!B\'3KD  #AP4(\O "\&3KD  #@<4(\O
M " 'D)\=0/^Z#"X "?^Z;@1P,& "<%<2+O^Z2('001K 4F[_OB\&+P=.N0  
M.'!0CRX 2H=FL$IN_[QG"!K\ "U2;O^^8 H:^0  0U)2;O^^,"[_OK!Y  !#
M4&WJ8 H@;@ ($*52K@ (,"[_OE-N_[Y*0&;J("X "$J?3-\@P$Y>3G5.5OW\
M+HX&EP   ! O+@ ,+PX&E____@!A /U04(\NK@ (+PX&E____@!A)%B/3EY.
M=4Y6__PNC@:7    $"\N  PO+@ (80#](E"/3EY.=4Y6  !(YP,$*FX "& 2
M+JX #! '2( _ $ZY   OOE2/'AUFZDJ?3-\@@$Y>3G5.5@  2.<#!"IN  A@
M%"Z\  !!3! '2( _ $ZY   OOE2/'AUFZ"Z\  !!3#\\  I.N0  +[Y4CTJ?
M3-\@@$Y>3G5.5O_\+HX&EP    PO+@ (+SP  $$^8090CTY>3G5.5O_R2.<#
M!$)'*FX #&   = ,+@ E__IF  '&$!U(@&   :@@;@ 0+5#_]EBN ! 0'4B 
M8!I3C3U\  K_\F D/7P $/_R8!P]?  (__)@%+!\ &1GXK!\ &]G[+!\ 'AG
MWF#2/J[_\B\.!I?____T+RX "&$  7Y0CQU __IG' PN____^F8*$"[_^DB 
M8  !6E)'(&[_]C"N__1@  %"/7P "O_R8 X]?  0__)@!CU\  C_\CZN__(@
M;@ 0+Q O+@ (80 !+E"/'4#_^EBN !!*0&<4#"[____Z9@H0+O_Z2(!@  $$
M4D=@  #T(&X $"U0__Q8K@ 0+JX "$ZY   D%!U __JP?/__9Q9*+O_Z9Q ,
M+@ @__IOW@PN '__^FS68!H@;O_\$*[_^E*N__PNK@ (3KD  "04'4#_^@PN
M____^F<62B[_^F?8#"X (/_Z;P@,+@!___IMR"!N__Q"$%)'#"[____Z9@H0
M+O_Z2(!@  !T#"X "O_Z9Q0NK@ ($"[_^DB /P!.N0  )UI4CV!*(&X $"U0
M__Q8K@ 0+JX "$ZY   D%!U __JP?/__9@@0+O_Z2(!@+"!N__P0KO_Z8!A@
M%DC ('P  $!R<@:PF%?)__P@:  83M =7?_Z9@#^+# '2I],WR" 3EY.=4Y6
M__Q(YP, ?@$=?/____P@;@ ,0E NK@ (3KD  "04'4#__K!\__]G%DHN__YG
M$ PN "#__F_>#"X ?__^;-8,+@ K__YG" PN "W__F8T#"X +?_^9@)^_RZN
M  A.N0  )!0=0/_^L'S__V<62B[__F<0#"X (/_^;]X,+@!___YLU@PN ##_
M_F940B[__"ZN  A.N0  )!0=0/_^L'P 6&<(#"X >/_^9BX]?  0 ! NK@ (
M3KD  "04'4#__F<62B[__F<0#"X (/_^;^(,+@!___YLVF &/7P "  08   
MG PN ##__FT8#"X .?_^;A 0+O_^2(#0?/_0'4#__&!.#&X $  09D0,+@!A
M__YM& PN &;__FX0$"[__DB T'S_J1U __Q@(@PN $'__FT8#"X 1O_^;A 0
M+O_^2(#0?/_)'4#__& "8$I@ F!&(&X ## 0P>X $!(N__Q(@=!!(FX ##* 
M+JX "$ZY   D%!U __ZP?/__9QH,+@!,__YG$@PN &S__F<*#"[____^9@#_
M3B!N  PP$,'',( ,+O____YF!'#_8"@,+@ *__YG%"ZN  @0+O_^2( _ $ZY
M   G6E2/2B[__&T$< %@ D) 2I],WP" 3EY.=4Y6__PNC@:7    $"\N  PO
M+@ (80#\%E"/3EY.=4Y6__PNC@:7    $"\N  PO+@ (8090CTY>3G5.5O_R
M2.<##$)'*FX ""AN  Q@  %:#"X )?_Z9@ !4! <2(!@  $R(&X $"U0__98
MK@ 0$!Q(@& :4XP]?  *__)@)#U\ !#_\F </7P "/_R8!2P? !D9^*P? !O
M9^RP? !X9]Y@TCZN__(O#@:7____]"\-80 !"E"/*D @#6<*4D<@;O_V,*[_
M]&   . ]?  *__)@#CU\ !#_\F &/7P "/_R/J[_\B!N ! O$"\-80  SE"/
M*D @#5BN !!*@&<"4D=@  "F(&X $"U0__Q8K@ 0'5W_^F<62B[_^F<0#"X 
M(/_Z;^P,+@!___ILY& 0(&[__!"N__I2KO_\'5W_^DHN__IG%DHN__IGY PN
M "#_^F\(#"X ?__Z;=0@;O_\0A!21THN__IF!'#_8$93C6 X(&X $"U0__Q8
MK@ 0'5W_^F8$</]@+"!N__P0KO_Z8!A@%DC ('P  $"J<@:PF%?)__P@:  8
M3M =7/_Z9@#^HC '2I],WS" 3EY.=4Y6__Q(YP,$?@$=?/____PJ;@ ((&X 
M#$)0'5W__F<62B[__F<0#"X (/_^;^P,+@!___YLY PN "O__F<(#"X +?_^
M9B8,+@ M__YF G[_'5W__F<62B[__F<0#"X (/_^;^P,+@!___YLY PN ##_
M_F9$0B[__! =2( =0/_^L'P 6&<(#"X >/_^9B0]?  0 ! =7?_^9Q9*+O_^
M9Q ,+@ @__YO[ PN '___FSD8 8]?  ( !!@  ".#"X ,/_^;1@,+@ Y__YN
M$! N__Y(@-!\_] =0/_\8$X,;@ 0 !!F1 PN &'__FT8#"X 9O_^;A 0+O_^
M2(#0?/^I'4#__& B#"X 0?_^;1@,+@!&__YN$! N__Y(@-!\_\D=0/_\8 )@
M.F "8#8@;@ ,,!#![@ 0$B[__$B!T$$B;@ ,,H =7?_^9Q@,+@!,__YG$ PN
M &S__F<(2B[__F8 _UX@;@ ,,!#!QS" 4XU*+O_\;00@#6 "0D!*GTS?((!.
M7DYU3E8  $CG 00J;@ (8 )2C4H59OH@;@ ,$!!(@!K 4JX #$I 9NX@+@ (
M2I],WR  3EY.=4Y6  !(YP$,*FX ""AN  Q@#$H59@1"0& 64HU2C! 52("P
M%&?L$!5(@!(42(&004J?3-\P $Y>3G5.5@  2.<!!"IN  @@;@ ,$!!(@!K 
M4JX #$I 9NX@+@ (2I],WR  3EY.=4Y6  !(YP$$*FX "& "4HU*%6;Z( V0
MK@ (2I],WR  3EY.=4Y6__9";O_^8 12;O_^(&X "#)N__[1R0P0 "!G["!N
M  @R;O_^T<D,$  *9]P@;@ (,F[__M')#!  "6?,/7P  ?_Z(&X "#)N__[1
MR0P0 "MG$"!N  @R;O_^T<D,$  M9B P;O_^T>X " P0 "M P%)N__Y$P&8$
M< %@ G#_/4#_^D)N__Q@)# N__S!_  *(FX "#1N__[3RA(12('00=!\_] ]
M0/_\4F[__B!N  @R;O_^T<D,$  P;1 @;@ (,F[__M')#!  .6^\,"[_^L'N
M__Q.7DYU3E;_]D)N__HNK@ (80#^]%- /4#__&! ,&[_^B)N  @0,)@ 2( ]
M0/_^(&X "#)N__K1R2)N  @T;O_\T\H0D3 N__XB;@ (-&[__-/*$H!2;O_Z
M4V[__# N__JP;O_\;;9.7DYU3E;_^#UN  C__&P*,"X "$1 /4  "$)N__XP
M+@ (2,"!_  *2$#0?  P,F[__M/N  H2@%)N__XP+@ (2,"!_  */4  "&[2
M2F[__&P0,&[__M'N  H0O  M4F[__B!N  HR;O_^T<E"$"ZN  IA /\J3EY.
M=4Y6  !(YP, +JX #&$ _A@^ & 0(&X "!"Y  !#4E*N  A21[YY  !#4&WH
M8!(@;@ ((FX #!"14JX #%*N  @@;@ ,2A!FYB N  A*GTS? (!.7DYU3E8 
M $CG P P+@ (4D!(P"X SKS____^+H<_/ !(3KD  !.B5(]*GTS? (!.7DYU
M3E;__"ZN  @_/ !)3KD  !.B5(].7DYU3E8  $CG!QPJ;@ (*&X #$)'8 B^
M?  0;!I21S 'P?P #B9 U_P  $$^,"L  L!\  -FX+Y\ !!M!D* 8   U P4
M '=G!@P4 %=F&#ZN ! _/  !+PU.N0  *SQ<CSP 8   < P4 &%G!@P4 $%F
M/CZN ! _/  !+PU.N0  +@A<CSP ;!8^K@ 0/SP  2\-3KD  "L\7(\\ & 0
M/KP  D*G/P9.N0  +TQ<CV D#!0 <F<&#!0 4F84/JX $$)G+PU.N0  +@A<
MCSP 8 1"@&! 2D9L!$* 8#A":P ,-H9"@"=   @G0  $#!0 <F<&#!0 4F8(
M-WP  0 "8 8W?  "  )*;@ 09@8 :P$   (@"TJ?3-\XP$Y>3G5.5O_\0E<O
M+@ ,+RX "&$ _M10CTY>3G5.5O_\0E<O+@ ,+RX "&$ _KQ0CTY>3G5.5O_\
M/KP  2\N  PO+@ (80#^HE"/3EY.=4Y6  !(YP$$3KD  #,<0E<O/   .H-.
MN0  +P)8CSZ\  $O/   .H-.N0  +P)8CSZ\  $O/   .H-.N0  +P)8CR!N
M  @R;@ ,T<E"$"IN  A@)A 52(!(P-"\  !"2"! "!   V<*$!5(@-!\ "!@
M!! 52( :@%*-2A5FUCZN  PO+@ (3KD  ">L6(]*GTS?( !.7DYU3E8  $CG
M 00J;@ (4VT #&T4(&T "! 02(# ? #_4JT "& *8 @NC4ZY   D3$J?3-\@
M $Y>3G5.5@  2.<!!"IN  @(+0    -F!G#_8   U @M  <  V<, &T (  "
M</]@  # 2JT !&8F""T  P #9A ^O ( 3KD  "'.*T  !&8( &T "  "8 8 
M;0 $  ((+0 #  -G#C 52,#0O   0U0K0  $N_P  $$^9A8(.0 &  !!3V<,
M+KP  $%,3KD  "UN""T  P #9P8^O  !8 0^O ( +RT !#\53KD  "5"7(\[
M0  ,2FT #&X:#&W__P ,9@@ ;0 P  )@!@!M "   G#_8!I3;0 ,*VT !  (
M(&T "! 02(# ? #_4JT "$J?3-\@ $Y>3G5.5@  2.<!!#ZN  A.N0  ,ZPJ
M0" -9@1P_V!B""T !0 !9P1"0&!6""T  @ !9Q8S_  )  !"1#/Y  !#(@  
M0D9P_V X""T !  !9QI"@# N  XN@"\N  HO#4ZY   ERE"/8!A@%D* ,"X 
M#BZ +RX "B\-3KD  ";L4(]*GTS?( !.7DYU3E;_^$CG PPJ;@ (*&X #"XN
M ! M1__\8   ECZ\  $@!S\ +PPO+0 &+PT&EP   !).N0  -Y3?_     X]
M0/_Z0F[_^& 4($R3R3)N__C1R0P0 !IG$%)N__A"0# N__BP;O_Z9>!*;O_Z
M9Q @3)/),F[_^-')#!  &F8*/6[_^/_Z %4 (#ZN__HO#&%06(\]0/_X0H P
M+O_ZT:T !D* ,"[_^-G 0H P+O_XGH!*AV\*""T !0 !9P#_8)^N__P@+0 &
ML*T #F\&*VT !@ .("[__$J?3-\P@$Y>3G5.5O_X2.<!#"IN  @M3?_\( U"
M@3(N  S0@2U __@H36 *#!0 #6<"&M12C+GN__AE\" -D*[__$J?3-\P $Y>
M3G5.5O_^2.<##"IN  @H;@ ,+BX $#Z\  $@!S\ +PPO+0 &+PT&EP   !).
MN0  -Y3?_     X]0/_^2F[__F8$ %4 ($* ,"[__M&M  8@+0 &L*T #F\&
M*VT !@ .0D P+O_^2I],WS" 3EY.=4Y6  !(YP,$/BX ""IN  J^?/__9@1P
M_V N""T    #9R1*K0 $9QX@+0 (L*T !&,44ZT "# '(FT "!* 4FT ## '
M8 )P_TJ?3-\@@$Y>3G5.5O_>2.<'#$)73KD  #'.(\   $-F(\   $-J0GD 
M $-D+KP  #IY80 #%BIN  A@  ).8 )2C4H59Q00%4B 2,#0O   0D@@0 @0
M  5FYDH59P ",@P5 ")G!@P5 "=F1AP5$ 9(@#Z +PU2ETZY    X%B/*$ @
M#&8.+KP  $#B+PUA  )66(\@#$C D(T^ "!-,D?1R4(04D<NC5*780 "GF  
M =A"1V "4D<@33)'T<E*$&<6$#5P $B 2,#0O   0D@@0 @0  5GWDHU< !G
M"B!-,D?1R4(04D<0%4B 8  !AD)73KD  "S>0E<O#5*73KD  "\:6(]*0&<0
M+HU2ER\\  ! ]&$  =!8CV   6P^O  !3KD  "S>#"T /@ !9D ^O  !+PU4
METZY   O&EB/L'P  688/KP  D*G/SP  4ZY   O3%R/L'S__V80+HU2ER\\
M  !! 6$  7Q8CV D0E<O#5*73KD  "P*6(^P?  !9Q NC5*7+SP  $$080 !
M5EB/8   \CZ\ #\O#4ZY    X%B/2H!F%#Z\ "HO#4ZY    X%B/2H!G  "P
M+7P  ,VR__PNKO_\!I<    X/SP &DZY    EE2//KP $2\-/SP  TZY   U
MF%R/' "\/ #_9@XNO   01\O#6$  .98CV!>+HX&E____]X0!DB /P O+O_\
M80 !6ER/+HX&E____]Y.N0  'YX^@%)73KD  #=6*$ NC@:7____WB\,3KD 
M !]R6(\NC&$  /P^O  2+PT_/  #3KD  #687(\< +P\ /]FG& &+HUA  #:
M8!2P?  \9P#^=K!\ #YG /Z<8 #_$MK'2A5F /VP0I=A  "V4WD  $-D+KD 
M $-J3KD   !ZL'S__V80+KP  $$Y+SP  $$J82I8CT*7+SD  $-F/SD  $-D
M3KD   #Z7(\^@$ZY   L/$J?3-\PP$Y>3G5.5O]\+JX ""\.!I?___^ 3KD 
M !]R6(\NK@ ,+PX&E____X!.N0  'P18CRZ\  !!.B\.!I?___^ 3KD  !\$
M6(\NC@:7____@#\\  E.N0   )94CSZ\__].N0  +#Q.7DYU3E8  $CG 00J
M;@ (('D  $-J((U8N0  0VI2>0  0V1*GTS?( !.7DYU3E8  $CG QPJ;@ (
M'BX #2AN  Y'[0!6&-MF_$J?3-\X@$Y>3G5.5@  2.<#!$ZY   RMCX OGS_
M_V8&</]@  "2/H=.N0  ,SXP!\'\ C@J0-O\  #'"DIN  YF! !5 ! NO   
M.H,O+@ (3KD  #;D6(]*0&8* %4  S '8%)@'BZ\   ZB"\N  A.N0  -N18
MCTI 9@@ 50 %, =@,CZ\ !8O+@ (/P=.N0  -9A<CTI 9Q8S_  C  !"1#/Y
M  !#(@  0D9P_V & %4  3 '2I],WR" 3EY.=4Y6__Q"5S\N  PO+@ (80#_
M.ER/3EY.=4Y6__Q"5S\N  PO+@ (80#_(ER/3EY.=4Y6__P^O  !/RX #"\N
M  AA /\(7(].7DYU3E;__$ZY   L5#ZN  A.N0   +I.7DYU3E8  $CG P!"
M1V 6, ?!_  .T+P  $$^+H!.N0  +(921[Y\ !!MY$J?3-\ @$Y>3G5.5@  
M2.<!!"IN  @P+0 "P'P  V<J+HU.N0  +6X(+0 "  -G"BZM  1.N0  (?Y"
M0$C *T  ""M   1";0 , FW_@  "/I5.N0  +-Y*GTS?( !.7DYU3E8  $CG
M#P0^+@ (/H=.N0  ,ZPJ0" -9A8S_  )  !"1#/Y  !#(@  0D9P_V!.0D8P
M%<!\  9F%CZM  0_/  ^3KD  #@,5(\\ &P"?/\^ATZY   S/CZ'3KD  #, 
M2D9F!C &8!9@%#/\  4  $)$,_D  $,B  !"1G#_2I],WR#@3EY.=4Y6__Q.
M7DYU3E8  $CG!P0J;@ (,"T  L!\  JP?  "9BP@+0 (D*T !#P ;R ^AB\M
M  0_%4ZY   R.%R//@"\1V<* &T $  "</]@2@@M  $  V<>2JT !&<6""T 
M P #9P@[?  !  Q@!CM\ ?\ #& </KP  3 M  Q$0$C +P _%4ZY   O3%R/
M0FT #"MM  0 "$) 2I],WR# 3EY.=4Y6  !(YP,$3KD  #*V/@"^?/__9@9P
M_V   -8^ATZY   S/C 'P?P"."I V_P  ,<*2FX #&8$ %4 "$IN  YF! !5
M ! NO   .H,O+@ (3KD  #;D6(]*0&82 %4  SMN  P !# '8   AF >+KP 
M #J(+RX "$ZY   VY%B/2D!F" !5  4P!V!D/KP #R\N  @_!TZY   UF%R/
M2D!G'CZ'3KD  #, ,_P  @  0D0S^0  0R(  $)&</]@, !5  $^O  "0J<0
M+0 #2( _ $ZY   O3%R/0E="IQ M  -(@#\ 3KD  "],7(\P!TJ?3-\@@$Y>
M3G5.5O_\0E<_+@ ,+RX "&$ _O9<CTY>3G5.5O_\0E<_+@ ,+RX "&$ _MY<
MCTY>3G5.5O_\/KP  3\N  PO+@ (80#^Q%R/3EY.=4Y6  !(YP$$/JX "$ZY
M   SK"I ( UF%C/\  D  $)$,_D  $,B  !"1G#_8"0^K@ ./RT !"\N  H_
M/ !"3KD  #@,4(\K0  & E7_WR M  9*GTS?( !.7DYU3E;__#Z\  %"IS\N
M  AAE%R/3EY.=4Y6  !(YP,$'BX "2IN  I3;0 ,;180!TB (FT "!* P'P 
M_U*M  A@$F 0+HT0!TB /P!.N0  , 14CTJ?3-\@@$Y>3G5.5O_^2.</!!XN
M  DJ;@ *0D8Z!@@M  $  V8&</]@  $D2JT !&96""T  P #9DX^O ( 3KD 
M "'.*T  !"M   AF" !M  @  F R &T !  "/I5.N0  ,5)*0&<( &T 0  "
M8!@[? '^  P0!TB (FT "!* 4JT "&   ,@(+0 #  -G#D'N__XK2  $( @K
M0  ((&T "!"'4JT " @M  ,  V<:>@$^A2\M  0_%4ZY   R.%R// !";0 ,
M8&X(+0 &  -G/KX\  IG$" M  30O    @"PK0 (8B(@+0 (D*T !#H /H4O
M+0 $/Q5.N0  ,CA<CSP *VT !  (0FT #& H("T ")"M  0Z #Z%+RT !#\5
M3KD  #(X7(\\ #M\ ?\ #"MM  0 "+I&9PH ;0 0  )P_V ($ =(@,!\ /]*
MGTS?(.!.7DYU3E8  $CG 00^K@ (3KD  #.L*D @#68$0D!@#@@M  $  68$
M0D!@ G !2I],WR  3EY.=4Y6  !(YP$$/JX "$ZY   SK"I ( UF!$) 8 8P
M%<!\ 09*GTS?( !.7DYU3E;__#ZN  AAEDI 9P@@/   .H-@ D* 3EY.=4Y6
M  !(YP,,/BX "$C'SKP  /__" <  &<"4H<J>0  0QXH1]GY  !#'BZ,3KD 
M  !ZL'S__V86,_P #   0D0S^0  0R(  $)&</]@$CZN  A"9R\-3KD   #$
M7(\@#4J?3-\P@$Y>3G5.5@  2.<!!#ZN  A.N0  ,ZPJ0" -9@1P_V!82FX 
M#F8$0D!@3@@M  ,  6<6,_P "0  0D0S^0  0R(  $)&</]@, @M  0  6<6
M/JX #B\N  HO#4ZY   T#E"/8!1@$CZN  XO+@ *+PU.N0  -1Y0CTJ?3-\@
M $Y>3G5.5@  2.<' 'P!0D=@&" &P+D  $(>9@J-N0  0AXP!V >XX921[Y\
M !!MXC/\ !@  $)$,_D  $,B  !"1G#_2I],WP# 3EY.=4Y6__QP 3(N  CC
M8$9 2,#!N0  0AY"0$Y>3G5.5@  2.<# $)'8 8^AV$24D>^?  0;?1*GTS?
M (!.7DYU3E8  $CG 0PP+@ (P?P"."I V_P  ,<*,"X "!M   -"54(M  (K
M?/____\ "D*M  9"K0 ./KP ($)G+PT&EP   !).N0   ,1<CSZ\  L_/  @
M+PT&EP   !-.N0   ,1<CTJ?3-\P $Y>3G5.5@  2.<#!#XN  B^?  0918S
M_  )  !"1#/Y  !#(@  0D9"@& P0D P!\#\ C@J0-O\  #'"@@M     686
M,_P "0  0D0S^0  0R(  $)&0H!@ B -2I],WR" 3EY.=4Y6__I(YP,,*FX 
M""AN  P^+@ 00D ]0/_Z/4#__&   ,A@!%)N__J^;O_Z8Q @3)/),F[_^M')
M#!  "F;F0D P+O_ZD&[__&-F/KP  3\N__I"0# N__R15R ,0H$R+O_\T($O
M "\M  8O#0:7    $DZY   WT-_\    #CU __Y"@# N__[1K0 &2F[__F86
M,_P !0  0D0S^0  0R(  $)&</]@7CUN__K__& X4F[_^CZ\  $_/  !+SP 
M $(B+RT !B\-!I<    23KD  #?0W_P    ./4#__D* ,"[__M&M  :^;O_\
M8@#_-" M  :PK0 .;P8K;0 &  Y"0# N__Q*GTS?,(!.7DYU3E;__DCG 00J
M;@ (/KP  3\N ! O+@ ,+RT !B\-!I<    23KD  #?0W_P    ./4#__DIN
M__YF%C/\  4  $)$,_D  $,B  !"1G#_8"!"@# N__[1K0 &("T !K"M  YO
M!BMM  8 #D) ,"[__DJ?3-\@ $Y>3G5.5O_Z2.<#'"IN  HP+@ (P?P".-"\
M  #'"BU __Q^_RZ-80  ["9-8 )2BTH39P8,$P Z9O1*$V<<'6/_^@PN $'_
M^FT,#"X 3__Z;@0J2V $2^L  C N  Y@  "00E<O#3\\ #Q.N0  . Q<CSX 
M;PH@;O_\,4< !$)'8   AD)7+PT_/ !.3KD  #@,7(]*@&<$0D!@!# \ /\^
M &!D/KP 3TZY   X#$J 9P1"0& $,#P _SX 8$HNC3\\ #U.N0  . Q4CSX 
M;PH@;O_\,4< !$)'8"PNC3\\ $%.N0  . Q4CSX 8!I@&)!\  ^P?  '8@[E
M0#! T?P  $(D(%!.T# '2I],WSB 3EY.=4Y6__P@;@ (#!  86T2(&X " P0
M 'IN""!N  @$$  @(&X "! 02(!2K@ (2@!FU$Y>3G5.5O_\3EY.=4Y6  !(
MYP<,*FX ""AN  Q@)! =2( ^@&$P'@ 0'$B /H!A)AP O@9O!' !8!*^!FP$
M</]@"DH59MA*%&;40D!*GTS?,,!.7DYU3E8  $CG P ^+@ (OGP 86T*OGP 
M>FX$WGS_X# '2I],WP" 3EY.=2!?0H P'UJ "(   ")Y  !#'D/I 0!#\0@ 
MO\EB!D[Y    K)_ 0^\ !" )3M!*A6<*+KS_____B_P  $YU3E;_^B!N  @]
M:/_R__XNK@ 0,&X %B\(,&X %"\(3KD  #@<4(\O #\N__X_/  _3KD  #@,
M4(].7DYU3E;_^B!N  @]:/_R__XNK@ 0,&X %B\(,&X %"\(3KD  #@<4(\O
M #\N__X_/ ! 3KD  #@,4(].7DYU(]\  $-N3D$O.0  0VY.=4Y6__Q"0DJN
M  AL!D2N  A20DJN  QL!D2N  Q20C N  K [@ .+4#__# N  C [@ .,BX 
M#,+N  K00=!N__P]0/_\("[__ @"  !G D2 3EY.=4Y6__Y(YS\ 0D-"A2XN
M  @L+@ ,9A@C_(       $-R(#R     @?P  &   &AL!$2&4D-*AVP$1(=2
M0[R';CAF!GH!0H=@,+Z\  $  &P*CL8Z!TA'2,=@'G@!OH9E!N.&XX1@]DJ$
M9PZ^AF4$BH2>AN*,XHY@[K9\  %F#D2'(\<  $-R( 5$@& ((\<  $-R( 5*
MGTS? /A.7DYU  $  @$! @$!  $! @$! 0$!              $   $  P4 
M!04   $! @$ $ <! @$              0$! @$! @$! @$! 0$" 0$!    
M             @$! 0$!!@$!! $! 0,! @$!! (!" $!         0$!"0$!
M 0$! 0$   4!                                                
M            ! , " , !@$ " $ " $ ! $! P$!  4  0$!  4   $!  $!
M                                  ("                        
M            !0$ !0$  0$  0$  @4 !@$  @$  0$ !@4       $!  $ 
M @$  @$! 0$!                      $" P$" 0$! 0$!  $!  $"4W1A
M8VL@3W9E<F9L;W<D0R!R=6YT:6UE $-/3CH 3%-4.@ :         #\   !E
M    :    &P   !M    <    ',   !X         LX   +2   !S    CX 
M  *J   ""@   F    *4   "S@   RA-24-23R!25%@@+2!!=&%R:2!35"!-
M=6QT:71A<VMI;F<@3W!E<F%T:6YG(%-Y<W1E;2!+97)N96P* "AC*2!#;W!Y
M<FEG:'0@,3DX-B M($1A=FED($)E8VME;65Y97(*"@!4:&ES('!R;V=R86T@
M:7,@1G)E92$@($ET(&ES(&$@<VEM<&QE(&%P<&QI8V%T:6]N('!R;V=R86T*
M '1H870@=7-E<R!T:&4@34E#4D\@4E18(&UU;'1I=&%S:VEN9R!K97)N96P@
M=&\@9&5M;VYS=')A=&4* &$@9F5W(&]F('1H92!M=6QT:71A<VMI;F<@8V%P
M86)I;&ET:65S(&]F('1H92!35"X*"@!)="!M87D@8F4@9G)E96QY(&1I<W1R
M:6)U=&5D+"!P<F]V:61E9"!A;&P@=&AE(&EN=')O9'5C=&]R>0H ;65S<V%G
M97,@<F5M86EN(&EN=&%C="X@("!-24-23R!25%@@:7,@879A:6QA8FQE(&9R
M;VTZ"@H "4)E8VME;65Y97(@1&5V96QO<&UE;G0@5&]O;',*  DU.3(@2F5A
M;B!3=')E970@(S,P- H "4]A:VQA;F0L($-!(#DT-C$P"@ )*#0Q-2D@-C4X
M+34S,3@*"@ J( !%>&5C(&9I;&4Z(    $9I;&4Z( !&:6QE.B  4')O8V5S
M<V5S.@HM+2TM+2TM+2TM"@H 1FEL93H@ &4@+2!E>&5C(&$@<')O9W)A;2 H
M9F]R96=R;W5N9"D* &@@+2!C<F5A=&4@8F%C:V=R;W5N9"!#4%4@:&]G"@!L
M("T@9'5M<"!F:6QE('1O('-C<F5E;B H9F]R96=R;W5N9"D* &T@+2!S<&]O
M;"!F:6QE('1O(%)3+3(S,@H <" M('-P;V]L(&9I;&4@=&\@<')I;G1E<@H 
M<R M('-H;W<@<')O8V5S<V5S"@!X("T@97AI= H 56YK;F]W;B!C;VUM86YD
M("T@/R!L:7-T<R!C;VUM86YD<PH "D)Y92!">71E"@!R '( )7,@9&]E<R!N
M;W0@97AI<W0* '(     0\H  #W^(" @4$E$(" @(" @(" @(" @4')I;W)I
M='D@(" @4VQI8V4@(" @("!00R @(" @(" @4W1A=&4* "TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM+2TM
M+2TM+2TM+2TM+2TM+2TM+0H ("4P.&QX(" @(" @(" @(" C)3-D(" @(" C
M)31D(" @("4P.&QX(" @("  4G5N;FEN9R  4F5A9'D@     !-0   .-   
M#BH   [<   .;   #J0   \4   .-   #C0   XJ   /+   #BH   XJ   0
M^@  $B@  !#Z   .*@  #BH   XJ   .*@  $/H  !#Z   0^@  $/H   XJ
M   0^@  $:@  !#Z   0^@  #BH   XJ   .*@  $/H  !#Z   0^@  $/H 
M  XJ   .*@  $/H  !#Z   .*@  #BH   XJ   .*@  #BH  !#Z   0^@  
M$/H  !-0   .*@  #BH   XJ   .*@  $/H   XJ   .*@  $/H  !#Z   2
MJ@  $/H  !#Z   0^@  $/H  !#Z   0^@  $/H  !#Z   0^@  $/H  !#Z
M   0^@  #BH   XJ   .*@  $RX  !-0   .*@  $/H  !#Z   .*@  #BH 
M  XJ   .*@  #BH   XJ   0^@  $/I>0PT*  @@"  (( @ "" (  @@"   
M         &,   !D    ;P   ',   !X        %1P  !5"   57   %8  
M !4@   5H@  %10   !C    9    &@   !O    <P   '@        9B   
M&)(  !@6   8H@  &.   !B:   9N    &,   !D    :    &\   !S    
M>        !TV   <D   '"@  !R@   <R@  ')@  !U4.B!U;FUA=&-H960@
M<75O=&4 0V%N;F]T(&]P96X@ $-A;FYO="!A<'!E;F0@ $-A;FYO="!C<F5A
M=&4@ #H@3F\@;6%T8V@ 4W1A8VL@3W9E<F9L;W<   T*)      !        
M       !  H               ( "@               P              
M   $                  4                 !@                 '
M                  @                 "0                 *    
M              L                 #                  -        
M          X                 #P                     -    -E( 
M #:<   V&   -C@  #9P   VG   -IP  #7V      $! 0$! 0$! 2$A 2$A
M 0$! 0$! 0$! 0$! 0$! 0$!(@(" @(" @(" @(" @(" @0$! 0$! 0$! 0"
M @(" @("" @(" @(" @(" @(" @(" @(" @(" @(" @" @(" @(0$! 0$! 0
M$! 0$! 0$! 0$! 0$! 0$! 0$ (" @(!0U O32TV.$LH=&TI+"!697)S:6]N
M(#$N,BP@0V]P>7)I9VAT("AC*2 Q.3@S+"!$:6=I=&%L(%)E<V5A<F-H(%A8
M6%@M,# P,"TV-30S,C$       @V#A@&)!@,3@H:" 8&!@8&!@8&!@8&!@8&
M!@8&!@8&!@8>% 84$ 80#A0.$ 80#A &!@HH!@8&!@8&!@8&!@8&!@@&#!X&
M!@X&!AP8#!0."A .#!0,!AH&!AP8#!06&!X*$B@29BH,!@8&!A(R!A@&$@8&
M"A16!C(,'A .& @F"AX,#%X&! H&(!(2$!0." X(% @&#@@." 8." X0"@X(
M#@@." X8$A@.#!@0$@X.#!PF$D8($ 8H"!P8"@8H!B8*7AH4" Q""'0*% 8.
M%" 6"!8."@H6#@H*%@X*"A8."@HR(A(*"D@*" HX"@@*'A(8&!8J" P6$ P.
M" X(#@@0" P."!80#A(("@@*#@@6$ X2" 8*#@X(%A .$@@($ @."!H*& H0
M# P,# P<7 8Z3@8(%NRX##(>#I8D# P*(@$..%8:)D)$-B*X5 &T 0$! 3X,
M4!XP,B06%!ZL" 8,!@P&("PZ4"8*"@@&'EPF!@0@&D0!'* &!@8&("P.1"@,
M$!06&!(4$A82#A82$# *$A@\!@8,!@P&!@H@% @.% P6" 8^%@X0"A8*'@X&
M!&@*' @P$AX>#@8$'! ($@8$2$XF%@X:"AX*'@X(!@0<%&H.!@0::$8@7$ H
M0C0N*@@(#@8$$B D!@0<%B((%@8$(D R&"8&!!00!@2((@8$'A)F& 8$2%(B
M'!P>'- 2/A(J$@P(=F8, ;H$! 0$! 0$! 0! 0$J!,8$! 0$! 0$! 0$! 0$
M! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$
M! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$! 0$!#8$! 0$! 0@! 0$! 0$( 0$
M! 0$! %(! 0$! 0$!  :&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:&AH:
M&AH:&AH:&AH:&@                                              
M                                                            
M                                                            
#    
 
end

=========================================================================
/************************************************************************/
/* 									*/
/*         RRRRRRRRR       TTTTTTTTTTTTTTT      XXX     XXX		*/
/*         RRR     RRR           TTT             XXX   XXX		*/
/*         RRR     RRR           TTT              XXX XXX 		*/
/*         RRRRRRRRR             TTT                XXX			*/
/*         RRR    RRR            TTT              XXX XXX 		*/
/*         RRR     RRR           TTT             XXX   XXX		*/
/*         RRR     RRR           TTT            XXX     XXX		*/
/* 									*/
/*	MICRO RTX  -  Atari ST Multitasking Operating System Kernel	*/
/* 									*/
/*	(c) Copyright 1986 by David Beckemeyer				*/
/* 									*/
/* 									*/
/*	This short demonstaration program demonstates some of the	*/
/*	multitasking capabilities of the Atari ST computer.		*/
/* 									*/
/*	This is a sample of a MICRO RTX multitasking application.	*/
/*	As you can see, MICRO RTX applications can be as simple as you	*/
/*	want.  The standard GEMDOS functions operate as usual, with	*/
/*	automatic multitasking.						*/
/*									*/
/*	This MICRO RTX application is a simple "shell" that shows	*/
/*	how to use the kernel to get automatic multitasking.		*/
/*									*/
/*	When run, the shell will prompt with a "*".  It accepts the	*/
/*	following one letter commands:					*/
/*									*/
/*		e - execute a program file				*/
/*		h - create background CPU hog				*/
/*		l - list a file on the screen				*/
/*		m - spool a file to the modem (RS-232)			*/
/*		p - spool a file to the printer				*/
/*		s - show processes					*/
/*		x - exit demo program					*/
/*									*/
/*	The e, l, m, and p commands prompt for a file name.  In each	*/
/*	case the complete path of the file (including the extension)	*/
/*	must be given.							*/
/*									*/
/*	The e command will attept to execute the given program file.	*/
/*	This must not be a GEM program with this demo because the	*/
/*	mouse and screen are not set up for GEM.  			*/
/*									*/
/*	The l, m, and p commands cannot be used concurrently.		*/
/*	This is because the demo uses the Unix style standard I/O	*/
/*	library for opening the files (from GEMLIB) and since this	*/
/*	code from DRI is not reentrant, the sharing of the GEMLIB	*/
/*	code doesn't work. This could be fixed by either re-writing	*/
/*	the standard I/O routines, or by using the GEMDOS style		*/
/*	calls (from osbind.h) Fopen, Fread, etc.  We are working on	*/
/*	our improved version of the Unix standard I/O library.		*/
/*									*/
/*	Keep in mind that standard "fopen", "fclose" calls work		*/
/*	normally for progams that always used them.  The problem	*/
/*	only comes about when you are actually sharing the data		*/
/*	& code segments, like this demo does.  The sub-processes	*/
/*	created here all share one copy of code from "GEMLIB" made	*/
/*	at link time.  When individual programs are run as a		*/
/*	single process, they each have their own copy of GEMLIB		*/
/*	so everything works fine.  Got it?				*/
/*									*/
/*	The h command just soaks up CPU time to demonstrate the		*/
/*	fantastic CPU horsepower of the ST.				*/
/*									*/
/*	With this MICRO RTX demo, you can run up to three background	*/
/*	processes.  This is a configuration limitation only.  You	*/
/*	can configure MICRO RTX for however many processes you want.	*/
/*									*/
/************************************************************************/

#include <stdio.h>
#include <osbind.h>

char filename[64];

main()
{
	char buf[80];
	char *p;
	int i, delta;
	char c;
	int modem(), hog(), print();

	rtx_install();
 	delta = p_priority(0L, 0) - 100;
 	p_priority(0L, -delta);
	printf("MICRO RTX - Atari ST Multitasking Operating System Kernel\n");
	printf("(c) Copyright 1986 - David Beckemeyer\n\n");
	printf("This program is Free!  It is a simple application program\n");
	printf("that uses the MICRO RTX multitasking kernel to demonstrate\n");
	printf("a few of the multitasking capabilities of the ST.\n\n");
	printf("It may be freely distributed, provided all the introductory\n");
	printf("messages remain intact.   MICRO RTX is available from:\n\n");
	printf("\tBeckemeyer Development Tools\n");
	printf("\t592 Jean Street #304\n");
	printf("\tOakland, CA 94610\n");
	printf("\t(415) 658-5318\n\n");

	do {
		getline(buf, "* ");
		switch (buf[0]) {
		case 'e':
			getline(buf, "Exec file: ");
			Pexec(0, buf, "", "");
			break;
		case 'm':
			getline(filename, "File: ");
			p_create(100, 20, modem, 0, 0L);
			break;
		case 'h':
			p_create(100, 20, hog, 0, 0L);
			break;
		case 'p':
			getline(filename, "File: ");
			p_create(100, 20, print, 0, 0L);
			break;
		case 's':
			printf("Processes:\n----------\n\n");
			showpall();
			break;
		case 'l':
			getline(buf, "File: ");
			list(buf);
			break;
		case '\0':
		case 'x':
			break;
		case '?':
			printf("e - exec a program (foreground)\n");
			printf("h - create background CPU hog\n");
			printf("l - dump file to screen (foreground)\n");
			printf("m - spool file to RS-232\n");
			printf("p - spool file to printer\n");
			printf("s - show processes\n");
			printf("x - exit\n");
			break;
		default:
			printf("Unknown command - ? lists commands\n");
			break;
		}
	} while (buf[0] != 'x');
	rtx_remove();
	printf("\nBye Byte\n");
}



modem()
{
	char c;
	FILE *fd;

	if ((fd = fopen(filename, "r")) != 0) {
		while ((c = fgetc(fd)) != EOF) {
			Cauxout(c);
			if (c == '\n')
				Cauxout('\015');
		}
		fclose(fd);
	}
}


list(file)
char *file;
{
	char c;
	FILE *fd;

	if ((fd = fopen(file, "r")) != 0) {
		while ((c = fgetc(fd)) != EOF) {
			putchar(c);
		}
		fclose(fd);
	}
	else
		printf("%s does not exist\n", file);
}






hog()
{
	for (;;)
		;
}


print()
{
	char c;
	FILE *fd;

	if ((fd = fopen(filename, "r")) != 0) {
		while ((c = fgetc(fd)) != EOF) {
			Cprnout(c);
			if (c == '\n')
				Cprnout('\015');
		}
		fclose(fd);
	}
}



getline(buf, p)
char *buf;
char *p;
{
	Cconws(p);
	buf[0] = 78;
	Cconrs(buf);
	buf[2+buf[1]] = '\0';
	putchar('\n');
	strcpy(buf, buf+2);
}
-- 
----
	The master is not yet married, nor do I think he ever will be. 
			 -Rocky Horror Picture Show

Name:	James Turner
Mail:	Imagen Corp. 2650 San Tomas Expressway, P.O. Box 58101
        Santa Clara, CA 95052-8101
AT&T:	(408) 986-9400
UUCP:	...{decvax,ucbvax}!decwrl!imagen!turner
CompuServe: 76327,1575