home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
The CDPD Public Domain Collection for CDTV 2
/
CDPD_II_2352.bin
/
scope
/
051-075
/
scopedisk53
/
multivue
/
multiview.doc2.0
< prev
next >
Wrap
Text File
|
1992-10-27
|
18KB
|
351 lines
MULTIVIEW - Version 2.0
by
Wayne Hogue
A.U.R.A.
(Amiga Users of Regina Association)
January 14, 1988
You are now here because after looking at that screenfull of pretty gadgets
you became totally confused and that Mouse turned out to be an inept tour
guide. Well, throw that rodent a chunk of cheese and read on.
WHAT THE PROGRAM DOES:
----------------------
1. Read Graphics Files in following forms
a) IFF - ILBM (InterLeaved Bit Map)
- ACBM (Amiga Continuous Bit Map)
(Note: IFF = Interchange File Format)
b) Atari ST - DEGAS Elite
- NEOchrome
c) Macintosh
d) SPUT - my special form for AmigaBasic PUT command
e) SBOB - my special form for AmigaBasic BOB's
f) DECODE - extract pictures buried in complicated files
2. Write Graphics Images as
a) IFF - ILBM non-compressed format
- ACBM
b) SPUT - with special header information
- without special header information
c) SBOB - with special header information
- without special header information
d) Image structure for 'C' programmers
3. Create GIANT ICONS for the Workbench Screens
(Just the effect needed for your custom program that took you so long
to write.)
THE PROGRAM:
------------
The program can either be run from the CLI or by double clicking on its
icon. A window opens which can be reduced in size so that it can be
placed any where you like on the screen. All parts of the program are
accessed through gadgets. Whenever you see a word totally capitalized
such as CLOSE this means I am referring to a gadget.
To Quit:
--------
So, to begin let's start at the end. At the upper left corner of the window
is the CLOSEWINDOW gadget. Pressing this gadget brings up a requester
that gives you the choice of really quitting the program or continuing
with the program.
Sizing the Window:
------------------
Just below CLOSEWINDOW is the SIZEWINDOW gadget. Selecting this gadget
either shrinks or enlarges the winow. In its shrunk size you can drag
the window to any spot on the Workbench screen. When the window is
changed back to its original size it will position itself to the right
spot on the screen.
Views and ViewPorts:
--------------------
Its now time to let the techies cringe with this simple description of how
you see things on the monitor. Below SIZEWINDOW are two gadgets for
selecting the type of view to use. They are called SCREEN and SUPER. With
SCREEN you create a standard Amiga screen where the entire picture is
seen on the screen. Using SUPER you create a view that uses a super bitmap
which can hold a picture that is larger than what you can see on the screen.
When SUPER is selected you must then decide how big to make the bitmap.
The bitmap can measure as much as 1024 pixels by 1024 lines. Use the
SUPERWIDTH and SUPERHEIGHT gadgets and type in them the size you want.
A maximum size bitmap at maximum depth is too large for 512K of CHIP
memory.
After deciding on whether to use SCREEN or SUPER, you must then decide
on how many colors to have in the picture. This is done by choosing the
Depth.
DEPTH Colors
----- ------
1 2
2 4
3 8
4 16
5 32
6 4096
The more colors used mean more CHIP memory is needed.
Now use WIDTH (320 or 640) and HEIGHT (200 or 400) to determine the size
the picture will be on the monitor. (Note: To give you overscan just
means changing the gadgets). A superbit map should really be larger
than the screen size you choose here. If a depth of 5 or 6 is chosen for
a superbit and then you make the viewport 640 pixels wide then only
4 bit planes of data will be displayed.
Selecting OPEN now creates the screen or super bitmap display. If you
now select DISPLAY only a blank screen will appear because no picture
has been loaded yet. To get back to the Workbench screen you can do a
Left_Amiga_N or for a SCREEN use the hidden BACK/FRONT gadgets at the
top right hand corner or for a SUPER view press the <return> or <enter>
keys. For some reason the <return> and <enter> keys do not work the first
time the SUPER view is displayed.
The CLOSE gadget closes down the screen or super view. For a super view
if the bitmap is larger than 320x200 then you can resize the viewport
without loosing the picture already loaded. Just select the new WIDTH
and HEIGHT and then press RESIZE.
When displaying a super view you can scroll the picture around using
the keys on the numeric keypad. The keys mimic the action of a joystick.
Using the Up and Down arrow keys you can change the speed of the scroll.
If a screen or super view is open then a picture will be read into
that size of view. If you want a picture to load into the size of screen
for which it was created then choose CLOSE before loading the picture.
Degas, Neo and Mac pictures will always close down any open view and
load to the view size needed.
Reading and Saving:
-------------------
Over at the right top are PICTURE and COLORMAP. COLORMAP can only be
used if there is an open screen or super view. Gadgets READ, SAVE and
DECODE can be used with either PICTURE or COLORMAP.
To read in a picture select PICTURE and READ. Now below these gadgets
is another bunch which determines what type of graphic file to read.
The choices are:
1. IFF file in ILBM format
2. IFF file in ACBM format
3. SPUT format with header information
4. SPUT format without header information
5. SBOB format with header information
6. SBOB format without header information
7. DEGAS format for an Atari ST
8. NEO format for an Atari ST
9. MAC format for a Macintosh
(Note: for READ only, types 1,2,3,5 are interchangeable because the first
4 bytes identify the file type. No checking is done to see if
the type is really 4,6,7,8,9 so some interesting things can happen.)
Last of all select GO. A file requester window will now open. You can select
the volume name and file name by just clicking with the mouse. Clicking once
on a file name will put the name in the FILE gadget. Clicking on a file name
that is already displayed is the same as using the gadget in the bottom left
hand corner of the requester window that says Read (or in other cases Save
or Pick). You can type the path and file names directly into the DRAWER and
FILE gadgets if you wish. Experiment to find out everything the file
requester window will do for you. After choosing the file the graphic will
be read in and then displayed for you.
Picture files are read in and displayed a little slower than other
display programs that have been released. This is because my program
is doing more checks while decoding the file data.
Atari ST and Macintosh pictures were obtained by loading the files onto
a 5 1/4" disk on an Atari. The disk was then transferred to an Amiga
equipped with a 5 1/4" drive and transferred to 3 1/2" disk using
the program on the Extras disk. DEGAS and NEO picture files are very
similar and contain information in the first 2 bytes which tell
what screen resolution to use. The screen is opened according to these
first 2 bytes in the file and not by the extension on the file name
so you can call the files whatever you want to. Macintosh files are
not checked to see if they are indeed picture files. The right number
of bytes are skipped and the picture load continues (I had no information
on Mac file structure available) The DEGAS file format was available
and so I used this information to decode the files. For NEO pictures
I only had a couple of example files so the file structure was determined
through trial and error. Atari pictures are loaded to a Screen and
Macintosh pictures are loaded to a View. A Macintosh picture always loads
to a super bitmap view because it is 576 pixels wide by 720 pixels high.
To save a displayed picture select PICTURE, SAVE, file type 1 to 9 and then
select GO. Then choose the path and file name using the file requester.
You can not save pictures in DEGAS, NEO, or MAC format because I am not
interested in transferring pictures in that direction. When you want to
save a SBOB another requester window opens after selecting GO. You design
your BOB characteristics here. Note the button to the left of the gadget
requesting the file name. Selecting this button will open the file
requester window for you.
NOTE: for SBOB files no check is currently being made on the size of
picture being stored. Thus you can save a BOB that is too large
to load in an AmigaBasic program.
If you are a C programmer, you can read in a picture and then select
SAVE_IMAGE and GO. Another requester window opens that allows you
to save the picture as an image structure. Sure beats doing the calculations
by hand. I may later add the code section that saves the data as a
sprite data structure.
Decoding:
---------
Pictures can be extracted from other programs such as games using a little
detective work. Open a SCREEN or SUPER and then select PICTURE, DECODE and
GO. Another requester window will open but before this:
The file first has to be examined through the CLI using the command
TYPE "some file name" OPT H
to determine where the picture data might be. If information can not
be found you will have to guess at the screen and object size and
the screen depth. After giving the file name including path name
determine how many bytes in the file to skip and type this in and then
select either HEXadecimal or DECimal. Specify in decimal the object
width and height. The picture data could then be in the file as either
ACBM or ILBM (compressed or non-compressed) format for an Amiga or in
Atari format for an Atari ST. MAC pictures are stored as ILBM compressed
using 1 bitplane. Through much trial and error pictures can be pulled
out of files. NOTE: for Atari uncompressed pictures select Atari gadget
but select IFF gadget for compressed pictures.
Example: This can be applied to any IFF file
TYPE WOODWITCH OPT H
yields the following information from this IFF file.
0000: 464F524D 0000E07E 494C424D 424D4844 FORM...~ILBMBMHD
0010: 00000014 01400154 00000000 05020100 .....@.T........
0020: 001A0A0B 014000C8 434D4150 00000060 .....@..CMAP...`
0030: 000000E0 C0A01010 10202020 404040A0 ......... @@@.
0040: A0207070 10402000 50302060 40308050 . pp.@ .P0 `@0.P
0050: 40B07060 C09080B0 8070A070 60906050 @.p`.....p.p`.`P
0060: 00B00000 90000070 00005000 302010F0 .......p..P.0 ..
0070: F0F0D0D0 D0B0B0B0 90909070 7070A0E0 ...........ppp..
0080: F0D01010 B01010A0 10108010 10701010 .............p..
0090: 44505056 00000068 00000000 0000FFF1 DPPV...h........
00A0: 01680000 014000C8 0002005A 00020000 .h...@.....Z....
00B0: 00020000 00020000 00000000 00000000 ................
00C0: 00000000 00000000 00000000 00000000 ................
00D0: 00140001 FFAC0001 00000000 0000F747 ...............G
00E0: 00004242 00000000 FFFFBDBE 0000F747 ..BB...........G
00F0: 00000000 00000000 00000000 00010002 ................
0100: 43524E47 00000008 FFFF0019 00021012 CRNG............
0110: 43524E47 00000008 00004E78 00040709 CRNG......Nx....
0120: 43524E47 00000008 00FDAB4A FFFFFFF7 CRNG.......J....
0130: 43524E47 00000008 FFFFFFF4 00000000 CRNG............
0140: 424F4459 0000DF3E FCFF22F1 00080004 BODY...>..".....
0150: 00100405 04020800 20261414 06938802 ........ &......
Unlike a game program file I know where to find information in
this IFF file. The first column gives the location in the file
in the Hexadecimal numbering system (no lessons are being
given), then the next four columns list 4 bytes each of data
for a total of 16 bytes, and finally the last large column
lists the ASCII characters for each byte with a period being
used for an unprintable ASCII character. Note the first byte
in the file is numbered as 0 and not 1.
In an IFF file the actual data for the picture or brush is
located after the chunk name BODY. The first 4 bytes after
the chunk name give the actual count of the data bytes to
follow. Therefore the picture data starts $148 in (Hexadecimal)
or 328 (decimal) bytes from the start of the record.
In the requester for bytes to skip type either A4 or 164 and
then select the gadget for the numbering system being used.
Listed after the chunk name BMHD you will find the object
width as $140 = 320 and the object height as $154 = 340.
The pageWidth is given as $140 = 320 and the pageHeigeht as
$C8 = 200. Select the CANCEL gadget to close down the requester
and open a screen with a depth = 5, a width = 320
and a height = 200 or 400 depending on whether you want to
see the full size of the picture or not. Enter in decimal the
obect width as 320 and the height as either 200 or 340 depending
on what height you made the screen. At this point you are not
allowed to enter the width and height in Hexadecimal. The data
for the picture is stored as Compressed ILBM data so select the
gadget marked YES. If you select the OKAY gadget know the picture
will load in but there is something wrong with the colors. It is
necessary to load in the correct colormap. (If this test had
been done with LEGENDS the colors would have been correct
because the default colormap matchs up with LEGENDS.)
Now select COLORMAP and DECODE and get a requester.
The colormap is stored after the chunk name CMAP at $30 = 48.
Data in IFF files needs three bytes to store the values for
each color and in the RAM in the Amiga two bytes are used
to store the values for each color. In the requester enter
the file name WOODWITCH, the number of bytes to skip and
either the HEX or DEC gadgets, and finally select the IFF
gadget because the color values are stored in that format.
Click the OKAY gadget and the colors in the picture will
now be correct.
Make Giant Icons:
-----------------
So you want to impress somebody with your Amiga or give a presentation
to your club but all you have are those tiny icons on the Workbench
screen. Well now you can have the icons as large as the screen. Just go
into your favorite paint program (remember the Workbench screen is only
640x200 or 640x400 with 4 colors) and design your icon. Your Giant Icon will
have a main image and an alternate image to show when selected. Thus
design two pictures or brushs of the same size (the alternate image will
be chopped to the size of the main image). The select GIANT_ICON and GO
and fill in the rquired information in the displayed requester window.
Click OKAY and you shortly have a giant icon. Remember that the larger
the icons are then more CHIP memory will be needed to display them.
This program does not create Icon files (file names have the extender
.info) but only changes the image data in an existing Icon file.
If you need an Icon file just copy from an identical type ICON.
If you needed a TOOL type icon the Clock program on the Workbench
disk is of this type. The command to type would be
COPY CLOCK.INFO NEWFILE.INFO
CMAP Header Information:
------------------------
CMAP file structure is:
Bytes Description
----- -----------
4 File ID = CMAP
4 to 64 Two bytes used per color
Depth = 1; colors = 2; bytes = 4
Depth = 2; colors = 4; bytes = 8
Depth = 3; colors = 8; bytes = 16
Depth = 4; colors = 16; bytes = 32
Depth = 5; colors = 32; bytes = 64
SPUT or SBOB Header Information:
--------------------------------
File structure is:
Bytes Description
----- -----------
4 File ID = SPUT or SBOB
2 Width of object
2 Height of object
2 Width of screen
2 Height of screen
2 Depth of screen
4 to 64 Two bytes used per color
Depth = 1; colors = 2; bytes = 4
Depth = 2; colors = 4; bytes = 8
Depth = 3; colors = 8; bytes = 16
Depth = 4; colors = 16; bytes = 32
Depth = 5; colors = 32; bytes = 64
4 Number of bytes to follow
Variable PUT or BOB data bytes exactly as need by AmigaBasic
THAT'S ALL
----------
If you are still with me that's persistence. Have fun with the program
and keep that rodent working hard.
(Editor's Note: This program keeps causing the GURU to make infrequent
visits. This is very annoying.)