home *** CD-ROM | disk | FTP | other *** search
- /*
- * Time Module Main.c
- *
- * This program source code and it's compiled version is
- * Copyright (c) 1991 N. Hawthorn.
- * This program source code and it's compiled version IS NOT IN THE
- * PUBLIC DOMAIN ! Please read the "COPYRIGHT NOTICE / NH" file for details
- * regarding use of this program source code and it's compiled version.
- *
- * This module's name is "time", it's type is "MOD1", it's ID is 144
- * Use a resource mover to assign a new number to it !
- *
- * This is where it all starts...
- *
- */
-
- #define INMAIN
-
- #include <SetUpA4.h>
- #include "MUBBS Module.h"
-
- pascal void main (mode1,G1,P1) /* called from the main routines, and what mode to be in */
- int mode1;
- struct GS *G1; /* we point to the "global" struct in the Main Module here */
- Ptr P1; /* we ignore this pointer, we do not use it at all */
- {
- Handle temph;
- float version = 0.5; /* what version of MUBBS you are compatable with IE: .5 and above */
- RememberA0(); SetUpA4(); /* This sets up the A4 register to access our globals */
- asm { _RecoverHandle }; asm {move.l a0,temph}; HLock(temph); /* locks our module, do this ! */
-
- G=G1; /* This MUST be the first thing you do in main only, it sets up the struct globals */
- mode[u]=mode1; /* set up our mode so that you can read it anywhere */
-
- switch (mode[u]) { /* any un-handled modes return error from this module */
- case 2:
- doit();
- G->moduleresult=0;
- break;
- case 98:
- versionck(version); /* just return after this call, don't modify anything */
- break;
- case 0:
- strcpy (G->programmer,"N Hawthorn"); /* show the programmer's name up to 20 chars*/
- G->moduleresult=0; /* this was also a init call if we need close call put 99 here */
- break;
- default:
- G->moduleresult=1; /* return bad code */
- };
-
- HUnlock(temph); /* unlocks this module, do this ! */
- RestoreA4(); /* call this when you are all done */
- }
-
- doit()
- {
-
- char datetime[25];
-
- if (!G->online[u]) goto byebye; /* do this check so we can log out if hang up */
-
- loguser(G->modulename[u]); /* this tells where you are for remote sysop, or writes to log file */
-
- /* you print the following so that the sysop can monitor use on the mac screen */
-
- print("C> Line %d %s, at: %s\n",(u+1),G->username[u],G->modulename[u]);
-
- getdatetime(datetime); /* gets the date & time */
- send("]You are on line %d, %s]", (u+1), datetime);
- send("]Time on %d minute(s) so far, %d allowed.]]",G->timeon[u],G->timeallowed[u]);
-
- return;
-
- byebye:
- G->online[u]=FALSE; /* show we timed out */
- }
-
-