Advanced Features

TCP/IP Logging of Events

This feature allows you to configure the HP-97 emulator so that it sends certain events to a named TCP server and port destination. With this feature, you can use the emulator to initiate remote events and to send its output to a remote display handling script or program.

A sample log server application is provided so that you can test this feature (LogHostServer.exe). This is described below.

Configuring HP-97 Emulator to Send Events

This requires the creation of a couple of registry entries.

1. Open REGEDIT (Start->Run, type "regedit")
2. Navigate to the HKEY_Current_User\Software\Coderivet\HP Emulator registry "folder"
3. Right-click on the "HP Emulator" folder and select New->String Value
4. Enter "loghostname" and press enter.
5. double-click on the new string value name to open it.
6. Fill-in the name of your server. Use "localhost" if you want to use the test server program.

Repeat the above steps for the "loghostport" entry (use "13000" if you want to use the test server program).


Starting the Test LogHostServer.exe Program

You will find the LogHostServer.exe program in the HPEmulator's program files directory. If you installed the emulator on the default drive and location, this location will be:
C:\Program Files\Coderivet\HP97Emulator\LogHostServer.exe.

Start the program by double-clicking in file explorer, or enter the full path name on the Start->Run dialog.

Adjusting the TCP port

The LogHostServer program is pre-configured for port 13000 on localhost. If you need to change this to prevent a port conflict, you can edit the LogHostServer.exe.config file using notepad or your text editor of choice. Make sure to adjust the registry entry ("loghostport") for the emulator to match your new port value.

Testing the Communications

1. Start the LogHostServer program.
2. Start the HP-97 Emulator

Note: If you reset the HP-97 emulator (using the on/off switch) you can force it to re-connect to the LogHostSerer on the next event.

3. Press buttons, load a program, type "PRINT x", you'll notice that the log server receives events and data from the emulator in a specific format. (see below). When programs are loaded and run, user inputs and program "PRINT x" commands are sent as events (events and data are described below).


Current Data and Message Types

The syntax is straightforward. The event name, followed by a colon, followed by the data. The data is ASCII format. If you send a program listing by selecting print_PRGM on the calculator, you'll note certain unicode characters in the listing are not translated to ASCII the same way.

button:[button name]
print:[printed data as it appears on tape]
program:[name of program card currently loaded]

Final Notes

The emulator tcp communications are designed so that a failed connection on any attempt to send an event will cause the emulator to bypass subsequent connection attempts until it is re-started, using either the on/off switch, or re-starting the emulator program. This allows you to run the emulator without slowing it down, if the log host server is not running.