HP FRAM71B User manual

FRAM71B 1.00 0516
Ed. 1.0
Version SW6xx_HW105
User’s Manual
FRAM71B
"Denver 2016"

FRAM71B User’s Manual
FRAM71B 1.00 - 2 - ©Hans Brueggemann, 2016
"Very good, said my uncle, we will leave that to you."
-Flann O´Brien, At Swim Two Birds
My sincere thanks go to
Robert Prosperi,
Dave Frederickson,
Sylvain Coté,
for supporting this project.

FRAM71B User’s Manual
FRAM71B 1.00 - 3 - ©Hans Brueggemann, 2016
1License Agreement and Copyright.................................................................................5
2TL;DR............................................................................................................................5
3What Is It?.....................................................................................................................6
3.1 What’s New? ............................................................................................................6
3.2 Scopeof ThisManual................................................................................................6
4KnownIncompatibilities................................................................................................7
4.1 FRAM71B in HP-71Bswith Speed-Upgrades..............................................................7
4.2 FRAM71BCo-Existingwith other Modules................................................................7
4.3 FRAM71B and the IL-Module ....................................................................................7
4.4 FRAM71B and HP-71BFirmware Versions.................................................................7
5Hardware Requirements ...............................................................................................7
6Definition of Terms........................................................................................................8
7Installation....................................................................................................................9
8Jumpers.......................................................................................................................10
8.1 CN2-5: HARDCONF_C0_E0000................................................................................10
8.2 CN2-4: ENA_SYSRAM_WRT.....................................................................................10
8.3 CN2-3: DIS_HPBUS_WRT.........................................................................................10
8.4 CN2-2: DIS_OUT_wh_CONFIG.................................................................................11
8.5 CN2-1: SLCT_TOP (1 Mbyte-Option,FRAM71B-1024only)......................................11
8.6 J1:ENA_SYSRAM.....................................................................................................11
9Memory Configuration................................................................................................12
9.1 Configuration Strings ..............................................................................................15
9.2 Examples ................................................................................................................15
9.3 Maximum Memory.................................................................................................15
9.4 FRAM71B-1024 Example.........................................................................................16
10 A Step-by-Step Configuration Example........................................................................17
10.1 Startingfrom Scratch..........................................................................................17
10.2 Preliminary Configuration for Loading the FRAM................................................17
10.3 LoadingChip_0with the HRDFRTH Imageand moving it to E0000......................18
10.4 LoadingChip_1with the FORTHROM Image.......................................................18
10.5 LoadingChip_2with the MATHROM Image........................................................18
11 Using the SYSRAM Feature..........................................................................................20
11.1 SomePrecautions...............................................................................................20

FRAM71B User’s Manual
FRAM71B 1.00 - 4 - ©Hans Brueggemann, 2016
11.2 Accessingthe OD Signal with a Modified Module in Port #1...............................21
11.3 Installing anOperatingSystemintoSYSRAM......................................................22
11.3.1 Using FRAM71Bas Shuttle betweenTwo HP-71Bs ........................................22
11.3.2 Using a HEX Dump and a Serial Interface.......................................................23
12 FRAM71B-512K-EXTMemoryExtension......................................................................25
12.1 JumperCN2-1"SLCT_TOP".................................................................................25
12.2 Jumpers "WRITEENABLE" and CN2-4"ENA_SYSRAM_WRITE"............................25
13 GeneralQ&A...............................................................................................................26
14 Current Consumption..................................................................................................28
15 BoardConnectors........................................................................................................29
16 Programming Cable for ACTEL FlashPro Programmer..................................................30
17 A Note on FRAM Technology.......................................................................................32
17.1 FRAMSpeed.......................................................................................................32
17.2 FRAMAccess Endurance.....................................................................................32
18 FRAM71BConfiguration Sheet ....................................................................................33

FRAM71B User’s Manual
FRAM71B 1.00 - 5 - ©Hans Brueggemann, 2016
1LicenseAgreementandCopyright
IMPORTANT - READ CAREFULLY
This license and disclaimer statement constitutes a legal agreement ("License Agreement")
between you (either as an individual or a single entity) and Hans Brueggemann (the "Au-
thor"), for this software product ("Software"), including any software, media, and accompa-
nying on-line or printed documentation.
BY DOWNLOADING, INSTALLING, COPYING, OR OTHERWISE USING THE SOFTWARE, YOU
AGREE TO BE BOUND BY ALL OF THE TERMS AND CONDITIONS OF THIS LICENSE AND
DISCLAIMER AGREEMENT.
This software is freeware. You can use this software royalty-free for private and non-
commercial purposes. You can freely distribute copies of the main archive as long as no al-
terations are made to the contents and no charge is raised except a reasonable fee for dis-
tributing costs. You may not modify, reverse engineer, decompile, or disassemble the object
code portions of this software. This Software is owned by Hans Brueggemann and is protect-
ed by copyright law and international copyright treaty. This software is provided "as is" and
without any warranties expressed or implied, including, but not limited to, implied warran-
ties of fitness for a particular purpose. In no event shall the author be liable for any damages
whatsoever (including, without limitation, damages for loss of business profits, business in-
terruption, loss of business information, or other pecuniary loss) arising out of the use of or
inability to use this software or documentation, even if the author has been advised of the
possibility of such damages.
The FRAM71B module, FRAM71B hardware and FRAM71B firmware are
Copyright (c) Hans Brueggemann, 2016
2TL;DR
Follow the installation instruction in chapter 7. Now, we can configure the amount of
memory we want in our HP-71B. Say,we want an extra of 4 modules x 32 KB = 128 KByte of
RAM on top of the internal 16 KByte of the calculator.
We have to tell the FRAM71B two things: What type of memory we want and where
FRAM71B should reserve it in its own memory space.
1) In this case, we want memory type "9" (which stands for "RAM, single module") and
2) Have FRAM71B place it in its internal locations (F_Blocks) 3, 4, 5, and 6.
3) Finally, we need to know where to put all these informations: "2C000".
4) Thus: POKE"2C000","9394959600" [END LINE] [SHIFT] [OFF] [ON].
5) Now, check the amount of memory available: [MEM] [ENDLINE] à147xxx.
6) Read The Fine Manual.

FRAM71B User’s Manual
FRAM71B 1.00 - 6 - ©Hans Brueggemann, 2016
3WhatIsIt?
FRAM71B is a "Continuous Memory" extension for use in your Hewlett-Packard HP-71B
Pocket Computer, based on FRAM technology. When plugged into the Card Reader Port, it
will provide your HP-71B with up to 16 additional RAM modules of user selectable sizes and
64 KByte of system RAM. With FRAM71B you can:
•Adopt the memory size to existing hardware configurations (plug-ins),
•Maximize independent RAM for data /program storage,
•Use FRAM71B as an archive facility,
•Use ROM images instead of plug-in Modules,
•Declare RAM inside FRAM71B as hard-configured ROM at E0000,
•Upgrade your HP-71B to the latest operating system,
•Refurbish an HP-71B that has defective internal ROM / RAM chips,
•Let "Take-Over"-software reside parallel to your HP-71B’s internal OS,
•Implement new hardware features previously not available on the HP-71B.
3.1 What’s New?
SW600_HW105
•NEW: Bankswitching of 32KB Chips between TOP FRAM and BOT FRAM via configura-
tion word in C_0x2C000 area.
•NEW: Field-upgradable to 1024 KB with separate extender module.
•Changed: 8 KB chip-sizes are no longer supported.
•Changed: 16KB chips usage now restricted to BOT FRAM and LCIM.
•Changed: CN2-1behavior. H/Wcontrol of TOP FRAM and BOTFRAM now only swaps
areas F_0x0..F_0x2 instead of swapping between entire FRAMs.
•Changed: Simplified SYSRAM control via jumper J1
•Changed: Reduced Power Consumption in sleep mode.
•Removed: UART support.
3.2 Scope of This Manual
This document refers to FRAM71B version
•SW60x
•HW105

FRAM71B User’s Manual
FRAM71B 1.00 - 7 - ©Hans Brueggemann, 2016
4KnownIncompatibilities
As of release date of this manual, the following modules / images have been tested:
Module Incompatibility May Cause Comments / Tested With
MATH
:1A
-
none
-
Module
/ Image
FORTH
:1A
-
none
-
Module / Image
DIAG
-
none
-
Image in SYSRAM
2CDCC
-
none
-
ImageinSYSRAM on1BBBB
mainframe
HPIL:1A
-
none
-
1BBBB, 2CDCC
4.1 FRAM71B in HP-71Bs with Speed-Upgrades
FRAM71B does not support HP-71Bs with clock speeds higher than 690 kHz.
4.2 FRAM71B Co-Existing with other Modules
•When using the SYSRAM feature, it is not possible to use a "Take-Over ROM” in ei-
ther Port 3 or the HPIL-Port at the same time.
•Hard-configured ROMs, such as the FORTH/Assembler ROM and the HP-41C Transla-
tor ROM, can’t be used if the "E0000” feature is enabled.
Insertion / removal of modules must always follow the guidelines as laid out in the HP-71B
user manuals.
4.3 FRAM71B and the IL-Module
For the IL-Module, there is unfortunately no known way of "upgrading” its 1A ROM by using
a 1B ROM-image in FRAM71B. This is due to the internal structure of the IL-Module and the
way the HP-71B treats it on start-up.
4.4 FRAM71B and HP-71B Firmware Versions
There is no known incompatibility with HP-71B's 1BBBB, 2CDCC firmware versions.
5HardwareRequirements
To makeuseof FRAM71B’s continuous memory features,you only need an HP-71B. Some of
FRAM71B’s advanced features require a means of transferring data between your PC and
yourHP-71B,so a HP82164A comes in handy here. Using the SYSRAM feature requires skills
to do hardware modifications. To configure your FRAM71B, see chapter 9 "Memory Configu-
ration" for details.

FRAM71B User’s Manual
FRAM71B 1.00 - 8 - ©Hans Brueggemann, 2016
6DefinitionofTerms
•F_Block: A block of 32 kB memory in FRAM, located at a fixed FRAM-address.
•(Memory-) Chip: A logic entity, configurable to present 16 KB or 32 KB of memory
from a selectable F_Block as either RAM or ROM to the HP-71B.
•Memory Module: A contiguous set of up to 16 daisy-chained Chips. A Memory Mod-
ule can be addressed by a port number, i.e., PORT(5) .. PORT(5.15).
•H-address: An address in the address space of the HP-71B, written as H_0xnnnnn.
•F-address: An address in the address space of the FRAM, written as F_0xnnnnn.
•C-address: An address in an address space that is common to HP-71B and FRAM,
written as C_0xnnnnn.
•SYSROM: The 64 KB ROM inside the HP-71B at address H_0x00000-H_0x1FFFF that
holds the operating system.
•SYSRAM: A 64 KB FRAM area inside FRAM71B at address F_0x00000-F_0x1FFFF, se-
lected and write-protected by jumpers. Can either be used instead of SYSROM to
hold an alternate operating system or as two Chips for Memory Modules.
•RAM-only Mode: Only RAM, no ROM at address H_0xE0000 configured.
•Soft Configured (SC) ROM: ROM-Chip(s) that get their memory location configured at
power-on by the HP-71B, rather than having a hard configured (fixed, non-
changeable) address. Example: MATH-ROM
•Hard-Configured (HC) ROM: ROM-Chip(s) that are always configured to a fixed pre-
programmed memory location. Example: Part of the FORTH-ROM that is always lo-
cated at H_0xE0000.
•OS: The operating system of your HP-71B.
•IRAM: "Independent RAM”, RAM portions configured by the [FREE PORT] command.
•BOT FRAM: 512 KB FRAM, available on all FRAM71B versions.
•TOP FRAM: An additional 512KB FRAM, only available on an FRAM71B that has the
512 KB FRAM-Extender installed (separately available as upgrade kit).

FRAM71B User’s Manual
FRAM71B 1.00 - 9 - ©Hans Brueggemann, 2016
7Installation
Never install or remove FRAM71B without prior removal of all power supplies.
Failure to do so will permanently damage your FRAM71B.
1. Prior to installation, make sure to take proper ESD protection measures.
2. Make a backup of your data.
3. Remove all batteries and the AC connector from your HP-71B.
4. Remove all modules from ports 1,2,3,4 and the HP-IL module.
5. Turn the calculator upside down and remove the Card Reader / Card Reader dummy
from the compartment.
6. Insert your FRAM71B module into the Card Reader bay as shown. Gently press the mod-
ule into place by pushing on the twoAllen screws, untilthe front bezel of the module is
nearly (0.5 mm) flush with HP-71B’s faceplate:
7. Check that the two jumpers on FRAM71B are in their default position:
8. Close the Card Reader port.
9. Re-install the batteries, close battery compartment.
10. Turn the calculator upside up and press [f] [OFF] [ON]. Calculator may wake up with
"MEMORY LOST”. Press [ON] to remove that message.
11. Initialize FRAM71B to 32 KByte RAM by pressing POKE"2C000","9300" [ENDLINE].1)
12. Press [f] [OFF] [ON] to notify your HP-71B about the new configuration.
13. Press [MEM] [ENDLINE], display should read approx. 49699 Bytes: Done!
14. Now, switch the calculator off and re-insert other modules as desired.
1) Do not omit this step. If you want to usea previously known good configuration,you may
use that instead of"9300".
No
Jumper
placed
in
"SYSRAM ENABLE" position.
Jumper
s placed
in
"parking"position.

FRAM71B User’s Manual
FRAM71B 1.00 - 10 - ©Hans Brueggemann, 2016
8Jumpers
Six jumper positions on FRAM71B control its start-up behavior, SYSRAM availability and ROM
definition. Using the default settings will put FRAM71B into "RAM-only” mode:
Picture1: FRAM71B DEFAULT Configuration
8.1 CN2-5: HARDCONF_C0_E0000
"Configure chip_0 to address H_0xE0000 and make it hard-configured ROM"
Default: notset (jumper removed)
If set, FRAM71B will re-allocate chip_0 as "hard configured ROM" to H_0xE0000. This feature
is used in conjunction with the hard configured part of a FORTH/Assembler ROM image. If
you don’t plan to use FORTH, leave this jumper removed.
8.2 CN2-4: ENA_SYSRAM_WRT
"Enable writes to SYSRAM areas"
Default: notset (jumper removed)
If set, FRAM71B will enable write access to F_0x00000 - F_0x1FFFF on both TOP and BOT
FRAM at the same time, regardless of CN2-1. Useful to protect the SYSRAM area of
FRAM71B against accidential overwrites. The red indicator in the front bezel will be on while
this jumper is set. During write operations to the SYSRAM area, the indicator will flash.
8.3 CN2-3: DIS_HPBUS_WRT
"Disable all writes to the HP-71B bus"
Default: notset (jumper removed)
If set,FRAM71B will become invisible to your HP-71B, but willstill accept changes to itscon-
figuration area (C_0x2C000 - C_0x2C01F). This is useful if your HP-71B does no longer re-
spond to a RESET [ON]/[/],[3] and you need to get it back to a known state.
DIS_HPBUS_WRT does not disable SYSRAM (F_0x00000 - F_0x1FFFF). Thus, an alternate O/S
selected by J1 stays in effect even if all FRAM is disabled.
CN2
-
2:DIS_
OUT
_wh_CONFIG
CN2-3:DIS_HPBUS_WRT
CN2
-
4:
ENA
_SYSRAM_WRT
CN2-5:HARDCONF_C0_E0000
J1
:
ENA_SYSRAM
CN2-1:SLCT_TOP(Option)

FRAM71B User’s Manual
FRAM71B 1.00 - 11 - ©Hans Brueggemann, 2016
8.4 CN2-2: DIS_OUT_wh_CONFIG
"Disable output while FRAM71B is in CONFIG phase"
Default: notset (jumper removed)
If set, FRAM71B will not report the "3BDDDDDE" IRAM identifiers while being in CONFIG
mode during power-[ON]. Make sure that this jumper is not set unless youwant to clear the
contents of all Independent RAM (IRAM). As a result, all IRAM portions previously defined by
[FREE PORT] (5.xx) get reportedas normal RAM during CONFIG and are no longerprotected
against MEMORY LOST. Notethat the HP-71B itself does not necessarily clearthose memory
portions automatically when the IRAM identifiers are missing. Therefore, it’s a good idea to
manually force the HP-71B into a MEMORY LOST by [ON]/[/],[3] to make sure that these
memory portions get cleared.
8.5 CN2-1: SLCT_TOP (1 Mbyte-Option, FRAM71B-1024 only)
"Select TOP FRAM"
Default: notset (jumper removed)
FRAM71B-1024 modules are equipped with another512 KB of FRAM,which is referred to as
"TOP FRAM". On an FRAM71B-1024, this jumper selects F_0x00000 - F_0x2FFFF of TOP
FRAM, if set. If removed, F_0x00000 - F_0x2FFFF of BOT FRAM is selected.
See chapter 12, "FRAM71B-512K-EXT Memory Extension", for further details.
8.6 J1: ENA_SYSRAM
"Enable SYSRAM”
Default: notset (jumper removed)
vDO NOT SET before disabling the output of the calculator’s SYSROM first.
vRefer to "Using The SYSRAM Feature”.
If set,FRAM71B will enable the ouput of its SYSRAM area(F_0x00000 – F_0x1FFFF). Use this
feature to switch between different operating systems. SYSRAM is not affected by CN2-3.

FRAM71B User’s Manual
FRAM71B 1.00 - 12 - ©Hans Brueggemann, 2016
9MemoryConfiguration
Thetotal memory space in FRAM71B is 16 x 32 KB = 512 KByte,where32 KByte in F_Block 2
is unused, because it overlaps with HP-71B RAM (except for the configuration area). Hence,
the total usable FRAM space is 480 KByte, organized in 15 F_Blocks:
FRAM Address Purpose
F_Block # Start End
HC = Hard Configured
SC = Soft Configured
0
0x00000
0xFFFFF
SYSRAM / RAM / ROM
1
0x10000
0x1FFFF
SYSRAM / RAM / ROM
2
*)
0x20000
0x2BFFF
unused
2
*)
0x2C000
0x2C0
1
F
Config
Area
For
FRAM allocation
2
*)
0x2C020
0x2FFFF
Unused
3
0x30000
0x3FFFF
RAM /ROM
4
0x40000
0x4FFFF
RAM
/ROM
5
0x50000
0x5FFFF
RAM /ROM
6
0x60000
0x6FFFF
RAM /ROM
7
0x70000
0x7FFFF
RAM /ROM
8
0x80000
0x8FFFF
RAM /ROM
9
0x90000
0x9FFFF
RAM
/ROM
A
0xA0000
0xAFFFF
RAM /ROM
B
0xB0000
0xBFFFF
RAM /ROM
C
0xC0000
0xCFFFF
RAM /ROM
D
0xD0000
0xDFFFF
RAM /ROM
E
0xE0000
0xEFFFF
RAM /ROM
F
0xF0000
0xFFFFF
RAM /ROM
Table 1: FRAM71B F_Block- and Configuration- Locationsin BOTFRAM.
*) No Chip must be assigned to F_Block 2
F_Blocks are presented to the HP-71B in the form of memory-"Chips” that may represent a
memory module on their own, or may be clustered into larger memory modules. Chips do
not have pre-defined addresses in FRAM, but get assigned to user-selected F_Blocks. Chip
configuration data is stored in FRAM, and will survive a power loss or a "MEMORY LOST".
vF_Block 2 must not be used for Chip-assignments.
Configuration of Chips and Memory Modules is accomplished by [POKE] commands at the
Card Reader’s address space C_0x2C000 – C_0x2C01F.
Each byte-value in that address space configures
•The size of a Chip,
•Whether it is part of a module that contains multiple Chips,
•Whether its device type is RAM or soft configured ROM,
•Which F_Block it is assigned to.
The position of a configuration byte inside the 16-byte-long configuration string corresponds
to its respective Chip, see FRAM71B configuration example on next page:

FRAM71B User’s Manual
FRAM71B 1.00 - 13 - ©Hans Brueggemann, 2016
Title : FRAM71B Configuration Example
Date :
POKE "2C000", " Comment (LCIM) Device
Type
Chip
Size
[KB]
Module
PORT5.xx
Chip_0*) 2C000 CONF 9Single RAM module 1 RAM 32 00
2C001 F_BLOCK 3located @ F_0x30000
Chip_1 2C002 CONF 9Single RAM module 1 RAM 32 01
2C003 F_BLOCK 5located @ F_0x50000
(For no particular reason…)
Chip_2 2C004 CONF 0(unused)
2C005 F_BLOCK 0
Chip_3 2C006 CONF 0(unused)
2C007 F_BLOCK 0
Chip_4 2C008 CONF 0(unused)
2C009 F_BLOCK 0
Chip_5 2C00A CONF 0(unused)
2C00B F_BLOCK 0
Chip_6 2C00C CONF 0(unused)
2C00D F_BLOCK 0
Chip_7 2C00E CONF 0(unused)
2C00F F_BLOCK 0
Chip_8 2C010 CONF 0(unused)
2C011 F_BLOCK 0
Chip_9 2C012 CONF 0(unused)
2C013 F_BLOCK 0
Chip_A 2C014 CONF 0(unused)
2C015 F_BLOCK 0
Chip_B 2C016 CONF 0(unused)
2C017 F_BLOCK 0
Chip_C 2C018 CONF 0(unused)
2C019 F_BLOCK 0
Chip_D 2C01A CONF 0(unused)
2C01B F_BLOCK 0
Chip_E 2C01C CONF 0(unused)
2C01D F_BLOCK 0
Chip_F 2C01E CONF 0(unused)
2C01F F_BLOCK 0
"64
Table 2: FRAM71B Configuration Sheet w/ Chip Locations.
*) Chip_0 is always 32 KByte when used as HC-ROM at H_0xE0000

FRAM71B User’s Manual
FRAM71B 1.00 - 14 - ©Hans Brueggemann, 2016
The Chip-configuration nibbles (high nibbles in the configuration bytes at H_0x2C000,
H_0x2C002,…) may have the following values:
Size of Chip [KByte] Config Nibble
Value Last Chip in
Module(LCIM) Device
Type
FRAM
USED Size
Bit_1 Size
Bit_0
0 (deactivated) 00-- -- -- --
32 1)
3OFF RAM TOP 1 1
7OFF ROM TOP 1 1
BON RAM TOP 1 1
FON ROM TOP 1 1
16
2OFF RAM BOT 1 0
6OFF ROM BOT 1 0
AON RAM BOT 1 0
EON ROM BOT 1 0
32
1OFF RAM BOT 0 1
5OFF ROM BOT 0 1
9ON RAM BOT 0 1
DON ROM BOT 0 1
Table 3: Allowed Chip-Sizes and -Types. 1) FRAM71B-1024 only.
Notes
1. A Chip that is configured to less than32 KBytes always occupies its entire F_Block, as
shown in Table 1. However, it occupies only as much of your HP-71B's address space
as it is configured to.
2. 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 =
16KByte and Chip_1 = 32KByte, 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.
3. [PEEK$] and [POKE] always work on H-addresses.
4. Chips that are declared as ROM, as well as unused F_Blocks, will not be affected by
"MEMORY LOST" or a power loss condition.
5. Chip_0 is a special-purpose Chip that can be changed to hard-configured (HC-) ROM
by setting a jumper on FRAM71B's component board. When enabled to act as HC-
ROM, Chip_0 appears to your HP-71B as ROM at the fixed address H_0xE0000. Its
contents are not affected by "MEMORY LOST" or a power loss condition.
6. If you plan to use Chips as soft-configured ROMs to hold images of application ROMs,
it is suggested (but not required) to configure them the same way as they are in the
original applications module. Otherwise, the Diagnostic ROM may falsely report
those Chips as "BAD”.

FRAM71B User’s Manual
FRAM71B 1.00 - 15 - ©Hans Brueggemann, 2016
9.1 Configuration Strings
There are two options of using Chips as Memory Modules (MM):
1. Use a single Chip per MM by putting either
•"A" for 16 K, or
•"9" for 32 KByte in BOT FRAM, or
•"B" for 32 KByte in TOP FRAM 1)
at the respective configuration address.
2. Use multiple Chips in a daisy-chain configuration and manage them as one MM. In
this case, the MM consists of multiple Chips that are not "Last Chip inModule”, fol-
lowed by one Chip that is "LCIM”.
To inspect the current configuration of your FRAM71B, key in [PEEK$] ("2C000",32)
[ENDLINE] to get "c0f0c1f1… c15f15", where cxis the configuration nibble and fyis the base
address of Chip_x as described in table 2 and 3.
To alter the configuration, key in [POKE] "2C000”, "c0f0c1f1… c15f15"[ENDLINE].
Then key in [f] [OFF] [ON] to announce the altered configuration to the OS. The power cy-
cling is required because FRAM71B has no way to access the "MODULE PULL” mechanism.
vThe configuration area C_0x2C010 - C_0x2C01F is shared with internal experimental
registers. If the actual memory configuration is less than eight chips,
PEEK$("2C000”,32) will return status information of those registers in the last eight
nibbles, for example "93 94 95 96 00 00 00 00 10 00 10 10 10 10 10 10". These can be
safely ignored.
9.2 Examples
"00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00": (32 zeroes)
0 K + 16 K= 16KByte. This is the standardHP-71B RAM configurationwhen there is no other
MM and FRAM71B is not configured.
"93 94 A5 00 …":
2 x 32 K + 1 x 16 K + 16 K = 96 KByte.
PORT(5.00): 32k RAM
MM_0, Chip_0, 32 K, LCIM, RAM
PORT(5.01): 32 k RAM
MM_1, Chip_1, 32 K, LCIM, RAM
PORT(5.02): 16 k RAM
MM_2, Chip_2, 16 K, LCIM, RAM
9.3 Maximum Memory
The maximum achievable memory configuration is shown inthe following example:
"13 14 15 16 17 18 19 1A 1B 9C 9D AE 00 …":
10 x 32 K + 1 x 32 K + 1 x 16 K + 16 K = 384 KByte.
PORT(5.00): 320 K RAM
MM_0, Chip_0 .. 8, 9 x 32 K, RAM, Chip_9, 1 x 32 K, LCIM, RAM
PORT(5.01): 32 K RAM
MM_1, Chip_10, 32 K, LCIM, RAM

FRAM71B User’s Manual
FRAM71B 1.00 - 16 - ©Hans Brueggemann, 2016
PORT(5.02): 16 K RAM
MM_2, Chip_11, 16 K, LCIM, RAM
This is the maximum configuration in conjunction with the HPIL module. Note that MM_2 is
configured to "A" = 16KByte. Attempting to configure it to a higher value will result in
"WRN:Configuration", or will make your HP-71B unresponsive2).
Other "MAX” configurations are as follows:
MAX RAM, no modules
"93 94 95 96 97 98 99 9A 9B 9C 9D 9E BF 00 …" à408 KB RAM
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
9.4 FRAM71B-1024 Example
This configuration utilizes TOP FRAM on a -1024 model to store ROM images of HRDFORTH,
FORTHROM,andMATHROM. It starts out with an all-RAM configuration:
"B3 B4 B5 93 00 00 …”
PORT(5.00): 32 KB TOP RAM; for HRDFRTH image, will later move to H_0xE0000
PORT(5.01): 32 KB TOP RAM; for FORTHROM image
PORT(5.02): 32 KB TOP RAM; for MATHROM
PORT(5.03): 32 KB BOT RAM; just RAM
Entry "B4" is 32 KB, although 16 KB would be sufficient to hold the FORTHROM. However,
TOP FRAM doesn't support 16 KBsizes, so 32 KB must be used. Then, the modules get filled
according to chapter 10.
Once CN2-5 is set,andpower is cycled, the HP-71B re-orders the PORT numbers such that
the HC ROM at H_0xE0000 becomes invisible to SHOWPORT, the final configuration being:
"B3 F4F5 93 00 00 …”
(Invisible) : 32 KB TOP RAM, marked as HC ROM and moved to H_0xE0000 by CN2-5
PORT(5.00): 32 KB TOP SC ROM, holding FRTHROM
PORT(5.01): 32 KB TOP SC ROM, holding MATHROM
PORT(5.02): 32 KB BOT RAM
1) Onlyavailable on FRAM71B-1024
2)In such a case, turn the HP-71B off, set jumper CN2-3, POKE the last known good configura-
tion to H_2C000, remove CN2-3, and power-cycle the HP-71B.

FRAM71B User’s Manual
FRAM71B 1.00 - 17 - ©Hans Brueggemann, 2016
10AStep-by-StepConfigurationExample
This chapter will guide you through the whole process of configuring your FRAM71B and
loading it with different ROM images, using the HRDFRTH, FORTHROM, and MATHROM im-
ages as examples. Although the configuration notes are given for a FRAM71B-512, they fully
apply to the -1024 as well. It is assumed that you have the relevant ROM images accessible
on some kind of mass storage, and that you have the required HP-IL connection (be it an
82164A HP-IL/RS-232 interface, or Jean-Francois Garnier’s PILBOX) up and running.
When done, your HP-71B will have FORTH, MATH, and one 32KB RAM module installed.
10.1 Starting from Scratch
This is the "pre-flight" checklist to get to a defined starting point for the following steps:
1. Batteries: OK.
2. J1: OFF (not set), CN2-1: OFF, CN2-2: OFF, CN2-3: OFF, CN2-4;OFF; CN2-5: OFF.
3. MEM-EXT WRITE ENABLE: ON. (-1024 only).
4. Modules on Ports 1, 2, 3 and 4: REMOVED.
5. [ON]/[/] [3] : MEMORY LOST.
6. HP-IL: OK.
10.2 Preliminary Configuration for Loading the FRAM
Enter the following program SERTORAM into your HP-71B. It expects from the IL-device at
address :2 a HEX-dump file of 64 KB length, which contains 32 KB of ROM data, that will be
POKED to H_0x30000 – H_0X3FFFF. Do not run the program yet.
05 !SERTORAM
10 DIM A$[64]
20 S$="30000" !Start of RAM
30 E$="3FFFF" !End of RAM
40 S=HTD(S$)
50 E=HTD(E$)
60 FOR I=S TO E STEP 64
70 ENTER :2 ;A$ !:2 is ADDRESS of 82164A
80 I$=DTH$(I)
90 POKE I$,A$
100 !DISP I$
110 NEXT I
120 END
We need to configure 4 RAM Chips, one for the later used RAM, one for MATH, and two for
FORTH, because FORTH takes one HC ROM and one SC ROM. Note that the SC portion of
FORTH actually requires only 16 KB, but we will configure the associated RAM-space to 32 KB
to keep this example simple.
1. Configure your FRAM71B:
POKE "2C000","93 94 95 96 00 00 00 00 00 00 00 00 00 00 00 00 00"
(This configuration can be used for both -512 and -1024 versions, as we use BOT FRAM only. If you want to use TOP FRAMin
your -1024 for the ROM images, but keep RAM usage in BOT FRAM,
POKE "2C000","B3 B4 B5 93 00 00 00 00 00 00 00 00 00 00 00 00 00")
2. Power cycle your HP-71B
3. [MEM] must display 4 x 32 KB + 16 KB àapprox. 144 KB

FRAM71B User’s Manual
FRAM71B 1.00 - 18 - ©Hans Brueggemann, 2016
10.3 Loading Chip_0 with the HRDFRTH Image and moving it to E0000
This configuration step has to be done first, because it will re-define Chip_0 to HC ROM at
address H_0xE0000 when done and therefore alter the PORT locations. We will start with
loading the HRDFRTH portion of the FORTH module into Chip_0:
1. Run SERTORAM, and upload HRDFRTH.DMP to your HP-71B.
DO NOT SWITCH YOUR HP-71B OFF NOW!
2. Insert CN2-5.
3. Power-cycle your HP-71B.
4. [MEM] must display 3 x 32 KB + 16 KB àapprox. 112 KB.
5. PEEK$("E0000", 16) = "64 00 E4 05 0E 8F 11 EB" àsuccess!
At this point, Chip_0has becomeHC ROM at address H_0xE0000and thus "invisible" to HP-
71B's configuration routine: Although it is still listed as "93" (or, "B3" for the -1024 example)
in FRAM71B's configuration string, it does no longer show up in SHOWPORT. More so, the
follow-up Chips "94 95 96" got relocated to H_0x30000, H_0x40000, and H_0x50000. That's
why we don't need to change the address range in SERTORAM. The Chip that we want to
load next with FORTHROM is readily located at H_0x30000 now.
10.4 Loading Chip_1 with the FORTHROM Image
This stepputs the FORTHROM image intoChip_1 and redefines Chip_1to SCROM to make it
write protected. Note that your FORTHROM.DMP file may be only 32 KB, but SERTORAM
expects 64 KB of data. Therefore, cancel the transmission by pressing [ON] twice when the
data transfer has ceased, i.e., the host has stopped sending further data, but SERTORAM is
still waiting for input.
1. Run SERTORAM, and upload FORTHROM.DMP to your HP-71B.
DO NOT SWITCH YOUR HP-71B OFF NOW!
2. Re-declare Chip_1 to SC ROM: POKE"2C000", "93 D4". (or, POKE"2C002","D4")
(Ifyou are following the configuration steps for a -1024, POKE "2C000","B3 F4".)
3. Power-cycle your HP-71B.
4. [MEM] must display 2 x 32 KB + 16 KB àapprox. 80 KB.
This finishes the installation of the FORTH module on your FRAM71B. However, do NOT run
the FORTH system at this time; let's finish the installation of the MATHROM first. Chip_1 is
now defined as SC ROM (as opposed to HC ROM), and as such it will show up in SHOWPORT.
It also has been moved to a higher H-address, which now automatically shifts Chip_2 into
our preferred target range H_0x30000.
10.5 Loading Chip_2 with the MATHROM Image
This step puts the final touch to your FRAM71B configuration by loading the MATHROM into
Chip_2 and then re-defining Chip_2 to SC ROM. Again, we are utilizing the HP-71B's ability to
relocate the lowest 32 KB RAM module to H_0x30000, so we can use SERTORAM without
altering theaddress ranges.
1. Run SERTORAM, and upload MATHROM.DMP to your HP-71B.

FRAM71B User’s Manual
FRAM71B 1.00 - 19 - ©Hans Brueggemann, 2016
2. DO NOT SWITCH YOUR HP-71B OFF NOW!
3. Re-declare Chip_2 to SC ROM: POKE"2C000", "93 D4 D5". (or, POKE"2C004","D5")
(If you are following the configuration steps for a -1024, POKE "2C000","B3 F4 F5". You can now remove the
WRITE ENABLE jumper from the memory extender board.)
4. Power-cycle your HP-71B.
5. [MEM] must display 1 x 32 KB + 16 KB àapprox. 48 KB.
Finally, on for some testing of the configuration:
v[VER$] [END LINE] shows "HP-71:xxxxx HP-IL:xx FTH:1A EDT:1A KBD:B MATH:1A".
vFORTH [ENDLINE] shows "HP-71 FORTH 1A".
o2 [SPACE] DUP [SPACE] * [SPACE] [.] [END LINE] gives "4 OK {0}".
oLeave FORTH by typing BYE [END LINE].
vSINH(0) [END LINE] gives "0".
That's it! Enjoy your "new" HP-71B!

FRAM71B User’s Manual
FRAM71B 1.00 - 20 - ©Hans Brueggemann, 2016
11UsingtheSYSRAMFeature
The SYSRAM feature allows you to switch between the HP-71B’s operating system in
SYSROM and code that is located in SYSRAM. The following preparation steps are required:
1. Install the desired Operating System in SYSRAM area.
2. Install a modified 4KB RAM module to access the OD signal into Port #1. See chapter
11.2 for instructions on how to modify the module. Soldering skills are required.
1. Set jumpers according to the following table:
Method
Select SYSROM
Select SYSRAM
"Modified Module”
: Jumper installed, : Jumper removed, : Don’t care
Table 3: Jumper Settings for SYSRAM / SYSROM Select
11.1 Some Precautions
vWhile using the SYSRAM feature, another peripheral that uses OD must not be plugged
into the HP-71B at the same time.
For example, prior to plugging in the Diagnostic Module, you must "Select SYSROM” accord-
ing to the above table to allow the Diagnostic Module to take overthe system.
PORT
#
1
Modul
e
Module
PORT #1
Table of contents
Other HP Calculator manuals