______________________________________________________________

V.I.P. SIX PACK  -  Version 1.1  -  Notes
______________________________________________________________

_______________________________________________________________
__Introduction_________________________________________________
This archive contains a collection of recreational programs designed
for use with speech synthesis software as well as for normal text-mode
screen viewing. A speech interface is primarily used by Visually
Impaired People and works by reading out loud any text written to the
screen through the services of the computer's BIOS (an integrated
circuit component of most computers which mediates between hardware and
software).

Unfortunately, to achieve greater speed, most commercial programs
by-pass the BIOS and write directly to the screen hardware, causing
difficulties for speech software. Pull-down menus and pop-up windows
make a program virtually unusable by speech software.

The enclosed programs avoid using these speech-unfriendly techniques,
while attempting to create a visually pleasing display for sighted
users.

A growing number of the visually impaired have found computer-based
employment in the last several years. While the standard sighted tools
like spreadsheets and word processors are difficult enough to use with
speech software, the current crop of graphics-based recreational
programs are totally inaccessible. Hopefully, this six-pack will help
to offset this inequity, and the visually impaired computerist will
have more occassion to use his/her powerful digital tool for relaxation 
as well as production.


_______________________________________________________________
__Changes in this Version______________________________________
Thanks to John Schwery for pointing out some interface problems in
VIP Gegs and VIP Cribbage, both games had too much to say. John also 
found a bug in the VIP Cribbage. Howard Miller asked for craps and 
blackjack. I had done a VIP version of 21, which is the casino name 
for blackjack, but had not included it because of a bug or two in the 
interface. 


_______________________________________________________________
__Contents_____________________________________________________
Contained in this archive are the following:

-Executable --- Program Name ---- Description -------------------

vipcas.exe      VIP Casino        a gambling casino of easy games,
                                  including Banco, video slot poker,
                                  Joker's Wild slot machine, and
                                  Crown and Anchor wheel of fortune.

vipsol.exe      VIP Solitaire     a suite of eight challenging
                                  solitaire card games.

vipcrib.exe     VIP Cribbage      the two-player card game Cribbage,
                                  scored on a peg board.

vipgegs.exe     VIP Gegs          a scrambled word game somewhat similar
                                  to the newspaper puzzle, Jumble.
vipgegs.doc                       (supplemental info)

vipyaht.exe     VIP Yacht         a dice and board game like the
                                  commercial game, Yahtzee.

viptarot.exe    VIP Celtic Tarot  a Tarot card reading program.
viptarot.dta                      (support file)
viptarot.doc                      (supplemental info and tutorial)

All the above programs are games except Tarot, which is an oracle.

New to this release are:

vip21.exe	VIP 21		a simple gambling card game played
				in casinos, called blackjack at home.

craps.exe	Cotton's Craps	a very simple dice gambling game. 
				This version has a teletype
				interface rather than the VIP 
				interface.

runes.exe	Viking Runes	a simple but effective oracle.
runes.doc			(supplemental info and tutorial)

True, this is no longer a six pack, but who ever heard of a nine pack?
You may also wonder why I didn't package 21 and craps in VIP Casino, 
since they are both gambling games. Casino was written back in my Turbo 
Pascal days; 21 and craps were written recently in C++. I'm not really 
hot on the idea of translating Casino to C++ or vice versa.


_______________________________________________________________
__Installing and Using_________________________________________
Installation is so simple, you've probably done it already to be able to
read this file. Simply create a directory for your VIP programs or use a
games directory you already have. Change (CD) to that directory. If you
received the six pack as an archive then Unzip the file vip611.zip into 
that directory, otherwise simply copy the files from diskette into the
directory.  Use an editor to read the contents of any files ending in a 
.doc extension to learn more about the associated program.

Each of the games creates a small data file with a .ini extension the
first time you start, then maintains it with scoring information and
customization choices each time you play. Consequently, you should
change (CD) to the directory in which you keep your VIP programs, 
THEN start one for play. Otherwise the program you start will create 
a new vipxxxx.ini file in whatever directory you were in when you 
started it.

All the VIP programs have complete built in help screens available by
pressing F1 at any time. The built in helps for those programs with no
.doc instruction file contain all necessary instructions and background
material. Therefore, the first thing you should do when trying a VIP
program for the first time is press F1 to read the full screen help
text, pressing the up and down arrows to read line by line.


_______________________________________________________________
__Common Screen Layout and Keyboard Interface__________________

Common screen layout:
- The top line always contains the program title and current task name.
- The second line shows scores and statistics whenever appropriate.
- The third line is the action line in many VIP programs. It contains
  text to tell you what's happening at each point in the game, and to
  ask for your response. The cursor normally stays on this line. (In
  Cribbage both lines 3 and 4 are used for program interaction. In Gegs
  neither are used, instead action takes place in the screen middle.)
- The second last line shows important key assignments.
- The last line is used for a brief message explaining what options you
  have at any point in the program.
- The middle of the screen is a general-purpose area which displays
  menus when appropriate, or a sighted representation of the action, or
  the full screen help text, if you've pressed F1.

Recommended screen configuration profile:
I recommend creating a VIP configuration file for your speech software
which defines the following windows (each window extending from column
1 to column 80):

  Window 1: Lines 3 and 4   (program interaction)
  Window 2: Lines 5 to 23   (menus in all, interaction in Gegs)
  Window 3: Lines 24 and 25 (available keys)
  Window 4: Lines 2 to 24   (help and other full screen displays)
  Window 5: Lines 1 and 2   (titles and stats)

This configuration should work with all the VIP programs in this suite.
However, I have tried to work things so that you will not need to use
windows very much for normal play. In general only needed text should
speak (pass through the BIOS) at any time.

At this point I only have feedback from Artic and Screen Reader speech
software users. For them it is very simple to implement the windowing
system described above. 

Note: occassionally I've gotten reports from users that my programs 
crash their system when started. Howard Miller points out that if
you use a monochrome monitor with a graphics display card you may need
to add the command MODE BW80 to your autoexec.bat. 

Common key assignments:
I have also tried to maintain a fair degree of consistency in key
assignments and game operations throughout the suite. For those programs
with menus use the up and down arrow keys to find the selection you wish,
then press Enter to activate it. Many games involve a "hand" of cards or 
dice. In these cases you use the left and right arrow keys to cycle 
through your hand. The Space bar (or Enter) acts as a selector to choose 
a card from your hand or to accept an offered action. Most play is 
confined to this simple three key interface! 

I got the idea for this interface from an old BASIC strip poker game 
and from an early public domain version of Vegas Solitaire. In fact, 
this mode of interaction gives a good approximation of point-and-click 
mouse interaction without needing a mouse. In the Casino slot machines 
you also use the down arrow to "deposit" coins, then press Space to begin 
play.

Most of the games have a consistent set of function key assignments as
follows:

  F1	help
  F2	abandon current game and start new game
  F3	exit current context
  F5	drop out of program to temporary DOS prompt
  F7	turn sound effects on or off
  F8	turn sighted display of game action on or off
  F9	read the scores and statistics on line 2
  F10	read the brief what-to-do-next prompt on line 25


_______________________________________________________________
__Uninstalling Six Pack________________________________________
None of the programs in the VIP Six Pack modify your config.sys or
autoexec.bat or anything else in your computer. Simply delete any or all
or the VIP program .exe files and the .ini files with the same names as
the .exe files. 


Now for a legal formality:


_______________________________________________________________
__License Agreement____________________________________________
None of the enclosed programs are public domain. All are copyrighted by
the author - me, and I reserve all rights to them. You may use them
without charge, if you do so with the understanding that I make no
claims or guarantees express or implied for any product and accept no
responsibility for any damages (and in return make no charges for use).

This disclaimer is hopefully purely pro forma. All the enclosed programs
have been thoroughly tested on several computers, but I do not have the
facilities to test them on all possible permutations of CPUs and
peripherals.

You may redistribute the original zip file or its contents, as long as
you make no alterations to its contents - and as long as you make no
charge for supplying this product to others, including shipping and
handling. This expressly includes companies which market Shareware. To
market this product you must contact the author. 


_______________________________________________________________
__Reaching out to the Author___________________________________

		   Dale Cotton
		   1520 Alpine Lane
		   Pickering ON, L1X 2G3
		   Canada
		   CompuServe ID: 73632,703
		   Internet: 73632.703@compuserve.com

If you have any comments or suggestions please write or e-mail. I cannot
guarantee the above address for ever and ever. Lists of words or phrases 
to add to the puzzle database of VIP Gegs are most welcome, as long as 
they are not too erudite or obscure.

If you wish to express your appreciation in the form of a monetary
contribution of any amount, please do so. However, I do not have the 
time or inclination for business matters and extensive support, so I 
make no formal Shareware request for payment, even if you use one or 
more of these programs regularly.

These programs were designed to meet the needs of users with visual 
difficulties. I am not attuned to the needs of other groups of users,
for instance those with motor difficulties. If it should be desirable
to make any of these programs work well in other ways, please let me
know what changes are needed.

Dale Cotton,
March 1994

_______________________________________________________________
__P.S.: A Note to Programmers__________________________________
There are at least two different approaches to writing speech synthesis
friendly programs. Both require controlling whether output to the screen
is done through official Int 21h BIOS services or directly to video 
memory. Most speech software can access text either through BIOS or from
video RAM, but by default auto-speaks BIOS output and ignores video RAM
output. 

The obvious and probably best method is to perform all output via 
Int 21h and work in classic teletype fashion: every new interaction
causes a new screen line. When the bottom line is reached the system 
scrolls previous output up one line and writes new output on the bottom
line. For example:

 Acme Blackjack!
 Your hand: Ace of Diamonds   Three of Spades
 My hand: Hidden Card   Six of Clubs
 Hit or Stay?
 -Hit
 Your new card: Ten of Clubs
 You're over! Too bad!

You've lost all your sighted users in the first five seconds, but since
they've all migrated to Windows or Mac anyhow, this is irrelevant.
See the enclosed programs, Craps and Runes, for examples of a teletype 
interface.

The second approach is to confine output to one screen, erasing and 
redrawing as necessary. With a little art this provides a display that 
sighted users would have accepted BG (Before GUI). Presumably, there are 
some sighted users with antique equipment who might also use your 
creations. Since I am sighted and wished to make programs I could use 
myself, and started work in the BG era, I chose this - more complicated 
- approach for the VIP suite. More recently I have been using teletype.

In either case to control whether output goes through the BIOS both
Borland/Turbo Pascal and C/C++ language products offer the elegant 
DirectVideo call. Before any output statements you wish to send through 
BIOS services and thus to be spoken by the speech software, set 
DirectVideo to false or 0. Before any output statements you wish to 
to be silent, set DirectVideo to true or 1. Presumably non-Borland
products have a similar facility.

To write method one (teletype) programs for speech with a Borland
product simply turn DirectVideo off at the start of the program and 
leave it off. Never use cursor position control capabilities, such
as Borland's GotoXY, just stick with Writeln and printf() and perhaps
the occassional clear screen. This leaves you free to concentrate on
the program's logic rather than the quagmire of interface handling.
You'll be dramatically more productive and be glad you have an audience
which doesn't require visual hand-holding! 

Method two programs require alternating between the two DirectVideo 
states. The simple rule, however, is: Do no output to screen with 
DirectVideo off except output you wish to be spoken aloud at that point 
in the program's interaction. Even moving the cursor to a new position 
on a screen line which already contains output will cause the line to be 
re-spoken, if DirectVideo is off when the cursor move is made.

Anyone who wishes to create more programs using the VIP interface
(for whatever unimaginable reason) is welcome to the crude and inelegant
library of interface routines I developed over the years (including
playing card display), first in Turbo Pascal then in Borland C++. 
Just contact me at the address shown above.