hp28c

Model:	-28C

General:
	Name:			none
	Code-Name:		Paladin
	Family:			Clamshell?
	Logic:			RPL
	Features:		scientific, programmable, hyperbolics, complex,
				base w/arithmetic, matrix, vector, lists,
				solver (algebraic, program), symbolic math,
				plotting, graphics, etc., etc.
	Firsts:			RPL, general units, graphing, complex numbers,
				symbolic math, symbolic integration,
				differentiation
	Introduction:
		Date:		1987-1-5
		Price:		$235
	Discontinuation:
		Date:		1988-1
		Price:		$235
	Production-Run:		?

Display:
	Type:			LCD, bit-mapped
	Size:			4 line x 23 chars, 32 x 137 pixels
	Number-Formats:		sign, 12 mantissa, ., exp sign, 2 exp
	Annunciators:		O	a program is suspended
				---^	shift key pressed
				a	alphabetic keys active
				((.))	busy
				battery	battery low
				(2\pi)	radians mode
				printer	printer data being sent

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		# 1010
		The sizes are guesses.

Memory:
	Named-Registers:	none
	Flags:			1-30	user flags
				31	LAST enable
				32	printer trace
				33	auto CR
				34	principal value
				35	symbolic constants
				36	numeric results
				37-42	binary word size
				43-44	base 0)decimal 1)binary 2)octal 3)hex
				45	level 1 display is multiline
				46	reserved
				47	reserved
				48	radix 0). 1),
				49-50	display format 0)STD 1)SCI 2)FIX 3)ENG
				51	beeper on
				52	faster print
				53-56	number of digits in display
				57	underflow is error
				58	overflow is error
				59	infinite is error
				60	trig mode 0)degrees 1)radians
				61	there was negative underflow	
				62	there was positive underflow
				63	there was overflow
				64	there was infinite
	Register-Usage:		EQ	current equation
				PPAR	plotting parameters {(xmin,ymin)
					(xmax,ymax) indepvar resolution
					(xaxis,yaxis)}
				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 }
	Numbered-Registers:	none
	Program-Steps:		memory
	Program-Editing:	replace or insert
	Program-Display:	alpha
	User-RAM-Bytes:		1621
	Total-RAM-Bytes:	2048
	ROM-Bytes:		64K
	Machine-State:		flags
				stack
				user memory
				modes: entry mode, lower case, LAST COMMAND,
					LAST UNDO, system timer

Physical:
	Technology-Used:	CMOS
	Processor:		1LK7 Saturn CPU (1 MHz), two 1LP4 ROMs
				(64KB each) and two 1LP2 Centipede chips
				containing the LCD driver/RAM/IO
				register/power supply sections
	Chip-Count:		5 (2 ROMs, CPU, 2 display)
	Power-Source:		3 alkaline N cells
	Continuous-Memory:	yes
	Expansion-Ports:	none
	I/O-Ports:		I/R output, beeper
	Clock:			auto power off

	Length:			6 1/2 in
	Width:			open 7 1/2 in
				closed 3 5/8 in
	Height:			open 1/2 in
				closed  5/8 in
	Weight:			226.8g
	Temperature-Range:
		Operating:	0 to 45 deg C
		Charging:	none
		Storage:	-20 to 65 deg C

Keyboard:
	Switches:		none
	Shift-Keys:		maroon, maroon, above
	User-Defined-Keys:	6 menu keys

Key-Arrangement::

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

Key-Labels-Base-Keyboard::

Left

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	#	{	[	(
SPACE	\<<	=	LC	\Ga

Right

[]	[]	[]	[]	[]	[]
maroon	<^v>	TRIG	SOLV	USER	NEXT
ENTER	CHS	EEX	DROP	<-
'	7	8	9	\:-
STO	4	5	6	x
EVAL	1	2	3	-
ON	0	.	=	+

(The ON key has a white lower label of ATTN.)

Key-Labels-Maroon-Maroon-Above::

Left

ARRAY	BINARY	COMPLX	STRING	LIST	REAL
STACK	STORE	[]	ALGEBRA	[]	PRINT
|---- PROGRAM -----|
CTRL	BRANCH	TEST	[]	CATALOG	UNITS
\<=	\>=	\->	\GS	\^o	\Gm
<	>	"	}	]	)
NEWLINE	\>>	\=/	?	\GaLOCK

Right (top row labels are in white)

INS	DEL	^	V	<	>
[]	MODE	LOGS	STAT	PLOT	PREV
EDIT	VIEW^	VIEWv	ROLL	SWAP
VISIT	COMMAND	UNDO	LAST	1/x
RCL	PURGE	\.S	d/dx	^
->NUM	CONT	%	%CH	\v/
				 2
OFF	CLEAR	\pi	CONVERT	x

Programmable-Operations::

!		gamma
" "		identify string
#		identify binary number
%		compute percent
%CH		compute percent change
%T		compute percent total
'		identify algebraic
( )		precedence; identify complex number
*H		adjust plot height
*W		adjust plot width
+		addition
-		subtraction
->		create local variable
->ARRY		create an array
->HMS		convert to HH.MMSS
->LIST		create a list
->NUM		evaluate an object to a numeric value
->STR		create a string
0-9, .		enter digit
1/x		reciprocal
<		comparison test
=		"equal" comparison test
==		"equality" comparison test
>		comparison test

A		ampere unit
a		are unit (100 m^2)
ABORT		abort program execution
ABS		absolute value
ACOS		arc cosine
ACOSH		hyperbolic arc cosine
acre		acre unit
ALOG		common antilogarithm
AND		logical / binary and
Ao		Angstrom unit
arcmin		arc minutes unit
arcs		arc seconds unit
ARG		compute polar angle of a coordinate
ARRY->		separate array
ASIN		arc sine
ASINH		hyperbolic arc sine
ASR		arithmetic shift right
ATAN		arc tangent
ATANH		hyperbolic arc tangent
atm		atmosphere unit
au		astronomical unit
AXES		set axes intersections

b		barn unit
B->R		convert binary to real
bar		bar unit (pressure)
bbl		barrel unit
BEEP		sound a beep
BIN		select binary mode
Bq		Becquerel unit of activity
Btu		British Thermal Unit
bu		bushel unit

C		Couloumb unit
C->R		convert complex to real
cal		calorie unit
cd		Candela unit
CEIL		next larger integer
CENTR		identify center of plot display
CF		clear flag
chain		chain unit
CHR		convert integer to character
CHS		change sign
Ci		Curie unit
CLEAR		clears the stack
CLLCD		clear display
CLMF		clear the system message flag
CLUSR		clear all variables
CL\GS		clear statistics data
CNRM		compute column normal
COLCT		collect like terms
COL\GS		specifies dependant and independant statistics variables
CON		constant array
CONJ		compute complex conjugate
CONVERT		compute unit conversion
CORR		compute correlation coefficent
COS		cosine
COSH		hyperbolic cosine
COV		compute covariance
CR		print a carriage-right
CROSS		compute cross product
ct		carat unit
cu		cup unit

d		day unit
d/dx		compute derivative
D->R		convert degrees to radians
DEC		specify decimal mode
DEG		specify degrees mode
DEPTH		size of stack
DET		compute determinant
DISP		display object in line of display
DO ... UNTIL ... END	do loop
DOT		compute dot product
DRAW		draw plot
DRAX		draw axes
DROP		drop one object
DROP2		drop two objects
DROPN		drop N objects
DRW\GS		draw a statistics scatter plot
DUP		duplicate object
DUP2		duplicate two objects
DUPN		duplicate N items
dyn		dyn unit

e		symbolic constant 'e'
EEX		enter exponent
ELSE		control structure component
END		control structure component
ENG		specify ENG mode
ENTER		enter
erg		erg unit
ERRM		last error message
ERRN		last error number
eV		electron volt unit
EVAL		evaluate object
EXGET		get a subexpression
EXP		natural exponentiation
EXPAN		expands algebraic
EXPM		natural exponentiation - 1

F		Farad unit
FACT		factorial
fath		fathom unit
fbm		board foot unit
fc		footcandle unit
FC?		is a flag clear?
FC?C		is a flag clear? and clear
Fdy		Faraday unit
fermi		Fermi unit
FIX		specify FIX display mode
flam		footlambert unit
FLOOR		next smaller integer
FOR ... NEXT	for loop
FOR ... STEP	for loop
FORM		change the form of an algebraic
FP		fractional part
FS?		is a flag set?
FS?C		is a flag set? then clear
ft		foot unit
ftUS		US foot unit

g		gram unit
ga		standard freefall acceleration constant
gal		US gallon unit
galC		Canadian gallon unit
galUK		UK gallon unit
GET		get an element from a list, vector, or matrix
GETI		get an element from a list, vector, or matrix and increment
gf		gram-force unit
grad		grads unit
grain		grains unit
Gy		Gray unit of radiation

H		Henry unit
h		hour unit
HALT		suspend execution
HEX		specify hexadecimal mode
HMS+		hh.mmss addition
HMS-		hh.mmss subtraction
HMS->		convert to hh.mmss
hp		horsepower unit
Hz		Hertz unit

i		symbolic constant
IDN		identity matrix
IF ... THEN ... ELSE ... END	if-statement
IF ... THEN ... END		if-statement
IFERR ... THEN ... ELSE ... END	error trap
IFERR ... THEN ... END		error trap
IFT		stack-based if
IFTE		stack-based if, can be used in algebraics
IM		return imaginary part
in		inch unit
INDEP		specify independent variable for plotting
inH20		inches of water unit
inHg		inches of mercury unit
INV		reciprocal
IP		integer part
ISOL		isolate an equation variable

J		Joule unit

KEY		check for key press
KILL		abort all suspended programs
kip		kilopound of force unit
knot		knots unit
kph		kilometers per hour unit

l		liter unit
lam		lambert unit
LAST		return last arguments
lb		Avoirdupois pount unit
lbf		pound-force unit
lbt		troy pound unit
LIST->		separate list
lm		lumen unit
LN		natural logarithm
LNP1		natural logarithm + 1
LOG		common logarithm
LR		compute linear regression
lx		lux unit
lyr		light-year unit

m		meter unit
MANT		return mantissa
MAX		larger of two number
MAXR		largest real number
MAX\GS		largest statistics value
MEAN		compute mean
MEM		compute available memory
mho		mho unit
mi		international mile unit
mil		mil unit
MIN		smaller of two numbers
min		minutes unit
MINR		smallest positive real number
MIN\GS		smallest statistics value
miUS		US mile unit
mmHg		millimeters of mercury unit
MOD		modulus
mol		mole unit
mph		miles per hour unit

N		Newton unit
NEG		negate an argument
NEXT		control structure component
nmi		nautical mile unit
NOT		logical or binary not
NUM		convert character to a number
N\GS		number of entries in summation

OBGET		extract object from an algebraic
OBSUB		substitutes object into an algebraic
OCT		specify octal mode
OFF		off
ohm		Ohm unit
OR		logical or binary or
ORDER		specify order of objects in a directory
OVER		select object
oz		ounce unit
ozfl		US fluid ounce unit
ozt		Troy ounce unit
ozUK		UK fluid ounce unit

P		Poise unit of viscosity
P->R		convert polar to rectangular
Pa		Pascal unit
pc		parsec unit
pdl		poundal unit of force
ph		phot unit of illuminance
PICK		fetch object
PIXEL		turn pixel on
pk		peck unit
PMAX		sets the upper-right plot coordinate
PMIN		sets the lower-left plot coordinate
POS		find position of object in another
PR1		print level 1 object
PREDV		predict the dependant variable
PRLCD		print screen
PRMD		print and display modes
PRST		print stack
PRSTC		print stack compactly
PRUSR		print a list of variables in the current directory
PRVAR		print a variable
psi		pounts per square inch unit
pt		pint unit
PURGE		deletes one or more variables
PUT		put an element to a list, vector, or matrix
PUTI		put an element to a list, vector, or matrix and incremnt

qt		quart unit
QUAD		solve a quadratic polynomial

R		roentgen unit
r		radian unit
R->B		convert real to binary
R->C		convert real to complex
R->D		convert radians to degrees
R->P		convert rectangular to polar
RAD		specify radians mode
rad		rad unit of absorbed dose
RAND		compute random number
RCEQ		recalls the current equation
RCL		recall value
RCLF		recall flags
RCL\GS		recall the current statistics matrix
RCWS		recall binary word size
rd		rod unit
RDM		redimension a matrix
RDZ		set the random number seed
RE		return real part
rem		rem unit
REPEAT		control structure component
RES		set the plot resolution
RL		rotate left
RLB		rotate left byte
RND		round number
RNRM		compute row normal of a matrix (maximum of sums of absolute
		values of all elements of all rows)
ROLL		roll stack
ROLLD		roll stack down
ROOT		compute numerical root
ROT		move level 3 object to level 1
RR		rotate right
RRB		rotate right byte
RSD		compute residual to solution of system of linear equations

S		Siemens unit
s		second unit
SAME		comparison test
sb		Stilb unit of luminance
SCI		specify scientific display mode
SCL\GS		autoscale the plot according to the statistics data
SCONJ		conjugate the contents of a variable
SDEV		compute standard deviation
SF		set flag
SHOW		resolve all name references
SIGN		return the sign of a number
SIN		sine
SINH		hyperbolic sine
SINV		invert the contents of a variable
SIZE		returns the dimensions of an object
SL		shift left
SLB		shift left byte
slug		slug unit
SNEG		negates the contents of a variable
SQ		square
sr		steradian unit
SR		shift right
SRB		shift right byte
St		Stoke unit of viscosity
st		stere unit of volume
START ... NEXT	loop with no index variable
START ... STEP	loop with no index variable, variable step
STD		specify standard display mode
STEP		control structure component
STEQ		store into EQ
STO		store into variable
STO*		store with multiplication into variable
STO+		store with addition into variable
STO-		store with subtraction into variable
STO/		store with division into variable
STOF		set system flags
STO\GS		store into \GSDAT
STR->		separate string
STWS		sets binary wordsize
SUB		extracts portion of an object
Sv		Sievert unit of dose equivalent
SWAP		exchange two objects
SYSEVAL		evaluates object

T		Tesla unit
t		metric ton unit
TAN		tangent
TANH		hyperbolic tangent
TAYLR		compute Taylor series approximation
tbsp		tablespoon unit
THEN		control structure component
THEN ... END	control structure components
therm		therm unit
ton		short ton unit
tonUK		UK ton unit
torr		torr unit
TOT		compute statistics sums
TRN		transpose
tsp		teaspoon unit
TYPE		returns type of an object

u		unified atomic mass unit
UNTIL		control structure component
UPDIR		move up one level in path
UTPC		upper-tail Chi-Square distribution
UTPF		upper-tail F-distribution
UTPN		upper-tail normal distrbution
UTPT		upper-tail t-distribution

V		volt unit
VAR		compute variances

W		Watt unit
WAIT		pause execution for time or key
Wb		Weber unit
WHILE ... REPEAT ... END	while statement

x		multiplication
XOR		logical or binary xor
XPON		return exponent
x^2		square

yd		yard unit
yr		year unit
y^x		power

[ ]		identify array
\.d		differentiate
\.S		integrate
\:-		division
\<< \>>		identify program
\<=		comparison test
\=/		comparison test
\>=		comparison test
\Gm		micron unit
\GS+		add to statistics
\GS-		add to statistics
\pi		symbolic constant
\v/x		square root
\^o		degrees units
\^oC		degrees C units
\^oF		degrees F units
\^oK		degrees K units
\^oR		degrees R units
^		power
{ }		identify list

Non-Programmable-Operations::

*1		multiply by 1
+1-1		add and subtract 1
+CMD		turn on command saving
+LAST		turn on last arguments saving
+ML		turn on multi-line display
+UND		turn on undo saving
-()		double negate and distribute
->()		distribute prefix
-CMD		turn off command saving
-LAST		turn off last arguments saving
-ML		turn off multi-line display
-UND		turn off undo saving
/1		divide by 1
1/()		double invert and distribute
<		move left
shift <		move left all the way
<-		erase last character or object
<-->		commute arguments
<-A		associate left
<-D		distribute left
<-M		merge factors left
<^v>		toggle between cursor menu and last menu
>		move right
shift >		move right all the way

A->		associate right
AF		add fractions
ALGEBRA		bring up menu
ATTN		abort execution; exit special environments; clear messages

BRANCH		bring up menu

CATALOG		start the command catalog application
CMPLX		bring up menu
COLCT		collect like terms
COMMAND		recover previous command line
CONT		continue
CTRL		bring up menu

D->		distribute right
DEL		delete next item
DEL->		delete item to the right
shift DEL->	delete all items to the end of the line
DINV		double invert
DNEG		double negate

E()		replace power-of-power with power-product
EDIT		edit object in level 1
EXGET		get a subexpression
EXPAN		expand a subexpression
EXPR=		return expression or equation values
E^		replace power-of-product with power-of-power

FETCH		exits catalog or units environment with current item

GO->		set matrix entry mode to left-to-right
GOv		set matrix entry mode to top-to-bottom
GRAPH		invokes scrolling mode

INS		switches between insert and replace editing
shift INS	delete all characters to the left of the cursor

L()		replace product-of-log with log-of-power
L*		replace log-of-power with product-of-log
LABEL		labels axes
LAST		toggle saving of last arguments
LC		toggle upper/lower case
LEFT=		evaluate left side of current equation
LEVEL		enter level number to stack
LIST		bring up menu
LOGS		bring up menu

M->		merge factors right
MODE		bring up menu

NEXT		next screen or menu

OFF		off
ON		turn on
ON + +		adjust contrast
ON + -		adjust contrast
ON + <		continuous self-test
ON + DEL	cancels system halt or memory reset if pressed before ON
		is released
ON + ENTER + <-	go into deep sleep.  due to a bug, this mode actually draws
		MORE current than ordinary off...
ON + INS + >	clear all memory

ON + v		start system test
ON + ^		system halt: stops program execution, clears local variables,
		clears the stack

PLOT		bring up menu
PREV		previous screen or menu
PRINT		bring up menu

QUIT		exit special applications

RDX.		set radix to .
RDX,		set radix to ,
REAL		bring up menu
RT=		evaluate the right side of the current equation

SCAN		advance automatically thorugh special application
SOLV		bring up menu
SOLVR		bring up SOLVE menu
SST		single step
STACK		bring up menu
STAT		bring up menu
STOP		stop advancing automatically thorugh special application
STORE		bring up menu
STRING		bring up menu

TEST		bring up menu
TRAC		toggle printer trace mode
TRIG		bring up menu

UNDO		recover previous stack
UNITS		start the units application
USE		displays usage
USER		bring up menu

v		move down
shift v		move down all the way
VIEWv		move display down one line
VIEW^		move display up one line
VISIT		edits an object named in the command line

[<-]		move FORM cursor left
[->]		move FORM cursor right
\Ga		toggles alpha mode
^		move up
shift ^		move up all the way
^1		raise to power 1

Menus::

ALGEBRA:COLCT	EXPAN	SIZE	FORM	OBSUB	EXSUB
	TAYLR	ISOL	QUAD	SHOW	OBGET	EXGET
	FORM:	COLCT	EXPAN	LEVEL	EXGET	[<-]	[->]
		<-->	<-A	A->	->()	<-D	D->
		<-M	M->	DNEG	-()	DINV	1/()
		*1	/1	^1	+1-1	L*	L()
		E^	E()	AF

ARRAY:	->ARRY	ARRY->	PUT	GET	PUTI	GETI
	SIZE	RDM	TRN	CON	IDN	RSD
	CROSS	DOT	DET	ABS	RNRM	CNRM
	R->C	C->R	RE	IM	CONJ	NEG

BINARY:	DEC	HEX	OCT	BIN	STWS	RCWS
	RL	RR	RLB	RRB	R->B	B->R
	SL	SR	SLB	SRB	ASR

BRANCH:	IF	IFERR	THEN	ELSE	END
	START	FOR	NEXT	STEP	IFT	IFTE
	DO	UNTI	END	WHIL	REPEA	END

CATALOG:(catalog mode)
	NEXT	PREV	SCAN	USE	FETCH	QUIT

CMPLX:	R->C	C->R	RE	IM	CONJ	SIGN
	R->P	P->R	ABS	NEG	ARG

CTRL:	SST	HALT	ABORT	KILL	WAIT	KEY
	BEEP	CLLCD	DISP	CLMF	ERRN	ERRM

LIST:	->LIST	LIST->	PUT	GET	PUTI	GETI
	SUB	SIZE

LOGS:	LOG	ALOG	LN	EXP	LNP1	EXPM
	SINH	ASINH	COSH	ACOSH	TANH	ATANH

MODE:	STD	FIX	SCI	ENG	DEG	RAD
	+CMD	-CMD	+LAST	-LAST	+UND	-UND
	+ML	-ML	RDX.	RDX,	PRMD

PLOT:	STEQ	RCEQ	PMIN	PMAX	INDEP	DRAW
	PPAR	RES	AXES	CENTR	*W	*H
	STO\GS	RCL\GS	COL\GS	SCL\GS	DRW\GS
	CLLCD	DISP	PIXEL	DRAX	CLMF	PRLCD

PRINT:	PR1	PRST	PRVAR	PRLCD	TRACE	NORM
	PRSTC	PRUSR	PRMD	CR

REAL:	NEG	FACT	RAND	RDZ	MAXR	MINR
	ABS	SIGN	MANT	XPON

SOLVE:	STEQ	RCEQ	SOLVR	ISOL	QUAD	SHOW
	ROOT

SOLVR:	list of solver variables	LEFT=	RT= or EXPR=

STACK:	DUP	OVER	DUP2	DROP2	ROT	LIST->
	ROLLD	PICK	DUPN	DROPN	DEPTH	->LIST

STAT:	\GS+	\GS-	N\GS	CL\GS	STO\GS	RCL\GS
	TOT	MEAN	SDEV	VAR	MAX\GS	MIN\GS
	COL\GS	CORR	COV	LR	PREDV
	UTPC	UTPF	UTPN	UTPT

STORE:	STO+	STO-	STO*	STO/	SNEG	SINV
	SCONJ

STRING:	->STR	STR->	CHR	NUM	POS	DISP
	SUB	SIZE

TEST:	SF	CF	FS?	FC?	FS?C	FC?C
	AND	OR	XOR	NOT	SAME	==
	STOF	RCLF	TYPE

TRIG:	SIN	ASIN	COS	ACOS	TAN	ATAN
	P->R	R->P	R->C	C->R	ARG
	->HMS	HMS->	HMS+	HMS-	D->R	R->D

UNITS:	(units mode)
	NEXT	PREV	SCAN		FETCH	QUIT

USER:	ORDER	CLUSR	MEM	user variables

Bugs/ROM-Versions::

You can obtain the version number by #A SYSEVAL (the only supported
SYSEVAL.)

1BB	first version
1CC	second version, late 1987

The batteries were somewhat loose in the compartment.  This led to
excess corrosion and Memory Losts.

1BB Bugs:

- Turn a unit on and keep the ON key pressed for a moment.  Now
press SHIFT.  There is a 50% chance that the unit will turn off.

- Using the Solver with a program that does not return an object to
the stack.  Sometimes a system object will be placed there.

- Trying to delete an empty row with shift INS while editing a command
line can lead to strange results and possibly a Memory Lost.

- Dividing a 64 bit number with its top bit set can give wrong answers.

- Otherwise equal binary integers with different word sizes do not
necessarily compare equal.  Try:

	#1 DUP 50 STWS 'A' STO 'A ENTER ==

- If flags 57 or 58 are set the Solver might give an underflow or
overflow error while working to a solution.

- The Solver can also give incorrect Sign Reversal messages.

- User-defined units that are multiples of degrees Farenheight or
Celsius give incorrect results.

- The unit "yr" has been defined as 365 days instead of the correct
365.242 days.  As "lyr" is defined in terms of this unit, it, too is
incorrect.

- RND does not work correctly in FIX mode (try "0 FIX .7 RND": you get
0 instead of 1, unless you have flag 51 or 52 set!).  If you don't
want to set one of these flags, use ->STR STR-> to round the number.

Actually, this demonstrates another problem.  Do:

	0 FIX MAXR ->NUM

and you get 1.E500.  Now, ->STR gives "1.E500" then STR-> gives Syntax
Error.

- String comparisons produce incorrect results if the strings do not
differ in their initial letter: "AA" "AB" < gives 0.

- EDIT and VISIT can give unexpected results if you attempt to EEX or
CHS an already-existing number.  Use "-" and "E" or delete and reenter
the number.

- Memory can be corrupted by incorrect usages of the derivative function.

- Merging left with the divide sign can give incorrect results.

- Rounding of numbers in complex and matrix operations is sometimes
slightly different than that of the same pure real numbers.

- When the origin is not on the screen, plot tick marks are relative
to the screen instead of the origin.

- The Out of Memory condition does not clear typeahead: you may
unexpectedly delete variables or programs.

- The Solver does not always clear all internal flags.  Do:

	Memory Lost
	0 1/X		(gives "Infinite result" and sets flag)
	DROP
	\<< A DROP 1 \>> STEQ

Solve for A without an initial guess.  You will get a System Halt.

- Non-real results can cause the Solver to store a system object as
the variable's value.

- Some special characters are not displayed on the menu line properly:

	character		displays as
	&			e
	|			Z
	~			\
	\.x			`
	\:-			_
	proportionality		o]
	  (140 decimal)

- (Not really a bug) Turning a string into a name, where the string
refers to a name that already exists, will always hang due to
inifinite evaluation recursion.

Notes::

This machine brought the functionality : memory ratio to heights never
before dreamed.

HP28C: Hardware I/O basics document at:

	http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=313

As with the -45A, you can access an internal counter and turn it into
a clock.  Here is a set of programs to do this (written by Jake
Schwartz and published in Datafile V6N4, June 1987):

	HEX 64 STWS
	\<< #123E SYSEVAL 8192 / \>> 'TIME' STO
	\<< HMS\-> 3600 * TIME B\->R - 'TD' STO \>> 'CS' STO
	\<< 4 FIX DO TIME B\->R TD + 3600 / 24 MOD \->HMS
	1 DISP UNTIL KEY END DROP \>> 'CLOCK' STO

Instructions:

- Enter the current time in HH.MMSS format.
- Press USER CS to set the clock.
- Press USER CLOCK to show the time.  It continues until you press a key. 

Areas

General

Craig's Articles

 

 
 

I am Craig A. Finseth.

Back to Home.

Back to top.

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