Review: The Flea86 System

Flea86 logo*

Some things are hard to describe in a single sentence. The Flea86 has that problem. So let me start by taking you on a trip down memory lane ...

Imagine it is 1985 again and you are in the den with the family PC. The machine was probably large by todays standards, especially when you consider the bulky CRT monitor. But it played some great games like Zaxxon, Flight Simulator, Paratrooper, Zork, PC Man, Centipede, Kings Quest, etc.

Now imagine that machine shrunk down to a 4 inch by 5 inch circuit board, and you can use a flat panel display with VGA input and a PS/2 keyboard and mouse. It has been upgraded with PCjr/Tandy video modes and sound. And for a hard drive it has a small SDHC memory card.

Now you get the picture ... (click on any picture to see a larger version)
Flea86 board
That's it - that is the entire system. Connect a VGA monitor, PS/2 keyboard and mouse, power, and you are all set to boot DOS and play the classics again!

To give you a more accurate description of what it is, the Flea86 is a single board computer that closely emulates a Tandy 1000 series PC. Upgrades to make it more usable in a modern environment include the VGA port, PS/2 ports, and the SDHC card to emulate a hard drive. (MCGA graphics modes are available with a little tweaking.)

The single board computer is based on a modern microcontroller that is closely compatible with the original Intel 8052 microcontroller. The microcontroller emulates the entire Tandy 1000 machine in software, which is no small trick considering the modest programming resources of the microcontroller. After boot-up it is possible to switch from the default emulator to another one, making it possible to emulate a VGA based machine or even machines using different CPU architectures. (Right now the 8088 emulator is the most functional. There is an emulator available for the Apple ][, but it is basically limited to BASIC programs and no disk I/O is supported.)

Besides the obvious use as a portable retro gaming machine, the Flea also sports an expansion bus based on SPI (Serial Peripheral Interconnect) that you can access directly from within the emulated 8088 machine.

So there you have it - it is both a retro gaming machine with modern upgrades and a small single board computer using the familiar DOS environment.

Flea86 comes from the brain of Valentin Angelovski. I've known about it for over two years now, and was fortunate to receive an early sample at the beginning of 2012.

Getting started

Flea86 with display, keyboard and mouseThe Flea86 is a bare board so some caution should be used when handling it. Electronic components are sensitive to electrostatic discharge so ideally you should be operating it on a static dissipating mat. Unforuntately most of us don't have proper ESD safe workstations in our homes. For the initial power on you can probably set it on cardboard but for longer term usage it really needs an enclosure.

Connecting a display, keyboard and mouse are fairly simple. The Flea86 might not like your choice of keyboards, so if the one you choose does not work don't panic - just try another one. This is an XT class emulator so even though you get to use a PS/2 keyboard do not expect the LEDs on the keyboard to be updated.

The power connection requires some care and thought. A +5VDC regulated power supply (center-pin positive) producing at least 250mA is required. I found that the power supply used with the original Iomega Zip 100 drive works great with the Flea86; it supplies up to 1 amp and the barrel size is perfect. There is no power switch on the Flea86 - that has to be handled with an off-board solution.

If you look at the setup in the photograph the Flea86 is the green circuit board to the left of the coiled PS/2 cables. It is sharing desk space with my everyday-use Windows XP system, which I can access by swapping keyboards and toggling the input on the monitor. You can see that it is not much bigger than the PS/2 mouse I am using with it. The image on the screen is the Flea86 board picture from above, rendered directly on the Flea86 using Cshow 9.04 for DOS. (I used a version of the emulator that replaces the Tandy 1000 graphics support with VGA support.) Click here for a closeup on the screen so that you can see the 16 color image in all of its retro-glory.

Using the Flea86

Using the Flea86 is fairly simple. Ensure the SDHC card is inserted. Apply power and watch the magic ...

The default SDHC card that will be shipped with the Flea86 uses FreeDOS and is configured for MCGA graphics (yet another feature!). MCGA and Tandy graphics modes conflict on resources so you have to choose one of the other before booting. (The selection is made by changing a word of storage in the boot sector of the SDHC card.) Unfortunately FreeDOS does not seem to work well with the Tandy 1000 and it has not been debugged yet so if you want to use the Tandy graphics modes plan on preparing another SDHC card with your preferred version of DOS. (My SDHC has DR-DOS installed and is setup for Tandy graphics.)

Flea86 running Joust thumbnail       Flea86 running Windows 3.0 small

On a modern widescreen monitor the aspect ratio is going to be a little wrong. Also remember that even though the output is VGA, the emulated graphics adapters are more along the lines of CGA. To get 640x200 graphics to display requires quite a bit of scaling on a big screen so it is going to look like a big ugly version of 1984 has invaded your screen. Don't be upset - your memory has faded and the CGA fonts looked that bad back then too. We just did not know any better.

The Flea86 packs a lot of function into a small space, but there are some notable differences between it and the real Tandy 1000 that you have been lusting after on eBay.
The instruction set emulation is perfect as far as I can tell. I've spent waaay too much time enjoying a selection of old games. I ran Windows 3.0 for kicks, but that was nasty ...  it needs a better video card to be usable. (Windows on what is effectively CGA is bad.) I have not tested it directly but mTCP (my suite of TCP/IP applications for DOS) runs without modification when used with a parallel-port Ethernet card and an ISA breakout board. (Details on the ISA expansion board can be found in the Technical notes section.) Some videos of the Flea86 running various programs can be found on YouTube.

 All of the important I/O ports used by the video controller and other key peripherals are correctly emulated as well. But this is not a miniaturized Tandy 1000 - it is more of an emulator in nature, and not all functions and features are emulated. The appendix of the documentation is very clear about what is emulated, what is handled differently, or what is not supported.

Although the emulated hard drive is based on FLASH instead of spinning rust (a magnetic hard drive), overall access time to the emulated hard drive is fairly slow. It is more than adequate for loading and running old DOS software but it is definitely not at the speed of a system equiped with a real hard disk. Writes will be slower due to the nature of FLASH based storage.

If you need a fast RAM disk instead of installing a RAM disk device driver that uses your convential memory use the included RAMDISK.COM utility. The utility creates a RAM disk that uses drive letter A and it provides 1MB of high speed storage. Reads and writes to the RAM disk are quite a bit faster than to the emulated hard drive, and targetings writes at the RAM disk will save some write cycles on the SDHC card.

Technical notes

Features:

Expansion capability

The Flea86 provides some expansion capability using SPI (Serial Peripheral Interconnect). I/O ports available within the emulation environment can be used to control transfers on the "FleaBus". The peak transfer rate is 5Mb/sec. Quite a bit of the documentation is devoted to programming notes for the FleaBus.

An ISA bus expansion board running over SPI has been demonstrated. Peak ISA bus speeds can not be reached, but it is more than adequate for running low speed devices such as parallel ports. A parallel port hard drive and a parallel port Ethernet adapter have been demonstrated using a parallel port card and the ISA bus expansion board. I have not directly tested the ISA bus expansion board but I'm looking forward to getting one running. (To see it in action check out the videos on YouTube.)

Miscellaneous notes:

The Flea86 does an excellent job of emulating an 8088 processor. In addition to the standard 8088 opcodes the PUSHA, POPA, and PUSH immediate form from the 80188 processor are also emulated.

The 8253 Programmable Interval Timer (PIT) is mostly emulated. Timer #1 is not implemented, which is not a huge issue as it was normally dedicated to refreshing memory on the original IBM PC.

There is no DMA emulation. The PCjr and Tandy 1000 machines do not have DMA controllers either, but they could be added using aftermarket products.

The BIOS provides hard drive support at the INT13 level, which is similar to what a SCSI card would provide. This implies that register level access to a hard disk controller such as an ST-506 compatible controller is not available. This is fine for DOS and normal applications; utility programs such as SpinRite won't work but they are not appropriate in an environment like this.

There is no floppy drive emulation. Programs that attempt to touch the registers of the floppy controller will not work. Programs that assume the existence of at least one floppy drive will be confused, because on this sytem there is none. (In a pinch a RAM disk can be installed at drive letter A: to satisify programs that require that drive letter to be available, but use DOS or BIOS calls to access it.)

The Bottom Line ...

I am a fan of restoring and playing with old hardware. Nothing beats the whir of an old PCjr diskette drive as it goes through the boot sequence. The old CGA monitors are fuzzy and glow warmly, and the keyboards have real tactile feedback and are heavier than most laptop machines made today. However, emulation has its place. I use DOSBox, VirtualBox and VMware on a regular basis.

The Flea86 adds a new dimension to the madness. It provides most of the function of an old 8088 class PC clone, but does it in a highly portable package that gives you some modern conveniences. For most games the emulation is nearly perfect. For a retro-computing enthusiast it is a great little addition.

For the hardware hacker the Flea86 is a nice single board computer with two interesting interfacing mechanisms - the serial port and the SPI bus. It provides a familiar programming environment (DOS using port I/O) for managing both ports. I'm not terribly familiar with SPI but this gives me a platform for learning and experimenting when the time comes. (I need more play time!)

Interested in getting a Flea86? Email Valentin - his email address can be found on his web page, which is the first link in the References section.


References:

"Welcome to Valentin's Tandy 1000 PC replica project corner!", Valentin Angelovski
"Flea86 level-1 Preliminary User Manual rev 0.18x"
, Valentin Angelovski
"Flea86 Retro Gaming System Project", Armchair Arcade
"Flea86 PC Board running Wolfenstein 3D", YouTube
"Tiny 'XT-class' machine", Vintage Computer Forums



* The Flea86 logo is used with permission from Valetin Angelovski

Created July 28th, 2012, (C)opyright Michael B. Brutman, mbbrutman@gmail.com