The Museum of HP Calculators

HP Articles Forum

[Return to the Index ]
[ Previous | Next ]


HP28C: Hardware I/O basics

Posted by Christoph Giesselink on 20 Jan 2003, 3:30 p.m.

Content:

1. Fundamentals
2. HP28C memory layout
3. MMU initialization sequence
4. Master chip control registers
5. Slave chip control registers (only relevant)
6. Master display driver/timer registers
7. Slave display driver/timer registers
8. Display (used addresses)
9. Annunciators
10. Special considerations to master/slave operation

1. Fundamentals

The HP28C use 5 IC's: 1x Saturn 1LK7 CPU, 2x Centipede 1LP2 chips, 2x 64KB 1LP4 ROM chips.

The Centipede chips work in master/slave configuration.

Each Centipede chip contain

the MMU of each chip control the base address of the 1KB RAM and the base address of the display/timer/register area. Having two Centipede chips the total amount of user RAM is 2KB and enough drivers for a 137x32 pixel display. The display memory is placed in each Centipede chip and is separated from the user memory. Because not all display memory addresses (#40040-#40078) are wired with the display, these addresses are used as normal RAM to save some nibbles in the regular RAM area.

2. HP28C memory layout

The following memory layout is the default configuration after startup. It can be modified by the standard CONFIG/UNCNFG Saturn commands.

#00000 - #3FFFF 128KB ROM
#40000 - #403FF slave  display driver / timer / control registers
#40400 - #407FF master display driver / timer / control registers
#4F000 - #4F7FF slave  1KB RAM
#4F800 - #4FFFF master 1KB RAM

3. MMU initialization sequence

Slave  chip RAM
Slave  chip display / timer / control registers
Master chip RAM
Master chip display / timer / control registers

4. Master chip control registers

#40700 LBI_CTL          LBI control
#40701 CONTRAST         Display contrast control
#40702 DSPMODE          Display mode
#40703 DSPCTL           Display control
#4070A TIMER_CTL        Timer control
#4070B RAMTST           RAM test
#4070C INPORT           RX-LED pin state and service request / type
#4070D LEDOUT           Different modes for LED output

5. Slave chip control registers (only relevant)

#40302 DSPMODE          Display mode
#40303 DSPCTL           Display control
#4030A TIMER_CTL        Timer control

6. Master display driver/timer registers

#40400 - #405DF         Display column bit map of master
#405E0 - #406DF         Display row bit map
#407F8 - #407FF         Timer (32 bit, LSB first)

7. Slave display driver/timer registers

#40078 - #402DF         Display column bit map of slave
#403F8 - #403FF         Timer (32 bit, LSB first)

8. Display (used addresses)

#40078 - #402DF         Left display area
#40400 - #405DF         Right display area

9. Annunciators

#40000 - #40007         Busy
#40008 - #4000F         Alpha
#40010 - #40017         Battery
#40018 - #4001F         Shift
#40020 - #40027         2*Pi
#40028 - #4002F         Halt
#40030 - #40037         Printer
#40038 - #4003F         All Annunciators

The contrast depends on the number of set bits, the more bits are set, the darker the annunciator is getting. The bits have no weight. At about 20 set bits you reach the darkest possible value.

Each bit of an annunciator address is XORed with the corresponding bit of "All Annunciators" to get the final number of set bits.

10. Special considerations to master/slave operation

"Master" mean: Register in master controller
"Slave" mean: Register in slave controller

Timer

The slave timer only run when the master timer is running. So switching off the master timer will also stops the slave timer.

Usage in the HP28C

Master Timer (8192Hz): tick counter
Slave  Timer (8192Hz): cursor blinking

The master timer is normally always running. Master Timer in connection with a 12 nibble value starting at #4F003 in user RAM builds a 1088 year counter (get the value with: # 123E SYSEVAL (1BB ROM) or # 1266 SYSEVAL (1CC ROM)). The slave timer is normally stopped. At input mode with blinking cursor the slave Timer is used to generate the blink frequency.

Christoph Giesselink
c dot giesselink at gmx dot de

Edited: 2 Sept 2003, 4:58 p.m.

Password:

[ Return to the Message Index ]

Go back to the main exhibit hall