HP Page of

Christoph Giesselink

HP48SX/HP48GX/HP49G

Emu48 FAQ

The Emu48 FAQ base on questions collected by Christoph Gießelink and Carlos Marangon. There's no guarantee that the information is complete and/or correct. It's published in the hope that it will be useful, but WITHOUT ANY WARRANTY. I won't give any individual support. Please try the excellent newsgroup comp.sys.hp48 to get any other information. But remember, a newsgroup is not a support center! Read the delivered documentation first please. Second, search for your topic in the newsgroup, most of the questions are answered some weeks or month ago.

 

General

Q: Where can I find Emu48 for Windows CE?
A: You can find a ported version at http://www.leobueno.net/ or mirrored at http://www.hpcalc.org/.
For Pocket PC 2002, Windows Mobile 2003 (SE) Mobile 5.0 and Mobile 6 Classic/Professional the Emu48 for Pocket PC version is recommended. It will also work on Pocket PC 2000 devices with StrongARM CPU, but it isn't officially supported.
Q: I installed Emu48 and when I start it, Emu48 stops with the error message "Packed ROM image detected.". What's wrong?
A: Have you converted the ROM file into the Emu48 emulator format? Refer to the EMU48.TXT manual section "YOU NEED A ROM IMAGE" how to convert or to check the ROM file, please. Only "Emu48 for Pocket PC" and recent versions of "Emu48" (not "Emu48+") are accepting packed ROM images.
Q: What documents are available?
A: First you should read EMU48.TXT delivered with the Emu48 package. There's always a new version of EMU48.TXT available in the latest Emu48 Service Pack binary as well. If you want to create or customize your Emu48 front-end, you should read the KML_20.DOC file as well.
Q: What does this message mean: "This file is missing or already loaded in another instance of Emu48."
A: You maybe deleted, moved or set the "Read Only" file attribute of the "Last Document" state file, that the emulator tries to load at startup. Another possibility is that you are running several instances of Emu48 and you are trying to load the same state file in more than one instance, which cause a sharing violation.
Q: How can I change the layout of Emu48?
A: Make a bitmap for the calculator layout. The bitmap must designed around the LCD, because the LCD size is only available in four fixed sizes. The corresponding KML file describes the placement of the keys, the pressed key view and other parts. Please look at the file KML_20.DOC for further information.
Q: The keyboard is too fast, can I slow down the autorepeat of the keyboard?
A: Do you use Emu48 V1.10 or greater? Older versions have problems with slowing down the keyboard, some programs like Shell OS have still problems.
Q: The emulator display and the keyboard view is OK, but the screen stays blank or is filled with garbage. What's up?
A: Your ROM image is probably wrong. A HP38G or a HP48SX/GX ROM can be checked with the CONVERT.EXE utility, and if it says that the CRC is wrong, you should try to download your ROM again.
Q: Why every time I start Emu48 it resets memory?
A: Probably you have a wrong or corrupt ROM dump file. Please check or convert your HP38G/HP48SX/HP48GX ROM dump with the file CONVERT.EXE.
Q: How can I make a screenshot using Emu48?
A: Use Edit/Copy Screen to copy the screen data to the clipboard.
Q: Why when I save a file of 50 bytes from HP48 it becomes a file of 512KB in Emu48?
A: This file has over 512KB on a GX (less on a SX). The E48 file contents an identifier, the CPU data at program exit, the content of the RAM and the content of a 128KB port1 card. The size is more than twice as big because the data is stored in one nibble per byte (performance reasons).
Q: Is it allowed change the Emu48 layout? What is the GNU License?
A: Changing the Emu48 layout is allowed. Please read the EMU48.TXT and COPYING.TXT file shipped with the original V1.10 package or any later full package (V1.15, V1.20, V1.25, V1.30, V1.35, V1.40, V1.45).
Q: I would like holding down ctrl key on my PC keyboard corresponds to pressing alpha key on the virtual HP48GX. How could I do? How is the way in adding some lines in KML scripts?
A: This is very complex. Please read the file KML_20.DOC It's not complete, but the only available reference. You have to try the rest for yourself.
Q: Does Emu48 could talk to a HP via the serial port? I would like to use it to transfer files and to play.
A: The wired serial port is fully supported since Emu48 V1.03 (SP3) except the non standard baudrates 1920, 3840, 7680 and 15360 baud. For more details look at the EMU48.TXT file shipped with the latest binary package, please.
Q: What are the newest updates and where can I get them?
A: You'll find the latest version at http://hp.giesselink.com.
Q: How can I load programs from the PC to Emu48?
A: You can do this by using the Edit/Load Object... command or with the file Drag and Drop feature. The program must be a HP binary file (begin with HPHP48- or HPHP49-) and is loaded to stack level 1. If the file isn't a binary file it's loading as a string.
Q: When I use Edit/Load Object... I always get "%%HP: T(3)A(R)F(.); \<<... What's going wrong?
A: You tried to load an ASCII file to the emulator. Emu48 can only handle binary files (begin with HPHP48- or HPHP49-) on this port. There are HP48 programs available to convert these files on the emulator.
Q: When I use Edit/Load Object... I always get "HPHP48-... What's going wrong?
A: You're probably emulating a HP49G and you tried to load a HP48 binary file. They are not compatible.
Q: Can I press more than one key at the same time?
A: Yes, use the right mouse button instead of the left one.
Q: Can I add memory cards to Emu48?
A: Yes, a 128kB memory card is always inserted in Slot1 when you create a new environment. You can attach a second card in Slot2 created by the tool MKSHARED.EXE. The tool is delivered with the original emulator package. Please look at EMU48.TXT for more details.
Q: I have a HP48G, can I use memory cards with Emu48?
A: Yes, the ROMs for the G, G+ and GX series are equal. Emu48 will always create a GX. Attention: Revision K ROMs are used only in G calculators, because this version has various bugs affecting ports.
Q: I have tried to create a RAM card with the mkshared utility for Emu48 emulating a HP48GX with a size of 4096KB, but I get the message "Warning: Invalid Card Data"?
A: This is a bug in the HP48GX firmware ROM and the message will occur on an original calculator with a 4MB memory card as well.  Because of this bug the calculator fails while testing the content of the last bank. So solutions are, accept the warning and have 31 banks only or use a 2MB memory card.
Q: Emu48 shuts off after a few seconds. What's going wrong?
A: This is a bug in Emu48 V1.0. Please use a newer Emu48 version.
Q: The display flickers very badly with some programs. Is that normal?
A: The grayscale implementation of Emu48 isn't very good. That's a problem of the emulator. You may try to enable the "Enable Virtual LCD Delay" option in the Genaral section of the Settings dialog to fix this.
Q: Are remarks possible in KML scripts?
A: Yes, use # to begin the remark text in the line.
Q: I read something about ROM beep patches?
A: Emu48 until v1.54 was not able to emulate sound output over the OUT=C CPU opcode. To get beeper support in most cases the ROM inside the =makebeep routine was patched. Since Emu48 v1.55 a ROM beep patch is obsolete and should be removed from the current KML script.
Q: Since updating Emu48 to v1.55 and removing the ROM beep patch from the KML script the output frequency and the beep duration is wrong at some calculator sessions, what happened?
A: Emu48 since v1.55 has a sound emulation over the OUT=C CPU opcode. Therefore the operating system needs an internal speed reference, which is initialized at a cold- or at a warm-start of the emulated calculator. With old versions of Emu48 this speed reference maybe not initialized properly. To initialize the session internal speed reference, perform a calculator warm-start with <ON>+<SK3> please.

 

ROM Image

Q: Where can I download the ROM files for Emu48?
A: In general all HP-ROM files are copyrighted by Hewlett Packard. But since fall 2000 HP ACO allowed the use of the HP38, 39, 40, 48, 49 ROM's even if you're not an owner of this calculator type.

HP38/39/40G: http://members.iinet.net.au/~cc roft/zipfiles/emulator.zip
HP48SX: http://www.hpcalc.org/hp48/pc/emulato rs/sxrom-j.zip
HP48GX: http://www.hpcalc.org/hp48/pc/emulato rs/gxrom-r.zip
HP49G: http://www.hpcalc.org/hp49/pc/emulators/ calc.exe

Sometimes the ROM is included in an emulator packet, sometimes the ROM is in binary format. Refer to the EMU48.TXT manual how to convert these files into the Emu48 emulator format.
Q: How can I make a ROM DUMP of the HP48 ROM?
A: There are three ways:
- the ROMDUMP (HP48 file) shipped with x48 (a Unix based emulator from Eddie C. Dost), needs a separate ASCII terminal. There's no good reason to use it any more.
- the ROMUPL (HP48 file) from Jean-Yves Avenard. It's quite the same like ROMDUMP but is easier, works well on all memory conditions and is much faster, needs a separate XMODEM terminal.
- the ROMDUMP Wizard (PC file). The easiest way to get it. The versions shipped with Emu48 V1.0 and V1.10 doesn't work or have problems with some PC's. Use the latest version please.
Q: I get the KML script error message " Packed ROM image detected.". What does this mean?
A: Older Emu48 versions and Emu48+ in general only accept unpacked ROM images. There are different conversation programs available, which are calculator model dependent, to convert ROM images to an emulator readable format.
Q: After an update to Emu48 v1.44 or Emu48 for Pocket PC v1.13 I get the KML script error message "Packed ROM image detected.", especially when I try to run a HP49G. What's wrong?
A: Since Emu48 v1.44 and Emu48 for Pocket PC v1.13 a new improved packed ROM image detection routine is used. In the past HP published some HP49G ROM images, made with a buggy build tool, which contain illegal data in a normally unused ROM section. To fix this use a new HP49G ROM image, or update your old ROM image with the UPD49ROM tool using the "-f" option.

 

HP39G / HP40G

Q: There're two "Model" arguments 'E' and 'X' in the KML script for the HP39G emulation. Both work. What's the difference?
A: The "Model" statement normally describes the hardware. The 'E' argument is for the HP39G/HP40G series, the 'X' for the HP49G calculator. The hardware of the HP49G is quite similar to the HP39G one, so you can run the HP39G operating system on the HP49G hardware, but not vice versa. The main difference is the RAM layout, the HP49 has totally 512KB, the HP39G 256KB of RAM. The HP39G has also no flash memory and an object stack, so these and other aren't possible features are disabled. It's recommended to use the 'E' argument for the HP39G and HP40G calculator emulation.
Q: How can I load an Aplet (e-Lesson) into the HP39G/HP40G?
A: There's no direct way. You have to load an Aplet over the serial port. Therefore you need two PC's with one COM port each or one PC with two free COM ports. Then you have to connect the COM ports with a Null-Modem cable. Another possibilty is the use of a virtual Null-Modem device driver like com0com.
Q: I use the computer keyboard to enter data, the HP39G/HP40G always lose some keys. What can I do?
A: That's the same problem like on the HP49G. You're writing to fast for the keyboard debounce routine of the HP39G/HP40G. There's an Aplet from Detlef Müller to adjust the debounce time or, the other possibility, is to patch the ROM (ie. by adding the "0212D:000; set =BounceTiming to 0 (internal, undocumented)" line to the BEEP.39G file).

 

HP49G

Q: I emulate a HP49G and when I press ON-A-F the self test starts instead of doing a memory reset. Why?
A: On the real calculator the F key must release earlier than the A key to start the memory reset. Emu48 release all keys more or less at the same time, in this case the A key a little bit earlier than the F key, so the self test (ON-F) starts. At the moment there's no solution to solve this problem on the emulator.
Q: I want to break the self test routine of a HP49G and ON-C doesn't work?
A: It works, press the C key a little bit longer.
Q: I use the computer keyboard to enter data, the HP49G always lose some keys. What can I do?
A: You're writing to fast for the keyboard debounce routine of the HP49G. Try to reduce the debounce time with 800 ->KEYTIME or any shorter value.
Q: After downloading a new HP49G ROM to Emu48 I always get a ROM CRC error. What's wrong?
A: You probably use a KML script with a "Patch" statement (normally BEEP.49G). This patch modifies the ROM, so the ROM CRC is wrong. Normally you can ignore this, because during the write access to the flash memory patches are disabled. To check the ROM after download you must disable all patches first. Then start the "Tests" screen with ON-D and call the "7: FullROM" item. You should get the "FROM OK" message then. Leave the "Tests" screen with ON-C, please.
Q: While downloading the ROM from Emu48 to another HP49G with the ROMUPLOAD command I get a CRC error on the receiver?
A: There are some reasons. First you may use a KML script with a "Patch" statement (normally BEEP.49G). Patches modify the ROM temporally while running, so the ROM CRC of the patched ROM bank is wrong. Remove all patches before using the ROMUPLOAD command. Second the ROM patch became permanent. This happens when the emulator isn't finished properly over the normal exit. Third some "emulator" ROM's contain wrong data in the ROM bank header section. The easiest way to fix this so far, is updating your current emulator ROM with the UPD49ROM tool using the "-f" option.

 

(c) Christoph Gießelink Last changes: 05/21/13

Return to the main page