A long time ago in a galaxy really quite close by I designed a single board computer called the Microbox 2 (MB2) which was based around the 6809 and FLEX OS. It had a number of advanced (for 1982) features such as integrated EPROMdisk and RAMdisk, hi-res hardware accelerated graphics with a bitmapped text display that could use different languages and character sets (even Arabic), and a battery backed RTC and PRAM. As it had FLEX compatible drivers in EPROM, it could boot from any configured or un- configured copy of FLEX. It sold quite well, and launched my design career.
Not quite so long ago (2005), I revisited the MB2 design with a version built around a Xilinx ‘Spartan’ FPGA dev kit and although this worked well I wasn’t happy with the design as it only kept to the spirit of the MB2 and couldn’t run much of the original’s software. Also due to a lack of space in the FPGA it wasn’t possible to emulate the uPD7220A Graphics Display Controller (GDC) which was one of the defining features of the MB2.
Recent events have given me time to look once again at an updated version of the MB2 and the Microbox 2020 (MB2K2) is the result. This time there is a combination of custom hardware and software that aims be a complete emulation of the MB2 to the point of running the original’s software without modifications.
The MB2K2 is a hardware based emulator built around an Xmos XU216 SoC where each of the 16 RISC cores in the XU216 map onto one of the individual LSI chips in the system being emulated, CPU, PIA, ACIA, GDC etc. The XU216 has 512KB of internal RAM and boots from an external QSPI serial flash device that holds the Xmos firmware and the promdisk for the 6809. As well as the XU216 the PCB includes a battery backed RTC, LEDs and DIP switches, VGA based video out, PS/2 keyboard interface and a USB connector for power and dual high speed serial ports which appear as CDC class virtual com ports to a Windows, MacOS or Linux based host computer.
The PCB has an abundance of test points and features to aid firmware development and is designed with an eye to easy manual assembly.
The MB2K2 is highly customisable. Xmos supply a free Eclipse toolchain that includes an IDE, compilers and debuggers that work with a low cost USB to JTAG debug interface allowing the user to change the MB2K2’s firmware. Although initially the MB2K2 has been used to emulate the MB2, there’s nothing to stop the emulation of other systems, processors and LSI devices.
The initial firmware release supports:-
• MC6809 processor emulation running at approx 8MHz equiv
• 64KB of 6809 RAM with MON09 and FLEX in ‘ROM'
• 200KB ramdisk + 3MB promdisk • WD2123 DUART emulation with twin serial ports to the host computer as VCPs via USB, one can be used with FlexNet for remote mass storage
• MC146818 RTC emulation via a physical battery backed RTC/PRAM on the PCB • MC6821 PIA emulation for the MB2’s bell and option switches and PS/2 keyboard interface (replaces the MB2’s parallel keyboard)
• uPD7220A hardware graphics accelerator emulation, 768x576 ‘VGA’
• PS/2 keyboard interface
• 80x80mm double sided 4 layer PCB which is designed to be assembled by hand with few fine pitch components and ‘large’ (0805) discrete throughout etc.