ZX97 Micro Computer 

                        Revised Dec 1 , 1997 

                          (c) wilf rigter 

 

The ZX97 is a discrete logic clone of the ZX81. It is functionally 

equivalent and 100% compatible but has numerous enhancements over 

the original ZX81. The all CMOS design draws only 50mA and can 

be easily powered from a small battery. 

The total memory is increased from 9K to a 192K including 32K of 

EPROM and 160K of battery backed up SRAM. A SHADOW RAM feature  

allows users to enhance or replace the ZX81 operating system with 

the ZX80, FORTH or any other OS software. 

The 16 parallel bi-directional I/O lines are connected to an IBM 

compatible printer port (LPT1) and can also be used for high speed 

communication with a PC or for robotics applications. 

Aside from the existing ZX81 screen text and graphics, the ZX97 offers 

a full 128 upper and lowercase text characters and unlimited user defined 

graphics (UDG) And finally, the ZX97 supports both pseudo hires and true 

bitmapped graphics (192x256) programs. Here is a look at the ZX97 Prototype

The ZX97 circuit is described in functional blocks as shown in FIG 1. 

and circuit details are shown in the schematic FIG 2. 

 

CRYSTAL TIMEBASE / MEMORY MAPPER CIRCUIT 

----------------------------------------- 

The circuit in Fig 2A generates the 6.5MHz video clock, the 3.25MHz 

CPU clock and the 15.75KHz horizontal clock. 

The 6.5 MHz crystal clock is divided by 2 with one stage of 74HC74 to 

generate the CPU clock. The 74HC393A dual 4 bit counter together with 

the 74HC11 divides the CPU clock further by 207 to generate the 15.75 KHz 

horizontal frequency. The 74HC08 generates 4.6 us wide HSYNC pulses 

which are gated by the VSYNC and NMI latches before routing to the 

video/sync mixer and the CPU NMI input. The counter is also held reset 

during the VSYNC period to maintain synchronization between the software 

generated VSYNC and the hardware generated HSYNC (in the FAST MODE). 

 

MEMORY MAPPER 

A novel memory decoder using a 74HC251 generates the memory chip select 

signals. ZX97 system memory map is as follows: 0-8K EPROM or SHADOW RAM, 

8-40K system RAM, 40-48K EPROM (extended OS) and 48-64K bank switched 

EPROM/RAM DISK memory. The memory segment 32-40K is used as system RAM or 

can be mapped over the 0-8K area to install and test a modified BASIC 

or other operating system by closing SW1. In that case the 0-8K RAM is 

write protected and the 0-8K EPROM segment is remapped to 32-40K. Note 

that the 74HC251 is enabled with MREQ or RFSH to access the video pattern 

data. The RAMDISK is also enabled by the ROMCS signal but the DISKON signal 

disables the EPROM /OE and enables the RAMDISK CE in the 48-64K area. 

 

ZX97 CPU/SYSTEM MEMORY 

---------------------- 

The ZX97 uses a CMOS Z80A CPU for reduced power consumption. 

Details of the Z80 can be found in the ZILOG literature. 

Fig 2b show the RAM and EPROM chips which are also low power CMOS.  

Parts of the video circuit which address the memory at REFRESH time 

includes the CHR$ latch which generates part of the pattern table 

address from the CHR$ code. The 3 bit LCNTR is incremented with HSYNC 

and generates the pattern table 3 LSB address bits. The CPU I register 

generates the pattern table base address. Additional circuits disable 

the pattern table address circuit when A14 is high for TRUE HIRES programs. 

Loading an odd byte value into the I register enables the expanded pattern 

table offering 128 unique character pattern shapes. 

 

SYSTEM RAM and EPROM 

 

Both system RAM and EPROM are 32K byte CMOS devices. The RAM is battery 

backed up and write protected in the 0-8K segment to avoid corrupting the 

shadow RAM data from spurious writes when switched to the 0-8K segment. 

The EPROM will be changed in a future revision to a 128K byte device 

providing 64K of EPROM DISK and 64K of paged OPERATING SYSTEM code. 

 

ROW COUNTER / CHR$ LATCH 

 

The Sinclair text mode is supported with a pattern table in EPROM at address 

1E00-1FFF. User Defined Graphics (UDG) RAM pattern tables are also supported. 

UDGs are accessed by changing the I register to point to the new pattern 

tables in RAM or EPROM which must be located in 0-16K or 32-48K. One half 

of a 74HC393 dual hex counter is used as a modulo 8 line counter which 

increments every HSYNC pulse and during RFSH time it addresses the 8 lines 

of patterns for each character. The line counter is reset with VSYNC. 

The 74HC374 CHR$ latch is loaded with each DFILE character code and during 

RFSH it is used to address the corresponding pattern table entries. 

Two bits of the 374 and a 74HC125 are used to provide tristate outputs for 

the line counter. 

 

ZX97 RAM / EPROM DISK 

--------------------- 

Fig 2c  shows the simple circuit requirements to provide 128K of RAM DISK. 

The RAM DISK is accessed at 48-64K (C000-FFFF) in 8 pages of 16K each using 

the 8255 Port PB0-2.  PB3 is used with A14-15 to select 8 pages of RAMDISK 

or one page of EPROM disk. PB4 is used for write protection and a manual write 

protect switch is also included. A RAMDOS program is included in EPROM which 

makes it easy to save and load program, variable and binary files. 

 

ZX97 VIDEO LOGIC 

---------------- 

In the Sinclair video system, the CPU is a key element in the display 

circuit. Most other PC's use a separate video controller with video memory 

access multiplexed between the CPU and the video controller. 

In the ZX81/97, the CPU is multitasking between application program 

and display file execution. During video task execution, the Z80 is used 

to sequentially read character codes from the "screen memory" which is a 

segment of system RAM pointed to by the system variable DFILE. 

Then the CPU, together with the line-counter and CHR$ register, generates the 

pointer to the pattern byte which is loaded into the video shift register 

and clocked out as a video bit stream. During true high resolution graphics 

mode, the CPU does all the work, pointing directly to the bit mapped patterns 

in a 6K hires display file which are sequentially loaded into the video 

shift register. For more detailed information, see the ZX81 Video Tutorial. 

 

THE NOP LOGIC 

 

An important element in the video circuit is decoding access to the DFILE. 

When a valid CHR$ code is read from the video display (DFILE) , the NOP LOGIC 

(74HC138) and a 74HC08 AND gate decodes this condition. The NOP LOGIC output 

turns on a 74HC245 buffer to "force" a low level on the CPU data bus thereby 

tricking the Z80 into executing NOPs during DFILE execution. 

 

VIDEO SHIFT REGISTER/VIDEO INVERT LOGIC/VIDEO SYNC MIXER 

 

The NOP LOGIC is used to generate the video shift register load signal 

if a valid CHR$ is read from DFILE. Since this occurs at the end of the 

"forced" NOP, the NOP LOGIC output is saved in the NOP register (74HC74A) 

on the rising edge of RD. The NOP register is clocked into the S/L register 

(74HC74B) on the rising edge of the T1 decoder (74HC08). Feedback to the SET 

input of the NOP register resets the S/L register after a 30 nsec gate delay. 

This generates a 30 ns pulse to load the pattern byte into the video shift 

register. The D7 bit of the CHR$ code is saved in the D7 register (74HC74A) 

on the rising edge of RD and is clocked into the INVERT register (74HC74B) on 

the rising edge of the LOAD PULSE at the same time as the pattern byte is 

loaded into the video shift register. 

The video shift register is loaded with the video pattern data from RAM 

or EPROM, the pixels are clocked out at 6.5 MHz and the pixels are inverted 

with a 74HC86 if the INVERT register bit is set. 

The output from the 74HC86 XOR gate is passed through a 74HC74 video  

synchronizer flip flop eliminating any effects of differential time delays 

between the VIDEO input and the INVERT inputs of the XOR gate.         

The CSYNC signal is connected to the serial input of the shift register to 

produce a black level (back porch) after each sync pulse. 

The video is combined (mixed) with the CSYNC signal to produce a composite 

video signal suitable for connecting to a video monitor or RF modulator. 

 

ZX97 GRAPHICS 

 

New pattern tables in 32-40K RAM can be used to enhance the normal 

Sinclair text mode. A new "extended" Sinclair text mode has been added 

which provides 128 unique character patterns (ie upper and lower case). 

In the ZX97, the video pattern tables are located in both EPROM and RAM 

(unlike the ZX81) providing user definable character (UDG) sets. 

Pattern data is read during RFSH with the I register and the ROW counter/ 

CHR$ latch hardware. 

 

Both true hires software based on WRX16 and HRG algorithms and the 

"pseudo" hires programs like Rock Crush are supported by the ZX97. 

 

True High Resolution graphics programs (ie WRX16) fetch pattern data 

from system RAM using the I and R registers and the pattern table lookup 

hardware has to be disabled.  A high on A13 or A14 is used to disable  

the ROW counter/CHR$ latch tristate outputs during RFSH. 

The memory map for Sinclair character and pseudo hires patterns is 0-8K. 

For UDG and 128 character text, pattern data must be located in 32-40K. 

All other parts of the memory map are true hires.  

 

Pseudo Hires is supported without any changes to provide downward 

compatibility with many excellent programs such as Rock Crush. 

For future software development, UDG's and True Hires would appear 

more logical choices, given the new ZX97 hardware features. 

 

ZX97 I/O CIRCUIT 

---------------- 

The ZX97 I/O circuit in Fig 2e includes the keyboard logic, TAPE IN/OUT 

logic, part of the SYNC/NMI logic which is I/O mapped and the 8255 logic. 

To maintain compatibility with the ZX81 I/O port assignment, the same 

incomplete I/O address decoding is used for I/O address bits 0-3. 

A few 74HC32 OR gates provide the necessary logic to access the NMI and 

SYNC latches. A more conventional I/O decoding circuit is used to 

generate address DF for the 8255 24 bit parallel interface controller. 

 

KEYBOARD LOGIC 

 

The ZX97 keyboard interface uses the same A8-15 row scanning as the ZX81 

and the five keyboard data lines are connected to bits D0-4 of a 74LS245 

tristate buffer. The output is enabled with IN FE to read keyboard colunm 

data. Two other bits (D6-7) are used to sense the 50/60 Hz option and the 

TAPE input. 

 

THE TAPE INPUT/OUTPUT 

 

The TAPE INPUT is compatible with ZX81 as well as the ZXTAPE system for 

PC<>ZX data transfer using a simple 2 wire cable connected to the PC 

Printer port. Data is saved and loaded with the build in functions. 

The "easy to use" ZXTAPE.EXE program takes care of the PC hardware. 

The TAPE OUT signal (actually the VSYNC) is a TTL level suitable for 

line in of a tape recorder and is also connected to STATUS input of 

the LPT1 connector. 

 

NMI AND VSYNC LATCHES 

 

Two SR latches are used to control the flow of NMI pulses to the CPU and 

SYNC pulses to the VIDEO/SYNC MIXER. The NMI latch is set with OUT FE 

which gates the NMI pulses to the CPU and is reset with OUT FD. 

The NMI latch, when off, also enable the set input of the VSYNC latch. 

The action of the SYNC latch is a little more complicated because it 

produces a VSYNC pulse which is XOR'd with the HSYNC pulses to generate 

a negative sync level for as long as the VSYNC latch is set. 

The SYNC latch, which is set with IN FE, also resets the 15.75 KHz counter 

to maintain synchronization between the VSYNC and HSYNC in the FAST mode. 

The XOR gate inverts the inactive HSYNC output and thereby generates the 

negative vertical VSYNC pulse. Any OUT command resets the VSYNC latch, 

terminates the VSYNC pulse and enables normal HSYNC pulses. 

 

8255 PARALLEL I/O PORT 

 

The 8255 is a general purpose parallel I/O port. The 8255 defaults to 

3 input ports on reset and to configure ports for output, a control word 

must be written to the control register located at address DF. 

Port A is generally used as a high speed interface to a PC printer port. 

Port B is used for control of the RAM disk and Port C is used for hand 

shaking with the PC printer port. Of course Port A and C can be used for 

any general purpose parallel I/O. 

 

The 8255 is accessed at I/O address DF and the internal registers are 

addressed with A3 and A4. Therefore the control register is at port DF 

and the data registers for ports A to C are addressed at C7, CF and D7. 

 

Note: Port C output bits can be accessed at two different locations. 

Port C output byte is accessed at D7, but in addition, individual 

Port C bits can be set or reset at address DF with control word values 

00 to 0F. Even values 02 to 0E reset bits 0 to 7 respectively and odd 

values 01 to 0F set bits 0 to 7. 

 

 

 

 ____

| 6.5|--->-------------------------------------------------------------+

|    |               _______              _____________                |

|XTAL|        A14-->|RAMDISK| +--------->|/CE       A13|<--- PB0       |

|TIME|        A15-->|DECODE | |          | RAM DISK A14|<----PB1       |

|BASE|        PB3-->|_______|-|-----+--->|CE        A15|<----PB2       |

|    |                        |     |    |_____________|               |

|____|     _____     ______   |   __V__    _____       _____    _____  |

| CPU|    | CPU |   |MEMORY|  |  | OE  |  |     |     | ROW |  |VIDEO| |

| CLK|    | MREQ|-->|DECODE|--+->| A0-2|->| A0-2|<----| CTR |  | S/R | |

| /2 |    |     |   |______|     | RAM |  |EPROM|     |-----|  |  CLK|<+

|    |    |  ADR|->-+----[2K]--->|A3-8 |->|A3-8 |<----| CHR |  |     |

| 3.2|--->|CLK  |   |----------->|A9-14|->|A9-14|     |LATCH|  | SOUT|-+

|    |    | DATA|<--|-+--[2K]--->|D0-7 |->|D0-7 |--+->|D0-7 |->|_S/L_| |

|____|    |     |   | |    __    |     |  |     |  |  |_____|     |    |

|HOR |    | IORQ|_  | +-<-|NOP|  |_____|  |_____| _V_______       |    |

|NMI | +->|NMI  | | |     |___|<-----------------| D6/7    |-->---+    |

|GEN | |  |_____| | |__________                  |NOP LOGIC|    _____  |

|/207| |   _____  |  ________  |  _____    _____ |_________|-->|VIDEO|<+

|    | +--| NMI | |_|   I/O  | | |KEYBD|  | 8255|      _____   |INVRT|

|15.7|--->|/SYNC|<--| DECODER| +>|LOGIC|  | I/O |     |VIDEO|<-|_____|

| RST|<---|LATCH|   |________|   |_____|  |_____|     |/SYNC|

|____|    |     |--> ROW CNTR RESET          |        |MIXER|--> COMPOSITE

  |       |_____|----------------------------|------->|_____|    VIDEO OUT

  |                                          |____________

  +-->ROW CNTR CLK       FIG 1 - ZX97 BLOCK DIAGRAM       `----> to PC LPT

 VIDEO CLOCK            HSYNC/NMI TIME BASE

   6.5 MHz                   15.7 KHz

  __|-|___                   ______

 |  |-|   |                 |393A R|___________________________________

 |        |    CPU CLOCK    |     R|___|                 __            |

 |-[10M]--|      3.2MHz     |    Q1|--------------------|11 \    __    |

 |   __ [2K]     _____      |    Q2|--------------------|    >--)32 \__|

 +--|00 \_|_____|C   Q|_    |      |            __    +-|__ / +-)__ /

 +--|__ / |     | 74C |     |    Q3|-----------|11 \  |       |

6.5 ------|   __|D  /Q|__   |    Q4|--+--------|    >-+       |

          |  |  |__R__|  |  |   CLB|__|      +-|__ /          |

/6.5 _/|__|  |___________|  |    Q5|         |                |

      \|          0V     |  |    Q6|   __    |                |

3.2M  ___________________|__|CLA Q7|--|08 \__|                |

                            |    Q8|--|__ /  |                |

                            |______|         |                |

HSYNC ____________/|_________________________|                |

                  \|  74HC04                                  |

VSYNC ________________________________________________________|

RAMCS ________________________________________________________

ROMCS __________________________________                      |

            __                          |                     |

RFSH  -----|08 \____                    |                     |

RD    -----|__ /    |                   |                     |

          +5V       |                   |                     |

           |        |                   |  +5V                |

    SW1  [10K]      |   __       _____  |   |                 |

0V____/ ___|__|\__  +--)32 \____|0 251| | [2K]                |

   SHADOW  |  |/  `----)__ /  |_|5   Y|_|___|                 |

    RAM    |____________________|4    | 0-8K+                 |

                              |_|1    | 40-64K    +5V         |

0V _____________________________|2    |            |          |

0V _____________________________|3    |           [2K]        |

                                |     | 8K-40K     |          |

M1 _____________________________|6   W|____________|__________|

M1 _____________________________|7    |

A13_____________________________|A    |

A14_____________________________|B    |

A15_____________________________|C    |

              __                |     |

RFSH --------|08 \______________|E    |

MREQ --------|__ /              |_____|

                 Figure 2a - ZX97 TIMEBASE/MEMORY MAPPER

NOP______________________________________________________________

                                                     ______      |

NMI_________________________________________________|NMI   |     | NOP

                                       |     __     |      |     |

                                       +----)32 \___|WAIT  |     |

                              _____    +----)__ /   |  Z80 |   __|__

WR --------------------------|WR   |   |_______/|___|HALT  |  | OE  |

                   ______    |     |    _____  \|   |      |  | 245 |

D0'---------------|    D0|---|   D0|---|   D0|-[1K]-|D0    |--|A0 B0|__

D1'---------------|    D1|---|   D1|---|   D1|-[1K]-|D1    |--|A1 B1|__|

D2'---------------|    D2|---|   D2|---|   D2|-[1K]-|D2    |--|A2 B2|__|

D3'---------------|    D3|---|   D3|---|   D3|-[1K]-|D3    |--|A3 B3|__|

D4'---------------|    D4|---|   D4|---|   D4|-[1K]-|D4    |--|A4 B4|__|

D5'---------------|    D5|---|   D5|---|   D5|-[1K]-|D5    |--|A5 B5|__|

TRUE HIRES DECODE |      |   |   D6|---|   D6|-[1K]-|D6    |--|A6 B7|__|

     __    _______|OE    |   |   D7|---|   D7|-[1K]-|D7    |--|A7 B7|__|

A14-)32 \_|  __   |      |   |     |   |     |      |      |  |__D__|  |

RFS-)__ / `o|125\_|......|---|A0 A0|---|   A0|-[1K]-|A0    |     |_____|

     +------|__ / |      |   |     |   |     |      |  IORQ|-->        |

     |   _____    |  374 |   |62256|   |27256|      |  MREQ|-->       0V

     |__|Q0 Q1|---|D6  Q6|---|   A1|---|   A1|-[1K]-|A1  RD|-->

 LCNTR  |   Q2|---|D7  Q7|---|   A2|---|   A2|-[1K]-|A2  WR|-->

        | 393B|   |    Q0|---|   A3|---|   A3|-[1K]-|A3  M1|-->

/VSYNC__|R    |   |    Q1|---|   A4|---|   A4|-[1K]-|A4 RFS|-->

 HSYNC__|CLB  |   |    Q2|---|   A5|---|   A5|-[1K]-|A5   0|<-- 3.2

        |_____|   |    Q3|---|   A6|---|   A6|-[1K]-|A6  A6|___

RD----------------|CP  Q4|---|   A7|---|   A7|-[1K]-|A7 INT|___|

  128 CHR$        |    Q5|---|   A8|---|   A8|-[1K]-|A8    |

  DECODE  __      |______|   |     |   |     |      |   BRQ|--5V

A8-------|00 \__      __     |  VDD|---|  VDD|------|   VDD|--5V

INVERT---|__ /  `----|125\_  |     |   |  VSS|------|   VSS|--0V

              RFS --o|__ / `-|   A9|---|   A9|-[1K]-|A9    |

                             |  A10|---|  A10|------|A10   |

  RAM BATTERY BACKUP         |  A11|---|  A11|------|A11   |

  3V LITHIUM  1N34A          |  A12|---|  A12|------|A12   |

+5  ----+|-----|<-------+    |  A13|---|  A13|------|A13   |

VBB --------------------|    |  A14|---|  A14|------|A14   |

0V  -----------|<----+--|    |  /OE|_  |     |      |  /RST|_____/RST

                 1uF |  |    |  /CE|_| |  /CE|____  |      |

                    === |____|VSS  | | |     |    | |______|

                     |+      |_____| | |  /OE|__  |______________ ROMCS

                    5V               | |_____|  |________________ DISKON

                                     |____________________________RAMCS

                 Figure 2b - ZX97 CPU/MEMORY CIRCUIT

                _______

+5V ------------| Vdd   |

D0' ------------| D0    |   128Kx8 SRAM

D1' ------------| D1    |    KM681000LP

D2' ------------| D2    |

D3' ------------| D3    |

D4' ------------| D4    |

D5' ------------| D5    |

D6' ------------| D6    |

D7' ------------| D7    |

A0' ------------| A0    |

A1' ------------| A1    |

A2' ------------| A2    |

A3' ------------| A3    |

A4' ------------| A4    |

A5' ------------| A5    |

A6' ------------| A6    |

A7' ------------| A7    |                      +5V

A8' ------------| A8    |  +5V                  |

A9' ------------| A9    |   |                 [10K]

A10 ------------| 10    | [10K]   SW2     __    |

A11 ------------| 11  WR|__ |___/ _____ /125|o--+--- PB4    WRITE PROTECT

A12 ------------| 12    |               \ __|------- WR

A13 ------------| 13    |

PB0 ------------| 14    |

PB1 ------------| 15    |                  __

PB2 ------------| 16    |                /   |------ A14    RAMDISK SELECT

ROMCS __________|/CE  CE|---+-----------< 11 |------ A15

             |__|/OE    |   |            \ __|------ PB3

VBB-------------|VSS    |   |

                |_______|   |

DISKON______________________|

                        Figure 2c  - ZX97  RAMDISK CIRCUIT

                           _________

5V   ---------------------| MC34164 |-- 0V

5V   ----[10K]--+         |_________|        74HC04  ________     LPT1

RST  ___________|______________|_______________|\___|RST  PA0|--->  D0

                               |    |          |/   |     PA1|--->  D1

     1N4448   KEY MATRIX      +|    |   RESET       |     PA2|--->  D2

A8 ----|<------|-|-|-|-|- 1 uF===    |- SWITCH      |     PA3|--->  D3

A9 ----|<------|-|-|-|-|-      |____|               |     PA4|--->  D4

A10----|<------|-|-|-|-|-           |      RD ------|RD   PA5|--->  D5

A11----|<------|-|-|-|-|-           0V     WR ------|WR   PA6|--->  D6

A12----|<------|-|-|-|-|-                  LPT1     |     PA7|--->  D7

A13----|<------|-|-|-|-|-                  SEL  <---|PC4  PC0|---> STB

A14----|<------|-|-|-|-|-                  PE   <---|PC5  PC1|---> ALF

A15----|<------|-|-|-|-|-                  ACK  <---|PC6  PC2|---> INIT

      KEY PORT | | | | |                   BUSY <---|PC7  PC3|---> SEL

        _____  | | | | |                            |        |

D0 ____|A0 B0|_| | | | |                    D0------|D0      |

D1 ____|A1 B1|___| | | |                    D1------|D1 8255 |

D2 ____|A2 B2|_____| | |  +5V               D2------|D2   PB0|--->PB0

D3 ____|A3 B3|_______| |   |                D3------|D3   PB1|--->PB1

D4 ____|A4 B4|_________| [10K]              D4------|D4   PB2|--->PB2

D5 ____|A5 B5|___ 0V       |   50Hz         D5------|D5   PB3|--->PB3

D6 ____|A6 B6|_____________|__/ __0V        D6------|D6   PB4|--->PB4

D7 ____|A7 B7|________________ TAPE IN      D7------|D7   PB5|--->NC

    ___|OE  D|___ 0V       |                        |     PB6|--->NC

   |   | 245 |           [100K]             A3------|A    PB7|--->NC

   |   |_____|             |                A4------|B     CE|____

   |__________________    0V                        |________|    |

                      |            I/O ADDRESS          _____  DF |

                      |              DECODER    A5-----|A   3|____|

                      |                         A6-----|B 138|

                      |                         A7-----|C    |--FUT I/O

      __              |                         M1-----|E    |--FUT I/O

A0 --)32 \__    __    |               VSYNC     IORQ---|/E   |--FUT I/O

RD --)__ /  `--)32 \__|      __       LATCH     0V-----|/E   |

            +--)__ /  `-----)32 \__    __              |_____|

            |  IN FE      +-)__ /  `--|00 \____________________/VSYNC

            | (VSYNC ON)  |         +-|__ /  |    |  __________ HSYNC

IORQ -------+             |         |________|__  | |   __

            |             |          ________|  | | +-))86 \___ CSYNC

            |   __        |         |  __       | +-|-))__ /

            +--)32 \__    |         +-|00 \_____|___|__________ VSYNC

WR ------------)__ /  +---|-----------|__ /         |   __

              OUT NN  |   |__________________       +--)32 \___ NMI

           (HSYNC ON) |     __      NMI LATCH|  +------)__ /     ____

                      +----)32 \__     __    |  |      __       | 393|

A0 -------------------|----)__ /  `---|00 \__|  |   --|00 \__   |  Q0|-

             OUT FE   |             +-|__ /  |  |   --|__ /     |  Q1|-

            (NMI ON)  |             |________|__|             --|R Q2|-

                      |              ________|  |      __     --|C Q3|-

             OUT FD   |     __      |  __       |   --|00 \__   |____|

            (NMI OFF) +----)32 \__  +-|00 \_____|   --|__ /

A1 ------------------------)__ /  `---|__ /  NMI-ON        SPARE GATES

                       Figure 2d- ZX97 I/O CIRCUIT

                                  1N4448                +5V

CSYNC --------------------------|<--------------+--[1K]--|

/6.5M _____________________                     |        |

       ______              |      VIDEO         |        |

HSYNC-|SIN   |             |  SYNCHRONIZER      |        |

6.5M--|CLK   |             |      _____         |        |

D0`---|D0 165| VIDEO  __   |_____|CP  Q|-       |        | C

D1`---|D1  S0|------))86 \___    | 74C |        |      |/

D2`---|D2    |   +--))__ /   |___|D  /Q|--[1K]--+------| 2N3904

D3`---|D3    |   |   VIDEO       |_____|             B |\

D4`---|D4    |   |   INVERTER                            | E

D5`---|D5    |   |    __                    VIDEO       |2|

D6`---|D6    |   |__/ 86((-----+-[10K]--5V  LEVEL    P1 |0|<---@  VIDEO

D7`---|D7    |      \ __((--+  | NORM/INV   ADJUST      |0|    |  OUTPUT

    __|S/L   |              |  |__/ ____0V           0V__|_____|

   |  |______|              |__________________________

   |_____________________________________________|__   `--------> INVERT

       __ T1 DECODER             INVERT REGISTER |  |

MREQ--|08 \_____        D7 REGISTER     _____    |  |

3.2 --|__ /     `-------------------+--|C   Q|_  |  |

                           _____    |  | 74B |   |  |

RD________________________|C   Q|___|__|D  /Q|___|  |

                       |  | 74A |   |  |_S_R_|      |

                _______|__|D  /Q|_  |    |_|        |

               |       |  |_R_S_|   |    +5V        |

               |       |    |_|     |               |

  NOP LOGIC    |       |    +5V     |               |

       _____   |       |    +5V     |    +5V        |

HALT--|E    |  |       |   __|__    |   __|__       |

M1----|/E   |  |       |__|C R Q|   |__|C S Q|_     |

D6'---|/E   |  |  __      | 74A |      | 74B |      |

D7'---|A  O7|--+-|08 \____|D  /Q|______|D  /Q|______|

A14---|B  O6|----|__ /  | |__S__|   |  |__R__| LOAD |

A15---|C 138|           |    | NOP  |_____|   PULSE |

      |_____|           |    | REGISTER        CCT  |

NOP_____________________|    |______________________|

 

                 Figure 2e - ZX97  VIDEO CIRCUIT