home *** CD-ROM | disk | FTP | other *** search
- /***************************************************************************
- * *
- * FILEENCRYPT *
- * *
- * Encrypts & Decrypts any file, you like to hide from curiosity... *
- * *
- * Public Domain, by Lorenz Wiest during 30th Jul - 7th Aug '90 *
- * *
- ***************************************************************************/
-
- #define TOPY 11
- #define WIDTH 272
- #define HEIGHT 155
- #define ENCRYPT 0
- #define DECRYPT 1
-
- #include "exec/types.h"
- #include "exec/memory.h"
- #include "intuition/intuition.h"
- #include "graphics/gfx.h"
- #include "graphics/gfxmacros.h"
- #include "libraries/dos.h"
-
- struct IntuitionBase *IntuitionBase = NULL;
- struct GfxBase *GfxBase = NULL;
- struct IntuiMessage *Nachricht = NULL;
- struct Window *Window = NULL;
- struct Remember *MyRememberKey = NULL;
- struct RastPort *WRast = NULL;
-
- struct NewWindow NewWindow = { 130,30,WIDTH,HEIGHT,0,1,CLOSEWINDOW|GADGETUP,
- WINDOWDEPTH|WINDOWDRAG|WINDOWCLOSE|ACTIVATE,
- 0,0," FileEncrypt ",0,0,0,0,0,0,WBENCHSCREEN };
- ULONG Copy2Chip();
-
- #define INTRO 1
- #define MODUS 2
- #define READ 3
- #define WRITE 4
- #define KEYWD 5
- #define ERROR 6
-
- char ReadFile[50]="DF1:\0";
- char WriteFile[50]="DF1:\0";
- char KeyWord[40]="\0";
- char UndoString[40];
- int CurrentMode = ENCRYPT;
- int Frame=INTRO;
- int NextFrame;
-
- struct Gadget *Adr;
- struct Gadget *FirstGad = NULL;
- int GadgetNumber= 0;
-
- UWORD SleepD[] = { 0x0000,0x0000,0x0600,0x0600,0x0f40,0x0f40,0x3fe0,0x3fe0,
- 0x7fe0,0x7fe0,0x61f0,0x7ff0,0x7bf8,0x7ff8,0xf7f8,0xfff8,
- 0x61fc,0x7ffc,0x7f0c,0x7ffc,0x3fde,0x3ffe,0x7fbc,0x7ffc,
- 0x3f0c,0x3ffc,0x1ff8,0x1ff8,0x07f0,0x07f0,0x01c0,0x01c0,
- 0x0700,0x0700,0x0fc0,0x0fc0,0x0680,0x0680,0x0000,0x0000,
- 0x00c0,0x00c0,0x00e0,0x00e0,0x0040,0x0040,0x0000,0x0000 };
-
- UWORD Icon1D[] = { 0xE310,0x0001,0x0000,0x0000,0x0000,0x0000,0x003D,0x0017,
- 0x0005,0x0003,0x0001,0x00C0,0xBFC0,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0400,0x00C4,0x5DC6,0x0001,0x8C88,0x8000,0x0000,0x8000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x003D,0x0017,0x0002,0x0001,0x68E8,0x0300,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0007,0xFFFF,0xF980,
- 0x0000,0x0007,0xFFFF,0xF9E0,0x0000,0x0000,0x07FF,0xF9F8,
- 0x0000,0x003F,0xF07F,0xF9FE,0x0000,0x01D5,0x5E3F,0xF800,
- 0x0000,0x06BF,0xEB81,0xFFFF,0x8000,0x0FFF,0xFDDC,0x0000,
- 0x0000,0x181F,0xFEFF,0xFFFF,0xFF80,0x300F,0xFF60,0x0000,
- 0x03E0,0x300F,0xFF7F,0xFFFF,0xFFC0,0x300F,0xFF7F,0xFFFF,
- 0xFE00,0x181F,0xFEFF,0xCE47,0x3000,0x0FFF,0xFDDC,0x0000,
- 0x0000,0x06BF,0xEB81,0xFFFF,0x8000,0x01D5,0x5E3F,0xFFFF,
- 0x8000,0x003F,0xF0FF,0xC00F,0x8000,0x0000,0x07FF,0xFFFF,
- 0x8000,0x0007,0xFFFF,0xFFFF,0x8000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x001F,0xFFFF,0xFF80,
- 0x0000,0x0018,0x0000,0x0660,0x0000,0x0018,0x0000,0x0618,
- 0x0000,0x003F,0xF800,0x0606,0x0000,0x03FF,0xFF80,0x0601,
- 0x8000,0x0FFF,0xFFC0,0x07FF,0xE000,0x1FFF,0xFFFE,0x0000,
- 0x6000,0x3FFF,0xFFFF,0xFFFF,0xFFC0,0x7FFF,0xFFFF,0xFFFF,
- 0xFFF0,0xFF7F,0xFFFF,0xFFFF,0xFFF8,0xFE3F,0xFFFF,0xFFFF,
- 0xFFF0,0xFF7F,0xFFFF,0xFFFF,0xFFE0,0x7FFF,0xFFFF,0xFFFF,
- 0xFF00,0x3FFF,0xFFFF,0xFFFF,0xF800,0x1FFF,0xFFFE,0x0000,
- 0x6000,0x0FFF,0xFFC0,0x0000,0x6000,0x03FF,0xFF00,0x3FF0,
- 0x6000,0x007F,0xF800,0x0000,0x6000,0x0018,0x0000,0x0000,
- 0x6000,0x001F,0xFFFF,0xFFFF,0xE000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0001,0x0000,0x0000,0x0800,0x0000,0x0100 };
-
- UWORD Icon2D[] = { 0xE310,0x0001,0x0000,0x0000,0x0000,0x0000,0x0028,0x0016,
- 0x0005,0x0003,0x0001,0x00C0,0xD5B8,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0400,0x00C8,0x7B4E,0x0001,0x7D40,0x8000,0x0000,0x8000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0028,0x0016,0x0002,0x0001,0x6A58,0x0300,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x3FFF,0xFFCC,0x0000,0x3FFF,
- 0xFFCF,0x0000,0x3FFF,0xFFCF,0xC000,0x3803,0xFFCF,0xF000,
- 0x3FFF,0xFFC0,0x0000,0x3803,0xFFFF,0xFC00,0x3FFF,0xFFFF,
- 0xFC00,0x3FFF,0xFFFF,0xFC00,0x3F84,0x00C0,0x7C00,0x3FFF,
- 0xFFFF,0xFC00,0x3900,0x8000,0x7C00,0x3FFF,0xFFFF,0xFC00,
- 0x3800,0x0040,0x7C00,0x3FFF,0xFFFF,0xFC00,0x3FFF,0xFFFF,
- 0xFC00,0x3FFF,0xFE00,0x7C00,0x3FFF,0xFFFF,0xFC00,0x3FFF,
- 0xFFFF,0xFC00,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x0000,0xFFFF,0xFFFC,0x0000,0xC000,0x0033,
- 0x0000,0xC000,0x0030,0xC000,0xC000,0x0030,0x3000,0xC7FC,
- 0x0030,0x0C00,0xC000,0x003F,0xFF00,0xC7FC,0x0000,0x0300,
- 0xC000,0x0000,0x0300,0xC000,0x0000,0x0300,0xC07B,0xFF3F,
- 0x8300,0xC000,0x0000,0x0300,0xC6FF,0x7FFF,0x8300,0xC000,
- 0x0000,0x0300,0xC7FF,0xFFBF,0x8300,0xC000,0x0000,0x0300,
- 0xC000,0x0000,0x0300,0xC000,0x01FF,0x8300,0xC000,0x0000,
- 0x0300,0xC000,0x0000,0x0300,0xFFFF,0xFFFF,0xFF00,0x0000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0001,0x0000,
- 0x0000,0x0800,0x0000,0x0100 };
-
- UWORD CheckOnD[2][12][2] = {
- { 0xffff,0x0fff,0xf80c,0xf3ff,0xc3e3,0xe2ff,0x9dcf,0x057f,
- 0x1ebc,0x2aff,0x2f72,0x55ff,0x37ee,0x2fff,0x9bdc,0x57ff,
- 0xc1a0,0xafff,0xf805,0x5fff,0xfeaa,0xbfff,0xffd5,0xffff },
- { 0x0000,0xf000,0x07f3,0xfc00,0x3c1f,0xfd00,0x7e3f,0xfa80,
- 0xff7f,0xd500,0xdffd,0xaa00,0xcff1,0xd000,0x67e3,0xa800,
- 0x3fdf,0x5000,0x07fa,0xa000,0x0155,0x4000,0x002a,0x0000 }, };
-
- UWORD CheckOffD[2][12][2] = {
- { 0xffff,0xffff,0xf80f,0xffff,0xc3e1,0xffff,0x9ffc,0xffff,
- 0x3ffe,0x3fff,0x3ffe,0x5fff,0x3ffe,0x2fff,0x9ffc,0x57ff,
- 0xc3e0,0xafff,0xf805,0x5fff,0xfeaa,0xbfff,0xffd5,0xffff },
- { 0x0000,0x0000,0x07f0,0x0000,0x3c1e,0x0000,0x6003,0x0000,
- 0xc001,0xc000,0xc001,0xa000,0xc001,0xd000,0x6003,0xa800,
- 0x3c1f,0x5000,0x07fa,0xa000,0x0155,0x4000,0x002a,0x0000 }, };
-
- UWORD KeyDottedD[2][17][5] = {
- { 0xaabf,0xffaa,0xaaaa,0xaaaa,0x8000,0x55f0,0x01f5,0x5555,
- 0x5555,0x0000,0xaf0f,0xfc3a,0xaaaa,0xaaaa,0x8000,0x5c75,
- 0x578f,0xd555,0x5555,0x0000,0xb9af,0xfae0,0x7fff,0xfffa,
- 0x8000,0x73ff,0xff77,0x0000,0x000f,0x0000,0xe607,0xffbf,
- 0xffff,0xffe3,0x8000,0xcc73,0xffd8,0x0000,0x00f9,0x8000,
- 0xccfb,0xffdf,0xffff,0xfff3,0x8000,0xcc73,0xffdf,0xffff,
- 0xff87,0x0000,0xe607,0xffbf,0xf391,0xcc3e,0x8000,0x73ff,
- 0xff77,0x0000,0x01f5,0x0000,0xb9af,0xfae0,0x7fff,0xffaa,
- 0x8000,0x5c75,0x578f,0xd555,0x5555,0x0000,0xaf0f,0xfc3a,
- 0xaaaa,0xaaaa,0x8000,0x55e0,0x01f5,0x5555,0x5555,0x0000,
- 0xaabf,0xffaa,0xaaaa,0xaaaa,0x8000 },
- { 0x5540,0x0055,0x5555,0x5555,0x0000,0xaa0f,0xfe0a,0xaaaa,
- 0xaaaa,0x8000,0x50ff,0xffc5,0x5555,0x5555,0x0000,0xa3ff,
- 0xfff0,0x2aaa,0xaaaa,0x8000,0x47ff,0xffff,0x8000,0x0005,
- 0x0000,0x8fff,0xffff,0xffff,0xfff0,0x8000,0x1fff,0xffff,
- 0xffff,0xfffc,0x0000,0x3f8f,0xffff,0xffff,0xfffe,0x0000,
- 0x3f07,0xffff,0xffff,0xfffc,0x0000,0x3f8f,0xffff,0xffff,
- 0xfff8,0x8000,0x1fff,0xffff,0xffff,0xffc1,0x0000,0x8fff,
- 0xffff,0xffff,0xfe0a,0x8000,0x47ff,0xffff,0x8000,0x0055,
- 0x0000,0xa3ff,0xfff0,0x2aaa,0xaaaa,0x8000,0x50ff,0xffc5,
- 0x5555,0x5555,0x0000,0xaa1f,0xfe0a,0xaaaa,0xaaaa,0x8000,
- 0x5540,0x0055,0x5555,0x5555,0x0000 }, };
-
- UWORD NoKeyDottedD[2][29][4] = {
- { 0x5555,0x557f,0xff55,0x5555,0xaaaa,0xafc0,0x01fa,0xaaaa,
- 0x5555,0x783f,0xfe0f,0x5555,0xaaab,0xc7ff,0xfff1,0xeaaa,
- 0x5557,0x3fff,0xfffe,0x7555,0xaaac,0xffff,0xffff,0x9eaa,
- 0x555b,0xfff8,0x03ff,0xe755,0xabf0,0x0ffd,0xfc3f,0xfbaa,
- 0x570f,0xfffe,0xffc7,0xfdd5,0xac75,0x57ff,0x7ff9,0xfeea,
- 0x59af,0xffff,0xbffe,0xff3d,0xb3ff,0xffff,0xc000,0x000e,
- 0x6607,0xffff,0xefff,0xffe3,0xcc73,0xffff,0xf000,0x00f9,
- 0xccfb,0xffff,0xfbff,0xfff3,0xcc73,0xffdf,0xfdff,0xff86,
- 0x6607,0xffbf,0xfe11,0xcc3d,0xb3ff,0xff7d,0xff00,0x016a,
- 0x59af,0xfae0,0xffbe,0xff75,0xac75,0x578f,0x7fd9,0xfeea,
- 0x570f,0xfc3f,0xbfe7,0xfdd5,0xabe0,0x001f,0xdfff,0xfbaa,
- 0x557b,0xffe0,0x07ff,0xe755,0xaaac,0xffff,0xffff,0x9eaa,
- 0x5557,0x3fff,0xfffe,0x7555,0xaaab,0xc7ff,0xfff1,0xeaaa,
- 0x5555,0x783f,0xfe0f,0x5555,0xaaaa,0xafc0,0x01fa,0xaaaa,
- 0x5555,0x557f,0xff55,0x5555 },
- { 0xaaaa,0xaa80,0x00aa,0xaaaa,0x5555,0x503f,0xfe05,0x5555,
- 0xaaaa,0x87ff,0xfff0,0xaaaa,0x5554,0x3fff,0xfffe,0x1555,
- 0xaaa8,0xffff,0xffff,0x8aaa,0x5553,0xffff,0xffff,0xe155,
- 0xaaa7,0xffff,0xffff,0xf8aa,0x540f,0xf7fe,0x03ff,0xfc55,
- 0xa8f0,0x03ff,0x003f,0xfe2a,0x538a,0xa9ff,0x8007,0xff15,
- 0xa650,0x00ff,0xc001,0xffc2,0x4c00,0x007f,0xffff,0xfff1,
- 0x99f8,0x003f,0xf000,0x001c,0x33fc,0x001f,0xffff,0xff06,
- 0x33fc,0x000f,0xfc00,0x000c,0x33fc,0x0027,0xfe00,0x0079,
- 0x99f8,0x0043,0xffee,0x33c2,0x4c00,0x0083,0xffff,0xff95,
- 0xa650,0x051f,0xffc1,0xff8a,0x538a,0xa870,0xffe7,0xff15,
- 0xa8f0,0x03c0,0x7fff,0xfe2a,0x541f,0xffe0,0x3fff,0xfc55,
- 0xaa87,0xffff,0xffff,0xf8aa,0x5553,0xffff,0xffff,0xe155,
- 0xaaa8,0xffff,0xffff,0x8aaa,0x5554,0x3fff,0xfffe,0x1555,
- 0xaaaa,0x87ff,0xfff0,0xaaaa,0x5555,0x503f,0xfe05,0x5555,
- 0xaaaa,0xaa80,0x00aa,0xaaaa }, };
-
- UWORD KeyBlankD[2][15][4] = {
- { 0xffc0,0x07ff,0xffff,0xfff8,0xfc3f,0xf0ff,0xffff,0xfff8,
- 0xf1d5,0x5e3f,0xffff,0xfff8,0xe6bf,0xeb81,0xffff,0xfff8,
- 0xcfff,0xfddc,0x0000,0x0038,0x981f,0xfeff,0xffff,0xff88,
- 0x31cf,0xff60,0x0000,0x03e0,0x33ef,0xff7f,0xffff,0xffc8,
- 0x31cf,0xff7f,0xffff,0xfe18,0x981f,0xfeff,0xce47,0x30f8,
- 0xcfff,0xfddc,0x0000,0x07f8,0xe6bf,0xeb81,0xffff,0xfff8,
- 0xf1d5,0x5e3f,0xffff,0xfff8,0xfc3f,0xf0ff,0xffff,0xfff8,
- 0xff80,0x07ff,0xffff,0xfff8 },
- { 0x003f,0xf800,0x0000,0x0000,0x03ff,0xff00,0x0000,0x0000,
- 0x0fff,0xffc0,0x0000,0x0000,0x1fff,0xfffe,0x0000,0x0000,
- 0x3fff,0xffff,0xffff,0xffc0,0x7fff,0xffff,0xffff,0xfff0,
- 0xfe3f,0xffff,0xffff,0xfff8,0xfc1f,0xffff,0xffff,0xfff0,
- 0xfe3f,0xffff,0xffff,0xffe0,0x7fff,0xffff,0xffff,0xff00,
- 0x3fff,0xffff,0xffff,0xf800,0x1fff,0xfffe,0x0000,0x0000,
- 0x0fff,0xffc0,0x0000,0x0000,0x03ff,0xff00,0x0000,0x0000,
- 0x007f,0xf800,0x0000,0x0000 }, };
-
- UWORD NoKeyBlankD[2][27][4] = {
- { 0xffff,0xff00,0x07ff,0xfff8,0xffff,0xe0ff,0xf83f,0xfff8,
- 0xffff,0x1fff,0xffc7,0xfff8,0xfffc,0xffff,0xfff9,0xfff8,
- 0xfff3,0xffff,0xfffe,0x7ff8,0xffef,0xffe0,0x0fff,0x9ff8,
- 0xffc0,0x3ff7,0xf0ff,0xeff8,0xfc3f,0xfffb,0xff1f,0xf7f8,
- 0xf1d5,0x5ffd,0xffe7,0xfbf8,0xe6bf,0xfffe,0xfffb,0xfcf8,
- 0xcfff,0xffff,0x0000,0x0038,0x981f,0xffff,0xbfff,0xff88,
- 0x31cf,0xffff,0xc000,0x03e0,0x33ef,0xffff,0xefff,0xffc8,
- 0x31cf,0xff7f,0xf7ff,0xfe18,0x981f,0xfeff,0xf847,0x30f8,
- 0xcfff,0xfdf7,0xfc00,0x05f8,0xe6bf,0xeb83,0xfefb,0xfdf8,
- 0xf1d5,0x5e3d,0xff67,0xfbf8,0xfc3f,0xf0fe,0xff9f,0xf7f8,
- 0xff80,0x007f,0x7fff,0xeff8,0xffef,0xff80,0x1fff,0x9ff8,
- 0xfff3,0xffff,0xfffe,0x7ff8,0xfffc,0xffff,0xfff9,0xfff8,
- 0xffff,0x1fff,0xffc7,0xfff8,0xffff,0xe0ff,0xf83f,0xfff8,
- 0xffff,0xff00,0x07ff,0xfff8 },
- { 0x0000,0x00ff,0xf800,0x0000,0x0000,0x1fff,0xffc0,0x0000,
- 0x0000,0xffff,0xfff8,0x0000,0x0003,0xffff,0xfffe,0x0000,
- 0x000f,0xffff,0xffff,0x8000,0x001f,0xffff,0xffff,0xe000,
- 0x003f,0xdff8,0x0fff,0xf000,0x03c0,0x0ffc,0x00ff,0xf800,
- 0x0e2a,0xa7fe,0x001f,0xfc00,0x1940,0x03ff,0x0007,0xff00,
- 0x3000,0x01ff,0xffff,0xffc0,0x67e0,0x00ff,0xc000,0x0070,
- 0xcff0,0x007f,0xffff,0xfc18,0xcff0,0x003f,0xf000,0x0030,
- 0xcff0,0x009f,0xf800,0x01e0,0x67e0,0x010f,0xffb8,0xcf00,
- 0x3000,0x020f,0xffff,0xfe00,0x1940,0x147f,0xff07,0xfe00,
- 0x0e2a,0xa1c3,0xff9f,0xfc00,0x03c0,0x0f01,0xffff,0xf800,
- 0x007f,0xff80,0xffff,0xf000,0x001f,0xffff,0xffff,0xe000,
- 0x000f,0xffff,0xffff,0x8000,0x0003,0xffff,0xfffe,0x0000,
- 0x0000,0xffff,0xfff8,0x0000,0x0000,0x1fff,0xffc0,0x0000,
- 0x0000,0x00ff,0xf800,0x0000 }, };
-
- UWORD ObenRechtsD[2][4][1] = {
- { 0x2a00,0x0400,0xc200,0xf000 },{ 0xd400,0xfa00,0x3c00,0x0e00 }, };
-
- UWORD ObenLinksD[2][4][1] = {
- { 0xa800,0x5000,0x8600,0x1e00 },{ 0x5600,0xae00,0x7800,0xe000 }, };
-
- UWORD UntenLinksD[2][4][1] = {
- { 0x9e00,0x4600,0xa000,0x5400 }, { 0x6000,0xb800,0x5e00,0xaa00 }, };
-
- UWORD UntenRechtsD[2][4][1] = {
- { 0xf200,0xc400,0x0a00,0x5400 }, { 0x0c00,0x3a00,0xf400,0xaa00 }, };
-
- UWORD SprechZapfenD[2][9][2] = {
- { 0x0001,0xffc0,0xaaa9,0xffc0,0x5551,0xffc4,0xaaa9,0xff88,
- 0x5553,0xfe14,0xaa87,0xf828,0x551f,0xc154,0xa878,0x0aa8,
- 0x0000,0x5554 },
- { 0xfffe,0x003c,0x5556,0x003c,0xaaae,0x0038,0x5556,0x0074,
- 0xaaac,0x01e8,0x5578,0x07d4,0xaae0,0x3ea8,0x5787,0xf554,
- 0xffff,0xaaa8 }, };
-
- UWORD FileEncryptLabelD[2][15][10] = {
- { 0x060e,0x1e0f,0xfffc,0x183f,0xffff,0xffff,0xffff,0xffff,
- 0xffc7,0xc000,0x878e,0x1f0f,0xfffe,0x1e3f,0xffff,0xffff,
- 0xffff,0xffff,0xff87,0xc000,0x87cf,0xff0f,0xfffe,0x1f3f,
- 0xffff,0xffff,0xffff,0xffff,0xff87,0xc000,0x87fc,0x1f0f,
- 0xc61e,0x1ff0,0x61f8,0x6383,0x1c0e,0x060c,0x1e06,0x0000,
- 0x873e,0x1f0f,0x8f0e,0x1cf8,0x70f0,0xe1c3,0x0e1f,0x0f0f,
- 0x0f87,0xc000,0x863e,0x1f0f,0x0f0e,0x18f8,0x70e1,0xffc3,
- 0xfe1f,0x0f0f,0x8787,0xc000,0x863e,0x1f0f,0x0f0e,0x18f8,
- 0x70e1,0xffc3,0xff0f,0x0f0f,0x8787,0xc000,0x873e,0x1f0f,
- 0x0e0e,0x1cf8,0x70e1,0xffc3,0xff8f,0x0f0f,0x8787,0xc000,
- 0x87fe,0x1f0f,0x0ffe,0x1ff8,0x70e1,0xffc3,0xff87,0x1f0f,
- 0x8787,0xc000,0x87fe,0x1f0f,0x0ffe,0x1f38,0x70e1,0xf1c3,
- 0xffc3,0x1f0f,0x8787,0xc000,0x87fe,0x1f0f,0x8f0e,0x1e38,
- 0x70f0,0xe1c3,0xffe6,0x1f0f,0x0f86,0x0000,0x03fc,0x0e07,
- 0xc61c,0x1830,0x2078,0x6381,0xfffe,0x3f0c,0x1fc6,0x4000,
- 0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,0xff8c,0x3f0f,
- 0xffff,0xc000,0xffff,0xffff,0xffff,0xffff,0xffff,0xffff,
- 0xff80,0x7f0f,0xffff,0xc000,0xffff,0xffff,0xffff,0xffff,
- 0xffff,0xffff,0xffc0,0xfe03,0xffff,0xc000 },
- { 0xf9f1,0xe1f0,0x0003,0xe7c0,0x0000,0x0000,0x0000,0x0000,
- 0x0038,0x0000,0x7871,0xe0f0,0x0001,0xe1c0,0x0000,0x0000,
- 0x0000,0x0000,0x0078,0x0000,0x7830,0x00f0,0x0001,0xe0c0,
- 0x0000,0x0000,0x0000,0x0000,0x0078,0x0000,0x7803,0xe0f0,
- 0x39e1,0xe00f,0x9e07,0x9c7c,0xe3f1,0xf9f3,0xe1f9,0xc000,
- 0x78c1,0xe0f0,0x70f1,0xe307,0x8f0f,0x1e3c,0xf1e0,0xf0f0,
- 0xf078,0x0000,0x79c1,0xe0f0,0xf0f1,0xe707,0x8f1e,0x003c,
- 0x01e0,0xf0f0,0x7878,0x0000,0x79c1,0xe0f0,0xf0f1,0xe707,
- 0x8f1e,0x003c,0x00f0,0xf0f0,0x7878,0x0000,0x78c1,0xe0f0,
- 0xf1f1,0xe307,0x8f1e,0x003c,0x0070,0xf0f0,0x7878,0x0000,
- 0x7801,0xe0f0,0xf001,0xe007,0x8f1e,0x003c,0x0078,0xe0f0,
- 0x7878,0x0000,0x7801,0xe0f0,0xf001,0xe0c7,0x8f1e,0x0e3c,
- 0x003c,0xe0f0,0x7878,0x0000,0x7801,0xe0f0,0x70f1,0xe1c7,
- 0x8f0f,0x1e3c,0x0019,0xe0f0,0xf079,0xc000,0xfc03,0xf1f8,
- 0x39e3,0xe7cf,0xdf87,0x9c7e,0x0001,0xc0f3,0xe039,0x8000,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0073,0xc0f0,
- 0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x007f,0x80f0,0x0000,0x0000,0x0000,0x0000,0x0000,0x0000,
- 0x0000,0x0000,0x003f,0x01fc,0x0000,0x0000 }, };
-
- struct Image CheckOn ={0,-1,25,12,2,NULL,3,0,NULL};
- struct Image CheckOff ={0,-1,25,12,2,NULL,3,0,NULL};
- struct Image KeyDotted ={0,0,65,17,2,NULL,3,0,NULL};
- struct Image NoKeyDotted ={1,0,64,29,2,NULL,3,0,NULL};
- struct Image KeyBlank ={9,10,61,15,2,NULL,3,0,NULL};
- struct Image NoKeyBlank ={11,4,61,27,2,NULL,3,0,NULL};
- struct Image FileEncryptLabel={0,0,146,15,2,NULL,3,0,NULL};
- struct Image SprechZapfen ={ 83,118,30,9,2,NULL,3,0,NULL};
- struct Image UntenRechts ={249,115, 7,4,2,NULL,3,0,&SprechZapfen};
- struct Image UntenLinks ={ 15,115, 7,4,2,NULL,3,0,&UntenRechts};
- struct Image ObenRechts ={249, 19, 7,4,2,NULL,3,0,&UntenLinks};
- struct Image ObenLinks ={ 15, 19, 7,4,2,NULL,3,0,&ObenRechts};
-
- UWORD *SleepPointer;
-
- OpenImages()
- {
- CheckOn.ImageData =Copy2Chip(sizeof(CheckOnD)/2 ,&CheckOnD[0]);
- CheckOff.ImageData =Copy2Chip(sizeof(CheckOffD)/2 ,&CheckOffD[0]);
- KeyDotted.ImageData =Copy2Chip(sizeof(KeyDottedD)/2 ,&KeyDottedD[0]);
- NoKeyDotted.ImageData =Copy2Chip(sizeof(NoKeyDottedD)/2 ,&NoKeyDottedD[0]);
- KeyBlank.ImageData =Copy2Chip(sizeof(KeyBlankD)/2 ,&KeyBlankD[0]);
- NoKeyBlank.ImageData =Copy2Chip(sizeof(NoKeyBlankD)/2 ,&NoKeyBlankD[0]);
- FileEncryptLabel.ImageData=Copy2Chip(sizeof(FileEncryptLabelD)/2,&FileEncryptLabelD[0]);
- SprechZapfen.ImageData =Copy2Chip(sizeof(SprechZapfenD)/2 ,&SprechZapfenD[0]);
- UntenRechts.ImageData =Copy2Chip(sizeof(UntenRechtsD)/2 ,&UntenRechtsD[0]);
- UntenLinks.ImageData =Copy2Chip(sizeof(UntenLinksD)/2 ,&UntenLinksD[0]);
- ObenLinks.ImageData =Copy2Chip(sizeof(ObenLinksD)/2 ,&ObenLinksD[0]);
- ObenRechts.ImageData =Copy2Chip(sizeof(ObenRechtsD)/2 ,&ObenRechtsD[0]);
- SleepPointer =Copy2Chip(sizeof(SleepD)/2 ,&SleepD[0]);
- }
-
- #define CANCELB 0
- #define OKB 1
- #define ENCRYPTB 2
- #define DECRYPTB 3
- #define TEXTB 4
- #define CREATEB 5
-
- #define ITEXT(x,y,text,n) {2,0,JAM1,(x),(y),NULL,(text),(n)}
- #define DEFGADGET(x,y,w,h,text,id) {0,(x),(y),(w),(h),GADGHCOMP,GADGIMMEDIATE|RELVERIFY,BOOLGADGET,0,0,(text),0,0,(id),0}
-
- struct IntuiText OKText = ITEXT(21,2,"OK",NULL);
- struct Gadget OKButton = DEFGADGET(105,100,57,11,&OKText,OKB);
-
- struct IntuiText CANCELText = ITEXT(6,2,"Cancel",NULL);
- struct Gadget CANCELButton = DEFGADGET(173,100,57,11,&CANCELText,CANCELB);
-
- struct StringInfo TEXTInfo = {NULL, &UndoString[0], 4, 40,0, 0,0,0,0,0,0,0,0};
- struct Gadget TEXTButton = {NULL, 31, 58, 208, 8, GADGHCOMP, GADGIMMEDIATE|RELVERIFY,
- STRGADGET, NULL, NULL, NULL, 0, &TEXTInfo, TEXTB, NULL};
-
- struct IntuiText ENCRYPTText = ITEXT(11,33,"Encrypt",NULL),
- DECRYPTText = ITEXT(11,33,"Decrypt",NULL);
- struct Gadget DECRYPTButton = {0,147,54,79,45,GADGIMAGE|GADGHCOMP,GADGIMMEDIATE|RELVERIFY,
- BOOLGADGET,&NoKeyBlank,0,&DECRYPTText,0,0,DECRYPTB,0};
- struct Gadget ENCRYPTButton = {0, 41,54,79,45,GADGIMAGE|GADGHCOMP,GADGIMMEDIATE|RELVERIFY,
- BOOLGADGET,&KeyBlank,0,&ENCRYPTText,0,0,ENCRYPTB,0};
-
- struct IntuiText CREATEText = ITEXT(31,1,"Create Icon",NULL);
- struct Gadget CREATEButton = {NULL, 77, 78, 16, 8, GADGHIMAGE|GADGIMAGE|SELECTED,
- TOGGLESELECT|GADGIMMEDIATE|RELVERIFY,
- BOOLGADGET, &CheckOff, &CheckOn, &CREATEText, 0, NULL, CREATEB, NULL};
-
- Encrypt(Buffer, Length)
- UBYTE *Buffer;
- ULONG Length;
- {
- /*** TOP SECRET ***/
- }
-
- Decrypt(Buffer, Length)
- UBYTE *Buffer;
- ULONG Length;
- {
- /*** TOP SECRET ***/
- }
-
- #define ERROR_MEMORY_IS_LOW 71
- #define ERROR_CANT_OPEN_FILE 72
- #define ERROR_CANT_CREATE_FILE 73
-
- struct IntuiText TextErr3 = ITEXT(38,71,NULL,NULL);
- struct IntuiText TextErr2 = ITEXT(37,71,NULL,&TextErr3);
- struct IntuiText TextErr = ITEXT(37,43,"Sorry, an error happened:",&TextErr2);
-
- Error(Number, Frame)
- int Number, Frame;
- { static char ErrMemory[] = "Not Enough Memory.\0",
- ErrNoOpen[] = "Can't Open File.\0",
- ErrNoCrea[] = "Can't Create File.\0",
- ErrNotFou[] = "File Not Found.\0";
-
- NextFrame=Frame;
- switch(Number)
- { case ERROR_MEMORY_IS_LOW : TextErr2.IText=TextErr3.IText=&ErrMemory[0]; break;
- case ERROR_CANT_OPEN_FILE : TextErr2.IText=TextErr3.IText=&ErrNoOpen[0]; break;
- case ERROR_CANT_CREATE_FILE: TextErr2.IText=TextErr3.IText=&ErrNoCrea[0]; break;
- break;
- }
- switch(IoErr())
- { case ERROR_OBJECT_NOT_FOUND: TextErr2.IText=TextErr3.IText=&ErrNotFou[0]; break;
- break;
- }
- SwitchToFrame(ERROR);
- }
-
- FileLoadAndSave(Mode)
- int Mode;
- { struct FileLock *MyLock;
- struct FileInfoBlock *MyFIB;
- struct FileHandle *MyReadHandle;
- struct FileHandle *MyWriteHandle;
- char *MyBuffer;
- char IconFile[45];
- register int i;
- ULONG DataPtr, DataSize;
-
- SetPointer(Window, SleepPointer, 22, 15, 0,0);
-
- MyLock = Lock(&ReadFile[0], ACCESS_READ);
- if(MyLock==NULL)
- { Error(ERROR_OBJECT_NOT_FOUND, READ); goto LeaveIt3; }
-
- if((MyFIB=AllocMem(sizeof(struct FileInfoBlock), MEMF_CLEAR))==NULL)
- { Error(ERROR_MEMORY_IS_LOW, MODUS); goto LeaveIt2; }
- Examine(MyLock, MyFIB);
-
- if((MyReadHandle=Open(&ReadFile[0], MODE_OLDFILE))==NULL)
- { Error(ERROR_CANT_OPEN_FILE, READ); goto LeaveIt2; }
-
- if((MyBuffer=AllocMem(MyFIB->fib_Size, MEMF_CLEAR))==NULL)
- { Error(ERROR_MEMORY_IS_LOW, MODUS); goto LeaveIt2; }
- if((Read(MyReadHandle, MyBuffer, MyFIB->fib_Size))==-1)
- { Close(MyReadHandle);
- Error(ERROR_CANT_OPEN_FILE, READ);
- goto LeaveIt; }
- Close(MyReadHandle);
-
- if(Mode==ENCRYPT) Encrypt(MyBuffer, MyFIB->fib_Size);
- else Decrypt(MyBuffer, MyFIB->fib_Size);
-
- if((MyWriteHandle=Open(&WriteFile[0], MODE_NEWFILE))==NULL)
- { Error(ERROR_CANT_CREATE_FILE, WRITE); goto LeaveIt; }
- if((Write(MyWriteHandle, MyBuffer, MyFIB->fib_Size))==-1)
- { Close(MyWriteHandle);
- DeleteFile(&WriteFile[0]);
- Error(ERROR_CANT_CREATE_FILE, WRITE);
- goto LeaveIt; }
- Close(MyWriteHandle);
-
- /**** Here we create the Icon - if desired - ****/
-
- if(CREATEButton.Flags & SELECTED)
- { for(i=0; WriteFile[i]!=0; i++) IconFile[i]=WriteFile[i];
- CopyMem(".info\0",&IconFile[i],5);
-
- if((MyWriteHandle=Open(&IconFile[0], MODE_NEWFILE))==NULL)
- { Error(ERROR_CANT_CREATE_FILE, WRITE); goto LeaveIt; }
-
- DataPtr = &Icon1D[0]; DataSize = sizeof(Icon1D);
- if(Mode==DECRYPT) { DataPtr = &Icon2D[0]; DataSize = sizeof(Icon2D); }
-
- if((Write(MyWriteHandle, DataPtr, DataSize))==-1)
- { Close(MyWriteHandle);
- DeleteFile(&IconFile[0]);
- DeleteFile(&WriteFile[0]);
- Error(ERROR_CANT_CREATE_FILE, WRITE);
- goto LeaveIt; }
- Close(MyWriteHandle);
- }
-
- /**** Finish of Icon section ****/
-
- SwitchToFrame(MODUS);
- LeaveIt:
- FreeMem(MyBuffer,MyFIB->fib_Size);
- LeaveIt2:
- FreeMem(MyFIB,sizeof(struct FileInfoBlock));
- LeaveIt3:
- UnLock(MyLock);
- }
-
-
- Do_Gadget(FrameNr, Button)
- int FrameNr, Button;
- { static struct IntuiText Text4e={2,1,JAM2,24,35,0," What about your Keyword ? " ,NULL};
- register int i;
-
- switch(FrameNr)
- { case INTRO : SwitchToFrame(MODUS); break;
- case MODUS : CurrentMode=ENCRYPT;
- if(Button==DECRYPTB) CurrentMode=DECRYPT;
- SwitchToFrame(READ); break;
- case READ : if(Button==OKB) { for(i=0; ReadFile[i]!=0; i++)
- WriteFile[i]=ReadFile[i];
- CopyMem(".ENCRYPT\0",&WriteFile[i],9);
- if(CurrentMode==DECRYPT)
- CopyMem("DE",&WriteFile[i+1],2);
- SwitchToFrame(KEYWD);
- };
- if(Button==CANCELB) SwitchToFrame(MODUS);
- break;
- case KEYWD : if(Button==OKB) { if(TEXTInfo.NumChars<1)
- { PrintIText(WRast, &Text4e, 0, 0);
- ActivateGadget(&TEXTButton, Window, NULL);
- }
- else SwitchToFrame(WRITE);
- };
- if(Button==CANCELB) SwitchToFrame(READ);
- break;
- case WRITE : if(Button==CANCELB) SwitchToFrame(KEYWD);
- if(Button==OKB) FileLoadAndSave(CurrentMode);
- break;
- case ERROR : if(Button==OKB) SwitchToFrame(NextFrame);
- break;
- break;
- }
- }
-
- LinkGadgets(Nr, Gad1, Gad2, Gad3, Gad4)
- int Nr;
- struct Gadget *Gad1, *Gad2, *Gad3, *Gad4;
- {
- if(Nr>=1) AddGadget(Window, Gad1, 1);
- if(Nr>=2) AddGadget(Window, Gad2, 2);
- if(Nr>=3) AddGadget(Window, Gad3, 3);
- if(Nr>=4) AddGadget(Window, Gad4, 4);
- FirstGad=Gad1;
- GadgetNumber=Nr;
- }
-
- SwitchToFrame(NewFrame)
- int NewFrame;
- { static struct IntuiText
- Text15 = {3,0,JAM1,35,82,0,"Copy me, I want to travel!",NULL},
- Text14 = ITEXT(37,82,"Copy me, I want to travel!" ,&Text15),
- Text13 = ITEXT(77,67,"D-7958 Laupheim" ,&Text14),
- Text12 = ITEXT(85,57,"R\366ntgenweg 12" ,&Text13),
- Text11 = ITEXT(87,47,"Lorenz Wiest" ,&Text12),
- Text22 = {3,0,JAM1,186,36,0,"YOU" ,NULL},
- Text21 = ITEXT(44,36,"What can I do for YOU ?" ,&Text22),
- Text31b = ITEXT(24,35,"Which file shall I decrypt ?" ,0),
- Text31a = ITEXT(24,35,"Which file shall I encrypt ?" ,0),
- Text41 = ITEXT(24,35,"Tell me your secret KeyWord." ,0),
- Text52b = ITEXT(24,40,"the decrypted file ?" ,0),
- Text52a = ITEXT(24,40,"the encrypted File ?" ,0),
- Text51 = ITEXT(24,29,"To which fille shall I write" ,0);
-
- ClearPointer(Window);
- Frame=NewFrame;
- FillBox( 1,22,23,248,114);
- FillBox(-1,20,120,83,148);
- if(FirstGad!=NULL) RemoveGList(Window, FirstGad, GadgetNumber);
- switch(Frame)
- { case INTRO : DrawImage(WRast,&FileEncryptLabel,59+8,26);
- PrintIText(WRast,&Text11,0,0);
- SetUpButton(&OKButton, 1, 3);
- LinkGadgets(1, &OKButton, 0, 0, 0);
- break;
- case MODUS : CurrentMode=ENCRYPT;
- PrintIText(WRast,&Text21,0,0);
- SetUpButton(&ENCRYPTButton, 1, 2);
- SetUpButton(&DECRYPTButton, 1, 2);
- LinkGadgets(2, &ENCRYPTButton, &DECRYPTButton, 0, 0);
- break;
- case READ : if(CurrentMode==ENCRYPT) PrintIText(WRast,&Text31a,0,0);
- else PrintIText(WRast,&Text31b,0,0);
- SetUpButton(&TEXTButton, 0, 2);
- SetUpButton(&OKButton, 1, 3);
- SetUpButton(&CANCELButton, 1, 2);
- TEXTInfo.Buffer=&ReadFile[0];
- LinkGadgets(3, &TEXTButton, &OKButton, &CANCELButton, 0);
- break;
- case KEYWD : PrintIText(WRast,&Text41,0,0);
- SetUpButton(&TEXTButton, 0, 2);
- SetUpButton(&OKButton, 1, 3);
- SetUpButton(&CANCELButton, 1, 2);
- TEXTInfo.Buffer=&KeyWord[0];
- LinkGadgets(3, &TEXTButton, &OKButton, &CANCELButton, 0);
- break;
- case WRITE : PrintIText(WRast, &Text51, 0, 0);
- if(CurrentMode==ENCRYPT) PrintIText(WRast,&Text52a,0,0);
- else PrintIText(WRast,&Text52b,0,0);
- SetUpButton(&TEXTButton, 0, 2);
- SetUpButton(&OKButton, 1, 3);
- SetUpButton(&CANCELButton, 1, 2);
- TEXTInfo.Buffer=&WriteFile[0];
- LinkGadgets(4, &TEXTButton, &OKButton, &CANCELButton, &CREATEButton);
- break;
- case ERROR : PrintIText(WRast,&TextErr,0,0);
- SetUpButton(&OKButton, 1, 3);
- LinkGadgets(1, &OKButton, 0, 0, 0);
- break;
- break;
- } /* end of switch */
-
- if(CurrentMode==ENCRYPT) DrawImage(WRast,&KeyDotted,20,126);
- else DrawImage(WRast,&NoKeyDotted,20,120);
-
- RefreshGadgets(FirstGad,Window,NULL);
- if(FirstGad->GadgetType==STRGADGET) ActivateGadget(FirstGad,Window,NULL);
- }
-
- main()
- { ULONG NachArt;
- USHORT Code;
-
- if ((IntuitionBase=(struct IntuitionBase *)
- OpenLibrary("intuition.library",0))==NULL) Schluss();
- if ((GfxBase=(struct GfxBase *)
- OpenLibrary("graphics.library",0))==NULL) Schluss();
-
- if ((Window=(struct Window *)OpenWindow(&NewWindow))==NULL) Schluss();
- WRast=Window->RPort;
-
- OpenImages();
- SketchWindow();
- SwitchToFrame(INTRO);
-
- for (;;)
- { WaitPort(Window->UserPort);
- while(Nachricht=(struct IntuiMessage *)GetMsg(Window->UserPort))
- { NachArt=Nachricht->Class;
- Code =Nachricht->Code;
- Adr =Nachricht->IAddress;
- ReplyMsg(Nachricht);
- switch(NachArt)
- { case CLOSEWINDOW : Schluss(); break;
- case GADGETUP : Do_Gadget(Frame,Adr->GadgetID);
- } /* end of switch */
- } /* end of if */
- } /* end of for */
- } /* end of main */
-
- SketchWindow()
- {
- FillBox( 1, 0, TOPY, WIDTH, HEIGHT-1);
- FillBox( 2, 2, TOPY+1, WIDTH-3, HEIGHT-2);
- FillBox(-1, 4, TOPY+2, WIDTH-5, HEIGHT-3);
- FillBox( 2,15, 19, 256-1,118);
- FillBox( 1,17, 20, 256-1-2,118-1);
- DrawImage(WRast,&ObenLinks,0,0);
- }
-
- SetUpButton(Gadget, AreaCol, BorderCol)
- struct Gadget *Gadget;
- int BorderCol, AreaCol;
- { register int X1, Y1, X2, Y2;
-
- X1 = Gadget->LeftEdge;
- Y1 = Gadget->TopEdge;
- X2 = Gadget->LeftEdge+Gadget->Width-1;
- Y2 = Gadget->TopEdge+Gadget->Height-1;
- if(Gadget->GadgetType==STRGADGET) {X1-=2; Y1-=1; X2+=2; Y2+=1; };
- FillBox(-1, X1+4-2, Y1+2-1, X2+4+2, Y2+2+1); /* RasterFill as Shadow */
- FillBox(AreaCol, X1, Y1, X2, Y2); /* FrontArea is cleared */
- SetAPen(WRast, BorderCol);
- Move(WRast, X1+1-2, Y1-1); /* Draw a Button Border */
- Draw(WRast, X2-1+2, Y1-1);
- Draw(WRast, X2-1+2, Y2+1);
- Draw(WRast, X1+1-2, Y2+1);
- Draw(WRast, X1+1-2, Y1-1);
- Move(WRast, X1-2, Y1+1-1);
- Draw(WRast, X1-2, Y2-1+1);
- Move(WRast, X2+2, Y1+1-1);
- Draw(WRast, X2+2, Y2-1+1);
- }
-
- FillBox(Color, X1, Y1, X2, Y2)
- int Color, X1, Y1, X2, Y2;
- { static UWORD Pattern[]={0xaaaa,0x5555,0x5555,0xaaaa};
-
- if(Color>=0)
- { SetAPen(WRast, Color);
- SetBPen(WRast, Color);
- SetAfPt(WRast, NULL, 0); }
- else
- { SetAPen(WRast, 3);
- SetBPen(WRast, 0);
- SetAfPt(WRast, &Pattern, -1); }
- RectFill(WRast, X1, Y1, X2, Y2);
- }
-
- ULONG Copy2Chip(WordCount, ArrayPnt)
- int WordCount;
- UWORD *ArrayPnt;
- { UWORD *Zeiger;
-
- Zeiger=AllocRemember(&MyRememberKey,WordCount<<1,MEMF_CHIP|MEMF_CLEAR);
- CopyMem(ArrayPnt,Zeiger,WordCount<<1);
- return(Zeiger);
- }
-
- Schluss()
- {
- FreeRemember(&MyRememberKey, TRUE);
- if(Window!=NULL) CloseWindow(Window);
- if(GfxBase!=NULL) CloseLibrary(GfxBase);
- if(IntuitionBase!=NULL) CloseLibrary(IntuitionBase);
- exit(0);
- }
-