A Guide to MPU4 Hardware
Additional content courtesy of iamtheone, Dialtone, CanonMan, System 80
Additional commentary in italics
Introduction
It should be noted that closed source emulation of this hardware has already been achieved, through the (MFME project,Latest version with debugger is 2.0). Although the CPU threading can be tricky to set up in this program, it does at least feature a rudimentary debugger, which can be used to study the hardware one board at a time.
MPU4 Main board
The main board was designed in the late '80s, with an M6809 CPU running at 1.72 MHz, [MPU4 Schematic], [MPU4 Technical Manual]
Memory Location (Hex) |
R/W |
D0 |
D1 |
D2 |
D3 |
D4 |
D5 |
D6 |
D7 |
Chip |
|---|---|---|---|---|---|---|---|---|---|---|
0000-07FF |
R/W |
RAM |
||||||||
0800-0810 |
R/W |
Characteriser (PAL) |
||||||||
0850 |
W |
Bankswitch |
||||||||
0880-0883 |
R/W |
? |
? |
? |
? |
? |
? |
? |
? |
PIA6821 on soundboard (Oki MSM6376@16MHz) |
Port B (0882) |
? |
vol. direction |
vol. clock |
ready (active high) |
||||||
08C0-08C7 |
R/W |
MC6840 on soundboard |
||||||||
0900-0907 |
R/W |
MC6840 (IC2) |
||||||||
0A00-0A03 |
W |
Lamp Drive 1 |
Lamp Drive 2 |
Lamp Drive 3 |
Lamp Drive 4 |
Lamp Drive 6 |
Lamp Drive 7 |
LampDrive 8 |
Lamp Drive 9 |
PIA6821 IC3 CA1 INPUT o2 from PTM6840 (IC2)
|
W |
Lamp Drive 10 |
Lamp Drive 11 |
Lamp Drive 12 |
Lamp Drive 13 |
Lamp Drive 14 |
Lamp Drive 15 |
Lamp Drive 16 |
Lamp Drive 17 |
CB2 OUTPUT alpha reset (clock on some Dutch systems) |
|
0B00-0B03 Port A |
W |
7 Segment LED data |
PIA6821 IC4 CA1 INPUT, 50 Hz input
|
|||||||
| port B (0B02) |
R |
Lamp Overcurrent |
Lamp Undercurrent |
50 Hz input |
Reel D optic |
Reel C optic |
Reel B optic |
Reel A optic |
Serial Rx |
CB1 INPUT, serial Rx CB2 OUTPUT, reel optic enable |
0C00-0C03 port A |
R/W |
AUX 1 |
PIA6821 IC5 CA2 OUTPUT, serial port Tx |
|||||||
Port B (0C02) |
R/W |
AUX 2 |
CB1 INPUT, connected to (AUX2 pin 4) CB2 OUTPUT, AY8913 chip select line |
|||||||
0D00-0D03 Port A |
R/W |
AY8913 Data Port |
PIA6821 IC6 CA2 AY8913 BC1 |
|||||||
Port B (0D02) |
W |
Reel A |
Reel B |
CB2 AY8913 B01R |
||||||
0E00-0E03 Port A |
W |
Reel C |
Reel D |
PIA6821 IC7 CA2 OUTPUT, ('A') on 74LS138 multiplexer |
||||||
Port B (0E02) |
W |
Mech Meter 1,2,3,4 or Reel E |
Mech Meter 5,6,7 or Reel F |
Voltage Drop Sensor |
CB2 OUTPUT,Mech Meter 8 |
|||||
0F00-0F03 Port A |
R |
Multiplexed Input data |
PIA6821 IC8 CA2 OUTPUT, ('C') on 74LS138 multiplexer |
|||||||
Port B (0F02) |
W |
TRIAC 1 |
TRIAC 2 |
TRIAC 3 |
TRIAC 4 |
TRIAC 5 |
TRIAC 6 |
TRIAC 7 |
TRIAC 8 |
CB2 OUTPUT, Alpha clock |
1000 -FFFF |
ROM |
|||||||||
Video Board
This uses a modified program ROM cartridge (the Serial Interface), which alters the above memory map. Firstly, the Characteriser chip is replaced by a MC6850 ACIA, while extra RAM is used to replace part of the ROM space, the remainder taken up with a small BIOS program. The IRQ handling is also adjusted, with all generated IRQs (bar the ACIA) being rerouted to the FIRQ line. The result of these changes is to permit the uploading of 6809 code via the ACIA for execution. The other end of the serial communication is a larger, 68000-based board. clocked at 10MHz, referred to here as the video board [Video Board Technical Manual].
The MPU4 continues to perform its usual function of input and lamp handling, in an identical manner to
those described in the MPU4 field manual.
Unlike the MPU4, we do not have complete schematics for this board, so as a service to those interested, I have attempted to construct the memory map purely based on preliminary examination of the code.
However, scans of the board are now available [Scans].
| Range | Comment |
|---|---|
| 000000 - 7FFFFF | Program / GFX ROM |
| 800000 - 80FFFF | 64K Main RAM |
| 900000 - 900003 | SAA1099 Sound Chip (unconfirmed) |
| A00000 - A00003 | EF9369 data (0000 - 0001) and address (0002 - 0003) [EF9369 Datasheet] |
| A00004 - A0000F | Unknown |
| B00000 - B0000F | SCN2674 AVDC [SCN2674 Datasheet] |
| C00000 - C1FFFF | Character Address (Vid) RAM |
| FF8000 - FF800F | MC6850 ACIA communications |
| FF9000 - FF900F | 6840 PTM |
| FFD000 - FFD00F | Characteriser |
The 68k code is the main bulk of the program, protected by the Characteriser. The IRQ generation for the ACIA is wired to the IRQ line of the 6809, as well as the IRQ priority chip.
(Section to be completed)