The Z80 CPU

The microprocessor is a standard Z80 running in CMOS version for low working and standby power consumption. For Z88, 4MHz and 6MHz capable Z80 CMOS were used : Z84C004PSC or Z84C0006PSC.


 
Z80 CPU Pinout
 

A11
A12
A13
A14
A15
CLK
D4
D3
D5
D6
VCC
D2
D7
D0
D1
/INT
/NMI
/HALT
/MREQ
/IORQ
+--------------+
|1    +--+   40|
|2           39|
|3           38|
|4           37|
|5           36|
|6           35|
|7           34|
|8           33|
|9           32|
|10  Z84C00  31|
|11   CPU    30|
|12          29|
|13          28|
|14          27|
|15          26|
|16          25|
|17          24|
|18          23|
|19          22|
|20          21|
+--------------+

A10
A9
A8
A7
A6
A5
A4
A3
A2
A1
A0
GND
/RFSH
/M1
/RST
/BUSRQ
/WAIT
/BUSAK
/WR
/RD
 
 

 

 
Z80 Clocks 
 

Two clocks are driving the Z80. MCK, the master clock and SCK, the standby clock. The MCK (3.2768 MHz) is generated by a 9.8304 Xtal to the Blink and divided by 3, given to the pin 6. The SCK pulses at 25.6 KHz and is active on COMA state.


Interrupts 

There are three pins for dealing with interrupts : 
BUSRQ (Bus Request) : used for DMA (not connected on the Z88) 
NMI (Non Maskable Interrupt) : Jumps to $0066 (Battery failure, card insertion by a SNS low)
INT (Ordinary Interrupt) : used in mode 1 (IM1)

For dealing with the maskable interruptions (INT), the Z80 can be switch in three modes. 
The interrupt mode 0 (IM0) : for 8080 compatibility 
The interrupt mode 1 (IM1) : for non-zilog environment (our case) 
The interrupt mode 2 (IM2) : for zilog environment

On reset, OZ puts the Z80 in IM1. 
If interrupts are enabled every INT signal jumps to $0038. 
These vector routines deals with the serial port, the keyboard, the bleep, the small timer, RTC and alarms.

 

web analytics