PDA

View Full Version : st19xl-2.8.18.rar


smilingjack
03-24-2009, 03:10 AM
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1
ST19 Processor Emulator
=======================
By: Pierre G. Martineau
pgm@usa.net
Disclaimer
==========
I do not accept responsibility for any effects, adverse or otherwise,
that this programme may have on you, your computer, your sanity, your
dog, and anything else that you may think of. Use it at your own
risk. You have been duly warned
This software is intended for educational purposes ONLY!
Anyone wishing to donate may do so either through Paypal with this
email address: pgm@usa.net or via traditional mail here:
PGM
PO Box 51
Walworth, NY 14568
Be sure it is addressed to "PGM" or it won't make it and also be sure
that a signature is not required. If sending a money order it should
be of the international kind. Include an email address if you wish to
be placed on the email list.
History:
========
V2.8.18 - 03/21/2009 - Problem with OTP emulation fixed.
V2.8.17 - 02/27/2009 - Small problem with math routine fixed.
V2.8.16 - 02/04/2009 - OOB pointer fix.
V2.8.15 - 12/14/2008 - Minor I/O improvements and corrections.
V2.8.13 - 10/17/2008 - Fixed a small timming bug introduced in the
preceding version.
V2.8.12 - 10/15/2008 - Fixed buggy TIOCMIWAIT in Linux version. The
baud rate options (-b) now default to 1 when
using a direct serial connection.
V2.8.11 - 09/30/2008 - Changes to the -br and -ba parameters. Can now
specify baud rates directly for serial drivers
that support higher speeds. This should work
for USB to serial converters directly as well
as higher end serial cards like those with the
Oxford chipset and drivers. See below for the
specifics.
V2.8.10 - 09/22/2008 - Experimental support for other flavours of
ST19 cores. Read below about the new options
-kp and -q. For support requests regarding new
flavours of ST19 cores (such as WL, etc.) be
sure to send in both the COR file and ROM file
in support of your request.
V2.8.08 - 09/10/2008 - No changes other then to correct a minor bug
in the Linux version.
V2.8.07 - 09/08/2008 - Minor tweaks. Also, take note of the
following: I have rescinded the RESET line
necessity however be aware that there will be
absolutely *NO* support whatsoever for any
uses that do not have a RESET line! Also take
note that there will be *NO* support for uses
that include an external EMU type of
interface. Only direct serial communications
will be supported! The -m option will remain
but will no longer be a part of any testing
or support and may eventually stop working
altogether. Finally, this software is designed
to use a real AUX and nothing else! No support
other then for a real AUX will ever be
provided. What this means: do *NOT* ask for
support for any of the above!
V2.8.04 - 08/13/2008 - Another bug in EE code. Should now really
support EE sizes up to 66K.
V2.8.03 - 08/10/2008 - A few cosmetic fixes. As of this version,
ST19XL will be donation-ware for anyone using
it for legitimate development / learning
purposes.
V2.8.01 - 07/27/2008 - Small bug fixed in new EE updating code.
A reset signal is now *REQUIRED* on the DCD
signal line for serial operation.
V2.8.00 - 07/23/2008 - All flavors of ST19XL now supported!
ROM sizes of 16K to 224K auto-supported as
well as EEPROM sizes of 2K to 66K auto-
supported. RAM size hasn't changed and is
still 2K to 8K specified by switch -kr.
V2.7.09 - 07/11/2008 - Com bug squashed!
V2.7.05 - 05/21/2008 - One more step towards multi-ST19 emulation.
V2.7.02 - 05/06/2008 - Made a small booboo.
V2.7.01 - 05/06/2008 - Finally starting to add the features to
implement the various flavors of ST19
processors. the -kr switch switch now works.
More to come.
V2.6.31 - 04/09/2008 - Subtle bug corrected.
V2.6.30 - 04/04/2008 - Apparently I can't subtract
I'm currently out of a job and am actively
searching for one. I'd appreciate any leads
or offers. Thanks.
V2.6.29 - 02/25/2008 - Some hardware refinements.
V2.6.28 - 02/21/2008 - Another difficult to find bug squashed.
V2.6.27 - 02/18/2008 - oops, broke something that once worked.
V2.6.26 - 02/14/2008 - Happy St-Valentines day!
V2.6.24 - 02/12/2008 - A few more refinements
V2.6.21 - 02/04/2008 - Fixed another minor bug.
V2.6.19 - 01/29/2008 - Fixed the serial I/O booboo from the last
release.
V2.6.17 - 01/24/2008 - The remodel isn't over yet.
V2.6.14 - 12/27/2007 - Still a work in progress...
V2.6.09 - 12/15/2007 - A work in progress. Many minor corrections.
More to come when time permits.
V2.6.08 - 12/05/2007 - The reset bug *SHOULD* be fixed this time!
V2.6.06 - 12/02/2007 - Hopefully the reset bug that was introduced
in the last release is fixed.
V2.6.05 - 11/23/2007 - Happy Turkey days!!!
V2.6.01 - 10/31/2007 - Happy Halloween!!!
V2.6.00 - 10/28/2007 - Major re-structuring of code to improve
performance and enhance stability. May have
broken some things that use to work!
V2.5.28 - 09/28/2007 - fixed a major bug and a few minor ones. New V
option while running.
V2.5.21 - 08/30/2007 - oops, a couple more stupid bugs.
V2.5.19 - 08/03/2007 - a few minor bugs fixed.
V2.5.13 - 04/09/2007 - I was asleep during the last release
V2.5.12 - 04/08/2007 - fixed a minor bug.
V2.5.07 - 02/17/2007 - many minor improvements as well as a few bug
fixes.
V2.4.04 - 02/05/2007 - finally fixed a timming issue that has been
dogging me for a long time by re-writing most
of the timming dependant code.
V2.4.01 - 02/02/2007 - fixed a pesky interrupt handling problem but
there may still remain an elusive one
- a few minor fixes
V2.3.55 - 12/22/2006 - final bug fix release for V2.3 - hopefully
V2.3.50 - 12/17/2006 - fixed typo in last version!
V2.3.45 - 12/14/2006 - fixed a major bug introduced in the last
version
V2.3.34 - 12/10/2006 - fixed a bug preventing the proper detection
of resets under certain circumstances
- added a new option (-l) for output logging
- several minor corrections
V2.3.21 - 11/28/2006 - fixed a major bug, oops!
- added serial port settings for Linux
V2.3.17 - 11/25/2006 - Linux version
- many more minor corrections, mostly cosmetic
- keyboard now far more responsive
- a few more diagnostic messages
V2.2.05 - 11/07/2006 - added sio delay option
V2.2.01 - 10/31/2006 - Windows version
- a few minor bug fixes
V2.1.01 - 10/20/2006 - public release
V2.0.15 - 10/18/2006 - fixed -m option
V2.0.11 - 10/17/2006 - fixed newly added -w option
V2.0.10 - 10/13/2006 - many minor corrections
- fixed SIO port addresses and interrupts
- added -w option (see below)
- added -f option (see below)
- renamed the COR and ROM files
V2.0.03 - 09/29/2006 - release to beta testers
V1.0.01 - 01/21/2006 - first working version for private use only
Many thanks to the Beta test team!
Hardware requirements:
======================
- A PC (Pentium 200 minimum, your mileage may vary)
- 4 Meg ram
- 1 or 2 serial ports (preferably 16550 or better)
- 1 or 2 ISO-7816 interfaces or equivalent
Software requirements:
======================
- The DOS version requires DOS 3.0 or later
- The Windows version requires Windows 95 or later
- The Linux version requires kernel 2.4 or later
Details:
========
Here's what you see when help is requested:
ST19XL Processor Emulator Vx.x.xx [PGM] -OS-
Copyright (c) 1998 - 2008, Pierre G. Martineau. All rights reserved.
This software may NOT be sold or modified without the author's
permission! It is intended solely for educational purposes.
This software is donation-ware for legitimate development / learning
purposes. Donations may be made via PayPal with the following email
address: pgm@usa.net. Constructive comments and suggestions to
pgm@usa.net the rest to /dev/null :>
Usage: ST19XL [options] [corefile]
options are:
-h - get help!
-a - enable AUX
-m - enable EMU type interface
-o - write core back to source COR file on exit
-s - snoop on the communications to screen
-t - timestamp packets
-w - show EEPROM writes
-f(fnam) - take commands from a file rather than the serial port
-l(fnam) - log output to a file
-b(ar)# - ATR/RUN baud rate or baud divisor (default 1/1)
-d(ea)nam - EMU/AUX device port (default ttyS0/ttyS1)
-p(ea)# - EMU/AUX port/address (default 1/2)
-i(ea)# - EMU/AUX interrupt (defaults to standard interrupts)
-u(ea)# - EMU/AUX UART type (defaults to autodetected)
-kr# - RAM size: 2,4,6 or 8K (default 4K)
-kp[#] - protected EE size (from top of EE,default 400h bytes)
-q# - ATR bytes (default 27)
corefile is the binary core image (defaults to st19.cor).
On exit, the core is dumped to st19.cor unless a COR file was
specified AND -o is also specified in which case it will be saved to
the specified COR file. ST19XL will load a rom image from st19.rom,
in the current directory.
The options are (some are OS dependant):
-h - Get help, you may need it
-a - Instructs the emulator to use an AUX.
-m - Instructs the emulator to talk to an EMU type interface
rather than an ISO interface.
-o - Instructs the emulator to save the core back to the COR
file specified on the command line. This option will do
nothing if a COR file is not specified on the command line
or the default st19.cor is used as it saves to st19.cor by
default.
-s - Instructs the emulator to display the serial communications
to the screen.
This option can be toggled on and off from the keyboard
while running.
-t - Instructs the emulator to add time information to the
communications shown on screen.
This option can be toggled on and off from the keyboard
while running.
-w - Displays all writes to EEPROM memory.
This option can be toggled on and off from the keyboard
while running.
-f - Runs ISO commands from a file rather than a serial port.
The file format is very flexible, including feeding
ST19XL's output back into it without editing it first.
If a filename is not supplied, st19.in is assumed.
-l - Logs all output to a file. If a filename is not supplied
st19.out is assumed.
This option can be toggled on and off from the keyboard
while running.
-ba - Specifies the baud rate or baud divisor to use for the ATR.
If less than 500 then it is considered a divisor otherwise
it is the actual baud rate desired. Specified in decimal
notation.
-br - Specifies the baud rate or baud divisor to use after ATR.
If less than 500 then it is considered a divisor otherwise
it is the actual baud rate desired. Specified in decimal
notation.
-de - Specifies the ISO interface's serial port device.
For Linux, specifies the device to use. If not specified,
ttyS0 is assumed.
For Windows, specifies the device to use. If not specified,
COM1 is assumed.
-da - Specifies the AUX serial port device.
For Linux, pecifies the device to use. If not specified,
ttyS1 is assumed.
For Windows, pecifies the device to use. If not specified,
COM2 is assumed.
-pe - Specifies the ISO interface's serial port.
For DOS, this can be 1-4 for COM1 to COM4. It can also be
the address of the serial port for non-standard ports. The
address is specified in hexadecimal notation ex: /pe3F8 -
for a port at address 0x03F8. If a port address is
specified then an interrupt MUST also be specified!
For Windows, it specifies the COMx port. If not specified,
COM1 is assumed. x is specified in decimal notation.
For Linux, it specifies the port address of the ISO
interface's device. It defaults to the autodetected port
address. The address is specified in hexadecimal notation
as above for DOS.
-pa - Specifies the AUX serial port.
For DOS, this can be 1-4 for COM1 to COM4. It can also be
the address of the serial port for non-standard ports. The
address is specified in hexadecimal notation ex: /pe2F8 -
for a port at address 0x02F8. If a port address is
specified then an interrupt MUST also be specified!
For Windows, it spedifies the COMx port. If not specified,
COM2 is assumed. x is specified in decimal notation.
For Linux, it specifies the port address of the AUX
interface's device. It defaults to the autodetected port
address. The address is specified in hexadecimal notation
as above for DOS.
-ie - DOS and Linux only. Specifies the ISO interface's serial
port interrupt. It can be any standard interrupt (1-15). If
not specified, the software will assume, for DOS, that the
COM port specified uses a standard interrupt or for Linux,
the autodetected value.
-ia - DOS and Linux only. Specifies the AUX serial port
interrupt. It can be any standard interrupt (1-15). If not
specified, the software will assume, for DOS, that the COM
port specified uses a standard interrupt or for Linux, the
autodetected value.
-ue - Linux only. Specifies the ISO interface's UART type. If you
don't know what this does, don't specify it!
-ua - Linux only. Specifies the AUX interface's UART type. If you
don't know what this does, don't specify it!
-kr - Specifies RAM size to use for the emulation.
-kp - Specifies the amount of upper EE memory to protect.
Expressed as a number of bytes in hexadecimal notation. If
set but not specified, defaults to 400h bytes.
-q - Specifies the number of bytes transmitted for the ATR. If
not specified, defaults to 27.
The emulator expects a COR file. This file represents a binary image
of the CPU's EEPROM memory. By default, it will try to load st19.cor
on startup, first from the current directory and if not found then
from the application's directory and it will always write back the
core to this file on exit unless the -o option is specified. No COR
file is provided with this package since it can be used to emulate
many different applications. The COR file must be between 2k and 66K
in size.
The emulator also expects a ROM file. This file represents a binary
image of the CPU's ROM memory. It expects to find it in the file
st19.rom either in the current directory or the application's
directory. No ROM file is provided with this package since it can be
used to emulate many different applications. The ROM file must be
between 16K and 224K in size.
Files included:
===============
ST19XL.TXT - this file.
dos\cwsdpmi.exe - DPMI services for DOS.
dos\st19xl.exe - the emulator for DOS.
win\st19xl.exe - the emulator for Windows.
lin\st19xl - the emulator for Linux.
MD5 checksum: ae720f34196b4378a56f80b1c5e2e09a *dos\st19xl.exe
MD5 checksum: 802ff8a22310a2315f58725f19c986ee *win\st19xl.exe
MD5 checksum: 494d0118d27f6d75fdee7e7998701272 *lin\st19xl
Notes
=====
This emulator is a work in progress. It is NOT, by any means, a
complete emulation of the ST19 CPU core. Many of it's internals
aren't implemented either deliberately, because they are still
unknown or I haven't had time. That being said, if you wish to
contribute information or constructive comments, by all means do so,
I'll most definitely appreciate it.
Processor speed is unimportant so long as the recommended minimum
(Pentium 200) is used. It is well behaved in that it yields time back
to the OS every so often. It is not a resource hog. Note that the
-s, -t, -w, and especially the -l options will slow down the
emulator
so use them only when necessary.
The -p, -i and -u parameters under Linux are usually NOT necessary
and are provided for those rare cirmcumstances when the autodetected
values for these are wrong.
CWSDPMI is provided as per the DJGPP license.
Happy emulating
pgm
Bug reports, comments, suggestions or questions should be sent to
pgm@usa.net
-----BEGIN PGP SIGNATURE-----
Version: PGP Desktop 9.9.1 (Build 287) - not licensed for commercial use: www.pgp.com
Charset: utf-8
wj8DBQFJxEDluNd8zM8AVqkRAqsvAJ4yoofpixzj2AeXHO/w6BcQXnAotQCgzem7
tByfLC41gLo0vO2ZX/kjyAc=
=6Buu
-----END PGP SIGNATURE-----

The file is in the file banks
http://bellexpress.vu/forum/local_links.php?catid=64