<-[[.:]] ====== LF15C - Firmware for the DM15 ====== ** A 3rd Party Firmware for the DM15 family of calculators ** ===== Overview of LF15C ===== * Full development history in HP Forum thread [[https://www.hpmuseum.org/forum/thread-20046.html|New firmware for the Swissmicros DM15L]] * LF15C is written by HP Museum Forum member **jebedeo** * It is a replacement firmware for the Swiss Micros [[https://www.swissmicros.com/product/dm15c| DM15C]] & [[https://www.swissmicros.com/product/dm15l | DM15L]] calculators. * also runs on the original [[https://www.swissmicros.com/product/dm15| DM15]] credit card version no longer in production * It is not an emulation or an exact simulation of the HP15C * It runs directly on the hardware without an emulation layer. * It is very much **faster** than the stock firmware * It has full-time complex number support * including display of the full real & imaginary parts on the LCD together ''3.345 +22.356 i'' * It has a 4-level stack with **full-time 2-level display** of ''X'' and ''Y'' * All the main HP15C functions are included **with the exception of Matrix support** {{:public:calculator:info:img_20260130_092509.jpg?600|}} ===== Installing LF15C ===== ==== DM15L running V32 or earlier (Linux) ==== * ''sudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200'' * Press hidden ''reset'' button * firmware is flashed * press hidden ''reset'' button to start new firmware ==== DM15L running V33 or later (Linux) ==== This behaviour isn't consistent! I've seen it be possible to flash and run LF15C directly after DM15 V34 with no problems. I've also seen the problems described below, requiring downgrade to V32. Just bear it in mind if you have problems starting LF15C after flashing it on top of V33-onwards The new Swiss Micros firmware V33 changes the behaviour of the bootloader, and it appears to be impossible to flash 3rd party firmware when the calculator is running V33 or later. The firmware appears to flash correctly, but on ''reset'' it will not start The solution is to downgrade to **V32** first, and then install **LF15C** * ''sudo lpc21isp DM15_M1B_32.hex /dev/ttyUSB0 115200 1200'' * press hidden ''reset'' button * firmware is flashed * press hidden ''reset'' button to start V32 firmware * ''sudo lpc21isp LF15C_250408.hex /dev/ttyUSB0 115200 1200'' * press hidden ''reset'' button * firmware is flashed * press hidden ''reset'' button to start new LF15C firmware ==== For installation using Windows ==== * The Swiss Micros **Voyager Update Tool** will work to install LF15C * Do not use the new Web Update tool * The same caveats regarding installation after using the Swiss Micros V33 apply * **First downgrade to V32** * Then flash with LF15C * You need to use the hidden ''reset'' button in all cases. ==== Files ===== === Download from here === |Latest LF15C firmware |{{ :public:calculator:info:lf15c_250408.hex |}}| |V32 firmware|{{ :public:calculator:info:dm15_m1b_32.hex |}}| |Swiss Micros Voyager Windows Update Tool|{{ :public:calculator:info:voyage_firmware_tool.zip |}}| === Download from HP Forum & Swiss Micros === * The Firmware files are available from the HP Forum Thread for this firmware - at the foot of [[https://www.hpmuseum.org/forum/thread-20046-post-173574.html#pid173574 |Post #1]] * the version attached to Post #1 is always the latest available. * At present (Jan '26) there is also a beta version which is being used to test various compiler optimizations, and is buggy and best avoided. * Swiss Micros * V32 Firmware [[https://technical.swissmicros.com/voyager/firmware/old/DM15_M1B_32.hex | DM15_M1B_32.hex]] * Voyager Update Tool [[https://technical.swissmicros.com/voyager/firmware/Voyage_Firmware_Tool.zip | Voyager Firmware Update Tool]] ===== LF15C General Info ===== * Full time complex stack shows real & imaginary parts together as e.g. Rectangular: ''3.45 +4.34 i'' or Polar: ''5.5442 ∠51.5177'' * maximum number range approx. **±1.797 x 10308** * largest integer factorial ''170'''f''x!' = ''7.2574 E306'' * smallest positive number approx. **1.00 10-323** before ''0'' is returned * Precision **15** decimal places * **π** displays as **3.14159265358979** * **e** displays as **2.71828182845905** * Fingerprinting - see [[..:bench2#Fingerprinting|]] 9SINCOSTANATANACOSASIN9'-' **-1.6584 x10 -10** * User Programs can be saved/loaded via USB Serial port using a terminal emulator such as Putty * LF15C uses **binary** floating point representation, rather than the more common BCD. * This improves the speed but introduces occasional //**small**// rounding errors ++++ Example (Click to view) | Try to add 0.3 to itself twice to make 0.9 and subtract 0.9 from your calculated value ''0.3'' ENTERENTER'+''+' This shows ''0.9000'' Now enter 0.9 ''0.9'' and subtract '-' gives the answer ''-1.1102 E-16'' instead of ''0.000'' A tiny error but visible on certain calculations where the binary cannot accurately represent a decimal fraction.... if you care of an error of the order of 10-16 This error is only significant if you need to multiply very small results of such calculations by very big numbers. Most calculations are not affected by the binary representation issues and the benefit of faster calculations more than compensates. ++++ ===== HP15C functions ===== * Fix / Sci / Eng display formats * √x / x2 * ex / Ln * 10x / Log * yx / % * 1/x / Δ% * Sin / ASin * Cos / ACos * Tan / ATan * Hyperbolics of Sin/Cos/Tan * CHS / ABS * EEX / π * Deg / Rad / Grad Angle Mode * ->H.ms / ->H Conversions * ->Rad / ->Deg Conversions * X! * integer, non-integer, negative and complex support * Statistics * Σ+ two variable accumulation * mean * standard deviation * Linear Regression * slope / intercept * ŷ estimation / r correlation coefficient * Combinations / Permutations * Usual 4 level stack manipulations * Last x * Roll Down ↓ * Roll Up ↑ * Swap ''x'' <-> ''y'' * Swap ''x'' <-> any Storage Register * **100** storage registers (numbered 00-99) * capable of saving Complex Numbers * Indirect Register pair I / (i) * Indirect Program Label / Line number addressing via Register I * Random Number Generator * Rounding * Fractional / Integer * Usual Keystroke Programming features * SST/BST * LBL * LBL A - E * LBL **00 - 99** * DSE / ISG * including usual loop control indexing * Logical tests * Branching * GTO * GSB * RTN * PSE * R/S * SF / CF / FS? * 10 user flags for program control * Solver * can be used via a program * Numerical Integration * variable precision via display digit format * can be used via a program * quick clear of * Statistical data * Individual Program * All stored Programs * Storage Registers (0-99, I and (i)) * Full digit mantissa preview ===== HP15C features not supported ===== * Matrix functions * User Mode * Memory management * partitioning between Storage Registers and Program Space is not required or supported ===== DM15L features not supported ===== * Real Time clock * Switchable 1-line display option (V33 feature) * CPU speed switching * Display Font options * Adjustable LCD contrast * Various self-tests * Conversions & Constants (V33 feature) ===== Speed tests ===== * Very much faster than stock DM15L firmware ... see [[..:bench2|]] ==== n-Queens==== ^Calculator^Firmware^Time^ |DM15L| V34 |202 seconds| |DM42 |3.23 |7.30 seconds| |DM15L*|LF15C 250408| 0.992 seconds| ==== Savage ==== ^Calculator^Firmware^Time^ |DM15L | V34 | 247 seconds | |DM42 | 3.23| 14.9 seconds| |DM15L* |LF15C 250408 | 4.008 seconds | ===== Using LF15C ===== ==== Complex Numbers ==== * The stack is permanently in **complex mode** and operates slightly differently to the stock HP15C === Making & manipulating a complex number === Press 'f' 'I' in normal mode to create **& destroy** a complex number from <=> to ''y'' and ''x'' on the stack. ++++ Example (click to view) | ''y'' -> Real and ''x'' -> Imaginary 3ENTER4 ''Y: 3.000'' ''X: 4_'' 'f''I' creates ''X: 3.000 +4.000 i'' Press 'f' (i) to change ''x'' to its complex conjugate ''X: 3.000 -4.000 i'' Press 'f'Re<>Im to switch Real and Imaginary parts of complex number in ''x'' ''X: -4.000 +3.000 i'' Press 'f' 'I' will destroy the complex number back to separate real numbers on the stack. Real -> ''y'' and Imaginary -> ''x'' ''Y: -4.000'' ''X: 3.000'' ++++ Make a pure imaginary number by using 'f'Re<>Im ++++ Example (Click to view) | 3 ''X: 3_'' 'f'Re<>Im ''X: 0.0000 + 3.0000 i '' ++++ === Rectangular and Polar modes for complex numbers === * 'f' →R and 'g'→P do **NOT** to convert ''x'' and ''y'' stack levels between ''Rect'' and ''Polar'' values as in the HP15C * ->R and ->P are //**Mode Switching**// commands for the whole complex stack. * When in ''P''olar mode **ALL** Complex numbers on the stack are in Magnitude / Angle format. * The angle format can be ''Deg'' or ''Rad'' as appropriate ++++ Example (click to view) | start in ''R''ectangular mode and ''Deg'' angle mode ''3'' ENTER''4'''f''I' ''3.000 +4.000i'' Convert to ''P''olar 'g'->P ''5.000 ∠53.1301'' Convert to ''Rad'' 'g'RAD ''5.000 ∠0.9273'' Convert back to ''R''ectangular 'f'->R ''3.000 +4.000i'' ++++ === Arithmetic can be done in Rectangular or Polar mode. === * Mode can be switched at any time - perhaps switching to ''R''ectangular to enter a ''R''ectangular format number, when working in ''P''olar, and then switching back to ''P''olar once it's been entered on the stack.. * Intermediate calculations can be done whatever mode is current. * this is unlike the HP15C, where complex arithmetic has to be done in ''R''ectangular format - and ''P''olar format numbers must be converted -> ''R'' first. * To confirm the mode in use an annunciator ''P'' is always present when in ''P''olar. * No ''P'' means ''R''ectangular mode is active. ++++ Example (click to view) | '' (3+4i) + (8∠120°) / (6-8i) '' Initially make sure of ''R'' mode: 'f'->R Enter ''R''ectangular format number ''3'' ENTER ''4'' 'f''I' '' 3.0000 +4.0000 i '' Enter a ''P''olar format number ''8 ∠120'' 'g'->P (display changes to show ''5.0000 ∠53.1301'') ''8'' ENTER ''120'' 'f''I' ''Y: 5.0000 ∠53.1301'' ''X: 8.0000 ∠120.0000'' add '+' ''X: 10.9739 ∠95.2284'' enter ''R''ectangular format for final number in calculation 'f'->R '' -1.0000 +10.9282 i '' ''6'' ENTER ''8'' CHS'f''I' divide / '' X: -0.9343 +0.5757 i '' Or in ''P''olar 'g'->P '' X: 1.0974 ∠148.3585 '' It's very quick & easy to switch from cartesian to polar and back again mid calculation - whichever mode suits the format of the number you're entering. The mathematical function can be done in whichever mode you're in at the time. ++++ ===== Other features ===== ==== Indirect addressing ==== Similar features to the standard HP15C, with differences due to increased Program Label numbers === Indirect Register pair I & (i) === Indirect Register pair I and (i) work in the usual way ++++ Example (click to view) | A number stored in I is used as the register number addressed by (i) ''23'' STO'I' 'g'πSTO'(i)' this puts ''3.14159...'' in register ''23'' ''98''STO'I' ''123''STO'(i)' this puts ''123'' in register ''98''. RCL'(i)' ''123'' ''23'' STO'I' RCL'(i)' ''3.14159...'' ++++ === Indirect Program Label addressing === As in the HP15C you can also indirectly address Program Labels using the contents of the **I** register to point to the label required. The HP15C allowed 20 numerical Program Labels ''0'' - ''.9'' which meant indirect addressing for Labels ''A'' - ''E'' was done by reference to ''20'' - ''24'' in Register I LF15C has 100 numerical Program Labels so.... Store ''00'' - ''99'' in **I** to address numerical Program Labels ''00'' - ''99'' Store ''100'' - ''104'' **I** to address Program Labels ''A'' - ''E'' Using ''GTO I'' or ''GSB I'' in a program will lead to a jump to the Program Label referred to by contents of **Register I**. Changing Register **I**'s contents (e.g. within a program) can then cause the execution of program to branch in different ways - this can be a very powerful mechanism! ++++ Example (click to view) | Store 100 (for LBL A) in the indirect Register I ''100''STO'I' Use the value stored in ''I'' as a Label indirectly by calling it from within a program. LBL A is a small program to do a simple calculation (area of circle from radius held in ''x'') LBL B, which has the single command ''GTO I'' Running LBL B 'f''B' actually runs the program in LBL A : **GTO I** is interpreted as **GTO A**. LBL A X^2 PI * RTN LBL B GTO I RTN Changing the contents of Register I will change where LBL B points to. This allows you to make decisions and branches to different code communicated via the indirect register. Storing ''101'' in ''Reg I'' and then running LBL B has the effect of an endless loop..... LBL B calls itself (indirectly via **''I=101''**) Use R/S to interrupt the endless loop! Using ''GTO I'' in LBL B means execution passes to LBL A and does not return to LBL B on completion. Using ''GSB I'' in LBL B instead of ''GTO'' means that after running LBL A (via indirection) execution returns to LBL B and continues.... ++++ === Indirect Program Line Number Addressing === Similar to the above, if the Indirect Register I contains a **NEGATIVE** number then a call to ''GTO I'' or ''GSB I'' will cause a branch to the absoloute **Line Number** referred to in **I**. ++++ Example (Click to view) | 0 Empty 1 LBL A 2 GTO I 5 RTN 6 LBL 88 8 X^2 9 PI 10 * 11 RTN 12 Empty Storing ''88'' in Register I would make Program **A** branch to the Label 88 (line 6) Storing ''-9'' in Register I (''9 CHS STO I'') would make Program **A** branch to ''PI'' (at line 9) and bypass the ''X2'' instruction. Line numbering isn't straightforward, as each instruction may use **one** or **two** line numbers depending on the instruction itself, so you have to be careful about which line you need to address. ++++ ==== And the rest ==== * 100 Storage Registers ''00 - 99'' are capable of storing Complex Numbers * Factorial / Gamma 'x!' works on integer (positive), non-integer (positive and negative) //**and**// complex numbers * Program Mode shows human-readable text rather than HP15C op-codes * 2-line display of Program being edited * Selection of logical tests can be done in usual HP15C fashion with ''TEST 0'' - ''TEST 9'' * Test can also be selected from a scrolling list of options after initially pressing 'g'TEST with the choice being made via soft-keys & LCD Prompts * To run a program with a numeric label (i.e. other than ''LBL A'' -> ''LBL E'') press 'f' LBL ''##'' * e.g. 'f' LBL ''88'' * this is different than on the original HP15C where to run a label you used GSB''##'' * In program mode, 'f' CLEAR PREFIX places the ''runTime'' opCode in the program. ''runTime'' writes to ''x'' the program execution time once it's executed. * Deleting User Programs * Delete a //**single program**// : 'f' CLEAR PRGM followed by a label * Delete //**ALL programs**// : 'f' and __long press__ CLEAR PRGM * FIX/SCI/ENG don't round numbers unless 'g'RND is pressed. * 'f'ENG''nn'' sets the number of significant digits as requested, **UNLIKE** the original HP15C where 'f'ENG''n'' sets the significant digits to ''n + 1'' * There are 10 user flags, from 0 to 9. * There are no LCD annunciators to show state, but flags can be set, cleared and tested for decision making in program branching * Long press GTO in program mode to access ''go to label'' feature (single press in run mode) * Long press GSB in program mode to access ''go to line number'' feature (single press in run mode) * When running a program step by step, a long press on SST doesn’t execute the current step. * Unused Keys * 'f' USER, 'g' MEM, 'f'DIM, 'f'MATRIX and 'f'RESULT are not implemented and don't do anything at the moment. ===== LF15C Serial Port Info ===== * Serial Port dump info : [[https://www.hpmuseum.org/forum/thread-20046-post-194697.html#pid194697]] * Serial Port settings * Rate : 57600 * Data : 8 bit * Stop : 1 bit * Parity : None * Flow Control : None ** ALWAYS INCLUDE AT LEAST ONE TRAILING ZERO FROM THE STRING OF DIGITS REPRESENTING THE MEMORY DUMP ** * To extract a dump from calculator press and hold STO * the string of digits can be copy/pasted into a text file for storage * it is only necessary to keep **one final zero** - the rest of the zeros can be ignored * To upload a previously saved dump * copy it to clipboard and then * press and hold RCL until the terminal shows ''Paste PrgMemory:'' * in Putty ShiftInsert to paste clipboard text into terminal ===== LF15C Firmware Files ===== Tabulated List of LF15C firmware versions ^Date^Firmware^Version^Firmware File^Comments^ |12/09/24 | LF15C | beta240911| {{ :public:calculator:info:lf15c_beta240911.zip |}} | initial public beta | |15/09/24 | LF15C | beta240914 | {{ :public:calculator:info:lf15c_beta240914.zip |}} | | |17/09/24 | LF15C | beta240916 | {{ :public:calculator:info:lf15c_beta240916.zip |}} | | |17/09/24 | LF15C | beta240916_2 | {{ :public:calculator:info:lf15c_beta240916_2.zip |}} | | | 21/09/24 | LF15C | beta240920 | {{ :public:calculator:info:lf15c_beta240920.zip |}} | very fast [[..:bench2#Results| benchmarking]], roots of -ve numbers bug | | 21/09/24 | LF15C | beta240921 | {{ :public:calculator:info:lf15c_beta240921.zip |}} | Fix of "powers of negative numbers" bug, new 10%%^%%x bug | | 23/09/24 | LF15C | beta240923 | {{ :public:calculator:info:lf15c_beta240923.zip |}} | 10%%^%%x fix, other bug fixes | |25/09/24 | LF15C | beta240925 | {{ :public:calculator:info:lf15c_beta240925.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192246.html#pid192246 | Bug fixes]] [[https://www.hpmuseum.org/forum/thread-20046-post-192255.html#pid192255 | More new bugs]] | |28/09/24| LF15C | beta240928 | {{ :public:calculator:info:lf15c_beta240928.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192465.html#pid192465 | bug fixes ]] | | 30/09/24 | LF15C | beta240929 | {{ :public:calculator:info:lf15c_beta240929.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192556.html#pid192556 | Bug Fixes etc. ]] | | 30/09/24 | LF15C | beta240929_2 | {{ :public:calculator:info:lf15c_beta240929_2.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192560.html#pid192560 | RCL I Bug fix ]]| | 01/10/24 | LF15C | beta240930 | {{ :public:calculator:info:lf15c_beta240930.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192625.html#pid192625 | Bug Fixes ]] | | 02/10/24 | LF15C | debug241001 | {{ :public:calculator:info:lf15c_debug_for_john241001.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192676.html#pid192676 | version pre-loaded with my B.Fil prog for debug purposes ]] | | 02/10/24 | LF15C | beta241002 | {{ :public:calculator:info:lf15c_beta241002.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192696.html#pid192696| Bug Fix ]] my B.Fil runs correctly. No known showstoppers left? | | 03/10/24 | LF15C | beta241003 | {{ :public:calculator:info:lf15c_beta241003.zip |}} | fPREFIX fix. Discovered inverse HYP SIN bug | | 06/10/24 | LF15C | beta241005 | {{ :public:calculator:info:lf15c_beta241005.zip |}} |[[https://www.hpmuseum.org/forum/thread-20046-post-192859.html#pid192859 | fixes ]],HYP ASIN bug still present | | 07/10/24 | LF15C | beta241006 | {{ :public:calculator:info:lf15c_beta241006.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192907.html#pid192907 | Bug fix and new runTime function ]] | | 08/10/24 | LF15C | beta241007 | {{ :public:calculator:info:lf15c_beta241007.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-192956.html#pid192956 | Bug Fixes ]] | | 10/10/24 | LF15C | beta241009 | {{ :public:calculator:info:lf15c_beta241009.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-193093.html#pid193093 | Bug Fixes ]] | | 12/10/24 | LF15C | beta241011 | {{ :public:calculator:info:lf15c_beta241011.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-193245.html#pid193245 | RND bug fix ]]| | 14/10/24 | LF15C | beta241014 | {{ :public:calculator:info:lf15c_beta241014.zip |}} | | | 20/10/24 | LF15C | beta241020 | {{ :public:calculator:info:lf15c_beta241020.zip |}} | | | 21/10/24 | LF15C | beta241021 | {{ :public:calculator:info:lf15c_beta241021.zip |}} | | | 22/10/24 | LF15C | beta241022 | {{ :public:calculator:info:lf15c_beta241022.zip |}} | | | 24/10/24 | LF15C | beta241024 | {{ :public:calculator:info:lf15c_beta241024.zip |}} | | | 31/10/24 | LF15C | beta241031 | {{ :public:calculator:info:lf15c_beta241031.zip |}} | | | 02/11/24 | LF15C | beta241102 | {{ :public:calculator:info:lf15c_beta241102.zip |}} | | | 10/12/24 | LF15C | beta241210_2 | {{ :public:calculator:info:lf15c_beta241210_2.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-196923.html#pid196923 |Integrate feature]] | | 17/12/24 | LF15C | beta241217 | {{ :public:calculator:info:lf15c_beta241217.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-197261.html#pid197261 | Integrate improvements ]]| | 21/12/24 | LF15C | beta241221 | {{ :public:calculator:info:lf15c_beta241221.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-197462.html#pid197462 | Bug Fixes ]]| | 22/12/24 | LF15C | beta241222 | {{ :public:calculator:info:lf15c_beta241222.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-197516.html#pid197516 | Sin(180)=0 Fixed ]] | | 14/02/25 | LF15C | beta250123 | {{ :public:calculator:info:lf15c_beta250123.zip |}} |[[https://www.hpmuseum.org/forum/thread-20046-post-198747.html#pid198747| Enter Key bug fixes ]] | | 15/02/25 | LF15C | beta250215 | {{ :public:calculator:info:lf15c_beta250215.zip |}} |[[https://www.hpmuseum.org/forum/thread-20046-post-199820.html#pid199820 | Better integration routine and bug fixes]] | | 16/02/25 | LF15C | beta250216 | {{ :public:calculator:info:lf15c_beta250216.zip |}} | Y↑X and TEST [[https://www.hpmuseum.org/forum/thread-20046-post-199841.html#pid199841 | bug fixes]] | | 17/02/25 | LF15C | beta250217b | {{ :public:calculator:info:lf15c_beta250217b.zip |}} | Integration [[https://www.hpmuseum.org/forum/thread-20046-post-199875.html#pid199875 | bug fix ]]| | 19/02/25 | LF15C | beta250218 | {{ :public:calculator:info:lf15c_beta250218.zip |}} | Integration [[https://www.hpmuseum.org/forum/thread-20046-post-199946.html#pid199946 | programability ]]| | 20/02/25 | LF15C | beta250220 | {{ :public:calculator:info:lf15c_beta250220.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-200014.html#pid200014 | Linear Regression bug fix ]] | | 21/02/25 | LF15C | beta250221 | {{ :public:calculator:info:lf15c_beta250221.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-200051.html#pid200051 | Complex/non-integer factorial ]] | | 25/02/25 | LF15C | beta250225 | {{ :public:calculator:info:lf15c_beta250225.zip |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-200298.html#pid200298 | improved precision in x! function ]] | | 26/02/25 | LF15C | beta250226 | {{ :public:calculator:info:lf15c_beta250226.hex |}} | [[https://www.hpmuseum.org/forum/thread-20046-post-200326.html#pid200326 | f-PREFIX bug fix ]] | | 12/01/26 | LF15C | 250408 | {{ :public:calculator:info:lf15c_250408.hex |}} | no longer BETA. Stable version - mature?? | ===== Further Information ===== * LF15C program dumps [[..:progs:dm15l_progs#Program dumps for LF15C|]] {{tag>calculator dm15l lf15c}}