2019-10-16: Updated to version 1.62
Signed-off-by: Gwenhael Le Moine <gwenhael.le.moine@gmail.com>
This commit is contained in:
parent
d67939112f
commit
a6d5624a8b
23 changed files with 5068 additions and 4215 deletions
39
DEBUGGER.TXT
39
DEBUGGER.TXT
|
@ -177,7 +177,30 @@ If this item is checked, interrupt handler code will be skipped. This option is
|
|||
You can also use this option if you want to quit the interrupt handler. Just check this option, press F7 for "Step Into" for stopping the debugger behind the RTI instruction, and uncheck this option again.
|
||||
|
||||
|
||||
5.) Menu Info
|
||||
5.) Menu Trace
|
||||
|
||||
- Settings...
|
||||
|
||||
This opens a dialog to configure the trace file output.
|
||||
|
||||
The "Log File:" editbox contains the log output file. A filename without the file path save the file in the emulator installation directory.
|
||||
|
||||
For "File Mode" select "New" for creating a new empty trace file or select "Append" for appending the new trace output when trace is enabled. If you chosen "Append" and the trace file don't exists, a new trace file is created.
|
||||
|
||||
The "Logging" checkboxes "Register", "MMU" and "Opcode" determine the output content of the trace file.
|
||||
|
||||
"Register" enables printing the CPU register content in front of the disassembled opcode. For some, mainly size output reasons the content of the "Write Only Registers" are not shown.
|
||||
|
||||
"MMU" enables printing the MMU register content between register and disassembly.
|
||||
|
||||
"Opcode" enables the opcode output in the disassembled and if necessary in the following lines.
|
||||
|
||||
- Enable
|
||||
|
||||
If this item is checked, the file trace is enabled. Dependent on the "File Mode" setting, a "New" empty trace file is generated or in "Append" Mode additional data is appended to the current log file. Unchecking this item stops logging and flushing the trace file.
|
||||
|
||||
|
||||
6.) Menu Info
|
||||
|
||||
- Last Instructions...
|
||||
|
||||
|
@ -192,7 +215,7 @@ This opens a small toolbox window which shows the number of CPU cycles and the c
|
|||
Some of the display registers have a different meaning on reading and writing. This dialog shows the data written to the write only I/O registers.
|
||||
|
||||
|
||||
6.) Code window
|
||||
7.) Code window
|
||||
|
||||
This windows shows you the disassembled code. The line with the current PC is marked with a "->" or "-R" between the address and the disassembly.
|
||||
|
||||
|
@ -229,14 +252,14 @@ Search for a PCO before the address shown in the first line of the Code window.
|
|||
Search for a PCO behind the address shown in the first line of the Code window.
|
||||
|
||||
|
||||
7.) Register window
|
||||
8.) Register window
|
||||
|
||||
Here you can see the actual contents of the CPU registers. The values are only updated at a program execution stop. All changed CPU registers are highlighted.
|
||||
|
||||
With the left mouse button you change the content of the register. On bit registers, like CY and Mode, the state change immediately without any request.
|
||||
|
||||
|
||||
8.) Memory window
|
||||
9.) Memory window
|
||||
|
||||
This windows shows the memory content in the selected context.
|
||||
|
||||
|
@ -330,7 +353,7 @@ The "Save Memory Data" dialog box allows saving the data of the specified Saturn
|
|||
This opens a small toolbox window showing the decompiled RPL object in the selected memory map mode at the memory address marked by the cursor. If the toolbox window is already open the content will be updated. There's a problem if you want to select an address inside the marked two addresses. The easiest way to switch the address is the use of the + and - keys changing the memory position by one nibble under the cursor.
|
||||
|
||||
|
||||
9.) Stack window
|
||||
10.) Stack window
|
||||
|
||||
The content of the hardware stack is viewed here. In "1:" is the current return address. A double click on an item shows the address content in the Code window.
|
||||
|
||||
|
@ -349,7 +372,7 @@ Pop the selected element from the stack.
|
|||
Modifies the stack content of the current selection.
|
||||
|
||||
|
||||
10.) MMU window
|
||||
11.) MMU window
|
||||
|
||||
The configuration of the memory controllers is viewed here. The viewed addresses are the first address of each module area and may differ from the given address in the CONFIG command.
|
||||
|
||||
|
@ -363,11 +386,11 @@ This example
|
|||
will config a 128KB module at address #80000 and not at the given address. So the MMU viewer will show you the address #80000.
|
||||
|
||||
|
||||
11.) Miscellaneous window
|
||||
12.) Miscellaneous window
|
||||
|
||||
The Miscellaneous window show you the internal state of the interrupt flag, the 1ms keyboard handler and the contents of the Bank Switcher latch. The Bank Switcher item is only enabled on calculators with a latch inside. You see the loaded value of the address lines A6-A0. You have to ignore the last bit (A0), because it isn't wired to the six bit latch.
|
||||
|
||||
You can change the values by pressing the left mouse button over the old content.
|
||||
|
||||
|
||||
01/09/13 (c) by Christoph Gießelink
|
||||
08/12/19 (c) by Christoph Gießelink
|
||||
|
|
|
@ -87,28 +87,32 @@ h3 { color:red; font-size:1.1em; }
|
|||
</div>
|
||||
<div id="main">
|
||||
<h1><a name=s1>1. General</a></h1>
|
||||
<p>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.</p>
|
||||
<p><a href="http://hp.giesselink.com/emu42.htm">Emu48</a> 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.</p>
|
||||
<h1><a name=s2>2. Acknowledgements</a></h1>
|
||||
<p>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.</p>
|
||||
<h1><a name=s3>3. ROM Images</a></h1>
|
||||
<p>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)
|
||||
<p>Emu48 needs a <a href="https://en.wikipedia.org/wiki/ROM_image">ROM
|
||||
image</a> 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.</p>
|
||||
<p>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.</p>
|
||||
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.
|
||||
</p>
|
||||
<ul>
|
||||
<li>HP38
|
||||
<p>To upload the ROM of your HP38G, you will need a special aplet
|
||||
|
@ -178,24 +182,24 @@ h3 { color:red; font-size:1.1em; }
|
|||
<p>To install Emu48 you may use the installer package which contain,
|
||||
among the binaries, some HP48 KML scripts or just unzip the emulator
|
||||
and the required emulator skins from archives into an empty directory.
|
||||
Finally you have to copy your ROM images into this directory and
|
||||
adjust the ROM image name to the name used in the corresponding KML
|
||||
script. When you first run Emu48, it will detect the directory in
|
||||
which you installed it, and will write the configuration to the
|
||||
registry at <i>HKCU\Software\Emu48</i>.</p>
|
||||
Finally copy your ROM images into this directory and adjust the ROM
|
||||
image name to the name used in the corresponding KML script. When you
|
||||
first run Emu48, it will detect the directory in which you installed
|
||||
it, and will write the configuration to the registry at
|
||||
<i>HKCU\Software\Emu48</i>.</p>
|
||||
<h1><a name=s5>5. How to Start</a></h1>
|
||||
<p>When Emu48 is installed and you have put valid KML scripts and the
|
||||
corresponding ROM image(s) into your Emu48 installation directory, you
|
||||
can start Emu48. You'll see a "Choose Your KML Script"
|
||||
box.</p>
|
||||
<p>KML scripts in fact define the visual aspect of Emu48, the behavior of
|
||||
the buttons, of the keyboard, ... It's a GREAT way to customize your copy
|
||||
of Emu48.</p>
|
||||
<p>Check that the path in the "Emu48 Directory" text area is
|
||||
correct. Modify it if the directory in which you installed Emu48 is not
|
||||
the directory displayed. Click the refresh button ("V") after
|
||||
modifying it to update the list box or use the ("...") button to
|
||||
start the directory browser.</p>
|
||||
<p>KML (Keyboard Mapping Language) scripts define the visual aspect
|
||||
of Emu48, the behaviour of the buttons, of the keyboard, ... It's a
|
||||
<b>great</b> way to customize your copy of Emu48.</p>
|
||||
<p>Check in this dialog that the path in the "Emu48 Directory"
|
||||
text area points to the directory in which you installed the Emu48 KML
|
||||
files. Click the refresh button ("V") after modifying the
|
||||
directory path manually to update the list box or use the
|
||||
("...") button to start a directory browser.</p>
|
||||
<p>Choose a KML script in the list box for your calculator ROM you put
|
||||
into Emu48's directory.</p>
|
||||
<p>Several HP48 scripts are included in the Emu48 archive:</p>
|
||||
|
@ -218,19 +222,21 @@ h3 { color:red; font-size:1.1em; }
|
|||
</ul>
|
||||
<p>If you want other great scripts, visit Rechlin's great HP archive
|
||||
<a href="http://www.hpcalc.org/"></a></p>
|
||||
<p>And if you are interested in writing new scripts, get the KML 2.0
|
||||
<p>If you are interested in writing new scripts, get the KML 2.0
|
||||
documentation from <a href="http://hp.giesselink.com/emu48.htm">the
|
||||
authors Emu48 page</a>.</p>
|
||||
<p>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.</p>
|
||||
<p>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
|
||||
"<a href="#ss10.1">View/Change KML Script...</a>" command to
|
||||
change the visual aspect of Emu48.</p>
|
||||
<h1><a name=s6>6. Command Line</a></h1>
|
||||
<p>The command line syntax is "<i>Emu48 [E48file [Port2file]]</i>".
|
||||
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.</p>
|
||||
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.</p>
|
||||
<h1><a name=s7>7. Virtual Keyboard</a></h1>
|
||||
<p>There are two ways to use the virtual keyboard on the emulated
|
||||
calculator:</p>
|
||||
|
@ -239,38 +245,41 @@ h3 { color:red; font-size:1.1em; }
|
|||
<li><a href="#keyboard">by PC keyboard</a></li>
|
||||
</ol>
|
||||
<p><a name=mouse></a>
|
||||
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.</p>
|
||||
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.</p>
|
||||
<p><a name=keyboard></a>
|
||||
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.</p>
|
||||
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.</p>
|
||||
<h1><a name=s8>8. File Menu</a></h1>
|
||||
<h2><a name=ss8.1>8.1 New...</a></h2>
|
||||
<p>Creates a new emulation session. You're asked for a new KML script
|
||||
where you can select the calculator type and skin to emulate.</p>
|
||||
<p>Creates a new emulation session. You're asked for a KML script where
|
||||
you can select the calculator type and skin to emulate.</p>
|
||||
<h2><a name=ss8.2>8.2 Open...</a></h2>
|
||||
<p>Opens an existing emulation session. The emulation continues at the
|
||||
same position where the loaded session was aborted. Loading emulation
|
||||
<p>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 <u>destroy</u> the memory
|
||||
content or may cause other unpredictable results.</p>
|
||||
<h2><a name=ss8.3>8.3 Save</a></h2>
|
||||
<p>Saves the current running session with the actual name.</p>
|
||||
<p>Saves the current session with the actual name.</p>
|
||||
<h2><a name=ss8.4>8.4 Save As...</a></h2>
|
||||
<p>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.</p>
|
||||
<p>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.</p>
|
||||
<h2><a name=ss8.5>8.5 Close</a></h2>
|
||||
<p>Closes the current session without closing the emulator.</p>
|
||||
<h2><a name=ss8.6>8.6 Settings</a></h2>
|
||||
|
@ -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.</p></li>
|
||||
<li><i>Single Instance</i>
|
||||
<p>When this option is checked, the program is only allowed to run in
|
||||
a single instance. If another running instance is detected, the detected
|
||||
<p>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.</p></li>
|
||||
<li><i>Automatically Save Files</i>
|
||||
<p>When this option is checked, the current state file will automatically
|
||||
|
@ -305,14 +314,15 @@ h3 { color:red; font-size:1.1em; }
|
|||
emulator program.</p></li>
|
||||
<li><i>Automatically Save Files On Exit</i>
|
||||
<p>When this option is checked, the current state file will be saved
|
||||
automatically at the end when the emulator program is closed.</p></li>
|
||||
automatically when the emulator program is closed.</p></li>
|
||||
<li><i>Show Load Object Warning</i>
|
||||
<p>When this option is checked, you'll get a warning message box when you
|
||||
try to load an object with the <i>Load Object...</i> menu command. If
|
||||
this option is unchecked, the warning will be skipped.</p></li>
|
||||
<li><i>Always Show KML Compilation Result</i>
|
||||
<p>When this option is checked, you see the results of the KML
|
||||
(Keyboard Macro Language) interpreter at every KML script load.</p></li>
|
||||
(Keyboard Mapping Language) interpreter at every KML script load.
|
||||
</p></li>
|
||||
</ul>
|
||||
<h4>8.6.1.2 Section Style</h4>
|
||||
<ul>
|
||||
|
@ -385,21 +395,24 @@ h3 { color:red; font-size:1.1em; }
|
|||
</ul>
|
||||
<h3><a name=ss8.6.3>8.6.3 Settings Peripheral</a></h3>
|
||||
<h4>8.6.3.1 Section Sound</h4>
|
||||
<p>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.
|
||||
<p>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.
|
||||
</p>
|
||||
<p>
|
||||
For the sound generation the calculator must know his own CPU strobe
|
||||
<p>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,27 +427,24 @@ 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
|
||||
<u style="color:red">warmstart</u> of the calculator in this
|
||||
session file. Alternatively you may execute a
|
||||
<a href=#ss9.6>Reset Calculator</a>. 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 <u style="color:red">warmstart</u>
|
||||
of the calculator in this session file. Alternatively you may
|
||||
execute a <a href=#ss9.6>Reset Calculator</a>. This recalls the
|
||||
measuring routine and save the result in the speed variable. Both
|
||||
restart variants purge the stack content!
|
||||
</p>
|
||||
<ul>
|
||||
<li><i>Volume</i>
|
||||
<p>The output volume can be selected with the Volume slider relative to
|
||||
the Master Volume control.
|
||||
<p>The output volume can be set with the Volume slider relative to
|
||||
the Windows Master Volume control.
|
||||
</p></li>
|
||||
<li><i>Device</i>
|
||||
<p>By default the sound device is set to "Standard Audio", but
|
||||
you can also manually choose the output device. The device name is
|
||||
somehow cut since Window Vista, but the method of reading the device
|
||||
name is used for backwards compatibility to older versions of the
|
||||
Operating System. When you change the Standard Audio device in the
|
||||
Operating System settings dialog, the internal device numbering may
|
||||
change, and so the manually selected audio device.</p></li>
|
||||
<p>By default the sound device is set to "Standard Audio",
|
||||
but you can also manually choose the output device. When you change
|
||||
the Standard Audio device in the Operating System settings dialog,
|
||||
the internal device numbering may change, and so the manually selected
|
||||
audio device.</p></li>
|
||||
</ul>
|
||||
<h4>8.6.3.2 Section Infrared Printer</h4>
|
||||
<p>The emulator has the ability to print data to a HP82240A/B printer
|
||||
|
@ -475,34 +485,34 @@ h3 { color:red; font-size:1.1em; }
|
|||
<h2><a name=ss9.3>9.3 Copy Screen</a></h2>
|
||||
<p>Copy the screen content as bitmap to the clipboard.</p>
|
||||
<h2><a name=ss9.4>9.4 Copy Stack</a></h2>
|
||||
<p>This is only valid for the HP48SX, HP48GX and the HP49G emulation.</p>
|
||||
<p>This menu item is enabled for the HP48SX, HP48GX and the HP49G
|
||||
emulation.</p>
|
||||
<p>Copy a "Real Number", "Complex Number" or
|
||||
"String" object in stack level 1 to the clipboard. On all
|
||||
other objects, the command will be ignored. This prevents sending
|
||||
binary objects to the clipboard.</p>
|
||||
<p>The decimal point (radix mark) of "Real Numbers" in the
|
||||
clipboard is equal to the calculator setting. This point maybe
|
||||
important when you try to paste the numbers into a program using the
|
||||
locale settings of the host operating system.</p>
|
||||
clipboard is equal to the calculator setting. This is important when
|
||||
you try to paste the numbers into a program using the locale settings
|
||||
of the host operating system.</p>
|
||||
<h2><a name=ss9.5>9.5 Paste Stack</a></h2>
|
||||
<p>This is only valid for the HP48SX, HP48GX and the HP49G emulation.</p>
|
||||
<p>This menu item is enabled for the HP48SX, HP48GX and the HP49G
|
||||
emulation.</p>
|
||||
<p>Paste the text field content of the clipboard to stack level 1 of
|
||||
the emulated calculator. If the clipboard content is representing a
|
||||
real number, the number will be saved as "Real Number"
|
||||
object. Is the content a complex number object, the number will be
|
||||
saved as "Complex Number" object, in all other cases as
|
||||
saved as "Complex Number" object, otherwise cases as
|
||||
"String" object.</p>
|
||||
<p>To import "Real or Complex Numbers" from the clipboard,
|
||||
the decimal point (radix mark) of the clipboard and calculator
|
||||
<u>must</u> be equal. A real or complex number is only detected in the
|
||||
case of valid real number characters in the clipboard. Especially
|
||||
heading and tailing white spaces aren't valid number characters
|
||||
also.</p>
|
||||
<p>Complex numbers must be in the form <i>(a,b)</i> when using the
|
||||
point radix mark or in the form <i>(a;b)</i> when using the comma
|
||||
radix mark. The Cartesian or algebraic form <i>a+bi</i> is not
|
||||
supported.</p>
|
||||
<h2><a name=ss9.6>9.6 Reset Calculator</a></h2>
|
||||
<p>To import "Real or Complex Numbers" from the clipboard, the
|
||||
decimal point (radix mark) of the clipboard and calculator <u>must</u>
|
||||
match. A real or complex number is only detected in the case of valid
|
||||
real number characters in the clipboard. Especially heading and tailing
|
||||
white spaces aren't valid number characters also.</p>
|
||||
<p>Complex numbers must be in the form <i>(a,b)</i> when using the point
|
||||
radix mark or in the form <i>(a;b)</i> when using the comma radix mark.
|
||||
The Cartesian or algebraic form <i>a+bi</i> is not supported.</p>
|
||||
<h2><a name=ss9.6>9.6 Reset Calculator</a></h2>
|
||||
<p>This emulates the Reset pin of the internal CPU.</p>
|
||||
<h2><a name=ss9.7>9.7 Backup</a></h2>
|
||||
<h3><a name=ss9.7.1>9.7.1 Backup Save</a></h3>
|
||||
|
@ -511,7 +521,7 @@ h3 { color:red; font-size:1.1em; }
|
|||
<h3><a name=ss9.7.2>9.7.2 Backup Restore</a></h3>
|
||||
<p>This restores a previous saved emulator status without request. If you
|
||||
changed the calculator model meanwhile, the emulator will switch back to
|
||||
the old model.</p>
|
||||
the model used in the backup.</p>
|
||||
<h3><a name=ss9.7.3>9.7.3 Backup Delete</a></h3>
|
||||
<p>This deletes the data in the backup slot.</p>
|
||||
<h1><a name=s10>10. View Menu</a></h1>
|
||||
|
@ -525,22 +535,22 @@ h3 { color:red; font-size:1.1em; }
|
|||
<p>Enter the address to disassemble in hexadecimal into the "Address
|
||||
(HEX)" field and press <Return>. With the "Next Address"
|
||||
button the next opcode is disassembled. With the "Copy Data" button
|
||||
you can copy all selected lines inside the list box to the clipboard.</p>
|
||||
you can copy all selected lines from the list box to the clipboard.</p>
|
||||
<h2><a name=ss11.2>11.2 Debugger...</a></h2>
|
||||
<p>The assembler code debugger of the emulator. For more details refer to the
|
||||
extra documentation of the debugger please.</p>
|
||||
<h2><a name=ss11.3>11.3 Macro</a></h2>
|
||||
<p>The keyboard macro recorder unit.</p>
|
||||
<h3><a name=ss11.3.1>11.3.1 Macro Record...</a></h3>
|
||||
<h3><a name=ss11.3.1>11.3.1 Macro Record...</a></h3>
|
||||
<p>Prompts a dialog to enter the macro file for the data to record. After
|
||||
accepting the confirm message, every key event is recorded into the macro
|
||||
file with it's time information.</p>
|
||||
<h3><a name=ss11.3.2>11.3.2 Macro Play...</a></h3>
|
||||
<h3><a name=ss11.3.2>11.3.2 Macro Play...</a></h3>
|
||||
<p>Prompts a dialog box to ask for the keyboard macro file to play. The
|
||||
replay starts immediately after selecting the file.</p>
|
||||
<h3><a name=ss11.3.3>11.3.3 Macro Stop</a></h3>
|
||||
replay starts immediately after opening the selected file.</p>
|
||||
<h3><a name=ss11.3.3>11.3.3 Macro Stop</a></h3>
|
||||
<p>Stops recording or replaying a keyboard macro file.</p>
|
||||
<h3><a name=ss11.3.4>11.3.4 Macro Settings...</a></h3>
|
||||
<h3><a name=ss11.3.4>11.3.4 Macro Settings...</a></h3>
|
||||
<p>Settings for the Macro Replay mode</p>
|
||||
<ul>
|
||||
<li><i>Real</i>
|
||||
|
@ -550,9 +560,9 @@ h3 { color:red; font-size:1.1em; }
|
|||
</ul>
|
||||
<h1><a name=s12>12. Help Menu</a></h1>
|
||||
<h2><a name=ss12.1>12.1 Help Topics</a></h2>
|
||||
<p>Call this document.</p>
|
||||
<p>Show this document.</p>
|
||||
<h2><a name=ss12.2>12.2 About Emu48...</a></h2>
|
||||
<p>The version, copyright and license message...</p>
|
||||
<p>Show the version, copyright and license message...</p>
|
||||
<h1><a name=s13>13. DDE Server</a></h1>
|
||||
<p>Emu48 has an integrated DDE server to transmit data from and to the HP
|
||||
stack. Because only the HP48 and HP49 have a stack, all DDE transfers
|
||||
|
@ -591,7 +601,7 @@ h3 { color:red; font-size:1.1em; }
|
|||
</table>
|
||||
<h1><a name=s14>14. License</a></h1>
|
||||
<p>Emu48 - A HP38G/39G/40G/48SX/48GX/49G Emulator<br>
|
||||
Copyright (C) 2018 Christoph Gießelink</p>
|
||||
Copyright (C) 2019 Christoph Gießelink</p>
|
||||
<p>This program is free software; you can redistribute it and/or modify it
|
||||
under the terms of the GNU General Public License as published by the Free
|
||||
Software Foundation; either version 2 of the License, or (at your option)
|
BIN
Emu48.exe
BIN
Emu48.exe
Binary file not shown.
105
KML_20.DOC
105
KML_20.DOC
|
@ -4,9 +4,9 @@
|
|||
\pard\nowidctlpar\fs24\par
|
||||
\b\fs28 Introduction\b0\par
|
||||
\fs24\par
|
||||
\pard\nowidctlpar\qj\tab This document explains in detail the KML 2.0 scripting files. KML, Keyboard Mapping Language, started as a script that Emu48 used to map keyboard buttons with buttons of the emulator, now it has become much more. KML 2.0, also used by Emu10, Emu28, Emu42 and Emu71, now makes it possible to change many advanced options of the way the emulator looks.\par
|
||||
\pard\nowidctlpar\qj\tab This document explains in detail the KML 2.0 scripting files. KML, Keyboard Mapping Language, started as a script that Emu48 used to map keyboard buttons with buttons of the emulator, now it has become much more. KML 2.0, also used by Emu28, Emu42 and Emu71, now makes it possible to change many advanced options of the way the emulator looks.\par
|
||||
\par
|
||||
The description of Emu32 has been removed from this document. The development of Emu32 has quit, the emulated calculators are now emulated by Emu42. So Emu42 now emulates two quite different hardware platforms, the High End Pioneer and Clamshell series with a dot matrix display which base on the Lewis chip and the Mid Range Pioneer series with a semi dot matrix display which base on the Sacajawea chip. To distinguish both emulation platforms I use, if necessary, Emu42 (Lewis) and Emu42 (Sacajawea) in the further text.\par
|
||||
The description of Emu10 and Emu32 has been removed from this document. The development of Emu10 and Emu32 has quit, the emulated calculators are now emulated by Emu42. So Emu42 now emulates three quite different hardware platforms, the High-End Pioneer and Clamshell series with a dot matrix display which base on the Lewis chip, the Mid-Range Pioneer series with a semi dot matrix display which base on the Sacajawea chip and the Low-End Pioneer series with a 7-digit display which base on the Bert chip. To distinguish the three emulation platforms I use, if necessary, Emu42 (Lewis), Emu42 (Sacajawea) and Emu42 (Bert) in the further text.\par
|
||||
\pard\nowidctlpar\par
|
||||
\b\fs40 Index\fs28\par
|
||||
\b0\fs24\par
|
||||
|
@ -57,10 +57,8 @@ End\par
|
|||
\f1\fs16\tab Author \ldblquote John Doe\rdblquote\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj Hardware is the emulated calculator hardware. This definition is optional on Emu48. The parameter is necessary to separate the KML scripts from each emulator. Valid entries are\par
|
||||
\pard\nowidctlpar Emu10:\par
|
||||
\f1\fs16\tab\lang1031 Hardware \ldblquote Bert\rdblquote\par
|
||||
\f0\fs24 Emu28:\par
|
||||
\f1\fs16\tab\lang1033 Hardware \ldblquote Centipede\rdblquote\par
|
||||
\pard\nowidctlpar Emu28:\par
|
||||
\f1\fs16\tab Hardware \ldblquote Centipede\rdblquote\par
|
||||
\f0\fs24 Emu42:\par
|
||||
\f1\fs16\tab Hardware \ldblquote Lewis\rdblquote\par
|
||||
\f0\fs24 Emu48:\par
|
||||
|
@ -69,18 +67,17 @@ End\par
|
|||
\f1\fs16\tab Hardware \ldblquote Saturn\rdblquote\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj\page Model is the model of your emulated calculator inside the hardware family. The model entries differ from hardware to hardware. This setting groups KML files of the same hardware and ROM together.\cf1 When switching between KML scripts, it is the first character of the parameter that is checked against the type of the current document (which was set by the Model command in the KML file with which the document was created). Valid entries are:\par
|
||||
Emu10:\par
|
||||
\pard\nowidctlpar\fi720\qj\cf0\ldblquote E\rdblquote = HP10B\par
|
||||
\ldblquote F\rdblquote = HP20S\par
|
||||
\ldblquote M\rdblquote = HP21S\par
|
||||
\pard\nowidctlpar\qj\cf1 Emu28:\par
|
||||
Emu28:\par
|
||||
\pard\nowidctlpar\fi720\qj\cf0\ldblquote P\rdblquote = HP28C\par
|
||||
\pard\nowidctlpar\qj\cf1 Emu42:\par
|
||||
\pard\nowidctlpar\fi720\qj\cf0\ldblquote I\rdblquote = HP14B\par
|
||||
\ldblquote T\rdblquote = HP17B\par
|
||||
\lang1036\ldblquote U\rdblquote = HP17BII\par
|
||||
\ldblquote Y\rdblquote = HP19BII\par
|
||||
\lang1033\ldblquote M\rdblquote = HP27S\par
|
||||
\pard\nowidctlpar\fi720\qj\cf0\lang1040\ldblquote E\rdblquote = HP10B\par
|
||||
\ldblquote I\rdblquote = HP14B\par
|
||||
\lang1031\ldblquote T\rdblquote = HP17B\par
|
||||
\ldblquote U\rdblquote = HP17BII\par
|
||||
\lang1033\ldblquote Y\rdblquote = HP19BII\par
|
||||
\ldblquote F\rdblquote = HP20S\par
|
||||
\ldblquote C\rdblquote = HP21S\par
|
||||
\ldblquote M\rdblquote = HP27S\par
|
||||
\ldblquote O\rdblquote = HP28S\par
|
||||
\ldblquote N\rdblquote = HP32SII\par
|
||||
\ldblquote D\rdblquote = HP42S\par
|
||||
|
@ -113,7 +110,7 @@ Emu42:\par
|
|||
\cf0 Example:\par
|
||||
\pard\nowidctlpar\f1\fs16\tab Patch \ldblquote BEEP.48\rdblquote\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
Bitmap is the bitmap file that will be the \ldblquote faceplate\rdblquote . All emulator versions are supporting the BMP file format, the latest versions also the Graphics Interchange Format (GIF).\par
|
||||
Bitmap is the bitmap file that will be the \ldblquote faceplate\rdblquote . All emulator versions are supporting the BMP file format, more recent versions also the Graphics Interchange Format (GIF) and the latest versions (not Pocket PC) the Portable Network Graphics (PNG). Transparency of PNG is not supported. There are some requirements on the annunciator design of Emu28, Emu42 and Emu71. By default, these emulators use transparent annunciators with a drawing color and a transparent background. Therefore, each annunciator must be drawn in monochrome with a background color pixel at top, left and a different color for the annunciator mask.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Bitmap \ldblquote mygx.bmp\rdblquote\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
|
@ -122,11 +119,11 @@ Icon is an optional icon file in the icon file format that will be showed instea
|
|||
\f1\fs16\tab Icon \ldblquote mygx.ico\rdblquote\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
Color is an optional setting to define the transparency color of the background bitmap. It takes effect only when both, title bar and menu bar are not shown. The first integer specifies the maximum tolerance between bitmap pixel and reference for color matching followed by three integers defining the RGB numbers (Red, Green and Blue) of the transparency reference color. Each RGB number range from 0 to 255. The difference between the actual pixel and the transparency color is calculated by the formula:\par
|
||||
\f2 Difference = |\'c4R| + |\'c4G| + |\'c4B| where the \'c4 are the count differences between the color parts of the pixel and the transparency\f0 reference color. The given tolerance value must be greater or equal to the calculated difference to handle this background bitmap \ul position\ulnone as transparent. Because of setting the bitmap position to transparent it\rquote s quite important that the display area in the background bitmap is not set to transparent, else the complete display area will be transparent even if the colors of the display pixel don\rquote t match with the transparency reference color.\par
|
||||
\f2 Difference = |\'c4R| + |\'c4G| + |\'c4B| where the \'c4 are the count differences between the color parts of the pixel and the transparency reference color. The given tolerance value must be greater o\f0 r equal to the calculated difference to handle this background bitmap \ul position\ulnone as transparent. Because of setting the bitmap position to transparent it\rquote s quite important that the display area in the background bitmap is not set to transparent, else the complete display area will be transparent even if the colors of the display pixel don\rquote t match with the transparency reference color.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Color 0 255 0 0\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
Scale allows to resize the background bitmap with a factor. Background bitmap dependent positions like the button definitions, the display origin and the display Zoom factor are translated to the new size. Only for the case of an external annunciator bitmap definition, the source annunciator coordinates and size information aren\rquote t translated. The first argument is the \ldblquote multiplier\rdblquote , the second the \ldblquote dividend\rdblquote of the factor.\par
|
||||
Scale allows to resize the background bitmap with a factor. Background bitmap dependent positions like the button definitions, the display origin and the display Zoom factor are translated to the new size. Only for the case of an external annunciator bitmap definition, the source annunciator coordinates and size information aren\rquote t translated. The first argument is the \ldblquote multiplier\rdblquote , the second the \ldblquote dividend\rdblquote of the factor. Caution: Scaling modifies the bitmap colors, so a transparent color setting for the background may not work anymore.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Scale 2 3\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
|
@ -152,11 +149,11 @@ Debug sets the emulator to return an information message box telling the scancod
|
|||
\lang1033 End\par
|
||||
\f0\fs24\par
|
||||
\par
|
||||
\pard\nowidctlpar\qj Offset is how far the top left corner of the bitmap will be offset in the window. Most of the time you should set this to 0 0. The first integer is the amount of pixels to the right and the second is that amount of pixels down.\par
|
||||
\pard\nowidctlpar\qj Offset is how far the top left corner of the bitmap will be offset in the window. Most of the time you should set this to 0 0. The first integer is the number of pixels to the right and the second is the number of pixels down.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Offset 0 0\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj Size sets the size of the emulator window in pixels. The first integer is the width and the second is the height. This is the width of the window, not the bitmap. It is usually smaller than the bitmap size because the bitmap normally contain the annunciator symbols.\par
|
||||
\pard\nowidctlpar\qj Size sets the size of the emulator window in pixels. The first integer is the width and the second is the height. This is the width of the window, not the bitmap. It is usually smaller than the bitmap size because the bitmap normally contains the annunciator symbols.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Size 302 485\par
|
||||
\f0\fs24\par
|
||||
|
@ -187,11 +184,11 @@ Debug sets the emulator to return an information message box telling the scancod
|
|||
End\par
|
||||
\f0\fs24\par
|
||||
\par
|
||||
\pard\nowidctlpar\qj Zoom is the size of the pixels in the LCD screen. This command is only valid for Emu28, Emu42 (Lewis), Emu48 and Emu71 and will be ignored on Emu10 and Emu42 (Sacajawea). Zoom factor two is usually used by the dot matrix LCD types emulated by Emu28, Emu42 (Lewis), Emu48 and Emu71.\par
|
||||
\pard\nowidctlpar\qj Zoom is the size of the pixels in the LCD screen. This command is only valid for Emu28, Emu42 (Lewis), Emu48 and Emu71 and will be ignored on Emu42 (Bert) and Emu42 (Sacajawea). Zoom factor two is usually used by the dot matrix LCD types emulated by Emu28, Emu42 (Lewis), Emu48 and Emu71.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Zoom 2\par
|
||||
\f0\fs24\par
|
||||
Zoomxy is a variant of the Zoom command only valid for Emu42 (Lewis) and Emu48. On Emu42 (Lewis) the High-End-Pioneer calculator series has originally a non quadratic rectangle as display pixel. The height of the pixel is normally bound to the zoom factor. But in some circumstances it\rquote s useful to adjust the height of the pixel separately from the width. The first integer is the width and the second integer is the height of the dot matrix pixel.\par
|
||||
Zoomxy is a variant of the Zoom command only valid for Emu42 (Lewis) and Emu48. On Emu42 (Lewis) the High-End-Pioneer calculator series has originally a non-quadratic rectangle as display pixel. The height of the pixel is normally bound to the zoom factor. But in some circumstances, it\rquote s useful to adjust the height of the pixel separately from the width. The first integer is the width and the second integer is the height of the dot matrix pixel.\par
|
||||
Example:\par
|
||||
\f1\fs16\tab Zoomxy 2 3\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
|
@ -199,17 +196,17 @@ Vertical is a special command only for the Pocket PC versions of Emu42 and Emu48
|
|||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Vertical 1\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj Offset sets the position of the LCD screen. The first integer is the amount of pixels right and the second is the amount of pixels down.\par
|
||||
\pard\nowidctlpar\qj Offset sets the position of the LCD screen. The first integer is the number of pixels right and the second is the number of pixels down.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Offset 20 20\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj Bitmap \super (*1) \nosupersub is an optional command for including an external annunciator bitmap instead of using the annunciators in the background bitmap.\par
|
||||
\pard\nowidctlpar\qj Bitmap is an optional command for including an external annunciator bitmap instead of using the annunciators in the background bitmap. Accept all bitmap formats like Bitmap in the Global section.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Bitmap \ldblquote mylcd.bmp\rdblquote\par
|
||||
\pard\nowidctlpar\qj\f0\fs24\par
|
||||
Color sets the color of the LCD display for different contrast settings. The first Integer is the contrast setting value. The number of setting values depends on the hardware type.\par
|
||||
\par
|
||||
Emu10:\par
|
||||
Emu42 (Bert):\par
|
||||
\pard\nowidctlpar\fi720\qj 0-7 = 0 is lightest, 7 is darkest\par
|
||||
\pard\nowidctlpar\qj\par
|
||||
Emu42 (Sacajawea), Emu71:\par
|
||||
|
@ -223,7 +220,7 @@ Emu42 (Sacajawea), Emu71:\par
|
|||
32-63 = background colors (Pixel off), 32 corresponds to 0, 33 to 1, \'85\par
|
||||
unused value at background color = use color defined by setting 0\par
|
||||
\pard\nowidctlpar\qj\par
|
||||
You should include one line for every foreground color setting. The other three integers are the RGB numbers (Red, Green, Blue). The RGB numbers range from 0 to 255. The background color number for the corresponding foreground color is always calculated by adding the first background number setting to the color value. At Emu42 for Pocket PC and Emu48 an undefined foreground color value 0 mean \ldblquote white\rdblquote else \ldblquote black\rdblquote , an undefined background color means using foreground color 0. At Emu10, Emu28, Emu42 (Sacajawea), Emu42 (Lewis) and Emu71 undefined contrast settings mean transparent mode showing the background image.\par
|
||||
You should include one line for every foreground color setting. The other three integers are the RGB numbers (Red, Green, Blue). The RGB numbers range from 0 to 255. The background color number for the corresponding foreground color is always calculated by adding the first background number setting to the color value. At Emu42 for Pocket PC and Emu48 an undefined foreground color value 0 mean \ldblquote white\rdblquote else \ldblquote black\rdblquote , an undefined background color means using foreground color 0. At Emu28, Emu42 and Emu71 undefined contrast settings mean transparent mode showing the background image.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Color 0 255 255 255\par
|
||||
\tab Color 1 220 220 220\par
|
||||
|
@ -240,13 +237,13 @@ The contrast settings outside these areas (accessible by hardware so it\rquote s
|
|||
\par
|
||||
\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs\clbrdrb\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar\cell Emulator\cell Range\cell Reset\cell\lang1031 Min\cell Max\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP10B\cell Emu10\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrt\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP10B\cell Emu42\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP14B\cell Emu42\cell 0-15\cell 6\cell 0\cell 15\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP17B\cell Emu42\cell 0-31\cell 22\cell 15\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP17BII\cell Emu42\cell 0-31\cell 22\cell 15\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP19BII\cell Emu42\cell\lang1033 0-31\cell 22\cell 16\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP20S\cell Emu10\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP21S\cell Emu10\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP20S\cell Emu42\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP21S\cell Emu42\cell 0-7\cell 4\cell 2\cell 6\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP27S\cell Emu42\cell 0-31\cell 22\cell 15\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP28C\cell Emu28\cell 0-31\cell 26\cell 20\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx1243\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx2410\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx3261\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4111\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx4962\clbrdrl\brdrw15\brdrs\clbrdrr\brdrw15\brdrs \cellx5812\pard\intbl\nowidctlpar HP28S\cell Emu42\cell 0-31\cell 22\cell 16\cell 31\cell\row\trowd\trgaph70\trleft-70\trbrdrl\brdrs\brdrw10 \trbrdrt\brdrs\brdrw10 \trbrdrr\brdrs\brdrw10 \trbrdrb\brdrs\brdrw10 \trpaddl70\trpaddr70\trpaddfl3\trpaddfr3
|
||||
|
@ -264,7 +261,7 @@ Reset\tab : contrast value after calculator reset\par
|
|||
Min\tab : min. adjustable contrast value by keyboard\par
|
||||
Max\tab : max. adjustable contrast value by keyboard\par
|
||||
\par
|
||||
\pard\nowidctlpar On Emu28 and Emu42 (Lewis) the contrast setting of the annunciators depends on the current main display contrast setting and the contrast setting of each annunciator. In normal operation the annunciator color of an on annunciator is exactly the pixel on color of the current contrast. Modifying the annunciator contrast from the default setting will choose a color below or above the current pixel on contrast setting. To avoid any misbehaviors fill the complete display color table of the emulator with reasonable values please.\par
|
||||
\pard\nowidctlpar On Emu28 and Emu42 (Lewis) the contrast setting of the annunciators depends on the current main display contrast setting and the contrast setting of each annunciator. In normal operation the annunciator color of an on annunciator is exactly the pixel on color of the current contrast. Modifying the annunciator contrast from the default setting will choose a color below or above the current pixel on contrast setting. To avoid any misbehaviors, fill the complete display color table of the emulator with reasonable values please.\par
|
||||
\par
|
||||
\pard\nowidctlpar\qj Vertical is a special command only for the Pocket PC versions of Emu42 (Lewis) and Emu48 to rotate the display by 90\u730? clock or anticlockwise to allow skins in landscape mode. Valid entries are 0 for portrait, 1 for anticlockwise and 2 for clockwise rotated landscape mode. The default setting is portrait mode.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
|
@ -272,7 +269,7 @@ Max\tab : max. adjustable contrast value by keyboard\par
|
|||
\f0\fs24\par
|
||||
\page\b\fs28 Digit\par
|
||||
\fs24\par
|
||||
\pard\nowidctlpar\qj\b0\tab This section is only valid for Emu10 and Emu42 (Sacajawea) and describes the (alpha-) numeric part of the LCD screen. Emu10 and Emu42 (Sacajawea) are using different methods for creating a numeric value.\b\par
|
||||
\pard\nowidctlpar\qj\b0\tab This section is only valid for Emu42 (Bert) and Emu42 (Sacajawea) and describes the (alpha-) numeric part of the LCD screen. Emu42 (Bert) and Emu42 (Sacajawea) are using different methods for creating a numeric value.\b\par
|
||||
\pard\nowidctlpar\b0\par
|
||||
\lang1031\f1\fs16 Digit\par
|
||||
\tab Offset INTEGER INTEGER\par
|
||||
|
@ -281,7 +278,7 @@ Max\tab : max. adjustable contrast value by keyboard\par
|
|||
\tab Bitmap STRING\par
|
||||
End\par
|
||||
\f0\fs24\par
|
||||
Emu10:\par
|
||||
Emu42 (Bert):\par
|
||||
\pard\nowidctlpar\qj The low-end Pioneer series use a classic 7 segment LCD. With the first nine annunciators (segments \lquote a\rquote to \lquote g\rquote , \lquote dp\rquote and \lquote cm\rquote ) one digit is described.\par
|
||||
\pard\nowidctlpar\par
|
||||
The commands Offset and Size are unused.\par
|
||||
|
@ -315,7 +312,7 @@ Example:\par
|
|||
\f0\fs24\par
|
||||
\b\fs28\page Annunciator\par
|
||||
\b0\fs24\par
|
||||
\pard\nowidctlpar\qj\tab Annunciators are the 23 (Emu10), 60 (Emu42 (Sacajawea)), six (Emu48), seven (Emu28, Emu42 (Lewis)) and 32 (Emu71) status icons on the screen. You must specify one of these blocks for each annunciator.\par
|
||||
\pard\nowidctlpar\qj\tab Annunciators are the 23 (Emu42 (Bert)), 60 (Emu42 (Sacajawea)), six (Emu48), seven (Emu28, Emu42 (Lewis)) and 32 (Emu71) status icons on the screen. You must specify one of these blocks for each annunciator.\par
|
||||
\pard\nowidctlpar\par
|
||||
\par
|
||||
\lang1031\f1\fs16 Annunciator INTEGER\par
|
||||
|
@ -338,7 +335,7 @@ Offset is the position that the annunciator will be displayed. This is the blank
|
|||
Example:\par
|
||||
\f1\fs16\tab Offset 61 4\par
|
||||
\f0\fs24\par
|
||||
\pard\nowidctlpar\qj Down is the position of the annunciator in the bitmap when it is on. There are some restrictions on the different emulators. On Emu10 and Emu42 (Sacajawea) the annunciators must draw in black on a white background. On Emu28 and Emu42 (Lewis) and Emu71 the pixel at the Down position must contain the background color, this is necessary for masking operation. Emu48 don\rquote t mask the background color, here the annunciator must have the background color of the target area.\par
|
||||
\pard\nowidctlpar\qj Down is the position of the annunciator in the bitmap when it is on. There are some restrictions on the different emulators. On Emu42 (Bert) and Emu42 (Sacajawea) the annunciators must draw in black on a white background. On Emu28 and Emu42 (Lewis) and Emu71 the pixel at the Down position must contain the background color, this is necessary for masking operation. Emu48 don\rquote t mask the background color, here the annunciator must have the background color of the target area.\par
|
||||
\pard\nowidctlpar Example:\par
|
||||
\f1\fs16\tab Down 16 485\par
|
||||
\f0\fs24\par
|
||||
|
@ -412,7 +409,7 @@ NoHold will keep a button from sticking in the down position. It only generates
|
|||
Example:\par
|
||||
\tab\f1\fs16 NoHold\par
|
||||
\cf0\b\f0\fs28\par
|
||||
\b0\fs24 OnDown and OnUp are used to carryout scancode commands when you press a button. Any Scancode command (see page 21) can be used. OnDown is when the button is pressed down. OnUp is when the button is released.\par
|
||||
\b0\fs24 OnDown and OnUp are used to carryout scancode commands when you press a button. Any Scancode command (see page 24) can be used. OnDown is when the button is pressed down. OnUp is when the button is released.\par
|
||||
Example:\par
|
||||
\f1\fs16\tab OnDown\par
|
||||
\pard\nowidctlpar\tab\tab Press 81\par
|
||||
|
@ -480,24 +477,24 @@ Example:\par
|
|||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 SHIFT\cell\cell 1\cell 2\cell 3\cell -\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\lang1036\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 0 32768\cell\cell 3 1\cell 2 1\cell 1 1\cell 0 1\cell\row\pard\nowidctlpar\cf0\f0\fs24\par
|
||||
\pard\nowidctlpar\qj\b\fs28\page OutIn Codes HP19BII\par
|
||||
\pard\nowidctlpar\par
|
||||
\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\nowidctlpar\cf2\lang1033\f3\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\nowidctlpar\cf2\f3\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\nowidctlpar\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\nowidctlpar\b\fs16\cell\b0\cell\cell\cell\cell\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 A\cell\lang1040 B\cell C\cell D\cell E\cell\lang1033 F\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 A\cell B\cell C\cell D\cell E\cell F\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 6 256\cell 6 2048\cell 6 64\cell 6 32\cell 6 1\cell 6 1024\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 G\cell H\cell\lang1040 I\cell J\cell K\cell\lang1031 L\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 G\cell\lang1040 H\cell I\cell J\cell K\cell L\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 5 256\cell 5 2048\cell 5 64\cell 5 32\cell 5 1\cell 5 1024\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 M\cell N\cell\lang1040 O\cell P\cell Q\cell\lang1033 R\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 M\cell N\cell O\cell\lang1036 P\cell Q\cell R\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 4 256\cell 4 2048\cell 4 64\cell 4 32\cell 4 1\cell 4 1024\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 S\cell T\cell\lang1031 U\cell V\cell W\cell\lang1036 X\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 S\cell T\cell U\cell V\cell W\cell X\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 3 256\cell 3 2048\cell 3 64\cell 3 32\cell 3 1\cell 3 1024\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 Y\cell Z\cell\lang1040 ?\cell $\cell #\cell :\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 Y\cell\lang1040 Z\cell ?\cell $\cell #\cell :\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 2 256\cell 2 2048\cell 2 64\cell 2 32\cell 2 1\cell 2 1024\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrt\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf2\b\fs24 SPACE\cell INS\cell DEL\cell\lang1033 <-\cell ->\cell\row\trowd\trgaph30\trleft-30\trpaddl30\trpaddr30\trpaddfl3\trpaddfr3
|
||||
\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx6018\pard\intbl\nowidctlpar\cf1\b0\fs20 1 2048\cell 1 64\cell 1 32\cell 1 1\cell 1 1024\cell\row\pard\nowidctlpar\cf0\f0\fs24\par
|
||||
|
@ -746,28 +743,28 @@ Example:\par
|
|||
\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx851\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1701\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx2552\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx3402\pard\intbl\nowidctlpar\cf1\b0\fs20 0 1024\cell 0 2048\cell 0 4096\cell 0 8192\cell\row\pard\nowidctlpar\cf0\b\f0\fs28\par
|
||||
\page Locale\par
|
||||
\b0\fs24\par
|
||||
\tab With the Locale command you can bind Scancode definitions to a keyboard Input Locale ID. An Input Locale ID, also known a Language Identifier Constant, is a 16 bit decimal number consists of a 10 bit primary language and a 6 bit sublanguage identifier.\par
|
||||
\tab With the Locale command you can bind Scancode definitions to a keyboard Input Locale ID. An Input Locale ID, also known a Language Identifier Constant, is a 16-bit decimal number consists of a 10-bit primary language and a 6 bit sublanguage identifier.\par
|
||||
\par
|
||||
\f1\fs16 Locale INTEGER\par
|
||||
\tab <Scancode blocks>\par
|
||||
End\par
|
||||
\f0\fs24\par
|
||||
For example the Primary Language ID for English is 9, the Sublanguage ID for United States (US) is 1 and the Sublanguage ID for United Kingdom (UK) is 2.\par
|
||||
For example, the Primary Language ID for English is 9, the Sublanguage ID for United States (US) is 1 and the Sublanguage ID for United Kingdom (UK) is 2.\par
|
||||
\par
|
||||
With the formula:\par
|
||||
\par
|
||||
Locale ID = 1024 * Sublanguage ID + Primary Language ID\par
|
||||
\par
|
||||
Locale ID English(US) = 1024 * 1 + 9 = 1033\par
|
||||
Locale ID English(US) = 1024 * 1 + 9 = 1033\par
|
||||
Locale ID English(UK) = 1024 * 2 + 9 = 2057\par
|
||||
\par
|
||||
A special case is the value \ldblquote 0\rdblquote for the Primary Language ID and the Sublanguage ID. \ldblquote 0\rdblquote is standing for Neutral. So if you want to select all English keyboards to one case the Locale ID is\par
|
||||
A special case is the value \ldblquote 0\rdblquote for the Primary Language ID and the Sublanguage ID. \ldblquote 0\rdblquote is standing for Neutral. So, if you want to select all English keyboards to one case the Locale ID is\par
|
||||
\par
|
||||
Locale ID English(Neutral) = 1024 * 0 + 9 = 9\par
|
||||
Locale ID English(Neutral) = 1024 * 0 + 9 = 9\par
|
||||
\par
|
||||
or for selecting all keyboards the Locale ID is\par
|
||||
\par
|
||||
Locale ID Neutral(Neutral) = 1024 * 0 + 0 = 0\par
|
||||
Locale ID Neutral(Neutral) = 1024 * 0 + 0 = 0\par
|
||||
\par
|
||||
The interpreter now chooses the first matching Locale in the file and ignoring all following Locale definitions. With this knowledge you can write a decoder selecting a block for English(US), English(UK), English(Neutral) and Default. \par
|
||||
\par
|
||||
|
@ -906,8 +903,8 @@ EDIT_BACKUP_RESTORE 15\par
|
|||
EDIT_BACKUP_DELETE 16\par
|
||||
VIEW_SCRIPT 17\par
|
||||
EDIT_PORT_CONFIGURATION 18\par
|
||||
EDIT_COPY_STRING 19\par
|
||||
EDIT_PASTE_STRING 20\par
|
||||
EDIT_COPY_STACK 19\par
|
||||
EDIT_PASTE_STACK 20\par
|
||||
TOOL_DISASM 21\par
|
||||
TOOL_DEBUG 22\par
|
||||
TOOL_MACRO_RECORD 23\par
|
||||
|
@ -926,7 +923,7 @@ Example:\par
|
|||
\pard\nowidctlpar\sa200\sl276\slmult1\f0\fs24\par
|
||||
\pard\nowidctlpar\b\fs28\page Conclusion\par
|
||||
\b0\fs24\par
|
||||
\pard\nowidctlpar\qj This document was originally written by Casey Patterson for the Keyboard Macro Language made by S\'e9bastien Carlier and is now maintained by Christoph Gie\'dfelink.\par
|
||||
\pard\nowidctlpar\qj This document was originally written by Casey Patterson for the Keyboard Mapping Language made by S\'e9bastien Carlier and is now maintained by Christoph Gie\'dfelink.\par
|
||||
\pard\nowidctlpar\par
|
||||
I\rquote m sorry, the authors can\rquote t give any individual support, try the forum at http://www.hpmuseum.org/ please.\par
|
||||
\par
|
||||
|
@ -937,10 +934,10 @@ The latest updates are available at:\par
|
|||
\pard\nowidctlpar\fi720\b0 c.giesselink@gmx.de\par
|
||||
\pard\nowidctlpar\par
|
||||
\pard\nowidctlpar\fi720 Christoph Giesselink Main Page\par
|
||||
http://hp.giesselink.com/\par
|
||||
https://hp.giesselink.com/\par
|
||||
\pard\nowidctlpar\par
|
||||
\par
|
||||
Release 19: August 15th, 2017\par
|
||||
Release 21: July 4th, 2019\par
|
||||
\par
|
||||
}
|
||||
|