Project - FEZ TImesharing System

FEZ TImesharing System

Last November Tom/Skewworks released a version of Basic language called SBasic. When I saw the announcement, the gears in my brain began to turn. I began to think about the feasibility of developing a system similar to the Dartmouth Time Sharing System on a .NET Micro Framework device.

The Basic programming language was created at Dartmouth College in 1964 by two professors, John Kemeny and Thomas Kurtz. Their goal was to provide computer access for non-technical students. The language was implemented on a timesharing service. Users would connect to the central computer using Teletype machines to enter and execute their programs. Multiple users would share the resources of the computer at the same time. For the past few months I have been working on a recreation of a classical timesharing system.

The target system is a FEZ Spider, running 4.2 non-Gadgeteer software. Since most people do not have a Teletype machine and modem available, I decide to use Telnet for access. I now have fairly complete system complete, which includes the ability to enter and execute SBasic programs and includes a chat room. Tom’s SBasic interpreter has been used with minimal changes, to improve the localization of errors.

The system was developed to easily be ported to other MF devices. At the present time, a JD11 Ethernet module is being used for Internet access, and a host USB module for connecting a thumb drive with 8GBs of storage.

All of the required parameters needed to configure the system is in the program.cs file.

After logging on, issue the help command to see the available commands.

The only thing that might not be clear is how to enter a program. This is done by entering a line number followed by a SBasic statement. To change a line, enter the line number followed by the replacement statement. To insert a line, use a line number between the two statements where you want the insertion to go. To delete a line, enter the line number without a statement. Programs may be saved on the file system, for later access.

8 Likes

This is sweet. Thanks for sharing the code.