*IDENTIFICATION
ZXIDEGAL;
*TYPE
GAL20V8;
*PINS
%INPUTS%
A0 = 2,
A1 = 3,
A2 = 4,
A3 = 9,
A4 = 8,
A5 = 7,
A6 = 6,
A7 = 5, %All inputs to CPU%
IORQ = 10,
M1 = 11,
RD = 23,
WR = 14,
CLKD = 16, %Connect to 22 via 2 gate for delay%
%pin 13 (OE) connect to GND%
%OUTPUTS %
RLAT.T = 15, %Read latch clock (for D8-D15), 74HC573%
RLAOE.T = 17,
WLAT.T = 18, %Write Latch clock (for D8-D15), 74HC573 (574 not ok)%
WLAOE.T = 19, %LWrite latch output enable - see line above%
BIFE.T = 20, %Bidir. line transc. enable (for D0-D7) ,74HC245%
CLK.T = 22, %CONNECT WITH PIN 1%
MFF.R = 21;
%Master flip-flop for latch, line driver control, no external connect.%
*BOOLEAN-EQUATIONS
MFF =/IORQ*M1*/A7*A6*A5*A3*A0*/A4*/A2*/A1*/MFF; %ADR $69 flips,other resets%
CLK.E = VCC;
CLK = /IORQ*M1*/A7*A6*A5*A3*A0; %For MFF control%
RLAT.E = VCC;
RLAT = CLKD*/RD*MFF*/A4*/A2*/A1;
%Latches D8-D15 in first cycle%
RLAOE.E = VCC;
/RLAOE = CLKD*/RD*/MFF*/A4*/A2*/A1;
%Puts latched data to CPU-s bus in second cycle%
WLAT.E = VCC;
WLAT = CLKD*/WR*MFF*/A4*/A2*/A1; %delayed%
%Latches datas in first cycle%
WLAOE.E = VCC;
/WLAOE = CLKD*/WR*/MFF*/A4*/A2*/A1;
%puts latched datas to HD-s D8-D15 in second cycle%
%byte order is reversed by RD & WR !!%
BIFE.E = VCC; %Also SELP%
/BIFE = CLKD*/RD*A4+
CLKD*/RD*A2+
CLKD*/RD*A1+
CLKD*/RD*/A4*/A2*/A1*MFF+
CLKD*/WR*/MFF;
%By read data active in first cycle (MFF high), by write data
active in second cycle, by other regs. allways%
*END