home *** CD-ROM | disk | FTP | other *** search
Text File | 1998-06-20 | 937 b | 66 lines | [TEXT/CWIE] |
- asm void __Startup__(void);
-
- typedef pascal void (*MainPP)(Handle theHandle);
-
- static void Load3DNoDoz(void);
-
- asm void __Startup__(void)
- {
- DS.B 512 // for the Disassembler load
-
- Movem.L D0-D2/A0-A1/A4,-(SP)
- Jsr Load3DNoDoz
- Movem.L (SP)+,D0-D2/A0-A1/A4
-
- Rts
- }
-
- static void Load3DNoDoz(void)
- {
- short cResFile = CurResFile();
- short rFile = OpenResFile("\p3D no ’doz II");
- Handle h;
- FileParam pb;
- MainPP mainProc;
- THz cZone;
-
- if (rFile == -1)
- {
- DeleteMe:
- pb.ioNamePtr = "\pDisassembler";
- pb.ioVRefNum = 0;
- pb.ioFVersNum = 0;
-
- PBDeleteSync((ParmBlkPtr) &pb);
-
- UseResFile(cResFile);
-
- return;
- }
-
- cZone = GetZone();
- SetZone(SystemZone());
-
- h = Get1Resource('init', 128);
-
- if (!h)
- {
- SetZone(cZone);
- goto DeleteMe;
- }
-
- HNoPurge(h);
- HLock(h);
- DetachResource(h);
-
- mainProc = (MainPP) *h;
-
- (*mainProc)(h);
-
- SetZone(cZone);
-
- CloseResFile(rFile);
-
- UseResFile(cResFile);
- }
-