ATF16v8 for 2.06 decoding
Posted: 13 Mar 2021 13:59
I haven't managed to do a proper address decoder for TOS 2.06 using an ATF16v8b and I'm not too sure why.
The exact same code (down to the PIN numbers) works flawlessly with an ATF22v10C, but with a 16v8 the machine (an H5) doesn't boot and stays on a very colourful screen.
The only difference I've found between the two GALs is that the 16v8 has a weak pull-up to VCC on all pins while the 22v10 hasn't.
If anyone has a clue on the issue, I have a stock of 16v8 and only a few 22v10.
I simply connect the GAL directly to the CPU socket and the ROM2 signal (JP13 on the H5).
Here is the pretty simple code:
The exact same code (down to the PIN numbers) works flawlessly with an ATF22v10C, but with a 16v8 the machine (an H5) doesn't boot and stays on a very colourful screen.
The only difference I've found between the two GALs is that the 16v8 has a weak pull-up to VCC on all pins while the 22v10 hasn't.
If anyone has a clue on the issue, I have a stock of 16v8 and only a few 22v10.
I simply connect the GAL directly to the CPU socket and the ROM2 signal (JP13 on the H5).
Here is the pretty simple code:
Code: Select all
Name STROMDEC ;
PartNo 00 ;
Date 12/23/2020 ;
Revision 01 ;
Designer Olivier ;
Company home ;
Assembly None ;
Location home ;
Device g22v10 ;
/* *************** CONNECTIONS ******************* */
/* ATARI A23..A16 = GAL 1..8 */
/* ATARI AS = GAL 9 */
/* ATARI RW = GAL 13 */
/* ATARI ROM2 = GAL 14 */
/* ATARI DTACK = GAL 17 */
/* ROM CE = GAL 15 */
/* ************************************************ */
/* *************** INPUT PINS ******************** */
PIN [1..8] = [A16..23] ;
PIN 9 = !AS ;
PIN 13 = RW ;
PIN 14 = !ROM2 ;
/* *************** OUTPUT PINS ******************** */
PIN 17 = !DTACK ;
PIN 18 = !CE ;
FIELD TOS = [A23..16];
/* *************** DECLARATIONS AND INTERMEDIATE VARIABLE DEFINITIONS ******************** */
CE256 = RW & AS & TOS:'h'[E00000..E3FFFF] ;
/* *************** ROM DECODER ******************** */
DTACK = CE256 ;
DTACK.oe = CE256 ;
CE = CE256 # ROM2 ;