| _d1 | --> | _1 | ---------- | 24 | -- | VCC | ||
| _d0 | --> | 2 | 23 | --> | _a3 | to EPROM/RAM address line | ||
| _d7 | --> | 3 | 22 | --> | _a4 | to EPROM/RAM address line | ||
| _d2 | --> | 4 | 21 | --> | _a5 | to EPROM/RAM address line | ||
| _d6 | --> | 5 | 20 | --> | _a6 | to EPROM/RAM address line | ||
| _d5 | --> | 6 | 19 | --> | _a7 | to EPROM/RAM address line | ||
| _d3 | --> | 7 | 18 | --> | _a8 | to EPROM/RAM address line | ||
| _d4 | --> | 8 | 17 | --> | s0 | video data out to video circuit | ||
| from HSYNC pld | clk6 | --> | 9 | 16 | <-- | !nop | from decode PLD | |
| from CPU | !rd | --> | 10 | 15 | <-- | !blankedinvert | from HSYNC pld | |
| from CPU | !rfsh | --> | 11 | 14 | <-- | !addressenable | from DECODE pld | |
| GND | -- | 12 | 13 | <-- | !mreq | from CPU |
The shift register for video generation.
The _d* inputs are from 1k resistors connected to CPU data lines.
This chip takes the character data from these data lines and
latches them internally. The character latch data later drives
the ROM address lines when the ROM is required as a character
font ROM.
Comments in green below were added by me
PARTNO shift;
NAME shift;
DATE 12/11/98;
REV 01 ;
DESIGNER isb ;
device v750;
pin 1 = _d1; /* from 1k resistor connected to CPU data line */ pin 2 = _d0; /* from 1k resistor connected to CPU data line */ pin 3 = _d7; /* from 1k resistor connected to CPU data line */ pin 4 = _d2; /* from 1k resistor connected to CPU data line */ pin 5 = _d6; /* from 1k resistor connected to CPU data line */ pin 6 = _d5; /* from 1k resistor connected to CPU data line */ pin 7 = _d3; /* from 1k resistor connected to CPU data line */ pin 8 = _d4; /* from 1k resistor connected to CPU data line */ pin 9 = clk6; /* from HSYNC pld */ pin 10 = !rd; /* from CPU */ pin 11 = !rfsh; /* from CPU */
pin 23 = _a3; /* to EPROM/RAM address line */ pin 22 = _a4; /* to EPROM/RAM address line */ pin 21 = _a5; /* to EPROM/RAM address line */ pin 20 = _a6; /* to EPROM/RAM address line */ pin 19 = _a7; /* to EPROM/RAM address line */ pin 18 = _a8; /* to EPROM/RAM address line */ pin 17 = s0; /* video data out to video circuit */ pin 16 = !nop; /* from decode PLD */ pin 15 = !blankedinvert; /* from HSYNC pld */ pin 14 = !addressenable; /* from DECODE pld */ pin 13 = !mreq; /* from CPU */
// The ATV750 chips are like two 22V10 chips in a single package. // There are not enough pins to connect them to the outside world, // so the extra internal pins are called pinnodes. // In this design, they are mainly used as a buried (i.e. internal) latch.
pinnode 34 = delayedrfsh; pinnode 33 = q1; pinnode 32 = q3; pinnode 31 = q5; pinnode 30 = q7; pinnode 29 = q6; pinnode 28 = q4; pinnode 27 = q2; pinnode 26 = q0; pinnode 25 = charinvert;
pinnode 37 = latchednop; /* shared with pin 16 */
// The video data latch Output Enable is asserted // when addressenable and Refresh are asserted
_a3.oe=rfsh & addressenable; _a4.oe=rfsh & addressenable; _a5.oe=rfsh & addressenable; _a6.oe=rfsh & addressenable; _a7.oe=rfsh & addressenable; _a8.oe=rfsh & addressenable;
// The video data latch is clocked by the Read signal
_a3.ck=!rd; _a4.ck=!rd; _a5.ck=!rd; _a6.ck=!rd; _a7.ck=!rd; _a8.ck=!rd;
// The video data latch inputs are from the memory data bus. // NB from the memory side of the resistors, because the // CPU side will be held to zero during video access.
_a3.d = _d0; _a4.d = _d1; _a5.d = _d2; _a6.d = _d3; _a7.d = _d4; _a8.d = _d5;
// Character inversion is controlled by latched D7
charinvert.ck=!rd; charinvert.d = _d7;
latchednop.ck=!rd; latchednop.d=nop;
delayedrfsh.ck=clk6; delayedrfsh.d=rfsh & mreq & latchednop; latch=!mreq & delayedrfsh;
// The ouput pins are clocked by the 6.5MHz clock signal.
q0.ck=clk6; q1.ck=clk6; q2.ck=clk6; q3.ck=clk6; q4.ck=clk6; q5.ck=clk6; q6.ck=clk6; q7.ck=clk6;
// The video data output latch data:
q0.d = latch & (_d0 $ charinvert); q1.d = !latch & q0 # latch & (_d1 $ charinvert); q2.d = !latch & q1 # latch & (_d2 $ charinvert); q3.d = !latch & q2 # latch & (_d3 $ charinvert); q4.d = !latch & q3 # latch & (_d4 $ charinvert); q5.d = !latch & q4 # latch & (_d5 $ charinvert); q6.d = !latch & q5 # latch & (_d6 $ charinvert); q7.d = !latch & q6 # latch & (_d7 $ charinvert);
s0 = q7 $ blankedinvert;