Name footballproto ; PartNo 00 ; Date 11/19/2016 ; Revision 01 ; Designer Sean Riddle ; Company www.seanriddle.com ; Assembly None ; Location ; Device g22v10 ; /* Mattel Football prototype as described in patent wrapper for US4162792 */ /* decoder for 6502 addresses to select ROM, RAM, I/O ports */ /* 0000-007f selects RIOT0 RAM 0000 0000 0xxx xxxx RW nRIOT0CS=0, nRIOT1CS=1, nRAMCS=0, nROMCS=1 zero page RAM */ /* 0080-00ff selects ROM 0000 0000 1xxx xxxx R nRIOT0CS=1, nRIOT1CS=1, nRAMCS=1, nROMCS=0 zero page ROM */ /* 0100-01ff selects RIOT1 RAM 0000 0001 1xxx xxxx RW nRIOT0CS=1, nRIOT1CS=0, nRAMCS=0, nROMCS=1 stack - 128 bytes of RAM wrapped into 256 bytes */ /* 0200-05ff selects ROM 0000 0010-0000 0101 R nRIOT0CS=1, nRIOT1CS=1, nRAMCS=1, nROMCS=0 low ROM */ /* 0600-09ff selects ROM 0000 0110-0000 1001 R nRIOT0CS=1, nRIOT1CS=1, nRAMCS=1, nROMCS=0 mid ROM */ /* 0c00-0fff selects ROM 0000 1100-0000 1111 R nRIOT0CS=1, nRIOT1CS=1, nRAMCS=1, nROMCS=0 high ROM */ /* fffa-ffff selects ROM 1111 1111 1xxx xxxx R nRIOT0CS=1, nRIOT1CS=1, nRAMCS=1, nROMCS=0 vectors */ /* 1000-101f selects RIOT0 I/O 0001 0000 0xxx xxxx RW nRIOT0CS=0, nRIOT1CS=1, nRAMCS=1, nROMCS=1 RIOT 0 I/O */ /* 1700-171f selects RIOT1 I/O 0001 0111 0xxx xxxx RW nRIOT0CS=1, nRIOT1CS=0, nRAMCS=1, nROMCS=1 RIOT 1 I/O */ /* any other address outputs BADADDR signal */ /* writes to ROM output ROMWRITE signal */ /* *************** INPUT PINS *********************/ PIN 1 = A15; /* 6502 pin 25 */ PIN 2 = A14; /* 6502 pin 24 */ PIN 3 = A13; /* 6502 pin 23 */ PIN 4 = A12; /* 6502 pin 22 */ PIN 5 = A11; /* 6502 pin 20 */ PIN 6 = A10; /* 6502 pin 19 */ PIN 7 = A9; /* 6502 pin 18 */ PIN 8 = A8; /* 6502 pin 17 */ PIN 9 = A7; /* 6502 pin 16 */ PIN 10 = PHI2; /* 6502 pin 39 */ PIN 11 = R_W; /* 6502 pin 34 */ FIELD ADDRESS=[A15..A7]; /* *************** Output PINS *********************/ pin 17 = nRIOT0CS; /* 6532 pin 37 */ pin 18 = nRIOT1CS; /* 6532 pin 37 */ pin 19 = nRAMCS; /* 6532 pin 36 */ pin 20 = nROMCS; /* 2732 pin 20 */ pin 21 = nROMOE; /* 2732 pin 18 */ pin 22 = BADADDR; /* debug: no device selected */ pin 23 = ROMWRITE; /* debug: write to ROM */ nRIOT0CS=!(ADDRESS:[0000..007f] # ADDRESS:[1000..101f]); nRIOT1CS=!(ADDRESS:[0100..01ff] # ADDRESS:[1700..171f]); nRAMCS=!(ADDRESS:[0000..007f] # ADDRESS:[0100..01ff]); nROMCS=!(ADDRESS:[0080..00ff] # ADDRESS:[0200..05ff] # ADDRESS:[0600..09ff] # ADDRESS:[0c00..0fff] # ADDRESS:[ff00..ffff]); nROMOE=nROMCS # !PHI2 # !R_W; BADADDR=nRIOT0CS & nRIOT1CS & nRAMCS & nROMCS; ROMWRITE=!(nROMCS # R_W);