Originally published on: Sat, 13 Mar 2010
My introduction to the world of electronic bulletin-board systems ( BBS’s ) began in the mid-1980’s.
One evening, my friend John called to say that he’d gotten a modem for his Commodore 64. On a whim, I went to Sears and spent over $60 for the same 300 baud “dumb” VIC-1600 modem. This modem was marketed for the VIC-20, but it worked with the C64 as well. It lacked the auto-answer/auto-dial features that were present in the 1650 modem.
After getting the modem hooked up, John and I chatted, realizing that the terminal software supplied with the modem was quite anemic. We couldn’t set a mode to echo our own typed characters to the screen, so we could only see what the other was typing.
As line-noise would invade the phone connection, “garbage” characters would appear on the screen. Unfortunately, some of these characters were capable of changing the active foreground color and would cause the text to be almost unreadable.
I had picked up an issue of the magazine Creative Computing and had noted in its BBS list section that one of the numbers was in the local calling area. The BBS name was Split Infinity … an Apple ][-based system. John and I each tried calling it. We each managed to log on, eventually.
One of the nifty things about Split Infinity was that it had a listing of other local BBS’s.
“What? There are more BBS’s around here?”
Since the terminal software we were using didn’t have a capture-buffer feature, John and I each manually made lists of the BBS’s and began to divide and conquer over the next few evenings, sharing our notes about each board.
The Commodore-specific boards were certainly of interest, since they put us in touch with the local C64 community. A few of the other generic boards stood out from the rest and were frequent haunts of mine over the years.
John and I found that most of the patrons of these boards used aliases instead of their real names. I quickly adopted an online name; I was known as Cintaks Airer.
My first modem got me online, but it was a pain to use. I had to manually dial the phone numbers for each BBS and listen for an answer tone. If the computer on the other end had picked up with an answer, then I had to unplug the handset and plug it into my modem. If a BBS was busy … I had to continue dialing if I wanted a shot at getting on.
I soon purchased a Westridge modem that was compatible with the Commodore 1650 auto-dial modem. I also paid about $60 for this modem. I was then able to auto-dial bulletin-boards so that I didn’t have to manually dial phone numbers. This modem would pulse-dial the phone-numbers, so it took a little longer to dial each.
After I’d gotten my Commodore 128, I bought an off-brand 1200-baud modem that had DTMF tone-dial capability.
Better Terminal Software
The first order of business was to get some better terminal software … soon!
I had been making copies of PD programs from the local users’ groups disks and copied a program called Midwestterm. It was a simple terminal written by one of the members of a Midwest Commodore Users’ Group. Midwestterm sported a proprietary file-transfer mechanism that was similar to XModem, but used ASCII XON / XOFF as ACK / NAK.
A new friend of mine, a sysop of his own C64 BBS … author of the commercial Xavian BBS, also had Midwestterm as well as many others. He transferred the freeware Firstterm program to me using Midwestterm’s protocol. Firstterm had a pleasant font and supported the newly popular “Punter” protocol ( created by Steve Punter).
- CBTerm C64 – This was a terminal program written by CompuServe CBM sigop Chris Dunn. It sported an 80-column emulation screen, large capture buffer, xmodem protocol ( later versions supported Punter ) and various autodialing features.
- Bootstrap Xmodem Downloader – Also by CBTerm author Chris Dunn. BXD was a page-long BASIC program with terminal mode and a “let’s-hope-it-works” Xmodem download mode. The intent was to provide a type-in program that would allow someone to enter the software via their keyboard. BXD had enough power to download CBTerm from the CompuServe CBM SIG. This program was printed in the Telecolumn column in the January 1987 issue ofTransactor magazine.
- Eagleterm – One of a family of terms that added in weird phreak-box and DTMF tones and (I believe) a mini-BBS mode. The big attraction was that it implemented a multi-file Punter hack that allowed one to upload/download multiple files in one sitting ( while leaving the terminal unattended. ) It would also support extended baud rates. 400 baud and 450 baud were common ( even on the 300 baud modems ) and were actually supported by a few local BBS’s. I always received more garbage from line-noise, but the added speed was appreciated.
My Own Terminal Software
I liked to noodle with various kinds of programs, so I ended up writing a lot of experimental terminal software:
- Little term – Just a simple machine-language terminal program with a non-blinking block-cursor. I later incorporated calls to the Punter ML package into this term.
- BASIC term – A terminal program in BASIC using POKE’s instead of variables. It ran a lot faster than I had expected.
- Quick pulse autodial term – This little terminal supported a quick dial routine. It would dial more quickly than other terms using a 1650-compatible modem.
- DTMF term – This term was my bare-bones machine-language terminal invoked after using a BASIC program from the Toronto Pet User’s Group (TPUG)to generate DTMF tones through the SID. I was told ( correctly ) that if I connected the output of one of the monitor port’s sound pins to a specific resistor on the Westridge modem, I could tone-dial. It worked, but it would not recognize the carrier until I removed the wire.
- Xmodem terms – I wrote several implementations of the Xmodem protocol as terminal software. The only one that I’m sure that worked well was an Xmodem routine that transmitted entirely from a memory-buffer. I later used this in a mini-BBS.
- 400 term – This one just opened the RS-232 channels to 400 baud. ( I had 450 baud support too. ) One of the local CP/M BBS’s supported either 400 or 450 … which worked well enough. It was much faster but had frequent appearances of garbage characters.
- Chat term – I added an option to my simple ML term to echo a person’s text back to them. I later packaged this up as a separate file for a couple of guys who were each running open-source BASIC BBS’s. This gave them an all-ML chat-mode that was not afflicted by delays caused by BASIC string garbage-collection.
- Tone dial term 1200 – My first 1200 baud tone-dial modem was still a dumb modem and required some ML code to drive the dialing. I had to disassemble these routines out of the clunky term that came with the modem and I incorporated them into my ML/Punter term.
- Visible Punter – I liked Firstterm’s display of the data-buffers during download, so I wrote some code to point the RS-232 buffers to the screen area at $0400. Upon invocation of the Punter ML code, I could see all data transmitted in real-time.
Later, I wrote an article for the June 1995 issue of C / C++ Users Journal detailing how to write a terminal program for MS-DOS using a FOSSIL ( Fido / Opus / SEADog Standard Interface Layer ) driver. You can read the article online from the Dr. Dobbs Journal site here: http://www.ddj.com/dept/cpp/184403026.
The Bulletin Board Systems
When referring to the sysops, I’m going to use the aliases that the guys were known by. I’m making up an alias or two for guys who used their real name.
As mentioned earlier, this was the first BBS I had used. I believe that it was Apple ][ oriented and may have been related to a computer store. The sysop was The Blue Adept. The board was responsive and everything, but not my cup o’ tea.
The Xavian BBS
This was the work of a local 17-year-old genius who later sold his Commodore 64 BBS software under the name Xavian BBS. Starpoint Software then obtained the rights to sell the software. I was pretty impressed, opening an issue of Compute!’s Gazette and seeing an ad for the Xavian BBS.
The sysop was kind enough to supply me with his ML package for the built-in terminal that he used for the board. He also gave me the Punter code with SYS addresses to invoke it.
Xavian had the interesting concept of marrying a message-base, text-file area, and file-transfer area together into one localized, topical area. Most other boards had the three areas separated.
Quite a number of Xavian’s arose in the local area before the code went commercial.
Milo’s Meadow / The Round Table
The lead sysop was Opus, the Purple Adept. Various friends of Opus’ who took the names of characters from the comic strip Bloom County co-sysop’ed the board.
The BBS ran on a Commodore 64 and was Opus’ own creation. The board software was nice.
A slight flaw in the way the e-mail system worked allowed my friend John and I to read anyone’s mail for a short time. ( We told the sysops about the exploit and it was fixed shortly. )
Opus was always happy to teach and give coding advice. He had formal education in comp-sci, so he would often lecture us young whippersnappers ( he was only a few years older than us ) on stuff like double-buffering. He also willingly shared some telecommunications assembly code with me.
He’s still a programmer locally. I’ve spoken with him at a local users’ group meeting.
Update November 3, 2018: Here’s Opus’ write-up on the genesis of his BBS:
Dial Your Match (DYM) serial-number unknown
This software predates the modern dating sites. You would log on, enter some vital statistics and would then search for your match. Upon finding a match, you’d be given a phone-number to call to try to hook up for a date.
Not much more to write about. It was an interesting novelty. I believe that the software was commercial.
I don’t remember the exact name of this board. It was written by my friend MM, who would sit patiently by the phone waiting for it to ring so that he could pull the cable out of the handset and would then plug it into the 1600 Vicmodem.
This board used a dynamic-keyboarding technique to stuff each line of a post into a DATA statement. At the end of the night, MM would just SAVE the file to cassette and would then LOAD it the next evening. Yes; it was a cassette-based BBS running on a Vic-20.
My only gripe was that the dynamic-keyboarding was slow. While great in concept, I’m not sure why he didn’t just build the DATA statements in RAM directly. Hindsight is always 20/20.
I met MM a short while after visiting his unique BBS. The ML code to do all of this was certainly within his grasp. I thought the concept of stretching the VIC hardware to the limits he did was quite interesting.
Sanctuary was a fun board. The sysops were Andre and Casca. Unlike other boards, Sanctuary only offered file-transfer for a limited time. The board was more popular as a social venue.
As I understand it, Casca ( who later gave me quite a bit of info on C128 CP/M ) wrote the bulk of the low-level code and Andre dabbled with the higher-level BASIC code. The board was very responsive… more so than many Commodore 64 boards of the day.
This Apple ][ oriented board was a technical marvel in the day. I believe it had a hard-drive and had several Apple’s working together to form a multi-user network; this was the first local BBS ( to my knowledge ) to offer multiple incoming lines.
The file areas on this system were large, but this BBS was primarily a for-pay BBS. I didn’t spend a lot of time there.
This was an incredible little BBS ultimately written in C. It had been ported to a number of OS’s and such. It ran on MS-DOS and CP/M machines including a special version for the Commodore 128 in CP/M mode.
This board was more professionally-themed than the rest and required you to use your real name. The sysops had a running bet going for a while that my name, Jim Lawless, was actually a pirate-board alias.
The sysop, jsw, had a lot of utilities available for download on a sister board. While many of them were in 8080 ASM, many of the others were written in this newly popular language Turbo Pascal. These files were the first TP source code I’d even seen. This was really my first exposure to what would later solidify as open-source software.
jsw wrote a FidoNet mailer package called Ybbat. DRBBS was the first BBS locally to offer Internet e-mail via the BBS, and provided feeds to several Usenet groups via the BBS. Astoundingly, this all took place on a 64K machine.
The board kept evolving as jsw and several locals set up one of the first ISP’s in the area GONIX ( Greater Omaha Public Access Unix ). I believe that the BBS is still alive in the form of a web-based message-board and private NNTP feed.
Wind Dragon Inn
This board was running Opus CBCS on an MS-DOS machine. The board had an Amiga theme. I think the sysops caught flak every once in a while for not running the board on an Amiga. I really loved the user-interface and such.
This board introduced me to FidoNet echoconferences,the Zmodem file-transfer protocol, a full-screen editor, and the concept of quoting other people’s posts. It’s possible that this board also may have offered the first topic-threaded-message system that I had ever encountered. I can’t remember exactly, so I may be incorrect.
It was pretty cool to be able to log in to a local BBS and read messages in the C echoconference from guys in Australia and other distant places.
Update Feb 15, 2016: Henry Neufeld, sysop of Wind Dragon Inn found this blog post, today. Please see his post about his days as the sysop of WDI:
I later upgraded to an Amiga 500 computer with a 1200-baud modem. A number of my favorite boards went down as the 80’s came to an end.
I bought an MS-DOS machine and was able to use the Amiga modem with it. I logged on to a few new boards running on MS-DOS machines. BBS software was now a commercial commodity, so you’d see a number of Wildcat!, PCBoard, Spitfire, and other BBS’s spring up.
I visited a lot of these BBS’s regularly until the mid-90’s when consumer access to the Internet became viable.
Nowadays, BBS’s have new lives in the form of web-based bulletin-boards and social-networking sites.
In the earliest days, it just seemed like a lot more fun. It was hard work waiting for the BBS phones to ring and then having to wait for the 300 baud text to finish rendering on the screen. It seemed like we had all accidentally stumbled upon this craze and were part of a pioneering community.
If you’re one of the people who were in the local community, drop me an email sometime. Cintaks Airer would like to hear from you. 😉
That’s all, have a .DF4z($S… NO CARRIER