Name gamesel; Partno xxxx; Date 01/03/99; Revision 02; Designer Honeycutt; Company Games 2084; Assembly None; Location None; Device p22v10; /****************************************************************/ /* */ /* Williams Multigame selector circuitry PLD */ /* */ /****************************************************************/ /* Allowable Target Device Types : PAL22V10 */ /****************************************************************/ /** Inputs **/ PIN 1 = clock; /* Register Clock */ PIN 2 = !reset; /* CPU BD Power up reset */ PIN [3..5] = [S2..0]; /* Manual Game Select Input */ PIN 6 = !D3; /* CPU Data Bus D3 */ PIN [7..9] = [D2..0]; /* CPU Data Bus D2, D1, D0 */ PIN 10 = !wrt_ena; /* Write Enable & E clock */ PIN 11 = !C4XX; /* Addr C4XX selected */ /** Outputs **/ PIN 23 = sel_clock; /* Game select latch clock */ PIN [18,17,16] = [Q2..0]; /* Latch Register Outputs */ PIN [21,20,19] = [G2..0]; /* Game Select Outputs */ PIN 14 = !defender; /* Defender selected */ PIN 15 = !snd_RST; /* Sound board reset signal */ /** Declarations and Intermediate Variable Definitions **/ field man_sel = [S2..0]; /* Manual game select */ field auto_sel = [D2..0]; /* Data Bus / Auto game select */ field game_sel = [G2..0]; /* Game select outputs */ field auto_latch = [Q2..0]; /* Latch register outputs */ /** Logic Equations **/ sel_clock = wrt_ena & C4XX; /* This output is externally */ /* wired to the clock input */ auto_latch.d = auto_sel; /* latch the auto-sel inputs */ snd_RST.d = D3; /* latch sound board reset */ game_sel = man_sel # auto_latch; defender = game_sel:2; /* Use the 'Q' name here because the compiler pukes when the */ /* auto_latch name is used. */ Q0.sp = 'b'0; /* preset not used */ Q0.ar = reset; /* Power up reset */