B board · sheet 1/9 · manual page 11

The object RAM sheet

Where the sprite table lives once the CPU has handed it over, and the adders that turn a sprite's position into a question about the current scanline.

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 sprites work

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

What this sheet is for

The 2114s at 11E and 12E hold the copy of the object table that the DMA brought across. From here on the CPU is irrelevant; this is the video board's own data.

The adders are the real content. 9E, 9F, 10E and 10F are 74LS283 four-bit adders, and they exist to answer one question over and over: does this object appear on the line being drawn?

Subtraction by adding

The test is whether the current line minus the object's Y position falls inside the object's height. There is no subtractor here, because there does not need to be one: feed the adder the inverted value and a carry-in of 1 and you have two's complement subtraction for free.

That is why a sheet full of adders is really doing comparisons. It is one of the most common tricks on any board of this era, and it is invisible until you notice the inverters feeding the adder inputs.

Ninety-six, not one hundred and twenty-eight

The RAM is addressed for 128 records but only 96 are ever scanned. /OVER96 is a NAND of OB7 and OB8, and record 96 is 1100000 in binary, so the moment both of those bits are high the scan is stopped.

One gate, one limit. The sheet's own title says 96 OBJECTS DATA RAM, and this is where that number physically comes from.

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