The OSDK contains a decently complete standard library, and also some Oric specific functionalities.
Most other SDK are based on binary library files, and the right functions are included in the final executable during the link phase. This SDK works differently because the library is made of source code that is included in the main program by the linker before the final assembly pass.
This method is interesting because it's possible to easily add functions, and correct bugs.
The OSDK\INCLUDE folder contains all the header files. If you add a function in the library, you will have to add a function declaration in one of the header files. LIB.H is a good choice for that operation.
The OSDK\LIB folder contains a bunch of assembly code source file, as well as a LIBRARY.NDX file.
The LIBRARY.NDX file simply is a list of all source files with the exported functions it contains.
The source files simply are normal assembly code functions and declarations. Please note that only function that starts by a underscore ("_") symbol will be accessible from C source code.
Issue #31: OSDK libraries should be system agnostic
Details: At the moment the OSDK libraries only work with 1.1 ROM, running programms that call the ROM will crash on Oric 1 or Telestrat. It would be nice to have some form of compatibility. (See: topic)
Issue #26: Random generator conflicts
Details: When including lib.h, two defines exposing the 32 bit random generator conflicts with the RND function from the ROM, resulting in corrupted results. (See: topic)
Issue #28: Additional BASIC functions
Details: Some users would like to have additional functions, similar to BASIC, like PLOT, SCRN, etc... added to the OSDK. (See: topic)
Fixed in OSDK 1.12
Details: When trying to use the 'scanf' functions from the OSDK libraries, XA complains with multiple syntax errors.
Fixed in OSDK 1.13
Details: For some reason calling the Sedoric() function results in a link error. (See: topic)
comments powered by Disqus