hp17b

Model:	-17B

General:
	Name:			Business Calculator
	Code-Name:		Trader
	Family:			Pioneer
	Logic:			algebraic, no precedence
	Features:		business, solver
	Firsts:			Pioneer, use of two-level ALPHA menu
				(all with -27S)
	Introduction:
		Date:		1988-1-4
		Price:		$110
	Discontinuation:
		Date:		1990-1
		Price:		$110
	Production-Run:		?

Display:
	Type:			LCD, bit-mapped
	Size:			2 line x 22 chars
	Number-Formats:		sign, 12 mantissa, ., exp sign, 2 exp
	Annunciators:		---^	shift key
				printer	printer data being sent
				((.))	alarm past due
				battery	battery low

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:	real, 8 bytes
				CFLO lists, 10 1/2 bytes per list + 9 1/2
				  bytes per entry
				SUM list, 16 bytes + 8 per entry
				name, 1 + 1 per character
				equation, 10 1/2 bytes + 1 per char. in name +
				  1 per char. in formula
				solver variable, 15 + 1 per char. in name
				alarms, 41 per first alarm +
				  1 per char. in each message
				calculator line: numbers, 8 bytes + 1 byte
				  per character; operators, 3 1/2 bytes

Memory:
	Named-Registers:	4 line history, line 2 is LAST
				0-9
	Flags:			none
	Register-Usage:		none
	Numbered-Registers:	10
	Program-Steps:		none
	Program-Editing:	insert
	Program-Display:	alpha
	User-RAM-Bytes:		6750
	Total-RAM-Bytes:	8192
	ROM-Bytes:		64K
	Machine-State:		prefix key state
				pending operations
				printer status
				display contrast
				display mode
				radix mark
				registers and history
				statistics lists
				CFLO lists
				alarms
				current application and invocation history
				time and time format
				memory
	File-Types:		none

Physical:
	Technology-Used:	CMOS
	Processor:		Lewis, 1 MHz
	Chip-Count:		?
	Power-Source:		3 alkaline (Panasonic LR44) or mercury
				(Panasonic NR44 or MR44) button cells
				Also: AG13 LR1154 EPX76 A76 SR445SW/W
	Continuous-Memory:	yes
	Expansion-Ports:	none
	I/O-Ports:		I/R output, beeper
	Clock:			yes, auto power off

	Length:			?
	Width:			?
	Height:			?
	Weight:			?
	Temperature-Range:
		Operating:	0 to 45 deg C
		Charging:	-
		Storage:	-20 to 65 deg C

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

Key-Arrangement::

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

Key-Labels-Base-Keyboard::

^	^	^	^	^	^
STO	RCL	%	DSP	PRT	EXIT
INPUT	+/-	(	)	<-
^	7	8	9	\:-
v	4	5	6	x
[]	1	2	3	-
CLR	0	.	=	+

(The CLR key has a lower label of ON.)

Key-Labels-gold-gold-above::

[]	[]	[]	[]	[]	[]
[]	[]	MATH	MODES	PRINTER	MAIN
CLEAR DATA	E	[]	[]	[]
[]	[]	[]	[]	1/x
				 x
[]	[]	[]	[]	y
[]	[]	[]	[]	\v/x
				 2
OFF	MEM	SHOW	LAST	x

Programmable-Operations::

none

Non-Programmable-Operations::

shift []	clear shift
%		percent of
(		start nesting
)		end nesting
+		addition
+/-		change sign
-		subtraction
0-9, .		enter digit or decimal point
1/x		reciprocal
<-		erase character or number; cancel one level of menus
=		complete the operation
CLEAR DATA	clear all entries in current menu
CLR		clear calculator line
CLR + +		adjust display contrast
CLR + -		adjust display contrast
CLR + 1st + 6th menu key from left	clear continuous memory
CLR + 3rd menu key from left		reset calculator
CLR + 4th menu key from left		factory test, stop by CLR + 3rd
CLR + 5th menu key from left		initiate one self-test
CLR MAIN menu, calculator already on:
DSP		bring up the DSP menu
E		start an exponent
EXIT		exit one menu level
INPUT		use number in line 1 as response
LAST		use number in history line 2
MAIN		exit all menu levels
MATH		brings up the MATH menu
MEM		show available memory
MODES		brings up the MODES menu
OFF		off
ON		on
PRINTER		brings up the PRINTER menu
PRT		prints the entire current calculator line
RCL 0-9		recall from register
RCL INPUT	recall from list into line 1
RCL var		recall from menu variable
shift v		move to last item
shift ^		move to first item
SHOW		show full precision
STO +,-,x,\:-,y^x 0-9	storage arithmetic  
STO +,-,x,\:-,y^x var	storage arithmetic
STO 0-9		store in register
STO var		store in menu variable
v		move to next item
x		multiplication
x^2		square
y^x		power
\:-		division
\v/x		square root
^		move to previous item

Solver Functions

#T(name:n)	get frequency from cash flow list
+		addition
-		subtraction
=		complete the operation
ABS(x)		absolute value
ALOG(x)		common exponential
CDATE		current date
CTIME		current time
DATE(dae:n)	date + n days
DDAYS(d1:d2:cal) days between dates using calendar
		cal=1 actual, 2 365 day, 3 360 day
EXP(x)		natural exponential
EXPM1(x)	natural exponential, - 1
FACT(x)		factorial
FLOW(x)		value of the specified cash flow
FP(x)		fractional part
HMS(x)		convert to hours minutes seconds
HRS(x)		convert to decimal hours
IDIV(x:y)	integer quotient
IF(c:t:f)	if condition C then do T else F. conditions:
		<, <=, <>, =, >, >=, AND, NOT, OR, XOR
INT(x)		greatest integer less than or equal to x
INV(x)		reciprocal, 1/x
IP(x)		integer part
ITEM(listname:x)	returns item x from sum list
LN(x)		natural logarithm
LNP1(x)		natural logarithm of x + 1
LOG(x)		common logarithm
MAX(x:y)	larger value
MIN(x:y)	smaller value
MOD(x:y)	modulus
PI		constant, value 3.14159265359
RND(x:y)	round x to y decimal places
S(var)		true if solving for var
SGN(x)		sign of x
SIZEC(listname)	number of items in CFLO list
SIZES(listname)	number of items in sum list
SPFV(i%:n)	single payment future value
SPPV(i%:n)	single payment present value
SQ(x)		x squared
SQRT(x)		square root
TRN(x:y)	truncates x to y decimal places
USFV(i%:n)	uniform series future value
USPV(i%:n)	uniform series present value
x		multiplication
\:-		division
\GS(cv:c1:c2:s:alg)	sum alg for control variable cv from c1 to c2 step s
^		power

Menus::

main:	FIN	BUS	SUM	TIME	SOLVE

FIN:	TVM	ICNV	CFLO	BOND	DEPRC
	TVM:	N	I%YR	PV	PMT	FV	OTHER
		OTHER:	P/YR	BEG	END	AMRT
			AMRT:	#P	INT	PRIN	BAL	NEXT	TABLE
				TABLE:	FIRST	LAST	INCR	GO
	ICONV:	EFFCT	CONT
		EFFCT:	NOM%	EFF%	P
		CONT:	NOM%	EFF%
	CFLO:	CALC	INSR	DELET	NAME	GET	#T?
		CALC:	TOTAL	IRR%	I%	NPV	NUS	NFV
		GET:	*NEW	names of lists
	BOND:	TYPE	SETT	MAT	CPN%	CALL	MORE
	BOND:	YLD%	PRICE	ACCRU	MORE
		TYPE:	360	A/A	SEMI	ANN
	DEPREC:	BASIS	SALV	LIFE	ACRS%	ACRS	MORE
	DEPREC:	YR#	FACT%	DB	SOYD	SL	MORE

BUS:	%CHG	%TOTL	MU%C	MU%P
	%CHG:	OLD	NEW	%CH
	%TOTL:	TOTAL	PART	%T
	MU%C:	COST	PRICE	M%C
	MU%P:	COST	PRICE	M%P

SUM:	CALC	INSR	DELET	NAME	GET	TOTAL
	CALC:	TOTAL	MEAN	MEDN	STDEV	RANG	MORE
	CALC:	MIN	MAX	SORT	FRCST	MORE
		FRCST:	name of lists, select X variable
		FRCST:	name of lists, select Y variable
		FRCST:	x-list	y-list	CORR	M	B	MORE
		FRCST:	MODL	W.MN	G.SD	SIZE	MORE
		FRCST:	\GSX	\GSY	\GSX^2	\GSY^2	\GSXY	MORE
			MODL:	LIN	LOG	EXP	PWR
	NAME:	alpha edit
	GET:	*NEW	names of lists

TIME:	CALC	APPT	ADJST	SET
	CALC:	DATE1	DATE2	DAYS	360D	365D	TODAY
	APPT:	APPT1	APPT2	APPT3	APPT4	APPT5	MORE
	APPT:	APPT6	APPT7	APPT8	APPT9	APPT10	MORE
	APPT:	DATE	TIME	A/PM	MSG	RPT	HELP
		MSG:	alpha edit
		RPT:	NONE	MIN	HOUR	DAY	WEEK
	ADJST:	+HR	-HR	+MIN	-MIN	+SEC	-SEC
	SET:	DATE	TIME	A/PM	M/D	12/24	HELP

SOLVE:	CALC	EDIT	DELETE	NEW
	CALC:	custom menu of user variables
	EDIT:	alpha edit
	NEW:	alpha

alpha:	ABCDE	FGHI	JKLM	NOPQ	RSTUV	WXYZ
	ABCDE:	A	B	C	D	E	OTHER
	FGHI:	F	G	H	I	[]	OTHER
	JKLM:	J	K	L	M	[]	OTHER
	NOPQ:	N	O	P	Q	[]	OTHER
	RSTUV:	R	S	T	U	V	OTHER
	WXYZ:	W	X	Y	Z	[]	OTHER
		OTHER:	:	<	>	#	[]	MORE
		OTHER:	$	\GS	,	.	/	MORE
		OTHER:	A:	O:	U:	L-	?	MORE
		OTHER:	AE	Ao	O/	N~	?upside	MORE
		OTHER:	A~	C,	&	\^o	\<)	MORE
		OTHER:	~	!	@	^	*	MORE
		OTHER:	[	]	"	'	;	MORE

alpha edit:	DEL	<<-	<-	->	->>	ALPHA

DSP:	FIX	ALL	.	,
	FIX	0-11

MATH:	LOG	10^X	LN	EXP	N!	PI

MODES:	BEEP	PRINTER

PRINTER:LIST	STK	REGS	TIME	MSG	TRACE

Bugs/ROM-Versions::

none

Notes::

The AMORT and IRR functions compute to display precision accuracy.

Message-ID: <1993Apr16.191149.269@huey.csun.edu>
From: vacsc08l@VAX.CSUN.EDU
Date: Fri, 16 Apr 1993 19:11:49 GMT

Has anyone else played with machine code programming on the HP-17B,
27S, or 42S. I seem to have acquired a 17BII accidentally, and have
been exploring its hardware. This machine has a memory editor just
like the 48 does (so do the 17,27, and 42.) You get in the same way:
ON-4th menu key, then <- to enter editor. Press . immediately after
entering to show your version number. Keys are: ^v X divide + - move
around by varying amounts, 0-9 and menu keys enter hex, PRT sends line
to IR (potentially to 48 running INPRT, then to PC for disassembly),
and . executes at the current address. Note that execute is a call,
doing a RTN goes back to the editor from your ML code. Basic
architecture is 64KB (128K nybbles!) of ROM at 00000, display at
40000, and 8K of RAM at 50000. The first part of RAM changes on the
fly, so around 51000 or 52000 is good for experim- ental code. One can
do small machine language programs simply by writing the code on the
PC, using SASM on it, and typing in the hex digits in the .L file. If
one creates a Solver equation with a recognizable pattern, then scans
from 54000 (end of RAM) back- wards, one can easily find it. This is a
way to enter ML without wrecking normal memory. Has anyone played with
this? Where are the hardware registers? How well could one integrate
user-written code with the operating systems on these machines? They
are RPL machines internally; could you write system RPL as well as
machine code? -- Mike at CSUN (secs0574@ultrix.csun.edu)

P.S. The 19B does not appear to have a memory editor. Is there
any hole in the OS where one could push some ML? This would
probably be the same as the 28S except 8K ram.

Areas

General

Craig's Articles

 

 
 

I am Craig A. Finseth.

Back to Home.

Back to top.

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