Posts: 355
Threads: 67
Joined: Nov 2005
I'm proud to announce a new emulator for the HP-71B calculator "Emu71 for Windows" (Emu71/Win) on my web page at http://hp.giesselink.com. The emulation core is independent from Jean-Francois Garnier's Emu71 (Emu71/DOS), the HPIL IO-processor simulation is a ported version base on the IO-processor simulation of Emu71/DOS. A big thank to Jean-Francois allowing me to use his source code.
Emu71/Win base on the sources of Emu28 and so on the source code base introduced with Emu48. So Emu71/Win inherited all advantages and also the disadvantages of the Emu48 family emulators.
Main differences to Emu71/DOS
- pure Win32 program / sources could be compiled for pure x64 program
- skins for different appearance (two included)
- multi instance / multi session ability, each session is saved in an own document
- slower than Emu71/DOS but of course a lot faster than the real calculator at calculations
- simulated graphic display with possibilty of contrast, blinking and row driver programming, but limited to the regular 22 characters
- display output is much slower than Emu71/DOS because scrolling and other relevant display output timings are controlled by the calculator firmware and so have the same speed than the original calculator
- exact simulation of the original memory layout (16KB build with 16*1KB chips)
- no limitations in RAM / ROM configuration
- diagnostic ROM works
- allowing multiple HP 82401A HP-IL Interface modules (HP 82402A Dual HP-IL Interface simulation, but not limited to only two interfaces)
- no integration of HP-IL devices, all devices must be connected over Virtual HP-IL (TCP/IP)
Hope you will enjoy this new emulator.
Christoph Giesselink, July 2011
Posts: 1,545
Threads: 168
Joined: Jul 2005
Dumb question #1: The older 71 emulator expects the rom to be in a .bin format, rom71.bin.
The new windows script is looking for file HP71B.ROM
Same format? Different?
I've probably missed where this is explained, but it seems different than the DOS version?
Posts: 355
Threads: 67
Joined: Nov 2005
Quote:
Dumb question #1: The older 71 emulator expects the rom to be in a .bin format, rom71.bin.
The new windows script is looking for file HP71B.ROM
Same format? Different?
I've probably missed where this is explained, but it seems different than the DOS version?
There's a short description about the ROM image format at http://hp.giesselink.com/Emu71/EMU71.HTM#s3.
Emu71/Win accept two formats: packed and unpacked images, so the images from Emu71/DOS are ok. Simple rename it to HP71B.ROM at put it into the Emu71/Win installation directory.
Christoph
Posts: 536
Threads: 56
Joined: Jul 2005
Awesome!
at last a 32 bit version! Also, i compiled the code and it works.
i'm going to have to have a hack about with this.
thanks very much all those involved.
-- hugh.
Posts: 1,619
Threads: 147
Joined: May 2006
Quote:
Main differences to Emu71/DOS
Thanks!
Quote:
slower than Emu71/DOS but of course a lot faster than the real calculator at calculations
Why?
Posts: 355
Threads: 67
Joined: Nov 2005
Quote:
slower than Emu71/DOS but of course a lot faster than the real calculator at calculations
Why?
The Saturn CPU core implementation of Emu71/DOS is completely written in 86 assembler and highly optimized to run on old and slow DOS machines, whereas the Saturn CPU core of Emu71/Win is written in C highly optimized to simulate the Saturn CPU with all it's hardware bugs as realistic as possible.
Christoph
Posts: 2,247
Threads: 200
Joined: Jun 2005
Christopher,
I cannot say thank you enough times. Running the old EMU71 has become complicated with Windows 7. I had to resort to virtual machines running Window XP. Your Windows version is a dream and I love it!!!!
Namir
Posts: 2,247
Threads: 200
Joined: Jun 2005
I was able to install the MATH and JPCROMX ROM modules in the 71B emulator. Your software is awesome!!!
:-)
Namir
Posts: 1,830
Threads: 113
Joined: Aug 2005
Whoo hoo! I figured you might be up to something like that! Does it talk to the PIL-Box?
Posts: 1,830
Threads: 113
Joined: Aug 2005
Yes, it does work with the PIL-Box, using Christoph's HP-IL over TCP/IP. This an instant hit in my apartment!
Posts: 412
Threads: 40
Joined: Mar 2006
I'm very happy that Christoph released this Emu71 for Windows version. I regularly received requests to port my Emu71/DOS to Windows but was not able to do it due to 1) lack of knowledge on Windows GUI development 2) lack of time.
As usual with Christoph's emulators, the simulation is almost perfect and much closer to the original than Emu71/DOS. When I started Emu71 in 1995, my PC was using a 386 CPU, and my first targets were emulation efficiency to get a speed improvement vs the original and support for large memory modules, to have a powerful Emu71 environment so I didn't try to reproduce every low-level details especially for display/keyboard management and original memory layout.
Jean-Francois
Posts: 114
Threads: 18
Joined: Jan 2011
Christoph, is there ready QWERTY kmi keyboard mapping file? I see only QWERTZ files.
[EDIT] Actually, they seems to be QWERTY, but i have problems with keybindings on my notebook. No way to differ + and = keys, misplaced braces etc. Where can I find info on editing KML keyboard mappings, especially SHIFTED keys?
Edited: 20 July 2011, 5:59 a.m.
Posts: 355
Threads: 67
Joined: Nov 2005
For those which have a QWERTY keyboard, the sequence
Scancode 89 # Y
Map 89 106
End
Scancode 90 # Z
Map 90 301
End
in the file KEYB71.KMI must be changed to
Scancode 89 # Y
Map 89 301
End
Scancode 90 # Z
Map 90 106
End
A full description of the KML language script is available at http://hp.giesselink.com/Emu48/KML20R15.ZIP.
Christoph
Posts: 114
Threads: 18
Joined: Jan 2011
Cristoph, actually
Scancode 89 # Y
Map 89 106
End
Scancode 90 # Z
Map 90 301
End
are CORRECT for QWERTY, no need to change them. But braces (including curly), + and = keys are misplaced.
Thanks for link to KML docs.
Posts: 858
Threads: 80
Joined: Feb 2009
Congratulation Christoph!
All Saturn-based calculaters I know are now covered by your emulators. Reason to open a bottle!
Quote:
Hope you will enjoy this new emulator.
Yes I do enjoy it like all the other emulators (not simulations) too. As your HP71 comes with virtual HPIL I hope that simulated IL perpherals will show up some time, like HP2225B, Video Interface, and more.
Currently I try to do a 7470 HPGL plotter in ooREXX: virtual HPIL done, HPIL interface almost done (listener works), display of graphic pending. For testing my HPIL interface I would need (in addition to Christoph's HP71) an HP41 with virtual HPIL. Alas with no knowledge of C I am not able to modifiy Nonpareil.
Once more thank you.
Ciao.....Mike
Posts: 114
Threads: 18
Joined: Jan 2011
Christoph, please consult.
If I write
Scancode 49
IfFlag 1
Map 49 403
Map 49 311
Else
Map 49 311
End
End
KMI compiler says:
63: Too many parameters for IfFlag (1 expected).
Fatal Error at line 63.
Documentation says:
IfFlag INTEGER
<COMMANDS>
Else
<COMMANDS>
End
So, should I use some delimiter for COMMANDS or only one command is actually allowed? I have no errors reported, if only one command is used.
Edited: 20 July 2011, 9:04 a.m.
Posts: 145
Threads: 70
Joined: Jul 2011
Who could send me the roms (2CDCCCC). I do not have the "71B" to extract the ROMs.
thanks
Posts: 858
Threads: 80
Joined: Feb 2009
Have a look at JFG's site.
Hope this helps.
Ciao.....Mike
Posts: 1,830
Threads: 113
Joined: Aug 2005
Maybe this would work?
Scancode 49
IfFlag 1
Map 49 403
End
Map 49 311
End
Posts: 1,545
Threads: 168
Joined: Jul 2005
I install the windows version of Emu71 into the default folder structure it suggests.
Before running the emulator, I copy ROM71.BIN to the folder that Emu71 was just installed to and rename it to HP71B.ROM.
At that point, I double-click Emu71 and it opens a dialog box asking me to choose my KML script. It defaults to Christoph's Real HP71B for 1024x768 and the Emu71 directory location it shows is the one it just installed Emu71 into.
When I click OK, I get the following result:
Title: Christoph's Real HP71B for 1024x768
Author: Christoph Giesselink
Hardware Platform: Saturn
Calculator Model : T
Cannot open Rom HP71B.ROM.
Bitmap REAL71BL.BMP loaded.
Debug Off
This KML Script doesn't specify the ROM to use, or the ROM could not be loaded.
Press Cancel to Abort.
Thoughts?
By the way, even though I renamed the ROM71.BIN file to HP71B.ROM, Windows still shows the file type as a VLC Media File (.bin).
So, it thinks it is a movie file I think, but knows that it is a binary. Why would that matter to Emu71?
Edited: 20 July 2011, 10:34 a.m.
Posts: 114
Threads: 18
Joined: Jan 2011
It would not help for
Scancode 49
IfFlag 1
Map 49 403
Map 49 117
Else
Map 49 118
End
End
The problem was in caching (?) KMI files. I redefined file name in KML file, everything is OK now. many COMMANDS work, but why and who cached old KMI file is out of my understanding. I think it is some problem with Windows 7 security settings. I am not familiar with this OS, so it is my fault only. Waiting for Linux version!
I think i'll get suitable keymap in half an hour.
Posts: 2,247
Threads: 200
Joined: Jun 2005
Christoph,
If I have an HP-71B source code listing in a Windows text files. How can the emulator read that file?
Namir
Posts: 355
Threads: 67
Joined: Nov 2005
I don't know what's really happen, but I think you created something like HP71B.ROM.BIN.
Windows with default settings normally hide the extention of a filename. Renaming files in such a configuration may cause unpredictable results.
Sorry I don't know the original English text, so I use translations of my German version
- Open the Windows-Explorer
- Enable the menu if neccessary (Win Vista + 7)
- goto "Extras" "Folder Options..."
- press tab "View"
- in "Extended settings" disable checkbox "Hide extentions at known file types"
- then press "ok"
Now you should see all file names with their real extention.
Christoph
Posts: 429
Threads: 31
Joined: Jul 2011
I'm sorry I'm not able to give you a solution but I can provide the following: I installed the package on two different machines under XP each, one EeePC and a desktop PC. On the netbook, everything works flawlessly, math ROM included. On the PC I get the same result as you do. On both machines I can see all file extensions.
EDIT: I now installed it a second time on the desktop PC, copied the bin files in the folder and now renamed the 71 ROM by copying the string from the post above: HP71B.ROM Before I had typed it myself. What can I say - it now works!
Edited: 20 July 2011, 11:28 a.m.
Posts: 355
Threads: 67
Joined: Nov 2005
Quote:
If I have an HP-71B source code listing in a Windows text files. How can the emulator read that file?
The only way is using the keyboard macro recorder in "Tools/Macro/Play...".
Therefore you have to convert a Windows text file into keyboard macro file first. Therefore use the command line tool "ASC71MAC.EXE" delivered with the installer version or available as separate tool. But the "Keyboard Macro Play" process is very very slow, and sometimes on some PC hardware Emu71/Win misses keystrokes, especially when a HPIL module is installed.
A more convenient way I suggest for larger files, import them as usual in Emu71/DOS and save the file into a floppy disk LIF image file. Then load this file with the combination of Emu71/Win and ILPer to the memory of Emu71/Win.
Another way inserting all programs saved in an independent port of Emu71/DOS is including the Emu71/DOS port file into Emu71:
Therefore:
- shut off the emulated calculator
- call "Edit/Port Configuration..."
- "Add"
- Module Type: RAM, Size: Datafile
- enter the filename of the independent port file
- press "Apply"
- in the case your selected file is an independent port file, you see it in the window above
- finally press "OK"
The difference to a ROM file is, that you really make a copy of the data in the emulator RAM, and not only a link to the original data file.
Christoph
Posts: 1,545
Threads: 168
Joined: Jul 2005
Thank you, that fixed it.
The file was a .ROM.BIN
Posts: 1,216
Threads: 75
Joined: Jun 2011
Hi,
I've made special KML and KMI files for this new Emu71B (so far only for the 1024x768 layout):
In the KML file I've included code for all shifted functions (as I've done it with my HP-50g emulator 2 weeks ago), so now you can directly access all shifted (yellow and blue) functions by clicking on their labels.
If you don't like this for the blue functions (because you have to click quite exactly on the lower half of the button), then just remove the first block of "Button 1xxx" (with a number higher than 1000) upto "Button 101".
The KMI file I've made is for US keyboards, and I've added a few special key combinations (just look into the file to see them).
One change I've made is that I have swapped the 2 following keys (which I believe is more comfortable):
the Shift-button is yellow [f] and the Ctrl-button is blue [g]
There are still 2 keys (~ and \) on US-keyboards which have no corresponding keys on the HP71B, so I've commented out these 2 keys (the are at the end of the KMI file) - make your own shortcuts for them if you want.
Here's the link for this file:
http://www.spaadyshare.net/547tgz0or8h1/HP71B-US.zip
Franz
PS, I forgot to say: many thanks to Christoph for this fantastic Emu71 program - this is really a great gift for all emulator fans like me! :-)
Edited: 20 July 2011, 1:56 p.m.
Posts: 1,830
Threads: 113
Joined: Aug 2005
Hi, Namir.
I have an extremely geeky way to get files onto my 71B using my LIFlab software. You need Perl for Windows, such as the Active Perl Community Edition Then you can grab my LIFlab software here.
This software is a bit rough, but the following process will get a 71B BASIC program in a DOS/Unix text file into a LIF image suitable for use with ILper and EMU71.
# First we create an empty LIF volume
hbo@quirk|501> ./lifinit.pl -v TEST.dat
# Yup, it's empty
hbo@quirk|502> ./lifdir.pl -v TEST.dat
Volume:
filename type size date/time
--------------------------------------------
0 sectors used; 2382 sectors available; 2382 sectors free
# Here is our test file - a 71B basic program in a text file
hbo@quirk|503> cat BASTEST.txt
0010 ! * Trivial 71B BASIC program for testing
0100 DISP "I'm trivial. Pleased to meet you"
0200 END
# Now we encode this file as a 71/41 TEXT file.
hbo@quirk|504> ./enc.pl BASTEST.txt >BASTEST.t71
# The lifadd.pl program requires us to give the LIF type when we add a file
# to a LIF volume. Here's how to get a list of types LIFlab supports:
hbo@quirk|505> ./lifadd.pl -T
APPT75 BASIC71 BASIC75 BASIC85 BIN71 BPROG85 DATA71 DATA85 FORTH71 KEY41
KEY71 LEX71 LEX75 pBASIC71 pBASIC85 pBIN71 pBPROG85 pDATA85 pFORTH71
PROG41 ROM41 ROM75 sBASIC71 sBIN71 sDATA sDATA71 sFORTH71 sKEY71 sLEX71
spBASIC71 spBIN71 spFORTH71 STAT41 sTEXT TEXT TEXT75 VCALC75 WALL41
# The one we want is TEXT
hbo@quirk|506> ./lifadd.pl -t TEXT -f BASTEST.t71 -v TEST.dat
Volume:
filename type size date/time
--------------------------------------------
BASTEST TEXT 256
1 sectors used; 2382 sectors available; 2381 sectors free
Now that you have your LIF image, you can get at it from a real 71B, ore EMU71 using ILper. (In the former case, you would need the PIL-box, but in the latter you wouldn't .)
Here's how the configuration of ILper would look to support EMU71:
And here's how the EMU71 tcp/ip setup should look:
Note that the IN/OUT port numbers are swapped between the two.
Finally, here's the proof of the pudding: we TRANSFORM our test program from text on the virtual drive to BASIC on EMU71 and run it:
I am totally in debt to Tony Duell and his lifutils package for Linux. He distilled knowledge of LIF from several sources into succinct and readable code. My software is a bit rough, but usable. Any bugs are no doubt my fault. That leads me to warn you to make backups of your LIF image files if they have anything in them you want to save.
Regards, Howard
|