home *** CD-ROM | disk | FTP | other *** search
- ==============================================================================
- WIPEDEMO v4.0
- ==============================================================================
-
- To show how this program works, I wrote a little script that works with the
- DeluxePaint II Art Disk. From CLI, type WIPEDEMO, or double-click the icon
- from Workbench.
- This program displays a series of IFF picture files in sequence using
- fadeouts and 45 different screen wipes. It can also be programmed to wait in
- between each picture and to use the narrator device. The example script,
- WIPEDEMO.S, can be changed or rewritten to suit your needs. Read the script
- file to see how the commands work. This program can now be used to display
- files in lo-res, hi-res, interlace, overscan, HAM, and EXTRA_HALFBRITE. Color
- cycling is also possible. There are four other example scripts, each of which
- can be run by typing WIPEDEMO and then the name of the script, or by clicking
- on the script file's icon from Workbench.
- I have made two versions of this program, WIPEDEMO and WIPEDEMO2. WIPEDEMO
- uses less memory because it does not save the old picture during each wipe;
- it wipes in from black each time.
- This program and its source code is public domain, period. To show your
- appreciation for such generosity, send me $10 or so. Another way to show your
- appreciation is to buy lots of MicroEd educational programs. Call MicroEd and
- ask for the Demo Loop disk.
-
- Paul Falstad
- 5415 Abbott Place
- Edina, MN 55410
- CIS: 70016,1355
- GEnie: P.FALSTAD
- PLink: HYPNOS
-
- MicroEd, Inc.
- P.O. Box 24750
- Edina, MN 55424
- (612) 929-2242
-
- Other example scripts:
-
- WipeDemo.dgp Uses pictures from the Digi-Paint disk
- WipeDemo.dv2 Uses pictures from the DigiView 2.0 disk
- WipeDemo.dv3 Uses pictures from the DigiView 3.0 disk
- WipeDemo.dp2 Uses pictures from the DPaint II Art Disk
-
- List them to see how they work.
-
- ========================================================================
- COMMANDS
- ========================================================================
-
- Run the program as follows:
-
- WIPEDEMO[2] [HIRES] [LACE] [script_file]
-
- If [script_file] is not specified, it defaults to WIPEDEMO.S. You might try
- using a CON: window as a script file to test out the wipes.
-
- If you want to use hi-res or interlaced pictures, you MUST use one or both
- of the HIRES and LACE keywords. Each script can have pictures all of only one
- resolution; for example, you can't mix interlaced pictures with lo-res
- pictures. You can, however, mix HAM pictures and EXTRA_HALFBRITE pictures
- with regular ones.
-
- To select HIRES or LACE from Workbench, you must make a FLAGS entry in the
- Tooltypes list. To get interlace mode, enter FLAGS=LACE in the tooltypes list
- using the INFO menu option from Workbench. FLAGS=HIRES will get you hires
- mode, and FLAGS=HIRES|LACE will get you both.
-
- Here are the commands used in the script file:
-
- SHOW <filename> Shows a picture with wipes
- WAIT <num> Waits a specified number of seconds
- RANDOM Uses random selection of wipes
- SELECT <num> Select a certain wipe
- FADES ON Turns on random fadeouts (only works w/WIPEDEMO2)
- FADES OFF Turns off random fadeouts (only works w/WIPEDEMO2)
- LOOP Goes back to beginning of script
- EXCLUDE <num> Tells random wipe selector not to use a certain wipe
- EXCLUDE ALL EXCLUDE all 45 wipes (you must then INCLUDE a few)
- INCLUDE <num> Tells random wipe selector to use a certain wipe
- previously excluded
- INCLUDE ALL INCLUDE all 45 wipes
- CYCLE ON Turns on color cycling
- CYCLE OFF Turns off color cycling
- # Denotes comment
-
- If you use your own pictures with this demo, do not make color 1 white. You
- may notice a little white flicker in showing the DPaint II pictures; this is
- because of the bright color 1.
-
- ========================================================================
- WIPE NUMBERS
- ========================================================================
-
- 0 UpAndDownPanel 1 Random
- 2 LeftLinePanel 3 Dice
- 4 GrowBoxes 5 SideToSide
- 6 TwoClock 7 OneClock
- 8 RandomOut 9 Spiral
- 10 ExpandBox 11 Doors
- 12 WipeUp 13 WipeDown
- 14 WipeLeft 15 WipeRight
- 16 WipeDiag 17 TwoBox
- 18 Shades 19 RandomShade
- 20 SymArr 21 FourSweep
- 22 FourLines 23 HexSweep
- 24 DiagSplit 25 Xes
- 26 SlideBoxes 27 Cannon
- 28 Drip 29 MovingWindow
- 30 Sun 31 Monolith
- 32 Rain 33 MergeWindows
- 34 Slides 35 RandomDown
- 36 Stretch 37 ExpandSlide
- 38 SlideSlabs 39 Checkerboard
- 40 MiniRandom 41 ConcentricRectangles
- 42 Cloverleaf 42 Cloverleaf2
- 44 ConcentricRectangles2
-
- ============================================================================
- A NOTE TO PROGRAMMERS
- ============================================================================
-
- The development of version 4 of this program has been held up for over
- half a year by a pernicious bug. This bug caused random garbage to appear on
- the internal bitmaps, so pictures wiped in would occasionally have a line of
- garbage on them. This bug was the worst possible kind of bug, because it
- would suddenly disappear whenever I would check the program with SDB or put
- any sort of debugging material in the program whatsoever. Plus, the garbage
- was random, and would appear in a random location on the bitmap. I managed
- to figure out that the SetupMaps() routine was causing it, but I was
- completely baffled.
- After pounding my head against a brick wall for several hours, however, I
- was granted a vision from God. The garbage that appeared was remarkably like
- garbage that appears on a bitmap after you'd freed up its memory and then
- looked at it. It also appeared to be time-dependent; if I put Delay()s in the
- program, the garbage disappeared. The bug, I discovered was caused by the
- BltBitMap() and the free_planes() in the SetupMaps() routine. The BltBitMap()
- takes the bitplanes that have been loaded in from the disk and copies them
- to another bitmap. free_planes() then frees the original copy. Unfortunately,
- BltBitMap() is asynchronous; it doesn't wait for the blit to finish. So
- free_planes() was freeing the memory AS IT WAS BEING COPIED! A WaitBlit()
- cured all my problems; another mystery solved. I shall now proceed back to
- that brick wall and drum out what remains of my sanity.
-
- ============================================================================
-
- Thanks to Jim Kent for his Public Domain IFF reader!! -PF
-
- ============================================================================
-