BBS on iOS – Finally!

BBS, Commodore 64, iOS, Mac No Comments »

Is anyone still here? I doubt it. I haven’t had anything to post for quite some time. I used to have down time at work where I was able to port and update CGTerm. As Windows and MacOS moved on though, I didn’t have the time to make the changes needed for CGTerm to keep up. I eventually decided that moving to a website based model would work best.

The problem with the website based model is the back-end needed to translate Telnet into Websocket and back again. I was not sure how well my server could handle it and opening a port up from a web server hosted in a home is not for the faint of heart. I also couldn’t figure out how to keep a Color64 BBS running in emulation for me to test. So I haven’t worked on this model much.

Enter this weekend. I had done searches in the App Store for things like Commodore and C64 and last week Emulator. There used to be an excellent Commodore emulator in the App Store years ago but was not maintained and I think Apple changed the rules so the app was taken down. I can’t remember why, but I started searching for a program called C64 Paint. The application was not available in my region but scrolling down I found the Muffin Term app for iOS and MacOS.

This app does terminal emulation for PETSCII (So I can call my beloved Color64 again!), ANSI for PC boards (are there any out there? Didn’t that get replaced with this World Wide Web thing I keep hearing about?) and ATASCII for those Atari BBS’s. I am hoping that I can find an Atari BBS to call. I had no idea that Atari had BBS software. My parents sheltered me from all of the “other” formats out there. And thank goodness too. Imagine if I had gotten locked into that fruit company. They aren’t still around are they?

The app has different modem icons you can choose from. Very classy. And when I typed atdt the app gave me a dial tone. I didn’t try and dial anything but I wonder if it also gives the negotiation tones? It also takes advantage of external keyboards, syncs your phone book to the cloud, uses pinch and swipe to zoom in and move around, can lock in at different speeds so that art is “played” at the right speed, and keeps track of your number of calls and time spent on the board. Once I get over my joy at being able to do this again, maybe I will write another post going more in depth. This makes me wish I could port it to PC as well. It’s that good.

CGTerm 2.0 on GitHub

BBS, Color 64, Mac No Comments »

I have finally put CGTerm 2.0 on GitHub. After putting it up, I decided to run the binary that I had compiled for Mac a few years ago. Even after forcibly adding the SDL framework, all I could get was a blank canvas. This was reported the some time ago. I was hoping that it was simply a matter of needing to give the SDL framework permissions to operate out of the Framework directory. No such luck

I then decided that I should recompile it with Xcode. Maybe be recompiling, I could finally add the SDL library in with the package and not need an extra step. That would also allow me to work on adding the menu in to work natively on the Mac.

After probably an hour, and ringing the bell with my blood pressure, I gave up. I kept running into build issues that not only didn’t make sense to me, but that Google wasn’t helpful enough. I have limited access to a Mac that can run current Xcode. So while the code is out there, I am going to pivot and concentrate on both a Python version that will be much easier to compile and run cross platform (I hope) and a web based version so that I can finally BBS from my iPad.

I was hopping to someday bring a native C64 terminal program to iOS. Instead, I would rather have one working that I can use from anywhere and a version of my beloved Color64 running on a server. I might be crazy (OK, no might about it. I am certifiable.) but I want to run a real BBS again. I don’t have bare metal, and I haven’t quite figured out how to interface VICE with Telnet acting like a 1670 modem.

Instead, I want to run a service on PHP that will open the D64 disk and interpret the BASIC on the fly. It would also have an admin screen just like I was sitting down at my trusty Commodore waiting for another call. And how about being able to change configs and reboot the board on the fly? Like I said, I have a screw loose. So in the meantime, please enjoy the mods I did make and if you are able to compile and figure out the build bugs, please drop me a line so that I can add it to the GIT so that others can enjoy what few BBS’s are left on the internet.

The new servers are here!

Uncategorized No Comments »

Ok, so it’s not really that exciting for anyone but me I guess. I decided to make a change in my hosting service. My plan is to eventually offer a virtual terminal to log into BBS’s that are up on the web using something like an iPad. Or at least not having to install any terminal software on your PC. That’s my plan at least.

My old setup did not allow sockets out that I knew of. So I actually found a cheaper way of doing it. Now lets hope it doesn’t crash the server. It shouldn’t as my website does not get much traffic thankfully. I also plan to limit the number of people that are on consecutively. And if all goes well, I will also virtualize my favorite BBS, Color64. I have heard rumors there was a version out there that could be chained together to allow for multiple users to chat and play games. If I could get that source code I would be in heaven. As it stands, I would like to get the Network64 code working so I could encourage other people to run a BBS.

I know what you are probably thinking. What’s the point? Well the point is I miss BBSing. And since the web isn’t going anywhere anytime soon, it seems the most logical spot to start. iOS has changed so much that I don’t even know where to begin. But getting it running on the web means Raspberry Pi’s, Mac, PC, Linux, iOS, and yes Android can all play around with BBS’s. Well that I am learning a ton along the way!

So if you are returning user to my blog, please use the lost password feature and have your password reset. I found out the hard way that the password file didn’t stay the same. 🙂 Either that or I wrote the wrong password down. Either way, new server, new passwords for all!

OS X El Capitan ‘Rootless’ Migration Issues

Mac No Comments »

I migrated to OS X 10.11 the day after it was released and then hadn’t had a chance to play with it until today. A few years ago I made a small script to automate login on one of my machines. I put the script in the /usr/bin/ folder and all had been well. It turns out that Apple made a change to make the OS more secure. No longer does the ‘sudo’ command give you access to everything. Now if you try to put anything in /System/, /bin/, /usr/, or the /sbin/ folders even with sudo, you will be denied. Only an Apple signed file can be put in those directories. With the exception of /usr/local/ that is. You can find many fine articles on why, and how to disable this new feature, like this fine article at Ars Technica.

Knowing why doesn’t much help you should you find yourself in my position. I couldn’t remember exactly what was in the script. So I went looking for my trusty Time Machine backup. However Time Machine doesn’t provide an easy way to locate protected directories like the /usr/bin/ I eventually discovered I had put my script in. I was forced to do some Googling to find out that Apple moved files that were not supposed to be in those protected directories to a special folder.  Apple helpfully moved them to /Library/SystemMigration/History/Migration-{UUID from somewhere only Apple knows}/QuarantineRoot/{Then whatever folder it was under. In my case it was usr/bin/}.  Once I sudo copied my script over to /usr/local/bin I was able to run it again and all was well with the world again….. Until next year when Apple changes our world yet again. But hey, it’s still safer then Windows. At least as long as you don’t have Flash or Java. In that case you might as well just buy a PC.

Atari Logo for iPhone 5/s Lock Screen

Atari 2600, iOS No Comments »

After seeing a post by the Retroist awhile ago I promptly forgot the link and went on my way. Later, when I was ready to change my wallpaper, I went back to his site to find this post. I was able to page through the many listings for ‘Wallpaper’ on his site to find this post. Along the way I found a different post that linked to a really cool image of the Atari logo. When I went to add this image to my home screen I found out it isn’t really easy to “Move and Scale” an image that doesn’t fit on the screen well. You can zoom in, but you can’t zoom out to get the entire image to fit on the screen. So I did a little looking and thanks to this website I was able to find out that I needed to make the image 744 X 1,392 pixels for the iPhone 5/c/s. With a little photoshop work I was able to make a pretty decent lock screen view of the logo. Maybe when I decide to change the home screen I will find either a good image of a “woody” 2600 or the stock joystick to fit under this logo. But until then, enjoy.


Thanks to Retro Justin @ for the original image.

P.S. To get this on your lock screen just open this link in Safari on your phone, and using the Share button Save Image. Then open Photos and choose Albums at the bottom and select Camera Roll. From there view your picture and press the Share button again and at the bottom select Use as Wallpaper. Then just select Set and Set Lock Screen and you are all done.

Apple hates retro computers

Arcade Games, Commodore 64, iOS, Video Games No Comments »

That’s probably not entirely true. But thanks to the 8.3 update to iOS we either have to jailbreak our phones or go somewhere else for our retro gaming fixes on the go. At least that’s my interpretation. Prior to 8.3 there were two important apps on my iPhone that I could use to feel like a kid again.

Gridlee, which was yanked within hours of being posted on the app store, allowed me to play arcade games in an emulator called MAME. It was basically a MAME emulator that played one arcade game, Gridlee. From what I read the Gridlee game was licensed. I am not sure if MAME was. It’s attraction was that it was leaked that if you used an app like iFunbox you could drop Zip files with MAME compatible ROM’s in Gridlee’s Documents folder and voilà, Gridlee shows a MAME front end. And the best part of Gridlee, it was compatible with the iCade, also because I liked portability the iCade 8-Bitty. That was before Apple “figured out how to do controllers”. I wasn’t aware there were technical issues that needed to be solved. Console’s had solved those issues years ago. But you know Apple, they are the only ones that can bring great tech to the masses. Did you catch the sarcasm? Anywho, Apple yanked it from the App store but as long as iFunbox had access you were good to go. Even after Apple borked other ways apps downloaded content in iOS 8 Gridlee still worked. (My other favorite game Atari’s Greatest Hits which plays Atari 2600 games fell to this issue. To their credit, they did finally fix it. Thank you Atari!) Now it looks like Apple may have permanently taken access to that directory away. Making Gridlee unusable in any other iOS device I might get in the future.

The other casualty was Manomino’s C64 Emulator. It was a great little emulator based on Frodo for the iPhone. I kept waiting for an iPad version but sadly development stopped and due to licensing hassles it was eventually permanently pulled from the app store. I say permanently because it had been pulled once before. Apple didn’t like the fact that you could program BASIC on it. That capability was supposedly taken out. However, the version I have has the BASIC interpreter as a playable “game” in the library. And even without loading any games I can program in BASIC. With iFunbox you were able to load new games into the app and even add box art. I was even able to load and play “Impossible Mission”.

Alas, the days of playing Arcade and Commodore 64 games on the go appear to be over. Thanks a lot Apple. Well to be fair thanks should also go to the owners of Commodore and to all the content owners that refuse to do anything with their IP other then sue people who want to enjoy their creations. Even licensing it so that a game or group of games is only a buck or two has got to be a better way. So I leave you with the best parting words ever written:

“So long, and thanks for all the fish” – Douglas Adams, The Hitchhiker’s Guide to the Galaxy


Fixing annoying bugs in CGTerm

BBS, Commodore 64, Mac 9 Comments »

As you may have already read, a couple of weeks ago I set out to compile CGTerm for the Mac OS X 10.9. I was able to accomplish this and received some feedback that encouraged me to dig deeper. Some of the things I decided to add were an application icon and to “package it up” so that it was easier to download and install. Those were minor touches that didn’t need a lot of actual code.

The biggest issue, and one that I felt would keep people from even “calling” a BBS if they owned a Mac (PC owners seem to have plenty of other options without much work. Namely using a terminal program running inside WinVICE. With that you get all of the thrill of a BBS.) was the fact that CGTerm was hard coded to use positional key mapping. What that meant was that keys like the 9 key would map to the 9 key on the original C64. Meaning when you pressed Shift-9 you got the ) character. Not the ( character you were trying to type because that’s what your keyboard showed. You could change the key to any other key, but that still meant that shift and that new key would produce a ). You couldn’t move ) alone to some other key. That was a big show stopper in my book. Without having some kind of overlay on your keyboard how could you hope to remember what key to press. Especially when the games menu was accessed using ‘*’ and Shift-8 did the ( character and put you in the message board section. Which, knowing my luck, probably also used the ‘*’ character to get back to the main menu? How frustrating right?BBS Command Main Menu

Well I HAD to play my games. Nuke Em has been calling me back for years. I must vindicate America by beating Greenland. (I was thinking the same thing when I first played the game 20+ years ago. When did Greenland ever become either a Nuclear Power or was ever a big player in any war game?) So to do that I needed to be able to tell my ‘*’ key from my ‘)’ key. I tried many different ways to get that blasted ‘*’ key to map correctly. Finally I gave up and decided I needed to recode CGTerm to do symbolic key mapping.

Symbolic key mapping allows the user to to program each key, along with modifier keys like the C= key, short key, and control key, independantly. This way if I wanted shift-9 to put out ‘*’ and control-9 to put out ‘G’ I could. I don’t know why you would want to, you still would forget how to get to the dang games menu, but you could if you were feeling particularly plucky.

The old version of CGTerm required a .kbd file to be present or it would actually fail and you couldn’t even start it. Not helpful considering the fact that unless you had an installer that created the settings file (.cgtermrc) the app would create a settings file but wouldn’t load it. It would try to find a default keyboard file in the default location but if you knew where that was this wouldn’t be an issue in the first place. So I fixed that as well. If it can’t find the settings file it creates it and loads it at the same time. And if it can’t find a keyboard file it just assumes you are OK with using your keyboard just the way IBM (or Apple in this case) intended.

In composing this blog post I ran into an issue trying to download files. I guess I have more work to do with default file paths. But at least I can play my Nuke Em. My original post on compiling CGTerm for Mac has the current .DMG image if you want to download and run my version of CGTerm. I have included the source code at the bottom of this post should you want to compile it for PC or another platform. If you decided to do that drop me a line. I would be happy to link to your compile so others can enjoy BBS’s on as many platforms as can be made available.

Here is the new source code: CGTerm 1.8 Source Code

CGTerm for OS X 10.9

BBS, Commodore 64, Mac 16 Comments »

Ok, so I finally did it. Back in 2011 when OS X Lion debuted I went looking for a good way to get back into BBSing. I have missed the long hours spent in front of the keyboard trying to get a game mod working on my board. Funny thing is, those were fun times. But I didn’t see it that way when I was doing it. In fact as I recall I think I felt like I was trying to get a high score in the game of ‘Blood Pressure’ back then. Of course when you are 16 you don’t care about silly little things like cardiac arrest.

Anyway, I had just bought my first Mac after the family PC died. I was just learning about OS X and had installed Lion. Lion turned out to be a mess. But that’s a WHOLE other post. I had been trying to figure out why Lion kept crashing so when I downloaded CGTerm  and it wouldn’t work I was mad but I had bigger fish to fry. After I fixed what Apple broke, I went to Google to find the answer to my CGTerm problem. Doesn’t Google have all of the answers for everything? And with Apple being so popular I knew for sure someone had figured out the black magic needed to run run this or connect to a BBS from my Mac. But alas it was not to be.

As it turns out, the only version I was able to find that was compiled was for PowerPC. So I decided to figure out how to compile it for the Mac. But that turned out harder then making Lion work as it should. So I did what any good IT person does, I gave up. Well that’s not entirely true. I just turned my attention to getting Color64 to run in an emulator. Which I was mostly successful at.

Eventually I decided I didn’t have enough quests er I mean open projects. I needed at least one more. So I decided I would learn to program iOS. I couldn’t get websites to run the way a giant team with millions of dollars and years of experience to so I figured programming for the phone natively would be easier right? Well sort of….

I had just enough knowledge to cause some real damage so I decided to throw the source code into XCode to see what I got. After messing with the code a ton I was finally able to get something that could be placed in the Application folder and wouldn’t crash on launch. It doesn’t have a native installer because I don’t have the $99 a year per platform Apple needs to keep from going bankrupt. But if you download the zip file and follow the instructions at the beginning of the Read Me file you should be able to start dialing BBS’s.

I wasn’t able to test upload and download and I had to make some changes to the source so it wasn’t so confusing when you saved .SEQ files. And it appears that the person that programmed this originally has abandoned it as it was out of date in 2011 and the website still has some failed links. But I updated the default configuration file to include the address of real working BBS’s and tested them all. So if you have any questions, feel free to email me. I would be happy to help where I can so we can get more people using these BBS’s. One day I hope I can get a terminal program going for iOS.

Just in case it wasn’t clear from this posts title but this compile should run on any system 10.9 or greater. It would work on 10.7 but I couldn’t force it go below 10.9. And besides, who is running anything earlier the n 10.9 now anyway? Now if only I could get Nuke ‘Em running again……

UPDATE (2-9-2015): Zip file was removed. In it’s place is a disk image file with CGTerm v 1.8. Download the DMG file and open. Then move over the link to your Applications folder. Also be sure to move the SDL.Framework folder to link to your Library/Frameworks folder. See my post on fixing bugs in CGTerm for more information on changes made to v 1.8 and the source code for the changes.

UPDATE (3-7-2019): Moved the servers and broke the links. Sorry about that. Thanks to the Sysop over at for bringing this to my attention.


How to connect to BBS’s from Linux or Mac

BBS, Ubuntu No Comments »

If you are like me, you might have wanted to dive back into the wonderful world of BBS’s but have come up short on walk through’s or posts. Most discussions simply point to another URL that is sort of like your question but not exactly. Only to have the answer point you to another URL and another and before you know it you have jumped down too many rabbit holes and crashed Chrome.

Too many rabbit holes huh?

Too many rabbit holes huh?

Here is a quick rundown on tools to connect to a BBS or diagnose if the owner has yanked his board yet again or if the issue is not knowing how to connect.

First of all we need an IP address for the board. Most boards listed will have a Domain Name. However most boards are run on home connections which may not be static. Recently the popular Dyn DNS service chose to stop offering free accounts. Which means a few BBS’s may have been knocked offline. So before beginning it might be useful to run down the IP first. If you can’t get the IP you may have to dig to see if the name changed or they simply gave up. I use PING to find the IP of systems I want to call.

ping -c 1

We are only sending 1 packet as we just want to see the IP. There are other ways to look up the IP but getting to know PING is a good idea. In this case the server at won’t return a ping packet. That’s perfectly normal. It doesn’t mean his BBS is offline. It just means that the server either isn’t responding to pings or a firewall has blocked that port. The only real way is to try to connect.

Let’s first try to connect directly from the terminal window. Mac/Linux/Windows can all use Telnet.

telnet 6400

We are giving telnet the domain name (you can also put in the IP directly here) and telling it to connect on port 6400. Most BBS’s are hosted on an empty port. Commodore 64 BBS’s frequently use port 6400. So if the BBS you are trying to connect to doesn’t list a port, try 6400. Once you are connected, your terminal will tell you what the ‘Escape character’ is. In my case it was ‘^]’. Which, not being familiar with these commands meant Control Key and ]. That gets me into the place where I can issue command like quit to close and exit or close to just close and stay in telnet.

One thing to remember with telnet is that the implementations I have run across all default to ‘Line Mode’. What this means is that they don’t send anything until you hit the Enter key. Old school BBS’s used ‘Character Mode’ meaning they sent any keypress as soon as it was typed. So if the BBS you are calling is behaving weird or not responding they likely are expecting Character mode. Type your control keys and at the telnet prompt change modes with mode character I ran into that while trying to write a Telnet server to act like a Color64 BBS. Commodore BBS’s were not intended to run on the Internet and don’t issue any commands or detect modes.

If the BBS you are trying to reach is on or compatible with Commodore 64 I would recommend using a terminal program. The best native terminal program I have found is CGTERM. It appears to have been abandoned as the Mac binary doesn’t seem to run with OS X 10.7 and above and I wasn’t able to find enough information to compile it. If someone has compiled it I would be happy to put it on my blog as I love using this on Linux. I haven’t used actual Commodore hardware to connect to a BBS over the Internet but I have used software in Vice to connect. But that’s a post for a different day. Let me know if you have any questions. I want as many users back on BBS’s as I can!

UPDATE (1-22-2015): I was able to compile CGTerm to run on a Mac in OS X 10.9 or greater. See my post here for more details and the download.

Apache 2.22 Websocket Proxying on Ubuntu with mod_proxy_wstunnel

Apache, BBS, Server, Ubuntu No Comments »

OK, so I am going to go geeky and deep on this one. But as part of my Color64 BBS project I needed to use a WebSocket proxy tunnel to the Color64 BBS software. It turns out Ubuntu isn’t up to the newest version of Apache. A little Googling and I came across this post.

The only problem is that it’s on someone else’s blog, which means I might forget where I found it should my server crash. 🙂 And the code for the exact steps need to be altered. So here goes with the modified steps for Apache 2.22:

# Check apache version (should be 2.2.22 as of writing, if not adjust the next step to the right version)
dpkg -s apache2

# Checkout apache source
svn checkout httpd-2.2.22

# Get patch and apply it
cd httpd-2.2.22
patch -p1 < ../apache-2.2.24-wstunnel.patch

# Build Apache 
svn co srclib/apr
svn co srclib/apr-util
./configure --enable-proxy=shared --enable-proxy_wstunnel=shared

# Copy the module and recompiled mod_proxy (for new symbols) to the ubuntu apache installation and update the permissions to match the other modules
sudo cp modules/proxy/.libs/mod_proxy{_wstunnel,}.so /usr/lib/apache2/modules/
sudo chmod 644 /usr/lib/apache2/modules/mod_proxy{_wstunnel,}.so
echo -e "# Depends: proxy\nLoadModule proxy_wstunnel_module /usr/lib/apache2/modules/" | sudo tee -a /etc/apache2/mods-available/proxy_wstunnel.load

# Enable the module (also make any configuration changes you need)
sudo a2enmod proxy_wstunnel
sudo service apache2 restart

Edit: Ubuntu may have upgraded Apache to allow for WebSocket Proxies. So I am simply posting this as a reference at this point until I update and confirm that these steps aren’t needed.

WP Theme & Icons by N.Design Studio
Entries RSS Comments RSS Log in