Latest News:
-OCL has now been added to GitHub!
The OCL is designed to act as an interface between custom Operating Systems, and core ComputerCraft functions. This allows program writers to make a program that will run smoothly on any of the OCL compatible OSs. All OS developers need to do to become compatible with the OCL is to adapt the CraftOS version of the api file to their Operating System - the custom OCL shell does the rest!
The OCL also allows for OSs to have custom shell files, without overwriting the default shell in the rom/ folder. The custom OCL shell file does replace the original ComputerCraft one, however it retains all default behaviour. The only additions are loading of the OCL api file (either the custom OS's one, or the CraftOS one) and then loading of the custom shell - if there is one. If not, it will behave like normal.
Rather than program writers re-writing their program many times to provide certain compatibility with different OSs, they may use the OCL functions instead, which will be handled by the currently loaded, OCL compatible Operating System.
The OCL will be better and more useful if more OSs join the project! Any developers are free to suggest features or code to be added to the project - it may provide extra compatibility with certain Operating Systems!
Quote
There is a client (or user) installation required. Just open up the zip archive and drag and drop the 'mods' folder into your '.minecraft' folder, allowing your computer to merge and replace folders and files.
And that's it! The only difference the user will see is the OS version upon boot, which will also include the OCL version number. Apart from that, there should be no other visual difference.
Quote
For program writers wishing to use the OCL in their program(s), a function list may be found in the 'Documentation' section of the README.txt found in the zip archive.
For Operating System developers wishing to make their OS compatible with the OCL, take a look at the OCL file included in the archive. It is written for CraftOS, however it serves as a good template for what you should include in your version of the OCL file.
Some functions require little to no changes, as they just make calls to other internal functions; however other functions do need adapting to how your OS runs. In most cases this will probably just be function calls to your own functions from within your OS that already do the same thing.
Do not change the structure of the file in any way, including adding/removing/changing functions or function arguments, as it will cause issues.
The best way to check if the client has the OCL installed (to keep compatibility with non-OCL clients) is to attempt to call an OCL function. Since the shell will automatically load any OCL api files, attempting to call a function when the api hasn't been loaded will fail.
If you want to help add to the OCL, or require further changes/additions to the project for your OS to work with it, please feel free to contact me here, or at my email address (found inside the files). Also, feel free to make pull requests on the OCL GitHub page, and I will look at merging your additions!
Quote
Toxic Wolf
Edited by toxicwolf, 10 July 2012 - 10:43 PM.