Private ROM on HP-41, some observations (long)



#7

Here is some information about PRIVATE ROM for HP-41 that I
gathered mostly by deduction and information from SDSII manual.

HP made it possible for people putting their programs in ROM
images to make them PRIVATE. It is assumed that you are using
SDSII kit to create your ROM images. Chapters 7 and 8 of SDSII manual
contain some guidence but no detailed explanation since the whole
process is rather automatic.

In your ROM define file the line that defines ROM number,
header etc. can contain PRIVATE command:

&ROM#=17,HEADER=MYROMNAME.1A,PRIVATE

This will change some bits and add some level 0 code to the ROM
image automaticaly by BUILD utility.

I have built two identical ROM images (from Geometry solutions book)
and comaped them. Here are the differences:

ROM FAT:

C000 011 XROM NO.=17
C001 00B 11 FUNCTIONS
C002 000 FCT:GEOMETRY 1A
C003 025 ADR: C025
C004 200 FCT:`TANGENT
C005 028 ADR: C028
C006 201 FCT:`DIST
C007 020 ADR: C120
...

1) 1st word before program entry point has bit 9 set if PRIVATE :

Non-PRIVATE PRIVATE
----------------- -----------------
... ...
C027 210 PLDI: 84 C027 310 PLDI: C4
C028 1C4 PLDI: 71 C028 1C4 PLDI: 71
C029 001 PLDI: 00 C029 001 PLDI: 00
... ...

2) Last word of the program has bit 8 set if PRIVATE:

Non-PRIVATE PRIVATE
----------------- -----------------
... ...
C11D 22F JC C0E2 -3B C11D 26F JC C0EA -33
C11E 01C PT= 3 C11E 01C PT= 3
C11F 250 LD@PT- 9 C11F 350 LD@PT- D
C120 1CA A=A-C PT<- C120 1CA A=A-C PT<-
... ...

3) After all the programs the following 13 words are added if PRIVATE :

Non-PRIVATE PRIVATE
----------------- -----------------
... ...
C7E1 01B JNC C7E4 +03 C7E1 01B JNC C7E4 +03
C7E2 22F JC C7A7 -3B C7E2 26F JC C7AF -33
C7E3 000 NOP C7E3 0CC ?FSET 10
C7E4 000 NOP C7E4 05B JNC C7EF +0B
C7E5 000 NOP C7E5 34C ?FSET 12
C7E6 000 NOP C7E6 04F JC C7EF +09
C7E7 000 NOP C7E7 10E A=C ALL
C7E8 000 NOP C7E8 338 READ 12(b)
C7E9 000 NOP C7E9 1BC RCR 11
C7EA 000 NOP C7EA 0AE A<>C ALL
C7EB 000 NOP C7EB 15C PT= 6
C7EC 000 NOP C7EC 362 ?AC @PT
C7ED 000 NOP C7ED 017 JC C7EF +02
C7EE 000 NOP C7EE 348 SETF 12
C7EF 000 NOP C7EF 1E0 GOTO ADR
... ...

4) At the end of the listing at address (CFB2-CFF3, CFF8) a code (microcode table?)
is included about which I have no knowledge or any information from SDSII manual.
However, if you are not worried about polling points and have no MCODE routines
just FOCAL programs I assume that it is safe to zero out all that to the CFFB.
If somebody knows something more about this, please correct me.

1234


#8

Another point :
Before Clonix41, I was only using SDS-II.
I was loading programs(read41p), creating my own ROMs (build),
dumping the others (readmldl), creating EPROM sets (highlow, eprom).
The most important thing that rom images (*.41R) had the same size as Clonix41 images (*.ROM),
i.e. 8192 bytes.
Under DOS command window, I RENAMEd rom_image.41R rom_image.ROM
And it worked in a Clonix41. It's magical, isn't it?

12345

Edited: 12 Nov 2004, 2:35 a.m.

#9

Hi Miki!

Tnx U a lot 4 sharing your observations. I never used SDS-II, only ZEN-ROM and RAM-Box from W&W. May be I find an hour this WE to have a closer look (after I did reply some postponed eMails - sorry Tony).

Ciao.....Mike


#10

Hi Mike,

why use SDSII, when you can use SDK41 from TOS ?

It's easy to use.

Regards,

Raymond


#11

Hi Raymond,

You are right to say that SDK41 is much easier to use and more powerful but there are some bugs in D41, A41... Try it yourself, disassemble a ROM (I used Sandbox) and assemble it again and there will be some differences. Some macro commands are different, I let Warren know about it but I guess he has no time or interest to debug it.

1234

#12

Hi Raymond!

Thank you 4 your hint, but I like to see what code SDS-II put in in addition if you "private" user code in ROM. Just curious if it's something useful.

Ciao.....Mike


Possibly Related Threads...
Thread Author Replies Views Last Post
  HP-41(CL): The easiest way to transfer FOCAL programs from a Linux PC to the HP-41 Geir Isene 13 1,932 12-05-2013, 02:40 AM
Last Post: Hans Brueggemann
  HP Prime: Long integers (continued) Helge Gabert 2 510 11-07-2013, 11:24 AM
Last Post: Helge Gabert
  HP Prime: Pass "Long" Integers to a Program Helge Gabert 6 888 11-03-2013, 01:12 PM
Last Post: Helge Gabert
  HP Prime polynomial long division bluesun08 13 1,296 10-30-2013, 03:29 AM
Last Post: parisse
  HP85 Programmable ROM cardtridge 82929A-service ROM not working- inaki 2 607 04-25-2013, 08:08 AM
Last Post: inaki
  HP71B to HP 41 Translator ROM Manual Michael Lopez 5 749 04-25-2013, 03:51 AM
Last Post: Mike (Stgt)
  A very long HP-17BII equation Gerson W. Barbosa 22 2,066 04-19-2013, 12:37 AM
Last Post: Gerson W. Barbosa
  A long WP-34S night Siegfried (Austria) 10 1,137 04-16-2013, 02:11 AM
Last Post: Siegfried (Austria)
  HP-25 left on for a long, long, while Matt Agajanian 12 1,183 04-10-2013, 11:33 PM
Last Post: Steve Leibson
  HP-41 ROM Polling Point at FF5 Dan Grelinger 2 450 01-11-2013, 06:00 PM
Last Post: Monte Dalrymple

Forum Jump: