Document 12969711

advertisement
 # ! "!
The HP 48G/GX combines an easy-to-learn graphical user interface with
advanced mathematics and engineering functionality, expanded memory
capability, and seven new plot types.
$ $ !! # !! " *' " +) +4 # 45#5'<0(<5*'<#35 )3#1*+/) %#-%6-#<
503 5*#5 %0.$+/'4 #/ '#4:<50<-'#3/ )3#1*+%#- 64'3 +/5'3(#%'
8+5* #&7#/%'& .#5*'.#5+%4 #/& '/)+/''3+/) (6/%5+0/#-+5: 5
+4 # %0/5+/6#5+0/ 0( 5*' #/& " 4'3+'4 0(
%#-%6-#5034 8*+%* #3' &'4+)/'& (03 *+)* 108'3 '95'/&#$+-+5:
#/& %6450.+;#$+-+5:
*' " +/%-6&'4 +.1307'.'/54 50 #&&3'44 5*'
/''&4 0( $05* /07+%' #/& #&7#/%'& 64'34 0( 4%+'/5+(+% #/&
)3#1*+/) %#-%6-#5034 03 5*' /'8 64'3 03 5*' 64'3 8*0 &0'4
/05 64' %'35#+/ (6/%5+0/#-+5: 7'3: 0(5'/ 5*' %#-%6-#503 *#4 #
&+#-0)<$09<45:-' (+--<+/<5*'<$-#/,4 64'3 +/5'3(#%'
•
•
•
•
•
•
•
03 5*' 64'3 8*0 /''&4 50 &0 #&7#/%'& 130$-'. 40-7+/)
5*' %#-%6-#503 0(('34 5*' (0--08+/) ('#563'4
+(('3'/5+#- '26#5+0/ 40-7'34
0-:/0.+#- 3005 (+/&'3
+/#/%+#- 130$-'. 40-7'3
+$3#3: 0( '/)+/''3+/) '26#5+0/4 #/& %0/45#/54
063+'3 53#/4(03.4
#53+9 .#/+16-#5+0/4
+/'#3 #-)'$3# 01'3#5+0/4
03 5*' 64'3 8*0 /''&4 .03' .'.03: #/& '95'/&#$+-+5: 5*'
" 7'34+0/ *#4 $:5'4 0( $6+-5<+/ %0.1#3'& 50
$:5'4 +/ 5*' #/& 7'34+0/4 *' 0/-: 05*'3 &+(('3'/%'
$'58''/ 5*' #/& 5*' " +4 5*' 580 .'.03: %#3& 4-054 +/
5*' " *' 4'%0/& .'.03: %#3& 4-05 #%%'154 61 50
$:5'4 0( 03 *' )3#1*+/) %#1#$+-+5: *#4 $''/ '91#/&'& 8+5* 5*' #&&+5+0/
0( 4'7'/ /'8 1-05 5:1'4 (03 # 505#- 0( (+(5''/ *' " *#4 (6/%5+0/ 10-#3 1#3#.'53+% %0/+% 5365* *+450<
)3#. $#3 #/& 4%#55'3 1-054 #/& 5*' " *#4 5*'4'
1-64 &+(('3'/5+#- '26#5+0/ 4-01' (+'-& 8+3'(3#.' 1#3#.'53+%
463(#%' )3+& .#1 14'6&0%0/5063 #/& :<4-+%' %3044<4'%5+0/
1-054
•
•
•
•
•
•
•
•
•
•
•
•
•
Fig. 1. " 4%+'/5+(+% )3#1*+/) %#-%6-#503
6)645 '8-'55<#%,#3& 063/#-
*' " (6/%5+0/#-+5: *#4 $''/ 3'5#+/'& +/ 5*' " *' /'8 %#-%6-#503 *#4 58+%' 5*' #/& 3'5#+/4
.6%* 0( 5*' 03+)+/#- %0&' *' " #/& "
$05* *#7' 5*' (0--08+/) ('#563'4
/+5 .#/#)'.'/5
#53+9!3+5'3
26#5+0/!3+5'3
0-7' /6.'3+% 40-7'3
<45:-' 45#%, %#-%6-#5+0/
:.$0-+% .#5*'.#5+%4
+.' #/& #-#3.4
5#5+45+%4 01'3#5+0/4
#3+#$-'4 #/& &+3'%503+'4 (03 &#5# 4503#)'
4'3<&'(+/#$-' ,':$0#3& #/& %6450. .'/64
130)3#..+/) -#/)6#)'
80<8#: +/(3#3'& %0..6/+%#5+0/4 -+/,
< 4'3+#- %#$-' %0//'%503
"! *' %3'#5+0/ 0( 5*' " %#/ $' 53#%'& 50 5*' .'3+<
%#/ #5*'.#5+%#- 0%+'5: .''5+/) +/ #/6#3: !'
*#& $''/ %-04'-: (0--08+/) 5*' 53'/& 0( 64+/) 5'%*/0-0): +/
5*' .#5*'.#5+%4 %-#44300. $'%#64' 063 40(58#3' 5'#.
(-"+4#$2 %.1,$1 , 3'$, 3("2 $#4" 3.12 -# " +"4+42 3$73:
!..* 43'.1 -# !$" 42$ 6$ 5(2(3 , 3'$, 3("2 $-&(-$$1(-&
-# $#4" 3(.- ".-%$1$-"$2 -# 3 +* 3. $#4" 3.12 !.3' 3.
/1.,.3$ $7(23(-& /1.#4"32 -# 3. %(-# .43 6' 3 3$ "'$12 -#
234#$-32 6.4+# +(*$ 3. 2$$ (- %4341$ /1.#4"32
3'$ 1$2.41"$2 -# ".-5$-3(.-2 .% 3'$ ./$1 3(-& 2823$, 2
-$6 ' 1#6 1$ 1$2.41"$2 !$".,$ -$"$22 18 -# 5 (+ !+$
3'$ ./$1 3(-& 2823$, ,423 &1.6 3. , - &$ 3'.2$ 1$2.41"$2
$%%$"3(5$+8 -# 2 31 -2/ 1$-3+8 2 /.22(!+$ 3. 3'$ //+(" :
3(.-2 !4(+3 .- 3'$ 2823$,
$ ' # 6 3"'$# 3'$ (-3$1$23 (- &1 /'(-& " +"4+ 3.12 &1.6
23$ #(+8 $ "' 8$ 1 -# ' # !$$- (-5.+5$# (- 6.1*2'./2 %.1
3$ "'$12 42(-& 3$"'-.+.&8 (- 3'$ "+ 221.., 3'1.4&' - &1 -32 /1.&1 , +3'.4&' 3'$ 6 2 !$".,(-&
23 -# 1# %.1 $-&(-$$1(-& 234#$-32 -# /1.%$22(.- + $-&(:
-$$12 (3 6 2 )423 3'$ %(123 23$/ (- ,$$3(-& 3'$ -$$#2 .% 3'$
$#4" 3(.- ".,,4-(38 -# 6$ ".-3(-4$# 3. '$ 1 3' 3 (3 6 2
3.. #(%%("4+3 3. 42$ -# 3.. $7/$-2(5$ %.1 "+ 221.., 42$ 8
-4 18 6'$- 6$ 3 +*$# 3. $#4" 3.12 33$-#(-& 3'$
,$$3(-& !.43 3'$(1 -$$#2 -# !.43 3'$ " +"4+ 3.12
3' 3 3'$8 6$1$ ".-2(#$1(-& %.1 42$ (- 3'$ "+ 221.., (3 !$:
" ,$ .!5(.42 3' 3 6$ -$$#$# 3. ' 5$ -$6 /1.#4"3 %.1 3'$
$#4" 3(.- , 1*$3 -. + 3$1 3' - 3'$ ! "*:3.:2"'..+ /$:
1(.# '(2 1$24+3$# (- 3'$ %.1, 3(.- .% - $#4" 3(.- #5(2.18
".,,(33$$ &1.4/ .% 2(7 , 3'$, 3("2 /1.%$22.12 6'.
6.4+# '$+/ 42 #$2(&- 3'$ " +"4+ 3.1 3. %(3 3'$ -$$#2 .% 3'$
$#4" 3(.- ".,,4-(38 -# 3'$- &(5$ 42 %$$#! "* .- .41
(,/+$,$-3 3(.-
'$ ./$1 3(-& 2823$, -# 2823$, /1.&1 ,,(-& + -&4 &$
(- 3'$ (2 3'$ ./$1 3(-& 2823$, %(123 42$# (3'$ -# -# 24!2$04$-3+8 (- -4,!$1 .%
.3'$1 , "'(-$2 (-"+4#(-& 3'$ -# -.6
6(3' $73$-2(.-2 (- 3'$ "
41 -4,!$1 .-$ .!)$"3(5$ %.1 3'$ -$6 " +"4+ 3.1 6 2 $ 2$
.% +$ 1-(-& '$ 42$12 .% 3'$ 3.+# 42 3' 3 3'$8
//1$"( 3$# (32 /.6$1 !43 (32 ".,/+$7(38 , #$ (3 #(%%("4+3 %.1
!.3' -.5("$ 42$12 -# $7/$1($-"$# 42$12 '$ -.5("$2 3$-:
#$# 3. !$ (-3(,(# 3$# !8 3'$ $73$-2(5$ .6-$12 , -4 + -#
3'$ #(%%("4+38 .% , 23$1(-& 2. , -8 -$6 ./$1 3(.-2 6'(+$
3'$ $7/$1($-"$# 42$12 ' # ' 1# 3(,$ 1$,$,!$1(-& '.6 3.
42$ 2.,$ ./$1 3(.-2 3' 3 3'$8 #(# -.3 42$ %1$04$-3+8
1$ 3(-& 23 3$:.%:3'$ 13 &1 /'(-& " +"4+ 3.1 6 2 .41 2$".-#
.!)$"3(5$ $ -$$#$# 3. ## 2.,$ &1 /'(-& " / !(+(3($2 24"'
2 31 "(-& +.-& &1 /' -# 2' #(-& !$36$$- &1 /'2 )423 3.
, (-3 (- / 1(38 6(3' .3'$1 &1 /'(-& " +"4+ 3.12 !43 6$ +2.
6 -3$# 3. &. % 1 !$8.-# 3'$ ".,/$3(3(.- 6(3' %$ 341$2 24"'
2 &1 /'(-& -# -(, 3(.-
41 3'(1# .!)$"3(5$ 6 2 3. $-' -"$ 3'$ '(&':$-# , 3'$, 3("2
" / !(+(38 .% 3'$ 6(3' 3'$ ##(3(.- .% %$ 341$2 24"'
2 #(%%$1$-3( + $04 3(.- 2.+5(-& /.+8-.,( + 1..3 %(-#(-&
,.1$ , 31(7 ./$1 3(.-2 -# .41($1 31 -2%.1,2 3'$1$!8
231$-&3'$-(-& .41 /.2(3(.- 2 3'$ ,.23 /.6$1%4+ 3$"'-(" +
" +"4+ 3.1 (- 3'$ 6.1+#
8 .%%$1(-& 36. ,.#$+2 3'$ -# 3'$ 6$
(-3$-#$# 3. /+$ 2$ "423.,$12 3 !.3' $-#2 .% 3'$ $#4" 3(.2/$"314, '$ ' 2 +(23 /1("$ 3' 3 1$/1$2$-32 24!:
23 -3( + #$"1$ 2$ %1., 3'$ +(23 /1("$ .% 3'$ .1 '(2 , *$2 3'$ ".,/$3(3(5$ 6(3' .3'$1 &1 /'(-&
" +"4+ 3.12 -# , *$2 (3 //$ +(-& $5$- 3 3'$ '(&' 2"'..+
+$5$+ '$ ' 2 ,.1$ //$ + %.1 ".++$&$ 234#$-32
6(3' %.41 3(,$2 2 ,4"' !4(+3:(- ,$,.18 -# 36. /+4&:(" 1# /.132 3' 3 1$ $7/ -# !+$ 3. !83$2 .% ,$,.18
# " +"4+ 3.1 .1 ".,/43$1 ./$1 3(-& 2823$, (2 /1(, 1(+8 2$3
.% ".-5$-3(.-2 %.1 ,$,.18 .1& -(9 3(.- # 3 2314"341$2 -#
1$2.41"$ ++." 3(.- 3.&$3'$1 6(3' 2$3 .% 2.%36 1$ 3..+2 3.
(# (- /$1%.1,(-& ./$1 3(.-2 (- "".1# -"$ 6(3' 3'.2$ ".-:
5$-3(.-2 - ".-31 23 - //+(" 3(.- (2 2.%36 1$ !4(+3 42(-&
! '$ *$8 ".-"$/3 4-#$1+8(-& 3'$ ./$1 3(.- .% 3'$ " +"4+ 3.1
(2 3'$ (#$ .% .!)$"32 .- 3'$ 23 "* 23 "* (2 # 3 2314"341$
3' 3 (2 2(,(+ 1 3. 23 "* .% " %$3$1( 31 82 '$ "+$ - 31 82 1$
##$# 3. 3'$ 3./ .% 3'$ 23 "* -# 2 31 82 1$ -$$#$# 3'$8
1$ 1$,.5$# %1., 3'$ 3./ .% 3'$ 23 "* '(2 38/$ .% + 23 (-
%(123 .43 .1#$1(-& "' 1 "3$1(9$2 3'$ 23 "* ++
./$1 3(.-2 3 *$ 3'$(1 1&4,$-32 (% -8 %1., 3'$ 23 "* -#
1$341- 3'$(1 1$24+32 (% -8 3. 3'$ 23 "*
'$1$ (2 .-+8 .-$ # 3 23 "* (- 3'$ '(2 1$2.41"$
(2 2' 1$# !8 3'$ 42$1 -# 3'$ 2823$, /1.&1 ,,$1 6'.
,423 3 *$ &1$ 3 " 1$ 3. , *$ 241$ 3' 3 -8 .!)$"32 3' 3 !$:
+.-& 3. 3'$ 42$1 1$ /1$2$15$# 3'1.4&' 3'$ ./$1 3(.- .% 282:
3$, /1.&1 ,2 .1 $7 ,/+$ 3'$ 42$1 , 8 ' 5$ %$6
-4,!$12 2(33(-& .- 3'$ 23 "* 3'$- #$"(#$ 3. /+.3 3'$ &1 /'
.% %4-"3(.- '$ 2823$, /1.&1 , 3' 3 14-2 6'$- 3'$
DRAW *$8 (2 /1$22$# #.$2 , -8 ./$1 3(.-2 3' 3 1$04(1$ 3'$
42$ .% 3'$ 23 "* 24"' 2 1$" ++(-& 3'$ /+.33(-& / 1 ,$3$12
"'$"*(-& 3' 3 3'$8 1$ 5 +(# " +"4+ 3(-& 3'$ 1 -&$ .5$1 6'("'
3. /+.3 $5 +4 3(-& 3'$ 42$12 %4-"3(.- -# ".-5$13(-& 3'$
%4-"3(.- 5 +4$2 3. /(7$+ "..1#(- 3$2 %3$1 3'$ &1 /' (2 ".,:
/+$3$ .1 (% 3'$ #1 6(-& .% 3'$ &1 /' (2 (-3$114/3$# !8 3'$
42$1 6'$- 3'$ 42$1 2$$2 3'$ 23 "* & (- 3'$ 2 ,$ -4,!$12
3' 3 6$1$ 3'$1$ 3. !$&(- 6(3' 2'.4+# -.3 ' 5$ !$$- #(2341!$#
-23$ # .% 31 82 42$12 , 8 ".++$"3 5 1(.42 38/$2 .% -4,$1("
28,!.+(" -# &1 /'(" .!)$"32 .- 3'$ 23 "* '$
38/$2 .% .!)$"32 5 (+ !+$ (- 3'$ (-"+4#$ 1$ + -#
".,/+$7 -4,!$12 1$ + -# ".,/+$7 11 82 !(- 18 (-3$&$12
- ,$2 "' 1 "3$12 231(-&2 3 &&$# .!)$32 +&$!1 (" .!)$"32
4-(3 .!)$"32 -# &1 /'(" .!)$"32 '$1$ 1$ +2. ! "*4/ .!:
)$"32 +(!1 18 .!)$"32 #(1$"3.1($2 /1.&1 ,2 -# +(232 .!)$"3 38/$2 1$ #(2"422$# (- ,.1$ #$3 (+ (- 1$%$1$-"$ - *$8:/$1:%4-"3(.- " +"4+ 3.1 3'$1$ (2 2(-&+$ *$8 3' 3 3'$
42$1 -$$#2 3. /1$22 3. &$3 3'$ , "'(-$ 3. /$1%.1, -8 ./$1 :
3(.- 24"' 2 ".2(-$ '$ ' 2 , -8 ,.1$ ./$1 :
3(.-2 3' - 3'$ *$82 .- 3'$ *$8!. 1# 2. 3'$1$ -$$#2 3. !$
6 8 3. ""$22 ++ 3'$ %4-"3(.- +(38 6(3'.43 22(&-(-& .-$
./$1 3(.- 3. $ "' *$8 .- 3'$ *$8!. 1# '(2 (2 "".,/+(2'$#
3'1.4&' 3'$ 42$ .% ,$-42 -# 2.%3*$82 '$ 3./ 1.6 .% *$82
.- 3'$ *$8!. 1# #. -.3 ' 5$ -83'(-& /1(-3$# .- 3'$, !$:
" 42$ 3'$8 ".11$2/.-# 3. ,$-4 + !$+2 3' 3 //$ 1 +.-& 3'$
!.33., .% 3'$ 2"1$$- '$2$ *$82 1$ " ++$# 2.%3*$82 -#
3'$(1 ,$ -(-& "' -&$2 6'$-$5$1 3'$ ".11$2/.-#(-& + !$+2
.- 3'$ 2"1$$- 1$ "' -&$# !8 3'$ 2.%36 1$
# ! $ 6(++ -.6 #(2"422 3'$ ,$,.18 ".-31.++$1 ".-%(&41 3(.-2
42$# (- 3'$ -# '.6 3'$2$ 1$ 42$# (- (,/+$:
,$-3(-& 3'$ 5 1(.42 38/$2 .% $7/ -#$# ##1$22 ,.#$2 #$:
5$+./$# %.1 3'$2$ /1.#4"32 '$ -$73 2$"3(.- .43+(-$2 3'$
4&423 $6+$33: "* 1# .41- +
MMIO
System RAM 32K
Port 2 128K
Higher Priority
Port 1 128K
Extra 2K
System ROM 224K
Covered ROM
32K
Fig. 2. 4!.$!2$ -%-/29 #/.42/,<
,%2 #/.&)'52!4)/. &/2 4(% #!,#5,!4/2 %-/29 3):%3
!2% ). "94%3
Unused Controller Address Space
Larger Addresses
$)&&%2%.#%3 ). #/.&)'52!4)/. "%47%%. 4(% !.$ 4(%
!.$ $)3#533%3 (/7 4(%3% $)&&%2%.#%3 !2% 53%$ 4/
%84%.$ !.$ 2%&).% 4(% %80!.$%$ !$$2%33 4%#(./,/'9 4/ 02/<
6)$% !##%33 4/ ! 4/4!, /& "94%3 /& #/$% !.$ $!4! !3
42!.30!2%.4,9 !3 0/33)",%
(% "53 !2#()4%#452% &)234 $%6%,/0%$ &/2 4(% !.$
53%$ ). !,, #!,#5,!4/23 3).#% 4(!4 4)-% (!3 3%6%2!, 53%&5,
&%!452%3 .% /& 4(% .)#%34 )3 )43 !$$2%33 #/.&)'52!4)/. #!0!<
"),)4)%3 ,, #()03 !44!#(%$ 4/ 4(% "53 !2% 2%15)2%$ 4/ "% !",%
4/ #(!.'% /. #/--!.$ /& 4(% "53 4(% 2!.'% /& !$$2%33%3
4(!4 %6/+% ! 2%30/.3% &2/- 4(% #()03 5#( ! 3934%- %,)-)<
.!4%3 /.#% !.$ &/2 !,, 4(% ).#/.6%.)%.#% !.$ (%!$!#(% /&
#/.&)'52).' *5-0%2 37)4#(%3 /. #!2$3 $%3)'.%$ 4/ 0,5' ).4/
4(% -!#().% /2 ! #/.35-%2 02/$5#4 ,)+% ! #!,#5,!4/2 4()3 )3
./4 /.,9 ! .)#%49 )4 )3 ! .%#%33)49
. 4(% %!2,9 $!93 /& 4(% !2#()4%#452% 4/ 4(%
"53 ,).%3 7%2% !#45!,,9 2/54%$ !2/5.$ 4(% #)2#5)4 "/!2$
!.$ !.9 /2 -%-/29 -!00%$ 4(!4 7!3 !4<
4!#(%$ 4/ 4(% "53 (!$ 4/ "% #534/-<-!$% 7)4( 4(% "53 ).4%2<
&!#% !44!#(%$ ()3 (!$ 4(% !$6!.4!'% /& !,,/7).' !. !2")42!29
.5-"%2 /& 0!243 4/ "% !$$%$ 4/ 4(% 3934%- 7)4( !3352!.#%
4(!4 4(% 3934%- 7/5,$ "% #!0!",% /& (!.$,).' !,, /& 4(%- ).
/.% 7!9 /2 !./4(%2 4 (!$ 4(% '2!6% $)3!$6!.4!'% /& 0544).'
! 02)#% 02%-)5- /. 35#( %33%.4)!, )4%-3 !3 !.$ . 4(% 3%#/.$<'%.%2!4)/. #()0 ! &)8%$ .5-"%2 /& -%-<
/29 #/.42/,,%23 7%2% ).#,5$%$ /."/!2$ 4(% (% "53 7!3 4(%. &/2 !,, 02!#4)#!, 0520/3%3 #/-0,%4%,9 ()$$%.
7)4(). 4(% )43%,& (% #/-").!4)/. /& %84%2.!, 34!.$!2$
/2 4/'%4(%2 7)4( /.% /& 4(% ).4%2.!, -%-/29
#/.42/,,%23 7!3 4(%. %15)6!,%.4 3/ &!2 !3 4(% "53 )3
#/.#%2.%$ 4/ ! 34!.$!2$ "53 $%6)#%
. 4(% 34!.$!2$ $%6)#% )-0,%-%.4!4)/.3 4(% 3):% /& 4(% $%6)#%
4(!4 )3 4(% !$$2%33 30!#% /##50)%$ "9 4(% $%6)#% )3 $%<
3)'.%$ ).4/ 4(% $%6)#% . 4(% 3%#/.$<'%.%2!4)/. #()0 4(% 3):%
/& 4(% #/.42/,,%23 7!3 -!3+ 02/'2!--%$ !4 4(% 4)-% /& -!.<
5&!#452% 3).#% 7% +.%7 %8!#4,9 7(!4 3):% %!#( #/.42/,,%$
$%6)#% 7/5,$ "%
)4( 4(% !$6%.4 /& 0,5'<).3 &/2 4(% 4(% #/.&)'5<
2!4)/. #!0!"),)4)%3 /& 4(% -%-/29 #/.42/,,%23 (!$ 4/ "% %8<
0!.$%$ 4/ ).#,5$% 6!29).' 4(% !00!2%.4 3):% /& 4(% -%-/29
#/.42/,,%2 4/ #/.&/2- 7)4( 4(% $%6)#% "%).' 0,5''%$ ). ()3
)3 /.% /& 4(% -!.9 !$6!.#%$ &%!452%3 ). 4(% 4()2$<'%.%2!4)/.
)-0,%-%.4!4)/. /& 4(% !2#()4%#452% ()3 2%3):).'
&%!452% ). !$$)4)/. 4/ !,,/7).' 0,5'<).3 /& 6!2)/53 3):%3 !,3/
02%3%.4%$ 4(% /00/245.)49 4/ %80,/2% %80!.$%$ !$$2%33
-/$%3 7()#( 7% (!6% #/-% 4/ #!,, 4(% ;#/6%2%$ 4%#(./,<
/'9 &/2 2%!3/.3 4(!4 7),, "% !00!2%.4 3(/24,9
(% 4()2$<'%.%2!4)/. #()0 (!3 3)8 -%-/29 #/.42/,,%23
. 4(% 4(%3% !2% !,,/#!4%$ 4/ -%-/29 -!00%$ 3934%- 0/24 0/24 !.$ 3934%- !.$ 4(%2% )3
/.% %842! #/.42/,,%2 (%)2 #/.&)'52!4)/. ). 4(% 535!, 34!4% )3
3(/7. ). )' (% -%-/29 #/.42/,,%23 !2% 3(/7. 7)4(
4(%)2 3):%3 !.$ ,/#!4)/.3 ). 4(% !$$2%33 30!#% ( 4/
( (%9 !2% !,3/ 0)#452%$ !3 (!6).' ! 6%24)#!, ,/#!4)/.
). ;02)/2)49 30!#% . 4(% "53 $%&).)4)/. 4(% $%6)#%3 !2%
#(!).%$ 7)4( 4(% 2%35,4 4(!4 $%6)#%3 #,/3%34 4/ 4(% /.
MMIO
System RAM (Shrunken)
Higher Priority
Port 1 128K
Covered Code to be
Executed In-Place
System ROM
Covered ROM 32K
Larger Addresses
5'534 %7,%44<!#+!2$ /52.!,
Unused
Fig. 3. 8%#54%<).<0,!#% #/.&)'5<
2!4)/. &/2 #/6%2%$
#/$%
MMIO
System RAM
(Shrunken)
Mailbox in
System RAM
Higher Priority
Port 1 (128K)
Covered Code and Data
to Copy to Mailbox
System ROM
Unused
Fig. 4. /09;4/;-!),"/8 #/.&)'5;
2!4)/. &/2 #/6%2%$
$!4!
Covered ROM 32K
Larger Addresses
4(% #(!). (!6% 4(% &)234 /00/245.)49 4/ 2%30/.$ 4/ "53 2%;
15%343 . #/.3%15%.#% )& 47/ $%6)#%3 !2% #/.&)'52%$ 7)4(
/6%2,!00).' !$$2%33 2!.'%3 4(% /.% #,/3%2 4/ 4(% /.
4(% #(!). %&&%#4)6%,9 ()$%3 4(% -/2% $)34!.4 /.% . )'3 4/
()'(%2 02)/2)49 #!. "% ).4%202%4%$ !3 :#,/3%2 4/ 4(% /2 :()$%3 4(/3% "%,/7
3 3(/7. ). )' 4(% -%-/29 #/.42/,,%2 &/2 3934%- ()$%3 4(% 3%#4)/. /& 3(/7. !3 #/6%2%$ ()3 )3 4(%
2%!3/. &/2 4(% .!-% :#/6%2%$ 4%#(./,/'9
)' 3(/73 -/2% $%4!), /& 4(% #/6%2%$ !.$ 4(% &)234
7!9 ). 7()#( )4 )3 53%$ . /.% 3%#4)/. /& 4(% #/6%2%$ 4(%2% )3 !33%-",9 ,!.'5!'% #/$% -/34,9 -!4( 2/54).%3 4(!4
2%15)2%3 ./ 2%3/52#%3 /543)$% 4(% &/2 %8%#54)/.
()3 #/$% )3 %8%#54%$ ).;0,!#% ). 4(% #/6%2%$ "9
3(2).+).' !.$/2 -/6).' 4(% -%-/29 #/.42/,,%2 &/2 3934% 3/ 4(!4 4(% 2%,%6!.4 3%#4)/. /& #/$% )3 4%-0/2!2),9 5.;
#/6%2%$ (%. 4(% 2/54).% &).)3(%3 %8%#54)/. 3934%- )3
2%452.%$ 4/ )43 ./2-!, #/.&)'52!4)/.
3%#/.$ 3%4 /& 2/54).%3 !,, /& 7()#( /.,9 .%%$ !##%33 4/ !
&)8%$ 3%4 /& ,/#!4)/.3 7)4(). 3934%- #!. %8%#54% 7)4(
3934%- ). !.9 /.% /& ,/#!4)/.3 !3 ,/.' !3 4(%9
4(%-3%,6%3 !2% ./4 #522%.4,9 #/6%2%$ "9 3934%- )' 3(/73 ! 3%#/.$ 7!9 ). 7()#( 4(% #/6%2%$ )3
53%$ . 4()3 #!3% #/$% !.$ $!4! -/34,9 $!4! !2% #/0)%$
&2/- #/6%2%$ 4/ ! -!),"/8 !4 ! &)8%$ ,/#!4)/. ). 3934% &4%2 4(% #/09 )3 #/-0,%4%$ 3934%- )3 2%452.%$
4/ )43 ./2-!, #/.&)'52!4)/. !.$ 4(% #/$% !.$ $!4! !2% !6!),;
!",% 4/ 4(% 2%34 /& 4(% 3934%- /$%23 53).' 4()3 $!4! -534
2%-!). !7!2% 4(!4 )4 )3 6/,!4),% !.$ #!. "% $%342/9%$ "9 !.;
/4(%2 &%4#( /& $!4! &2/- #/6%2%$ . 4()3 3%.3% 4()3
-%4(/$ )3 ./4 42!.30!2%.4
./4(%2 7!9 ). 7()#( #/6%2%$ )3 53%$ )3 3(/7. ).
)' 4 )3 !3 42!.30!2%.4 !3 4(% %8%#54%;).;0,!#% -%4(/$ "54
%.4!),3 &%7%2 2%342)#4)/.3 /. 4(% #/$% !.$ $!4! 4(!4 #!. "%
).#,5$%$ . 4(% #/$% 4()3 3934%- )3 535!,,9 4)%$ 4/
4(% %8%#54)/. /& 3 %#!,, 4(!4 3 !2% /"*%#43 4(!4 35"34)454% &/2 (!2$ !$$2%33%3 /& /"*%#43 7(/3%
02%#)3% ,/#!4)/. )3 ./4 +./7. ). !$6!.#% !.$ ). &!#4 -)'(4
./4 %6%. "% 02%3%.4 (%9 !2% -)$7!9 "%47%%. (!2$ !$;
$2%33%3 4(!4 /.,9 #(!.'% !4 #/-0),%,).+ 4)-% !.$ )$%.4)&)%23
7(/3% #/22%30/.$).' /"*%#43 -!9 -/6% "%47%%. 35"3%15%.4
#!,,3 !4 25. 4)-%
& $52).' 4(% #/.6%23)/. /& ! 4/ !. !$$2%33 )4 )3
$%4%2-).%$ 4(!4 4(% #/22%30/.$).' /"*%#4 ,)6%3 ). #/6%2%$
4(% /"*%#4 )3 #/0)%$ &2/- #/6%2%$ 4(2/5'( 4(%
-!),"/8 4/ 4(% TEMPOB 4%-0/2!29 /"*%#4 !2%! (% !$$2%33
/& )43 .%7 ,/#!4)/. ). 4(% TEMPOB !2%! )3 4(%. 2%452.%$ )'
3(/73 ! #/-0!2)3/. /& ! .!-%$ 7/2$ +%97/2$ /2
#/--!.$ !3 )4 7/5,$ %8)34 ). #/6%2%$ !.$ !3 #/0)%$
4/ 4(% TEMPOB !2%! ,4(/5'( 7%,, 2%&%2 "!#+ 4/ )' ,!4%2
&/2 ./7 ./4)#% 4(!4 ). !$$)4)/. 4/ 4(% /"*%#4 )43%,& !. !$$);
4)/.!, 0)%#% )3 !$$%$ 4/ 4(% )-!'% ). 4(% TEMPOB !2%! ()3
0)%#% )3 ! 02%#%$).' 4(% /"*%#4 )43%,& ()3 !,,/73
MMIO
TEMPOB Area
System RAM
Port 1 (128K)
Covered ROM Words to Copy
to the TEMPOB Area
System ROM
Unused
Covered ROM 32K
Larger Addresses
Higher Priority
Mailbox in
System RAM
Fig. 5. /09;4/;TEMPOB #/.&)'52!;
4)/. &/2 #/6%2%$ 7/2$3
5'534 %7,%44;!#+!2$ /52.!,
These features required increasing the usable address space
from 0.5M bytes to 4.75M bytes, an 850% increase over preĆ
vious machines.
Mark and Link
Property List Flags
ROMPTR Body
ROMPTR
Preceding
Object
While the HP 48G/GX has CPU functionally equivalent to
the thirdĆgeneration CPU discussed above and thus has six
memory controllers, these controllers are configured and
used differently. Fig. 7 shows the standard HP 48GX configĆ
uration. The controller previously allocated to port 2 is now
used as a bank switch control, and the extra controller is
now allocated to port 2. Furthermore, there are now as
many as 34 layers over the last 128K bytes of address space.
DOROMP
ROMPTR Body
ROM Word Body
ROM Word Body
Property List Item
Mark and Link
Property List Item
Property List Item
Property List Item
Property List Item
In ROM
In TEMPOB
Fig. 6. Comparing the structure of a ROM word as resident in ROM
and when copied to TEMPOB using covered technology.
the routine converting the ROMPTR to an address to check
whether the object in question is a copy of one residing
elsewhere. This method of covered ROM access, which we
call covered ROM word access," will be especially relevant
to our discussion of the HP 48G/GX.
Preexisting design elements of the RPL system contributed
greatly to the practicality and transparency of covered ROM
word access, including:
• Encapsulation of code and data into RPL objects that are of
determinable size
• Indifference of RPL object execution to object location in
RAM or ROM
• Equivalence of direct and indirect execution of RPL objects,
which allows (noncircular) structures to be stored and used
in the same format.
To simplify the system, we use only a single covered techĆ
nique, namely, covered ROM word access, with appropriate
modifications. Without this simplification, the number of
access method and configuration combinations would be
unmanageable. Moreover, this is the only feasible method of
covered access to code written for the HP 48S/SX or not
expressly written for the the new configuration.
Fig. 8 shows the configuration while copying an object from
a bank of port 2 to the TEMPOB area. Port 1 is unconfigured.
In the unconfigured state, the controller responds to only a
handful of bus commands and acts as if it weren't there for
data access.
Fig. 9 shows the configuration while copying an object from
the second half of the upper system ROM. In this case, both
ports are unconfigured.
Fig. 10 shows the configuration while copying an object from
the first half of the upper system ROM. Since a controller
move or resize operation takes many more CPU resources
than configure or unconfigure, it is often necessary to copy
objects from this section, through a mailbox, and then into
the TEMPOB area.
MMIO
System RAM (128K)
Port 1 (128K)
Bank Switch
Control
(2K)
Port 2
4M Bytes in
128K Banks
System ROM II (256K)
System ROM I (256K)
Higher Addresses
August 1994 HewlettĆPackard Journal
Higher Priority
•
•
•
•
The HP 48GX has a number of important features including:
Up to 128K bytes of builtĆin system RAM
One plugĆin port electrically equivalent to the HP 48SX ports
Access to 512K bytes of system ROM
Access to 4M bytes of RAM or ROM at a second port using
industryĆstandard parts.
Eliminated in this configuration is the HP 48S/SX covered
ROM. This means that all of the functionality included in the
HP 48S/SX can be accessed more quickly. Two things that are
visibly enhanced are plotting (since the math routines are not
covered) and screen update (since the font bitmaps are not
covered.) Since there are a great many more covered places
to access, however, there are many more temporary" conĆ
figurations to keep track of while working with the covered
data.
Fig. 7. HP 48GX standard
memory controller configuration.
MMIO
Port 1
Unconfigured
System RAM (128K)
(2K)
Port 2
4M Bytes in
128K Banks
Higher Priority
Port 1 (128K)
Bank Switch
Control
System ROM II (256K)
System ROM I (256K)
Fig. 8. )( #!.+-#)(
)+ )*2#(! ( )$- +)' (% ) *)+- -) TEMPOB
Higher Addresses
Ports 1 & 2
Unconfigured
MMIO
System RAM (128K)
(2K)
Port 2
4M Bytes in
128K Banks
System ROM I (256K)
Higher Priority
Port 1 (128K)
Bank Switch
Control
System ROM II (256K)
Fig. 9. )( #!.+-#)(
)+ )*2#(! ( )$- -) TEMPOB
+)' -" .**+ "& ) ,2,-'
Higher Addresses
#! ,")0, -" )( #!.+-#)( 0"( #- #, -+'#( -"()-"#(! #, *&.!! #( - && ( -"#, , -" )(&2 )/+
,, #, -) -" #+,- "& ) -" .**+ ,2,-' !#( ##, &#%&2 -) (,,+2 -) )*2 -"#, '-+#& -"+).!" '#&4
)1 -"+0#, && -" 0)+, ( 1.- #(4*&
#! ,")0, -" ,-(+ )( #!.+-#)( 0"#" #,
#(-#& -) #! 1*- )+ -" ,'&&+ ,#3 ) ,2,-'
"#& #- #, ()- ,-+#-&2 (,,+2 -) ., -"#, )( #!.+4
-#)( 0"#" '-", )( ) -" )( #!.+-#)(,
-"+ + /(-!, #+,- #- &&)0, '1#'& ) ,"+#(!
-0( -" -0) '"#(, ( - -" ) ( #(-#&
#( -"#, , )( #- !#(, -" /(-! ) ,-+ ,,
-) -" , .(-#)(&#-2 *+)/##(! ')+ +,*)(,#/
#'*&'(--#)(
" "+- ) -" #, ).+-"4!(+-#)( "#* "#, .,-)' #, .#&- +).( -" )+#!#(& *+),,)+ ( #-, /&)*'(- 0, %2 -) -" +-#)( )
MMIO
System RAM (128K)
(2K)
Port 2
4M Bytes in
128K Banks
System ROM I (256K)
System ROM II (256K)
Higher Addresses
Higher Priority
Port 1 (128K)
Bank Switch
Control
Fig. 10. )( #!.+-#)(
)+ )*2#(! ( )$- -) TEMPOB
-"+).!" '#&)1
.!.,- 0&--4%+ ).+(&
MMIO
Port 1
(Shrunken)
(2K)
Higher Priority
Bank Switch
Control
System RAM (128K)
Port 2
(Shrunken)
System ROM II (256K)
System ROM I (256K)
Fig. 11. HP 48GX allĆportsĆempty
configuration.
Higher Addresses
the HP 48G/GX. This chip has four advantages over the
thirdĆgeneration chip used in the HP 48S/SX. First, it is proĆ
duced using a different CMOS process, allowing better stabilĆ
ity with onboard voltage regulation circuitry. Second, these
improved voltage characteristics and several lowĆlevel optiĆ
mizations allow the new CPU to operate at twice the speed
of its predecessor. This speed increase gives it a 4ĆMHz bus
rate. Third, the new CPU is packaged in a 160Ćpin quad flatĆ
pack, improving the manufacturability of the HP 48G/GX.
Fourth, with all these improvements, the final cost is lower,
increasing the budget for other hardware improvements to
the calculator.
The faster processing speed of the HP 48G/GX CPU gave
the software team incentive to improve the user interface,
implementing graphical routines that would not have been
acceptable at the slower processing rate. This added funcĆ
tionality required an increase in data storage space, so we
boosted the size of ROM and RAM. We also decided to add
the facilities to bankĆswitch a data card plugged into card
port two.
The HP 48G/GX circuitry, with its additional components,
had to fit in the same physical space as in the HP 48SX. The
product plan and schedule did not allow changes to producĆ
tion tooling or plastic parts except for those that were absoĆ
lutely necessary. At times we felt like poets trying to write
crossword puzzles. The HP 48SX circuit board design was
optimized such that it did not leave us much free space.
These space constraints affected many of the HP 48G/GX
hardware design choices.
The RAM increased from 32K bytes in the HP 48SX to 128K
bytes in the HP 48GX, while the HP 48G retained the origiĆ
nal 32KĆbyte chip. This difference between the G and the
GX offers two advantages. First, it provides more differentiĆ
ation between the functions and cost of the G and the GX,
increasing the product family's market appeal. Second, the
difference in RAM size provides a way for the calculator to
know whether it is a G or a GX. If the calculator scans the
RAM and finds only 32K bytes, then there will never be a
plugĆin data card installed. With this information the covered
memory options become much simpler. The RAM memory
size becomes an internal product type identifier, and several
software routines are optimized for faster performance on
the HP 48G.
The HP 48G and GX share a common ROM code set. They
also share a common circuit board. While this simplifies docĆ
umentation, manufacturing, and stock control, it also compliĆ
cates some areas. The HP 48GX RAM chip is wider and
longer than the chip used in the HP 48G: the 32K RAM is in
a 28Ćpin smallĆoutline package (SOP), and the 128K device is
a 32Ćpin SOP. Both conform to the JEDEC pinout standard. A
128K device was chosen that has an extra chip select line at
pin 30. This chip select is tied high, allowing pins 1 through
MMIO
Port 1
(Shrunken)
(2K)
Higher Priority
Bank Switch
Control
System RAM (32K)
Port 2
(Shrunken)
System ROM I (256K)
System ROM II (256K)
Higher Addresses
August 1994 HewlettĆPackard Journal
Fig. 12. HP 48G standard
configuration.
28 of the smaller RAM to overlay pins 3 through 30 of the
larger device. The extra chip select of the HP 48GX RAM
matches the Vdd line of the HP 48G RAM chip, and all of the
other lines are pinoutĆcompatible.
The difference in physical package width also posed a
problem. The foil patterns on the circuit board had to be
modified to accept RAM chips with different lead spacings
across the package. The immediate response was simply to
stretch the ovalĆshaped patterns. However, this resulted in
the foil extending well under the body of the 128K chip, a
situation that could have led to solder bridging where the
solder paste contacted the part body. This is avoided by using
two different solder stencils on the manufacturing line. A
paste of solder is laid on the blank circuit board before parts
are loaded onto the board. A metal stencil defines the pattern
of the solder paste, just as a silk screen controls the pattern
of ink on a shirt. By using a different stencil pattern for the
G and GX circuit boards, we control the original location of
the solder paste and keep it out from under the 128KĆbyte
RAM body. Once all the components are loaded onto the
circuit board and the solder is heated to a molten state, a
danger might again exist for the solder to flow under the
part body. Fortunately, the nature of the mechanical contact
between the RAM lead and the circuit board foil tends to
cause the solder to pool or wick to the lead rather than
spreading across the elongated foil pad.
The packaging of the ROM chip was also changed between
the HP 48SX and the HP 48GX. The SX used a square 52Ćpin
quad flatpack for its 256K bytes of program data. The code
size of the HP 48GX is doubled to 512K bytes. Its package is
a 32Ćpin SOP like the 128KĆbyte RAM chip. Their common
package configuration allowed us to conserve space in the
placement of the two chips and in the routing of signal wires
between them.
Use of a standard SOP ROM chip also allowed us to use
oneĆtime programmable (OTP) ROMs in prototype calculaĆ
tors. An OTP uses the same semiconductor core as a UVĆ
erasable EPROM. To get the semiconductor chip into an
SOP, however, the manufacturer omits the familiar glass winĆ
dow in the chip, covering the device in opaque plastic. The
resulting ROM is no longer erasable.
Typically, a product schedule requires months between code
release and the start of production so that ROMs can be built
with the software code builtĆin. The use of OTPs on this
project cut the required time from months to days. For one
prototype run, the time between code availability and prodĆ
uct build was only a few hours.
The HP 48G/GX CPU multiplexes the highest address bit, A18,
with an additional chip enable line, CE3. The original idea
was to allow future expansion of the HP 48 family, either to
use a larger ROM chip or to include an additional memory
mapped device. By the time the HP 48G/GX design was
complete, we had decided to do both. We doubled ROM to
219 bytes, and we added bank switching to card port 2. Two
small HCMOS chips were added to the board to demultiplex
these signals. The two chips are a quad NAND chip and a hex
D flipĆflop, similar to the standard TTL devices. The multiĆ
plexing is accomplished by simply toggling a control bit inĆ
side the HP 48G/GX CPU. To demultiplex the A18 and CE3
signals, we developed a protocol for mirroring the state of
the internal bit to one of the external D flipĆflops. The NAND
gates handle signal demultiplexing, and the remaining five
flipĆflops form a register for the card port 2 bank address.
The card ports of the HP 48SX were designed for Epson
memory cards. Several unused lines were adapted to provide
external video signals to drive an enlarged display for classĆ
room use. On the HP 48GX, the video lines are retained
only on card port 1. On card port 2, the video lines are reĆ
placed by five additional address lines. The system software
allows the card in port 2 to be subdivided into 128KĆbyte
sections, with each section treated as a virtual plugĆin card.
Five bank select address lines permit up to 32 virtual plugĆ
ins in card port 2, yielding a maximum card size of 4M bytes
in the plugĆin port. With the ROM, RAM, and plugĆin opĆ
tions, an HP 48GX can access 4,980,736 bytes of onboard
data.
Since the inception of the HP 48 family of calculators, liquid
crystal display technology has progressed significantly. The
display in the HP 48G/GX provides improved visibility by
improvements in pixel contrast. The display is thinner than
before. This change in glass thickness reduces the parallax
between the pixel within the display and its shadow on the
rear face of the display. In the HP 48SX, the pixel contrast
was lower and the shadow was not dark enough to cause
problems, but in testing the new HP 48G/GX display under
various light conditions, we found that shadow effects made
the display hard to read. With the thinner glass now used,
the pixel and its shadow appear as one image, and the
shadow now enhances the appearance of the pixel.
Changes to plastic parts were not permitted, except where
necessary. The back case of the HP 48G/GX required
changes. The changes were all accomplished by making
mold inserts. Where text on the mold needed changes or
additions, the affected area of the mold was milled away. A
piece of steel was placed into the hole to make a perfect fit,
and the face of this new piece was etched or inscribed with
the new textures and features. The new back case helps
identify the differences between card ports 1 and 2, updates
the copyright information, adds a mark indicating that the
HP 48G/GX complies with Mexico's importation laws, and
adds an area for a customized nameplate. The customized
nameplate is a piece of metal with adhesive on one side.
The customer's name can be engraved on the plate and atĆ
tached to an inset area of the back case. This is the same
nameplate used on HP's palmtop computer family.
The result of these changes is a computer platform that is
more powerful than its predecessor, is wellĆsuited to the
enhanced user interface developed by the software team, is
more versatile for both the user and the design engineer,
and is less expensive to produce. It started as a processor
upgrade and became a major product improvement.
With ease of learning and ease of use the primary goals for
the new HP 48G/GX calculator, the user interface and many
builtĆin applications have been largely redesigned.
provide the common starting point for the
new and rewritten applications in the HP 48G/GX. Looking
much like dialog boxes in an Apple Macintosh or Microsoft
August 1994 HewlettĆPackard Journal
Title
Label
Field
Help
Line
Menu
Fig. 13. 6;2+%#. +0276 (14/
EDIT
!+0&195 +0276 (14/5 2418+&' # (+..<+0<6*'<$.#0-5 )7+&'
61 6*' +0276 0''&'& (14 # 6#5- 2.75 #22.+%#6+10<52'%+(+%
/'07 -';5 (14 #%6+0) 10 6*#6 +0276
14 5'.'%6+0) #0 #22.+%#6+10 +0 # 2#46+%7.#4 612+% #0& (14
2+%-+0) #0 +0276 (41/ #/10) 5'8'4#. %*1+%'5 9' &'8'.12'&
choose boxes # 6;2' 1( 212<72 /'07 6*#6 57))'565 #.6'40#<
6+8'5 #0& 0#44195 6*' +0276 (1%75
!' &'5+)0'& message boxes 61 /#-' (''&$#%- 61 6*' 75'4
/14' /#0#)'#$.' 9+6*+0 174 +0%4'#5+0).; %419&'& &+52.#;
52#%' '55#)' $1:'5 #22'#4 10 612 1( 9*#6'8'4 6*' 75'4 +5
914-+0) 10 #0& 2418+&' /14' (.':+$+.+6; (14 (14/#66'& /'5<
5#)'5 #0& +%105 6*#0 6*' 691<.+0' (+:'&<.1%#6+10 '4414 /'5<
5#)'5 6*'; 4'2.#%' *'; #.51 24'5'48' 6*' %106':6 6*#6 %#0
16*'49+5' $' .156 9*'0 51/'6*+0) 57424+5+0) *#22'05 9+6*+0
#0 #22.+%#6+10
0 +0276 (14/ 2418+&'5 $16* # /'#05 61 '06'4 &#6# 2'46+0'06
61 #0 #22.+%#6+10 #0& 12'4#6+105 6*#6 2'4/+6 6*' 75'4 61 &+4'%6
#%6+105
+57#..; #0 +0276 (14/ %105+565 1( 5'' +) • 6+6.' 57))'56+0) 6*' (14/5 274215'
• 0' 14 /14' (+'.&5 6;2+%#..; 9+6* ':2.#0#614; .#$'.5 9*+%*
#4' 75'& 61 )#6*'4 #0& &+52.#; 75'4 +0276
• *'.2 .+0' 6*#6 &'6#+.5 6*' +0276 ':2'%6'& +0 6*' 5'.'%6'&
(+'.&
• '07 -';5 6*#6 2418+&' /14' 126+105 (14 914-+0) 9+6*+0 14
':+6+0) 6*' +0276 (14/
#%* +0276 (14/ (+'.& %#0 $' 10' 1( (174 6;2'5 156 +0276
(14/5 57%* #5 6*' Set Alarm #0& I/O Transfer +0276 (14/5 %10<
6#+0 5'8'4#. 14 #.. 6;2'5 1( (+'.&5 Text fields #4' 75'& 61 '06'4
#4$+64#4; " 1$,'%65 .+-' 4'#. 07/$'45 #0& /#64+%'5
6*' 1$,'%6 6;2'5 #..19'& #4' 52'%+(+% 61 '#%* 6':6 (+'.& 0
+) # 6':6 (+'.& +5 75'& 61 '06'4 #0 #.#4/ /'55#)' +0 6*'
Set Alarm +0276 (14/
Fig. 14. 5+0) # 6':6 (+'.& +0 #0 +0276 (14/
6*' Transfer +0276 (14/ 6*' Name (+'.& +5 # %1/$+0'& (+'.&
6*#6 2'4/+65 0'9 0#/'5 61 $' '06'4'& 14 6*' 0#/'5 1( ':+56<
+0) " 8#4+#$.'5 14 (+.'5 61 $' 5'.'%6'& 5'' +)
5 6*' (+)74'5 +..7564#6' '#%* 1( 6*' 6*4'' $#5' (+'.& 6;2'5
*#5 #551%+#6'& 9+6* +6 # &'&+%#6'& /'07 -'; 6*#6 64+))'45 6*'
70+37' ('#674' 1( 6*#6 (+'.& 6;2' *+5 ('#674' +5 #0 +/2146#06
2#46 1( *19 9' /#+06#+0'& # %#.%7.#614 -';<2'4<(70%6+10<
56;.' +06'4(#%' 9+6*+0 6*' %10564#+065 1( # 5/#.. &+52.#; #0&
9+6* 01 21+06+0) &'8+%' 0 16*'4 )4#2*+%#. 75'4 +06'4(#%'5
8+57#. '.'/'065 57%* #5 .+56 #44195 #4' #%6+8#6'& $; /175'
%.+%-5 61 '.+%+6 &+(('4'06 $'*#8+145 (41/ (+'.&5 0 6*' CHOOS
!*'0 # 5+0).' %*1+%' #/10) 5'8'4#. +5 4'37+4'& list fields
#4' 75'& 61 '.+/+0#6' +08#.+& +0276 #0& 61 *'.2 (1%75 75'4
#%6+105 1 5'.'%6 #0 '064; +0 # .+56 (+'.& # %*115' $1: +5
&+52.#;'& 0 +) # .+56 (+'.& +5 75'& 61 52'%+(; 6*' 64#05<
('4 (14/#6 +0 6*' I/O Transfer +0276 (14/
1/'6+/'5 10.; # 5+/2.' ;'5<01 &1<14<&106 6;2' 1( %*1+%'
+5 0''&'& 14 6*+5 9' 75' check fields +) 5*195 *19
6*' 18'494+6' OVWR (+'.& +5 75'& 61 52'%+(; 9*'6*'4 14 016
#0 ':+56+0) 8#4+#$.' 5*17.& $' 18'494+66'0
+0#..; 9*'0 #4$+64#4; +0276 +5 2155+$.' $76 .1)+%#. %*1+%'5
#4' #.51 #8#+.#$.' combined text/list fields #4' '/2.1;'& 0
7)756 '9.'66<#%-#4& 1740#.
Fig. 15. 5+0) # .+56 (+'.& +0 #0 +0276 (14/
CHK
Fig. 18. A typical choose box.
a specific application from among several. Fig. 18 shows the
choose box that is displayed when the STAT key is pressed to
perform statistical calculations.
When circumstances require, choose boxes can include any
or all of several advanced features. The Memory Browser
application, for example, is actually a maximumĆsize choose
box embellished with a title, multichoice capability, and a
custom menu (see Fig. 19).
Fig. 16. Using a check field in an input form.
48G/GX, the user's finger acts as the pointing device, triggerĆ
ing the desired behavior by pressing the appropriate action
button for each field. Consistent location of the three types
of action buttons helps the user navigate an input form
confidently.
Some input form menu keys perform applicationĆspecific
operationsĊfor example, DRAW in Plotting. In the second row
of the input form menu are more advanced input form operaĆ
tions for resetting a field or the entire form, displaying the
object types allowed in a field, and temporarily accessing the
user stack to calculate or modify a field value.
Choose boxes are used to make a choice in an input form
list field. They are also used in most subject areas to choose
CHOOS
Fig. 17. Using a combined text/list field in an input form.
Message boxes are used primarily for reporting errors that
require attention before proceeding. For example, if the user
attempts to enter a vector in the EXPR field of the Integrate
input form, a message box appears to inform the user of the
problem (see Fig. 20).
Some applications also use message boxes to give additional
information. For example, in the Solve Equation input form, the
user can press INFO any time after a solution has been found
to review the solution and determine how it was calculated
(see Fig. 21).
For the HP 48S/SX, we developed an RPL tool called the
parameterized outer loop3 to speed development of new
interfaces such as the MatrixWriter by automating routine
key and error handling and display management. The input
forms in the new HP 48G/GX embrace this conceptĊin fact,
the input forms engine is a parameterized outer loop appliĆ
cationĊand take it one step farther to automate routine matĆ
ters of application input entry and selection of options. The
input forms engine brings a uniform interface to all new HP
48G/GX applications.
While narrowly focusing the task of application development
by managing command input tasks, the input forms engine
also leaves much room for the customization that helps optiĆ
mize the HP 48G/GX for ease of use. Since an important
measure of our progress towards our goals for the calculator
Fig. 19. The Memory Browser: a complex choose box.
August 1994 HewlettĆPackard Journal
Fig. 20. 38/(" + ,$22 &$ !.7
6 2 3. !$ %$$#! "* %1., 38/(" + 42$12 3'1.4&'.43 3'$ #$5$+:
./,$-3 "8"+$ 6$ #$2(&-$# 3'$ (-/43 %.1,2 $-&(-$ %1., 3'$
&1.4-# 4/ 3. !$ '(&'+8 "423.,(9 !+$ '(2 6 2 "".,:
/+(2'$# (- /1.&1 ,,$1:%1($-#+8 , --$1 !8 (-"+4#(-& .5$1
%(%38 '..*2 (-3. 3'$ (-/43 %.1,2 $-&(-$2 1$2/.-2$2 3. $73$1:
- + -# (-3$1- + events External events 1$ 31(&&$1$# !8 42:
$12 -# (-"+4#$ +.6:+$5$+ $5$-32 24"' 2 *$8 /1$22$2 -#
'(&':+$5$+ $5$-32 24"' 2 ".,/+$3(.- .% %($+# $-318 InterĆ
nal events 1$ 424 ++8 "3(5 3$# !8 $73$1- + $5$-32 24"' 2
%.1, 33(-& ".,/+$3$# %($+# $-318 %.1 /1./$1 #(2/+ 8 2(-&+$ $73$1- + $5$-3 " - 31(&&$1 ' +% #.9$- .1 ,.1$ (-3$1:
- + $5$-32 ++ .% 6'("' 1$ "423.,(9 !+$
-/43 %.1, //+(" 3(.-2 " - "423.,(9$ -8 .1 ++ %.1,:+$5$+
$5$-32 24"' 2 3(3+$ #(2/+ 8 .1 %($+# $5$-32 24"' 2 #(2/+ 8(-&
'$+/ +(-$ "' %($+# ' 2 field procedure 22."( 3$# 6(3'
(3 -# 3'$ $-3(1$ %.1, ' 2 form procedure 22."( 3$# 6(3'
(3 '$-$5$1 - $5$-3 .""412 3'$ //1./1( 3$ %($+# .1 %.1,
/1."$#41$ (2 " ++$# 6(3' - (#$-3(%8(-& $5$-3 -4,!$1 -#
/$1' /2 ##(3(.- + (-%.1, 3(.- % 3'$ /1."$#41$ #.$2 -.3
"423.,(9$ 3'$ $5$-3 (3 1$341-2 FALSE 3. 3'$ (-/43 %.1,2 $-:
&(-$ % (3 #.$2 "423.,(9$ 3'$ $5$-3 3'$ /1."$#41$ /$1%.1,2
3'$ "423., !$' 5(.1 -# 1$341-2 TRUE - 3'(2 , --$1 $5$18
$5$-3 %(123 04$1($2 3'$ /1./$1 %.1, .1 %($+# /1."$#41$ 3.
#$3$1,(-$ (% "423., !$' 5(.1 (2 -$$#$# 3'$- ' -#+$2 3'$
$5$-3 -.1, ++8 .-+8 (% (3 (2-3 "423.,(9$# % %.1, .1 %($+#
' 2 -. "423., !$' 5(.1 (3 2/$"(%($2 #$% 4+3 /1."$#41$ 3' 3
04("*+8 1$2/.-#2 FALSE 3. ++ $5$-3 04$1($2
'$ 1$ 2.- %.1 %.1, /1."$#41$ -# ,4+3(/+$ %($+# /1."$:
#41$2 (2 3. 2/1$ # 3'$ !41#$- .% "423.,(9 3(.- 3'1.4&'.43
3'$ %.1, (-"$ $ "' %($+# /1."$#41$ .-+8 "'$"*2 %.1 3'$
$5$-32 3' 3 /$13 (- 3. (3 -# 2(-"$ 3'$ %.1, /1."$#41$ .-+8
"'$"*2 %.1 %.1,:+$5$+ $5$-32 -. 2(-&+$ $5$-3 /1."$22(-& (2
2+.6$# !8 '(&'+8 "423.,(9$# %.1, 3' 3 6.4+# .3'$16(2$
' 5$ 3. ".,/ 1$ 3'$ $5$-3 -4,!$1 & (-23 +$-&3'8 +(23 .%
$5$-3 -# %($+# ".,!(- 3(.-2
.1 3'$ /1.)$"3 6$ -$$#$# -.3'$1 + 8$1 .%
1$&4+ 1(38 -.3 $-%.1"$# !8 3'$ (-/43 %.1,2 $-&(-$ $" 42$
6$ 2.4&'3 -# 1$ "3$# 3. 42 !(+(38 %$$#! "* +,.23 4-3(+ 3'$
Fig. 21. '$ Solve Equation INFO ,$22 &$ !.7
4&423 $6+$33: "* 1# .41- +
".#$ 6 2 1$+$ 2$# 3. /1.#4"3(.- 3'$ 42$1 (-3$1% "$ #$3 (+2
%.1 $ "' 24!)$"3 1$ 6$1$ 24!)$"3 3. ".-23 -3 "' -&$ 3 6 2
(,/$1 3(5$ 3'$1$%.1$ 3' 3 6$ , (-3 (- 231("3 -# %.1, +
#(5(2(.- !$36$$- 4-"' -&(-& -# 6$++:4-#$123..# 3 2*2;
24"' 2 &$33(-& -# 2 5(-& /1.!+$, #., (- (-%.1, 3(.- -#
" +"4+ 3(-& 1$24+32; -# 3'$ 42$1 (-3$1% "$ #$3 (+2 3' 3 6$1$
"' -&(-& 1$&4+ 1+8 $ #$5$+./$# 2$3 .% ".-5$-3(.-2 3' 3
6$1$ $,!.#($# (- 6' 3 6$ " ++$# translation files $ 42$#
- ,(-& 14+$2 -# ".-231 (-$# 1$2/.-2(!(+(3($2 3. &1$ 3+8 ,(3(:
& 3$ 3'$ $%%$"32 .% 42$1 (-3$1% "$ "' -&$2 .- 3'$ 4-#$1+8(-&
/1.!+$,:2.+5(-& %4-"3(.- +(38 .1 $7 ,/+$ .-$ 6.1# (3'$ /+.33(-& 31 -2+ 3(.- %(+$ ' 2 3'$ 2(,/+$ 3 2* .% 1$ #(-& 3'$
"411$-3 '.1(9.-3 + /+.3 1 -&$ %1., " +"4+ 3.1 ,$,.18 (-"$
3'$ 6.1# ' 2 -. /1$24,/3(.-2 !.43 '.6 -# 6'$- (3 6(++
!$ " ++$# 1$%$1$-"$2 3. (3 ".4+# !$ -# .%3$- 6$1$
"' -&$# 1.4-# 2 3'$ %($+#2 /./4+ 3(-& 3'$ /+.33(-& (-/43
%.1, 6$1$ 6.1*$# .43
'$ "'..2$ !.7 $-&(-$ (2 5$18 ,4"' +(*$ 3'$ (-/43 %.1,2
$-&(-$ .1 "423.,(9 3(.- 3'$ /1.&1 ,,$1 " - 24//+8
choose procedure 3' 3 1$2/.-#2 3. ,$22 &$2
%$ 341$ .% "'..2$ !.7$2 3' 3 2(,/+(%($2 3'$(1 42$ (2 3'$
./3(.-;'$ 5(+8 42$# !8 3'$ !4(+3:(- //+(" 3(.-2;.% (3$,2
3' 3 $-" /24+ 3$ !.3' #(2/+ 8 -# $5 +4 3(.- # 3 .1 $7 ,:
/+$ 6'$- - -&+$ ,$ 241$;#$&1$$2 1 #( -2 .1 &1 #2;(2
3. !$ "'.2$- (- "$13 (- (-/43 %.1,2 3'$ "'..2$ !.7 $-&(-$
#(2/+ 82 /+ (- #$2"1(/3(.-2 !43 1$341-2 - /1.&1 , 3' 3
2$32 3'$ 2$+$"3$# -&+$ ,$ 241$ '(2 "(1"4,5$-32 3'$ -$$#
%.1 !1 -"'(-& "".1#(-& 3. 3'$ 1$341-$# .!)$"3 -# 2(,/+(%($2
3'$ $73$-2(.- .% "'.("$2
-(3( + %$$#! "* %1., 3'$ $#4" 3(.- + #5(2.18 ".,,(33$$
-# 42$1 1$5($62 24&&$232 3' 3 3'$ 42$ .% (-/43 %.1,2 -#
.3'$1 &1 /'(" + 42$1 (-3$1% "$ $+$,$-32 ' 2 &1$ 3+8 (,/1.5$#
3'$ $ 2$ .% 42$ .% 3'$ .5$1 3'$ .6$5$1 3'$ / 3' 6$ 3..* 3. 3'(2 "".,/+(2',$-3 6 2
,.1$ "' ++$-&(-& 3' - 6$ /+ --$#
5$-3 "423.,(9 3(.- .1(&(- ++8 ".-"$(5$# 2 ,$ -2 3. $7:
3$-# 3'$ %4-"3(.- +(38 .% (-/43 %.1,2 (- 4-%.1$2$$- 6 82
341-$# .43 3. !$ *$8 ".,/.-$-3 .% .41 !(+(38 3. /1.3.38/$
-$6 42$1 (-3$1% "$ (#$ 2 1 /(#+8 2 3'$(1 - ,$ , 8 (,/+8
3'$ .1(&(- + (-3$-3 .% (-/43 %.1,2 6 2 5$18 ,.#$23 ".,/ 1$#
3. 3'$ 1.+$ 3'$8 -.6 /+ 8 $ #$2(&-$# (-/43 %.1,2 3. !$
3'$ 23 -# 1# ,$ -2 !8 6'("' //+(" 3(.-2 & 3'$1 # 3 %.1
3 2* -$ .1 ,.1$ (-/43 %.1,2 6.4+# !$ #(2/+ 8$# 2 -$"$2:
2 18 6(3'(- 3'$ ".-3$73 .% -.3'$1 4-#$%(-$# //+(" 3(.".-3$73 '(2 .1(&(- + ".-"$/3 (2 //+($# 24""$22%4++8
3'1.4&'.43 3'$ " +"4+ 3.1 .1 $7 ,/+$ (- 3'$ $,.18
1.62$1 6'$- NEW (2 /1$22$# 3. "1$ 3$ -$6 5 1( !+$ (-/43 %.1, (2 42$# 3. &$3 3'$ (-%.1, 3(.- 1$04(1$# 2$$ (&
- 3'(2 ".-3$73 3'$ 42$1 " - #. .-+8 3'1$$ 3'(-&2 (- 3'$
(-/43 %.1, $-3$1 # 3 " -"$+ 3'$ %.1, .1 ""$/3 OK 3'$
%.1, '(2 2(,/+$ !43 $%%$"3(5$ !$' 5(.1 6 2 3'$ ,.#$+ 42$#
%.1 3'$ .1(&(- + (-/43 %.1, #$2(&-
2 3'$ /1.)$"3 #$5$+./$# '.6$5$1 (3 !$" ,$ // 1$-3 3' 3
- (-/43 %.1, ".4+# 2$15$ -.3 .-+8 2 (-%.1, 3(.- & 3'$1$1
!43 +2. 2 - "3(.- #(1$"3.1 -/43 %.1,2 3'42 &1 #4 3$#
%1., 2(,/+$ #( +.& !.7$2 3. %4++:%+$#&$# //+(" 3(.$-5(1.-,$-32
-/) 8,) 38,)6 40388-2+ 6398-2)7 %00 8,) 40388-2+ 6398-2)7
%7791) 8,%8 8,) *92'8-32 3* -28)6)78 -7 7836)( -2 EQ 968,)6
8,)= %7791) &= ()*%908 8,%8 8,) *92'8-32 -7 6)46)7)28)( %7
%2 )<46)77-32 -2 8,) :%6-%&0)7 " %2( #A*36 )<%140) 9: 7-29: -7 6)46)7)28)( %7 "# -2 EQ ,) 97) 3* 38,)6
:%6-%&0) 2%1)7 -7 463:-()( *36 &= -2498 *361 348-327 36 &=
8,) INDEP %2( DEPEND /)=;36(7
Fig. 22. )136= 63;7)6 NEW -2498 *361
28)6)78-2+0= 23 1%.36 ',%2+)7 83 8,) -2498 *3617 )2+-2)
;)6) 2)')77%6= 36 ):)2 ()7-6%&0) 83 7944368 8,)-6 2); 630)
278)%( 8,) )77)2') 3* -2498 *361 *92'8-32%0-8= 6)1%-2)(
%0;%=7 (%8% 1%2%+)1)28 %2( 8,) ):)287 '97831->%8-32 ;%7
%440-)( 7)0)'8-:)0= ;,)6) 2))()( 83 )2,%2') %440-'%8-32
*3617
2 % 7-1-0%6 1%22)6 8,) ):)28@(6-:)2 ',337) &3< )2+-2) ;%7
):)289%00= 46)77)( -283 7)6:-') %7 % 43;)6*90 &%7) *36 0-78@
78=0) %440-'%8-327 0-/) 8,) )136= 63;7)6
!,-0) 8,-7 7)'8-32 -7 8-80)( ? 0388-2+ % &)88)6 2%1) ;390(
&) ?:-79%0->%8-32 8)',2-59)7 *36 *92'8-327 3* 8;3 :%6-%&0)7
,-7 ;390( '3:)6 8,) 4)674)'8-:) :-); 3* 8,) +6%4, 3* %
7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7 WIREFRAME 8,) 70-'-2+ :-);
3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7 YSLICE 8,) '328396@
1%4 :-); 3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7 PCONTOUR
8,) 7034) -28)646)8%8-32 3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7
SLOPEFIELD 8,) 1%44-2+ +6-( :-79%0->%8-32 3* % 8;3@:)'836@
:%09)( *92'8-32 3* 8;3 :%6-%&0)7 GRIDMAP %2( 8,) -1%+)
+6%4, 3* % 8,6))@:)'836@:%09)( *92'8-32 3* 8;3 :%6-%&0)7
PARSURFACE
-:)2 8,-7 92-8= 3* 496437) 8,)6) -7 '327-()6%&0) 3:)60%4 -2
8,) +03&%0 4%6%1)8)67 348-327 97)( -2 8,)7) 6398-2)7 ,)7)
40388-2+ 4%6%1)8)67 %6) 7836)( -2 8,) :%6-%&0) VPAR %2%03+397
83 PPAR ,) 1%-2 (%8% 7869'896) 7836)( -2 VPAR ()7'6-&)7 8,)
view volume % 6)+-32 -2 %&786%'8 8,6))@(-1)27-32%0 74%') -2
;,-', 1378 3* 8,) :-79%0->%8-327 3''96 7)) -+ ,) '31&-2%8-32 3* 0)%2 *3'97)( 78%2(%6( *)%896) 7)87 *36
-2498 *3617 %2( ',337) &3<)7 %2( ,-+, '97831->%&-0-8=
463:)( -2:%09%&0) (96-2+ 8,) '%0'90%836 ()7-+2 6)*-2)1)28
,639+,398 8,) 1-((0) 4368-32 3* 8,) 463.)'8 ;,)2 8,)
VPAR 59%28-8-)7 '3286300-2+ 8,) :-); :3091) %6)
&%7-'7 ,%( &))2 7)880)( &98 1%2= 97)6 -28)6*%') ()8%-07 ;)6)
• "0)*8 %2( "6-+,8 '3286300-2+ 8,) ;-(8, 3* 8,) :-); :3091)
78-00 92'0)%6 ;) ;)6) %&0) 83 463838=4) 2); -()%7 59-'/0=
• #*%6 %2( #2)%6 '3286300-2+ 8,) ()48, 3* 8,) :-); :3091)
%2( 6)%0-78-'%00= &= '97831->-2+ ):)28 6)74327)7
• $03; %2( $,-+, '3286300-2+ 8,) ,)-+,8 3* 8,) :-); :3091)
6%270%8-32 *-0)7 ;)6) %238,)6 ():)0341)28 )**368 8,%8 ,)04)( • " # %2( $ 8,) '336(-2%8)7 3* 8,) eye point
) )
)
97 /))4 8,) ()7-+2 %2( -140)1)28%8-32 13:-2+ *36;%6(
2 %((-8-32 83 8,)7) VPAR '328%-27 38,)6 59%28-8-)7 97)( &=
3;):)6 ;) 0)%62)( 3:)6 8-1) 8,%8 8,)-6 3:)6,)%( '%97)(
731) 3* 8,) 6398-2)7 ,)7) %6)
731) (940-'%8-32 3* '3() %2( -2)**-'-)2'= 83 '6))4 -283 8,)
• ""0)*8 %2( ""6-+,8 %2 %08)62%8-:) " -2498 6%2+) 97)( *36
-28)6*%') &)8;))2 8,) -2498 *3617 %2( 8,) '%0'90%836 1%-2@
GRIDMAP %2( PARSURFACE
*6%1) !) %((6)77)( 8,-7 -779) ;,)6) 4377-&0) &= 1%/-2+
• ##*%6 %2( ##2)%6 %2 %08)62%8-:) # -2498 6%2+) 97)( *36
7-140) %2( 7%*) '3() 79&78-898-327 ;,-0) 0)%:-2+ 8,) -28)6@
GRIDMAP %2( PARSURFACE 238) 8,%8 8,-7 (-**)67 *631 8,) '96@
*%') '32')487 -28%'8 83 )2%&0) ,-+,@'32*-()2') '3() ()*)'8
6)28 9-8) -28)646)8%8-32
*-<)7 0%8) -2 8,) 463.)'8 2 )**)'8 ;) 1%() % ',3-') &)8;))2
• < %2( = 8,) 291&)6 3* " %2( # -2'6)1)287 ()7-6)( 97)(
1%-28%-2%&-0-8= %2( ,-+, 4)6*361%2') 8,%8 78-00 6)1%-27 %
-2 %00 3* 8,) 6398-2)7 -278)%( 3* 36 -2 '31&-2%8-32 ;-8, RES
'32863:)67-%0 834-' %132+ 8,) " ():)034)67
,) *92'8-32%0-8= ()7'6-&)( -2 8,-7 7)'8-32 -7 % 79-8) 3* +6%4,-2+ %2( :-);-2+ 98-0-8-)7 *36 8,) " !) ,%(
7):)6%0 6)59-6)1)287 83 '327-()6 -2 '6)%8-2+ 8,)7) 6398-2)7
96 %-17 ;)6) 8,%8 8,)= &) 47=',303+-'%00= )**)'8-:) %2(
6)59-6) 320= % 71%00 %13928 3* '3()
2 )<4036-2+ :-79%0->%8-32 8)',2-59)7 32 % :%6-)8= 3* 1%@
',-2)7 ;) *392( 8,%8 -2'6)%7-2+ ?6)%0-71 6%=@86%')(
,32+@7,%()( ,-(()2@0-2) )8' -2 8,) +6%4,-'%0 46)7)28%@
8-32 3* *92'8-327 3* 8;3 :%6-%&0)7 (-( 238 2)')77%6-0= '366)@
0%8) ;-8, -2'6)%7-2+ )%7) 3* '3146),)27-32 ,) "
6398-2)7 6)46)7)28 8,) 6)79087 3* 731) 3* 8,)7) )<4)6-1)287
-2'09(-2+ 8-1)@83@'3140)8-32 %7 %2 -14368%28 *%'836
00 3* 8,) 40388-2+ 6398-2)7 %6) -28)2()( %7 7)%10)77 )<@
8)27-327 3* 8,) 38,)6 &9-08@-2 40388-2+ 98-0-8-)7 2 4%68-'90%6
8,)= 7,%6) 8,) 7%1) 78%2(%6( 97)6 -28)6*%') %2( %6) 7)0)'8)(
%7 %08)62%8-:) 4038 8=4)7 ,) 40388-2+ 6398-2)7 %6) SLOPEFIELD WIREFRAME YSLICE PCONTOUR GRIDMAP %2( PARSURFACE
SLOPEFIELD
,) SLOPEFIELD 4038 8=4) (6%;7 % 0%88-') 3* 0-2) 7)+1)287
;,37) 7034)7 6)46)7)28 8,) *92'8-32 :%09) %8 8,)-6 ')28)6
43-28 7-2+ SLOPEFIELD 83 4038 *<= %003;7 =396 )=) 83 4-'/
398 -28)+6%0 '96:)7 3* 8,) (-**)6)28-%0 )59%8-32 (=(< *<=
8 -7 59-8) 97)*90 -2 92()678%2(-2+ 8,) %6&-86%6= '3278%28 -2
%28-()6-:%8-:)7
,) 291&)6 3* 0%88-') 43-287 4)6 63; -7 ()8)61-2)( &= <
%2( 8,) 291&)6 3* 0%88-') 43-287 4)6 '30912 -7 ()8)61-2)(
View Volume
Z
Zhigh
Y
Top View
Y
Yfar
Yfar
Ynear
Ynear Zlow
Xleft
Xright
(Xe, Ye, Ze)
View Screen
X
Xleft
Xright
View Screen
X
1 Unit
(Xe, Ye, Ze)
Fig. 23. VPAR 4%6%1)8)67 -2 6)0%8-32 83 8,) :-); :3091)
9+978 );0)88@%'/%6( 3962%0
Z
(2,3.6
)
Top View
Y
Y
Plotted
Point
X
X
(0,2.8
)
Superimposed
Integral Curve
(Xe, Ye, Ze)
View Screen
View Screen
Fig. 24. SLOPEFIELD plot of dx/dt = sin(xt).
by Ny. The input region sampled is given by XlefttXtXright
and YneartYtYfar.
•
•
•
•
•
•
1 Unit
(Xe, Ye, Ze)
Fig. 25. Perspective projection of a point in the view volume onto
the view screen.
The input form in this case allows the user to:
• Choose or enter the defining expression for the function to
be plotted
• Choose the names of the two variables (identical to INDEP
and DEPEND)
• Choose Xleft and Xright (default to their current value, or
XRNG if no current value)
• Choose Ynear and Yfar (default to their current value, or
YRNG if no current value)
• Choose Zlow and Zhigh (default to their current value, or
default YRNG if no current value)
• Choose Xe, Ye, and Ze (default to their current value, or 0,
-1, 0 if no current value)
In trace mode for SLOPEFIELD, the arrow keys jump the cursor • Choose Nx and Ny (default to their current value or 13 and 8
if no current value)
from sample point to sample point indicating both the coorĆ
•
dinates of the sample point and the value of the slope at that Verify and/or choose RADIANS, DEGREES, or GRADS mode.
point.
In trace mode for WIREFRAME, the arrow keys jump the cursor
The input form in this case allows the user to:
Choose or enter the defining expression for the function to
be plotted
Choose the names of the two variables (identical to INDEP
and DEPEND)
Choose Xleft and Xright (default to their current value, or
XRNG if no current value)
Choose Ynear and Yfar (default to their current value, or
YRNG if no current value)
Choose Nx and Ny (default to their current value or 13 and 8
if no current value)
Verify and/or choose RADIANS, DEGREES, or GRADS mode.
Example Problem: Determine graphically whether all solutions
of the differential equation dx/dt = sin(xt) with initial condiĆ
tions 3.0tx(0)t3.1 satisfy 2.8tx(t)t3.6 for all t in [0,2].
Solution: Choose SLOPEFIELD plot type and enter SIN(X*T) as
the current equation. Choose T as the independent variable
and X as the dependent variable. Choose 0 as Xleft, 2 as
Xright, 2.8 as Ynear, and 3.6 as Yfar. Verify RADIANS mode, and
draw the result. As seen in Fig. 24, almost all of the integral
curves in this region leave the window either through the
top or the bottom. Therefore, not all the integral curves
satisfy 2.8tx(t)t3.6 for t in [0,2].
WIREFRAME
The WIREFRAME plot type draws an obliqueĆview, perspecĆ
tive, 3D plot of a wireframe model of the surface deterĆ
mined by z = f(x,y). The function determined by the current
equation is sampled in a grid with Nx samples in each row
and Ny samples in each column. Each sample is perspectiveĆ
projected onto the view screen along the line connecting the
sample and the eye point (see Fig. 25).
Neighboring samples are connected by straight lines. The
sampled region is determined by the base of the view volĆ
ume (Xleft, Xright, Ynear, Yfar). The region of the view screen
represented in the PICT GROB (graphics object3) and hence
on the display is determined by the projection of the view
volume on the view screen (see Fig. 26).
from sample point to sample point and the display indicates
all three coordinates of the sample point.
Example Problem: Determine graphically whether the surface
defined by z = x4 - 4x2y2 + y4 is, at the origin, concave up,
concave down, or neither.
Solution: Choose WIREFRAME plot type and enter X^4–4*X^2*Y^
2+Y^4 as the current equation. Choose X and Y as the indeĆ
pendent and dependent variables. Choose -1 for Xleft, 1 for
Xright, -1 for Ynear, 1 for Yfar, -1 for Zlow, and 1 for Zhigh so
that the view volume surrounds the origin. Choose 4 for Xe,
-10 for Ye, and 3 for Ze to give a distant, oblique view of the
graph. As seen in Fig. 27, the graph displays a monkey
saddle" which is neither convex nor concave at the origin.
The picture environment, which is invoked automatically
when graphs are drawn or by pressing the PICTURE key, alĆ
lows the user to interact with a graph. The user can move
View Volume
View Screen
XRNG
YRNG
(Xe, Ye, Ze)
Fig. 26. Relationship of view volume and eye point to XRNG and
August 1994 HewlettĆPackard Journal
The ANIMATE command is a program that was easy to write
and that the user could have written in userĆRPL programĆ
ming language, but we added it for the sake of convenience.
Also, it is used as part of YĆslice 3D plotting. It sets up a
loop that repeatedly puts graphics objects into the PICT disĆ
play area.
Fig. 27. WIREFRAME plot of the surface determined by z = x4 - 4x2y2
+ y4 with view volume [-1,1]×[-1,1]×[-1,1] and eye point (4,-10,3).
the cross hairs around using the arrow keys, trace along the
graph, add picture elements such as dots, lines, and circles,
or do interactive calculus operations such as finding the deĆ
rivative at the cross hairs location.
The HP 48S/SX crossĆhairĆmoving code was rewritten for the
HP 48G/GX. The cross hairs needed to be faster, to fade less
as they moved, and to accommodate added functionality
such as tracing and shading. The cross hair code originally
came from the HP 28 and has been maintained and modified
over the years. In the HP 28, most of the cross hair code was
written in highĆspeed assembly language and actually conĆ
tained a routine called SLOW which was buried deep within
RPL subroutine calls. SLOW was needed to slow the cross
hairs down to an acceptable speed. The use of this word
was discovered during the process of porting the code from
the HP 28 to run on the bigger HP 48S/SX display. There
were many occasions during the HP 48G/GX project when
we were trying to speed up various operations and wished
we could just find the word SLOW and take it out!
The fading of the cross hairs as they moved was improved
by changing the code so that the time between turning the
cross hairs off at one pixel and turning them on at the next
pixel is minimized. To do this, all the calculations required
for moving are now done before turning the cross hairs off.
Unfortunately, the new display on the HP 48G/GX trades off
response time for contrast, so although it is brighter and has
higher contrast than the HP 48S/SX display, it takes longer
for pixels to turn dark. Thus, much of the work to reduce
fade in moving cross hairs was canceled out by the new
screen characteristics. The user can darken the display by
holding down the ON key and pressing the + key a few
times, and this will make the moving cross hairs easier to
see.
Tracing along a graph with the cross hairs presents a chalĆ
lenge because the user's function must be evaluated at every
point, so in effect the system RPL programmer must turn
control over to the user at each point of the graph. This reĆ
quired careful attention to error handling and to managing
the data stack, which is a shared resource. The procedures
for tracing vary with the different plot types. The procedures
are kept in the property list associated with each plot type,
and then the appropriate procedure is passed in and evaluĆ
ated when trace mode is turned on. It required quite a bit of
rewriting to implement this objectĆoriented, extensible apĆ
proach because much of the existing cross hair code had
previously undergone rewriting and optimizing for speed
and code size.
A quick way to get started with animation is to press PICTURE
to go to the interactive graphics environment, where you
will be able to create some pictures to animate. Press EDIT,
then DOT+ to turn on the etchĆaĆsketchĆstyle drawing mode
in which pixels are turned on wherever you move the cross
hairs. Using the up, down, left, and right arrow keys, sketch
something, then press STO to send a copy of your picture to
the stack. Continue sketching, press STO again, and repeat
this procedure, continuing to add to your sketch until you
have a handful of pictures on the stack, say six of them.
Press CANCEL to leave the PICTURE environment, and you will
see the the picture objects sitting on the stack. They are
called GROBs, which is short for graphics objects.3 To use
the ANIMATE command, all you have to do is enter the numĆ
ber of GROBs (for example, press 6 then ENTER if you
created six pictures), then press the ANIMATE key, which you
will find in the GROB submenu of the PRG menu. Your series
of sketches will come to life as the ANIMATE command flips
through them.
Several new mathematical features were added to meet the
needs of the educational market and to match or exceed
corresponding features recently introduced by our competiĆ
tion. Design tradeĆoffs made for and inherited from earlier,
less capable platforms were reconsidered, and relevant softĆ
ware developed for earlier machines but not used in the HP
48S/SX was used wherever appropriate.
The HP 48G/GX is targeted at the collegeĆlevel mathematics,
science, and engineering educational market. We hoped,
also, to achieve more success in high school advanced
placement courses. In these environments calculators are
used as pedagogical tools, illustrating mathematical and
modeling concepts introduced in the courses.
As a pedagogical tool, the calculator's accuracy and reliability
are paramount design goals. Speed of execution is important
but secondary to the validity of the computed results. To
achieve high accuracy and reliability the computational
methods needed to be more numerically sophisticated than
typical textbook methods. This greater complexity is hidden
from the casual user wherever possible, but made available
to the sophisticated user so the methods can be tuned to
their needs.
One means of achieving maximum accuracy and reliability is
to read the current literature and consult with expert specialĆ
ists to obtain the best methods, then implement those methĆ
ods from scratch. We have employed this approach in the
August 1994 HewlettĆPackard Journal
Although the primary focus of the new user interface for the HP 48G/GX was to
enhance our built-in applications, it became apparent as the project progressed
that calculator owners who program would want access to the same capabilities to
enhance their efforts. For the choose box, message box, and especially the input
form tools, the biggest challenge involved scaling back the numerous features to
produce simple user commands that still offer customization potential.
The message box command, MSGBOX, was designed to display pop-up messages with a minimum of fuss. Thus, it takes just one argument—the message
string—and produces a word-wrapped normal-sized message box.
Field Specifications
Reset and Current
Values
5: “Personal Information”
4: { ”Name:” { } { }
”Bldg: ” ”Phone: ” { }
”Notes:” { }
{} }
3: { 3 5 }
2: { }
1: { }
Title
Field Expander
Column Count (3)
and Tab Width (5)
INFORM
The choose box command, CHOOSE, is slightly more complicated. To enable but
not require the same object-oriented use of choose boxes as the built-in applications, the CHOOSE command accepts a list of items in two formats. In the simplest
format, an item is specified by a single object, which is displayed and returned if
chosen. In the alternate format, an item is specified by a two-element list object.
The first element is displayed in the choose box, and the second element is returned
if the item is chosen.
For simplicity of the user interface, CHOOSE displays a normal-sized choose box
without the multiple-choice capability used by some built-in applications.
The MSGBOX and CHOOSE commands largely follow the same interface specification methods as their system-level counterparts. This differs markedly from the input
form user command, INFORM. To maintain complete flexibility over all elements of
form layout and behavior, the input forms engine takes three arguments for each
label and thirteen arguments for each field, specifying such details as exact location
and size, display format, and so on. Added to that are global arguments for the
form procedure and form title and some other details. All together, an input form
with four labeled fields requires 68 arguments. While this amount of information is
justified for the varied needs of built-in applications, it is an unnecessary burden
for programmers just wanting to get some simple input from the user.
For the INFORM command, therefore, we developed an automatic form layout
scheme that serves most needs, with options for further detailing. Basically, the
INFORM input form is viewed as a grid that is filled with fields starting in the upperleft corner and proceeding from left to right and top to bottom. The number of
.12 5'2& 13!!#11 32 '2 !, # 2'+#8!-,13+',% #6.#,1'4#
," 0'1)7
,-2&#0 ..0-!& 1-+#2'+#1 4'* *# '1 2- !-,13*2 12,"0"
!-+.322'-,* *' 00'#1 31#" 7 2&# .0-$#11'-,* 1!'#,2'$'!
!-++3,'27 #4#0* 13!& .3 *'!8"-+', *' 00'#1 0# 4'* *#
2&2 0#.0#1#,2 2&# !300#,2 122# -$ 2&# 02 , 1-+# "#4#*-.8
+#,2 #,4'0-,+#,21 2&#1# *' 00'#1 !, # 31#" "'0#!2*7 ,
-2&#01 2&#7 !, 2 *#12 .0-4'"# &'%&8/3*'27 +#2&-"1 ,"
'+.*#+#,22'-,1 2&2 5&#, (3"'!'-31*7 31#" $!'*'22# +##28
',% 2'%&2 "#4#*-.+#,2 1!&#"3*#1 2 *-5 !-12 # $-3," 2&#
*' 007 -$ ,3+#0'!* *',#0 *%# 0
13 0-32',#1 .02'!3*0*7 &#*.$3* ', 2&'1 0#%0"
1 313* !-"# 51 0#31#" 5&#,#4#0 .-11' *# 2- !&'#4#
2'+#*7 ," 0#*' *# '+.*#+#,22'-,1 , ""'2'-, 2- 2&#
1-30!# !-"# $-0 2&# ," '21 /32'-, ' 007 !0"
5# &" '+.*#+#,22'-,1 "2',% $0-+ 2&# 2& !
2&2 5#0# 0#4'1#" $-0 2&# 32 "'",2 $'," 1.!# ', 2&2 .0-"3!2
&'*# 0#31',% !-"# 5# 2--) "4,2%# -$ 2&# !*-!) 1.##"3. ," *0%#0 #,4'0-,+#,2 -4#0 2&#
2- 0#!-,1'"#0 1-+# -$ -30 .0#4'-31 '+.*#+#,28
2'-, 20"#8-$$1 ', , #$$-02 2- !&'#4# %0#2#0 !!30!7 ,
3%312 #5*#228!)0" -30,*
Fig. 1. A custom input form created by INFORM.
columns in the grid is specified as one of INFORM’s arguments, and each field’s
width is determined by the width of its label and by the user-supplied tab width,
which places invisible tab stops within each column to help align fields vertically. A
field can span multiple columns with a special field-expander specification. Help
text and object type restrictions can be included for any field, but aren’t required.
Fig. 1 shows an example of a custom input form created by INFORM. Notice that,
despite the relative simplicity of the input arguments, an input form with aligned
fields of varying widths is presented. This technique for building input forms proved
so valuable that it was used to create the Solve Equation input form, which changes
according to the number and names of variables in the equation to be solved.
1-+# !1#1 5# "#!'"#" 2- #+.*-7 +-0# !-+.322'-,* #$$-02
," 2- 12-0# ',2#0+#"'2# 4*3#1 ', &'%&#0 .0#!'1'-, 2!&'#4# +-0# !!302# 0#13*21
&# ',!*3"#1 +,7 ,#5 +2&#+2'!* $#230#1
-4#0 2&-1# .0-4'"#" 7 2&# &#1# 0# 007
+,'.3*2'-,1 ""'2'-,* *',#0 *%# 0 -.#02'-,1 .-*78
,-+'* 0--2 $',"#0 ," 0#*2#" -.#02'-,1 25- "'$$#0#,2'*
#/32'-,1 1-*4#01 ," 11-!'2#" 1-*32'-, .*-22#01 "'1!0#2#
-30'#0 20,1$-0+1 ," $',,!'* *-, !-+.322'-,1
&# 007 +,'.3*2'-, !-++,"1 0# .0'+0'*7 .#"%-%'!*
2--*1 &#1# ',!*3"# 0,"-+ 007 %#,#02-0 ," !-+8
+,"1 2- "" -0 "#*#2# 0-51 -0 !-*3+,1 -$ +20'!#1 -0 #*#8
+#,21 -$ 4#!2-01 "#!-+.-1# +20'!#1 ',2- -0 !0#2# +20'!#1
$0-+ 0-5 -0 !-*3+, 4#!2-01 #620!2 "'%-,* #*#+#,21 $0-+
+20'6 -0 !0#2# +20'6 $0-+ '21 "'%-,* #*#+#,21 .#08
$-0+ #*#+#,207 0-5 ," !-*3+, -.#02'-,1 ," !-+.32#
2&# 0-580#"3!#" #!&#*-, $-0+ -$ +20'6
# 1'%,'$'!,2*7 '+.0-4#" ," #6.,"#" 2&# *',#0 *%# 0
$3,!2'-,*'27 -$ 2&# -4#0 2&# &#
"#2#0+',,2 *',#0 1712#+ 1-*4#0 ," +20'6 ',4#02#0 5#0#
revised to be more accurate through additional computation
and by storing all intermediate values in extended precision.
We added a command to compute a condition number of a
square matrix, which can be used to measure the sensitivity
of numerical linear algebra computations to rounding errors,
a command to compute a solution to an underdetermined or
overdetermined linear system by the method of least squares,
commands to compute eigenvalues and eigenvectors of a
square matrix, commands to compute the singular value
decomposition of a general matrix, and commands to comĆ
pute related matrix factorizations and functions. These linear
algebra commands accept both real and complex arguments
and perform all intermediate computation and storage in
extended precision.
The HP 48G/GX has commands to compute all roots of a real
or complex polynomial, to construct a monic polynomial
from its roots, and to evaluate a polynomial at a point. The
polynomial root finder is a modification of the HP 71 Math
Pac's PROOT command, extended to handle complex coeffiĆ
cients. It uses the Laguerre method with deflation for fast
convergence and constrained step size and an alternate initial
search strategy for reliability.
The HP 48G/GX has commands to compute the discrete
Fourier transform or the inverse discrete Fourier transform of
real or complex data. These commands were leveraged from
the HP 71 Math Pac's FFT and IFFT commands, requiring the
data lengths to be a nonzero power of 2, and were modified
slightly to match the customary definitions of these transĆ
formations.
Finally, we included timeĆvalueĆofĆmoney commands. These
commands have appeared in our financial calculators and
were available on the HP 48SX Equation Library card. Since
engineering feasibility studies must include at least rudimenĆ
tary timeĆvalueĆofĆmoney computations it seemed useful to
include these commands in the HP 48G/GX.
The HP 48G/GX contains two differential equation solvers
and solution plotters. These solvers and solution plotters can
be accessed via their input forms or invoked programmatiĆ
cally via commands. We provide a programmatic interface to
the differential equation solvers and their subtasks so the
user can use them with the calculator's general solver feature
to determine when a computed differential equation solution
satisfies some condition, or to implement custom differential
equation solvers from their subtasks.
In implementing the differential equation solution plots, one
challenge was to identify and implement good solution methĆ
ods. Another challenge was to merge this new plot type with
the new 3D plot types described earlier and with the existing
HP 48SX plot environment in a backwardĆcompatible manner.
The HP 48G/GX specifically solves the initial value problem,
consisting of finding the solution y(t) to the firstĆorder equaĆ
tion yȀ(t) = f(t,y) with the initial condition y(t0) = y0. Here
yȀ(t) denotes the first derivative of a scalarĆvalued or vectorĆ
valued solution y with respect to a scalarĆvalued parameter t.
HigherĆorder differential equations can be expressed as a
firstĆorder system, so this problem is more general than it
might at first appear.
Many solution methods have been developed over the years
to solve the initial value problem. We decided to implement
two methods, a RungeĆKuttaĆFehlberg method for simplicity
and speed of execution and a Rosenbrock method for reliĆ
ability. The first method is easier to use, requiring less inforĆ
mation from the user, but can fail on stiff problems.* The
Rosenbrock method requires more information from the user,
but can solve a wider selection of initial value problems.
Both initial value problem solution methods require the user
to provide the function f(t,y), the initial conditions, the final
value of t, and an absolute error tolerance. The Rosenbrock
method also requires the derivative of f(t,y) with respect to y
(FYY) and the derivative of f(t,y) with respect to t (FYT).
All plot types use the contents of the variable EQ, typically to
specify the function to be plotted. If the user selects the stiff
(Rosenbrock) method the extra functions are passed to the
solver by binding EQ to a list of functions f(t,y), FYY, and FYT.
Otherwise, EQ is bound to the function f(t,y) needed by the
RungeĆKuttaĆFehlberg method.
Both methods solve the initial value problem by computing
a series of solution steps from the initial conditions towards
the final value, by default taking steps as large as possible
subject to maintaining the specified error tolerance. The
solution plotter plots the computed values and by default
draws straight lines between the plotted points. However,
although the computed steps may be accurate, the line segĆ
ments drawn between the step endpoints may poorly repreĆ
sent the solution between those points. The plot parameter
RES is used by many plot types to control the plot resolution.
If RES is zero the initial value problem solution plotter imĆ
poses no additional limits on the step sizes. If RES is nonzero
the plotter limits each step to have maximum size RES.
For the scalarĆvalued initial value problem it is typical to plot
the computed solution y(t) on the vertical axis and the paĆ
rameter t on the horizontal axis. However, in the vectorĆvalĆ
ued case the choice of what is to be plotted is not as clear.
The user may wish a particular component of the computed
solution plotted versus t or may wish two components
plotted versus each other. The HP 48G/GX allows the user
to specify the computed scalar solution, any component of
the computed vector solution, or the parameter t to be
plotted on either axis. This flexibility was introduced into the
plot environment by expanding the AXES plot parameter.
Previously, this parameter specified the coordinates of the
axes origin. This parameter was expanded so that an opĆ
tional form is a list specifying the origin and the horizontal
and vertical plot components.
By judiciously expanding the meaning of the various plot
parameters we were able to accommodate the differential
equation solution plot type while maintaining backward
compatibility with previous plot types.
* Stiff problems typically have solution components with large differences in time scale. More
information is needed by a solver to compute a solution efficiently.
August 1994 HewlettĆPackard Journal
' 816.& .+-' 51 #%-018.'&)' 5*' 3'45 1( 5*' 41(58#3' &'<
7'.12/'05 5'#/ +/ 100'..: #$' +4'045'+0 #9 10'4
#0& 1$ 134.': +.. +%-'4 #.41 %1053+$65'& 41(58#3'
.#+0 0&'3410 #0& 10 311-4 (31/ 5*' /#3-'5+0) &'2#35<
/'05 8'3' +071.7'& +0 5*' &#:<51<&#: &'4+)0 231%'44 #0&
-'25 64 +0(13/'& #$165 64'3 0''&4 '00+4 "13- 17'34#8
$15* 5*' #0& /#3-'5+0) #42'%54 1( 5*' 231,'%5 8*+%*
*'.2'& )'0'3#5' 4:0'3): $'58''0 #0& /#3-'5+0) '
816.& .+-' 51 5*#0- #0 1((+0 163 /#06#. 83+5'3 #0& 1*0
169 (31/ 5*' 5'%*0+%#. 4622135 )3162 (13 )1+0) 165 1( 5*'+3
8#: 51 2#35+%+2#5' +0 5*' &'4+)0 813- #0& (13 2317+&+0)
/#0: 7#.6#$.' +&'#4
6)645 '8.'55<#%-#3& 1630#.
+%-'4 ;0 71.65+10#3: #.%6.#513 (13 '%*0+%#. 31<
('44+10#.4 HewlettĆPackard Journal, 1. 01 6)645 22 <
+%-'4 #0& #5510 ;*' ! %+'05+(+% 92#0&#$.'
#.%6.#513 0017#5+10 #0& 71.65+10 HewlettĆPackard Journal, 1.
01 60' 22 <
''34 '5 #. ; ! 05'3(#%'4 #0& 22.+%#5+104 HewlettĆ
Packard Journal, 1. 01 60' 22 <
0&'3410 '5 #. LAPACK Users' Guide, *+.#&'.2*+#
Microsoft is a U.S. registered trademark of Microsoft Corporation.
Download