FOSSIL
FOSSIL is an acronym, and the words behind it tell a small story about the early years of personal computing. The letters stand for Fido Opus SEAdog Standard Interface Layer. Fido points to FidoNet. Opus points to the Opus-CBCS BBS. SEAdog was a FidoNet compatible mailer. Together they name a standard protocol that let telecommunications programs speak to serial hardware under MS-DOS compatible operating systems. The standards document that defines it is maintained by the FidoNet Technical Standards Committee. But why did a piece of software need a committee, an acronym, and a uniform layer just to talk to a serial port? The answer reaches back to a time when no two machines agreed on how that conversation should happen. What follows is how a single specification quietly held that chaos together, and how it later learned to make things that were not modems behave like modems anyway.
In the early days of FidoNet, computer hardware was very diverse, and there were no standards for how software should communicate with serial interface hardware. The initial development of FidoBBS only worked on one specific type of machine. That was a problem with a clear ceiling. Before FidoBBS could start spreading to other computers, it became obvious that a uniform method of communicating with serial interface hardware was required. The same need was apparent for other communications based software, not just one program. A program written for one machine's serial hardware could not simply move to another. Each piece of hardware spoke its own dialect, and software had to be rewritten to match. That fragmentation is the gap the next chapter was built to close.
The FOSSIL specification was born in 1986 to provide a single, uniform method for talking to serial hardware. Its core promise was deceptively simple. Software using the FOSSIL standard could communicate using the same interrupt functions no matter what hardware it was running on. The payoff went straight to the people writing the programs. With the interface handled by the standard, developers could concentrate on the application itself and not on the interface to the hardware. A FOSSIL driver, in plain terms, is simply a communications device driver. Each one is specific to the hardware it operates on, because it is written to fit exactly the serial interface hardware of that platform. The application stayed the same while the driver underneath changed. That division of labor is what carried FOSSIL into the machines that would soon dominate the market.
FOSSIL drivers became more widely known as IBM PC compatible machines spread. These machines ran some form of DOS, short for Disk Operating System, and there was a catch built into them. Their BIOS provided very poor support for serial communications. It was so poor that it fell far short of the needs of any non-trivial communications task. A driver that bypassed those shortcomings suddenly had real value. Over time, MS-DOS and PC DOS became the prevalent operating systems, and PC compatible hardware became predominant. As that platform took the lead, particular drivers became the popular choices on it. Two popular DOS based FOSSIL drivers were X00 and BNU. The standard was not bound to DOS forever, though, and other operating systems would get their own implementations.
NetFoss is a popular Windows based FOSSIL driver, and it is freeware. The standard, in other words, did not retire when DOS faded from the spotlight. SIO is a popular OS/2 based FOSSIL driver, serving a different operating system entirely. Each of these kept the same essential bargain that the specification set out. The application could keep using the same interrupt functions while a driver matched to the host system handled the hardware underneath. That portability across operating systems hints at a further stretch the idea could take, beyond serial ports altogether.
Some FOSSIL drivers were implemented to support communications hardware that was not a serial interface at all. The trick was to make that hardware look like a modem to the application. Internal ISDN cards are the clearest example. These cards did not use serial ports at all, yet they often came with FOSSIL drivers. The reason was practical. Plenty of software had been written for modem operation only, and the FOSSIL driver let an ISDN card slot into that software without changes. A device that was never a modem could answer as one. That ability to wrap unfamiliar hardware in a familiar interface is the quiet legacy a standard built in 1986 still carries.
Common questions
What does FOSSIL stand for in DOS serial communication?
FOSSIL stands for Fido Opus SEAdog Standard Interface Layer. Fido refers to FidoNet, Opus refers to the Opus-CBCS BBS, and SEAdog refers to a FidoNet compatible mailer.
What is the FOSSIL protocol used for?
FOSSIL is a standard protocol that allows serial communication for telecommunications programs under MS-DOS compatible operating systems. It lets software communicate using the same interrupt functions regardless of the underlying hardware.
When was the FOSSIL specification created?
The FOSSIL specification was born in 1986. It was created to provide a uniform method of communicating with serial interface hardware so software could run across diverse machines.
Why was the FOSSIL standard needed for FidoNet?
In the early days of FidoNet, computer hardware was very diverse with no standards for communicating with serial interface hardware, and FidoBBS initially worked only on one specific type of machine. FOSSIL provided a uniform method so the software could spread to other machines.
What are some popular FOSSIL drivers?
Two popular DOS based FOSSIL drivers are X00 and BNU. NetFoss is a popular Windows based FOSSIL driver and is freeware, while SIO is a popular OS/2 based FOSSIL driver.
Can FOSSIL drivers work with hardware other than serial interfaces?
Yes, FOSSIL drivers have been implemented to support other communications hardware by making it look like a modem to the application. Internal ISDN cards that did not use serial ports at all often came with FOSSIL drivers to work with modem-only software.