Post Reply 
FRAM71 : Configuration Spreadsheet [2021-01-31]
01-30-2021, 02:18 AM (This post was last modified: 02-01-2021 11:31 PM by Sylvain Cote.)
Post: #1
FRAM71 : Configuration Spreadsheet [2021-01-31]
Hello FRAM71 & FRAM71B Users !

Yesterday, Daniel Simpson came up with a great idea to automatically generate the FRAM71 configuration string within Numbers (Apple Spreadsheet Software).
Unfortunately there was several issues in it, after several iterations he was thinking to drop it and switch to Excel.
As a Mac user, I could not let that to happen Wink ... so I decided to give it a shot.
After several iterations and after rewriting all the formula I came up with a working Numbers version.
Then Robert Prosperi who was in the mailing list requested an Excel version, so I did as requested and I ported the Numbers spreadsheet to Excel. (see Robert correction post below)
Most of the credit should go to Daniel Simpson who came up with the idea and did most of the initial work. Thank you Daniel!

Have fun! Cool

Sylvain

Update #1: Didier Lachieze has created an Excel version with check boxes.
Update #2: Godwin Stewart has created a Web version.
Update #3: Completely reworked the post to make it more easy to read.
Update #4: Second version spreadsheet added.

Spreadsheets available: User's Manuals:
  • FRAM71B (Hardware v1.5, Firmware v6.07, "Denver 2016")
  • FRAM71 (Hardware v1.4, Firmware v5.11, "Nashville 2015")
Usage:
  • Grey cells should not be touched
  • Enable column only accept: unckeck/check or 0/1
  • LCIM column only accept: unckeck/check or 0/1
  • Type column only accept: RAM, IRAM or ROM
  • Size column only accept: 32, 16 or 8
  • F-Block column accept values 0 to 15
  • Comment column is a free form input field
  • Port column is a free form input field

Formula used in Numbers second version.

Chip #0 Values & Formulas:
Code:
Chip                 Text -> A2 = 0
Enable           Checkbox -> B2 = true or false
LCIM             Checkbox -> C2 = true or false
Type          Pop-Up Menu -> D2 = "RAM", "IRAM" or "ROM"
Size          Pop-Up Menu -> E2 = 32, 16, or 8
F-Block       Pop-Up Menu -> F2 = 0...15
C.Addr               Text -> G2 = 2C000
C.Addr               Text -> G3 = 2C001
Code:
Active test               -> IF($B2,CALCUL_HERE,"")
Last Chip in Mod. (bit 3) -> IF($C2,8,0) 
Memory Type       (bit 2) -> IF($D2="ROM",4,0) 
Memory Size    (bits 1+0) -> IF($E2=32,1,IF($E2=16,2,IF($E2=8,3,0)))
Code:
Cfg               Formula -> H2 = IF($B2,DEC2HEX(IF($C2,8,0)+IF($D2="ROM",4,0)+IF($E2=32,1,IF($E2=16,2,IF($E2=8,3,0))),1),"")
F.B               Formula -> H3 = IF($B2,DEC2HEX($F2,1),"")
Check             Formula -> J3 = IF($B2,IF(COUNTIF($I$2:$I$33,CONCATENATE("=",$I3))=1,"","Dup.FB"),"")
Value             Formula -> K2 = IF($B2,CONCATENATE(H2,$I3),"")

Poke Formula:
Code:
Configuration     Formula -> I34 = CONCATENATE(" POKE ",CHAR(34),"2C000",CHAR(34),",",CHAR(34),LEFT(CONCATENATE($K2,$K4,$K6,$K8,$K10,$K12,$K14,$K16,$K18,$K20,$K22,$K​24,$K26,$K28,$K30,$K32,"00000000000000000000000000000000"),32),CHAR(34))

Sylvain Côté Numbers second version:

[Image: FRAM71B_Configurator_20210131B_validation.jpg]

Daniel Simpson version:

[Image: FRAM71B_Configurator_20210128A_sample.jpg]

Sylvain Côté Numbers version:

[Image: FRAM71B_Configurator_20210129B_sample_numbers.jpg]

Sylvain Côté Excel version:

[Image: FRAM71B_Configurator_20210129B_sample_excel.jpg]

Didier Lachieze Excel version:

[Image: FRAM71B_Configurator_20210130A_sample_excel.jpg]

Godwin Stewart Web version:

[Image: FRAM71B_Configurator_20210131A_sample_web.jpg]
Find all posts by this user
Quote this message in a reply
01-30-2021, 02:43 AM
Post: #2
RE: FRAM71 : Configuration Spreadsheet
Thanks for sharing these Sylvain! I was really just bitching about Apple's incompatibility with the rest of the civilized world, not really asking you to make another version.

And I see the Numbers version has check-boxes, rather than entering a 0 or 1. How cute!! I suppose such eye candy is needed for most Mac users. Not those that hang out here of course, zeros and ones are lingua franca here. But for "the rest"... it is cute. Wink

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
01-30-2021, 03:14 AM
Post: #3
RE: FRAM71 : Configuration Spreadsheet
(01-30-2021 02:43 AM)rprosperi Wrote:  I was really just bitching about Apple's incompatibility with the rest of the civilized world, not really asking you to make another version.
And I see the Numbers version has check-boxes, rather than entering a 0 or 1. How cute!!
I suppose such eye candy is needed for most Mac users. Not those that hang out here of course, zeros and ones are lingua franca here. But for "the rest"... it is cute. Wink
LOL ... you just reminded me of the PC guy in the Apple Get A Mac ads of 2000's
Find all posts by this user
Quote this message in a reply
01-30-2021, 03:55 AM
Post: #4
RE: FRAM71 : Configuration Spreadsheet
(01-30-2021 03:14 AM)Sylvain Cote Wrote:  
(01-30-2021 02:43 AM)rprosperi Wrote:  I was really just bitching about Apple's incompatibility with the rest of the civilized world, not really asking you to make another version.
And I see the Numbers version has check-boxes, rather than entering a 0 or 1. How cute!!
I suppose such eye candy is needed for most Mac users. Not those that hang out here of course, zeros and ones are lingua franca here. But for "the rest"... it is cute. Wink
LOL ... you just reminded me of the PC guy in the Apple Get A Mac ads of 2000's

Gee... and I started off with a "Thank you"... it didn't take long to devolve to insults... (though fortunately they're vintage insults). That ad was back when Macs were 5% of the market. Now that its grown all the way to 9%, I suppose the "cool dude" Mac user will demand a higher salary. As a Mac owner, he of course is used to paying too much for his toys and so probably needs it.

On the other hand, you did make the Excel version without me really asking, so I'll just end with another Thank you! Smile

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
01-30-2021, 04:08 AM (This post was last modified: 01-31-2021 02:53 AM by Sylvain Cote.)
Post: #5
RE: FRAM71 : Configuration Spreadsheet
(01-30-2021 03:55 AM)rprosperi Wrote:  
(01-30-2021 03:14 AM)Sylvain Cote Wrote:  LOL ... you just reminded me of the PC guy in the Apple Get A Mac ads of 2000's

Gee... and I started off with a "Thank you"... it didn't take long to devolve to insults... (though fortunately they're vintage insults). That ad was back when Macs were 5% of the market. Now that its grown all the way to 9%, I suppose the "cool dude" Mac user will demand a higher salary. As a Mac owner, he of course is used to paying too much for his toys and so probably needs it.

On the other hand, you did make the Excel version without me really asking, so I'll just end with another Thank you! Smile
Just having fun here, it was my pleasure to do the Excel version and I was expecting that several FRAM71 users would have asked for one.
I was not sure of the quality of Numbers Excel exporter thought, of course I had to change a couple of things but the exported file was surprisingly good.

edit: typo
Find all posts by this user
Quote this message in a reply
01-30-2021, 06:54 PM
Post: #6
RE: FRAM71 : Configuration Spreadsheet
big thank you from a new FRAM71B user

Cambridge, UK
41CL/DM41X 12/15C/16C DM15/16 71B 17B/BII/bII+ 28S 42S/DM42 32SII 48GX 50g 35s 30b/WP34S Prime G2
& Casios, Rockwell 18R :)
Find all posts by this user
Quote this message in a reply
01-31-2021, 02:51 AM
Post: #7
RE: FRAM71 : Configuration Spreadsheet
Didier Lachieze has created an Excel "cute" version with check boxes. (see updated first post above) Thank you Didier!
Find all posts by this user
Quote this message in a reply
01-31-2021, 09:37 AM
Post: #8
RE: FRAM71 : Configuration Spreadsheet
(01-30-2021 02:18 AM)Sylvain Cote Wrote:  Hello FRAM71 & FRAM71B Users !

Yesterday, Daniel Simpson came up with a great idea to automatically generate the FRAM71 configuration string within Numbers (Apple Spreadsheet Software) and he sent me his spreadsheet:

Unfortunately there was several issues in it, after several iterations he was thinking to drop it and switch to Excel.
As a Mac user, I could not let that to happen Wink ... so I decided to give it a shot.
After several iterations and after rewriting all the formula I came up with this working Numbers version:

Thanks Daniel!

Have fun! Cool

Sylvain

Update: Didier Lachieze has created an Excel version with check boxes: (see file link above)

Edit: Didier's Excel file link was pointing to the without check boxes version, corrected.

GREAT !!! Thanks for this huge step forward in using the FRAM71B - from a Mac User
Find all posts by this user
Quote this message in a reply
01-31-2021, 02:39 PM
Post: #9
RE: FRAM71 : Configuration Spreadsheet
If amyone wants to try a web-based version of this, I just knocked this together:

https://howto-pages.org:1443/71/fram71b.html

There are only 10 types of people in this world. Those who understand binary and those who don't.
Find all posts by this user
Quote this message in a reply
01-31-2021, 07:55 PM (This post was last modified: 01-31-2021 07:56 PM by Dave Frederickson.)
Post: #10
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
Can anyone add to their spreadsheet a feature that would determine if a given configuration string is valid? That is, it doesn't cause a configuration warning.

Dave
Find all posts by this user
Quote this message in a reply
02-01-2021, 12:25 AM
Post: #11
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(01-31-2021 07:55 PM)Dave Frederickson Wrote:  Can anyone add to their spreadsheet a feature that would determine if a given configuration string is valid? That is, it doesn't cause a configuration warning.

Dave

I predict no. Sad

Which is not a challenge (Sylvain), it's simply not reasonable to try to encapsulate all the possible rules for FRAM71B configuration into an Excel formula (or indeed, even if VBA is used).

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-01-2021, 12:29 AM
Post: #12
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(01-31-2021 02:39 PM)grsbanks Wrote:  If amyone wants to try a web-based version of this, I just knocked this together:

https://howto-pages.org:1443/71/fram71b.html

Wow! Very nice Godwin, quite a surprise! Bravo!! Cool Exclamation

--Bob Prosperi
Find all posts by this user
Quote this message in a reply
02-01-2021, 12:54 AM
Post: #13
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(02-01-2021 12:25 AM)rprosperi Wrote:  
(01-31-2021 07:55 PM)Dave Frederickson Wrote:  Can anyone add to their spreadsheet a feature that would determine if a given configuration string is valid? That is, it doesn't cause a configuration warning.

Dave
it's simply not reasonable to try to encapsulate all the possible rules for FRAM71B configuration into an Excel formula (or indeed, even if VBA is used).

Excel formulas are indeed a pain to use for very complex stuff, but VBA is a Turing complete programming language, so it should be possible. Seems like it should be straight forward to do so.
Find all posts by this user
Quote this message in a reply
02-01-2021, 01:17 AM (This post was last modified: 02-01-2021 01:47 AM by Dave Frederickson.)
Post: #14
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(02-01-2021 12:54 AM)cruff Wrote:  
(02-01-2021 12:25 AM)rprosperi Wrote:  it's simply not reasonable to try to encapsulate all the possible rules for FRAM71B configuration into an Excel formula (or indeed, even if VBA is used).

Excel formulas are indeed a pain to use for very complex stuff, but VBA is a Turing complete programming language, so it should be possible. Seems like it should be straight forward to do so.
Consider it a challenge. A final solution should take into account other installed modules and the 64k bug in the 1BBBB ROM. BONUS points if the app can determine the Port numbers.

Of course it would be helpful if we had a summary of the configuration routine with all the caveats rather than read through a couple dozen threads. Here's a start.

1. Ports are configured on 32k boundaries
2. ROM and RAM cannot share a 32k block
3. RAM is configured first with ports 32k and larger configured up from 0x30000.
4. ROM's and IRAM's are then configured with larger ports configured first, down from 0xFFFFF.
5. For ROM 1BBBB, a 32k RAM must be configured before a 64k RAM.
6. If an HC FORTH module is configured, all memory above 0xE0000 is unavailable.

Anyone wish to create a formal document? Smile

Dave
Find all posts by this user
Quote this message in a reply
02-01-2021, 01:46 AM (This post was last modified: 02-01-2021 01:54 AM by Sylvain Cote.)
Post: #15
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(01-31-2021 07:55 PM)Dave Frederickson Wrote:  Can anyone add to their spreadsheet a feature that would determine if a given configuration string is valid? That is, it doesn't cause a configuration warning.
(02-01-2021 12:25 AM)rprosperi Wrote:  Which is not a challenge (Sylvain), it's simply not reasonable to try to encapsulate all the possible rules for FRAM71B configuration into an Excel formula (or indeed, even if VBA is used).
(02-01-2021 12:54 AM)cruff Wrote:  Excel formulas are indeed a pain to use for very complex stuff, but VBA is a Turing complete programming language, so it should be possible. Seems like it should be straight forward to do so.
(02-01-2021 01:17 AM)Dave Frederickson Wrote:  Consider it a challenge. A final solution should take into account other installed modules and the 64k bug in the 1BBBB ROM.
Excel has VBA, so it is possible, BUT the problem is that VBA Windows English is different from VBA Windows French is different from VBA macOS is different from ... you get the idea.
Also, not all macOS versions has VBA.
Numbers does not have a built-in scripting engine. Apple has AppleScript but it has not been promoted since the creator has left Apple several years ago.

I have implemented in Numbers duplicate FRAM block check with a formula, see here: (not published yet)
[Image: FRAM71B_Configurator_20210131B_validation.jpg]
Code:
Check Formula -> J3 = IF($B2,IF(COUNTIF($I$2:$I$33,CONCATENATE("=",$I3))=1,"","Dup.FB"),"")

(02-01-2021 01:17 AM)Dave Frederickson Wrote:  BONUS points if the app can determine the Port numbers.
That was planned and should come soon.

Sylvain
Find all posts by this user
Quote this message in a reply
02-01-2021, 01:57 AM (This post was last modified: 02-01-2021 01:58 AM by Dave Frederickson.)
Post: #16
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(02-01-2021 01:46 AM)Sylvain Cote Wrote:  Excel has VBA, so it is possible, BUT the problem is that VBA Windows English is different from VBA Windows French is different from VBA macOS is different from ... you get the idea.
Also, not all macOS versions has VBA.
And that's why it's a challenge. Think out of the box, perhaps Python rather than VBA. What did Anthony Hopkins say to Tom Cruise in MI:2?
"Hunt, this isn't mission difficult, it's mission impossible. "Difficult" should be a walk in the park for you."

Dave
Find all posts by this user
Quote this message in a reply
02-01-2021, 02:26 AM
Post: #17
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(02-01-2021 01:57 AM)Dave Frederickson Wrote:  
(02-01-2021 01:46 AM)Sylvain Cote Wrote:  Excel has VBA, so it is possible, BUT the problem is that VBA Windows English is different from VBA Windows French is different from VBA macOS is different from ... you get the idea.
Also, not all macOS versions has VBA.
And that's why it's a challenge. Think out of the box, perhaps Python rather than VBA. What did Anthony Hopkins say to Tom Cruise in MI:2?
"Hunt, this isn't mission difficult, it's mission impossible. "Difficult" should be a walk in the park for you."
For sure I could write a multi-platform GUI program that does it, but I already have a pile of stuff in backlog, so challenge declined!
Find all posts by this user
Quote this message in a reply
02-04-2021, 03:37 AM (This post was last modified: 02-08-2021 12:18 AM by Sylvain Cote.)
Post: #18
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
Hans,

I am going over both manuals to build the rules that will be used to validate the spreadsheet entries.

In the FRAM71B manual page 6 : 16KB chips usage now restricted to BOT RAM and LCIM.
In the FRAM71B manual page 14 : 16KB chips entries in config table only reflect BOT RAM limitation.

Which one is valid ?

Sylvain

Code:
Module   Config  LCIM  Type  Size        Message
-------  ------  ----  ----  ----        ------------------
Code:
FRAM71   0:0000  no    RAM    0KB        Deactivated
FRAM71   1:0001  no    RAM   32KB        
FRAM71   2:0010  no    RAM   16KB        
FRAM71   3:0011  no    RAM    8KB        
FRAM71   4:0100  no    ROM    ?KB        Invalid_Size_Error
FRAM71   5:0101  no    ROM   32KB        
FRAM71   6:0110  no    ROM   16KB        
FRAM71   7:0111  no    ROM    8KB
Code:
FRAM71   8:1000  yes   RAM    ?KB        Invalid_Size_Error
FRAM71   9:1001  yes   RAM   32KB        
FRAM71   A:1010  yes   RAM   16KB        
FRAM71   B:1011  yes   RAM    8KB        
FRAM71   C:1100  yes   ROM    ?KB        Invalid_Size_Error
FRAM71   D:1101  yes   ROM   32KB        
FRAM71   E:1110  yes   ROM   16KB        
FRAM71   F:1111  yes   ROM    8KB

Code:
Module   Config  LCIM  Type  Size  FRAM  Message
-------  ------  ----  ----  ----  ----  ------------------
Code:
FRAM71B  0:0000  no    RAM    0KB        Deactivated
FRAM71B  1:0001  no    RAM   32KB  BOT.  
FRAM71B  2:0010  no    RAM   16KB  BOT.  
FRAM71B  3:0011  no    RAM   32KB  TOP   
FRAM71B  4:0100  no    ROM    ?KB  ?     Invalid_Size_Error
FRAM71B  5:0101  no    ROM   32KB  BOT.  
FRAM71B  6:0110  no    ROM   16KB  BOT.  
FRAM71B  7:0111  no    ROM   32KB  TOP
Code:
FRAM71B  8:1000  yes   RAM    ?KB  ?     Invalid_Size_Error
FRAM71B  9:1001  yes   RAM   32KB  BOT.  
FRAM71B  A:1010  yes   RAM   16KB  BOT.  
FRAM71B  B:1011  yes   RAM   32KB  TOP   
FRAM71B  C:1100  yes   ROM    ?KB  ?     Invalid_Size_Error
FRAM71B  D:1101  yes   ROM   32KB  BOT.  
FRAM71B  E:1110  yes   ROM   16KB  BOT.  
FRAM71B  F:1111  yes   ROM   32KB  TOP

Code:
Module   Config  F-Block  Message
-------  ------  -------  -------------------------------
any      any     0        SR_or_HC_Mapping_Warning
any      any     1        SR_Mapping_Warning
any      any     2        Config_Area_Mapping_Error
table not completed / in-progress

edit: typo
Find all posts by this user
Quote this message in a reply
02-04-2021, 07:27 AM
Post: #19
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
on page 6, it should read "Changed: 16KB chips usage now restricted to BOT FRAM.".
on page 14, table 3 is correct.
Find all posts by this user
Quote this message in a reply
02-06-2021, 12:58 AM
Post: #20
RE: FRAM71 : Configuration Spreadsheet [2021-01-31]
(02-04-2021 07:27 AM)Hans Brueggemann Wrote:  on page 6, it should read "Changed: 16KB chips usage now restricted to BOT FRAM.".
on page 14, table 3 is correct.
Great! that is what Dave told me and what I was expecting.

Here, some questions that I have never asked but has been put in my notes several years ago.
They relates to the physical jumpers and to their improper uses.
  1. FRAM71: if J1 and J2 are inserted at the same time
    1. is it harmfull to the hardware ?
    2. if no, how the firmware will react to it ?
  2. if J1 and CN2-5 are inserted at the same time
    1. is it harmfull to the hardware ?
    2. if no, how the firmware will react to it ?
      1. freeze it ?
      2. SYSRAM is active
      3. Hardwire is active
      4. Hardwire is active and part of SYSRAM is active (0x10000 to 0x1FFFF)
  3. if CN2-3 and J1 are inserted at the same time
    1. is it harmfull to the hardware ?
    2. if no, how the firmware will react to it ? (my take will be that CN2-3 take precedence)
  4. if CN2-3 and CN2-5 are inserted at the same time
    1. is it harmfull to the hardware ?
    2. if no, how the firmware will react to it ? (my take will be that CN2-3 take precedence)
  5. if CN2-3, J1 and CN2-5 are inserted at the same time
    1. is it harmfull to the hardware ?
    2. if no, how the firmware will react to it ? (my take will be that CN2-3 take precedence)
  6. More generally, in what order the FPGA code evaluate the jumpers.

Thank you!

Sylvain

Code:
================================================================================​=================
Module   Jumper  State      description
-------  ------  ---------  ---------------------------------------------------------------------
Code:
FRAM71   J2      inserted   SYSRAM Disabled
any      J1      removed    SYSRAM Disabled
-------  ------  ---------  ---------------------------------------------------------------------
FRAM71   J2      removed    SYSRAM Enabled 
any      J1      inserted   SYSRAM Enabled
-------  ------  ---------  ---------------------------------------------------------------------
FRAM71   CN2-1   removed    Bottom FRAM selected (bottom_F_0x00000 to bottom_F_0xFFFFF)
FRAM71   CN2-1   inserted   Top    FRAM selected (   top_F_0x00000 to    top_F_0xFFFFF)
-------  ------  ---------  ---------------------------------------------------------------------
FRAM71B  CN2-1   removed    Bottom FRAM selected (bottom_F_0x00000 to bottom_F_0x2FFFF)
FRAM71B  CN2-1   inserted   Top    FRAM selected (   top_F_0x00000 to    top_F_0x2FFFF)
Code:
any      CN2-2   removed    IRAM mapping enabled
any      CN2-2   inserted   IRAM mapping disabled
-------  ------  ---------  ---------------------------------------------------------------------
any      CN2-3   removed    71B bus write enabled
any      CN2-3   inserted   71B bus write disabled, H_0x2C000 to H_0x2C01F mapped only
-------  ------  ---------  ---------------------------------------------------------------------
any      CN2-4   removed    Disable SYSRAM writing
any      CN2-4   inserted   Enabled writes to F_0x00000...F_0x1FFFF through H_0x00000...H_0x1FFFF
-------  ------  ---------  ---------------------------------------------------------------------
any      CN2-5   removed    Chip 0 behaves normally
any      CN2-5   inserted   Chip 0 is mapped to H_0xE0000
Find all posts by this user
Quote this message in a reply
Post Reply 




User(s) browsing this thread: 1 Guest(s)