Вы находитесь на странице: 1из 17

 # !



"!
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-#< 03 5*' 64'3 8*0 /''&4 50 &0 #&7#/%'& 130$-'. 40-7+/)
503 5*#5 %0.$+/'4 #/ '#4:<50<-'#3/ )3#1*+%#- 64'3 +/5'3(#%' 5*' %#-%6-#503 0(('34 5*' (0--08+/) ('#563'4
8+5* #&7#/%'& .#5*'.#5+%4 #/& '/)+/''3+/) (6/%5+0/#-+5: 5 • +(('3'/5+#- '26#5+0/ 40-7'34
+4 # %0/5+/6#5+0/ 0( 5*'    #/& 
" 4'3+'4 0( • 0-:/0.+#- 3005 (+/&'3
%#-%6-#5034 8*+%* #3' &'4+)/'& (03 *+)* 108'3 '95'/&#$+-+5: • +/#/%+#- 130$-'. 40-7'3
#/& %6450.+;#$+-+5: • +$3#3: 0( '/)+/''3+/) '26#5+0/4 #/& %0/45#/54
• 063+'3 53#/4(03.4
*' 
" +/%-6&'4 +.1307'.'/54 50 #&&3'44 5*'
• #53+9 .#/+16-#5+0/4
/''&4 0( $05* /07+%' #/& #&7#/%'& 64'34 0( 4%+'/5+(+% #/&
• +/'#3 #-)'$3# 01'3#5+0/4
)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 # 03 5*' 64'3 8*0 /''&4 .03' .'.03: #/& '95'/&#$+-+5: 5*'
&+#-0)<$09<45:-' (+--<+/<5*'<$-#/,4 64'3 +/5'3(#%' " 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
*' 
" (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): +/
Fig. 1. 
" 4%+'/5+(+% )3#1*+/) %#-%6-#503 5*' .#5*'.#5+%4 %-#44300. $'%#64' 063 40(58#3' 5'#.

 6)645 
'8-'55<#%,#3& 063/#-
(-"+4#$2 %.1,$1 , 3'$, 3("2 $#4" 3.12 -# " +"4+42 3$73: 3'$ 1$2.41"$2 -# ".-5$-3(.-2 .% 3'$ ./$1 3(-& 2823$, 2
!..* 43'.1 -# !$" 42$ 6$ 5(2(3 , 3'$, 3("2 $-&(-$$1(-& -$6 ' 1#6 1$ 1$2.41"$2 !$".,$ -$"$22 18 -# 5 (+ !+$
-# $#4" 3(.- ".-%$1$-"$2 -# 3 +* 3. $#4" 3.12 !.3' 3. 3'$ ./$1 3(-& 2823$, ,423 &1.6 3. , - &$ 3'.2$ 1$2.41"$2
/1.,.3$ $7(23(-& /1.#4"32 -# 3. %(-# .43 6' 3 3$ "'$12 -# $%%$"3(5$+8 -# 2 31 -2/ 1$-3+8 2 /.22(!+$ 3. 3'$ //+(" :
234#$-32 6.4+# +(*$ 3. 2$$ (- %4341$ /1.#4"32 3(.-2 !4(+3 .- 3'$ 2823$,
$ ' # 6 3"'$# 3'$ (-3$1$23 (- &1 /'(-& " +"4+ 3.12 &1.6 '$ ./$1 3(-& 2823$,  -# 2823$, /1.&1 ,,(-& + -&4 &$
23$ #(+8 $ "' 8$ 1 -# ' # !$$- (-5.+5$# (- 6.1*2'./2 %.1 (- 3'$   (2 3'$  ./$1 3(-& 2823$, %(123 42$# (-
3$ "'$12 42(-& 3$"'-.+.&8 (- 3'$ "+ 221.., 3'1.4&' -  3'$    -#   -# 24!2$04$-3+8 (- -4,!$1 .%
&1 -32 /1.&1 , +3'.4&' 3'$   6 2 !$".,(-& .3'$1 , "'(-$2 (-"+4#(-& 3'$     -# -.6
23 -# 1# %.1 $-&(-$$1(-& 234#$-32 -# /1.%$22(.- + $-&(: 6(3' $73$-2(.-2 (- 3'$  
-$$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 '$ *$8 ".-"$/3 4-#$1+8(-& 3'$ ./$1 3(.- .% 3'$ " +"4+ 3.1
 -4 18   6'$- 6$ 3 +*$# 3. $#4" 3.12 33$-#(-& 3'$ (2 3'$ (#$ .% .!)$"32 .- 3'$ 23 "*  23 "* (2 # 3 2314"341$
 ,$$3(-& !.43 3'$(1 -$$#2 -# !.43 3'$ " +"4+ 3.12 3' 3 (2 2(,(+ 1 3. 23 "* .% " %$3$1( 31 82 '$ "+$ - 31 82 1$
3' 3 3'$8 6$1$ ".-2(#$1(-& %.1 42$ (- 3'$ "+ 221.., (3 !$: ##$# 3. 3'$ 3./ .% 3'$ 23 "* -# 2 31 82 1$ -$$#$# 3'$8
" ,$ .!5(.42 3' 3 6$ -$$#$# 3. ' 5$ -$6 /1.#4"3 %.1 3'$ 1$ 1$,.5$# %1., 3'$ 3./ .% 3'$ 23 "* '(2 38/$ .% + 23 (-
$#4" 3(.- , 1*$3 -. + 3$1 3' - 3'$ 
! "*:3.:2"'..+ /$: %(123 .43 .1#$1(-& "' 1 "3$1(9$2 3'$   23 "* ++
1(.# '(2 1$24+3$# (- 3'$ %.1, 3(.- .% - $#4" 3(.- #5(2.18 ./$1 3(.-2 3 *$ 3'$(1 1&4,$-32 (% -8 %1., 3'$ 23 "* -#
".,,(33$$ &1.4/ .% 2(7 , 3'$, 3("2 /1.%$22.12 6'. 1$341- 3'$(1 1$24+32 (% -8 3. 3'$ 23 "*
6.4+# '$+/ 42 #$2(&- 3'$ " +"4+ 3.1 3. %(3 3'$ -$$#2 .% 3'$
$#4" 3(.- ".,,4-(38 -# 3'$- &(5$ 42 %$$#! "* .- .41 '$1$ (2 .-+8 .-$ # 3 23 "* (- 3'$   '(2 1$2.41"$
(,/+$,$-3 3(.- (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
41 -4,!$1 .-$ .!)$"3(5$ %.1 3'$ -$6 " +"4+ 3.1 6 2 $ 2$
-4,!$12 2(33(-& .- 3'$ 23 "* 3'$- #$"(#$ 3. /+.3 3'$ &1 /'
.% +$ 1-(-& '$ 42$12 .% 3'$   3.+# 42 3' 3 3'$8
.% %4-"3(.- '$ 2823$,  /1.&1 , 3' 3 14-2 6'$- 3'$
//1$"( 3$# (32 /.6$1 !43 (32 ".,/+$7(38 , #$ (3 #(%%("4+3 %.1
DRAW *$8 (2 /1$22$# #.$2 , -8 ./$1 3(.-2 3' 3 1$04(1$ 3'$
!.3' -.5("$ 42$12 -# $7/$1($-"$# 42$12 '$ -.5("$2 3$-:
42$ .% 3'$ 23 "* 24"' 2 1$" ++(-& 3'$ /+.33(-& / 1 ,$3$12
#$# 3. !$ (-3(,(# 3$# !8 3'$ $73$-2(5$ .6-$12 , -4 + -#
"'$"*(-& 3' 3 3'$8 1$ 5 +(# " +"4+ 3(-& 3'$ 1 -&$ .5$1 6'("'
3'$ #(%%("4+38 .% , 23$1(-& 2. , -8 -$6 ./$1 3(.-2 6'(+$
3. /+.3 $5 +4 3(-& 3'$ 42$12 %4-"3(.- -# ".-5$13(-& 3'$
3'$ $7/$1($-"$# 42$12 ' # ' 1# 3(,$ 1$,$,!$1(-& '.6 3.
%4-"3(.- 5 +4$2 3. /(7$+ "..1#(- 3$2 %3$1 3'$ &1 /' (2 ".,:
42$ 2.,$ ./$1 3(.-2 3' 3 3'$8 #(# -.3 42$ %1$04$-3+8
/+$3$ .1 (% 3'$ #1 6(-& .% 3'$ &1 /' (2 (-3$114/3$# !8 3'$
1$ 3(-& 23 3$:.%:3'$ 13 &1 /'(-& " +"4+ 3.1 6 2 .41 2$".-# 42$1 6'$- 3'$ 42$1 2$$2 3'$ 23 "* & (- 3'$ 2 ,$ -4,!$12
.!)$"3(5$ $ -$$#$# 3. ## 2.,$ &1 /'(-& " / !(+(3($2 24"' 3' 3 6$1$ 3'$1$ 3. !$&(- 6(3' 2'.4+# -.3 ' 5$ !$$- #(2341!$#
2 31 "(-& +.-& &1 /' -# 2' #(-& !$36$$- &1 /'2 )423 3.
-23$ # .% 31 82 42$12 , 8 ".++$"3 5 1(.42 38/$2 .% -4,$1("
, (-3 (- / 1(38 6(3' .3'$1 &1 /'(-& " +"4+ 3.12 !43 6$ +2.
28,!.+(" -# &1 /'(" .!)$"32 .- 3'$   23 "* '$
6 -3$# 3. &. % 1 !$8.-# 3'$ ".,/$3(3(.- 6(3' %$ 341$2 24"'
38/$2 .% .!)$"32 5 (+ !+$ (- 3'$   (-"+4#$ 1$ + -#
2
 &1 /'(-& -# -(, 3(.-
".,/+$7 -4,!$12 1$ + -# ".,/+$7 11 82 !(- 18 (-3$&$12
41 3'(1# .!)$"3(5$ 6 2 3. $-' -"$ 3'$ '(&':$-# , 3'$, 3("2 - ,$2 "' 1 "3$12 231(-&2 3 &&$# .!)$32 +&$!1 (" .!)$"32
" / !(+(38 .% 3'$   6(3' 3'$ ##(3(.- .% %$ 341$2 24"' 4-(3 .!)$"32 -# &1 /'(" .!)$"32 '$1$ 1$ +2. ! "*4/ .!:
2 #(%%$1$-3( + $04 3(.- 2.+5(-& /.+8-.,( + 1..3 %(-#(-& )$"32 +(!1 18 .!)$"32 #(1$"3.1($2 /1.&1 ,2 -# +(232 
,.1$ , 31(7 ./$1 3(.-2 -# .41($1 31 -2%.1,2 3'$1$!8 .!)$"3 38/$2 1$ #(2"422$# (- ,.1$ #$3 (+ (- 1$%$1$-"$ 
231$-&3'$-(-& .41 /.2(3(.- 2 3'$ ,.23 /.6$1%4+ 3$"'-(" +
- *$8:/$1:%4-"3(.- " +"4+ 3.1 3'$1$ (2 2(-&+$ *$8 3' 3 3'$
" +"4+ 3.1 (- 3'$ 6.1+#
42$1 -$$#2 3. /1$22 3. &$3 3'$ , "'(-$ 3. /$1%.1, -8 ./$1 :
8 .%%$1(-& 36. ,.#$+2 3'$   -# 3'$   6$ 3(.- 24"' 2 ".2(-$ '$   ' 2 , -8 ,.1$ ./$1 :
(-3$-#$# 3. /+$ 2$ "423.,$12 3 !.3' $-#2 .% 3'$ $#4" 3(.- 3(.-2 3' - 3'$ *$82 .- 3'$ *$8!. 1# 2. 3'$1$ -$$#2 3. !$
2/$"314, '$   ' 2 +(23 /1("$ 3' 3 1$/1$2$-32 24!: 6 8 3. ""$22 ++ 3'$ %4-"3(.- +(38 6(3'.43 22(&-(-& .-$
23 -3( + #$"1$ 2$ %1., 3'$ +(23 /1("$ .% 3'$   .1  ./$1 3(.- 3. $ "' *$8 .- 3'$ *$8!. 1# '(2 (2 "".,/+(2'$#
 '(2 , *$2 3'$   ".,/$3(3(5$ 6(3' .3'$1 &1 /'(-& 3'1.4&' 3'$ 42$ .% ,$-42 -# 2.%3*$82 '$ 3./ 1.6 .% *$82
" +"4+ 3.12 -# , *$2 (3 //$ +(-& $5$- 3 3'$ '(&' 2"'..+ .- 3'$ *$8!. 1# #. -.3 ' 5$ -83'(-& /1(-3$# .- 3'$, !$:
+$5$+ '$   ' 2 ,.1$ //$ + %.1 ".++$&$ 234#$-32 " 42$ 3'$8 ".11$2/.-# 3. ,$-4 + !$+2 3' 3 //$ 1 +.-& 3'$
6(3' %.41 3(,$2 2 ,4"' !4(+3:(- ,$,.18 -# 36. /+4&:(- !.33., .% 3'$ 2"1$$- '$2$ *$82 1$ " ++$# 2.%3*$82 -#
" 1# /.132 3' 3 1$ $7/ -# !+$ 3.  !83$2 .% ,$,.18 3'$(1 ,$ -(-& "' -&$2 6'$-$5$1 3'$ ".11$2/.-#(-& + !$+2
.- 3'$ 2"1$$- 1$ "' -&$# !8 3'$ 2.%36 1$
  # 
 " +"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 -# $ 6(++ -.6 #(2"422 3'$ ,$,.18 ".-31.++$1 ".-%(&41 3(.-2
1$2.41"$ ++." 3(.- 3.&$3'$1 6(3' 2$3 .% 2.%36 1$ 3..+2 3. 42$# (- 3'$   -# '.6 3'$2$ 1$ 42$# (- (,/+$:
(# (- /$1%.1,(-& ./$1 3(.-2 (- "".1# -"$ 6(3' 3'.2$ ".-: ,$-3(-& 3'$ 5 1(.42 38/$2 .% $7/ -#$# ##1$22 ,.#$2 #$:
5$-3(.-2 - ".-31 23 - //+(" 3(.- (2 2.%36 1$ !4(+3 42(-& 5$+./$# %.1 3'$2$ /1.#4"32 '$ -$73 2$"3(.- .43+(-$2 3'$

4&423  $6+$33: "* 1# .41- + 


MMIO

System RAM 32K

Port 1 128K

Higher Priority
Port 2 128K

Extra 2K

System ROM 224K


Covered ROM
Unused Controller Address Space Fig. 2. 4!.$!2$ -%-/29 #/.42/,<
32K
,%2 #/.&)'52!4)/. &/2 4(% 
 #!,#5,!4/2 %-/29 3):%3
Larger Addresses !2% ). "94%3

$)&&%2%.#%3 ). #/.&)'52!4)/. "%47%%. 4(%   !.$ 4(%  /2  4/'%4(%2 7)4( /.% /& 4(% ).4%2.!, -%-/29
  !.$ $)3#533%3 (/7 4(%3% $)&&%2%.#%3 !2% 53%$ 4/ #/.42/,,%23 7!3 4(%. %15)6!,%.4 3/ &!2 !3 4(%  "53 )3
%84%.$ !.$ 2%&).% 4(% %80!.$%$ !$$2%33 4%#(./,/'9 4/ 02/< #/.#%2.%$ 4/ ! 34!.$!2$ "53 $%6)#%
6)$% !##%33 4/ ! 4/4!, /&   "94%3 /& #/$% !.$ $!4! !3
. 4(% 34!.$!2$ $%6)#% )-0,%-%.4!4)/.3 4(% 3):% /& 4(% $%6)#%
42!.30!2%.4,9 !3 0/33)",%
4(!4 )3 4(% !$$2%33 30!#% /##50)%$ "9 4(% $%6)#% )3 $%<
(%  "53 !2#()4%#452% &)234 $%6%,/0%$ &/2 4(%  !.$ 3)'.%$ ).4/ 4(% $%6)#% . 4(% 3%#/.$<'%.%2!4)/. #()0 4(% 3):%
53%$ ). !,,  #!,#5,!4/23 3).#% 4(!4 4)-% (!3 3%6%2!, 53%&5, /& 4(% #/.42/,,%23 7!3 -!3+ 02/'2!--%$ !4 4(% 4)-% /& -!.<
&%!452%3 .% /& 4(% .)#%34 )3 )43 !$$2%33 #/.&)'52!4)/. #!0!< 5&!#452% 3).#% 7% +.%7 %8!#4,9 7(!4 3):% %!#( #/.42/,,%$
"),)4)%3 ,, #()03 !44!#(%$ 4/ 4(% "53 !2% 2%15)2%$ 4/ "% !",% $%6)#% 7/5,$ "%
4/ #(!.'% /. #/--!.$ /& 4(% "53 4(% 2!.'% /& !$$2%33%3
)4( 4(% !$6%.4 /& 0,5'<).3 &/2 4(%    4(% #/.&)'5<
4(!4 %6/+% ! 2%30/.3% &2/- 4(% #()03 5#( ! 3934%- %,)-)<
2!4)/. #!0!"),)4)%3 /& 4(% -%-/29 #/.42/,,%23 (!$ 4/ "% %8<
.!4%3 /.#% !.$ &/2 !,, 4(% ).#/.6%.)%.#% !.$ (%!$!#(% /&
0!.$%$ 4/ ).#,5$% 6!29).' 4(% !00!2%.4 3):% /& 4(% -%-/29
#/.&)'52).' *5-0%2 37)4#(%3 /. #!2$3 $%3)'.%$ 4/ 0,5' ).4/
#/.42/,,%2 4/ #/.&/2- 7)4( 4(% $%6)#% "%).' 0,5''%$ ). ()3
4(% -!#().% /2 ! #/.35-%2 02/$5#4 ,)+% ! #!,#5,!4/2 4()3 )3
)3 /.% /& 4(% -!.9 !$6!.#%$ &%!452%3 ). 4(% 4()2$<'%.%2!4)/.
./4 /.,9 ! .)#%49 )4 )3 ! .%#%33)49
  )-0,%-%.4!4)/. /& 4(% !2#()4%#452% ()3 2%3):).'
. 4(% %!2,9 $!93 /& 4(% !2#()4%#452%  4/ 
 4(% &%!452% ). !$$)4)/. 4/ !,,/7).' 0,5'<).3 /& 6!2)/53 3):%3 !,3/
 "53 ,).%3 7%2% !#45!,,9 2/54%$ !2/5.$ 4(% #)2#5)4 "/!2$ 02%3%.4%$ 4(% /00/245.)49 4/ %80,/2% %80!.$%$ !$$2%33
!.$ !.9   /2 -%-/29 -!00%$  4(!4 7!3 !4< -/$%3 7()#( 7% (!6% #/-% 4/ #!,, 4(% ;#/6%2%$ 4%#(./,<
4!#(%$ 4/ 4(% "53 (!$ 4/ "% #534/-<-!$% 7)4( 4(% "53 ).4%2< /'9 &/2 2%!3/.3 4(!4 7),, "% !00!2%.4 3(/24,9
&!#% !44!#(%$ ()3 (!$ 4(% !$6!.4!'% /& !,,/7).' !. !2")42!29
(% 4()2$<'%.%2!4)/.  #()0 (!3 3)8 -%-/29 #/.42/,,%23
.5-"%2 /& 0!243 4/ "% !$$%$ 4/ 4(% 3934%- 7)4( !3352!.#%
. 4(%    4(%3% !2% !,,/#!4%$ 4/ -%-/29 -!00%$ 
4(!4 4(% 3934%- 7/5,$ "% #!0!",% /& (!.$,).' !,, /& 4(%- ).
3934%-  0/24  0/24
 !.$ 3934%-  !.$ 4(%2% )3
/.% 7!9 /2 !./4(%2 4 (!$ 4(% '2!6% $)3!$6!.4!'% /& 0544).'
/.% %842! #/.42/,,%2 (%)2 #/.&)'52!4)/. ). 4(% 535!, 34!4% )3
! 02)#% 02%-)5- /. 35#( %33%.4)!, )4%-3 !3  !.$ 
3(/7. ). )'
 (% -%-/29 #/.42/,,%23 !2% 3(/7. 7)4(
. 4(% 3%#/.$<'%.%2!4)/.  #()0 ! &)8%$ .5-"%2 /& -%-< 4(%)2 3):%3 !.$ ,/#!4)/.3 ). 4(% !$$2%33 30!#% ( 4/
/29 #/.42/,,%23 7%2% ).#,5$%$ /."/!2$ 4(%  (%  ( (%9 !2% !,3/ 0)#452%$ !3 (!6).' ! 6%24)#!, ,/#!4)/.
"53 7!3 4(%. &/2 !,, 02!#4)#!, 0520/3%3 #/-0,%4%,9 ()$$%. ). ;02)/2)49 30!#% . 4(%  "53 $%&).)4)/. 4(% $%6)#%3 !2%
7)4(). 4(%  )43%,& (% #/-").!4)/. /& %84%2.!, 34!.$!2$ #(!).%$ 7)4( 4(% 2%35,4 4(!4 $%6)#%3 #,/3%34 4/ 4(%  /.

MMIO

System RAM (Shrunken)

Port 1 128K
Higher Priority

Covered Code to be
Executed In-Place

System ROM Covered ROM 32K Unused


Fig. 3. 8%#54%<).<0,!#% #/.&)'5<
2!4)/. &/2   #/6%2%$
Larger Addresses #/$%

 5'534  %7,%44<!#+!2$ /52.!,


MMIO System RAM
(Shrunken)

Mailbox in
System RAM
Port 1 (128K)

Higher Priority
Covered Code and Data
to Copy to Mailbox

System ROM Unused


Fig. 4. /09;4/;-!),"/8 #/.&)'5;
Covered ROM 32K
2!4)/. &/2   #/6%2%$
Larger Addresses $!4!

4(% #(!). (!6% 4(% &)234 /00/245.)49 4/ 2%30/.$ 4/ "53 2%; 4/ )43 ./2-!, #/.&)'52!4)/. !.$ 4(% #/$% !.$ $!4! !2% !6!),;
15%343 . #/.3%15%.#% )& 47/ $%6)#%3 !2% #/.&)'52%$ 7)4( !",% 4/ 4(% 2%34 /& 4(% 3934%- /$%23 53).' 4()3 $!4! -534
/6%2,!00).' !$$2%33 2!.'%3 4(% /.% #,/3%2 4/ 4(%  /. 2%-!). !7!2% 4(!4 )4 )3 6/,!4),% !.$ #!. "% $%342/9%$ "9 !.;
4(% #(!). %&&%#4)6%,9 ()$%3 4(% -/2% $)34!.4 /.% . )'3
4/ /4(%2 &%4#( /& $!4! &2/- #/6%2%$  . 4()3 3%.3% 4()3

 ()'(%2 02)/2)49 #!. "% ).4%202%4%$ !3 :#,/3%2 4/ 4(%  -%4(/$ )3 ./4 42!.30!2%.4
/2 :()$%3 4(/3% "%,/7
./4(%2 7!9 ). 7()#( #/6%2%$  )3 53%$ )3 3(/7. ).
3 3(/7. ). )'
 4(% -%-/29 #/.42/,,%2 &/2 3934%-  )'  4 )3 !3 42!.30!2%.4 !3 4(% %8%#54%;).;0,!#% -%4(/$ "54
()$%3 4(% 3%#4)/. /&  3(/7. !3 #/6%2%$ ()3 )3 4(% %.4!),3 &%7%2 2%342)#4)/.3 /. 4(% #/$% !.$ $!4! 4(!4 #!. "%
2%!3/. &/2 4(% .!-% :#/6%2%$ 4%#(./,/'9 ).#,5$%$ . 4(%   #/$% 4()3 3934%- )3 535!,,9 4)%$ 4/
4(% %8%#54)/. /& 3 %#!,, 4(!4 3 !2% 
)' 3(/73 -/2% $%4!), /& 4(% #/6%2%$  !.$ 4(% &)234
/"*%#43 4(!4 35"34)454% &/2 (!2$ !$$2%33%3 /& /"*%#43 7(/3%
7!9 ). 7()#( )4 )3 53%$ . /.% 3%#4)/. /& 4(% #/6%2%$ 
02%#)3% ,/#!4)/. )3 ./4 +./7. ). !$6!.#% !.$ ). &!#4 -)'(4
4(%2% )3 !33%-",9 ,!.'5!'% #/$% -/34,9 -!4( 2/54).%3 4(!4
./4 %6%. "% 02%3%.4 (%9 !2% -)$7!9 "%47%%. (!2$ !$;
2%15)2%3 ./  2%3/52#%3 /543)$% 4(%  &/2 %8%#54)/.
$2%33%3 4(!4 /.,9 #(!.'% !4 #/-0),%,).+ 4)-% !.$ )$%.4)&)%23
()3 #/$% )3 %8%#54%$ ).;0,!#% ). 4(% #/6%2%$  "9
7(/3% #/22%30/.$).' /"*%#43 -!9 -/6% "%47%%. 35"3%15%.4
3(2).+).' !.$/2 -/6).' 4(% -%-/29 #/.42/,,%2 &/2 3934%-
#!,,3 !4 25. 4)-%
 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 & $52).' 4(% #/.6%23)/. /& !  4/ !. !$$2%33 )4 )3
2%452.%$ 4/ )43 ./2-!, #/.&)'52!4)/. $%4%2-).%$ 4(!4 4(% #/22%30/.$).' /"*%#4 ,)6%3 ). #/6%2%$
 4(% /"*%#4 )3 #/0)%$ &2/- #/6%2%$  4(2/5'( 4(%
 3%#/.$ 3%4 /& 2/54).%3 !,, /& 7()#( /.,9 .%%$ !##%33 4/ !
-!),"/8 4/ 4(% TEMPOB 4%-0/2!29 /"*%#4 !2%! (% !$$2%33
&)8%$ 3%4 /& ,/#!4)/.3 7)4(). 3934%-  #!. %8%#54% 7)4(
/& )43 .%7 ,/#!4)/. ). 4(% TEMPOB !2%! )3 4(%. 2%452.%$ )'
3934%-  ). !.9 /.% /&  ,/#!4)/.3 !3 ,/.' !3 4(%9
 3(/73 ! #/-0!2)3/. /& ! .!-%$  7/2$ +%97/2$ /2
4(%-3%,6%3 !2% ./4 #522%.4,9 #/6%2%$ "9 3934%- 
#/--!.$ !3 )4 7/5,$ %8)34 ). #/6%2%$  !.$ !3 #/0)%$
)' 3(/73 ! 3%#/.$ 7!9 ). 7()#( 4(% #/6%2%$  )3 4/ 4(% TEMPOB !2%! ,4(/5'( 7%,, 2%&%2 "!#+ 4/ )'  ,!4%2
53%$ . 4()3 #!3% #/$% !.$ $!4! -/34,9 $!4! !2% #/0)%$ &/2 ./7 ./4)#% 4(!4 ). !$$)4)/. 4/ 4(% /"*%#4 )43%,& !. !$$);
&2/- #/6%2%$  4/ ! -!),"/8 !4 ! &)8%$ ,/#!4)/. ). 3934%- 4)/.!, 0)%#% )3 !$$%$ 4/ 4(% )-!'% ). 4(% TEMPOB !2%! ()3
 &4%2 4(% #/09 )3 #/-0,%4%$ 3934%-  )3 2%452.%$ 0)%#% )3 !  02%#%$).' 4(% /"*%#4 )43%,& ()3 !,,/73

MMIO
TEMPOB Area

Mailbox in System RAM


System RAM
Port 1 (128K)
Higher Priority

Covered ROM Words to Copy


to the TEMPOB Area

System ROM Unused


Fig. 5. /09;4/;TEMPOB #/.&)'52!;
Covered ROM 32K
4)/. &/2   #/6%2%$ 
Larger Addresses 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Ć
Mark and Link
vious machines.
ROMPTR
Property List Flags
Preceding
DOROMP While the HP 48G/GX has CPU functionally equivalent to
ROMPTR Body Object ROMPTR Body the thirdĆgeneration CPU discussed above and thus has six
memory controllers, these controllers are configured and
ROM Word Body ROM Word Body used differently. Fig. 7 shows the standard HP 48GX configĆ
uration. The controller previously allocated to port 2 is now
Property List Item Mark and Link used as a bank switch control, and the extra controller is
Property List Item now allocated to port 2. Furthermore, there are now as
Property List Item many as 34 layers over the last 128K bytes of address space.
Property List Item
Eliminated in this configuration is the HP 48S/SX covered
Property List Item 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
In ROM In TEMPOB covered.) Since there are a great many more covered places
to access, however, there are many more temporary" conĆ
Fig. 6. Comparing the structure of a ROM word as resident in ROM
figurations to keep track of while working with the covered
and when copied to TEMPOB using covered technology.
data.
the routine converting the ROMPTR to an address to check To simplify the system, we use only a single covered techĆ
whether the object in question is a copy of one residing nique, namely, covered ROM word access, with appropriate
elsewhere. This method of covered ROM access, which we modifications. Without this simplification, the number of
call covered ROM word access," will be especially relevant access method and configuration combinations would be
to our discussion of the HP 48G/GX. unmanageable. Moreover, this is the only feasible method of
covered access to code written for the HP 48S/SX or not
Preexisting design elements of the RPL system contributed
expressly written for the the new configuration.
greatly to the practicality and transparency of covered ROM
word access, including: Fig. 8 shows the configuration while copying an object from
• Encapsulation of code and data into RPL objects that are of a bank of port 2 to the TEMPOB area. Port 1 is unconfigured.
determinable size In the unconfigured state, the controller responds to only a
• Indifference of RPL object execution to object location in handful of bus commands and acts as if it weren't there for
RAM or ROM data access.
• Equivalence of direct and indirect execution of RPL objects,
Fig. 9 shows the configuration while copying an object from
which allows (noncircular) structures to be stored and used
the second half of the upper system ROM. In this case, both
in the same format.
ports are unconfigured.

    Fig. 10 shows the configuration while copying an object from
The HP 48GX has a number of important features including: the first half of the upper system ROM. Since a controller
• Up to 128K bytes of builtĆin system RAM move or resize operation takes many more CPU resources
• One plugĆin port electrically equivalent to the HP 48SX ports than configure or unconfigure, it is often necessary to copy
• Access to 512K bytes of system ROM objects from this section, through a mailbox, and then into
• Access to 4M bytes of RAM or ROM at a second port using the TEMPOB area.
industryĆstandard parts.

MMIO

System RAM (128K)

Port 1 (128K)
Bank Switch
(2K)
Higher Priority

Control

Port 2
4M Bytes in
128K Banks

System ROM I (256K) System ROM II (256K)

Fig. 7. HP 48GX standard


Higher Addresses memory controller configuration.

 August 1994 HewlettĆPackard Journal


MMIO

System RAM (128K) Port 1


Unconfigured

Port 1 (128K)
Bank Switch
(2K)

Higher Priority
Control

Port 2
4M Bytes in
128K Banks

System ROM I (256K) System ROM II (256K)


Fig. 8.    )( #!.+-#)(
)+ )*2#(! ( )$- +)' 
Higher Addresses (% ) *)+-  -) TEMPOB

Ports 1 & 2
MMIO Unconfigured

System RAM (128K)

Port 1 (128K)
Bank Switch
(2K)

Higher Priority
Control

Port 2
4M Bytes in
128K Banks

System ROM I (256K) System ROM II (256K)


Fig. 9.    )( #!.+-#)(
)+ )*2#(! ( )$- -) TEMPOB
Higher Addresses +)' -" .**+ "& ) ,2,-'

#!  ,")0, -" )( #!.+-#)( 0"( #- #, -+'#( -"- -0( -" -0) '"#(, ( - -" ) (  #(-#&
()-"#(! #, *&.!! #( - && ( -"#, , -" )(&2 )/+ #( -"#, , )( #- !#(, -" /(-! ) ,-+ ,,
,, #, -) -" #+,- "& ) -" .**+ ,2,-'  !#( #- -) -" , .(-#)(&#-2 *+)/##(!  ')+ +,*)(,#/
#, &#%&2 -)  (,,+2 -) )*2 -"#, '-+#& -"+).!"  '#&4 #'*&'(--#)(
)1 -"+0#, && -"  0)+, (  1.- #(4*&
#!  ,")0, -" ,-(+    )( #!.+-#)( 0"#" #,      

#(-#& -) #!  1*- )+ -" ,'&&+ ,#3 ) ,2,-'


" "+- ) -"    #,  ).+-"4!(+-#)( 
  "#& #- #, ()- ,-+#-&2 (,,+2 -) ., -"#, )( #!.+4
"#* "#, .,-)'  #, .#&- +).( -" )+#!#(&  
-#)( 0"#" '-", )( ) -"    )( #!.+-#)(,
*+),,)+ ( #-, /&)*'(- 0, %2 -) -" +-#)( )
-"+ + /(-!, #+,- #- &&)0, '1#'& ) ,"+#(!

MMIO

System RAM (128K)

Port 1 (128K)
Bank Switch
(2K)
Higher Priority

Control

Port 2
4M Bytes in
128K Banks

System ROM I (256K) System ROM II (256K)


Fig. 10.    )( #!.+-#)(
)+ )*2#(! ( )$- -) TEMPOB
Higher Addresses -"+).!"  '#&)1

.!.,- 

 0&--4%+ ).+(& 
MMIO

Port 1 System RAM (128K)


(Shrunken)

Bank Switch
(2K)
Control

Higher Priority
Port 2
(Shrunken)

System ROM I (256K) System ROM II (256K)

Fig. 11. HP 48GX allĆportsĆempty


Higher Addresses configuration.

the HP 48G/GX. This chip has four advantages over the These space constraints affected many of the HP 48G/GX
thirdĆgeneration chip used in the HP 48S/SX. First, it is proĆ hardware design choices.
duced using a different CMOS process, allowing better stabilĆ
The RAM increased from 32K bytes in the HP 48SX to 128K
ity with onboard voltage regulation circuitry. Second, these
bytes in the HP 48GX, while the HP 48G retained the origiĆ
improved voltage characteristics and several lowĆlevel optiĆ
nal 32KĆbyte chip. This difference between the G and the
mizations allow the new CPU to operate at twice the speed
GX offers two advantages. First, it provides more differentiĆ
of its predecessor. This speed increase gives it a 4ĆMHz bus
ation between the functions and cost of the G and the GX,
rate. Third, the new CPU is packaged in a 160Ćpin quad flatĆ
increasing the product family's market appeal. Second, the
pack, improving the manufacturability of the HP 48G/GX.
difference in RAM size provides a way for the calculator to
Fourth, with all these improvements, the final cost is lower,
know whether it is a G or a GX. If the calculator scans the
increasing the budget for other hardware improvements to
RAM and finds only 32K bytes, then there will never be a
the calculator.
plugĆin data card installed. With this information the covered
The faster processing speed of the HP 48G/GX CPU gave memory options become much simpler. The RAM memory
the software team incentive to improve the user interface, size becomes an internal product type identifier, and several
implementing graphical routines that would not have been software routines are optimized for faster performance on
acceptable at the slower processing rate. This added funcĆ the HP 48G.
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 The HP 48G and GX share a common ROM code set. They
port two. also share a common circuit board. While this simplifies docĆ
umentation, manufacturing, and stock control, it also compliĆ
The HP 48G/GX circuitry, with its additional components,
cates some areas. The HP 48GX RAM chip is wider and
had to fit in the same physical space as in the HP 48SX. The
longer than the chip used in the HP 48G: the 32K RAM is in
product plan and schedule did not allow changes to producĆ
a 28Ćpin smallĆoutline package (SOP), and the 128K device is
tion tooling or plastic parts except for those that were absoĆ
a 32Ćpin SOP. Both conform to the JEDEC pinout standard. A
lutely necessary. At times we felt like poets trying to write
128K device was chosen that has an extra chip select line at
crossword puzzles. The HP 48SX circuit board design was
pin 30. This chip select is tied high, allowing pins 1 through
optimized such that it did not leave us much free space.

MMIO

Port 1 System RAM (32K)


(Shrunken)

Bank Switch
(2K)
Control
Higher Priority

Port 2
(Shrunken)

System ROM I (256K) System ROM II (256K)

Fig. 12. HP 48G standard


Higher Addresses configuration.

 August 1994 HewlettĆPackard Journal


28 of the smaller RAM to overlay pins 3 through 30 of the gates handle signal demultiplexing, and the remaining five
larger device. The extra chip select of the HP 48GX RAM flipĆflops form a register for the card port 2 bank address.
matches the Vdd line of the HP 48G RAM chip, and all of the
other lines are pinoutĆcompatible.         
The card ports of the HP 48SX were designed for Epson
The difference in physical package width also posed a
memory cards. Several unused lines were adapted to provide
problem. The foil patterns on the circuit board had to be
external video signals to drive an enlarged display for classĆ
modified to accept RAM chips with different lead spacings
room use. On the HP 48GX, the video lines are retained
across the package. The immediate response was simply to
only on card port 1. On card port 2, the video lines are reĆ
stretch the ovalĆshaped patterns. However, this resulted in
placed by five additional address lines. The system software
the foil extending well under the body of the 128K chip, a
allows the card in port 2 to be subdivided into 128KĆbyte
situation that could have led to solder bridging where the
sections, with each section treated as a virtual plugĆin card.
solder paste contacted the part body. This is avoided by using
Five bank select address lines permit up to 32 virtual plugĆ
two different solder stencils on the manufacturing line. A
ins in card port 2, yielding a maximum card size of 4M bytes
paste of solder is laid on the blank circuit board before parts
in the plugĆin port. With the ROM, RAM, and plugĆin opĆ
are loaded onto the board. A metal stencil defines the pattern
tions, an HP 48GX can access 4,980,736 bytes of onboard
of the solder paste, just as a silk screen controls the pattern
data.
of ink on a shirt. By using a different stencil pattern for the
G and GX circuit boards, we control the original location of Since the inception of the HP 48 family of calculators, liquid
the solder paste and keep it out from under the 128KĆbyte crystal display technology has progressed significantly. The
RAM body. Once all the components are loaded onto the display in the HP 48G/GX provides improved visibility by
circuit board and the solder is heated to a molten state, a improvements in pixel contrast. The display is thinner than
danger might again exist for the solder to flow under the before. This change in glass thickness reduces the parallax
part body. Fortunately, the nature of the mechanical contact between the pixel within the display and its shadow on the
between the RAM lead and the circuit board foil tends to rear face of the display. In the HP 48SX, the pixel contrast
cause the solder to pool or wick to the lead rather than was lower and the shadow was not dark enough to cause
spreading across the elongated foil pad. problems, but in testing the new HP 48G/GX display under
various light conditions, we found that shadow effects made
The packaging of the ROM chip was also changed between
the display hard to read. With the thinner glass now used,
the HP 48SX and the HP 48GX. The SX used a square 52Ćpin
the pixel and its shadow appear as one image, and the
quad flatpack for its 256K bytes of program data. The code
shadow now enhances the appearance of the pixel.
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 Changes to plastic parts were not permitted, except where
package configuration allowed us to conserve space in the necessary. The back case of the HP 48G/GX required
placement of the two chips and in the routing of signal wires changes. The changes were all accomplished by making
between them. mold inserts. Where text on the mold needed changes or
additions, the affected area of the mold was milled away. A
Use of a standard SOP ROM chip also allowed us to use
piece of steel was placed into the hole to make a perfect fit,
oneĆtime programmable (OTP) ROMs in prototype calculaĆ
and the face of this new piece was etched or inscribed with
tors. An OTP uses the same semiconductor core as a UVĆ
the new textures and features. The new back case helps
erasable EPROM. To get the semiconductor chip into an
identify the differences between card ports 1 and 2, updates
SOP, however, the manufacturer omits the familiar glass winĆ
the copyright information, adds a mark indicating that the
dow in the chip, covering the device in opaque plastic. The
HP 48G/GX complies with Mexico's importation laws, and
resulting ROM is no longer erasable.
adds an area for a customized nameplate. The customized
Typically, a product schedule requires months between code nameplate is a piece of metal with adhesive on one side.
release and the start of production so that ROMs can be built The customer's name can be engraved on the plate and atĆ
with the software code builtĆin. The use of OTPs on this tached to an inset area of the back case. This is the same
project cut the required time from months to days. For one nameplate used on HP's palmtop computer family.
prototype run, the time between code availability and prodĆ
The result of these changes is a computer platform that is
uct build was only a few hours.
more powerful than its predecessor, is wellĆsuited to the
The HP 48G/GX CPU multiplexes the highest address bit, A18, enhanced user interface developed by the software team, is
with an additional chip enable line, CE3. The original idea more versatile for both the user and the design engineer,
was to allow future expansion of the HP 48 family, either to and is less expensive to produce. It started as a processor
use a larger ROM chip or to include an additional memory upgrade and became a major product improvement.
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
With ease of learning and ease of use the primary goals for
these signals. The two chips are a quad NAND chip and a hex
the new HP 48G/GX calculator, the user interface and many
D flipĆflop, similar to the standard TTL devices. The multiĆ
builtĆin applications have been largely redesigned.
plexing is accomplished by simply toggling a control bit inĆ
side the HP 48G/GX CPU. To demultiplex the A18 and CE3 
 provide the common starting point for the
signals, we developed a protocol for mirroring the state of new and rewritten applications in the HP 48G/GX. Looking
the internal bit to one of the external D flipĆflops. The NAND 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 Fig. 14. 5+0) # 6':6 (+'.& +0 #0 +0276 (14/
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< 6*' Transfer +0276 (14/ 6*' Name (+'.& +5 # %1/$+0'& (+'.&
5#)'5 6*'; 4'2.#%' *'; #.51 24'5'48' 6*' %106':6 6*#6 %#0 6*#6 2'4/+65 0'9 0#/'5 61 $' '06'4'& 14 6*' 0#/'5 1( ':+56<
16*'49+5' $' .156 9*'0 51/'6*+0) 57424+5+0) *#22'05 9+6*+0 +0) 
" 8#4+#$.'5 14  (+.'5 61 $' 5'.'%6'& 5'' +)
#0 #22.+%#6+10  
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*'
0 +0276 (14/ 2418+&'5 $16* # /'#05 61 '06'4 &#6# 2'46+0'06 70+37' ('#674' 1( 6*#6 (+'.& 6;2' *+5 ('#674' +5 #0 +/2146#06
61 #0 #22.+%#6+10 #0& 12'4#6+105 6*#6 2'4/+6 6*' 75'4 61 &+4'%6 2#46 1( *19 9' /#+06#+0'& # %#.%7.#614 -';<2'4<(70%6+10<
#%6+105 56;.' +06'4(#%' 9+6*+0 6*' %10564#+065 1( # 5/#.. &+52.#; #0&
+57#..; #0 +0276 (14/ %105+565 1( 5'' +)   9+6* 01 21+06+0) &'8+%' 0 16*'4 )4#2*+%#. 75'4 +06'4(#%'5
•  6+6.' 57))'56+0) 6*' (14/5 274215' 8+57#. '.'/'065 57%* #5 .+56 #44195 #4' #%6+8#6'& $; /175'
• 0' 14 /14' (+'.&5 6;2+%#..; 9+6* ':2.#0#614; .#$'.5 9*+%* %.+%-5 61 '.+%+6 &+(('4'06 $'*#8+145 (41/ (+'.&5 0 6*' 
#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*' CHOOS
Set Alarm +0276 (14/

!*'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
Fig. 15. 5+0) # .+56 (+'.& +0 #0 +0276 (14/
+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#.
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.






Message boxes are used primarily for reporting errors that
48G/GX, the user's finger acts as the pointing device, triggerĆ require attention before proceeding. For example, if the user
ing the desired behavior by pressing the appropriate action attempts to enter a vector in the EXPR field of the Integrate
button for each field. Consistent location of the three types input form, a message box appears to inform the user of the
of action buttons helps the user navigate an input form problem (see Fig. 20).
confidently. Some applications also use message boxes to give additional
Some input form menu keys perform applicationĆspecific information. For example, in the Solve Equation input form, the
operationsĊfor example, DRAW in Plotting. In the second row user can press INFO any time after a solution has been found
of the input form menu are more advanced input form operaĆ to review the solution and determine how it was calculated
tions for resetting a field or the entire form, displaying the (see Fig. 21).
object types allowed in a field, and temporarily accessing the
user stack to calculate or modify a field value.   

  
For the HP 48S/SX, we developed an RPL tool called the
 

 parameterized outer loop3 to speed development of new
Choose boxes are used to make a choice in an input form interfaces such as the MatrixWriter by automating routine
list field. They are also used in most subject areas to choose 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
CHOOS

Fig. 17. Using a combined text/list field in an input form. Fig. 19. The Memory Browser: a complex choose box.

August 1994 HewlettĆPackard Journal 


".#$ 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(-&
Fig. 20.  38/(" + ,$22 &$ !.7 /1.!+$,:2.+5(-& %4-"3(.- +(38 .1 $7 ,/+$ .-$  6.1# (-
3'$ /+.33(-& 31 -2+ 3(.- %(+$ ' 2 3'$ 2(,/+$ 3 2* .% 1$ #(-& 3'$
6 2 3. !$ %$$#! "* %1., 38/(" + 42$12 3'1.4&'.43 3'$ #$5$+: "411$-3 '.1(9.-3 + /+.3 1 -&$ %1., " +"4+ 3.1 ,$,.18 (-"$
./,$-3 "8"+$ 6$ #$2(&-$# 3'$ (-/43 %.1,2 $-&(-$ %1., 3'$ 3'$ 6.1# ' 2 -. /1$24,/3(.-2 !.43 '.6 -# 6'$- (3 6(++
&1.4-# 4/ 3. !$ '(&'+8 "423.,(9 !+$ '(2 6 2 "".,: !$ " ++$# 1$%$1$-"$2 3. (3 ".4+# !$  -# .%3$- 6$1$
/+(2'$# (- /1.&1 ,,$1:%1($-#+8 , --$1 !8 (-"+4#(-& .5$1 "' -&$# 1.4-# 2 3'$ %($+#2 /./4+ 3(-& 3'$ /+.33(-& (-/43
%(%38 '..*2 (-3. 3'$ (-/43 %.1,2 $-&(-$2 1$2/.-2$2 3. $73$1: %.1, 6$1$ 6.1*$# .43
- + -# (-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Ć '$ "'..2$ !.7 $-&(-$ (2 5$18 ,4"' +(*$ 3'$ (-/43 %.1,2
nal events 1$ 424 ++8 "3(5 3$# !8 $73$1- + $5$-32 24"' 2 $-&(-$ .1 "423.,(9 3(.- 3'$ /1.&1 ,,$1 " - 24//+8
%.1, 33(-& ".,/+$3$# %($+# $-318 %.1 /1./$1 #(2/+ 8  choose procedure 3' 3 1$2/.-#2 3. ,$22 &$2
2(-&+$ $73$1- + $5$-3 " - 31(&&$1 ' +% #.9$- .1 ,.1$ (-3$1:
- + $5$-32 ++ .% 6'("' 1$ "423.,(9 !+$  %$ 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
-/43 %.1, //+(" 3(.-2 " - "423.,(9$ -8 .1 ++ %.1,:+$5$+ 3' 3 $-" /24+ 3$ !.3' #(2/+ 8 -# $5 +4 3(.- # 3  .1 $7 ,:
$5$-32 24"' 2 3(3+$ #(2/+ 8 .1 %($+# $5$-32 24"' 2 #(2/+ 8(-& /+$ 6'$- - -&+$ ,$ 241$;#$&1$$2 1 #( -2 .1 &1 #2;(2
'$+/ +(-$  "' %($+# ' 2 field procedure 22."( 3$# 6(3' 3. !$ "'.2$- (- "$13 (- (-/43 %.1,2 3'$ "'..2$ !.7 $-&(-$
(3 -# 3'$ $-3(1$ %.1, ' 2 form procedure 22."( 3$# 6(3' #(2/+ 82 /+ (- #$2"1(/3(.-2 !43 1$341-2 -  /1.&1 , 3' 3
(3 '$-$5$1 - $5$-3 .""412 3'$ //1./1( 3$ %($+# .1 %.1, 2$32 3'$ 2$+$"3$# -&+$ ,$ 241$ '(2 "(1"4,5$-32 3'$ -$$#
/1."$#41$ (2 " ++$# 6(3' - (#$-3(%8(-& $5$-3 -4,!$1 -# %.1 !1 -"'(-& "".1#(-& 3. 3'$ 1$341-$# .!)$"3 -# 2(,/+(%($2
/$1' /2 ##(3(.- + (-%.1, 3(.- % 3'$ /1."$#41$ #.$2 -.3 3'$ $73$-2(.- .% "'.("$2
"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
-(3( + %$$#! "* %1., 3'$ $#4" 3(.- + #5(2.18 ".,,(33$$
$5$-3 %(123 04$1($2 3'$ /1./$1 %.1, .1 %($+# /1."$#41$ 3.
-# 42$1 1$5($62 24&&$232 3' 3 3'$ 42$ .% (-/43 %.1,2 -#
#$3$1,(-$ (% "423., !$' 5(.1 (2 -$$#$# 3'$- ' -#+$2 3'$
.3'$1 &1 /'(" + 42$1 (-3$1% "$ $+$,$-32 ' 2 &1$ 3+8 (,/1.5$#
$5$-3 -.1, ++8 .-+8 (% (3 (2-3 "423.,(9$# % %.1, .1 %($+#
3'$ $ 2$ .% 42$ .% 3'$ 
 .5$1 3'$ 

' 2 -. "423., !$' 5(.1 (3 2/$"(%($2 #$% 4+3 /1."$#41$ 3' 3
.6$5$1 3'$ / 3' 6$ 3..* 3. 3'(2 "".,/+(2',$-3 6 2
04("*+8 1$2/.-#2 FALSE 3. ++ $5$-3 04$1($2
,.1$ "' ++$-&(-& 3' - 6$ /+ --$#
'$ 1$ 2.- %.1 %.1, /1."$#41$ -# ,4+3(/+$ %($+# /1."$:
5$-3 "423.,(9 3(.- .1(&(- ++8 ".-"$(5$# 2 ,$ -2 3. $7:
#41$2 (2 3. 2/1$ # 3'$ !41#$- .% "423.,(9 3(.- 3'1.4&'.43
3$-# 3'$ %4-"3(.- +(38 .% (-/43 %.1,2 (- 4-%.1$2$$- 6 82
3'$ %.1, (-"$ $ "' %($+# /1."$#41$ .-+8 "'$"*2 %.1 3'$
341-$# .43 3. !$ *$8 ".,/.-$-3 .% .41 !(+(38 3. /1.3.38/$
$5$-32 3' 3 /$13 (- 3. (3 -# 2(-"$ 3'$ %.1, /1."$#41$ .-+8
-$6 42$1 (-3$1% "$ (#$ 2 1 /(#+8 2 3'$(1 - ,$ , 8 (,/+8
"'$"*2 %.1 %.1,:+$5$+ $5$-32 -. 2(-&+$ $5$-3 /1."$22(-& (2
3'$ .1(&(- + (-3$-3 .% (-/43 %.1,2 6 2 5$18 ,.#$23 ".,/ 1$#
2+.6$# !8 '(&'+8 "423.,(9$# %.1, 3' 3 6.4+# .3'$16(2$
3. 3'$ 1.+$ 3'$8 -.6 /+ 8 $ #$2(&-$# (-/43 %.1,2 3. !$
' 5$ 3. ".,/ 1$ 3'$ $5$-3 -4,!$1 & (-23 +$-&3'8 +(23 .%
3'$ 23 -# 1# ,$ -2 !8 6'("' //+(" 3(.-2 & 3'$1 # 3 %.1
$5$-3 -# %($+# ".,!(- 3(.-2
3 2* -$ .1 ,.1$ (-/43 %.1,2 6.4+# !$ #(2/+ 8$# 2 -$"$2:
.1 3'$ 
 /1.)$"3 6$ -$$#$# -.3'$1 + 8$1 .% 2 18 6(3'(- 3'$ ".-3$73 .% -.3'$1 4-#$%(-$# //+(" 3(.-
1$&4+ 1(38 -.3 $-%.1"$# !8 3'$ (-/43 %.1,2 $-&(-$ $" 42$ ".-3$73 '(2 .1(&(- + ".-"$/3 (2 //+($# 24""$22%4++8
6$ 2.4&'3 -# 1$ "3$# 3. 42 !(+(38 %$$#! "* +,.23 4-3(+ 3'$ 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(.-
Fig. 21. '$ Solve Equation INFO ,$22 &$ !.7 $-5(1.-,$-32

 4&423 
$6+$33: "* 1# .41- +
-/) 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
!,-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
Fig. 22. )136= 63;7)6 NEW -2498 *361 ,-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+ :-);
28)6)78-2+0= 23 1%.36 ',%2+)7 83 8,) -2498 *3617 )2+-2) 3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7 YSLICE 8,) '328396@
;)6) 2)')77%6= 36 ):)2 ()7-6%&0) 83 7944368 8,)-6 2); 630) 1%4 :-); 3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7 PCONTOUR
278)%( 8,) )77)2') 3* -2498 *361 *92'8-32%0-8= 6)1%-2)( 8,) 7034) -28)646)8%8-32 3* % 7'%0%6 *92'8-32 3* 8;3 :%6-%&0)7
%0;%=7 (%8% 1%2%+)1)28 %2( 8,) ):)287 '97831->%8-32 ;%7 SLOPEFIELD 8,) 1%44-2+ +6-( :-79%0->%8-32 3* % 8;3@:)'836@
%440-)( 7)0)'8-:)0= ;,)6) 2))()( 83 )2,%2') %440-'%8-32 :%09)( *92'8-32 3* 8;3 :%6-%&0)7 GRIDMAP %2( 8,) -1%+)
*3617 +6%4, 3* % 8,6))@:)'836@:%09)( *92'8-32 3* 8;3 :%6-%&0)7
PARSURFACE
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@ -:)2 8,-7 92-8= 3* 496437) 8,)6) -7 '327-()6%&0) 3:)60%4 -2
78=0) %440-'%8-327 0-/) 8,) )136= 63;7)6 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
,) '31&-2%8-32 3* 0)%2 *3'97)( 78%2(%6( *)%896) 7)87 *36 83 PPAR ,) 1%-2 (%8% 7869'896) 7836)( -2 VPAR ()7'6-&)7 8,)
-2498 *3617 %2( ',337) &3<)7 %2( ,-+, '97831->%&-0-8= view volume % 6)+-32 -2 %&786%'8 8,6))@(-1)27-32%0 74%') -2
463:)( -2:%09%&0) (96-2+ 8,) '%0'90%836 ()7-+2 6)*-2)1)28 ;,-', 1378 3* 8,) :-79%0->%8-327 3''96 7)) -+

,639+,398 8,) 1-((0) 4368-32 3* 8,) 463.)'8 ;,)2 8,)
&%7-'7 ,%( &))2 7)880)( &98 1%2= 97)6 -28)6*%') ()8%-07 ;)6) VPAR 59%28-8-)7 '3286300-2+ 8,) :-); :3091) %6)
78-00 92'0)%6 ;) ;)6) %&0) 83 463838=4) 2); -()%7 59-'/0= • "0)*8 %2( "6-+,8 '3286300-2+ 8,) ;-(8, 3* 8,) :-); :3091)
%2( 6)%0-78-'%00= &= '97831->-2+ ):)28 6)74327)7 • #*%6 %2( #2)%6 '3286300-2+ 8,) ()48, 3* 8,) :-); :3091)
• $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(
3;):)6 ;) 0)%62)( 3:)6 8-1) 8,%8 8,)-6 3:)6,)%( '%97)( 2 %((-8-32 83 8,)7) VPAR '328%-27 38,)6 59%28-8-)7 97)( &=
731) (940-'%8-32 3* '3() %2( -2)**-'-)2'= 83 '6))4 -283 8,) 731) 3* 8,) 6398-2)7 ,)7) %6)
-28)6*%') &)8;))2 8,) -2498 *3617 %2( 8,) '%0'90%836 1%-2@ • ""0)*8 %2( ""6-+,8 %2 %08)62%8-:) " -2498 6%2+) 97)( *36
*6%1) !) %((6)77)( 8,-7 -779) ;,)6) 4377-&0) &= 1%/-2+ GRIDMAP %2( PARSURFACE
7-140) %2( 7%*) '3() 79&78-898-327 ;,-0) 0)%:-2+ 8,) -28)6@ • ##*%6 %2( ##2)%6 %2 %08)62%8-:) # -2498 6%2+) 97)( *36
*%') '32')487 -28%'8 83 )2%&0) ,-+,@'32*-()2') '3() ()*)'8 GRIDMAP %2( PARSURFACE 238) 8,%8 8,-7 (-**)67 *631 8,) '96@
*-<)7 0%8) -2 8,) 463.)'8 2 )**)'8 ;) 1%() % ',3-') &)8;))2 6)28 9-8)  -28)646)8%8-32
1%-28%-2%&-0-8= %2( ,-+, 4)6*361%2') 8,%8 78-00 6)1%-27 % • < %2( = 8,) 291&)6 3* " %2( # -2'6)1)287 ()7-6)( 97)(
'32863:)67-%0 834-' %132+ 8,)  " ():)034)67 -2 %00 3* 8,) 6398-2)7 -278)%( 3* 36 -2 '31&-2%8-32 ;-8, RES

  
 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
,) *92'8-32%0-8= ()7'6-&)( -2 8,-7 7)'8-32 -7 % 79-8) 3* 
43-28 7-2+ SLOPEFIELD 83 4038 *<= %003;7 =396 )=) 83 4-'/
+6%4,-2+ %2( :-);-2+ 98-0-8-)7 *36 8,)  " !) ,%(
398 -28)+6%0 '96:)7 3* 8,) (-**)6)28-%0 )59%8-32 (=(<  *<=
7):)6%0 6)59-6)1)287 83 '327-()6 -2 '6)%8-2+ 8,)7) 6398-2)7
8 -7 59-8) 97)*90 -2 92()678%2(-2+ 8,) %6&-86%6= '3278%28 -2
96 %-17 ;)6) 8,%8 8,)= &) 47=',303+-'%00= )**)'8-:) %2(
%28-()6-:%8-:)7
6)59-6) 320= % 71%00 %13928 3* '3()
,) 291&)6 3* 0%88-') 43-287 4)6 63; -7 ()8)61-2)( &= <
2 )<4036-2+ :-79%0->%8-32 8)',2-59)7 32 % :%6-)8= 3* 1%@
%2( 8,) 291&)6 3* 0%88-') 43-287 4)6 '30912 -7 ()8)61-2)(
',-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%@ View Volume Top View
Z Y
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 ,)  " Zhigh Yfar
6398-2)7 6)46)7)28 8,) 6)79087 3* 731) 3* 8,)7) )<4)6-1)287 Y
-2'09(-2+ 8-1)@83@'3140)8-32 %7 %2 -14368%28 *%'836 Yfar
Ynear Zlow Ynear
00 3* 8,)  40388-2+ 6398-2)7 %6) -28)2()( %7 7)%10)77 )<@ X X
Xleft Xright Xleft Xright
8)27-327 3* 8,) 38,)6 &9-08@-2 40388-2+ 98-0-8-)7 2 4%68-'90%6
(Xe, Ye, Ze)
8,)= 7,%6) 8,) 7%1) 78%2(%6( 97)6 -28)6*%') %2( %6) 7)0)'8)( View Screen 1 Unit
%7 %08)62%8-:) 4038 8=4)7 ,)  40388-2+ 6398-2)7 %6) SLOPE- View Screen
(Xe, Ye, Ze)
FIELD WIREFRAME YSLICE PCONTOUR GRIDMAP %2( PARSUR-
FACE Fig. 23. VPAR 4%6%1)8)67 -2 6)0%8-32 83 8,) :-); :3091)

9+978  );0)88@%'/%6( 3962%0 


(2,3.6 Z
Y Top View
)

Y
Plotted
Point
(0,2.8 X X
)
Superimposed (Xe, Ye, Ze) View Screen 1 Unit
Integral Curve
View Screen (Xe, Ye, Ze)
Fig. 24. SLOPEFIELD plot of dx/dt = sin(xt).
Fig. 25. Perspective projection of a point in the view volume onto
by Ny. The input region sampled is given by XlefttXtXright the view screen.
and YneartYtYfar.
The input form in this case allows the user to:
The input form in this case allows the user to: • Choose or enter the defining expression for the function to
• Choose or enter the defining expression for the function to be plotted
be plotted • Choose the names of the two variables (identical to INDEP
• Choose the names of the two variables (identical to INDEP and DEPEND)
and DEPEND) • Choose Xleft and Xright (default to their current value, or
• Choose Xleft and Xright (default to their current value, or XRNG if no current value)
XRNG if no current value) • Choose Ynear and Yfar (default to their current value, or
• Choose Ynear and Yfar (default to their current value, or YRNG if no current value)
YRNG if no current value) • Choose Zlow and Zhigh (default to their current value, or
• Choose Nx and Ny (default to their current value or 13 and 8 default YRNG if no current value)
if no current value) • Choose Xe, Ye, and Ze (default to their current value, or 0,
• Verify and/or choose RADIANS, DEGREES, or GRADS mode. -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
from sample point to sample point indicating both the coorĆ if no current value)

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
Example Problem: Determine graphically whether all solutions from sample point to sample point and the display indicates
of the differential equation dx/dt = sin(xt) with initial condiĆ all three coordinates of the sample point.
tions 3.0tx(0)t3.1 satisfy 2.8tx(t)t3.6 for all t in [0,2]. Example Problem: Determine graphically whether the surface
Solution: Choose SLOPEFIELD plot type and enter SIN(X*T) as defined by z = x4 - 4x2y2 + y4 is, at the origin, concave up,
the current equation. Choose T as the independent variable concave down, or neither.
and X as the dependent variable. Choose 0 as Xleft, 2 as Solution: Choose WIREFRAME plot type and enter X^4–4*X^2*Y^
Xright, 2.8 as Ynear, and 3.6 as Yfar. Verify RADIANS mode, and 2+Y^4 as the current equation. Choose X and Y as the indeĆ
draw the result. As seen in Fig. 24, almost all of the integral pendent and dependent variables. Choose -1 for Xleft, 1 for
curves in this region leave the window either through the Xright, -1 for Ynear, 1 for Yfar, -1 for Zlow, and 1 for Zhigh so
top or the bottom. Therefore, not all the integral curves that the view volume surrounds the origin. Choose 4 for Xe,
satisfy 2.8tx(t)t3.6 for t in [0,2]. -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
WIREFRAME saddle" which is neither convex nor concave at the origin.
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Ć The picture environment, which is invoked automatically
projected onto the view screen along the line connecting the when graphs are drawn or by pressing the PICTURE key, alĆ
sample and the eye point (see Fig. 25). lows the user to interact with a graph. The user can move

Neighboring samples are connected by straight lines. The


View Volume
sampled region is determined by the base of the view volĆ
ume (Xleft, Xright, Ynear, Yfar). The region of the view screen 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).
YRNG
XRNG (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 A quick way to get started with animation is to press PICTURE
+ y4 with view volume [-1,1]×[-1,1]×[-1,1] and eye point (4,-10,3). to go to the interactive graphics environment, where you
will be able to create some pictures to animate. Press EDIT,
the cross hairs around using the arrow keys, trace along the then DOT+ to turn on the etchĆaĆsketchĆstyle drawing mode
graph, add picture elements such as dots, lines, and circles, in which pixels are turned on wherever you move the cross
or do interactive calculus operations such as finding the deĆ hairs. Using the up, down, left, and right arrow keys, sketch
rivative at the cross hairs location. 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
The HP 48S/SX crossĆhairĆmoving code was rewritten for the have a handful of pictures on the stack, say six of them.
HP 48G/GX. The cross hairs needed to be faster, to fade less Press CANCEL to leave the PICTURE environment, and you will
as they moved, and to accommodate added functionality see the the picture objects sitting on the stack. They are
such as tracing and shading. The cross hair code originally called GROBs, which is short for graphics objects.3 To use
came from the HP 28 and has been maintained and modified the ANIMATE command, all you have to do is enter the numĆ
over the years. In the HP 28, most of the cross hair code was ber of GROBs (for example, press 6 then ENTER if you
written in highĆspeed assembly language and actually conĆ created six pictures), then press the ANIMATE key, which you
tained a routine called SLOW which was buried deep within will find in the GROB submenu of the PRG menu. Your series
RPL subroutine calls. SLOW was needed to slow the cross of sketches will come to life as the ANIMATE command flips
hairs down to an acceptable speed. The use of this word through them.
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
Several new mathematical features were added to meet the
we could just find the word SLOW and take it out!
needs of the educational market and to match or exceed
The fading of the cross hairs as they moved was improved corresponding features recently introduced by our competiĆ
by changing the code so that the time between turning the tion. Design tradeĆoffs made for and inherited from earlier,
cross hairs off at one pixel and turning them on at the next less capable platforms were reconsidered, and relevant softĆ
pixel is minimized. To do this, all the calculations required ware developed for earlier machines but not used in the HP
for moving are now done before turning the cross hairs off. 48S/SX was used wherever appropriate.
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 The HP 48G/GX is targeted at the collegeĆlevel mathematics,
for pixels to turn dark. Thus, much of the work to reduce science, and engineering educational market. We hoped,
fade in moving cross hairs was canceled out by the new also, to achieve more success in high school advanced
screen characteristics. The user can darken the display by placement courses. In these environments calculators are
holding down the ON key and pressing the + key a few used as pedagogical tools, illustrating mathematical and
times, and this will make the moving cross hairs easier to modeling concepts introduced in the courses.
see.
As a pedagogical tool, the calculator's accuracy and reliability
Tracing along a graph with the cross hairs presents a chalĆ are paramount design goals. Speed of execution is important
lenge because the user's function must be evaluated at every but secondary to the validity of the computed results. To
point, so in effect the system RPL programmer must turn achieve high accuracy and reliability the computational
control over to the user at each point of the graph. This reĆ methods needed to be more numerically sophisticated than
quired careful attention to error handling and to managing typical textbook methods. This greater complexity is hidden
the data stack, which is a shared resource. The procedures from the casual user wherever possible, but made available
for tracing vary with the different plot types. The procedures to the sophisticated user so the methods can be tuned to
are kept in the property list associated with each plot type, their needs.
and then the appropriate procedure is passed in and evaluĆ
One means of achieving maximum accuracy and reliability is
ated when trace mode is turned on. It required quite a bit of
to read the current literature and consult with expert specialĆ
rewriting to implement this objectĆoriented, extensible apĆ
ists to obtain the best methods, then implement those methĆ
proach because much of the existing cross hair code had
ods from scratch. We have employed this approach in the
previously undergone rewriting and optimizing for speed
and code size.

August 1994 HewlettĆPackard Journal 


 
    
Although the primary focus of the new user interface for the HP 48G/GX was to 5: “Personal Information” Title
enhance our built-in applications, it became apparent as the project progressed 4: { ”Name:” { } { }
Field Specifications ”Bldg: ” ”Phone: ” { } Field Expander
that calculator owners who program would want access to the same capabilities to ”Notes:” { } {} }
enhance their efforts. For the choose box, message box, and especially the input 3: { 3 5 } Column Count (3)
form tools, the biggest challenge involved scaling back the numerous features to Reset and Current 2: { } and Tab Width (5)
produce simple user commands that still offer customization potential. Values 1: { }

The message box command, MSGBOX, was designed to display pop-up mes-
INFORM
sages with a minimum of fuss. Thus, it takes just one argument—the message
string—and produces a word-wrapped normal-sized message box.
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 applica-
tions, 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.
Fig. 1. A custom input form created by INFORM.
The MSGBOX and CHOOSE commands largely follow the same interface specifica-
tion methods as their system-level counterparts. This differs markedly from the input
columns in the grid is specified as one of INFORM’s arguments, and each field’s
form user command, INFORM. To maintain complete flexibility over all elements of
width is determined by the width of its label and by the user-supplied tab width,
form layout and behavior, the input forms engine takes three arguments for each
which places invisible tab stops within each column to help align fields vertically. A
label and thirteen arguments for each field, specifying such details as exact location
field can span multiple columns with a special field-expander specification. Help
and size, display format, and so on. Added to that are global arguments for the
text and object type restrictions can be included for any field, but aren’t required.
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 Fig. 1 shows an example of a custom input form created by INFORM. Notice that,
justified for the varied needs of built-in applications, it is an unnecessary burden despite the relative simplicity of the input arguments, an input form with aligned
for programmers just wanting to get some simple input from the user. 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
For the INFORM command, therefore, we developed an automatic form layout
according to the number and names of variables in the equation to be solved.
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 upper-
left 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# 1-+# !1#1 5# "#!'"#" 2- #+.*-7 +-0# !-+.322'-,* #$$-02
," 0'1)7 ," 2- 12-0# ',2#0+#"'2# 4*3#1 ', &'%&#0 .0#!'1'-, 2-
!&'#4# +-0# !!302# 0#13*21
,-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'* *#
&#    ',!*3"#1 +,7 ,#5 +2&#+2'!* $#230#1
2&2 0#.0#1#,2 2&# !300#,2 122# -$ 2&# 02 , 1-+# "#4#*-.8
-4#0 2&-1# .0-4'"#" 7 2&#    &#1# 0# 007
+#,2 #,4'0-,+#,21 2&#1# *' 00'#1 !, # 31#" "'0#!2*7 ,
+,'.3*2'-,1 ""'2'-,* *',#0 *%# 0 -.#02'-,1  .-*78
-2&#01 2&#7 !, 2 *#12 .0-4'"# &'%&8/3*'27 +#2&-"1 ,"
,-+'* 0--2 $',"#0 ," 0#*2#" -.#02'-,1 25- "'$$#0#,2'*
'+.*#+#,22'-,1 2&2 5&#, (3"'!'-31*7 31#" $!'*'22# +##28
#/32'-,1 1-*4#01 ," 11-!'2#" 1-*32'-, .*-22#01 "'1!0#2#
',% 2'%&2 "#4#*-.+#,2 1!&#"3*#1 2 *-5 !-12 # $-3," 2&#
-30'#0 20,1$-0+1 ," $',,!'* *-, !-+.322'-,1
   *' 007 -$    ,3+#0'!* *',#0 *%# 0
13 0-32',#1 .02'!3*0*7 &#*.$3* ', 2&'1 0#%0" &# 007 +,'.3*2'-, !-++,"1 0# .0'+0'*7 .#"%-%'!*
2--*1 &#1# ',!*3"#  0,"-+ 007 %#,#02-0 ," !-+8
1 313* !-"# 51 0#31#" 5&#,#4#0 .-11' *# 2- !&'#4#
+,"1 2- "" -0 "#*#2# 0-51 -0 !-*3+,1 -$ +20'!#1 -0 #*#8
2'+#*7 ," 0#*' *# '+.*#+#,22'-,1 , ""'2'-, 2- 2&#
+#,21 -$ 4#!2-01 "#!-+.-1# +20'!#1 ',2- -0 !0#2# +20'!#1
1-30!# !-"# $-0 2&#    ," '21 /32'-, ' 007 !0"
$0-+ 0-5 -0 !-*3+, 4#!2-01 #620!2 "'%-,* #*#+#,21 $0-+
5# &" '+.*#+#,22'-,1 "2',% $0-+ 2&#   2& !
 +20'6 -0 !0#2#  +20'6 $0-+ '21 "'%-,* #*#+#,21 .#08
2&2 5#0# 0#4'1#" $-0 2&#    32 "'",2 $'," 
$-0+ #*#+#,207 0-5 ," !-*3+, -.#02'-,1 ," !-+.32#
1.!# ', 2&2 .0-"3!2
2&# 0-580#"3!#" #!&#*-, $-0+ -$  +20'6
&'*# 0#31',% !-"# 5# 2--) "4,2%# -$ 2&#   
# 1'%,'$'!,2*7 '+.0-4#" ," #6.,"#" 2&# *',#0 *%# 0
 !*-!) 1.##"3. ," *0%#0   #,4'0-,+#,2 -4#0 2&#
$3,!2'-,*'27 -$ 2&#    -4#0 2&#    &#
   2- 0#!-,1'"#0 1-+# -$ -30 .0#4'-31 '+.*#+#,28
"#2#0+',,2 *',#0 1712#+ 1-*4#0 ," +20'6 ',4#02#0 5#0#
2'-, 20"#8-$$1 ', , #$$-02 2- !&'#4# %0#2#0 !!30!7 ,

 3%312 

 #5*#228!)0" -30,*
revised to be more accurate through additional computation firstĆorder system, so this problem is more general than it
and by storing all intermediate values in extended precision. might at first appear.
We added a command to compute a condition number of a
Many solution methods have been developed over the years
square matrix, which can be used to measure the sensitivity
to solve the initial value problem. We decided to implement
of numerical linear algebra computations to rounding errors,
two methods, a RungeĆKuttaĆFehlberg method for simplicity
a command to compute a solution to an underdetermined or
and speed of execution and a Rosenbrock method for reliĆ
overdetermined linear system by the method of least squares,
ability. The first method is easier to use, requiring less inforĆ
commands to compute eigenvalues and eigenvectors of a
mation from the user, but can fail on stiff problems.* The
square matrix, commands to compute the singular value
Rosenbrock method requires more information from the user,
decomposition of a general matrix, and commands to comĆ
but can solve a wider selection of initial value problems.
pute related matrix factorizations and functions. These linear
Both initial value problem solution methods require the user
algebra commands accept both real and complex arguments
to provide the function f(t,y), the initial conditions, the final
and perform all intermediate computation and storage in
value of t, and an absolute error tolerance. The Rosenbrock
extended precision.
method also requires the derivative of f(t,y) with respect to y
The HP 48G/GX has commands to compute all roots of a real (FYY) and the derivative of f(t,y) with respect to t (FYT).
or complex polynomial, to construct a monic polynomial
All plot types use the contents of the variable EQ, typically to
from its roots, and to evaluate a polynomial at a point. The
specify the function to be plotted. If the user selects the stiff
polynomial root finder is a modification of the HP 71 Math
(Rosenbrock) method the extra functions are passed to the
Pac's PROOT command, extended to handle complex coeffiĆ
solver by binding EQ to a list of functions f(t,y), FYY, and FYT.
cients. It uses the Laguerre method with deflation for fast
Otherwise, EQ is bound to the function f(t,y) needed by the
convergence and constrained step size and an alternate initial
RungeĆKuttaĆFehlberg method.
search strategy for reliability.
Both methods solve the initial value problem by computing
The HP 48G/GX has commands to compute the discrete
a series of solution steps from the initial conditions towards
Fourier transform or the inverse discrete Fourier transform of
the final value, by default taking steps as large as possible
real or complex data. These commands were leveraged from
subject to maintaining the specified error tolerance. The
the HP 71 Math Pac's FFT and IFFT commands, requiring the
solution plotter plots the computed values and by default
data lengths to be a nonzero power of 2, and were modified
draws straight lines between the plotted points. However,
slightly to match the customary definitions of these transĆ
although the computed steps may be accurate, the line segĆ
formations.
ments drawn between the step endpoints may poorly repreĆ
Finally, we included timeĆvalueĆofĆmoney commands. These sent the solution between those points. The plot parameter
commands have appeared in our financial calculators and RES is used by many plot types to control the plot resolution.
were available on the HP 48SX Equation Library card. Since If RES is zero the initial value problem solution plotter imĆ
engineering feasibility studies must include at least rudimenĆ poses no additional limits on the step sizes. If RES is nonzero
tary timeĆvalueĆofĆmoney computations it seemed useful to the plotter limits each step to have maximum size RES.
include these commands in the HP 48G/GX.
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Ć


The HP 48G/GX contains two differential equation solvers
ued case the choice of what is to be plotted is not as clear.
and solution plotters. These solvers and solution plotters can
The user may wish a particular component of the computed
be accessed via their input forms or invoked programmatiĆ
solution plotted versus t or may wish two components
cally via commands. We provide a programmatic interface to
plotted versus each other. The HP 48G/GX allows the user
the differential equation solvers and their subtasks so the
to specify the computed scalar solution, any component of
user can use them with the calculator's general solver feature
the computed vector solution, or the parameter t to be
to determine when a computed differential equation solution
plotted on either axis. This flexibility was introduced into the
satisfies some condition, or to implement custom differential
plot environment by expanding the AXES plot parameter.
equation solvers from their subtasks.
Previously, this parameter specified the coordinates of the
In implementing the differential equation solution plots, one axes origin. This parameter was expanded so that an opĆ
challenge was to identify and implement good solution methĆ tional form is a list specifying the origin and the horizontal
ods. Another challenge was to merge this new plot type with and vertical plot components.
the new 3D plot types described earlier and with the existing
By judiciously expanding the meaning of the various plot
HP 48SX plot environment in a backwardĆcompatible manner.
parameters we were able to accommodate the differential
The HP 48G/GX specifically solves the initial value problem, equation solution plot type while maintaining backward
consisting of finding the solution y(t) to the firstĆorder equaĆ compatibility with previous plot types.
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. * Stiff problems typically have solution components with large differences in time scale. More
HigherĆorder differential equations can be expressed as a 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' &'<   +%-'4 ;0 71.65+10#3:  #.%6.#513 (13 '%*0+%#. 31<
7'.12/'05 5'#/ +/ 100'..: #$' +4'045'+0 #9 10'4 ('44+10#.4 HewlettĆPackard Journal, 1.   01  6)645  
#0& 1$ 134.': +.. +%-'4 #.41 %1053+$65'& 41(58#3' 22 < 
.#+0 0&'3410 #0& 10 311-4 (31/ 5*' /#3-'5+0) &'2#35<   +%-'4 #0&  #5510 ;*'  ! %+'05+(+% 92#0&#$.'
/'05 8'3' +071.7'& +0 5*' &#:<51<&#: &'4+)0 231%'44 #0& #.%6.#513 0017#5+10 #0& 71.65+10 HewlettĆPackard Journal, 1.
 01  60'   22
<
-'25 64 +0(13/'& #$165 64'3 0''&4 '00+4 "13- 17'34#8
   ''34 '5 #. ; ! 05'3(#%'4 #0& 22.+%#5+104 HewlettĆ
$15* 5*'  #0& /#3-'5+0) #42'%54 1( 5*' 231,'%5 8*+%*
Packard Journal, 1.  01  60'   22 <
*'.2'& )'0'3#5' 4:0'3): $'58''0  #0& /#3-'5+0) '
  0&'3410 '5 #. LAPACK Users' Guide,  *+.#&'.2*+#
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) Microsoft is a U.S. registered trademark of Microsoft Corporation.
/#0: 7#.6#$.' +&'#4

 6)645  '8.'55<#%-#3& 1630#.

Вам также может понравиться