HP-71B Mem Configuration



#6

I have a couple of 71Bs that have 128K RAM module in the card reader slot and four 64K RAM in the front ports.

When I power it up, I get WRN: Configuration warning. I thought the 71B could take 512K RAM.

If I remove 1 64K RAM, I don't get the error and still have 336K RAM and no error. Seems like a strange boundary.

If I replace 1 of the 65K RAM with the FORTH ROM, I still get the WRN: Configuration.

Is this WRN: something that can cause a problem? I mean even after I get the warning, I still have 410,106 when I execute MEM.

What is the proper configuration setting to use all of this RAM together and not get the warning?

Thanks,


#7

I have found the answer to one of my questions. When I have 4 RAM Modules plus the 128K RAM, and I get the WRN: Configuration warning, the HP-IL stops working.

Tested this on two machines. Both the same.

Still need the answer to the configuration issue?

Related:
What is the maximum, RAM configured as internal? External?
What is the actual maximum RAM total and still have HP-IL and ROMs work correctly?

#8

Hi Mike

Sorry, I didn't answer your email til now. I'll tray to answer this question (why can't I copy the FORTHROM) here too.

Your HP71 has an overall address Space of 512Kbytes (1Mnibble) RAM+ROM.

1st of all you have a 64kByte ROM Block, which is non-movable.

Seems, I should describe "movable memory" first.

The 71B supports so-called "Soft-configuration". This is a technique similar to "Plug and Play" on a PC with the exception, that "Soft-conf" works in any case :-)

There are some special memory locations in every memory chip of a 71B. These nibbles are read on Power-up using some so-called Bus-commands (I won't explain that here, it's too complicated for this post, but I could do that in another post).
The contents of these nibbles are mainly the type and size of this memory chip.

On power up the OS builds a list of memory chips (or memory-mapped devices) and their size and assigns physical addresses to them. Yes, the memory chip doesn't have an address automatically, it's assigned by the OS similar to the PCs P&P system.

Some memory chips have fixed addresses, so they can't be moved around in Memory, these are "unmovable chips". The only unmovable memory locations are:

System ROM 64kBytes
System ROM (1.5kBytes - display driver, scratchpad RAM, ...)
The optional Forth/Assembler or the optional HP41 translator Module (32kBytes)

The 16KBytes internal RAM is movable in memory, only the 1.5k system memory is unmovable. There's also 32kBytes memory space reserved for Memory mapped I/O, some Bytes of the HPIL mailbox (the memory locations for communicating with the IL chip) are located in this space.

I'll try to draw a memory map (like it could be), but I'm doing this without any papers abt the subject here, so I could easily go wrong. Let's hope, I don't fail.
I will use addresses in nibbles, not Bytes, that's the natural way, the Saturn CPU counts memory locations. So a 32kBytes Module will occupy 64kNibbles (kN).

+-------------------+ 00000

| Sys ROM 1st 64kN |

+-------------------+ 0FFFF

| Sys ROM 2nd 64kN |

+-------------------+ 1FFFF

| MMIO/SYS RAM, ... |

+-------------------+ 2FFFF

| Port1 RAM 1 (1.0) |

+-------------------+ 3FFFF Front Port 1 64kBytes

| Port1 RAM 1 (1.1) |

+-------------------+ 4FFFF

| Port2 RAM 1 (2.0) |

+-------------------+ 5FFFF Front Port 2 64kBytes

| Port2 RAM 1 (2.1) |

+-------------------+ 6FFFF

| Port3 RAM 1 (3.0) |

+-------------------+ 7FFFF Front Port 3 64kBytes

| Port3 RAM 1 (3.1) |

+-------------------+ 8FFFF

| Port4 RAM 1 (4.0) |

+-------------------+ 9FFFF Front Port 4 64kBytes

| Port4 RAM 1 (4.1) |

+-------------------+ AFFFF

| Port5 RAM 1 (5.0) |

+-------------------+ BFFFF

| Port5 RAM 1 (5.1) |

+-------------------+ CFFFF Card Reader 128kBytes

| Port5 RAM 1 (5.2) |

+-------------------+ DFFFF

| Forth/Assembler | This ROM is fixed

+-------------------+ EFFFF

| Reserved for Conf | Reserved for conf. (unusable)

+-------------------+ FFFFF


The Forth Assembler ROM does always occupy E0000 - EFFFF (32kBytes)


What's not configured here

+-------------------+ xxxxx

| Port5 RAM 3 (5.3) | 32 k RAM

+-------------------+ xxxxx

| Port0 RAM(0.0-0.3)| internal 16k RAM

+-------------------+ xxxxx

| Port0.05 (ILROM)) | 16k HPILROM

+-------------------+ xxxxx

| Port5 RAM 1 (5.2) | 16k FORTHROM (movable part)

+-------------------+ xxxxx


This is just an example, but with 4*64k Front port, a ForthROM, and 128k Crd reader memory, you're far away from the design goals, even, when you remove Forth ROM OR 64k module, you have too much devices in your 71B.

The granularity is rather large, so the system can use all the usable address space, but the algorithm is complicated, so I can't predict the configuration in your computer.

Configuration takes place, when you turn on the 71B and if you pull a module during operation of the machine (ERR:module pulled).

Now you know the reason for the Forth ROM copy protection. You don't have a ROM with fixed address space to copy the hard-coded part into. I'm pretty sure, most 71B users believe, their FORTH ROMs (Assembler and Translator) need only 16k ROM. Here's also the Reason, that you can't use the 41 Translator and the Assembler in the same machine.

Need more details ? Just ask. I might produce a small website, which goes deeper into this case and has better formatting than here in the Forum.

I think I'm an expert in this field, because I built an Interface chip (Xilinx) between the 71B Bus and a normal static RAM together with two friends. This was a commercial project in 1988, but it was my project, so I can tell something about it in public.


#9

You show all the Memory Map used up to FFFFF, with a few things that were not accounted for, as follows:

What's not configured here

+-------------------+ xxxxx

| Port5 RAM 3 (5.3) | 32 k RAM

+-------------------+ xxxxx

| Port0 RAM(0.0-0.3)| internal 16k RAM

+-------------------+ xxxxx

| Port0.05 (ILROM)) | 16k HPILROM

+-------------------+ xxxxx

| Port5 RAM 1 (5.2) | 16k FORTHROM (movable part)

+-------------------+ xxxxx

This amounts to 64K + 16K. Is this how short I am with space?

You also show:
4 RAM Spaces that take 64K each (ports 1-4)
1 Forth Space that takes 64K

But you can't use 4 64K RAM ports (1 to 4) and have a space for the FORTH ROM. So, even though the address space is fixed for the FORTH ROM, doesn't that free up 64K that is movable and can be used by some of the items above that was left out.

If so, does that mean I am only 16K short?

I mean you show Port 4 as:
+-------------------+ 8FFFF

| Port4 RAM 1 (4.0) |

+-------------------+ 9FFFF Front Port 4 64kBytes

| Port4 RAM 1 (4.1) |

+-------------------+ AFFFF

But if I plug the FORTH ROM into port 4, doesn't this free up 90000 to AFFFF for some of the RAM at the top that did not fit into the Memory Map?

It appears that I'm somewhere between 16K and 64K short. IF I pull the HP-IL (16K) I still get the WRN: but if I pull one of the 64K RAM, I don't. Anyway, I guess if I don't get the WRN:, I'm ok, right?


#10

Hi

5 beer and 2 Chivas Regal later, I try to answer..... :-)
Additionally, English is not my mother tongue, so please excuse any typos or other problems with this text. If something isn't understandable, just ask over and over.

Hope, the following text doesn't add up to your confusion...
It's 1:14 a.m. here in Austria.

------------------------------------

You show all the Memory Map used up to FFFFF, with a few things that were not accounted for, as follows:

What's not configured here

+-------------------+ xxxxx

| Port5 RAM 3 (5.3) | 32 k RAM

+-------------------+ xxxxx

| Port0 RAM(0.0-0.3)| internal 16k RAM

+-------------------+ xxxxx

| Port0.05 (ILROM)) | 16k HPILROM

+-------------------+ xxxxx

| Port5 RAM 1 (5.2) | 16k FORTHROM (movable part)

+-------------------+ xxxxx

This amounts to 64K + 16K. Is this how short I am with space?

---------------------------------------------------

Yes, I've shown an address space occupied by 4 RAM modules in the front port and an (imaginary) Forth ROM (32kBytes unmovable + 16kBytes movable) + 128 kBytes Card reader. In theory, you could solder all the 64k modules into the machine and plug 4 additional modules into the front ports (this would be a real overkill).

---------------------------------------------------

You also show: 4 RAM Spaces that take 64K each (ports 1-4) 1 Forth Space that takes 64K

---------------------------------------------------

Yes, that was a small error in the model I used, but anyway, even in my nmodel, you would have to remove a ForthROM and a 64k module to free enough space. The CONFIG routine in the 71B ROM is some pages long and not easy to understand without all the theory. I try to explain the mechanism anyway.

----------------------------------------------------


But you can't use 4 64K RAM ports (1 to 4) and have a space for the FORTH ROM. So, even though the address space is fixed for the FORTH ROM, doesn't that free up 64K that is movable and can
be used by some of the items above that was left out.

----------------------------------------------------

No, the uppermost 32kBytes (F0000-FFFFF) are always reserved, like the 32 k from 20000-2FFFF) and a ROM space of 64k (00000 - 1FFFF)

If so, does that mean I am only 16K short?

I mean you show Port 4 as:

+-------------------+ 8FFFF

| Port4 RAM 1 (4.0) |

+-------------------+ 9FFFF Front Port 4 64kBytes

| Port4 RAM 1 (4.1) |

+-------------------+ AFFFF

But if I plug the FORTH ROM into port 4, doesn't this free up 90000 to AFFFF for some of the RAM at the top that did not fit into the Memory Map?

---------------------------------------------------

In my model you had a 64k module too much, which occupied a port too much.
If you remove this and have

3 * 64k RAM (Ports 1-3)

+ 32 k ROM (Forth, Port 4 unmovable) + 16k ROM(Forth, movable)

+ 16 k (IL)

+ 128k (Crd reader) +

128 k system (ROM + reservedRAM )

+ 16 k internal RAM


you're only 16kBytes short. It depends on luck, if this is the 4 internal 4k RAMs (fortunate case) or the 16k HPILROM (unfortunate case). I'd believe, the smaller 4k parts are falling out of configuration, but I'd have to study the Internal Design Specifications to verify that.
My feelings about such things are normally 99% right, so I would believe my opinion in first approximation.

-------------------------------------------------------

It appears that I'm somewhere between 16K and 64K short. IF I pull the HP-IL (16K) I still get the WRN:

-------------------------------------------------------

I'm not sure yet, what happens, when the available space is filled up exactly, but I am sure, that 128 kBytes of address space are reserved for system purposes.

Cited from the HP71B HP Journal: "1 Meganibble is easy to use up."

Look at the 48 series. There's a serious amount of Bank switching, though there's plenty of space (theoretically).

--

Oh, what would I give for the possibility of working on the Saturn's successor....
I'd do everything for the chance working on a new generation of HP calculator processors.
I'd have some ideas, that would kick TI's 68000 clone in the ass...

-------------------------------------------------------

but if I pull one of the 64K RAM, I don't. Anyway, I guess if I don't get the WRN:, I'm ok,
right?

----------------------------------

That's true. If you don't get the warning, you won't experience any troubles with failing modules, lost ROMs, ...


--
One additional problem in calculation of address space is, that this calculation is only valid, when you have no RAM ports assigned. RAM ports are moved into the upper region of the address space to guarantee a continously :MAIN address space (which begins at 30000).

Hope I didn't add too much confusion with this explainations. I'm glad to answer such a technical theme here in the forum.

I believe, there are other great guys too, who seem to have understanding of the 71s architecture.

In fact I mean Tony Duell, who has surely read and understood the articles about that stuff and our friends of PPC Paris, who were great 71B wizards.

Anyway, I'm always ready to help, when there's a 71B question. I'm not sure, if I have enough expertise for talking obout other machines, but if I'm good enough, I try...


Possibly Related Threads...
Thread Author Replies Views Last Post
  Reasonable price for a 41C, Quad Mem, Time, Navigation and Card reader module? Eelco Rouw 10 3,031 12-12-2013, 01:52 AM
Last Post: Eelco Rouw
  Why I like the blank overlay option for the 41C, CV, CX & CL and my 41CL final configuration Geoff Quickfall 1 704 06-18-2011, 03:18 AM
Last Post: Geoff Quickfall
  New update for Clonix, NoV's and configuration utility. Diego Diaz 6 1,431 04-05-2011, 03:39 PM
Last Post: Diego Diaz
  HP-IL 71B to 71B via HPIL Geoff Quickfall 11 1,974 12-01-2010, 06:55 PM
Last Post: Michael Meyer
  HP-41 2*X-MEM emulation for NoV-64 & Clonix-D Diego Diaz 6 1,396 05-21-2010, 06:07 PM
Last Post: Geir Isene
  Double MEM module Daniel Diggelmann 9 1,645 11-11-2008, 06:32 AM
Last Post: Daniel Diggelmann
  Windows configuration for the Clonix & NoV's Diego Diaz 1 630 09-14-2008, 09:14 PM
Last Post: Egan Ford
  MLDL2000 + HEPAX Correct Configuration Jeff Davis 5 1,264 04-05-2008, 05:03 PM
Last Post: Jeff Davis
  HHP 96k module configuration (HP-71B) J-F Garnier 1 674 03-06-2008, 03:54 PM
Last Post: Etienne Victoria
  HP-20S and MEM command Antonio Maschio (Italy) 2 839 12-21-2007, 01:58 AM
Last Post: Antonio Maschio (Italy)

Forum Jump: