PARTNO decode; NAME decode; DATE 1998-11-12; REV 01 ; DESIGNER isb ; device g22v10; pin 1 = hsync; /* from HSYNC pld */ pin 2 = a13; /* from CPU */ pin 3 = a14; /* from CPU */ pin 4 = a15; /* from CPU */ pin 5 = !halt; /* from CPU */ pin 6 = !m1; /* from CPU */ pin 7 = _d6; /* from SHIFT pld */ pin 8 = !rd; /* from CPU */ pin 9 = !rfsh; /* from CPU */ pin 10 = !mreq; /* from CPU */ pin 11 = !vsync; /* from HSYNC pld */ pin 23 = !addressenable; /* to SHIFT pld */ pin 22 = _a0; /* to EPROM/RAM address line */ pin 21 = _a1; /* to EPROM/RAM address line */ pin 20 = _a2; /* to EPROM/RAM address line */ pin 19 = !romselect; /* to EPROM CE and OE */ pin 18 = !ramselect; /* to RAM CE and OE */ pin 17 = !nop; /* to SHIFT pld and NOP pld */ pin 16 = !wait; /* to CPU */ /*pin 15 = spare;*/ pin 14 = !nmienable; /* from HSYNC pld */ pin 13 = !nmi; /* from HSYNC pld */ /* the character cell row counter output is enabled when the refresh signal is asserted and addressenable indicates the system is in character display mode */ _a0.oe = rfsh & addressenable; _a1.oe = rfsh & addressenable; _a2.oe = rfsh & addressenable; /* the character cell row counter output is Asynchronously Reset when the vertical sync signal is asserted. This ensures it is starts from zero at the top of each video frame. */ _a0.ar = vsync; _a1.ar = vsync; _a2.ar = vsync; /* the character cell row counter output is Synchronously Preset when the non-maskable interrupt signal is asserted. */ _a0.sp = nmienable; _a1.sp = nmienable; _a2.sp = nmienable; /* The counter implementation. A0 simply toggles on each clock cycle. */ _a0.d = !_a0; _a1.d = _a1 $ _a0; _a2.d = (_a2 $ (_a0 & _a1)); /* The expressions below compress the logic expressions. They are not signals but more like #defines in C, which are substituted into the logic equations above. */ romselect = (rfsh # mreq) & !a13 & !a14 & !a15; /* 0-8k */ ramselect = (rfsh # mreq) & a13 & !a14 /* 8-16k & 40-48k */ # (rfsh # mreq) & a14 /* 16-32k & 48-64k */ # (rfsh # mreq) & !a13 & !a14 & a15; /* 32-40k */ addressenable = !a14 & !a15; /* only char bitmaps in first 16k */ /* so true hires works above 16k */ nop = !halt & m1 & !_d6 & a14 & a15; /* force NOPs in 48-64k */ wait = !halt & nmi;