HP 42S: Difference between revisions

1,120 bytes added ,  12:29, 3 February 2022
m
no edit summary
mNo edit summary
mNo edit summary
Line 11: Line 11:
There are three major revisions of HP 42s: A, B and C respectively. Revision A and B have a plastic pane in front of the LCD whereas revision C has a recessed LCD display. Revision C is the most commonly seen variant today.  
There are three major revisions of HP 42s: A, B and C respectively. Revision A and B have a plastic pane in front of the LCD whereas revision C has a recessed LCD display. Revision C is the most commonly seen variant today.  


HP 42s used a silicon-on-sapphire [[HP Saturn|Saturn]] architecture chip code-named "Lewis" with 64K of integral ROM and a RAM controller capable of addressing up to 64KB of memory, driving a 131x16 dot matrix display. 8KB of SRAM is soldered on board and roughly 7000 Bytes are available to the user as program steps or registers.  
HP 42s used a silicon-on-sapphire [[HP Saturn|Saturn]] architecture chip code-named "Lewis" with 64KB of integral ROM and a RAM controller capable of addressing up to 32KB of memory, driving a 131x16 dot matrix display. 8KB of SRAM is soldered on board and roughly 7000 Bytes are available to the user as program steps or registers.  


Internally, the HP 42s is extremely similar to both the [[HP 17B|HP 17B & BII]], and [[HP 27S]], with the exception of the lack of an extended ROM chip which on the 17 series contained international language & error message and on the HP 27S contained additional instructions. On the HP 42s, this position remains unsoldered. However, the instruction to jump to this memory location is still retained.
Internally, the HP 42s is extremely similar to both the [[HP 17B|HP 17B & BII]], and [[HP 27S]], with the exception of the lack of an extended ROM chip which on the 17 series contained international language & error message and on the HP 27S contained additional instructions. On the HP 42s, this position remains unsoldered. However, the instruction to jump to this memory location is still retained.
Line 41: Line 41:


== Memory Layout ==
== Memory Layout ==
Due to having its ROM dumped and emulators developed (and many exploration prior) the memory layout of the HP-42s is generally well know:
In the process of having its [https://www.finseth.com/hpdata/hp42s.php ROM dumped] and [https://www.hpmuseum.org/cgi-sys/cgiwrap/hpmuseum/articles.cgi?read=266 emulators developed] (and many exploration prior) the memory layout of the HP-42s is generally well know:
{| class="wikitable"
{| class="wikitable"
|+Memory Layout of HP-42s  
|+Memory Layout of HP-42s  
(left inclusive right exclusive)
(both side inclusive)
!Address Start (hex)
!Address Start (hex)
!Address End (hex)
!Address End (hex)
Line 51: Line 51:
|-
|-
|00000
|00000
|20000
|1FFFF
|ROM
|ROM
|Executing from 00000 is the only way to exit the debugger without using a reset.
|Executing from 00000 is the only way to exit the debugger without using a reset.
Line 57: Line 57:
|-
|-
|40000
|40000
|4020C
|4020B
|Display
|Display
|Column 0, 66, 1, 67 ........ 64, 130, 65 with 4 nybbles per column for 16 pixels per column, 131 columns in total.  
|Column 0, 66, 1, 67 ........ 64, 130, 65 with 4 nybbles per column for 16 pixels per column, 131 columns in total.  
|-
|-
|40210
|40210
|4024D
|4024C
|Annunciators
|Annunciators
|Each word contains five nybbles that is either 00000 (off) or FFFFF (on).
|Each word contains five nybbles that is either 00000 (off) or FFFFF (on).
Line 68: Line 68:


from 40218 to 4024D each word controls multirow, shift, printing, busy, battery low, G and RAD (together forming GRAD) annunciators respectively.  
from 40218 to 4024D each word controls multirow, shift, printing, busy, battery low, G and RAD (together forming GRAD) annunciators respectively.  
|-
|40300
|4030F
|I/O registers
|Analogous to HP-28C, function unclear as there is no external I/O for HP-42s. Hardware CRC at 40304.
|-
|403F8
|403FF
|Clock
|8 nibbles, counts down at 8192 ticks per second
|-
|50000
|5FFFF
|RAM
|by default 8K repeated 4 times, however a single 32KB 28-pin 300mil SOIC SRAM chip could be soldered and correctly recognized.
|-
|50082
|50083
|Last key
|One-byte code, see below
|-
|50084
|50085
|Keyboard pointers
|Head and tail respectively.
|-
|50086
|500A5
|Keyboard buffer
|Circular 16 bytes buffer, using one-byte code, order from left to right & top to bottom, same as GETKEY, ENTER counts as one key.
Shifted keys are represented by adding 37 to its keycode.
|-
|500B8
|500DF
|Pointers
|Three five nybbles pointers to top of stack, to program END, to REGS variables and then rest of variables list respectively.
|-
|503F6
|503F7
|Alpha length
|Length of the string stored in ALPHA register
|-
|502F8/
503F8
|5044F/
5044B
|Alpha register
|May be version dependent
|}
|}
60

edits