FRAM71B - Printable Version +- HP Forums (https://www.hpmuseum.org/forum) +-- Forum: HP Calculators (and very old HP Computers) (/forum-3.html) +--- Forum: General Forum (/forum-4.html) +--- Thread: FRAM71B (/thread-6287.html) |
RE: FRAM71B - Erwin - 10-06-2016 07:43 PM (10-06-2016 06:19 PM)Dave Frederickson Wrote:(10-06-2016 05:41 PM)Erwin Wrote: I don't think in the case it's about the LEX-Files. I did the installation like Sylvain's guide and only let the ROMCOPY in the IRAM. Hi Dave, sorry my comment was no criticism about the feature bank switching. What I meant in my post is, that there are some FRAM71s out there and the experiences are very small - that was I'm wondering. Maybe its my bad english too. I am grateful for the initiative for the hardware and software - you all did a very good job and helps to have useful possibilities with our ancient calculator. The FRAM Toolkit, the guide from Sylvain and the good description from Hans was a great help for me otherwise it would not be able to make the configuration. I use the HP71 with small basic-programs in my job and in my study (in my old days) and the HP3421A but not in 'deep' programming- But now with the FRAM71 it could get more practical for me instead of switching out modules and with PIL-BOX and the pyilper its easier for my to handle my files instead with the floppy disc. I didn't, use ROMCOPY after the first basic installation. My problem is that I was not able to start initiate the other banks with the first POKE like Sylvain proposed. Maybe there is a mistake from me - don't know. So I tried to describe exactly what I did so it could be helpful to go further. I'm ready to continue further testing - next step is like a wrote in my last reply in order to prevent a fault regarding the LEX files. best regards Erwin RE: FRAM71B - Erwin - 10-06-2016 07:50 PM (10-06-2016 07:03 PM)Sylvain Cote Wrote:(10-06-2016 05:41 PM)Erwin Wrote: The problem comes with the first POKE command from Sylvain's very detailed proposal (thanks on this point). Hy Sylvain, thank you, I am glad and grateful about every help and maybe its for others helpful too. I can do further test when there are some other ideas ... and report it in the forum. Erwin RE: FRAM71B - Dave Frederickson - 10-06-2016 08:14 PM (10-06-2016 07:43 PM)Erwin Wrote: Hi Dave, Hi Erwin, No problem. I agree with you that I don't think many FRAM71 users are experimenting with the more advanced features like SYSRAM and Bank Switching. For the record, there are about 20 FRAM71(A) modules out there in addition to the FRAM71B modules just being shipped and there has been very little FRAM71 activity on the forum. I don't think there's any issue with LEX files. Both the FORTH/Assembler and 41 Translator ROM's contain LEX files and the Bank Switching article demonstrates switching these two ROM's (actually two pair), arguably the most difficult thing to do with FRAM71/B. Regards, Dave RE: FRAM71B - Sylvain Cote - 10-07-2016 04:45 AM Hello Erwin, While you are waiting for the configuration setup, I am giving you some home work to do This home work will do bank switching between the Finance 16KB ROM and the CurveFit 32KB ROM. Loading ROM images into FRAM memory
Activating the 16KB Finance ROM in Bank 1 (Chip #0 with FRAM-Block #3)
Activating the 32KB CurveFit ROM in Bank 2 (Chip #0 with FRAM-Block #4)
With the above steps, reading carefully (multiple times) Hans manual, Dave/Robert/me how-to's and some experiment you should be able to try other configurations by yourself. Sylvain edit: typo RE: FRAM71B - Erwin - 10-07-2016 07:10 AM (10-07-2016 04:45 AM)Sylvain Cote Wrote: Hello Erwin, Hi Sylvain, here is my trial :-) it is running - thank you very much for putting me deeper in this field. Essential is the POKE "2C000","00" when switching the banks, otherwise the calculator hangs. So this is very necessary. (I tested it too). An open question is, how do I POKE the possible max RAM afterwards, cause of the different ROM sizes with every bank-switch I have to change it? Or should I take the minimum RAM when the maximal ROM (per size) are loaded? How to identify the maximum possible free RAM after bank-switching and does it destroy the mainRAM? regards Erwin Code: CLAIM :PORT(5.03) [ENDLINE] // delete my previous configuration Connect to pyILPER via PIL-BOX Code: POKE "2C000","A3" [ENDLINE] // setup bank #1 -> Chip #0 with FRAM-Block #3 as 16KB RAM Prepare PORT 5 for ROM installation Code: FREE :PORT(5) [ENDLINE] // create the space to received the 16KB Finance ROM load the FRAMTK LIF image into pyILPER Code: COPY ROMCOPY:TAPE [ENDLINE] // load ROMCOPY LEX file into main memory Prepare for FINANCE module - load the FINANCE LIF image into pyILPER or ILPER Code: ROMCOPY FINANCE:TAPE TO :PORT(5) [ENDLINE] // load FINANCE 16KB ROM image into port 5 Prepare for CURVEFIT module Code: FREE :PORT(5) [ENDLINE] // create the space to received the 32KB CurveFit ROM load the CURVEFIT LIF image into pyILPER or ILPER Code: ROMCOPY CURVEFIT:TAPE TO :PORT(5) [ENDLINE] // load CURVEFIT 32KB ROM image into port 5 Activating the 16KB Finance ROM in Bank 1 as IRAM (Chip #0 with FRAM-Block #3) Code: POKE "2C000","00" [ENDLINE] // remove Chip #0 configuration, this step prevent a computer freeze or a memory lost Code: POKE "2C000","00" [ENDLINE] // remove Chip #0 configuration, this step prevent a computer freeze or a memory lost Activating the 32KB CurveFit ROM in Bank 2 as IRAM (Chip #0 with FRAM-Block #4) Code: POKE "2C000","00" [ENDLINE] // remove Chip #0 configuration, this step prevent a computer freeze or a memory lost Code: POKE "2C000","00" [ENDLINE] // remove Chip #0 configuration, this step prevent a computer freeze or a memory lost RE: FRAM71B - rprosperi - 10-07-2016 01:22 PM Erwin, As a new FRAM71 user, your skills are advancing quite rapidly; it is impressive to see. Some of your questions (e.g. Max RAM info, etc.) and some other example techniques were presented at HHC in a short presentation I did to introduce FRAM71B; you can download a copy of the presentation from: http://hhuc.us/2016/files/Speakers/Bob_Prosperi/Presentation/HHC16_FRAM71B.pdf. Take a look, it may help your studies. It's great to see you are willing to take the time to record your attempts and results here in the forum; like Sylvain and Dave's recent posts, these detailed notes help to educate other FRAM users (plus I've found that documenting like this also helps to teach yourself as well). Keep trying new things like ROM swapping, etc. Getting scars from these experiments are the best way to learn, and eventually... it's a lot of fun. RE: FRAM71B - Erwin - 10-07-2016 03:04 PM (10-07-2016 01:22 PM)rprosperi Wrote: Erwin, Thank you, got great support from all yours and makes the HP71 a lot more useable (I'm on the way). I looked at the presentation in Denver - a bit more of clearance and the example I want to do :-). I think there should be / we should do a whole documentation on the FRAM71 with more configuration examples, tables of the ROM mapping, explanation of the syntax like you did in the presentation and Sylvain in his guide, switching different rom sizes (i.e Text, Finance...16 KB, most ROM 32KB, DataAQ...64KB) in guest RAM space ... I thought about that automatic switching would be the next step for every day use - think as a first step it could be done by a personal small basic prog in IRAM regards Erwin RE: FRAM71B - Sylvain Cote - 10-07-2016 03:10 PM (10-07-2016 07:10 AM)Erwin Wrote: An open question is, how do I POKE the possible max RAM afterwards, cause of the different ROM sizes with every bank-switch I have to change it? Hello Erwin, All your questions goes back to memory map and planning. First thing, you have to understand how memory is allocated and for that, I suggest that you read this great article Soft Configuration Enhances Flexibility of Handheld Computer Memory by Nathan Meyers About planning and FRAM71 configuration ... You could put all you fixed ROM/IRAM modules at the beginning, then the System-RAM and finally two 16/32KB or one 64KB bank switched modules, like this ... Code: C#-F#-B# Size Port Type Description Sylvain RE: FRAM71B - Dave Frederickson - 10-07-2016 05:54 PM It's so nice to see a new enthusiastic F71/B user! Some comments: Yes, learn how the 71B memory configuration works from the link Sylvain provided and the 71 S/W IDS, Vol. 1, Chapt. 2. Start using MEMBUF in the F71 Toolkit to examine memory, especially for those max. memory configurations. I agree with Bob and Sylvain, you've come a long way in a short time. I think you've enough skill to understand the "advanced" bank switching example. Please give it an attempt and provide feedback. For a whole F71 document I think that's not a bad idea. For now I use a soft copy of the entire [FRAM71] Pre-Production Batch thread. Maximum Memory Configurations I explored this a while ago: http://www.hpmuseum.org/forum/thread-4551.html Two points: 1. The 71B assigns memory chips to 71B memory H-Addresses by size. This explains Note 2 on p.12 of the F71B manual. Chip-addresses as "seen" by your HP-71B will vary according to the calculator’s memory configuration routine. For example, if you configure RAM with Chip_0 = 16 KByte and Chip_1 = 32 KByte, they may have their FRAM base addresses at F_0x30000 and F_x40000, respectively. However, your HP-71B will configure Chip_0 at H_0x40000 and Chip_1 at H_0x30000. 2. The 71B partitions RAM chips first then the ROM's and IRAM's. This can explain a lot of strange behavior. Here are some questions to ponder: 1. In EduCALC Tech Note #4 it states: The HP-IL module actually needs 16K, but 32K should be allocated because the HP-71 often configures the system as 32K for HP-IL. What??? Not exactly true. What is observed is that sometimes when the HP-IL module is installed there's 32K less memory available. Why? 2. On p.16 of the F71B manual there are a couple of examples of maximum memory configurations: MAX RAM, FORTH "93 E4 95 96 97 98 99 9A 9B 9C 9D AE …" (93 is HC, E4 is SC ROM for FORTH) = 320 KB RAM MAX RAM, IL & FORTH "93 E4 95 96 97 98 99 9A 9B 9C 9D AE …" (93 is HC, E4 is SC ROM for FORTH) = 320 KB RAM The second configuration yields the same amount of RAM but includes the HP-IL module. Why is this? 3. Sometimes when FREEPORT is executed a configuration warning (Wrn: Configuration) occurs. http://www.hpmuseum.org/forum/thread-2515-post-27688.html#pid27688 This doesn't change the amount of memory configured. Why the warning? 4. In this post it is pointed out that the maximum amount of memory was achieved by configuring 16K chip as an IRAM: http://www.hpmuseum.org/forum/thread-4551-post-40891.html#pid40891 This will fail if the chip is configured as RAM. Why? This is related to 3. Any questions? Dave RE: FRAM71B - Dave Frederickson - 10-07-2016 11:21 PM (10-06-2016 04:53 AM)Sylvain Cote Wrote: Assuming you have followed my guide, you should have the following configuration It appears that you've split main RAM into two modules by reconfiguring the F-Blocks. This is kind of like unplugging a module and plugging in different modules, but you didn't follow the rules for unplugging RAM modules, Para. 4.2. Unconfiguring or “removing” a FRAM RAM module 1. When a RAM module is to be removed it is first converted to IRAM using the FREE PORT command. Some front-port modules, like the CMT 64K module, contained a battery that would maintain the IRAM contents. When it was later reinserted it would appear in the 71’s memory configuration as IRAM, complete with its contents. This happened to Forum member Mike in 2003 when CMT 64K module batteries still had a charge: http://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/archv014.cgi?read=49425 Modules without a battery will lose their contents and reappear as main RAM. FRAM71/B can behave as either. a. Battery-Backed: To unconfigure or “remove” a FRAM RAM module, first convert the module to IRAM using the FREEPORT command, then unconfigure the module by POKEing zeros into the appropriate location in the configuration string. b. Non Battery-Backed: First, convert the module to IRAM. Determine the module’s address using MEMBUF. POKE <address>,”00000000”, which overwrites the module’s IRAM identifier, and unconfigure the module in the config string. The next time the module is configured it will be detected as unused memory and configured as RAM. Dave RE: FRAM71B - Sylvain Cote - 10-08-2016 01:20 AM (10-07-2016 11:21 PM)Dave Frederickson Wrote: It appears that you've split main RAM into two modules by reconfiguring the F-Blocks. I knew about the rule, I was careless and I should have mentioned it, sorry about that. Thanks for the refresher! Sylvain RE: FRAM71B - Erwin - 10-08-2016 06:59 AM (10-07-2016 11:21 PM)Dave Frederickson Wrote:(10-06-2016 04:53 AM)Sylvain Cote Wrote: Assuming you have followed my guide, you should have the following configuration Good morning, I hope I understand Dave's post right. Different ROM-sizes need CLAIMPORT and FREEPORT than the new POKE and therefore should be at the end of the 'whole thing'. With the FRAM71-docu, the 'Denver' presentation and the many comments I came to the following model to avoid make the SYSRAM corrupt. Plan: JPCROM, MATHROM, 41FORTH, CURVEFIT, AMPITSTAT, DATA-ACQ, TEXT-EDITOR (or CIRCUIT) and FINANCE in the SYSTEM with the maximum amount of SYSRAM. To configure the guest ROM (for the 64KB module too) without touching the SYSRAM. That means 144KB of SYSRAM every time (only 'loosing' possible 32KB RAM when switched to FINANCE and TEXT-EDITOR). Am I right with this, I'm not sure about the FRAM banks, somebody a hint? Then maybe I'll start this on this weekend. BASIC-CONFIGURATION POKE "C2000","3E4D5D69718191A1BACDDDE" (final statement after extend Sylvains intermediate guide) Code:
EXTENDED 1-CONFIGURATION for the DATA-ACQ 64KB module must switched to following example, 'loosing' one port? But this should'n affect the system. For the first time installation it is necessary to CLAIMPORT 5.06 and 5.07 (free the installation for CURVFIT and AMPISTAT) FREEPORT 5.06 and ROMCOPY (with the checksum option like the doc says but this part is not clear for me, the added comments from Joe Horn says CHECKSUM is automatic)? POKE "C2000","3E4D5D69718191A1BAC50D0" ??? that's not clear for me Code: view without FRAM banks Switching back in the same manner: CLAIMPORT 5.06 and FREEPORT 5.06 and 5.07 then the bank-switching again. EXTENDED 2-CONFIGURATION same for the TEXT-EDITOR (or CIRCUIT) and FINANCE module POKE "C2000","3E4D5D69718191A1BACD1E1" ??? that's not clear for me Code: view without FRAM banks EDIT: the other way would be to put away 32KB from SYSRAM so there is 112KB free SYSRAM in the FRAM71 and put the TEXT-EDITOR (or CIRCUIT) and the FINANCE module in there. The sum of free memory with the 16KB base RAM would be 128KB, additional the 32KB in BACKUP IRAM. Seems to be enough to and offers the possibility to do bank switching with 3*32KB modules. DOCU: a proposal Theory ... mainly distributed in different threads: Docs like: Tools Some practical examples one basic to learn and one intermediate:
Program for bank-switching? regards Erwin RE: FRAM71B - Dave Frederickson - 10-08-2016 03:35 PM Hi Erwin, I only pointed out a procedural error and offered two techniques for emulating the removal of memory modules. If you follow the rules, as best as we understand them, you should be able to avoid MEMORY LOST. Just so we don't get confused later, SYSRAM is the 64K of FRAM from 0x00000-0x1FFFF that can be loaded with an alternate O/S or the Diag ROM, replacing SYSROM. The memory you're trying to maximize should be referred to as MAIN RAM. Speaking of maximizing memory, how are you coming with the questions I suggested you ponder? To make it easier for you to figure out your memory configuration you might try drawing memory maps or add an "H-Address" column to your configuration table. I notice that none of your logs show H-Addresses. Use MEMBUF to understand where in memory your modules are getting mapped. Regards, Dave RE: FRAM71B - Sylvain Cote - 10-08-2016 06:21 PM (10-08-2016 06:59 AM)Erwin Wrote: For the DATA-ACQ 64KB module must switched to following example, 'loosing' one port? Yes, in my last setup proposal, I have reserved at the end a 64KB address space for bank switched modules. In that space you can either map: (4 x 16KB ROM) or (2 x 32KB ROM) or (1 x 64KB ROM) or (2 x 16KB ROM + 1 x 32KB ROM) (10-08-2016 06:59 AM)Erwin Wrote: POKE "C2000","3E4D5D69718191A1BAC50D0" ??? that's not clear for me First "C2000" should be "2C000" Second, the configuration you are proposing is not good, the one you should propose is ... POKE "2C000","D3E4D5D69718191A9B00000000000000" [ENDLINE] // common configuration Code: Cg Chip_# Addr. FBlk Bank LCIM Type Size Port Description Bank 0 : Curve-Fit and AMPI-Stat configuration Enter (a) complete configuration or (b) configuration change only a) POKE "2C000","D3E4D5D69718191A9BDCDD0000000000" [ENDLINE] b) POKE "2C012","DCDD" [ENDLINE] Code: Cg Chip_# Addr. FBlk Bank LCIM Type Size Port Description Bank 1 : (Text-Editor or Circuit) and Finance configuration Enter (a) complete configuration or (b) configuration change only a) POKE "2C000","D3E4D5D69718191A9BEEEF0000000000" [ENDLINE] b) POKE "2C012","EEEF" [ENDLINE] Code: Cg Chip_# Addr. FBlk Bank LCIM Type Size Port Description Bank 2 : Data-Acq configuration Enter (a) complete configuration or (b) configuration change only a) POKE "2C000","D3E4D5D69718191A9B50D10000000000" [ENDLINE] b) POKE "2C012","50D1" [ENDLINE] Code: Cg Chip_# Addr. FBlk Bank LCIM Type Size Port Description Please take the time to read carefully the FRAM71B User's Manual Page 14 section LCIM (Last Chip In Module) and Nathan article section "Electrical Behavior of Devices" on chips and modules Sylvain edit: typo RE: FRAM71B - Erwin - 10-08-2016 08:21 PM (10-08-2016 06:21 PM)Sylvain Cote Wrote: [...] Hi Sylvain, thank you, Dave and Rob for your patience and help not only with my typos in the POKE. Yes I tried to make a plan like your last proposal but forgot the address limit so there is 128KB instead of 144KB. I'll try to study the basics in the next days and try to configure my calculator in this manner. Looks like that it takes more time to get in the mapping theme. Yours hints and examples will help me too. I will give feedback to the forum about the result. best regards Erwin RE: FRAM71B - Erwin - 10-23-2016 09:07 AM (10-08-2016 06:21 PM)Sylvain Cote Wrote: [...] Hi, thanks for all your help I continue with my progress in configuration. Next week i can spend more time to play with different configurations. I'll make it with a detailed documentation for myself and maybe useful for others. But I think its too long for posting it direct in the forum - think it spans more than a page. I would like to share my experiences with the forum. What kind of documentation should i do? For now I wrote the first part of my configuration testing in my text editor, not easy to read - i.e the code snippets, ... I can change it to WORD, PAGES or LATEX and convert to PDF? Should be expandable for others. What do you think about - any hints :-) ? best regards Erwin RE: FRAM71B - rprosperi - 10-23-2016 01:25 PM (10-23-2016 09:07 AM)Erwin Wrote: I can change it to WORD, PAGES or LATEX and convert to PDF? Should be expandable for others. I think PDF is the most convenient and universal format; everyone can read it, and code can be easily copy/pasted to an editor if needed. RE: FRAM71B - Erwin - 11-01-2016 09:26 AM (10-23-2016 01:25 PM)rprosperi Wrote:(10-23-2016 09:07 AM)Erwin Wrote: I can change it to WORD, PAGES or LATEX and convert to PDF? Should be expandable for others. Hi, I tried out some configurations on the FRAM71 and they are running, but I stuck on one problem I wasn't able to solve. I want to put the DATACQ ROM (64KB) on the HP71. The documentation to ROMCOPY said, that ROMs above 32KB should have CHECKSUM, CODESIZE and ROMSIZE as parameter too. But I couldn't find those parameters for this ROM. With ROMCOPY I got an error <ERR:Verify fail> whether I include the ROMSIZE oder not. So it seems there have be the 4 values for the CHECKSUM, but in the documentation to ROMCOPY (http://hhuc.us/2014/files/Speakers/08,09%20Joseph%20Horn/Online%20LIF%20Disk%20Project/SWAP/SWAP11/RCOPYDOC.txt) it isn't clear for me how to do this. To bypass the error message (like the documentation said) I want to try the RCOPYLEX but there is no documentation available neither for CKSUMLEX, so I can't made use out of them. I found the basic program R64KCOPY (chu06) but it is to get the checksum from existing ROMs in a port and needs a LEX-File "TRIM$" from STRINGLX. But in the basic program there is another LEX-file not present (XFN113004) - line 100 till 103 for the checksum - so it ends in an error. Looks like it was saved in the past without the necessary LEX present in the HP71. When the prog could be run I could get the data out of my DATCQ module. Code:
Anybody experiences with loading 64KB ROMs in the HP71B or an idea? regards Erwin RE: FRAM71B - J-F Garnier - 11-01-2016 10:13 AM (11-01-2016 09:26 AM)Erwin Wrote: I want to put the DATACQ ROM (64KB) on the HP71. Using the ROMSIZE parameter is the correct way: ROMCOPY imagefile:TAPE TO :PORT(x);ROMSIZE=65536 The CODESIZE and CHECKSUM parameters are not needed. PORT(x) must be a 64k port, of course. Which DATAACQ ROMCOPY image file are you using? I just checked with the image from Sylvain's Compendium and it works. J-F RE: FRAM71B - Erwin - 11-01-2016 10:48 AM (11-01-2016 10:13 AM)J-F Garnier Wrote:(11-01-2016 09:26 AM)Erwin Wrote: I want to put the DATACQ ROM (64KB) on the HP71. Hi, thanks for your fast response :-) I don't know the source of the image I used. But tried it with the same from your source and got the same error. When I initialize the PORT 5.05 with 64KB (POKE "2C012"; "109100") ... my last module it is not configured as IRAM when i do the FREE PORT without an error. The SHOWPORT shows type "0" instead of "1", and I couldn't ROMCOPY (error: Device Not Found) So I configured it as ROM (POKE "2C012"; "50D100") and tried the ROMCOPY but with the "verify" error. My whole configuration string is: D3E4D5D69718191A9B109100 for the RAM and D3E4D5D69718191A9B50D100 for the ROM. Code: [code] [SHOWPORT] [RUN MEMBUF] Maybe I did something wrong. The adressspace seems to be OK for the 64K 70000 till 8FFFF best regards Erwin |