#include "compilerspecific.h"

#define Lib_Version 40L

#define MIN_ITERATIONS 31
#define MAX_ALLOWED_ITERATIONS 32767

#define MINLIMIT 2
#define RESERVED_PENS 4L

#define CPU_000  0x1
#define CPU_010  0x2
#define CPU_020  0x4
#define CPU_030  0x8
#define CPU_040  0x10
#define CPU_060  0x20
#define FPU_000  0x100   /* No 68k Fpu */
#define FPU_881  0x200
#define FPU_882  0x400
#define FPU_040  0x800
#define CPU_603  0x1000
#define CPU_603e 0x2000
#define CPU_604  0x4000
#define CPU_604e 0x8000
#define CPU_620  0x10000

#ifndef AFF_68060
#define AFF_68060 1L << 7
#endif


#define INIT_DEF_RMIN      -2.0
#define INIT_DEF_RMAX      +1.2
#define INIT_DEF_IMIN      -1.2
#define INIT_DEF_IMAX      +1.2
#define INIT_DEF_RMINSTR   "-2.0"
#define INIT_DEF_RMAXSTR   "+1.2"
#define INIT_DEF_IMINSTR   "-1.2"
#define INIT_DEF_IMAXSTR   "+1.2"
#define INIT_DEF_JKRE      -0.72
#define INIT_DEF_JKIM      -0.26
#define INIT_DEF_JKRESTR   "-0.72"
#define INIT_DEF_JKIMSTR   "-0.26"

#define DEF_WIDTH        640
#define DEF_HEIGHT       480
#define DEF_DEPTH        4
//#define DEF_MONITOR      0x40D20001
//#define DEF_MONITORSTR  "0x40D20001"
#define DEF_MONITOR      0x50011000      // UAE & P96 support
#define DEF_MONITORSTR  "0x50011000"     // UAE & P96 support
#define DEF_USERNAMESTR "Unknown"
#define DEF_FONTNAMESTR "topaz.font\0"
#define DEF_FONTSIZE     8
#define DEF_STARTPRI    -3

#define MIN_WIDTH  640
#define MIN_HEIGHT 480
#define MAX_WIDTH  16368
#define MAX_HEIGHT 16384
#define MIN_DEPTH  3
#define MAX_DEPTH  8

#define MAX_FONTSIZE 24
#define MIN_FONTSIZE 8

#define MAX_FILELEN 30
#define MAX_DIRLEN  230
#define MAX_PATHLEN 260
#define BARLEN      100  /* more for reaction-support !! */

#define TOBLACK   1
#define FROMBLACK 0

#define RAW_ESC      0x045
#define VAN_ESC      0x01B
#define TAB          0x042
#define HELP         0x05f

#define BLACK      (0)
#define LIGHT_GREY (2)
#define WHITE      (1)
#define DARK_GREY  (3)

#define POINTS       4
#define PAIRS        5

#define BLINKTIMES   5L

#define ONESEC        (50L * 1L)
#define TWOSECS       (50L * 2L) /* 2 secondi */

#define SHIFTRIGHT   FALSE
#define SHIFTLEFT    TRUE

#define INITIALZOOM  18

#define CLEAR_POINTER 0
#define BUSY_POINTER  1
#define ZOOM_POINTER  2

#define ZPW          15
#define ZPH          15
#define ZPXO         -8
#define ZPYO         -7

#define MAXCHARS     20

#define ACCEPT       (1)
#define RATIO        (2)
#define RESET        (3)
#define CANCEL       (4)
#define KEEP         (5)

#define WMASK  0x1
#define FMASK  0x2
#define VMASK  0x4
#define SMASK  0x8
#define BMASK  0x10
#define ZMASK  0x20
#define TMASK  0x40
#define MMASK  0x80
#define LMASK  0x100
#define PMASK  0x200

#define LOADPICTURE_MSG 0x1
#define SAVEPICTURE_MSG 0x2
#define DUMP_MSG        0x4
#define REDRAW_MSG      0x8
#define UNDO_MSG        0x10
#define DRAW_MSG        0x20
#define PREVIEW_MSG     0x40
#define NEWDISPLAY_MSG  0x80
#define STOP_MSG        0x100
#define EXIT_MSG        0x200
#define COORDS_MSG      0x400
#define ITER_MSG        0x800
#define ABOUT_MSG       0x1000
#define TITLE_MSG       0x2000
#define TIME_MSG        0x4000
#define PALETTE_MSG     0x8000
#define CYCLERIGHT_MSG  0x10000
#define CYCLELEFT_MSG   0x20000
#define DELAY_MSG       0x40000
#define COLOR_MSG       0x80000
#define LOADPALETTE_MSG 0x100000
#define SAVEPALETTE_MSG 0x200000
#define FONTREQ_MSG     0x400000
#define SHOWGUIDE_MSG   0x800000
#define SYSINFO_MSG     0x1000000

#define PICTURES_DRAWER 0
#define PALETTES_DRAWER 1

#define IDCMP_STANDARD  IDCMP_CLOSEWINDOW|IDCMP_RAWKEY|IDCMP_MOUSEBUTTONS|IDCMP_MOUSEMOVE|IDCMP_MENUPICK

#define WFLG_STANDARD WFLG_ACTIVATE|WFLG_BACKDROP|WFLG_NOCAREREFRESH|WFLG_SMART_REFRESH|WFLG_BORDERLESS|WFLG_REPORTMOUSE|WFLG_NEWLOOKMENUS

#define MODE_ID_MASK (LACE|HIRES|HAM|EXTRA_HALFBRITE)

#define PRINTERDEVICE "printer.device"
#define FMCATALOGNAME "FlashMandel.catalog"

#define VERSION  "FlashMandelPPC 1.5 "
#define AUTHOR   "Dino Papararo"
#define COPYRIGHT_DATE "©1996-2001"
#define ADDRESS  "Via Manzoni, 184\n  80123 Napoli\n  Italia"
#define EMAIL    "E-Mail address:\n  DinoP@IName.Com\n\n"

#ifdef  __SASC
#define DATE     __AMIGADATE__
#else
#define DATE     __DATE__
#endif

#define TITLE_BIT    (1L << 10)

#define FOUR_BIT     (1L << 15)
#define LINEAR_BIT   (1L << 16)
#define REPEATED_BIT (1L << 17)
#define LOG_BIT      (1L << 18)
#define SQUARE_BIT   (1L << 19)
#define ONE_BIT      (1L << 20)
#define TWO_BIT      (1L << 21)
#define THREE_BIT    (1L << 22)

#define FIXED_BIT    (1L << 23)
#define REAL_BIT     (1L << 24)

#define MC68K_BIT    (1L << 25)
#define PPC_BIT      (1L << 26)

#define JULIA4_BIT   (1L << 27)
#define JULIA_BIT    (1L << 28)
#define MANDEL_BIT   (1L << 29)
#define MANDEL4_BIT  (1L << 30)

#define ID_MAND MAKE_ID ('M','A','N','D')

typedef long double LDouble;

struct MandelChunk { LONG LeftEdge,TopEdge,Width,Height;
                     ULONG Iterations,Colors,Modulo,Flags;
                     ULONG Reserved_Integer [6];
                     LDouble RMin,RMax,IMin,IMax;
                     LDouble JKre,JKim;
                     LDouble Reserved_Real [6];
                   };

TEXT VERSION_STRING [] = "\0$VER: " VERSION " " COPYRIGHT_DATE " by " AUTHOR " compiled in " DATE "\n\0";

TEXT CMD_Guide [] = "Run >NIL: SYS:Utilities/MultiView FlashMandel:Docs/FlashMandel.guide";
