Sunday, September 3, 2023

NuXT 2.0 Motherboard - A New 8088 Motherboard for your DIY PC Clone

In the recent past I have discussed the Book 8088 and the Hand 386, which are newly made vintage computing systems.  I concluded that those products, although not uninteresting were rather flawed.  The Book 8088 was by far the more disappointing of the two devices.  I have also been made aware of a project which tries to fulfill a similar niche, the NuXT motherboard. The NuXT is an 8088-based motherboard you can buy brand new and can really fill that IBM PC-clone hole in your vintage collection. While I do not own one of these, I have read and seen enough about it to give my thoughts on whether this product would be right for you.

NuXT Mainboard (courtesy of Monotech)

Specifications Overview

Like with my previous blog entry on the Book 8088, let me present the main specifications of this motherboard first:

  • Socketed CPU for 8088/V20 CPU, switchable between 4.77, 7.16 or 9.54MHz
  • Socket for 8087 Math Coprocessor
  • MicroATX Form Factor
  • 512-640KiB Conventional Memory and 192KiB Upper Memory
  • 128KiB Flash Memory for BIOS, split into two 64KiB BIOS Options
  • High & Extended Density Floppy Controller
  • XT-IDE with Compact Flash Card Adapter & IDE port
  • Serial, Parallel, PS/2 Keyboard & PS/2 Mouse Ports
  • Real Time Clock
  • ATX 20-pin Power Connector
  • Four 8-bit ISA Slots
  • PC/104 Connector
All the older chips which had to be sourced from New Old Stock or from Chinese suppliers are socketed, which is a great thing as that makes them easy to troubleshoot and replace. 

CPU & NPU Options & Speed

This system can support a fast 8088 or V20 CPU, but the CPU must be rated for 10MHz operation or you will need to set the system speed accordingly. The NPU/Math Coprocessor must also be rated for 10MHz or you will have to throttle the system. The system as sold by Monotech included a 10MHz CPU with your choice of the 8088 or V20, and an 8087 can be added for $15. You can leave off the CPU and save yourself $5. You can set the bootup system speed in the BIOS, which has several settings which can be saved.

The original IBM PC and XT used a logic board composed of off the shelf generic logic chips and six Intel support chips, the 8284 Clock Generator, the 8288 Bus Controller, the 8237 Direct Memory Access Controller, the 8253 Programmable Interval Timer, the 8255 Parallel Peripheral Interface and the 8259 Programmable Interrupt Controller.  All are more-or-less simulated on the NuXT with the Faraday FE2010A, which claims 100% IBM PC/XT system compatibility.

Speed is likely to be the core issue with this motherboard. The system maxes out at a TOPBENCH score of 11 with the V20 running at 9.54MHz, with scores of 8 and 5 with the V20 running at 7.16MHz and 4.77MHz, respectively. You should be able to subtract 1 from each score if you are using an 8088.  The fastest V20 machine with a Juko Turbo XT motherboard recorded scored a 13, so the NuXT is pretty close to the limit to which you can take a CPU with an 8-bit data bus. 

For comparison purposes, an AT class machine can range from a TOPBENCH score of 11 to 18. The IBM PC AT with an EGA card scores an 11 at 6MHz and 14 at 8MHz. The Tandy 1000 TX or TL with the built in Tandy Graphics Adapter scores a 15 and an IBM PC/XT 286 with a 6MHz 286 and a Tseng ET4000AX VGA card scored an 18. The graphics adapter used can shift the resulting TOPBENCH score significantly.  IBM's cards are not as fast as Tandy graphics and VGA cards vary quite significantly in speed, with Tseng chipsets being very fast and Trident chipsets being . . . not so fast.

There is the possibility to use CPU accelerator cards in the NuXT such as the Orchid Tiny Turbo, the Microsoft Mach 20 or the Intel Inboard/386 PC. All these cards use a ribbon cable to connect the card to the CPU socket, but the CPU socket is very close the ISA slots, so you should not have a problem. I do not know if these accelerators have been texted in the NuXT, but you can reach a TOPBENCH score of 23 with the Inboard if it works.

ATX Form Factor & Power Supply

One of the chief benefits of using this board is convenience. You can install it into any computer case which can support an microATX or larger mainboard. AT cases have not been made since the 1990s and most of them have not aged well aesthetically. An I/O shield is built onto the motherboard. 

The ATX power connector allows you to use modern power supplies with 20-pin or 24-pin connectors. Virtually any ATX power supply will provide more than sufficient current on the +5v line for an 8088-based system like this one. The original IBM PC XT 130W power supply could supply 15A on +5v, the cheapest brand name ATX power supply I could find offered 500W and 20A on the +5v line. Modern ATX power supplies provide far more current on the +12v line than any vintage power supply did, so you could run 8" floppy drives on this power supply if you wish. 

Even the latest ATX power supplies provide a -12v rail and while the -12v rail is only rated for 0.5A, that is more than sufficient for the miniscule needs of the system and the expansion cards. -12v is most often required by RS-232 serial ports and audio amplifiers found in sound cards. There is a linear regulator on the motherboard to generate a -5v supply from the -12v supply. This is mainly required for a few sound cards like the Sound Blaster 2.0 and the Roland LAPC-I.  VGA cards may also require a -12v or -5v line.

Ports & Slots

When it comes to built-in ports, the NuXT offers an array of practical ports for a vintage PC compatible. You have a PS/2 keyboard port which can support XT or AT keyboards. A passive adapter is required for 5-pin DIN keyboards. There is a built in AT to XT keyboard converter using a PIC12F629 microcontroller. If you wish to use an XT keyboard such as the IBM PC/XT Model F 83-key keyboard, you must remove the microcontroller and set the jumpers accordingly.

The serial and parallel ports are provided by the MaxLinear ST16C552 chip. This chip provides two serial ports, but only one port is presented to the user. The serial port is 16550 UART based, so it should be able to transmit reliably at up to 115,200 baud. The PS/2 mouse port converts the PS/2 protocol into a serial mouse protocol using the ATTINY2313 microcontroller. The converted data is passed to the 2nd serial port. You can of course use a true serial mouse in the serial port. The parallel port is bidirectional, so data transfers are not crippled by the slow "unidirectional" port. Three of the four ISA slots can fit card with 16-bit connector (Sound Blaster Pro) or a "skirt" (IBM CGA).

Hard Drive & Floppy

The drive ports are well-placed close to the ATX power input connector. There is one IDE port and one floppy port. The IDE port and the Compact Flash port comprise the sole IDE channel and either can be made master or slave. The IDE port can optionally supply +5v on pin 20 for storage devices like a Disk-on-Module or CF adapter. A 64MiB or 128MiB card is supplied but can be eliminated to save a $5. There is no obvious reason why you could not run an IDE CD-ROM drive in this system, the very low memory device drive VIDE-CDD.SYS works with an 8088.

The floppy controller is constructed around the National Semiconductor PC8477B "Super FDC" and can support up to two drives and the drives can be of any standard variety, 5.25" or 3.5", 360KiB, 720KiB, 1.2MiB, 1.44MiB to 2.88MiB, a.k.a. Double Density, High Density and  The drive type is configured in the BIOS. Support for FM and Single Density disks is also advertised, but unless you are trying to write disks for an Atari 8-bit computer or an ancient 8" disk, that will have little meaning to most users.

Video

The PC/104 header is an extension of the ISA bus and intended for a custom-designed VGA card. The use of the PC/104 header saves space and an ISA slot. The VGA card uses a Trident 9000i chip and comes with 256KiB of video memory. An upgrade to 512KiB if available and a pair of sockets are on the card for this purpose. With 256KiB of RAM the standard VGA modes are available plus 800x600 with 16 colors and 1024x768 with 4 colors.  512KiB adds 320x200 with 256 colors, 800x600 with 256 colors and 1024x768 with 16 colors. The card's higher resolution graphics modes are supported in Windows 3.0 with the provided driver, but it is going to be slow going at the higher resolutions. I expect for gaming the EGA capabilities of this card are going to be used more often than the VGA capabilities.

The VGA card also plugs into a 2nd header on the mainboard which is connected to the VGA output port on the rear I/O panel. You can disable the card via a dipswitch. The introduction of the PC/104 connector is new to the 2.0 revision of the board, the "1.0" revision that LGR reviewed had the VGA chips installed directly onto the mainboard. As the card is now optional on the 2.0 revision you can omit it and save yourself $40. I assume you could use other PC/104 upgrades with this connector, but I do not know how many other PC/104 boards will work with an 8-bit only PC/104 system.

RTC & Speaker

The Real Time Clock is handled by a Dallas DS12885 chip powered by a CR2032 coin cell battery in a holder. The BIOS has support for setting the date and time but you can use DOS for this purpose as well. A DOS driver is not required.

There is a significantly large onboard PC speaker installed on the mainboard and a 4-pin header for an external speaker, which disables the internal speaker. The mainboard speaker looks to use a cone, not a piezo tweeter, so it should be decently loud on its own. There is a front panel header with connections for power, reset, IDE LED and power LED. There are also power and reset buttons on the mainboard.

Memory

Memory is a subject requiring a certain degree of in-depth exploration.  There are two system RAM sockets, each accepting a 512KiB SRAM module. The first socket gives you up to 512KiB of Conventional Memory, and the second socket gives you 128KiB of extra Conventional RAM for the normal 640KiB. 

The area above 640KiB to the 1MiB limit of the 8088's addressing space is known as the Upper Memory Area and is not generally available for use by programs but can be used by ROMs, memory mapped peripherals and RAM configured into upper memory blocks (UMBs). UMBs can be configured via dipswitch to appear in 32KiB blocks between C0000-EFFFF. What parts of that area will be available to you will depend on what expansion cards you have in the system. One could criticize the board for not offering the area from A0000-AFFFF because that area is available if you are not using an EGA or VGA card. B0000-BFFFF is also not offered even though B0000-B7FFF is available if you are not using a MDA or Hercules card and B8000-BFFFF is available if you are using only an MDA card or a Hercules card in "half mode".

The PC/104 VGA card will prevent you from using the area between C0000-C8000 for a UMB because that is where its VGA BIOS is located.  An EGA card will present you with the same limitation but a MDA, CGA or Hercules card will not. An EMS card will require a window in the upper memory area, so either D0000-DFFFF or E0000-EFFFF will not be available to you if you use an EMS card. An MFM XT hard drive card will come with its own BIOS and will require some space in the upper memory area.

There are some drivers which are required to be loaded in DOS to utilize upper memory blocks.  Upper memory blocks can load not only device drivers but also portions of DOS in them if there is sufficient room. This will help reduce the memory footprint of drivers and DOS in conventional memory, saving it for programs. If you want to load a mouse driver, UMBs will make little difference, but if you want to load disk caching drivers, network packet drivers or CD-ROM drivers, UMBs become a lot more relevant. As this is an 8088 machine and not a 386, UMBs must be set via dipswitches, not EMM386. If set correctly as stated in the manual, MS-DOS 6.22 may only take 10KiB of Conventional Memory.

Firmware ROM

The system BIOS is contained on a 128KiB flash chip, divided into two 64KiB sections. The BIOS occupies the F0000-FFFFF area of upper memory, so only one half of that 128KiB can be active at one time. You can flash the BIOS via a DOS utility, but only 32KiB at a time. You select the active 64KiB section of the flash chip via a dipswitch. 

The system uses the XT-IDE Universal BIOS to interface with the IDE port and Compact Flash port. The BIOS is contained in the 32KiB area from F0000-F7FFF. You will not be able to flash the 286 or 386 BIOSes, regardless of what the manual says. You can only flash the 8088 or V20 BIOSes, and if you are never going to use an 8088 in this system, use the V20 BIOS.  Fortunately the BIOS comes programmed so that the primary 64KiB section contains the V20 XT-IDE BIOS and the secondary 64KiB section contains the 8088 XT-IDE BIOS.

Attribution & Documentation

One area in which this product does not lack is in attribution, unlike the Book 8088. Sergey Kislev is properly credited on the Monotech site, in the NuXT's manual and with the NuXT's BIOS as that BIOS is based off his open source 8088 BIOS. The NuXT is based mostly off his Micro 8088 and FDC and Serial board projects. The XT-IDE, AT2XT and the PS2 to Serial Mouse Converter are also open source projects drawn on in the NuXT and openly acknowledged. The mainboard itself is open source and the website links to the various GitHub repositories of the projects drawn upon. You can buy a board and not feel like you need to take a bath afterwards.

The product also does not lack for documentation, the dipswitches have silk screening and the manual is comprehensive. There are a lot of jumpers and dipswitches on the mainboard. There are dipswitches to set the type of graphics card installed, to enable the floppy and IDE interfaces, enable the on-board RAM, assign the CF card slot to master or slave, enable the UMBs, set the I/O and IRQs of the COM ports, set the I/O and IRQ of the LPT port, enable +5v on IDE pin 20, set the keyboard controller to use the XT protocol, change the IDE port address (requires cutting and soldering). There are also indicator LEDs on the mainboard for IDE activity, mouse activity, bus activity and 5VSB. 

Expansion

This motherboard is a dream for anyone into the early vintage PC era, it pretty much has everything that you need to get up and running. With those four ISA slots and given what is already present on the mainboard, the most important consideration you should make is to improving the audio from the PC Speaker, and on the latest revision of the NuXT 2.0, you may be satisfied with the built-in speaker. Obviously you can install any sound card that will work in an 8-bit slot, and several 16-bit cards will work more-or-less in an 8-bit slot. The Sound Blaster Pro cards are 8-bit cards despite their 16-bit connector, the 16-bit portion of the connector only provides optional DMA and IRQ choices. There are modern clones of the Adlib like the RadLib and the Sound Blaster like the Snark Barker, so you can use modern cards with this mainboard. I would suggest a Sound Blaster clone so you can get Adlib, a Game Port and digital audio on one card. 

There are ISA ethernet cards which will work in an 8-bit slot, including a homebrew card. Find one with an 8088-compatible DOS packet driver and you should be good to go. Lo-tech makes a 2MiB EMS board (sold by TexElec) that should complement the UMB abilities of the motherboard.

While Tandy video is not possible with this board, (but the Graphics Gremlin card be able to provide partial Tandy video support) Tandy audio can be used with many games. You can make a Tandy Nano ISA PCB with the information located in this post, but you will need to populate the board and solder the components to it. This board should be addressable in the NuXT at the Tandy canonical C0 port, but accessing ports that low is not guaranteed on all systems. Fortunately the system only needs to write to port C0, the Tandy sound chip cannot be read.

You could also use the TNDLPT from Serdaco. As you cannot run port redirection software on anything less than a 386 CPU, you will need to use patches to get games running with Tandy sound on a non-Tandy system with these hardware devices. The patches are located at ftp.oldskool.org\pub\TandySoundPatches 

The patches are rather clever in that they patch the instruction "out C0" to "int C0".  "Out C0" tells the CPU to send a byte in the CPU's accumulator register to a port address. "Int C0" tells the CPU to call a software interrupt listed as C0. In this case a TSR would have been loaded prior to the game's running in DOS that sets up an interrupt service routine which handles the port redirection. The game should not be aware of the difference but I do not know if the patches have been tested in a slower machine like the one the NuXT presents. 

Compatibility

The NuXT should be able to run almost anything you can throw at it that works on an IBM PC or XT. The motherboard will not give you perfect 100% IBM PC compatibility because the BIOS lacks Cassette BASIC, only found in true IBM machines. There are several software titles that rely on the presence of Cassette BASIC to run. You may be able to flash an IBM PC or XT BIOS to solve that compatibility issue, but you may have to locate the XT IDE Universal BIOS outside the F0000-FFFFF range and use a program to set the DOS date and time from the RTC's date and time.

The Trident VGA chip, while EGA, Hercules, MDA and CGA compatible, will not have register level compatibility with CGA or composite color support which many early IBM PC-compatible games rely on. You will need to install an IBM CGA card or a clone like the CGA_Redux for full compatibility with older games that rely on CGA features.

Even if you manage to get an IBM CGA and dodge the Cassette BASIC issue, you may not be totally satisfied with the motherboard's capabilities. Demos such as 8088 MPH and Area 5150 are very speed sensitive and were designed for an 8088 running on an IBM PC or XT. The use of SRAM on the NuXT motherboard will make the system a little faster than a stock IBM PC or XT because it does not have to refresh DRAM via DMA like the IBM machines did. While that will not make much of a difference with vintage games, these demos are not known for their tolerance of significant variance from the system performance of the original machine. Whether they work properly in the NuXT is unknown but if you use an IBM CGA card, you stand a good chance of getting them working.

What Games Run On it?

With a fast, speed switchable XT class clone like the NuXT, you can play just about any PC game from 1981 to 1987 and have about as good as an experience as you could have had with any system of that time that was not a Tandy or PCjr. 1988 is the year when PC compatible gaming really started to shine but the market was really focused on the 286 by this point and the 386 would soon be on the horizon of game developers. The NuXT is at its fastest only as fast as the slowest 286. Wolfenstein 3D was hacked to run on an 8086 or 8088, but VGA is going to be painfully slow, so I suggest you try the CGA hack instead. Based on the YouTube videos I saw, I would rank games in the following manner:

Playable
  • Stunt Car Racer
  • Elite
  • Outrun (CGA)
  • Paku Paku
  • Planet X3 (VGA)
  • Defender (8088 required for correct speed)
  • Action Fighter (EGA)
  • 688 Attack Sub
  • Round 42 (CGA card & 8088 required)
  • Pac-Man
  • Wolfenstein 3D (CGA Hack)
Tolerable
  • Commander Keen 4
  • Lemmings
  • SimCity (640x350 EGA)
Slow
  • Thexder II
  • Outrun (EGA)
  • LHX Attack Chopper
  • F16 Strike Eagle II (CGA)
  • Elite Plus (VGA)
  • Codename: ICEMAN
  • Stun Runner
Slide Show
  • Stunts
  • Wolfenstein 3D (VGA 8086 Hack)
Conclusion

The NuXT board is attractively designed, it reminds me of the Analogue Nt's PCB. There is something to be said for the ability to put a new mainboard into a modern chassis.  Many of the designs from the 1980s have not aged particularly well. Today we have more designs and more attractive ones at that. LGR's review showed only one possibility, but he certainly made a fine choice. Plus, unlike modern machines, the NuXT does not need any cooling fans to run the system outside of the power supply, so you can run this machine in virtual silence. (If you add an 8087, you might consider adding a heatsink to one as those run hot).

The lowest price you can buy the NuXT 2.0 motherboard with CPU is $275, which is more expensive than many modern mATX motherboards. These boards are made in small batches, and making them is not cheap. The price is fair for what you are getting. You can find full PC clones of this era for the price of this motherboard, but they are unlikely to come with an XT IDE and full documentation. You are also likely going to be limited if you want to put a vintage motherboard into a different enclosure and will need to workaround the AT form factor. Whether or not the NuXT 2.0 is worth it to you is a determination only you can make.

3 comments:

  1. What an interesting board, also many thanks for so in depth review!
    Note: what a nice trick the out to int patch :D

    ReplyDelete
  2. I purchased a NuXT v2.0 motherboard when they first came out in 2020. I have not been disappointed with the purchased. Yes, it is a bit expensive, but by the time you get a complete XT class system together you could easily exceed the cost of the motherboard. I wrote a little CPU Speed setting utility for my NuXT. If anyone is interested, I can provide a copy including source.

    ReplyDelete
  3. My NUXT was a bit boring. It ran planet X3 fine, which a lot of old XT class PC's do well too. I think it's main advantage was the small formfactor, very capable floppy controller (many drives from 720k->1.44 supported), and the removable CF card. I couldnt get networking running (I'm a noob with nortel on old machines, and couldn't find the right driver) so i sold it.

    ReplyDelete