Console Versions

From NerdConsole
Jump to navigationJump to search

The evolution of the NerdConsole design has been a bumpy road. Originally, it was designed to have a user port that would allow development of customized hardware that could do a wide array of things. The idea was that this user port would allow developers to make better debugging tools and interesting peripherals. As the hardware to support this grew more complex, I started to wonder if it was worth it. The user port was adding a fair amount of complexity to the main board of the system and several parts that added to the price of building a NerdConsole.

This led to splitting the design into the arrangement that is somewhat common in console design. I decided to have a standard edition and a separate more advanced development edition. This way I could simplify the design for normal users that don't need a fancy extra way to communicate with other hardware while still making them available for people that do.

The biggest reason for two versions of the console is a realization that I've owned and used the NES for decades and have never once needed the NES expansion port. All of the front loader NES systems have one, and I'd bet you never used it either. That means that the scope creep to add an Expansion Port to NerdConsole occurred very early in the project with the statement "the NES has one, so I should too" but without stopping to think about the value of the port being there.

Next, I realized I was getting tired of maintaining all sorts of documentation, PCB designs, and other project artifacts twice. The overhead caused by this made me drop the development edition of the console entirely. The result is that there is now a single simplified version of NerdConsole, half the stuff to keep track of for me and a truly tiny chance of anyone missing it.

What remains of this design evolution is this simple description about what once was.

Removed Features

Feature Description
Internal Expansion Ports A 64-pin connection (provided as 2x 2x16-pin blocks) for use inside the console. It granted easy access to practically every signal in the system.
External Expansion Port A 25-pin DB25 connector exposed on the side of the console. It provided a reduced set of signals outside the system to support the creation of new hardware devices.
IRQ Type Register A control page register that could be read to identify the source of a general purpose interrupt request. The IRQ pin is now hard wired to the IRQ pin on the YM-3812 audio chip.
User Port Register Select A control page register that was used to select which register in a 65C22 VIA Chip was being accessed.
User Port Data Value A control page register that was used to send data to the selected register in the 65C22 VIA Chip.
Clock Divider Jumper A 2x9-pin jumper connector that allowed control over the system clock speed. Values ranging from Full speed down through 1/256th speed were possible.
Clock Divider Counters A pair of counter chips used to divide the clock signal.