← Kalgoorlie Retro Gaming
Kalgoorlie Retro BBS · Sysop tool

KFOSSIL

A FOSSIL driver for DOS. Load it before your BBS and your door games get the standard FOSSIL serial interface on any COM port, with interrupt-driven buffers and flow control.

What it is

DOS BBS software and door games talk to the serial port through a FOSSIL driver, a small memory-resident program that gives them one standard interface (INT 14h) whatever the hardware. KFOSSIL is a new one, written from the FidoNet FOSSIL specification (revision 5).

  • Runs on any PC from an 8088 up, with DOS 2 or later, and in DOSBox, dosemu and FreeDOS.
  • Small: about 2.3K resident, plus 3K of buffers for each port.
  • Handles one to four ports, and unloads again with KFOSSIL /U.

Using it

Load it once, before the BBS, for example in AUTOEXEC.BAT or the batch file that starts your board:

KFOSSIL                     ; COM1 at 3F8, IRQ 4
KFOSSIL 1 2                 ; COM1 and COM2
KFOSSIL 1:3F8,4,38400       ; COM1, rate locked at 38400 (8N1)
KFOSSIL /C 1                ; COM1, carrier detect always on
KFOSSIL /U                  ; take it out of memory again
KFOSSIL /?                  ; help

It checks each port for a UART before loading and says what it found:

COM1 at 03F8, IRQ 4, 16550A FIFOs, locked at 38400

Use /C with a null-modem cable that has no carrier detect line, and in DOSBox, whose nullmodem port has none. Without it, doors may think the caller has hung up.

Port settings

Each port is given as port[:base[,irq[,rate]]]:

port   1 to 4
base   the I/O address in hex        (defaults 3F8, 2F8, 3E8, 2E8)
irq    2 to 15                       (defaults 4, 3, 4, 3)
rate   lock the port at this rate, 8N1: 2400, 9600, 19200, 38400, 57600, 115200 ...

A locked rate is the usual set-up for a modem or a fast null-modem link: programs can't change it, so the BBS and all its doors use the same rate. Ports can share an IRQ, such as COM1 and COM3 on IRQ 4.

What it supports

Serial

  • COM1 to COM4 at any address, IRQ 2 to 15
  • 2K receive and 1K send buffer per port
  • 8250, 16450 and 16550A UARTs; FIFOs used on a 16550A

Flow control

  • RTS/CTS: RTS drops when the buffer is 3/4 full
  • XON/XOFF either way
  • Break, ^C/^K checking

FOSSIL functions

  • All of 00h to 1Bh
  • Carrier detect, watchdog, block reads and writes
  • Timer tick chain and driver information

Calls for ports KFOSSIL isn't handling go on to whatever had INT 14h before, normally the BIOS. The full list of functions is in KFOSSIL.TXT.

Testing

KFOSSIL 1.0 was tested in DOSBox with its serial port connected over TCP: 20,000 random bytes echoed back cleanly, RTS/CTS flow control both ways with 30,000 bytes in order, a 20,000-byte send through function 01h, and a real door game, Ember Reach's REACH.EXE, played through it.

It has not yet been tried on a real PC with a real modem, with two ports at once, with XON/XOFF, or on IRQs above 7. Reports from anyone who tries it on real hardware are very welcome.

Downloads

Version 1.0, November 2026: the first release.

KFOSSIL 1.0 for DOS

KFOSSIL.COM, the manual, the NASM source, FTEST.COM (a small echo program for testing a link) with its source, and the licence.

KFOSS10.ZIP · 25 KB · 10 November 2026

SHA-256 ad9d959800778207fb4cd18e69d91fcd5de78f143685e6b1a501805850cada16

Download

Also on the BBS in the file area Heisenbergs Files. The manual: KFOSSIL.TXT.

Licence and source

KFOSSIL is Copyright © 2026 Michael Slater. It is free software: you may copy, change and share it under the GNU General Public License, version 2 or (at your option) any later version. It comes with no warranty. The NASM source (kfossil.asm) is in the zip; build it with nasm -f bin -o KFOSSIL.COM kfossil.asm.

The FOSSIL interface is the one in the FidoNet FOSSIL specification (FSC-0015, revision 5).

Contact

Questions and bug reports are welcome. Email slaterm@theiguru.au, or leave a message for the sysop on the Kalgoorlie Retro BBS (telnet bbs.theiguru.au).