HP Forums

Full Version: Pioneer memory upgrade
You're currently viewing a stripped down version of our content. View the full version with proper formatting.

Hi all,

I'm thinking in do an memory upgrade on my good old HP-42S, got the chip (several, to test one good), and an "victim" to try first: one HP-17BII, very "used" that I have.

I managed to replace the 8K SRAM chip (Nec D4464G-15L) and the jumpers, and powered on the thing. It showed only 6752 bytes free... Then I went to the memory debugger, and tested several memory positions. I found that the 32KB was there! Is there any way to access this extra memory on the HP-17BII?

Anyway, I have another identical chip (Fujitsu HM62256LFP-8T) and I will put it in the 42S.

Wish me luck!

Best regards,

Nelson

I to did a 17Bii for practice. And no, it will not recognise the extra RAM. Perhaps if you could the 17B to recognise the extra RAM, but that doesn't seem possible.

I wish you luck! Remember I asked in this forum some time ago what chip to use, as I too have a HP-42S that I had to open anyway for repair, so I could upgrade it? Well, if you succeed, I'm gonna get one of these chips and try the same.

Where do you get the chips from?

Cheers, Victor

The HP42S is the only calculator from the High End Pioneer series which can use the complete memory of a 32KB RAM chip. The HP17B, HP17BII and HP27S can't.

This is a restriction of the internal firmware and not a restriction of the hardware. The hardware is always mapping 32KB at #50000. You can verify this by using the internal memory scanner. A 8K RAM is located at #50000 and mirrored 3 times at #54000, #5800, #5C000.

Regards

Christoph

It worked well! I used the Fujitsu HM62256LFP-8T 32x8K SRAM, low power, "stolen" from a defective old hard disk... (I replaced the original 8KB chip in my HP-17BII, just to keep it original)

My 42S is now with 32KB, and the idle battery current (power off) that was 7.8uA with the old SRAM chip, but now is.... 7.8uA!!!

I was inspired today, I just finished a very delicated modification on my PC-1260's memory module: I replaced the two 6116 2K SRAM chips with only one 62256 32K SRAM, altered the logic of the chip select (using only half of the chip, 16K) and ... I now have a 16KB Sharp PC-1260!!! It only shows 10KB in the BASIC, but my calculations where right, the "memory gaps" in the original memory is now filled with RAM, more 6KB!

I will publish my modifications of the PC-1260 soon, as long with my discoveries about it.

Best regards,

Nelson

I'm thinking of another "crazyness" about the 42S: I'll try to use the empty space (used with the second ROM in the 17BII) to put *another* SRAM chip, rewire some signals, and try to enable more RAM.

I don't think that it will recognize all 64KB RAM, but I plan to place in it some programs in MCode. I don't know where the 2nd ROM of the 17BII starts, and how it is initialized (to hook my own code there).

Of course I will enter the code manually with the debugger... A lot of work to do! I'll start only with the hardware...

Any volunteers to create some MCode to test it???

Best regards,

Nelson

Since there are many differences between Nut(41) and Saturn(42) architecture, I wonder if MCode programs could be ported directly. While I dont't have any knowledge about MCode, I suspect that compatibilty will not be easy...

By MCode I mean "Machine Code". I know that the machine code of the Saturn CPU is different of the Nut CPU. What I need is anyone that knows the mcode of the Saturn, and the ROM entry point...

Best regards,

Nelson

Look at HP-42S: New Facts for info on where a second ROM would start and how to jump there. I wonder if a RAM in this place will also be powered while the machine is off...

As for machine code, the Pioneers are Saturn machines based on RPL, so M-Code will not work, but either Saturn Assembler or SysRPL will.

This is interesting. If only this slot could be used to incorporate some *real* I/O... Would make SysRPL or machine language development a lot easier if you wouldn't have to key in everything again after an inevitable memory loss.

Cheers, Victor

Quote:
If only this slot could be used to incorporate some *real* I/O

There's no reason why it can't. For instance, you should be able to wire up a UART with appropriate decode. I haven't looked at how the firmware's memory sizing works, so if they only support powers of two you might have to lose half of the RAM capacity. But you could map in a little bit of EPROM containing your I/O firmware as well.

That would be fun to do if I didn't already have far too many time sinks.

What you mention about time sinks is only too true... I like the expression, though.

I'm not an engineer, unfortunately, and I don't have the skills required to incorporate additional hard- or firmware or an I/O port into the 42S. I'd be happy to play around if something like a Clonix-42 would exist.

I've tried my own skills, but being a physician, I've not been able to to much more than a little surgery, i.e. resoldering the RAM chip so the calc will work again.

Cheers, Victor

The 17B and BII uses the second socket for localization purposes. The international version has the 5 languages there. That's what the firmware looks for

Kim

I'm thinking that it is possible to do some "upgrades" to the 42S. There is a 64KBytes usable space ($20000 to &3FFFFF) available to the extra ROM on the PCB - yes, 64KB! - and we can connect some "module" (microcontroller) in there (wiring some extra PCB on the spare chip pins) with internal ROM FLASH/RAM and USART... The sky is the limit!

Other thing, more easy, is to put directly on the spare chip space another 32KB SRAM chip, and re-do some signals (/WR) to enable it. The pinout of the two chip isn't identical, but the only difference is the *sequence* of address lines and data lines, the other signals are mostly the same. I'll try to put *two* 32K chips with an inverter to the A15 to enable one or another. This can be interesting!! The only problem that I may not close the back of the calculator due to the two chips one on top of the another...

I don't have any refined laboratory to do good PCBs and I haven't any microcontroller in SMD pinout (ex. ATMega128 of Atmel) to try the extension board.

when I create enough courage to sacrifice (again!) my good old 42S I'll try something. I will post here my discoveries.

Best regards,

Nelson

> I'm thinking of another "crazyness" about the 42S: I'll try to use the empty space (used with the second ROM in the 17BII) to put *another* SRAM chip, rewire some signals, and try to enable more RAM.

I'm "Mr. Emulation" ;-) and I'm never opened one of my calculators. So this information hasn't verified on a real machine.

In Erik Ehrlings PDF document "A User's Comments on Two HP-42S Emulators" page 6 you see the PCB area of the two extra chips, left the RAM, right the place for the additional ROM.

The question is, can the right place (32KB ROM for HP17B/17BII international versions) can be assembled with a 32KB static RAM?

IMHO yes, it can. The picture show at least four soldering bridges, two for Pin1 (VCC <-> A14) and two for Pin27 (A14 <-> WE/) and these are the differences in the pin layout of 27C256 Eprom (32KB) and a 62256 RAM (32KB). Because there are bridges for RAM selection, we can assume that the IC is also powered in calculator off state.

The address of this memory module is #20000 with a size of 64KB (a 32KB chip is mirrored).

> Any volunteers to create some MCode to test it???

A good entry for this is the free beta version of the Emu42 v0.10beta1. The beta version can only emulate ROM in the area from #20000-3FFFF, so don't try to make a state file with RAM at this position with the MKE42 tool. This only work with my private full version (please no discussions where it is available, it isn't).

But using ROM in our case it perfect, because this allows us to load the additional ROM code at emulator startup. The beta version has also a integrated assembler debugger.

How to get your code into the emulator? The emulator supports packed and unpacked ROM images, the easiest way in our case is to use a copy of the packed ROM image (64KB file size).

Generate your own ASM/RPL code and append the binary data to the end of your ROM image.

Example: copy /b HP42S.ROM.ORG+MYCODE.BIN HP42S.ROM

with

- HP42S.ROM.ORG

copy of the original unmodified ROM image

- MYCODE.BIN

the code we want to append

- HP42S.ROM

resulting ROM code with the name used in the Emu42 KML script


Start Emu42, create a new state file with "File/New..." and you have your code at #20000. The new state file is necessary to configure the MMU with the additional memory controller.


Some words to "some *real* I/O" posted later in this thread. The LED output pin is in "reality" a input/output pin which can controlled by software. I made a demonstration of this feature with a HP28S (use the same chip) at the Allschwil (Switzerland) meeting 2003, emulating a UART with 2400 baud in both directions over the LED pin. Additional hardware (1x OP, 3x Transistors, ...) is required to adjust the signal levels.

Regards

Christoph

http://privat.swol.de/ChristophGiesselink/

Hi, Christoph

I've discovered this on the hardware of a "sacrificed" HP-17B:

1) The extra ROM pinout supports a 64KB ROM chip
2) Then there are the A0~A15 address lines and D0~D7 data lines
3) The SRAM and ROM pinouts aren't exactly the same, the only difference
is the ordering of some address lines, the extra A15 line and
the absence of the /WR line
4) I *think* that is possible to rewire the /WR from the SRAM chip
to the another chip (I don't tested yet)
5) I also *think* that is possible to use memory mapped I/O on this
address space (32KB to SRAM, 32KB to I/O)
6) Maybe we can build a extra PCB with some microcontroller (Clonix-Like?)
wired on the extra ROM pins, with RAM, FLASH RM, USART, etc

64KB MASK ROM pinout: 32KB SRAM pinout:
A15 1 +-v-+ 28 Vdd A14 1 +-v-+ 28 Vdd
A12 2 | | 27 A14 A12 2 | | 27 /WE
A7 3 | | 26 A13 A7 3 | | 26 A13
A6 4 | | 25 A8 A6 4 | | 25 A8
A5 5 | | 24 A9 A5 5 | | 24 A9
A4 6 | | 23 A11 A4 6 | | 23 A11
A3 7 | | 22 /OE A3 7 | | 22 /OE
A2 8 | | 21 A10 A2 8 | | 21 A10
A1 9 | | 20 /CE A1 9 | | 20 /CE
A0 10 | | 19 D7 A0 10 | | 19 D7
D0 11 | | 18 D6 D0 11 | | 18 D6
D1 12 | | 17 D5 D1 12 | | 17 D5
D2 13 | | 16 D4 D2 13 | | 16 D4
GND 14 +---+ 15 D3 GND 14 +---+ 15 D3

I have a chipless HP-17B PCB, I followed the wiring. The ROM chip has connections for the 32KB or 64KB chip, using jumpers.

I have the Emu42 beta, I may try to use it to develop some tests...

Any other information that I discover I'll post here.

Best regards,

Nelson

I cannot resist... I just put the damn chip there, and rewire the A14 and /WE.... AND IT WORKED!!!!

Now I have a 42S with 32KB RAM plus 32KRAM at $20000~2FFFF!! And the idle current of the battery is only 7.8uA again... These chips from Hitachi (HM62256LFP-8T) are indeed very low power!

I need to learn the Saturn assembler fast, now! :8)

I can mail the scanned picture of the 2 chips in place if someone is interested... Just mail me!

Best regards,

Nelson