Name FLEX_2K; PartNo 00 ; Date 08/11/2025 ; Revision 01 ; Designer Chris Oddy ; Company NA ; Assembly None ; Location ; Device g16v8a ; /* This PAL is for a FLEX version of the 6809 Monitor */ /* Onboard RAM (IC5,6) is mapped to $E000 */ /* The VIA is mapped to the $E900 page */ /* A 2K EPROM (2716) is mapped to $F800 */ /* The BLOCK0 signal maps to Block $E000 */ /* The link input is not used */ /* *************** INPUT PINS *********************/ PIN 1 = A8 ; /* Address Bus */ PIN 2 = A9 ; PIN 3 = A10 ; PIN 4 = A11 ; PIN 5 = A12 ; PIN 6 = A13 ; PIN 7 = A14 ; PIN 8 = A15 ; PIN 9 = NVMA ; /* low when address bus is active */ PIN 11 = LINK ; /* low when link LK5 fitted (unused) */ /* *************** OUTPUT PINS *********************/ PIN 12 = RAM ; /* low to select RAM (IC5,6 */ PIN 13 = ONCARD ; /* low when any of RAM, ROM or VIA selected */ PIN 14 = BLOCK0 ; /* low for addresses $E000 to $EFFF */ PIN 15 = ROM ; /* low to select EPROM IC4 */ /*PIN 16 UNUSED */ /*PIN 17 UNUSED */ PIN 18 = VPPorA11 ; /* high (Vpp) for 2K EPROM */ PIN 19 = VIA ; /* low to select VIA IC2 */ /* Define device addresses */ RAM_Select = A15 & A14 & A13 & !A12 & !A11 & !A10 ; /* $E000 to $E3FF */ BLOCK0_Select = A15 & A14 & A13 & !A12 ; /* $E000 to $EFFF i.e. $Exxx */ VIA_Select = A15 & A14 & A13 & !A12 & A11 & !A10 & !A9 & A8 ; /* $E900 to $E9FF i.e. $E9xx */ ROM_Select = A15 & A14 & A13 & A12 & A11 ; /* $F800 to $FFFF */ /* Define outputs */ BLOCK0 = !(BLOCK0_Select & !NVMA) ; RAM = !(RAM_Select & !NVMA) ; VIA = !(VIA_Select & !NVMA) ; ROM = !(ROM_Select & !NVMA); VPPorA11= 'b'1 ; /* 2716 Vpp pulled high */ ONCARD = !(RAM_Select # VIA_Select # ROM_Select) ;