One of the more advanced features of FRAM71/B is the ability to switch banks of memory. By swapping "inactive" banks of memory with "active" banks, FRAM71 can be loaded with more ROM's and IRAM’s than the 71B can address at once!
There are two types of Bank Switching:
- Conventional Bank Switching, which requires a power cycle to acknowledge the switch
- On-the-Fly Bank Switching, or OTF BS, which does not require a power cycle. OTF BS is invoked when only a Chip’s address nibble is changed. If the swapped F-Blocks contain files then it’s likely that the file chain has been corrupted. Subsequent use of file commands will likely result in MEMORY LOST.
An example of using OTF BS can be found in this post:
Even though OTF BS may not be used, it’s important to understand the feature. Here’s what we know:
- If an OTF BS was not intended, a conventional bank switch may be invoked by cycling power
- When backing up/restoring F-Blocks, only PEEK$ and POKE commands may be used as they don’t access the file chain
- The file chain needs to be fixed at the end of the procedure by,
a. Restoring the config string using the original F-Block addresses, or
b. Performing a conventional bank switch
This article describes how FRAM71/B can be configured with both the FORTH/Assembler and 41 Translator ROM’s and how to switch between them.
Thanks to Hans Brueggemann for creating the FRAM71 and to Bob Prosperi and Sylvain Côté for clues to developing this procedure.
Comments and suggestions welcome.