ACiD Productions(tm)' Acquisition Enhanced File Viewer
Coding by The Hit M/┤N of ACiD
Screen and Layout by Beastie of ACiD
Phont by Beastie and RaD Man
Modem Simulation Routines by Tasmaniac of ACiD

Documentation and Update History of ACiD Productions' ACiD View   │∙

∙│         By The Hit Man and RaD Man of ACiD Productions(tm)

[ Current version of ACiD View : 1.50 / 03-01-1994∙21:47 ]

Introduction to ACiD View

In the past, ACiD  had  promoted  an  ANSI viewer that was
neglected by  its author.  In response to this,  we have taken
the necessary steps to write  a  new  viewer that has a simple
interface and some new features.  Like  the prototype version,
there will  be no  extraneous  interfaces  or  menus,  and the
viewer will provide more  ANSI  viewing enjoyment than before.
As was before, there will  be  no  need to make use of a third
party RIP viewer due to a built-in driver.

Features

Full File Description and Artist Initial Identification
Now supporting our very own special SAUCE
Semi "Gooey" Menu System
Command Line Viewing
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 320x200x256 (Normal or Wide) graphics modes
ANSI Viewing in 640x480x16 graphics mode
Supports up to 2000 files in one directory
ACiD View Default Setup (INI)

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, 320x200x256 MCGA modes,
as well as the sought after 640x480x16 high-resolution VGA
mode.

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 :  Emulates several different bps rates:  38,400,
19,200, 14,400, 12,000, 9600, 4800, 2400, and
1200 bps.  Default is NO DELAY.  If you want
to display an ansimation or RIP at an alternate
bps rate, you can customize the viewing speed
by pressing the (+) or (-) keys to increase or
decrease the speed respectively.

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.

320x200 MCGA  - ACiD View will display ANSIs in two seperate
types of MCGA modes:  Normal and Wide.

640x480 VGA   - VGA or better is required for this feature.

Display Mode  │  Description                          │  Flags

25 Line  │  Standard 80x25 Text Mode             │  AB S
50 Line  │  80x43/80x50 Compressed Text Mode     │  ABES
320x200  │  320x200x256 MCGA Graphics Mode       │  A  SV
320 WID  │  320x200x256 MCGA Graphics Mode Wide  │  A  SV
640x480  │  640x480x16 VGA Graphics Mode         │  A   V
RIP  │  640x350x16 EGA Graphics Mode         │   BE  R

Flags:
A = Ansimated Viewing Supported    B = Modem Simulation Supported
E = EGA Required                   S = Scroll Back Supported
V = VGA Required                   R = RipScrip Graphics Supported

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 modes.

The ACIDVIEW.INI File

ACiD View now includes an INItialization file, which will
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.

What is SAUCE?

Recipe for SAUCE

Chef cuisinier : Tasmaniac / ACiD
Maitre d'hôtel : Rad Man / ACiD

ANSi's used to be just ANSi's, 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, however, because ACiD has decided
to give their files an extra "je-ne-sais-quoi."  In reality, we'll 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 ANSi's 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 file's 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.  There is a minor
stipulation, however, in that complete specs to SAUCE are not available.
Thus, SPOON.EXE will not be available this month, but will be out in the
near future.

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, however, 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 varieted 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 cor-
rect 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 it's _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 unlikly
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 it's 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)
Filler     23  Byte         Reserved bytes.

An Example PASCAL record looks like this:

TYPE SAUCERec = RECORD
ID       : Array[1..5] of Char;
Version  : Array[1..2] of Char;
Title    : Array[1..35] of Char;
Author   : Array[1..20] of Char;
Group    : Array[1..20] of Char;
Date     : Array[1..8] of Char;
FileSize : Longint;
DataType : Byte;
FileType : Byte;
TInfo1   : Word;
TInfo2   : Word;
TInfo3   : Word;
TInfo4   : Word;
Comments : Byte;
Filler   : Array[1..23] of Char;
END;

An Example C record looks like this:

typedef SAUCEREC {
char          ID[5];
char          Version[2];
char          Title[35];
char          Author[20];
char          Group[20];
char          Date[8];
signed long   FileSize;
unsigned char DataType;
unsigned char FileType;
unsigned int  TInfo1;
unsigned int  TInfo1;
unsigned int  TInfo1;
unsigned int  TInfo1;
unsigned char Comments;
char          Filler[23];
} SAUCEREC;

DATATYPES

DataType and FileType hold the information needed to determine 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.

None

When using the 'None' datatype, you should have FileType set to zero
also.  This is a compatibility issue as it's 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 bits per pixel (should be 4)
4) PCBoard   : File with PCBoard style @X color codes and @ macro's
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.

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)

Vector

Following Vector filetypes are available :
0) DXF     (CAD Data eXchange File)
1) DWG     (AutoCAD Drawing file)
2) WPG     (WordPerfect/DrawPerfect vector graphics)

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)

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 identification 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:
Open_File(F);                         | Open the file for read access
FileSize = Size_of_file(F);           | Determine filesize
Seek_file (F, FileSize-128);          | Seek to start of SAUCE (Eof-128)
Read_File (F, SAUCE);                 | Read the SAUCE record
IF SAUCE.ID="SAUCE" THEN              | ID bytes match "SAUCE" ?
IF SAUCE.Comments>0 THEN           | Is there a comment block ?
Seek_File(F, FileSize-128-(SAUCE.Comments*64)-5);
| Seek to start of Comment block.
Read_File(F, CommentID);        | Read Comment ID.
IF CommentID="COMNT" THEN       | Comment ID matches "COMNT" ?
For Count=1 to SAUCE.Comments| \ Read all comment lines.
Read_File(F, CommentLine) | /
ENDFOR
ELSE
Invalid_Comment;             | Non fatal, No comment present.
ENDIF
ENDIF
ELSE
Invalid_SAUCE;                     | 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 :

FUN-derbird BBS +32-50-620112   USR 16800 Dual
+32-50-625717   ZyXEL 19200
End of Time     +1-803-855-0783 USR 21600 Dual
Channel Zer0    +1-714-532-5950 Pratical 14400
+1-714-532-5968 USR 16800 Dual

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 at the board below...

· The End of TiME ·
New Age World HeadQuarters
/┤CiD South Carolina Outpost
PsychoSquad US HQ - HypernovA US HQ
Anarchy/PC US HQ - Taurus US HQ - Synergy Design US HQ
Dust Dist - Future Crew Dist - VLA Dist - Imphobia Dist - DaRK Dist
United States HeadQuarters for the Creativity Demo Net [CDN]
SoundBoard Connection - Demo Productions Network - FEDNet
One of the best PC Demo boards in the world
Running PCBoard 15.0 totally customized
PC Demos/Music/Grafix/ANSI Support
Staff: Holy Water & The Hit M/┤N
USRobotics 21.6k Dual v.Terbo
9600+ recommended
- 8O3-855-O783 -

Greetings go out to...

Holy Water      New Age       Hit Man says stop changing this greet?
Beastie         ACiD          Uibu't qsfuuz "ojdf."
Corwin of Amber ACiD          Baaaaah.... Baaahhh...
Fear            MD            One of these days...
RaD Man         ACiD          Will you please sto--I love you.
TinyZ                         Thanks for the internet help, tuffguy.
[Your Handle]   [Your Group]  True command line viewing is here.