Page 2
Gene Wright was kind enough to be my voice at the HHC 2010 conference. ‘ A n g e l Ma r t i ncontributed valuable 41CL-specific software to the project. Eric Rechlin made the labels for the front of the calculator.
Table of Contents 1. Introduction ......................5 Can my calculator be upgraded? ..............7 2. Getting Started ....................9 Installing the 41CL Circuit Board ..............9 Initial Software Configuration ..............18 3. 41CL Extra Functions ..................20 Extra Functions Parameter Passing ............21 MMU Functions ...................
41CL User Manual Introduction The 41CL design takes advantage of modern technology to significantly add to the capabilities of the 41C system. In particular, the 41CL provides the following features: • All features of an HP-41CX except for the Time Module. CX Time functions (the software) are included, but a Time module plugged into a Port (or our Time Clone mounted on the 41CL board) is required for full timer functionality.
Page 6
• The advanced technology used in the 41CL is a double-edged sword. The Flash memory, as well as the programmable logic devices used to implement the NEWT microprocessor, only guarantee data retention for 20 years.
41CL User Manual Can my calculator be upgraded? The 41CL is an upgrade created by replacing the CPU circuit board in a 41C/CV/CX with the 41CL circuit board. This replacement is only possible for calculators that actually have a CPU circuit board. The easiest way to tell if this is the case is to look at the HP-41 display.
41CL User Manual Getting Started The 41CL circuit board is designed to be a drop-in replacement for the original CPU circuit board, and the installation is not difficult. However, certain precautions must be taken to prevent damage to both old and new circuitry.
Page 11
The photo below shows an early HP-41C with the type of display driver chips that will require an extra component if used for the 41CL. If your calculator looks like the previous photo, with grey epoxy blobs, proceed to step 7.
Page 13
10. Using only the edges of the 41CL circuit board place this board on the main circuit board, with the two lower screw posts going through the holes in the 41CL circuit board just as they did with the original CPU circuit board.
Page 14
41CL User Manual 11. The 41CL circuit board contains a simple RS-232C serial port. The Receive Data, Transmit Data and Ground signals for the serial port are present on the programming connector for the CPLD on the board. The optional serial connector contains a plug for this connector, connected through a cable to a 2.5mm stereo jack mounted in a...
Page 16
14. Carefully plug the connector on the cable into the connector jack on the 41CL circuit b o a r d w i t h t h e “ C P ” l a b e l n e x t t o i t . T h i s i s t h e p r o g r a m m i n g c o n n e c t o r f o r t h e CPLD.
Page 17
17. Re-install the battery case (with the new batteries) and turn the calculator on. If there is no response the flexible connectors are not completely connecting the 41CL circuit board to the main circuit board, and you will need to either tighten the screws a little MEMORY or reform the circular connector slightly.
Functions into the lower half of Port 1 (which is Page 8). Since the MMU is still dis- abled this has no effect yet. Note that any port can be used for the 41CL Extra Func- tions. Plugging the 41CL Extra Functions into a Port allows the use of HP-IL.
Page 19
ALPHA enables the MMU, which starts the redirec- tion of either Page 8 or Page 7 to the 41CL Extra Functions. When using Page 8 any ROM module plugged into Port 1 will not be seen by the 41CL. However, Port 1 can still be used for modules with a fixed address such as the 82143A Printer, the 82160A HP-IL Module, the 82182A Time Module or the 82242A IR Printer Module.
The Serial Port Functions allow users to control the serial port on the 41CL circuit board. Using the serial port will require installation of the optional serial port connector.
41CL User Manual Extra Functions Parameter Passing Many functions in the 41CL Extra Functions require hexadecimal (hex) values as arguments, and the ALPHA register is used to hold these arguments. Valid hex digits are - F. Any other character entered as a hex digit will...
This delayed switch allows the function to complete normally and return to the Operating System. The 41CL Extra Functions must have been assigned to some other page prior to executing MMUEN, or the 41CL Extra Functions will no longer be available to the user.
Advanced users may enjoy exploring some of the poorly-documented images that are included in the 41CL. Advanced users can even build a new module image in memory and then virtually plug it into a port by directly specifying the relevant memory address for the Plug function.
RAM, and if you attempt to write to Flash memory the operation will appear to pro- ceed, without any writes occurring. Given that they are operating on 4096 memory locations, the 41CL is automatically switched to the 50x Turbo mode during the transfer. The current Turbo mode is restored after the transfer is complete.
Memory Buffer Functions The 41CL reserves one 4K block (one page) of System memory to be used as a buffer for assembling module images. The Extra Functions Buffer Area is located at physical addresses 0x805000 - 0x805FFF, and has an associated Extra Functions Buffer Pointer stored at address 0x804010.
Flash memory has limited endurance, typically 100,000 write cycles, and is erased by sec- tors, which are 64K bytes (32K words, or eight pages) in the case of the 41CL. An erased F l a s h s e c t o r r e t u r n s 0 x F F F F i n e v e r y l o c a t i o n . O n l y 0 ’ s c a n b e w r i t t e n t o a n y g i v e n l o c a - tion in Flash, which means that writes to Flash can o n l y c h a n g e a “...
If you really want to use either of the Flash Memory functions you must copy the entire 41CL Extra Functions image to RAM and then program the MMU to use this RAM copy of these functions...
The serial port uses 8N1 format (eight bits of data, no parity, and one stop bit). Depending on the baud rate, it may be advisable to run the 41CL in 50x Turbo mode when performing serial operations to make sure that the CPU has sufficient speed to keep up with the serial port.
Executing (Read 41CL Extra Functions Location) polls the logical memory for the current location of the 41CL Extra Functions. The page where the 41CL Extra Func- through 15, tions reside is returned in the X register as a decimal number in the range corresponding to Pages 6 through F.
41CL Calculator Manual Error Messages The table below lists all possible error messages returned by the 41CL Extra Functions, along with the meaning of the error message. Error Message Function Meaning PLUG Address is outside of Flash address range ADDR ERROR...
41CL Calculator Manual Function Summary The table below lists all of the 41CL Extra Functions, along with the arguments and return values. Arguments Returns Returns Returns Function Notes (ALPHA) (ALPHA) (Display) BAUD12 BAUD24 BAUD48 BAUD96 module ID or IMDB IMDB...
The table below shows the module images that are present in the Flash memory of the PLUG PPLUG 41CL, along with the mnemonics for use with the functions, any restrictions on module image placement, the group the image is in, and the XROM numbers used by the image.
Page 58
2 pages 21/31 YBFR Extra Functions Buffer Area (RAM page 805) YCLN 41CL Clone Functions YFNF 41CL Memory Functions YFNP 41CL Extra Functions Plus YFNX 41CL Extreme Functions YFNZ 41CL Extra Functions YLIB 41CL Extreme Functions Library Page 4 YRGA...
Page 59
Identifiers 9xxA through 9xxZ are not really identifiers. Instead, these mnemonics are used as aliases for secondary MMU configurations. Refer to the 41CL Extreme Functions manual for a detailed description of how this works. Idenifiers 9MM1, 9DD2 and 9YY3 are not really identifiers. Rather, the MM/DD/ YY are replaced with the issue date of the Image Database.
This natural division of 4K pages is used by the MMU in the 41CL, so that each bank in each page can be mapped by the MMU to a specific absolute address in the Flash memory or RAM on the 41CL circuit board.
Page 62
41CL circuit board. The 41CL does not allow user control of the mapping of some of the pages, to protect the Operating System (OS) of the calculator. So pages 0, 1, and 2 are normally never mapped by the MMU, because this is where the basic OS is stored.
Page 63
Pages 8-F correspond to the Ports on the calculator, with pages 8-9 being Port 1, pages A- B being Port 2, and so on as shown below. The MMU entries for these pages are automatically handled by 41CL Extra Functions, so only the MMU entries for Page 4 needs to be manually programmed.
MMU point to a 4K block of RAM rather than a 4K block in the Flash portion of the address space. In the 41CL bit 23 of the physi- cal memory address determines whether the address is in Flash (bit 23 is zero) or in RAM (bit 23 is one).
Page 65
The table below shows the organization of the 41C register memory in the physical mem- ory of the 41CL circuit board. Because the OS manages the data in these locations, users are discouraged from attempting to modify any of these memory locations.
41CL Extra Functions allow the user to insert module images into nearly every open Page on the 41CL. The one exception is Page 4. This was done intentionally, because Page 4 is special as far as the Operating System (OS) is concerned, and can take over the machine in certain circumstances.
MMUEN ALPHA Disabling the FORTH ROM is only possible by turning off the calculator and momentarily removing the batteries, because once the FORTH module is active the 41CL Extra Functions are no longer available. The HP Service ROM The HP Service ROM was used by HP to test returned calculators, and is hard-coded to use Page 4.
2 character 3 of module identifier Digits 3 and 2 of the first word in a database entry are used only by the 41CL Extreme Functions, to search the database by group. The table below shows the groups available and their encoding in these two digits.
Page 71
000, along with a type digit of 0, the entry is considered a null entry. Digit 3 of the second word of a database entry is used only by the 41CL Extreme Functions if there are restrictions on where the image can be placed, according to the...
Page 73
Identifiers 9xxA through 9xxZ are not really identifiers. Instead, these mnemonics are used as aliases for secondary MMU configurations. Refer to the 41CL Extreme Functions manual for a detailed description of how this works. Idenifiers 9MM1, 9DD2 and 9YY3 are not really identifiers. Rather, the MM/DD/ YY are replaced with the issue date of the Image Database.
41CL Calculator Manual Patching Code The 41CL Extra Functions make it simple to patch software pre-loaded into the 41CL. Most of the software pre-loaded into the Flash memory can be copied to the RAM memory, patched, and then the MMU can be used to reference this patched code. Only pages that cannot be relocated by the MMU cannot be patched.
NEWT processor in the 41CL, but the write-protect feature is not supported by the 41CL hardware. Keep this in mind if you attempt to write-protect pages of HEPAX memory. The 41CL Extra Functions make it easy to create a backup copy of RAM pages, using the YMPCY function to copy an entire page of memory to another location in physical memory.
Page 81
; FF3 fixed value .FILLTO 0FFE As an example, the sequence of commands listed below uses four pages of 41CL RAM (at addresses 0x808000, 0x809000, 0x80A000 and 0x80B000) as HEPAX RAM assigned to pages C through F (Ports 3 and 4).
In addition, early versions of the 41CL keyboard scanner did not output the same scan code as the original 41C when no key is being pressed. (The idle state code was not specified in the HP documentation.)
3 of a female DB9 connector for use with a PC. The type of cable required to connect the 41CL calculator to a PC is also used for older digital cameras and cell phones, so it can still be found. However, be aware that two different signal arrangements were used for these types of cables, depending on the manufacturer.
41CL Calculator Manual Time Clone Connections 41CL boards starting with version V4 have connection points for the 41C port bus on the top of the board. This allows a Time Clone board to be attached using short jumper wires. The Time Clone board can be fastened to the top of the Flash memory chip with a small piece of double-sided tape to hold it in place.
Page 89
Grey 3 cm The connection points on the 41CL board are 1 mm by 1 mm, so the wires should be soldered oriented on the diagonal, in the directions shown in the figure. Solder the wires to the 41CL board first, working from right to left in the figure. Then solder the wires to the Time Clone board, working from top to bottom.
41CL Calculator Manual Updating 41CL Hardware The 41CL board uses programmable logic. This means that with the right equipment the hardware can be updated to correct errors. The same facilities that allow hardware programming can also be used to update the Flash memory on the board. This section will describe the connections necessary to perform hardware programming.
The 41CL board requires 5V (4.0v minimum / 6.0V maximum) for programming. • Make sure the power supply is OFF before connecting it to the 41CL board. • Connect the GND wire to the ground of a benchtop power supply.
Page 94
YCRC values for new/updated images memref 12/04/2013 updated YCRC values for updated images memref 12/05/2013 Expanded descriptions for 41CL Extreme Functions Ch. 12, 17 12/11/2013 Expanded descriptions for 41CL Extreme Functions Ch. 6, 7 01/04/2014 updated YCRC values for updated images...
Page 95
05/12/2016 new images: KRSS, KNGT, MAHJ, QUEN various 05/13/2016 new image: GSWP various added caution about using nuts to hold 41CL board in place. 05/17/2016 new image: OPLN various 06/04/2016 updated images: ADV1/2, BASI, GSB2, GSWP, MAHJ, 2SWP various...
Need help?
Do you have a question about the 41CL and is the answer not in the manual?
Questions and answers