STORMDOC1
4;
DOCE

2,2,0,0,0,0;
HIST
6;
eschwan

0,1004204163,0,0;
eschwan

7,1004204481,0,0;
eschwan

1,1004204509,0,0;
eschwan

7,1004205192,0,0;
Edgar Schwan

7,1010415934,0,0;
eschwan

4,1011896600,0,0;
TEXT
1262;
Änderungen in FlashMandelWOS.c:

- Neue Variable  ForceAbort
  Ist TRUE, wenn Programm ohne Rückfrage abgebrochen werden soll.

- Aus FlashMandel.h übernommene Definitionen:

  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";

  TEXT FMSCREENNAME [MAXPUBSCREENNAME+1] = "FlashMandel.1";

- In HandleEvents():
  WaitPort() durch Wait() ersetzt, wegen ARexx-Support.

- Geänderter Funktionsaufruf von DrawFractal():

  BOOL BeepWhenReady  -  Aufruf von DisplayBeep() bei beendeter Berechnung ja/nein.

  In den Dateien:  FlashMandelWOS.c
                   FM_ARexx_React.c

- Geänderter Funktionsaufruf von LoadMandPic():

  BOOL fade  -  Bild langsam einblenden ja / nein

  In den Dateien:  FlashMandelWOS.c
                   Iff.c
                   FM_ARexx_React.c

- Geänderter Funktionsaufruf von LoadPalette():

  BOOL fade  -  Bild langsam einblenden ja / nein

  In den Dateien:  FlashMandelWOS.c
                   Iff.c
                   FM_ARexx_React.c


Änderungen in FlashMandel.h:

- Bedingte Kompilierung, um zweimaliges Einbinden zu verhindern.

- Entfernen div. Definitionen (siehe oben).


DOCE
Test ARexx-Support
0,3,1,0,0,0;
HIST
11;
Edgar Schwan

0,1010354884,0,0;
Edgar Schwan

7,1010355202,0,0;
Edgar Schwan

1,1010355407,0,0;
Edgar Schwan

7,1010420169,0,0;
eschwan

7,1010443436,0,0;
Edgar Schwan
Test ARexx-Support
8,1010523256,0,0;
Edgar Schwan

7,1010938354,0,0;
Edgar Schwan

10,1010938402,0,0;
Edgar Schwan

7,1011118153,0,0;
eschwan

7,1011184498,0,0;
Edgar Schwan

7,1012082565,0,0;
TEXT
9444;
                                     /****   PROJECT   ****/

/* ARexxFunc_About(): Handle ARexx-Command 'ABOUT'.    Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  'ABOUT'
  END

/* ARexxFunc_SysInfo(): Handle ARexx-Command 'SYSINFO'.    Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  'SYSINFO'
  END

/* ARexxFunc_Help(): Handle ARexx-Command 'HELP'.   Template: - */
/* Status: not checked */
IF 0 THEN DO
  'HELP'
  END

/* ARexxFunc_LoadPicture(): Handle ARexx-Command 'LOAD_PICTURE'.   Template: "PATH,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'LOAD_PICTURE' 'FLASHMANDEL:Pictures/Mandelbrot_2.iff' 'FAST'
  'LOAD_PICTURE'
  END

/* ARexxFunc_SavePicture(): Handle ARexx-Command 'SAVE_PICTURE'.   Template: "PATH,FORCE/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'SAVE_PICTURE' 'ram:FlashMandel_test.iff' 'FORCE'
  'SAVE_PICTURE'
  END

/* ARexxFunc_LoadPalette(): Handle ARexx-Command 'LOAD_PALETTE'.   Template: "PATH,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'LOAD_PALETTE' 'FLASHMANDEL:Palettes/Palette_03.256' 'FAST'
  'LOAD_PALETTE'
  END

/* ARexxFunc_SavePalette(): Handle ARexx-Command 'SAVE_PALETTE'.   Template: "PATH,FORCE/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'SAVE_PALETTE' 'ram:Palette_test.256' 'FORCE'
  'SAVE_PALETTE'
  END

/* ARexxFunc_Print(): Handle ARexx-Command 'PRINT'.   Template: "FORCE/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'PRINT' 'FORCE'
  END

/* ARexxFunc_Quit(): Handle ARexx-Command 'QUIT'.    Template: "FORCE/S,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'QUIT' 'FORCE'
  EXIT 0
  END

                                     /****   OPTIONS   ****/

/* ARexxFunc_ShowTitle(): Handle ARexx-Command 'SHOW_TITLE'.  Template: "BOOLEAN/A/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SHOW_TITLE' '0'
  END

/* ARexxFunc_ShowElapsed(): Handle ARexx-Command 'SHOW_ELAPSED'.  Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  Call Delay(200);
  'SHOW_ELAPSED'
  END

/* ARexxFunc_SetCoordinates(): Handle ARexx-Command 'SET_COORDINATES'.   Template: "STEM" */
/* Status: CHECKED */
IF 0 THEN DO
  COORDS.RMIN = '-2.0';  /* Left */
  COORDS.RMAX = '+1.5';  /* Top */
  COORDS.IMIN = '-1.2';  /* Right */
  COORDS.IMAX = '-1.0';  /* Bottom */
  COORDS.JKRE = '+0.0';  /* Julia Real */
  COORDS.JKIM = '+0.0';  /* Julia Imag */
  'SET_COORDINATES' 'COORDS'
  'RENDER' 'FORCE'
  'SET_COORDINATES'
  END

/* ARexxFunc_GetCoordinates(): Handle ARexx-Command 'GET_COORDINATES'.   Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_COORDINATES' 'COORDS'
  SAY "RMIN: " COORDS.RMIN;  /* Left */
  SAY "RMAX: " COORDS.RMAX;  /* Top */
  SAY "IMIN: " COORDS.IMIN;  /* Right */
  SAY "IMAX: " COORDS.IMAX;  /* Bottom */
  SAY "JKRE: " COORDS.JKRE;  /* Julia Real */
  SAY "JKIM: " COORDS.JKIM;  /* Julia Imag */
  SAY "";
  END

/* ARexxFunc_SetIterations(): Handle ARexx-Command 'SET_ITERATIONS'.  Template: "NUMBER/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_ITERATIONS' '1024'
  'SET_ITERATIONS'
  END

/* ARexxFunc_GetIterations(): Handle ARexx-Command 'GET_ITERATIONS'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_ITERATIONS' 'ITERATIONS'
  SAY "Iterations: " ITERATIONS;
  SAY "";
  END

/* ARexxFunc_SetPriority(): Handle ARexx-Command 'SET_PRIORITY'.  Template: "PRI/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_PRIORITY' '+1'
  END

/* ARexxFunc_GetPriority(): Handle ARexx-Command 'GET_PRIORITY'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_PRIORITY' 'PRIORITY'
  SAY "Priority: " PRIORITY
  SAY ""
  END

/* ARexxFunc_SetColorRemap(): Handle ARexx-Command 'SET_COLOR_REMAP'.  Template: "INDEX/A/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_COLOR_REMAP' '2'
  END

/* ARexxFunc_GetColorRemap(): Handle ARexx-Command 'GET_COLOR_REMAP'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_COLOR_REMAP' 'REMAP_INDEX'
  SAY "Color-remap: " REMAP_INDEX;
  SAY "";
  END

/* ARexxFunc_SetFractalType(): Handle ARexx-Command 'SET_FRACTAL_TYPE'.  Template: "INDEX/A/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_FRACTAL_TYPE' '1'
  END

/* ARexxFunc_GetFractalType(): Handle ARexx-Command 'GET_FRACTAL_TYPE'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_FRACTAL_TYPE' 'FRAC_INDEX'
  SAY "Fractal-type: " FRAC_INDEX;
  SAY "";
  END

/* ARexxFunc_SetCPUType(): Handle ARexx-Command 'SET_CPU_TYPE'.  Template: "INDEX/A/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_CPU_TYPE' '1'
  'GET_CPU_TYPE' 'CPU_TYPE'
  SAY "CPU-type: " CPU_TYPE;
  SAY "";
  END

/* ARexxFunc_GetCPUType(): Handle ARexx-Command 'GET_CPU_TYPE'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_CPU_TYPE' 'CPU_TYPE'
  SAY "CPU-type: " CPU_TYPE;
  SAY "";
  END

                                     /****      ****/

/* ARexxFunc_ShowPreview(): Handle ARexx-Command 'SHOW_PREVIEW'.  Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  'SHOW_PREVIEW'
  END

/* ARexxFunc_Render(): Handle ARexx-Command 'RENDER'.   Template: "FORCE/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'RENDER' 'FORCE'
  END

/* ARexxFunc_Undo(): Handle ARexx-Command 'UNDO'.  Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  'UNDO'
  END

/* ARexxFunc_SetFrame(): Handle ARexx-Command 'SET_FRAME'.   Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  FRAME.LEFT = 40;
  FRAME.TOP = 40;
  FRAME.RIGHT = 100;
  FRAME.BOTTOM = 80;
  'SET_FRAME' 'FRAME'

  'GET_FRAME' 'FRAME'
  SAY "Frame-left: " FRAME.LEFT;
  SAY "Frame-top: " FRAME.TOP;
  SAY "Frame-right: " FRAME.RIGHT;
  SAY "Frame-bottom: " FRAME.BOTTOM;
  SAY "";
  END

/* ARexxFunc_GetFrame(): Handle ARexx-Command 'GET_FRAME'.   Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_FRAME' 'FRAME'
  SAY "Frame-left: " FRAME.LEFT;
  SAY "Frame-top: " FRAME.TOP;
  SAY "Frame-right: " FRAME.RIGHT;
  SAY "Frame-bottom: " FRAME.BOTTOM;
  SAY "";
  END

/* ARexxFunc_Zoom(): Handle ARexx-Command 'ZOOM'.   Template: "LEFT/A/N,TOP/A/N,WIDTH/A/N,HEIGHT/A/N,REPEATS/N,FAST/S,STEPS/N" */
/* Status: CHECKED */
IF 0 THEN DO
  FACT = 1.1;
  REPEATS = 5;
  STEPS = 1;
  ZOOMWIDTH = Round(640 / FACT);
  ZOOMHEIGHT = Round(480 / FACT);
  ZOOMLEFT = Round((640 - ZOOMWIDTH ) / 2.8);
  ZOOMTOP = Round((480 - ZOOMHEIGHT) / 2.8);
  'ZOOM' ZOOMLEFT ZOOMTOP ZOOMWIDTH ZOOMHEIGHT REPEATS STEPS 'FAST';
  SAY "zoom-elapsed: " RESULT;
  SAY "";
  END

                                     /****   DISPLAY   ****/

/* ARexxFunc_DoColorcycling(): Handle ARexx-Command 'DO_COLORCYCLING'.  Template: "FORWARD/S,BACKWARD/S" */
/* Status: CHECKED */
IF 0 THEN DO
  'DO_COLORCYCLING' 'FORWARD'
  Call Delay(200);
  'DO_COLORCYCLING' 'BACKWARD'
  END

/* ARexxFunc_SetDelay(): Handle ARexx-Command 'SET_DELAY'.  Template: "SECONDS/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_DELAY' '3'
  'SET_DELAY'
  END

/* ARexxFunc_GetDelay(): Handle ARexx-Command 'GET_DELAY'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_DELAY' 'DELAY'
  SAY "Delay: " DELAY;
  SAY "";
  END

/* ARexxFunc_SetPalette(): Handle ARexx-Command 'SET_PALETTE'.  Template: "STEM,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
  PALETTE.4 = '22 55 88'x;
  PALETTE.5 = '66 22 EE'x;
  PALETTE.6 = '44 FF AA'x;
  PALETTE.7 = 'BB BB 33'x;
  'SET_PALETTE' 'PALETTE' 'FAST'
  'SET_PALETTE'
  END

/* ARexxFunc_GetPalette(): Handle ARexx-Command 'GET_PALETTE'.  Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_PALETTE' 'PALETTE'
  SAY "Color 4: " PALETTE.4;
  SAY "Color 5: " PALETTE.5;
  SAY "Color 6: " PALETTE.6;
  SAY "Color 7: " PALETTE.7;
  SAY "";
  END

/* ARexxFunc_SetScreenAttrs(): Handle ARexx-Command 'SET_SCREENATTRS'.   Template: "STEM,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
  DIMS.MODE = '40D20001'x
  DIMS.WIDTH = 640;
  DIMS.HEIGHT = 480;
  DIMS.DEPTH = 8;
  DIMS.OSCANTYPE = 'TEXT';
  'SET_SCREENATTRS' 'DIMS' 'FAST'
  'SET_SCREENATTRS'
  END

/* ARexxFunc_GetScreenAttrs(): Handle ARexx-Command 'GET_SCREENATTRS'.   Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_SCREENATTRS' 'DIMS';
  SAY "Screen-mode: " DIMS.MODE;
  SAY "Screen-width: " DIMS.WIDTH;
  SAY "Screen-height: " DIMS.HEIGHT;
  SAY "Screen-depth: " DIMS.DEPTH;
  SAY "";
  END

/* ARexxFunc_SetFont(): Handle ARexx-Command 'SET_FONT'.  Template: "STEM,FAST/S" */
/* Status: CHECKED */
IF 0 THEN DO
	FONT_ATTR.FONTNAME = "diamond.font";
	FONT_ATTR.SIZE = 12;
	FONT_ATTR.STYLE = "BOLD";
  'SET_FONT' 'FONT_ATTR' 'FAST'
  'SET_FONT'
  END

/* ARexxFunc_GetFont(): Handle ARexx-Command 'GET_FONT'.   Template: "STEM/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_FONT' 'FONT_ATTR';
  SAY "Fontname: " FONT_ATTR.FONTNAME;
  SAY "Fontsize: " FONT_ATTR.SIZE;
  SAY "Fontstyle: " FONT_ATTR.STYLE;
  SAY "";
  END

/* ARexxFunc_StartTimer(): Handle ARexx-Command 'START_TIMER'.  Template: - */
/* ARexxFunc_StopTimer(): Handle ARexx-Command 'STOP_TIMER'.  Template: - */
/* Status: CHECKED */
IF 0 THEN DO
  'START_TIMER'
  'STOP_TIMER'
  SAY "Time: " RESULT;
  SAY "";
  END

/* ARexxFunc_PlaySound(): Handle ARexx-Command 'PLAY_SOUND'.  Template: "PATH/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'PLAY_SOUND' 'DinoHD:Developer/FlashMandel/Welcome.8svx'
  END

/* ARexxFunc_SetPower(): Handle ARexx-Command 'SET_POWER'.  Template: "NUMBER/A/N" */
/* Status: CHECKED */
IF 0 THEN DO
  'SET_POWER' '4'
  END

/* ARexxFunc_GetPower(): Handle ARexx-Command 'GET_POWER'.  Template: "VAR/A" */
/* Status: CHECKED */
IF 0 THEN DO
  'GET_POWER' 'POWER'
  SAY "Power: " POWER;
  SAY "";
  END



DOCE
found bugs
1,0,1,1,0,0;
HIST
5;
Edgar Schwan

0,1011122362,0,0;
Edgar Schwan
found bugs
8,1011122376,0,0;
Edgar Schwan

7,1011122514,0,0;
eschwan

7,1011286576,0,0;
Edgar Schwan

7,1012082493,0,0;
TEXT
333;
in FlashMandelWOS.c:

* MYFONTSTRUCT.ta_name zeigt auf den Default-String und nicht auf den
  Puffer (bei ARexx-Befehl "SET_FONT")

  STATUS: behoben.

in FM_ARexx_React.c:

* Parameter "FAST" funktioniert bei SET_SCREENATTRS nicht.

  STATUS: nicht behoben.

* Parameter "FAST" funktioniert bei QUIT nicht

  STATUS: nicht behoben.


DOCE
Changes on v1.6
2,0,1,0,0,0;
HIST
3;
eschwan

0,1011890108,0,0;
eschwan
Changes on v1.6
8,1011890136,0,0;
eschwan

7,1011898290,0,0;
TEXT
4270;
Änderungen für ARexx im Vergleich zu Version 1.6:

* Alle Prototypen von "FlashMandelWOS.c" in "FlashMandel.h" verschoben.

* Folgende Zeilen von "Flashmandel.h" nach "FlashMandel.c" verschoben:

  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";

* In Datei "Modules/ColorWindow.c" alle Prototypen entfernt.
  #include "flashmandel.h" hinzugefügt.

	#define ACCEPT nach  ACCEPT2       (1L)
	#define RESET  nach  RESET2        (2L)
	#define CANCEL nach  CANCEL2       (3L)

* In Datei "Modules/Gfx.c" alle Prototypen entfernt.
  #include "flashmandel.h" hinzugefügt.

* In Datei "Modules/Iff.c" alle Prototypen entfernt.

* Die Dateien "flashmandel.h" und "compilerspecific.h" aus dem Ordner "Sources" entfernt.

* Die Dateien "flashmandel.h" und "compilerspecific.h" aus dem Ordner "Sources/Modules" entfernt.

* Folgende Zeilen in "FlashMandelWOS.c hinzugefügt bzw. geändert:

  a)	ab Zeile 104:

		struct RxsLib *RexxSysBase = NULL;      /* new for ARexx-support */
		extern Object *ARexxObj;                /**/
		extern ULONG arexxsignal;               /**/
		extern struct List ARexxEventList;      /**/
		BOOL ForceAbort = FALSE;                /**/


  b)	ab Zeile 512 (neuer Menüpunkt):

		NM_TITLE,"ARexx",0,0,0,0,
		NM_ITEM,"Launch...",0,0,0,0,
		NM_END,0,0,0,0,0 };


  c)	ab Zeile 790:

		if (!(RexxSysBase = (struct RxsLib *) OpenLibrary("rexxsyslib.library", 36L))) {return(RETURNVALUE);}  /* new for ARexx-support */
		NewList(&ARexxEventList);                            /**/
		ARexxEventList.lh_Type = NT_USER;		              /**/


  d)	ab Zeile 1062 (geändert):

		if (ForceAbort == FALSE) {  /* new for ARexx-support */
			if (ResourceBase) {
				res = Do_ExitRequest(MYILBM.win, FMSCREENNAME, 0, 0);
				}
			else {
				res = Choice (MYILBM.win, CATSTR(TITLE_ExitReq), CATSTR(Prt_TXT_AreYouSure));
				}
			}
		else res = TRUE;


  e)	ab Zeile 1094:

		if (RexxSysBase) CloseLibrary((struct Library *) RexxSysBase);   /* new for ARexx-support */


  f)	ab Zeile 3646 (Funktion ProcessMenu() ):

		case 4: switch (ITEMNUM (Code))                /* new for ARexx-support */
                {
                   case 0: Choice |= LAUNCH_AREXX_MSG; /**/
                           break;                      /**/
                }


  g)	ab Zeile 3932 (Funktion HandleEvents() ):

		ULONG rxsig = arexxsignal;  /* new for ARexx-support */


  h)	ab Zeile 3938 (Funktion HandleEvents() ):

		// do { WaitPort (Ilbm->win->UserPort);
		 wsignal = 1 << Ilbm->win->UserPort->mp_SigBit; /* new for ARexx-support */

		 do { receivedsig = Wait(wsignal|rxsig);        /**/

		   if (receivedsig & arexxsignal) {             /**/
		      ULONG result, code;
		      struct FM_ARexxEvent *act_event = NULL;   /**/

		      result = DoMethod(ARexxObj, AM_HANDLEEVENT, &code);  /**/
		      MyMenu = HandleARexxEvents(Ilbm, &Error); /**/
		      }

		   if (receivedsig & wsignal) {                 /**/


  i)	ab Zeile 4570 (Funktion HandleEvents() ):

     }  /* new for ARexx-support */


  j) ab Zeile 2760 (Funktion DrawFractal() ):

		- Prototyp geändert nach:

		  ULONG DrawFractal (struct Window *Win,const WORD a1,const WORD b1,const WORD a2,const WORD b2, BOOL BeepWhenReady)

		-  if (BeepWhenReady == TRUE) DisplayBeep (Win->WScreen);


  k)	ab Zeile (Funktion ProcessMouse() ):

		von static in ProcessMouse() nach public:

		WORD MX1 = 0 , MY1 = 0 , MX2 = 0 , MY2 = 0, W = 0, H = 0;  /* changed for ARexx-support */


  l)	ab Zeile 4561 (Funktion HandleEvents() ):

		if (MyMenu & LAUNCH_AREXX_MSG)         /* new for arexx-support */
			{
			BOOL success;                       /**/
			success = LaunchARexxScript(Ilbm);  /**/
			MyClass = 0;                        /**/
			break;
			}

* Folgende Zeilen in "FlashMandel.h" geändert:

  a)	Prototyp von LoadMandPic() geändert nach:

		IMPORT LONG LoadMandPic (struct ILBMInfo *,UBYTE *, BOOL);


  b)	Prototyp von LoadPalette() geändert nach:

		IMPORT LONG LoadPalette (struct ILBMInfo *,UBYTE *, BOOL);


  c)	Prototyp von DrawFractal() geändert nach:

		ULONG  DrawFractal (struct Window *,const WORD,const WORD,const WORD,const WORD, BOOL);


