Here's the official documentation (I think) for the dipswitches. I have no idea where this came from. I have sussed out what the switches do and it seems to match up for the most part with these. I also figured out what dipswitches 9 and 10 do. (see the documentation below)
And for where we're going, this will come in very, very handy. It is a desoldering tool. It's got a vacuum pump and a hollow heated tip. Makes removing chips and connectors and things very simple. And without further ado, here are the complete technical specs I have figured out so far. There are a few tiny holes here and there but it's pretty complete... should be enough to make an emulator run the menu or something :-)
Front controls: --------------- 3 controller plugs (regulation NES style), two are wired in parallel for pad #2 and the zapper, except the GND line which is used to turn the zapper off. 1 green LED for indicating TV/game 1 red pushbutton for TV/game selection 1 grey pushbutton for game reset 1 TEST button hidden behind door, near controller plugs. Pushing adds credit 6 position keyswitch, break before make operation. Pinout of the 26 pin connector that connects the front controls: ---------------------------------------------------------------- 1 - +5V 2 - +5V 3 - Front LED anode (cathode is grounded) 4 - TV/Game button (5V on other end- connected to pin 6) 5 - RESET button (grounded on other end) 6 - +5V 7 - pin 3 of coin connector. connects to LED. (pin 2 of coin connector is grounded) 8 - TEST button (pushed = grounded) & pin 1 of coin connector. (shorting to ground adds credit) 9 - GND on zapper plug (!!) 10 - Din controller 1 (D0 on stick 1) 11 - Din controller 2 (D0 on stick 2 only) 12 - CLK controller 1 (stick 1 only) 13 - CLK controller 2 (stick 2 & 3) 14 - LOAD controller 1 & 2 15 - Zapper trigger (D4) on sticks 2 & 3 16 - Zapper detect (D3) on sticks 2 & 3 17 - D3 on stick 1 18 - D4 on stick 1 19 - Key position 0 (pulls to ground) 20 - Key position 1 21 - Key position 2 22 - Key position 3 23 - Key position 4 24 - Key position 6 25 - GND 26 - GND DB-15 on the back of unit (marked "15P expand"): ------------------------------------------------ (note: the pinout is the same as the Famicom's DB-15) 1 - GND 2 - audio output 3 - /IRQ 4 - 4017R.4 5 - 4017R.3 6 - 4017R.2 7 - 4017R.1 8 - 4017R.0 9 - 4017R enable 10 - 4016W.2 11 - 4016W.1 12 - 4016W.0 13 - 4016R.1 14 - 4016R enable 15 - +5V DB-25 on the back of the unit (marked "25P expand"): ---------------------------------------------------- 1 - +5V 2 - 5004R.0 3 - 5004R.2 4 - 5004R.4 5 - 5004R.6 6 - 5006W.0 7 - 5006W.2 8 - 5006W.4 9 - 5006W.6 10 - GND 11 - GND 12 - GND 13 - GND 14 - /IRQ 15 - 5004R.1 16 - 5004R.3 17 - 5004R.5 18 - 5004R.7 19 - 5006W.1 20 - 5006W.3 21 - 5006W.5 22 - 5006W.7 23 - GND 24 - M2 25 - GND Expansion connector (behind a small door on the back left side): ---------------------------------------------------------------- 1 - +5V 2 - +5V 3 - +5V 4 - M2 5 - Audio Input 6 - +5V 7 - PRG A6 8 - PRG A4 9 - PRG A2 10 - PRG A0 11 - PRG D1 12 - PRG D3 13 - PRG D5 14 - PRG D7 15 - PRG R/W 16 - pin #1 audio 17 - 4017R.5 18 - 4017R.7 19 - 4016R.5 20 - 4016R.7 21 - 5007R.3 22 - 5007R.6 23 - 5007R.7 24 - GND 25 - GND 26 - 5007W enable 27 - 5006R enable 28 - 5005R enable 29 - +5V 30 - +5V 31 - +5V 32 - PRG A7 33 - PRG A5 34 - PRG A3 35 - PRG A1 36 - PRG D0 37 - PRG D2 38 - PRG D4 39 - PRG D6 40 - /(5000-5fffh) 41 - /IRQ 42 - pin #2 audio 43 - 4017R.6 44 - 4016R.2 45 - 4016R.6 46 - GND 47 - GND 48 - GND 49 - GND 50 - GND ------ CPU space: 0000-1FFFh - 8K of RAM, with write enabling (see register 5002W) 2000-3FFFh - PPU 4000-4FFFh - CPU regs + unused 5000-5FFFh - system registers 6000-7FFFh - 8K of RAM, always writable 8000-FFFFh - cartridge space system registers: 4016W: (CPU 3 bit port) ----- 0 - Controls LATCH line on the joypads, DB-15 pin 12 1 - DB-15 pin 11 2 - DB-15 pin 10 4016R: (player 1 joypad register) ----- 0 - joypad 1 data D0 1 - DB-15 pin 14 2 - exp. conn. pin 44 3 - joypad 1 data D3 4 - joypad 1 data D4 5 - exp. conn. pin 19 6 - exp. conn. pin 45 7 - exp. conn. pin 20 4017R: (player 2 joypad register) ----- 0 - joypad 2 data D0, DB-15 pin 8 1 - DB-15 pin 7 2 - DB-15 pin 6 3 - joypad 2 data D3, DB-15 pin 5 4 - joypad 2 data D4, DB-15 pin 4 5 - exp. conn. pin 17 6 - exp. conn. pin 43 7 - exp. conn. pin 18 5000W: Exception Trap enable register (reset to 00h on powerup only) ----- 0 - 6.82Hz interrupt source (0 = enable) 1 - 8 bit timer expiration @ 5003W (1 = enable) 2 - controller reads (1 = enable) 3 - keyswitch rotation (1 = enable) 4 - money insertion (1 = enable) 5 - reset button (1 = enable) 6 - not used 7 - "CATV connector" pin 4 detection (1 = enable) 5000R: Device which caused an exception (0 = this device caused the exception) ----- 0 - 6.82Hz interrupt source hit 1 - 8 bit timer expired @ 5003W 2 - controller(s) were read 3 - keyswitch was rotated 4 - money was inserted 5 - reset button was pressed 6 - watchdog timer expired (reading either controller resets this timer) 7 - Pin 4 of "CATV connector" went high/open When 5000R is read, this register is reset, and the exception trap controller is reset. When one of the above exceptions occurs, the CPU is reset. The menu code then reads to see which of the sources caused the reset, and acts accordingly. A diverse selection of things can cause a reset to occur. 5001W Money handling register (reset to 00h on power up only) ----- 0 - pin 1 of 2D (3199) 1 - pin 2 of 2D (3199) 2 - pin 3 of 2D (3199) 3 - pin 4 of 2D (3199) 4 - pin 12 of 2D (3199) 5 - pin 14 of 2D (3199) 6 - enable pin 7 of "CATV" connector, 1 = enable. when in TV mode, output goes low. else output stays high 7 - inverter -> pin 8 of "CATV" connector 5002W LED & memory protect register (reset to 00h when CPU is reset) ----- 0 - LED sel 0 1 - LED sel 1 2 - LED sel 2 3 - LED sel 3 4 - Mem Protect 0 5 - Mem protect 1 6 - Mem protect 2 7 - LED flash- high = flash, low = steady LED sel: 01-0fh selects one of the LEDs on the front, 0 = no LEDs Mem protect: 0 - no RAM is writable 1 - 0000-07ffh is writable 2 - 0000-0fffh is writable 3 - 0000-17ffh is writable 4-7 - 0000-1fffh is writable 5003W 8 bit down counter, for attract mode timing ----- Writing to this location loads the counter with the 8 bit value written . It is clocked at a 6.8274Hz rate. When the timer wraps from 00h to ffh it triggers an exception, if it is enabled. (See 5000W and 5000R) This timer is used for the "attract" mode. It lets the game run for several seconds before it brings the menu back. 0 - C0 1 - C1 2 - C2 3 - C3 4 - C4 5 - C5 6 - C6 7 - C7 C0-C7: 8 bit counter value 5004W Cart control register (reset to 00h when CPU is reset) ----- 0 - cart 0 1 - cart 1 2 - cart 2 3 - cart 3 4 - row select 0 5 - row select 1 6 - Lock. writing a 1 here unmaps all hardware 7 - NC cart: These 4 bits select which cartridge is active. Cartridge 0 is the menu cart inside the unit, carts 01-0fh are the carts on the front. row select: These bits select which row of carts is active. 0 - only the internal menu cart is selected. 1 - carts 1-5 are selected 2 - carts 6-10 are selected 3 - carts 11-15 are selected Proper cart selection requires setting up BOTH the desired cart # (00-0fh), AND the proper row. The menu software uses a small table to do this. 5005W CATV and joypad control (reset to 00h on power up only) ----- 0 - 1 = flip latching relay to position A (coil on pins 1 & 10) 1 - connects to 3199 2 - turn zapper on. 1 = turn on 3 - enable 40% input of modulator. 1 = enable, 0 = disable 4 - NC 5 - maps to 5007R.7 6 - joypad enable- 1 = disable, 0 = enable 7 - joypad swap. 1 = normal, 0 = swap swapping only swaps D0 and CLK 5006W (not reset, unknown contents at powerup) ----- 0 - DB-25 pin 6 1 - DB-25 pin 15 2 - DB-25 pin 7 3 - DB-25 pin 16 4 - DB-25 pin 8 5 - DB-25 pin 17 6 - DB-25 pin 9 7 - DB-25 pin 18 5007W (not implemented) ----- The enable for this runs to pin 26 of the expansion connector. 5001R (not implemented) ----- This enable does not go anywhere. 5002R Dip switch register ----- 1 = switch in "on" position 0 - DIP SW 1 1 - DIP SW 2 2 - DIP SW 3 3 - DIP SW 4 4 - DIP SW 5 5 - DIP SW 6 6 - DIP SW 7 7 - DIP SW 8 5003R ----- 0 - key position 0 (1 = in this position) 1 - key position 1 2 - key position 2 3 - key position 3 4 - key position 4 5 - key position 6 6 - money system enabled (pin 9 of 3199) 7 - pin 10 of 3199 5004R ----- note: inputs are inverted 0 - DB-25 pin 2 1 - DB-25 pin 15 2 - DB-25 pin 3 3 - DB-25 pin 16 4 - DB-25 pin 4 5 - DB-25 pin 17 6 - DB-25 pin 5 7 - DB-25 pin 18 5005R (not implemented) ----- The enable for this runs to pin 28 of the expansion connector. 5006R (not implemented) ----- The enable for this runs to pin 27 of the expansion connector. 5007R ----- 0 - TV type selection (1 = game, 0 = TV) 1 - keyswitch turned (1 = in middle of positions) 2 - 0 = zapper grounded 3 - pin 21 of exp. conn. (inverted) 4 - state of pin 8 of "CATV" connector, 0 = low, 1 = high 5 - relay position. 0 = position A, 1 = position B 6 - pin 22 of exp. conn. (inverted) 7 - 5005.5W (inverted) Counter chain: -------------- There is a long counter chain. It starts out with the 21.47727MHz signal, which is first divided by 3. This then passes to a 14 bit binary counter that has a tap at the 13th bit to generate a 873.91Hz tone to indicate money was inserted. The 14th bit runs to a 12 bit counter. A tap at bit 6 produces a 6.827Hz clock to run the counter at 5003W. Another tap at bit 7 produces a 3.414Hz clock which is used to flash the LEDs on the front. A final tap at bit 9 produces a 0.85Hz clock which is used to run the watchdog timer. Watchdog timer: --------------- A 4 bit binary up counter is used. It is clocked at 0.85Hz. When a controller is read (either one), this timer is reset. When the count wraps from 0fh to 00h, an exception is generated. (see 5000R and 5000W) Audio chain: ------------ The audio chain is kinda interesting. The audio passes from the two pins on the CPU, through two hex inverter audio amplifiers, and then the outputs of these go to the expansion connector, and then through two more hex inverter amplifiers. The outputs of those two amps is combined with external audio (again from the exp. conn.) and the coin beep, which is finally fed to the DB-15, DB-25, and the modulator and audio jack. The beep is made whenever money is inserted. Modulator: ---------- The modulator has a couple inputs: Audio - mono audio from amplifier+external+coin feep Video - comes from the usual transistor circuit on the PPU B+ - connects to 5V B+SW - when grounded, switches the game in. when high, lets TV signal pass through GND - connects to ground 40% - undermodulates video by 40% when low. high = normal The 40% input is weird. When the time is about to expire on the coin mechanism, it feeps and flashes the screen by using this 40% input. The LED on the coin mech also flashes in time with the feeping. Dip switch: ----------- Positions: 1 - Self Test. When on, unit will continuously self-test 2 - Coin timeout period. off = 10 minutes, on = 20 minutes 3 - not used 4 - Famicombox menu time. off = 7 sec, on = 12 sec 5 - attract time 6 - attract time 7 - Mode 8 - Mode 9 - when on, mutes the money feep 10 - when on, enables D3 and D4 on controller 2. when off, the only access is through the DB-15 socket --- Attract time: How long each game plays while in attract mode before switching to the next. 5 6 OFF OFF - 12 seconds ON OFF - 17 seconds OFF ON - 23 seconds ON ON - 7 seconds --- Mode: Operational mode. 7 8 OFF OFF - "KEY MODE" ON OFF - "CATV MODE" OFF ON - "COIN MODE" ON ON - "FREEPLAY" --- |