Giter Club home page Giter Club logo

theoldnet-bbs's Introduction

TheOldNet.com is a website that lets users browse the internet like it was the 90's again. It uses the Internet Archive Way Back Machine and strips out all moderns code to allow vintage computers to participate.

TheOldNet.com BBS allows users of the Commodore 64 combined with a WIFI Modem to experience text based web browsing of TheOldNet.com.

This BBS was build upon the amazing work of the PETSCII-BBS project sblendorio/petscii-bbs

The current state of the project is a text only browser with the ability to follow links. Future hope are for a image transcoder that reduces high resolution images down to low resolution PETSCII graphics.

There are two additional features:

  1. A BBS directory/phonebook. It retrives information from the C64 BBS Outpost website and displays the phonebook on the BBS
  2. Real time chat. Unlike BBS's which were usually single tenant (one phone line). This BBS is multitenant and there is a basic chat room.

--Original Readme---------------------------------------------------------------------------------------------------------

PETSCII BBS Builder

A Java framework for building highly customizable PETSCII-enabled BBSes, accessible from 8-bit Commodore computers

Purpose

This framework provides base classes for build your own BBS in PETSCII mode, accessibile through:

System requirements

  • Java Development Kit (JDK) and JRE version 1.7+
  • A machine that will act as server

Required skills

  • Knowledge of Java language (compiler version 1.7+)
  • BASIC TCP/IP concepts
  • Knowledge of PETSCII encoding

Getting started

Let's suppose to build a very simple BBS that asks your name welcomes you. The basic operation is to extend PetsciiThread class implementing doLoop() method, such as:

public class WelcomeBBS extends PetsciiThread {
    
    // NEVER forget default (empty) constructor
    public WelcomeBBS() {}
    
    @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();

    }
}

this piece of code is enough to create a fully-functional but pretty simple BBS. The result will look like this:

BBS sample screenshot

All you have to do now is to build and run the BBS on your server, ready to be called by a PETSCII-enabled terminal client. Let's see how to do it in the following sections.

Building the server

Once you have written your own BBS as an extension of PetsciiThread class, simply build the fat jar with this command:

mvn package

The build process will result in the file petscii-bbs-1.0-SNAPSHOT.jar, it will be found in the target directory. So you can run it with:

java -jar target/petscii-bbs-1.0-SNAPSHOT.jar

Running the BBS Server

Running the server with no parameters, a help screen will be displayed:

usage: target/petscii-bbs-1.0-SNAPSHOT.jar
 -b,--bbs <arg>       Run specific BBS (mandatory - see list below)
 -h,--help            Displays help
 -p,--port <arg>      TCP port used by server process (default 6510)
 -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 -b WelcomeBBS

by default, the port where the service will run is 6510 and the timeout is 3600000 milliseconds (1 hour). We can change those parameters with -p and -t switches:

java -jar bbs.jar -b WelcomeBBS -p 8088 -t 7200000

(so the port will be 8088 with a timeout of 2 hours)

Keep it running

This .jar is intended to be a server process: it has to run all time. So, it's a good thing to run it in background if you use a UNIX shell using nohup command with bash "&" operator:

nohup java -jar bbs.jar -b WelcomeBBS &

It's VERY important not to forget the final & symbol to keep it running. After launching that, you can logoff from your server.

Stopping it

It's a plain process, so use plain ps and kill commands. If this jar is the only one running on your server, this command will do the work:

killall java

Sample BBSes in the package

You can study the sample BBSes (all classes that extend PetsciiThread) in the package eu.sblendorio.bbs.tenants as example of complete task. The package includes some proxies for accessing WordPress sites through Commodore 64 and a two classic strategy games (tic-tac-toe and connect-4)

Sample online BBSes

  • bbs.sblendorio.eu - port 6510
  • bbs.retrocampus.com - port 8086

Credits

Thanks to:

Sample screenshot of the demo pack

bbs1

bbs2

bbs3

bbs4

theoldnet-bbs's People

Stargazers

 avatar  avatar  avatar

Watchers

 avatar

Forkers

theoldnet

theoldnet-bbs's Issues

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.