Home
Sandbox 3D – The last HP-41 Plug-in Module
Contents
1. NWN SI WOH JO 151 enuenbeg WOH WOH abed ul NOH eDed Aqua NWN 10 1 02 eDed ul NOH Sseuu3 NNN Jo 151 1e 5 sueis Jayoune JI d AS ON S3A indino spJomssed Meuj pjo SYSE pJoMssed 10J syse ouou euou euou eBed 15 X ul seDed euou sjuogjuoo X Ul NNN VHd V euou ouou eud y ul appe 4 uou uou JO 46 0 1 2 2 euou SWOH Ile s ejdsiq JO 5 1 4 9 x ui eDed 10 abed 410 euou 46 3 0 9 9 Z Y 1 46 2 SIAWOd 9 euou sindu eouaiejeu YANO puomssed ebueyo yoo psomssed ajqesip yoo p1oMssed 10 545114 Xvd3H 10 Wu 545914 XVd3H q9 54514 Xvd3H yu SASAII4 1891 Aejdsiq 01 Aejdsiq epooeq Boeren ssea
2. Angel M Martin A6CF A6DO A6D1 A6D3 A6D4 A6D5 A6D6 A6D7 A6DB A6DC A6DE A6DF 1 4 5 27A 1 A6DA 27A C C 1M JNC 56d 222 1 PARC S amp X B3 JNC 54d 222 1 PT PARC S amp X JNC 520 222 222 1 366 S amp X 173 JNC 460 222 1 366 S amp X 163 ___ 440 1130 LDIS amp X CONT IS 366 S amp X 14B JNC 41d 222 1 366 S amp X 138 JNC 390 222 1 366 S amp X 128 37d 220 1 366 S amp X JNC 35d 32d HHH 222 1 366 S amp X OF3 JNC 30 222 1 PT 366 S amp X E3 JNC 28d 222 1 366 S amp X JNC 260 23d 1 NKC S amp X 366 22B 594 27A 27A 27A 27A 27A 27A 27A 27A Page 25 of 29 keycode 220 L keycode 320 keycode 130 keycode 230 Q keycode 140 R keycode 240 keycode 150 Iv keycode 250 Blink Display pass 1 gt 03C RCR3 pleceitin 188 AGES E6 CeBS amp X save chr in BIS amp X 12 19 2011 The last part is about presenting the chosen key allowing NULLing if it s hel
3. plugs memory block to port 6 PLUG1L Must be run from RAM 7 0C9000 Erases 32k sector 8 YFERASE 0x0C8000 OxOCFFF 9 800 gt 0 9 writes calculator to 10 YFWR 4k block in Flash OxOC9000 11 804 gt 0 12 FS 01 writes MMU entries to 13 YFWR 4k block in Flash OxOCFOO00 14 YFNS 15 PLUG1L plugs YFNS from Flash to Port 16 END were done Should any of those default settings clash with your system setup I d suggest you change it to match them as the easiest way to go around the incompatibilities Even if it s possible re writing the program in 41 RAM is strongly not recommended Backing up MMU entries may be seen as superfluous yet think about the issues arising from restoring MMU configurations that don t include CLUTILS which is from where the program is being run welcome to CL limbo Surely something to be avoided Note that CLUTILS module may reside in Flash during the process even if the FOCAL program calls upon YFWRT as the from RAM only restriction is for YFNS instead O ngel M Martin Page 17 of 29 12 19 2011 2 4 1 Alpha and Display Utilities The following functions relate to Alpha string manipulation as the main vehicle for many YFNS functions and are included in the CLUTILS for added convenience Some Input Y String Prompts for string Alpha Back Space Author W amp W GmbH Alpha Delete from Author W amp W GmbH Alpha Delete from gt Swap ar
4. CATalog functions are notoriously complex and take up a significant amount of space yet you d hopefully agree with me that the usability enhancements they provide make them worthwhile the admission price BLCAT Block Catalog Author VM Electronics Source HEPAX Module Lists the first function of every non empty ROM block i e Page starting with Page 3 in the 41 CX or Page 5 in the other models C CV The listing will be printed if a printer is connected and user flag 15 is enabled Non empty pages will show the first function in the FAT or FAT if such is the case Empty pages will show the VO ROM message next to their number Blank RAM pages will show QUASI RAM indicating their RAM in ROM space character No input values are necessary The displaying will be halted while any key other than R S or ON is being depressed resuming its normal speed when it s released again O ngel M Martin Page 8 of 29 12 19 2011 Buffer CATalog Hot keys R S SST SHIFT D H D Deletes Buffer In manual mode H Decodes Header register In manual mode This function is very close to my heart both because it was a bear to put together and because the final result is very useful and informative It doesn t require any input parameter and runs sequentially through all buffers present in the calculator providing information with buffer id and its size 41 buffer
5. CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB 21C CLLIB C 0OM _ jresetcouner _______ CLLIB 30 CLLIB CLLIB RCR 11 CLLIB JNC 02 CLLIB N bo bo U 1369 PORT DEP 03 60 7 9 gt 9 BRA RRR 4 W W NOOR WMA A For the rest K Z we ll need to read the keycode of the pressed key and act accordingly Also we need to discard any non letter key rejecting it if its keycode value is outside of the A Z range Now the show is about to start see how the key pressed value in N is compared with every possible value in the K Z range building the pointer in C S amp X by repeat one additions until coming up to its final result ngel M Martin Page 24 of 29 12 19 2011 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB E ili
6. 16k 4k 4k 4k 8k 4k 8k 8k 4k 8k 8k 4k 4k 8k 4K 4K 4k 8k 8k 4k 8k 4k 4K 8k 4k 4k 4k 8k 4k 4k 4k 4k 4k 8k 8k 4k 4k 8k 4k 4k Name Advantage Pac Advantage Applications Adventure 1 Adventure 2 AECROM 13 digit AECROM AFDC1 AFDC2 Auto Finance Algebra ROM Astro ROM ALPHA ROM AMC OS X Assembler4 Assembler3 ASTRO 2010 Module Auto Start Dupl ROM AV1 ROM Aviation Pac B 52 ROM BCMW ROM Bessel ROM BLD ROM Bufferland ROM CCD Plus CCD Module CCD OS X Chemistry User ROM Chess Rubik s ROM Circuit Analysis Pac Clinical Lab Pac CL Utilities Curve Fitting Module Cv Pack ROM DisAssembler 4C Data Acquisition Pac DisAssembler 4D David Assembler 2C HP IL Development HP IL Diagnostics Diamond ROM Dyerka ROM ES41 Module ES MLDL 7B Extended I O Module Extended IL ROM 300889 FACC Financial Pac FORTH Module Fun Stuff Module Games Pac Auto Fiance 2 Module Auto Fiance 3 Module HydraComp ROM HEPAX RAM Template Page 20 of 29 HP Co Garnier Angel Martin Angel Martin Angel Martin Red Shift GunZen GunZen Angel Martin Elgin Knowles amp Senne Martin amp Wilder Angel Martin 2 Jean Marc Baillard HP Co Beechcraft HP Co Boeing Martin amp JM Baillard W Doug Wilder Angel Martin Angel Martin W amp W GmbH Raymond del Tondo Claude Roetlgen HP Co HP Co Angel Martin Angel Martin W Doug Wilder HP
7. 2 Other Utilities 20 5 3 Farewell 6 Appendixes 21 Angel M Martin Page 2 of 29 12 19 2011 Angel M Martin Page 3 of 29 12 19 2011 CL UTILS Module Extension Functions for the 41CL 1 Introduction Without a doubt the 41CL can be considered in many ways to be the pinnacle of the HP 41 system It comes with a well thought out function set to manage its capabilities from the basic to the more adventurous ones which have inspired the writing of yet further extensions to that capable toolset This collection is designed to enhance and complement the YFNS function set providing easier access to the many powerful capabilities of the 41CL platform Some are function launchers grouping several functions by their area of functionality into a single prompt driven one like it s the case for the Plug Unplug functions the Baud rate TURBO and MMU settings functions A launcher of launcher sits atop these providing quick access to 27 YFNS functions from a single key assignment Some other extend the functionality by providing new features and more convenient alternative to manual tasks Examples of these are A fully featured ROM library CATALOG system allowing direct plugging into the port of choice The Page Plug functions alternative to the Port ones including routines to handle page 4 Programs to backup and restore the complete calculator contents to from Flash HEPAX configuration and set up making the HEPAX int
8. Co W Doug Wilder David van Leeuwen HP Co HP Co David Yerka Eramco Eramco HP Co Ken Enery 22 Serge Vaudenay Angel Martin HP Co Paul Monroe MM Electronics Author Compiler 12 19 2011 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 O ngel M Martin HEPX HOME ICDO IDC1 IDC2 UMAT UMTX ILBF KC135 L119 LAIT LAND LBLS MADV MATH MCHN MDP1 MDP2 MELB MILE MLBL MLRM MLTI MTRX MTST MUEC NAVI NCHP NFCR NPAC NVCM OILW P3BC PANA PARI PCOD PETR PLOT PMLB POLY PPCM PRFS PRIQ QUAT RAMP REAL ROAM ROMS SANA SBOX SEAK SECY SGSG SIMM SKWD SMCH SMPL SMTS 16k 4k 4k 8k 4k 8k 8k 4k 12k 8k 4k 4k 4k 12k 4k 4k 8k 8k 4k 8k 4k 4K 8k 4k 4k 8k 8k 4k 4k 8k 8k 8k 16k 8k 4k 4k 8k 8k 4k 8k 8k 4k 8k 8k 4k 8k 4k 4k 12k 8k 4k 4k 4k 16k 4k 8k 4k 8k HEPAX Module Home Management Pac Icode ROM ML ICD BG UG IDC JMB Math JMB Matrix IL Buffer Weight amp Balance Comp AFDC 1E 003 LaitRAM XQ2 Land Navigation ROM Labels ROM Modified Advantage ROM Math Pac Machine Construction Pac AFDC 1F ROM AFDC 1F ROM Melbourne ROM Military Engineering ROM Mainframe Labels ML ROM
9. OSN Uil 49e1s seoq jueseJd JOU s J 1ueseJd 100 s lt JI jou si 2 15 peeds oqun uo puedep jou pjnous V8 N T P L S149 no vg VHd lV SJeiv ejqeuiumeJDo4q SULS 17110 exi 1 jgoued iSWOH 46 0 exe eud Auo s V8 14IHS LSS S H S149 1 H31N3 LSIHS LSS S H S149 plea 1 no vg X 0 1 peDueuo si 55 440 eunoes sies NO 3Hf103S 5195 10 Xvd3H 9 10 8 10 uo XvdaH Jp uleis s 4 dn yj e Aejdsip swous eudiy ul x L eud y ui X Ul NNN Sjuoejuoo 51517 SJejing jueseud SMOYS eudiy ui qi WOH use 4 0 SIUM Punose peddems lt punoje peddews use 1 NWI 907 y Jeu WOJ SJe9 2 ay 01 Jeuo lt WOJ SJe9 2 Jejoejeuo 15 Aejap 295 SI UO 8207
10. Security Author Nick Harmer Source Data File Deactivate Security Author Angel Martin Change Password Author Nick Harmer Source Data Fie Here we have a nice practical application of advanced system control Use these functions to manage a password protection scheme for your CL so nobody without authorized access can use it They were published in Data File back in 198x by Nick Harmer and implemented in Q RAM devices a k a MLDL Obvious caveat there was that removing the MLDL from the machine dismantled the whole scheme but the CL has made it possible as integral part of the core system now The protection works as follows 1 Function SECURE activates the security by setting the protection flag The execution also switches off the machine This sets up a process executed on each CALC_ON event causing to prompt the user for the password during the start up process 2 Function UNLOCK deactivates the security by clearing the protection flag 3 Function XPASS allows the user to change the password from the default one to his her favorite one The length of the password is limited to six 6 characters Inputting the password is very simple but very unforgiving as well at the prompt PASSWORD just type the letters one by one until completing the word and you re done If you make a mistake the machine will switch itself off and it ll be groundhog day all over gain until you get it right Each keystroke will
11. be acknowledged by a short tone but no change to the display so nothing like as you type the word If the wrong letter is entered a lower pitch sound will be heard and the calculator will go to sleep Be especially careful when entering a new password code as there is no repeat input to confirm the entry so whatever key combination you type will be taken when ending the sequence with R S The initial password factory default so to speak is i i NN Enter code up to 6 chrs long and end with R S Here again it comes without saying that this will only work when the CL UTILS module is mapped to a SRAM block in the MMU or otherwise none of the ROM writing will work Note this is how you d get yourself out of trouble if somehow you forgot the right code do a memory lost to disable the MMU then reload the CLUTILS from flash which has the protection flag cleared Map it to the right page and enable the MMU again you re back in charge O ngel M Martin Page 15 of 29 12 19 2011 2 4 Advanced Territory 2 4 1 Using Page 4 As mentioned previously page 4 is a special case that requires its own dedicated un plugging functions not covered by PLUGGX or the native U PLUG ones either PPG 4_ _ Plugs ROM in page 4 Prompts F L S WARNING i Unplugs ROM from p4 The 41 OS reserves Page 4 as a special location There are frequent che
12. last chr 18 ur replace it 19 AVIEW provide feedback 20 YMCPY copy to 0x809 in RAM 21 FS 01 8k case 22 GTOO00 7 4 yes skip the rest 23 YBSP remove last char 24 25 AVIEW provide feedback 26 YMCPY copy to 0x80A in RAM 27 YBSP remove last char 28 B replace it 29 AVIEW provide feedback 30 YMCPY copy to 0x80B in RAM 31 LBL 00 _ 32 SETUP announce last phase 33 AVIEW 34 buffer common string 35 ASTOL in temporary storage 36 808 build first mapping text 37 ARCLL 38 PLUG4U plug 0x808 to page F 39 FS 00 4k case 40 GTOO01 yes jump over 41 809 build 2nd Mapping text 42 ARCLL 43 PLUG4L plug 0x809 to page E 44 FS 01 8k case 45 GTOO03 4 yes jupm over 46 80A build 3er Mapping text 47 ARCLL 48 PLUG3U plug 0x80A to page D 49 80B build 4th Mapping text 50 ARCLL 51 PLUG3L plug 0x80B to pon C 52 4 configuration parameters 53 ENTER four pages 54 12 starting at page C 55 67000 56 LBL 03 8k case 57 2 config parm 58 ENTER two pages 59 14 starting at page E 60 GTO 00 61 LBL 01 4k case 62 E config parm 63 ENTER just one page 64 15 starting at page F 65 LBLOO 66 HEPINI configure HEPAX FileSys 67 E get pagest below 68 69 70 PLUGGX plug HEPAX there 71 HEPDIR show we ve done it 72 END done 12 19 2011 Apendix 3 MCODE Listing showing the Alphabetical sections prompting code The function CLLIB begins by building
13. ll have to use another approach to invoke them It s a trivial task with the CCD style CAT 2 either during the catalog run or through a previous assignment to any USER key Of course as a CL owner you re only one YPOKE away from a permanent solution if CLUTILS resides in RAM 2 4 2 Calculator Flash Backup amp Restore Backs up to Flash OK or OKALL in Alpha 4 Restore from Flash or OKALL in Alpha The MMU content is preserved during a MEMORY LOST event and the same is true with the SRAM on the CL board So using RAM for a complete calculator backup and restore is not a bad idea at all and it will allow you different setups or complete configurations to be swapped back and forth directly from SRAM However SRAM will be erased if the batteries are removed from the calculator for a certain period of time longer than what it takes to reset a small glitch but shorter than it used to be for the standard 41 due to the increased current required to maintain its contents Angel M Martin Page 16 of 29 12 19 2011 Early CL beta user Geoff Quickfall prepared a few FOCAL programs to commit the calculator contents to FLASH so that even without the batteries it ll be preserved for a restore at any later time It s a powerful concept but it doesn t come free from pitfalls if you re not careful e The first consideration is related to the Flash write funct
14. pages 6 and 7 on the CL don t support bank switching they unfortunately arent a good place for the HEPAX ROM Angel M Martin Page 7 of 29 12 19 2011 2 2 CATALOGS CATALOGS The additional CATalogs are as follows Borrowed from the HEPAX ROM shows the 4k blocks contents 1 2 Light Lists those elusive buffers present in the system 3 MMUCAT None Lists the MMU mappings into each block 4 ROMLIB List the ROM Library 10 5 available in Flash 5 CLLIB Same as above with an Alpha prompt for beginning section If you re like me you ll like to have good visibility into your machine s configuration With its ROM Library and MMU settings the CL adds a few dimensions to the already rich 41CX system and the goal is to have equivalent catalogue functions to review the status and options available Each CATalog has its own idiosyncrasies but in general they feature single step modes and have hot keys to allow for specific actions like deletion of buffer navigation shortcuts and direct plugging of ROMs into a port This makes chores like searching for the correct syntax and plugging a module from the library a trivial task Both BLCAT and BFCAT are not strictly related to the CL and will also work on a standard 41 Obviously MMUCAT is only meaningful for a CL machine and will return all zeroes if the CL board is not installed
15. the prompt text in the display Using the OS routine PROMF2 is helpful to save bytes so there s no need to write the function name again CLLIB Alpha is cleared using CLA just to prepare for a possible copy of the ROM id to Alpha using the A hot key in run mode Then we get into a partial data entry condition waiting for a key to be pressed Back Arrow sends the execution to EXI T3 to do the housekeeping required to reset everything back to the standard OS required status disable Display resetting Keyboard bits CPU flags etc Since the valid keys are quite a lot A Z we need to use multiple conditions in the logic The first two rows are the easiest as they set up CPU flag 4 and that can be tested easily In this case we copy the mantissa sign in A to C S amp X then store it in 56 and we move on 1 CLUB N Q z CLLIB CLLIB CLLIB CLLIB CLLIB 8 CLLIB 9 CLUB 10 11 4 ND Header 11 CLUB 345 j CeasApha 2 CLUB 1 A679 1040 __ gt 1001 _ __ CLA ____________ 13 14 CLLIB 15 CLUB 16 CLUB 17 CLUB 18 CLUB NCXQ 9 CLUB MC 07EF 20 CLLIB 21 22 CLLIB 23 CLUB 24 CLLIB 25 CLLIB 26 CLUB 27 CLUB 28 CLLIB 29 CLUB 00 CON _____ 30 CLLIB 2 0 MS JNC 04 C 0 58 lt gt MS RCR 13 M 31 32 CLLIB CLLIB
16. 2011 1102 Jequie2eq X9IN X9IN suu S91UOJ 29 3 WA 4099 IEPPINO 4099 ajuopy M8M M8M uiueyy jebuy uiueyy jebuy jebuy uoiseH Ajun2eS HO peuo1Ms s 10 e nojeo dnyejs uodn peyxse piomssed WOH 4 0 NYH 4 3 vH 3 WOH 4 ut peuinbe eun ue esr spualy azewe 88s 0 uni esn eAisni3 ui pesn 21558 v seunnoJgns ui ISSE Y pessaJd si pesneg SEH 3MOdA Aq se sseJppy VHd1V U TIVMO jueseud jou si juesaud jou 1 lt JI VHd1V TIVMO MO 891 10 Ma 40 WAL
17. 3x 8k SNEAP Society 4k JM Baillard amp A Martin 4k Angel Martin 4k Bobby Schenk Page 22 of 29 12 19 2011 Appendix 2 FOCAL program Listings Provided for your reference and in case you feel like experimenting with your own settings As always mind the potential conflicts with other modules when plugging stuff and pay special attention not to overwrite YFNS In the HEPAX configuration code the role of HEPINI is to write the appropriate words into the HRAM pages as per the description provided before This could also be done using YPOKE but the memory requirements are much larger due to all the alpha strings required to do so For example see below for the 16k case using pages C D E and F This would mean having to write on each page the four page id s plus the pointers to the previous and next pages for a total of 10x or equivalent to 110 bytes 809FE7 000C 808000 000C 808FE8 000D 80AFE7 000D 809000 000D 809FE8 000E 80BFE7 000E 80A000 000E 80AFE8 000F 80B000 000F Angel M Martin 03 GTO 02 04 LBL HPX8 05 2 06 GTO 02 Page 23 of 29 01 LBL HPX4 Entry for 4k 02 E Entry for 8k 07 LBL HPX16 Entry for 16k 09 LBL 02 10 X lt gt F flag setting 11 TURBO50 run as fas as possible 12 089 gt 808 prepare for 0x808 13 AVIEW provide feedback 14 YMCPY copy to 0x808 in RAM 15 FS 00 4k case 16 61000 _ yes skip the rest 17 YBSP remove
18. 7 STAN 4k Standard Pac HP Co 118 STAT 4k Statistics Pac HP Co 119 STRE 4k Stress Analysis Pac HP Co 120 ISTRU 8k Structural An Pac HP Co 121 8k SUP R ROM James W Vick 122 SURV 4k Surveying Pac HP Co 123 THER 4k Thermal Pac HP Co 124 TOMS 4k Tom s ROM Thomas A Bruns 125 4k ToolBox Il Angel Martin 126 TREK 4k Start Trek Angel Martin 127 TRIH 4k 83Trinh Phil Trinh 128 UNIT 4k Unit Conversion Angel Martin 129 USPS 8k Mail Delivery USPS 130 XXXA 4k CL Utils 1H Not listed 131 4k Empty Not listed 132 KXXC 4k Empty Not listed 133 XXXD 8k Empty Not listed 134 XXXE 8k Empty Not listed 185 XXXF 16k Empty Not listed 136 WFNS 4k Alternate YFNS Monte Dalrymple 137 YFNZ 4k Main YFNS Monte Dalrymple 138 414 8k 41Z Module Angel Martin 139 ZENR 4k Zenrom Zengrange Ltd 140 4k X Programmer Zengrange Ltd Take over ROMS Other modules not included in the Library For sure many more of these abound yet these are the ones have knowledge of feel free to complete the list with your own entries and pls share it with the whole community 0 CCD Advanced Apps Market Forecast MONOPOLY ROM Mortar Fire Data Calculator Mountain Computer EPROM Dr Z RaceTrack Module SNEAP1 2 3 SUDOKU amp Sound VECTOR Analysis Yach Computer Angel M Martin 8k Angel Martin 4k Forecaster 8k Thomas Rodke 8k MDN Canada 4k Paul Lind 4k William T Ziemba
19. CH S amp X read value at address 6 ADRID 0 S amp X value non zero 57 ADRID NC RTN NO TERMINATE HERE ADRID S amp X are they different ADRID no gt FOUND 50 ADRID add offset BYTES 1 54 ADRID i 52 ADRID 53 ADRID nexaddrfeld __________ 1 4 ADRID 55 ADRID 56 ADRID 57 ADRID increase RTN adr 58 ADRID 12 19 2011 Appendix 4 Serial Transfer CLWRITE source code written by Raymond Wiker using System using System 1O using System 1O Ports using System Threading public class CLWriter public static void Main string args int baudrate 1200 int delay 0 if args Length lt 2 Console Error WriteLine Usage Console Error WriteLine 0 file port baudrate delay CLWriter Console Error WriteLine Console Error WriteLine Where baud defaults to 0 baudrate Console Error WriteLine and delay defaults to 0 delay Console Error WriteLine Available Ports Console Error WriteLine foreach string s in SerialPort GetPortNames return Console Error WriteLine 0 s string filename args 0 string portname args 1 if args Length gt 2 baudrate int Parse args 2 if baudrate 1200 amp amp baudrate 2400 amp amp baudrate 4800 amp amp baudrate 9600 Console Error WriteLine Invalid baudrate 0 should be one of baudrate Console Error WriteLine 1200 2400 4800 9600 ret
20. CL UTILS ROM 41CL Extensions Module User s Manual and Quick Reference Guide uut JS D Umm e IC Is ded 4 Photo By J rgen Keller 2011 Programmed by ngel M Martin December 2011 This compilation Copyright 2011 Angel Martin Published under the GNU software licence agreement Original authors retain all copyrights and should be mentioned in writing by any part utilizing this material No commercial usage of any kind is allowed Screen captures taken from V41 Windows based emulator developed by Warren Furlow See www hp41 org CLWRITE Source Code written by Raymond Wiker Cover photo Juergen Keller 2011 Inside photos Geoff Quickfall 2011 Acknowledgment This manual and the CLUTILS module would obviously not exists without the 41CL Many thanks to Monte Dalrymple for the development of the amazing CL board Angel M Martin Page 1 of 29 12 19 2011 CL UTILS Module Extension Functions for the 41CL Table of Contents 1 Introduction 11 A word of Caution 5 12 Functions at a glance 6 2 The functions in detail 21 Function Launchers 7 2 2 Catalogues and CATalogs 9 2 3 Interrogating the MMU 12 2 4 A wealth of a Library 13 3 HEPAX and Security 3 1 Configuring the HEPAX system 14 3 2 Security Functions 16 4 Advanced Territory 4 1 Using Page 4 17 4 2 Calculator Flash Backup amp Restore 17 5 Other Extensions 5 1 Alpha and Display Utilities 19 5
21. FFF 2000 2FFF System ROM 2 6F00 6FFF 5000 5FFF 1000 1FFF System ROM 1 HP N wo p UO 0000 0 System ROM 0 Primary bank Secondary bank The following error conditions can happen Because of dealing with pages and not full ports PLUGGX will only work with 4k ROMS or otherwise DATA ERROR will occur Valid page inputs are restricted to the 6 F range Letters other than A F will be inactive during the prompt but it will allow any numeric keys yet values less than 6 will also be rejected resulting in DATA ERROR Ifthe string in Alpha is not a valid ROM id you ll get BAD D as expected If the YFNS is not present not mapped to the MMU or running on a standard 41 without the CL board you ll get VONEXI STENT error Note that PLUGG and PLUGG are mutually complementary functions as they both operate on page id and will take or return the corresponding ROM id from to Alpha You could use PLUGG to interrogate the MMU about page 4 but you cant use PLUGG to plug anything to page 4 there s a dedicated function for that which will be covered in section 2 4 of the manual later on O ngel M Martin Page 14 of 29 12 19 2011 2 3 2 Security functions The following group of functions are a small detour in that they aren t directly related to the CL but they come to full fruition when used on this platform Activate
22. Multi Prec Library MATRIX ROM MC Test ROM Muecke ROM Navigation Pac NoVoCHAP NFC ROM NavPac ROM NaVCOM 2 OilWell Module Aviation for P3B C PANAME ROM PARIO ROM Proto Coder 1A Petroleum Pac Plotter Module PPC Melb ROM Plolynomial Analysis PPC ROM ProfiSet PRIDE ROM Quaternions ROM RAMPage Module Real State Pac ROAM Module SV s ROM SandMath 12k SandBox SeaKing MK5 Securities Pac Gas Module SIM Module Skwid s BarCode Speed Machine Simplex Module SandMath 8k Page 21 of 29 VM Electronics HP Co 1987 1985 Jean Marc Baillard Jean Marc Baillard Angel Martn Zengun LaitRam Corp Warren Furlow W Doug Wilder Angel Martn HP Co HP Co Zengun Zengun PPC Members David van Leeuwen Frits Ferwerda Peter Platzer Angel Martin M cke Software GmbH HP Co G Isene amp A Martin Nelson F Crowe Jim Daly IS Bariziene amp JJ Dhenin Nelson F Crowe Nelson F Crowe HP Co HP Co PPC Members Martin amp JM Baillard PPC Members Winfried Maschke 22 Jean Marc Angel Martin HP Co Wilson Holes Serge Vaudenay Angel Martin Angel Martin Navy Air HP Co SGS Redwood 2 Emery Alameda Mngmt Corp Phillipe J Roussel Angel Martin 12 19 2011 114 SND2 8k SandMath ll Angel Martin 115 4k Spectral Analysis Jean Marc Baillard 116 SRVC 4k Service ROM HP Co 11
23. ROM id table written into the CL_UTILS module More about this later Note that full port modules will return the ROM id attached to the lower half and the address to the upper half RAM MMU entries will return the corresponding RAM address While similar to the CAT2 concept this really has an MMU oriented perspective of things and thus is purely a 41 CL feature it ll render all entries zero if used on a regular 41 The program listing is rather simple as ADRID does all the weight lifting under the hood 01 LBL MMUCAT 20 LBL 00 02 70 0000 21 8040 03 ASTO X 22 XTOA 04 52 4 23 ARCL Y page amp 05 XEQ 00 24 YPEEK read MMU 06 CLX 25 YSWAP swap around 07 54 057 6 to 9 26 YCL delete from 27 YBSP back space 28 ATOX next 29 RDN 30 ADRID decode address 12 CLX 31 XTOA 13 65 07 A to F 32 33 3 34 next 30 RDN 36 AVIEW show IDs 18 CLD 37 PSE pause 19 RTN 38 END A related function is YFNZ which returns the page number the YFNS is currently plugged in This can come very handy in your programs to avoid overwriting it with other modules as we ll see in the HEPAX configuration routines Another related function is PLUGG It interrogates the MMU to find out which module is plugged into a given page the input to the function placed in X This is all page driven and not based on the port number There is no restriction in the input to the page number however the returne
24. S and then the listing can proceed in manual mode using SST and BST as you can expect It is in manual mode where you can use the other shortcuts or hot keys as follows ENTER skips to the next section or previous if running backwards will copy the id shown to Alpha will exit the catalog and invoke the PLUG function launcher SHIFT changes the direction of the listing backwards lt gt forwards BackArrow will cancel out the catalog The enumeration terminates in auto mode when the last ROM id or first one if running backwards has been reached The same considerations made about plugging modules can be made here be careful not to overwrite anything you re using with a new ROM image as there s no check whether the target location is already used or not As you can imagine there is a lot of code sharing between ADRID and these two ROM library catalogue functions Fundamentally they all use a ROM id table within the CL UTILS ROM to look up for the string and fetch the address in Flash of the corresponding image This table is quite long occupying almost 1k in the ROM yet worth every byte The A Z prompt entry in CLLIB is a refinement of the same idea it provides a handy shortcut to start your search in the appropriate section so there s no need to review all the preceding ones which can be very lengthy considering the sheer number of them even if you used ENTER to skip sections The impl
25. TILS description and usage example May you have a nice ride O ngel M Martin Page 4 of 29 12 19 2011 Function index at a glance And without further ado here s the list of functions included in the module Function Description Inputs Output 1 CLUTLS2E Header 2 MMU MMU Status Yes No None YES NO skip if false CLF _ Global Launcher Prompts B M P T U Launches selected Launcher 4 BAUD Baud functions launcher Prompts 1 2 4 9 Launches selected function 5 _ CL ID Library Prompts A Z Starts listing at selected letter 6 MMU MMU functions launcher Prompts C D E Launches selected function 7 MMUCAT MMU Catalogue None Sequential list of MMU Entries 8 PLUGG Plug Page Prompts for page Plugs ROM in page 9 PLUGG _ Page Location MMU Prompts for page content of MMU entry for page 10 PLUGGX Plug Page by X Page in X Plugs ROM in page 11 PLG 4_ Page 4 Plug Prompts F L S Selected ROM plugged 12 PLUG PLUG functions launcher Prompts for location ROM with ID in ALPHA is plugged 13 RONMLIB ROM Library Displays all ROMs Sequential list of ROM ID s 14 UPG 4 Clears MMU entry for page 4 None MMU entry cleared 15 _ TURBO functions launcher Prompts X 2 5 1 0 2 Launches selected function 16 UPLUG UPLUG functions Launcher Prompts for location Location is removed from MMU 17 Y1SEC One second delay None 1 sec delay 18 YBSP ALPHA back Space String in ALPHA Del
26. alue 090 Fixed value 091 XFF1 Fixed value OE5 XFF2 Fixed value 200 The maximum number of HRAM pages accepted by the function is 9 but typical HEPAX configurations have 2 pages Standard HEPAX 8k or 4 Advanced HEPAX 16k The page id is assigned starting with D for the first page and increasing it on each contiguous page up until 15 hex in theory For this to work the target pages must be mapped to SRAM or otherwise the byte values could obviously not be changed _ 4 5 RAM page F ROM page E HPX8 8k RAM HEPAX Setup RAM pages E F ROM page D HPX16 16 RAM HEPAX Setup RAM pages C F ROM page B These three functions will prepare the CL ports to hold a properly configured HEPAX file system starting from the scratch The process can be divided into four distinct parts 1 First copying the HEPAX RAM template from Flash into the appropriate number of SRAM blocks as many times as needed 2 Followed by mapping those SRAM blocks to the 41 ports and 3 Then configuring them using HEPINI so that they are enabled for the HEPAX ROM to use 4 Besides that the functions will also map the HEPX ROM image to the page preceding the first HRAM block as shown in the table above So even if they don t require any input parameter you must be fully aware that the previous MMU mapping to those ports wi
27. ched 6 BackArrow to cancel out the process and return to the OS NA Like it is the case with the standard Catalogues the buffer listing in Auto mode will terminate automatically when the last buffer or first if running backwards has been shown In manual mode the last first entry will remain shown until you press BackArrow or R S Should no buffers are present the message BUFFERS will be shown and the catalog will terminate Note also that the catalogue will not be printed being shown only on the display Photo courtesy of Geoff Quickfall Angel M Martin Page 10 of 29 12 19 2011 2 2 3 1 the MMU MMUCAT MMU CATalogue No inputs ADRID Gives ROM id from ADR Expects string in Alpha FYNZ FYNS Location Finder No inputs PLUGG ROM id in page by X Prompts for page Valid inputs are 4 6 F MMUCAT is really a FOCAL program that drives the function ADRID the real engine behind it not to be confused with the capital city of a country know quite well ADRID is obviously programmable The idea is simple produce a list of the MMU mappings into the different pages showing either the ROM id or the address Flash or SRAM currently mapped to the port A loop is executed starting on page 4 and up until page F Each iteration retrieves pokes more appropriately the address written into the corresponding MMU register then searches it against the internal
28. cks done during strategic moments to specific locations that can be used to take control on the system even over the OS itself if that was required as it happens with the diagnostics executed from the different SERVICE ROMS Because of that only take over ROMS can be plugged in page 4 They have been written specifically for it and will either take complete control of the system like the FORTH Module or drive it from their own directive like the LAITRAM Module Function PPG 4 prompts for the ROM to plug into the page options being just those three mentioned above FORTH LAITRAM or SERVICE modules by their initials F L S Once the selection is made the function transfer execution to a hidden FOCAL program that writes the appropriate entries into the MMU registers so that the mapping is correct Refer to the CL manual for details on this WARNI NG Be aware that once the order is complete you ll be at the mercy of the plugged module Going back to the normal OS may not be as simple as you think specially with the Service ROM plugged which requires removing the batteries then clearing the MMU entry with the MMU disabled after you switch it back on For the other instances it is possible to exit back to the OS and thus you could execute UPPG 4 to unplug the module from the page Obviously no inputs are needed in this case Note that because of their titles being not directly keyable using XEQ an intentional measure you
29. d down long enough Resetting everything back to normal conditions CLNUP and see whether there actually exists such a section before we launch into a blindfold enumeration This is done by the subroutine SRCHR which will fetch the address in the ROM id table where the section starts With that we ll transfer the execution to the ROMLIB function code where the actual enumeration will take place only with a padded value to start from as opposed to doing it from the top of the table CLLIB 25 CLLIB 127 CLUB 28 CLLIB 129 CLLIB 0 CLLIB 31 CLLIB 132 CLLIB 3 CLUB JA6F2 7106 A CSSX jsaveofsetino SEQ CLLIB i PORT DEP XQ PORT DEP i Note how SRCHR is really part of the ADRID function code which also does table look ups for its own purpose This code is written around the table structure refer to the BluePrints for more details And that s all folks easy when you know the tricks Angel M Martin Page 26 of 29 ADRID 33 ADRID 24 ADRID TOC 35 ADRID A356 03C RCR3 2 getpagenumber 736 ADRID 37 ADRID 8 ADRID C C C S amp X double it up 9 ADRID 206 S amp X add offset to it 0 ADRID 1BC 11 put it in C 6 3 41 ADRID A lt gt C put it in A 6 3 42 ADRID 066 lt gt S amp X put reference in A S amp X ADRID A amp C M bring adr to ADRID A C M keep it in 5 ADRID FET
30. d values for pages 0 1 2 3 and 5 don t quite have the same meaning PLUGG Also uses ADRI D to decode the string returned by YPEEK which provides the MMU address mapping the corresponding page In the YFNZ case there s no need to look up in the ROM id table since we know what we re looking for just need to check all pages looking for that specific string O ngel M Martin Page 11 of 29 12 19 2011 2 2 4 A wealth of a Library ROMLIB ROM Library No inputs CLLIB CL Library Prompts for A Z P Invokes PLUG A Copies id shown to Alpha One of the most notable features of the CL is its extensive ROM image library allowing you to plug almost any conceivable module ever made of which have contributed a few into your 41CL just by using one of the PLUGxx functions The input syntax requires that the correct ROM ID string be placed in Alpha and certainly there are a few of those to remember and rather similar to each other since the string is only 4 characters long These two functions come to the rescue by providing an alphabetical listing of all the module ID s so you can review them and eventually plug the ROM directly from the catalogue for convenience sake ROMLIB starts the listing at the top of the list whereas CLLIB prompts for an alphabetical section A to Z Choosing A here is of course equivalent to executing ROMLIB Both catalogues can run in auto mode of can be stopped using R
31. egration a simple and reliable affair Security functions to password protect your machine from prying hands Other housekeeping functions roundup the set making for a total of 41 functions tightly packed into a 4k ROM This is a design criterion as the small footprint of the module makes it ideal to share with other utility packs most notoriously the CCD OS X or its alter ego AMC OS X for the ultimate control SO Save some small exceptions there is no duplication between these two A word of caution As wise men remind us all with power comes responsibility ndiscriminate usage of some of these functions can have unpleasant consequences ranging from unexpected results and easy to recover machine lock ups to more serious ones involving loss of Flash sectors or even electrical damage in the worst scenario Functions have some built in protection to ensure that they re used properly but they are not absolutely foolproof in that such protection can always be circumvented So beware and as general rule f you dont understand something don t use it To help you with this the more dangerous functions are marked with the WARNING sign all throughout this manual Avoid them if you re not absolutely sure that you know what they are for and fully understand their operation And a ways always have fresh batteries on when using the Flash backup It had to be said so now that we got it out of the way we re ready to dive into the CL U
32. ementation is quite nice even if it s the author who says it have a look at the CLUTILS Blueprint if you re curious about the MCODE implementation details If the section doesn t have any ROM id starting with such letter which currently only occurs with V and W letters the message SUCH will be shown Non alphabetical keys are not valid entries and will cause the display to just blink and maintain the prompt Lastly selecting X will list the general purpose placeholders refer to the CL manual for details on those O ngel M Martin Page 12 of 29 12 19 2011 2 3 HEPAX and Security 2 3 1 Configuring the HEPAX system Initializes File System Author Howard Owen Use this function to initialize the HEPAX File System on the CL This is needed on the CL because this feature is disabled in the HEPAX ROM image included in the CL Library and therefore the addition here The function takes two parameters the number of HEPAX RAM pages to configure in Y and the address of the first one in X The procedure consists of writing a few bytes into strategic locations within each HRAM page so that the HEPAX will recognize them as being part of the HEPAX File System Those locations and byte values are shown in the table below x000 Page id 7 Previous HRAM id zero if first xFE8 Next HRAM page id zero if last XFE9 Fixed value 091 xFED Fixed v
33. etes rightmost character 19 YCL Clears string from gt String in ALPHA Clears from gt char to the right 20 YCL Clears string from hyphen String in ALPHA Clears from char to the right 21 YFNZ Page location of YNFS None Location in MMU 22 YINPT _ Y Input None IHEX entry plus control chrs 23 YRALL Y Read ALL None Reads Calculator MMU from Flash 24 YSWAP Swaps both sides of gt String in ALPHA Alpha swapped around gt 25 YSWAP Swaps both sides of hyphen String in ALPHA Alpha swapped around 26 YWALL Y Write ALL None Writes Calculator MMU to Flash 27 SYS EX Section Header qva 28 ADRID Address ID Flash address in Alpha ROM ID in Alpha 29 BFCAT Buffer Catalogue None Shows present buffers 30 BLCAT Block Catalogue None Lists block contents 31 Code HexCode in ALPHA NNN in X 32 DCD Decode NNN in X Hex Code in Alpha 33 DTOA Display to ALPHA Display contents Text in Alpha 34 DTST Display Test None Shows display all lit up 35 HEPINI HEPAX FileSys Init pages in X first page in Y Initializes HEPAX File System 36 4 HEPAX FileSys Init CL None Configures 4k HEPAX on CL 37 8 FileSys Init CL None Configures 8k HEPAX on CL 38 HPX16 HEPAX FileSys Init CL None Configures 16k HEPAX on CL 39 SECURE Enable password lock None Sets SECURE mode ON 40 UNLOCK Disable password lock Asks for password Sets Secure mode OFF 41 XPASS Change password Asks old new passwords Password is changed Function
34. he 412 module into a full port of your CL J ust doing that won t create the buffer but switching the calculator OFF and ON will or alternatively execute the HP 41Z function After doing that execute BFCAT again then immediately hit R S to stop the listing of the buffers and move your way up and down the list using SST and BST You should also see the line for the 41Z buffer as follows id 8 buffer size 12 properly allocated If the module is not present during the CALC ON event that s to say it won t re brand the buffer id the 41 OS will mark the buffer space as reclaimable which will occur at the moment that PACKING or PACK is performed So it s possible to have temporary orphan buffers which will show a question mark next to the id in the display This is a rather strange occurrence so most likely won t be shown but it s there just in case BFCAT has a few hot keys to perform the following actions in manual mode 1 R Sstops the automated listing and toggles it with the manual mode upon repeat pressings D for instant buffer deletion there s no way back so handle with care 3 H to decode the buffer header register Its structure contains the buffer ID as well as some other relevant information in the specific fields all buffer dependent 4 SHIFT to flag the listing to go backwards both in manual and auto modes 5 SST and BST to move the listing in manual mode until the end or beginning is rea
35. ion and you should read and understand all about it in the CL manual Specifically pay strong attention to the recommendations about the battery state before performing any flash write operation e The second one is that YFWALL will pick certain hard coded FLASH locations as destination for the backup so the 32k sector 0x0C8000 OxOCFFF will be ERASED by YFERASE e Then there s the question about having to run the programs from RAM for the flash write read to work One could assume that YFNZ is already there but it s much better to make sure that s the case by making a copy on the fly and plugging it to the MMU under program control Such copy goes to RAM block 0x80C overwriting anything you may have plugged in there previously e Finally the programs also assume that YFNZ is plugged in page 8 that is Lower port 1 Therefore all MMU mapping to YFNS from SRAM and Flash will use that location The FOCAL code used by the function is shown below There is also a check done in MCODE looking for the string OK or OKALL to be present in Alpha If none is there the execution will end with DATA ERROR as a protection against accidental usage OK will get the Calculator content backed up whilst OKALL will also include the MMU entries into Flash Note that on either case the whole 32k sector will be used 1 LBL YWALL 2 TURBO50 run as fast as possible 3 062 gt 80C Copies YFNS to block 4 YMCPY in memory 0x80C000 5 gt
36. ll be overwritten The exception being the YFNS ROM itself as the programs will check whether it is currently mapped to the page being copied and abort if that s the case A nice built in protection to avoid getting in trouble See the appendix 2 for a listing of the FOCAL programs that implement this functionality Angel M Martin Page 13 of 29 12 19 2011 _ PLUG Page by X Page in X 4k ROMS only _ PLUG page by prompt Prompts for page 6 F 4k ROMS only Plugging the HEPAX ROM into the appropriate page is accomplished by a single function using a parameter to define the page address This function is PLUGGX or Plug Page by x and its prompting doppelganger PLUGG Contrary to the port related convention of the native CL functions we re now referring to a page related one whereby the arguments of the function are the ROM id in Alpha same as usual and the page in X removing the hard coded dependency of the location used by the PLUGLxx and PLUGUxx functions The picture below taken from the HEPAX manual provides the relationship between ports and pages also showing the physical addresses in the bus and those reserved for special uses like OS Timer Printer HP IL etc Note that some pages also called 4k blocks or simply blocks are bank switched As always a picture is worth 1 024 words Block Addresses 9000 9 7000 7 4000 4
37. oard is also re defined in that just those keys corresponding to the appropriate options are active The cues in the prompt will offer you indication of which keys are active on the keyboard and typically are intuitive enough to figure out in each case options for 2 5x 10x 20x 50x Use 0 for 20x Radix for 50 as 2 and 5 are already taken for 2x and 5x speeds general all launchers behave in a similar manner The Back Arrow key will either cancel out entirely or remove partial entries Non active keys will blink the display and maintain the prompt Holding down the last key briefly shows the invoked function name visual feedback This will be followed by NULL if kept depressed long enough last chance to bail out Launchers are not programmable per se but They can be used in PRGM modeto enter the called upon function as a program line Angel M Martin Page 6 of 29 12 19 2011 The PLUG UPLUG launchers don t offer cues in the prompt and therefore deserve special consideration The picture below shows the convention for the external pages of the 41 Port 1 Port 2 Upper Page 9 hex Upper Page B hex Lower Page 8 hex Lower Page A hex Port 3 Port 4 Upper Page D hex Upper Page F hex Lower Page C hex Lower Page E hex Valid entries for the prompt are 1 for port 1 comprising pages 8 and 9 2 for port 2 comprising
38. ound Swap around gt The reason why characters and gt are so relevant is the formatting required by many of the YFNZ functions like YPEEK YPOKE PLUG etc To that effect the most useful function of this group is no doubt YI NPT which redefines the keyboard as a hex entry 0 9 A F plus a few special control characters as follows J will add character gt to the display and Alpha will add character to the display and Alpha will add the string RAM to the Display and Alpha will add the string 16K to the Display and Alpha BackArrow will remove the last character or groups above or cancel out if Empty ENTER will terminate the entry process and perform AVI EW Using this function expedites the construction of the Alpha strings required by all other Y Functions make sure you have it assigned to a handy key as it s likely to be used quite frequently Display to Alpha Display Test Author Chris L Dennis Source PPC V18 p14 DTOA is an elusive one to grasp but basically is the inverse from AVIEW as it copies the characters in the Display to Alpha The need for this doesn t usually present to the user as the normal text entry always involves Alpha but there are times when the reverse is also needed As a totally useless demo assign DTOA to any key then press it in USER mode long enough
39. pages A and B 3 for port 3 comprising pages C and C L to flag a LOWER half port condition followed by the port number U to flag an UPPER half port condition followed by the port number For the U PLUG cases the prompt completes either when the number 1 4 or the letter P H is entered and the corresponding function is launched For half port or 4k modules use the L U keys first in the un plugging prompts then the port number These keys act as toggles when pressed sequentially replacing each other in the display upon repeat usage Also during these events pressing BackArrow removes the half port condition and returns to the main prompt Remember that plugging a module into the wrong port location can create minor issues or major havoc if you re overwriting some part of the machine s configuration A good example is overwriting YFNS itself or a HEPAX RAM block Always make sure the destination is safe using BLCAT the standard CAT2 or better yet the CCD 2 Also valid entries for page 7 the HP IL reserved page P for page 6 the Printer reserved page Caution Both PLUG UNPLUG offer all the 14 available choices in YFNS including U PLUGP and U PLUGH Exercise extra caution with those two locations as they may be used by system extensions like Printer or HP IL Page 6 in particular has more strict demands on the ROM layout that makes it non suitable for the majority of ROMS A so because
40. ppv TIV 914M A ueud y sepis sdems 4 JO Sepis yjog sdems A SANA JO ueud u Buujs sJea o lt Buys 5 eoeds x eq puooes euo Jeuoune Jeuoune 1 v4 Aua NWN SJeajo WOH Jeuoune q nid NINW uone o Boreo NWN Jeuoune suonounj NWN di 19 Jeuoune suomnoun pneg Jeuoune jeqo s ON S8A SNIS NWN uonduoseq uiuen 0 MIOINN 3unoas 6 u9 LXdHu 8 ubXdH 99 S5frld LVONWIN uonounj SILA
41. s are an elusive construct that is mainly used for 1 0 purposes Some modules reserve a memory area right above the KA registers for their own use not part of the data registers or program memory either The OS will recognize those buffers and allow them to exist and be managed by the owner module which is responsible to claim for it every time the calculator is switched on A good example is the Time module which uses it to store the alarms data Each buffer has an id number ranging from 1 to 14 Only one buffer with a given id can exist thus the maximum number present at a given time is 14 buffers assuming such hoarding modules would exit which thankfully they don t The table below lists the well known buffers that are possibly to be found on the system Buffer id Module Eprom Reason E nfo KA area isn t really a buffer 1 2 7 10 11 12 13 14 EST For instance plug the AOSX module into any available port Then type PI SEED followed by BFCAT to see that a 2 register buffer now exists in the 41 1 0 area created by the SEED function ELE EE id 5 buffer size 22 properly allocated Suppose you also change the default word size to 12 bits by typing 12 WSIZE This has the effect of increasing the buffer size in one more register thus repeating BFCAT will show ui id 5 buffer size 3 properly allocated Angel M Martin Page 9 of 29 12 19 2011 Say now that you also plug t
42. s in BLUE are all in MCODE Functions in BLACK are MCODE entries that call FOCAL programs Functions in QUOTES italics are FOCAL programs Functions in RED denote prompting entries O ngel M Martin Page 5 of 29 12 19 2011 2 The functions in detail The following sections of this document describe the usage and utilization of the functions included in the CL UTILS module While some are very intuitive to use others require a little elaboration as to their input parameters or control options which should be covered here 2 1 Function Launchers The table below lists the launchers by function groups 1 BAUD None Calls BAUD12 BAUD24 BAUD48 or BAUD96 2 MMU None Calls MMUDIS MMUEN or MMU 3 TURBO None Calls the corresponding TURBO xx function 4 PLUG Light Prompts for port location Enter L U first when needed 5 UPLUG Light Prompts for port location Enter L U first when needed 6 Launcher of Launchers gt invokes any of the five above When you assign ZCLF to any key that alone will give you access to more that 25 functions from that single key an effective way to make it compatible with other existing key assignments saving memory KA registers and time So go ahead and get comfortable with that arrangement as your baseline Prompting functions use a technique called partial key entry dividing the data entry in two or more parts The keyb
43. st if so CDE and DCD are the classic NNN to from Hex utilities also used as subroutines throughout the module and thus made available to the user as individual functions as well Farewell And with this you ve reached the end of the CLUTILS manual hope this few pages have proven useful to you in your quest to become familiar with its capabilities and whet your appetite for even more to come The 41CL is an incredible realization with amazing possibilities opening the door to yet new developments on the HP 41 platform all this still happening 33 years after the original 41 was launched Now that s what I call an achievement Photo by Geoff Quickfall 2011 O ngel M Martin Page 19 of 29 12 19 2011 Appendix 1 Detailed ROM id table in alphabetical order ID 1 A41P 2 4 5 6 AECR 7 AFDF 9 AFIN 16 11 ALGY 12 13 AOSX 14 ASM4 15 ASMB 16 ASTT 17 AUTO 18 19 AVIA 20 528 21 BCMW 22 BESL 23 BLDR 24 BLND 25 ccpP 26 CCDR 27 28 CHEM 29 CHES 30 31 32 CLUT 34 35 36 37 DASM 38 39 DEVI 40 41 DMND 42 DYRK 43 E41S 44 ESML 45 EXIO 46 EXT 47 FACC 48 FINA 49 FRTH 50 FUNS 51 GAME 52 GMAS 53 GMAT 54 HCMP 55 O ngel M Martin Size 12k 4k 16k 12k 8K 8k 8k 8k 4k 8k 4k 4k 4k 4k 4k
44. to see its name shown then release the key the words will be copied from the display to Alpha DTST Simultaneously lights up all LCD segments and indicators of the calculator display preceded by all the comma characters which BTW will be totally unnoticed if your CL is running at 50x Turbo Use it to check and diagnose whether your display is fully functional No input parameters are required Angel M Martin Page 18 of 29 12 19 2011 2 4 1 Other Utilities The following functions perform housekeeping tasks and are included in the CLUTILS for added convenience Some are a remake of the native YFNS with slightly improved behavior while others just add up for a rounder pack Is the MMU enabled No Input Author Monte Dalrymple HEX string to NNN String in Alpha Author Ken Emery NNN to HEX string NNN in X Author W amp W GmbH __ 1 Second Delay No input Author Monte Dalrymple Location for YFNZ No Input Some brief comments follow MMU is almost identical to MMU In the YFNS Rom but the return in RUN mode is YES NO like the other conditional functions of the machine 1 is totally identical to YSEC YFNZ is totally equivalent to YFNS only that it has different coding It also must be in the CLUTILS for subroutine purposes Incidentally this is how PLUGGX checks for YFNS being currently mapped to the target page and discards the reque
45. urn if args Length gt 3 delay int Parse args 3 if delay gt 10 Console Error WriteLine delay 0 probably too large delay return if File Exists filename Console Error WriteLine File 0 does not exist filename return FileStream fstream File Open filename FileMode Open if fstream Length gt 8192 Console Error WriteLine WARNING 0 is over 8192 bytes long 1 filename fstream Length Console Error WriteLine Will only transfer the first 8192 bytes Angel M Martin Page 27 of 29 12 19 2011 BinaryReader binReader new BinaryReader fstream SerialPort serialport new SerialPort serialport PortName portname serialport BaudRate baudrate serialport Parity Parity None serialport DataBits 8 serialport StopBits StopBits One serialport Handshake Handshake None serialport Open try byte buffer new byte 8192 int count binReader Read buffer 0 8192 swap high amp low bytes for int 0 i lt count 2 byte tmp buffer i buffer i buffer i 1 buffer i 1 tmp for int i 0 i lt count i Console Write 0 x2 buffer i if 1 16 15 Console WriteLine serialport Write buffer i 1 if delay gt 0 Thread Sleep delay Console WriteLine catch EndOfStreamException nada serialport Close Angel M Martin Page 28 of 29 12 19
Download Pdf Manuals
Related Search
Related Contents
Optima XE Series User Guide eSense Skin Response User Manual Manual de usuario aplicativo pruebas Aprendamos 2 a 5 User`s Manual Lasko Fan 2744 User's Manual Wells WPP-10 User's Manual Philips DECT baby monitor Informes de Auditoría Sistema de Seguimiento Télécharger le document PDF - Association Française de Stérilisation Copyright © All rights reserved.
Failed to retrieve file