"Single instance" machines (NES programming)

From: Andrew Davie <adavie_at_mad.scientist.com>
Date: Sun Dec 13 07:33:12 1998

> The Nintendo's video arch sounds similar to the Commodore 128's 8563 VDC,
> which according to designer Bil Herd was a nightmare. All 16 to 64K of VDC
> memory is only accessible through the ports at $d600/d601. Worse, you have
> to observe proper timing (and sometimes write the registers *twice*). The
> 8563, originally intended for the mythical CBM 900 mainframe, was
> supposedly

Pretty much the same.
The read (for some reason) was buffered, so you'd set your two byte address,
then read the register (to bring it into the buffer), then read it again to
get the actual value. NES was also time-critical. If you tried to
read/write graphics data when the screen was on - well, too bad - because
the hardware also used the very same address register for displaying the
screen.. You ended up corrupting the screen and worse.
It made for innovative programming - I ended up using these strange quirks
to implement a software multidirectional scroll, previously considered
impossible on the plain vanilla NES. Fun days.

Cheers
A
Received on Sun Dec 13 1998 - 07:33:12 GMT

This archive was generated by hypermail 2.3.0 : Fri Oct 10 2014 - 23:30:49 BST