/* This implements the region detection switch for a SMS1 with the 315-5216 I/O chip. Fits a Lattice GAL16V8D. (C) 2011 Charles MacDonald WWW: http://cgfm2.emuviews.com */ Name smsfm1 ; PartNo 00 ; Date 6/11/2011 ; Revision 01 ; Designer Charles MacDonald ; Company Atmel ; Assembly None ; Location ; Device g16v8ms; /* Force registered mode */ pin 1 = global_ck; /* Connect to ground */ pin 2 = za1; /* From Z80 A1 */ pin 3 = za0; /* From Z80 A0 */ pin 4 = za2; /* From Z80 A2 */ pin 5 = za7; /* From Z80 A7 */ pin 6 = za6; /* From Z80 A6 */ pin 7 = iorq; /* From Z80 IORQ# */ pin 8 = zwr; /* From Z80 WR# */ pin 9 = zrd; /* From Z80 RD# */ pin 19 = spareout0; /* Unused output */ pin 18 = killga; /* To 315-5216 pin 23 */ pin 17 = ym2413_wr; /* To YM2413 WR# (set YM2413 CS#=GND) */ pin 16 = latch_oe; /* To 74LS574 OE# */ pin 15 = latch_ck; /* To 74LS574 CK */ pin 14 = killga_oe_term; /* No-connect */ pin 13 = fm_mode; /* Switch input; 0= FM enabled, 1= FM disabled */ pin 12 = jp_mode; /* Switch input; 0= JP mode, 1= US mode */ pin 11 = global_oe; /* Connect to ground */ /* Output terms */ !ym2413_wr = !fm_mode & !iorq & za7 & za6 & !za2 & !za1 & !zwr; // Writing ports $F0,$F1 when FM enabled !latch_ck = !fm_mode & !iorq & za7 & za6 & !za2 & za1 & !zwr; // Writing ports $F2,$F3 when FM enabled !latch_oe = !fm_mode & !iorq & za7 & za6 & !za2 & !zrd; // Reading port $F0-$F3 when FM enabled killga_oe_term = !jp_mode & !iorq & !za7 & !za6 & za0 & !zwr // Writing port $3F when JP mode enabled # !fm_mode & !iorq & za7 & za6 & !za2 & !zrd // Reading ports $F0-$F3 when FM enabled ; killga.oe = killga_oe_term; killga = 'b'1; /* End */