The Emulator Chronicles

Stromasys Charon / HP 3000 Emulator

There has been a lot of interest again in the HP 3000 platform, mainly due to the Charon HPA emulator by Stromasys Virtualization Technologies. Robelle has been running on a test instance of the 3000 emulator for the last two years. From early on we knew that this project was going to be successful in producing a virtual HP3000.

I recently downloaded and tested the "Freeware" version of the emulator. Unfortunately the only hardware I had with the chipset to support Stromasys was my iMac running under VMWare Fustion (with onlly 2GB of memory and running other machines under VMWare). This was very slow.

Since I was in the market for a more powerful PC to house my RedHat/SUSE and Ubuntu development environments, under VMWare, I decided to research Intel machines that supported SSE 4.1 as required by the Stromasys Emulator.

I went to BestBuy and Staples, and viewed some models online. I needed a powerful CPU and I had to be certain that the chip had the SSE 4.1/4.2 Instruction Set Extension.

There were a few models on sale. I Googled CPU info "3.2GHz Intel Core i5-3470" and that led me to this link:

http://ark.intel.com/products/68316/

This site gives details on the specific chipset. Low and behold, it showed that the i5-3470 cpu had the necessary Instruction Set Extensions, specifically SSE4.1/4.2.

I purchased the machine on sale at Canadian Staples website for $659, ASUS Desktop, 3.2GHz Intel Core i5-3470, 10GB RAM, 2TB HDD (CM6340-CA001S) running Windows 8.

The machine arrived the next day and two hours later it was up & running,. I downloaded and installed VMWare and suddendly had an HP 3000 running on a PC in my home office.

After a bit of memory searching on how to run xhpterm and navigate NMMGR I had the 3000 on my network thru my usual connection of Qedit for Windows and Terminal Emulator.

Fast forward a couple of weeks. I'm on my way to Computer History Museum in Silicon Valley to attend a one day seminar sponsored by Stromasys to introduce us to the Charon-HPA/3000 emulator. The first topic of discussion was actually how to pronounce Charon, which phonetically ranged from "Karen" to "Sharon", but more accurately it is "Sharone".

The first topic was from Bill Driest: an introduction on why to choose emulation and Stromasys' history creating emulators for Alpha, VAX and now the HP 3000. The main points were that emulators help keep a company's investment in their software and can maintain their current application and built in business rules which can be extended by continuing to run on up to date new hardware.

Questions were encouraged by receiving a flying "slingshot" monkey for when you asked a question.

Paul Taffel was next, a long time HP3000 expert who has worked for such companies as Quest (Netbase), Vesoft (MPEX and Security/3000), Orbit (Backup Plus) and others. Paul was a great choice for Stromasys as he's been a long time systems programmer, has worked with many different companies and brings a broad range of experience.

Paul gave a detailed talk on the Freeware version of the Emulator, which was handed out by Becky Harris on a small silver thumb drive. Paul showed us, how to unpack and install the HP 3000 on a PC.

Details of the Freeware Emulator and the Production Emulator will be in my subsequent articles on the Charon HP 3000 Emulator.

Robelle Products on the Charon-HPA/3000

As you may be aware the ZELUS project, by Stromasys was announced publicly in 2010. The goal of the Zelus project was to run the unmodified MPE/iX OS and all of it's tools and applications on an standard server platform. This project was successful with the full boot of MPE/iX and execution of hardware diagnostics on an Intel core I7.

Stromasys started a Field Test phase since September 2011,of a virtual HP e3000-A400 and MPE/iX OS. We have installed and tested our products and made them available on the test virtual server. We experienced one issue early on in the proces which Stromasys had the issue fixed over a weekend. Since then we've not experienced a problem nor have we had one reported.

It is fascinating to know that this all works on an Intel box:

:run qedit.pub.robelle

Qedit/iX. Copyright Robelle Solutions Technology Inc. 1977-2008 Type ? for Help 
(Version 5.8 Expiring) Expires in 49 days
Today's Hint. To Text in a data file, use TEXT xxx,UNN (ignore sequence 
numbers).

/run suprtool.pub.robelle

SUPRTOOL/iX/Copyright Robelle Solutions Technology Inc. 1981-2011.
(Version 5.4.01 Expiring)  TUE, DEC 13, 2011,  1:19 PM  Type H for help.
Today's Hint. To print on A4 paper with your LaserJet, add 2000 to the PCL 
code in the List command.  To select the ASCII character set, add another 
1000.
>base macrpt.macsdata.sgaii,5,reader
>form sets

Database: MACRPT.MACSDATA.SGAII

                      Set       Item             Entry    Load   Entry
Sets:                 Num Type  Count  Capacity  Count    Factor Length  B/F
   OFFER-MAST         1   A     1      13007     1198     9  %   4       97
   EDP-MAST           2   A     1      145640    19941    14 %   2       156
   INIT-ORDER-FILL    3   DDX   12     1066095   50392    5  %   34      53
   INIT-UNIT-FILL     4   DDX   15     36000000  1620706  5  %   42      40
   CUST-MAST          5   A     1      11062160  5856315  53 %   2       94
   PURGE-XREF         6   DDX   8      30600000  15238014 50 %   34      60
   CUSTOMER-LETTERS   7   DDX   6      5004970   0        0  %   20      85
   CHANNELVIEW        8   DDX   6      70081308  0        0  %   26      54
   EMAIL-PREF         9   DDX   10     25000302  0        0  %   75      17
>get init-order-file

Error:  Dataset is not in the database
>get init-order-fill
>num 10
>list
>xeq
>GET INIT-ORDER-FILL (1) >OUT $NULL (0)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 1
SHIP-DOLLARS    = 5599
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100410

>GET INIT-ORDER-FILL (2) >OUT $NULL (1)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 0
SHIP-DOLLARS    = 0
SPLIT-ORDERS    = 1              SPLIT-DOLLARS   = 9598
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100413

>GET INIT-ORDER-FILL (3) >OUT $NULL (2)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 1
SHIP-DOLLARS    = 15755
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 1              CANCEL-DOLLARS  = 5298
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100414

>GET INIT-ORDER-FILL (4) >OUT $NULL (3)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 1
SHIP-DOLLARS    = 5598
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100417

>GET INIT-ORDER-FILL (5) >OUT $NULL (4)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 0
SHIP-DOLLARS    = 0
SPLIT-ORDERS    = 1              SPLIT-DOLLARS   = 23752
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100419

>GET INIT-ORDER-FILL (6) >OUT $NULL (5)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 2
SHIP-DOLLARS    = 27996
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100425

>GET INIT-ORDER-FILL (7) >OUT $NULL (6)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 0
SHIP-DOLLARS    = 0
SPLIT-ORDERS    = 1              SPLIT-DOLLARS   = 19198
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100426

>GET INIT-ORDER-FILL (8) >OUT $NULL (7)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 2
SHIP-DOLLARS    = 14198
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100427

>GET INIT-ORDER-FILL (9) >OUT $NULL (8)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 0
SHIP-DOLLARS    = 0
SPLIT-ORDERS    = 1              SPLIT-DOLLARS   = 6798
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100505

>GET INIT-ORDER-FILL (10) >OUT $NULL (9)
OFFER-NO        = D0SNAT25       COMPANY         = 01
DIVISION        = 01             SHIP-ORDERS     = 1
SHIP-DOLLARS    = 11199
SPLIT-ORDERS    = 0              SPLIT-DOLLARS   = 0
CANCEL-ORDERS   = 0              CANCEL-DOLLARS  = 0
BO-ORDERS       = 0              BO-DOLLARS      = 0
DATE-PROCESS    = 20100509


Warning:  NUMRECS exceeded; some records not processed.
IN=11, OUT=10. CPU-Sec=1. Wall-Sec=1.

>
If you have interest in trying our products on your field test machine then please let Neil Armstrong know at neil@robelle.com know and we can set up a trial for you on your test machine.