Subject: REVIEW: WinkBug
From: [email-masked] (James Cooper)
Date: 2 Jul 1994 02:18:50 GMT
Newsgroups: comp.sys.amiga.reviews

PRODUCT NAME

	WinkBug

BRIEF DESCRIPTION

	A hardware debugging aid.  It has a 2-line by 16-character LCD
display for use in showing debugging information.  It is built into a
3-position switchbox, so no lost ports!

AUTHOR/COMPANY INFORMATION

	Name:		The Puzzle Factory, Inc.
	Address:	P.O. Box 986
			Veneta, OR  97487
			USA

	Telephone:	Orders:		(800) 828-9952
			Tech Support:	(503) 935-3709

	E-mail:		InterNet:	[email-masked]
			BIX:		jblavin

LIST PRICE

	$54.00 (US) + $5.00 Shipping in the U.S. and Canada.  European
customers should call for shipping prices.

SPECIAL HARDWARE AND SOFTWARE REQUIREMENTS

	HARDWARE

		It will not work properly with an Amiga 1000.

	SOFTWARE

		None.

COPY PROTECTION

	None.

MACHINE USED FOR TESTING

	Amiga 3000/25, 4 MB Fast RAM, 2 MB Chip RAM.
	1 internal 880K floppy.
	1 internal HD floppy.
	Quantum PD210S hard drive.
	Commodore 1960 Monitor.
	AmigaDOS 2+
	WShell 2.0 replacing the Amiga shell.

	- also -

	Amiga 4000/40, 18 MB Fast RAM, 2 MB Chip RAM
	1 internal HD floppy.
	120 MB IDE hard drive (whatever came with the machine).
	Commodore 1960 Monitor.
	AmigaDOS 3+
	WShell 2.0 replacing the Amiga shell.

INSTALLATION

	Installation is quite easy.  Here are the installation instructions
from the "ReadMe" file on the WinkBug diskette:

	1. Remove power from your Amiga.
	2. Plug one end of the supplied 25-conductor male/male DB25 cable
	   into the parallel port of your Amiga computer.
	3. Plug the other end of the cable into the DB25 connector labeled
	   "input/output" on the rear panel of WinkBug.
	4. Apply power to the Amiga.
	5. Copy "wink.library" from the distribution disk to your LIBS:
	   directory.
	6. Turn the knob on the front panel of WinkBug so that it points
	   to the parallel port you wish to use.  Turn the knob to point
	   to the word "WinkBug" when you want to use the display.

REVIEW

	One of the first things you might think about WinkBug is the classic
"I could have done that." or "I wonder why no one else has done this before?"

	It is a nicely packaged unit, consisting of a standard 3-position
switchbox with a small LCD display embedded in the front panel.  The front
panel is Black, with Metallic colors for the lettering and the Puzzle
Factory logo.  Quite aesthetic.  The 3 switch positions are marked "A", "B",
and "WinkBug".

	On the back of the unit, one of the DB-25 connectors has been
removed (since that's the slot used by the WinkBug circuitry), leaving you 3
places to plug things in - one to your computer, and 2 others for external
devices (printer, digitizer, etc.).

	It's great that WinkBug is in a switchbox, saving you the trouble of
finding one yourself.  The early Beta version was just a single cable to a
box with the LCD display, and it was annoying to turn off the power, swap
cables so I could print, turn off power, swap cables to use WinkBug, etc.,
etc., ad nauseum.

	Now, for what it does.  Basically, its an alternative output
device.  Sure, it won't take the place of an external terminal, since with
that you also have keyboard input, but how many have the extra space (or
want to waste it :) for that extra terminal?  And how many have the extra
terminal in the first place?

	Also, you don't waste resources, such as paper.  And, WinkBug will
retain the display as long as you don't turn the power off, so no worries
about the output to a window not being seen, or the printer buffer getting
dumped before its printed because the printer got a RESET signal when your
machine went down.

	What good is it?  Well, that's the hard part to define.  It is one
of those tools that can sit and collect dust for a long time, but when you
need it, it is *indispensable* for finding and fixing a problem!

	One of the classic problems on the Amiga is debugging a low-level
routine, such as a device driver, handler, or interrupt.  Some of the
current debuggers can now handle the first 2 to varying degrees, but there's
still nothing that can correctly handle a time-critical piece of code such as
an interrupt.  Well, with the low-overhead of the WinkBug code, you could
actually print debug info to the WinkBug device, without messing up critical
timing for all but the most extreme cases!  Finally... about the only thing
that would be better would be an actual hardware debugger (state analyzers,
anyone?).

	Since it is reasonably transparent to the system, you can also use
it for all sorts of other things, as well, as the example code on the
WinkBug disk gives the barest sample.

	Speaking of that code, let's take a look at what's supplied.
Alphabetical order is a reasonable approach here, so...

	ENFORCER

	Just in case... Enforcer V37.60 is included on the disk.  This is
	*such* a useful tool (Thank You, Mike Sinz (and Bryce Nesbitt before
	him)!) that it can't hurt to have a few extra copies around.  :-)

	EWINK

	This is a nifty little piece of code that will intercept Enforcer
	hits (now why did *that* come up again? :-)) and display some of the
	most useful info on the WinkBug display.  It doesn't block the
	normal output, so you still get the full report, but... suppose you
	had the Enforcer output going to a window, and you had a nasty
	program locking out user input, so you couldn't switch back to
	*look* at that Enforcer output before the machine crashed.  The main
	info you might need will be sitting right there in the WinkBug
	display when your machine comes back up!

	EXAMPLES

	There are 2 subdirectories here, oddly enough named "Assembly" and
	"C".  They show examples of accessing wink.library in your code.

	MULTIWINK

	This is a nifty little program written by Jim Drew & Joe Fenton of
	Utilities Unlimited.  It hooks into Exec's task-switching code to
	display the PC and task structure addresses for the current
	running task in the system.  Neat to watch your system at work.
	Useful, as well, as you can now tell the last task that was active
	when you get one of those "hard" crashes.

	WINKHANDLER

	This is a little piece of code you can link into your program that
	will catch GURU's and dump pertinent info to WinkBug, and Exit
	your program in a moderately stable state.  I wouldn't do much
	after this point, but it will allow you to shut down any other
	applications, etc. before a reboot.  The code was written by
	myself, with some help from Jeff Lavin (of The Puzzle Factory).

	All of the above come with complete source code, almost all in
assembly language, using the Macro68 assembler (also sold by The Puzzle
Factory).  The one exception is, of course, the "C" example in the
Examples/C subdirectory.

	It also comes with the necessary .h, .i, and .fd files to make use
of WinkBug from C, Assembly, or anything else that can use a .fd file to
find a library.

	Overall, a complete package, and a very useful debugging tool!

	There is one restriction, though, and that is that only *one* task
(in the entire machine) can call the 'AllocWink()' setup routine in the
wink.library.  Any number of tasks can *use* the library after it has been
set up, but only one can call the setup, and it must be the same task that
frees it up when it exits.  This could lead to conflicts (such as: what if
the task that called AllocWink exits before some other task that is using
the library?).

	However, this is only version 1 of the software, so there could be
improvements in this area.  In general, it hasn't been enough of a nuisance
to want to avoid using WinkBug, but it is something to be aware of.

DOCUMENTATION

	The docs consist of the "ReadMe" and "wink.doc" files in the root of
the disk, and a few other ".doc" files scattered through various
subdirectories.  These files are reasonably well written, obviously by
several different authors, so there are varying styles of grammar, etc.

	None of it should be hard to understand, except perhaps by the most
novice of readers.  However, you do need some knowledge of programming on the
Amiga before this device would even be useful, so I don't see a problem.

LIKES

	It's neat!  First, the last data displayed stays even if the Amiga
is reset, so if you have Enforcer hit info there, it isn't lost.  Also, just
watching the task-switch code in action can be fun, since you will see that
the machine is, indeed, constantly doing *something* in the background....
:-)

	It is one of those devices that you don't necessarily see a need
for, until you use it for a bit, then you wonder how you ever got along
without it!  Kind of like multitasking....

DISLIKES AND SUGGESTIONS

	The only dislike I have is the restriction that only one program can
call the AllocWink() routine.  I usually have several programs in a state of
flux, and it would be nice to leave the debugging code in, just in case.
With the current setup, I either have to recompile my code *without* WinkBug
support (or, at least, without the AllocWink() call), or make sure no more
than one is running at a time. This also means I can't run any of the
supplied utilities (such as EWink), and also have an AllocWink() call in my
program.

COMPARISON TO OTHER SIMILAR PRODUCTS

	I don't know of any other products quite like this one.  It is
small, easy to use, and could even come in handy for remote debugging... and
it is cheap enough that if someone was having a problem you couldn't track
down, you could send them a WinkBug and a version of your program with
WinkBug support in it, and tell 'em how to find the info you need.  The
cheap part comes in when the Post Office loses the package during
shipment...  :-)

BUGS

	I didn't find any.

VENDOR SUPPORT

	I have talked to Jeff Lavin many times in the past.  He is a
reasonable person and has always been helpful when I've had a problem.

	The only association I have with The Puzzle Factory is as a
long-time customer, and a Beta tester for some of their products (and, I
wrote the GURU-catcher code and docs on the WinkBug disk... :-)).

WARRANTY

	90 days on materials and workmanship.

CONCLUSIONS

	This is a great little toy.  I'd have to rate it 4.5 out of 5
stars.  Remove the one restriction (its only an annoyance, but it gets in
the way), and I'd take it up to 5 out of 5.

COPYRIGHT NOTICE

	From the "ReadMe" file on the WinkBug diskette:

		"WinkBug and Wink Display are trademarks of The Puzzle
	Factory, Inc.  Amiga is a registered trademark of Commodore-Amiga,
	Inc.
		"The design of the Wink Display, the WinkBug documentation,
	the wink.library and all software supplied with WinkBug, except as
	otherwise noted, are copyrighted by The Puzzle Factory, Inc."

	This review is hereby declared Public Domain.  Who else would want
to claim it, anyway?

---

   Daniel Barrett, Moderator, comp.sys.amiga.reviews
   Send reviews to:	[email-masked]
   Request information:	[email-masked]
   Moderator mail:	[email-masked]
   Anonymous ftp site:  math.uh.edu, in /pub/Amiga/comp.sys.amiga.reviews