home *** CD-ROM | disk | FTP | other *** search
/ BCI NET 2 / BCI NET 2.iso / archives / programming / misc / amigem.lha / amigem / exectest / exectest.c next >
Encoding:
C/C++ Source or Header  |  1995-02-02  |  1.5 KB  |  63 lines

  1. #include <exec/execbase.h>
  2. #include <amigem/utils.h>
  3. #include <exec/resident.h>
  4. #include <clib/_exec.h>
  5. #include <clib/_expansion.h>
  6.  
  7. #include <amigem/fd_lib.h>
  8.  
  9. #define NewList(a) \
  10. ((a)->lh_Head=(struct Node *)&(a)->lh_Tail, \
  11.  (a)->lh_Tail=NULL, \
  12.  (a)->lh_TailPred=(struct Node *)&(a)->lh_Head)
  13.  
  14. APTR write;
  15.  
  16. void countfunc(void)
  17. {
  18.   for(;;)
  19.     (*(void (*)(int,char *,int))write)(2,"b",1);
  20. }
  21.  
  22. FC3(0,LONG,Test_Init,A1,APTR dummy1,D0,BPTR dummy2,A0,struct ExecBase *SysBase,A6)
  23. {
  24.   {
  25.     struct ExpansionBase *ExpansionBase;
  26.     struct newtsk
  27.     { 
  28.       struct Task t;
  29.       UBYTE stk[MINSTACKSIZE];
  30.     } *nt;
  31.     struct MemList *ml;
  32.     ExpansionBase=(struct ExpansionBase *)OpenLibrary("expansion.library",0);
  33.     write=((APTR *)FindConfigDev(NULL,2011,88)->cd_BoardAddr)[63];
  34.     ml=(struct MemList *)AllocMem(sizeof(struct MemList),MEMF_PUBLIC); /* Must not fail */
  35.     nt=(struct newtsk *)AllocMem(sizeof(struct newtsk),MEMF_PUBLIC|MEMF_CLEAR);
  36.     ml->ml_NumEntries=1;
  37.     ml->ml_ME[0].me_Addr=nt;
  38.     ml->ml_ME[0].me_Length=sizeof(struct newtsk);
  39.     nt->t.tc_SPLower=nt->stk;
  40.     nt->t.tc_SPUpper=nt->stk+MINSTACKSIZE;
  41.     nt->t.tc_SPReg  =STACKPOINTER(nt->stk,nt->stk+MINSTACKSIZE);
  42.     NewList(&nt->t.tc_MemEntry);
  43.     AddHead(&nt->t.tc_MemEntry,&ml->ml_Node);
  44.     AddTask(&nt->t,&countfunc,NULL);
  45.   }
  46.   for(;;)
  47.     (*(void (*)(int,char *,int))write)(2,"a",1);
  48. }
  49.  
  50. const struct Resident Test_RomTag=
  51. {
  52.   RTC_MATCHWORD,
  53.   (struct Resident *)&Test_RomTag,
  54.   NULL,
  55.   0,
  56.   0,
  57.   0,
  58.   0,
  59.   NULL,
  60.   NULL,
  61.   (APTR)&__Test_Init
  62. };
  63.