diff --git a/ReadMe.txt b/ReadMe.txt index 2cd55cb..2330315 100644 --- a/ReadMe.txt +++ b/ReadMe.txt @@ -54,8 +54,9 @@ NOT WORKING YET CHANGES -Version 1.7 (2019-08-XX) +Version 1.7 (2019-11-27) +- Updated source code from Eric Rechlin's Emu48 version 1.61+ that was merged from Christoph Gießelink's Emu48 version 1.62. - Allow to take a screenshot of the fullscreen including the skin. - Add the KML Icon if present in the navigation menu header (only support PNG or 32bits BMP in the ICO file). - Add an optional overlapping LCD part stuck to the screen when swiping the 2 calc parts (Experimental). diff --git a/app/src/main/assets/Emu48.htm b/app/src/main/assets/Emu48.htm index 2ed3124..241bc43 100644 --- a/app/src/main/assets/Emu48.htm +++ b/app/src/main/assets/Emu48.htm @@ -87,28 +87,32 @@ h3 { color:red; font-size:1.1em; }

1. General

-

Emu48 is an emulator for the Hewlett Packard HP38G, HP39G, - HP40G, HP48SX, HP48GX and HP49G calculator hardware. These calculators - are based on the 1LT8 Clarke (HP48SX) and on the Yorke chip.

+

Emu48 is an + emulator for the Hewlett Packard HP38G, HP39G, HP40G, HP48SX, HP48GX + and HP49G calculator hardware. These calculators are based on the + 1LT8 Clarke (HP48SX) and on the Yorke chip.

2. Acknowledgements

First of all a big thank to Sébastien Carlier for publishing Emu48 v1.0 under the GPL. Without this decision newer versions of the emulator wouldn't have been possible or ports to other similar calculators wouldn't have been made. Also a big thank to Jean-Yves Avenard for his technical assistance in the beginning. Lode Vandevenne - spend the PNG image decoder and finally I want to thank all the + spent the PNG image decoder and finally I want to thank all the unnamed authors for publishing material about these calculators.

3. ROM Images

-

Emu48 needs an image of a calculator ROM to be able to run. ROM - images are valid in a packed (even address lower nibble, odd address - higher nibble) or unpacked (one nibble per byte with even address first) +

Emu48 needs a ROM + image for each calculator model you want to emulate. ROM images + are valid in a packed (even address lower nibble, odd address higher + nibble) or unpacked (one nibble per byte with even address first) form.

Since fall 2000 the emulator ROM's for the HP38, 39, 40, 48 and 49 are freely available on different Internet sites. Because there's no license for the distribution of the ROM images, they aren't included - in the Emu48 package. You can still use the classic way extracting - them from your own calculator. But in mostly all cases you have to - convert the ROM files into the Emu48 ROM format.

+ in the Emu48 package. Since accepting packed ROM images, in most cases + converting the given ROM format (which is regulary a packed ROM image) + into the native Emu48 ROM format is not necessary any more. You can + still use the classic way extracting them from your own calculator. +

If you want other great scripts, visit Rechlin's great HP archive

-

And if you are interested in writing new scripts, get the KML 2.0 +

If you are interested in writing new scripts, get the KML 2.0 documentation from the authors Emu48 page.

-

Once you have selected a script, press OK to start the emulator. In - most cases, when Emu48 crash after pressing the OK button, you are using - an invalid ROM image. While it's running, you can use the View/Change KML - Script... command to change the visual aspect of Emu48.

+

Having selected a script, press OK to start the emulator. In most + cases, when Emu48 crash after pressing the OK button, you are using + an invalid ROM image. While it's running, you can use the + "View/Change KML Script..." command to + change the visual aspect of Emu48.

6. Command Line

The command line syntax is "Emu48 [E48file [Port2file]]". - The first parameter sets the filename for the emulation data - independent from the "LastDocument" setting, the second - parameter the Port2 file. You're not able to set a Port 2 file without - setting the emulation data file. The arguments are optional.

+ The first parameter sets the filename of the emulation data + independent from the "LastDocument" setting, normally + reponsible for opening the last used state file. The second parameter + the Port2 file. You're not able to set a Port 2 file without setting + the emulation data file. The arguments are optional.

7. Virtual Keyboard

There are two ways to use the virtual keyboard on the emulated calculator:

@@ -239,38 +245,41 @@ h3 { color:red; font-size:1.1em; }
  • by PC keyboard
  • - The easiest way to use the emulated calculator is using the mouse. The KML - script define buttons with an area where mouse input is active. The mouse - cursor change from an arrow to a hand cursor in these areas. The state of - the virtual key follow the state of your left mouse button. When the mouse - cursor leaves the virtual key area the virtual button automatically - release. In some cases you need to press more than one key on the - emulator. For these cases press the virtual key with the right mouse - button. When you release the mouse button or leave the area of the virtual - key, the key is still hold. To release all hold virtual buttons, just use - the left mouse button again. A single release of a hold virtual key isn't - possible.

    + The easiest way to use the emulated calculator is by using the mouse. The + KML script defines buttons with an area where mouse clicks take effect. + The active area is indicated by changing the cursor from an arrow to a + hand cursor. Pressing the left mouse button over an active area will + press the virtual button. When the mouse cursor leaves the virtual key + area with still the left mouse button pressed, the virtual button is + automatically released. The visual aspect of a pressed or released + virtual button is defined in the KML script. In some cases you need to + press more than one key on the emulator. For these cases press the + virtual key with the right mouse button. When you release the mouse + button or leave the area of the virtual key, the key is still held. + To release all held virtual buttons, just use the left mouse button + again. A single release of a hold virtual key isn't possible.

    Another convenient way is using the PC keyboard. The KML script language - support a large variety of commands to implement this feature. So keyboard - usage depends on your used KML script and not on the emulator. Because of - this it's impossible to say what's happen when you press a key on the PC - keyboard. For further details read the KML 2.0 documentation mentioned - before please.

    + supports a large variety of commands to implement this feature. So + keyboard usage mostly depends on your used KML script and not on the + emulator. Because of this it's impossible to say what's happen when you + press a key on the PC keyboard. Some Windows specific accelerator keys + like F10 cannot be overloaded by the KML script. For further details + read the KML 2.0 documentation mentioned before please.

    8. File Menu

    8.1 New...

    -

    Creates a new emulation session. You're asked for a new KML script - where you can select the calculator type and skin to emulate.

    +

    Creates a new emulation session. You're asked for a KML script where + you can select the calculator type and skin to emulate.

    8.2 Open...

    -

    Opens an existing emulation session. The emulation continues at the - same position where the loaded session was aborted. Loading emulation +

    Opens a previously saved emulation session. The emulation continues + at the same position where the session was aborted. Loading emulation sessions made with a different ROM revision may destroy the memory content or may cause other unpredictable results.

    8.3 Save

    -

    Saves the current running session with the actual name.

    +

    Saves the current session with the actual name.

    8.4 Save As...

    -

    Saves the current running session with a new name. You're also get in - this dialog when you Exit a new session without a state file name.

    +

    Saves the current session with a new name. You're also get this + dialog when you Exit a new session without a state file name.

    8.5 Close

    Closes the current session without closing the emulator.

    8.6 Settings

    @@ -294,10 +303,10 @@ h3 { color:red; font-size:1.1em; } mouse is moved over the emulator window, the emulator is getting the focus and popping up into foreground.

  • Single Instance -

    When this option is checked, the program is only allowed to run in - a single instance. If another running instance is detected, the detected +

    When this option is checked, only one instance of the emulator can + be started. If another running instance is detected, the detected instance is set into foreground as active window and get a request to - change his state file to the given one by the current instance. Finally + change his state file to the given one by the current instance. Then the current instance is terminated.

  • Automatically Save Files

    When this option is checked, the current state file will automatically @@ -305,14 +314,15 @@ h3 { color:red; font-size:1.1em; } emulator program.

  • Automatically Save Files On Exit

    When this option is checked, the current state file will be saved - automatically at the end when the emulator program is closed.

  • + automatically when the emulator program is closed.

  • Show Load Object Warning

    When this option is checked, you'll get a warning message box when you try to load an object with the Load Object... menu command. If this option is unchecked, the warning will be skipped.

  • Always Show KML Compilation Result

    When this option is checked, you see the results of the KML - (Keyboard Macro Language) interpreter at every KML script load.

  • + (Keyboard Mapping Language) interpreter at every KML script load. +

    8.6.1.2 Section Style

    8.6.3 Settings Peripheral

    8.6.3.1 Section Sound

    -

    A new implementation of the sound engine made ROM patches for sound - output obsolete. The new sound engine emulates the behavior of the beeper - output ports and only work in connection with a sound card. Using the - internal PC speaker isn't possible any more. The old beeper method with a - ROM patch is still working but deprecated, it's strongly recommended to - remove all beep patches from your current KML scripts to enable the new - sound engine. The support of the old sound implementation by a ROM patch - maybe removed in later versions of the emulator and remaining beep - patches will corrupt the ROM with an illegal opcode then. +

    A new implementation of the sound engine made ROM patches for sound + output obsolete. The new sound engine emulates the behaviour of the + beeper output ports and only work in connection with a sound card. + Using the legacy PC speaker mode isn't possible any more. The old + beeper method with a ROM patch is still working but deprecated, it's + strongly recommended to remove all beep patches from your current KML + scripts to enable the new sound engine. The support of the old sound + implementation by a ROM patch maybe removed in later versions of the + emulator and remaining beep patches will corrupt the ROM with an + illegal opcode then. Actually the program informs you when + detecting ROM beep patches by opening the "KML Script Compilation + Result" dialog. To prevent this, remove the ROM beep patches + from the KML script.

    -

    - For the sound generation the calculator must know his own CPU strobe +

    For the sound generation the calculator must know his own CPU strobe frequency. On the real calculator the speed depends on various settings like component tolerances, actual temperature, humidity and other - variables. The resulting speed is measured by the calculator firmware + variables. The actual speed is measured by the calculator firmware at a cold- or at a warmstart and stored in the =CSPEED variable. The content of this calculator variable has direct influence on the resulting frequency and duration. On the emulator the HP48SX CPU @@ -414,33 +427,30 @@ h3 { color:red; font-size:1.1em; } frequency registry content has been changed since the last measurement, the =CSPEED variable of this session file may contain a wrong frequency value. You easily may discover this by measuring - the real duration of a 10s beep. Is the difference to 10s less - than 1s everything is ok, if not, you should perform a - warmstart of the calculator in this - session file. Alternatively you may execute a - Reset Calculator. This recalls the measuring - routine and save the result in the speed variable. Both restart - variants purge the stack content! + the real duration of a 10s beep. A deviance less than 1s is ok, + otherwise you should perform a warmstart + of the calculator in this session file. Alternatively you may + execute a Reset Calculator. This recalls the + measuring routine and save the result in the speed variable. Both + restart variants purge the stack content!

    8.6.3.2 Section Infrared Printer

    -

    The emulator has the ability to print data to a HP82240A/B printerSimulator - simulation. The data transfer to the printerSimulator simulator is done over UDP. +

    The emulator has the ability to print data to a HP82240A/B printer + simulation. The data transfer to the printer simulator is done over UDP. In this section you can the define the IPv4 address and the port the - printerSimulator simulator is listening. A suitable HP82240B printerSimulator simulation can + printer simulator is listening. A suitable HP82240B printer simulation can be found here.

    8.6.3.3 Section Serial Ports