Willem Eprom Programmer - Winprom
---------------------------------

This program is a windows version of the currently available program for Dos,
version .992 It should be able to handle all of the same devices as that
version, and has similar functions and options. This is the first release, so
don't be too suprised to find that there are a few rough edges, whilst myself
and Willem have tested several different devices, we do not own every device
handled, so some are still untested. If you find any problems, then let one of
us know, or, if you have a copy of Inprises (Borland) C-Builder 3 then just
let us have the fix!

This program is provided for free, personal use. It is provided "as is" without
warranty of any kind, either expressed or implied.  Anyone using the program
does so at their own  risk. The authors accept no liability for any loss or
damage arising from its use.


History
-------

Version 0.85 (Beta)

    NT Compatible Version. (See Acknowledgements and Installation)

    Better ZIF Graphics.   (See Acknowledgements)

    LPT3 Support           (See Acknowledgements)

    Split Hex Window       (See Acknowledgements)

    Added 'Skip FF' option for 27C/28C eproms.

    CRC32 Checksum
        You can now select from a 16 bit additive checksum (same as the Dos
        version of the program) or a 32 bit CRC (compatible with Mame, PKZIP
        & Romident amongst others)

    Support Intel Hex > 64k
        This has support for the relevant extra's to allow hex files to
        be made for images over 64k long. It supports both the 16 bit and
        32 bit segment extensions for loading, but only uses the 32 bit
        extensions when saving.

        If you have any hex files that do not work then contact me and I'll
        see what can be done.

    Slow erase of F28 now erases to 0xff (instead of 0x00)

    Moved program settings that only effect specific devices to device panel

    Clear sets all bytes to FF to reflect empty rom

    Reported problem with 28C65
        changed setting for all 28Cxx to match default from Dos version

    Reported problem with 12Cxx devices
        some changes based on information supplied by Rudy Mooyman
        *** Still not working !! ***

Version 0.80 (Beta) 
	Original Windows Release.


Installation
------------
Unzip the contents of the archive that you downloaded into a subdirectory and
create a shortcut to the main WINPROM program. place this shortcut on your
desktop or menu and click to run. (I didn't see the point in making the
download twice the size just to add an install option).

The support files for DriverLINX need to be in the same directory as the main
program. If you are running on NT then the driver file DLPORTIO.SYS also needs
to be available. If you have administrator priviledges then this driver will be
loaded as required. If you need this program to work in user mode, then this
driver will need to be permanently installed and set as an autostart service.
(See DriverLINX docs for information on how to achieve this)

The program needs a screen resolution of at least 800x600 to work.

The source code is also available if you wish to add support for your
favourite device, favourite file format, fix some bugs or just change the
colours. It is written using C++ Builder version 3.


Usage
-----
Hopefully, I have followed standard windows conventions enough to make it easy
to use. The menu system is similar to the Dos program, the main changes being
the hex window and the programmer settings box.

The first thing to be selected is the printer port that you have the
programmer connected to. I only have support for LPT1 and LPT2 at present.
If anyone actually uses LPT3 then it can quite easily be added in.

A quick run through the menu options, although I'm sure that most of you can
work this out yourselves :-

Load 		Loads a file into the buffer. understands Binary, Motorola S
                Record and Intel Hex formats.
Save            Saves the contents of the buffer to disk. Same formats as
                above. (n.b. It is not recommended to save PICS as Binary,
                since this format will not keep the fuse settings or
                separate data.
Clear		Zeroes the buffer.
Exit		Leaves the program

Read		Reads the currently selected device into the buffer.
Program         Writes the contents of the buffer to the device.
Compare         Checks the device against the contents of the buffer.
Erase		Erases the contents of the device.
Check Empty     Checks to see that the device is clear, and ready for
            	programming.

            	Some of these options do nothing if the operation is not
            	supported by the selected device.

Test Hardware	This just sends a few commands to the hardware and checks the
                response to make sure that the device is plugged in and
                switched on.
About           Tells you who wrote it and what version it is.


Settings
--------
After you have run the program once, any settings that you have are saved to
the registry. When you start the program again, these will be used as the
defaults. It only saves the details displayed on the screen. It will not save
the contents of the buffer


Devices Currently Supported
---------------------------
24C02 - 24C512
27C64 - 27C040          (27C32 needs a slight change to the board design)
27C1001                 (Actually it's the same as a 27C010)
28C65 - 28C040
28F64 - 28F040
29F64 - 29F010
16C84
16F84
12C508, 12C509          *** NOT WORKING ***
16C620, 16C621, 16C622
93C46 - 93C66


What Next
---------
Once any remaining bugs have been ironed out, there are some ideas circulating
to improve this program. Adding support for additional devices is high on the
agenda - some of these may require minor modifications to the hardware, some
will require construction of adapters. Once these happen, an additional
options screen will be added, so you can indicate which modifications /
adapters you have so only devices relevant to your setup will be selectable.

640x480 version - does anybody actually use their machine at this resolution ?
Most of the screen is not really scaleable. so this would probably be achieved
by making the hex dump a separate window.

When I built my programmer, I ,managed to purchase a nice edge mounted 25 pin
parallel socket that did not properly connect one of the pins! - I found this
out using the hardware test program from an earlier version of the Dos
software. The functionality of this test software will be added into this
program along with a nice help file to assist troubleshooting any problems
you may have.

If people are interested in doing any different language versions of this
program, then can they let me know first. Rather than have separate versions
for each language, I would prefer to integrate such changes into the single
program and have the language as a selectable option.

If any graphics genius wishes to do some nice logo for a decent about screen,
then please let us have a copy.

Improvements to the Hex Viewer. It has been requested that this allow editing
of the displayed values. Another idea submitted was that it displays loaded
data in different colours.

Anything else ? let me know of any ideas.

Finally, remember that this project is open source. If you change / fix /
improve anything, then please send me or Willem the changes to the source
code, so that everyone may benefit from your work.


Acknowledgements
----------------

This program makes use of some other peoples hard work, and I would like to
give them all a mention (plus copyright notices)

    DriverLINX Port I/O Driver for Win95 and WinNT
    (C) Copyright 1996, Scientific Software Tools, Inc.
    All Rights Reserved.

Scientific Software Tools, Inc. for making DriverLINX freeware. This product
is used to allow access to the printer port under NT. To make life easier, it
also works under windows 95/98 as well! Go visit them at www.sstnet.com


    TDLPortIO: DriverLINX Port IO Driver wrapper component
    Copyright (c) 1999 John Pappas (DiskDude). All rights reserved.

John for his C-Builder component that makes interfacing with DriverLINX
such a simple task. He has produced wrappers for most commonly used programming
languages and I would recommend taking a trip to diskdude.cjb.net for the latest
versions.

Darren Hatton for his ZIF socket drawings that look much better than my attempt.

Morf Gonk for LPT3 support and the sliding hex window.

Mark Adler for his CRC32 algorithm and table.

All of the original contributors to the Dos version of the software. This
version would not exist without their original work.


Contacting the Authors
----------------------
This version was written / assembled by Mike Coates, based very heavily on the
dos version. You can contact me at mike@mame.freeserve.co.uk

The hardware, and the dos version of the program was designed by Willem, and
you can either visit his web page (where you probably downloaded this from)
at www.willem.org or you can e-mail him on waklos@bos.nl

(The astute will notice that I am based in the UK, and Willem is based in the
Netherlands)

If you want to build the hardware that is required by this program, then full
details can be found on www.willem.org along with supplies of PCB's, Parts or
even fully assembled and tested programmers.
