2006-11-24: Updated to version 1.42

Signed-off-by: Gwenhael Le Moine <gwenhael.le.moine@gmail.com>
This commit is contained in:
Gwenhael Le Moine 2024-03-19 23:35:29 +01:00
parent 6b7873f5d8
commit 478b7f6efe
No known key found for this signature in database
GPG key ID: FDFE3669426707A7
43 changed files with 1655 additions and 711 deletions

View file

View file

@ -21,7 +21,7 @@ Global
Author "Casey Patterson && Sebastien Carlier" Author "Casey Patterson && Sebastien Carlier"
Model "G" Model "G"
Rom "ROM.48G" Rom "ROM.48G"
Patch "BEEP.EXT" Patch "BEEP.48"
Bitmap "cp_48g3.bmp" Bitmap "cp_48g3.bmp"
Debug 0 Debug 0
End End

View file

@ -13,7 +13,7 @@ Global
Author "Casey Patterson" Author "Casey Patterson"
Model "S" Model "S"
Rom "ROM.48S" Rom "ROM.48S"
Patch "BEEP.EXT" Patch "BEEP.48"
Bitmap "cp_48s3.bmp" Bitmap "cp_48s3.bmp"
Debug 0 Debug 0
End End

View file

@ -3,7 +3,7 @@ Global
Author "Sebastien Carlier" Author "Sebastien Carlier"
Model "G" Model "G"
Rom "ROM.48G" Rom "ROM.48G"
Patch "BEEP.EXT" Patch "BEEP.48"
Debug 0 Debug 0
Bitmap "DEFAULTG.BMP" Bitmap "DEFAULTG.BMP"
End End

View file

@ -3,7 +3,7 @@ Global
Author "Sebastien Carlier" Author "Sebastien Carlier"
Model "S" Model "S"
Rom "ROM.48S" Rom "ROM.48S"
Patch "BEEP.EXT" Patch "BEEP.48"
Debug 0 Debug 0
Bitmap "DEFAULTS.BMP" Bitmap "DEFAULTS.BMP"
End End

BIN
EMU48.EXE

Binary file not shown.

BIN
Emu48asc/ASCIIBIN.48 Normal file

Binary file not shown.

BIN
Emu48asc/ASCIIBIN.49 Normal file

Binary file not shown.

141
Emu48asc/ASCIIBIN.S Normal file
View file

@ -0,0 +1,141 @@
TITLE ASCIIBIN ASCII<->Binary Converter
* Author: Eric Rechlin
ASSEMBLE
NIBASC /HPHP49-C/
* NIBASC /HPHP48-R/
RPL
::
CK1NoBlame ( one argument, attribute errors correctly )
CK&DISPATCH1 ( one argument... )
THREE ( ...check if it's a string )
::
DUP ( duplicate string )
ELEVEN ( last character + 1 to pull out )
1_#1-SUB$ ( pull out string of first characters )
"%%HP:" ( test string )
ONE ( search from first position )
POS$ ( find position of test string )
DUP ( duplicate position )
#0=?SKIP ( if header doesn't exist, skip secondary )
::
#5+ ( skip "%%HP:" header )
LAST$ ( pull out the rest of the string on level three )
DUP ( duplicate string )
";" ( substring to find )
ONE ( search from first position )
POS$ ( find position of substring )
2DUP ( duplicate string and position )
#1+ ( add one to bint...this is first char to take )
LAST$ ( pull out the rest of the string on level three )
UNROT ( 3 2 1 -> 1 3 2 )
1_#1-SUB$ ( take out the Kermit header at given position )
DUPLEN$ ( get length of header while keeping header on stack )
THIRTEEN #= ( header should be 13 characters long )
?SKIP ( don't error if header string is 13 characters long )
SETSIZEERR ( otherwise, give Bad Argument Value error )
RCLSYSF ( back up system flags to hex string in level one )
UNROT ( move flags backup to level 3 to get them out of the way )
DUP ( duplicate header )
FOUR ( " T(3)A(R)F(.)" )
SUB$1# ( ^ to ASCII code )
FORTYEIGHT ( ASCII code for 0 is 48d )
#- ( subtract 48 from ASCII code to get 0 through 3 )
UNCOERCE ( convert bint to real )
DOTRANSIO ( set ASCII translation mode to real on level one )
DUP
EIGHT ( " T(3)A(R)F(.)" )
SUB$1# ( ^ to ASCII code )
DUP ( duplicate ASCII code for D/R/G )
#52 ( ASCII code for R is 82d (52h) )
#= ( is it in radians mode? )
ITE ( do next semi if true, or the next one if false )
::
SEVENTEEN ( radians mode: flag -17 )
SetSysFlag ( set system flag -17 )
DROP ( drop extra ASCII code )
;
::
SEVENTEEN ( radians mode: flag -17 )
ClrSysFlag ( not radians: clear system flag -17 )
#47 ( ASCII code for G is 71d (47h) )
#= ( is it in grads mode? )
ITE ( do next semi if true, or the next one if false )
::
EIGHTEEN ( grads/degrees mode: flag -18 )
SetSysFlag ( grads mode: set system flag -18 )
;
::
EIGHTEEN ( grads/degrees mode: flag -18 )
ClrSysFlag ( must be degrees mode: clear system flag -18 )
;
;
TWELVE ( " T(3)A(R)F(.)" )
SUB$1# ( ^ to ASCII code )
FORTYFOUR ( ASCII code for , is 44d )
#= ( is the fraction mark a comma? )
ITE ( do next semi if true, or the next one if false )
::
FIFTYONE ( fraction mark: flag -51 )
SetSysFlag ( fraction mark is comma: set system flag -51 )
;
::
FIFTYONE ( fraction mark: flag -51 )
ClrSysFlag ( fraction mark must be period: clear system flag -51 )
;
;
KINVISLF ( translate, remove all CR's; we just need LF's )
DROP ( drop empty string )
SWAP ( get backup of system flags from level two )
DOSTOSYSF ( restore system flags to previous settings )
palparse ( get object from string, returns true or false )
NOTcase2DROP ( if conversion fails drop two objects and quit )
DUP ( duplicate object/composite )
CARCOMP ( return first object of the composite )
' xSILENT' ( put object xSILENT' on the stack )
EQ ( compare them )
NOT?SEMI ( if false skip to end of secondary... )
TWO ( get 2nd... )
NTHCOMPDROP ( ...object behind the xSILENT' )
;
ZERO ( ...check if it's not a string [actually, anything] )
::
EDITDECOMP$ ( make into string )
KVISLF ( translations, add a CR to each LF for Windows/DOS )
"%%HP: T(" ( Kermit pre-header )
GetIOPAR ( put IOPAR on 6 levels of stack, TRANSIO mode is in level 1 )
6UNROLL 5DROP ( don't need upper 5 levels, so just keep level 1 )
IOCheckReal %IP># ( make sure it's valid and convert to bint )
DUP FOUR #< ( make sure TRANSIO mode is less than four )
?SKIP ( don't error if mode is less than four )
SetIOPARErr ( error if mode is not less than four )
#>$ ( convert bint to string )
!append$ ( combine TRANSIO string with existing header string )
")A(" ( string between TRANSIO mode and angle mode )
!append$ ( combine strings )
SEVENTEEN ( radians mode is system flag -17 )
TestSysFlag ( check for radians mode )
ITE
CHR_R ( character R if radians mode )
::
EIGHTEEN ( degrees/grads mode is system flag -18 )
TestSysFlag ( check for grads mode )
ITE ( do next object if true, otherwise the next one )
CHR_G ( character G if grad mode )
CHR_D ( character D otherwise )
;
CHR>$ ( convert character to string )
!append$ ( combine angle mode string with header string )
FIFTYONE ( fraction mark: system flag -51 )
TestSysFlag ( check for fraction mark as comma )
ITE
")F(,)" ( fraction mark is comma )
")F(.)" ( otherwise, fraction mark must be period )
!append$ ( combine strings )
";\0D\0A" ( semicolon, CR, LF )
!append$SWAP ( combine strings, swap )
!append$ ( combine strings )
;
;

135
Emu48asc/ASCIIBIN.SRC Normal file
View file

@ -0,0 +1,135 @@
!NO CODE
!RPL
::
CK1NoBlame
CK&DISPATCH1
THREE
::
DUP
ELEVEN
1_#1-SUB$
"%%HP:"
ONE
POS$
DUP
#0=?SKIP
::
#5+
LAST$
DUP
";"
ONE
POS$
2DUP
#1+
LAST$
UNROT
1_#1-SUB$
DUPLEN$
THIRTEEN #=
?SKIP
SETSIZEERR
RCLSYSF
UNROT
DUP
FOUR
SUB$1#
FORTYEIGHT
#-
UNCOERCE
DOTRANSIO
DUP
EIGHT
SUB$1#
DUP
#52
#=
ITE
::
SEVENTEEN
SetSysFlag
DROP
;
::
SEVENTEEN
ClrSysFlag
#47
#=
ITE
::
EIGHTEEN
SetSysFlag
;
::
EIGHTEEN
ClrSysFlag
;
;
TWELVE
SUB$1#
FORTYFOUR
#=
ITE
::
FIFTYONE
SetSysFlag
;
::
FIFTYONE
ClrSysFlag
;
;
KINVISLF
DROP
SWAP
DOSTOSYSF
palparse
NOTcase2DROP
DUP
CARCOMP
' xSILENT'
EQ
NOT?SEMI
TWO
NTHCOMPDROP
;
ZERO
::
EDITDECOMP$
KVISLF
"%%HP: T("
GetIOPAR
6UNROLL 5DROP
IOCheckReal %IP>#
DUP FOUR #<
?SKIP
SetIOPARErr
#>$
!append$
")A("
!append$
SEVENTEEN
TestSysFlag
ITE
CHR_R
::
EIGHTEEN
TestSysFlag
ITE
CHR_G
CHR_D
;
CHR>$
!append$
FIFTYONE
TestSysFlag
ITE
")F(,)"
")F(.)"
!append$
";\0D\0A"
!append$SWAP
!append$
;
;
@

103
Emu48asc/ASCIIBIN.TXT Normal file
View file

@ -0,0 +1,103 @@
ASCII to Binary and Binary to ASCII Translator
A number of programs for the 48 and 49 were distributed as ASCII files
rather than binary files, and some programmers like to make ASCII
backups of their programs, perhaps to make the source code more easily
readable by others, rather than just binary backups. The 48 and 49
can do this translation with ASCII Kermit transfers, but this isn't
always possible or feasible. This program allows you to take an
ASCII-format string and convert it to the binary equivalent, or vice
versa, on demand without having to re-transfer the file.
This has several benefits. Users of the 49G+ who do all file transfers
with an SD card can now have access to ASCII-format files. Users of
Emu48, emulating either the 48 or the 49, can now both import and
export ASCII-format files. Users of any calculator can always do file
transfers with Xmodem and still do ASCII conversion after the fact.
This program automatically detects the mode. When given a string with
the HPHP4... header, it will output the binary equivalent. When given
any binary object (anything but a string), it will return the ASCII
string equivalent with a header appropriate for the current modes when
needed.
One limitation is that upon saving a string, Emu48 puts a 13-byte
HPHP48-W or HPHP49-W header at the beginning, and the 49G+ puts a
13-byte HPHP49-X header at the beginning of all files copied onto an
SD card. This 13-byte header must be manually removed with a text
editor on the PC before the file can be considered a true ASCII file.
Simple directions:
1. Load asciibin.48 onto the 48 or asciibin.49 onto the 49 by whatever
transfer means you prefer. With Emu48, simply load the appropriate
version for the calculator currently being emulated with the Edit-
Load Object command, and then STO it in a variable.
3. Put the file you want to translate on level 1 of the stack.
4. Run this program with the appropriate VAR menu softkey.
5. STO the translated program in a variable on the calculator or export
it in Emu48 with the Edit-Save Object... command.
Unfortunately, this program sometimes fails on directories. I'm not
entirely sure why it doesn't work (since it properly imports some
directories) and don't have a solution at present. For these pesky
directories, you'll still have to use ASCII Kermit to transfer the file
with a cable. The program is also very slow when running on a real
48G/GX or 49G.
Note: In order to successfully convert an ASCII string, the string must
contain a full "T(3)A(R)F(.)"-style definition. If this is not
complete, for example, if it only has "T(3)", an error will be given and
the conversion will not be performed.
The file asciibin.s contains the fully-commented System RPL source code,
suitable for compiling on a PC. The file asciibin.src contains the same
source code, but in a format suitable for compiling on the calculator
with MASD on either the 48GX (with the MetaKernel) or any 49 model.
The files jhmascii.bin and jhmascii.txt contain a User RPL program by
John H Meyers that was inspired by this program, which in turn was
inspired by previous posts by John H Meyers.
Program created by Eric Rechlin <eric@hpcalc.org> based on posts to
comp.sys.hp48 by John H Meyers <jhmeyers@mum.edu>. I would also like
to thank Christoph Giesselink for optimizing my program, saving about
20 bytes, as well as for correcting some bugs.
Revision 2.0, see http://www.hpcalc.org for updates.
Version History
2.0, 2005-05-30
Removed dependency on unsupported entry points.
User's system flag settings are no longer affected.
Same code compiles on both 48 and 49.
1.6, 2001-11-22
Noted the 49 version also works on 1.18.
Cleaner error handling (thanks again, Christoph).
1.5, 2001-10-03
Now includes 49 1.19-4-6 version, using entry points found by Christoph.
Cleaner error handling (thank you, Christoph).
1.4, 2000-04-08
Bug fix (thanks again, Christoph).
1.3, 1998-09-30
Optimized code again (thanks Christoph).
1.2, 1998-08-28
More robust handling of input string.
Reads header and sets settings as appropriate.
Generates appropriate header based on settings.
Now uses unsupported entry points
1.1, 1998-08-24
Includes source code.
Includes program by John H Meyers inspired by this one.
Optimized code slightly.
Adds simple header when generating string.
1.0, 1998-06-24
Initial release.

Binary file not shown.

View file

@ -1,54 +0,0 @@
%%HP: T(3)A(D)F(.);
C$ $
::
CK1NoBlame ( one argument, attribute errors correctly )
CK&DISPATCH1 ( one argument... )
THREE ( ...check if it's a string )
::
DUP ( duplicate string )
ELEVEN ( last character + 1 to pull out )
1_#1-SUB$ ( pull out string of first characters )
$ "%%HP:" ( test string )
ONE ( search from first position )
POS$ ( find position of test string )
DUP ( duplicate position )
#0=?SKIP ( if header doesn't exist, skip secondary )
::
#5+ ( skip "%%HP:" header )
LAST$ ( pull out the rest of the string on level three )
DUP ( duplicate string )
$ ";" ( substring to find )
ONE ( search from first position )
POS$ ( find position of substring )
2DUP ( duplicate string and position )
#1+ ( add one to bint...this is first char to take )
LAST$ ( pull out the rest of the string on level three )
UNROT ( 3 2 1 -> 1 3 2 )
1_#1-SUB$ ( take out the Kermit header at given position )
PTR 30477 ( set settings based on header [unsupported] )
;
DROP ( garbage...we don't need this )
KINVISLF ( translate, remove all CR's; we just need LF's )
DROP ( drop empty string )
palparse ( get object from string, returns true or false )
NOTcase2DROP ( if conversation fail drop two objects and quit )
DUP ( duplicate object/composite )
CARCOMP ( return first object of the composite )
' xSILENT' ( put object xSILENT' on the stack )
EQ ( compare them )
NOT?SEMI ( if false skip to end of secondary... )
TWO ( get 2nd... )
NTHCOMPDROP ( ...object behind the xSILENT' )
;
ZERO ( ...check if it's not a string [actually, anything] )
::
EDITDECOMP$ ( make into string )
KVISLF ( translations, add a CR to each LF for Windows/DOS )
$ "%%HP:" ( Kermit pre-header )
PTR 303AC ( retrieve current settings [unsupported] )
!append$ ( combine strings, use little memory )
$ ";\\r\\n" ( semicolon, CR, LF )
!append$SWAP ( combine strings, use little memory, swap )
!append$ ( combine strings, use little memory )
;
;

View file

@ -1,42 +0,0 @@
ASCII to Binary and Binary to ASCII Translator
Emu48 can't import programs transferred via ASCII mode. This System
RPL program will take the string that Emu48 puts on the stack when the
program was originally transferred in ASCII mode and will convert it
to a binary. If the header exists the settings will set accordingly,
and if any comments exist it will remove them. If you are loading a
text file rather than a program, this will simply remove the carriage
returns so there is nothing but line feeds. If you give it a binary
program rather than a text file, it will convert it to a text file,
making it suitable for exporting from Emu48. Remember that Emu48 adds
a 13-byte HPHP48-W header to the beginning that must be removed when
exporting ASCII files.
Simple directions:
1. Load emu48asc.bin into Emu48 with the Edit-Load Object... command
2. STO it in a variable
3. Load the file you want to translate
4. Run this program with the VAR menu softkey
5. STO the translated program in a variable (if wanted) or export it
with the Edit-Save Object... command
This can also be used on a real HP48 if you prefer to transfer ASCII
files via Xmodem, which doesn't do translation. However, it will be
very slow.
Unfortunately, this program sometimes fails on directories. I'm not
entirely sure why it doesn't work (since it properly imports some
directories) and don't have a solution at present. For these pesky
directories, you'll have to use your real HP48.
The commented System RPL source code is in emu48asc.src. This uses
two unsupported entry points, PTR 30477 and PTR 303AC, but they appear
stable and have been tested to work in revisions D, E, M, P, and R.
Program created by Eric Rechlin <eric@hpcalc.org> based on posts to
comp.sys.hp48 by John H Meyers <jhmeyers@mum.edu>. I would also like
to thank Christoph Giesselink for optimizing my program, saving about
20 bytes, as well as for correcting a major bug. The attached HP49G
version of this program is unsupported, use it on your own risk.
Revision 1.6, see http://www.hpcalc.org for updates.

Binary file not shown.

View file

@ -1,50 +0,0 @@
TITLE Emu49Asc ACSII<->Bin Converter
* Author: Christoph Giesselink
ASSEMBLE
NIBASC /HPHP49-B/
* Please don't blame me if this program destroy your memory content. The
* unsupported entry points are picked up from the beta ROM v1.19-6.
* These entry points may change in future and very important, they have
* changed in past! Use it on your own risk. Adjust the lines below to
* your used ROM version.
*=SetModes EQU #4649A (ROM 1.18, 1.19-4/5)
=SetModes EQU #4A3D4 (ROM 1.19-6)
*=RadixAngle$ EQU #463CF (ROM 1.18, 1.19-4/5)
=RadixAngle$ EQU #4A309 (ROM 1.19-6)
RPL
::
CK1NoBlame
CK&DISPATCH1
THREE ( String )
::
DUP ELEVEN 1_#1-SUB$ ( get first ten characters )
$ "%%HP:" ONE POS$ ( and look for the HP string)
DUP #0=?SKIP ( if found )
::
#5+ LAST$ ( remove it from original )
DUP ";" ONE POS$ ( search for end of modes )
2DUP #1+ LAST$ ( get the rest after modes )
UNROT 1_#1-SUB$ ( get the modes string )
SetModes ( set the current mode )
;
DROP ( drop position or flag )
KINVISLF DROP ( translate string )
palparse ( decode string )
NOTcase2DROP ( on fail -> DROP2 and exit )
DUP CARCOMP ' xSILENT' EQ ( heading xSILENT' object ? )
NOT?SEMI TWO NTHCOMPDROP ( yes, remove it )
;
ZERO ( Any Object )
::
EDITDECOMP$ ( make string )
KVISLF ( translate string )
$ "%%HP:" RadixAngle$ !append$ ( build file header with modes )
$ ";\0D\0A" !append$SWAP ( and CR+LF )
!append$ ( append program )
;
;

View file

@ -13,7 +13,7 @@ Global
Author "Casey Patterson" Author "Casey Patterson"
Model "G" Model "G"
Rom "ROM.48G" Rom "ROM.48G"
Patch "BEEP.EXT" Patch "BEEP.48"
Debug 0 Debug 0
Bitmap "float_gx.bmp" Bitmap "float_gx.bmp"
End End

399
JEMAC.KML
View file

@ -3,7 +3,7 @@ Global
Author "Jeffery L. McMahan" Author "Jeffery L. McMahan"
Model "G" Model "G"
Rom "ROM.48G" Rom "ROM.48G"
Patch "BEEP.EXT" Patch "BEEP.48"
Bitmap "jemac.bmp" Bitmap "jemac.bmp"
Debug 0 Debug 0
End End
@ -118,6 +118,79 @@ Annunciator 6
Down 84 708 Down 84 708
End End
Button 01 # SK1
Type 4
Size 42 14
Offset 34 201
Virtual
OnDown
Press 11
End
OnUp
Release 11
End
End
Button 02 # SK2
Type 4
Size 42 14
Offset 78 201
Virtual
OnDown
Press 12
End
OnUp
Release 12
End
End
Button 03 # SK3
Type 4
Size 42 14
Offset 122 201
Virtual
OnDown
Press 13
End
OnUp
Release 13
End
End
Button 04 # SK4
Type 4
Size 42 14
Offset 166 201
Virtual
OnDown
Press 14
End
OnUp
Release 14
End
End
Button 05 # SK5
Type 4
Size 42 14
Offset 210 201
Virtual
OnDown
Press 15
End
OnUp
Release 15
End
End
Button 06 # SK6
Type 4
Size 42 14
Offset 254 201
Virtual
OnDown
Press 16
End
OnUp
Release 16
End
End
Button 11 Button 11
Type 1 Type 1
Size 32 21 Size 32 21
@ -421,326 +494,4 @@ Button 95
OutIn 0 1 OutIn 0 1
End End
Include "Keyboard.kmi"
Scancode 8
Map 8 55
End
Scancode 13
Map 13 51
End
Scancode 16
IfPressed 16
SetFlag 0
Else
ResetFlag 0
End
End
Scancode 17
IfPressed 17
SetFlag 1
Else
ResetFlag 1
End
End
Scancode 27
Map 27 91
End
Scancode 32
Map 32 94
End
Scancode 37
Map 37 34
End
Scancode 38
Map 38 25
End
Scancode 39
Map 39 36
End
Scancode 40
Map 40 35
End
Scancode 48
Map 48 92
End
Scancode 49
IfFlag 0
Map 49 71
Map 49 54
Else
Map 49 82
End
End
Scancode 50
Map 50 83
End
Scancode 51
IfFlag 0
Map 51 81
Map 51 65
Else
Map 51 84
End
End
Scancode 52
Map 52 72
End
Scancode 53
Map 53 73
End
Scancode 54
Map 54 74
End
Scancode 55
Map 55 62
End
Scancode 56
IfFlag 0
Map 56 75
Else
Map 56 63
End
End
Scancode 57
IfFlag 0
Map 57 71
Map 57 65
Else
Map 57 64
End
End
Scancode 65
Map 65 11
End
Scancode 66
Map 66 12
End
Scancode 67
Map 67 13
End
Scancode 68
Map 68 14
End
Scancode 69
Map 69 15
End
Scancode 70
Map 70 16
End
Scancode 71
Map 71 21
End
Scancode 72
Map 72 22
End
Scancode 73
Map 73 23
End
Scancode 74
Map 74 24
End
Scancode 75
Map 75 25
End
Scancode 76
Map 76 26
End
Scancode 77
Map 77 31
End
Scancode 78
IfFlag 1
MenuItem 1
Else
Map 78 32
End
End
Scancode 79
Map 79 33
End
Scancode 80
Map 80 34
End
Scancode 81
Map 81 35
End
Scancode 82
Map 82 36
End
Scancode 83
Map 83 41
End
Scancode 84
Map 84 42
End
Scancode 85
Map 85 43
End
Scancode 86
Map 86 44
End
Scancode 87
Map 87 45
End
Scancode 88
Map 88 46
End
Scancode 89
Map 89 52
End
Scancode 90
Map 90 53
End
Scancode 96
Map 96 92
End
Scancode 97
Map 97 82
End
Scancode 98
Map 98 83
End
Scancode 99
Map 99 84
End
Scancode 100
Map 100 72
End
Scancode 101
Map 101 73
End
Scancode 102
Map 102 74
End
Scancode 103
Map 103 62
End
Scancode 104
Map 104 63
End
Scancode 105
Map 105 64
End
Scancode 106
Map 106 75
End
Scancode 107
Map 107 95
End
Scancode 109
Map 109 85
End
Scancode 110
Map 110 93
End
Scancode 111
Map 111 65
End
Scancode 186
IfFlag 0
Map 186 81
Map 186 95
End
End
Scancode 188
Map 188 71
Map 188 93
End
Scancode 190
Map 190 93
End
Scancode 191
IfFlag 0
Map 191 71
Map 191 55
Else
Map 191 65
End
End
Scancode 219
IfFlag 0
Map 219 71
Map 219 95
Else
Map 219 71
Map 219 75
End
End
Scancode 220
Map 220 54
End
Scancode 222
IfFlag 0
Map 222 81
Map 222 85
Else
Map 222 31
End
End

754
KML_20.DOC Normal file
View file

@ -0,0 +1,754 @@
{\rtf1\ansi\ansicpg1252\deff0\deflang1031\deflangfe1031{\fonttbl{\f0\froman\fprq2\fcharset0 Times New Roman;}{\f1\fmodern\fprq1\fcharset0 Courier New;}{\f2\fswiss\fprq2\fcharset0 Arial;}}
{\colortbl ;\red0\green0\blue0;\red0\green0\blue255;}
\viewkind4\uc1\pard\nowidctlpar\qc\lang1033\f0\fs56 EmuXY and KML 2.0\par
\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 of 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, Emu32 and Emu42, now makes it possible to change many advanced options of the way the emulator looks.\par
\pard\nowidctlpar\par
\b\fs40 Index\fs28\par
\b0\fs24\par
\pard\nowidctlpar\tx2880\tx3966 Basics\tab Page 1\par
Global\tab Page 2\par
Background\tab Page 5\par
\lang1036 LCD\tab Page 6\par
Digit\tab Page 8\par
\lang1040 Annunciator\tab Page 10\par
Button\tab Page 11\par
\lang1036 OutIn Codes\tab Page 13\par
Scancode\tab Page 21\par
\lang1033 Conclusion\b\fs28\tab\b0\fs24 Page 22\par
\pard\nowidctlpar\b\fs28\par
Basics\b0\par
\fs24\par
\pard\nowidctlpar\qj\tab A KML script file is a text file that the emulators use to set its screen layout and keyboard layout. A custom bitmap file can be created to be the \ldblquote faceplate\rdblquote of the calculator. KML defines the size and position of the screen, buttons, annunciators, and the Emu48 window. The \ldblquote #\rdblquote character can be used to add remarks to a line. The following sections describe each main block of the KML script.\par
\pard\nowidctlpar\par
\b\fs28\page Global\par
\b0\fs24\par
\pard\nowidctlpar\qj\tab The global section of the KML file tells the bitmap, title of the KML, and the Calculator hardware and the model. The following is the syntax.\par
\pard\nowidctlpar\par
\par
\f1\fs16 Global\par
\tab Title STRING\par
\tab Author STRING\par
\tab Hardware STRING\par
\tab Model STRING\par
\tab Class INTEGER\par
\tab Rom STRING\par
\tab Patch STRING\par
\tab Bitmap STRING\par
\tab Print STRING\par
\tab Debug INTEGER\par
End\par
\fs20\par
\par
\pard\nowidctlpar\qj\f0\fs24 Title is the title of the KML file that the emulator will use. This is not the filename.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Title \ldblquote John\rquote s Gx\rdblquote\par
\f0\fs24\par
\pard\nowidctlpar\qj Author is the author of the KML file.\par
\pard\nowidctlpar Example:\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
\f0\fs24 Emu32:\par
\f1\fs16\tab Hardware \ldblquote Sacajawea\rdblquote\par
\f0\fs24 Emu42:\par
\f1\fs16\tab Hardware \ldblquote Lewis\rdblquote\par
\f0\fs24 Emu48:\par
\f1\fs16\tab Hardware \ldblquote Yorke\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
\pard\nowidctlpar\fi720\qj\cf0\ldblquote P\rdblquote = HP28C\par
\pard\nowidctlpar\qj\cf1 Emu32:\par
\pard\nowidctlpar\fi720\qj\cf0\ldblquote M\rdblquote = HP14B\par
\ldblquote N\rdblquote = HP32SII\par
\pard\nowidctlpar\qj\cf1 Emu42:\par
\pard\nowidctlpar\fi720\qj\cf0\lang1031\ldblquote T\rdblquote = HP17B\par
\ldblquote U\rdblquote = HP17BII\par
\lang1033\ldblquote Y\rdblquote = HP19BII\par
\ldblquote M\rdblquote = HP27S\par
\ldblquote O\rdblquote = HP28S\par
\ldblquote D\rdblquote = HP42S\par
\pard\nowidctlpar\qj\cf1 Emu48:\par
\pard\nowidctlpar\fi720\qj\cf0\ldblquote 6\rdblquote = HP38G (64KB RAM)\par
\ldblquote A\rdblquote = HP38G\par
\ldblquote E\rdblquote = HP39G or HP40G\par
\ldblquote G\rdblquote = HP48G, HP48G+ or HP48GX\par
\ldblquote S\rdblquote = HP48S or HP48SX\par
\ldblquote X\rdblquote = HP49G\cf1\par
\pard\nowidctlpar\qj\cf0 Example:\par
\pard\nowidctlpar\f1\fs16\tab Model \ldblquote G\rdblquote\par
\f0\fs24\par
\pard\nowidctlpar\qj Class is used for different calculators base on the same ROM for further distinction. For other models than listed below this argument can be omitted. \cf1 Valid entries are:\par
Emu42:\par
\pard\nowidctlpar\fi720\qj\cf0\ldblquote 32\rdblquote = HP42S with 32KB RAM\par
\pard\nowidctlpar\qj\cf1 Emu48:\par
\pard\nowidctlpar\fi720\qj\cf0\ldblquote 39\rdblquote = HP39G\par
\ldblquote 40\rdblquote = HP40G\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Class 39\par
\f0\fs24\par
\pard\nowidctlpar\qj Rom is the name of your ROM file.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Rom \ldblquote ROM.48G\rdblquote\par
\f0\fs24\par
\pard\nowidctlpar\qj\page Patch is the name of a ROM patch file. \cf1 Any file with correct syntax can be used as a patch file. Multiple Patch lines can be used, and all files will be loaded in the order in which they are declared. Important: They MUST appear after the Rom command.\par
\cf0 Example:\par
\pard\nowidctlpar\f1\fs16\tab Patch \ldblquote BEEP.EXT\rdblquote\par
\pard\nowidctlpar\qj\f0\fs24\par
Bitmap is the bitmap file that will be the \ldblquote faceplate\rdblquote\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Bitmap \ldblquote mygx.bmp\rdblquote\par
\pard\nowidctlpar\qj\f0\fs24\par
Print will display a string when the KML file is loaded. You can have as many of these as necessary. They are more effective if you put them before the other settings.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Print \ldblquote My homepage is at http://www.gulftel.com/~pattersc/emu48/\rdblquote\par
\pard\nowidctlpar\qj\f0\fs24\par
Debug sets the emulator to return an information message box telling the scancode number of the keyboard key pressed when the scancode number isn\rquote t defined. Valid entries are 0 or 1. One is on and Zero is off.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Debug 1\par
\f0\fs24\par
\b\fs28\page Background\par
\b0\fs24\par
\tab This section sets where the background bitmap will be placed and the size of the emulator window.\par
\par
\par
\f1\fs16 Background\par
\tab Vga INTEGER\par
\tab Topbar INTEGER\par
\tab Offset INTEGER INTEGER\par
\tab Size INTEGER INTEGER\par
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 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 that the bitmap size.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Size 302 485\par
\f0\fs24\par
\pard\nowidctlpar\qj Vga is a special command only for the Pocket PC versions of Emu32, Emu42 and Emu48 to enable/disable the use of VGA screen resolution on a VGA capable Pocket PC. Valid entries are 0 or 1. One is the VGA mode with 640x480 pixel and Zero is the QVGA mode with 320x240 pixel.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Vga 1\par
\f0\fs24\par
\pard\nowidctlpar\qj Topbar is a special command only for the Pocket PC versions of Emu32, Emu42 and Emu48 to enable/disable the topbar of the screen. Valid entries are 0 or 1. One is enabled and Zero is disabled.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Topbar 0\par
\f0\fs24\par
\b\fs28\page LCD\par
\fs24\par
\b0\tab This section set the size, position and contrast setting of the LCD screen.\b\par
\b0\par
\par
\lang1031\f1\fs16 Lcd\par
\tab Zoom INTEGER\par
\tab Vertical INTEGER\par
\tab Offset INTEGER INTEGER\par
\tab Color INTEGER INTEGER INTEGER INTEGER\par
\lang1033 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 and Emu48 and will be ignored on Emu10 and Emu32. Valid entries are 1, 2, 3 or 4. Zoom factor two is usually used by the dot matrix LCD types emulated by Emu28, Emu42 and Emu48.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Zoom 2\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 Example:\par
\f1\fs16\tab Offset 20 20\par
\f0\fs24\par
\pard\nowidctlpar\qj Color sets the color of the LCD display for different contrast settings. The first Integer is the contrast setting for each possible value. The number of settings depend on the hardware type.\par
Emu10:\par
\pard\nowidctlpar\fi720\qj 0-7 = 0 is lightest, 7 is darkest\par
\pard\nowidctlpar\qj Emu32:\par
\pard\nowidctlpar\fi720\qj 0-15 = foreground colors (Pixel on), 0 is lightest, 15 is darkest\par
16-31 = background colors (Pixel off), 16 corresponds to 0, 17 to 1, \'85\par
unused number at background colors = transparent\par
\pard\nowidctlpar\qj\lang1031 Emu28, Emu42, Emu48:\par
\pard\nowidctlpar\fi720\qj\lang1033 0-31 = foreground colors (Pixel on), 0 is lightest, 15 is darkest\par
32-63 = background colors (Pixel off), 32 corresponds to 0, 33 to 1, \'85\par
unused number at background colors = use color defined by setting 0\par
\pard\nowidctlpar\qj\par
You should include one line for every foreground color setting. But the calculator Rom bounds the contrast setting with the keyboard to useful values. The HP48S/SX Rom use values between 3 and 19, the HP48G/GX Rom use values between 9 and 24. Remember this when you write the color table please. 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. If the background color for the contrast setting isn't defined, color 0 is used by the emulators Emu28, Emu42 and Emu48 and transparent mode by Emu32.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Color 0 255 255 255\par
\tab Color 1 220 220 220\par
\tab\'85\par
\tab Color 30 10 10 10\par
\tab Color 31 0 0 0\par
\tab Color 32 255 255 255\tab # optional background color for contrast setting\par
\f0\fs24\par
\pard\nowidctlpar\qj Vertical is a special command only for the Pocket PC versions of Emu42 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
\f1\fs16\tab Vertical 1\par
\f0\fs24\par
\page\b\fs28 Digit\par
\fs24\par
\pard\nowidctlpar\qj\b0\tab This section is only valid for Emu10 and Emu32 and describes the (alpha-) numeric part of the LCD screen.Emu10 and Emu32 use different methods for creating a numeric value.\b\par
\pard\nowidctlpar\b0\par
\par
\lang1031\f1\fs16 Digit\par
\tab Offset INTEGER INTEGER\par
\tab\lang1033 Size INTEGER INTEGER\par
\tab Distance INTEGER\par
\tab Bitmap STRING\par
End\par
\f0\fs24\par
\par
Emu10:\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
\par
\pard\nowidctlpar\qj Distance is the distance in pixel between the beginnings of each digit, so only one description for a digit is necessary.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Distance 18\tab\tab # distance between digits\par
\f0\fs24\par
\pard\nowidctlpar\qj Bitmap is an optional command for including an external annunciator bitmap instead of using the annunciators in the background bitmap.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Bitmap \ldblquote mylcd.bmp\rdblquote\par
\f0\fs24\par
Emu32:\par
The mid range Pioneer series use a 5x7 pixel dot matrix for each digit.\par
\par
Size is the size of one pixel in the LCD screen. Width Height.\par
Example:\par
\f1\fs16\tab Size 3 4\tab\tab # size of LCD pixel\par
\f0\fs24\par
Size is the Size of the annunciator in pixels. Width Height.\par
Example:\par
\f1\fs16\tab Size 16 11\par
\f0\fs24\par
Offset is the position of the first digit inside the display area.\par
Example:\par
\f1\fs16\tab Offset 17 13\tab\tab # position of 1st digit\par
\f0\fs24\par
Distance set the distance in pixel between the beginnings of each digit.\par
Example:\par
\f1\fs16\tab Distance 21\tab\tab # distance between digits\par
\f0\fs24\par
\pard\nowidctlpar\qj Bitmap is an optional command for including an external annunciator bitmap instead of using the annunciators in the background bitmap.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Bitmap \ldblquote mylcd.bmp\rdblquote\par
\f0\fs24\par
\b\fs28\page Annunciator\par
\b0\fs24\par
\pard\nowidctlpar\qj\tab Annunciators are the 23 (Emu10), 60 (Emu32), six (Emu48) and seven (Emu28, Emu42) 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
\tab Size INTEGER INTEGER\par
\tab Offset INTEGER INTEGER\par
\tab\lang1033 Down INTEGER INTEGER\par
End\par
\f0\fs24\par
\par
\pard\nowidctlpar\qj Annunciator tells which annunciator you are setting. Valid entries are emulator depending and can vary from 1 through 6, 7, 23 or 60. The annunciator symbol itself depends on the specific LCD of the calculator. Refer to existing KML scripts for getting the symbol of each annunciator.\par
\pard\nowidctlpar Example:\par
\pard\nowidctlpar\fi720\f1\fs16 Annunciator 1\par
\pard\nowidctlpar\f0\fs24\par
Size is the size of the annunciator in pixels. Width Height.\par
Example:\par
\f1\fs16\tab Size 16 11\par
\f0\fs24\par
Offset is the position that the annunciator will be displayed. This is the blank part.\par
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 Emu32 the annunciators must be drawn in black on a white background. On Emu28 and Emu42 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
\b\fs28\page Button\par
\b0\fs24\par
\tab Button sets the position of the button and what the button does.\par
\par
\lang1031\f1\fs16 Button INTEGER\par
\tab Type INTEGER\par
\tab Size INTEGER INTEGER\par
\tab Offset INTEGER INTEGER\par
\tab\lang1033 Down INTEGER INTEGER\par
\tab OutIn INTEGER INTEGER\par
\tab Virtual\par
\tab NoHold\par
\tab OnUp\par
\tab <Commands>\par
\tab End\par
\tab OnDown\par
\tab <Commands>\par
\tab End\par
End\par
\f0\fs24\par
\par
\pard\nowidctlpar\qj Button tells the number of the button you are creating. This can be any number. Most of the time this \cf1 is set to a number that represents the row and column of the button. Any number can be used, but only 256 buttons can be declared. If more buttons are declared, only the first 256 will be used, and the others will be ignored.\par
\pard\nowidctlpar Example:\par
\pard\nowidctlpar\fi720\cf0\f1\fs16 Button 11\par
\pard\nowidctlpar\f0\fs24\par
\pard\nowidctlpar\qj Type tells how the button will behave when it is pressed. Valid entries are 0, 1, 2, 3, 4, or 5. \cf1 Type 0 sets it to recognize the Up and Down option. Type 1 sets it to only recognize the Up setting and use a default button effect. Type 2 makes the button look the same when pressed. Type 3 is used for the LCD screen and will invert that area. Type 4 is also used for the LCD screen and it will show the bitmap behind it while pressed. Type 5 draws a transparent circle with a diameter of the size height parameter into the middle of the button area.\par
\pard\nowidctlpar Example:\par
\cf0\f1\fs16\tab Type 0\par
\f0\fs24\par
Size sets the size of the button. Width height.\par
Example:\par
\f1\fs16\tab Size 36 25\par
\f0\fs24\par
Offset sets the position of the button. This is when it is not pressed. Pixels right and pixels down.\par
Example:\par
\f1\fs16\tab Offset 8 158\f0\par
\fs24\par
\pard\nowidctlpar\qj Down sets the picture of the down button. This is only needed if type 0 is set. Pixels right and pixels down.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab Down 302 25\par
\f0\fs24\par
\pard\nowidctlpar\qj OutIn tells Emu48 which button is being pressed. A table of OutIn codes are on the next page of this document.\par
\pard\nowidctlpar Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab OutIn 1 16\par
\f0\fs24\par
Virtual mode should be used for buttons that duplicate the function of a HP48 button. This type of button cannot be held down. A OnDown event is generated when the button pressed. A OnUp event is generated when the button is released.\cf1\par
Example:\par
\tab\f1\fs16 Virtual\par
\f0\fs24\par
NoHold will keep a button from sticking in the down position. It only generates an OnUp event.\par
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
Example:\par
\f1\fs16\tab OnDown\par
\pard\nowidctlpar\tab\tab Press 81\par
\tab\tab Press 63\par
\pard\nowidctlpar\qj\tab End\par
\tab OnUp\par
\pard\nowidctlpar\tab\tab Release 63\par
\tab\tab Release 81\par
\pard\nowidctlpar\qj\fs20\tab End\par
\b\f0\fs28\par
\page OutIn Codes HP10B\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 N\cell I/YR\cell PV\cell PMT\cell\lang1031 FV\cell SUM+\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 %\cell RCL\cell\lang1036 CFj\cell CST\cell PRC\cell\lang1033 MAR\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell ->M\cell RM\cell M+\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 +/-\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 K\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\cell\lang1036 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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 OutIn Codes HP14B\par
\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 N\cell I/YR\cell PV\cell PMT\cell\lang1040 FV\cell SUM+\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 16\cell 1 16\cell 2 16\cell 5 15\cell 4 16\cell 3 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell RCL\cell\lang1036 CST\cell PRC\cell MAR\cell\lang1033 STAT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 1\cell 1 1\cell 2 1\cell 5 1\cell 4 1\cell 3 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell +/-\cell (\cell )\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 1 4\cell 2 4\cell 5 4\cell 4 4\cell 3 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 %\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 2\cell\cell 2 2\cell 5 2\cell 4 2\cell 3 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 8\cell\cell 2 8\cell 5 8\cell 4 8\cell 3 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\cell\lang1036 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32\cell\cell 2 32\cell 5 32\cell 4 32\cell 3 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell\cell 2 64\cell 5 54\cell 4 64\cell 3 64\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28\page OutIn Codes HP17B / HP17BII\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell ^\cell ^\cell ^\cell ^\cell ^\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell\lang1036 RCL\cell %\cell DSP\cell PRT\cell\lang1033 EXIT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell +/-\cell (\cell )\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell B\cell C\cell D\cell E\cell F\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 G\cell\lang1040 H\cell I\cell J\cell K\cell L\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 M\cell N\cell O\cell\lang1036 P\cell Q\cell R\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 S\cell T\cell U\cell V\cell W\cell X\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 256\cell 3 2048\cell 3 64\cell 4 32\cell 4 1\cell 4 1024\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 Y\cell\lang1040 Z\cell ?\cell $\cell #\cell :\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SPACE\cell INS\cell DEL\cell\lang1033 <-\cell ->\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\b\f2 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24\cell\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 2\cell 7 128\cell 7 512\cell 7 4\cell 7 8\cell 7 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\lang1040 STO\cell RCL\cell DISP\cell\lang1033 PRNT\cell EXIT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 6 2\cell 6 128\cell 6 512\cell 6 4\cell 6 8\cell 6 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell +/-\cell (\cell )\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 6 128\cell 5 512\cell 5 4\cell 5 8\cell 5 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 2\cell\cell 4 128\cell 4 512\cell 4 4\cell 4 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 2\cell\cell 3 128\cell 3 512\cell 3 4\cell 3 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 %\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ON\cell O\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell 1 128\cell 1 512\cell 1 4\cell 1 8\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28\page OutIn Codes HP20S / HP21S\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SQR(X)\cell\lang1040 e^X\cell LN\cell\lang1036 Y^X\cell 1/X\cell\lang1040 SUM+\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell RCL\cell\lang1033 SIN\cell COS\cell TAN\cell R/S\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell\lang1036 +/-\cell (\cell )\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 XEQ\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 <-\\\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 /->\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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 OutIn Codes HP27S\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell ^\cell ^\cell ^\cell ^\cell ^\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell\lang1040 RCL\cell SIN\cell COS\cell\lang1033 TAN\cell EXIT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INPUT\cell +/-\cell (\cell )\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\cell\lang1036 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 C\cell\cell 0\cell .\cell =\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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 HP28C\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell\lang1040 B\cell C\cell D\cell E\cell\lang1033 F\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 6 16\cell 6 32\cell 6 2048\cell 6 1024\cell 6 512\cell 6 128\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 G\cell H\cell\lang1040 I\cell J\cell K\cell\lang1031 L\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 16\cell 5 32\cell 5 2048\cell 5 1024\cell 5 512\cell 5 128\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 M\cell N\cell\lang1040 O\cell P\cell Q\cell\lang1033 R\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 4 32\cell 4 2048\cell 4 1024\cell 4 512\cell 4 128\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 S\cell T\cell\lang1031 U\cell V\cell W\cell\lang1036 X\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 16\cell 3 32\cell 3 2048\cell 3 1024\cell 3 512\cell 3 128\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 Y\cell Z\cell\lang1033 #\cell\{\cell [\cell (\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 16\cell 2 32\cell 2 2048\cell 2 1024\cell 2 512\cell 2 128\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SPACE\cell <<\cell =\cell LC\cell ALPHA\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 1 32\cell 1 2048\cell 1 1024\cell 1 512\cell 1 128\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\b\f2 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INS\cell DEL\cell ^\cell v\cell <\cell >\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 256\cell 7 64\cell 7 8\cell 7 1\cell 7 2\cell 7 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell <^v>\cell TRIG\cell SOLV\cell USER\cell NEXT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\lang1031\b0\fs20 6 256\cell 6 64\cell 6 8\cell 6 1\cell 6 2\cell 6 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ENTER\cell CHS\cell EEX\cell\lang1040 DROP\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 5 8\cell 5 1\cell 5 2\cell 5 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 '\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 256\cell\cell 4 64\cell 4 8\cell 4 1\cell 4 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell\cell\lang1033 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 256\cell\cell 3 64\cell 3 8\cell 3 1\cell 3 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 EVAL\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 256\cell\cell 2 64\cell 2 8\cell 2 1\cell 2 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ON\cell O\cell .\cell ,\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell 1 64\cell 1 8\cell 1 1\cell 1 2\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28\page OutIn Codes HP28S\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell B\cell C\cell D\cell E\cell F\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 G\cell\lang1040 H\cell I\cell J\cell K\cell L\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 M\cell N\cell O\cell\lang1036 P\cell Q\cell R\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 S\cell T\cell U\cell V\cell W\cell X\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 256\cell 3 2048\cell 3 64\cell 4 32\cell 4 1\cell 4 1024\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 Y\cell\lang1033 Z\cell #\cell\{\cell [\cell (\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SPACE\cell <<\cell =\cell LC\cell ALPHA\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\b\f2 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 INS\cell DEL\cell ^\cell v\cell <\cell >\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 2\cell 7 128\cell 7 512\cell 7 4\cell 7 8\cell 7 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell <^v>\cell TRIG\cell SOLV\cell USER\cell NEXT\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\lang1031\b0\fs20 6 2\cell 6 128\cell 6 512\cell 6 4\cell 6 8\cell 6 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ENTER\cell CHS\cell EEX\cell\lang1040 DROP\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 6 128\cell 5 512\cell 5 4\cell 5 8\cell 5 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 '\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 2\cell\cell 4 128\cell 4 512\cell 4 4\cell 4 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell\cell\lang1036 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 2\cell\cell 3 128\cell 3 512\cell 3 4\cell 3 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 EVAL\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 2\cell\cell 2 128\cell 2 512\cell 2 4\cell 2 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ON\cell O\cell .\cell ,\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell 1 128\cell 1 512\cell 1 4\cell 1 8\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28\page OutIn Codes HP32SII\par
\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SQr(X)\cell\lang1040 e^X\cell LN\cell\lang1036 Y^X\cell 1/X\cell\lang1040 SUM+\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell RCL\cell Rv\cell SIN\cell COS\cell\lang1036 TAN\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ENTER\cell X<>Y\cell\lang1040 +/-\cell E\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 1\cell 3 1\cell 2 1\cell 1 1\cell 0 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 XEQ\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 <-\\\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 16\cell\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 /->\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 EXIT\cell\cell\lang1033 0\cell .\cell R/S\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28 OutIn Codes HP42S\par
\pard\nowidctlpar\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\f2\fs24 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SUM+\cell\lang1040 1/X\cell SQR(X)\cell LOG\cell LN\cell XEQ\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 64\cell 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 STO\cell RCL\cell Rv\cell SIN\cell COS\cell\lang1036 TAN\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 32\cell 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ENTER\cell X<>Y\cell\lang1031 +/-\cell E\cell <-\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ^\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 8\cell\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 v\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 4\cell\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 SHIFT\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 2\cell\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 EXIT\cell\cell\lang1036 0\cell .\cell R/S\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\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 HP48SX (HP48GX / HP38G)\par
\pard\nowidctlpar\b0\fs24\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\b\f2 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell\lang1040 B\cell C\cell D\cell E\cell\lang1033 F\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 1 16\cell 8 16\cell 8 8\cell 8 4\cell 8 2\cell 8 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 G\cell H\cell\lang1040 I\cell J\cell K\cell\lang1031 L\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 16\cell 7 16\cell 7 8\cell 7 4\cell 7 2\cell 7 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 M\cell N\cell\lang1040 O\cell P\cell Q\cell\lang1033 R\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 16\cell 6 16\cell 6 8\cell 6 4\cell 6 2\cell 6 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 S\cell T\cell\lang1031 U\cell V\cell W\cell\lang1036 X\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 16\cell 5 16\cell 5 8\cell 5 4\cell 5 2\cell 5 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ENTER\cell Y\cell\lang1040 Z\cell DEL\cell DROP\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\lang1033\b0\fs20 4 16\cell 4 8\cell 4 4 \cell 4 2\cell 4 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell\cell 7\cell 8\cell 9\cell /\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 3 32\cell\cell 3 8\cell 3 4\cell 3 2\cell 3 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 <-\\\cell\cell 4\cell 5\cell 6\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 32\cell\cell 2 8\cell 2 4\cell 2 2\cell 2 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 /->\cell\cell 1\cell 2\cell 3\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 1 32\cell\cell 1 8\cell 1 4\cell 1 2\cell 1 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ON\cell\cell 0\cell .\cell SPC\cell\lang1036 +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrb\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell\cell 0 8\cell 0 4\cell 0 2\cell 0 1\cell\row
\pard\nowidctlpar\cf0\f0\fs24\par
\pard\nowidctlpar\qj\b\fs28 OutIn Codes HP49G (HP39G / HP40G)\par
\pard\nowidctlpar\b0\fs24\par
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf2\lang1033\b\f2 Key\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\cf1\b\fs20 OutIn\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\cellx978\cellx1986\cellx2994\cellx4002\cellx5010\cellx6018\pard\intbl\b\fs16\cell\b0\cell\cell\cell\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 A\cell\lang1040 B\cell C\cell D\cell E\cell\lang1033 F\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx978\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1986\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2994\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4002\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5010\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 1\cell 5 2\cell 5 4\cell 5 8\cell 5 16\cell 5 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4404\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5211\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 G\cell H\cell\lang1040 I\cell\cell ^\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4404\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5211\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 5 128\cell 4 128\cell 3 128\cell\cell 6 8\cell\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4404\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5211\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 J\cell K\cell L\cell <\cell v\cell >\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4404\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx5211\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 2 128\cell 1 128\cell 0 128\cell 6 4\cell 6 2\cell 6 1\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 M\cell N\cell O\cell P\cell DEL\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 64\cell 3 64\cell 2 64\cell 1 64\cell 0 64\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 Q\cell R\cell\lang1036 S\cell T\cell U\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 32\cell 3 32\cell 2 32\cell 1 32\cell 0 32\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 V\cell W\cell X\cell Y\cell\lang1033 Z\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 4 16\cell 3 16\cell 2 16\cell 1 16\cell 0 16\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ALPHA\cell 7\cell 8\cell 9\cell *\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 8\cell 3 8\cell 2 8\cell 1 8\cell 0 8\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 <-\\\cell 4\cell 5\cell 6\cell -\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 4\cell 3 4\cell 2 4\cell 1 4\cell 0 4\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 /-.>\cell 1\cell 2\cell 3\cell +\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 7 2\cell 3 2\cell 2 2\cell 1 2\cell 0 2\cell\row
\trowd\trgaph30\trleft-30\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrt\brdrw30\brdrs\clbrdrl\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf2\b\fs24 ON\cell 0\cell .\cell SPC\cell ENTER\cell\row
\trowd\trgaph30\trleft-30\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx1179\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx2389\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx3598\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx4808\clbrdrl\brdrw30\brdrs\clbrdrb\brdrw30\brdrs\clbrdrr\brdrw30\brdrs \cellx6018\pard\intbl\cf1\b0\fs20 0 32768\cell 3 1\cell 2 1\cell 1 1\cell 0 1\cell\row
\pard\nowidctlpar\cf0\b\f0\fs28\page Scancode\b0\fs24\par
\par
\pard\nowidctlpar\qj\tab The Scancode defines what the emulator will do when a certain key on the keyboard is pressed. Pressing a key that has no scancode defined will (only if debug mode is on) display a message box with the key's scancode number, so that you can write a Scancode block. The commands in the Scancode block are executed twice, first when the key is pressed and a second time when the key is released. Flags can help to transfer information (for example can be set to show that a shift key is pressed) from one Scancode block to another. Valid flags are 0-31.\par
\pard\nowidctlpar\par
\f1\fs16 Scancode INTEGER\par
\tab <COMMANDS>\par
End\par
\f0\fs24\par
Valid Commands\par
\par
\f1\fs16\tab Map INTEGER INTEGER\par
or\par
\tab Press INTEGER\par
or\par
\tab Release INTEGER\par
or\par
\tab IfPressed INTEGER\par
\tab\tab <COMMANDS>\par
\tab Else\par
\tab\tab <COMMANDS>\par
\tab End\par
or\par
\tab\lang1031 SetFlag INTEGER\par
or\par
\tab ResetFlag INTEGER\par
\lang1033 or\par
\tab NotFlag INTEGER\par
or\par
\tab IfFlag INTEGER\par
\pard\nowidctlpar\fi720\tab <COMMANDS>\par
\pard\nowidctlpar\tab Else\par
\tab\tab <COMMANDS>\par
\tab End\par
or\par
\tab MenuItem INTEGER\par
\par
\pard\nowidctlpar\qj\f0\fs24 Map <SCANCODE> <BUTTON> will map the state (pressed or released) of the key <SCANCODE> (defined by the "Scancode <SCANCODE>" block) to the button <BUTTON> (defined by the "Button <BUTTON>" block). This means when Map is called in the key pressing state the Button is pressed else, when Map is called in the key releasing state, the Button is released.\par
\pard\nowidctlpar Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab Map 51 11\par
\pard\nowidctlpar\f0\fs24\par
Press <BUTTON> will press the button defined by the "Button <BUTTON>" block.\par
Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab Press 11\par
\pard\nowidctlpar\f0\fs24\par
Release <BUTTON> will release the button defined by the "Button <BUTTON>" block.\par
Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab Release 11\par
\pard\nowidctlpar\f0\fs24\par
\pard\nowidctlpar\qj IfPressed <SCANCODE> tests if Scancode block is called by a key press or a key release. If the block is called by a key press, the command lines behind IfPressed are executed until a Else or End command is reached. If the block is called by a key release, all command lines between Else and the corresponding End are executed.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab IfPressed 51\par
\tab\tab Map 51 11\par
\tab Else\par
\tab\tab Map 51 12\par
\tab End\f0\fs24\par
\par
SetFlag <FLAGNO> will set an internal flag.\par
Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab SetFlag 1\par
\pard\nowidctlpar\f0\fs24\par
ResetFlag <FLAGNO> will clear an internal flag.\par
Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab ResetFlag 1\par
\pard\nowidctlpar\f0\fs24\par
NotFlag <FLAGNO> will invert the state of an internal flag.\par
Example:\par
\pard\nowidctlpar\qj\f1\fs16\tab NotFlag 1\par
\pard\nowidctlpar\f0\fs24\par
\pard\nowidctlpar\qj IfFlag <FLAGNO> tests the state of the flag. If the Flag is set, the command lines behind IfFlag are executed until a Else or End command is reached. If the Flag is not set, all command lines between Else and the corresponding End are executed.\par
\pard\nowidctlpar Example:\par
\f1\fs16\tab IfFlag 1\par
\tab\tab Map 51 11\par
\tab Else\par
\tab\tab Map 51 12\par
\tab End\f0\fs24\par
\par
MenuItem will open a menu (only if it\rquote s supported). The following values are accepted:\par
\par
\pard\nowidctlpar\fi720\cf1\f1\fs16 FILE_NEW 1\par
FILE_OPEN 2\par
FILE_SAVE 3\par
FILE_SAVEAS 4\par
FILE_EXIT 5\par
EDIT_COPY_SCREEN 6\par
FILE_SETTINGS 7\par
EDIT_RESET 8\par
EDIT_LOAD_OBJECT 9\par
EDIT_SAVE_OBJECT 10\par
HELP_ABOUT 11\par
HELP_TOPICS 12\par
FILE_CLOSE 13\par
EDIT_BACKUP_SAVE 14\par
EDIT_BACKUP_RESTORE 15\par
EDIT_BACKUP_DELETE 16\par
VIEW_SCRIPT 17\par
EDIT_COPY_STRING 19\par
EDIT_PASTE_STRING 20\par
TOOL_DISASM 21\par
TOOL_DEBUG 22\par
TOOL_MACRO_RECORD 23\par
TOOL_MACRO_PLAY 24\par
TOOL_MACRO_STOP 25\par
TOOL_MACRO_SETTINGS 26\par
\pard\nowidctlpar\f0\fs24\par
\cf0\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\par
I\rquote m sorry, the authors can\rquote t give any individual support, try the newsgroup comp.sys.hp48 please.\par
\par
\par
The latest updates are available at:\par
\par
\b Christoph Gie\'dfelink\par
\pard\nowidctlpar\fi720\b0 c.giesselink@gmx.de\par
\pard\nowidctlpar\par
\pard\nowidctlpar\fi720 Christoph Giesselink Main Page\par
http://privat.swol.de/ChristophGiesselink/\par
\pard\nowidctlpar\par
}

View file

@ -1,13 +1,18 @@
Scancode 8 Scancode 8 # <-
Map 8 55 Map 8 55
End End
Scancode 13 Scancode 9 # Tab
Map 9 61
End
Scancode 13 # Enter
Map 13 51 Map 13 51
End End
Scancode 16 Scancode 16 # Shift
Map 16 71
IfPressed 16 IfPressed 16
SetFlag 0 SetFlag 0
Else Else
@ -15,7 +20,8 @@ Scancode 16
End End
End End
Scancode 17 Scancode 17 # Control
Map 17 81
IfPressed 17 IfPressed 17
SetFlag 1 SetFlag 1
Else Else
@ -23,11 +29,11 @@ Scancode 17
End End
End End
Scancode 27 Scancode 27 # Esc
Map 27 91 Map 27 91
End End
Scancode 32 Scancode 32 # Space
Map 32 94 Map 32 94
End End
@ -60,6 +66,10 @@ Scancode 49
End End
End End
Scancode 46 # Delete
Map 46 54
End
Scancode 50 Scancode 50
Map 50 83 Map 50 83
End End
@ -274,12 +284,6 @@ Scancode 111
Map 111 65 Map 111 65
End End
Scancode 144
IfPressed 144
NotFlag 3
End
End
Scancode 186 Scancode 186
IfFlag 0 IfFlag 0
Map 186 81 Map 186 81
@ -338,10 +342,6 @@ Scancode 219
End End
End End
Scancode 220
Map 220 54
End
Scancode 222 Scancode 222
IfFlag 0 IfFlag 0
Map 222 81 Map 222 81

Binary file not shown.

View file

@ -1,4 +1,4 @@
Known bugs and restrictions of Emu48 V1.41 Known bugs and restrictions of Emu48 V1.42
------------------------------------------ ------------------------------------------
- the following I/O bits aren't emulated (incomplete) - the following I/O bits aren't emulated (incomplete)
@ -53,4 +53,4 @@ Known bugs and restrictions of Emu48 V1.41
- quitting the emulator while programming the flash isn't allowed, - quitting the emulator while programming the flash isn't allowed,
because the content of flash state machine isn't saved so far because the content of flash state machine isn't saved so far
04/18/06 (c) by Christoph Gießelink, c dot giesselink at gmx dot de 08/22/06 (c) by Christoph Gießelink, c dot giesselink at gmx dot de

View file

@ -13,7 +13,7 @@ Global
Author "Casey Patterson" Author "Casey Patterson"
Model "G" Model "G"
Rom "ROM.48G" Rom "ROM.48G"
Patch "BEEP.EXT" Patch "BEEP.48"
Bitmap "realgx.bmp" Bitmap "realgx.bmp"
Debug 0 Debug 0
End End

View file

@ -13,7 +13,7 @@ Global
Author "Casey Patterson" Author "Casey Patterson"
Model "S" Model "S"
Rom "ROM.48S" Rom "ROM.48S"
Patch "BEEP.EXT" Patch "BEEP.48"
Bitmap "realsx.bmp" Bitmap "realsx.bmp"
Debug 0 Debug 0
End End

View file

@ -1,3 +1,75 @@
Service Pack 42 for Emu48 Version 1.0
EMU48.C
- bugfix in function OnViewScript(), removed error message because
it's wrong when script is ok, but log report was leaved with
Cancel button, also if clause of error message box was never
reached because error message box had no Cancel button
- changed function OnViewScript(), added call of
SetWindowPathTitle() to adjust length of window title
- changed function WinMain(), simplified document loading at startup
and replaced full filename title with length cut filename
EMU48.H
- extern declaration of global functions
EMU48.RC
- changed version
FETCH.C
- changed function EvalOpcode(), included assertion for detecting
access to packed memory data
FILES.C
- moved function WriteStack() inside file
- added new function GetCutPathName(), creating a length cut
filename
- added new function SetWindowPathTitle(), replacement for calling
SetWindowTitle() for getting length cut filenames as title
- changed function OpenDocument(), SaveDocumentAs() and
RestoreBackup(), replaced call of function SetWindowTitle() with
SetWindowPathTitle()
- changed function GetOpenFilename(), GetSaveAsFilename(),
GetLoadObjectFilename() and GetSaveObjectFilename(), moved
storage place of local file buffer from heap to stack
I28F160.C
- bugfix in function WrStateE8N(), removed "Write to Buffer command
failed when requesting for the buffer length" code part introduced
in SP27; this was in reality a workaround for the actually fixed
Nwrite() flash access bug and illegal data length information
wasn't handled correctly
IO.H
- added DISP1CTL, LINENIBS, DISP2CTL and BAUD bit definitions
KML.C
- added keyword "Menubar" to pLexToken[] table -> scripts using this
keyword are parsed with a warning but not with a fatal error
- changed function CreateKmlList(), select only KML files with a
valid Model statement
- bugfix in function Lex(), EOF without LF at end of non empty line
wasn't detected as EOL
KML.H
- added TOK_MENUBAR definition
MOPS.C
- bugfix in function UckBit(), when UART is off then the UCK bit
was always cleared, but it's always set
- bugfix in function Npeek(), Nread() and Nwrite(), flash access
over a 2KB MMU boundary caused problems in some cases
- bugfix in function WriteIO(), race condition when clearing the SON
bit in the IOC (0x110) register, the UART was still working so the
cleared IOC (0x110), RCS (0x111), TCS (0x112), RBR (0x114,0x115)
and TBR (0x116,0x117) register can be overwritten by the serial
thread
SERIAL.C
- bugfix in function CommOpen(), method of port closing was illegal
because COM port dependent threads hadn't been stopped
Service Pack 41 for Emu48 Version 1.0 Service Pack 41 for Emu48 Version 1.0
DDESERV.C DDESERV.C

View file

@ -13,7 +13,7 @@
#include "kml.h" #include "kml.h"
#include "debugger.h" #include "debugger.h"
#define VERSION "1.41" #define VERSION "1.42"
#define CF_HPOBJ "CF_HPOBJ" // clipboard format for DDE #define CF_HPOBJ "CF_HPOBJ" // clipboard format for DDE
#define MAXPORTS 256 // number of COM ports #define MAXPORTS 256 // number of COM ports
@ -714,7 +714,7 @@ static LRESULT OnDropFiles(HANDLE hFilesInfo)
KeyboardEvent(TRUE,0,0x8000); KeyboardEvent(TRUE,0,0x8000);
KeyboardEvent(FALSE,0,0x8000); KeyboardEvent(FALSE,0,0x8000);
// wait for sleep mode // wait for sleep mode
while(Chipset.Shutdn == FALSE) Sleep(0); while (Chipset.Shutdn == FALSE) Sleep(0);
cancel: cancel:
bDbgAutoStateCtrl = TRUE; // enable automatic debugger state control bDbgAutoStateCtrl = TRUE; // enable automatic debugger state control
@ -994,21 +994,14 @@ static LRESULT OnViewScript(VOID)
return 0; return 0;
} }
SwitchToState(SM_INVALID); SwitchToState(SM_INVALID);
retry:
if (!DisplayChooseKml(cType)) goto ok; do
if (!InitKML(szCurrentKml,FALSE))
{ {
if (AbortMessage(_T("This KML Script has errors.\nPress Ok to try to find a correct script."))==IDCANCEL) if (!DisplayChooseKml(cType)) break;
{
if (szCurrentFilename[0])
OnFileSave();
else
OnFileSaveAs();
goto ok;
}
goto retry;
} }
ok: while(!InitKML(szCurrentKml,FALSE));
SetWindowPathTitle(szCurrentFilename); // update window title line
if (pbyRom) SwitchToState(SM_RUN); if (pbyRom) SwitchToState(SM_RUN);
return 0; return 0;
} }
@ -1061,7 +1054,7 @@ static LRESULT OnObjectLoad(VOID)
KeyboardEvent(FALSE,0,0x8000); KeyboardEvent(FALSE,0,0x8000);
// wait for sleep mode // wait for sleep mode
while(Chipset.Shutdn == FALSE) Sleep(0); while (Chipset.Shutdn == FALSE) Sleep(0);
} }
if (nState != SM_RUN) if (nState != SM_RUN)
@ -1115,7 +1108,7 @@ static LRESULT OnObjectLoad(VOID)
_ASSERT(nState == SM_RUN); _ASSERT(nState == SM_RUN);
KeyboardEvent(TRUE,0,0x8000); KeyboardEvent(TRUE,0,0x8000);
KeyboardEvent(FALSE,0,0x8000); KeyboardEvent(FALSE,0,0x8000);
while(Chipset.Shutdn == FALSE) Sleep(0); while (Chipset.Shutdn == FALSE) Sleep(0);
cancel: cancel:
bDbgAutoStateCtrl = TRUE; // enable automatic debugger state control bDbgAutoStateCtrl = TRUE; // enable automatic debugger state control
@ -1527,32 +1520,25 @@ int WINAPI WinMain(HINSTANCE hInst, HINSTANCE hPrevInst, LPSTR lpCmdLine, int nC
_ASSERT(hWindowDC != NULL); _ASSERT(hWindowDC != NULL);
if (nArgc >= 2) // use decoded parameter line if (nArgc >= 2) // use decoded parameter line
{ lstrcpyn(szBufferFilename,ppArgv[1],ARRAYSIZEOF(szBufferFilename));
TCHAR szTemp[MAX_PATH+8] = _T("Loading "); else // use last document setting
lstrcat(szTemp, ppArgv[1]); ReadLastDocument(szBufferFilename, ARRAYSIZEOF(szBufferFilename));
SetWindowTitle(szTemp);
if (OpenDocument(ppArgv[1]))
goto start;
}
ReadLastDocument(szBufferFilename, ARRAYSIZEOF(szBufferFilename)); if (szBufferFilename[0]) // given default document
if (szBufferFilename[0])
{ {
TCHAR szTemp[MAX_PATH+8] = _T("Loading "); TCHAR szTemp[MAX_PATH+8] = _T("Loading ");
lstrcat(szTemp, szBufferFilename); RECT rectClient;
_ASSERT(hWnd != NULL);
VERIFY(GetClientRect(hWnd,&rectClient));
GetCutPathName(szBufferFilename,&szTemp[8],MAX_PATH,rectClient.right/10-8);
SetWindowTitle(szTemp); SetWindowTitle(szTemp);
if (OpenDocument(szBufferFilename)) if (OpenDocument(szBufferFilename))
goto start; goto start;
} }
SetWindowTitle(_T("New Document")); // no default document, ask for new one
if (NewDocument()) SetWindowTitle(NewDocument() ? _T("Untitled") : _T("New Document"));
{
SetWindowTitle(_T("Untitled"));
goto start;
}
ResetDocument();
start: start:
// init clipboard format and name service // init clipboard format and name service

View file

@ -202,8 +202,9 @@ extern BOOL bPort2IsShared;
extern DWORD dwPort2Size; extern DWORD dwPort2Size;
extern DWORD dwPort2Mask; extern DWORD dwPort2Mask;
extern BOOL bBackup; extern BOOL bBackup;
extern WORD WriteStack(LPBYTE,DWORD);
extern VOID SetWindowLocation(HWND hWnd,INT nPosX,INT nPosY); extern VOID SetWindowLocation(HWND hWnd,INT nPosX,INT nPosY);
extern DWORD GetCutPathName(LPCTSTR szFileName,LPTSTR szBuffer,DWORD dwBufferLength,INT nCutLength);
extern VOID SetWindowPathTitle(LPCTSTR szFileName);
extern VOID UpdatePatches(BOOL bPatch); extern VOID UpdatePatches(BOOL bPatch);
extern BOOL PatchRom(LPCTSTR szFilename); extern BOOL PatchRom(LPCTSTR szFilename);
extern BOOL MapRom(LPCTSTR szFilename); extern BOOL MapRom(LPCTSTR szFilename);
@ -223,6 +224,7 @@ extern BOOL GetOpenFilename(VOID);
extern BOOL GetSaveAsFilename(VOID); extern BOOL GetSaveAsFilename(VOID);
extern BOOL GetLoadObjectFilename(VOID); extern BOOL GetLoadObjectFilename(VOID);
extern BOOL GetSaveObjectFilename(VOID); extern BOOL GetSaveObjectFilename(VOID);
extern WORD WriteStack(LPBYTE lpBuf,DWORD dwSize);
extern BOOL LoadObject(LPCTSTR szFilename); extern BOOL LoadObject(LPCTSTR szFilename);
extern BOOL SaveObject(LPCTSTR szFilename); extern BOOL SaveObject(LPCTSTR szFilename);
extern HBITMAP LoadBitmapFile(LPCTSTR szFilename); extern HBITMAP LoadBitmapFile(LPCTSTR szFilename);

View file

@ -549,8 +549,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,1,0 FILEVERSION 1,4,2,0
PRODUCTVERSION 1,4,1,0 PRODUCTVERSION 1,4,2,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -567,12 +567,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Sebastien Carlier & Christoph Gießelink\0" VALUE "CompanyName", "Sebastien Carlier & Christoph Gießelink\0"
VALUE "FileDescription", "HP38/39/40/48/49 Emulator\0" VALUE "FileDescription", "HP38/39/40/48/49 Emulator\0"
VALUE "FileVersion", "1, 4, 1, 0\0" VALUE "FileVersion", "1, 4, 2, 0\0"
VALUE "InternalName", "Emu48\0" VALUE "InternalName", "Emu48\0"
VALUE "LegalCopyright", "Copyright © 2006\0" VALUE "LegalCopyright", "Copyright © 2006\0"
VALUE "OriginalFilename", "Emu48.exe\0" VALUE "OriginalFilename", "Emu48.exe\0"
VALUE "ProductName", "Emu48\0" VALUE "ProductName", "Emu48\0"
VALUE "ProductVersion", "1, 4, 1, 0\0" VALUE "ProductVersion", "1, 4, 2, 0\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -767,6 +767,7 @@ VOID EvalOpcode(LPBYTE I)
do do
{ {
dwTemp = I[dwIndex]; // table entry dwTemp = I[dwIndex]; // table entry
_ASSERT(dwTemp <= 0xf); // found packed data
dwIndex = pJmpTab[dwTemp].dwTyp; // next pointer type dwIndex = pJmpTab[dwTemp].dwTyp; // next pointer type
pJmpTab = pJmpTab[dwTemp].pLnk; // next pointer to table/function pJmpTab = pJmpTab[dwTemp].pLnk; // next pointer to table/function
} }

View file

@ -51,55 +51,6 @@ static CHIPSET BackupChipset;
BOOL bBackup = FALSE; BOOL bBackup = FALSE;
//################
//#
//# Subroutine for Write on Stack
//#
//################
WORD WriteStack(LPBYTE lpBuf,DWORD dwSize) // separated from LoadObject()
{
BOOL bBinary;
DWORD dwAddress, i;
bBinary = ((lpBuf[dwSize+0]=='H')
&& (lpBuf[dwSize+1]=='P')
&& (lpBuf[dwSize+2]=='H')
&& (lpBuf[dwSize+3]=='P')
&& (lpBuf[dwSize+4]=='4')
&& (lpBuf[dwSize+5]==((cCurrentRomType!='X') ? '8' : '9'))
&& (lpBuf[dwSize+6]=='-'));
for (i = 0; i < dwSize; i++)
{
BYTE byTwoNibs = lpBuf[i+dwSize];
lpBuf[i*2 ] = (BYTE)(byTwoNibs&0xF);
lpBuf[i*2+1] = (BYTE)(byTwoNibs>>4);
}
if (bBinary == TRUE)
{ // load as binary
dwSize = RPL_ObjectSize(lpBuf+16);
dwAddress = RPL_CreateTemp(dwSize);
if (dwAddress == 0) return S_ERR_BINARY;
Nwrite(lpBuf+16,dwAddress,dwSize);
}
else
{ // load as string
dwSize *= 2;
dwAddress = RPL_CreateTemp(dwSize+10);
if (dwAddress == 0) return S_ERR_ASCII;
Write5(dwAddress,0x02A2C); // String
Write5(dwAddress+5,dwSize+5); // length of String
Nwrite(lpBuf,dwAddress+10,dwSize); // data
}
RPL_Push(dwAddress);
return S_ERR_NO;
}
//################ //################
//# //#
//# Window Position Tools //# Window Position Tools
@ -123,6 +74,81 @@ VOID SetWindowLocation(HWND hWnd,INT nPosX,INT nPosY)
//################
//#
//# Filename Title Helper Tool
//#
//################
DWORD GetCutPathName(LPCTSTR szFileName, LPTSTR szBuffer, DWORD dwBufferLength, INT nCutLength)
{
TCHAR cPath[_MAX_PATH]; // full filename
TCHAR cDrive[_MAX_DRIVE];
TCHAR cDir[_MAX_DIR];
TCHAR cFname[_MAX_FNAME];
TCHAR cExt[_MAX_EXT];
_ASSERT(nCutLength >= 0); // 0 = only drive and name
// split original filename into parts
_tsplitpath(szFileName,cDrive,cDir,cFname,cExt);
if (*cDir != 0) // contain directory part
{
LPTSTR lpFilePart; // address of file name in path
INT nNameLen,nPathLen,nMaxPathLen;
GetFullPathName(szFileName,ARRAYSIZEOF(cPath),cPath,&lpFilePart);
_tsplitpath(cPath,cDrive,cDir,cFname,cExt);
// calculate size of drive/name and path
nNameLen = lstrlen(cDrive) + lstrlen(cFname) + lstrlen(cExt);
nPathLen = lstrlen(cDir);
// maximum length for path
nMaxPathLen = nCutLength - nNameLen;
if (nPathLen > nMaxPathLen) // have to cut path
{
TCHAR cDirTemp[_MAX_DIR] = _T("\\...");
LPTSTR szPtr;
nMaxPathLen -= 4; // need 4 chars for additional "\..."
if (nMaxPathLen < 0) nMaxPathLen = 0;
// get earliest possible '\' character
szPtr = &cDir[nPathLen - nMaxPathLen];
szPtr = _tcschr(szPtr,_T('\\'));
// not found
if (szPtr == NULL) szPtr = _T("");
lstrcat(cDirTemp,szPtr); // copy path with preample to dir buffer
lstrcpyn(cDir,cDirTemp,ARRAYSIZEOF(cDir));
}
}
_tmakepath(cPath,cDrive,cDir,cFname,cExt);
lstrcpyn(szBuffer,cPath,dwBufferLength);
return lstrlen(szBuffer);
}
VOID SetWindowPathTitle(LPCTSTR szFileName)
{
TCHAR cPath[MAX_PATH];
RECT rectClient;
if (*szFileName != 0) // set new title
{
_ASSERT(hWnd != NULL);
VERIFY(GetClientRect(hWnd,&rectClient));
GetCutPathName(szFileName,cPath,ARRAYSIZEOF(cPath),rectClient.right/10);
SetWindowTitle(cPath);
}
return;
}
//################ //################
//# //#
//# Patch //# Patch
@ -879,7 +905,7 @@ BOOL OpenDocument(LPCTSTR szFilename)
// notify main proc about current document file // notify main proc about current document file
if (pEmuDocumentNotify) pEmuDocumentNotify(szCurrentFilename); if (pEmuDocumentNotify) pEmuDocumentNotify(szCurrentFilename);
#endif #endif
SetWindowTitle(szCurrentFilename); SetWindowPathTitle(szCurrentFilename); // update window title line
UpdateWindowStatus(); UpdateWindowStatus();
return TRUE; return TRUE;
@ -982,7 +1008,7 @@ BOOL SaveDocumentAs(LPCTSTR szFilename)
// notify main proc about current document file // notify main proc about current document file
if (pEmuDocumentNotify) pEmuDocumentNotify(szCurrentFilename); if (pEmuDocumentNotify) pEmuDocumentNotify(szCurrentFilename);
#endif #endif
SetWindowTitle(szCurrentFilename); // update window title line SetWindowPathTitle(szCurrentFilename); // update window title line
UpdateWindowStatus(); // and draw it UpdateWindowStatus(); // and draw it
return SaveDocument(); // save current content return SaveDocument(); // save current content
} }
@ -1070,7 +1096,7 @@ BOOL RestoreBackup(VOID)
MapPort2((nArgc < 3) ? szPort2Filename : ppArgv[2]); MapPort2((nArgc < 3) ? szPort2Filename : ppArgv[2]);
} }
} }
SetWindowTitle(szCurrentFilename); SetWindowPathTitle(szCurrentFilename); // update window title line
SetWindowLocation(hWnd,Chipset.nPosX,Chipset.nPosY); SetWindowLocation(hWnd,Chipset.nPosX,Chipset.nPosY);
UpdateWindowStatus(); UpdateWindowStatus();
Map(0x00,0xFF); Map(0x00,0xFF);
@ -1110,6 +1136,7 @@ static VOID InitializeOFN(LPOPENFILENAME ofn)
BOOL GetOpenFilename(VOID) BOOL GetOpenFilename(VOID)
{ {
TCHAR szBuffer[ARRAYSIZEOF(szBufferFilename)];
OPENFILENAME ofn; OPENFILENAME ofn;
InitializeOFN(&ofn); InitializeOFN(&ofn);
@ -1137,22 +1164,19 @@ BOOL GetOpenFilename(VOID)
ofn.lpstrDefExt = _T("E49"); ofn.lpstrDefExt = _T("E49");
ofn.nFilterIndex = 4; ofn.nFilterIndex = 4;
} }
ofn.lpstrFile = HeapAlloc(hHeap,0,sizeof(szBufferFilename)); ofn.lpstrFile = szBuffer;
ofn.lpstrFile[0] = 0; ofn.lpstrFile[0] = 0;
ofn.nMaxFile = ARRAYSIZEOF(szBufferFilename); ofn.nMaxFile = ARRAYSIZEOF(szBuffer);
ofn.Flags |= OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST; ofn.Flags |= OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST;
if (GetOpenFileName(&ofn) == FALSE) if (GetOpenFileName(&ofn) == FALSE) return FALSE;
{ _ASSERT(ARRAYSIZEOF(szBufferFilename) == ofn.nMaxFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return FALSE;
}
lstrcpy(szBufferFilename, ofn.lpstrFile); lstrcpy(szBufferFilename, ofn.lpstrFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return TRUE; return TRUE;
} }
BOOL GetSaveAsFilename(VOID) BOOL GetSaveAsFilename(VOID)
{ {
TCHAR szBuffer[ARRAYSIZEOF(szBufferFilename)];
OPENFILENAME ofn; OPENFILENAME ofn;
InitializeOFN(&ofn); InitializeOFN(&ofn);
@ -1180,36 +1204,30 @@ BOOL GetSaveAsFilename(VOID)
ofn.lpstrDefExt = _T("E49"); ofn.lpstrDefExt = _T("E49");
ofn.nFilterIndex = 4; ofn.nFilterIndex = 4;
} }
ofn.lpstrFile = HeapAlloc(hHeap,0,sizeof(szBufferFilename)); ofn.lpstrFile = szBuffer;
ofn.lpstrFile[0] = 0; ofn.lpstrFile[0] = 0;
ofn.nMaxFile = ARRAYSIZEOF(szBufferFilename); ofn.nMaxFile = ARRAYSIZEOF(szBuffer);
ofn.Flags |= OFN_CREATEPROMPT|OFN_OVERWRITEPROMPT; ofn.Flags |= OFN_CREATEPROMPT|OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn) == FALSE) if (GetSaveFileName(&ofn) == FALSE) return FALSE;
{ _ASSERT(ARRAYSIZEOF(szBufferFilename) == ofn.nMaxFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return FALSE;
}
lstrcpy(szBufferFilename, ofn.lpstrFile); lstrcpy(szBufferFilename, ofn.lpstrFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return TRUE; return TRUE;
} }
BOOL GetLoadObjectFilename(VOID) BOOL GetLoadObjectFilename(VOID)
{ {
TCHAR szBuffer[ARRAYSIZEOF(szBufferFilename)];
OPENFILENAME ofn; OPENFILENAME ofn;
InitializeOFN(&ofn); InitializeOFN(&ofn);
ofn.lpstrFilter = _T("All Files (*.*)\0*.*\0") _T("\0\0"); ofn.lpstrFilter = _T("All Files (*.*)\0*.*\0") _T("\0\0");
ofn.nFilterIndex = 1; ofn.nFilterIndex = 1;
ofn.lpstrFile = HeapAlloc(hHeap,0,sizeof(szBufferFilename)); ofn.lpstrFile = szBuffer;
ofn.lpstrFile[0] = 0; ofn.lpstrFile[0] = 0;
ofn.nMaxFile = ARRAYSIZEOF(szBufferFilename); ofn.nMaxFile = ARRAYSIZEOF(szBuffer);
ofn.Flags |= OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST; ofn.Flags |= OFN_FILEMUSTEXIST|OFN_PATHMUSTEXIST;
if (GetOpenFileName(&ofn) == FALSE) if (GetOpenFileName(&ofn) == FALSE) return FALSE;
{ _ASSERT(ARRAYSIZEOF(szBufferFilename) == ofn.nMaxFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return FALSE;
}
lstrcpy(szBufferFilename, ofn.lpstrFile); lstrcpy(szBufferFilename, ofn.lpstrFile);
HeapFree(hHeap,0,ofn.lpstrFile); HeapFree(hHeap,0,ofn.lpstrFile);
return TRUE; return TRUE;
@ -1217,22 +1235,19 @@ BOOL GetLoadObjectFilename(VOID)
BOOL GetSaveObjectFilename(VOID) BOOL GetSaveObjectFilename(VOID)
{ {
TCHAR szBuffer[ARRAYSIZEOF(szBufferFilename)];
OPENFILENAME ofn; OPENFILENAME ofn;
InitializeOFN(&ofn); InitializeOFN(&ofn);
ofn.lpstrFilter = _T("All Files (*.*)\0*.*\0") _T("\0\0"); ofn.lpstrFilter = _T("All Files (*.*)\0*.*\0") _T("\0\0");
ofn.nFilterIndex = 1; ofn.nFilterIndex = 1;
ofn.lpstrFile = HeapAlloc(hHeap,0,sizeof(szBufferFilename)); ofn.lpstrFile = szBuffer;
ofn.lpstrFile[0] = 0; ofn.lpstrFile[0] = 0;
ofn.nMaxFile = ARRAYSIZEOF(szBufferFilename); ofn.nMaxFile = ARRAYSIZEOF(szBuffer);
ofn.Flags |= OFN_CREATEPROMPT|OFN_OVERWRITEPROMPT; ofn.Flags |= OFN_CREATEPROMPT|OFN_OVERWRITEPROMPT;
if (GetSaveFileName(&ofn) == FALSE) if (GetSaveFileName(&ofn) == FALSE) return FALSE;
{ _ASSERT(ARRAYSIZEOF(szBufferFilename) == ofn.nMaxFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return FALSE;
}
lstrcpy(szBufferFilename, ofn.lpstrFile); lstrcpy(szBufferFilename, ofn.lpstrFile);
HeapFree(hHeap,0,ofn.lpstrFile);
return TRUE; return TRUE;
} }
@ -1244,6 +1259,47 @@ BOOL GetSaveObjectFilename(VOID)
//# //#
//################ //################
WORD WriteStack(LPBYTE lpBuf,DWORD dwSize) // separated from LoadObject()
{
BOOL bBinary;
DWORD dwAddress, i;
bBinary = ((lpBuf[dwSize+0]=='H')
&& (lpBuf[dwSize+1]=='P')
&& (lpBuf[dwSize+2]=='H')
&& (lpBuf[dwSize+3]=='P')
&& (lpBuf[dwSize+4]=='4')
&& (lpBuf[dwSize+5]==((cCurrentRomType!='X') ? '8' : '9'))
&& (lpBuf[dwSize+6]=='-'));
for (i = 0; i < dwSize; i++)
{
BYTE byTwoNibs = lpBuf[i+dwSize];
lpBuf[i*2 ] = (BYTE)(byTwoNibs&0xF);
lpBuf[i*2+1] = (BYTE)(byTwoNibs>>4);
}
if (bBinary == TRUE)
{ // load as binary
dwSize = RPL_ObjectSize(lpBuf+16);
dwAddress = RPL_CreateTemp(dwSize);
if (dwAddress == 0) return S_ERR_BINARY;
Nwrite(lpBuf+16,dwAddress,dwSize);
}
else
{ // load as string
dwSize *= 2;
dwAddress = RPL_CreateTemp(dwSize+10);
if (dwAddress == 0) return S_ERR_ASCII;
Write5(dwAddress,0x02A2C); // String
Write5(dwAddress+5,dwSize+5); // length of String
Nwrite(lpBuf,dwAddress+10,dwSize); // data
}
RPL_Push(dwAddress);
return S_ERR_NO;
}
BOOL LoadObject(LPCTSTR szFilename) // separated stack writing part BOOL LoadObject(LPCTSTR szFilename) // separated stack writing part
{ {
HANDLE hFile; HANDLE hFile;

View file

@ -284,15 +284,22 @@ static VOID WrStateE8(DWORD d)
// write to buffer number of byte // write to buffer number of byte
static VOID WrStateE8N(BYTE a, DWORD d) static VOID WrStateE8N(BYTE a, DWORD d)
{ {
if (WRITE_BUFFER == a) return; // got another "Write Command" instead of length if (a < (1 << byQueryTab[0x2A])) // byte is length information
{
_ASSERT(a < (1 << byQueryTab[0x2A])); // check buffer size WSMset.byWrite1No += a; // save no. of byte to program
a &= (1 << byQueryTab[0x2A]) - 1; // maximum write buffer size WSMset.byWrite1Size = a; // save size to check write buffer boundaries
WSMset.byWrite1No += a; // save no. of byte to program WSMset.dwWrite1Addr = d; // byte block address of buffer1
WSMset.byWrite1Size = a; // save size to check write buffer boundaries WSMset.byStatusReg &= ~WSMS; // state machine busy
WSMset.dwWrite1Addr = d; // byte block address of buffer1 WSMset.uWrState = WRS_WR_BUFFER_D;
WSMset.byStatusReg &= ~WSMS; // state machine busy }
WSMset.uWrState = WRS_WR_BUFFER_D; else
{
WSMset.byWrite1No = 0; // free write buffer
// improper command sequence
WSMset.byStatusReg |= (ECLBS | BWSLBS);
WSMset.byStatusReg |= WSMS; // data written
WSMset.uWrState = WRS_DATA;
}
WSMset.uRdState = RDS_SR; WSMset.uRdState = RDS_SR;
return; return;
} }

View file

@ -28,9 +28,12 @@
#define SRQ2 0x19 // SRQ2 #define SRQ2 0x19 // SRQ2
#define IR_CTRL 0x1a // IR CONTROL #define IR_CTRL 0x1a // IR CONTROL
#define LCR 0x1c // Led Control Register #define LCR 0x1c // Led Control Register
#define DISP1CTL 0x20 // Display Start Address
#define LINENIBS 0x25 // Display Line Offset
#define LINECOUNT 0x28 // Display Line Counter #define LINECOUNT 0x28 // Display Line Counter
#define TIMER1_CTRL 0x2e // Timer1 Control #define TIMER1_CTRL 0x2e // Timer1 Control
#define TIMER2_CTRL 0x2f // Timer2 Control #define TIMER2_CTRL 0x2f // Timer2 Control
#define DISP2CTL 0x30 // Display Secondary Start Address
#define TIMER1 0x37 // Timer1 (4 bit) #define TIMER1 0x37 // Timer1 (4 bit)
#define TIMER2 0x38 // Timer2 (32 bit, LSB first) #define TIMER2 0x38 // Timer2 (32 bit, LSB first)
@ -62,6 +65,12 @@
#define LA2 0x02 // LA2 - ALT Shift #define LA2 0x02 // LA2 - ALT Shift
#define LA1 0x01 // LA1 - Shift #define LA1 0x01 // LA1 - Shift
// 0x0d SERIAL Baud Rate [UCK BD2 BD1 BD0]
#define UCK 0x08 // Uart ClocK
#define BD2 0x04 // BauDrate Bit2
#define BD1 0x02 // BauDrate Bit1
#define BD0 0x01 // BauDrate Bit0
// 0x0e Card Control [ECDT RCDT SMP SWINT] // 0x0e Card Control [ECDT RCDT SMP SWINT]
#define ECDT 0x08 // Enable Card Detect #define ECDT 0x08 // Enable Card Detect
#define RCDT 0x04 // Run Card Detect #define RCDT 0x04 // Run Card Detect

View file

@ -74,6 +74,7 @@ static KmlToken pLexToken[] =
{TOK_VIRTUAL, 000000, 7,_T("Virtual")}, {TOK_VIRTUAL, 000000, 7,_T("Virtual")},
{TOK_INCLUDE, 000002, 7,_T("Include")}, {TOK_INCLUDE, 000002, 7,_T("Include")},
{TOK_NOTFLAG, 000001, 7,_T("NotFlag")}, {TOK_NOTFLAG, 000001, 7,_T("NotFlag")},
{TOK_MENUBAR, 000001, 7,_T("Menubar")}, // for PPC compatibility reasons
{TOK_GLOBAL, 000000, 6,_T("Global")}, {TOK_GLOBAL, 000000, 6,_T("Global")},
{TOK_AUTHOR, 000002, 6,_T("Author")}, {TOK_AUTHOR, 000002, 6,_T("Author")},
{TOK_BITMAP, 000002, 6,_T("Bitmap")}, {TOK_BITMAP, 000002, 6,_T("Bitmap")},
@ -301,14 +302,15 @@ static VOID CreateKmlList(VOID)
FreeBlocks(pBlock); FreeBlocks(pBlock);
continue; continue;
} }
if (cKmlType) // check for supported Model
szTitle = GetStringParam(pBlock,TOK_GLOBAL,TOK_MODEL,0);
// skip all scripts with invalid or different Model statement
if ( (szTitle == NULL)
|| (cKmlType && szTitle[0] != cKmlType)
|| !isModelValid(szTitle[0]))
{ {
szTitle = GetStringParam(pBlock,TOK_GLOBAL,TOK_MODEL,0); FreeBlocks(pBlock);
if ((!szTitle)||(szTitle[0]!=cKmlType)) continue;
{
FreeBlocks(pBlock);
continue;
}
} }
VERIFY(pScript = HeapAlloc(hHeap,0,sizeof(KmlScript))); VERIFY(pScript = HeapAlloc(hHeap,0,sizeof(KmlScript)));
pScript->szFilename = DuplicateString(pFindFileData.cFileName); pScript->szFilename = DuplicateString(pFindFileData.cFileName);
@ -709,11 +711,18 @@ static TokenId Lex(UINT nMode)
szLexString = ParseString(); szLexString = ParseString();
return TOK_STRING; return TOK_STRING;
} }
if ((nMode == LEX_PARAM) && (*szText == _T('\n'))) if (nMode == LEX_PARAM)
{ {
nLexLine++; if (*szText == _T('\n')) // end of line
szText++; {
return TOK_EOL; nLexLine++; // next line
szText++; // skip LF
return TOK_EOL;
}
if (*szText == 0) // end of file
{
return TOK_EOL;
}
} }
return ParseToken(nMode); return ParseToken(nMode);
} }

View file

@ -36,28 +36,29 @@ typedef enum eTokenId
TOK_ONDOWN, //20 TOK_ONDOWN, //20
TOK_NOHOLD, //21 TOK_NOHOLD, //21
TOK_TOPBAR, //22 TOK_TOPBAR, //22
TOK_TITLE, //23 TOK_MENUBAR, // 23
TOK_OUTIN, //24 TOK_TITLE, //24
TOK_PATCH, //25 TOK_OUTIN, //25
TOK_PRINT, //26 TOK_PATCH, //26
TOK_DEBUG, //27 TOK_PRINT, //27
TOK_COLOR, //28 TOK_DEBUG, //28
TOK_MODEL, //29 TOK_COLOR, //29
TOK_CLASS, //30 TOK_MODEL, //30
TOK_PRESS, //31 TOK_CLASS, //31
TOK_TYPE, //32 TOK_PRESS, //32
TOK_SIZE, //33 TOK_TYPE, //33
TOK_DOWN, //34 TOK_SIZE, //34
TOK_ZOOM, //35 TOK_DOWN, //35
TOK_ELSE, //36 TOK_ZOOM, //36
TOK_ONUP, //37 TOK_ELSE, //37
TOK_EOL, //38 TOK_ONUP, //38
TOK_MAP, //39 TOK_EOL, //39
TOK_ROM, //40 TOK_MAP, //40
TOK_VGA, //41 TOK_ROM, //41
TOK_LCD, //42 TOK_VGA, //42
TOK_NOTFLAG, //43 TOK_LCD, //43
TOK_END //44 TOK_NOTFLAG, //44
TOK_END //45
} TokenId; } TokenId;
#define TYPE_NONE 00 #define TYPE_NONE 00

View file

@ -64,11 +64,14 @@ static __inline BYTE UckBit(BYTE byBaudIndex)
_ASSERT(byBaudIndex < ARRAYSIZEOF(dwBaudrates)); _ASSERT(byBaudIndex < ARRAYSIZEOF(dwBaudrates));
if ((Chipset.IORam[IOC] & SON) == 0) // UART off
return UCK; // UCK bit always set
QueryPerformanceCounter(&lLC); // get counter value QueryPerformanceCounter(&lLC); // get counter value
// calculate UCK frequency // calculate UCK frequency
return (((BYTE)(((lLC.QuadPart - lAppStart.QuadPart) * dwBaudrates[byBaudIndex]) return (((BYTE)(((lLC.QuadPart - lAppStart.QuadPart) * dwBaudrates[byBaudIndex])
/ lFreq.QuadPart) & 0x1) << 3) & Chipset.IORam[IOC]; / lFreq.QuadPart) & 0x1) << 3);
} }
// calculate nibble based linear flash address // calculate nibble based linear flash address
@ -730,7 +733,7 @@ VOID Npeek(BYTE *a, DWORD d, UINT s)
// Flash memory Read access // Flash memory Read access
if (cCurrentRomType=='X' && (Chipset.IORam[LCR] & LED) && M_P2 == eMap) if (cCurrentRomType=='X' && (Chipset.IORam[LCR] & LED) && M_P2 == eMap)
{ {
FlashRead(a, FlashROMAddr(d), s); FlashRead(a, FlashROMAddr(d), c);
} }
else else
{ {
@ -797,7 +800,7 @@ VOID Nread(BYTE *a, DWORD d, UINT s)
{ {
DWORD dwLinAddr = FlashROMAddr(d); DWORD dwLinAddr = FlashROMAddr(d);
FlashRead(a, dwLinAddr, s); FlashRead(a, dwLinAddr, c);
#if defined DEBUG_FLASH #if defined DEBUG_FLASH
{ {
@ -805,8 +808,8 @@ VOID Nread(BYTE *a, DWORD d, UINT s)
DWORD j; DWORD j;
int i; int i;
i = wsprintf(buffer,_T("%.5lx: Flash Read : %.5x (%.6x),%u = "),Chipset.pc,d,dwLinAddr,s); i = wsprintf(buffer,_T("%.5lx: Flash Read : %.5x (%.6x),%u = "),Chipset.pc,d,dwLinAddr,c);
for (j = 0;j < s;++j,++i) for (j = 0;j < c;++j,++i)
{ {
buffer[i] = a[j]; buffer[i] = a[j];
if (buffer[i] > 9) buffer[i] += _T('a') - _T('9') - 1; if (buffer[i] > 9) buffer[i] += _T('a') - _T('9') - 1;
@ -905,7 +908,7 @@ VOID Nwrite(BYTE *a, DWORD d, UINT s)
{ {
DWORD dwLinAddr = FlashROMAddr(d); DWORD dwLinAddr = FlashROMAddr(d);
FlashWrite(a, dwLinAddr, s); FlashWrite(a, dwLinAddr, c);
#if defined DEBUG_FLASH #if defined DEBUG_FLASH
{ {
@ -913,8 +916,8 @@ VOID Nwrite(BYTE *a, DWORD d, UINT s)
DWORD j; DWORD j;
int i; int i;
i = wsprintf(buffer,_T("%.5lx: Flash Write: %.5x (%.6x),%u = "),Chipset.pc,d,dwLinAddr,s); i = wsprintf(buffer,_T("%.5lx: Flash Write: %.5x (%.6x),%u = "),Chipset.pc,d,dwLinAddr,c);
for (j = 0;j < s;++j,++i) for (j = 0;j < c;++j,++i)
{ {
buffer[i] = a[j]; buffer[i] = a[j];
if (buffer[i] > 9) buffer[i] += _T('a') - _T('9') - 1; if (buffer[i] > 9) buffer[i] += _T('a') - _T('9') - 1;
@ -1416,9 +1419,11 @@ VOID WriteIO(BYTE *a, DWORD d, DWORD s)
// 00110 @ Serial I/O Control [SON ETBE ERBF ERBZ] // 00110 @ Serial I/O Control [SON ETBE ERBF ERBZ]
// 00110 @ Serial On, Interrupt On Recv.Buf.Empty, Full, Buzy // 00110 @ Serial On, Interrupt On Recv.Buf.Empty, Full, Buzy
case 0x10: case 0x10:
Chipset.IORam[d]=c;
CheckSerial(); // handle UART on/off
if ((c & SON) == 0) // SON bit cleared if ((c & SON) == 0) // SON bit cleared
{ {
c = 0; // clear IOC Chipset.IORam[IOC] = 0; // clear IOC
Chipset.IORam[RCS] = 0; // clear RCS Chipset.IORam[RCS] = 0; // clear RCS
Chipset.IORam[TCS] = 0; // clear TCS Chipset.IORam[TCS] = 0; // clear TCS
Chipset.IORam[RBR_LSB] = 0; // clear RBR Chipset.IORam[RBR_LSB] = 0; // clear RBR
@ -1426,8 +1431,6 @@ VOID WriteIO(BYTE *a, DWORD d, DWORD s)
Chipset.IORam[TBR_LSB] = 0; // clear TBR Chipset.IORam[TBR_LSB] = 0; // clear TBR
Chipset.IORam[TBR_MSB] = 0; Chipset.IORam[TBR_MSB] = 0;
} }
Chipset.IORam[d]=c;
CheckSerial(); // handle UART on/off
if (UpdateUSRQ()) INTERRUPT; // update USRQ bit if (UpdateUSRQ()) INTERRUPT; // update USRQ bit
#if defined DEBUG_SERIAL #if defined DEBUG_SERIAL
{ {
@ -1693,7 +1696,7 @@ VOID WriteIO(BYTE *a, DWORD d, DWORD s)
finish: finish:
if (bDISPADDR) // 0x120-0x124 changed if (bDISPADDR) // 0x120-0x124 changed
{ {
b = Npack(Chipset.IORam+0x20,5)&0xFFFFE; b = Npack(Chipset.IORam+DISP1CTL,5)&0xFFFFE;
if (b != Chipset.start1) if (b != Chipset.start1)
{ {
Chipset.start1 = b; Chipset.start1 = b;
@ -1702,7 +1705,7 @@ finish:
} }
if (bLINEOFFS) // addr 0x125-0x127 changed if (bLINEOFFS) // addr 0x125-0x127 changed
{ {
signed short lo = (signed short)Npack(Chipset.IORam+0x25,3); signed short lo = (signed short)Npack(Chipset.IORam+LINENIBS,3);
if (lo&0x800) lo-=0x1000; if (lo&0x800) lo-=0x1000;
if (lo != Chipset.loffset) if (lo != Chipset.loffset)
{ {
@ -1712,7 +1715,7 @@ finish:
} }
if (bMENUADDR) // addr 0x130-0x134 changed if (bMENUADDR) // addr 0x130-0x134 changed
{ {
b = Npack(Chipset.IORam+0x30,5)&0xFFFFE; b = Npack(Chipset.IORam+DISP2CTL,5)&0xFFFFE;
if (b != Chipset.start2) if (b != Chipset.start2)
{ {
Chipset.start2 = b; Chipset.start2 = b;

View file

@ -97,14 +97,10 @@ BOOL CommOpen(LPTSTR strWirePort,LPTSTR strIrPort)
{ {
COMMTIMEOUTS CommTimeouts = { MAXDWORD, 0L, 0L, 0L, 0L }; COMMTIMEOUTS CommTimeouts = { MAXDWORD, 0L, 0L, 0L, 0L };
LPTSTR strPort = (Chipset.IORam[IR_CTRL] & EIRU) ? strIrPort : strWirePort; LPCTSTR strPort = (Chipset.IORam[IR_CTRL] & EIRU) ? strIrPort : strWirePort;
_ASSERT(Chipset.IORam[IOC] & SON); // UART on _ASSERT(Chipset.IORam[IOC] & SON); // UART on
if (hComm != NULL) // port already open CommClose(); // close port if already open
{
CloseHandle(hComm);
hComm = NULL;
}
if (lstrcmp(strPort, _T(NO_SERIAL))) // port defined if (lstrcmp(strPort, _T(NO_SERIAL))) // port defined
{ {
@ -173,7 +169,13 @@ VOID CommClose(VOID)
{ {
if (hComm != NULL) // port open if (hComm != NULL) // port open
{ {
Sleep(25); // workaround to fix problems with some Kermit server // workaround to fix problems with some Kermit server programs
// reason: on one hand we have the character transmitting time base on the
// selected baudrate, on the other hand the time between sending the last
// character and closing the port. The last time is much longer on the real
// calculator than on the emulator running at full speed, therefore the
// slow down time on the emulator
Sleep(25); // slow down time
bReading = FALSE; // kill event thread bReading = FALSE; // kill event thread
SetCommMask(hComm,0L); // clear all events and force WaitCommEvent to return SetCommMask(hComm,0L); // clear all events and force WaitCommEvent to return

View file

@ -225,7 +225,7 @@ FONT 8, "MS Sans Serif"
BEGIN BEGIN
ICON IDI_EMU48,IDC_STATIC,7,6,20,20,SS_REALSIZEIMAGE ICON IDI_EMU48,IDC_STATIC,7,6,20,20,SS_REALSIZEIMAGE
LTEXT "",IDC_VERSION,29,6,151,8,NOT WS_GROUP LTEXT "",IDC_VERSION,29,6,151,8,NOT WS_GROUP
LTEXT "Copyright © 2005 Sébastien Carlier && Christoph Gießelink", LTEXT "Copyright © 2006 Sébastien Carlier && Christoph Gießelink",
IDC_STATIC,29,18,181,8 IDC_STATIC,29,18,181,8
DEFPUSHBUTTON "OK",IDOK,215,12,39,14 DEFPUSHBUTTON "OK",IDOK,215,12,39,14
EDITTEXT IDC_LICENSE,7,33,247,112,ES_MULTILINE | ES_AUTOHSCROLL | EDITTEXT IDC_LICENSE,7,33,247,112,ES_MULTILINE | ES_AUTOHSCROLL |
@ -373,7 +373,7 @@ BEGIN
LTEXT "PC=00000",IDC_REG_PC,236,108,33,8 LTEXT "PC=00000",IDC_REG_PC,236,108,33,8
LTEXT "OUT=000",IDC_REG_OUT,192,119,29,8 LTEXT "OUT=000",IDC_REG_OUT,192,119,29,8
LTEXT "IN=0000",IDC_REG_IN,240,119,29,8 LTEXT "IN=0000",IDC_REG_IN,240,119,29,8
LTEXT "ST=0000",IDC_REG_ST,192,130,29,8 LTEXT "ST=0000",IDC_REG_ST,192,130,29,8
LTEXT "CY=0",IDC_REG_CY,224,130,17,8 LTEXT "CY=0",IDC_REG_CY,224,130,17,8
LTEXT "Mode=H",IDC_REG_MODE,244,130,25,8 LTEXT "Mode=H",IDC_REG_MODE,244,130,25,8
LTEXT "MP=0",IDC_REG_MP,192,140,17,8 LTEXT "MP=0",IDC_REG_MP,192,140,17,8
@ -577,8 +577,8 @@ END
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,4,1,0 FILEVERSION 1,4,2,0
PRODUCTVERSION 1,4,1,0 PRODUCTVERSION 1,4,2,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -595,12 +595,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Sebastien Carlier & Christoph Gießelink\0" VALUE "CompanyName", "Sebastien Carlier & Christoph Gießelink\0"
VALUE "FileDescription", "HP38/39/40/48/49 Emulator\0" VALUE "FileDescription", "HP38/39/40/48/49 Emulator\0"
VALUE "FileVersion", "1, 4, 1, 0\0" VALUE "FileVersion", "1, 4, 2, 0\0"
VALUE "InternalName", "Emu48\0" VALUE "InternalName", "Emu48\0"
VALUE "LegalCopyright", "Copyright © 2005\0" VALUE "LegalCopyright", "Copyright © 2006\0"
VALUE "OriginalFilename", "Emu48.exe\0" VALUE "OriginalFilename", "Emu48.exe\0"
VALUE "ProductName", "Emu48\0" VALUE "ProductName", "Emu48\0"
VALUE "ProductVersion", "1, 4, 1, 0\0" VALUE "ProductVersion", "1, 4, 2, 0\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -12,12 +12,6 @@ MinGW-3.1.0-1.exe
or or
MinGW-3.1.0-1.exe
mingw-runtime-3.2.tar.gz
gcc-core-3.3.1-20030804-1.tar.gz
or
MinGW-3.1.0-1.exe MinGW-3.1.0-1.exe
w32api-2.5.tar.gz w32api-2.5.tar.gz
mingw-runtime-3.3.tar.gz mingw-runtime-3.3.tar.gz
@ -32,6 +26,14 @@ mingw-runtime-3.8.tar.gz
binutils-2.16.91-20050827-1.tar.gz binutils-2.16.91-20050827-1.tar.gz
gcc-core-3.4.4-20050522-1.tar.gz gcc-core-3.4.4-20050522-1.tar.gz
or
MinGW-3.1.0-1.exe
w32api-3.7.tar.gz
mingw-runtime-3.9.tar.gz
binutils-2.16.91-20060119-1.tar.gz
gcc-core-3.4.5-20060117-1.tar.gz
Older versions of the MinGW package might not work, because there are several Older versions of the MinGW package might not work, because there are several
bug fixes, especially in the header files, made in the last time. bug fixes, especially in the header files, made in the last time.
@ -43,4 +45,4 @@ Many thanks to Pedro A. Arranda Guti
compatible. compatible.
04/16/06 (c) by Christoph Gießelink 08/16/06 (c) by Christoph Gießelink

View file

@ -1,5 +1,5 @@
/* /*
* MkShared, (c) 2002 Christoph Giesselink (cgiess@swol.de) * MkShared, (c) 2006 Christoph Giesselink (c.giesselink@gmx.de)
* *
* This program is free software; you can redistribute it and/or modify * 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 * it under the terms of the GNU General Public License as published by
@ -30,15 +30,30 @@
#define DEFAULTFILE "SHARED.BIN" #define DEFAULTFILE "SHARED.BIN"
typedef enum
{
STATE_UNKOWN,
STATE_GOOD,
STATE_FAIL
} CheckState;
static HBRUSH hBrushGreen;
static HBRUSH hBrushRed;
static CheckState eState = STATE_UNKOWN;
static VOID SetInformation(HWND hWnd,LPCTSTR strSize,LPCTSTR strNoOfPorts,LPCTSTR strPorts) static VOID SetInformation(HWND hWnd,LPCTSTR strSize,LPCTSTR strNoOfPorts,LPCTSTR strPorts)
{ {
SetDlgItemText(hWnd,IDC_FILE_SIZE,strSize); SetDlgItemText(hWnd,IDC_FILE_SIZE,strSize);
SetDlgItemText(hWnd,IDC_NO_OF_PORTS,strNoOfPorts); SetDlgItemText(hWnd,IDC_NO_OF_PORTS,strNoOfPorts);
SetDlgItemText(hWnd,IDC_PORT_NO,strPorts); SetDlgItemText(hWnd,IDC_PORT_NO,strPorts);
eState = STATE_UNKOWN;
SetDlgItemText(hWnd,IDC_RESULT,_T(""));
InvalidateRect(GetDlgItem(hWnd,IDC_RESULT),NULL,TRUE);
return; return;
} }
static VOID WriteCardFile(LPCTSTR strFilename,INT nBlocks) static BOOL WriteCardFile(LPCTSTR strFilename,INT nBlocks)
{ {
HANDLE hFile = CreateFile(strFilename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL); HANDLE hFile = CreateFile(strFilename,GENERIC_WRITE,0,NULL,CREATE_ALWAYS,0,NULL);
if (hFile != INVALID_HANDLE_VALUE) if (hFile != INVALID_HANDLE_VALUE)
@ -52,9 +67,28 @@ static VOID WriteCardFile(LPCTSTR strFilename,INT nBlocks)
LocalFree(pbyBuffer); LocalFree(pbyBuffer);
CloseHandle(hFile); CloseHandle(hFile);
return; return FALSE;
} }
return; return TRUE;
}
static HBRUSH OnCtlColorStatic(HDC hDC,HWND hWnd)
{
if (GetDlgCtrlID(hWnd) == IDC_RESULT)
{
switch (eState)
{
case STATE_GOOD:
SetTextColor(hDC,(COLORREF) 0xFFFFFF); // white
SetBkMode(hDC,TRANSPARENT);
return hBrushGreen;
case STATE_FAIL:
SetTextColor(hDC,(COLORREF) 0xFFFFFF); // white
SetBkMode(hDC,TRANSPARENT);
return hBrushRed;
}
}
return NULL; // original color
} }
static LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam) static LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lParam)
@ -109,11 +143,25 @@ static LRESULT CALLBACK WndProc(HWND hWnd, UINT iMsg, WPARAM wParam, LPARAM lPar
case IDOK: case IDOK:
GetDlgItemText(hWnd,IDC_FILENAME,szFilename,ARRAYSIZEOF(szFilename)); GetDlgItemText(hWnd,IDC_FILENAME,szFilename,ARRAYSIZEOF(szFilename));
hCursor = SetCursor(LoadCursor(NULL,IDC_WAIT)); hCursor = SetCursor(LoadCursor(NULL,IDC_WAIT));
WriteCardFile(szFilename,wSize); // create file
// create file
if (WriteCardFile(szFilename,wSize))
{
eState = STATE_FAIL;
SetDlgItemText(hWnd,IDC_RESULT,_T("Fail!"));
}
else
{
eState = STATE_GOOD;
SetDlgItemText(hWnd,IDC_RESULT,_T("Done!"));
}
InvalidateRect(GetDlgItem(hWnd,IDC_RESULT),NULL,TRUE);
SetCursor(hCursor); // restore cursor SetCursor(hCursor); // restore cursor
return 0; return 0;
} }
return 0; return 0;
case WM_CTLCOLORSTATIC:
return (LRESULT) OnCtlColorStatic((HDC) wParam,(HWND) lParam);
case WM_DESTROY: case WM_DESTROY:
PostQuitMessage(0); PostQuitMessage(0);
return 0; return 0;
@ -130,6 +178,10 @@ INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpszCmdLine,INT nCmdSho
// RECT rc; // RECT rc;
HFONT hFont; HFONT hFont;
// create background brushes
hBrushGreen = CreateSolidBrush(0x008000);
hBrushRed = CreateSolidBrush(0x0000FF);
wc.style = CS_HREDRAW | CS_VREDRAW; wc.style = CS_HREDRAW | CS_VREDRAW;
wc.lpfnWndProc = WndProc; wc.lpfnWndProc = WndProc;
wc.cbClsExtra = 0; wc.cbClsExtra = 0;
@ -158,6 +210,7 @@ INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpszCmdLine,INT nCmdSho
hFont = CreateFont(20,0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,OUT_DEVICE_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,DEFAULT_PITCH|TMPF_TRUETYPE|FF_ROMAN,"Times New Roman"); hFont = CreateFont(20,0,0,0,FW_NORMAL,0,0,0,ANSI_CHARSET,OUT_DEVICE_PRECIS,CLIP_DEFAULT_PRECIS,PROOF_QUALITY,DEFAULT_PITCH|TMPF_TRUETYPE|FF_ROMAN,"Times New Roman");
_ASSERT(hFont); _ASSERT(hFont);
SendDlgItemMessage(hWnd,IDC_STATIC_TITLE,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0)); SendDlgItemMessage(hWnd,IDC_STATIC_TITLE,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
SendDlgItemMessage(hWnd,IDC_RESULT,WM_SETFONT,(WPARAM)hFont,MAKELPARAM(TRUE,0));
while(GetMessage(&msg,NULL,0,0)) while(GetMessage(&msg,NULL,0,0))
{ {
@ -169,6 +222,9 @@ INT WINAPI WinMain(HINSTANCE hInst,HINSTANCE hPrev,LPSTR lpszCmdLine,INT nCmdSho
} }
DeleteObject(hFont); DeleteObject(hFont);
DeleteObject(hBrushGreen);
DeleteObject(hBrushRed);
return msg.wParam; return msg.wParam;
UNREFERENCED_PARAMETER(hPrev); UNREFERENCED_PARAMETER(hPrev);
UNREFERENCED_PARAMETER(lpszCmdLine); UNREFERENCED_PARAMETER(lpszCmdLine);

View file

@ -34,10 +34,10 @@ CAPTION "Create Emu48 Ram Card"
CLASS "CMkShared" CLASS "CMkShared"
FONT 8, "MS Sans Serif" FONT 8, "MS Sans Serif"
BEGIN BEGIN
ICON IDI_MKSHARED,IDC_STATIC,6,6,20,20 ICON IDI_MKSHARED,IDC_STATIC,6,6,21,20
CTEXT "Emu48\nRam Card Creator",IDC_STATIC_TITLE,34,6,94,26, CTEXT "Emu48\nRam Card Creator",IDC_STATIC_TITLE,34,6,94,26,
NOT WS_GROUP NOT WS_GROUP
ICON IDI_MKSHARED,IDC_STATIC,137,6,20,20 ICON IDI_MKSHARED,IDC_STATIC,137,6,21,20
GROUPBOX "Size",IDC_STATIC,6,30,90,53 GROUPBOX "Size",IDC_STATIC,6,30,90,53
CONTROL "32kb",IDC_CARD32,"Button",BS_AUTORADIOBUTTON | BS_RIGHT | CONTROL "32kb",IDC_CARD32,"Button",BS_AUTORADIOBUTTON | BS_RIGHT |
WS_GROUP | WS_TABSTOP,14,40,34,10 WS_GROUP | WS_TABSTOP,14,40,34,10
@ -55,7 +55,8 @@ BEGIN
BS_RIGHT,60,60,26,10 BS_RIGHT,60,60,26,10
GROUPBOX "Filename:",IDC_STATIC,6,86,152,28 GROUPBOX "Filename:",IDC_STATIC,6,86,152,28
EDITTEXT IDC_FILENAME,13,96,138,12,ES_AUTOHSCROLL EDITTEXT IDC_FILENAME,13,96,138,12,ES_AUTOHSCROLL
DEFPUSHBUTTON "Create",IDOK,108,50,50,14 DEFPUSHBUTTON "Create",IDOK,108,40,50,14
CTEXT "",IDC_RESULT,108,62,50,14,SS_CENTERIMAGE | NOT WS_GROUP
GROUPBOX "File Information:",IDC_STATIC,6,118,152,43 GROUPBOX "File Information:",IDC_STATIC,6,118,152,43
LTEXT "Actual File Size:",IDC_STATIC,13,129,57,8,NOT WS_GROUP LTEXT "Actual File Size:",IDC_STATIC,13,129,57,8,NOT WS_GROUP
LTEXT "Static",IDC_FILE_SIZE,72,129,79,8,NOT WS_GROUP LTEXT "Static",IDC_FILE_SIZE,72,129,79,8,NOT WS_GROUP
@ -129,8 +130,8 @@ IDI_MKSHARED ICON DISCARDABLE "MKSHARED.ICO"
// //
VS_VERSION_INFO VERSIONINFO VS_VERSION_INFO VERSIONINFO
FILEVERSION 1,2,0,0 FILEVERSION 1,4,0,0
PRODUCTVERSION 1,2,0,0 PRODUCTVERSION 1,4,0,0
FILEFLAGSMASK 0x3fL FILEFLAGSMASK 0x3fL
#ifdef _DEBUG #ifdef _DEBUG
FILEFLAGS 0x1L FILEFLAGS 0x1L
@ -147,12 +148,12 @@ BEGIN
BEGIN BEGIN
VALUE "CompanyName", "Christoph Gießelink\0" VALUE "CompanyName", "Christoph Gießelink\0"
VALUE "FileDescription", "HP48 RAM Card Creator for Emu48\0" VALUE "FileDescription", "HP48 RAM Card Creator for Emu48\0"
VALUE "FileVersion", "1, 2, 0, 0\0" VALUE "FileVersion", "1, 4, 0, 0\0"
VALUE "InternalName", "MkShared\0" VALUE "InternalName", "MkShared\0"
VALUE "LegalCopyright", "Copyright © 2003\0" VALUE "LegalCopyright", "Copyright © 2006\0"
VALUE "OriginalFilename", "MkShared.exe\0" VALUE "OriginalFilename", "MkShared.exe\0"
VALUE "ProductName", "MkShared\0" VALUE "ProductName", "MkShared\0"
VALUE "ProductVersion", "1, 2, 0, 0\0" VALUE "ProductVersion", "1, 4, 0, 0\0"
END END
END END
BLOCK "VarFileInfo" BLOCK "VarFileInfo"

View file

@ -16,6 +16,7 @@
#define IDC_FILE_SIZE 1009 #define IDC_FILE_SIZE 1009
#define IDC_NO_OF_PORTS 1010 #define IDC_NO_OF_PORTS 1010
#define IDC_PORT_NO 1011 #define IDC_PORT_NO 1011
#define IDC_RESULT 1012
#define IDC_STATIC -1 #define IDC_STATIC -1
// Next default values for new objects // Next default values for new objects
@ -25,7 +26,7 @@
#define _APS_NO_MFC 1 #define _APS_NO_MFC 1
#define _APS_NEXT_RESOURCE_VALUE 102 #define _APS_NEXT_RESOURCE_VALUE 102
#define _APS_NEXT_COMMAND_VALUE 40001 #define _APS_NEXT_COMMAND_VALUE 40001
#define _APS_NEXT_CONTROL_VALUE 1012 #define _APS_NEXT_CONTROL_VALUE 1013
#define _APS_NEXT_SYMED_VALUE 101 #define _APS_NEXT_SYMED_VALUE 101
#endif #endif
#endif #endif

View file

@ -1,2 +0,0 @@
;01477:6300; disable 10 min auto off (internal, undocumented)
017A6:81B1

Binary file not shown.