Electronic Projects - Software
Four of the projects
in this collection accompanying software, these being both Eprom Programmers,
the Eprom Emulator, and the ChipTester. The Eprom Programmer Mk2
and the Eprom Emulator use the same software package so there are actually
three different packages provided.
The software was designed to run on PC's running MS-DOS, and was written
using Microsoft QuickBASIC 4.5. Source code is provided for most
of the applications, which will run on various versions on DOS as discussed
in the relevant project article.
Versions of BASIC
With the earlier versions of DOS, up to 4.01, a BASIC interpreter
was provided. This was called either BASICA or GW-BASIC depending
on whether it was provided with the IBM or Microsoft version of DOS.
It was a fairly limited program, similar to the BASIC provided on many
early home computers. There was no full-screen editor; to view part
of the program the LIST command was used, and any incorrect lines of code
had to be retyped completely. It was only an interpreter, so each
line of code was read, translated into machine code and executed as the
program ran. It was therefore fairly slow.
During the 1980's Microsoft developed and supplied a more serious version
of BASIC, called QuickBASIC, which had a proper full-screen editor and
allowed .exe files to be produced. It was a compiler, which means
the machine code is produced in advance rather than when the code is run.
It was therefore much quicker. The final, and best, version was
A cut-down version of QuickBASIC 4.5, known as QBASIC, was included with
versions of DOS from 5.0 onwards. A copy is provided in the /other/oldmsdos/
directory on the Windows 95 CD-Rom. This is similar to QuickBASIC
except that it does not allow you to produce .exe files and does not have
such a comprehensive help system or sample programs. There are a
couple of minor differences, most significant for us is that the COMMAND$
function (which contains the command line parameters when running a stand-alone
.exe file) is not supported.
Microsoft did not continue the development of QuickBASIC, instead they
released Visual-Basic for DOS and Windows. The DOS version was not
a success, and never got beyond version 1. The Windows version was
much more successful.
Operating System Compatibility
The main shortcoming with QuickBASIC is that it does not have any
facilities to allow programs to read the contents of a drive or directory
directly. In the programs on this website (except Eprom Prog Mk1)
this task is accomplished by redirecting the MS-DOS DIR command to a temporary
file, then opening and reading the contents of that file. This relies
upon the structure of the results of the DIR command remaining the same
with different versions of DOS. This was the case up to version
6.0, however from version 6.2 Microsoft modified the command to include
commas in the file sizes to make them more readable. This means
that the software needs to know which version of DOS is being used so
that it can decode the information correctly. Since no direct function
to read this is provided, the results of the MS-DOS VER command are redirected
to a file and read the same way.
To establish the version of DOS the last four characters of the VER command
result are converted to a numeric. If it is greater than 6.0 the
program assumes commas are used in the file sizes, and if it is less than
3.0 the program will not run. This worked fine for the various versions
of DOS, because the version number never had more than 4 characters (eg
6.22). With Windows 95 however the version number returned by the
VER command was larger. Early versions of Windows 95 reported version
4.0.950 while later versions report version 4.0.1111. The programs
worked OK with later versions because the last four characters are 1111
which is greater than 6. With earlier versions the last 4 characters
are .950 (note the dot) which is less than three so the programs
did not run. I have patched this by adding a line that says that
if the version of DOS is less than 1 then it is actually 950.
So the programs should now work with all versions of Windows 95 - providing
Windows will let them access the serial port correctly. They
definitely will not work with Windows NT4 because the output from its
DIR command is completely different. I have not tried it with Windows
98, 2000 and ME. As for OS/2 and the various other odd versions of DOS
(such as DR-DOS, Novell-DOS, 4-DOS and the thing that came with some versions
of Norton Utilities), I cannot say whether or not the programs will work
correctly. Since DR-DOS was always one version number higher than
it's Microsoft counterparts, even though it was functionally similar,
I would expect this to cause problems.
I would suggest that
the easiest way of using the software would be to obtain an old PC, such
as a 386 with MS-DOS 5. This sort of PC should be available for next-to-nothing
(try the classified adverts in the local newspaper), and will cause a
lot less problems than trying to get it to run on a more modern PC.
The menu-driven software for Eprom Programmer Mk1 uses an add-on Assembly
Language Toolbox with QuickBASIC. This performs low-level operating
system calls to establish the information it needs. At the time
this gave problems with some not-quite-IBM-compatible 386 machines (such
as certain Dell PCs), so I would not be surprised if it had problems with
Windows 95 etc. Having said that, I tested the program on my PC
(without an Eprom Programmer connected) and it seemed to run OK.
If problems are experienced there is a less fancy program included which
can be run with QBASIC and is also provided as a .exe file. I have
included the source code for the menu-driven program in the download.
The Toolbox files are also available as a separate Zip file - see links
at the foot of this page. Note that the Toolbox is Shareware.
Source code compatibility with QBASIC
Unless otherwise stated, the source code provided is compatible with
Microsoft QuickBASIC 4.5 only. It should work, possibly with minor
modification, with QBASIC. The only area of the software that might
require modification is any sections that use the COMMAND$ function.
This function returns the command line parameters, and is therefore only
relevant to compiled programs created with QuickBASIC. For use with
QBASIC these sections will need to be modified such that a suitable default
option is selected for your setup.
The software assumes
a comma to be a thousands separator and a full stop to be a decimal point
in file sizes in MS-DOS directory listings and other numerical data. If
you live in an area where the opposite is the convention then the software
may not work without modification.
It is also possible
that problems may be experienced in areas which do not show dates as DD/MM/YYYY,
but no such problkems have been reported so far.
If you have a problem
with a regional issue you can either modify the software to suit or change
the country settings in your operating system. If you are using MS-DOS
it may be easiest to make a bootable disk with UK country settings, and
use this when running the software.
Year 2000 Issues
The software itself does not use date functions in its operation.
However it does use the MS-DOS DIR command as discussed above, which contains
file date information. Providing the layout of the DIR command output
remains consistent regardless of the file date there should be no problems.
Microsoft are not testing QuickBASIC for Year 2000 compliance. Therefore
I cannot say whether or not the software on this website is compliant,
although I do not envisage any problems.
The software for the Mk1 Eprom Programmer uses a 3rd party Toolbox addon
for QuickBASIC. The Year 2000 status of this package is unknown,
but again I do not envisage any problems.
No further information is available regarding Year 2000 compliance. However
as of May 2002 no problems have been reported.
The software (with the exception of the Microsoft products) may be
distributed freely as required in its original form or in any modified
form. However the copyright notices must remain, and a reference
to this website must be provided. The original versions must not
be distributed via the Internet, apart from via this website. You
may provide a link to the relevant project page on this website, but must
not link to the software Zip file directly.
You are welcome to create modified versions of the software, providing
my copyright notice is retained. Modified versions may be distributed
free of charge via the Internet or other means, but may not be sold or
otherwise commercially exploited. I would be happy to publicise
your modified version of the software via this website.
The software on this website and the information on this page is provided
as-is. No liability can be accepted for any errors or omissions
in the information given, or for any faults or bugs in the software, or
for any damage or loss caused by the use of this software. If you
cannot accept this disclaimer do not download or use the software.
Language Toolbox for Microsoft QuickBASIC 4.5 (312KB)