Review: The Flea86 System
*
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)
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
The
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.)
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.
- There is no floppy drive. Everything must be able to run
from a booted DOS environment.
- There is a serial port but it does not follow the PC
register
conventions; you will need to write custom software to use it.
(Examples are provided.)
- An original full BIOS for these machines consumes 32 to
64KB of
ROM. The Flea86 does not include a copy of a BIOS; instead it provides
its own emulated BIOS which is quite a bit smaller. Enough functions
are emulated to make it more than usable but there are some things
missing.
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:
- emulates a 8088 CPU running from 3 to 8Mhz
- emulates the 8088 support chips including the 8253 Timer,
8259
Programmable Interrupt Controller, 8042 PS/2 keyboard and mouse
controller
- Up to 832KB system RAM configured as 640KB base and 192KB upper memory
- Optional 1MB RAM disk enabled via software utility (uses
drive letter A:)
- CGA, PCjr/Tandy and MCGA video modes
- Sound via a TI SN76496 (PCjr/Tandy), DAC, or PC compatible
speaker
- Serial port (150 to 57600 bps, but not register compatible
with the PC standard)
- Some expansion capability through SPI (Serial Peripheral
Interface)
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