JBasic is a Java-based BASIC interpreter that can run on any platform. It is completely written in Java and can be used for a variety of programming tasks.
Getting started with JBasic is easy. Users need to ensure they have Java 1.4.2 or later installed on their system. Although the software likely works on earlier versions of Java, it is recommended to use the latest available version. Users can download the jbasic.jar file, which contains the application, sample and test programs, and the (currently weak) online help.
To use the software, users need to start up a suitable command-line window or shell. For Mac OS X users, the Terminal utility to open a window with a Bash shell is recommended. To start up JBasic, users should use the command: `java -jar jbasic.jar`. Users can get help by typing HELP at the prompt.
What's new in this release of JBasic is the added multi-user mode. It allows an instance of JBasic to act as a multi-user server. Users connect via a telnet client (port 6100, by default), and each connected user has their own shell. The global variables of each shell are configured for the remote users rather than based on the user running the JBasic server. The users run in "Sandbox" mode to prevent damage to the local file system.
To enable the multi-user mode, SET MULTIUSER should be used. At the time of this command, the array SYS$USERLIST is read to describe the user id's allowed to connect this mode. Note that this feature may be clunky, and it should be modified to support a control file, etc.
JBasic uses the wimpi.net TelnetD open-source product, used under the terms of the GPL license, to implement this feature. Additionally, this release of JBasic fixes a security hole where ASM statement could be used to generate code to get the user out of Sandbox mode. Finally, the USERS() function returns an array with the names of all currently connected users.
Overall, JBasic is an excellent tool for running BASIC programs on various operating systems. Its added multi-user mode makes it an ideal choice for teams working remotely.
Version 2.0: N/A