I don't have any information on the model 3 comm boards yet, so I just write down what I know of the "older" ones.
There are several older comm boards which I did tinker around with.
( images at
http://images.arianchen.de/?x=sega-comm )
System Y
- Power Drift Link
System X
- GP Rider*
System H1
- Cool Riders
System 32
- Air Rescue*, F1 Exhaust Note*, F1 Super Lap, Rad Rally
System Multi32
- OutRunners, Stadium Cross
Model-1
- Virtua Racing, WingWar
Model-2/2A/2B/2C
- 2o: Daytona USA, 2a: Sega Rally, 2b: Indy 500, 2c: Sega Touring Car Challenge
*not a real comm boards
---
They all share a similar setup.
For the host system they appear as shared memory that they can read from / write to.
They have an eeprom, a Z80 cpu, internal RAM and some HDLC chip.
Memory size increased over time.
System 32 (Air Rescue, F1 Exhaust Note)
- uses 4k "shared" dual-port SRAM. (0x810000, 0x810fff)
- MASTER / SLAVE register; tied to gnd on MASTER and +5V on SLAVE. (0x818000)
- a bridge board between two boardsets
System 32, Multi32:
- uses 4k "shared" dual-port SRAM. (0x00800000, 0x00800fff - only odd addresses)
- CN and FG register. (0x00801000, 0x00801002)
- 4 "active" comm boards max.
Model-1:
- uses 4k "shared" dual-port SRAM. (0x00B00000 - 0x00B00fff)
- CN and FG register. (0x00b01000, 0x00b01002)
- 8 "active" comm boards max.
Model-2:
- uses two 16k SRAM "pages". (0x01a10000 - 0x01a13fff)
- CN and FG register. (0x01a14000, 0x01a14002)
- 8 "active" comm boards max.
The CN register controls the "RESET"-line on the comm boards cpu. A basic "On/Off"-switch.
The FG register is a bit more complicated:
- On System 32, Multi32 and Model-1 this is used to communicate between host cpu and comm cpu. Each CPU can set 1 bit and read the other ones 1 bit. Does not seem to be used though.
- On Model2 this is ALSO used to indicate which page is visible to each CPU.
---
The comm boards each have a TX and RX line which use TOSLINK cables to connect.
There are three modes of operation: Master, Slave and Relay.
They get connected in a ring. Unit 1 TX goes to Unit 2 RX and so on.
Master and Slave behave similar with the exception that the slaves will NOT start communication by themselves. Each board gets a unique node id.
Relay is just a passive reader which will be "invisible" on the network. (Used for spectator units)
At least on Model-2 the "slot size" can be set:
- Daytona uses 9 slots with 448 byte each. = 4032 bytes
- VirtuaOn uses 2 much larger slots.
Daytona writes it's own data to slot 1, then sends slot 1 through 8 as 3584 byte packet "on the line".
Daytona reads 3584 bytes of data to slot 2 though 9.
---
Comm Boards also have a connection called "DOP" which is used to delay the video boards - This is used to synchronize the V-Sync on all machines during boot.
---
Based on what I've read the first obvious difference from the older comm boards to the m3comm would be that the Z80 was replaced by a MC68000 cpu.
Another difference is - Model-3 is PCI based, while the older boards are ISA based.
It appears the Model3 comm board uses address 0xc0000000 to 0xc003ffff on the host side.
If the MAME source is correct the "shared" memory size is 64k - most likely banked.
Sadly I seem unable to compile MAME at the moment, so I cannot step debug the host code...