Model: -17B General: Name: Business Calculator Code-Name: Trader Family: Pioneer Logic: algebraic, no precedence Features: business, solver Firsts: Pioneer, use of two-level ALPHA menu (all with -27S) Introduction: Date: 1988-1-4 Price: $110 Discontinuation: Date: 1990-1 Price: $110 Production-Run: ? Display: Type: LCD, bit-mapped Size: 2 line x 22 chars Number-Formats: sign, 12 mantissa, ., exp sign, 2 exp Annunciators: ---^ shift key printer printer data being sent ((.)) alarm past due battery battery low Data: User-Visible: Smallest: 1E-499 Largest: 9.99999999999E499 Signif.-Digits: 12 Internal: Smallest: 1E-49999 Largest: 9.99999999999999E49999 Signif.-Digits: 15 Data-Types-and-Sizes: real, 8 bytes CFLO lists, 10 1/2 bytes per list + 9 1/2 bytes per entry SUM list, 16 bytes + 8 per entry name, 1 + 1 per character equation, 10 1/2 bytes + 1 per char. in name + 1 per char. in formula solver variable, 15 + 1 per char. in name alarms, 41 per first alarm + 1 per char. in each message calculator line: numbers, 8 bytes + 1 byte per character; operators, 3 1/2 bytes Memory: Named-Registers: 4 line history, line 2 is LAST 0-9 Flags: none Register-Usage: none Numbered-Registers: 10 Program-Steps: none Program-Editing: insert Program-Display: alpha User-RAM-Bytes: 6750 Total-RAM-Bytes: 8192 ROM-Bytes: 64K Machine-State: prefix key state pending operations printer status display contrast display mode radix mark registers and history statistics lists CFLO lists alarms current application and invocation history time and time format memory File-Types: none Physical: Technology-Used: CMOS Processor: Lewis, 1 MHz Chip-Count: ? Power-Source: 3 alkaline (Panasonic LR44) or mercury (Panasonic NR44 or MR44) button cells Also: AG13 LR1154 EPX76 A76 SR445SW/W Continuous-Memory: yes Expansion-Ports: none I/O-Ports: I/R output, beeper Clock: yes, auto power off Length: ? Width: ? Height: ? Weight: ? Temperature-Range: Operating: 0 to 45 deg C Charging: - Storage: -20 to 65 deg C Keyboard: Switches: none Shift-Keys: gold, gold, above User-Defined-Keys: 6 menu keys Key-Arrangement:: ** ** ** ** ** ** ** ** ** ** ** ** ***** ** ** ** ** * ** ** ** ** ** * ** ** ** ** ** * ** ** ** ** ** * ** ** ** ** ** Key-Labels-Base-Keyboard:: ^ ^ ^ ^ ^ ^ STO RCL % DSP PRT EXIT INPUT +/- ( ) <- ^ 7 8 9 \:- v 4 5 6 x  1 2 3 - CLR 0 . = + (The CLR key has a lower label of ON.) Key-Labels-gold-gold-above::         MATH MODES PRINTER MAIN CLEAR DATA E        1/x x     y     \v/x 2 OFF MEM SHOW LAST x Programmable-Operations:: none Non-Programmable-Operations:: shift  clear shift % percent of ( start nesting ) end nesting + addition +/- change sign - subtraction 0-9, . enter digit or decimal point 1/x reciprocal <- erase character or number; cancel one level of menus = complete the operation CLEAR DATA clear all entries in current menu CLR clear calculator line CLR + + adjust display contrast CLR + - adjust display contrast CLR + 1st + 6th menu key from left clear continuous memory CLR + 3rd menu key from left reset calculator CLR + 4th menu key from left factory test, stop by CLR + 3rd CLR + 5th menu key from left initiate one self-test CLR MAIN menu, calculator already on: DSP bring up the DSP menu E start an exponent EXIT exit one menu level INPUT use number in line 1 as response LAST use number in history line 2 MAIN exit all menu levels MATH brings up the MATH menu MEM show available memory MODES brings up the MODES menu OFF off ON on PRINTER brings up the PRINTER menu PRT prints the entire current calculator line RCL 0-9 recall from register RCL INPUT recall from list into line 1 RCL var recall from menu variable shift v move to last item shift ^ move to first item SHOW show full precision STO +,-,x,\:-,y^x 0-9 storage arithmetic STO +,-,x,\:-,y^x var storage arithmetic STO 0-9 store in register STO var store in menu variable v move to next item x multiplication x^2 square y^x power \:- division \v/x square root ^ move to previous item Solver Functions #T(name:n) get frequency from cash flow list + addition - subtraction = complete the operation ABS(x) absolute value ALOG(x) common exponential CDATE current date CTIME current time DATE(dae:n) date + n days DDAYS(d1:d2:cal) days between dates using calendar cal=1 actual, 2 365 day, 3 360 day EXP(x) natural exponential EXPM1(x) natural exponential, - 1 FACT(x) factorial FLOW(x) value of the specified cash flow FP(x) fractional part HMS(x) convert to hours minutes seconds HRS(x) convert to decimal hours IDIV(x:y) integer quotient IF(c:t:f) if condition C then do T else F. conditions: <, <=, <>, =, >, >=, AND, NOT, OR, XOR INT(x) greatest integer less than or equal to x INV(x) reciprocal, 1/x IP(x) integer part ITEM(listname:x) returns item x from sum list LN(x) natural logarithm LNP1(x) natural logarithm of x + 1 LOG(x) common logarithm MAX(x:y) larger value MIN(x:y) smaller value MOD(x:y) modulus PI constant, value 3.14159265359 RND(x:y) round x to y decimal places S(var) true if solving for var SGN(x) sign of x SIZEC(listname) number of items in CFLO list SIZES(listname) number of items in sum list SPFV(i%:n) single payment future value SPPV(i%:n) single payment present value SQ(x) x squared SQRT(x) square root TRN(x:y) truncates x to y decimal places USFV(i%:n) uniform series future value USPV(i%:n) uniform series present value x multiplication \:- division \GS(cv:c1:c2:s:alg) sum alg for control variable cv from c1 to c2 step s ^ power Menus:: main: FIN BUS SUM TIME SOLVE FIN: TVM ICNV CFLO BOND DEPRC TVM: N I%YR PV PMT FV OTHER OTHER: P/YR BEG END AMRT AMRT: #P INT PRIN BAL NEXT TABLE TABLE: FIRST LAST INCR GO ICONV: EFFCT CONT EFFCT: NOM% EFF% P CONT: NOM% EFF% CFLO: CALC INSR DELET NAME GET #T? CALC: TOTAL IRR% I% NPV NUS NFV GET: *NEW names of lists BOND: TYPE SETT MAT CPN% CALL MORE BOND: YLD% PRICE ACCRU MORE TYPE: 360 A/A SEMI ANN DEPREC: BASIS SALV LIFE ACRS% ACRS MORE DEPREC: YR# FACT% DB SOYD SL MORE BUS: %CHG %TOTL MU%C MU%P %CHG: OLD NEW %CH %TOTL: TOTAL PART %T MU%C: COST PRICE M%C MU%P: COST PRICE M%P SUM: CALC INSR DELET NAME GET TOTAL CALC: TOTAL MEAN MEDN STDEV RANG MORE CALC: MIN MAX SORT FRCST MORE FRCST: name of lists, select X variable FRCST: name of lists, select Y variable FRCST: x-list y-list CORR M B MORE FRCST: MODL W.MN G.SD SIZE MORE FRCST: \GSX \GSY \GSX^2 \GSY^2 \GSXY MORE MODL: LIN LOG EXP PWR NAME: alpha edit GET: *NEW names of lists TIME: CALC APPT ADJST SET CALC: DATE1 DATE2 DAYS 360D 365D TODAY APPT: APPT1 APPT2 APPT3 APPT4 APPT5 MORE APPT: APPT6 APPT7 APPT8 APPT9 APPT10 MORE APPT: DATE TIME A/PM MSG RPT HELP MSG: alpha edit RPT: NONE MIN HOUR DAY WEEK ADJST: +HR -HR +MIN -MIN +SEC -SEC SET: DATE TIME A/PM M/D 12/24 HELP SOLVE: CALC EDIT DELETE NEW CALC: custom menu of user variables EDIT: alpha edit NEW: alpha alpha: ABCDE FGHI JKLM NOPQ RSTUV WXYZ ABCDE: A B C D E OTHER FGHI: F G H I  OTHER JKLM: J K L M  OTHER NOPQ: N O P Q  OTHER RSTUV: R S T U V OTHER WXYZ: W X Y Z  OTHER OTHER: : < > #  MORE OTHER: $ \GS , . / MORE OTHER: A: O: U: L- ? MORE OTHER: AE Ao O/ N~ ?upside MORE OTHER: A~ C, & \^o \<) MORE OTHER: ~ ! @ ^ * MORE OTHER: [ ] " ' ; MORE alpha edit: DEL <<- <- -> ->> ALPHA DSP: FIX ALL . , FIX 0-11 MATH: LOG 10^X LN EXP N! PI MODES: BEEP PRINTER PRINTER:LIST STK REGS TIME MSG TRACE Bugs/ROM-Versions:: none Notes:: The AMORT and IRR functions compute to display precision accuracy. Message-ID: <1993Apr16.email@example.com> From: vacsc08l@VAX.CSUN.EDU Date: Fri, 16 Apr 1993 19:11:49 GMT Has anyone else played with machine code programming on the HP-17B, 27S, or 42S. I seem to have acquired a 17BII accidentally, and have been exploring its hardware. This machine has a memory editor just like the 48 does (so do the 17,27, and 42.) You get in the same way: ON-4th menu key, then <- to enter editor. Press . immediately after entering to show your version number. Keys are: ^v X divide + - move around by varying amounts, 0-9 and menu keys enter hex, PRT sends line to IR (potentially to 48 running INPRT, then to PC for disassembly), and . executes at the current address. Note that execute is a call, doing a RTN goes back to the editor from your ML code. Basic architecture is 64KB (128K nybbles!) of ROM at 00000, display at 40000, and 8K of RAM at 50000. The first part of RAM changes on the fly, so around 51000 or 52000 is good for experim- ental code. One can do small machine language programs simply by writing the code on the PC, using SASM on it, and typing in the hex digits in the .L file. If one creates a Solver equation with a recognizable pattern, then scans from 54000 (end of RAM) back- wards, one can easily find it. This is a way to enter ML without wrecking normal memory. Has anyone played with this? Where are the hardware registers? How well could one integrate user-written code with the operating systems on these machines? They are RPL machines internally; could you write system RPL as well as machine code? -- Mike at CSUN (firstname.lastname@example.org) P.S. The 19B does not appear to have a memory editor. Is there any hole in the OS where one could push some ML? This would probably be the same as the 28S except 8K ram.
Last modified Saturday, 2012-02-25T17:29:23-06:00.