[comp.sys.amiga] Task structure switch & launch funcs

root@sbcs.UUCP (Root) (08/26/87)

What follows is a quickie demo of task tc_launch & tc_switch.  The
program was written using the Sun 68010 compiler, so it may require
some modifications before it will work for Manx or Lattice..

					Rick Spanbauer
					SUNY/Stony Brook

-------------------------------------------------------------------

/*
** Print launch and switch entries.
*/

#include <exec/types.h>
#include <exec/tasks.h>
#include <libraries/dos.h>

int	launch_cnt = 0;
int	switch_cnt = 0;

/*
** launch & switch are called on task switch.  Both functions just
** increment a counter.  Manx'ers may have to setup a4 at the indicated
** points.
*/
VOID launch_func()
{
	/* Manx: setup a4 */
	launch_cnt++;
}

VOID switch_func()
{
	/* Manx: setup a4 */
	switch_cnt++;
}

main()
{
	struct Task *me, *FindTask();

	me = FindTask(0);
	me->tc_Switch = switch_func;
	me->tc_Launch = launch_func;
	me->tc_Flags = TF_SWITCH|TF_LAUNCH;

	while(1){
		printf("launch=%d, switch=%d\n", launch_cnt, switch_cnt);
		Delay(TICKS_PER_SECOND*3);
	}
}
---------------------------------------------------------------
Here's the uuencoded binary in case Manx just will not "do it":
---------------------------------------------------------------
begin 644 task
M   #\P         #          (   18    ZP        /I   $6"//    
M $CG@(!P "(\   #K")\   "\)*)Y(%@ B+ 4<G__"/X  0   +P3KD   "P
M+GD     3G4  $Y6  !2N0    1.7DYU3E8  %*Y    "$Y>3G5.5O_\0J=A
M  2T6$\M0/_\($ A?    $H 0B!N__PA?    #P 1B!N__P1? #   XO.0  
M  @O.0    1(>0    QA  4(3^\ #$AX )9A  / 6$]@VDYU3E;_[$C7.(!(
M>  A2'D    P3KD   5D4$\CP    O1F&$*G2'D  X '3KD   3,4$\N>0  
M OQ.=4*G3KD   446$\H0$JL *QG  '"("P K.6 )D @*P 0Y8 J0! 52(!(
MP-"N  A4@"/    #A$*G+SD   .$3KD   3H4$\CP    XP0%4B 2, O $AM
M  $O.0   XQ.N0  "DA/[P ,2'D    \$!5(@$C T+D   .,+P!.N0  "B!0
M3R N  A2@"\ +RX #"\Y   #C$ZY   )^$_O  Q"N0   X J>0   XQ@+'  
M, =!^0   $$(,  $" !F"E*-$!5(@#X 9N1"'4I'9R)2N0   X!@ E*-$!5(
M@$'Y    00@P  0  &;L#!4 (&S00A5"IR Y   #@%* Y8 O $ZY   $Z%!/
M(\    .(?@ J>0   XQ@-%*-$!5(@$'Y    00@P  0  &;L<  P!^6 ('D 
M  .((8T( $A53KD   HP6$]2@-O 4D=P # 'L+D   . 9<)P # 'Y8 @>0  
M XA"L @ 3KD   20('D    F(( @>0   "8Q?(    1.N0  !+P@>0   "8A
M0  &('D    F,7R  0 *3KD   2\('D    F(4  #"!Y    )C%\@ $ $'X!
M(\<   ,$+SD   .(+SD   . 8   RDAL %Q.N0  !9!83TAL %Q.N0  !5!8
M3R/    #D"!Y   #D$JH "1G%"!Y   #D"!H "0O$$ZY   $5%A/('D   .0
M2J@ (&=V2'@#[2!Y   #D"\H "!.N0  !*!03R!Y    )B" 9U8@>0   "8B
M>0   "8A40 ,(GD    F(V@ #  &('D    F,7R    $('D    F(GD    F
M,WR  0 0,6D $  *('D    F(!#E@"U __P@0"EH  @ I"\Y   #D$*G3KD 
M  !84$]"IV$,6$],[CB _^Q.7DYU3E;__$*N__Q@$"\N__Q.N0  "J!83U*N
M__PP.0   "1(P+"N__QNXDJY    *F<(('D    J3I!*N0   OAG#B\Y   "
M^$ZY   % %A/2KD   .09CXO.0   X0O.0   XQ.N0  !3A03R Y   #@%* 
MY8 O "\Y   #B$ZY   %.%!/+RX "$ZY   $?%A/3EY.=4ZY   %*"\Y   #
MD$ZY   %?%A/("\ ""YY   "_$YU   O#B(O  @L>0   O1.KO^"+%].=2\.
M(B\ ""QY   "]$ZN_SHL7TYU+PXB+P (+'D   +T3J[_<"Q?3G4O#BQY   "
M]$ZN_\HL7TYU2.<@ DSO  8 #"QY   "]$ZN_^),WT $3G4  "\.+'D   +T
M3J[_Q"Q?3G5(YP$&+B\ $"IO !0L>0   O!.KO^43-]@@$YU+PY,[P #  @L
M>0   O!.KO\Z+%].=0  +PXB;P (+'D   +P3J[^8BQ?3G4O#B)O  @L>0  
M O!.KO[:+%].=2\.+'D   +P3J[_?"Q?3G4O#B)O  @@+P ,+'D   +P3J[_
M+BQ?3G4O#B!O  @L>0   O!.KOZ,+%].=2\.(F\ "" O  PL>0   O!.KOW8
M+%].=2\.(F\ ""QY   "\$ZN_H8L7TYU+PX@;P (+'D   +P3J[^@"Q?3G5.
M5@  2&X #"\N  A(>0  "2!.N0  !CI/[P ,3EY.=4Y6__A(UR" *FX $ RN
M    !  49P1*K@ ,(&X ""X00JX %$JN  QL$$2N  Q*AVP(1(=R 2U! !0@
M!R(N  Q.N0  "Y!!^0   40;, @ ( <B+@ ,3KD   LH+@!FVDJN !1G!!L\
M "T@#4SN((#_^$Y>3G5.5O\(2-<P@"IN  @H;@ ,0J[_^"UN !#__&   JYR
M);Z!9@ "DD(N_R)^ 2U'__1^("U'__ M?   )Q#_[! <2(!(P"X <BVP@68,
M0J[_]! <2(!(P"X <C"^@68,+4'_\! <2(!(P"X <BJ^@686(&[__"U0_^A8
MKO_\$!Q(@$C +@!@,D*N_^A@'B N_^C0@"( Y8'0@="'?C"0ARU _^@0'$B 
M2, N $'Y    00@P  )X &;4<BZ^@696$!Q(@$C +@!R*K"!9A8@;O_\+5#_
M[%BN__P0'$B 2, N & R0J[_[& >("[_[-" (@#E@="!T(=^,)"'+4#_[! <
M2(!(P"X 0?D   !!"#   G@ 9M1R!"U!_^1R;+Z!9A 0'$B 2, N '($+4'_
MY& .<FB^@68($!Q(@$C +@ @!W)CL(%G=')DL(%G)G)OL(%G%')SL(%G1')U
ML(%G#')XL(%G"F!>?@A@"GX*8 9^$& "?O8M1__@+R[_Y$AN_R(O!R\N__QA
M /X"3^\ $"U _]P@+O_DT:[__& R(&[__%BN__PM4/_<+R[_W$ZY   *,%A/
M+4#_Y& @(&[__"X06*[__$'N_R$M2/_<$(=![O\BD>[_W"U(_^0@+O_DL*[_
M[&\&+6[_[/_D2J[_]&=@(&[_W P0 "UG!@P0 "MF0@RN    ,/_P9CA3KO_H
M(&[_W%*N_]P0$$B 2, O $Z56$]^_["'9AIP_V   *XO+O_P3I583W[_L(=G
M  "&4J[_^" N_^A3KO_HL*[_Y&[>0J[_X& H("[_X+"N_^QL)B!N_]Q2KO_<
M$!!(@$C +P!.E5A/?O^PAV=(4J[_X"!N_]Q*$&;0("[_X-&N__A*KO_T9C8@
M+O_H4Z[_Z+"N_^1O*$AX "!.E5A/?O^PAV<24J[_^&#>+P=.E5A/?O^PAV8$
M</]@%%*N__@0'$B 2, N &8 _4H@+O_X3.XP@/\(3EY.=0  3E8  $AY   !
M;"\N  A.N0  #5Q03TY>3G4  $Y6__PNC2I\   !6$IM !!F%D*M  1"K0 (
M<O\J@2 -*F[__$Y>3G5+[0 4N_P   +H9=AP &#H3E;_^"Z-*FX "$AX! !.
MN0  #/183RU __QF*$HM !)M4@PM !0 $FQ*$"T $DB 2, &@    Y0K0  (
M<@$K00 ,8# K?   !   # !M @  $"MN__P "! M !)(@$C +P!.N0  "G!8
M3TJ 9P8 ;0"  ! J;O_X3EY.=3 \?_]@   &,"\ #B!O  1*&&8 __R0_  !
M(F\ " 1   $0V5?(__Q"(" O  1.=2!O  0@"")O  @0V6;\3G4@;P $( A*
M&&;\D< @" 2      4YU  !,[P,   0@""(O  Q@   $$-E7R?_\!D$  6  
M  1"&%')__Q.=0  3E8  " N  C0@"( TH'0@2!Y    )B\P" !.N0  "Q18
M3W( 2H!6P40!( %.7DYU3E;_^$C7(( N+@ (*D?;S2(-TH';P=OY    )DJ'
M;1 P.0   "1(P+Z ; 1*E68,?@,CQP   P!P_V 8,"T ! @   ]F"B\53KD 
M  L 6$]"E7  3.X@@/_X3EY.=0  +PXB+P (+'D   +T3J[_W"Q?3G4O#B(O
M  @L>0   O1.KO\H+%].=4Y6  !(YS@ )@ H 0R!  $  &P82$ "@   __^ 
MP30 , . P4A , )(0& RXH#B@0* ?____P*!?____PR!  $  &SH@,$"@   
M__\D "($3KD   OTMH!L E."( ),WP <3EY.=0  3E8  $CG,  D  R!  $ 
M &P  !1"0$A @,$P H#!0D!(0&   #@F >* XH$"@'____\"@7____\,@0 !
M  !L /_H@,$"@   __\B TZY   +]+2 ; *0@Y""1(!,WP ,3EY.=4Y6  !(
MYS  )  F 4* , + PS("2$+$PTA#PL/2@DA!0D'0@4S?  Q.7DYU3E;_^$C7
M,  J>0   ZA@%BA5("T !%" +P!(54ZY   %.%!/*DPB#6;F0KD   .H3.XP
M /_X3EY.=4Y6__PNC2/\   ,(    "I"IR N  A0@"\ 3KD   3H4$\J0$J 
M9@1P & 8*KD   .H*VX "  $(\T   .H0>T "" (*F[__$Y>3G5.5O_X2-<P
M )G,*FX "%&-( T(    9BHO+@ ,89983RA (@QG'"\M  1(5"\N  A.N0  
M$/I/[P ,+RX "&$@6$\@#$SN, #_^$Y>3G5.5@  +RX "&$ _UQ83TY>3G5.
M5O_X2-<P )G,*GD   .H8 X@+@ (48"[P&<,*$TJ52(-9NYP_V B(@QG!"B5
M8 8CU0   Z@@+0 $4( O $A53KD   4X4$]P $SN, #_^$Y>3G4  $Y6__PN
MARXN  @O+@ ,+P=.N0  #:!03W(*OH%F'B!N  PP*  0 H    " 9PY(>/__
M+PA.N0  #GA03RXN__Q.7DYU3E;__"Z-*FX #%.5;!)P ! N  LO $A580  
MOE!/8! @;0 $$*X "W  $!!2K0 $*F[__$Y>3G5.5O_\+HTJ?    5@@37(4
MV\%(4&$26$^[_    NAE["IN__Q.7DYU3E;_^$C7(( J;@ (?@ B#68$</]@
M6$IM !!G0# M ! (   *9PQ(>/__2%5A2E!/+@ 0+0 22(!(P"\ 3KD   J@
M6$^.@# M ! (   )9PPO+0 (3KD   T&6$]"K0 $0JT "'+_*H%";0 0( =,
M[B" __A.7DYU3E;_]$C7(( J;@ ((_P   W8   "[# M ! (   %9P9P_V  
M -@P+0 0"   "F<Z+BT !)ZM  @O!R\M  @0+0 22(!(P"\ 3KD   ^ 3^\ 
M#+"'9Q0 ;0 @ !!"K0 $?O\JAW#_8   E RN_____P ,9A(";?O_ !!"K0 $
M?O\JAW  8'9*K0 (9A1(54ZY   )=%A/2JT "&8$< !@7 RM     0 ,9BX=
M;@ /__](>  !2&[__Q M !)(@$C +P!.N0  #X!/[P ,?@&PAV:$("X #& D
M*VT "  $("T #%. *H  ;00  ! @;0 $$*X #W  $!!2K0 $3.X@@/_T3EY.
M=0  3E;_]$C7(, N+@ (3KD  ! 0*D?;S2(-TH';P=OY    )DJ';1 P.0  
M "1(P+Z ; 1*E68,?@,CQP   P!P_V!$,"T !'X#P(=F#'X&(\<   , </]@
M+B\N ! O+@ ,+Q5.N0  $*!/[P ,+ !^_["'9A!.N0  $) CP    P!P_V "
M( 9,[B# __1.7DYU3E;__$AX$ !"ITZY   0O%!/+4#__ @   QF!'  8#9*
MN0   P1F!B N__Q@*$AX  1(>0   NA.N0  !+PO $ZY   0H$_O  Q(>  !
M3KD  !!L6$].7DYU  !.5@  2KD   +L9P@@>0   NQ.D"\N  A.N0   YY8
M3TY>3G4O#BQY   "]$ZN_WPL7TYU2.<P DSO  X $"QY   "]$ZN_]!,WT ,
M3G4  "\.3.\  P (+'D   +P3J[^SBQ?3G4  $Y6__A(UR" *FX ""XN  Q@
M D(=( =3ATJ 9O9,[B" __A.7DYU3E;_\$C7,, J;@ (*&X #"XN ! @# @ 
M  !F." -"    &8P( =L!'P/T(;H@"P 8! XW3C=.-TXW3C=.-TXW3C=4<[_
M[D)&4X9DYGP/SH9@ AC=( =3ATJ 9O9,[C# __!.7DYU   #[    #P     
M    +@   &P   !X    Q    -P   #N   !*@   4H   %H   !@@   >X 
M  (L   "5@   G    *,   "Q    M    +V   #&    X@   .N   #Y@  
M! (   0<   $*   !#0   1    %L@  !;@   8&   &'   !^@   DP   )
MA   "=@   J,   *Z@  "WH   O>   ,/@  #&(   QV   ,V   #4@   UN
M   -D@  #CX   Y6   .A@  #L(   \(   //   #XX   _D   /]@  $!P 
M !!*   04@  $&   !"&    =@    $    "    #@   !0    H    -   
M $(   !0    B@   )    "6    O@   ,P   #D   !'    20   $R   !
M1    50   %@   !?    8P   &2   !G@   ;P   '*   !X@   ?8   '^
M   "#    B    (^   "3    EP   )D   "=@   H    *2   "G    JH 
M  *P   "M@   M@   +>   "Z@   OX   ,.   #(    RH   ,P   #.@  
M T8   -2   #6    VH   .    #N@   \@   /0   #V    ^    /N   #
M]@   _P   0*   $%@  !#H   1,   $7   !'    2$   $E   !*P   3 
M   $V@  !/(   4(   %'   !2P   5$   %6   !7    6$   %F   !@P 
M  ;F   '0@  "28   E$   ):@  ":@   J"   *N   "L(   K4   +"   
M"QP   PJ   ,3   #&8   R(   ,E   #1(   TX   -X   #?(   Z*   /
MG@  #Z@   ^Z   /T   #_P  ! R   01   $'(  !!Z   0E   $*P  !#&
M         _(   /J    O                &QA=6YC:#TE9"P@<W=I=&-H
M/25D"@     4   #"        &1O<RYL:6)R87)Y "      (" @(" @(" @
M,# P,# @(" @(" @(" @(" @(" @(""00$! 0$! 0$! 0$! 0$! # P,# P,
M# P,#$! 0$! 0$ )"0D)"0D! 0$! 0$! 0$! 0$! 0$! 0$! 4! 0$! 0 H*
M"@H*"@(" @(" @(" @(" @(" @(" @("0$! 0"                      
M                                                            
M                                                            
M                                 # Q,C,T-38W.#EA8F-D968     
M                     0$                        ! 0 !        
M              $!  (                                         
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                            
M                                                     %Y#"@  
G       #[     $    !    )@        /R   #ZP        /R
 
end