OSLib – Open source API for RISC OS development

OSLib Release 7.00

Library Downloads

Acorn/Norcroft and GCCSDK GCC 3.4.x
GCCSDK GCC 4.x using UnixLib (soft-float)
GCCSDK GCC 4.x using SharedCLibrary application (hard-float)
GCCSDK GCC 4.x using SharedCLibrary module (hard-float)

Other Downloads

Note that an example of a full WIMP application using OSLib and the RISC OS toolbox can be found at Tony's web site.

Changes since Version 6.90

Enhancements
  • Added support for OS_AMBControl based on reverse engineering of its behaviour. (20071118-3, Graham Shaw)
  • Added support for OS_ClaimSWI, OS_ReleaseSWI and OS_ClaimOSSWI based on usenet discussion (http://tinyurl.com/2vfp8k). (20071118-2, Graham Shaw)
  • Added support for GCCSDK 4 ELF output (also APCS-32 only): reworked build system (currently only supporting cross-compilation); renamed top !OsLib into !OSLib. (20071119-1, John Tytgat / John-Mark Bell)
  • Add support to Toolbox_ShowObject for showing an object as a child window. (20071129-1, Christian Ludlam)
  • .Asm defmod type is changed from 'void *' to 'asm_routine' with the latter being defined in oslib/Types.h as: "typedef void (*asm_routine)(void)". This should now enable warning free compilations. As the semantics changes from 'code' to 'pointer of code' for .Asm, all .swi files have their "-> .Asm: xzy" parts changed into "= .Asm: xyz" and ".Ref .Asm: xyz" ones into ".Asm: xyz". Removed DragAnObject_Function type and changed its usage into .Asm. Change the type of PDriver_DeclareDriver's 'reason' parameter from ".Int" to ".Asm". The binary API remains the same after this change. (20080216-1, John Tytgat / Christian Ludlam)
  • Draw.swi: added type DrawV_Reason, i.e. reason code in DrawV vector together with DrawV_* constants. (20080228-1, John Tytgat)
  • Font.swi(Font_ReadIdentifier): renamed length_out parameter to num_split_chars.
    (Font_ReadFullDefn): similar to Font_ReadDefn but returns the full font identifier (including encoding and matrix specification) (20080826-1, John Tytgat)
  • Font.swi(Font_OutputFlags): add comment for Font_OutputSkeleton and Font_ConvertBitmap that those bits are not implemented in any RISC OS version. (20080826-2, John Tytgat)
  • OS.swi(OS_VDUVar): defined values 0 to 12 (incl). (20080826-3, John Tytgat)
  • Wimp.swi(Wimp_WindowGiveShadedIconInfo): added based on info found at http://iyonix.com/32bit/WimpAPIChg.shtml. (20090506-1, John-Mark Bell)
  • Font.swi(Font_KernShortPairs): Added. (20090521-1, John Tytgat)
  • OSSpriteOp.swi(OSSpriteOp_Type16bpp_64K): Added. (20090719-1, John Tytgat)
  • Include all needed headers directly (20090826-2, Jan-Jaap van der Geer)
  • Vala bindings (20091008-1, Jan-Jaap van der Geer)
  • TimerManager.swi, KeyInput.swi, DiagnosticDump.swi, PathUtils.swi, RouterDiscovery.swi, DHCPClient.swi, ClipboardHolder.swi: Added. (20091223-1, John Tytgat)
  • DragAnObject.swi(DragAnObject_Flags, DragAnObject_CenterOnPtrPos): Added. (20091223-2, John Tytgat)
  • MimeMap.swi: added MimeMap_FormatMac, MimeMapTranslate_FileTypeToAnything, MimeMapTranslate_AnythingToFileType. (20091223-4, John Tytgat)
  • DragASprite.swi: added DragASprite_CenterOnPtrPos. (20091223-5, John Tytgat)
  • Sound.swi(SoundQSchedule32_CallControlPacked, SoundQSchedule32_CallRoutine, SoundQSchedule32_CallSWI): Added. (20091223-6, John Tytgat)
  • OSWord.swi(OSWordPointer_OpReadBBox): Added. (20091223-7, John Tytgat)
  • SharedCLibrary.swi(Kernel_UnwindBlock, Service_APCSBacktrace, Service_APCSBacktraceBacktraceRequest, Service_APCSBacktraceRegisterDump, Service_APCSBacktraceBacktraceDump, Service_APCSBacktraceDecodeName, Service_APCSBacktraceMiniDumpCreated): Added. (20091223-8, John Tytgat)
  • ScreenModes.swi(ScreenModesReadInfo_DPMSState): Added. (20091223-9, John Tytgat)
  • OSFile.swi(OSFile_LoadFlags, OSFile, OSFile_LoadFlagsIsCode, OSFile_LoadStampedPathWithFlags, OSFile_LoadStampedPathVarWithFlags, OSFile_LoadStampedNoPathWithFlags, OSFile_LoadStampedWithFlags): Added. (20091223-11, John Tytgat)
  • FileSwitch.swi(Service_UKCompression, Service_UKCompressionUnsqueeze, Service_UKCompressionPatch, Service_UKCompressionNonAIF, Service_UKCompression26BitOn32Bit, Service_UKCompressionDebugger): Added. (20091223-14, John Tytgat)
  • OSFSControl.swi(OSFSControl_EnumFileHandles, OSFSControl_RunAbsoluteFile, OSFSControl_RunUntypedFile, OSFSControl_RunTransientFile): Added. (20091223-15, John Tytgat)
  • RedrawManager.swi: Added. (20091223-17, John Tytgat)
  • Wimp.swi: Added Wimp_MaskIconLeaving, Wimp_MaskIconEntering, Wimp_IssuePoll14And15; Mark Wimp_PlotIconWithWindow and Wimp_PlotIconWithSpriteArea as deprecated; Added Wimp_PlotIconWithWindowSpriteArea Wimp_PlotIconWithBackgroundSpriteArea; Added WimpTextOp_VJustify, WimpTextOp_OffsetsForRedraw, WimpTextOp_GetSplitPoint, WimpTextOp_TruncateWithEllipsis, Service_WimpToolSpritesChanged. (20091223-17, John Tytgat)
  • Socket.swi(Socket_FilterDeregister, Socket_FilterRegister, Service_InternetStatus8): Added. (20091226-1, John Tytgat)
  • DragAnObject.swi(DragAnObject_FunctionUser, DragAnObject_FunctionUseUser): Added. (20101001-1, David Thomas)
  • ConvertBMP.swi,ImageFileConvert.swi, ConvertSprite.swi: Added. (20101213-1, John Tytgat)
  • OSSpriteOp.swi(OSSpriteOpRemoveAlphaChannel_Flags, OSSpriteOp_RemoveAlphaChannel, OSSpriteOpAddAlphaChannel_Flags, OSSpriteOp_AddAlphaChannel, OSSpriteOp_PlotTiledSprite, ServiceSpriteReregister_Type, Service_SpriteReregister): Added.
    (OSSpriteOp_ReadSpriteSize): Removed, use OSSpriteOp_ReadSpriteInfo. (20101213-3, John Tytgat)
  • OS.swi(OS_ModeFlagInterlaced, OS_ModeFlagGreyscale, OS_VduvarDisplayNumber, OS_VduvarPolyHLineAddr, OSDeviceType_CoreIRQHandler, OSDeviceType_DeviceNumberShift, OSDeviceType_DeviceNumberMask, OSDeviceType_GetIRQHandler, OSDeviceType_RegisterSubChain, OSDeviceType_PassOn, OSSetVarVal_Code, OS_DynamicVRAMRescue, OS_DynamicKernelBuffers, OS_DynamicAbortSVCAndIRQStackCopy OS_DynamicOperatingSystemROM, OS_DynamicSWIDispatchIRQWorkspace, OS_DynamicSVCStack, OS_DynamicIRQStack, OS_DynamicUNDStack, OS_DynamicLevel2PageTables, OS_DynamicSoftCAM, OS_HandlerBackwardCompatibility, OSPrettyPrint_GetOSDict, OS_ClaimDeviceVectorAndGetHandler, OS_ClaimCoreIRQHandler, OS_ReleaseCoreIRQHandler, OS_AreaDMA, OS_AreaLocked, OS_AreaPhysical, OS_AreaAbortable, OS_AreaDomain, OS_AreaInvisible, OS_AreaFixedPage, OSDisplayDevice_TagTagLength, OSDisplayDeviceDescriptor, OSScreenModeRegisterDisplayDriver_Action, OSScreenMode_SelectMonitorType, OSScreenMode_CountNumberBanks, OSScreenMode_SelectDisplayBank, OSScreenMode_ReadDisplayBank, OSScreenMode_SelectDriverBank, OSScreenMode_ReadDriverBank, OSScreenMode_CopyBank, OSScreenMode_SelectDisplayDevice, OSScreenMode_ReadDisplayDevice, OSScreenMode_ReadDisplayDetails, OSScreenMode_ModeStringToSpecifier, OSScreenMode_ModeSpecifierToString, OSScreenMode_SelectModeWithModeString, OSScreenMode_ReadMaxDisplayNumber, OSScreenMode_DeregisterDisplayDevice, OSScreenMode_RegisterDisplayDevice, OSDynamicAreaDomain_State, OSDynamicArea_LockArea, OSDynamicArea_UnlockArea, OSDynamicArea_ChangeDomainState, OSAbortTrap_Flags, OS_AbortTrap, OSMemory_ControllerTypePrimaryROM, OSMemory_ControllerTypeIOMD, OSMemory_ControllerTypeFDC37C665, OSMemoryRecommendPage_Flags, OSMemoryCheckMemoryAccess_Bits, OSMemoryReadControllerBaseAddress_Flags, OSMemory_LockFreePool, OSMemory_MapPCIMemory, OSMemory_RecommendPage, OSMemory_CheckMemoryAccess, OSMemory_ReadControllerBaseAddress, OS_MMUControlFlushRequestFlags, OS_MMUControlFlushRequest, OS_MMUControlFlushRequestSingleEntry, OSPlatformFeatures_GetMMUFeatures, OSTaskControl_ReadAddrStackResetCode, KeyV_PresentNoDebounce, PaletteV_DisableVideoHardware, PaletteV_EnableVideoHardware, NVRAMV, ServiceDisplayChanged_State, Service_DisplayChanged, Service_DisplayStatus, Service_DeviceReregister: Added. (20101213-4, John Tytgat)
  • OSModule.swi: OSModule_StatusUnsuitable, OSMoudle_EarlyROMInitialisation, OSModule_StateAction, OSModule_StateEvent, OSModule_EnumerateWithPrivateWord, OSModule_ChangeState, Service_ModulePreInit, Service_ModuleStatus, Service_ModuleStatusInstanceRenamed: Added. (20101213-6, John Tytgat)
Bug Fixes / API changes
  • Macro.h/Macro.Hdr: the macro Bool didn't write its result to first parameter but modified the 2nd one. (20070505-1, John Tytgat)
  • Territory.swi(Territory_AlphabetUTF8): Added. (20070921-1, Christian Ludlam)
  • InetSuite.swi(InetSuite_FullMessageOpenURLIndirect): Added missing wimp_MESSAGE_HEADER_MEMBERS. (20070921-1, Christian Ludlam)
  • Corrected register usage for PDumper_TidyJob and definition of PDumper_Format and added some new format values based on a news posting (http://tinyurl.com/2wofsw). (20071118-1, Richard Spencer)
  • Systypes.h: better test on kernel.h inclusion; include toolboxtypes.h instead of toolboxtypes.H. (20081231-1, Mark Beerling)
  • Several SWI description corrections resulting in improved C and assembler header output:
    • BlendTable_GenerateTable (blendtable)
    • CDGetAudioParms_VolumeBlock is now a reason code instead of SWI number (cd)
    • Many PCI (pci) and SysLog (syslog) SWIs
    • TextGadgets_RedrawAll (textgadgets)
    • ZLib_CompressReturnSizes and ZLib_DecompressReturnSizes (zlib)
    (20090721-1, John Tytgat)
  • Wimp.swi(Wimp_ReleaseClipboard): Based on Wimp_ReleaseFlags, not Wimp_ClaimFlags (20090819-1, Jan-Jaap van der Geer)
  • ColourMap.swi(ColourMap_ApplyMapping): Corrected all types. (20090813-1, John Tytgat)
  • ColourTrans.swi(ColourTrans_CurrentMode): Remove, use OS_CurrentMode. (20090823-1, John Tytgat)
  • OSWord.swi(OSWord_LineBlock,OSWord_GCOLBlock): Removed as they were structs of long-time disabled SWI entries. Adjusted OSWord_Block union. (20090824-1, John Tytgat)
  • Toolbox.swi,ScollList.swi: fixed case (20090826-1, Jan-Jaap van der Geer)
  • Zipper.swi: split Zipper file bits into UnZip and Zip; Zipper_Append -> ZipperOpenFlags_Append, Zipper_NoDiscard -> ZipperOpenFlags_NoDiscard; added Zipper_EnumerateFlags, Zipper_ZipFileOpenFlags. (20091223-3, John Tytgat)
  • Portable.swi: Portable_PowerStop -> Portable_PowerTidyUp, Portable_PowerStart -> Portable_PowerAboutToFreeze; Portable_PowerAwakened, Portable_PowerWishesToFreeze: added. (20091223-10, John Tytgat)
  • ShareFS.swi(ShareFS_EnumerateShares): authentication parameter is input, not output; Added ShareFS_IdentifyShareFlags, ShareFS_IdentifyShareShareName, ShareFS_IdentifyShare, Message_FileShareDir, ShareFSMessageFileShareDir_Flags, ShareFS_MessageFileShareDir, Service_Sharing (20091223-12, John Tytgat)
  • Resolver.swi: Add errno return parameter for Resolver_GetHostByName; Added ResolverCacheControl_Reason, Resolver_GetHost, Resolver_GetCache, Resolver_CacheControl, EventInternet_DNSResolveComplete. (20091223-13, John Tytgat)
  • WimpExtend.swi: R0 for WimpExtend_GetSpriteAddress is 256, not 13. Added WimpExtendGetSpriteColourMap_Flags, WimpExtend_GetModeSuffix, WimpExtend_GetSpriteColourMap. (20091223-16, John Tytgat)
  • OSReadSysInfo.swi: Added OSReadSysInfo_IOControlUndefined, OSReadSysInfo_MemoryControlUndefined, OSReadSysInfo_VideoControlUndefined, OSReadSysInfo_LCDControlType2, OSReadSysInfo_IOMDType, OSReadSysInfo_IIC2HighSpeed, OSReadSysInfo_IOClockStateAtIdle, OSReadSysInfo_PlatformPhoebe, OSReadSysInfo_PlatformVirtualRPC, OSReadSysInfo_PlatformA9, OSReadSysInfo_KernelValueID, OSReadSysInfo_OSDescription, OSReadSysInfo_ReadOSVersion, OSReadSysInfo_ReadDebugInfo; OSReadSysInfo_KernelValue: change type of item parameter into OSReadSysInfo_KernelValueID; OSReadSysInfo_KernelValues: change type of value_buffer parameter into OSReadSysInfo_KernelValueID; Rename OSReadSysInfo_KernelValue_SVCSTK to OSReadSysInfoKernelValue_SVCSTK, OSReadSysInfo_KernelValue_SWIDispatchTable to OSReadSysInfoKernelValue_SWIDispatchTable. (20091225-1, John Tytgat)
  • WimpReadSysInfo.swi: Added WimpReadSysInfoTextSelection_Flags, WimpReadSysInfo_CaretColour, WimpReadSysInfo_DragSettings, WimpReadSysInfo_DblClickSettings, WimpReadSysInfo_SubMenuOpenSettings, WimpReadSysInfo_IconBarScrollSettings, WimpReadSysInfo_EdgeSettings; Renamed WimpReadSysInfo_TextSelectionColours to WimpReadSysInfo_TextSelection and provided flags output parameter. (20091226-2, John Tytgat)
  • InverseTable.swi(InverseTable_Calculate): Renamed from InverseTable_CalculateTable. (20101213-2, John Tytgat)
  • OS.swi(OS_ClaimDeviceVector): Change handle parameter into int. OSScreenMode_CacheFlags renamed to OSScreenModeConfigAcceleration_Flags OSScreenMode_CleanerLaziness renamed to OSScreenModeConfigAcceleration_CleanerLaziness OSScreenMode_SuspendCacheing renamed to OSScreenModeConfigAccelerationFlags_SuspendCacheing OSScreenMode_SuspendCleaning renamed to OSScreenModeConfigAccelerationFlags_SuspendCleaning Added OSScreenModeConfigAccelerationFlags_DisableHWAcceleration OSScreenMode_CacheControl renamed to OSScreenMode_ConfigAcceleration (20101213-5, John Tytgat)
  • CompressJPEG.swi(CompressJPEG_Transcode): Added destination and workspace output sizes. (20101213-7, John Tytgat)
Build Environment
  • OSLib sources are now on sourceforge.net SVN managed i.s.o. CVS. (20070414-1, John Tytgat)
  • DefMod2 GAS/ELF support (20071119-1, John Tytgat / John-Mark Bell)
  • DefMod2 will now provide a warning when there is a SWI description missing (excluding a 'star' one), or when two (or more) are provided. Added basic test set. (20090721-1, John Tytgat)
  • Removed DefMod2's .bytes built-in type, wasn't used. (20090727-1, John Tytgat)
  • DefMod2 will now provide a warning when there is type used being the same as one of the built-in types but without starting dot character. (20090728-1, John Tytgat)
  • DefMod2: support for AsAsm (AOF/ELF output) (20121030-1, John Tytgat)
  • BindHelp: Add option to build using supplied !Root, and appended filetypes. (20120921-1, Stephen Fryatt)

Site Contents