Hybrid 2400 Emulation . Using Mac Vice with a Pi Modem Emulator

A reader named Mike sent this in. He wanted to use his Raspberry Pi as the modem emulator, and his Mac with Vice to call BBSes. Here’s the working combo he came up with:

1. Install tcpser on my Raspberry Pi.
2. Run tcpser with this command line:
tcpser -v 25232 -p 6400 -tSs -l 7 -i “k0” -s 2400 -N “/tmp/noanswer.txt” -B “/tmp/busy.txt”
3. In Mac VICE, alter these:
:: Peripherals: Cartridges: ACIA disabled (uncertain if needed)
:: Peripherals: Cartridges: Userport RS232: Baud Rate 2400 / Enabled/ Device 4
:: Peripherals: RS232: Device 4: |nc IP.to.Pi.xx 25232

BBSing with Vice on Linux

Calling BBSes at 2400 baud with Vice on Linux / Rasp Pi is possible, though no good instructions around on how to do it with ease. I spent a good chunk of my day figuring out how to install it on my Raspberry Pi. Thanks to Jasmaz and ShadowM for putting in the time to help me out with this. And VidKid who has hacked the ACIA routines from 1.19 (read his blog here for his method!)

This method is good for calling bbs systems, but not hosting a bbs. Vidkid’s hack has this figured out. The max baud rate for now is 2400.

This pertains to installations of Vice 2.4 with the SDL Library.

sudo apt-get install tcpser
sudo apt-get install netcat

Make sure netcat and tcpser are both on your linux/pi.

from the command line via ssh or standalone run netcat and tcpser

(I’m not sure if this init of netcat is needed but i do it anyway)

netcat 25232
(some systems need nc 25232 instead)

tcpser -v 25232 -p 6400 -s 2400

Add the &x64 if you aren’t running tcpser via ssh

In Vice, go to F12 -> Machine Settings -> RS232 Settings
Disable Acia interface emulation

Enable Userport RS232 Emulation
Host Device 4
Baud Rate 2400

Device 4 will have the pound symbol followed by a few characters. KEEP the pound symbol but erase everything else!!! After the pound symbol add the following
nc 25232

No spaces between the pound symbol and ‘nc’

All 4 device baud rates below to 2400

That’s it, go back to terminal, makesure your term program is using a standard hayes/user port setup (In Striketerm it’s the User Port modem), 2400 baud, type AT in terminal and you should get an ok!


CMBBS 6.0 Source Code and More

Here’s something fun, CMBBS 6.0 (hereby referred to as 6.1 for the sake of the mods i did). Fully compatible with Strikelink and BBS Server. So, if you’ve always wanted to run CMBBS, like i used to want to back in the day, here’s your chance to run a quality 1200 baud bbs on a real c64. Remember this BBS only goes to 1200 baud, so set your strikelink and bbs server software accordingly.

BBS Server settings:

Connecting menu – Set “Send Ring to BBS”

Disconnecting menu – Set “Disconnect if +++ath’

When doing the configuration before loading the bbs, select hayes, select 300/1200 baud,select h/s detect. The bbs now actually runs only at 1200 baud, but choosing these options will guarantee it works.

Some notes on functionality. System overall works fine. Will drop carrier in 60 seconds if idle or if user disconnects in the midst of a session. About half the time the system will notice disconnections. Often it will not. So, the 60 second timeout is a sort of failsafe towards bad dropped calls.

Sysop commands can be found using the bad command from the main menu while logged in. This lets remote sysop functionality work as well. ‘bad’ stands for backdoor, so there ya go. User level 10 can only access this.

I added a % command for the one liner. it’s not in the menus. Thats a new mod i did for the system.

I added a ‘graphic of the month’ of sorts file. * from the main menu displays a seq file called ‘graphic’. You’ll have to create that to use it.

‘W’ is sysop notes, for only the sysop to see. The file is a sequential file called ‘list’. Just basically something for the sysop to use for himself if he wants to.

Punter does not work. I have tried numerous things to fix it, it just doesn’t work. If anyone can fix this, that would be great, considering this bbs system only has punter, and no xmodem capability.

The source file is blitzed. Just re-blitz the source file and the boot program will load ‘c/cmbbs’. Yes, I posted the source!! Have fun seeing the hidden features.

Access level .5 is restricted, and access level .1 is blocked. 9 is co-sysop. (they can scratch / edit files and posts). 10 is sysop.

I removed the printer functionality.


Again, if anyone could solve the punter bug, that would rule. Enjoy!

Touchterm 5.9 Source

I got a request for this, so I will be posting sources for more programs soon. This is Touchterm 5.9’s basic source. Use blitz! to re-compile once you edit it. (If you choose to edit it). The good thing is this term is stable at 2400 baud. It was the basis for my old Striketerm 2012. I moved on to hacking Novaterm 9.6c for Striketerm 2013 and beyond.

A lot of this code can be optimized even more.

Download the .d64 here


Build your own “Strikelink” C64 User Port -> USB device for less than $15!

The least expensive way to get your C64 online is by building what I call a “Strikelink”, which is basically just a null modem that converts TTL signals to rs232 and vice versa. The parts listed below will allow you to hook your c64 to any usb port on a pc. Software on the PC side makes the “Strikelink” act as a virtual hayes modem at 2400 baud!

You’ll need a ch340g -> Serial/USB Device. You can find them on ebay for a few bucks. For 9600 baud, you’ll need to solder directly to the chip’s rts and cts lines, or find a ch340g -> usb with direct rts/cts out pins.

and this


Connect the TxD pin on the TTL Adapter to pins B and C on the User Port plug (RxD). Connect the RxD pin on the TTL adapter to pin M on the User Port plug (TxD). And connect the GND pin on the TTL adapter to pin N (Signal Ground) on the User Port plug. Install the driver, load up Leif Bloomquist’s BBS Server, and now you have a 2400 baud modem for $15 or less.

To add full 9600 baud capability

Add a wire from M to 5 on user port plug
Add a wire from B,C to 7 on user port plug
Attached a wire from L to 6 on the user port plug

Add the rts/cts lines to the ch340g from the user port (user port rts -> ch340g cts and user port cts -> ch340g rts)

Then use the UP9600 driver on Striketerm or CCGMS 2017

Use the instructions in the Connecting to C64 BBSes section on the left and look for the heading Using StrikeLink or other TTL/Serial Adapter/swiftlink/turbo232 (to use your PC as a virtual hayes modem)

Refer to http://www.hardwarebook.info/C64_RS232_User_Port for a diagram of the C64 User Port