background image

41CL User Manual

© 2019, Systemyde International Corporation

27

PLUG1U
PLUG2U
PLUG3U
PLUG4U
PLUGH

(image identifier in ALPHA register)

The

PLUG1U

(

Plug Into Port 1 Upper Half

) function is also identical to the

PLUG1

function except that it only operates on the upper half of Port 1 (Page 9 of the logical
address space). This function can only be used with module images that are one page
long.

The

PLUG2U

(

Plug Into Port 2 Upper Half

) function operates on the upper half of Port

2 (Page B).

The

PLUG3U

(

Plug Into Port 3 Upper Half

) function operates on the upper half of Port

3 (Page D).

The

PLUG4U

(

Plug Into Port 4 Upper Half

) function operates on the upper half of Port

4 (Page F).

The

PLUGH

(

Plug Into HP-IL Page

) function operates on the page normally used for the

HP-IL module (Page 7). Do not plug an HP-IL module into the calculator if you have vir-
tually plugged an image into the page 7.

The various

PLUG

functions can also be used to assign pages in physical memory

directly to the Ports. The upper three nibbles of the physical memory address (so that it
begins on a 4K boundary) are specified, and the

PLUG

function assigns either one page

independent of bank; two pages independent of bank; one page with all four banks; or
two pages, each with all four banks.

ALPHA register

7

6

5

4

3

2

1

image characteristics

format

P5 P4 P3

-

1

6

K

16K (one page, four banks)

format

P5 P4 P3

-

D

B

L

8K (two pages)

format

P5 P4 P3

-

R

A

M

4K (one page)

format

P5 P4 P3

-

M

A

X

32K (two pages, each with four banks)

The

-DBL

,

-RAM

,

-16K

and

-MAX

mnemonics can be used with either RAM or

Flash memory addresses. These mnemonics are decoded independent of the Image

Summary of Contents for 41CL

Page 1: ...41CL User Manual 2019 Systemyde International Corporation 1 41CL Calculator ...

Page 2: ...w s e x c e l l e n t We b s i t e h p 4 1 o r g A n d e v e n more important was his SDK41R6 software suite for code development and his V41 program for code debugging Numerous people have answered my dumb questions on the Web site hpmuseum org and the b o o k I n s i d e t h e H P 4 1 b y Jean Daniel Dodin was invaluable for getting a foothold on understanding the HP 41 operating system and regi...

Page 3: ... TURBO5 TURBO10 TURBO20 TURBO50 24 TURBO 24 Plug into Port Unplug from Port Functions 24 PLUG1 PLUG2 PLUG3 PLUG4 25 PLUG1L PLUG2L PLUG3L PLUG4L PLUGP 26 PLUG1U PLUG2U PLUG3U PLUG4U PLUGH 27 UPLUG1 UPLUG2 UPLUG3 UPLUG4 28 UPLUG1L UPLUG2L UPLUG3L UPLUG4L UPLUGP 28 UPLUG1U UPLUG2U UPLUG3U UPLUG4U UPLUGH 29 Memory Block Functions 29 YMCLR 29 YMCPY 30 Memory IO Read and Write Functions 31 YPOKE 31 YPEE...

Page 4: ...ary 46 6 Image Identifiers 49 7 Memory Management 61 The MMU and program addresses 61 The MMU and data addresses 64 8 Programming the MMU 67 Library 4 67 The FORTH ROM 67 The HP Service ROM 68 9 Image Database 69 10 Patching Code 78 11 Using HEPAX 80 Patching HEPAX 83 Enabling HEPAX Disassembly 83 12 Serial Connector 85 13 Time Clone Connections 87 14 Updating 41CL hardware 90 CPLD Programming 91 ...

Page 5: ...o be virtually plugged into a calculator Port and unplugged from a calculator Port Turbo mode which allows the calculator to run at up to 50X normal speed Actual values available are 2X 5X 10X 20X and 50X Numerous empty pages 4K in length of Flash memory are available for non volatile storage 122 pages 4K in length of RAM are available All RAM is continuously powered A sophisticated Memory Managem...

Page 6: ...chnology 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 The table below shows the typical current drain for the 41CL under various conditions The serial port is powered up whenever it is connected to something with a valid signal level No Time Clone installed Ti...

Page 7: ...Hewlett Packard changed the display driver circuitry in the 41 series during production and this change affected one component value on the CPU circuit board The 41CL circuit board implements the component value used in later production units Units with the correct display driver can be identified as follows I f y o u r 4 1 C n o t C Vo r C X h a s a s e r i a l n u m b e r s t a r t i n g w i t h...

Page 8: ... details In addition to the display driver change Hewlett Packard also experimented with different methods of connecting the CPU board to the main board Unfortunately it is not possible to identify units that used these different connection methods via the serial number Identifying such a calculator is a step in the installation process covered in the next section ...

Page 9: ...ools required for the installation are a small Phillips head screwdriver an Xacto knife or similar a pair of tweezers and a small flashlight Installing the 41CL circuit board Follow the steps below to perform the installation 1 Read through all of these instructions before starting the installation process to make sure that you understand each step We are not responsible if you damage or ruin your...

Page 10: ...the b o t t o m o f t h ec a s ea r e1 4 t h e ym a yb e3 8 i f t h ec a l c u l a t o r h a s b e e ns e r v i c e d w h i l e t h o s e a t t h e t o p o f t h e c a s e a r e 3 4 6 Lift off the bottom case and the U shaped center case section Note the orientation front to back of the center case section because it not symmetric D o n t w o r r yi f your old CPU board looks slightly different fr...

Page 11: ...nt if used for the 41CL If your calculator looks like the previous photo with grey epoxy blobs proceed to step 7 The early display driver required a different capacitor value to control the time delay for the auto off function The photo below shows the required 10nF capacitor soldered in place The type of capacitor is not critical but it must be able to tolerate 6 volts ...

Page 12: ...white when viewed from the side This connector type is difficult to reuse and not really recommended The connector style in the middle is rare It has conductors embedded vertically in the material and will appear white or pale pink from the side This connector type is impossible to reuse which is probably why it is rare Unless you have a replacement connector you should fnd another calculator to u...

Page 13: ...omponents on the bottom of the 41CL board The spacer and connectors should look like those in the photograph below for a proper installation If the spacer looks different trim the excess material so that it looks like the case shown in the previous photo on the left or the right 10 Using only the edges of the 41CL circuit board place this board on the main circuit board with the two lower screw po...

Page 14: ...is designed to occupy Port 1 on the calculator only While it can be plugged into any other Port doing so will interfere physically with the remaining Ports because of the cable CAUTION The tension holding a 2 5mm plug in the serial connector jack is higher than the tension holding the blank port cover in the calculator body This means that trying to pull out the plug will tend to pull the blank po...

Page 15: ... the space between the calculator body and the flexible Port connectors 13 Route the cable down the side of the calculator body between the edge of the battery compartment and the outside of the case It is helpful to use double sided tape to hold the cable in place next to the battery compartment between the Port and the battery charger Port ...

Page 16: ... e c t o r f o r t h e CPLD The connector used is very fragile and was not really designed for multiple insertions so take your time but make sure the plug is fully seated in the connector on the 41CL circuit board The two connectors for programming the CPLD and the FPGA on the board are identical and plugging the serial port connector into the wrong one will damage the board The 41CL circuit boar...

Page 17: ...ew posts and case pieces 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 or reform the circular connector slightly If garbage rather than the MEMORY LOST message appears try removing t...

Page 18: ...rty software CL Utilities for example requires the use of the XROM 15 version of the 41CL Extra Functions The 41CL Extra Functions image resides in an area of Flash memory that is protected from modification so that it should always be available As you become more familiar with the 41CL you may prefer to use the 41CL Extreme Functions YFNX mnemonic which provides a more convenient user interface t...

Page 19: ...ing to remember is that the 41CL Extra Functions or the 41CL Extreme Functions must remain plugged into a Port for the new features to be available If you inadvertently plug another module image into the Port used by the 41CL Extra Functions taking the place of these functions as far as the OS is concerned try to recover by doing XEQ ALPHA YRES ALPHA I f t h i s d o e s n t w o r kt h e o n l y w ...

Page 20: ... module image may find the Memory Buffer Functions useful The Flash Memory Functions are included for those users wishing to program the Flash memory on the 41CL circuit board beyond the initial programming Flash memory is non volatile so it provides a convenient way to store information permanently The Serial Port Functions allow users to control the serial port on the 41CL circuit board Using th...

Page 21: ... t h e n u m b e r a n d p o s i t i o n o f t h e c h a r a c t e r s i n d i c a t e t h e t y p e o f a d d r e s s ALPHA register 11 10 9 8 7 6 5 4 3 2 1 physical address P5 P4 P3 P2 P1 P0 D3 D2 D1 D0 logical address L3 L2 L1 L0 B D3 D2 D1 D0 port address R D3 D2 D1 D0 A physical address P5 P0 is a direct physical memory address A logical address L3 L0 is an address used in mcode where L3 is t...

Page 22: ...l MMU enable bit inside the NEWT microprocessor This automatically reassigns the 41CL Extra Functions to Page 7 but only after the code returns to executing in one of the Operating System pages This delayed switch allows the function to complete normally and return to the Operating Sys tem This function does not affect the MMU register contents in memory MMUEN Executing MMUEN MMU Enable sets the g...

Page 23: ...sing the display for any reason always executes at normal speed All accesses of a physical Port occur at normal speed along with a number of timing loops in the Operating System and Timer functions Turbo modes increase the current consumption during normal operation but have no effect during idle time between keypress or during the time when the calculator is off The current Turbo mode is preserve...

Page 24: ...egister Plug into Port Unplug from Port Functions These functions allow the user to virtually plug and unplug module images from the calculator ports The functions use the Image Database in Flash memory to determine the type and address of the desired module image This provides an easy way for the user to control the configuration of the calculator without having to remember specific memory addres...

Page 25: ...and 7 82242A IR Printer Module 6 Note that some third party modules can be addressed independently of their physical location but the user must still avoid address conflicts with these modules PLUG1 PLUG2 PLUG3 PLUG4 image identifier in ALPHA register Executing PLUG1 Plug Into Port 1 inserts a module image into Port 1 which is Pages 8 and 9 of the logical address space This function automatically ...

Page 26: ...t 3 Page C The PLUG4L Plug Into Port 4 Lower Half function operates on the lower half of Port 4 Page E The PLUGP Plug Into Printer Page function operates on the page normally used for a printer Page 6 Do not plug a printer into the calculator if you have virtually plugged an image into the Page 6 Page 6 is special in that the Operating System often calls printer routines in this page Normally if n...

Page 27: ...n operates on the page normally used for the HP IL module Page 7 Do not plug an HP IL module into the calculator if you have vir tually plugged an image into the page 7 The various PLUG functions can also be used to assign pages in physical memory directly to the Ports The upper three nibbles of the physical memory address so that it begins on a 4K boundary are specified and the PLUG function assi...

Page 28: ... Port 4 function operates on Port 4 Pages E and F UPLUG1L UPLUG2L UPLUG3L UPLUG4L UPLUGP The UPLUG1L Unplug From Port 1 Lower Half function is identical to the UPLUG1 function except that it only operates on the lower half of Port 1 Page 8 of the logical address space Be careful using this function if you are planning on plugging a physical module into Port 1 because the upper half of the Port wil...

Page 29: ...ug From Port 4 Upper Half function operates on the upper half of Port 4 Page F The UPLUGH Unplug From HP IL Page function operates on Page 7 Memory Block Functions The memory block functions allow the user to manipulate pages 4K blocks of memory In particular a page can be initialized to a user selected value or copied to another loca tion in memory Neither of these functions check whether the blo...

Page 30: ...th Only memory addresses are valid for this function and DATA ERROR will result if an I O address is specified When executed from the keyboard a COPYING message is written to the display during the actual transfers These transfers are executed in 50x Turbo mode If the MMU is not enabled for a source logical address specified with the YMCPY func tion the data is fetched from a physical module and c...

Page 31: ...ite Word To Memory or I O writes directly to either RAM mem ory or an internal NEWT I O port This function does not check the address except for proper formatting so attempting to write to Flash memory is allowed although it will be ignored because the function does not properly format the write for Flash memory The peripheral version of this function only writes 12 bits to the peripheral port Thi...

Page 32: ...ated at physical addresses 0x805000 0x805FFF and has an associated Extra Functions Buffer Pointer stored at address 0x804010 The memory buffer functions provide a convenient way to move data to the buffer to assemble a module image without having to continuously spec ify the destination address Instead the lower twelve bits of the destination address are held in the Buffer Pointer which is automat...

Page 33: ... register 4 3 2 1 Buffer pointer value D3 D2 D1 D0 The function returns with the normal YPOKE formatted physical address of the Buffer Pointer in the ALPHA register but not the display ALPHA register 11 10 9 8 7 6 5 4 3 2 1 physical address 8 0 4 0 1 0 D3 D2 D1 D0 YBPNT Executing YBPNT Read Extra Functions Buffer Pointer reads directly from Extra Function Buffer Pointer at address 0x804010 The fun...

Page 34: ...emory so that a physical address can be specified The figure below shows the formatting required for the address and data for the YBUILD function The transfer length D2 D0 is limited to 4096 words or less and the number of words transferred is the transfer length 000 indicates a transfer length of 4096 words ALPHA register 11 10 9 8 7 6 5 4 3 2 1 physical address P5 P4 P3 P2 P1 P0 0 D2 D1 D0 Flash...

Page 35: ...re sector usually 32K words or eight pages of Flash memory The address specified can lie anywhere within the sector The YFERASE function automatically includes a 6 second delay because the Flash erase operation may require this much time to complete The function will either return immediately with an error message without executing or send the ERASING message to the display for the entire 6 second...

Page 36: ...sent on all 41CL circuit boards The serial port hardware is initialized and the baud rate is set to 1200 whenever the calcu lator is turned on 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 t...

Page 37: ...an active serial connection While the serial driver in the calculator is powering up the internal power supply may droop low enough to trigger the power on reset which automatically disables the MMU This droop is not sufficient to corrupt RAM contents so the MMU programming will still be valid So after turning on the calculator with the serial port connected for the first time it is advisable to m...

Page 38: ...pecified as the address Executing YGETUB Write Serial Byte To Upper Memory Byte reads one byte from the serial port and writes this byte to the upper byte of the memory location specified as the address These functions do not check the address except for proper formatting so attempting to write to Flash memory is allowed although it will be ignored by the Flash memory The figure below shows the fo...

Page 39: ...a byte ALPHA register 6 5 4 3 2 1 physical address P5 P4 P3 P2 P1 P0 YEXP address and transfer length in the ALPHA register Executing YEXP Export Memory Block transfers an entire block of data up to 4096 words from internal memory to the serial port Both Flash and RAM addresses are valid for this function The figure below shows the formatting required for the address and data in the ALPHA register...

Page 40: ...ther The figure below shows the formatting required for the address and data in the ALPHA register for the YIMP function The transfer length is limited to 4096 words or less The number of words transferred is the transfer length plus one allowing block transfers of from 1 to 4096 words 2 to 8192 bytes ALPHA register 11 10 9 8 7 6 5 4 3 2 1 physical address P5 P4 P3 P2 P1 P0 0 D2 D1 D0 This functio...

Page 41: ...re the 41CL Extra Func tions reside is returned in the X register as a decimal number in the range 6 through 15 corresponding to Pages 6 through F This information can be used to prevent accidentally overwriting the 41CL Extra Functions when reprogramming the MMU Image Database Functions The Image Database Functions there is only one in the 41CL Extra Functions allow the user to search the Image D...

Page 42: ...rom lowest database address upwards will ever be returned ALPHA register 10 9 8 7 6 5 4 3 2 1 physical address M4 M3 M2 M1 T P5 P4 P3 Searches with a valid module identifier always return the corresponding contents of the Image Database even if the entry is unprogrammed The type digit T specifies the type of image according to the table below T digit image type for this module identifier 0 4K imag...

Page 43: ...er memory pages and these pages do not support multiple banks The table below shows the MMU storage locations for Pages 0 3 Physical Address Contents 0x80400C MMU register for Page 0 0x80401C MMU register for Page 1 0x80402C MMU register for Page 2 0x80403C MMU register for Page 3 All of the MMU storage locations for Pages 0 3 must be initialized before executing the MAPEN function because these r...

Page 44: ...g System pages but only if the MMU is globally enabled The MAPEN and MMUEN commands may be issued in either order All of the normal MMU entries must be valid before the MMUEN command is issued and all of the special MMU entries Pages 0 3 and 5 must be valid before the MAPEN command is issued The MAPEN function uses the normal 41C call return convention which means that the function will return thr...

Page 45: ...ior to 4E DATA ERROR functions requiring hexadecimal Invalid hexadecimal in ALPHA YFERASE DST RAM YFWR Attempting Flash operation on RAM only in versions prior to 4E NO ENTRY PLUG unprogrammed entry in Image Database IMDB NO IMDB PLUG No Image Database found NO MATCH IMDB No address match found in Image Database NULL ENTRY PLUG empty all zeros entry in Image Database YFERASE OS AREA YFWR Attemptin...

Page 46: ...n values Function Arguments ALPHA Returns X Returns ALPHA Returns Display Notes BAUD12 BAUD24 BAUD48 BAUD96 IMDB module ID or address IMDB entry IMDB entry Module ID query always returns IMDB entry MAPDIS MAPEN passphrase MMUCLR MMUDIS MMUEN MMU NO YES MMU is disabled MMU is enabled PLUG1 PLUG1L PLUG1U PLUG2 PLUG2L PLUG2U PLUG3 PLUG3L PLUG3U PLUG4 PLUG4L PLUG4U module ID ...

Page 47: ...urbo mode 5x Turbo mode 10x Turbo mode 20x Turbo mode 50x Turbo mode UPLUG1 UPLUG1L UPLUG1U UPLUG2 UPLUG2L UPLUG2U UPLUG3 UPLUG3L UPLUG3U UPLUG4 UPLUG4L UPLUG4U UPLUGH UPLUGP YBPNT data YBPNT address data address data Buffer Pointer value is in the data field YBUILD address length YEXP address length YFERASE address YFNS 6 15 Logical address page where YFNS currently resides ...

Page 48: ...tional Corporation 48 YFWR address YGETLB YGETUB address YIMP address length YMCLR address data YMCPY address pair YPOKE address data YPEEK address data address data address data input data field is replaced with actual data YPUTLB YPUTUB address ...

Page 49: ...vantage Applications ENG 19 ABRD Abrasives Formulation 2 pages ENG 1 2 ADV1 Adventure part 1 4 pages GAM 12 ADV2 Adventure part 2 4 pages GAM 12 13 ADVG Advantage Math MAT 12 AEC3 AECROM III 2 pages GEN 18 AECR AECROM 2 pages GEN 18 AFDE AFDC1 2 pages GOV 16 17 AFDF AFDC2 2 pages GOV 18 19 AFIN Autofinance FIN 21 AGAM Action Games 2 pages GAM 13 ALGY ASTRO ROM AST 31 ANGZ A n g e l s Z E P R O M 2...

Page 50: ...3 ENG 9 BVLU Business Valuation FIN 3 CAB4 Schenk CAB 41 2 pages ENG 21 31 CCDA Advanced CCD GEN 10 CCDR CCD Module 1B 2 pages UTL 9 11 CCDX CCD OS X SYS 5 CENG Chemical Engineering Solutions ENG 12 CEPH Current Ephemerides Module AST 24 CFDB Correlated Flash Database RAM page 806 not pluggable OSL N A CHEM Chemistry User Module CHM 20 CHES Chess 2 pages GAM 8 CIRC HP Circuit Analysis Pac 1A ENG 6...

Page 51: ...alTrans Survey 4 pages SVY 8 9 10 DURR Dekra Umfall Rechner Accident Forensics 4 pages ENG 11 12 13 14 DYRK Dyerka UTL 31 E3AF E 3A Filght Management System 2 pages GOV 21 31 E41S ES41 2 pages HWS 4 6 EDTR Text Editor GEN 8 EEFD EE Filter Design 2 pages ENG 17 18 EENG HP 41 Electrical Engineering Solutions ENG 15 EILP Extended IL Plus HIL 27 ELIB Equation Library MAT 11 ELIX Elliptical Application...

Page 52: ...ac 1A GAM 10 GAMX Explore Games 2 pages GAM 12 GASL GASPROP lower 4 pages 4 pages ENG 1 2 3 4 GASU GASPROP upper 4 pages 4 pages ENG 5 6 8 7 GEDA Geodata 126A 2 pages ENG 9 10 GEOD Differential Geomoetry MAT 31 GEOM HP 41 Geometry Solutions MAT 14 GJMR G r e g J Mc C l u r e s R O M 2 pages GEN 31 GLNG Gelengegetribe Konstruktion ENG 16 GMAQ GMAC 1 FIN 31 GMAS GMAC 2 FIN 31 GMAT GMAC 3 2 pages FIN...

Page 53: ...21 22 IERR IERR 2 pages MAT 1 IGSW Gladiator Arena Game GAM 24 ILBF IL Buffer HIL 22 IMDB 41CL Image Database not pluggable OSL N A IMS4 IMS System 4 2 pages GEN 31 21 INDO Philips Indoor Lighting ENG 10 INTG Integration 2 pages MAT 16 IPRT IR Printer Module 2 pages SYS 29 IRSU Eramco RSU Initialization HWS 4 ISEM GEIR GEN 23 ISEN ISENE GEN 17 ISOL Interchangeable Solutions ULPE Program PRG 11 ITC...

Page 54: ... 1C HWS 15 MDP1 MDP1 2 pages ENG 15 16 MDP2 MDP2 2 pages ENG 17 18 MELB Melbourne GEN 12 MENG HP 41 Mechanical Engineering Solutions ENG 16 METX MetroX GEN 30 MILE Military Engineering 2 pages GOV 21 31 MINV Merchantile Mutual Plus Investment Pac 2 pages FIN 21 3 MLBL David Assembler Labels UTL MLMU Merchantile Mutual Live Mortgages 2 pages FIN 31 6 MLRM MLROM UTL 21 MLTI Multi Precision Library M...

Page 55: ...HP Petroleum Fluids Pac 1A 2 pages ENG 15 16 PHYH HP 41 Physics Solutions PHY 15 PKP1 P o u l K a a r u p s A l p h a a n d P o i n t e r s UTL 31 PKP2 P o u l K a a r u p s Ma t h a n d P h y s i c s p g 1 2 pages MAT 14 15 PKP3 P o u l K a a r u p s F l a gs and Stack UTL 3 PKP4 P o u l K a a r u p s P r o g r a mU t i l i t i e s UTL 5 PKP5 P o u l K a a r u p s T i m e r a n d U t i l i t i e ...

Page 56: ...K R u b i k s C u b e GAM 8 SBOX Sandbox 2 pages MAT 8 13 SDMO Sto Domingo SVY 31 SEAK SeaKing GOV 21 SECY HP Securities Pac 1A FIN 19 SERI Sums Series MAT 18 SESA Structural Engineering Systems Analysis 2 pages ENG 16 SGSG SGS GAS ENG 21 SHTZ Spreadsheet FIN 8 SIHP Solve Integrate MAT 24 SIMM SIM 4 pages SVY 4 10 30 31 SLVF Equation Solver MAT 29 SKWD SKWID HIL 8 SM44 Library 4 Sandmath 4x4 2 pag...

Page 57: ...h GEN 9 TVMY TVM FIN 22 UCCD CCD Manual examples GEN 18 UCLN User Calendar GEN 18 UNIT UnitConv ENG 10 UPLM U s e r s P r o g r a mL i b r a r y Math 2 pages MAT 13 USPS USPS Module 2 pages GOV 21 31 VECT Vector Analysis MAT 14 VEGS Vegas 1C GAM 6 VERM Vermpack SVY 27 VIEW Programs from Vieweg book GEN 9 VOI1 Resevoir Engineering 1 2 2 pages ENG 9 VOI3 Resevoir Engineering 3 4 2 pages ENG 10 VOI5 ...

Page 58: ...ges GOV 22 31 16CS 16C Simulator GEN 16 1AST ASTRO 10000 2 pages AST 23 24 2SWP Misc routines from 412 Swap Disks 2 pages GEN 10 3SWP Swap Disk Math 2 pages MAT 12 13 41AD HP Advantage Pac 1B 2 pages GEN 22 24 441Z Library 4 HP41Z Complex Number 2 pages MAT 1 4 4ALP Library 4 Alpha UTL 6 4DIG Library 4 41Z Diagnostic MAT 8 4LIB Library 4 Page 4 PRG N A 4MTI Library 4 Matrix Polynomial 2 pages MAT ...

Page 59: ...onto V2 boards by default because of space constraints Identifiers highlighted in green are not loaded onto V2 V3 V4 boards by default because of space constraints 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 9MM...

Page 60: ...omy AVI Aviation CHM Chemistry ENG Engineering FIN Financial GAM Games GEN General purpose GOV Government Military HIL HP IL HWS Hardware specific MAT Mathematics MED Medicine NAV Navigation NUL Nulled Entry OSL OS CL PHY Physics PRG Programming SVY Surveying SYS System extensions UTL Utilities UNP Unprogrammed ...

Page 61: ...lly no longer necessary The MMU takes the memory address in either the program ROM address space or the data RAM address space and translates this address into an address in either the Flash memory or the static RAM This translation is completely automatic and transparent to the user Most users will never need to concern themselves with the operation of the MMU as the new 41CL Extra Functions or 4...

Page 62: ...ase address with the page number replacing bits 7 4 and the bank number replacing bits 3 2 Note that the order of the banks follows the encoding used by the original 41C hardware rather than conventional encoding Since not all pages support banks only the following MMU entries are valid Physical Address Contents 0x80400C MMU register for Page 0 no banking supported 0x80401C MMU register for Page 1...

Page 63: ... PLUGP N A N A 7 PLUGH Lower 8 PLUG1L 1 Upper 9 PLUG1U PLUG1 Lower A PLUG2L 2 Upper B PLUG2U PLUG2 Lower C PLUG3L 3 Upper D PLUG3U PLUG3 Lower E PLUG4L 4 Upper F PLUG4U PLUG4 P a g e 4i s s p e c i a l t ot h e O S a n do n l y a f e wR O M i m a g e s c a nb e u s e di ni t I f y o ud o n t k n o ww h a t y o ua r e d o i n g d o n t t r yt ou s e P a g e 4 P a g e 6i s n o r m a l l y u s e db y...

Page 64: ...MMU but this translation is not programmable Instead registers are mapped to specific locations in the RAM on the 41CL board This dedicated mapping is shown in the table below Note that the 41C OS is not capable of addressing registers above 0x3FF but space is reserved in the 41CL memory for register addresses up to 0xFFF in case there are future enhance ments to the OS code In the 41C system only...

Page 65: ...x800000 0x800003 Register 000 T register 0x800004 0x800007 Register 001 Z register 0x800008 0x80000B Register 002 Y register 0x80000C 0x80000F Register 003 X register 0x800010 0x800013 Register 004 LAST X register 0x800014 0x800017 Register 005 ALPHA register 1 7 0x800018 0x80001B Register 006 ALPHA register 8 14 0x80001C 0x80001F Register 007 ALPHA register 15 21 0x800020 0x800023 Register 008 AL...

Page 66: ...80B Register 202 0x800BB8 0x800BBB Register 2EE 0x800BBC 0x800BBF Register 2EF 0x800BC0 0x800C03 Registers 2F0 300 not visible to OS 0x800C04 0x800C07 Register 301 X memory 0x800C08 0x800C0B Register 302 0x800FB8 0x800FBB Register 3EE 0x800FBC 0x800FBF Register 3EF 0x800FC0 0x800FFF Registers 3F0 3FF not visible to OS 0x801000 0x801FFF Registers 400 7FF not currently utilized by OS 0x802000 0x802F...

Page 67: ...use the subroutine entry addresses can be hard coded in the calling programs The Library 4 ROM image is located at address 0x120000 and has an associated IMDB entry so that it can be used with the IMDB function Once installed it is completely invisible as far as the OS is concerned even when not in use The Library 4 ROM is installed by simply writing to the Page 4 MMU entry using the YPOKE command...

Page 68: ...HA 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 This ROM is intended to take over the calculator so installation is as s...

Page 69: ...y In order to limit the size of the database to 4K words only the characters A Z 1 5 and 9 32 possibilities are allowed for the first and fourth character of a module identifier When the first character of the module identifier is 9 and the last character is A Z the identifier is used as an alias for a secondary MMU configuration Refer to the 41CL Extreme Functions manual for the details of this c...

Page 70: ...PHY Physics C7 PRG Programming C8 SVY Surveying Fx UNP Unprogrammed database entry Digit 1 in the first word of a database entry specifies the type of image according to the table below Only these values are currently valid as far as the PLUG functions are con cerned word 1 digit 1 image type for this module identifier 0 4K image one page 1 8K image two pages 2 16K image all four banks in one page...

Page 71: ...w word2 digit 2 Type Modification 0 No Modification 1 Modify type 3 to 12K 3 pages Digits 1 and 0 of the third and fourth words of a database entry hold the middle two char acters of the module identifier This allows an address based search of the database to return the full module identifier It would also allow the PLUG functions to check for the full module identifier but this feature was not im...

Page 72: ...1 Q 51 10000 R 52 10001 S 53 10010 T 54 10011 U 55 10100 V 56 10101 W 57 10110 X 58 10111 Y 59 11000 Z 5A 11001 1 31 11010 2 32 11011 3 33 11100 4 34 11101 5 35 11110 9 39 11111 The address for an Image Database entry is formed as shown below Image Database address nibble 2 Image Database address nibble 1 Image Database address nibble 0 3 2 1 0 3 2 1 0 3 2 1 0 First character module identifier add...

Page 73: ...oards by default because of space constraints Identifiers highlighted in green are not loaded onto V2 V3 V4 boards by default because of space constraints 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 an...

Page 74: ...PL ISOL M AGAM BSHM CHEM DASM EPRM GEOM HILM ISEM N AFIN BPRN CLIN DIVN EPTN FDYN HILN ISEN O AUTO CRTO DEMO EXIO HORO INDO P BELP DRVP EILP GSWP HCMP ITCP Q AV1Q BIDQ COOQ DACQ GMAQ R AECR BLDR CCDR DURR EDTR FAIR GJMR HEPR IERR S ANTS BSMS CHES DRPS E41S FUNS GMAS HDIS IDAS T ASTT BEPT CMGT DIGT EMPT FCST GMAT HMAT IPRT U ASTU BVLU CIVU GASU IRSU V AADV BDRV CURV FADV GSLV HSRV W BCMW GRAW IGSW ...

Page 75: ... KRMK MCCK PPOK RUBK L LNDL MLBL NONL PWRL REAL M KRGM MLRM NVCM PPCM ROAM N LTLN MCHN OPLN PLAN QUEN RCSN O MONO OPTO PLTO P LDSP MCMP NCHP OTRP RRAP Q PRIQ R JARR MRTR NFCR PETR RCTR S KRSS LBLS MASS PRFS ROMS T JMAT KNGT LAIT MTST NEXT PLOT QUAT U MLMU PPCU REGU V MINV PSRV ROSV W OILW PRTW X JMTX METX PWRX ROMX Y LADY NTHY POLY Z LUIZ MAZZ OBCZ PAPZ 1 MDP1 NEA1 OS41 PKP1 2 MDP2 PKP2 RM32 3 MWK...

Page 76: ...SGSG H SMCH TRIH YACH I SERI TDSI J K SEAK TREK VONK L SMPL YUIL Z4DL M SIMM TDSM UPLM VERM WRAM XPMM ZEPM N STAN UCLN YCLN O SDMO P SIHP TDSP WARP YFNP Q STEQ R SUPR THER XBFR YBFR ZENR S TOMS USPS VEGS XTRS YUPS T STAT TEST UNIT VECT WPRT XTAT U STRU V SURV ZDRV W SWSW TIDW VIEW X SBOX TMAX YFNX Y SECY TVMY Z SHTZ YFNZ 1 SUD1 VOI1 2 TGT2 3 TGT3 VOI3 XFN3 4 SM44 5 SWP5 VOI5 XFN5 9 ...

Page 77: ... 77 1 2 3 4 5 9 A 9CFA B 141B 4LIB 9CFB C 9MEC D 41AD 5MAD E 9ELE F 9INF G 4DIG 9PRG H 5UBH 9MTH I 4MTI 9SCI J K L 9HIL M 120M 4RAM 9BGM N 4WIN 5LON O P 2SWP 3SWP 4ALP 9MAP Q R 5PAR 9PWR S 16CS 9BAS T 1AST 9CST U V W X 4TBX Y 9PLY Z 441Z 1 9MM1 2 9DD2 3 9YY3 4 5 9 ...

Page 78: ...ge must first be copied to an available page in RAM using the YMCPY function The YMCPY function automatically executes in 50x Turbo mode and requires about 8 seconds to complete ALPHA 007 80C ALPHA XEQ ALPHA YMCPY ALPHA In this example just one location needs to be modified for proper operation Note that whenever patches are specified only the 4K relative address will be given Use the upper nibble...

Page 79: ...nternational Corporation 79 XEQ ALPHA PLUG1L ALPHA I t s t h a t s i m p l e T h e MMUi n t h e 4 1 C L a l o n g w i t h t h e a b i l i t y t o p e e k a n d p o k e m e m o r y m a k e s t h i s m a c h i n e a h a c k e r s d e l i g h t ...

Page 80: ...c o d ed o e sn o t k n o w a b o u tp h y s i c a lm e m o r y t h ec o p yw i l l effectively be write protected The main issue for HEPAX users is that the 41CL hardware does not support the automatic relocation of the HEPAX image The MMU makes this function unnecessary so the HEPAX image in the 41CL has been modified to eliminate the automatic relocation feature Unfortunately a by product of th...

Page 81: ...PAX RAM HP XROM 13 FILLTO 0FE6 000 FE7 Previous page identifier 000 FE8 Next page identifier 091 FE9 fixed value 000 FEA 000 FEB 000 FEC 090 FED fixed value 000 FEE 091 FEF fixed value 000 FF0 0E5 FF1 fixed value 00F FF2 fixed value 200 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...

Page 82: ...Q ALPHA YPOKE ALPHA ALPHA 809FE7 000C ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 809FE8 000E ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 80AFE7 000D ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 80AFE8 000F ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 80BFE7 000E ALPHA XEQ ALPHA YPOKE ALPHA Finally the RAM pages are plugged into the Ports ALPHA 808 RAM ALPHA XEQ ALPHA PLUG3L ALPHA ALPHA 809 RAM ALPHA XEQ ALPHA PLUG3U ALPHA ALPHA 80A RAM A...

Page 83: ...ASM code thinks that the ON key has been pressed immediately after the last address digit has been entered turning the calculator off The way around this issue is to remove the test for a press of the ON key during the HEPAX DISASM function This requires copying one page of the HEPAX code to RAM so that one location can be patched and then pointing the MMU at the patched code The example below ass...

Page 84: ...se the RAM at address 0x83E000 to hold the patched code First the Bank 1 HEPAX image is copied to RAM ALPHA 02D 83E ALPHA XEQ ALPHA YMCPY ALPHA Next the instructions that branch to an error routine are replaced with NOP instructions ALPHA 83E131 0000 ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 83E132 0000 ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 83E133 0000 ALPHA XEQ ALPHA YPOKE ALPHA ALPHA 83E134 0000 ALPHA XEQ A...

Page 85: ...e used for these types of cables depending on the manufacturer See the table below for one source The RS 232 driver on the 41CL board normally only powers up when a valid signal level is detected on the Receive Data input This can make 41CL to 41CL serial transfers complicated Starting with Version 4 the 41CL board supports a way for software to force the RS 232 driver on unconditionally So if one...

Page 86: ...urce Part number Serial cable DB 9 to 2 5mm stereo www cableclub com BC20213 6 Null modem adapter www monoprice com 1202 Plug for circuit board connector www digikey com 455 2189 ND Multi conductor cable www digikey com MB20G 10 ND 2 5mm Stereo Jack www mouser com 161 7000 EX ...

Page 87: ...nection 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 The figure below shows the connection points on the top of the 41CL board ...

Page 88: ...for mounting the board in a module housing The figure below shows the placement and connections for the Time Clone board The board is held in place by a small 5 mm by 5 mm piece of double sided tape The best place on the Time Clone board to affix the tape is on the FFC connector which is on the top of the board Use 30 guage wire stripped for 1 5 mm on both ends The following wire lengths are recom...

Page 89: ...w 4 cm ISA Green 3 cm SYNC Blue 3 cm PH2 Violet 3 cm PH1 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 ...

Page 90: ...gramming can also be used to update the Flash memory on the board This section will describe the connections necessary to perform hardware programming The figure below shows the top side of the 41CL board All programming operations require that the board be powered Using the normal HP41 connector on the bottom of the board is not an appropriate way to power the board for programming Instead there ...

Page 91: ...nd of the power supply to program the FPGA or the Flash Leave this wire unconnected to program the CPLD Grounding the POR signal turns on the switched power supplies on the board Do not turn on the power supply until the programming cable is connected Be aware that some variable power supplies overshoot quite a bit on start up If you are using a variable supply it is probably better to manually ra...

Page 92: ...ing required between the FPGA connector on the board and the standard Actel programming cable Flash Programming The Flash memory is also programmed using the connector labelled FP on the board The exact connection will depend on the JTAG programming hardware that you use The important thing to remember is that the TRST signal must be grounded to enable the JTAG controller and the VPUMP signal must...

Page 93: ...ral Analysis ROM added 05 17 2011 Added Algebra Sandmath II and Modified Advantage modules 06 06 2011 Corrected XROM number for BCMW ROM Added cautionary note about serial port connector 18 59 06 11 2011 Added part list for serial connector 59 60 06 14 2011 Typo in register byte layout 38 06 16 2011 Added info on current drain Added info on Operating System usage of register address space 31 38 39...

Page 94: ...ges updated YCRC values for new latest images Chs 7 13 memref 08 19 2013 updated images Chs 7 13 memref 08 27 2013 new revised images Chs 7 13 memref 09 09 2013 updated YCRC values for new updated images memref 11 29 2013 updated 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...

Page 95: ...09 08 2015 new images STEQ 2SWP various 09 10 2015 updated acknowledgement section inside cover 09 12 2015 new images PPOK TIDW various 09 15 2015 cleaned up Image Identifer section 09 05 2015 new image PRTW various 10 05 2015 new image CLND various 10 26 2015 new images GRVI RUBK TAFB JBMC UCLN EEFD various 11 16 2015 new images 3SWP XBFR XTRS CRTO various 12 07 2015 new updated images XTAT 3SWP ...

Page 96: ...deleted obsolete image ALPH TTRC new image WARP various 06 09 2017 deleted obsolete image TOOL YFNS new im ages FRML YUPS various 06 25 2017 new images 1AST ZDRV various 07 04 2017 new image BPDE various 07 08 2017 deleted obsolete image CCDP various 08 04 2017 corrected Table of Contents 08 14 2017 new image 5PAR various 09 01 2017 new images BELP RDII YCLN various 09 19 2017 typo 73 10 01 2017 d...

Page 97: ...ation 97 09 25 2018 new image FSTK various 12 02 2018 new images ELIB MWK5 various 01 23 2019 moved to MS Word added info about special cases Time Clone various 02 08 2019 new images GLNG SLVF split FRML into FRML FRMX various 03 27 2019 new image CEPH various ...

Reviews: