GP Industrial XP640 Programmer Software

Program history

The GP Industrial XP640 is a device programmer from the mid 1980s and this software allows it to be controlled remotely from a PC using a serial interface. The XP640 does not use a well defined protocol but instead provides a user interface intended for display on a serial terminal with each command generating output which is formatted differently. This makes the code to send commands to the programmer and receive the response much more complicated than it otherwise would be.

Supported platforms

Platform Version Required library
MS-DOS, FreeDOS GP.EXE  
Win95,Win98,WinME GP32.EXE (or GP.EXE)  
Windows NT,Windows 2000,Windows XP,Windows 7 (32 bit) GP32.EXE  
Windows XP,Windows 7 (64 bit) GP32.EXE  
RHEL/CentOS 4.x-6.x Ubuntu/Linux Mint 17.x-19.x Suse 9.x-13.x (i386/i686 glibc 2.3.4) gp (32 bit) librhtv.so.2.0.3, (libstdc++.so.6)
RHEL/CentOS 4.x-7.x Ubuntu/Linux Mint 17.x-19.x (x86_64 glibc 2.3.4) gp (64 bit) librhtv.so.2.0.3, (libgpm.so.1)
RHEL/CentOS/Rocky 8.x-> Ubuntu/Linux Mint 20.x-> (x86_64 glibc 2.28) gp (64 bit) librhtv.so.2.2.3

Notes:

The MS-DOS version GP.EXE displays an error when transferring a file to the XP640 when running in the NTVDM on Windows NT and later (32 bit).

For the Linux platforms you will need to install the librhtv.so.2.0.3 or librhtv.so.2.2.3 library included in the .zip file if it is not already installed. The libstdc++.so.6 and libgpm.so.1 libraries may also need installing depending on the Linux distribution.

Screenshots

GP.EXE on FreeDOS

GP32.EXE on Windows 7

Supported programmer firmware versions

The application has been tested against the following firmware versions.

Firmware
1.3,1.4,1.6,1.8,2.1,2.3,2.43,2.5,3.1,3.3

Issues

1) It is possible to use a commonly available DB9F (or DB25F) to DB25M null modem cable.

The minimum cable connections required are shown below if not using a ready-made cable.

Programmer end PC serial port end
25 way male 25 way female
   
pin 1 PG connect to cable shield n/c
pin 2 TXD pin 3 RXD
pin 3 RXD pin 2 TXD
pin 4 RTS pin 5 CTS
pin 5 CTS pin 4 RTS
pin 7 SG pin 7 SG

or

Programmer end PC serial port end
25 way male 9 way female
   
pin 1 PG connect to cable shield n/c
pin 2 TXD pin 2 RXD
pin 3 RXD pin 3 TXD
pin 4 RTS pin 8 CTS
pin 5 CTS pin 7 RTS
pin 7 SG pin 5 SG

Note

a) RTS/CTS handshaking is required for file transfer to the XP640 and the "HANDSHAKE" option must be set to "Y" using the "PORT" key and "WORD FMT" menu on the XP640 keyboard. GPView will check that it is enabled on the XP640 and, if not, will display an error.

Using a USB-Serial cable

It should be possible to use a USB-Serial cable to connect the PC to the programmer when using GP32.EXE or gp.
I have performed some tests with GPView using such devices and the results can be seen here.

Latest release

Download the zip file containing executables for MS-DOS, WIN32 console and Linux (32 & 64 bit).

Please note that only the Intel Hex, Exorcisor, Tek Hex and MOS Tech formats are currently supported for file transfer and the serial format must be set to one of those using the "PORT" key and "SERIAL FMT" menu on the XP640 keyboard, then select the "SET PARAMETER" menu and press ENTER to save.

gp1.7.1.zip 18/04/24

Alternatively, GPView for MS-DOS can be run from the BBBD iso without installation.

Known GPView problems/issues

File transfer to the XP640 at 19200 baud may fail using the Windows version of GPView with modern serial cards because of bugs in the driver. The XP640 must use RTS/CTS handshaking for file transfer because it does not have a UART and decodes the serial data in software. The low speed of the Z80 processor means that, effectively, it only has a one character receive buffer and the RTS/CTS handshaking tells the PC not to send any more data until the XP640 is ready to receive it. Modern serial cards can transmit at speeds of 15Mbps using transmit buffers which can hold up to 256 characters so unless a Windows driver is tested with a slow device, such as the XP640, GPView can not be guaranteed to work with that driver when sending a file. I have personally found that the ASIX Windows 7 driver for the Moschip MCS9900 does not work for file transfer but the StarTech Windows 7 driver for the PEX2S952 (OX16PCIe952) works correctly. Currently, when GPView is run on 32bit Windows or MS-DOS with certain firmware revisions, file transfer to the XP640 at 19200 baud is disabled and a message will pop up stating that the baud rate must be reduced to 9600 baud.

Resizing a Display or Edit window is very slow. This is because the TurboVision library causes a window update whenever the number of lines or columns in the window changes and the method used to get the contents of memory which must then be displayed cannot keep up.

Since only Intel Hex, Exorcisor, Tek Hex and MOS Tech formats are currently supported for file transfer if you wish to work with files in another format I recommend using the program SRecord to convert them available from here.

If the STOP key is pressed while in remote mode you should select "Disconnect" in GPView and then, after the REMOTE key is pressed, select "Connect".

GPView currently detects firmware version 1.6 & 1.8 as 2.1 ,2.43 as 2.5 and 3.3 as 3.1, this is because the differences are currently not detectable.

Known XP640 issues

File transfer to the XP640 using the Exorcisor format is broken in firmware version 2.5 and you should use a different transfer format with this version of firmware.

The XP640 firmware does not ensure that the format of its configuration data is compatible between revisions. If firmware is changed, the settings will need to be checked.

The XP640 firmware does not test scratchpad or program memory when initially powered on. If the firmware does not run correctly or a memory problem is suspected I would suggest trying the current version of xptest firmware found here.

home contact