60
edits
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 | 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 == | ||
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 | ||
( | (both side inclusive) | ||
!Address Start (hex) | !Address Start (hex) | ||
!Address End (hex) | !Address End (hex) | ||
Line 51: | Line 51: | ||
|- | |- | ||
|00000 | |00000 | ||
| | |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 | ||
| | |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 | ||
| | |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 | |||
|} | |} |
edits