home *** CD-ROM | disk | FTP | other *** search
- /******************************************************************************
- ********** **********
- ********** THE REAL EMULATOR (?) **********
- ********** **********
- *******************************************************************************
- ********** **********
- ********** Yet another brain-crash by Magic Ceee (ouch, that hurts!) **********
- ********** **********
- ******************************************************************************/
-
- #include "intuition/intuition.h"
- #include "graphics/gfxbase.h"
-
- struct IntuitionBase *IntuitionBase;
- struct GfxBase *GfxBase;
- struct Screen *MagicScreen;
- struct Window *MagicWindow;
- struct RastPort *MagicRast;
- struct ViewPort *MagicView;
-
- struct AlertMessage
- {
- WORD X;
- BYTE Y;
- char text[58];
- BYTE count;
- }
-
- texttab[]=
- {
- 80,17," Illegal copy of *** MicroBeastie C-64 Emulator *** ",99,
- 80,32," Press left mouse button to format your disks. ",0
- };
-
- /****************************************************************************/
-
- struct NewScreen ns = {
- 0,0,640,200,2,0,0,HIRES,CUSTOMSCREEN,NULL,NULL,NULL,NULL };
-
- struct NewWindow nw = {
- 0,0,640,200,0,0,RAWKEY,SIMPLE_REFRESH|BORDERLESS|ACTIVATE,
- NULL,NULL,NULL,NULL,NULL,0,0,0,0,CUSTOMSCREEN };
-
- UWORD Sprite_data[] = { /* Invisible Pointer */
- 0,0,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0,0 };
-
- char *lies[] = { "Installing 6502 routines...\n",
- "Installing Kernel..........\n",
- "Checking Interpreter.......\n",
- "\nTransforming!\n",
- "\nAmiga C-64 Emulator V2.7, designed by Magic Ceee.\n\n" };
-
- /*****************************************************************************/
-
- main()
- {
- int i;
-
- Write(Output(),lies[4],strlen(lies[4]));
-
- for(i=0;i<=3;Tell_A_Lie(lies[i++]));
-
- OpenStuff();
-
- /****************************************************************************
- *** Kick pointer outa sight ***
- ****************************************************************************/
-
- SetPointer(MagicWindow,&Sprite_data[0],15,15,-7,-7);
-
- /****************************************************************************
- *** Steal a RastPort ...and a ViewPort ***
- ****************************************************************************/
-
- MagicRast=MagicWindow->RPort;
-
- MagicView=(struct ViewPort *)ViewPortAddress(MagicWindow);
-
- /****************************************************************************
- *** Set display characteristics ***
- ****************************************************************************/
-
- ShowTitle(MagicScreen,FALSE); /* No screen title */
-
- SetRGB4(MagicView,0,0,0,8); /* Dark blue */
- SetRGB4(MagicView,2,8,8,15); /* Light blue */
- SetRGB4(MagicView,3,0,0,8);
-
- SetRast(MagicRast,2); /* Fill screen using color reg. #2 */
- SetAPen(MagicRast,3); /* Use color reg. #3 */
- RectFill(MagicRast,38,9,602,189); /* Display a dark blue area */
-
- /****************************************************************************
- *** Well...do you believe it's true? ***
- ****************************************************************************/
-
- SetAPen(MagicRast,2);
- Move(MagicRast,179,20);
- Text(MagicRast,"**** COMMODORE 64 BASIC V2 ****",31);
- Move(MagicRast,145,34);
- Text(MagicRast,"64K RAM SYSTEM 38911 BASIC BYTES FREE",38);
- Move(MagicRast,44,53);
- Text(MagicRast,"READY",5);
-
- for(;;)
- {
- Delay(27); /* Time left before cursor says hello again */
- SetAPen(MagicRast,2);
- RectFill(MagicRast,44,55,52,62); /* Draw a cursor */
- Delay(27); /* ...and wait... */
- SetAPen(MagicRast,3);
- RectFill(MagicRast,44,55,52,62); /* ...then kick it outa sight */
- if(GetMsg(MagicWindow->UserPort)) break; /* Any user activities? */
- }
-
- DisplayAlert(RECOVERY_ALERT,&texttab,45); /* Yes, so let's panic */
- GoHome("\f\n\n\n --> Magic Ceee says: ceeein' is beleeevin'...\n\n");
- }
-
- /****************************************************************************/
-
- Tell_A_Lie(which_lie)
- char *which_lie;
- {
- Write(Output(),which_lie,strlen(which_lie));
- Delay(4*50);
- }
-
- /****************************************************************************/
-
- OpenStuff()
- {
- if(!(IntuitionBase=(struct IntuitionBase *)
- OpenLibrary("intuition.library",0)))
- GoHome("Intuition won't open!\n");
-
- if(!(GfxBase=(struct GfxBase *)
- OpenLibrary("graphics.library",0)))
- GoHome("Graphix won't open!\n");
-
- if(!(MagicScreen=OpenScreen(&ns)))
- GoHome("Can't open that damned screen!\n");
-
- nw.Screen=MagicScreen;
- if(!(MagicWindow=OpenWindow(&nw)))
- GoHome("It's cold outside - Intuition won't open a window!\n");
-
-
- }
-
- /****************************************************************************/
-
- GoHome(msg)
- char *msg;
- {
- Write(Output(),msg,strlen(msg));
-
- ClearPointer(MagicWindow);
- if(MagicWindow) CloseWindow(MagicWindow);
- if(MagicScreen) CloseScreen(MagicScreen);
- if(GfxBase) CloseLibrary(GfxBase);
- if(IntuitionBase) CloseLibrary(IntuitionBase);
- }
-