Você está na página 1de 26

EmuXY and KML 2.

0
Introduction
This document explains in detail the KML 2.0 scripting files. KML, Keyoard
Mapping Language, started of as a script that Emu!" used to map #eyoard uttons $ith
uttons of the emulator, no$ it has ecome much more. KML 2.0, also used y Emu%0,
Emu2" and Emu!2, no$ ma#es it possile to change many ad&anced options of the $ay
the emulator loo#s.
The description of Emu'2 has een remo&ed from this document. The de&elopment of
Emu'2 $as (uit, the emulated calculators are no$ emulated y Emu!2. )o Emu!2 no$
emulates t$o (uite different hard$are platforms, the *igh End +ioneer and ,lamshell
series $ith a dot matrix display $hich ase on the Le$is chip and the Mid -ange +ioneer
series $ith a semi dot matrix display $hich ase on the )aca.a$ea chip. To distinguish
oth emulation platforms / use, if necessary, Emu!2 0Le$is1 and Emu!2 0)aca.a$ea1 in
the further text.
Index
2asics +age %
3loal +age 2
2ac#ground +age 4
L,5 +age 6
5igit +age 7
8nnunciator +age %0
2utton +age %%
9ut/n ,odes +age %'
)cancode +age 2%
,onclusion +age 2!
Basics
8 KML script file is a text file that the emulators use to set its screen layout and
#eyoard layout. 8 custom itmap file can e created to e the :faceplate; of the
calculator. KML defines the si<e and position of the screen, uttons, annunciators, and the
emulator $indo$. The :=; character can e used to add remar#s to a line. The follo$ing
sections descrie each main loc# of the KML script.
Global
The gloal section of the KML file tells the itmap, title of the KML, and the
,alculator hard$are and the model. The follo$ing is the syntax.
Global
Title STRING
Author STRING
Hardware STRING
Model STRING
Class INTEGER
Rom STRING
Patch STRING
Bitmap STRING
Print STRING
ebu! INTEGER
End
Title is the title of the KML file that the emulator $ill use. This is not the filename.
Example>
Title "#ohn$s G%&
8uthor is the author of the KML file.
Example>
Author "#ohn oe&
*ard$are is the emulated calculator hard$are. This definition is optional on Emu!". The
parameter is necessary to separate the KML scripts from each emulator. ?alid entries are
Emu%0>
Hardware "Bert&
Emu2">
Hardware "Centipede&
Emu!2>
Hardware "'ewis&
Emu!">
Hardware "(or)e&
Model is the model of your emulated calculator inside the hard$are family. The model
entries differ from hard$are to hard$are. This setting groups KML files of the same
hard$are and -9M together. @hen s$itching et$een KML scripts, it is the first
character of the parameter that is chec#ed against the type of the current document
0$hich $as set y the Model command in the KML file $ith $hich the document $as
created1. ?alid entries are>
Emu%0>
:E; A *+%02
:B; A *+20)
:M; A *+2%)
Emu2">
:+; A *+2",
Emu!2>
:/; A *+%!2
:T; A *+%C2
:D; A *+%C2//
:Y; A *+%72//
:M; A *+2C)
:9; A *+2")
:E; A *+'2)//
:5; A *+!2)
Emu!">
:6; A *+'"3 06!K2 -8M1
:8; A *+'"3
:E; A *+'73 or *+!03
:3; A *+!"3, *+!"3F or *+!"3X
:); A *+!") or *+!")X
:X; A *+!73
Example>
Model "G&
,lass is used for different calculators ase on the same -9M for further distinction. Bor
other models than listed elo$ this argument can e omitted. ?alid entries are>
Emu!2>
:'2; A *+!2) $ith '2K2 -8M
Emu!">
:'7; A *+'73
:!0; A *+!03
Example>
Class *+
-om is the name of your -9M file.
Example>
Rom "R,M-./G&
+atch is the name of a -9M patch file. 8ny file $ith correct syntax can e used as a
patch file. Multiple +atch lines can e used, and all files $ill e loaded in the order in
$hich they are declared. /mportant> They must appear after the -om command.
Example>
Patch "BEEP-./&
2itmap is the itmap file that $ill e the :faceplate;. 8ll emulator &ersions are
supporting the 2M+ file format, the latest &ersions also the 3raphics /nterchange Bormat
03/B1.
Example>
Bitmap "m0!%-bmp&
+rint $ill display a string $hen the KML file is loaded. You can ha&e as many of these as
necessary. They are more effecti&e if you put them efore the other settings.
Example>
Print "M0 homepa!e is at http122hp-!iesselin)-com2&
5eug sets the emulator to return an information message ox telling the scancode
numer of the #eyoard #ey pressed $hen the scancode numer isnGt defined. ?alid
entries are 0 or %. 9ne is on and Hero is off.
Example>
ebu! 3
Background
This section sets $here the ac#ground itmap $ill e placed and the si<e of the
emulator $indo$.
Bac)!round
4!a INTEGER
Topbar INTEGER
Menubar INTEGER
,55set INTEGER INTEGER
Si6e INTEGER INTEGER
End
9ffset is ho$ far the top left corner of the itmap $ill e offset in the $indo$. 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 do$n.
Example>
,55set 7 7
)i<e sets the si<e of the emulator $indo$ in pixels. The first integer is the $idth and the
second is the height. This is the $idth of the $indo$, not the itmap. /t is usually smaller
than the itmap si<e ecause the itmap normally contain the annunciator symols.
Example>
Si6e *78 ./9
?ga is a special command only for the +oc#et +, &ersions of Emu!2 and Emu!" to
enaleIdisale the use of ?38 screen resolution on a ?38 capale +oc#et +,. ?alid
entries are 0 or %. 9ne is the ?38 mode $ith 6!0x!"0 pixel and Hero is the J?38 mode
$ith '20x2!0 pixel.
Example>
4!a 3
Topar is a special command only for the +oc#et +, &ersions of Emu!2 and Emu!" to
enaleIdisale the top ar of the screen. ?alid entries are 0 or %. 9ne is enaled and Hero
is disaled.
Example>
Topbar 7
Menuar is a special command only for the +oc#et +, &ersions of Emu!2 and Emu!" to
enaleIdisale the menu ar of the screen. /f the menu ar is disaled you can get the
menu o&er the context menu gesture on a display area isnGt co&ered y &irtual #ey
uttons. ?alid entries are 0 or %. 9ne is enaled and Hero is disaled.
Example>
Menubar 7
LCD
This section set the si<e, position and contrast setting of the L,5 screen.
'cd
:oom INTEGER
:oom%0 INTEGER INTEGER
4ertical INTEGER
,55set INTEGER INTEGER
Color INTEGER INTEGER INTEGER INTEGER
End
Hoom is the si<e of the pixels in the L,5 screen. This command is only &alid for Emu2",
Emu!2 0Le$is1 and Emu!" and $ill e ignored on Emu%0 and Emu!2 0)aca.a$ea1.
?alid entries are %, 2, ' or !. Hoom factor t$o is usually used y the dot matrix L,5
types emulated y Emu2", Emu!2 0Le$is1 and Emu!".
Example>
:oom 8
Hoomxy is a &ariant of the Hoom command only &alid for Emu!2 0Le$is1. 9n Emu!2
0Le$is1 the *ighKEndK+ioneer calculator series has originally a non (uadratic rectangle
as display pixel. The height of the pixel is normally ound to the <oom factor. 2ut in
some circumstances itGs useful to ad.ust the height of the pixel separately from the $idth.
The first integer is the $idth and the second integer is the height of the dot matrix pixel.
The $idth integer is still limited to %, 2, ' or !, ut the height integer can e any positi&e
integer numer.
Example>
:oom%0 8 *
9ffset sets the position of the L,5 screen. The first integer is the amount of pixels right
and the second is the amount of pixels do$n.
Example>
,55set 87 87
,olor sets the color of the L,5 display for different contrast settings. The first /nteger is
the contrast setting for each possile &alue. The numer of settings depend on the
hard$are type.
Emu%0>
0KC A 0 is lightest, C is dar#est
Emu!2 0)aca.a$ea1>
0K%4 A foreground colors 0+ixel on1, 0 is lightest, %4 is dar#est
%6K'% A ac#ground colors 0+ixel off1, %6 corresponds to 0, %C to %, L
unused numer at ac#ground colors A transparent
Emu2", Emu!2 0Le$is1, Emu!">
0K'% A foreground colors 0+ixel on1, 0 is lightest, %4 is dar#est
'2K6' A ac#ground colors 0+ixel off1, '2 corresponds to 0, '' to %, L
unused numer at ac#ground colors A use color defined y setting 0
You should include one line for e&ery foreground color setting. The other three integers
are the -32 numers 0-ed, 3reen, 2lue1. The -32 numers range from 0 to 244. The
ac#ground color numer for the corresponding foreground color is al$ays calculated y
adding the first ac#ground numer setting to the color &alue. /f the ac#ground color for
the contrast setting isnMt defined, color 0 is used y the emulators Emu2", Emu!2 0Le$is1
and Emu!" and transparent mode y Emu%0 and Emu!2 0)aca.a$ea1.
Example>
Color 7 899 899 899
Color 3 887 887 887
;
Color *7 37 37 37
Color *3 7 7 7
Color *8 899 899 899 < optional bac)!round color 5or contrast settin!
2ut the calculator -om ounds the contrast setting $ith the #eyoard to useful &alues for
each calculator model. The easiest $ay to generate reasonale contrast settings is to put
the calculator to lo$est possile dar#ness &alue y #eyoard and enter the corresponding
-32 &alues to your KML script at the lo$est possile setting y -9M 0ac#ground A
pixel off color, foreground A near to ac#ground color1. /n the next step put the calculator
to highest possile dar#ness &alue y #eyoard and enter the corresponding -32 &alues
to your KML script at the highest possile setting y -9M 0ac#ground A pixel on color,
foreground A near to ac#ground color1. Eext important point is the dar#ness reset &alue
of the -om ecause this should e the point of est contrast et$een foreK and
ac#ground color. )o in the first range et$een lo$est dar#ness and reset point, use the
pixel off color for all ac#ground colors and calculated -32 &alues y a nearly e(ual
distance algorithm for each color part for the foreground colors. Bor the second range
et$een reset point and highest dar#ness use the foreground pixel color of the reset point
for all foreground colors and calculated -32 &alues y a nearly e(ual distance algorithm
for each color part for the ac#ground colors.
The contrast settings outside these areas 0accessile y hard$are so itGs not useless1 can
e calculated y the distance et$een each color channel $ith saturation to no contrast at
pixel off on one side, and pixel on the other side.
,ontrast setting for each calculator model>
Emulator -ange -eset Min Max
*+%02 Emu%0 0KC ! 2 6
*+%!2 Emu!2 0K%4 6 0 %4
*+%C2 Emu!2 0K'% 22 %4 '%
*+%C2// Emu!2 0K'% 22 %4 '%
*+%72// Emu!2 0K'% 22 %6 '%
*+20) Emu%0 0KC ! 2 6
*+2%) Emu%0 0KC ! 2 6
*+2C) Emu!2 0K'% 22 %4 '%
*+2", Emu2" 0K'% 26 20 '%
*+2") Emu!2 0K'% 22 %6 '%
*+'2)// Emu!2 0K%4 6 0 %4
*+'"3 Emu!" 0K'% %! 7 2!
*+'73 Emu!" 0K'% %2 7 2!
*+!03 Emu!" 0K'% %2 7 2!
*+!2) Emu!2 0K'% 22 %4 '%
*+!")X Emu!" 0K'% %% ' %7
*+!"3X Emu!" 0K'% %! 7 2!
*+!73 Emu!" 0K'% %! 7 2!
-ange > hard$are range 0accessile y assemler1
-eset > contrast &alue after calculator reset
Min > min. ad.ustale contrast &alue y #eyoard
Max > max. ad.ustale contrast &alue y #eyoard
9n Emu2" and Emu!2 0Le$is1 the contrast setting of the annunciators depend on the
current main display contrast setting and the contrast setting of each annunciator. /n
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 $ill
choose a color elo$ or ao&e the current pixel on contrast setting. To a&oid any
miseha&iors fill the complete display color tale of the emulator $ith reasonale &alues
please.
?ertical is a special command only for the +oc#et +, &ersions of Emu!2 0Le$is1 and
Emu!" to rotate the display y 70N cloc# or anticloc#$ise to allo$ s#ins in landscape
mode. ?alid entries are 0 for portrait, % for anticloc#$ise and 2 for cloc#$ise rotated
landscape mode. The default setting is portrait mode.
Example>
4ertical 3
Digit
This section is only &alid for Emu%0 and Emu!2 0)aca.a$ea1 and descries the
0alphaK1 numeric part of the L,5 screen. Emu%0 and Emu!2 0)aca.a$ea1 use different
methods for creating a numeric &alue.
i!it
,55set INTEGER INTEGER
Si6e INTEGER INTEGER
istance INTEGER
Bitmap STRING
End
Emu%0>
The lo$Kend +ioneer series use a classic C segment L,5. @ith the first nine annunciators
0segments OaG to OgG, OdpG and OcmG1 one digit is descried.
The commands 9ffset and )i<e are unused.
5istance is the distance in pixel et$een the eginnings of each digit, so only one
description for a digit is necessary.
Example>
istance 3/ < distance between di!its
2itmap is an optional command for including an external annunciator itmap instead of
using the annunciators in the ac#ground itmap.
Example>
Bitmap "m0lcd-bmp&
Emu!2 0)aca.a$ea1>
The mid range +ioneer series use a 4xC pixel dot matrix for each digit.
)i<e is the si<e of one pixel in the L,5 screen. @idth *eight.
Example>
Si6e * . < si6e o5 'C pi%el
9ffset is the position of the first digit inside the display area.
Example>
,55set 3= 3* < position o5 3st di!it
5istance set the distance in pixel et$een the eginnings of each digit.
Example>
istance 83 < distance between di!its
2itmap is an optional command for including an external annunciator itmap instead of
using the annunciators in the ac#ground itmap.
Example>
Bitmap "m0lcd-bmp&
Annunciator
8nnunciators are the 2' 0Emu%01, 60 0Emu!2 0)aca.a$ea11, six 0Emu!"1 and
se&en 0Emu2", Emu!2 0Le$is11 status icons on the screen. You must specify one of these
loc#s for each annunciator.
Annunciator INTEGER
Si6e INTEGER INTEGER
,55set INTEGER INTEGER
own INTEGER INTEGER
End
8nnunciator tells $hich annunciator you are setting. ?alid entries are emulator depending
and can &ary from % through 6, C, 2' or 60. The annunciator symol itself depends on the
specific L,5 of the calculator. -efer to existing KML scripts for getting the symol of
each annunciator.
Example>
Annunciator 3
)i<e is the si<e of the annunciator in pixels. @idth *eight.
Example>
Si6e 3> 33
9ffset is the position that the annunciator $ill e displayed. This is the lan# part.
Example>
,55set >3 .
5o$n is the position of the annunciator in the itmap $hen it is on. There are some
restrictions on the different emulators. 9n Emu%0 and Emu!2 0)aca.a$ea1 the
annunciators must e dra$n in lac# on a $hite ac#ground. 9n Emu2" and Emu!2
0Le$is1 the pixel at the 5o$n position must contain the ac#ground color, this is
necessary for mas#ing operation. Emu!" donGt mas# the ac#ground color, here the
annunciator must ha&e the ac#ground color of the target area.
Example>
own 3> ./9
Button
2utton sets the position of the utton and $hat the utton does.
Button INTEGER
T0pe INTEGER
Si6e INTEGER INTEGER
,55set INTEGER INTEGER
own INTEGER INTEGER
,utIn INTEGER INTEGER
4irtual
NoHold
,n?p
@CommandsA
End
,nown
@CommandsA
End
End
2utton tells the numer of the utton you are creating. This can e any numer. Most of
the time this is set to a numer that represents the ro$ and column of the utton. 8ny
numer can e used, ut only 246 uttons can e declared. /f more uttons are declared,
only the first 246 $ill e used, and the others $ill e ignored.
Example>
Button 33
Type tells ho$ the utton $ill eha&e $hen it is pressed. ?alid entries are 0, %, 2, ', !, or
4.
Type 0 0default1 is copying a part of the ac#ground itmap $ith the dimension )i<e from
the source position 5o$n to the target position 9ffset.
Type % is copying an inner part of the ac#ground itmap $ith the dimension )i<e from
the source position 9ffset to the target position 9ffset one pixel right do$n. The resulting
utton gets a ne$ lac# and $hite order. This is a default utton effect for special
designed ac#ground itmaps.
Type 2 does nothing.
Type ' is dra$ing a part of the ac#ground itmap $ith the dimension )i<e at the target
position 9ffset $ith in&erted colors. This type can e used for a utton inside the L,5
screen area. The effect on the L,5 screen depends on the emulator.
Type ! is copying a part of the ac#ground itmap $ith the dimension )i<e from the
source position 9ffset to the target position 9ffset sho$ing the ac#ground itmap
ehind the L,5 screen $hile the #ey pressed. This type is only useful in Emu!" $ith
disaled option PEnale ?irtual L,5 5elayP. 9n all other emulators this type isnGt
$or#ing.
Type 4 is dra$ing a transparent circle inside the rectangle gi&en y )i<e into the middle
of the utton area gi&en y target position 9ffset and the dimension )i<e.
8ll other Type &alues are dra$ing a lac# rectangle $ith the dimension )i<e at the target
position 9ffset. -ememer that this eha&ior can change on introducing a ne$ type. )o
donGt use this type in pulic scripts.
Example>
T0pe 7
)i<e sets the si<e of the utton. @idth height.
Example>
Si6e *> 89
9ffset sets the position of the utton. This is $hen it is not pressed. +ixels right and
pixels do$n.
Example>
,55set / 39/
5o$n sets the picture of the do$n utton. This is only needed if type 0 is set. +ixels right
and pixels do$n.
Example>
own *78 89
9ut/n tells the emulator $hich utton is eing pressed. 8 tale of 9ut/n codes are on the
next page of this document.
Example>
,utIn 3 3>
?irtual mode should e used for uttons that duplicate the function of a calculator utton.
This type of utton cannot e held do$n. 8 9n5o$n e&ent is generated $hen the utton
pressed. 8 9nDp e&ent is generated $hen the utton is released.
Example>
4irtual
Eo*old $ill #eep a utton from stic#ing in the do$n position. /t only generates an 9nDp
e&ent.
Example>
NoHold
9n5o$n and 9nDp are used to carryout scancode commands $hen you press a utton.
8ny )cancode command 0see page 2%1 can e used. 9n5o$n is $hen the utton is
pressed do$n. 9nDp is $hen the utton is released.
Example>
,nown
Press /3
Press >*
End
,n?p
Release >*
Release /3
End
OutIn Codes HP10B
Key
OutIn
N I/YR PV PMT FV SUM+
5 64 4 64 3 64 2 64 1 64 0 64
% RCL CFj CST PRC MAR
5 32 4 32 3 32 2 32 1 32 0 32
INPUT ->M RM M+ <-
4 16 3 16 2 16 1 16 0 16
+/- 7 8 9 /
5 8 3 8 2 8 1 8 0 8
K ! " #
5 4 3 4 2 4 1 4 0 4
S$IFT % & ' -
5 2 3 2 2 2 1 2 0 2
C ( ) * +
0 32768 3 1 2 1 1 1 0 1
OutIn Codes HP14B
Key
OutIn
N I/YR PV PMT FV SUM+
0 16 1 16 2 16 5 16 4 16 3 16
STO RCL CST PRC MAR STAT
0 1 1 1 2 1 5 1 4 1 3 1
INPUT +/- + , <-
1 4 2 4 5 4 4 4 3 4
% 7 8 9 /
0 2 2 2 5 2 4 2 3 2
- ! " #
0 8 2 8 5 8 4 8 3 8
S$IFT % & ' -
0 32 2 32 5 32 4 32 3 32
C ( ) * +
0 32768 2 64 5 64 4 64 3 64
OutIn Codes HP17B HP17BII
Key
OutIn
. . . . . .
5 64 4 64 3 64 2 64 1 64 0 64
STO RCL % /SP PRT 01IT
5 32 4 32 3 32 2 32 1 32 0 32
INPUT +/- + , <-
4 16 3 16 2 16 1 16 0 16
. 7 8 9 /
5 8 3 8 2 8 1 8 0 8
- ! " #
5 4 3 4 2 4 1 4 0 4
S$IFT % & ' -
5 2 3 2 2 2 1 2 0 2
C ( ) * +
0 32768 3 1 2 1 1 1 0 1
OutIn Codes HP1!BII
Key
OutIn
A 2 C / 0 F
6 256 6 2048 6 64 6 32 6 1 6 1024
3 $ I 4 K L
5 256 5 2048 5 64 5 32 5 1 5 1024
M N O P 5 R
4 256 4 2048 4 64 4 32 4 1 4 1024
S T U V 6 1
3 256 3 2048 3 64 4 32 4 1 4 1024
Y 7 8 9 : ;
2 256 2 2048 2 64 2 32 2 1 2 1024
SPAC0 INS /0L <- ->
1 2048 1 64 1 32 1 1 1 1024
Key
OutIn
7 2 7 128 7 512 7 4 7 8 7 16
S$IFT STO RCL /ISP PRNT 01IT
6 2 6 128 6 512 6 4 6 8 6 16
INPUT +/- + , <-
6 128 5 512 5 4 5 8 5 16
. 7 8 9 /
4 2 4 128 4 512 4 4 4 8
- ! " #
3 2 3 128 3 512 3 4 3 8
% % & ' -
5 2 3 2 2 2 1 2 0 2
ON O ) * +
0 32768 1 128 1 512 1 4 1 8
OutIn Codes HP"0# HP"1#
Key
OutIn
S5R+1, e.1 LN Y.1 %/1 SUM+
5 64 4 64 3 64 2 64 1 64 0 64
STO RCL SIN COS TAN R/S
5 32 4 32 3 32 2 32 1 32 0 32
INPUT +/- + , <-
4 16 3 16 2 16 1 16 0 16
105 7 8 9 /
5 8 3 8 2 8 1 8 0 8
<-< ! " #
5 4 3 4 2 4 1 4 0 4
/-> % & ' -
5 2 3 2 2 2 1 2 0 2
C ( ) * +
0 32768 3 1 2 1 1 1 0 1
OutIn Codes HP"7#
Key
OutIn
. . . . . .
5 64 4 64 3 64 2 64 1 64 0 64
STO RCL SIN COS TAN 01IT
5 32 4 32 3 32 2 32 1 32 0 32
INPUT +/- + , <-
4 16 3 16 2 16 1 16 0 16
. 7 8 9 /
5 8 3 8 2 8 1 8 0 8
- ! " #
5 4 3 4 2 4 1 4 0 4
S$IFT % & ' -
5 2 3 2 2 2 1 2 0 2
C ( ) * +
0 32768 3 1 2 1 1 1 0 1
OutIn Codes HP"$C
Key
OutIn
A 2 C / 0 F
6 16 6 32 6 2048 6 1024 6 512 6 128
3 $ I 4 K L
5 16 5 32 5 2048 5 1024 5 512 5 128
M N O P 5 R
4 16 4 32 4 2048 4 1024 4 512 4 128
S T U V 6 1
3 16 3 32 3 2048 3 1024 3 512 3 128
Y 7 : = > +
2 16 2 32 2 2048 2 1024 2 512 2 128
SPAC0 << * LC ALP$A
1 32 1 2048 1 1024 1 512 1 128
Key
OutIn
INS /0L . - < >
7 256 7 64 7 8 7 1 7 2 7 4
S$IFT <.-> TRI3 SOLV US0R N01T
6 256 6 64 6 8 6 1 6 2 6 4
0NT0R C$S 001 /ROP <-
5 64 5 8 5 1 5 2 5 4
? 7 8 9 /
4 256 4 64 4 8 4 1 4 2
STO ! " #
3 256 3 64 3 8 3 1 3 2
0VAL % & ' -
2 256 2 64 2 8 2 1 2 2
ON O ) @ +
0 32768 1 64 1 8 1 1 1 2
OutIn Codes HP"$#
Key
OutIn
A 2 C / 0 F
6 256 6 2048 6 64 6 32 6 1 6 1024
3 $ I 4 K L
5 256 5 2048 5 64 5 32 5 1 5 1024
M N O P 5 R
4 256 4 2048 4 64 4 32 4 1 4 1024
S T U V 6 1
3 256 3 2048 3 64 4 32 4 1 4 1024
Y 7 : = > +
2 256 2 2048 2 64 2 32 2 1 2 1024
SPAC0 << * LC ALP$A
1 2048 1 64 1 32 1 1 1 1024
Key
OutIn
INS /0L . - < >
7 2 7 128 7 512 7 4 7 8 7 16
S$IFT <.-> TRI3 SOLV US0R N01T
6 2 6 128 6 512 6 4 6 8 6 16
0NT0R C$S 001 /ROP <-
6 128 5 512 5 4 5 8 5 16
? 7 8 9 /
4 2 4 128 4 512 4 4 4 8
STO ! " #
3 2 3 128 3 512 3 4 3 8
0VAL % & ' -
2 2 2 128 2 512 2 4 2 8
ON O ) @ +
0 32768 1 128 1 512 1 4 1 8
OutIn Codes HP%"#II
Key
OutIn
S5A+1, e.1 LN Y.1 %/1 SUM+
5 64 4 64 3 64 2 64 1 64 0 64
STO RCL R- SIN COS TAN
5 32 4 32 3 32 2 32 1 32 0 32
0NT0R 1<>Y +/- 0 <-
4 1 3 1 2 1 1 1 0 1
105 7 8 9 /
5 8 3 8 2 8 1 8 0 8
<-< ! " #
5 16 3 16 2 16 1 16 0 16
/-> % & ' -
5 4 3 4 2 4 1 4 0 4
01IT ( ) R/S +
0 32768 3 2 2 2 1 2 0 2
OutIn Codes HP4"#
Key
OutIn
SUM+ %/1 S5R+1, LO3 LN 105
5 64 4 64 3 64 2 64 1 64 0 64
STO RCL R- SIN COS TAN
5 32 4 32 3 32 2 32 1 32 0 32
0NT0R 1<>Y +/- 0 <-
4 16 3 16 2 16 1 16 0 16
. 7 8 9 /
5 8 3 8 2 8 1 8 0 8
- ! " #
5 4 3 4 2 4 1 4 0 4
S$IFT % & ' -
5 2 3 2 2 2 1 2 0 2
01IT ( ) R/S +
0 32768 3 1 2 1 1 1 0 1
OutIn Codes HP4$#& 'HP4$G& HP%$G(
Key
OutIn
A 2 C / 0 F
1 16 8 16 8 8 8 4 8 2 8 1
3 $ I 4 K L
2 16 7 16 7 8 7 4 7 2 7 1
M N O P 5 R
0 16 6 16 6 8 6 4 6 2 6 1
S T U V 6 1
3 16 5 16 5 8 5 4 5 2 5 1
0NT0R Y 7 /0L /ROP
4 16 4 8 4 4 4 2 4 1
A 7 8 9 /
3 32 3 8 3 4 3 2 3 1
<-< ! " #
2 32 2 8 2 4 2 2 2 1
/-> % & ' -
1 32 1 8 1 4 1 2 1 1
ON ( ) SPC +
0 32768 0 8 0 4 0 2 0 1
OutIn Codes HP4!G 'HP%!G HP40G(
Key
OutIn
A 2 C / 0 F
5 1 5 2 5 4 5 8 5 16 5 32
3 $ I .
5 128 4 128 3 128 6 8
4 K L < - >
2 128 1 128 0 128 6 4 6 2 6 1
M N O P /0L
4 64 3 64 2 64 1 64 0 64
5 R S T U
4 32 3 32 2 32 1 32 0 32
V 6 1 Y 7
4 16 3 16 2 16 1 16 0 16
ALP$A 7 8 9 #
7 8 3 8 2 8 1 8 0 8
<-< ! " -
7 4 3 4 2 4 1 4 0 4
/-)> % & ' +
7 2 3 2 2 2 1 2 0 2
ON ( ) SPC 0NT0R
0 32768 3 1 2 1 1 1 0 1
#cancode
The )cancode defines $hat the emulator $ill do $hen a certain #ey on the
#eyoard is pressed. +ressing a #ey that has no scancode defined $ill 0only if deug
mode is on1 display a message ox $ith the #eyMs scancode numer, so that you can $rite
a )cancode loc#. The commands in the )cancode loc# are executed t$ice, first $hen
the #ey is pressed and a second time $hen the #ey is released. Blags can help to transfer
information 0for example can e set to sho$ that a shift #ey is pressed1 from one
)cancode loc# to another. ?alid flags are 0K'%.
Scancode INTEGER
@C,MMANSA
End
?alid ,ommands
Map INTEGER INTEGER
or
Press INTEGER
or
Release INTEGER
or
I5Pressed INTEGER
@C,MMANSA
Else
@C,MMANSA
End
,r
I5Mem INTEGER INTEGER INTEGER
@C,MMANSA
Else
@C,MMANSA
End
or
SetBla! INTEGER
or
ResetBla! INTEGER
or
NotBla! INTEGER
or
I5Bla! INTEGER
@C,MMANSA
Else
@C,MMANSA
End
or
MenuItem INTEGER
Map Q),8E,95ER Q2DTT9ER $ill map the state 0pressed or released1 of the #ey
Q),8E,95ER 0defined y the P)cancode Q),8E,95ERP loc#1 to the utton
Q2DTT9ER 0defined y the P2utton Q2DTT9ERP loc#1. This means $hen Map is
called in the #ey pressing state the 2utton is pressed else, $hen Map is called in the #ey
releasing state, the 2utton is released.
Example>
Map 93 33
+ress Q2DTT9ER $ill press the utton defined y the P2utton Q2DTT9ERP loc#.
Example>
Press 33
-elease Q2DTT9ER $ill release the utton defined y the P2utton Q2DTT9ERP loc#.
Example>
Release 33
/f+ressed Q),8E,95ER tests if )cancode loc# is called y a #ey press or a #ey
release. /f the loc# is called y a #ey press, the command lines ehind /f+ressed are
executed until a Else or End command is reached. /f the loc# is called y a #ey release,
all command lines et$een Else and the corresponding End are executed.
Example>
I5Pressed 93
Map 93 33
Else
Map 93 38
End
/fMem QMEM855-R Q8E5M8)KR Q-E)DLTR tests if the content of the calculator
memory address QMEM855-R mas#ed y an 8E5 operation $ith the &alue
Q8E5M8)KR is e(ual to the &alue Q-E)DLTR. /f the result is e(ual, the command lines
ehind /fMem are executed until a Else or End command is reached. /f the result is not
e(ual, all command lines et$een Else and the corresponding End are executed.
Example>
I5Mem 8>= . 7 < CANNCTR' ./SD2GD E alpha annunciator
Press >3 < press2release alpha button
Release>3
End
)etBlag QBL83E9R $ill set an internal flag.
Example>
SetBla! 3
-esetBlag QBL83E9R $ill clear an internal flag.
Example>
ResetBla! 3
EotBlag QBL83E9R $ill in&ert the state of an internal flag.
Example>
NotBla! 3
/fBlag QBL83E9R tests the state of the flag. /f the Blag is set, the command lines ehind
/fBlag are executed until a Else or End command is reached. /f the Blag is not set, all
command lines et$een Else and the corresponding End are executed.
Example>
I5Bla! 3
Map 93 33
Else
Map 93 38
End
Menu/tem $ill open a menu 0only if itGs supported1. The follo$ing &alues are accepted>
BI'EFNEG 3
BI'EF,PEN 8
BI'EFSA4E *
BI'EFSA4EAS .
BI'EFEDIT 9
EITFC,P(FSCREEN >
BI'EFSETTINGS =
EITFRESET /
EITF',AF,B#ECT +
EITFSA4EF,B#ECT 37
HE'PFAB,?T 33
HE'PFT,PICS 38
BI'EFC',SE 3*
EITFBACH?PFSA4E 3.
EITFBACH?PFREST,RE 39
EITFBACH?PFE'ETE 3>
4IEGFSCRIPT 3=
EITFC,P(FSTRING 3+
EITFPASTEFSTRING 87
T,,'FISASM 83
T,,'FEB?G 88
T,,'FMACR,FREC,R 8*
T,,'FMACR,FP'A( 8.
T,,'FMACR,FST,P 89
T,,'FMACR,FSETTINGS 8>
Conclusion
This document $as originally $ritten y ,asey +atterson for the Keyoard Macro
Language made y )Sastien ,arlier and is no$ maintained y ,hristoph 3ieTelin#.
/Gm sorry, the authors canGt gi&e any indi&idual support, try the ne$sgroup
comp.sys.hp!" please.
The latest updates are a&ailale at>
C)risto*) Gie+elink
c.giesselin#Ugmx.de
,hristoph 3iesselin# Main +age
http>IIhp.giesselin#.comI
-elease %!> )eptemer 7th, 2007

Você também pode gostar