A 36-year-old Hayes modem bug just got fixed for Apple II BBS operators

Call-A.P.P.L.E. released ACOS GBBS 2.4.1d to patch a typo from 1990 that broke modem communications on original hardware.

A 36-year-old Hayes modem bug just got fixed for Apple II BBS operators
Call-A.P.P.L.E.

The Apple II user group Call-A.P.P.L.E. has released version 2.4.1d of the ACOS GBBS Pro bulletin board software to fix a typo that sat unnoticed in the codebase for 36 years. The update patches a mistyped return code for Hayes modems that originated in the 1990 build of the software.

The bug only surfaced because a community member insisted on running the software on original Apple II hardware rather than an emulator. Emulators often abstract or bypass the strict timing and handshake requirements of physical serial ports. When connected to a real Hayes-compatible modem, the 1990 code failed to properly parse the modem's response codes. The maintainers investigated the failure and found a simple syntax error in the source. It took this long to find, given how dedicated the Apple II telecommunications scene remains today.

A very patient typo

GBBS Pro was originally developed by Greg Schaefer in the 1980s. It runs on the All-purpose Communications Operating System (ACOS), a tokenized language environment built for Apple's ProDOS. During the peak of the dial-up era, it was one of the standard platforms for hosting a BBS on an Apple II. System operators used it to host message boards, file transfers, and door games over standard phone lines.

The software is currently maintained by Call-A.P.P.L.E., the publication and user group arm of the Apple Pugetsound Program Library Exchange. The group has been active since 1978, originally distributing software on cassette tapes and floppy disks. Today, they continue to archive and update vintage Apple II operating software, compilers, and utilities for modern enthusiasts who keep the old hardware running.

Updating from version 2.3

The 2.4.1d release is distributed as a complete replacement disk set. The maintainers noted that anyone currently running version 2.3 or 2.4 of the software will need to apply this updated disk set to ensure their modems initialize and answer calls correctly. The download is packaged as a small zip archive containing the necessary disk images for deployment on real hardware or accurate emulators.

The Hayes command set dictates how a computer talks to a modem. When a BBS boots up, it sends an initialization string to the modem to set parameters like baud rate, auto-answer behavior, and error correction. The modem then sends a return code back to the computer to confirm the settings were applied. Because of the 1990 typo, GBBS Pro was misinterpreting that confirmation. Fixing the return code restores the proper handshake sequence, allowing the Apple II to actually understand what the modem is telling it.

ACOS itself is a fascinating piece of software engineering. It is a specialized programming language designed entirely around telecommunications. Because it is tokenized, the code runs faster than standard AppleSoft BASIC while taking up less memory, which was a critical advantage on machines with only 64K or 128K of RAM. The modular nature of ACOS allowed system operators to write custom scripts and modifications for their boards without having to recompile the entire operating system from scratch.