Home

CLUTILS Manual - Systemyde Home

image

Contents

1. 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 HEPYX or 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 will 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 Obviously these functions are not to be used frequently since each execution will wipe off the contents of the HRAM pages overwritten with blank FLASH templates Therefore the medium warning sign proceed with caution See the appendix 2 for a listing of the FOCAL programs that implement this functionality Example Say you have used HPX16 described before to configure 16k of HRAM that is pages C to F contain copies of the HEPAX RAM template You may want to use some pages for the FileSys
2. CLEM Clears Extended Memory No Input Author Hakan Th rgren DCD NNN to HEX string NNNinX Author W amp W GmbH ZDGT Sum of Mantissa digits NumberinX J XROM Rom function Launcher Prompts for values Author Clifford Stern Xtended CF Allows ANY flag Author Michael Katz Xtended SF Allows ANY flag Author Michael Katz Some brief comments follow MMU is almost identical to MMU In the YFNS ROM but the result in RUN mode is YES NO and will follow the skip program line if false rule like the other conditional functions of the machine YEFNZ is completely equivalent to YFNS in fact is just a code stub that invokes the latter It must be in the CLUTILS module for subroutine purposes Incidentally this is how PLUGGX checks for YFNS being currently mapped to the target page and discards the request 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 CLEM erases the master register holding the Extended Memory directory and therefore will effectively be equivalent to a full deletion of all XMEM files XROM is a well known function to directly call any function within a plug in ROM knowing its ROM id and functionz Written by Clifford Stern in the heydays of the 41 systems with a real inside knowledge of the internal OS routines Both prompt i
3. 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 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 2 2 1 Block CATALOG BLCAT Block Cataloc 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 VO FAT if such is the case Empty pages wi
4. 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 Unplugs ROM from p4 The 41 OS reserves Page 4 as a special location There are frequent checks 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 entr
5. BK case config parm two pages starting at pagere 4kcase config parnm just one page starting at page F configure HEPAX FileSys get pages below plug HEPAX there show we ve done it done 22 01 2012 Apendix 3 MCODE Listing showing the Alphabetical sections prompting code The function CLLIB begins by building 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 EXIT3 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 B S amp X and we move on CLLIB BCKARW ABBE 347 PORT DEP 2 CLLIB ABBE i08C GO 3 CUB A670 36E A36E JEXIT3 GE 4 CLLIB Header 082 5 CLLIB Header 5 CLLIB Header F CUIB Header CL Library 8 CLLIB Header UU Prompting Alphabetical
6. 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 ADRI D does all the weight lifting under the hood 01 LBL MMUCAT 20 LBL UU 02 0 0000 21 8040 prefix 03 ASTO X 22 ATOA g 23 ARCL Y pages 24 YPEEK read MMU rg 25 Y SWAP swap around 5 to 9 26 YCL delete from 2r YBSP back space 28 ATOX next 29 RDN 30 ADRID decode address 31 ATOA A to F 32 h 33 3 34 AROT ISG X next 35 RON 17 GTO 01 36 AVIEW show DF 16 CLD af 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 returned values for pages 0 1 2 3 and 5 don t quite have the same meaning PLUGG Also uses ADRID 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 lookin
7. 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 1 baudrate int Parse args 2 if baudrate 2 1200 amp amp baudrate 2400 amp amp baudrate 4800 amp amp baudrate 2 9600 1 Console Error WriteLine Invalid baudrate 0 should be one of baudrate Console Error WriteLine 1200 2400 4800 9600 return 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 1 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 BinaryReader binReader new BinaryReader fstream ngel M Martin Page 35 of 36 22 01 2012 SerialPort serialport new SerialPort serialport PortName portnam
8. keycode 350 HHHH ONE PROMPT 22 01 2012 The last part is about presenting the chosen key allowing NULLing if it s held 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 124 CLLIB MOVEON AGES 7579 PORT DEP CleanUp and Show 125 CLUB ABEA 03C XQ Allows NULLing 126 CLLIB ABEB 127 CLLIB ABEC 128 CLLIB ABED 129 CLLIB ABEE 130 CLLIB ABEF 131 CLLIB ABFO 132 CLLIB AGF 133 CLLIB ABF2 134 CLLIB ABF3 349 PORT DEP Search Char in B S amp X 135 CLUB ASFA 08C XQ start offset in A S amp X 136 CLLIB ABF5 7353 4353 ERCHR 145 CLUB A6F6 023 JNC 04 H notfouna bail out with style 146 CLUB ABF7 341 PORT DEF Transfer code to Main LIB 147 CLUB AGF8 08C GO 148 CLUB ABFO 386 4366 ERGE 149 CLUB INFMSG 150 CLUB 151 CLUB Display Message 152 CLLIB AFI 08C Unless Error Flag is set 153 CLLIB BEE A DSPERRI 154 CLUB 155 CLLIB 156 CLUB 157 CLUB 158 CLLIB 159 CLLIB e i Cn oh D CLLIB CLUB CLLIB CLLIB Cn La
9. 34 CVPK 35 DA4C 36 DACQ 37 DASM 38 DAVA 39 DEVI 40 DIIL 41 DMND 42 DYRK 43 E41S 44 ESML 45 EXIO 46 EXT 47 FACC 48 FINA 49 FRTH 50 FUNS 51 GANE 52 GMAS 53 GMAT 54 HCMP 55 HEPR O ngel M Martin 12k 4k 16k 12k 8K 8k 8k 8k 4k 8k 4k 4k 4k 4k 4k 16k 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 lO 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 25 of 36 HP Co J F Garnier Angel Martin Angel Martin Angel Martin Hed Shift GunZen GunZen GMAC Angel Martin Elgin Knowles amp Senne A Martin amp D Wilder Angel Martin Jean Marc Baillard HP Co Beechcraft HP Co Boeing A Martin amp JM Baillard W Doug Wilder Angel Martin Angel Ma
10. 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 integration 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 44 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 don t understand something dont use it To help you with this the more dangerous functions are marked with the WARNING sign all th
11. D ISENE ROM 0x0C9 Geir Isene Bus Sales Mkt Stat OxOCA HP Co Control Systems OxOCB HP Co Electrical Eng 0x0CC HP Co AM Lend Lease amp Sav OxOCD HP Co Test Statistics OxOCE HP Co Mechanical Eng OXOCF HP Co AM Angel M Martin 8 Antennas Optometry amp Il Physics Geometry High Level Math Interchang Sol Module Database Page 27 of 36 OxODI1 0x0D2 0x0D3 0x0D4 0x0D5 0x0D6 0x0D7 HP Co HP Co HP Co HP Co HP Co UPLE MD M 22 01 2012 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 you re safe if using PLUGGX it won t let you to In the HEPAX configuration code the role of HEPI NI 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 that would be 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 0
12. and others to hold other ROM images and this in a dynamic way Then the following options are available to configure the HEPAX FileSystem N P amp Resut Commet Page C Can extend upwards to C D C D E or C D E F Page D Can extend upwards to D E or D E E Page E Can extend upwards to E F Page F Pages C D Can extend upwards to C D E or C D E F Pages D E Can extend upwards to D E F Pages E F Pages C D E Pages D E F Pages C D E F mmo oO C D E U O O Notice that the configurations can always be extended to include other pages located at upper addresses but not the other way around This is because the HEPAX code searches for the blocks sequentially to determine whether they belong to its FileSystem starting at page 8 So once they are configured changing the location of the first page to a lowered number block will create a conflict Note Using the prompt D in the HEPX function launcher will invoke the HEPDIR function from the HEPAX ROM which obviously is expected to be mapped to the MMU or physically plugged to the CL for this to work ngel M Martin Page 14 of 36 22 01 2012 2 3 2 Page Plug functions PLUGGX PLUG Page by X Page in X 4k ROMS only PLUGG PLUG page by prompt Prompts for page 6 F 4k ROMS only Pl 22 PLUG page 4 Prompts for ROM F L S Take Over ROMS Get plugged I D Prompts for page 6 F 4k ROMS only As mentioned before
13. and byte values are shown in the table below po Previous HRAM page id zero if first Next HRAM page id zero if last For this to work the target pages must be mapped to SRAM or otherwise the byte values could obviously not be changed So it is expected that the appropriate number of HRAM pages are configured which is the subject of the functions describe in the next section The maximum number of HRAM pages accepted by the function Is 9 but typical HEPAX configurations have TWO pages Standard HEPAX 8k or FOUR Advanced HEPAX 16k The ROM id s are assigned by giving it the same value as the page number be aware that this may conflict with other ROMS currently plugged in your CL notably CLUTILS uses ROM id C and YFNS uses F so those two pages will have to be their id manually re issued to avoid any issues Use HEXEDIT for that HEPI NI and HEPYX won t disturb the actual contents of the HRAM FileSystem so they can be used at any time provided that the entries used are compatible with the HRAM arrangement It is also possible to use them to configure only a subset of the available HRAM as long as such subset uses the lower pages An later example will clarify this O ngel M Martin Page 13 of 36 22 01 2012 4k RAM HEPAX Setup RAM page F ROM page E EE HPX8 8k RAMHEPAXSetup RAM pages E F ROM page D Z o Z HPX16 16k RAM HEPAX Setup RAM pages C F ROM pageB
14. be shown and the catalog will terminate Note also that the catalogue will not be printed being shown only on the display Tit RTT E E L r e T a Edi 7 gt D po ag gt 7 4 she 7 ead i 91T TTELLI A b MI 1111 772 TIT 11111011 siaaee ft Photo courtesy of Geoff Quickfall O ngel M Martin Page 10 of 36 22 01 2012 2 2 3 I nterrogating the MMU MMUCAT MMU CATalogue Noiputs ADRI D Gives ROM id from ADR Expects string in Alpha FYN E FYNS Location Finder 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 ADRI D 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 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
15. 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 PACKI NG 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 S stops 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 reached 6 BackArrow to cancel out the process and return to the OS NO 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 VO BUFFERS will
16. h ch Note how SRCHR is really part of the ADRI D 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 32 ADRID Expects chrit in B S amp X de mmm ee ee ee 3 ADRID A354 135D NCXO 4 ADRID 000 00DT PCTOG i 35 ADRID A356 3C RCR3 lt get page number 36 ADRID LDI S amp X 27 ADRID A358 a OE oaa aaa aaa E 38 ADRID 35 IER C C C S amp X double it up 39 ADRID ARE C C A S amp X add offset to it 40 ADRID RCR 11 put it in C 6 3 41 ADRID BA AC M put it in A 6 3 412 ADRID 35D 6 A amp B SAX put reference in A S amp X 413 ADRID 15 bring adr to CIM 44 ADRID 35 11A A C M keep it in AJM 45 ADRID A36 FETCH S amp X read value at address 46 ADRID 361 EG 7C 0 S amp X value non zero 47 ADRID 362 3M NC RTN NO TERMINATE HERE i8 ADRID 363 36 2ASC SEX are they different 49 ADRID A36 033 JNC 06 no gt FOUND PT 3 LD PT 5 A A C M ING 11d POPADR C C 1 M PUSHADR RTN And that s all folks easy when you know the tricks O ngel M Martin Page 33 of 36 22 01 2012 Appendix 4 Serial Transfer CLWRITE source code written by Raymond Wiker 1 Copy YFNS 1A to RAM at 80C000 and patch for items 2 5 8 These affect the operation of YIMP I did this with a va
17. to the MMU or running on a standard 41 without the CL board you ll get VONEX STENT error Photo by Geoff Quickfall 2011 O ngel M Martin Page 16 of 36 22 01 2012 2 3 3 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 SECURE Activate Security Author Nick Harmer Source Data File MESSEN UNLOCK Deactivate Securi 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 favori
18. 00E 80A000 000E BOAFE8 000F 80B000 000F O ngel M Martin 03 10 11 12 13 14 15 15 17 18 18 20 21 64 62 63 54 55 66 B7 58 69 70 T1 72 Page 30 of 36 LBL HPX4 GTO 02 LBL HPX ASF TURBOSO OB9 gt 808 AVIEW YMCPY FS 00 GTO 00 YBSP mg AVIEW YMCPY FS 01 GTO 00 YBSP am AVIEW YMCPY YBSP Bg AVIEW YMCPY LBL 00 SETUP AVIEW RAM ASTOL 808 ARCL L PLUG4U FS 00 GTO 01 809 ARCL L PLUG4L FS 01 GTO 03 B0A ARCL L PLUGJ3U B0B ARCL L PLUG3L A ENTER 12 GTO 00 LBL 03 2 ENTER 14 GTO 00 LBL 01 E ENTER 15 LBL 00 HEPINI E HEPX PLUGGX HEPDIR END Entry for 4k Entry for 8k Entry for 16k flag setting run as fas as possible prepare for 0x808 provide feedback copy to 0x808 in RAM 4k case yes skip the rest remove last chr replace it provide feedback copy to 0x809 in RAM ok case yes skip the rest remove last char replace it provide feedback copy to Ox60A in RAM remove last char replace it provide feedback copy to Ox80B in RAM announce last phase buffer common string in temporary storage build first mapping text plug 0x808 to pagest 4k case yes jump over build 2nd Mapping text plug 0x809 to page E ok case yes jupm over build Ser Mapping text plug Ox80A to page D build 4th Mapping text plug Qx80B to DOC configuration parameters four pages starting at pagesc
19. 9 CLUB A676 000 NOP 10 CLLIB I 58 M CALL LLL LLL 11 CLLIB AB78 345 NC XQ Clears Alpha 12 CLLIB ABTS 040 10D1 vest ON 0 0o o 13 CLUB ABTA 301 INC XG Enable amp Clear Display 14 CLLIB ABT 10BO 2CF0 O CLLCDE 15 CLUB AB7C Nag Ve AL IRR OOOO 18 CLUB 134D NC XQ 7 CLLIB 05D3 18 CLLIB 19 CLUB 20 CLLIB 21 CLLIB 22 CLLIB 23 CLUB 24 CLLIB 25 CLLIB 26 CLUB FSET 4 27 CLLIB JNC 12d aa 28 CLUB Asso M30 LDIS amp X 29 CLUB ABBA 00A ee an nn DEDERE HIERRO 30 CLUB A68B 35E 740 MS was J pressed 1 31 CLLIB A amp 8C flo023 JNC 04 yes skip next 32 CLLIB AB8SD D46 cC 058X 33 CLUB A C MS 34 CLUB T OO O O 35 CLLIB save chnrit in B S amp X 38 CLLIB 91 26 PORT DEF 37 CUB 92 03 GO 38 CLLIB 693 ME A6E9 39 CLUB JBC N A 40 CLUB save in A S amp X for comparisons 41 CLLIB 696 24 PT 2 adjust pointer 42 CLLIB SA LUM resetcounter 43 CLUB 98 M30 LDIS amp X upper value 44 CLLIB 699 I01A pP ER fromtheredown 45 CLLIB 59 1BC RCR11 put it in CIM 46 CLUB B9B O13 JNC 02 skip over line 47 CLUB pipe liningup Z4 u 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 e
20. Alpha P will exit the catalog and invoke the PLUG function launcher SHIFT changes the direction of the listing backwards 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 Also keeping any key depressed in RUN mode will halt the sequence displaying until it s released again so it s easier to keep tabs with the enumeration 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 implementation 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 implem
21. LDI ABB3 040 WT D ABBA C 5 ABB5 14B JNC 4170 ABBG 222 C C 1 PT ABB 366 ASC S amp X ABBB 13B JNC 39d ABBS 222 C C 1 PT ABBA 366 ASC S amp X ABBB 12B JNC 37d ABBC 722 C C 1 PT ABBD 66 ABC SAX ABBE 11B JNC 35d La ABBF l ABCO 7050 L ABC1 7 E l ABC2 03 JNC 32d ABC3 222 C C 1 PT ABCA 366 PARC SAX ABC5 0F3 JNC 30d ABCG 222 C C 1 PT ABC 366 ASC SAX ABC8B ES JNC 28d ABCO 222 C C 1 PT ABCA 366 ARC SAX AGBCB 0D3 JNC 26d T A amp CC Bap LDIS amp X M ABCD 060 L ARCE 2 i S ABCF O88 JNC 23d ABD0 222 C C 1 PT ABD1 366 A C S amp X ABH JAB JNC 21 ABD3 126 NC XG ABD4 f ABD5 ABDG 20i LLLI HL I C C 1M THEE mmm ASR 27A coin ITLL IM C 27A c TTT JO A6DC 27A C C3M JP 6DD 27A C C3M lt I I a A6DE 27A C C3M LUI IRI ASDF 27A C C3M S A6E0 27A C C34M T A6E1 27A C C3M i JU A6E2 27A C CdM IV A6E3 27A C C3M lt IW ABE4 27A C CAM kil Xj A6E5 27A C CdM IY ABEG 27A C CAM lt ABEZ 03C RCR3 place it in C S amp X save chet in B S amp X AbES ULB CAB SAX Page 32 of 36 keycode 220 L keycode 320 keycode 130 keycode 230 Q keycode 140 R keycode 2407 Uj keycode 150 v keycode 2507 IW
22. 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 WALL 2 TURBO50 run as fast as possible 3 O62 60C Copies YFNS to block 4 YMCPY in memory Ox60C 5 B C RAM plugs memory block to port 6 PLUGIL Must be run from RAM ri 0CS000 Erases 32k sector 8 YFERASE 0xOCS000 OxOCFFF 7 300 0097 writes calculator RAM to 10 YFWR 4k block in Flash Ox0dD9 11 804 0DF 12 F3 01 writes MMU entries fo 13 YFWR 4k block in Flash QxODF 14 FNS 15 PLUG1L plugs YENS from Flash to Port 18 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 in
23. OFFF System ROM U Primary bank Secondary bank 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 and you can use PLUGG to plug take over ROMS to page 4 by directly invoking the dedicated function PLGG 4 which will be covered in section 2 4 of the manual later on O ngel M Martin Page 15 of 36 22 01 2012 The following error conditions can happen Because of dealing with pages and not full ports PLUGG_ and PLUGGX will only accept 4k ROMS or otherwise DATA ERROR will occur Main valid page inputs are within to the 6 F range Letters other than A F will be inactive during the prompt but all numeric keys will be allowed yet values less than 6 will also be rejected resulting in a DATA ERROR Also a valid special input is 4 but it requires the string OK placed in ALPHA to accept it Any other value will trigger a DATA ERROR message Attempting to plug a ROM to the page currently used by YFNS will also trigger an error code to prevent accidental overwrite The display will show PAGE YF and no action will occur If you want to relocate it you need to use one of the standard PLUG functions instead f the string in Alpha is not a valid ROM id you ll get BAD D as expected f the YFNS ROM is not present not mapped
24. VF lr Pbk MA LLL LL La It LIU R diLL Ex egensonnas POM User s Manual and Quick Reference Guide I w wur SO eet ET Photo By J rgen Keller 2011 Programmed by ngel M Martin January 2012 O ngel M Martin Page 0 of 36 22 01 2012 This compilation revision 2 H 01 Copyright 2012 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 O 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 O ngel M Martin Page 1 of 36 22 01 2012 CL UTILS Module Extension Functions for the 41CL Table of Contents 1 Introduction 11 A word of Caution 4 1 2 The Functions at a glance 5 2 The functions in detail 2 1 Function Launchers 6 2 2 Catalogues and CATalogs 8 2 3 Interrogating the MMU 11 2 4 A wealth of a Library 12 3 HEPAX and Security 3 1 Configuring the HEPAX system 13 3 2 Page Plug Functions 15 3 3 Security Functions 17 4 Advanced Territory 4 1 Using Pag
25. ZCL Function launching functionality There are several function launchers in the CLUTILS We ve also seen that they show very flexible and interconnected combinations sometimes warping around the complete module in a lot of ways It s initially a bit confusing yet you should not get intimidated by the multiple layers as you ll get very quickly acquainted to the design and comfortable using it Notice that in some instances the same function can be accessed from two different places i e HEPDIR MMUCAT Note also that they may be required to sequentially input the prompts from two or more launchers to finally get to the desired end result For instance say you want to plug the AMC OS X ROM into port 7 the HP IL one Say you don t remember its CL ROMid nor the function name to accomplish that which happens to be PLUGH You decide to start at the very beginning executing XCL then choose C for CATALOGS then L for CLUB then A to start the enumeration from the letter A then R S at the AOSX followed by P to invoke the PLUG action Then G to go to the page settings then 7 A breeze Putting it all together now Granted this is one of the more complex examples but not the worst one Here it is again with more details so it s easier to follow Let the display be our guide in this dialog with our trusty companion Start off by executing XFL which will present enter C for the Catalog Launche
26. ammable per se but They can be used in PRGM mode to enter the called upon function as a program line O ngel M Martin Page 6 of 36 22 01 2012 The PLUG and UPLUG launchers don t offer any 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 i Lower Page E hex Valid entries for the prompt are 1 for port 1 comprising pages 8 and 9 2 for port 2 comprising 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 G 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 c
27. e 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 inti 0 i lt count i 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 1 nada serialport Close Angel M Martin Page 36 of 36 22 01 2012 Angel M Martin Page 37 of 36 22 01 2012
28. e 4 18 4 2 Calculator Flash Backup amp Restore 18 5 Other Extensions 5 1 Alpha and Display Utilities 20 5 2 Other Utilities 21 5 3 Farewell 6 Appendixes 23 6 1 Putting it all together 6 2 Launchers Function Table 6 3 Detailed ROM id Table 6 4 HEPAX FOCAL program 6 5 CLLIB MCODE highlights 6 6 Serial transfer script Angel M Martin Page 2 of 36 22 01 2012 Angel M Martin Page 3 of 36 22 01 2012 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 35 YFNS and other 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
29. entation 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 VO 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 36 22 01 2012 2 3 1 Configuring the HEPAX system HEPAX Fns Launcher Prompts 4 8 6 1 D Accessible from CLF nitializes File System Prompts for values nitializes File System Takes inputs from Stack Author Howard Owen Use these functions 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 and the address of the first one These are expected to be in the Y and X registers respectively for HEPYX whereas they ll be manually entered as prompts in HEPI NI Note that even if the first prompt is a DECIMAL entry the double quotes will remind you that the second one is in HEX with valid inputs being 8 9 and A F 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 its File System Those locations
30. ervice ROM Standard Pac Statistics Pac Stress Analysis Pac Structural An Pac SUP R ROM Surveying Pac Thermal Pac Tom s ROM ToolBox ll Start Trek 83Trinh Unit Conversion Mail Delivery Empty Empty Empty Empty Empty Empty Alternate YFNS Main YFNS 41Z Module Zenrom Programmer Angel Martin Jean Marc Baillard HP Co HP Co HP Co HP Co HP Co James W Vick HP Co HP Co Thomas A Bruns Angel Martin Angel Martin Phil Trinh Angel Martin USPS Not listed Not listed Not listed Not listed Not listed Not listed Monte Dalrymple Monte Dalrymple Angel Martin Zengrange Ltd Zengrange Ltd Other modules not included in the Library For sure many more of these abound yet these are the ones have close knowledge of feel free to complete the list with your own entries and don t forget to share them with the whole community 1 CCD Advanced Apps 4k ngel Martin 2 DigitPac ROM 4k ngel Martin 3 Geometry 2011 4k Jean Marc Baillard 4 Market Forecast 4k Forecaster 5 MONOPOLY ROM 8k Thomas Rodke 6 Mortar Fire Data Calculator 8k MDN Canada 7 Mountain Computer EPROM 4k Paul Lind 8 Number Theory ROM 4k J ean Marc Baillard 9 Dr Z RaceTrack Module 4k William T Ziemba 10 SNEAP1 2 3 3x 8k SNEAP Society F 11 SUDOKU amp Sound 4k JM Baillard amp A Martin 12 VECTOR Analysis 4k Angel Martin 13 Yach Computer 4k Bobby Schenk Modules included in Flash without Module
31. false in PRGM Launches selected Launcher Launches selected function Starts listing at selected letter Launches selected function Sequential list of MMU Entries Plugs ROMin page content of MMU entry for page Plugs ROMin page Selected ROM plugged ROM with ID in ALPHAis plugged Sequential list of ROM ID s MMU entry cleared Launches selected function Location is removed from MMU Deletes rightmost character Clears from gt char to the right Clears from char to the right Location in MMU HEX entry plus control chrs Reads Calculator MMU from Flash Alpha swapped around gt Alpha swapped around Writes Calculator MMU to Flash Section Header ma TS Address ID Buffer Catalog Block Catalog Code Clear Exended memory Decode Display to ALPHA Display Test HEPAX FileSys Init HEPAX Launcher HEPAX FileSys Init HEPAX Config 4k CL HEPAX Config 8k CL HEPAX Config 16k CL ROM id CAT enable password lock disable password lock Xtended CATalogs Xtended CF change password ROM function Launcher Xtended SF Sum of Digits Flash addr in Alpha none none HexCode in ALPHA none NNN in X Display contents none Prompts for values Prompts 4 8 6 1 D ROM ID in Alpha Shows present buffers Lists block contents NNN in X Main EM directory deleted HexCode in Alpha Textin Alpha Shows display all lit up linitializes HEPAX File System Launches selected function pages in Y first page in X
32. frequently Notice that the valid length accepted by YI NPT is limited to 11 characters This will suffice for all parameter input purposes within YFNS functions DTOA Display to Alpha pe DTST Display Test Author Chris L Dennis Source PPCJ V18 N8 p14 DTOA is an elusive one to grasp but basically is the inverse of AVI EW 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 DTOA is used as subroutine by other functions in the module As a totally useless demo assign DTOA to any key then press it in USER mode long enough to see its name shown then release the key the words D7OA 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 O ngel M Martin Page 20 of 36 22 01 2012 2 5 2 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 aa Is the MMU enabled No Input Author Monte Dalrymple
33. g for just need to check all pages looking for that specific string O ngel M Martin Page 11 of 36 22 01 2012 2 2 4 A wealth of a Library ROMLIB ROM Libra No inputs 0 0 0 000 CLLIB CL Library Prompts for A Z Has Hotkeys A Invokes PLUG A j Copisid shownto Alpha fe o 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 ROMLI B starts the listing at the top of the list whereas CLLI B prompts for an alphabetical section A to Z Choosing A here is of course equivalent to executing ROMLI B Both catalogues can run in auto mode of can be stopped using R 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 A will copy the id shown to
34. imum 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 found on the system Buffer id Module Eprom Reason David Assembler MCODE Labels already existing David Assembler MCODE Labels referred to Eramco ASU LA Data File Painters Eramco R5U 1B ASCII file pointers CCD Module Advantage Seed Word Size Matrix Name YI KA area isn t really a buffer 3 9 35 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 I O area created by the SEED function id 5 buffer size 22 properly allocated Suppose you also change the default word size to 12 bits by typing 12 WSI ZE This has the effect of increasing the buffer size in one more register thus repeating BFCAT will show id 5 buffer size 3 properly allocated O ngel M Martin Page 9 of 36 22 01 2012 Say now that you also plug the 41Z 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
35. ion loading for HEPAXset ups O o 8 xCL None Launcher of Launchers gt invokes any of the seven above When you assign ZCL to any key that alone will give you access to more than 56 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 keyboard 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 See below a few examples of the prompts where the choices are to a large extent self explanatory The TURBO options are as follows none 2x 5x 10x 20x 50x and Use 0 for 20x Radix for 50 as 2 and 5 are already taken for 2x and 5x speeds In 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 progr
36. linitializes HEPAX File System none none none prompts ROM id none asks for password Prompts B F H L M R prompts for flag asks old new passwords Prompts for values prompts for flag number in X Configures 4k HEPAX on CL Configures 8k HEPAX on CL Configures 16k HEPAX on CL Stats CAT 2 atthis point Sets SECURE mode ON Sets Secure mode OFF Launches selected function Flag is cleared Password is changed Launches function Flag is set sum of mantissa digits BLUE denotes MCODE functions BLACK denotes MCODE entries that call FOCAL programs RED denotes prompting functions Functions in QUOTES italics are FOCAL programs O ngel M Martin Page 5 of 36 22 01 2012 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 ndex Function TY Des BAUDIZ BAUD24 BAUD48 or BAUDS6 t BAUD24 BAUD48 or BAUD96 2 MMU jNone Calls MMUDIS MMUEN or MMU TURBO Calls the corresponding TURBO xx function PLUG Light Prompts for port location Enter L U first when needed 5 UPLUG Prompts for port location Enter L U first when needed 6 HEPX _ Configurat
37. ll show the VO ROM message next to their number Blank RAM pages will show QUAS RAM indicating their RAM in ROM space character No input values are necessary This function doesn t have a manual mode using R S but the displaying sequence 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 36 22 01 2012 2 2 2 Buffer CATALOG Hot keys R S SST SHIFT DH o D Deletes Buffer In manualmode H 1 Decodes Header register mmanualmode l 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 buffers are an elusive construct that is mainly used for I O 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 max
38. nputs are to be entered as DECIMAL values XCF and XSF are natural extensions to the mainframe standard Clear Set Flag functions Like those they will prompt for the flag number to be input as a decimal two digit entry Unlike them they ll accept anyone of the 56 flags from 0 to 55 When used in a program just ignore the prompt won t be taken as program line and place the flag value in X instead in the preceding program line EDGT is a nice utility to calculate the sum of the mantissa digits of the number in X It only occupies 16 bytes so it s hard to leave it out from any collection O ngel M Martin Page 21 of 36 22 01 2012 Farewell And with this you ve reached the end of the CLUTILS manual hope these 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 a very innovative realization nothing short of incredible with amazing possibilities that open the door to yet new developments on the HP 41 platform all this still happening 33 4 years after the original 41 was launched Now that s what I call an achievement Before and after 33 years separate these boards a k a Dr Jekyll and Mr Hyde let you choose which one is which but you ll agree that the CL board is BOTH the Beauty and the Beast Photo Steve Leibson c May 2011 O ngel M Martin Page 22 of 36 22 01 2012 Appendix 0 Summary of
39. onfiguration 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 CAT 2 Also valid entries are H for page 7 the HP IL reserved page P for page 6 the Printer reserved page G for page prompt 6 F effectively calling the PLUGG functions 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 pages 6 and 7 on the CL dont support bank switching they unfortunately aren t a good place for the HEPAX ROM Note PLUGG will also allow 4 as valid input which invokes the PGG 4 function settings More about this one will follow later O ngel M Martin Page 7 of 36 22 01 2012 2 2 CATALOGS CATALOGUES The additional CATalogs are as follows Index Function Warnings Description 1 2 BFCAT Light Lists those elusive buffers present in the system List the ROM Library ID s available in Flash Same as above with an Alpha prompt for beginning section ROMLIB CLLIB 6 ROMCAT Invokes the mainframe CAT function from the XROM id and on
40. 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 function 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 0OxOD8000 OxODFFFF will be ERASED by YFERASE Note that earlier versions of CLUTILS used sector 0x0C8 OxOCF instead This was moved to the current location to avoid erasing the Solution Books ROMS added to said sector later on e hen 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
41. r XCAT enter L for the CL Library CLLIB input A R S SST to navigate until you see enter P to trigger the PLUG functionality PLUG enter G to invoke the page plugging PLUGG enter 7 the page number to complete the job I Easy does it and you didn t have to remember any mnemonic or function name nor does it require any key assignment other than ZCL to call up to 58 different functions Does it get any better than this As a handy summary the table in next page summarizes all possible combinations to access a given function using the different function launchers Angel M Martin Page 23 of 36 22 01 2012 MMU 7 SOMANA DAWN 2MMU BFCAT BLCAT CLUB HEPINI HPX4 HPX8 HPX16 MMUCAT PLUGG _ PLUGG _ PLG 4 _ UPPG4 ROMCAT _ Aaaa a anaarA AAA AHA A AA WH LA L WA LO 05 AAO QD M M lo lo M M l5 MM MA A A o o o NO OA G MA DTD WO 0 l DAA CG MA G WO G l GO Qn AWBNH A C O00 l O Ln 3 L M DOAN D A A L IS Ln o Angel M Martin Page 24 of 36 22 01 2012 Appendix 1 Detailed ROM id table in alphabetical order ID Sze Name Author Compiler 1 MAP 2 AADV 3 ADVI 4 ADV2 5 AEC3 6 ARCH 7 AFDE 8 AFDF 9 AFIN 10 ALOG 11 ALGY 12 ALPH 13 AOSX 14 ASM4 15 ASMB 16 ASTT 17 AUTO 18 AV1Q 19 AVIA 20 B52B 21 BCMW 22 BESL 23 BLD 24 BLND 25 CCDP 26 CCDR 27 CCDX 28 CHEN 29 CHES 30 CIRC 31 CUN 32 CLUT 33 CURV
42. riation of the PATCHIT program posted earlier 2 Execute TURBO5O 3 Execute SERINI 4 Execute BAUDIZ From the documentation this should not be necessary but I had to explicitly set 1200 baud to get the transfer LO work 5 The file yfns le rom has the opposite byte order of what YIMP expects so the transfer program needs to perform byte swapping Alternatively you might do the byte swapping before you do the transfer 6 Transfer the ROM I chose to transfer it to 80D000 i e put 80D000 OFFF in the alpha register start YIMP For the transfer I used the CLWriter program that I posted a few days back with the command CLWriter exe yfns le fixed rom coml 1200 5 the file yfns le fixed rom is the byte swapped version of yfns le rom I probably should have chosen a slightly different name but that does not really matter The 5 means that I put a 5 millisecond delay after each byte It may not actually be necessary I added it because I got timeouts but these were probably because I left out step 4 BAUD12 7 Execute PLUGIL with 80D RAM in the Alpha register 8 Verify using CATALOG 2 that I m now running YFNS lE O ngel M Martin Page 34 of 36 22 01 2012 using System using System lO using System l O 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
43. rofiSet PRIDE ROM Quaternion 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 26 of 36 VM Electronics HP Co 2 BCMC 1987 BCMC 1985 Jean Marc Baillard Jean Marc Baillard Angel Martn 2 Zengun LaitRam Corp Warren Furlow W Doug Wilder Angel Martn HP Co HP Co Zengun Zengun PPC Members 2 David van Leeuwen Frits Ferwerda Peter Platzer Angel Martin 2 M cke Software GmbH HP Co G Isene amp A Martin Nelson F Crowe 2 2 Jim Daly 2 S Bariziene amp JJ Dhenin Nelson F Crowe Nelson F Crowe HP Co HP Co PPC Members A Martin amp JM Baillard PPC Members Winfried Maschke 2 Jean Marc Baillard Angel Martin HP Co Wilson B Holes Serge Vaudenay Angel Martin Angel Martin Navy Air HP Co SGS Redwood 2 Ken Emery Alameda Mngmt Corp Phillipe J Roussel Angel Martin 22 01 2012 i A a ad cum 114 SND2 8k 115 SPEC 4k 116 SRVC 4k 117 STAN 4k 118 STAT 4k 119 STRE 4k 120 ISTRU 8k 121 SUPR 8k 122 ISURV 4k 123 THER 4k 124 TOMS 4k 125 TOOL 4k 126 TREK 4k 127 ITRIH 4k 128 UNIT 4k 129 USPS 8k 130 XXXA 4k 131 XXXB 4k 132 IXXXC 4k 133 XXXD 8k 134 XXXE 8k 135 XXXF 16k 136 YFNS 4k 137 NFNZ 4k 138 Z41Z 8k 139 ZENR 4k 140 ZEPR 4k Take over ROMS SandMath ll Spectral Analysis S
44. roughout 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 UTILS description and usage example May you have a nice ride Note CLUTILS is designed to work paired with the XROM 15 version of YFNZ O ngel M Martin Page 4 of 36 22 01 2012 Function index at a glance Without further ado here are all CLUTILS functions Function 35 HEPINI HPX4 HPX8 HPX16 42 SECURE 43 UNLOCK ROMCAT __ MMU Status Yes No Global Launcher Baud functions launcher CL ID Library MMU functions launcher MMU Catalog Plug Page Page Location MMU Plug Page by X Page 4 Plug PLUG functions launcher ROM Library Clears MMU entry for page 4 TURBO functions launcher UPLUG functions Launcher ALPHA back Space Clears string from gt Clears string from hyphen Page location of YNFS Y Input Y Read ALL swaps both sides of gt swaps both sides of hyphen Y Write ALL none Prompts B M P T U Prompts 1 2 4 9 Prompts A Z Prompts C D E none Prompts for page Prompts for page page in X Prompts F L S Prompts for location Displays all ROMs none Prompts X 2 5 1 0 2 Prompts for location Description Y Inputs Output Module Header a a YES NO skip if
45. rtin W amp W GmbH Raymond del Tondo Claude Roetlgen HP Co HP Co Angel Martin Angel Martin W Doug Wilder HP Co W Doug Wilder David van Leeuwen HP Co HP Co David Yerka Eramco Eramco HP Co Ken Emery HP Co Serge Vaudenay Angel Martin HP Co GMAC GMAC Paul Monroe VM Electronics 22 01 2012 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 195 76 T4 78 T9 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 99 96 97 98 g9 100 101 102 103 104 105 106 107 108 109 110 111 112 113 ngel M Martin 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 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 Polynomial Analysis PPC ROM P
46. stead O ngel M Martin Page 19 of 36 22 01 2012 BAT USER GRAD SHIFT 01234 PRGM ALPHA 2 5 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 Strinc Prompts for string i YBSP Alpha Back Space Po Author W amp W GmbH Alpha Delete from Author W amp W GmbH E Alpha Delete from gt Swap around J o S YSWAP gt 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 I will add character gt to the display and Alpha Ql will add character to the display and Alpha MI will add the string RAM to the Display and Alpha K 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
47. te one The length of the password is limited to six 6 characters Enter code up to 6 chrs long and end with R S 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 be acknowledged by a short tone but no change to the display so nothing like xxxx 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 CACA 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 17 of 36 22 01 2012
48. the HEPAX configuration functions also take care of plugging the HEPAX ROM into the appropriate page This is accomplished by a single function using a parameter to define the page address This function is PLUGGX or Plug Page by xX and its prompting doppelganger PLUGG PLGG 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 PLUGUXxx 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 FOOO FFFF Port 4 upper Port 4 lower Port 3 upper Port 3 lower EO000 EFFF DOOO DFFF COOO0 CFFF BOOO BFFF Port 2 upper AO000 AFFF Port 2 lower 9000 9FFF B8000 SFFF 7000 7FFF Port 1 lower HP IL module 6F 0 6FFF 5000 5FFF Take over ROM Unused cx System ROM 2 4000 4FFF Port 1 upper 3000 3FFF 2000 2FFF l1000 1FFF System ROM 1 oO RB N Ww amp iam OG wu m md OO OD p hj ODOO
49. very 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 O ngel M Martin Page 31 of 36 22 01 2012 45 o E zn d eu E cn tm tm La T in tn m tm eua em n Go Cn Gn oh oy Cc C Ch C C Ch Ctm Cn C3 KO C0 cO Cn d GI c c3 3 05 mad l d E c v s LO PA ma T sl ma G L a Cn j A 2n Cc Co oo Cn fe Ga Aa cn fo So Cn n on 105 106 107 108 109 110 111 112 113 114 1153 116 117 118 119 O ngel M Martin 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 3 CLLIB i CLUB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB CLLIB A69D 1130 LDI S amp X ABSE 14730 E ABOF Kp AD JNC 56d ABA1 C C 1 PT AGA MHC S amp X BAS JNC 54d ABAA C C 1 PT ARAR MHC SEX GAG TAS NG 020 1 LL ABAT LDI S amp X ABAS AM ABAQ MHC SEX ABAA JNC 49d ABAB 22 C C 1 PT ABAC 222 C C 1 PT ABAD 366 ABSC S amp X ABAE 173 JNC 46d ABAF 222 C C 1 PT ABBO 366 ASC S amp X ABB1 163 JNC 44d TH A6B2 130
50. y 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 UPPGG4 to unplug the module from the page Obviously no inputs are needed in this case Note that because of their titles being not directly key able using XEQ an intentional measure you 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 YFRALL Backs up to Flash OK or OKALL in Alpha YFWALL Restore from Flash OK 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 O ngel M Martin Page 18 of 36 22 01 2012 Early CL beta user Geoff Quickfall prepared a few FOCAL

Download Pdf Manuals

image

Related Search

Related Contents

Plans techniques SOP 9335/A10-2  Provvedimento n. 278 del 06/06/2008  Panasonic MC-UG504 Vacuum Cleaner User Manual  manual de instrucciones certificado de garantia  Elettropompa centrifuga multicellulare Electrical centrifugal multi  Aide vocale et Parole  Users Manual  

Copyright © All rights reserved.
Failed to retrieve file