home *** CD-ROM | disk | FTP | other *** search
- RCS_ID_C="$Id: init.c,v 3.1 93/10/07 19:24:21 ppessi Exp $";
- /*
- * init.c --- startup code for agnet.device
- *
- * Author: ppessi <Pekka.Pessi@hut.fi>
- *
- * Copyright (c) 1993 OHT-AmiTCP/IP Group,
- * Helsinki University of Technology, Finland.
- * All rights reserved.
- *
- * Created : Thu Jan 21 17:32:55 1993 ppessi
- * Last modified: Thu Oct 7 18:25:35 1993 ppessi
- *
- * $Log: init.c,v $
- * Revision 3.1 93/10/07 19:24:21 ppessi
- * Release 2.1 version
- *
- * Revision 2.1 93/05/14 16:48:31 ppessi
- * Release version
- *
- */
-
- #include <clib/exec_protos.h>
- #include <clib/dos_protos.h>
- #include <clib/utility_protos.h>
- #include <clib/timer_protos.h>
- #include <clib/alib_stdio_protos.h>
-
- #ifdef __SASC
- #include <pragmas/exec_pragmas.h>
- #endif
-
- #define NOINLINE
-
- #include "agnet.h"
- #include "agnet_protos.h"
- #include "agnet_rev.h"
-
- /* This is only declaration, it is defined after Start() */
- extern const APTR FunctionTable[];
-
- /*
- * Starting stub routine
- */
- LONG ASM Start(VOID)
- {
- LONG exit_val;
- struct AgnetDevice *ad;
-
- /* Allocate a device base */
- if (!(ad = (struct AgnetDevice *)
- MakeLibrary(FunctionTable, NULL, NULL, sizeof(*ad), NULL)))
- return(20);
-
- ad->ad_SysBase = *(struct ExecBase **)4;
- ad->ad_DOSBase = OpenLibrary("dos.library", 36L);
- ad->ad_IntuitionBase = OpenLibrary("intuition.library",37L);
-
- /* Open timer device */
- if (ad->ad_DOSBase && ad->ad_IntuitionBase &&
- !OpenDevice("timer.device", UNIT_MICROHZ,
- (struct IORequest *)&ad->ad_Timer, 0L)) {
- /* Call main routine */
- exit_val = main(ad);
- CloseDevice(&ad->ad_Timer);
- } else {
- exit_val = 40;
- }
-
- if (ad->ad_IntuitionBase) CloseLibrary(ad->ad_IntuitionBase);
- if (ad->ad_DOSBase) CloseLibrary(ad->ad_DOSBase);
- FreeMem((UBYTE *)ad - ad->ad_Device.lib_NegSize,
- ad->ad_Device.lib_NegSize + ad->ad_Device.lib_PosSize);
- return exit_val;
- }
-
- struct AgnetDevice *AgnetDeviceBase = NULL;
-
- /*
- * Variables for Device Base
- */
- const APTR FunctionTable[] =
- {
- (APTR) DevOpen,
- (APTR) DevClose,
- (APTR) DevExpunge,
- (APTR) DevReserved,
- (APTR) DevBeginIO,
- (APTR) DevAbortIO,
- (APTR) -1
- };
-
-