TESTER.TXT	30-NOV-00

Run testit.bat for a thorough check, or run "tester <keys" for a quick
check.

The tester does not check to verify that the flashing cursor has been
turned off, nor does it check for the bell sound when a level is solved.
These must be verified by the user.

Windows does some strange things with the bell sound, and this causes
some to be missed. When running in a DOS box under Windows 98, two bells
executed in rapid succession will sound the bell only once. Of course
running under pure DOS will sound the bell each time a level is solved by
the tester as one would expect.

The 'keys' files use the '2' character to advance to the next level.

The tester program must always start with level A, the default level,
because it doesn't pass the command line to the child process, entry.com.
The command line completely disappears when there is a redirected file
(i.e: <keys). This appears to be a DOS bug (or something that I don't
understand).


Version 5 has these new features:

Allows entry.com to use stdin to read in the level file. Previously
tester used stdin to read a "keys" file, which prevented entry.com from
using it.


Version 4 has these new features:

1) The 'keys' files now only contain the characters 2, 4, 6, 8,
Backspace, and Esc. The 2, 4, 6, and 8 are converted to the corresponding
arrow keys by the tester. Thus an entry.com program only sees the arrow
keys, Backspace, and Esc. It does not need to worry about any other keys.
The '2' character is used to advance to the next level. (Previously any
character, such as a space or bell, was used.)

2) The tester now allows blank character cells, such as the floor,
background, and dock, to be displayed more ways. Any character can be
used as long as the background and foreground colors are the same. For
example, the letter 'A' could be used to display the floor if its
foreground and background colors are both white (i.e. as long as its
attribute byte = 77h). The solid block character (DBh) can also be used
as long as its foreground color is correct (and the background doesn't
specify flashing).


Version 3 has these new features:

1) It verifies that level Z is correctly solved. Level Z is Metalbrain's
puzzle, which is different than all the other levels in that there are
more boxes than loading docks. So if your code merely checks that all the
boxes are on docks, it won't pass this test.

2) Checks to see that the input file handle is closed. Actually, using
keys9, it verifies that all 26 levels can be run without running out of
file handles. If your program barfs on level O, perhaps you're not
closing the file handle.

Sniper explains that despite the FILES=30 statement in your config.sys
file, the standard DOS application has a limit of 20 file handles. Five
of these are used for stdin, stdout, etc., leaving 15 handles available
for files.

3) Verifies that 4000 moves can be made and then undone.



PROCEDURE FOR MAKING 'KEYS' FILES

Edit example.asm makekeys.asm
Set the conditional assembly flag 'makekeys' to 1, instead of 0.

tasm /m makekeys
tlink /t makekeys

Run: makekeys >keysx

(Unfortunately the puzzle level cannnot be set. It must use the default
level, A.)

The arrow keys are converted to their numeric ASCII equivalents (up='8'
etc.) and sent to stdout, which is redirected to a 'keys' file.
