saturnng/dist/Saturn.ad
2024-08-27 15:10:51 +02:00

2422 lines
71 KiB
Text

! .+
!
! .identifier : $Id: Saturn.ad,v 4.1.1.1 2002/11/11 16:13:56 cibrario Exp $
! .context : SATURN, Saturn CPU / HP48 emulator
! .title : $RCSfile: Saturn.ad,v $
! .kind : Application's resource file
! .author : Ivan Cibrario B.
! .site : CSTV-CNR
! .creation : 7-Sep-2000
! .keywords : *
! .description :
!
! .notes :
! $Log: Saturn.ad,v $
! Revision 4.1.1.1 2002/11/11 16:13:56 cibrario
! Small screen support; preliminary
!
! Revision 4.1 2000/12/11 09:54:19 cibrario
! Public release.
!
! Revision 3.17 2000/11/23 16:56:22 cibrario
! Implemented sutil library and assorted bug fixes:
! - Put leading colons back into translation table entries related to
! main keyboard keys; the match scope was too broad and sometimes
! prevented the use of main keyboard's numeric keys.
!
! Revision 3.16 2000/11/21 16:33:42 cibrario
! Ultrix/IRIX support:
! - Removed all leading colons from translation table entries, to ignore
! standard modifiers when matching KeySyms.
!
! Revision 3.15 2000/11/15 13:59:13 cibrario
! GUI enhancements and assorted bug fixes:
! - Added default resources for new GUI elements
! - Explicit setting of deleteResponse to XmDO_NOTHING for popup shells
!
! Revision 3.14 2000/11/13 10:26:02 cibrario
! Implemented fast load/save; improved keyboard interface emulation at
! high emulated CPU speed:
!
! - Added baseTranslations for fsb widget; needed because default
! Motif VirtualBindings are disabled.
!
! Revision 3.13 2000/11/09 13:21:56 cibrario
! Revised to add file selection box GUI element, CPU halt/run
! requests and emulator's extended functions:
!
! - Added File Selection Box resources
!
! Revision 3.8 2000/10/23 13:10:38 cibrario
! Bug fix:
! Adjusted size of LCD display widget (all faceplates)
!
! Revision 3.7 2000/10/19 14:30:08 cibrario
! Minor updates:
! - disabled traversal on the emulated keyboard area, set default keyboard
! focus policy to XmEXPLICIT. This forces the focus to be on the LCD
! display.
! - resource 'translations' is no longer set here, 'baseTranslations' is
! set instead, so the user can augment/override it.
! - Alt/Shift_L/Right Shift keyboard shortcuts are now enabled on all faces
! - removed spurious (and useless) translation involving the Tab key.
!
! Revision 3.4 2000/09/27 10:11:00 cibrario
! Implemented preliminary support of HP39/40 faceplate; added resources for
! the 'hp40' face.
!
! Revision 3.2 2000/09/22 13:23:30 cibrario
! Implemented preliminary support of HP49 hw architecture:
! - Added resources for the 'hp49' face
!
! Revision 2.8 2000/09/19 12:53:05 cibrario
! Widened the scope of the resource specifier for keyboard shortcuts,
! in order to enable them on the whole surface of the application's
! window.
!
! Revision 2.2 2000/09/11 14:00:26 cibrario
! - Added shortcut for KP_0 key
! - Set default keyboardFocusPolicy to XmPOINTE
!
! Revision 2.1 2000/09/08 15:33:26 cibrario
! *** empty log message ***
!
! .-
! Suppress all OSF/Motif virtualBindings; they interfer with some (much needed)
! keyboard translations used by this application, notably those involving
! cursor keys.
*defaultVirtualBindings:
! The default keyboard focus policy is XmEXPLICIT, but
! the emulated keyboard cannot be traversed; this forces the focus to be
! on the LCD display. There, Motif grabs less tranlations than elsewhere.
*keyboardFocusPolicy: XmEXPLICIT
*kbd*traversalOn: false
! Error Dialog resources
*error_popup*deleteResponse: XmDO_NOTHING
*error*fontList: *helvetica-medium-r-*-*-8-*,*symbol-*-*-*-*-8-*=S
*error*dialogTitle: Attention, please...
*error*okLabelString: Continue
! Set a bold foreground for the main message window
*msg*foreground: red
*msg*cursorPositionVisible: False
*msg*fontList: *helvetica-medium-r-*-*-8-*,*symbol-*-*-*-*-8-*=S
! Destroy application when 'Close' is selected from mwm menu.
*deleteResponse: XmDESTROY
! Main window; enable automatic scrolling
*main.scrollingPolicy: XmAUTOMATIC
! Declare attachments of keyboard XmForm components, for all faces
*kbd.XmForm.topAttachment: XmATTACH_POSITION
*kbd.XmForm.bottomAttachment: XmATTACH_POSITION
*kbd.XmForm.leftAttachment: XmATTACH_POSITION
*kbd.XmForm.rightAttachment: XmATTACH_POSITION
! File Selection Box resources
*fsb_popup*deleteResponse: XmDO_NOTHING
*fsb*fontList: *helvetica-medium-r-*-*-8-*
*fsb*XmTextField.baseTranslations: #override \n\
<Key>BackSpace: delete-previous-character() \n\
<Key>Delete: delete-next-character() \n\
<Key>Left: backward-character() \n\
<Key>Right: forward-character()
! -----------------------------------------------------------------------------
! The following settings act on the hp48 face only
! Background color
*hp48*background: gray45
! XmRowColumn container settings; vertical layout, packed
*hp48.numColumns: 1
*hp48.orientation: XmVERTICAL
*hp48.packing: XmPACK_TIGHT
! Keyboard layout
*hp48.nKeys: 49
*hp48.kbd.fractionBase: 1440
*hp48.kbd*fontList: *helvetica-*-r-*-*-10-*,*symbol-*-*-*-*-10-*=S
*hp48.kbd*btn.fontList: *helvetica-*-r-*-*-12-*,*symbol-*-*-*-*-12-*=S
*hp48.kbd*ul.foreground: dark violet
*hp48.kbd*ur.foreground: dark green
*hp48.kbd*ll.foreground: gray90
*hp48.kbd*lr.foreground: gray90
*hp48.kbd*btn.foreground: wheat
*hp48.kbd*btn.shadowThickness: 1
! Lcd screen colors and layout
*hp48.frame*background: #cadd5c
*hp48.frame*foreground: black
*hp48*lcd.childType: XmFRAME_TITLE_CHILD
*hp48*lcd.childHorizontalAlignment: XmALIGNMENT_CENTER
*hp48*lcd.childVerticalAlignment: XmALIGNMENT_WIDGET_BOTTOM
*hp48*lcd.resizePolicy: XmRESIZE_NONE
*hp48*lcd.width: 272
*hp48*lcd.height: 156
! Suppress all lower-left keyboard labels; the hp48 does not use them
*hp48.kbd*ll.labelString:
! Resources for all keyboard keys
! First row
*hp48.kbd.0.topPosition: 0
*hp48.kbd.0.bottomPosition: 160
*hp48.kbd.0.leftPosition: 0
*hp48.kbd.0.rightPosition: 240
*hp48.kbd.0.btn.labelString: A
*hp48.kbd.0.ul.labelString: \
*hp48.kbd.0.ur.labelString: \
*hp48.kbd.0.lr.labelString: A
*hp48.kbd.1.topPosition: 0
*hp48.kbd.1.bottomPosition: 160
*hp48.kbd.1.leftPosition: 240
*hp48.kbd.1.rightPosition: 480
*hp48.kbd.1.btn.labelString: B
*hp48.kbd.1.ul.labelString: \
*hp48.kbd.1.ur.labelString: \
*hp48.kbd.1.lr.labelString: B
*hp48.kbd.2.topPosition: 0
*hp48.kbd.2.bottomPosition: 160
*hp48.kbd.2.leftPosition: 480
*hp48.kbd.2.rightPosition: 720
*hp48.kbd.2.btn.labelString: C
*hp48.kbd.2.ul.labelString: \
*hp48.kbd.2.ur.labelString: \
*hp48.kbd.2.lr.labelString: C
*hp48.kbd.3.topPosition: 0
*hp48.kbd.3.bottomPosition: 160
*hp48.kbd.3.leftPosition: 720
*hp48.kbd.3.rightPosition: 960
*hp48.kbd.3.btn.labelString: D
*hp48.kbd.3.ul.labelString: \
*hp48.kbd.3.ur.labelString: \
*hp48.kbd.3.lr.labelString: D
*hp48.kbd.4.topPosition: 0
*hp48.kbd.4.bottomPosition: 160
*hp48.kbd.4.leftPosition: 960
*hp48.kbd.4.rightPosition: 1200
*hp48.kbd.4.btn.labelString: E
*hp48.kbd.4.ul.labelString: \
*hp48.kbd.4.ur.labelString: \
*hp48.kbd.4.lr.labelString: E
*hp48.kbd.5.topPosition: 0
*hp48.kbd.5.bottomPosition: 160
*hp48.kbd.5.leftPosition: 1200
*hp48.kbd.5.rightPosition: 1440
*hp48.kbd.5.btn.labelString: F
*hp48.kbd.5.ul.labelString: \
*hp48.kbd.5.ur.labelString: \
*hp48.kbd.5.lr.labelString: F
! Second row
*hp48.kbd.6.topPosition: 160
*hp48.kbd.6.bottomPosition: 320
*hp48.kbd.6.leftPosition: 0
*hp48.kbd.6.rightPosition: 240
*hp48.kbd.6.btn.labelString: MTH
*hp48.kbd.6.ul.labelString: RAD
*hp48.kbd.6.ur.labelString: POLAR
*hp48.kbd.6.lr.labelString: G
*hp48.kbd.7.topPosition: 160
*hp48.kbd.7.bottomPosition: 320
*hp48.kbd.7.leftPosition: 240
*hp48.kbd.7.rightPosition: 480
*hp48.kbd.7.btn.labelString: PRG
*hp48.kbd.7.ul.labelString: \
*hp48.kbd.7.ur.labelString: CHARS
*hp48.kbd.7.lr.labelString: H
*hp48.kbd.8.topPosition: 160
*hp48.kbd.8.bottomPosition: 320
*hp48.kbd.8.leftPosition: 480
*hp48.kbd.8.rightPosition: 720
*hp48.kbd.8.btn.labelString: CST
*hp48.kbd.8.ul.labelString: \
*hp48.kbd.8.ur.labelString: MODES
*hp48.kbd.8.lr.labelString: I
*hp48.kbd.9.topPosition: 160
*hp48.kbd.9.bottomPosition: 320
*hp48.kbd.9.leftPosition: 720
*hp48.kbd.9.rightPosition: 960
*hp48.kbd.9.btn.labelString: VAR
*hp48.kbd.9.ul.labelString: \
*hp48.kbd.9.ur.labelString: MEMORY
*hp48.kbd.9.lr.labelString: J
*hp48.kbd.10.topPosition: 160
*hp48.kbd.10.bottomPosition: 320
*hp48.kbd.10.leftPosition: 960
*hp48.kbd.10.rightPosition: 1200
*hp48.kbd.10.btn.compoundString: #S\255
*hp48.kbd.10.ul.labelString: \
*hp48.kbd.10.ur.labelString: STACK
*hp48.kbd.10.lr.labelString: K
*hp48.kbd.11.topPosition: 160
*hp48.kbd.11.bottomPosition: 320
*hp48.kbd.11.leftPosition: 1200
*hp48.kbd.11.rightPosition: 1440
*hp48.kbd.11.btn.labelString: NXT
*hp48.kbd.11.ul.labelString: PREV
*hp48.kbd.11.ur.labelString: MENU
*hp48.kbd.11.lr.labelString: L
! Third row
*hp48.kbd.12.topPosition: 320
*hp48.kbd.12.bottomPosition: 480
*hp48.kbd.12.leftPosition: 0
*hp48.kbd.12.rightPosition: 240
*hp48.kbd.12.btn.labelString: '
*hp48.kbd.12.ul.labelString: UP
*hp48.kbd.12.ur.labelString: HOME
*hp48.kbd.12.lr.labelString: M
*hp48.kbd.13.topPosition: 320
*hp48.kbd.13.bottomPosition: 480
*hp48.kbd.13.leftPosition: 240
*hp48.kbd.13.rightPosition: 480
*hp48.kbd.13.btn.labelString: STO
*hp48.kbd.13.ul.labelString: DEF
*hp48.kbd.13.ur.labelString: RCL
*hp48.kbd.13.lr.labelString: N
*hp48.kbd.14.topPosition: 320
*hp48.kbd.14.bottomPosition: 480
*hp48.kbd.14.leftPosition: 480
*hp48.kbd.14.rightPosition: 720
*hp48.kbd.14.btn.labelString: EVAL
*hp48.kbd.14.ul.compoundString: #S\256# NUM
*hp48.kbd.14.ur.labelString: UNDO
*hp48.kbd.14.lr.labelString: O
*hp48.kbd.15.topPosition: 320
*hp48.kbd.15.bottomPosition: 480
*hp48.kbd.15.leftPosition: 720
*hp48.kbd.15.rightPosition: 960
*hp48.kbd.15.btn.compoundString: #S\254
*hp48.kbd.15.ul.labelString: PICTURE
*hp48.kbd.15.ur.labelString: \
*hp48.kbd.15.lr.labelString: P
*hp48.kbd.16.topPosition: 320
*hp48.kbd.16.bottomPosition: 480
*hp48.kbd.16.leftPosition: 960
*hp48.kbd.16.rightPosition: 1200
*hp48.kbd.16.btn.compoundString: #S\257
*hp48.kbd.16.ul.labelString: VIEW
*hp48.kbd.16.ur.labelString: \
*hp48.kbd.16.lr.labelString: Q
*hp48.kbd.17.topPosition: 320
*hp48.kbd.17.bottomPosition: 480
*hp48.kbd.17.leftPosition: 1200
*hp48.kbd.17.rightPosition: 1440
*hp48.kbd.17.btn.compoundString: #S\256
*hp48.kbd.17.ul.labelString: SWAP
*hp48.kbd.17.ur.labelString: \
*hp48.kbd.17.lr.labelString: R
! Fourth row
*hp48.kbd.18.topPosition: 480
*hp48.kbd.18.bottomPosition: 640
*hp48.kbd.18.leftPosition: 0
*hp48.kbd.18.rightPosition: 240
*hp48.kbd.18.btn.labelString: SIN
*hp48.kbd.18.ul.labelString: ASIN
*hp48.kbd.18.ur.compoundString: #S\266
*hp48.kbd.18.lr.labelString: S
*hp48.kbd.19.topPosition: 480
*hp48.kbd.19.bottomPosition: 640
*hp48.kbd.19.leftPosition: 240
*hp48.kbd.19.rightPosition: 480
*hp48.kbd.19.btn.labelString: COS
*hp48.kbd.19.ul.labelString: ACOS
*hp48.kbd.19.ur.compoundString: #S\362
*hp48.kbd.19.lr.labelString: T
*hp48.kbd.20.topPosition: 480
*hp48.kbd.20.bottomPosition: 640
*hp48.kbd.20.leftPosition: 480
*hp48.kbd.20.rightPosition: 720
*hp48.kbd.20.btn.labelString: TAN
*hp48.kbd.20.ul.labelString: ATAN
*hp48.kbd.20.ur.compoundString: #S\123
*hp48.kbd.20.lr.labelString: U
*hp48.kbd.21.topPosition: 480
*hp48.kbd.21.bottomPosition: 640
*hp48.kbd.21.leftPosition: 720
*hp48.kbd.21.rightPosition: 960
*hp48.kbd.21.btn.compoundString: #S\326# x
*hp48.kbd.21.ul.labelString: x^2
*hp48.kbd.21.ur.compoundString: # x#S\326# y
*hp48.kbd.21.lr.labelString: V
*hp48.kbd.22.topPosition: 480
*hp48.kbd.22.bottomPosition: 640
*hp48.kbd.22.leftPosition: 960
*hp48.kbd.22.rightPosition: 1200
*hp48.kbd.22.btn.labelString: y^x
*hp48.kbd.22.ul.labelString: 10^x
*hp48.kbd.22.ur.labelString: LOG
*hp48.kbd.22.lr.labelString: W
*hp48.kbd.23.topPosition: 480
*hp48.kbd.23.bottomPosition: 640
*hp48.kbd.23.leftPosition: 1200
*hp48.kbd.23.rightPosition: 1440
*hp48.kbd.23.btn.labelString: 1/x
*hp48.kbd.23.ul.labelString: e^x
*hp48.kbd.23.ur.labelString: LN
*hp48.kbd.23.lr.labelString: X
! Fifth row
*hp48.kbd.24.topPosition: 640
*hp48.kbd.24.bottomPosition: 800
*hp48.kbd.24.leftPosition: 0
*hp48.kbd.24.rightPosition: 480
*hp48.kbd.24.btn.labelString: ENTER
*hp48.kbd.24.ul.labelString: EQUATION
*hp48.kbd.24.ur.labelString: MATRIX
*hp48.kbd.24.lr.labelString: \
*hp48.kbd.25.topPosition: 640
*hp48.kbd.25.bottomPosition: 800
*hp48.kbd.25.leftPosition: 480
*hp48.kbd.25.rightPosition: 720
*hp48.kbd.25.btn.labelString: +/-
*hp48.kbd.25.ul.labelString: EDIT
*hp48.kbd.25.ur.labelString: CMD
*hp48.kbd.25.lr.labelString: Y
*hp48.kbd.26.topPosition: 640
*hp48.kbd.26.bottomPosition: 800
*hp48.kbd.26.leftPosition: 720
*hp48.kbd.26.rightPosition: 960
*hp48.kbd.26.btn.labelString: EEX
*hp48.kbd.26.ul.labelString: PURG
*hp48.kbd.26.ur.labelString: ARG
*hp48.kbd.26.lr.labelString: Z
*hp48.kbd.27.topPosition: 640
*hp48.kbd.27.bottomPosition: 800
*hp48.kbd.27.leftPosition: 960
*hp48.kbd.27.rightPosition: 1200
*hp48.kbd.27.btn.labelString: DEL
*hp48.kbd.27.ul.labelString: CLEAR
*hp48.kbd.27.ur.labelString: \
*hp48.kbd.27.lr.labelString: \
*hp48.kbd.28.topPosition: 640
*hp48.kbd.28.bottomPosition: 800
*hp48.kbd.28.leftPosition: 1200
*hp48.kbd.28.rightPosition: 1440
*hp48.kbd.28.btn.compoundString: #S\334
*hp48.kbd.28.ul.labelString: DROP
*hp48.kbd.28.ur.labelString: \
*hp48.kbd.28.lr.labelString: \
! Sixth row
*hp48.kbd.29.topPosition: 800
*hp48.kbd.29.bottomPosition: 960
*hp48.kbd.29.leftPosition: 0
*hp48.kbd.29.rightPosition: 240
*hp48.kbd.29.btn.compoundString: #Sa
*hp48.kbd.29.ul.labelString: USER
*hp48.kbd.29.ur.labelString: ENTRY
*hp48.kbd.29.lr.labelString: \
*hp48.kbd.30*background: gray60
*hp48.kbd.30.topPosition: 800
*hp48.kbd.30.bottomPosition: 960
*hp48.kbd.30.leftPosition: 240
*hp48.kbd.30.rightPosition: 540
*hp48.kbd.30.btn.labelString: 7
*hp48.kbd.30.ul.labelString: \
*hp48.kbd.30.ur.labelString: SOLVE
*hp48.kbd.30.lr.labelString: \
*hp48.kbd.31*background: gray60
*hp48.kbd.31.topPosition: 800
*hp48.kbd.31.bottomPosition: 960
*hp48.kbd.31.leftPosition: 540
*hp48.kbd.31.rightPosition: 840
*hp48.kbd.31.btn.labelString: 8
*hp48.kbd.31.ul.labelString: \
*hp48.kbd.31.ur.labelString: PLOT
*hp48.kbd.31.lr.labelString: \
*hp48.kbd.32*background: gray60
*hp48.kbd.32.topPosition: 800
*hp48.kbd.32.bottomPosition: 960
*hp48.kbd.32.leftPosition: 840
*hp48.kbd.32.rightPosition: 1140
*hp48.kbd.32.btn.labelString: 9
*hp48.kbd.32.ul.labelString: \
*hp48.kbd.32.ur.labelString: SYMBOLIC
*hp48.kbd.32.lr.labelString: \
*hp48.kbd.33.topPosition: 800
*hp48.kbd.33.bottomPosition: 960
*hp48.kbd.33.leftPosition: 1140
*hp48.kbd.33.rightPosition: 1440
*hp48.kbd.33.btn.labelString: /
*hp48.kbd.33.ul.labelString: ()
*hp48.kbd.33.ur.labelString: #
*hp48.kbd.33.lr.labelString: \
! Seventh row
*hp48.kbd.34.topPosition: 960
*hp48.kbd.34.bottomPosition: 1120
*hp48.kbd.34.leftPosition: 0
*hp48.kbd.34.rightPosition: 240
*hp48.kbd.34.btn.background: dark violet
*hp48.kbd.34.btn.foreground: black
*hp48.kbd.34.btn.compoundString: #S\334
*hp48.kbd.34.ul.labelString: \
*hp48.kbd.34.ur.labelString: \
*hp48.kbd.34.lr.labelString: \
*hp48.kbd.35*background: gray60
*hp48.kbd.35.topPosition: 960
*hp48.kbd.35.bottomPosition: 1120
*hp48.kbd.35.leftPosition: 240
*hp48.kbd.35.rightPosition: 540
*hp48.kbd.35.btn.labelString: 4
*hp48.kbd.35.ul.labelString: \
*hp48.kbd.35.ur.labelString: TIME
*hp48.kbd.35.lr.labelString: \
*hp48.kbd.36*background: gray60
*hp48.kbd.36.topPosition: 960
*hp48.kbd.36.bottomPosition: 1120
*hp48.kbd.36.leftPosition: 540
*hp48.kbd.36.rightPosition: 840
*hp48.kbd.36.btn.labelString: 5
*hp48.kbd.36.ul.labelString: \
*hp48.kbd.36.ur.labelString: STAT
*hp48.kbd.36.lr.labelString: \
*hp48.kbd.37*background: gray60
*hp48.kbd.37.topPosition: 960
*hp48.kbd.37.bottomPosition: 1120
*hp48.kbd.37.leftPosition: 840
*hp48.kbd.37.rightPosition: 1140
*hp48.kbd.37.btn.labelString: 6
*hp48.kbd.37.ul.labelString: \
*hp48.kbd.37.ur.labelString: UNITS
*hp48.kbd.37.lr.labelString: \
*hp48.kbd.38.topPosition: 960
*hp48.kbd.38.bottomPosition: 1120
*hp48.kbd.38.leftPosition: 1140
*hp48.kbd.38.rightPosition: 1440
*hp48.kbd.38.btn.compoundString: #S\264
*hp48.kbd.38.ul.labelString: []
*hp48.kbd.38.ur.labelString: _
*hp48.kbd.38.lr.labelString: \
! Eigth row
*hp48.kbd.39.topPosition: 1120
*hp48.kbd.39.bottomPosition: 1280
*hp48.kbd.39.leftPosition: 0
*hp48.kbd.39.rightPosition: 240
*hp48.kbd.39.btn.background: dark green
*hp48.kbd.39.btn.foreground: black
*hp48.kbd.39.btn.compoundString: #S\336
*hp48.kbd.39.ul.labelString: \
*hp48.kbd.39.ur.labelString: \
*hp48.kbd.39.lr.labelString: \
*hp48.kbd.40*background: gray60
*hp48.kbd.40.topPosition: 1120
*hp48.kbd.40.bottomPosition: 1280
*hp48.kbd.40.leftPosition: 240
*hp48.kbd.40.rightPosition: 540
*hp48.kbd.40.btn.labelString: 1
*hp48.kbd.40.ul.labelString: \
*hp48.kbd.40.ur.labelString: I/O
*hp48.kbd.40.lr.labelString: \
*hp48.kbd.41*background: gray60
*hp48.kbd.41.topPosition: 1120
*hp48.kbd.41.bottomPosition: 1280
*hp48.kbd.41.leftPosition: 540
*hp48.kbd.41.rightPosition: 840
*hp48.kbd.41.btn.labelString: 2
*hp48.kbd.41.ul.labelString: \
*hp48.kbd.41.ur.labelString: LIBRARY
*hp48.kbd.41.lr.labelString: \
*hp48.kbd.42*background: gray60
*hp48.kbd.42.topPosition: 1120
*hp48.kbd.42.bottomPosition: 1280
*hp48.kbd.42.leftPosition: 840
*hp48.kbd.42.rightPosition: 1140
*hp48.kbd.42.btn.labelString: 3
*hp48.kbd.42.ul.labelString: \
*hp48.kbd.42.ur.labelString: EQ LIB
*hp48.kbd.42.lr.labelString: \
*hp48.kbd.43.topPosition: 1120
*hp48.kbd.43.bottomPosition: 1280
*hp48.kbd.43.leftPosition: 1140
*hp48.kbd.43.rightPosition: 1440
*hp48.kbd.43.btn.labelString: -
*hp48.kbd.43.ul.labelString: <<>>
*hp48.kbd.43.ur.labelString: ""
*hp48.kbd.43.lr.labelString: \
! Ninth row
*hp48.kbd.44.topPosition: 1280
*hp48.kbd.44.bottomPosition: 1440
*hp48.kbd.44.leftPosition: 0
*hp48.kbd.44.rightPosition: 240
*hp48.kbd.44.btn.labelString: ON
*hp48.kbd.44.ul.labelString: CONT
*hp48.kbd.44.ur.labelString: OFF
*hp48.kbd.44.lr.labelString: CANCEL
*hp48.kbd.45.topPosition: 1280
*hp48.kbd.45.bottomPosition: 1440
*hp48.kbd.45.leftPosition: 240
*hp48.kbd.45.rightPosition: 540
*hp48.kbd.45.btn.labelString: 0
*hp48.kbd.45.ul.labelString: =
*hp48.kbd.45.ur.compoundString: #S\256
*hp48.kbd.45.lr.labelString: \
*hp48.kbd.46.topPosition: 1280
*hp48.kbd.46.bottomPosition: 1440
*hp48.kbd.46.leftPosition: 540
*hp48.kbd.46.rightPosition: 840
*hp48.kbd.46.btn.labelString: .
*hp48.kbd.46.ul.labelString: ,
*hp48.kbd.46.ur.compoundString: #S\277
*hp48.kbd.46.lr.labelString: \
*hp48.kbd.47.topPosition: 1280
*hp48.kbd.47.bottomPosition: 1440
*hp48.kbd.47.leftPosition: 840
*hp48.kbd.47.rightPosition: 1140
*hp48.kbd.47.btn.labelString: SPC
*hp48.kbd.47.ul.compoundString: #Sp
*hp48.kbd.47.ur.compoundString: #S\320
*hp48.kbd.47.lr.labelString: \
*hp48.kbd.48.topPosition: 1280
*hp48.kbd.48.bottomPosition: 1440
*hp48.kbd.48.leftPosition: 1140
*hp48.kbd.48.rightPosition: 1440
*hp48.kbd.48.btn.labelString: +
*hp48.kbd.48.ul.labelString: {}
*hp48.kbd.48.ur.labelString: ::
*hp48.kbd.48.lr.labelString: \
! inOut codes for all keys
*hp48.kbd.0.btn.inOut: 1/10
*hp48.kbd.1.btn.inOut: 8/10
*hp48.kbd.2.btn.inOut: 8/08
*hp48.kbd.3.btn.inOut: 8/04
*hp48.kbd.4.btn.inOut: 8/02
*hp48.kbd.5.btn.inOut: 8/01
*hp48.kbd.6.btn.inOut: 2/10
*hp48.kbd.7.btn.inOut: 7/10
*hp48.kbd.8.btn.inOut: 7/08
*hp48.kbd.9.btn.inOut: 7/04
*hp48.kbd.10.btn.inOut: 7/02
*hp48.kbd.11.btn.inOut: 7/01
*hp48.kbd.12.btn.inOut: 0/10
*hp48.kbd.13.btn.inOut: 6/10
*hp48.kbd.14.btn.inOut: 6/08
*hp48.kbd.15.btn.inOut: 6/04
*hp48.kbd.16.btn.inOut: 6/02
*hp48.kbd.17.btn.inOut: 6/01
*hp48.kbd.18.btn.inOut: 3/10
*hp48.kbd.19.btn.inOut: 5/10
*hp48.kbd.20.btn.inOut: 5/08
*hp48.kbd.21.btn.inOut: 5/04
*hp48.kbd.22.btn.inOut: 5/02
*hp48.kbd.23.btn.inOut: 5/01
*hp48.kbd.24.btn.inOut: 4/10
*hp48.kbd.25.btn.inOut: 4/08
*hp48.kbd.26.btn.inOut: 4/04
*hp48.kbd.27.btn.inOut: 4/02
*hp48.kbd.28.btn.inOut: 4/01
*hp48.kbd.29.btn.inOut: 3/20
*hp48.kbd.30.btn.inOut: 3/08
*hp48.kbd.31.btn.inOut: 3/04
*hp48.kbd.32.btn.inOut: 3/02
*hp48.kbd.33.btn.inOut: 3/01
*hp48.kbd.34.btn.inOut: 2/20
*hp48.kbd.35.btn.inOut: 2/08
*hp48.kbd.36.btn.inOut: 2/04
*hp48.kbd.37.btn.inOut: 2/02
*hp48.kbd.38.btn.inOut: 2/01
*hp48.kbd.39.btn.inOut: 1/20
*hp48.kbd.40.btn.inOut: 1/08
*hp48.kbd.41.btn.inOut: 1/04
*hp48.kbd.42.btn.inOut: 1/02
*hp48.kbd.43.btn.inOut: 1/01
*hp48.kbd.44.btn.inOut: *
*hp48.kbd.45.btn.inOut: 0/08
*hp48.kbd.46.btn.inOut: 0/04
*hp48.kbd.47.btn.inOut: 0/02
*hp48.kbd.48.btn.inOut: 0/01
! Shortcut keyboard translations associated with the lcd display widget.
! They must be listed in more-to-less-specific order; so, for example,
! translations involving BackSpace should *before* those involving Delete
*hp48*baseTranslations: #override \n\
:<KeyDown>apostrophe: kbdKeyPress(0/10) \n\
:<KeyUp>apostrophe: kbdKeyRelease(0/10) \n\
:<KeyDown>BackSpace: kbdKeyPress(4/01) \n\
:<KeyUp>BackSpace: kbdKeyRelease(4/01) \n\
:<KeyDown>Delete: kbdKeyPress(4/02) \n\
:<KeyUp>Delete: kbdKeyRelease(4/02) \n\
:<KeyDown>slash: kbdKeyPress(3/01) \n\
:<KeyUp>slash: kbdKeyRelease(3/01) \n\
:<KeyDown>asterisk: kbdKeyPress(2/01) \n\
:<KeyUp>asterisk: kbdKeyRelease(2/01) \n\
:<KeyDown>minus: kbdKeyPress(1/01) \n\
:<KeyUp>minus: kbdKeyRelease(1/01) \n\
:<KeyDown>period: kbdKeyPress(0/04) \n\
:<KeyUp>period: kbdKeyRelease(0/04) \n\
:<KeyDown>plus: kbdKeyPress(0/01) \n\
:<KeyUp>plus: kbdKeyRelease(0/01) \n\
<KeyDown>F1: kbdKeyPress(1/10) \n\
<KeyUp>F1: kbdKeyRelease(1/10) \n\
<KeyDown>F2: kbdKeyPress(8/10) \n\
<KeyUp>F2: kbdKeyRelease(8/10) \n\
<KeyDown>F3: kbdKeyPress(8/08) \n\
<KeyUp>F3: kbdKeyRelease(8/08) \n\
<KeyDown>F4: kbdKeyPress(8/04) \n\
<KeyUp>F4: kbdKeyRelease(8/04) \n\
<KeyDown>F5: kbdKeyPress(8/02) \n\
<KeyUp>F5: kbdKeyRelease(8/02) \n\
<KeyDown>F6: kbdKeyPress(8/01) \n\
<KeyUp>F6: kbdKeyRelease(8/01) \n\
<KeyDown>A: kbdKeyPress(1/10) \n\
<KeyUp>A: kbdKeyRelease(1/10) \n\
<KeyDown>B: kbdKeyPress(8/10) \n\
<KeyUp>B: kbdKeyRelease(8/10) \n\
<KeyDown>C: kbdKeyPress(8/08) \n\
<KeyUp>C: kbdKeyRelease(8/08) \n\
<KeyDown>D: kbdKeyPress(8/04) \n\
<KeyUp>D: kbdKeyRelease(8/04) \n\
<KeyDown>E: kbdKeyPress(8/02) \n\
<KeyUp>E: kbdKeyRelease(8/02) \n\
<KeyDown>F: kbdKeyPress(8/01) \n\
<KeyUp>F: kbdKeyRelease(8/01) \n\
<KeyDown>G: kbdKeyPress(2/10) \n\
<KeyUp>G: kbdKeyRelease(2/10) \n\
<KeyDown>H: kbdKeyPress(7/10) \n\
<KeyUp>H: kbdKeyRelease(7/10) \n\
<KeyDown>I: kbdKeyPress(7/08) \n\
<KeyUp>I: kbdKeyRelease(7/08) \n\
<KeyDown>J: kbdKeyPress(7/04) \n\
<KeyUp>J: kbdKeyRelease(7/04) \n\
<KeyDown>K: kbdKeyPress(7/02) \n\
<KeyDown>Up: kbdKeyPress(7/02) \n\
<KeyUp>K: kbdKeyRelease(7/02) \n\
<KeyUp>Up: kbdKeyRelease(7/02) \n\
<KeyDown>L: kbdKeyPress(7/01) \n\
<KeyUp>L: kbdKeyRelease(7/01) \n\
<KeyDown>M: kbdKeyPress(0/10) \n\
<KeyUp>M: kbdKeyRelease(0/10) \n\
<KeyDown>N: kbdKeyPress(6/10) \n\
<KeyUp>N: kbdKeyRelease(6/10) \n\
<KeyDown>O: kbdKeyPress(6/08) \n\
<KeyUp>O: kbdKeyRelease(6/08) \n\
<KeyDown>P: kbdKeyPress(6/04) \n\
<KeyDown>Left: kbdKeyPress(6/04) \n\
<KeyUp>P: kbdKeyRelease(6/04) \n\
<KeyUp>Left: kbdKeyRelease(6/04) \n\
<KeyDown>Q: kbdKeyPress(6/02) \n\
<KeyDown>Down: kbdKeyPress(6/02) \n\
<KeyUp>Q: kbdKeyRelease(6/02) \n\
<KeyUp>Down: kbdKeyRelease(6/02) \n\
<KeyDown>R: kbdKeyPress(6/01) \n\
<KeyDown>Right: kbdKeyPress(6/01) \n\
<KeyUp>R: kbdKeyRelease(6/01) \n\
<KeyUp>Right: kbdKeyRelease(6/01) \n\
<KeyDown>S: kbdKeyPress(3/10) \n\
<KeyUp>S: kbdKeyRelease(3/10) \n\
<KeyDown>T: kbdKeyPress(5/10) \n\
<KeyUp>T: kbdKeyRelease(5/10) \n\
<KeyDown>U: kbdKeyPress(5/08) \n\
<KeyUp>U: kbdKeyRelease(5/08) \n\
<KeyDown>V: kbdKeyPress(5/04) \n\
<KeyUp>V: kbdKeyRelease(5/04) \n\
<KeyDown>W: kbdKeyPress(5/02) \n\
<KeyUp>W: kbdKeyRelease(5/02) \n\
<KeyDown>X: kbdKeyPress(5/01) \n\
<KeyUp>X: kbdKeyRelease(5/01) \n\
<KeyDown>Return: kbdKeyPress(4/10) \n\
<KeyUp>Return: kbdKeyRelease(4/10) \n\
<KeyDown>KP_Enter: kbdKeyPress(4/10) \n\
<KeyUp>KP_Enter: kbdKeyRelease(4/10) \n\
<KeyDown>Y: kbdKeyPress(4/08) \n\
<KeyUp>Y: kbdKeyRelease(4/08) \n\
<KeyDown>Z: kbdKeyPress(4/04) \n\
<KeyUp>Z: kbdKeyRelease(4/04) \n\
<KeyDown>F10: kbdKeyPress(3/20) \n\
<KeyUp>F10: kbdKeyRelease(3/20) \n\
<KeyDown>7: kbdKeyPress(3/08) \n\
<KeyUp>7: kbdKeyRelease(3/08) \n\
<KeyDown>KP_7: kbdKeyPress(3/08) \n\
<KeyUp>KP_7: kbdKeyRelease(3/08) \n\
<KeyDown>8: kbdKeyPress(3/04) \n\
<KeyUp>8: kbdKeyRelease(3/04) \n\
<KeyDown>KP_8: kbdKeyPress(3/04) \n\
<KeyUp>KP_8: kbdKeyRelease(3/04) \n\
<KeyDown>9: kbdKeyPress(3/02) \n\
<KeyUp>9: kbdKeyRelease(3/02) \n\
<KeyDown>KP_9: kbdKeyPress(3/02) \n\
<KeyUp>KP_9: kbdKeyRelease(3/02) \n\
<KeyDown>F11: kbdKeyPress(2/20) \n\
<KeyUp>F11: kbdKeyRelease(2/20) \n\
<KeyDown>4: kbdKeyPress(2/08) \n\
<KeyUp>4: kbdKeyRelease(2/08) \n\
<KeyDown>KP_4: kbdKeyPress(2/08) \n\
<KeyUp>KP_4: kbdKeyRelease(2/08) \n\
<KeyDown>5: kbdKeyPress(2/04) \n\
<KeyUp>5: kbdKeyRelease(2/04) \n\
<KeyDown>KP_5: kbdKeyPress(2/04) \n\
<KeyUp>KP_5: kbdKeyRelease(2/04) \n\
<KeyDown>6: kbdKeyPress(2/02) \n\
<KeyUp>6: kbdKeyRelease(2/02) \n\
<KeyDown>KP_6: kbdKeyPress(2/02) \n\
<KeyUp>KP_6: kbdKeyRelease(2/02) \n\
<KeyDown>F12: kbdKeyPress(1/20) \n\
<KeyUp>F12: kbdKeyRelease(1/20) \n\
<KeyDown>1: kbdKeyPress(1/08) \n\
<KeyUp>1: kbdKeyRelease(1/08) \n\
<KeyDown>KP_1: kbdKeyPress(1/08) \n\
<KeyUp>KP_1: kbdKeyRelease(1/08) \n\
<KeyDown>2: kbdKeyPress(1/04) \n\
<KeyUp>2: kbdKeyRelease(1/04) \n\
<KeyDown>KP_2: kbdKeyPress(1/04) \n\
<KeyUp>KP_2: kbdKeyRelease(1/04) \n\
<KeyDown>3: kbdKeyPress(1/02) \n\
<KeyUp>3: kbdKeyRelease(1/02) \n\
<KeyDown>KP_3: kbdKeyPress(1/02) \n\
<KeyUp>KP_3: kbdKeyRelease(1/02) \n\
<KeyDown>Escape: kbdKeyPress(*) \n\
<KeyUp>Escape: kbdKeyRelease(*) \n\
<KeyDown>0: kbdKeyPress(0/08) \n\
<KeyUp>0: kbdKeyRelease(0/08) \n\
<KeyDown>KP_0: kbdKeyPress(0/08) \n\
<KeyUp>KP_0: kbdKeyRelease(0/08) \n\
<KeyDown>space: kbdKeyPress(0/02) \n\
<KeyUp>space: kbdKeyRelease(0/02) \n\
<KeyDown>KP_Add: kbdKeyPress(0/01) \n\
<KeyUp>KP_Add: kbdKeyRelease(0/01) \n\
<KeyDown>KP_Subtract: kbdKeyPress(1/01) \n\
<KeyUp>KP_Subtract: kbdKeyRelease(1/01) \n\
<KeyDown>KP_Multiply: kbdKeyPress(2/01) \n\
<KeyUp>KP_Multiply: kbdKeyRelease(2/01) \n\
<KeyDown>KP_Divide: kbdKeyPress(3/01) \n\
<KeyUp>KP_Divide: kbdKeyRelease(3/01) \n\
<KeyDown>KP_Decimal: kbdKeyPress(0/04) \n\
<KeyUp>KP_Decimal: kbdKeyRelease(0/04) \n\
<KeyDown>Alt_L: kbdKeyPress(3/20) \n\
<KeyUp>Alt_L: kbdKeyRelease(3/20) \n\
<KeyDown>Alt_R: kbdKeyPress(3/20) \n\
<KeyUp>Alt_R: kbdKeyRelease(3/20) \n\
<KeyDown>Shift_L: kbdKeyPress(2/20) \n\
<KeyUp>Shift_L: kbdKeyRelease(2/20) \n\
<KeyDown>Shift_R: kbdKeyPress(1/20) \n\
<KeyUp>Shift_R: kbdKeyRelease(1/20)
! -----------------------------------------------------------------------------
! The following settings act on the hp49 face only
! 4.1.1.1: ... and are an experiment for very small displays
*hp49*fillOnSelect: true
*hp49*highlightThickness: 0
*hp49*shadowThickness: 0
*hp49*marginWidth: 0
*hp49.kbd*ul.marginWidth: 1
*hp49.kbd*lr.marginWidth: 1
*hp49.kbd*XmForm.marginWidth: 1
*hp49*marginHeight: 0
*hp49*XmToggleButton.marginHeight: -2
*hp49*XmLabel.marginHeight: -1
*hp49*msg.marginHeight: 0
! Background color
*hp49*background: light sky blue
! XmRowColumn container settings; vertical layout, packed
*hp49.numColumns: 1
*hp49.orientation: XmVERTICAL
*hp49.packing: XmPACK_TIGHT
! Keyboard layout
*hp49.nKeys: 51
*hp49.kbd.fractionBase: 1124
*hp49.kbd*fontList: *helvetica-medium-r-*-*-8-*,*symbol-*-*-*-*-8-*=S
*hp49.kbd*btn.fontList: *helvetica-medium-r-*-*-8-*,*symbol-*-*-*-*-8-*=S
*hp49.kbd*ul.foreground: midnight blue
*hp49.kbd*ur.foreground: red
*hp49.kbd*lr.foreground: sea green
*hp49.kbd*btn.background: gray45
*hp49.kbd*btn.foreground: gray90
*hp49.kbd*btn.shadowThickness: 0
! Lcd screen colors and layout
*hp49.frame*background: gray20
*hp49.frame.lcd.background: gray80
*hp49*lcd.foreground: black
*hp49*lcd.childType: XmFRAME_TITLE_CHILD
*hp49*lcd.childHorizontalAlignment: XmALIGNMENT_CENTER
*hp49*lcd.childVerticalAlignment: XmALIGNMENT_WIDGET_BOTTOM
*hp49*lcd.resizePolicy: XmRESIZE_NONE
*hp49*lcd.width: 133
*hp49*lcd.height: 80
! Suppress all lower-left keyboard labels; the hp49 does not use them
*hp49.kbd*ll.labelString:
! Resources for all keyboard keys
! First row
*hp49.kbd.0.topPosition: 0
*hp49.kbd.0.bottomPosition: 130
*hp49.kbd.0.leftPosition: 0
*hp49.kbd.0.rightPosition: 186
*hp49.kbd.0.btn.background: gray30
*hp49.kbd.0.btn.labelString: F1
*hp49.kbd.0.ul.labelString: Y=
*hp49.kbd.0.ur.labelString: \
*hp49.kbd.0.lr.labelString: A
*hp49.kbd.1.topPosition: 0
*hp49.kbd.1.bottomPosition: 130
*hp49.kbd.1.leftPosition: 186
*hp49.kbd.1.rightPosition: 372
*hp49.kbd.1.btn.background: gray30
*hp49.kbd.1.btn.labelString: F2
*hp49.kbd.1.ul.labelString: WIN
*hp49.kbd.1.ur.labelString: \
*hp49.kbd.1.lr.labelString: B
*hp49.kbd.2.topPosition: 0
*hp49.kbd.2.bottomPosition: 130
*hp49.kbd.2.leftPosition: 372
*hp49.kbd.2.rightPosition: 558
*hp49.kbd.2.btn.background: gray30
*hp49.kbd.2.btn.labelString: F3
*hp49.kbd.2.ul.labelString: GRAPH
*hp49.kbd.2.ur.labelString: \
*hp49.kbd.2.lr.labelString: C
*hp49.kbd.3.topPosition: 0
*hp49.kbd.3.bottomPosition: 130
*hp49.kbd.3.leftPosition: 558
*hp49.kbd.3.rightPosition: 744
*hp49.kbd.3.btn.background: gray30
*hp49.kbd.3.btn.labelString: F4
*hp49.kbd.3.ul.labelString: 2D/3D
*hp49.kbd.3.ur.labelString: \
*hp49.kbd.3.lr.labelString: D
*hp49.kbd.4.topPosition: 0
*hp49.kbd.4.bottomPosition: 130
*hp49.kbd.4.leftPosition: 744
*hp49.kbd.4.rightPosition: 930
*hp49.kbd.4.btn.background: gray30
*hp49.kbd.4.btn.labelString: F5
*hp49.kbd.4.ul.labelString: TBLSET
*hp49.kbd.4.ur.labelString: \
*hp49.kbd.4.lr.labelString: E
*hp49.kbd.5.topPosition: 0
*hp49.kbd.5.bottomPosition: 130
*hp49.kbd.5.leftPosition: 930
*hp49.kbd.5.rightPosition: 1116
*hp49.kbd.5.btn.background: gray30
*hp49.kbd.5.btn.labelString: F6
*hp49.kbd.5.ul.labelString: TABLE
*hp49.kbd.5.ur.labelString: \
*hp49.kbd.5.lr.labelString: F
! Second row/third row
*hp49.kbd.6.topPosition: 130
*hp49.kbd.6.bottomPosition: 260
*hp49.kbd.6.leftPosition: 0
*hp49.kbd.6.rightPosition: 223
*hp49.kbd.6.btn.labelString: APPS
*hp49.kbd.6.ul.labelString: FLS
*hp49.kbd.6.ur.labelString: BEG
*hp49.kbd.6.lr.labelString: G
*hp49.kbd.7.topPosition: 130
*hp49.kbd.7.bottomPosition: 260
*hp49.kbd.7.leftPosition: 223
*hp49.kbd.7.rightPosition: 446
*hp49.kbd.7.btn.labelString: MODE
*hp49.kbd.7.ul.labelString: CST
*hp49.kbd.7.ur.labelString: END
*hp49.kbd.7.lr.labelString: H
*hp49.kbd.8.topPosition: 130
*hp49.kbd.8.bottomPosition: 260
*hp49.kbd.8.leftPosition: 446
*hp49.kbd.8.rightPosition: 669
*hp49.kbd.8.btn.labelString: TOOL
*hp49.kbd.8.ul.labelString: i
*hp49.kbd.8.ur.labelString: |
*hp49.kbd.8.lr.labelString: I
*hp49.kbd.9.topPosition: 260
*hp49.kbd.9.bottomPosition: 390
*hp49.kbd.9.leftPosition: 0
*hp49.kbd.9.rightPosition: 223
*hp49.kbd.9.btn.labelString: VAR
*hp49.kbd.9.ul.labelString: UP
*hp49.kbd.9.ur.labelString: CPY
*hp49.kbd.9.lr.labelString: J
*hp49.kbd.10.topPosition: 260
*hp49.kbd.10.bottomPosition: 390
*hp49.kbd.10.leftPosition: 223
*hp49.kbd.10.rightPosition: 446
*hp49.kbd.10.btn.compoundString: STO#S\336
*hp49.kbd.10.ul.labelString: RCL
*hp49.kbd.10.ur.labelString: CUT
*hp49.kbd.10.lr.labelString: K
*hp49.kbd.11.topPosition: 260
*hp49.kbd.11.bottomPosition: 390
*hp49.kbd.11.leftPosition: 446
*hp49.kbd.11.rightPosition: 669
*hp49.kbd.11.btn.labelString: NXT
*hp49.kbd.11.ul.labelString: PRV
*hp49.kbd.11.ur.labelString: PST
*hp49.kbd.11.lr.labelString: L
! Cursor keys
*hp49.kbd.12.topPosition: 130
*hp49.kbd.12.bottomPosition: 217
*hp49.kbd.12.leftPosition: 780
*hp49.kbd.12.rightPosition: 1003
*hp49.kbd.12.btn.compoundString: #S\255
*hp49.kbd.12.ul.labelString:
*hp49.kbd.12.ur.labelString:
*hp49.kbd.12.lr.labelString:
*hp49*kbd.12*marginHeight: 0
*hp49.kbd.13.topPosition: 217
*hp49.kbd.13.bottomPosition: 303
*hp49.kbd.13.leftPosition: 669
*hp49.kbd.13.rightPosition: 892
*hp49.kbd.13.btn.compoundString: #S\254
*hp49.kbd.13.ul.labelString:
*hp49.kbd.13.ur.labelString:
*hp49.kbd.13.lr.labelString:
*hp49*kbd.13*marginHeight: 0
*hp49.kbd.14.topPosition: 217
*hp49.kbd.14.bottomPosition: 303
*hp49.kbd.14.leftPosition: 892
*hp49.kbd.14.rightPosition: 1115
*hp49.kbd.14.btn.compoundString: #S\256
*hp49.kbd.14.ul.labelString:
*hp49.kbd.14.ur.labelString:
*hp49.kbd.14.lr.labelString:
*hp49*kbd.14*marginHeight: 0
*hp49.kbd.15.topPosition: 303
*hp49.kbd.15.bottomPosition: 390
*hp49.kbd.15.leftPosition: 780
*hp49.kbd.15.rightPosition: 1003
*hp49.kbd.15.btn.compoundString: #S\257
*hp49.kbd.15.ul.labelString:
*hp49.kbd.15.ur.labelString:
*hp49.kbd.15.lr.labelString:
*hp49*kbd.15*marginHeight: 0
! Fourth row
*hp49.kbd.16.topPosition: 390
*hp49.kbd.16.bottomPosition: 520
*hp49.kbd.16.leftPosition: 0
*hp49.kbd.16.rightPosition: 223
*hp49.kbd.16.btn.labelString: HIST
*hp49.kbd.16.ul.labelString: CMD
*hp49.kbd.16.ur.labelString: UND
*hp49.kbd.16.lr.labelString: M
*hp49.kbd.17.topPosition: 390
*hp49.kbd.17.bottomPosition: 520
*hp49.kbd.17.leftPosition: 223
*hp49.kbd.17.rightPosition: 446
*hp49.kbd.17.btn.labelString: CAT
*hp49.kbd.17.ul.labelString: PRG
*hp49.kbd.17.ur.labelString: CHR
*hp49.kbd.17.lr.labelString: N
*hp49.kbd.18.topPosition: 390
*hp49.kbd.18.bottomPosition: 520
*hp49.kbd.18.leftPosition: 446
*hp49.kbd.18.rightPosition: 669
*hp49.kbd.18.btn.labelString: EQW
*hp49.kbd.18.ul.labelString: MTW
*hp49.kbd.18.ur.labelString: '
*hp49.kbd.18.lr.labelString: O
*hp49.kbd.19.topPosition: 390
*hp49.kbd.19.bottomPosition: 520
*hp49.kbd.19.leftPosition: 669
*hp49.kbd.19.rightPosition: 892
*hp49.kbd.19.btn.labelString: SYMB
*hp49.kbd.19.ul.labelString: MTH
*hp49.kbd.19.ur.labelString: EVL
*hp49.kbd.19.lr.labelString: P
*hp49.kbd.20.topPosition: 390
*hp49.kbd.20.bottomPosition: 520
*hp49.kbd.20.leftPosition: 892
*hp49.kbd.20.rightPosition: 1115
*hp49.kbd.20.btn.compoundString: #S\334
*hp49.kbd.20.ul.labelString: DEL
*hp49.kbd.20.ur.labelString: CLR
*hp49.kbd.20.lr.labelString: \
! Fifth row
*hp49.kbd.21.topPosition: 520
*hp49.kbd.21.bottomPosition: 650
*hp49.kbd.21.leftPosition: 0
*hp49.kbd.21.rightPosition: 223
*hp49.kbd.21.btn.labelString: Y^X
*hp49.kbd.21.ul.labelString: e^x
*hp49.kbd.21.ur.labelString: LN
*hp49.kbd.21.lr.labelString: Q
*hp49.kbd.22.topPosition: 520
*hp49.kbd.22.bottomPosition: 650
*hp49.kbd.22.leftPosition: 223
*hp49.kbd.22.rightPosition: 446
*hp49.kbd.22.btn.compoundString: #S\326# X
*hp49.kbd.22.ul.labelString: x^2
*hp49.kbd.22.ur.compoundString: x#S\326# y
*hp49.kbd.22.lr.labelString: R
*hp49.kbd.23.topPosition: 520
*hp49.kbd.23.bottomPosition: 650
*hp49.kbd.23.leftPosition: 446
*hp49.kbd.23.rightPosition: 669
*hp49.kbd.23.btn.labelString: SIN
*hp49.kbd.23.ul.labelString: ASN
*hp49.kbd.23.ur.compoundString: #SS
*hp49.kbd.23.lr.labelString: S
*hp49.kbd.24.topPosition: 520
*hp49.kbd.24.bottomPosition: 650
*hp49.kbd.24.leftPosition: 669
*hp49.kbd.24.rightPosition: 892
*hp49.kbd.24.btn.labelString: COS
*hp49.kbd.24.ul.labelString: ACS
*hp49.kbd.24.ur.compoundString: #S\266
*hp49.kbd.24.lr.labelString: T
*hp49.kbd.25.topPosition: 520
*hp49.kbd.25.bottomPosition: 650
*hp49.kbd.25.leftPosition: 892
*hp49.kbd.25.rightPosition: 1115
*hp49.kbd.25.btn.labelString: TAN
*hp49.kbd.25.ul.labelString: ATN
*hp49.kbd.25.ur.compoundString: #S\362
*hp49.kbd.25.lr.labelString: U
! Sixth row
*hp49.kbd.26.topPosition: 650
*hp49.kbd.26.bottomPosition: 780
*hp49.kbd.26.leftPosition: 0
*hp49.kbd.26.rightPosition: 223
*hp49.kbd.26.btn.labelString: EEX
*hp49.kbd.26.ul.labelString: 10^x
*hp49.kbd.26.ur.labelString: LOG
*hp49.kbd.26.lr.labelString: V
*hp49.kbd.27.topPosition: 650
*hp49.kbd.27.bottomPosition: 780
*hp49.kbd.27.leftPosition: 223
*hp49.kbd.27.rightPosition: 446
*hp49.kbd.27.btn.labelString: +/-
*hp49.kbd.27.ul.compoundString: #S\271
*hp49.kbd.27.ur.compoundString: #S=
*hp49.kbd.27.lr.labelString: W
*hp49.kbd.28.topPosition: 650
*hp49.kbd.28.bottomPosition: 780
*hp49.kbd.28.leftPosition: 446
*hp49.kbd.28.rightPosition: 669
*hp49.kbd.28.btn.labelString: X
*hp49.kbd.28.ul.compoundString: #S\243
*hp49.kbd.28.ur.compoundString: #S<
*hp49.kbd.28.lr.labelString: X
*hp49.kbd.29.topPosition: 650
*hp49.kbd.29.bottomPosition: 780
*hp49.kbd.29.leftPosition: 669
*hp49.kbd.29.rightPosition: 892
*hp49.kbd.29.btn.labelString: 1/X
*hp49.kbd.29.ul.compoundString: #S\263
*hp49.kbd.29.ur.compoundString: #S>
*hp49.kbd.29.lr.labelString: Y
*hp49.kbd.30.topPosition: 650
*hp49.kbd.30.bottomPosition: 780
*hp49.kbd.30.leftPosition: 892
*hp49.kbd.30.rightPosition: 1115
*hp49.kbd.30.btn.background: gray30
*hp49.kbd.30.btn.compoundString: #S\270
*hp49.kbd.30.ul.labelString: ABS
*hp49.kbd.30.ur.compoundString: ARG
*hp49.kbd.30.lr.labelString: Z
! Seventh row
*hp49.kbd.31.topPosition: 780
*hp49.kbd.31.bottomPosition: 866
*hp49.kbd.31.leftPosition: 0
*hp49.kbd.31.rightPosition: 223
*hp49.kbd.31.btn.background: sea green
*hp49.kbd.31.btn.labelString: ALPHA
*hp49.kbd.31.ul.labelString: USR
*hp49.kbd.31.ur.labelString: ENT
*hp49.kbd.31.lr.labelString:
*hp49.kbd.32.topPosition: 780
*hp49.kbd.32.bottomPosition: 866
*hp49.kbd.32.leftPosition: 223
*hp49.kbd.32.rightPosition: 446
*hp49.kbd.32.btn.background: gray20
*hp49.kbd.32.btn.labelString: 7
*hp49.kbd.32.ul.labelString: S.S
*hp49.kbd.32.ur.labelString: N.S
*hp49.kbd.32.lr.labelString:
*hp49.kbd.33.topPosition: 780
*hp49.kbd.33.bottomPosition: 866
*hp49.kbd.33.leftPosition: 446
*hp49.kbd.33.rightPosition: 669
*hp49.kbd.33.btn.background: gray20
*hp49.kbd.33.btn.labelString: 8
*hp49.kbd.33.ul.labelString: E&L
*hp49.kbd.33.ur.labelString: TRG
*hp49.kbd.33.lr.labelString:
*hp49.kbd.34.topPosition: 780
*hp49.kbd.34.bottomPosition: 866
*hp49.kbd.34.leftPosition: 669
*hp49.kbd.34.rightPosition: 892
*hp49.kbd.34.btn.background: gray20
*hp49.kbd.34.btn.labelString: 9
*hp49.kbd.34.ul.labelString: FIN
*hp49.kbd.34.ur.labelString: TIM
*hp49.kbd.34.lr.labelString:
*hp49.kbd.35.topPosition: 780
*hp49.kbd.35.bottomPosition: 866
*hp49.kbd.35.leftPosition: 892
*hp49.kbd.35.rightPosition: 1115
*hp49.kbd.35.btn.background: gray30
*hp49.kbd.35.btn.compoundString: #S\264
*hp49.kbd.35.ul.labelString: []
*hp49.kbd.35.ur.labelString: ""
*hp49.kbd.35.lr.labelString:
! Eigth row
*hp49.kbd.36.topPosition: 866
*hp49.kbd.36.bottomPosition: 952
*hp49.kbd.36.leftPosition: 0
*hp49.kbd.36.rightPosition: 223
*hp49.kbd.36.btn.background: midnight blue
*hp49.kbd.36.btn.foreground: gray90
*hp49.kbd.36.btn.compoundString: #S\334
*hp49.kbd.36.ul.labelString: \
*hp49.kbd.36.ur.labelString: \
*hp49.kbd.36.lr.labelString:
*hp49.kbd.37.topPosition: 866
*hp49.kbd.37.bottomPosition: 952
*hp49.kbd.37.leftPosition: 223
*hp49.kbd.37.rightPosition: 446
*hp49.kbd.37.btn.background: gray20
*hp49.kbd.37.btn.labelString: 4
*hp49.kbd.37.ul.labelString: CAL
*hp49.kbd.37.ur.labelString: ALG
*hp49.kbd.37.lr.labelString:
*hp49.kbd.38.topPosition: 866
*hp49.kbd.38.bottomPosition: 952
*hp49.kbd.38.leftPosition: 446
*hp49.kbd.38.rightPosition: 669
*hp49.kbd.38.btn.background: gray20
*hp49.kbd.38.btn.labelString: 5
*hp49.kbd.38.ul.labelString: MAT
*hp49.kbd.38.ur.labelString: ST
*hp49.kbd.38.lr.labelString:
*hp49.kbd.39.topPosition: 866
*hp49.kbd.39.bottomPosition: 952
*hp49.kbd.39.leftPosition: 669
*hp49.kbd.39.rightPosition: 892
*hp49.kbd.39.btn.background: gray20
*hp49.kbd.39.btn.labelString: 6
*hp49.kbd.39.ul.labelString: CVT
*hp49.kbd.39.ur.labelString: UNT
*hp49.kbd.39.lr.labelString:
*hp49.kbd.40.topPosition: 866
*hp49.kbd.40.bottomPosition: 952
*hp49.kbd.40.leftPosition: 892
*hp49.kbd.40.rightPosition: 1115
*hp49.kbd.40.btn.background: gray30
*hp49.kbd.40.btn.labelString: -
*hp49.kbd.40.ul.labelString: ()
*hp49.kbd.40.ur.labelString: _
*hp49.kbd.40.lr.labelString:
! Ninth row
*hp49.kbd.41.topPosition: 952
*hp49.kbd.41.bottomPosition: 1038
*hp49.kbd.41.leftPosition: 0
*hp49.kbd.41.rightPosition: 223
*hp49.kbd.41.btn.background: red
*hp49.kbd.41.btn.foreground: gray90
*hp49.kbd.41.btn.compoundString: #S\336
*hp49.kbd.41.ul.labelString: \
*hp49.kbd.41.ur.labelString: \
*hp49.kbd.41.lr.labelString:
*hp49.kbd.42.topPosition: 952
*hp49.kbd.42.bottomPosition: 1038
*hp49.kbd.42.leftPosition: 223
*hp49.kbd.42.rightPosition: 446
*hp49.kbd.42.btn.background: gray20
*hp49.kbd.42.btn.labelString: 1
*hp49.kbd.42.ul.labelString: ART
*hp49.kbd.42.ur.labelString: CPX
*hp49.kbd.42.lr.labelString:
*hp49.kbd.43.topPosition: 952
*hp49.kbd.43.bottomPosition: 1038
*hp49.kbd.43.leftPosition: 446
*hp49.kbd.43.rightPosition: 669
*hp49.kbd.43.btn.background: gray20
*hp49.kbd.43.btn.labelString: 2
*hp49.kbd.43.ul.labelString: DEF
*hp49.kbd.43.ur.labelString: LIB
*hp49.kbd.43.lr.labelString:
*hp49.kbd.44.topPosition: 952
*hp49.kbd.44.bottomPosition: 1038
*hp49.kbd.44.leftPosition: 669
*hp49.kbd.44.rightPosition: 892
*hp49.kbd.44.btn.background: gray20
*hp49.kbd.44.btn.labelString: 3
*hp49.kbd.44.ul.labelString: #
*hp49.kbd.44.ur.labelString: BASE
*hp49.kbd.44.lr.labelString:
*hp49.kbd.45.topPosition: 952
*hp49.kbd.45.bottomPosition: 1038
*hp49.kbd.45.leftPosition: 892
*hp49.kbd.45.rightPosition: 1115
*hp49.kbd.45.btn.background: gray30
*hp49.kbd.45.btn.labelString: +
*hp49.kbd.45.ul.labelString: {}
*hp49.kbd.45.ur.labelString: <<>>
*hp49.kbd.45.lr.labelString:
! Tenth row
*hp49.kbd.46.topPosition: 1038
*hp49.kbd.46.bottomPosition: 1124
*hp49.kbd.46.leftPosition: 0
*hp49.kbd.46.rightPosition: 223
*hp49.kbd.46.btn.labelString: ON
*hp49.kbd.46.ul.labelString: CONT
*hp49.kbd.46.ur.labelString: OFF
*hp49.kbd.46.lr.labelString:
*hp49.kbd.47.topPosition: 1038
*hp49.kbd.47.bottomPosition: 1124
*hp49.kbd.47.leftPosition: 223
*hp49.kbd.47.rightPosition: 446
*hp49.kbd.47.btn.background: gray20
*hp49.kbd.47.btn.labelString: 0
*hp49.kbd.47.ul.compoundString: #S\245
*hp49.kbd.47.ur.compoundString: #S\256
*hp49.kbd.47.lr.labelString:
*hp49.kbd.48.topPosition: 1038
*hp49.kbd.48.bottomPosition: 1124
*hp49.kbd.48.leftPosition: 446
*hp49.kbd.48.rightPosition: 669
*hp49.kbd.48.btn.background: gray20
*hp49.kbd.48.btn.labelString: .
*hp49.kbd.48.ul.labelString: ::
*hp49.kbd.48.ur.compoundString: #S\277
*hp49.kbd.48.lr.labelString:
*hp49.kbd.49.topPosition: 1038
*hp49.kbd.49.bottomPosition: 1124
*hp49.kbd.49.leftPosition: 669
*hp49.kbd.49.rightPosition: 892
*hp49.kbd.49.btn.background: gray20
*hp49.kbd.49.btn.labelString: SPC
*hp49.kbd.49.ul.compoundString: #Sp
*hp49.kbd.49.ur.labelString: ,
*hp49.kbd.49.lr.labelString:
*hp49.kbd.50.topPosition: 1038
*hp49.kbd.50.bottomPosition: 1124
*hp49.kbd.50.leftPosition: 892
*hp49.kbd.50.rightPosition: 1115
*hp49.kbd.50.btn.background: gray30
*hp49.kbd.50.btn.labelString: ENTER
*hp49.kbd.50.ul.labelString: ANS
*hp49.kbd.50.ur.compoundString: #S\256# N
*hp49.kbd.50.lr.labelString:
! inOut codes for all keys
*hp49.kbd.0.btn.inOut: 5/01
*hp49.kbd.1.btn.inOut: 5/02
*hp49.kbd.2.btn.inOut: 5/04
*hp49.kbd.3.btn.inOut: 5/08
*hp49.kbd.4.btn.inOut: 5/10
*hp49.kbd.5.btn.inOut: 5/20
*hp49.kbd.6.btn.inOut: 5/80
*hp49.kbd.7.btn.inOut: 4/80
*hp49.kbd.8.btn.inOut: 3/80
*hp49.kbd.9.btn.inOut: 2/80
*hp49.kbd.10.btn.inOut: 1/80
*hp49.kbd.11.btn.inOut: 0/80
*hp49.kbd.12.btn.inOut: 6/08
*hp49.kbd.13.btn.inOut: 6/04
*hp49.kbd.14.btn.inOut: 6/01
*hp49.kbd.15.btn.inOut: 6/02
*hp49.kbd.16.btn.inOut: 4/40
*hp49.kbd.17.btn.inOut: 3/40
*hp49.kbd.18.btn.inOut: 2/40
*hp49.kbd.19.btn.inOut: 1/40
*hp49.kbd.20.btn.inOut: 0/40
*hp49.kbd.21.btn.inOut: 4/20
*hp49.kbd.22.btn.inOut: 3/20
*hp49.kbd.23.btn.inOut: 2/20
*hp49.kbd.24.btn.inOut: 1/20
*hp49.kbd.25.btn.inOut: 0/20
*hp49.kbd.26.btn.inOut: 4/10
*hp49.kbd.27.btn.inOut: 3/10
*hp49.kbd.28.btn.inOut: 2/10
*hp49.kbd.29.btn.inOut: 1/10
*hp49.kbd.30.btn.inOut: 0/10
*hp49.kbd.31.btn.inOut: 7/08
*hp49.kbd.32.btn.inOut: 3/08
*hp49.kbd.33.btn.inOut: 2/08
*hp49.kbd.34.btn.inOut: 1/08
*hp49.kbd.35.btn.inOut: 0/08
*hp49.kbd.36.btn.inOut: 7/04
*hp49.kbd.37.btn.inOut: 3/04
*hp49.kbd.38.btn.inOut: 2/04
*hp49.kbd.39.btn.inOut: 1/04
*hp49.kbd.40.btn.inOut: 0/04
*hp49.kbd.41.btn.inOut: 7/02
*hp49.kbd.42.btn.inOut: 3/02
*hp49.kbd.43.btn.inOut: 2/02
*hp49.kbd.44.btn.inOut: 1/02
*hp49.kbd.45.btn.inOut: 0/02
*hp49.kbd.46.btn.inOut: *
*hp49.kbd.47.btn.inOut: 3/01
*hp49.kbd.48.btn.inOut: 2/01
*hp49.kbd.49.btn.inOut: 1/01
*hp49.kbd.50.btn.inOut: 0/01
! Shortcut keyboard translations associated with the lcd display widget.
! They must be listed in more-to-less-specific order; so, for example,
! translations involving BackSpace should *before* those involving Delete
*hp49*baseTranslations: #override \n\
<KeyDown>F1: kbdKeyPress(5/01) \n\
<KeyUp>F1: kbdKeyRelease(5/01) \n\
<KeyDown>F2: kbdKeyPress(5/02) \n\
<KeyUp>F2: kbdKeyRelease(5/02) \n\
<KeyDown>F3: kbdKeyPress(5/04) \n\
<KeyUp>F3: kbdKeyRelease(5/04) \n\
<KeyDown>F4: kbdKeyPress(5/08) \n\
<KeyUp>F4: kbdKeyRelease(5/08) \n\
<KeyDown>F5: kbdKeyPress(5/10) \n\
<KeyUp>F5: kbdKeyRelease(5/10) \n\
<KeyDown>F6: kbdKeyPress(5/20) \n\
<KeyUp>F6: kbdKeyRelease(5/20) \n\
<KeyDown>A: kbdKeyPress(5/01) \n\
<KeyUp>A: kbdKeyRelease(5/01) \n\
<KeyDown>B: kbdKeyPress(5/02) \n\
<KeyUp>B: kbdKeyRelease(5/02) \n\
<KeyDown>C: kbdKeyPress(5/04) \n\
<KeyUp>C: kbdKeyRelease(5/04) \n\
<KeyDown>D: kbdKeyPress(5/08) \n\
<KeyUp>D: kbdKeyRelease(5/08) \n\
<KeyDown>E: kbdKeyPress(5/10) \n\
<KeyUp>E: kbdKeyRelease(5/10) \n\
<KeyDown>F: kbdKeyPress(5/20) \n\
<KeyUp>F: kbdKeyRelease(5/20) \n\
<KeyDown>G: kbdKeyPress(5/80) \n\
<KeyUp>G: kbdKeyRelease(5/80) \n\
<KeyDown>H: kbdKeyPress(4/80) \n\
<KeyUp>H: kbdKeyRelease(4/80) \n\
<KeyDown>I: kbdKeyPress(3/80) \n\
<KeyUp>I: kbdKeyRelease(3/80) \n\
<KeyDown>J: kbdKeyPress(2/80) \n\
<KeyUp>J: kbdKeyRelease(2/80) \n\
<KeyDown>K: kbdKeyPress(1/80) \n\
<KeyUp>K: kbdKeyRelease(1/80) \n\
<KeyDown>L: kbdKeyPress(0/80) \n\
<KeyUp>L: kbdKeyRelease(0/80) \n\
<KeyDown>Up: kbdKeyPress(6/08) \n\
<KeyUp>Up: kbdKeyRelease(6/08) \n\
<KeyDown>Left: kbdKeyPress(6/04) \n\
<KeyUp>Left: kbdKeyRelease(6/04) \n\
<KeyDown>Right: kbdKeyPress(6/01) \n\
<KeyUp>Right: kbdKeyRelease(6/01) \n\
<KeyDown>Down: kbdKeyPress(6/02) \n\
<KeyUp>Down: kbdKeyRelease(6/02) \n\
<KeyDown>M: kbdKeyPress(4/40) \n\
<KeyUp>M: kbdKeyRelease(4/40) \n\
<KeyDown>N: kbdKeyPress(3/40) \n\
<KeyUp>N: kbdKeyRelease(3/40) \n\
<KeyDown>O: kbdKeyPress(2/40) \n\
<KeyUp>O: kbdKeyRelease(2/40) \n\
<KeyDown>P: kbdKeyPress(1/40) \n\
<KeyUp>P: kbdKeyRelease(1/40) \n\
<KeyDown>BackSpace: kbdKeyPress(0/40) \n\
<KeyUp>BackSpace: kbdKeyRelease(0/40) \n\
<KeyDown>Q: kbdKeyPress(4/20) \n\
<KeyUp>Q: kbdKeyRelease(4/20) \n\
<KeyDown>R: kbdKeyPress(3/20) \n\
<KeyUp>R: kbdKeyRelease(3/20) \n\
<KeyDown>S: kbdKeyPress(2/20) \n\
<KeyUp>S: kbdKeyRelease(2/20) \n\
<KeyDown>T: kbdKeyPress(1/20) \n\
<KeyUp>T: kbdKeyRelease(1/20) \n\
<KeyDown>U: kbdKeyPress(0/20) \n\
<KeyUp>U: kbdKeyRelease(0/20) \n\
<KeyDown>V: kbdKeyPress(4/10) \n\
<KeyUp>V: kbdKeyRelease(4/10) \n\
<KeyDown>W: kbdKeyPress(3/10) \n\
<KeyUp>W: kbdKeyRelease(3/10) \n\
<KeyDown>X: kbdKeyPress(2/10) \n\
<KeyUp>X: kbdKeyRelease(2/10) \n\
<KeyDown>Y: kbdKeyPress(1/10) \n\
<KeyUp>Y: kbdKeyRelease(1/10) \n\
<KeyDown>Z: kbdKeyPress(0/10) \n\
<KeyUp>Z: kbdKeyRelease(0/10) \n\
:<KeyDown>slash: kbdKeyPress(0/10) \n\
:<KeyUp>slash: kbdKeyRelease(0/10) \n\
<KeyDown>KP_Divide: kbdKeyPress(0/10) \n\
<KeyUp>KP_Divide: kbdKeyRelease(0/10) \n\
<KeyDown>F10: kbdKeyPress(7/08) \n\
<KeyUp>F10: kbdKeyRelease(7/08) \n\
<KeyDown>7: kbdKeyPress(3/08) \n\
<KeyUp>7: kbdKeyRelease(3/08) \n\
<KeyDown>KP_7: kbdKeyPress(3/08) \n\
<KeyUp>KP_7: kbdKeyRelease(3/08) \n\
<KeyDown>8: kbdKeyPress(2/08) \n\
<KeyUp>8: kbdKeyRelease(2/08) \n\
<KeyDown>KP_8: kbdKeyPress(2/08) \n\
<KeyUp>KP_8: kbdKeyRelease(2/08) \n\
<KeyDown>9: kbdKeyPress(1/08) \n\
<KeyUp>9: kbdKeyRelease(1/08) \n\
<KeyDown>KP_9: kbdKeyPress(1/08) \n\
<KeyUp>KP_9: kbdKeyRelease(1/08) \n\
:<KeyDown>asterisk: kbdKeyPress(0/08) \n\
:<KeyUp>asterisk: kbdKeyRelease(0/08) \n\
<KeyDown>KP_Multiply: kbdKeyPress(0/08) \n\
<KeyUp>KP_Multiply: kbdKeyRelease(0/08) \n\
<KeyDown>F11: kbdKeyPress(7/04) \n\
<KeyUp>F11: kbdKeyRelease(7/04) \n\
<KeyDown>4: kbdKeyPress(3/04) \n\
<KeyUp>4: kbdKeyRelease(3/04) \n\
<KeyDown>KP_4: kbdKeyPress(3/04) \n\
<KeyUp>KP_4: kbdKeyRelease(3/04) \n\
<KeyDown>5: kbdKeyPress(2/04) \n\
<KeyUp>5: kbdKeyRelease(2/04) \n\
<KeyDown>KP_5: kbdKeyPress(2/04) \n\
<KeyUp>KP_5: kbdKeyRelease(2/04) \n\
<KeyDown>6: kbdKeyPress(1/04) \n\
<KeyUp>6: kbdKeyRelease(1/04) \n\
<KeyDown>KP_6: kbdKeyPress(1/04) \n\
<KeyUp>KP_6: kbdKeyRelease(1/04) \n\
:<KeyDown>minus: kbdKeyPress(0/04) \n\
:<KeyUp>minus: kbdKeyRelease(0/04) \n\
<KeyDown>KP_Subtract: kbdKeyPress(0/04) \n\
<KeyUp>KP_Subtract: kbdKeyRelease(0/04) \n\
<KeyDown>F12: kbdKeyPress(7/02) \n\
<KeyUp>F12: kbdKeyRelease(7/02) \n\
<KeyDown>1: kbdKeyPress(3/02) \n\
<KeyUp>1: kbdKeyRelease(3/02) \n\
<KeyDown>KP_1: kbdKeyPress(3/02) \n\
<KeyUp>KP_1: kbdKeyRelease(3/02) \n\
<KeyDown>2: kbdKeyPress(2/02) \n\
<KeyUp>2: kbdKeyRelease(2/02) \n\
<KeyDown>KP_2: kbdKeyPress(2/02) \n\
<KeyUp>KP_2: kbdKeyRelease(2/02) \n\
<KeyDown>3: kbdKeyPress(1/02) \n\
<KeyUp>3: kbdKeyRelease(1/02) \n\
<KeyDown>KP_3: kbdKeyPress(1/02) \n\
<KeyUp>KP_3: kbdKeyRelease(1/02) \n\
:<KeyDown>plus: kbdKeyPress(0/02) \n\
:<KeyUp>plus: kbdKeyRelease(0/02) \n\
<KeyDown>KP_Add: kbdKeyPress(0/02) \n\
<KeyUp>KP_Add: kbdKeyRelease(0/02) \n\
<KeyDown>Escape: kbdKeyPress(*) \n\
<KeyUp>Escape: kbdKeyRelease(*) \n\
<KeyDown>0: kbdKeyPress(3/01) \n\
<KeyUp>0: kbdKeyRelease(3/01) \n\
<KeyDown>KP_0: kbdKeyPress(3/01) \n\
<KeyUp>KP_0: kbdKeyRelease(3/01) \n\
:<KeyDown>period: kbdKeyPress(2/01) \n\
:<KeyUp>period: kbdKeyRelease(2/01) \n\
<KeyDown>KP_Decimal: kbdKeyPress(2/01) \n\
<KeyUp>KP_Decimal: kbdKeyRelease(2/01) \n\
<KeyDown>space: kbdKeyPress(1/01) \n\
<KeyUp>space: kbdKeyRelease(1/01) \n\
<KeyDown>Return: kbdKeyPress(0/01) \n\
<KeyUp>Return: kbdKeyRelease(0/01) \n\
<KeyDown>KP_Enter: kbdKeyPress(0/01) \n\
<KeyUp>KP_Enter: kbdKeyRelease(0/01) \n\
<KeyDown>Alt_L: kbdKeyPress(7/08) \n\
<KeyUp>Alt_L: kbdKeyRelease(7/08) \n\
<KeyDown>Alt_R: kbdKeyPress(7/08) \n\
<KeyUp>Alt_R: kbdKeyRelease(7/08) \n\
<KeyDown>Shift_L: kbdKeyPress(7/04) \n\
<KeyUp>Shift_L: kbdKeyRelease(7/04) \n\
<KeyDown>Shift_R: kbdKeyPress(7/02) \n\
<KeyUp>Shift_R: kbdKeyRelease(7/02)
! -----------------------------------------------------------------------------
! The following settings act on the hp40 face only
! Background color
*hp40*background: midnight blue
! XmRowColumn container settings; vertical layout, packed
*hp40.numColumns: 1
*hp40.orientation: XmVERTICAL
*hp40.packing: XmPACK_TIGHT
! Keyboard layout
*hp40.nKeys: 51
*hp40.kbd.fractionBase: 1440
*hp40.kbd*fontList: *helvetica-*-r-*-*-12-*,*symbol-*-*-*-*-12-*=S
*hp40.kbd*btn.fontList: *helvetica-*-r-*-*-14-*,*symbol-*-*-*-*-14-*=S
*hp40.kbd*ul.foreground: light sky blue
*hp40.kbd*ur.foreground: red
*hp40.kbd*lr.foreground: orange
*hp40.kbd*btn.background: gray20
*hp40.kbd*btn.foreground: gray90
*hp40.kbd*btn.shadowThickness: 1
! Lcd screen colors and layout
*hp40.frame*background: gray20
*hp40.frame.lcd.background: gray80
*hp40*lcd.foreground: black
*hp40*lcd.childType: XmFRAME_TITLE_CHILD
*hp40*lcd.childHorizontalAlignment: XmALIGNMENT_CENTER
*hp40*lcd.childVerticalAlignment: XmALIGNMENT_WIDGET_BOTTOM
*hp40*lcd.resizePolicy: XmRESIZE_NONE
*hp40*lcd.width: 272
*hp40*lcd.height: 156
! Suppress all lower-left and upper-right keyboard labels;
! the hp40 does not use them
*hp40.kbd*ur.labelString:
*hp40.kbd*ll.labelString:
! Resources for all keyboard keys
! First row
*hp40.kbd.0.topPosition: 0
*hp40.kbd.0.bottomPosition: 130
*hp40.kbd.0.leftPosition: 0
*hp40.kbd.0.rightPosition: 240
*hp40.kbd.0.btn.background: gray75
*hp40.kbd.0.btn.labelString: \
*hp40.kbd.0.ul.labelString: \
*hp40.kbd.0.lr.labelString: \
*hp40.kbd.1.topPosition: 0
*hp40.kbd.1.bottomPosition: 130
*hp40.kbd.1.leftPosition: 240
*hp40.kbd.1.rightPosition: 480
*hp40.kbd.1.btn.background: gray75
*hp40.kbd.1.btn.labelString: \
*hp40.kbd.1.ul.labelString: \
*hp40.kbd.1.lr.labelString: \
*hp40.kbd.2.topPosition: 0
*hp40.kbd.2.bottomPosition: 130
*hp40.kbd.2.leftPosition: 480
*hp40.kbd.2.rightPosition: 720
*hp40.kbd.2.btn.background: gray75
*hp40.kbd.2.btn.labelString: \
*hp40.kbd.2.ul.labelString: \
*hp40.kbd.2.lr.labelString: \
*hp40.kbd.3.topPosition: 0
*hp40.kbd.3.bottomPosition: 130
*hp40.kbd.3.leftPosition: 720
*hp40.kbd.3.rightPosition: 960
*hp40.kbd.3.btn.background: gray75
*hp40.kbd.3.btn.labelString: \
*hp40.kbd.3.ul.labelString: \
*hp40.kbd.3.lr.labelString: \
*hp40.kbd.4.topPosition: 0
*hp40.kbd.4.bottomPosition: 130
*hp40.kbd.4.leftPosition: 960
*hp40.kbd.4.rightPosition: 1200
*hp40.kbd.4.btn.background: gray75
*hp40.kbd.4.btn.labelString: \
*hp40.kbd.4.ul.labelString: \
*hp40.kbd.4.lr.labelString: \
*hp40.kbd.5.topPosition: 0
*hp40.kbd.5.bottomPosition: 130
*hp40.kbd.5.leftPosition: 1200
*hp40.kbd.5.rightPosition: 1440
*hp40.kbd.5.btn.background: gray75
*hp40.kbd.5.btn.labelString: \
*hp40.kbd.5.ul.labelString: \
*hp40.kbd.5.lr.labelString: \
! Second row/third row
*hp40.kbd.6.topPosition: 200
*hp40.kbd.6.bottomPosition: 330
*hp40.kbd.6.leftPosition: 0
*hp40.kbd.6.rightPosition: 288
*hp40.kbd.6.btn.background: gray75
*hp40.kbd.6.btn.labelString: SYMB
*hp40.kbd.6.ul.labelString: \
*hp40.kbd.6.lr.labelString: \
*hp40.kbd.7.topPosition: 200
*hp40.kbd.7.bottomPosition: 330
*hp40.kbd.7.leftPosition: 288
*hp40.kbd.7.rightPosition: 576
*hp40.kbd.7.btn.background: gray75
*hp40.kbd.7.btn.labelString: PLOT
*hp40.kbd.7.ul.labelString: \
*hp40.kbd.7.lr.labelString: \
*hp40.kbd.8.topPosition: 200
*hp40.kbd.8.bottomPosition: 330
*hp40.kbd.8.leftPosition: 576
*hp40.kbd.8.rightPosition: 864
*hp40.kbd.8.btn.background: gray75
*hp40.kbd.8.btn.labelString: NUM
*hp40.kbd.8.ul.labelString: \
*hp40.kbd.8.lr.labelString: \
*hp40.kbd.9.topPosition: 330
*hp40.kbd.9.bottomPosition: 460
*hp40.kbd.9.leftPosition: 0
*hp40.kbd.9.rightPosition: 288
*hp40.kbd.9.btn.background: gray75
*hp40.kbd.9.btn.labelString: HOME
*hp40.kbd.9.ul.labelString: MODES
*hp40.kbd.9.lr.labelString: \
*hp40.kbd.10.topPosition: 330
*hp40.kbd.10.bottomPosition: 460
*hp40.kbd.10.leftPosition: 288
*hp40.kbd.10.rightPosition: 576
*hp40.kbd.10.btn.background: gray75
*hp40.kbd.10.btn.labelString: APLET
*hp40.kbd.10.ul.labelString: NOTE
*hp40.kbd.10.lr.labelString: \
*hp40.kbd.11.topPosition: 330
*hp40.kbd.11.bottomPosition: 460
*hp40.kbd.11.leftPosition: 576
*hp40.kbd.11.rightPosition: 864
*hp40.kbd.11.btn.background: gray75
*hp40.kbd.11.btn.labelString: VIEWS
*hp40.kbd.11.ul.labelString: SKETCH
*hp40.kbd.11.lr.labelString: \
! Cursor keys
*hp40.kbd.12.topPosition: 130
*hp40.kbd.12.bottomPosition: 260
*hp40.kbd.12.leftPosition: 1008
*hp40.kbd.12.rightPosition: 1296
*hp40.kbd.12.btn.foreground: light sky blue
*hp40.kbd.12.btn.compoundString: #S\255
*hp40.kbd.12.ul.labelString: \
*hp40.kbd.12.lr.labelString: \
*hp40.kbd.13.topPosition: 260
*hp40.kbd.13.bottomPosition: 390
*hp40.kbd.13.leftPosition: 864
*hp40.kbd.13.rightPosition: 1152
*hp40.kbd.13.btn.foreground: light sky blue
*hp40.kbd.13.btn.compoundString: #S\254
*hp40.kbd.13.ul.labelString: \
*hp40.kbd.13.lr.labelString: \
*hp40.kbd.14.topPosition: 260
*hp40.kbd.14.bottomPosition: 390
*hp40.kbd.14.leftPosition: 1152
*hp40.kbd.14.rightPosition: 1440
*hp40.kbd.14.btn.foreground: light sky blue
*hp40.kbd.14.btn.compoundString: #S\256
*hp40.kbd.14.ul.labelString: \
*hp40.kbd.14.lr.labelString: \
*hp40.kbd.15.topPosition: 390
*hp40.kbd.15.bottomPosition: 520
*hp40.kbd.15.leftPosition: 1008
*hp40.kbd.15.rightPosition: 1296
*hp40.kbd.15.btn.foreground: light sky blue
*hp40.kbd.15.btn.compoundString: #S\257
*hp40.kbd.15.ul.labelString: \
*hp40.kbd.15.lr.labelString: \
! Fourth row
*hp40.kbd.16.topPosition: 520
*hp40.kbd.16.bottomPosition: 650
*hp40.kbd.16.leftPosition: 0
*hp40.kbd.16.rightPosition: 288
*hp40.kbd.16.btn.background: gray50
*hp40.kbd.16.btn.labelString: VARS
*hp40.kbd.16.ul.labelString: CHARS
*hp40.kbd.16.lr.labelString: A
*hp40.kbd.17.topPosition: 520
*hp40.kbd.17.bottomPosition: 650
*hp40.kbd.17.leftPosition: 288
*hp40.kbd.17.rightPosition: 576
*hp40.kbd.17.btn.background: gray50
*hp40.kbd.17.btn.labelString: MATH
*hp40.kbd.17.ul.labelString: CMDS
*hp40.kbd.17.lr.labelString: B
*hp40.kbd.18.topPosition: 520
*hp40.kbd.18.bottomPosition: 650
*hp40.kbd.18.leftPosition: 576
*hp40.kbd.18.rightPosition: 864
*hp40.kbd.18.btn.background: gray50
*hp40.kbd.18.btn.labelString: d/dx
*hp40.kbd.18.ul.compoundString: #S\362
*hp40.kbd.18.lr.labelString: C
*hp40.kbd.19.topPosition: 520
*hp40.kbd.19.bottomPosition: 650
*hp40.kbd.19.leftPosition: 864
*hp40.kbd.19.rightPosition: 1152
*hp40.kbd.19.btn.background: gray50
*hp40.kbd.19.btn.compoundString: X,T,#S\161
*hp40.kbd.19.ul.labelString: EEX
*hp40.kbd.19.lr.labelString: D
*hp40.kbd.20.topPosition: 520
*hp40.kbd.20.bottomPosition: 650
*hp40.kbd.20.leftPosition: 1152
*hp40.kbd.20.rightPosition: 1440
*hp40.kbd.20.btn.background: gray50
*hp40.kbd.20.btn.labelString: DEL
*hp40.kbd.20.ul.labelString: CLEAR
*hp40.kbd.20.lr.labelString: \
! Fifth row
*hp40.kbd.21.topPosition: 650
*hp40.kbd.21.bottomPosition: 780
*hp40.kbd.21.leftPosition: 0
*hp40.kbd.21.rightPosition: 288
*hp40.kbd.21.btn.background: gray50
*hp40.kbd.21.btn.labelString: SIN
*hp40.kbd.21.ul.labelString: ASIN
*hp40.kbd.21.lr.labelString: E
*hp40.kbd.22.topPosition: 650
*hp40.kbd.22.bottomPosition: 780
*hp40.kbd.22.leftPosition: 288
*hp40.kbd.22.rightPosition: 576
*hp40.kbd.22.btn.background: gray50
*hp40.kbd.22.btn.labelString: COS
*hp40.kbd.22.ul.labelString: ACOS
*hp40.kbd.22.lr.labelString: F
*hp40.kbd.23.topPosition: 650
*hp40.kbd.23.bottomPosition: 780
*hp40.kbd.23.leftPosition: 576
*hp40.kbd.23.rightPosition: 864
*hp40.kbd.23.btn.background: gray50
*hp40.kbd.23.btn.labelString: TAN
*hp40.kbd.23.ul.labelString: ATAN
*hp40.kbd.23.lr.labelString: G
*hp40.kbd.24.topPosition: 650
*hp40.kbd.24.bottomPosition: 780
*hp40.kbd.24.leftPosition: 864
*hp40.kbd.24.rightPosition: 1152
*hp40.kbd.24.btn.background: gray50
*hp40.kbd.24.btn.labelString: ln
*hp40.kbd.24.ul.labelString: e^x
*hp40.kbd.24.lr.labelString: H
*hp40.kbd.25.topPosition: 650
*hp40.kbd.25.bottomPosition: 780
*hp40.kbd.25.leftPosition: 1152
*hp40.kbd.25.rightPosition: 1440
*hp40.kbd.25.btn.background: gray50
*hp40.kbd.25.btn.labelString: log
*hp40.kbd.25.ul.labelString: 10^x
*hp40.kbd.25.lr.labelString: I
! Sixth row
*hp40.kbd.26.topPosition: 780
*hp40.kbd.26.bottomPosition: 910
*hp40.kbd.26.leftPosition: 0
*hp40.kbd.26.rightPosition: 288
*hp40.kbd.26.btn.background: gray50
*hp40.kbd.26.btn.labelString: X^2
*hp40.kbd.26.ul.compoundString: #S\326
*hp40.kbd.26.lr.labelString: J
*hp40.kbd.27.topPosition: 780
*hp40.kbd.27.bottomPosition: 910
*hp40.kbd.27.leftPosition: 288
*hp40.kbd.27.rightPosition: 576
*hp40.kbd.27.btn.background: gray50
*hp40.kbd.27.btn.labelString: X^Y
*hp40.kbd.27.ul.compoundString: n#S\326
*hp40.kbd.27.lr.labelString: K
*hp40.kbd.28.topPosition: 780
*hp40.kbd.28.bottomPosition: 910
*hp40.kbd.28.leftPosition: 576
*hp40.kbd.28.rightPosition: 864
*hp40.kbd.28.btn.background: gray50
*hp40.kbd.28.btn.labelString: (
*hp40.kbd.28.ul.compoundString: ABS
*hp40.kbd.28.lr.labelString: L
*hp40.kbd.29.topPosition: 780
*hp40.kbd.29.bottomPosition: 910
*hp40.kbd.29.leftPosition: 864
*hp40.kbd.29.rightPosition: 1152
*hp40.kbd.29.btn.background: gray50
*hp40.kbd.29.btn.labelString: )
*hp40.kbd.29.ul.compoundString: ARG
*hp40.kbd.29.lr.labelString: M
*hp40.kbd.30.topPosition: 780
*hp40.kbd.30.bottomPosition: 910
*hp40.kbd.30.leftPosition: 1152
*hp40.kbd.30.rightPosition: 1440
*hp40.kbd.30.btn.foreground: orange
*hp40.kbd.30.btn.compoundString: #S\270
*hp40.kbd.30.ul.labelString: X^-1
*hp40.kbd.30.lr.labelString: N
! Seventh row
*hp40.kbd.31.topPosition: 910
*hp40.kbd.31.bottomPosition: 1040
*hp40.kbd.31.leftPosition: 0
*hp40.kbd.31.rightPosition: 288
*hp40.kbd.31.btn.background: gray50
*hp40.kbd.31.btn.labelString: ,
*hp40.kbd.31.ul.labelString: MEMORY
*hp40.kbd.31.lr.labelString: O
*hp40.kbd.32.topPosition: 910
*hp40.kbd.32.bottomPosition: 1040
*hp40.kbd.32.leftPosition: 288
*hp40.kbd.32.rightPosition: 576
*hp40.kbd.32.btn.foreground: orange
*hp40.kbd.32.btn.labelString: 7
*hp40.kbd.32.ul.labelString: LIST
*hp40.kbd.32.lr.labelString: P
*hp40.kbd.33.topPosition: 910
*hp40.kbd.33.bottomPosition: 1040
*hp40.kbd.33.leftPosition: 576
*hp40.kbd.33.rightPosition: 864
*hp40.kbd.33.btn.foreground: orange
*hp40.kbd.33.btn.labelString: 8
*hp40.kbd.33.ul.labelString: {
*hp40.kbd.33.lr.labelString: Q
*hp40.kbd.34.topPosition: 910
*hp40.kbd.34.bottomPosition: 1040
*hp40.kbd.34.leftPosition: 864
*hp40.kbd.34.rightPosition: 1152
*hp40.kbd.34.btn.foreground: orange
*hp40.kbd.34.btn.labelString: 9
*hp40.kbd.34.ul.labelString: }
*hp40.kbd.34.lr.labelString: R
*hp40.kbd.35.topPosition: 910
*hp40.kbd.35.bottomPosition: 1040
*hp40.kbd.35.leftPosition: 1152
*hp40.kbd.35.rightPosition: 1440
*hp40.kbd.35.btn.foreground: orange
*hp40.kbd.35.btn.compoundString: #S\264
*hp40.kbd.35.ul.labelString: !
*hp40.kbd.35.lr.labelString: S
! Eigth row
*hp40.kbd.36.topPosition: 1040
*hp40.kbd.36.bottomPosition: 1170
*hp40.kbd.36.leftPosition: 0
*hp40.kbd.36.rightPosition: 288
*hp40.kbd.36.btn.background: gray50
*hp40.kbd.36.btn.foreground: orange
*hp40.kbd.36.btn.labelString: ALPHA
*hp40.kbd.36.ul.labelString: alpha
*hp40.kbd.36.lr.labelString: \
*hp40.kbd.37.topPosition: 1040
*hp40.kbd.37.bottomPosition: 1170
*hp40.kbd.37.leftPosition: 288
*hp40.kbd.37.rightPosition: 576
*hp40.kbd.37.btn.foreground: orange
*hp40.kbd.37.btn.labelString: 4
*hp40.kbd.37.ul.labelString: MATRIX
*hp40.kbd.37.lr.labelString: T
*hp40.kbd.38.topPosition: 1040
*hp40.kbd.38.bottomPosition: 1170
*hp40.kbd.38.leftPosition: 576
*hp40.kbd.38.rightPosition: 864
*hp40.kbd.38.btn.foreground: orange
*hp40.kbd.38.btn.labelString: 5
*hp40.kbd.38.ul.labelString: [
*hp40.kbd.38.lr.labelString: U
*hp40.kbd.39.topPosition: 1040
*hp40.kbd.39.bottomPosition: 1170
*hp40.kbd.39.leftPosition: 864
*hp40.kbd.39.rightPosition: 1152
*hp40.kbd.39.btn.foreground: orange
*hp40.kbd.39.btn.labelString: 6
*hp40.kbd.39.ul.labelString: ]
*hp40.kbd.39.lr.labelString: V
*hp40.kbd.40.topPosition: 1040
*hp40.kbd.40.bottomPosition: 1170
*hp40.kbd.40.leftPosition: 1152
*hp40.kbd.40.rightPosition: 1440
*hp40.kbd.40.btn.foreground: orange
*hp40.kbd.40.btn.labelString: -
*hp40.kbd.40.ul.compoundString: #S\320
*hp40.kbd.40.lr.labelString: W
! Ninth row
*hp40.kbd.41.topPosition: 1170
*hp40.kbd.41.bottomPosition: 1300
*hp40.kbd.41.leftPosition: 0
*hp40.kbd.41.rightPosition: 288
*hp40.kbd.41.btn.background: gray50
*hp40.kbd.41.btn.foreground: light sky blue
*hp40.kbd.41.btn.labelString: SHIFT
*hp40.kbd.41.ul.labelString: \
*hp40.kbd.41.lr.labelString: \
*hp40.kbd.42.topPosition: 1170
*hp40.kbd.42.bottomPosition: 1300
*hp40.kbd.42.leftPosition: 288
*hp40.kbd.42.rightPosition: 576
*hp40.kbd.42.btn.foreground: orange
*hp40.kbd.42.btn.labelString: 1
*hp40.kbd.42.ul.labelString: PROGRM
*hp40.kbd.42.lr.labelString: X
*hp40.kbd.43.topPosition: 1170
*hp40.kbd.43.bottomPosition: 1300
*hp40.kbd.43.leftPosition: 576
*hp40.kbd.43.rightPosition: 864
*hp40.kbd.43.btn.foreground: orange
*hp40.kbd.43.btn.labelString: 2
*hp40.kbd.43.ul.labelString: SYNTAX
*hp40.kbd.43.lr.labelString: Y
*hp40.kbd.44.topPosition: 1170
*hp40.kbd.44.bottomPosition: 1300
*hp40.kbd.44.leftPosition: 864
*hp40.kbd.44.rightPosition: 1152
*hp40.kbd.44.btn.foreground: orange
*hp40.kbd.44.btn.labelString: 3
*hp40.kbd.44.ul.compoundString: #Sp
*hp40.kbd.44.lr.labelString: Z
*hp40.kbd.45.topPosition: 1170
*hp40.kbd.45.bottomPosition: 1300
*hp40.kbd.45.leftPosition: 1152
*hp40.kbd.45.rightPosition: 1440
*hp40.kbd.45.btn.foreground: orange
*hp40.kbd.45.btn.labelString: +
*hp40.kbd.45.ul.compoundString: #SS
*hp40.kbd.45.lr.labelString: SPACE
! Tenth row
*hp40.kbd.46.topPosition: 1300
*hp40.kbd.46.bottomPosition: 1430
*hp40.kbd.46.leftPosition: 0
*hp40.kbd.46.rightPosition: 288
*hp40.kbd.46.btn.background: gray75
*hp40.kbd.46.btn.labelString: ON
*hp40.kbd.46.ul.labelString: OFF
*hp40.kbd.46.lr.foreground: gray75
*hp40.kbd.46.lr.labelString: CANCEL
*hp40.kbd.47.topPosition: 1300
*hp40.kbd.47.bottomPosition: 1430
*hp40.kbd.47.leftPosition: 288
*hp40.kbd.47.rightPosition: 576
*hp40.kbd.47.btn.foreground: orange
*hp40.kbd.47.btn.labelString: 0
*hp40.kbd.47.ul.labelString: NOTEPAD
*hp40.kbd.47.lr.labelString: \
*hp40.kbd.47.lr.compoundString: #S\161
*hp40.kbd.48.topPosition: 1300
*hp40.kbd.48.bottomPosition: 1430
*hp40.kbd.48.leftPosition: 576
*hp40.kbd.48.rightPosition: 864
*hp40.kbd.48.btn.foreground: orange
*hp40.kbd.48.btn.labelString: .
*hp40.kbd.48.ul.labelString: =
*hp40.kbd.48.lr.labelString: :
*hp40.kbd.49.topPosition: 1300
*hp40.kbd.49.bottomPosition: 1430
*hp40.kbd.49.leftPosition: 864
*hp40.kbd.49.rightPosition: 1152
*hp40.kbd.49.btn.foreground: orange
*hp40.kbd.49.btn.labelString: (-)
*hp40.kbd.49.ul.labelString: AND
*hp40.kbd.49.lr.labelString: ;
*hp40.kbd.50.topPosition: 1300
*hp40.kbd.50.bottomPosition: 1430
*hp40.kbd.50.leftPosition: 1152
*hp40.kbd.50.rightPosition: 1440
*hp40.kbd.50.btn.foreground: orange
*hp40.kbd.50.btn.labelString: ENTER
*hp40.kbd.50.ul.labelString: ANS
*hp40.kbd.50.lr.labelString: \
! inOut codes for all keys
*hp40.kbd.0.btn.inOut: 5/01
*hp40.kbd.1.btn.inOut: 5/02
*hp40.kbd.2.btn.inOut: 5/04
*hp40.kbd.3.btn.inOut: 5/08
*hp40.kbd.4.btn.inOut: 5/10
*hp40.kbd.5.btn.inOut: 5/20
*hp40.kbd.6.btn.inOut: 5/80
*hp40.kbd.7.btn.inOut: 4/80
*hp40.kbd.8.btn.inOut: 3/80
*hp40.kbd.9.btn.inOut: 2/80
*hp40.kbd.10.btn.inOut: 1/80
*hp40.kbd.11.btn.inOut: 0/80
*hp40.kbd.12.btn.inOut: 6/08
*hp40.kbd.13.btn.inOut: 6/04
*hp40.kbd.14.btn.inOut: 6/01
*hp40.kbd.15.btn.inOut: 6/02
*hp40.kbd.16.btn.inOut: 4/40
*hp40.kbd.17.btn.inOut: 3/40
*hp40.kbd.18.btn.inOut: 2/40
*hp40.kbd.19.btn.inOut: 1/40
*hp40.kbd.20.btn.inOut: 0/40
*hp40.kbd.21.btn.inOut: 4/20
*hp40.kbd.22.btn.inOut: 3/20
*hp40.kbd.23.btn.inOut: 2/20
*hp40.kbd.24.btn.inOut: 1/20
*hp40.kbd.25.btn.inOut: 0/20
*hp40.kbd.26.btn.inOut: 4/10
*hp40.kbd.27.btn.inOut: 3/10
*hp40.kbd.28.btn.inOut: 2/10
*hp40.kbd.29.btn.inOut: 1/10
*hp40.kbd.30.btn.inOut: 0/10
*hp40.kbd.31.btn.inOut: 7/08
*hp40.kbd.32.btn.inOut: 3/08
*hp40.kbd.33.btn.inOut: 2/08
*hp40.kbd.34.btn.inOut: 1/08
*hp40.kbd.35.btn.inOut: 0/08
*hp40.kbd.36.btn.inOut: 7/04
*hp40.kbd.37.btn.inOut: 3/04
*hp40.kbd.38.btn.inOut: 2/04
*hp40.kbd.39.btn.inOut: 1/04
*hp40.kbd.40.btn.inOut: 0/04
*hp40.kbd.41.btn.inOut: 7/02
*hp40.kbd.42.btn.inOut: 3/02
*hp40.kbd.43.btn.inOut: 2/02
*hp40.kbd.44.btn.inOut: 1/02
*hp40.kbd.45.btn.inOut: 0/02
*hp40.kbd.46.btn.inOut: *
*hp40.kbd.47.btn.inOut: 3/01
*hp40.kbd.48.btn.inOut: 2/01
*hp40.kbd.49.btn.inOut: 1/01
*hp40.kbd.50.btn.inOut: 0/01
! Shortcut keyboard translations associated with the lcd display widget.
! They must be listed in more-to-less-specific order; so, for example,
! translations involving BackSpace should *before* those involving Delete
*hp40*baseTranslations: #override \n\
<KeyDown>F1: kbdKeyPress(5/01) \n\
<KeyUp>F1: kbdKeyRelease(5/01) \n\
<KeyDown>F2: kbdKeyPress(5/02) \n\
<KeyUp>F2: kbdKeyRelease(5/02) \n\
<KeyDown>F3: kbdKeyPress(5/04) \n\
<KeyUp>F3: kbdKeyRelease(5/04) \n\
<KeyDown>F4: kbdKeyPress(5/08) \n\
<KeyUp>F4: kbdKeyRelease(5/08) \n\
<KeyDown>F5: kbdKeyPress(5/10) \n\
<KeyUp>F5: kbdKeyRelease(5/10) \n\
<KeyDown>F6: kbdKeyPress(5/20) \n\
<KeyUp>F6: kbdKeyRelease(5/20) \n\
<KeyDown>Home: kbdKeyPress(2/80) \n\
<KeyUp>Home: kbdKeyRelease(2/80) \n\
<KeyDown>Up: kbdKeyPress(6/08) \n\
<KeyUp>Up: kbdKeyRelease(6/08) \n\
<KeyDown>Left: kbdKeyPress(6/04) \n\
<KeyUp>Left: kbdKeyRelease(6/04) \n\
<KeyDown>Right: kbdKeyPress(6/01) \n\
<KeyUp>Right: kbdKeyRelease(6/01) \n\
<KeyDown>Down: kbdKeyPress(6/02) \n\
<KeyUp>Down: kbdKeyRelease(6/02) \n\
<KeyDown>A: kbdKeyPress(4/40) \n\
<KeyUp>A: kbdKeyRelease(4/40) \n\
<KeyDown>B: kbdKeyPress(3/40) \n\
<KeyUp>B: kbdKeyRelease(3/40) \n\
<KeyDown>C: kbdKeyPress(2/40) \n\
<KeyUp>C: kbdKeyRelease(2/40) \n\
<KeyDown>D: kbdKeyPress(1/40) \n\
<KeyUp>D: kbdKeyRelease(1/40) \n\
<KeyDown>BackSpace: kbdKeyPress(0/40) \n\
<KeyUp>BackSpace: kbdKeyRelease(0/40) \n\
<KeyDown>E: kbdKeyPress(4/20) \n\
<KeyUp>E: kbdKeyRelease(4/20) \n\
<KeyDown>F: kbdKeyPress(3/20) \n\
<KeyUp>F: kbdKeyRelease(3/20) \n\
<KeyDown>G: kbdKeyPress(2/20) \n\
<KeyUp>G: kbdKeyRelease(2/20) \n\
<KeyDown>H: kbdKeyPress(1/20) \n\
<KeyUp>H: kbdKeyRelease(1/20) \n\
<KeyDown>I: kbdKeyPress(0/20) \n\
<KeyUp>I: kbdKeyRelease(0/20) \n\
<KeyDown>J: kbdKeyPress(4/10) \n\
<KeyUp>J: kbdKeyRelease(4/10) \n\
<KeyDown>K: kbdKeyPress(3/10) \n\
<KeyUp>K: kbdKeyRelease(3/10) \n\
<KeyDown>L: kbdKeyPress(2/10) \n\
<KeyUp>L: kbdKeyRelease(2/10) \n\
<KeyDown>M: kbdKeyPress(1/10) \n\
<KeyUp>M: kbdKeyRelease(1/10) \n\
<KeyDown>M: kbdKeyPress(0/10) \n\
<KeyUp>M: kbdKeyRelease(0/10) \n\
:<KeyDown>slash: kbdKeyPress(0/10) \n\
:<KeyUp>slash: kbdKeyRelease(0/10) \n\
<KeyDown>KP_Divide: kbdKeyPress(0/10) \n\
<KeyUp>KP_Divide: kbdKeyRelease(0/10) \n\
<KeyDown>N: kbdKeyPress(0/10) \n\
<KeyUp>N: kbdKeyRelease(0/10) \n\
<KeyDown>comma: kbdKeyPress(7/08) \n\
<KeyUp>comma: kbdKeyRelease(7/08) \n\
<KeyDown>O: kbdKeyPress(7/08) \n\
<KeyUp>O: kbdKeyRelease(7/08) \n\
<KeyDown>7: kbdKeyPress(3/08) \n\
<KeyUp>7: kbdKeyRelease(3/08) \n\
<KeyDown>KP_7: kbdKeyPress(3/08) \n\
<KeyUp>KP_7: kbdKeyRelease(3/08) \n\
<KeyDown>P: kbdKeyPress(3/08) \n\
<KeyUp>P: kbdKeyRelease(3/08) \n\
<KeyDown>8: kbdKeyPress(2/08) \n\
<KeyUp>8: kbdKeyRelease(2/08) \n\
<KeyDown>KP_8: kbdKeyPress(2/08) \n\
<KeyUp>KP_8: kbdKeyRelease(2/08) \n\
<KeyDown>Q: kbdKeyPress(2/08) \n\
<KeyUp>Q: kbdKeyRelease(2/08) \n\
<KeyDown>9: kbdKeyPress(1/08) \n\
<KeyUp>9: kbdKeyRelease(1/08) \n\
<KeyDown>KP_9: kbdKeyPress(1/08) \n\
<KeyUp>KP_9: kbdKeyRelease(1/08) \n\
<KeyDown>R: kbdKeyPress(1/08) \n\
<KeyUp>R: kbdKeyRelease(1/08) \n\
:<KeyDown>asterisk: kbdKeyPress(0/08) \n\
:<KeyUp>asterisk: kbdKeyRelease(0/08) \n\
<KeyDown>KP_Multiply: kbdKeyPress(0/08) \n\
<KeyUp>KP_Multiply: kbdKeyRelease(0/08) \n\
<KeyDown>S: kbdKeyPress(0/08) \n\
<KeyUp>S: kbdKeyRelease(0/08) \n\
<KeyDown>Alt_L: kbdKeyPress(7/04) \n\
<KeyUp>Alt_L: kbdKeyRelease(7/04) \n\
<KeyDown>Alt_R: kbdKeyPress(7/04) \n\
<KeyUp>Alt_R: kbdKeyRelease(7/04) \n\
<KeyDown>4: kbdKeyPress(3/04) \n\
<KeyUp>4: kbdKeyRelease(3/04) \n\
<KeyDown>KP_4: kbdKeyPress(3/04) \n\
<KeyUp>KP_4: kbdKeyRelease(3/04) \n\
<KeyDown>T: kbdKeyPress(3/04) \n\
<KeyUp>T: kbdKeyRelease(3/04) \n\
<KeyDown>5: kbdKeyPress(2/04) \n\
<KeyUp>5: kbdKeyRelease(2/04) \n\
<KeyDown>KP_5: kbdKeyPress(2/04) \n\
<KeyUp>KP_5: kbdKeyRelease(2/04) \n\
<KeyUp>U: kbdKeyRelease(2/04) \n\
<KeyDown>U: kbdKeyPress(2/04) \n\
<KeyDown>6: kbdKeyPress(1/04) \n\
<KeyUp>6: kbdKeyRelease(1/04) \n\
<KeyDown>KP_6: kbdKeyPress(1/04) \n\
<KeyUp>KP_6: kbdKeyRelease(1/04) \n\
<KeyDown>V: kbdKeyPress(1/04) \n\
<KeyUp>V: kbdKeyRelease(1/04) \n\
:<KeyDown>minus: kbdKeyPress(0/04) \n\
:<KeyUp>minus: kbdKeyRelease(0/04) \n\
<KeyDown>KP_Subtract: kbdKeyPress(0/04) \n\
<KeyUp>KP_Subtract: kbdKeyRelease(0/04) \n\
<KeyDown>W: kbdKeyPress(0/04) \n\
<KeyUp>W: kbdKeyRelease(0/04) \n\
<KeyDown>Shift_L: kbdKeyPress(7/02) \n\
<KeyUp>Shift_L: kbdKeyRelease(7/02) \n\
<KeyDown>Shift_R: kbdKeyPress(7/02) \n\
<KeyUp>Shift_R: kbdKeyRelease(7/02) \n\
<KeyDown>1: kbdKeyPress(3/02) \n\
<KeyUp>1: kbdKeyRelease(3/02) \n\
<KeyDown>KP_1: kbdKeyPress(3/02) \n\
<KeyUp>KP_1: kbdKeyRelease(3/02) \n\
<KeyDown>X: kbdKeyPress(3/02) \n\
<KeyUp>X: kbdKeyRelease(3/02) \n\
<KeyDown>2: kbdKeyPress(2/02) \n\
<KeyUp>2: kbdKeyRelease(2/02) \n\
<KeyDown>KP_2: kbdKeyPress(2/02) \n\
<KeyUp>KP_2: kbdKeyRelease(2/02) \n\
<KeyDown>Y: kbdKeyPress(2/02) \n\
<KeyUp>Y: kbdKeyRelease(2/02) \n\
<KeyDown>3: kbdKeyPress(1/02) \n\
<KeyUp>3: kbdKeyRelease(1/02) \n\
<KeyDown>KP_3: kbdKeyPress(1/02) \n\
<KeyUp>KP_3: kbdKeyRelease(1/02) \n\
<KeyDown>Z: kbdKeyPress(1/02) \n\
<KeyUp>Z: kbdKeyRelease(1/02) \n\
:<KeyDown>plus: kbdKeyPress(0/02) \n\
:<KeyUp>plus: kbdKeyRelease(0/02) \n\
<KeyDown>KP_Add: kbdKeyPress(0/02) \n\
<KeyUp>KP_Add: kbdKeyRelease(0/02) \n\
<KeyDown>space: kbdKeyPress(0/02) \n\
<KeyUp>space: kbdKeyRelease(0/02) \n\
<KeyDown>Escape: kbdKeyPress(*) \n\
<KeyUp>Escape: kbdKeyRelease(*) \n\
<KeyDown>0: kbdKeyPress(3/01) \n\
<KeyUp>0: kbdKeyRelease(3/01) \n\
<KeyDown>KP_0: kbdKeyPress(3/01) \n\
<KeyUp>KP_0: kbdKeyRelease(3/01) \n\
:<KeyDown>period: kbdKeyPress(2/01) \n\
:<KeyUp>period: kbdKeyRelease(2/01) \n\
<KeyDown>KP_Decimal: kbdKeyPress(2/01) \n\
<KeyUp>KP_Decimal: kbdKeyRelease(2/01) \n\
:<KeyDown>semicolon: kbdKeyPress(1/01) \n\
:<KeyUp>semicolon: kbdKeyRelease(1/01) \n\
<KeyDown>Return: kbdKeyPress(0/01) \n\
<KeyUp>Return: kbdKeyRelease(0/01) \n\
<KeyDown>Tab: kbdKeyPress(0/01) \n\
<KeyUp>Tab: kbdKeyRelease(0/01) \n\
<KeyDown>KP_Enter: kbdKeyPress(0/01) \n\
<KeyUp>KP_Enter: kbdKeyRelease(0/01)