A fully featured Bulletin Board System (BBS) from the early 1990s — written in Borland C for MS-DOS by Mark Longo.
ZIOLA BBS is a retro dial-up bulletin board system that showcases the full stack of 1990s BBS software engineering: modem control, ANSI terminal graphics, multi-area message threading, Zmodem file transfer, door game integration, and SysOp administration — all in C, running bare-metal on MS-DOS.
| Category | Details |
|---|---|
| User Accounts | Registration, security levels, ANSI preferences, transfer stats |
| Message Areas | Multiple boards with post / read / reply / delete, private threads, new-mail scanning |
| Message Editor | Built-in ANSI-aware line editor for composing and replying |
| File Areas | Categorized libraries with descriptions, tagging, queues, and new-file highlights |
| File Transfers | Upload/download queue with DSZ/Zmodem support and stat tracking |
| Door Games | External door launch via standard DORINFO drop files and door counters |
| SysOp Chat | Live break-in chat plus maintenance tools for users, messages, and files |
| Time Limits | Per-session timers with countdown warnings and usage tracking |
| ANSI Graphics | Color menus, art screens, and optional non-ANSI (plain ASCII) mode |
| Modem Management | Auto-init, baud detection, carrier monitoring, local/remote handling |
ZIOLA/
├── ELWING.C # Main entry point — BBS configuration and startup
├── MENU.C / .H # Menu engine and routing
├── MESSAGE.C # Message area post/read/reply
├── EDIT.C # Line editor for message composition
├── FILE.C / .H # File area browsing and management
├── MODEM.C / .H # Modem initialization and carrier control
├── SERIAL.H # Serial port I/O definitions
├── DANSI.H # ANSI terminal escape handling
├── DRIVER.C # Low-level hardware driver
├── TOOLS.C # SysOp utilities and maintenance
├── SHELL.C # DOS shell / door game launcher
├── SORT.C # File/user list sorting
├── GINPUT.C / .H # Input handling (keyboard + modem)
├── RMESS.C / .H # Read-message routines
├── WMESS.H # Write-message definitions
├── MISC.H # Shared structures and constants
├── MAIN.H # Global function prototypes
├── DORINFO1.DEF # Sample DORINFO door drop file
├── MENU/ # Pre-built ANSI and ASCII menu art screens
├── MESS/ # Message area data directory
├── SCREEN/ # Screenshot assets
├── USERS/ # User account data directory
└── SRE/ # Supporting scripts and resources
ZIOLA BBS was written for Borland C++ targeting MS-DOS real-mode. The original project files are included:
| File | Purpose |
|---|---|
BBS.PRJ |
Turbo C project file |
BBS.IDE |
Borland C++ IDE project |
BBS.DSW / BBS.DSK |
Borland project workspace/desktop state |
- Install DOSBox or DOSBox-X.
- Mount the workspace into c:\bz in DOSBox
- Open
BBS.PRJin the Borland C IDE
dosbox.conf emulate modem example
[serial]
serial1=modem
serial2=disabled
serial3=disabled
serial4=disabled
[modem]
modem=true
comport=1
listenport=23
- Run
BBS.EXEfrom the BBS root directory inside DOS or DOSBox.
Bulletin Board Systems (BBSs) were the internet of the pre-web era. Callers dialed in via modem, browsed message boards, downloaded files, played door games, and chatted with the SysOp. ZIOLA BBS represents the kind of hand-crafted, single-author C software that powered thousands of small community BBSs throughout the late 1980s and early 1990s before the public internet displaced them.
Key technologies preserved here:
- RS-232 serial / modem AT commands — direct hardware port programming
- ANSI escape sequences — color terminal art before GUIs
- Zmodem (DSZ) — error-correcting file transfer over noisy phone lines
- DORINFO drop files — the standard interface for launching door games
- Real-mode DOS C — memory models,
farpointers, and interrupt-level I/O
See LICENSE for details.

