home *** CD-ROM | disk | FTP | other *** search
- /* KillClick */
- /* Written by Brian Gontowski */
-
- #include "exec/types.h"
- #include "exec/ports.h"
- #include "exec/io.h"
- #include "devices/trackdisk.h"
- #include "libraries/dos.h"
- #include "libraries/dosextens.h"
- #include "stdio.h"
- #include "proto/exec.h"
- #include "proto/dos.h"
-
- extern struct Library *SysBase;
- struct MsgPort *DiskPort=NULL;
- struct IOExtTD *DiskReq=NULL;
- UBYTE DiskDev=FALSE;
- struct TDU_PublicUnit *DiskUnit;
- ULONG ChangeCount;
-
- void Finish (msg,r)
- UBYTE *msg;
- int r;
- {
- if (DiskDev)
- CloseDevice ((struct IORequest *)DiskReq);
- if (DiskReq)
- DeleteIORequest ((struct IORequest *)DiskReq);
- if (DiskPort)
- DeleteMsgPort (DiskPort);
- if (msg)
- Write (Output (),msg,strlen (msg));
- _exit (r);
- }
-
- void _main ()
- {
- if (SysBase->lib_Version<36)
- Finish ("ERROR: KillClick requires KickStart V2.0!\n",RETURN_FAIL);
- if (!(DiskPort=CreateMsgPort ()))
- Finish ("ERROR: Unable to create a message port!\n",RETURN_FAIL);
- if (!(DiskReq=(struct IOExtTD *)
- CreateIORequest (DiskPort,sizeof (struct IOExtTD))))
- Finish ("ERROR: Unable to create an IO request!\n",RETURN_FAIL);
- if (OpenDevice ("trackdisk.device",0,(struct IORequest *)DiskReq,0))
- Finish ("ERROR: Unable to open the \"trackdisk.device\"!",RETURN_FAIL);
- DiskDev=TRUE;
- DiskUnit=(struct TDU_PublicUnit *)DiskReq->iotd_Req.io_Unit;
- DiskUnit->tdu_PubFlags|=TDPF_NOCLICK;
- Finish (NULL,RETURN_OK);
- }
-