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