This framework provides base classes for build your own BBS in PETSCII mode, accessibile through:
- a Commodore 64 with a RR-NET compatible card, running KipperTerm
- a Commodore 64 with a WiFi modem card, running CCGMS
- a Commodore 64/128 with a 1541Ultimate, running UltimateTerm
- an Ultimate 64, running UltimateTerm
- a Commodore 64 with an Easy Flash 3 (with CCGMS-EF) + a PC running EF3USB
- a common PC/Mac running SyncTerm (ConnectionType=Telnet, ScreenMode=C64)
- C64 Forever, running CCGMS (included)
Let's suppose to build a very simple BBS that asks your name and welcomes you. The basic operation is to extend PetsciiThread class (or AsciiThread for ASCII BBS) implementing doLoop() method, such as:
public class WelcomeBBS extends PetsciiThread {
// NEVER forget default (empty) constructor
public WelcomeBBS() {
super(); // Recommended
}
@Override
public void doLoop() throws Exception {
// clear screen
cls();
println("This is your brand-new BBS");
println(); print("Enter your name: ");
// flush output
flush();
// clear input buffer
resetInput();
String name = readLine();
println();
println("Welcome, " + name + "!");
println("Press a key to exit");
flush();
readKey();
}
}
2
Building the server process
Once you have written your own BBS as an extension of PetsciiThread (or AsciiThread, as per previous documentation) class, simply build the fat jar with this command:
mvn clean package
The build process will result in the file petscii-bbs.jar, it will be found in the target directory. So you can run it with:
java -jar target/petscii-bbs.jar
3
Running the BBS Server
Running the server with no parameters, a help screen will be displayed:
usage: target/petscii-bbs.jar
--bbs <bbsName:port> Run specific BBSes (mandatory - see list below)
in the form <name1>:<port1> <name2>:<port2> ...
-h,--help Displays help
-s,--serviceport <arg> TCP port used by service process, 0 for
no-service (default 0)
-t,--timeout <arg> Socket timeout in millis (default 60 minutes)
List of available BBS:
* ...
* WelcomeBBS
So we can rename the -jar file in bbs.jar, and the basic syntax for running our sample BBS is:
java -jar bbs.jar --bbs WelcomeBBS:6510
the port where the service will run is 6510 and the timeout is 3600000 milliseconds by default (1 hour). We can change the timeout parameter with -t switch:
Was just sitting here thinking I wanted to write a C64 style BBS software in Java. Was looking for tcpip stack/telnet stuff, petscii tools, etc, and I found this gem of a project which seems to have handled most of what I need to do. This is pretty cool. Will follow the general flow of a C-Net BBS most likely. Will figure out how to store "board" information, user info, and ultimately would like to have some sort of support for doors/games. Then just run it off my Linux box and invite some of my old buddies and see how things go. Pretty cool. Thanks for this!
I just tried the example bbs with my IPhone and Muffinterm and I had a blast. Did not try to settle my own server, but will certainly, thumbs up for this project
Was just sitting here thinking I wanted to write a C64 style BBS software in Java. Was looking for tcpip stack/telnet stuff, petscii tools, etc, and I found this gem of a project which seems to have handled most of what I need to do. This is pretty cool. Will follow the general flow of a C-Net BBS most likely. Will figure out how to store "board" information, user info, and ultimately would like to have some sort of support for doors/games. Then just run it off my Linux box and invite some of my old buddies and see how things go. Pretty cool. Thanks for this!