Rick-T137 / VIC-BBS

VIC-20 Bulletin Board System
https://www.vic-bbs.com
GNU General Public License v3.0
2 stars 0 forks source link
bbs bulletin-board-system commodore-64 commodore-vic20 commodore64 modem telnet vic-20

VIC-20 Bulletin Board System

VIC-BBS-menu

This is a bulletin board system (BBS) that runs on a Commodore VIC-20 personal computer. In addition to the VIC, you'll need:

Live Wire BBS

You can try it out by firing up your VIC-20 connected with a WiFi Modem and visiting my actual BBS running at: vic-bbs.com:6502

Quick Start

The BBS Program

The program itself is in three parts (PRG files):

Required SEQ Files

In order to run the BBS, you are going to need some supporting sequential (text) files. These can contain any PETSCII codes you would like. The D64 distribution image contains all of these files that you can then modify with your preferred PETSCII editor (not included with BBS).

You need to create/edit the following SEQ files:

Real VIC-20 vs VICE: Differences

The way the BBS answers calls is very simple. The "modem" is programmed to answer after one ring (ats0=1) and all the BBS does is monitor the user port (address 37136) for a carrier tone. On a physical VIC-20, that shows up on bit #4 (ie: AND 8 in BASIC or AND #$08 in ML) whereas in VICE it shows up on bit #5 (ie: AND 16 in BASIC or AND #$10 in ML). Here are the spots in the code it is referenced:

Real Time Clock

The VIC has no way of knowing what the current date is, and it's time keeping ability is hampered by the fact that the internal timer pauses whenver the disk is accessed. This makes using an external real time clock (RTC) chip required to run the BBS effectively. In the BBS BASIC program, there are two subroutines at lines 3400 (get Date) and 3450 (get Time). You will likely need to modify those two subroutines to work with whatever RTC solution you have chosen. In VICE, a DS12C887 is emulated and the BBS-VICE.d64 image contains the code for working with that RTC. My physical VIC uses a custom board made by JaystoniansRetroShop on Etsy that includes a DS12885T RTC chip and 35KB of expansion RAM. So my code at 3400 and 3450 reflects how that chip works.