A board · sheet 1/8 · manual page 3

The CPU sheet

A 6809 where the sister board had a Z80, five ROM sockets where two would do, and a processor that spends part of every frame deliberately frozen.

Draft. This sheet was read from the original 1985 drawing and cross-checked against MAME, but it has not yet been walked pin by pin against a physical board. The logic described here is what the drawing shows.
This sheet is part ofHow the 6809 runs the game

The subsystem followed end to end, across every sheet that builds it.

What this sheet is for

Four jobs. It runs the program on an MC68B09P at 11L. It decides which chip answers each address. It reaches past the 64K the processor can address, using a bank window. And it gives the bus away to the video board twice a frame, then takes it back.

The first job needs no help. The other three are why this sheet carries twenty-five chips.

Worth holding in mind throughout: in 1985 a logic chip cost real money and a custom chip cost a fortune. Almost every decision here is an answer to “how do we do this without spending another chip?”, and much of the cleverness is in what Capcom managed not to build.

A 6809, not a Z80

Capcom changed processor between Commando and this board, and the choice shows everywhere downstream. The 6809 has two index registers, a proper 16-bit accumulator and addressing modes the Z80 simply does not have, which makes the object table far cheaper to walk in software.

It also runs differently. The 6809 has no /WAIT line in the Z80 sense; instead it has MRDY, and holding that low stretches the current cycle indefinitely. That single difference is what makes the DMA on this board work the way it does.

More program than address space

The 6809 can address 64K. The game has more program than that, so a window at $4000 shows one 8K bank at a time and a register at $3E00 selects which. The rest of the map is fixed: work RAM at the bottom, ports and the palette in the middle, and permanently mapped program ROM at the top.

Commando needed none of this. Its Z80 program fitted, so there is no banking anywhere on that machine. If you have read those sheets, this is the first place the two designs genuinely diverge rather than merely differing in detail.

Work RAM2C, an 8K static RAM$0000Sprite RAMcopied out wholesale by the DMA$1E00I/O, scroll, sound latchports, not memory$2000Palette RAM256 colours the CPU can rewrite$3800BANK WINDOW8K, switched by the $3E00 register$4000Program ROMfixed, always present$6000the 6809's 64K, as the decoder carves it upone window, several ROM banks

The 6809 has 64K of address space and this game has more than 64K of program. The window at $4000 is the answer: a register at $3E00 chooses which 8K bank appears there. Commando never needed this trick.

Five sockets, two fitted

Column N carries five program ROM positions, silkscreened 8N, 9N, 10N, 12N and 13N. On the photographed board 9N and 13N are empty and the rest hold a mix of 27128 and 27256 parts.

Those designators are labels, not coordinates. Capcom numbered the slots and then laid them out to fit the board, so 10N ends up level with the 6809 at 11L. Any attempt to read the positions off a geometric grid gets them wrong, which is exactly what happened when these pages were first mapped.

Giving the bus away

Twice a frame the video board needs the entire sprite table, and it needs it faster than the CPU could ever copy it. So the CPU is removed from the equation: /MRDY2 goes low, the 6809 stops mid-instruction, the copy happens, and the line goes high again.

This is the sharpest contrast with Commando, where the processor is never stopped and instead fits into gaps the video hardware leaves. Here the video hardware simply takes what it needs. From the program's point of view nothing happened at all; a few microseconds went missing and no register changed.

handing the bus over, twice a frameCPU writesa port at $3C00/OKOUTfires the request/MRDY2 lowthe 6809 is STOPPED96 objectscopied to the video board/MRDY2 highthe 6809 resumes

This is the biggest behavioural difference from Commando. There the CPU was never stopped; here /MRDY2 halts the 6809 mid-instruction while the sprite table is copied, and releases it afterwards. The processor never knows it lost the time.

Every chip on this sheet

Click any of them to open the schematic with that chip selected in both panels.

← open the schematic for this sheet