hp49g

Model:	49G

	[ Note: This sheet is adapted from the 48GX.  Items marked with *
	are suspected to be wrong and are not yet updated.

General:
	Name:			Graphing Calculator
	Code-Name:		V'Ger
	Family:			Charlemange
	Logic:			RPL, algebraic, CAS
	Features:		scientific, programmable, clock, alarms
				date arithmetic, hyperbolics, complex
				base w/arithmetic, matrix, vector, lists,
				solver (algebraic, program), symbolic
				math, symbolic integration, differentiation,
				plotting, graphics, etc., etc.
	Firsts:			CAS, rubber keys, use of flash, use of field
				upgradability, CUT/COPY/PASTE/FIND-REPLACE,
				TOOL, downloadable fonts
	Introduction:
		Date:		2003-10-20
		Price:		?
	Discontinuation:
		Date:		?
		Price:		?
	Production-Run:		?

Display:
	Type:			LCD, bit-mapped
	Size:			8 lines x 22 chars, 64 x 131 pixels
	Number-Formats:		sign, 12 mantissa, ., exp sign, 2 exp
				see data types
	Annunciators:		<\	left shift active
				/>	right shift active
				\Ga	alpha keyboard active
				((.))	alarm has gone off or low battery
				hourglass busy
				/\
				 -->	transmitting data
				\/

				the following ones are in the message area:

				DEG	degress mode
				RAD	radians mode
				GRD	grads mode
				XYZ	rectangular mode
				R\<)Z	polar/cylindrical mode
				R\<)\<) polar/spherical mode
				HEX	hexadecimal mode (default base for 
				DEC	decimal mode      binary integers)
				OCT	octal mode
				BIN	binary mode
				R	real mode (CAS)
				C	complex mode
				=	symbolic (exact) mode
				~	numeric (approximate) mode
				'X'	variable in VX
				ALG	algebraic mode
				PRG	program entry mode
				{...}	current directory (replaces ...)
				1US	user mode for one keystroke
				USR	user keyboard mode
				HLT	program has been halted

Data:
	User-Visible:
		Smallest:	1E-499
		Largest:	9.99999999999E499
		Signif.-Digits: 12
	Internal:
		Smallest:	1E-49999
		Largest:	9.99999999999999E49999
		Signif.-Digits: 15
	Data-Types-and-Sizes:
		type	object		size (bytes)	display as
		0	real number	10.5		1.2345
		1	complex number	18.5		(6.7,8.9)
							(6.7,\<)8.9)
		2	string		5 +length	"XYZ" or
							$C 5 hello
		3	real array	7.5+8*elements	[ 9. 8. 7. ]
		4	complex array	7.5+16*elements [ (1,2) (3,4) ]
		5	list		5+2.5*elements+ { "FIN" Name }
					  element storage
		6	global name	5 + length	X
		7	local name	5 + length	j
		8	program		as list		\<< Z 4 * \>>
		9	algebraic	as list		'A=B-3'
		10	binary integer	10.5		# 1010b
			  1-64 bits			# 765o
							# 987d
							# FEDh
		11	graphics object 10 + data	Graphic 131 x 64
			  header 2.5			GROB 4 4 70607050
			  length 2.5
			  height 2.5
			  width	 2.5
			  data <as required>
		12	tagged object	5+tag+object	area: 4.8
		(tags can be applied to any object)	:area: 2.3

		13	unit object	7.5 plus:	55 km/s^2
					Real magnitude:10.5 (2.5 if built-in)
					Prefixes:  6
					Unit Names: 5 + no. chars
					Operators: (*,/ or ^): 2.5
					Exponents: 10.5 (2.5 if built-in)

		14	XLIB name	5.5		XLIB 645 2
		15	directory	as list		DIR ... END
		16	library		?		Library 645: ...
		17	backup object	5 + no. of	Backup HOMEDIR
					name chars +
					included object
		18	built-in function 2.5		COS
		19	built-in command  2.5		ROLL
		20	address		5		<28FCh>
		21	long real	13		Long Real
		22	long complex	23.5		Long Complex
		23	linked array	?		Linked Array
		24	character	3.5		Character
		25	code		?		Code
		26	library data	?		Library Data

		The sizes are guesses.

		27	FlashPtr	?		FlashPtr
		27	External	?		External
		27	Extended Ptr	?		Extended Ptr

		28	Integer		?		2

		29	Object Array (unofficial)	[[2 3][4 5]]
			same internal structure as 5, just
			a different prologue; this type was added to
			support symbolic matrices

		30	Font		?		Ft8_6:Cursive 1

Memory:
	Named-Registers:	none
	Flags:			128-1	user flags

				*flags need to be updated
				60	units type
				61	units usage
				63	variable state change

				-1	principal solution only
				-2	symbolic constants
				-3	numeric results
				-5 to -10	binary word size
				-11 to -12	base 0)decimal 1)octal
					2)binary 3)hex
				-14	TVM payment mode
				-15 to -16	coordinates 0)rectangular
					2)cylindrical 3)spherical
				-17 to -18	trig mode 0)degrees
					1)radians 2)grads
				-19	vector/complex
				-20	underflow is error
				-21	overflow is error
				-22	infinite not an error
				-23	there was positive underflow
				-24	there was negative underflow
				-25	there was overflow
				-26	there was infinite
				-27	symbolic decompilation
				-28	plotting multiple functions
				-29	trace mode
				-31	disable curve filling
				-32	graphics cursor dark background
				-33	I/O to I/R
				-34	print to serial
				-35	I/O is binary format
				-36	receive overwrite variable
				-37	double-spaced print
				-38	supress line feed
				-39	supress Kermit messages
				-40	display clock
				-41	24 hour format
				-42	DD.MM.YY format
				-43	don't reschedule repeating alarms
				-44	save acknowledged alarms
				-45 to -48	set number of digits
				-49 to -50	display format 0)STD 1)SCI
					2)FIX 3)ENG
				-51	fraction mark comma
				-52	multi-line object display
				-53	display () to mark precedence
				-54	tiny array elements
				-55	save last arguments
				-56	beep off
				-57	alarm beep off
				-58	verbose messages off
				-59	fast catalog display
				-60	alpha key once to lock
				-61	user key once to lock
				-62	user mode active
				-63	vectored enter on
				-64	set by GETI and PUTI when indices wrap

From Joe Horn:
 
-65 Default=Clear: All stack levels can be multi-line.
    Set: Only level 1 can be multi-line (like HP48).

-66 Default=Clear: Strings with newlines display multi-line.
    Set: Strings always display on one line (like HP48).

-67 Default=Clear: If clock is on, use abbreviated digital display.
    Set: If clock is on, use tiny analog clockface.
    Note: If clock is on and the header is size 1 or 0, then you will
    not see the clock but it will still be using extra battery power!
    So turn off the clock (-40 CF) when the header size is not 2.

-68 Default=Clear: Command-line editing like HP48 (no auto-indent).
    Set: Command-line editing uses auto-indenting like a real editor!

-69 Default=Clear: Cursor is restricted to text (like HP48).
    Set: Cursor can go anywhere on the screen.

-70 Default=Clear: ->GROB turns newlines into blobs (like HP48).
    Set: ->GROB turns strings with newlines into multi-line grobs.

-71 Default=Clear: Disassembler includes addresses.
    Set: Disassembler creates labels instead of addresses.

-72 Default=Clear: Stack is displayed with current system font.
    Set: Stack is displayed with mini-font.

-73 Default=Clear: Command line editing uses current system font.
    Set: Command line editing uses mini-font.

-74 Default=Clear: Stack contents are right-justified (like HP48).
    Set: Stack is left-justified.

-75 Default=Clear: Silent keyboard (like HP48).
    Set: Each keystroke "clicks" (high, brief chirp from beeper).
    Note: When beeper is turned off (-56 SF), keyboard goes silent.

-76 Default=Clear: Filer asks "Are you sure?" when purging.
    Set: No purge confirmation in Filer.
    Note: The regular PURGE command never asks! You've been warned!

-77 Default=Clear: ?  Perhaps unused.
    Set: ?

-78 Default=Clear: ?  Perhaps unused.
    Set: ?

-79 Default=Clear: Textbook-style algebraics on stack.
    Set: Show algebraics on stack HP48-style.

-80 Default=Clear: Use current system font for algebraics on stack.
    Set: Use mini-font for algebraics on stack.

-81 Default=Clear: Use current system font for ->GROB on algebraic.
    Set: Use mini-font for ->GROB on algebraic.

-82 Default=Clear: Use current system font in EquationWriter.
    Set: Use mini-font in EquationWriter.

-83 Default=Clear: Display grobs on the stack as pictures.
    Set: Display grobs on the stack the way the HP48 does.

-84 Default=Clear: ?  Perhaps unused.
    Set: ?

-85 Default=Clear: Normal stack display (decompile like HP48).
    Set: Show stack using HP's System RPL syntax.
    Note: Magic incantation required before this will work.

-86 Default=Clear: ? Maybe something to do with the disassembler?
    Set: ?

-87 \
-88  >  Not sure... Perhaps used in System RPL stack mode?
-89 /

-90 Clear: CHOOSE boxes use the current system font.
    Default=Set: CHOOSE boxes use the mini-font.

-91 Default=Clear: MatrixWriter creates a matrix (like HP48).
    Set: MatrixWriter creates a list of lists.

-92 Default=Clear: Assembler defaults to making Code objects.
    Set: Assembler defaults to making System RPL programs.

-93 Default=Clear: ?  Perhaps unused.
    Set= ?

-94 Default=Clear: ? Something to do with LASTCMD... not sure...
    Set: ?

-95 Clear: RPN Mode (like HP48).
    Default=Set: Algebraic Mode (similar to HP 38G).

-96 Default=Clear: ?  Perhaps unused.
    Set: ?

-97 Default=Clear: Display lists horizontally (like HP48).
    Set: Display lists vertically.

-98 Default=Clear: Display vectors horizontally (like HP48).
    Set: Display vectors vertically.

-99 Default=Clear: CAS does calculus "silently".
    Set: CAS "Verbose mode" (extra calculus info is shown).

-100 Default=Clear: CAS gives final answer immediately.
     Set: Step-by-Step Mode is on.

-101 Default=Clear: ?  Perhaps unused.
     Set: ?

-102 Default=Clear: ?  Perhaps unused.
     Set: ?

-103 Default=Clear: Real mode. ("R" annunciator in header).
     Set: Complex mode. ("C" annunciator in header).

-104 Default=Clear: ?  Perhaps unused.
     Set: ?

-105 Default=Clear: Exact mode.  ("=" annunciator in header).
     Set: Approximate mode, like HP48. ("~" annunciator).

-106 Default=Clear: Simplify in series. (?)
     Set: Don't simplify in series.  (?)

-107 Default=Clear: ?  Perhaps unused.
     Set: ?

-108 Default=Clear: ?  Perhaps unused.
     Set: ?

-109 Default=Clear: Factorize symbolically.  (?)
     Set: Factorize numerically.  (?)

-110 Default=Clear: Use normal-size-matrix code (like HP48).
     Set: Use code optimized for huge matrices.

-111 Default=Clear: Simplify non-rational expressions.
     Set: Don't simplify non-rational expressions.

-112 Default=Clear: ?  Perhaps unused.
     Set: ?

-113 Default=Clear: Linear simplification mode on.
     Set: Linear simplification mode off.

-114 Default=Clear: Show terms in descending powers (e.g. X^2+X+1).
     Set: Show terms in ascending powers (e.g. 1+X+X^2).

-115 Default=Clear: ?  Perhaps unused.
     Set: ?

-116 Default=Clear: Trig manipulations prefer COS.
     Set: Trig manipulations prefer SIN.

-117 Default=Clear: All menus appear as CHOOSE boxes (bleh!!!).
     Set: Use softkey menus like God intended.

-118 Default=Clear: ?  Perhaps unused.
     Set: ?

-119 Default=Clear: Rigorous mode (don't simplify |X| to X).
     Set: Non-rigorous mode (simplify |X| to X).

-120 Default=Clear: Silent mode is off.
     Set: Silent mode is on.

-121 through -128: ?  Perhaps unused.

Default settings: all clear except these:
	-5 through -10 (wordsize=64)
	-11 and -12 (HEX mode) (yay!)
	-17 (RAD mode) (yay!)
	-27 (display complex as a+b*i) (yay!)
	-90 (use mini-font for CHOOSE boxes) (yay!)
	-95 (ALG mode) (BOO! HISS!)
Note: -11, -12, -17, and -27 in the HP48 were clear by default.

I *think* that flags -4, -13, and -30 are still unused by the system,
but I'm not sure.

	Register-Usage:		ALRMDAT	current alarms
				CST	custom menu
				EQ	current equation
				IERR	uncertainty of integration
				IOPAR	I/O parameters {baud parity recv-pacing
					xmit-pacing checksum translate-code}
				PICT	the graphics display
				PPAR	plotting parameters {(xmin,ymin)
					(xmax,ymax) indepvar resolution
					(xaxis,yaxis) type dependvar}
				PRTPAR	printing parameters {delay "remap"
					linelen "lineterm"}
				VPAR	parameters used by 3D plot commands
				der...	user-defined derivative
				n1,n2,...	integers created by ISOL
				s1,s2,...	signs created by ISOL and QUAD
				\GSDAT	current statistics data
				\GSPAR	statistics parameters {indepcol
					dependcol intercept slope model }
	Numbered-Registers:	none
	Program-Steps:		memory
	Program-Editing:	insert or replace
	Program-Display:	alpha
	User-RAM-Bytes:		512K RAM, 1024K Flash for data
	Total-RAM-Bytes:	2560K
	ROM-Bytes:		64K ROM, 1024K Flash for code
	Machine-State:		flags
				stack
				user memory
				libraries
	File-Types:		none

Physical:
	Technology-Used:	CMOS
	Processor:		Yorke (00048-80063, 160 pin QFP), 4 MHz
	Chip-Count:		*5 (Yorke CPU, 2x SED1181
				(display column driver), 512K ROM,
				128K RAM)
	Power-Source:		3 AAA cells
	Continuous-Memory:	yes
	Expansion-Ports:	none
	I/O-Ports:		10-wire serial, beeper
	Clock:			yes

	Length:			187mm
	Width:			89mm
	Height:			28mm
	Weight:			264g
	Temperature-Range:
		Operating:	0 to 55 deg C
		Charging:	-
		Storage:	-40 to 70 deg C
		Maximum Operating Humidity: 90% at 40 deg C

Keyboard:
	Switches:		none
	Shift-Keys:		left, blue, above left
				right, red, above right
				alpha, green, right
	User-Defined-Keys:	6 menu keys, entire keyboard

Key-Arrangement::

**  **  **  **  **  **
                 ****
***  ***  ***
              ***    ***
***  ***  ***
                 ****
***  ***  ***  ***  ***
***  ***  ***  ***  ***
***  ***  ***  ***  ***
***  ***  ***  ***  ***
***  ***  ***  ***  ***
***  ***  ***  ***  ***
***  ***  ***  ***  ***

Key-Labels-Base-Keyboard::

F1	F2	F3	F4	F5	F6
				^
APPS	MODE	TOOL
			<|		|>
VAR	STO|>	NXT
				v
HIST	CAT	EQW	SYMB	<-
y^x	\v/x	SIN	COS	TAN
EEX	+/-	X	1/x	\:-
ALPHA	7	8	9	x
<\	4	5	6	-
/>	1	2	3	+
ON	0	.	SPC	ENTER
CANCEL

Key-Labels-Left-Blue-Above-Left::

Y=	WIN	GRAPH	2D/3D	TBLSET	TABLE
				triangleup
FILES	CUSTOM	i
			<|||		|||>
UPDIR	RCL	PREV
				triangledown
CMD	PRG	MTRW	MTH	DEL
e^x	x^2	ASIN	ACOS	ATAN
10^x	\=/	\<=	\=>	ABS
USER	S.SLV	EXP&LN	FINANCE	[] (brackets)
[]	CALC	MATRICES CONVERT ()
[]	ARITH	DEF	#	{}
CONT	\oo	::	\pi	ANS

Key-Labels-Right-Red-Above Right::

[]	[]	[]	[]	[]	[]
				trianglebarup
BEGIN	END	|
			|<|		|>|
COPY	CUT	PASTE
				trianglebardown
UNDO	CHARS	'	EVAL	CLEAR
LN	x\v/y	\gS	\gd	\.S
LOG	=	<	>	ARG
ENTRY	NUM.LSV	TRIG	TIME	""
[]	ALG	STAT	UNITS	_
[]	CMPLEX	LIB	BASE	<< >>
OFF	->	<-|	,	->NUM

Key-Labels-Alpha-Green-Right::

A	B	C	D	E	F
				[]
G	H	I
			[]		[]
J	K	L
				[]
M	N	O	P	[]
Q	R	S	T	U
V	W	X	Y	Z
[]	[]	[]	[]	[]
[]	[]	[]	[]	[]
[]	[]	[]	[]	[]
[]	[]	[]	[]	[]

Programmable-Operations::

See next section.

Non-Programmable-Operations::

Right Shift + Enter toggles Exact/Approximate (flag -105)
Left Shift + Tool toggles Complex Number mode (flag -103)

There is an FAQ at http://www.hpcalc.org

HP49G, C-1.05 COMMANDS AND MENU PATHS, Joe Horn, 19 Aug 1999

(The following is NOT OFFICIAL and was hobbled together by hand.
Please post any corrections or additions needed.
This applies to ROM version C-1.05 *only*.
See also the accompanying document, MENUS & LIBRARIES.)

HP49G programmable commands in CAT order, collected by Joe Horn.
A "+" in the first column means "new to the 49 (not in the 48)".
A "-" in the first column means "not in the 49 (was in the 48)".
Command aliases do not appear in CAT; use the new name as shown.
Following each command is its menu path or key sequence (if any)
with alternatives separated by a semicolon.  "/" means "either".
The most efficient key sequence is shown first if several exist,
assuming that NXT NXT is better than PREV, etc. "[]" = optional.
Note: Libraries 241 and 256 were attached when making this list.
Flag -95 is assumed off and flag -117 is assumed set, of course!

  ! (key alpha-rs-2; MTH NXT PROB)
  % (key alpha-ls-1; MTH REAL)
  %CH (MTH REAL)
  %T (MTH REAL)
  ' (key 43.3)
  * (key 75.1)
  *H (alias for SCALEH)
  *W (alias for SCALEW)
  + (key 95.1)
  - (key 85.1)
  / (key 65.1)
+ ; (key rs+SPC; key alpha-ls-2)
  < (key 63.3; PRG TEST)
  = (key 62.3)
  == (PRG TEST)
  > (key 64.3; PRG TEST)
+ ? (key alpha-rs-3)
+ ABCUV (ARITH POLY)
  ABS (key 65.2; CMPLX; MATRICES OPER; MTH VECTR; MTH REAL NXT; MTH
MATRX NORM; MTH NXT CMPLX)
  ACK (PRG NXT NXT TIME ALRM)
  ACKALL (PRG NXT NXT TIME ALRM)
  ACOS (key 54.2)
+ ACOS2S (TRIG)
  ACOSH (MTH HYP; TRIG HYP)
  ADD (MTH LIST)
+ ADDTMOD (ARITH MODUL)
+ ADDTOREAL (2270 MENU)
  ALOG (key 61.2: 10^x)
  AMORT (79 MENU)
  AND (PRG TEST NXT; [MTH/CONVERT] BASE NXT LOGIC)
  ANIMATE (PRG NXT GROB NXT)
+ ANS (key 105.2)
+ APEEK (256.04 MENU)
  APPLY (93.02 MENU)
  ARC (PRG NXT PICT)
  ARCHIVE (PRG MEM NXT)
  ARG (key 65.3; CMPLX; MTH NXT CMPLX)
+ ARIT (788.23 MENU)
  ARRY-> (2050.29 MENU)
  ASIN (key 53.2)
+ ASIN2C (TRIG)
+ ASIN2T (TRIG)
  ASINH (MTH HYP; TRIG HYP)
+ ASM-> (256.05 MENU)
  ASN (PRG NXT MODES KEYS)
  ASR ([MTH/CONVERT] BASE NXT BIT)
  ATAN (key 55.2)
+ ATAN2S (TRIG)
  ATANH (MTH HYP; TRIG HYP)
  ATICK (83.02 MENU)
  ATTACH (110 MENU)
  AUTO (81.02 MENU)
  AXES (83.02 MENU)
+ AXL (CONVERT; MATRICES OPER)
+ AXM (MATRICES OPER)
+ AXQ (CONVERT; MATRICES QUADF)
+ A-> (256 MENU)
+ A->H (256 MENU)
  BAR (88 MENU)
  BARPLOT (101 MENU)
+ BASE (788.22 MENU)
  BAUD (106 MENU)
  BEEP (PRG NXT OUT NXT)
  BESTFIT (90/99 MENU)
  BIN ([MTH/CONVERT] BASE)
  BINS (100 MENU)
  BLANK (PRG NXT GROB)
  BOX (PRG NXT PICT)
  BUFLEN (109 MENU)
  BYTES (PRG MEM)
+ BetaTesting (256.05 MENU)
  B->R ([MTH/CONVERT] BASE)
+ CASCFG (788.22 MENU)
  CASE (PRG BRCH CASE)
+ CD-> (256.02 MENU)
  CEIL (MTH REAL NXT NXT)
  CENTR (83.02 MENU)
  CF (PRG TEST NXT NXT; PRG NXT MODES FLAG)
+ CHINREM (ARITH POLY)
  CHOOSE (PRG NXT IN)
  CHR (PRG TYPE NXT; PRG NXT CHARS)
  CKSM (106 MENU)
  CLEAR (key 45.3)
  CLKADJ (PRG NXT NXT TIME NXT NXT)
  CLLCD (PRG NXT OUT)
  CLOSEIO (104.02 MENU)
  CLUSR (alias for CLVAR)
  CLVAR (must be typed in)
  CLsigma (91/97 MENU)
- CLTEACH (not in 49G)
+ CMPLX (788.22 MENU)
  CNRM (MATRICES OPER; MTH MATRX NORM)
  COL+ (MTH MATRX COL; MATRICES CREAT COL)
  COL- (MTH MATRX COL; MATRICES CREAT COL)
  COLCT (93 MENU)
  COLsigma (must be typed in)
  COL-> (MTH MATRX COL; MATRICES CREAT COL)
  COMB (MTH NXT PROB)
+ COMP-> (256.03 MENU)
  CON (MATRICES CREAT; MTH MATRX MAKE)
  COND (MATRICES OPER; MTH MATRX NORM)
  CONIC (82 MENU)
  CONJ (CMPLX; MTH NXT CMPLX NXT)
  CONLIB (115 MENU)
  CONST (115 MENU)
  CONT (key 101.02)
  CONVERT ([CONVERT] UNITS TOOLS)
  CORR (102 MENU)
  COS (key 54.1)
  COSH (MTH HYP; TRIG HYP)
  COV (102 MENU)
  CR (107 MENU)
  CRDIR (PRG MEM DIR)
+ CRLIB (256.05 MENU)
  CROSS (MTH VECTR; MATRICES NXT VECT)
  CSWP (MTH MATRX COL; MATRICES CREAT COL)
+ CURL (CALC DERIV)
  CYLIN (MTH VECTR NXT; PRG NXT MODES ANGLE)
  C->PX (PRG NXT PICT NXT)
  C->R (PRG TYPE NXT; MTH NXT CMPLX)
  DARCY (117 MENU)
  DATE (PRG NXT NXT TIME)
  DATE+ (PRG NXT NXT TIME NXT)
  DDAYS (PRG NXT NXT TIME NXT)
  DEC ([MTH/CONVERT] BASE)
  DECR (PRG MEM ARITH)
  DEFINE (key 93.2; SYMB GRAPH)
  DEG (PRG NXT MODES ANGLE)
  DELALRM (PRG NXT NXT TIME ALRM)
  DELAY (108 MENU)
  DELKEYS (PRG NXT MODES KEYS)
  DEPND (83 MENU)
  DEPTH (PRG/TOOL STACK NXT)
+ DERIV (SYMB CALC; CALC DERIV)
+ DERVX (SYMB CALC; CALC DERIV)
+ DESOLVE (S.SLV; CALC DIFF)
  DET (MATRICES OPER; MTH MATRX NORM NXT)
  DETACH (110 MENU)
  DIAG-> (MATRICES CREAT; MTH MATRX NXT; MTH MATRX MAKE NXT NXT)
+ DIFF (788.23 MENU)
  DIFFEQ (82 MENU)
  DIR (must be typed in)
  DISP (PRG NXT OUT)
+ DIV (CALC DERIV)
+ DIV2 (ARITH POLY)
+ DIV2MOD (ARITH MODUL)
+ DIVIS (ARITH; SYMB ARITH)
+ DIVMOD (ARITH MODUL)
+ DIVPC (CALC LIMIT)
  DO (PRG BRCH [DO])
  DOERR (PRG NXT NXT ERROR)
  DOLIST (PRG LIST PROC)
  DOSUBS (PRG LIST PROC)
  DOT (MTH VECTR; MATRICES NXT VECT)
  DRAW (81 MENU)
+ DRAW3DMATRIX (2219.18 MENU)
  DRAX (81 MENU)
  DROP (PRG/TOOL STACK)
  DROP2 (PRG/TOOL STACK NXT NXT)
  DROPN (PRG/TOOL STACK NXT NXT)
  DTAG (PRG TYPE NXT)
  DUP (PRG/TOOL STACK)
  DUP2 (PRG/TOOL STACK NXT NXT)
+ DUPDUP (PRG/TOOL STACK NXT NXT)
  DUPN (PRG/TOOL STACK NXT NXT)
  D->R (MTH REAL NXT NXT)
+ EDIT (key ls-downarrow; TOOL ls-EDIT; 2269.02 MENU)
+ EDITB (key downarrow; TOOL; 2269.02 MENU)
+ EGCD (ARITH POLY)
  EGV (MATRICES EIGEN; MTH MATRX NXT)
  EGVL (MATRICES EIGEN; MTH MATRX NXT)
  ELSE (PRG BRCH IF; PRG NXT NXT ERROR IFERR)
  END (PRG BRCH IF/CASE/DO/WHILE; PRG NXT NXT ERROR IFERR)
  ENDSUB (PRG LIST PROC)
  ENG (PRG NXT MODES FMT)
+ EPSX0 (788.23 MENU)
- EQNLIB (not in 49G)
+ EQW (2269.02 MENU)
  EQ-> (PRG TYPE NXT)
  ERASE (81 MENU)
  ERR0 (PRG NXT NXT ERROR)
  ERRM (PRG NXT NXT ERROR)
  ERRN (PRG NXT NXT ERROR)
+ EULER (ARITH INTEG)
  EVAL (key 44.3)
+ EXLR (788.19 MENU)
  EXP (key 51.2: e^x)
+ EXP&LN (788.23 MENU)
  EXPAN (93/142 MENU)
+ EXPAND (ALG; SYMB ALG)
+ EXPANDMOD (ARITH MODUL)
  EXPFIT (90/99 MENU)
+ EXPLN (EXP&LN; CONVERT; SYMB NXT EXPLN)
  EXPM (EXP&LN; MTH HYP NXT)
  EYEPT (86.02 MENU)
  F0lambda (117 MENU)
  FACT (2050.17 MENU)
+ FACTOR (ALG; SYMB ALG; ARITH POLY)
+ FACTORMOD (ARITH MODUL)
+ FACTORS (ARITH)
  FANNING (117 MENU)
+ FAST3D (2289.02 MENU)
  FC? (PRG TEST NXT NXT; PRG NXT MODES FLAG)
  FC?C (PRG TEST NXT NXT; PRG NXT MODES FLAG)
+ FCOEF (ARITH POLY)
  FFT (MTH NXT FFT)
+ FILER (key 21.2)
  FINDALARM (PRG NXT NXT TIME ALRM)
  FINISH (105 MENU)
  FIX (PRG NXT MODES FMT)
+ FLASHEVAL (2219.04 MENU)
  FLOOR (MTH REAL NXT NXT)
+ FONT6 (2269.03 MENU)
+ FONT7 (2269.03 MENU)
+ FONT8 (2269.03 MENU)
+ FONT-> (2269 MENU)
  FOR (PRG BRCH [FOR])
+ FOURIER (CALC DERIV)
  FP (MTH REAL NXT)
  FREE (must be typed in)
- FREE1 (not in 49G)
  FREEZE (PRG NXT OUT)
+ FROOTS (ARITH POLY NXT)
  FS? (PRG TEST NXT NXT; PRG NXT MODES FLAG)
  FS?C (PRG TEST NXT NXT; PRG NXT MODES FLAG)
+ FUNCTAB (2289.02 MENU)
  FUNCTION (82 MENU)
+ FXND (788.18 MENU)
+ GAUSS (MATRICES QUADF)
+ GCD (ARITH POLY NXT)
+ GCDMOD (ARITH MODUL)
  GET (PRG LIST ELEM; MATRICES CREAT NXT; MTH MATRX MAKE NXT)
  GETI (PRG LIST ELEM; MATRICES CREAT NXT; MTH MATRX MAKE NXT)
  GOR (PRG NXT GROB)
  GRAD (PRG NXT MODES ANGLE)
  GRAPH (alias for PICTURE)
  GRIDMAP (85 MENU)
  GROB (must be typed in)
+ GROBADD (788.21 MENU)
  GXOR (PRG NXT GROB)
+ HADAMARD (MATRICES OPER NXT)
+ HALFTAN (TRIG; SYMB TRIG)
  HALT (PRG NXT NXT RUN)
  HEAD (PRG LIST ELEM NXT; PRG NXT CHARS NXT)
+ HEADER-> (2269 MENU)
+ HERMITE (ARITH POLY NXT)
+ HESS (CALC DERIV)
  HEX ([MTH/CONVERT] BASE)
+ HILBERT (MATRICES CREAT NXT; MTH MATRX MAKE NXT NXT)
  HISTOGRAM (88 MENU)
  HISTPLOT (101 MENU)
  HMS+ (PRG NXT NXT TIME NXT)
  HMS- (PRG NXT NXT TIME NXT)
  HMS-> (PRG NXT NXT TIME NXT)
  HOME (2050.06 MENU)
+ HORNER (ARITH POLY NXT)
+ H-> (256 MENU)
+ H->A (256 MENU)
+ H->S (256.02 MENU)
+ IABCUV (ARITH INTEG)
+ IBP (SYMB CALC; CALC DERIV NXT)
+ ICHINREM (ARITH INTEG)
+ IDIV2 (ARITH INTEG)
  IDN (MATRICES CREAT; MTH MATRX MAKE)
+ IEGCD (SYMB ARITH; ARITH INTEG)
  IF (PRG BRCH [IF])
  IFERR (PRG NXT NXT ERROR [IFERR])
  IFFT (MTH NXT FFT)
  IFT (PRG BRCH NXT)
  IFTE (PRG BRCH NXT)
+ ILAP (CALC DIFF)
  IM (CMPLX; MTH NXT CMPLX)
  INCR (PRG MEM ARITH)
  INDEP (83 MENU)
  INFORM (PRG NXT IN)
  INPUT (PRG NXT IN)
+ INT (must be typed in)
+ INTVX (SYMB CALC; CALC DERIV NXT)
  INV (key 64.1: 1/x)
+ INVMOD (ARITH MODUL NXT)
  IP (MTH REAL NXT)
+ IQUOT (SYMB ARITH; ARITH INTEG)
+ IREMAINDER (SYMB ARITH; ARITH INTEG NXT)
  ISOL (S.SLV)
+ ISPRIME? (SYMB ARITH; ARITH INTEG NXT)
+ I->R (CONVERT NXT)
+ JORDAN (MATRICES EIGEN)
  KERRM (104.02 MENU)
  KEY (PRG NXT IN)
+ KEYEVAL (788.21 MENU)
+ KEYTIME-> (2219.19 MENU)
  KGET (105 MENU)
  KILL (PRG NXT NXT RUN)
  LABEL (81.02 MENU)
+ LAGRANGE (ARITH POLY NXT)
+ LANGUAGE-> (2269 MENU)
+ LAP (CALC DIFF)
+ LAPL (CALC DERIV NXT)
  LAST (alias for LASTARG)
  LASTARG (key 105.2: ANS; PRG NXT NXT ERROR)
  LCD-> (PRG NXT GROB NXT)
+ LCM (ARITH POLY NXT)
+ LCXM (137.02/788.15 MENU)
+ LC~C (256.04 MENU)
+ LDEC (S.SLV; SYMB SOLVE; CALC DIFF)
+ LEGENDRE (ARITH POLY NXT NXT)
+ LGCD (ARITH)
  LIBEVAL (2219.04 MENU)
  LIBS (110 MENU)
+ LIMIT (SYMB CALC; CALC LIMIT)
+ LIN (ALG; EXP&LN; SYMB ALG; CONVERT NXT; SYMB NXT EXPLN)
  LINE (PRG NXT PICT)
  LINFIT (90/99 MENU)
  LININ (PRG TEST PREV)
+ LINSOLVE (S.SLV; SYMB SOLVE; MATRICES LIN-S)
  LIST-> (2050.27 MENU)
  LN (key 51.3)
+ LNAME (788.19 MENU)
+ LNCOLLECT (ALG; EXP&LN; SYMB NXT EXPLN)
  LNP1 (MTH HYP NXT)
  LOG (key 61.3)
  LOGFIT (90/99 MENU)
  LQ (MATRICES FACT; MTH MATRX FACTR)
  LR (102 MENU)
+ LR~R (256.04 MENU)
  LSQ (MTH MATRX; MATRICES OPER NXT)
  LU (MATRICES FACT; MTH MATRX FACTR)
+ LVAR (788.18 MENU)
+ MAD (MATRICES OPER NXT)
+ MAIN (788.22 MENU)
  MANT (MTH REAL NXT)
+ MAP (788.18 MENU)
+ MATR (788.22 MENU)
  MAX (MTH REAL)
  MAXR (MTH NXT CONST NXT)
  MAXsigma (100 MENU)
- MCALC (not in 49G)
  MEAN (100 MENU)
  MEM (PRG MEM)
  MENU (PRG NXT MODES MENU)
+ MENUXY (788.21 MENU)
  MERGE (must be typed in)
- MERGE1 (not in 49G)
  MIN (MTH REAL)
- MINEHUNT (not in 49G)
+ MINIFONT-> (2269.04 MENU)
- MINIT (not in 49G)
  MINR (MTH NXT CONST NXT)
  MINsigma (100 MENU)
- MITM (not in 49G)
  MOD (MTH REAL; ARITH MODUL NXT)
+ MODSTO (ARITH MODUL NXT)
- MROOT (not in 49G)
  MSGBOX (PRG NXT OUT)
- MSOLVR (not in 49G)
+ MULTMOD (ARITH MODUL NXT)
- MUSER (not in 49G)
  NDIST (MTH NXT PROB NXT)
+ NDUPN (PRG/TOOL STACK PREV)
  NEG (key 62.1: +/-; CMPLX; MTH NXT CMPLX NXT)
  NEWOB (PRG MEM)
  NEXT (PRG BRCH START/FOR)
+ NEXTPRIME (ARITH INTEG NXT)
+ NIP (PRG/TOOL STACK NXT NXT)
  NOT (PRG TEST NXT; [MTH/CONVERT] BASE NXT LOGIC)
  NOVAL (PRG NXT IN)
  NSUB (PRG LIST PROC)
  NUM (PRG TYPE NXT; PRG NXT CHARS)
  NUMX (86.02 MENU)
  NUMY (86.02 MENU)
  Nsigma (103 MENU)
  OBJ-> (PRG TYPE; PRG LIST; PRG NXT CHARS NXT)
  OCT ([MTH/CONVERT] BASE)
  OFF (PRG NXT NXT RUN NXT)
  OLDPRT (108 MENU)
  OPENIO (109 MENU)
  OR (PRG TEST NXT; [MTH/CONVERT] BASE NXT LOGIC)
  ORDER (PRG MEM DIR NXT)
  OVER (PRG/TOOL STACK)
+ PA2B2 (ARITH INTEG NXT)
  PARAMETRIC (82 MENU)
+ PARAMTAB (2289.02 MENU)
  PARITY (106 MENU)
  PARSURFACE (85 MENU)
+ PARTFRAC (ARITH POLY NXT NXT)
  PATH (PRG MEM DIR)
+ PCAR (MATRICES EIGEN)
  PCOEF (ARITH POLY NXT NXT)
  PCONTOUR (85 MENU)
  PCOV (102.02 MENU)
  PDIM (PRG NXT PICT)
+ PEEK (256.03 MENU)
  PERM (MTH NXT PROB)
  PEVAL (77 MENU)
  PGDIR (PRG MEM DIR)
  PICK (PRG/TOOL STACK NXT)
+ PICK3 (PRG/TOOL STACK NXT)
  PICT (PRG NXT PICT)
  PICTURE (key left-arrow; 2050.34 MENU)
  PINIT (110 MENU)
  PIX? (PRG NXT PICT NXT)
  PIXOFF (PRG NXT PICT NXT)
  PIXON (PRG NXT PICT NXT)
  PKT (105 MENU)
+ PLOT (SYMB GRAPH)
+ PLOTADD (SYMB GRAPH)
  PMAX (2050.31 MENU)
  PMIN (2050.31 MENU)
+ POKE (256.03 MENU)
  POLAR (82 MENU)
+ POLARTAB (2289.02 MENU)
  POS (PRG LIST ELEM; PRG NXT CHARS)
+ POWMOD (ARITH MODUL NXT)
  PR1 (104 MENU)
  PREDV (must be typed in)
  PREDX (102 MENU)
  PREDY (102 MENU)
+ PREVAL (CALC DERIV NXT)
+ PREVPRIME (ARITH INTEG NXT)
  PRLCD (107 MENU) (no hotkey?!?)
  PROMPT (PRG NXT IN NXT)
+ PROMPTSTO (788.24 MENU)
  PROOT (ARITH POLY NXT NXT)
+ PROPFRAC (SYMB ARITH; ARITH NXT)
  PRST (107 MENU)
  PRSTC (107 MENU)
  PRVAR (107 MENU)
  PSDEV (100.02 MENU)
+ PTAYL (ARITH POLY NXT NXT)
  PURGE (TOOL; PRG MEM; PRG MEM DIR)
  PUT (PRG LIST ELEM; MATRICES CREAT NXT; MTH MATRX MAKE NXT)
  PUTI (PRG LIST ELEM; MATRICES CREAT NXT; MTH MATRX MAKE NXT)
  PVAR (100.02 MENU)
  PVARS (110 MENU)
  PVIEW (PRG NXT OUT; PRG NXT PICT NXT)
  PWRFIT (90/99 MENU)
  PX->C (PRG NXT PICT NXT)
  QR (MATRICES FACT; MTH MATRX FACTR)
  QUAD (93 MENU)
+ QUOT (ARITH POLY NXT NXT)
  QUOTE (93.03 MENU)
+ QXA (MATRICES QUADF)
  RAD (PRG NXT MODES ANGLE)
  RAND (MTH NXT PROB)
  RANK (MATRICES OPER NXT; MTH MATRX NORM NXT)
  RANM (MTH MATRX MAKE; MATRICES CREAT NXT)
  RATIO (must be typed in)
  RCEQ (75 MENU rs-EQ)
  RCI (MTH MATRX ROW; MATRICES CREAT ROW)
  RCIJ (MTH MATRX ROW; MATRICES CREAT ROW)
  RCL (key 32.2; TOOL; PRG MEM DIR)
  RCLALARM (PRG NXT NXT TIME ALRM)
  RCLF (PRG NXT MODES FLAG NXT)
  RCLKEYS (PRG NXT MODES KEYS)
  RCLMENU (PRG NXT MODES MENU)
  RCLsigma (97 MENU rs-SigmaDAT)
  RCWS ([MTH/CONVERT] BASE NXT)
  RDM (MTH MATRX MAKE; MATRICES CREAT NXT NXT)
  RDZ (MTH NXT PROB)
  RE (CMPLX NXT; MTH NXT CMPLX)
  RECN (104.02 MENU)
  RECT (MTH VECTR NXT; PRG NXT MODES ANGLE)
  RECV (104 MENU)
+ REF (MATRICES LIN-S)
+ REMAINDER (ARITH POLY PREV)
+ RENAME (2269.04 MENU)
+ REORDER (788.18 MENU)
  REPEAT (PRG BRCH WHILE)
  REPL (PRG LIST; PRG NXT GROB; PRG NXT CHARS; MTH MATRX MAKE NXT;
MATRICES CREAT NXT NXT)
  RES (83 MENU)
  RESTORE (PRG MEM NXT)
  REVLIST (MTH LIST; PRG LIST PROC)
+ RISCH (CALC DERIV NXT)
  RKF (76 MENU)
  RKFERR (76 MENU)
  RKFSTEP (76 MENU)
  RL ([MTH/CONVERT] BASE NXT BIT)
  RLB ([MTH/CONVERT] BASE NXT BYTE)
  RND (MTH REAL NXT NXT)
  RNRM (MTH MATRX NORM; MATRICES OPER NXT)
  ROLL (PRG/TOOL STACK NXT)
  ROLLD (PRG/TOOL STACK NXT)
  ROOT (75 MENU)
  ROT (PRG/TOOL STACK)
  ROW+ (MTH MATRX ROW; MATRICES CREAT ROW)
  ROW- (MTH MATRX ROW; MATRICES CREAT ROW)
  ROW-> (MTH MATRX ROW; MATRICES CREAT ROW)
+ RPL> (must be typed in)
  RR ([MTH/CONVERT] BASE NXT BIT)
  RRB ([MTH/CONVERT] BASE NXT BYTE)
  RREF (MATRICES LIN-S; MTH MATRX FACTR)
+ RREFMOD (788.21 MENU)
  RRK (76 MENU)
  RRKSTEP (76 MENU)
  RSBERR (76 MENU)
  RSD (MTH MATRX NXT; MATRICES OPER NXT)
  RSWP (MTH MATRX ROW NXT; MATRICES CREAT ROW NXT)
  RULES (must be typed in)
+ R~SB (256.04 MENU)
  R->B ([MTH/CONVERT] BASE)
  R->C (PRG TYPE NXT; MTH NXT CMPLX)
  R->D (MTH REAL NXT NXT)
+ R->I (CONVERT NXT)
  SAME (PRG TEST NXT)
  SBRK (109 MENU)
+ SB~B (256.04 MENU)
  SCALE (83.02 MENU)
+ SCALEH (83.02 MENU)
+ SCALEW (83.02 MENU)
  SCATRPLOT (101 MENU)
  SCATTER (88 MENU)
  SCHUR (MATRICES FACT; MTH MATRX FACTR)
  SCI (PRG NXT MODES FMT)
  SCLsigma (must be typed in)
  SCONJ (PRG MEM ARITH NXT)
+ SCROLL (788.21 MENU)
  SDEV (100 MENU)
  SEND (104 MENU)
  SEQ (PRG LIST PROC NXT)
+ SEQTAB (2289.03 MENU)
+ SERIES (SYMB CALC; CALC LIMIT)
  SERVER (105 MENU)
+ SEVAL (788.17 MENU)
  SF (PRG TEST NXT NXT; PRG NXT MODES FLAG)
  SHOW (93 MENU)
  SIDENS (117 MENU)
  SIGN (CMPLX NXT; MTH REAL NXT; MTH NXT CMPLX NXT)
+ SIGNTAB (SYMB GRAPH)
+ SIMP2 (ARITH NXT)
  SIN (key 53)
+ SINCOS (TRIG NXT; SYMB NXT EXPLN)
  SINH (MTH HYP; TRIG HYP)
  SINV (PRG MEM ARITH NXT)
  SIZE (MTH MATRX MAKE; PRG LIST ELEM; PRG NXT CHARS; PRG NXT GROB NXT;
MATRICES OPER NXT NXT)
  SL ([MTH/CONVERT] BASE NXT BIT)
  SLB ([MTH/CONVERT] BASE NXT BYTE)
  SLOPEFIELD (85 MENU)
  SNEG (PRG MEM ARITH NXT)
  SNRM (MTH MATRX NORM; MATRICES OPER NXT NXT)
+ SOLVE (S.SLV; ALG; SYMB SOLVE)
- SOLVEQN (not in 49G)
+ SOLVER (788.23 MENU)
+ SOLVETAB (2289.03 MENU)
+ SOLVEVX (S.SLV; SYMB SOLVE)
  SORT (MTH LIST; PRG LIST PROC NXT)
  SPHERE (MTH VECTR NXT; PRG NXT MODES ANGLE)
  SQ (key 52.2: x^2)
  SR ([MTH/CONVERT] BASE NXT BIT)
  SRAD (MTH MATRX NORM; MATRICES OPER NXT NXT)
  SRB ([MTH/CONVERT] BASE NXT BYTE)
  SRECV (109 MENU)
+ SREPL (2269.03 MENU)
+ SREV (109 MENU)
  START (PRG BRCH [START])
+ STAT2TAB (2289.03 MENU)
+ STATTAB (2289.03 MENU)
  STD (PRG NXT MODES FMT)
  STEP (PRG BRCH START/FOR)
  STEQ (75 MENU ls-EQ)
  STIME (109 MENU)
  STO (key 32.1; PRG MEM DIR)
  STO* (PRG MEM ARITH)
  STO+ (PRG MEM ARITH)
  STO- (PRG MEM ARITH)
  STO/ (PRG MEM ARITH)
  STOALARM (PRG NXT NXT TIME ALRM)
  STOF (PRG NXT MODES FLAG NXT)
  STOKEYS (PRG NXT MODES KEYS)
  STOsigma (97 MENU ls-SigmaDAT)
  STREAM (PRG LIST PROC)
  STR-> (2050.28 MENU)
  STWS ([MTH/CONVERT] BASE NXT)
  SUB (PRG LIST; PRG NXT GROB; PRG NXT CHARS; MATRICES CREAT NXT NXT;
MTH MATRX MAKE NXT)
+ SUBST (ALG; SYMB ALG)
+ SUBTMOD (ARITH MODUL NXT)
  SVD (MATRICES FACT; MTH MATRX FACTR)
  SVL (MATRICES FACT; MTH MATRX FACTR NXT)
  SWAP (PRG/TOOL STACK)
+ SYLVESTER (MATRICES QUADF)
  SYSEVAL (2050.09 MENU)
+ S~N (256.04 MENU)
+ S->H (256.02 MENU)
+ TABVAL (142.02 MENU)
+ TABVAR (SYMB GRAPH)
  TAIL (PRG LIST ELEM NXT; PRG NXT CHARS NXT)
  TAN (key 55.1)
+ TAN2SC (SYMB TRIG; TRIG NXT)
+ TAN2SC2 (SYMB TRIG; TRIG NXT)
  TANH (MTH HYP; TRIG HYP)
+ TAYLOR0 (CALC LIMIT; SYMB CALC NXT)
  TAYLR (CALC LIMIT)
+ TCHEBYCHEFF (788.16 MENU)
+ TCOLLECT (TRIG NXT)
  TDELTA (117 MENU)
+ TEVAL (788.17 MENU)
- TEACH (not in 49G)
+ TEXPAND (EXP&LN; SYMB ALG; SYMB TRIG; ALG NXT; TRIG NXT; SYMB NXT
EXPLN)
  TEXT (PRG NXT OUT)
  THEN (PRG BRCH IF/CASE; PRG NXT NXT ERROR IFERR)
  TICKS (PRG NXT NXT TIME)
  TIME (PRG NXT NXT TIME)
  TINC (117.02 MENU)
+ TLIN (SYMB TRIG; TRIG NXT)
  TLINE (PRG NXT PICT)
  TMENU (PRG NXT MODES MENU)
  TOT (100 MENU)
  TRACE (MATRICES OPER NXT NXT; MTH MATRX NORM NXT)
+ TRAN (MATRICES OPER NXT NXT; MTH MATRX NORM NXT)
  TRANSIO (106 MENU)
+ TRIG (SYMB TRIG; TRIG NXT NXT)
+ TRIGCOS (TRIG NXT NXT)
+ TRIGO (788.22 MENU)
+ TRIGSIN (TRIG NXT NXT)
+ TRIGTAN (TRIG NXT NXT)
  TRN (MTH MATRX MAKE)
  TRNC (MTH REAL NXT NXT)
+ TRUNC (788.17 MENU)
  TRUTH (82 MENU)
+ TSIMP (EXP&LN; TRIG NXT NXT)
  TSTR (PRG NXT NXT TIME NXT NXT)
  TVARS (PRG MEM DIR NXT)
  TVM (2219.12 MENU)
  TVMBEG (2219.13 MENU)
  TVMEND (2219.13 MENU)
  TVMROOT (79 MENU)
  TYPE (PRG TEST NXT; PRG TYPE NXT NXT)
  UBASE ([CONVERT] UNITS TOOLS)
  UFACT ([CONVERT] UNITS TOOLS)
+ UFL1->MINIF (2269.04 MENU)
+ UNPICK (PRG/TOOL STACK NXT)
+ UNROT (PRG/TOOL STACK)
  UNTIL (PRG BRCH DO)
  UPDIR (key 31.2)
  UTPC (MTH NXT PROB NXT)
  UTPF (MTH NXT PROB NXT)
  UTPN (MTH NXT PROB NXT)
  UTPT (MTH NXT PROB NXT)
  UVAL ([CONVERT] UNITS TOOLS)
+ VANDERMONDE (MATRICES CREAT NXT NXT; MTH MATRX MAKE NXT NXT)
  VAR (100.02 MENU)
  VARS (PRG MEM DIR NXT)
+ VER (788.24 MENU)
  VERSION (2219.03 MENU)
+ VISIT (key ls-downarrow; 2269.02 MENU)
+ VISITB (2269.02 MENU)
  VTYPE (PRG TYPE NXT NXT)
  V-> (MTH VECTR)
  WAIT (PRG NXT IN)
  WHILE (PRG BRCH [WHILE])
  WIREFRAME (85 MENU)
  WSLOG (2050.04 MENU)
  XCOL (89/98 MENU)
  XMIT (109 MENU)
+ XNUM (142.02 MENU)
  XOR (PRG TEST NXT; [MTH/CONVERT] BASE NXT LOGIC)
  XPON (MTH REAL NXT)
+ XQ (142.02 MENU)
  XRECV (104.02 MENU)
  XRNG (83 MENU)
  XROOT (key 52.3: x-root-of-y)
  XSEND (104.02 MENU)
  XVOL (86 MENU)
  XXRNG (86 MENU)
  YCOL (89/98 MENU)
  YRNG (83 MENU)
  YSLICE (85 MENU)
  YVOL (86 MENU)
  YYRNG (86 MENU)
+ ZEROS (SYMB SOLVE; S.SLV NXT)
  ZFACTOR (117 MENU)
  ZVOL (86 MENU)
  ^ (key 51.1: y^x)
  _ (key 85.3)
  dB (117.02 MENU)
  e (alpha-ls-E; MTH NXT CONST)
  gmol (117.02 MENU)
  i (key 23.2; CMPLX; MTH NXT CONST)
  lbmol (117.02 MENU)
  rpm (117.02 MENU)
+ rref (SYMB SOLVE; MATRICES LIN-S)
  | (key 23.3)
  sqrt (key 52.1)
  integral (key 55.3)
  Sigma (key 53.3)
  Sigma+ (91/97 MENU)
  Sigma- (91/97 MENU)
  SigmaLINE (102 MENU)
  SigmaLIST (MTH LIST)
  SigmaX (103 MENU)
  SigmaX^2 (alias for SigmaX2)
  SigmaX2 (103 MENU)
  SigmaX*Y (alias for SigmaXY)
  SigmaXY (103 MENU)
  SigmaY (103 MENU)
  SigmaY^2 (alias for SigmaY2)
  SigmaY2 (103 MENU)
  |> (key 32.1: STO in algebraic mode)
  pi (key 104.2; MTH NXT CONST)
  derivative (key 54.3)
  <= (key 63.2; PRG TEST)
  >= (key 64.2; PRG TEST)
  <> (key 62.2; PRG TEST)
  -> (key 102.3)
+ ->A
+ ->ALG
  ->ARRY (PRG TYPE)
+ ->CD
  ->COL (MTH MATRX COL; MATRICES CREAT COL)
  ->DATE (PRG NXT NXT TIME)
  ->DIAG (MATRICES CREAT; MTH MATRX NXT; MTH MATRX MAKE NXT NXT)
+ ->FONT (2269 MENU)
  ->GROB (PRG NXT GROB)
+ ->H
+ ->HEADER (2269 MENU)
  ->HMS (PRG NXT NXT TIME NXT)
+ ->KEYTIME (2219.19 MENU)
+ ->LANGUAGE (2269 MENU)
  ->LCD (PRG NXT GROB NXT)
  ->LIST (PRG TYPE; PRG LIST)
+ ->LST
+ ->MINIFONT (2269.03 MENU)
+ ->NDISP (2269.02 MENU)
  ->NUM (key 105.3; CONVERT NXT)
+ ->PRG
  ->Q (CONVERT NXT)
  ->Qpi (CONVERT NXT)
+ ->RAM
  ->ROW (MTH MATRX ROW; MATRICES CREAT ROW)
  ->STR (PRG TYPE; PRG NXT CHARS NXT)
  ->TAG (PRG TYPE)
  ->TIME (PRG NXT NXT TIME)
  ->UNIT (PRG TYPE; [CONVERT] UNITS TOOLS)
  ->V2 (MTH VECTR)
  ->V3 (MTH VECTR)
  vMATCH (93.02 MENU)
  ^MATCH (93.02 MENU)
  DeltaLIST (MTH LIST)
  PiLIST (MTH LIST)
+ Infinity (key 102.2)
  << (key 95.3)
  >> (key 95.3)

This information is courtesy Wlodek Mier-Jedrzejowicz from DATAFILE V18 N5.

Turn the unit off, then on while holding the D key down.  You're now
in self-test and ROM upload mode.

A	memory viewer

	if you press the down key 12 times, you will see the
	unit serial number

	0..9 and top row: select memory bank

	up, down, left, right and +, -, x, \:- move around in memory

B, C, G, J, M, R, S, T: you get portraits of the team members

V	original keyboard simulator

9	DON'T DO: this wipes flash memory in preparation for a ROM download!

ON (or C and ON): exits this mode

Menus::

HP49G, C-1.05, MENUS & LIBRARIES, Joe Horn, 19 Aug 1999

Unofficial. Made by hand. Please post all errors found. Thanx. -jkh-

-- MENU NUMBERS --

"*" in the first column means the menu is
    only available by the MENU command.

-- menus 0-117 are semi-compatible with 48G menus --
   0 LAST MENU
   1 CUSTOM
   2 VAR
   3 MTH
   4 MTH VECTR
   5 MTH MATRX
   6 MTH MATRX MAKE
   7 MTH MATRX NORM
   8 MTH MATRX FACTR
   9 MTH MATRX COL
  10 MTH MATRX ROW
  11 MTH LIST
  12 MTH HYP
  13 MTH NXT PROB
  14 MTH REAL
  15 [MTH] BASE
  16 [MTH] BASE NXT LOGIC
  17 [MTH] BASE NXT BIT
  18 [MTH] BASE NXT BYTE
  19 MTH NXT FFT
  20 MTH NXT CMPLX
  21 MTH NXT CONST
  22 PRG
  23 PRG BRCH
  24 PRG BRCH IF
  25 PRG BRCH CASE
  26 PRG BRCH START
  27 PRG BRCH FOR
  28 EDIT
  29 PRG BRCH DO
* 30 old menu-based solver
  31 PRG BRCH WHILE
  32 PRG TEST
  33 PRG TYPE
  34 PRG LIST
  35 PRG LIST ELEM
  36 PRG LIST PROC
  37 PRG NXT GROB
  38 PRG NXT PICT
  39 PRG NXT IN
  40 PRG NXT OUT
  41 PRG NXT NXT RUN
  42 [CONVERT] UNITS
  43 [CONVERT] UNITS LENG
  44 [CONVERT] UNITS AREA
  45 [CONVERT] UNITS VOL
  46 [CONVERT] UNITS TIME
  47 [CONVERT] UNITS SPEED
  48 [CONVERT] UNITS NXT MASS
  49 [CONVERT] UNITS NXT FORCE
  50 [CONVERT] UNITS NXT ENRG
  51 [CONVERT] UNITS NXT POWR
  52 [CONVERT] UNITS NXT PRESS
  53 [CONVERT] UNITS NXT TEMP
  54 [CONVERT] UNITS NXT NXT ELEC
  55 [CONVERT] UNITS NXT NXT ANGL
  56 [CONVERT] UNITS NXT NXT LIGHT
  57 [CONVERT] UNITS NXT NXT RAD
  58 [CONVERT] UNITS NXT NXT VISC
  59 [CONVERT] UNITS TOOLS
  60 PRG NXT NXT ERROR IFERR
  61 PRG NXT NXT ERROR
  62 PRG NXT CHARS
  63 PRG NXT MODES
  64 PRG NXT MODES FMT
  65 PRG NXT MODES ANGLE
  66 PRG NXT MODES FLAG
  67 PRG NXT MODES KEYS
  68 PRG NXT MODES MENU
  69 PRG NXT MODES MISC
  70 PRG MEM
  71 PRG MEM DIR
  72 PRG MEM ARITH
  73 PRG/TOOL STACK
* 74 old menu-based SOLVE
* 75 old menu-based SOLVE ROOT
* 76 old menu-based SOLVE DIFFEQ
* 77 old menu-based SOLVE POLY
* 78 old menu-based SOLVE SYS
* 79 old menu-based SOLVE TVM
* 80 old menu-based TVM solver
* 81 old menu-based PLOT
* 82 old menu-based PLOT PTYPE
* 83 old menu-based PLOT PPAR
* 84 old menu-based PLOT 3D
* 85 old menu-based PLOT 3D PTYPE
* 86 old menu-based PLOT 3D VPAR
* 87 old menu-based PLOT STAT
* 88 old menu-based PLOT STAT PTYPE
* 89 old menu-based PLOT STAT SigmaPAR
* 90 old menu-based PLOT STAT SigmaPAR MODL
* 91 old menu-based PLOT STAT DATA
* 92 old menu-based PLOT FLAG
* 93 old SYMBOLIC menu
  94 PRG NXT NXT TIME
  95 PRG NXT NXT TIME ALRM
* 96 old menu-based STAT
* 97 old menu-based STAT DATA
* 98 old menu-based STAT SigmaPAR
* 99 old menu-based STAT SigmaPAR MODL
*100 old menu-based STAT 1VAR
*101 old menu-based STAT PLOT
*102 old menu-based STAT FIT
*103 old menu-based STAT SUMS
*104 old menu-based I/O
*105 old menu-based I/O SRVR
*106 old menu-based I/O IOPAR
*107 old menu-based I/O PRINT
*108 old menu-based I/O PRINT PRTPAR
*109 old menu-based I/O SERIAL
*110 LIBRARY commands (PVARS, LIBS, DETACH, ATTACH, PINIT)
*111 same result as LIBS
*112 same result as LIBS
*113 old EQLIB menu
*114 old EQLIB EQLIB menu (empty)
*115 old EQLIB COLIB menu
*116 old EQLIB MES menu (empty)
*117 old EQLIB UTILS menu

-- new 49G menus start here ---
*118 abandoned UNITS TOOLS (same as menu #59)
 119 APPS CAS
 120 S.SLV
 121 EXP&LN
 122 TRIG
 123 CALC
 124 ALG
 125 ARITH
 126 ARITH POLY
 127 ARITH INTEG
 128 ARITH MODUL
 129 MATRICES
 130 CMPLX
 131 CONVERT
*132 menu-based NUM.SLV
*133 menu-based TVM (SOLVR fails if flag -117 is clear)
 134 SYMB ARITH
*135 abandoned SYMB CONV
*136 abandoned SYMB DIFF
*137 abandoned SYMB MATRX
*138 abandoned SYMB MOD
 139 SYMB TRIG
*140 abandoned SYMB TRIGC
*141 abandoned SYMB UNARY
*142 abandoned SYMB BASIC
 143 SYMB
*144 bad PRG menu: BRCH is malformed
*145 malformed PRG BRCH menu
 146 MATRICES CREAT
*147 abandoned subset of MATRICES OPER
 148 MATRICES FACT
*149 ? abandoned MATRICES COL ?
*150 ? abandoned MATRICES ROW ?
 151 SYMB ALG
 152 SYMB CALC
 153 SYMB GRAPH
 154 SYMB SOLVE
 155 SYMB NXT EXPLN
 156 MATRICES OPER
 157 MATRICES QUADF
 158 MATRICES LIN-S
 159 MATRICES EIGEN
 160 MATRICES NXT VECT
 161 TRIG HYP
 162 CALC DERIV
 163 CALC LIMIT
 164 CALC DIFF
 165 MATRICES CREAT COL
 166 MATRICES CREAT ROW
*167 abandoned TIME (same as menu #94)

 168-255 (nonexistent)


-- MENU NUMBERS THAT CORRESPOND TO BUILT-IN LIBRARIES --

 256 Hacker's toolkit
 788 CAS version 4.19990717 (new, improved Erable library)
1792 IF/THEN-type structure commands (same as in 48S/G)
2050 Library 2 (48S command set + 15 new ones; see below)
2057 Statistical test functions
2219 Library 171 (48G command set + 3 new ones; see below)
2269 MetaKernel goodies
2270 ADDTOREAL
2289 Stat stuff

-------------------

New LIB 2 commands (only 2.5 bytes each!)

342 (algebraic STO)
386 INT
387 ANS
388 ;
389 R->I
390 I->R
391 NOVAL (not in lib 171 any more)
393 RPL>
394 UNROT
395 UNPICK
396 NIP
397 PICK3
398 DUPDUP
399 NDUPN
400 FAST3D

New LIB 171 commands:

107 DRAW3DMATRIX
108 ->KEYTIME
109 KEYTIME->

Bugs/ROM-Versions::

None.

Notes::

Introduced at the OpenHP conference in Paris.  US annoucement at the
American Society for Engineering Education conference in Rahleight NC
on June 21.

Display is black rather than the 48* blue.

The whole machine runs faster than the 48* series due to (lots of)
code tuning and "locking down" the memory configuration.

The case is ice blue.

The manuals can be found at:

	http://www.hp.com/calculators/products/manuals/49g/49g_ug.zip

More information can be found at:

	http://www.hpcalc.org/hp49/docs/faq

This is the first use of "rubber" keys.  There is no double width
ENTER key.

Some form of "Technical BASIC" is promised, but not in yet.  Tools to
support machine language and system RPL are reportedly present, but
not officially supported.

Compared to the 48* series, this machine drops infra-red, card slots,
and the equation library.  These changes supposedly make it more
acceptable in classrooms.

The machine features the return of the 28* CAT function.  New
functions are CUT, COPY, PASTE, FIND/REPLACE, and a TOOL menu.

Try evaluating "RULES".

------------------------------------------------------------
Message-ID: <37AC93A3.6644@intermediatn.net>
From: Rick Grevelle <rgrevelle@intermediatn.net>
Newsgroups: comp.sys.hp48
Subject: 49 Flash Pointer
Date: Sat, 07 Aug 1999 16:14:27 -0400

FLASH POINTERS

Hewlett-Packard's latest creation, the HP49G, looks alot like its
parents the HP48G and HP48GX; both internally and externally.  For
the most part, and at least from my view point, the internals are
quite the same.  Most of the kernel remains intact, although there
are positive improvements.  Many of the lower memory entries have
not changed.  This includes several ASSEMBLY entries points and an
interesting number of PRIMATIVE CODE OBJECTS beginning at address
#02F6Fh (ID1), and which continue through #08DD4h (SYSRRP?).  More
on this later.

Albeit of little value for the larger majority of users, HP has a
new object type which functions as a memory mapping utility, and
thus allows routines to be moved without having to change entries
in later versions.  The new object is a FLASH POINTER (FlashPtr)
and is atomic.  Its prologue address is #026ACh and is prodeeded
by the address of its skipover and direct execution code.  FlashPtr
is only 6 bytes.  The forementioned 2.5 byte prologue is followed
by 3.5 bytes, or 7 nibbles, which are in fact 2 distinct offsets
used to point to the appropriate segment in 2 seperate tables for
ultimately executing an object located somewhere within the 49's
memory.  The direct execution code is responsible for this action
and is a secondary located at address #02725h.  From an internal
standpoint FlashPtr is as follows:

			026AC hhh hhhh
			|     |   |
			|     |   2nd field
			|     |
			|     1st field
			|
			prologue

The 1st field is used to point into a table in system RAM located
at #86037h.  The value of the 1st field is multiplied by 5 since
the table is a list of 2.5 byte values intended to be utilized by
the CPU CONFIG instruction in order to soft configure the memory
where the object pointed to by FlashPtr is located.

The 2nd field is also used to point into another table, but this
table contains a list of 2.5 byte values which are actually the
addresses of the target objects pointed to by the FlashPtr which
is being processed.  The 2nd table's address is #40222h, and in
itself should make one speculate as to the configuration changes
of the devices in this new machine.

Overall the scheme outlined here has been reduced to a somewhat
simplified form.  The actual details are more involved so I'll
leave it at that; after all I wouldn't want to spoil any of the
fun for those wanting to solve the puzzle on their own.  There
is however quite a bit of information one will need in order to
begin lower level programming this machine. Additionally there
is a great possibility that some of addresses will slide before
the final revision.  More on this later.
------------------------------------------------------------
From: "Art Belmonte (CalcLab)" <belmonte@calclab.math.tamu.edu>
Newsgroups: comp.sys.hp48
Subject: Production HP 49G in hand!
Date: Thu, 12 Aug 1999 14:32:30 -0500
Message-ID: <Pine.LNX.4.05.9908121357220.16090-100000@calclab3.math.tamu.edu>

	...
The VER command returns:

	"HP 49 CAS by Parisse, Heiskanen, & Fiechter"
	4.19990717	[ostensibly, Sat, 17/Jul/99]

The VERSION command returns:

	"Version HP-49C"
	"Revision #1.05"
	"Copyright HP 1999"

Serial port connectivity tests with various operating systems:

My setups in the office:
	1. Linux workstation running Red Hat 5.2
	2. iMac running Mac OS 8.6; USB ports with USB-to-serial converter
	3. Windows 98 running under Virtual PC on the iMac

Results:
	1. For Linux I used the PC serial cable from the HP Graphic
		Calculator Connectivity Kit (HP F1207B, the 38/48 kit).
		I ran C-Kermit 6 and put the Linux box in server mode.
		(Helpful "HP-48 Kermit Hints and Tips" were quite useful
		in setting things up properly. The URL is:

			http://www.columbia.edu/kermit/hp48.html   )

		I uploaded and downloaded variables from the HP 49G
		by using the 49G commands SEND and KGET; works great.
		I also downloaded Brett Heath's "kbrowse" program off the
		www.hpcalc.org site. After hacking the source code a bit
		(so as to accomodate the output from "pwd" and "ls -ps"
		on my Linux system), kbrowse also worked quite nicely.

	2. Mac OS 8.6:
		a. I used the HP Graphic Calculator Macintosh Connectivity
			Kit (HP F1208B, the 38/48 kit) on my iMac via a
			Keyspan USB-to-serial converter. All features of
			the program worked fine: uploading and downloading
			variables, sending remote commands to the 49G from
			the iMac, and capturing screen shots from 49G.
		b. I also used Zterm to upload and download variables
			via both Kermit and XMODEM.

	3. Windows 98 (under Virtual PC on the iMac):
		a. I used the HP Graphic Calculator PC Connectivity kit
			(HP F1207B, the 38/48 kit). Virtual PC maps the
			virtual PC hardware to the Mac hardware and the
			Keyspan USB-to-serial converter did the trick here
			as well to provide "virtual" serial ports. All
			features of the program worked fine: uploading and
			downloading variables, sending remote commands to
			the 49G, and capturing screen shots from 49G.
			Even with Windows 98 under Virtual PC emulation,
			performance was quite satisfactory.
		b. I also used Hyperterminal to upload and download
			variables via both Kermit and XMODEM.
	...
- Art Belmonte
  Department of Mathematics
  Texas A&M University
------------------------------------------------------------
Newsgroups: comp.sys.hp48
Subject: Re: Production HP 49G in hand!
Date: Thu, 12 Aug 1999 18:06:37 -0500
Organization: Texas A&M University, College Station, Texas
Message-ID: <Pine.GSO.4.05.9908121619120.6911-100000@calclab5>

On Thu, 12 Aug 1999 gscott@netcom.com wrote:
> Can you follow up and tell us about:
> The packaging (box or blister pack),

G et al.,

It came in a plastic blister pack which I cut open with scissors.

> The documentation and accessories that it comes with,

1. HP 49 G calculator, manufactured in Indonesia; the keyboard cover is
	Bondi Blue, like that on the original iMac from August 1998

2. _HP 49G Graphing Calculator User's Guide_ (HP F1633-90001), authored by the 
	Australian Calculator Operation [ACO], printed in Singapore

3. _The HP 49G Pocket Guide_ (HP F1633-90101), authored by the ACO,
	printed in Singapore

4. 49G-to-49G connector cable, with 10-pin connectors on each end;
	a 10-pin to 4-pin cap (for 49G-to-48 connection)

5. Features and Proof of Purchase card (HP F1633A ABA), describing the 49G's
	capabilities, etc.

6. A small metal nameplate to stick on the back of the calculator on which
	to engrave one's name (HP 00048-80067)

7. HP Calculator Registration Card (HP F1633-90601), with prepaid air mail
	reply to Australia

> Fit and finish opinion,

Very nice indeed; finely machined; notable along either side of the screen
are small runners for extra protection when sliding on the cover.

> What do you think of the keyboard,

Here is my ranking, from most preferred to least preferred:

	HP 48		TI-89		HP 49G

In my opinion, there is nothing like an HP 48 keyboard, offering as it
does a soft (requiring little pressure to push the keys) yet positive
tactile response. The TI-89 keyboard is more clicky, but it is still soft
(which is good in my opinion). The HP 49G keyboard has rubber keys, which
still have a positive response, but require more pressure to push each key. 

To summarize, HP (in my opinion) had made the perfect keyboard in the HP 48.
Why did they change it? Perhaps the new 49G keyboard is less expensive to
manufacture. But I would gladly pay hard currency to have that legendary
48-feel back again.

> and obviously how does the software look?

The computer algebra system (CAS) is quite comprehensive. As a rough
analogy, Maple without packages loaded would be like a TI-89, whereas the
CAS on the 49G is like having lots of Maple's extra packages loaded. That
said, we dearly need the HP 49G _Advanced User's Manual_ (AUM) as soon as
possible to find out how to use all this functionality. (Until then, I try
to get by with the existing Erable and ALG48 documentation off the Web.)
And while I can respect HP's "environmental policy" and appreciate the
fact that they will post the AUM on the Web, I want a real paper book that
I can hold in my hands when I program.

> What do the "TI" keys like APPS, TOOL , and CAT that were inactive in the
> emulator actually do in the production version?

The "TI" top row left-shift keys (Y=, WIN, GRAPH, 2D/3D, TBLSET, TABLE)
are "available" only in ALGEBRAIC MODE. Why? Recall from the HP 48 that
left-shift softkey STOres into a variable, as it attempts to do on a 49G
in RPN mode. Not to worry, however, since in RPN mode the same
functionality is available via APPS -> Plot Functions. Another way to
access said functionality is SYMB -> GRAPH. Moreover, in RPN + Soft MENU mode
this might be even quicker (once we get that AUM!).

Pressing APPS yields the following chooser menu:
	1. Plot functions...
	2. I/O functions...
	3. Constants lib...
	4. Numeric solver...
	5. Time & date...
	6. Equation writer
	7. File manager
	8. Matrix writer
	9. Text Editor
	10. Math menu
	11. CAS menu 

Chooser menus have proportionally-sized scroll bars for long lists of
items. Of course, many 48-users will prefer soft menu access to many of
these functions. The 49G provides both.

TOOL gives contextual soft menus; very useful. CAT gives a chooser menu of
all 49G commands, but without syntactical hints at the bottom of the
screen as on a TI-89.

> How does the speed feel?

The GUI-stuff (choose menus, input forms, etc.) is *VERY FAST*. I believe
they leveraged the MetaKernel code and wrote additional code in assembly
to gain the speed---nice work! Some of the CAS commands give results as
fast as analogous ones on a TI-89 (quite a feat given the faster Motorola
processor on the 89 and a tribute to Parisse, Heiskanen, and Fiechter of
Erable and ALG48 fame). On others (including many cookbook problems that
students encounter in their texts), the TI-89 with the faster Moto (and/or
heuristics in its version of Derive) provides results much more quickly
that the 49G. Then of course there are the problems like Parisse posted
(and I replied to) that the TI-89 cannot do at all, probably due to his
implementation of the RISCH algorithm in the 49G.

The good thing is that HP is once again back in the ring (after 6 years
since the 48G series appeared). They took existing hardware and obtained
some of the best third-party software written to rapidly bring something
to market once they put there mind to it (Nov `97 - May `99), as was
described by Eric Rechlin's summary of Jake Schwarz's post on hpcalc.org.

There is something to be said, however, for massive horsepower. And if a
future (say) StrongARM RISC processor in my next HP calculator needs its
lithium-ion battery charged on occasion overnight, it's a price I'm
willing to pay for performance. For the modern woman in her engineering
calculus class wants the answer and she wants it *NOW*! And who are we to
deny the customer?

> Thanks!

Sure thing; glad to oblige.

- Art Belmonte
  Department of Mathematics
  Texas A&M University
------------------------------------------------------------
From: Joseph K. Horn <joehorn@jps.net>
Newsgroups: comp.sys.hp48
Subject: HP49G Non-Obvious Tricks
Date: Fri, 20 Aug 1999 12:07:39 GMT
Message-ID: <7pjge7$kba$1@nnrp1.deja.com>

Holding down the shift key while pressing PREV does a LAST MENU.

During warmstarts, the 49G will run a program called 'STARTUP' if it
exists.  So if you get annoyed that certain things get reset at every
warmstart (e.g. the header size), customize your warmstarts!

When the 49G times out and powers down, it runs a program called
'STARTOFF' if it exists.  I have mine chirp once before going to sleep.
Not sure why, but it seems nice.

You can control the length of time before the time-out power-down
happens.  The default is five minutes, but if you store a user binary
integer into a variable called 'TOFF', then the time-out will be after
that many CLOCK TICKS.  (1 second = 8192 clock ticks).  Anything less
than 5 seconds (#A000h) defaults to 5 seconds.  I don't know what the
maximum is.

Post 'em as you find more!  (This is *so* fun!)  Happy Hunting!
------------------------------------------------------------
From: "Christian Meland" <christian.meland@pfi.no_spam_>
Newsgroups: comp.sys.hp48
Subject: SV: HP49G Non-Obvious Tricks
Date: Fri, 20 Aug 1999 14:55:07 +0200
Organization: UNINETT news service
Message-ID: <7pjj3c$ech$1@snipp.uninett.no>

Joseph K. Horn <joehorn@jps.net> wrote in message
news:7pjge7$kba$1@nnrp1.deja.com...
> Holding down the shift key while pressing PREV does a LAST MENU.
	...

Nice. Here are some more:

The 49' keyboard is made so that you shall not need to switch to/from alpha
mode more than once while programming. To maximize the possibilities, some
keys acts different when alpha-rightshifted or alpha and right-shift HELD
DOWN:

(all alpha lock)
rs O    '
rs+O    omega

rs 6    angle-symbol
rs+6    degree-symbol

rs 2    !
rs+2    i (factorial upside down)

rs 3    ?
rs+3    ? (upside down)

rs spc    ,
rs+spc    ;

There may be more, but these are the ones I know.
--
Christian Meland
Research Scientist, PFI
N-7491 Trondheim, Norway
Phone +4773550976, at home/cell +47 73574614/95961631
------------------------------------------------------------
From: Joseph K. Horn <joehorn@jps.net>
Newsgroups: comp.sys.hp48
Subject: Re: Menu 256 commands
Date: Wed, 25 Aug 1999 23:35:00 GMT
Message-ID: <7q1uim$krc$1@nnrp1.deja.com>

> Ok, so I can find the 256 Menu that JKH says contains "Hacker's
tools".  Can I use one or more of them to compile SysRPL programs right
on the 49?

Yes and no.  You can hack together anything you like, but almost all the
System RPL entry points have moved, so you have to be careful.

As best as I can figure, here's what the commands are:

[->H] "To Hex". Same as ->ASC in the 48 HACK library.
[H->] "From Hex". Same as COD in the 48 HACK library.
[->A] "To Address". Same as ADDR in the 48 HACK library.
[A->] "From Address". Same as XRCL in the 48 HACK library.
[A->H] "Address to Hex". Converts #12345h to "54321".
[H->A] "Hex to Address". Converts "54321" to #12345h.

[->CD] "To Code". Turns a string of hex digits into a Code object.
[CD->] "Code Out". Turns a Code object into a string of hex digits.
[S->H] "String to Hex". Changes "Hi!" into "849612".
[H->S] "Hex to String". Changes "849612" into "Hi!".
[->LST] "Make List". Composite or meta-ob --> list.
[->ALG] "Make Algebraic". Composite or meta-ob --> algebraic.

[->PRG] "Make Program". Composite or meta-ob --> program.
[COMP->] "Composite Out". Composite --> meta-object.
[->RAM] "To RAM". Dumps any ROM object into RAM.
[SREV] "String Reverse". Turns strings backwards.
[POKE] Pokes raw hex into RAM.
[PEEK] Extracts the raw hex at any address.

[APEEK] ? Indirect PEEK?
[R~SB] "Real <-> System Binary". Converts reals to bints & back.
[SB~B] "System Binary <-> Binary". Bints to user binaries & back.
[LR~R] "Long Real <-> Real".
[S~N] "String <-> Name". Change "VERSION" to 'VERSION' & back.
[LC~C] "Long Complex <-> Complex".

[ASM->] "Assembly Out". Disassembles Code objects into source code.
[BetaTesting] --> 184-byte string useful for testing string routines.
[CRLIB] "Create Library". Works similar to HP48 lib creators.

Please post any corrections and further discoveries.
------------------------------------------------------------
From: Eric Smith <eric-no-spam-for-me@brouhaha.com>
Newsgroups: comp.sys.hp48
Subject: HP 49G memory map (was Re: 49g mem scanner and other)
Date: 25 Aug 1999 17:41:40 -0700
Message-ID: <qhn1vfz83f.fsf@ruckus.brouhaha.com>

Al Arduengo <exal@texas.net> writes:
> To any of you privvy to some of the internals of the 49, I have the 
> following questions:
> 
> 1. Are the keys for the 49 mapped the same as the 48S for purposes of 
> using the builtin mem scanner?

I'm not privy to anything special, but I did learn a lot from the recent 1999
HHUC in Vancover, WA, and figured out a tiny amount on my own.  Any errors
below are my fault, not HP's.

The memory viewer is accessed by pressing On-D (AKA On-F4), then A (F1).
(On-D displays a menu which does not list "A".  Several other unlisted
keys will display various pictures of the developers, some of which can be
scrolled with the arrow keys.)

This starts you at address 40000.  The left and right arrow keys move by
one nibble (00001), the up and down keys by sixteen (00010), the add and
subtract by 01000, and the multiply and divide by 10000.

However, the 0-9 and A-F keys do not modify memory (as far as I can tell;
perhaps there's a modify mode that I haven't found).  Rather, they select
which bank of the flash memory is visible from 40000..7ffff.

There are two megabytes of flash, which are divided into sixteen banks
of 128K each.  Any one of the first four banks can be mapped to 00000..3ffff,
and any of the sixteen can be mapped to 40000..7ffff.

[Note that the most significant address line from the Saturn is not used by
the Flash memory, so the same banks selected for 00000..3ffff and 40000..7ffff
will also appear at 80000..bffff and c0000..fffff if you unconfigure the
RAM that normally covers that area.]

Of the sixteen banks, the first eight contain the HP 49G operating system,
and the last eight contain the user Flash (used as port 2).  There are hooks
in place to handle the case that a future version of the operating system
might take more than eight banks, in which case the user Flash would get
fewer banks.

The first half (64 Kbytes) of bank 0 of the Flash is the boot sector.  This
area is write-protected such that there is no way to overwrite it without
modifying the hardware.  This sector contains the boot code which validates
the contents of the remaining system banks.  If there is a problem, perhaps
because of a failed upgrade attempt, the boot code allows the user to download
the OS again.  On reset, bank 0 is mapped to 00000..3ffff.  After boot, a
different bank is normally mapped there.  (I'm not sure which one, but it can
only be 1, 2, or 3.)

The second half of bank 0 is not write-protected, and is apparently part
of the port 2 user Flash (along with banks 8..f).

The range from 40000..7ffff can be mapped to any of the Flash banks, including
the user banks.  This is also where the "ERAM" (port 1 user RAM) is configured
when needed.  Since there is 256K of ERAM, only half of it can be configured
there at a given time.

Since the memory configuration of the Yorke chip is very flexible, it is
possible for future software or alternative operating systems to map the
memory in different ways.  For instance, an all-RAM configuration or a
configuration with RAM at low addresses and Flash at high addresses is
apparently possible.

The "internal" serial number of the HP 49G (which is NOT the same as the
"external" serial number stamped on the bottom of the case) is at address
00108 of Flash bank zero.  Immediately after entering the memory viewer, this
can be seen at 40108 by hitting the down arrow about 12 times.  Note that even
though the memory viewer maps bank zero to 00000..3ffff, it can't be seen at
00108 because the Yorke chip maps hardware registers at 00100 & up.

Note that there is no way from User RPL to get the Flash serial number.
According to the developers, this was a deliberate decision because if
software depends on that serial number, an unscrupulous person could
rewrite the flash with a modified version of the hypothetical serial number
command that returned any desired value.  But because the serial number is
in the boot sector, it can't be changed in such a simple manner.  HP said
to expect that serial number reading code would be provided to software
developers in the future.

The boot sector version string may similarly be found in bank zero at 40214.

Reportedly out of the remaining sectors of the system Flash, one is the system
bank, two are used for the bulk of the HP 48 code, two for Metakernel, and one
(or was it two) for the Computer Algebra System.

The second half of Bill Wickes' adage "Life is short and ROM is full" is no
longer true, as there is apparently still quite a bit of system Flash left
over and available for future growth.  Let's hope that the HP 49G is a
successful product, so that HP will release new and improved software to
put that Flash memory to good use.  :-)

The Metakernel and CAS splash screens can be seen briefly during boot.  If
you press "ON" at the right time, it will stay on screen for inspection.
The CAS version number can be obtained by the "VER" command, and the overall
OS version from the "VERSION" command.  I haven't found a command to display
the MK version, so I've only gotten it via the splash screen.  Presumably
the memory viewer could also be used to find it.

If you want to go spelunking for interesting text messages, view the region
>from  40000..7ffff, and don't forget that there are 8 banks worth trying
(0..7).  Also, remember that some messages start at an odd address.

My HP 49G has OS version 1.05; HP said that 1.10 has been released to
manufacturing, and that it should soon show up as a downloadable upgrade on
the HP web site.

Cheers,
Eric


-----------------------------------------------------------------------------
| 00000      3ffff | 40000      7ffff | 80000      bffff | c0000      fffff |
-----------------------------------------------------------------------------
\  can be mapped  / \can be mapped to/ \     normally always configured    /
 \ to first four /   \any flash, or /   \      as user IRAM               /
  \    banks    /     \ user ERAM  /     \    (HOME and port 0)          /
   \           /       \ (port 1)  |      \                             /
   |----------/         \----------|       -----------------------------|
   |                               |                                    |
   |                               |                                    |
   |                               |                                    |
   |  Flash - 16 banks of 128 KB   |             RAM - 3 areas          |
   |     --------------------      |           --------------------     |
   |     | bank 0  64K boot |      |           | 0-256K           |    /
   |\    |           sector |     /|           |   IRAM           |<---
   | --->|         -------- |<---- |           |   (HOME & port 0)|
   |     |       64K normal |      |\          --------------------
   |\    --------------------     /| --------->| 256-384K    ERAM |
   | --->| bank 1           |<---- |\          ---------- (port 1)|
   |\    --------------------     /| --------->| 384-512K         |
   | --->| bank 2           |<---- |           --------------------
    \    --------------------     /|
     --->| bank 3           |<---- |
         --------------------     /|
         | bank 4           |<---- |
         --------------------     /|
         | bank 5           |<---- |
         --------------------     /|
         | bank 6           |<---- |
         --------------------     /|
         | bank 7           |<---- |
         --------------------     /|
         | bank 8           |<---- |
         --------------------      |
                  .                |
                  .                |
                  .                |
         --------------------     /
         | bank f           |<---- 
         --------------------
------------------------------------------------------------

Areas

General

Craig's Articles

 

 
 

I am Craig A. Finseth.

Back to Home.

Back to top.

Last modified Saturday, 2012-02-25T17:29:50-06:00.