this image contains text
TM
V I E W
ACiD Productionstm Acquisition Enhanced File Viewer
Coding by The Hit Man
RIP Routines by Capn Crunch and The Hit Man
Layout by Icy
Character Font by RaD Man
Modem Simulation Routines by Tasmaniac
Documentation and Update History of ACiD Productions ACiD View
By The Hit Man and RaD Man of ACiD Productionstm
Current version of ACiD View : 2.02 / 06-01-199419:33
Introduction to ACiD View
ACiD View welcomes you to the most comprehensive Art View-
er in production. This innovative program is capable of dis-
playing both ANSI and RIP graphics. In addition, the viewer
has been designed with a special interest for those who multi-
task. ACiD View utilizes its own internal ANSI routines,
making it capable of viewing ANSI without a separate device
driver. We hope that ACiD View provides you with as much
pleasure as we intended with its creation.
Features
Full File Description and Artist Initial Identification
Now supporting our very own special SAUCE
Semi Gooey Menu System
Mouse support
Pull-down Menus
Command Line Viewing
Slide-Show capable
Variable Speed ANSI Viewing
Modem-Simulation for both ANSI and RIP Viewing
File Masking
Drive and Directory switching
Level 0-1 RIP Viewing
Fully-Features ANSI Scroll Back in several different video
modes
ANSI Viewing in 80x25 or 80x50/80x43 text modes
ANSI Viewing in 640x480x16 VGA mode
ANSI Viewing in 320x200x256 MCGA mode
ANSI Viewing in 640x480, 800x600, and 1024x768x256 SVGA VESA
modes
Supports up to 2000 files in one directory
ACiD View Default Setup INI with automatic saving
What ACiD View Displays
ACiD View will display ANSI screens in several different video
modes. These modes include the default, 80x25, and others
such as the 80x43/80x50 text modes, 640x480x16 VGA,
320x200x256 MCGA, 640x480, 800x600, and 1024x768x256 VESA SVGA
modes. ACiD View also supports all of the major SVGA chipsets
Trident, Oak, TSeng, etc.
ACiD View displays most low level 0-1 RIP screens. Although
it will show all of the RIPs presented in the Acquisition, it
may not display some of the other RIPS you own. This is due
to the fact that some of the higher level RIP commands have
not yet been implemented.
ACiD View is capable of displaying ANSI or RIP files at sim-
ulated modem speeds. To ensure that these files display at
the same speed on all computers, the timer interrupt is altered.
This can create a possibility for problems while running ACiD
View under a multitasking operating system, such as DesqView.
In order to prevent this problem, these modem simulation
routines have been disabled within all multitasking environ-
ments.
ACiD View Functions
F1 Quick-Help : Brief description of function keys.
F2 Scroll Back : Toggles Scrolled viewing ON/OFF. Default is
OFF. While ON, you can scroll back ANSI in
80x25, 80x43/80x50, and 320x200 Modes.
F3 Toggle Speed : Displays files in a variety of speeds: No
Delay, ErrorChecking, 38,400, 19,200, 14,400,
12,000, 9600, 4800, and 2400 bps. The default
is No Delay. If you want to display files at
an alternate bps rate, you can customize the
speed by pressing the + or - keys to in-
crease or decrease the speed, repsectively.
F4 Display Mode : Selects the video mode that the selected ANSI
is to be viewed in.
80x50 Display - If you have a VGA card, this will compress the
default 8x16 font into an 8x8 font and display
the screen. This feature is nice when you want
to display a big ANSI on one screen.
VGA 16 - Displays ANSI in 640x480x16 VGA mode.
MCGA 256 - ACiD View will display ANSIs in 320x200x256
MCGA mode 13h graphics mode.
VESA SVGA - Displays ANSI in 640x480, 800x600, and
1024x768x256 SVGA modes. VESA SVGA is required
for these viewing modes.
Display Mode Description Flags
25 Line Standard 80x25 Text Mode ABS
50 Line 80x43/80x50 Compressed Text Mode ABES
VGA 16 640x480x256 VGA Graphics Mode AV
MCGA 256 320x200x256 MCGA Graphics Mode AMS
640x480 640x480x256 VESA SVGA Graphics Mode AG
800x600 800x600x256 VESA SVGA Graphics Mode AG
1024x768 1024x768x256 VESA SVGA Graphics Mode AG
RIP 640x350x16 EGA Graphics Mode BER
Flags:
A Ansimated Viewing Supported B Modem Simulation Supported
R RipScrip Graphics Supported S Scroll Back Supported
E EGA Required M MCGA Minimum Required
V VGA Required G VESA/SVGA Required
F5 File-Masking : Selects files within a specified file mask.
Alt+A Ansimation : Forces the ansimation flag of the highlighted
file. Use this option when you know the ANSI
you want to view contains ansimation and is
not flagged so. This option only affects the
320x200x256 MCGA mode.
Alt+ Quick-Exit : Quickly Exits ACiD View without palette fad-
ing.
The ACIDVIEW.INI File
ACiD View now includes an INItialization file, which allows
you to set up your preferred defaults upon the loading of the
viewer. ACIDVIEW.INI can be edited with virtually any text editor
of your choice. While editing the file, please note that each
line is interpreted as a command, unless a semi-colon precedes
it. Only the information within the quotes or after the equal
character should be modified. Follow the instructions for each
entry, as shown in ACIDVIEW.INI. ACiD View will automatically
save any changes made to the configuration during run-time in the
initialization file.
What is SAUCE?
Recipe for SAUCE
Chef cuisinier : Tasmaniac / ACiD
Maitre dhtel : Rad Man / ACiD
ANSis used to be just ANSis, pictures were just pictures,
loaders were just loaders and quite frankly, every file was just
as plain tasting as every other. This is about to change, how-
ever, because ACiD has decided to give their files an extra
je-ne-sais-quoi. In reality, well be adding SAUCE to every
file you can imagine.
Now, before we thoroughly confuse you, let us explain what we
are doing here. SAUCE stands for Standard Architecture for
Universal Comment Extensions. Although originally intended for
personal use in ANSis and RIP screens, early in the developement
of EFI Extended File Information it was decided that EFI should
be extended to have support for more than just ANSi and RIP
screens. Our brainchild was born and the specs were designed.
The only aspect left undecided was the name, and after rejecting
some very funny candidates, SAUCE was unanimously chosen. This
leads us to the big question in the sky, What is sauce? SAUCE
is a universal process to incorporate a full description for any
type of file. The most outstanding aspect of this concept is that
you have access to the complete file name, the files title, the
creation date, the creator of the file, the group that the creator
is employed by, and much, much, more.
A full explanation on how you can implement SAUCE is
described at the end of this document in the PLATES Programming
Language Architecture To Extract SAUCE section. Although you can
create your own programs to implement SAUCE to your files, we
recommend that you use the SPOON.EXE program to ensure a greater
universal compatibility.
SAUCE already supports a plethora of filetypes See PLATES.
If you have a need for the SAUCE specifications, please contact us
before you make the changes yourself. We will accomodate your
needs as soon as possible. After all, SAUCE is designed to become
a standard, and if people change the specs without allowing us to
make a complete update, there will be no standard. In the event
that we change SAUCE, we will quickly release a public update
which will most definately include an improved and updated
SPOON.EXE.
SAUCE has advantages over any other system in use. Each
description will be added to the file and will provide a file
description no matter what computer it is used for. SAUCE, how-
ever, also provides a back compatibility that uses a file with
descriptions for those files that do NOT already have a SAUCE
description. Processing in this manner is fully implemented in
SPOON.EXE and one can extract embedded SAUCE to this data file and
add SAUCE to files from this data file.
PLATES
Let us begin with a description of the record layouts used.
The record layouts and code examples are in a variated pascal
pseudo code, and should be transferrable enough to implement in
most other programming languages. For ease of reading, the
examples assume that the file is correct and that no error-
checking need be included. How rigorous you check for errors is
completely up to you, and will most likely depend on the file type
you are describing.
SAUCE RECORD
This portion of the documentation is about the SAUCE record.
The SAUCE record describes the file in short, and provides other
information not included in the SAUCE record itself.
A sauce record is EXACTLY 128 bytes in size.
Fieldname : Name of the field.
Size : Size of the field in BYTES
Type : Type of data. This can be :
BYTE : One byte unsigned numeric value 0 to 255
WORD : Two byte unsigned numeric value 0 to 65535
INTEGER : Two byte signed numeric value -32768 to 32767
LONG : Four byte signed numeric value -2147483648 to 2147483647
CHARACTER : One byte ASCII value. Longer character fields are
padded with spaces. It is NOT a PASCAL string with a
leading length byte, and its NOT a C-Style string
with a trailing nul-byte. A 10 byte character field
holding the text ANSI would look like this.
ANSI .
Numeric fields should be zero when not used, character fields
should be all spaces when not used.
V : SAUCE Version number. This indicates the version of
SAUCE when the field was implemented.
Description : Complete description of the field.
No fields are REQUIRED to be filled in except for ID, Version, FileSize,
DataType and FileType.
FieldName Size Type V Description
ID 5 Character 00 SAUCE Identification. This should be equal to
SAUCE or the record is not a valid SAUCE
record.
Version 2 Character 00 Version number of SAUCE. Current version is
00. As new features are added to the
specifications of SAUCE, this version number
will change. Future versions SHOULD remain
compatible with version 00 only ADDING on
the specifications, it is however not unlikely
that this compatibility is impossible to
maintain, but this is of no concern now.
Title 35 Character 00 Title of the file.
Author 20 Character 00 Name or handle of the creator of the file.
Group 20 Character 00 Name of the group the creator is employed by.
Date 8 Character 00 Date the file was created. This date is in
the format CCYYMMDD Century, year, month,
day. There is a good reason why the date
is in this format, but its not used in
version 00 of SAUCE. It will be used in
a future version of SAUCE.
FileSize 4 Long 00 Original filesize NOT including any
information of SAUCE.
DataType 1 Byte 00 Type of Data. See DATATYPES further on
FileType 1 Byte 00 Type of File. See DATATYPES further on
TInfo1 2 Word 00 Numeric information field 1 See DATATYPES
When used, this field holds informative
values. Any program using SAUCE should not
rely on these values being correct or filled
in.
TInfo2 2 Word 00 Numeric information field 2 See DATATYPES
TInfo3 2 Word 00 Numeric information field 3 See DATATYPES
TInfo4 2 Word 00 Numeric information field 4 See DATATYPES
Comments 1 Byte 00 Number of Comment lines See COMMENTS
Flags 2 Word * 00 Flags indication optional settings/switches
These flags have different meaning depending
on the data type.
The flags werent originally in the concept
for Version 00 of SAUCE. but since the
specification of SAUCE expects all filler
bytes to be binary zero, the flags should be
set to ZERO in all previous files, and cause
no significant harm.
An Example PASCAL record looks like this:
TYPE SAUCERec RECORD
ID : Array1..5 of Char
Version : Array1..2 of Char
Title : Array1..35 of Char
Author : Array1..20 of Char
Group : Array1..20 of Char
Date : Array1..8 of Char
FileSize : Longint
DataType : Byte
FileType : Byte
TInfo1 : Word
TInfo2 : Word
TInfo3 : Word
TInfo4 : Word
Comments : Byte
Flags : Byte
Filler : Array1..22 of Char
END
An Example C record looks like this:
typedef SAUCEREC
char ID5
char Version2
char Title35
char Author20
char Group20
char Date8
signed long FileSize
unsigned char DataType
unsigned char FileType
unsigned int TInfo1
unsigned int TInfo2
unsigned int TInfo3
unsigned int TInfo4
unsigned char Flags
char Filler22
SAUCEREC
DATATYPES
DataType and FileType hold the information needed to deter-
mine what type of file it is.
There are 5 DataTypes, these are with their respective numeric values :
0 None : Undefined filetype, you could use this to add SAUCE
information to personal datafiles needed by programs,
but not having any other meaning.
1 Character : Any character based file. Examples are ASCII, ANSi and
RIP.
2 Graphics : Any bitmap graphic file. Examples are GIF, LBM, and
PCX.
3 Vector : Any vector based graphic file. Examples are DXF and
CAD files.
4 Sound : Any sound related file. Examples are samples, MOD
files and MIDI.
5 BinaryText: This is RAW memory copy of a text screen. Its
basically the BIN format you can save from whitin
TheDraw. Each character is built up of two consecutive
bytes. The first is the character to be displayed. The
second is the Attribute byte.
None
When using the None datatype, you should have FileType set to
zero also. This is a compatibility issue as its not unlikely,
the None datatype will have filetypes in the future.
Character
When using the Character datatype, you have following filetypes
available :
0 ASCII : Plain text file with no formatting codes or color codes.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of lines in the file.
1 ANSi : ANSi file. With ANSi color codes and cursor
positioning.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
in the file.
2 ANSiMation: ANSi Animation. With ANSi color codes and cursor
positioning. While an ANSi file can also have animated
sequences, there is a clear distinction. While an ANSi
may or may not have a beginning animated sequence
introducing the group or artist the rest is just a
sequence of colored characters. An ANSiMation on the
other hand is a more like a text mode cartoon.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
the ANSiMation was created for.
A program using SAUCE may use these two values to
switch to the appropriate video mode.
3 RIP : Remote Imaging Protocol RIP graphics file.
TInfo1 holds the width should be 640
TInfo2 holds the height should be 350
TInfo3 holds the number of colors should be 16
4 PCBoard : File with PCBoard style @X color codes and @ macros
and ANSi codes.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
in the file.
5 AVATAR : A file with AVATAR and ANSi color codes and cursor
positioning.
FLAGS for the Character Datatype.
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 A
All non-used bits should be ZERO.
A Non-Blink mode iCE Color.
When this bit is SET equal to 1 The ANSi is created using iCE
color codes. This is a special mode where the blinking is
disabled, and you have 16 background colors available. Basically,
you have the same choice for background colors as for foreground
colors. Please note.
When the picture does not make specific use of the iCE color, you
should NOT have this bit set.
When you do not support the iCE color mode, you should probably not
display the file as it could look pretty weird in normal mode.
Graphics
For all graphics types, TInfo1 holds width of the image, TInfo2
holds the Height of the image and TInfo3 holds the number of bits
per pixel a 256 colour image would have 8 bits per pixel, a
TrueColor image would have 24
Following Graphics filetypes are available :
0 GIF CompuServ Graphics Interchange format
1 PCX ZSoft Paintbrush PCX format
2 LBM/IFF DeluxePaint LBM/IFF format
3 TGA Targa Truecolor
4 FLI Autodesk FLI animation file
5 FLC Autodesk FLC animation file
6 BMP Windows Bitmap
7 GL Grasp GL Animation
8 DL DL Animation
9 WPG Wordperfect Bitmap
10 SBM SUN BitMap
11 JPG JPeg compressed File
12 MPG MPeg compressed animation/video
13 AVI Audio Visual Interlace
FLAGS
Not used, should be all zeroes.
Vector
Following Vector filetypes are available :
0 DXF CAD Data eXchange File
1 DWG AutoCAD Drawing file
2 WPG WordPerfect/DrawPerfect vector graphics
3 SVI Sun VectorImage
FLAGS
Not used, should be all zeroes.
Sound
Following sound filetypes are available :
0 MOD 4, 6 or 8 channel MOD/NST file
1 669 Renaissance 8 channel 669 format
2 STM Future Crew 4 channel ScreamTracker format
3 S3M Future Crew variable channel ScreamTracker3 format
4 MTM Renaissance variable channel MultiTracker Module
5 FAR Farandole composer module
6 ULT UltraTracker module
7 AMF DMP/DSMI Advanced Module Format
8 DMF Delusion Digital Music Format XTracker
9 OKT Oktalyser module
10 ROL AdLib ROL file FM
11 CMF Creative Labs FM
12 MIDI MIDI file
13 SADT SAdT composer FM Module
14 VOC Creative Labs Sample
15 WAV Windows Wave file
16 SMP8 8 Bit Sample, TInfo1 holds sampling rate
17 SMP8S 8 Bit sample stereo, TInfo1 holds sampling rate
18 SMP16 16 Bit sample, TInfo1 holds sampling rate
19 SMP16S 16 Bit sample stereo, TInfo1 holds sampling rate
20 PATCH8 8 Bit patch-file
21 PATCH1616 Bit Patch-file
FLAGS
Not used, should be all zeroes.
BinaryText
The Binary Text format, basically has no Filetype, since the datatype
has already defined how the file will look.
The FileType however specifies the WIDTH of the BinaryText screen.
Only the Width is required, as the Height can be calculated by dividing
the filesize by the Width.
In an attempt to provide as much WIDTH as possible in a possible 256
values of the Byte-sized FileType. The width is specified in Multiples
of 2. The fact that the Width is specified in multiples of 2 isnt
really a problem, since you also need to define the effective screen
size in multiples of 2.
An example : For normal 80*25 binary images as made with TheDraw the
FileType value would be 40 since 2*40 equals 80 g
All you need to do is divide the width of the binary text
image by 2. This gives a maximum width of 510 characters.
Although currently not supported, should there be a need
for even bigger images, this can be arranged.
Please note. BinaryText expects the character-attribute pairs to be
stored one row at a time. If you wanted to create a 80*100 Image, you
could do this by just copying 4 80*25 or 2 80*50 together to form one
biger image.
If for example you wanted to create a 160*25 image from 2 80*25 images,
you would need to write a little program which would copy line 1 from
image 1, line 1 from image 2, Line 2 from Image 1, Line 2 from Image 2
and so on.
Basically, you should have all character-attribute pairs from one line
of the COMPLETE image one after the other, followed by all
char-attribute pairs from the next row, and so on.
If the picture does not fit this format. You should use the NONE
datatype. Besides. youd probably want to have it in this format
anyway, as it seems to be the most logical approach to have these kind
of images.
FLAGS for the BinaryText Datatype.
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 A
All non-used bits should be ZERO.
A Non-blink mode iCE Color.
This bit has exactly the same meaning as for the Character
datatype. It indicates whether the picture uses iCE color.
COMMENTS
The comment block is an addition to the SAUCE record. It
holds up to 255 lines of additional information. Each line 64
characters wide.
When the Comments field is not zero, it holds the number of
additional comment lines are available. A single comment line is
64 characters long. Like the character fields in the SAUCE
record, it is padded with spaces, and has no leading length byte
or trailing null-byte.
The comment block is preceded with a 5 character identifi-
cation mark. This identification mark is COMNT.
SAUCE IN FILES
A file with SAUCE added to it. Will look like this:
FILE DATA Actual file data. As if it would be without SAUCE.
EOF MARKER EOF marker. This will assure character files can
easily determine the end of file.
COMMENT BLOCK Optional Comment block.
SAUCE RECORD SAUCE record.
The Comment block
COMNT Comment block ID bytes
COMMENTLINE 1 First comment line
COMMENTLINE 2 Second comment line
COMMENTLINE N n-th comment line, n equals the Comments field
in SAUCE record.
EXAMPLE CODE TO READ SAUCE
Variables:
Byte : Count
Long : FileSize
file : F
Code:
OpenFileF Open the file for read access
FileSize SizeoffileF Determine filesize
Seekfile F, FileSize-128 Seek to start of SAUCE Eof-128
ReadFile F, SAUCE Read the SAUCE record
IF SAUCE.IDSAUCE THEN ID bytes match SAUCE ?
IF SAUCE.Comments0 THEN Is there a comment block ?
SeekFileF, FileSize-128-SAUCE.Comments*64-5
Seek to start of Comment block.
ReadFileF, CommentID Read Comment ID.
IF CommentIDCOMNT THEN Comment ID matches COMNT ?
For Count1 to SAUCE.Comments Read all comment lines.
ReadFileF, CommentLine /
ENDFOR
ELSE
InvalidComment Non fatal, No comment present.
ENDIF
ENDIF
ELSE
InvalidSAUCE No valid SAUCE record was found.
ENDIF
SAUCE DATAFILE
The full specifications of the SAUCE datafile are not ready yet.
INFORMATION OR UPGRADES
If you have a need for additional information on SAUCE, or
need modifications, you can contact me at these places...
Leave a message to TASMANIAC on any of these boards :
Neo Tokyo +32-50-620112 USR 16800 Dual
+32-50-625717 ZyXEL 19200
Channel Zer0 +1-714-532-5950 Practical 14400
+1-714-532-5968 USR 28800 Dual
Acquisition Viewer 2.02
1 New RIP routines by Capn Crunch used in part with already exist-
ing source to accelerate display speed.
2 ACiD View now uses Tasmaniacs assembly source for SAUCE reading,
and increases the speed of on-the-fly definition loading.
3 Fixed ansimation mode bug.
4 Fixed mouse bug and other minute flaws.
Acquisition Viewer 2.01
1 New pull-down interface by Icy of ACiD Productions.
Acquisition Viewer 2.00
1 ACiD View takes on a hot new look in its new interface created by
Dr. Tongue of ACiD Productions. The layout has been completely
reconstructed, and now provides the end user with pull-downs and
the same familiar hot keys.
2 ACiD View now makes use of on-the-fly SAUCE definition loading.
This process will greatly increase your initialization speed on
computers that contain a multitude of files.
3 ACiD View now caters to mouse users, supporting a wide spectrum
of different mouse types.
4 ACiD View has recently been implemented with progress bars. Your
estimated position in the list of files or directories can now be
visually monitored with the help of the elevator located to the
right of the file/directory listing.
5 VESA SVGA viewing updated for 640x480, 800x600, and 1024x768x256
modes. ACiD View supports the following chipsets as well as the
VESA standard mode: Ahead, ATI, Chips Tech, Everex, Genoa,
Paradise, Oak, Trident, TSeng, and Video7. If you have trouble
viewing in SVGA mode, try loading your video cards VESA driver.
6 All setup changes made during the run-time of ACiD View will be
saved upon exiting the program.
7 More minor bugs fixed.
Acquisition Viewer 1.50
1 ACiD View Control File support Added. ACiD View will now load
defaults from ACIDVIEW.INI.
2 Screen now displays the current directory.
3 Drive switching now added. ACiD View will show drives A: - Z:.
Including FLOPPY, SUBST, RAM, and other drives.
4 Command line Viewing is now supported! Type ACiDView /?
5 ND CHECK NO DELAY mode w/Error Checking display speed added.
This speed is the same as NO DELAY except it checks if ANSIs con-
tain lines with more than 255 characters per line.
Acquisition Viewer 1.40
1 Multitasking environment awareness implemented ie. DesqView and
OS/2.
2 Modem simulation routines are now disabled when ACiD View is loaded
under multitasking environments.
3 Directory switching added. Change directories simply by pressing
the return key.
4 File jumping and auto-sorting added. ACiD View will now jump to
the first file that begins with the character entered by the user.
5 640x480 viewing is now two times faster than version 1.32.
320x200 Normal Wide have also been optimized for speed.
Acquisition Viewer 1.32
1 Major bug erradicated in file reading routines.
2 Fixed the problem with the Viewer exiting if no files were found
matching the default mask. ACiDView will now simply display the
normal interface with no files, allowing you to MASK or exit until
you specify a valid file mask.
3 Fixed the key-reading loop with the 320x200 and 320x200 WIDE emu-
lations when ScrollBack was turned off.
Acquisition Viewer 1.30
1 File Masking added, allowing the user to select files within the
mask.
2 Added 320x200x256 ansimation mode.
3 Added modem simulator which emulates user-defined bps rate.
4 Minor bug corrected in the scroll back of large ANSIs.
5 Removed slow panning upon exit.
6 640x480x16 now FULLY supports ansimations. Small bug fixed.
Acquisition Viewer 1.20
1 Maximum number of files in one directory has been increased to
2,000.
2 A bug in the RIP portion of the viewer which caused the colors
of plotted objects to display improperly has been squashed.
3 RIP code has been optimized for speed, and it is now possible to
abort the screens.
4 Scrolled viewing has since been implemented, and 320x200x256 MCGA
display modes are now supported.
5 The old font has been replaced with a new character set, and a new
interface has been added which features icons.
Bugs?
Did you find any Bugs? If so, contact me on IRC ACiD or coders.
Greetings go out to...
Holy Water Remember the End of Time.
Beastie ACiD 0n9r4+u14+!0nz 0n th3 pr0m0+!0n d00d.
Fear n/a Too bad.
RaD Man ACiD For the lov--You are the man.
Your Handle Your Group SAUCE--Tastes great, less filling.
V I E W
ACiD Productionstm Acquisition Enhanced File Viewer
Coding by The Hit Man
RIP Routines by Capn Crunch and The Hit Man
Layout by Icy
Character Font by RaD Man
Modem Simulation Routines by Tasmaniac
Documentation and Update History of ACiD Productions ACiD View
By The Hit Man and RaD Man of ACiD Productionstm
Current version of ACiD View : 2.02 / 06-01-199419:33
Introduction to ACiD View
ACiD View welcomes you to the most comprehensive Art View-
er in production. This innovative program is capable of dis-
playing both ANSI and RIP graphics. In addition, the viewer
has been designed with a special interest for those who multi-
task. ACiD View utilizes its own internal ANSI routines,
making it capable of viewing ANSI without a separate device
driver. We hope that ACiD View provides you with as much
pleasure as we intended with its creation.
Features
Full File Description and Artist Initial Identification
Now supporting our very own special SAUCE
Semi Gooey Menu System
Mouse support
Pull-down Menus
Command Line Viewing
Slide-Show capable
Variable Speed ANSI Viewing
Modem-Simulation for both ANSI and RIP Viewing
File Masking
Drive and Directory switching
Level 0-1 RIP Viewing
Fully-Features ANSI Scroll Back in several different video
modes
ANSI Viewing in 80x25 or 80x50/80x43 text modes
ANSI Viewing in 640x480x16 VGA mode
ANSI Viewing in 320x200x256 MCGA mode
ANSI Viewing in 640x480, 800x600, and 1024x768x256 SVGA VESA
modes
Supports up to 2000 files in one directory
ACiD View Default Setup INI with automatic saving
What ACiD View Displays
ACiD View will display ANSI screens in several different video
modes. These modes include the default, 80x25, and others
such as the 80x43/80x50 text modes, 640x480x16 VGA,
320x200x256 MCGA, 640x480, 800x600, and 1024x768x256 VESA SVGA
modes. ACiD View also supports all of the major SVGA chipsets
Trident, Oak, TSeng, etc.
ACiD View displays most low level 0-1 RIP screens. Although
it will show all of the RIPs presented in the Acquisition, it
may not display some of the other RIPS you own. This is due
to the fact that some of the higher level RIP commands have
not yet been implemented.
ACiD View is capable of displaying ANSI or RIP files at sim-
ulated modem speeds. To ensure that these files display at
the same speed on all computers, the timer interrupt is altered.
This can create a possibility for problems while running ACiD
View under a multitasking operating system, such as DesqView.
In order to prevent this problem, these modem simulation
routines have been disabled within all multitasking environ-
ments.
ACiD View Functions
F1 Quick-Help : Brief description of function keys.
F2 Scroll Back : Toggles Scrolled viewing ON/OFF. Default is
OFF. While ON, you can scroll back ANSI in
80x25, 80x43/80x50, and 320x200 Modes.
F3 Toggle Speed : Displays files in a variety of speeds: No
Delay, ErrorChecking, 38,400, 19,200, 14,400,
12,000, 9600, 4800, and 2400 bps. The default
is No Delay. If you want to display files at
an alternate bps rate, you can customize the
speed by pressing the + or - keys to in-
crease or decrease the speed, repsectively.
F4 Display Mode : Selects the video mode that the selected ANSI
is to be viewed in.
80x50 Display - If you have a VGA card, this will compress the
default 8x16 font into an 8x8 font and display
the screen. This feature is nice when you want
to display a big ANSI on one screen.
VGA 16 - Displays ANSI in 640x480x16 VGA mode.
MCGA 256 - ACiD View will display ANSIs in 320x200x256
MCGA mode 13h graphics mode.
VESA SVGA - Displays ANSI in 640x480, 800x600, and
1024x768x256 SVGA modes. VESA SVGA is required
for these viewing modes.
Display Mode Description Flags
25 Line Standard 80x25 Text Mode ABS
50 Line 80x43/80x50 Compressed Text Mode ABES
VGA 16 640x480x256 VGA Graphics Mode AV
MCGA 256 320x200x256 MCGA Graphics Mode AMS
640x480 640x480x256 VESA SVGA Graphics Mode AG
800x600 800x600x256 VESA SVGA Graphics Mode AG
1024x768 1024x768x256 VESA SVGA Graphics Mode AG
RIP 640x350x16 EGA Graphics Mode BER
Flags:
A Ansimated Viewing Supported B Modem Simulation Supported
R RipScrip Graphics Supported S Scroll Back Supported
E EGA Required M MCGA Minimum Required
V VGA Required G VESA/SVGA Required
F5 File-Masking : Selects files within a specified file mask.
Alt+A Ansimation : Forces the ansimation flag of the highlighted
file. Use this option when you know the ANSI
you want to view contains ansimation and is
not flagged so. This option only affects the
320x200x256 MCGA mode.
Alt+ Quick-Exit : Quickly Exits ACiD View without palette fad-
ing.
The ACIDVIEW.INI File
ACiD View now includes an INItialization file, which allows
you to set up your preferred defaults upon the loading of the
viewer. ACIDVIEW.INI can be edited with virtually any text editor
of your choice. While editing the file, please note that each
line is interpreted as a command, unless a semi-colon precedes
it. Only the information within the quotes or after the equal
character should be modified. Follow the instructions for each
entry, as shown in ACIDVIEW.INI. ACiD View will automatically
save any changes made to the configuration during run-time in the
initialization file.
What is SAUCE?
Recipe for SAUCE
Chef cuisinier : Tasmaniac / ACiD
Maitre dhtel : Rad Man / ACiD
ANSis used to be just ANSis, pictures were just pictures,
loaders were just loaders and quite frankly, every file was just
as plain tasting as every other. This is about to change, how-
ever, because ACiD has decided to give their files an extra
je-ne-sais-quoi. In reality, well be adding SAUCE to every
file you can imagine.
Now, before we thoroughly confuse you, let us explain what we
are doing here. SAUCE stands for Standard Architecture for
Universal Comment Extensions. Although originally intended for
personal use in ANSis and RIP screens, early in the developement
of EFI Extended File Information it was decided that EFI should
be extended to have support for more than just ANSi and RIP
screens. Our brainchild was born and the specs were designed.
The only aspect left undecided was the name, and after rejecting
some very funny candidates, SAUCE was unanimously chosen. This
leads us to the big question in the sky, What is sauce? SAUCE
is a universal process to incorporate a full description for any
type of file. The most outstanding aspect of this concept is that
you have access to the complete file name, the files title, the
creation date, the creator of the file, the group that the creator
is employed by, and much, much, more.
A full explanation on how you can implement SAUCE is
described at the end of this document in the PLATES Programming
Language Architecture To Extract SAUCE section. Although you can
create your own programs to implement SAUCE to your files, we
recommend that you use the SPOON.EXE program to ensure a greater
universal compatibility.
SAUCE already supports a plethora of filetypes See PLATES.
If you have a need for the SAUCE specifications, please contact us
before you make the changes yourself. We will accomodate your
needs as soon as possible. After all, SAUCE is designed to become
a standard, and if people change the specs without allowing us to
make a complete update, there will be no standard. In the event
that we change SAUCE, we will quickly release a public update
which will most definately include an improved and updated
SPOON.EXE.
SAUCE has advantages over any other system in use. Each
description will be added to the file and will provide a file
description no matter what computer it is used for. SAUCE, how-
ever, also provides a back compatibility that uses a file with
descriptions for those files that do NOT already have a SAUCE
description. Processing in this manner is fully implemented in
SPOON.EXE and one can extract embedded SAUCE to this data file and
add SAUCE to files from this data file.
PLATES
Let us begin with a description of the record layouts used.
The record layouts and code examples are in a variated pascal
pseudo code, and should be transferrable enough to implement in
most other programming languages. For ease of reading, the
examples assume that the file is correct and that no error-
checking need be included. How rigorous you check for errors is
completely up to you, and will most likely depend on the file type
you are describing.
SAUCE RECORD
This portion of the documentation is about the SAUCE record.
The SAUCE record describes the file in short, and provides other
information not included in the SAUCE record itself.
A sauce record is EXACTLY 128 bytes in size.
Fieldname : Name of the field.
Size : Size of the field in BYTES
Type : Type of data. This can be :
BYTE : One byte unsigned numeric value 0 to 255
WORD : Two byte unsigned numeric value 0 to 65535
INTEGER : Two byte signed numeric value -32768 to 32767
LONG : Four byte signed numeric value -2147483648 to 2147483647
CHARACTER : One byte ASCII value. Longer character fields are
padded with spaces. It is NOT a PASCAL string with a
leading length byte, and its NOT a C-Style string
with a trailing nul-byte. A 10 byte character field
holding the text ANSI would look like this.
ANSI .
Numeric fields should be zero when not used, character fields
should be all spaces when not used.
V : SAUCE Version number. This indicates the version of
SAUCE when the field was implemented.
Description : Complete description of the field.
No fields are REQUIRED to be filled in except for ID, Version, FileSize,
DataType and FileType.
FieldName Size Type V Description
ID 5 Character 00 SAUCE Identification. This should be equal to
SAUCE or the record is not a valid SAUCE
record.
Version 2 Character 00 Version number of SAUCE. Current version is
00. As new features are added to the
specifications of SAUCE, this version number
will change. Future versions SHOULD remain
compatible with version 00 only ADDING on
the specifications, it is however not unlikely
that this compatibility is impossible to
maintain, but this is of no concern now.
Title 35 Character 00 Title of the file.
Author 20 Character 00 Name or handle of the creator of the file.
Group 20 Character 00 Name of the group the creator is employed by.
Date 8 Character 00 Date the file was created. This date is in
the format CCYYMMDD Century, year, month,
day. There is a good reason why the date
is in this format, but its not used in
version 00 of SAUCE. It will be used in
a future version of SAUCE.
FileSize 4 Long 00 Original filesize NOT including any
information of SAUCE.
DataType 1 Byte 00 Type of Data. See DATATYPES further on
FileType 1 Byte 00 Type of File. See DATATYPES further on
TInfo1 2 Word 00 Numeric information field 1 See DATATYPES
When used, this field holds informative
values. Any program using SAUCE should not
rely on these values being correct or filled
in.
TInfo2 2 Word 00 Numeric information field 2 See DATATYPES
TInfo3 2 Word 00 Numeric information field 3 See DATATYPES
TInfo4 2 Word 00 Numeric information field 4 See DATATYPES
Comments 1 Byte 00 Number of Comment lines See COMMENTS
Flags 2 Word * 00 Flags indication optional settings/switches
These flags have different meaning depending
on the data type.
The flags werent originally in the concept
for Version 00 of SAUCE. but since the
specification of SAUCE expects all filler
bytes to be binary zero, the flags should be
set to ZERO in all previous files, and cause
no significant harm.
An Example PASCAL record looks like this:
TYPE SAUCERec RECORD
ID : Array1..5 of Char
Version : Array1..2 of Char
Title : Array1..35 of Char
Author : Array1..20 of Char
Group : Array1..20 of Char
Date : Array1..8 of Char
FileSize : Longint
DataType : Byte
FileType : Byte
TInfo1 : Word
TInfo2 : Word
TInfo3 : Word
TInfo4 : Word
Comments : Byte
Flags : Byte
Filler : Array1..22 of Char
END
An Example C record looks like this:
typedef SAUCEREC
char ID5
char Version2
char Title35
char Author20
char Group20
char Date8
signed long FileSize
unsigned char DataType
unsigned char FileType
unsigned int TInfo1
unsigned int TInfo2
unsigned int TInfo3
unsigned int TInfo4
unsigned char Flags
char Filler22
SAUCEREC
DATATYPES
DataType and FileType hold the information needed to deter-
mine what type of file it is.
There are 5 DataTypes, these are with their respective numeric values :
0 None : Undefined filetype, you could use this to add SAUCE
information to personal datafiles needed by programs,
but not having any other meaning.
1 Character : Any character based file. Examples are ASCII, ANSi and
RIP.
2 Graphics : Any bitmap graphic file. Examples are GIF, LBM, and
PCX.
3 Vector : Any vector based graphic file. Examples are DXF and
CAD files.
4 Sound : Any sound related file. Examples are samples, MOD
files and MIDI.
5 BinaryText: This is RAW memory copy of a text screen. Its
basically the BIN format you can save from whitin
TheDraw. Each character is built up of two consecutive
bytes. The first is the character to be displayed. The
second is the Attribute byte.
None
When using the None datatype, you should have FileType set to
zero also. This is a compatibility issue as its not unlikely,
the None datatype will have filetypes in the future.
Character
When using the Character datatype, you have following filetypes
available :
0 ASCII : Plain text file with no formatting codes or color codes.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of lines in the file.
1 ANSi : ANSi file. With ANSi color codes and cursor
positioning.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
in the file.
2 ANSiMation: ANSi Animation. With ANSi color codes and cursor
positioning. While an ANSi file can also have animated
sequences, there is a clear distinction. While an ANSi
may or may not have a beginning animated sequence
introducing the group or artist the rest is just a
sequence of colored characters. An ANSiMation on the
other hand is a more like a text mode cartoon.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
the ANSiMation was created for.
A program using SAUCE may use these two values to
switch to the appropriate video mode.
3 RIP : Remote Imaging Protocol RIP graphics file.
TInfo1 holds the width should be 640
TInfo2 holds the height should be 350
TInfo3 holds the number of colors should be 16
4 PCBoard : File with PCBoard style @X color codes and @ macros
and ANSi codes.
TInfo1 is used for the width of the file.
TInfo2 is used to hold the number of ANSi screen lines
in the file.
5 AVATAR : A file with AVATAR and ANSi color codes and cursor
positioning.
FLAGS for the Character Datatype.
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 A
All non-used bits should be ZERO.
A Non-Blink mode iCE Color.
When this bit is SET equal to 1 The ANSi is created using iCE
color codes. This is a special mode where the blinking is
disabled, and you have 16 background colors available. Basically,
you have the same choice for background colors as for foreground
colors. Please note.
When the picture does not make specific use of the iCE color, you
should NOT have this bit set.
When you do not support the iCE color mode, you should probably not
display the file as it could look pretty weird in normal mode.
Graphics
For all graphics types, TInfo1 holds width of the image, TInfo2
holds the Height of the image and TInfo3 holds the number of bits
per pixel a 256 colour image would have 8 bits per pixel, a
TrueColor image would have 24
Following Graphics filetypes are available :
0 GIF CompuServ Graphics Interchange format
1 PCX ZSoft Paintbrush PCX format
2 LBM/IFF DeluxePaint LBM/IFF format
3 TGA Targa Truecolor
4 FLI Autodesk FLI animation file
5 FLC Autodesk FLC animation file
6 BMP Windows Bitmap
7 GL Grasp GL Animation
8 DL DL Animation
9 WPG Wordperfect Bitmap
10 SBM SUN BitMap
11 JPG JPeg compressed File
12 MPG MPeg compressed animation/video
13 AVI Audio Visual Interlace
FLAGS
Not used, should be all zeroes.
Vector
Following Vector filetypes are available :
0 DXF CAD Data eXchange File
1 DWG AutoCAD Drawing file
2 WPG WordPerfect/DrawPerfect vector graphics
3 SVI Sun VectorImage
FLAGS
Not used, should be all zeroes.
Sound
Following sound filetypes are available :
0 MOD 4, 6 or 8 channel MOD/NST file
1 669 Renaissance 8 channel 669 format
2 STM Future Crew 4 channel ScreamTracker format
3 S3M Future Crew variable channel ScreamTracker3 format
4 MTM Renaissance variable channel MultiTracker Module
5 FAR Farandole composer module
6 ULT UltraTracker module
7 AMF DMP/DSMI Advanced Module Format
8 DMF Delusion Digital Music Format XTracker
9 OKT Oktalyser module
10 ROL AdLib ROL file FM
11 CMF Creative Labs FM
12 MIDI MIDI file
13 SADT SAdT composer FM Module
14 VOC Creative Labs Sample
15 WAV Windows Wave file
16 SMP8 8 Bit Sample, TInfo1 holds sampling rate
17 SMP8S 8 Bit sample stereo, TInfo1 holds sampling rate
18 SMP16 16 Bit sample, TInfo1 holds sampling rate
19 SMP16S 16 Bit sample stereo, TInfo1 holds sampling rate
20 PATCH8 8 Bit patch-file
21 PATCH1616 Bit Patch-file
FLAGS
Not used, should be all zeroes.
BinaryText
The Binary Text format, basically has no Filetype, since the datatype
has already defined how the file will look.
The FileType however specifies the WIDTH of the BinaryText screen.
Only the Width is required, as the Height can be calculated by dividing
the filesize by the Width.
In an attempt to provide as much WIDTH as possible in a possible 256
values of the Byte-sized FileType. The width is specified in Multiples
of 2. The fact that the Width is specified in multiples of 2 isnt
really a problem, since you also need to define the effective screen
size in multiples of 2.
An example : For normal 80*25 binary images as made with TheDraw the
FileType value would be 40 since 2*40 equals 80 g
All you need to do is divide the width of the binary text
image by 2. This gives a maximum width of 510 characters.
Although currently not supported, should there be a need
for even bigger images, this can be arranged.
Please note. BinaryText expects the character-attribute pairs to be
stored one row at a time. If you wanted to create a 80*100 Image, you
could do this by just copying 4 80*25 or 2 80*50 together to form one
biger image.
If for example you wanted to create a 160*25 image from 2 80*25 images,
you would need to write a little program which would copy line 1 from
image 1, line 1 from image 2, Line 2 from Image 1, Line 2 from Image 2
and so on.
Basically, you should have all character-attribute pairs from one line
of the COMPLETE image one after the other, followed by all
char-attribute pairs from the next row, and so on.
If the picture does not fit this format. You should use the NONE
datatype. Besides. youd probably want to have it in this format
anyway, as it seems to be the most logical approach to have these kind
of images.
FLAGS for the BinaryText Datatype.
7 6 5 4 3 2 1 0
0 0 0 0 0 0 0 A
All non-used bits should be ZERO.
A Non-blink mode iCE Color.
This bit has exactly the same meaning as for the Character
datatype. It indicates whether the picture uses iCE color.
COMMENTS
The comment block is an addition to the SAUCE record. It
holds up to 255 lines of additional information. Each line 64
characters wide.
When the Comments field is not zero, it holds the number of
additional comment lines are available. A single comment line is
64 characters long. Like the character fields in the SAUCE
record, it is padded with spaces, and has no leading length byte
or trailing null-byte.
The comment block is preceded with a 5 character identifi-
cation mark. This identification mark is COMNT.
SAUCE IN FILES
A file with SAUCE added to it. Will look like this:
FILE DATA Actual file data. As if it would be without SAUCE.
EOF MARKER EOF marker. This will assure character files can
easily determine the end of file.
COMMENT BLOCK Optional Comment block.
SAUCE RECORD SAUCE record.
The Comment block
COMNT Comment block ID bytes
COMMENTLINE 1 First comment line
COMMENTLINE 2 Second comment line
COMMENTLINE N n-th comment line, n equals the Comments field
in SAUCE record.
EXAMPLE CODE TO READ SAUCE
Variables:
Byte : Count
Long : FileSize
file : F
Code:
OpenFileF Open the file for read access
FileSize SizeoffileF Determine filesize
Seekfile F, FileSize-128 Seek to start of SAUCE Eof-128
ReadFile F, SAUCE Read the SAUCE record
IF SAUCE.IDSAUCE THEN ID bytes match SAUCE ?
IF SAUCE.Comments0 THEN Is there a comment block ?
SeekFileF, FileSize-128-SAUCE.Comments*64-5
Seek to start of Comment block.
ReadFileF, CommentID Read Comment ID.
IF CommentIDCOMNT THEN Comment ID matches COMNT ?
For Count1 to SAUCE.Comments Read all comment lines.
ReadFileF, CommentLine /
ENDFOR
ELSE
InvalidComment Non fatal, No comment present.
ENDIF
ENDIF
ELSE
InvalidSAUCE No valid SAUCE record was found.
ENDIF
SAUCE DATAFILE
The full specifications of the SAUCE datafile are not ready yet.
INFORMATION OR UPGRADES
If you have a need for additional information on SAUCE, or
need modifications, you can contact me at these places...
Leave a message to TASMANIAC on any of these boards :
Neo Tokyo +32-50-620112 USR 16800 Dual
+32-50-625717 ZyXEL 19200
Channel Zer0 +1-714-532-5950 Practical 14400
+1-714-532-5968 USR 28800 Dual
Acquisition Viewer 2.02
1 New RIP routines by Capn Crunch used in part with already exist-
ing source to accelerate display speed.
2 ACiD View now uses Tasmaniacs assembly source for SAUCE reading,
and increases the speed of on-the-fly definition loading.
3 Fixed ansimation mode bug.
4 Fixed mouse bug and other minute flaws.
Acquisition Viewer 2.01
1 New pull-down interface by Icy of ACiD Productions.
Acquisition Viewer 2.00
1 ACiD View takes on a hot new look in its new interface created by
Dr. Tongue of ACiD Productions. The layout has been completely
reconstructed, and now provides the end user with pull-downs and
the same familiar hot keys.
2 ACiD View now makes use of on-the-fly SAUCE definition loading.
This process will greatly increase your initialization speed on
computers that contain a multitude of files.
3 ACiD View now caters to mouse users, supporting a wide spectrum
of different mouse types.
4 ACiD View has recently been implemented with progress bars. Your
estimated position in the list of files or directories can now be
visually monitored with the help of the elevator located to the
right of the file/directory listing.
5 VESA SVGA viewing updated for 640x480, 800x600, and 1024x768x256
modes. ACiD View supports the following chipsets as well as the
VESA standard mode: Ahead, ATI, Chips Tech, Everex, Genoa,
Paradise, Oak, Trident, TSeng, and Video7. If you have trouble
viewing in SVGA mode, try loading your video cards VESA driver.
6 All setup changes made during the run-time of ACiD View will be
saved upon exiting the program.
7 More minor bugs fixed.
Acquisition Viewer 1.50
1 ACiD View Control File support Added. ACiD View will now load
defaults from ACIDVIEW.INI.
2 Screen now displays the current directory.
3 Drive switching now added. ACiD View will show drives A: - Z:.
Including FLOPPY, SUBST, RAM, and other drives.
4 Command line Viewing is now supported! Type ACiDView /?
5 ND CHECK NO DELAY mode w/Error Checking display speed added.
This speed is the same as NO DELAY except it checks if ANSIs con-
tain lines with more than 255 characters per line.
Acquisition Viewer 1.40
1 Multitasking environment awareness implemented ie. DesqView and
OS/2.
2 Modem simulation routines are now disabled when ACiD View is loaded
under multitasking environments.
3 Directory switching added. Change directories simply by pressing
the return key.
4 File jumping and auto-sorting added. ACiD View will now jump to
the first file that begins with the character entered by the user.
5 640x480 viewing is now two times faster than version 1.32.
320x200 Normal Wide have also been optimized for speed.
Acquisition Viewer 1.32
1 Major bug erradicated in file reading routines.
2 Fixed the problem with the Viewer exiting if no files were found
matching the default mask. ACiDView will now simply display the
normal interface with no files, allowing you to MASK or exit until
you specify a valid file mask.
3 Fixed the key-reading loop with the 320x200 and 320x200 WIDE emu-
lations when ScrollBack was turned off.
Acquisition Viewer 1.30
1 File Masking added, allowing the user to select files within the
mask.
2 Added 320x200x256 ansimation mode.
3 Added modem simulator which emulates user-defined bps rate.
4 Minor bug corrected in the scroll back of large ANSIs.
5 Removed slow panning upon exit.
6 640x480x16 now FULLY supports ansimations. Small bug fixed.
Acquisition Viewer 1.20
1 Maximum number of files in one directory has been increased to
2,000.
2 A bug in the RIP portion of the viewer which caused the colors
of plotted objects to display improperly has been squashed.
3 RIP code has been optimized for speed, and it is now possible to
abort the screens.
4 Scrolled viewing has since been implemented, and 320x200x256 MCGA
display modes are now supported.
5 The old font has been replaced with a new character set, and a new
interface has been added which features icons.
Bugs?
Did you find any Bugs? If so, contact me on IRC ACiD or coders.
Greetings go out to...
Holy Water Remember the End of Time.
Beastie ACiD 0n9r4+u14+!0nz 0n th3 pr0m0+!0n d00d.
Fear n/a Too bad.
RaD Man ACiD For the lov--You are the man.
Your Handle Your Group SAUCE--Tastes great, less filling.
log in to add a comment.