HP Forums
HP-42X memory requirements, demo version, etc. - Printable Version

+- HP Forums (https://archived.hpcalc.org/museumforum)
+-- Forum: HP Museum Forums (https://archived.hpcalc.org/museumforum/forum-1.html)
+--- Forum: Old HP Forum Archives (https://archived.hpcalc.org/museumforum/forum-2.html)
+--- Thread: HP-42X memory requirements, demo version, etc. (/thread-21616.html)

HP-42X memory requirements, demo version, etc. - HrastProgrammer - 09-05-2002

OK, this is the final (and last) explanation regarding memory requirements ...

First of all, I wrote emulators according to my needs and wishes. I own 3 equally equipped HP-48GXs (each with one 128K and one 2048K memory card), one HP-48G expanded to 1280K and one HP-49G. So I decided that HP-42X will have 96K of memory and it will have 96K of memory. I decided that it will have port memory and it will have port memory. I won't give up ...

Second, I must say that emulating an HP-42S on HP-48/49 isn't a trivial task. The Saturn is not a Pentium. To achieve speed and reliability some things must be sacrified. I decided to sacrify the memory - if I had to choose between speed and memory requirements, I will choose speed. I think that everyone can afford a memory card and I don't see any problem about this.

Memory requirements for HP-42X are as follows:

#00000..1FFFF: Original HP-42 ROM (64K)
#20000..3FFFF: Emulator ROM (64K)
#40000..403FF: Display and I/O (0.5K)
#40400..4FFFF: Port memory and emulator RAM (31.5K)
#50000..7FFFF: HP-42 RAM (96K)
Emulator RAM can be extended to #BFFFF (224K) on HP-48GX and #FFFFF (352K) on HP-49G, if needed (by destroying the contents of main RAM).

The problem is how to map some parts of HP-48/49 memory to match those addresses. I don't want to explain technical details here because they can be found in the literature covering Saturn assembly programming but it is important to know that 128K "devices" like RAM and 128K memory cards can be maped only on 128K boundaries. 32K cards can be mapped on 32K boundaries but they are difficult to find these days so I haven't considered using them.

So, the only way is to map Port1 to #00000..3FFFF and Port2 to #40000..#7FFFF on HP-48GX (or vice versa). On the HP-49G, Port1(Bank1) can be mapped to #00000..3FFFF and Port1(Bank2) to #40000..#7FFFF (or vice versa). In this case you will have 96K of HP-42 memory, 31K of port memory and the whole HP-48/49 RAM left for other applications.

The same case is with HP-48SX equipped with two 128K RAM cards (I have a HP-42X for HP-48SX, too).

However, I wrote a HP-48GX (or HP-48G/G+ expanded to 256K) version which will require only one (unmerged) 128K RAM card for HP-42/Emulator ROM. The main RAM is used as a HP-42/Port/Emulator memory giving a 96K HP-42 RAM and 16K of port memory. About 12K is left for other purposes. This is all I can do regarding the HP-48GX with just one cards. If you need more memory for "other applications" than you cannot use HP-42X.

The emulator is finished. Now I had to implement SAVE/LOAD commands for saving/loading HP-42 programs to/from HP-48/49 and SAVEP/LOADP/CAT/PURGE command for managing port memory. I expect this will be finished during september (I had other work to do).

The demo for HP-48/49 is finished, too, but I have to write some installation instructions. It won't be available for download from my homepage but it can be sent on request. So, if you want to have a demo send a mail to me and ask for it - I will send it as soon as I write installation instructions. Demo version requires only one 128K RAM card on HP-48GX but it destroyes some parts of main RAM so it is not suitable to run on the real calculator - running on Emu48 is recommended if you don't want to loose some data or the whole memory. You have been warned ...