You can run a Commodore BBS in an emulator called VICE. Here is how I did it...


Running a Commodore BBS in VICE can be done in Linux, macOS or Windows. I am using Linux (Debian 12), so your mileage may vary. You also need a little utility called tcpser that acts as the "modem" that the BBS will use to answer calls. This program converts tcp port calls into serial port data that the BBS can understand. It also supports some of the Hayes modem command set.

VICE Setup

Download and install or build VICE from SourceForge at:

Once you have VICE up and running, here are the settings to change for the RS232 port (under Settings > Machine Settings > RS232 Settings):

  • Turn on ACIA RS232 Interface Emulation
  • ACIA Base Address: $DE00
  • ACIA Host Device: 3
  • ACIA Interrupt: NMI
  • ACIA Emulation Mode: Swiftlink
  • Ensure Userport RS232 Emulation is OFF
  • Under Host Settings:
  • Device 3
  • Device 3 Baud Rate: 9600
  • Device 3 Use IP232 Protocol: YES

Save your settings!


Download and install or build tcpser from GitHub at:

NOTE: There are many spots to get tcpser off the Internet. You may have to try more than one version to find one that works properly with your configuration. The go4retro version works for me.

Once you have tcpser installed (into say /usr/local/bin), in a terminal run something like this:

    tcpser -v 25232 -s 9600 -l 4 -p 6400 -i "e1"


  • -v 25232 has to match the port you set up above in the RS232 settings for Device 3
  • -s 9600 has to match the baud rate you set up above in the RS232 settings for Device 3
  • -l 4 is the error logging (I believe it goes from 1 to 7), so set as you like
  • -p 6400 is the external port that people are going to "dial" to reach your BBS
  • -i "e1" is an init string to send to your virtual modem - you may have to experiment with this but a plain "e1" (echo on) is all I needed

Once running, tcpser should indicate that it is listening for connections:

    2024-03-12 07:57:26:139815505475392:INFO:Server socket bound to port
    2024-03-12 07:57:26:139815505475392:INFO:Server socket listening for connections
    2024-03-12 07:57:26:139815505475392:INFO:Creating modem #0
    2024-03-12 07:57:26:139815505471168:INFO:Opening ip232 device
    2024-03-12 07:57:26:139815505471168:INFO:Server socket bound to port
    2024-03-12 07:57:26:139815505471168:INFO:Server socket listening for connections
    2024-03-12 07:57:26:139815505471168:INFO:ip232 device configured
    2024-03-12 07:57:26:139815505471168:INFO:Control Lines: DSR:1 DCD:0 CTS:1

Color 64 BBS Setup

This is not a tutorial on how to get Color 64 up and running. Please read the documentation - it is excellent! Note that to get decent performance, you should obtain a JiffyDOS kernal ROM image for your virtual C64, as well as use CMD emulated hard disks for maximum speed and disk space. All of this is beyond the scope of this webpage. Color 64 will run just fine with the standard C64 ROM and some emulated 1541 disk drives. It will just be really slow.

For Color 64 BBS v8.0:

  • run bootmaker and ensure that Swiftlink is enabled
  • run +setup and set the following under Main Parameters:
  • System Baud Rate: 9600
  • Does your modem support DTR? NO
  • Adjust BPS to connect rate? YES
  • Modem init command: at

For Color 64 BBS v7.3:

  • run setup and set the following:
  • Normal/Inverted hook: Normal (n)
  • Use bit 32 = High Speed? YES
  • Use 'AT' modem commands? YES
  • Modem supports DTR? YES
  • Init Command: atze1x1s0=0s2=43

NOTE: For Color 64 BBS v7.3, I was only able to get it to run at 1200 baud. And even to get that to work, I actually had to modify the bbs.init 7.35 program and change the BR variable from 300 to 1200 for lines 10320 and 12020. Also note that above, instead of setting things to 9600 baud, I set them to 1200 for both VICE setup and the tcpser command line.

That's it!