Category : Pascal Source Code
Archive   : VPAL10.ZIP
Filename : VGAPAL.DOC

 
Output of file : VGAPAL.DOC contained in archive : VPAL10.ZIP





VGApal v1.0

Copyright (c) 1992 RAM Software Development



Roger Madore
RAM Software Development
P.O. Box 2193
Augusta, Maine, 04338-2193
Voice: (207) 623-9248
CIS: 71163,214


Page 1




--------------------
Welcome to VGApal!
--------------------



Contents
--------


2 - Introduction
2 - Installation
3 - Fading
4 - Scrolling
5 - Miscellaneous
6 - List of Procedures
7 - Legal Information


Page 2



INTRODUCTION

Have you ever wanted to be able to create professional looking
fade in and fade out effects? How about palette cycling? Sounds simple,
but in Pascal, all you end up with is a screen full of "flicker".

How about loading PCX files? Now there is something that would make
life easier than having to redraw graphic screens every time you wanted
to display something.

Finally, there is an answer to those problems, and many more.
Fading in, fading out, to either black or white, is a snap! In three
easy steps you can load a PCX file and fade in from black, at whatever
speed you want! Manipulating palette colors and cycling is a breeze,
and all flicker free!

VGApal is the perfect compliment to any Pascal graphic toolbox.
From games and demos to graphic presentations, VGApal will make an
excellent program outstanding!



INSTALLATION

All you need to do is to include VGApal in your Unit Directories
under your Options menu. Then just put "VGApal" in your "Uses" clause
at the beginning of your program, and you're ready to use the toolkit!



Page 3



FADING

There are many different methods of fading. You can fade in and
fade out from either white or black. You can also fade from one color
to another.

Six procedures handle the full palette fading.

SetPalBlack;
SetPalWhite;
FadeInPalBlack(Speed : Integer);
FadeInPalWhite(Speed : Integer);
FadeOutPalBlack(Speed : Integer);
FadeOutPalWhite(Speed : Integer);

SetPalBlack or SetPalWhite should be called before using any of the
other fading procedures. This saves the current palette information into
an array and sets the "visible" colors to either black or white. At this
point, you can either draw your screen or load a PCX file without
anything being shown. REMEMBER: Even though all the palette colors are
either black or white, their original colors are preserved, and will be
restored when you use a fading procedure.

Now you can fade in from black or white using FadeInPalBlack or
FadeInPalWhite. Speed can be an integer from 1 to 100. The higher the
number, the slower the fade in. If you want the image to "pop" up on the
screen, set the speed to 1.

Fading out is just as easy. Speed determines the speed at which the
the palette fades to black or white. The actual palette will still be
preserved in the array that was constructed with SetPalBlack or
SetPalWhite.

NOTE: No error checking is performed in the Speed variable. This
was for speed considerations. You can use larger numbers, but you may
get unpredictable results!

For a quick example, your code could be something like this:

Program Sample;
Uses Graph, VGApal;
{VGA 320 x 200 initialization code}
SetPalBlack;
{Draw or load images}
FadeInPalBlack(15);
{Perform other functions}
FadeOutPalBlack(80);
End.



Page 4



SCROLLING

Palette scrolling can create some of the most impressive animation
sequences ever. VGApal offers five palette scrolling procedures that are
fast and easy to use.

CyclePalAhead;
CyclePalBack;
CycleColAhead(First, Last : Integer);
CycleColBack(First, Last : Integer);
SwitchCol(First, Second : Integer);

CyclePalAhead and CyclePalBack scrolls the entire palette by shifting
all the colors in the palette table by increments of one. The color that
scrolls off of the end wraps to the other. For example, if you execute
CyclePalAhead:

0,1,2...253,254,255 would become 255,0,1...252,253,254

CyclePalAhead and CyclePalBack only shift the palette once per call.
You would have to create a loop to have continuous palette cycling.

CycleColAhead and CycleColBack work the same as CyclePalAhead and
CyclePalBack, except that you specify the range of colors that are
cycled. So if you execute CycleColAhead(3,7):

0,1,2,3,4,5,6,7,8,9 would become 0,1,2,7,3,4,5,6,8,9

SwitchCol is very straight forward. Just specify the two colors to
switch. For instance, SwitchCol(3,8):

0,1,2,3,4,5,6,7,8,9 would become 0,1,2,8,4,5,6,7,3,9



Page 5



MISCELLANEOUS

A few procedures just didn't seem to fit into any other category,
but they are no less impressive!

SaveColorFrom(Color : Integer);
FadeColorTo(Color, Speed : Integer);
SavePal;
RestPal;
Read256PCX(Filename : PathStr);

SaveColorFrom will save the RGB information from the specified color
into the array SColor[0..2]. This function is useful if you want to
retrieve color information quickly, and is also used in FadeColorTo.
The SColor[0..2] array can be manipulated directly by your program, and
can be helpful if you need to use a color that doesn't already exist.

FadeColorTo will take the color information in SColor[0..2], and
smoothly fade it into the specified color, at the predefined speed.
Some spectacular results can be realized with these two procedures.

SavePal does just as it implies. It saves your current palette in an
array. Its compliment is RestPal, which restores all the palette colors
to the previously save colors.

Read256PCX reads a 320 x 200 with 256 colors PCX file directly into
memory. It is displayed very quickly, and has superb results with the
fading procedures.

NOTE: There is not any error checking done for these procedures.
Error handling is left up to the individual programmer.



Page 6



LIST OF PROCEDURES


CycleColAhead(First, Last : Integer);
Cycles colors ahead from First color to Last color.

CycleColBack(First, Last : Integer);
Cycles colors backwards from First color to Last color.

CyclePalAhead;
Cycles the entire palette ahead.

CyclePalBack;
Cycles the entire palette backwards.

FadeColorTo(Color, Speed : Integer);
Fades colors from SColor[0..2] to Color at Speed.

FadeInPalBlack(Speed : Integer);
Fades in from black to colors saved in SetPalBlack or
SetPalWhite at Speed.

FadeInPalWhite(Speed : Integer);
Fades in from white to colors saved in SetPalBlack or
SetPalWhite at Speed.

FadeOutPalBlack(Speed : Integer);
Fades current palette out to black.

FadeOutPalWhite(Speed : Integer);
Fades current palette out to white.

Read256PCX(Filename : PathStr);
Reads a 320 x 200 with 256 colors PCX file into memory.

RestPal;
Restores the palette saved with SavePal.

SaveColorFrom(Color : Integer);
Saves palette information of Color into SColor[0..2].

SavePal;
Saves current palette information into an array.

SetPalBlack;
Sets all colors to black and saves current colors to an array.

SetPalWhite;
Sets all colors to white and saves current colors to an array.

SwitchCol(First, Second : Integer);
Switches color First with color Second.




Page 7



LEGAL INFORMATION

VGA256.BGI is included for the sole purpose of free
distribution to Turbo Pascal users. None of the registration
fee for VGApal is for VGA256.BGI. At the end of the evaluation
of VGApal, the user is free to keep VGA256.BGI. VGA256.BGI is
distributed by Borland International free of charge.

VGApal is being released "AS IS" as shareware. RAM
Software Development will not assume any responsibility for
damages and loss of profit, and will not provide any expressed
or implied warranties. Use this software at your own risk.

See VENDOR.DOC for distribtution policies, and REGISTER.DOC
for registration policies.

Turbo Pascal is a registered trademark of Borland International


VGApal Copyright (c) 1992, RAM Software Development



  3 Responses to “Category : Pascal Source Code
Archive   : VPAL10.ZIP
Filename : VGAPAL.DOC

  1. Very nice! Thank you for this wonderful archive. I wonder why I found it only now. Long live the BBS file archives!

  2. This is so awesome! 😀 I’d be cool if you could download an entire archive of this at once, though.

  3. But one thing that puzzles me is the “mtswslnkmcjklsdlsbdmMICROSOFT” string. There is an article about it here. It is definitely worth a read: http://www.os2museum.com/wp/mtswslnk/