Taurus Java Virtual Machine v0.16a
The following release notes are applicable to the above version of the Taurus Java Virtual Machive. The copyright notice is applicable to any version of the VM unless stated otherwise.
Taurus Software hereby grants you a non-exclusive, non-transferable limited licence (without the right to sub-licence) under Taurus Software's intellectual property rights. The licence entitles you to freely use, for personal, non-commercial use only, but not to distribute, the Taurus Java Virtual Machine. All binaries and code remain exclusively copyright Taurus Software.
The Taurus Java Virtual Machine has been produced, as a "clean room" implementation, in accordance with Sun Microsystems, Inc's (SUN) licence agreement for "The Java Virtual Machine" specification. Also, in accordance with this agreement the virtual machine distribution does NOT, to the author's knowledge, contain ANY material which is copyrighted by SUN. As such the class files relied upon by the virtual machine must be obtained separately, directly from SUN. The use of this specifcation does not in any way imply that the software conforms to it, nor does it imply that it will ever wholey do so. The Taurus Java Virtual Machine does not, and will not, ever pretend to be "Java compliant", it will always remain as closer approximation as time and money will allow. Users of this software do so at their own risk. Developers of any Java software should NEVER use this as a reference platform.
Taurus Java Virtual Machine is a trademark of Taurus Software. Sun, Sun Microsystems, the Sun logo, Java, JavaSoft are all trademarks or registered trademarks of Sun Microsystems, Inc. All other product names mentioned herein are the trademarks of their respective owners.
THIS SOFTWARE IS PROVIDED "AS IS" WITHOUT WARRANTY OF ANY KIND, EITHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, OR NON-INFRIGEMENT. TAURUS SOFTWARE ACCEPTS NO RESPONSIBILTY FOR ANY DAMANGE, OF ANY KIND, CAUSED BY THE USE, OR MIS-USE OF THIS SOFTWARE. BY USING THIS SOFTWARE YOU AGREE TO THE LICENCING TERMS HEREIN.
TAURUS SOFTWARE RESERVES THE RIGHT TO REVOKE THIS LICENCE AT ANY TIME, FOR ANY REASON. THE "FREE" STATUS IS LIKELY TO CONTINUE AND THE APPLICATION OF THE GNU PUBLIC LICENSE IS BEING CONSIDERED.
All references to Taurus Software directly refer to the non-profit freeware/shareware software development unit run from the UK by myself. Any conflict with names of companies inside or outside of the UK is unintentional and should be disregarded.
Platform SupportThe Taurus Java Virtual Machine version 0.16 alpha is provided in binary form only for the following platforms:
Java SupportThis early access release provides a limited subset implementation of the SUN Java Virtual Machine Specification. The key features of this release are as follows:
Windows InstallationUnpack the downloaded ZIP file containing the VM into a suitable directory (e.g.
C:\JavaVM). The VM executable is called
the classes it loads are in the subdirectory
classes. Run the VM from
this directory (it looks for the classes directory relative to where you start it!).
The DOS version does not accept command line arguments.
SIBO InstallationUnpack the downloaded ZIP file containing the VM into a temporary directory (e.g.
C:\Temp). The VM executable is called
javavm.img, in the subdirectory
app, and the Java
classes it loads are in the subdirectory
Copy the executable into the
To run the VM you first need to install it. Select
The SIBO version lists all
Minimum requirementsThe VM functions in a much smaller environment than provided by the JDK classes. The classes provided are: a simple System class, providing a single
stream; a cut down
Object class; and a natively implemented
PrintStream class. This should give you the basis to do some
computation and show the output.
To make your own environment, you need to implement a set of Java classes
similar to those provided by Sun. The main reason for doing this on a small
platform is to cut down the amount of crap that gets loaded before any of your
classes, and to cut out the surplus junk you will never use. I am currently
looking at SUN's Personal Java and Embedded Java specifications, and the ideas
behing the KVM and Java 2 Micro Edition for some approved ways of shrinking the
My personal environment includes cut down versions of the
Memory and diskspace requirements are as follows:
Taurus OPL LibraryThe 0.16 release of the Taurus Java Virtual Machine sees the addition of a new class library to allow the use of simple graphics from Java on SIBO machines. This library was originally created as part of the opl2java project. The original version of this library provided an emulation of built-in OPL functions under Java, allowing OPL application to be deployed as a Java applet. The same API is used here, but is implemented natively on the SIBO machine.
Using opl2java it is possible to do a round-trip: 1) take an OPL program which runs on a Psion; 2) run it through opl2java; 3) run the resulting java code on the Taurus JavaVM on your Psion. At the moment this only works in a limited capacity, but it proves that useful Java applications could be run on a Series 3.
See Appendix II for a list of supported methods and the associated Javadoc documentation provided for detailed programming information.
SupportThe VM is offered with no warranty and no support. I cannot guarentee it will run on your machine, and any programs written specifically to run on the Taurus VM are not guarenteed to run on future versions. One or two strange problems showed up which caused the VM to hang - I suspect lack of memory on my 256k 3a - but it could be killed from the System screen. Another problem also prevented the VM from running until it was re-installed. The VM should not corrupt any files on your machine, but I cannot make any guarentees, and will not be held liable to damage caused either directly or indirectly by this software. If you have valuable data on your machine, then please back it up first.
Missing features, bugs etc. will be fixed as part of the porting procedure, so keep checking the website for updates.
FeedbackThe primary reason for releasing such an early access release is to get feedback aimed at getting the features you want working on the platforms you want. This early access is quite restrictive I know, but most of the core functionality is in place, it really only remains to finish porting the VM instruction set (mainly conversion from ANSI to K&R C) and native methods (which mostly require a re-write).
Please feel free to send any CONSTRUCTIVE comments to support.
Appendix I - Instruction SetThis early access release does not implement certain virtual instructions. These are mainly long, float and double operations, but some array, stack and type conversion operations are also missing. Missing instructions will cause the VM to exit and report the error "
unknown instruction". If you
run the DOS version with the same classes, it will report both the name and
number of the offending instruction.
Appendix II - Native MethodsThe VM implements the following native methods. You need to provide an appropriate
native declaration in you classes to use them:
Appendix III - Taurus OPL LibraryThe following native methods are also provided for use with the Taurus OPL library:
Last updated 18th Oct 1999