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 weeks 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.
I have been doing some stress testing, and I have been able to have in excess of twenty active concurrent users in the chat room. I wrote a PC program that logged into the system and emulated fairly active chat users. With twenty active users, the transaction rate was one to two inputs per second, with each resulting in about twenty messages being sent out of the Spider. The response time is excellent, considering the processor power.
Over thirty users have been active, but it appears that thirty two sockets is the maximum number supported by the framework, and at a high transaction rate the framework was running out of output socket buffers.
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.
I will be releasing the source for the system, but I am waiting for a Cobra II to arrive. I want to port the system to the faster G120 module.
I am soliciting some feedback on the current system. I have exposed a Spider, running the latest software, on the Internet at csdci.com. I suggest using the Windows Telnet client, but I have found that the Tera Term Telnet client also works. The Mac OS X client needs additional Telnet protocol coordination work, but can also be used.
With the online help you should be able to figure out what is available on the system. When you connect, you will see instructions how to setup your own account.
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.
*** there is a problem with the talk command. only accepts one word messages. will fix tomorrow night.