Post Reply 
HP-15C: Fixing the CHS and Stack Lift Bug
01-15-2023, 11:53 AM
Post: #34
RE: HP-15C: Fixing the CHS and Stack Lift Bug
(01-14-2023 03:56 PM)EdS2 Wrote:  (Some fraction of missing posts can be found at the Internet Archive, for example here and here.)

From this link I quote:
Quote:
(12-28-2015 11:14 PM)Thomas Klemm Wrote:  Maybe you can point me to the addresses?

In the ROM of HP16C there is a table starting @0400x. Here the first six lines of it:
Code:
0400 3BF Data  959 - DSZ ref. 0FBF
0401 2C3 Data  707 - ??
0402 3BE Data  958 - ISZ ref. 0FBE
0403 2C4 Data  708 - ??
0404 155 Data  341 - SQRT ref. 0D55
0405 0C5 Data  197 - ??
With the first line the address is computed where to jump for the function in question, the second line I quess it could be for the display in PRGM mode. There are Voyagers which use the second line only in PRGM mode. The table is only for functions without modifiers (STO n, RCL n, FIX n etc. I am still investigating) In other Voyagers the table could be located somewhere else. (The sequence of the related functions is according the program codepoint.)

An other table is at 03E0:
Code:
03E0 1BC Data  444 - 0
03E1 088 Data  136 - 1
03E2 1E4 Data  484 - 2
03E3 1E8 Data  488 - 3
03E4 0D8 Data  216 - 4
03E5 178 Data  376 - 5
03E6 17C Data  380 - 6
03E7 0A8 Data  168 - 7
03E8 1FC Data  508 - 8
03E9 1F8 Data  504 - 9
03EA 044 Data   68 - r
03EB 040 Data   64 - Blank?
03EC 14C Data  332 - o
03ED 0F4 Data  244 - P
03EE 174 Data  372 - E
to build readouts like 'Pr Error', digits and younameit.

An other table starts at 0010x, here few lines:
Code:
0010 308 Data  776  ** key 21, reference
0011 166 Data  358  ** key 31, ref.
0012 14A Data  330  ** key 10, ref.
0013 0EE Data  238  ** key 11, ref.
0014 14C Data  332  ** key 30, ref.
0015 14D Data  333  ** key 40, ref.

It lists where every key hit goes for execution, key 31 (R/S on the HP16C - ah - on all Voyagers) will continue at 0166x, etc. Analogous to the discontinuous keycodes the list is somewhat sliced, last entry at 00C8, and interspersed with code.
In addition there is a list in which sequence you ought hit the keys to pass the keybord test.

If you find more, pls tell me - or here at best. Smile

Ciao.....Mike

These are the corresponding sections from the romdump of 16c.obj:
Code:
 02000: 1677 ?c  goto 01767
 02001: 1303 ?nc goto 01731
 02002: 1676 b sr    s
 02003: 1304 s=0 13
 02004: 0525 ?c  call 30525
 02005: 0305 ?nc call 67461

Code:
 01740: 0674 ? rcr 11
 01741: 0210 s=1 5
 01742: 0744 selprf 7
 01743: 0750 wrreg 7
 01744: 0330 c<>g
 01745: 0570 rdreg 5
 01746: 0574 ? rcr 6
 01747: 0250 wrreg 2
 01750: 0774 ? rcr -1
 01751: 0770 rdreg 7
 01752: 0104 s=0 4
 01753: 0100 wrrom
 01754: 0514 ? s=0 6
 01755: 0364 ??? 3
 01756: 0564 ??? 5

Code:
 00020: 1410 s=1 1
 00021: 0546 a=a+1   x
 00022: 0512 a=a+c   wp
 00023: 0356 bc ex   w
 00024: 0514 ? s=0 6
 00025: 0515 ?nc goto 50523

Quote:The ROM contains some tables/lists, decoding them will not make too much sense, IMHO.

As we can see the romdump decodes these sections as code and not as data.
Find all posts by this user
Quote this message in a reply
Post Reply 


Messages In This Thread
RE: HP-15C: Fixing the CHS and Stack Lift Bug - Thomas Klemm - 01-15-2023 11:53 AM



User(s) browsing this thread: 2 Guest(s)