Short: OS4 API emulator Author: Ilkka Lehtoranta Uploader: Samo79 Type: misc/emu Version: 1.8 Architecture: ppc-morphos This is the OS4 API emulator for MorphOS. It is not complete but quite a number of OS4 native programs run. What is new in 1.8: Use PPC native AmigaOS4 libraries from MorphOS ---------------------------------------------- Support for PPC native AmigaOS4 libraries is reworked for version 1.8. It is now possible to use PPC native AmigaOS4 libraries in MorphOS like they were native ones. In order to enable this feature there is new switch in PatchLoadSegOS4 utility: OPENLIBPATCH. When used os4kernel.library is permanently locked to memory and MorphOS can succesfully open and manage all PPC native AmigaOS4 libraries. -- usage -- Rename AmigaOS4 libraries to have '.os4' extension and copy them to 'SYS:OS4Emu/Libs'. To enable them execute following commands: Assign LIBS: SYS:OS4Emu/Libs ADD PatchLoadSegOS4 OPENLIBPATCH -- notes -- AmigaOS4 libraries always appear to MorphOS with '.os4' extension. Therefore it is possible to have two similarly named libraries in the system. I.e. you can have libraries 'foobar.library' and 'foobar.library.os4'. The first one is real MorphOS library and the second is AmigaOS4 library. When real MorphOS library is not available system can use AmigaOS4 native library. -- limitations (for those who care) -- Not all libraries are callable, usable or compatible to the MorphOS. Currently only certain crosscalls between MorphOS <--> AmigaOS4 are supported. The direct object interface (DoMethod(), SetAttrs() etc) do work but hook interface (CallHookPkt()) doesnt. Thus following AmigaOS4 libraries wont work from MorphOS side: MUI custom classes BOOPSI classes (3rd party reaction classes) mpega.library (has another issue also) Datatypes might or might not work. Other enhancements ------------------ Fixed MatchFirst(), MatchNext(), MatchEnd(), AllocDosObject(), FreeDosObject() calls in dos.library (I didnt know AnchorPath structure had changed). This fixes LOCCounter. Fixes and additions to intuition.library, gadtools.library, exec.library and Reaction emulation classes. GadTools fixes fixed SGrab OS4 but there is still menu trouble. Added EncodeColor() function to P96 wrapper. What is new in 1.7: Support for PPC native AmigaOS4 libraries ----------------------------------------- OS4EMU can now load and initialize AmigaOS4 native libraries. The emulation kernel looks for libraries from different locations in this order: PROGDIR: PROGDIR:Libs SYS:OS4EMU/Libs SYS:OS4EMU/Classes If corresponding library is found the kernel loads and initializes library for use in the emulation. Only PPC native autoinit libraries are supported and possible 68k jump tables are discarded. Limitations ----------- AmigaOS4 libraries are private to the emulation kernel and not visible nor accessible to MorphOS programs. AmigaOS4 native devices, datatypes or MUI custom classes are not supported. PPC native Reaction classes are useless since the kernel always uses internal versions of those. Other improvements ------------------ Added new interfaces: - expansion.library (pci interface only) - usergroup.library - slider.gadget, colorwheel.gadget - drawlist.image It is now possible to run some PCI related utilities, i.e. pciscan. Drivers are not supported. Other improvements: - added interrupt support - fixed P96 emulation (Zero from Universe had wrong colours) - fixed MUI emulation - fixed layers.library interface - improved datatypes.library compatibility Usage: Use supplied installer script or copy os4kernel.library and os4loader.library to LIBS: and OS4Emu launcher tool and PatchLoadSegOS4 to C:. To run OS4 native software you type "OS4EMU " or run PatchLoadSegOS4 in User-Startup. Once patch is running you can start OS4 native software directly from Ambient. When using OS4EMU launcher you can use "??" to get help from OS4 native program. Currently following library or device interfaces are supported: ahi.device (new in 1.2) installed version amigainput.library (new in 1.5) 51.0 asl.library (new in 1.2) 51.0 asyncio.library (new in 1.6) installed version bsdsocket.library (new in 1.3) 4.0 cgxvideo.library (new in 1.5) installed version commodities.library (new in 1.4) installed version console.device (new in 1.3) installed version cybergraphics.library (new in 1.2) installed version datatypes.library (new in 1.1) 51.0 diskfont.library (new in 1.3) installed version dos.library 51.0 exec.library installed version expansion.library (new in 1.7) 51.0 gadtools.library (new in 1.2) 51.0 graphics.library (new in 1.1) 51.0 icon.library (new in 1.3) 51.0 iffparse.library (new in 1.4) installed version intuition.library (new in 1.1) 51.0 keymap.library (new in 1.2) 51.0 layers.library (new in 1.2) installed version locale.library (new in 1.1) 51.0 lowlevel.library (new in 1.6) 51.0 muimaster.library (new in 1.3) installed version picasso96api.library (new in 1.1) 2.0 rexxsyslib.library (new in 1.4) installed version timer.device (new in 1.1) installed version usergroup.library (new in 1.7) installed version utility.library 51.0 workbench.library (new in 1.2) 51.0 xpkmaster.library (new in 1.5) installed version Other devices are accessible via Exec I/O In addition following ClassAct/Reaction classes are supported: arexx.class 51.0 bevel.image (new in 1.6) 51.0 bitmap.image 51.0 button.gadget 51.0 checkbox.gadget 51.0 chooser.gadget 51.0 clicktab.gadget (new in 1.5) installed version colorwheel.gadget (new in 1.7) 51.0 drawlist.image (new in 1.7) 51.0 fuelgauge.gadget (new in 1.6) 51.0 getfile.gadget 51.0 getfont.gadget 51.0 getscreenmode.gadget installed version glyph.image (new in 1.6) 51.0 integer.gadget (new in 1.6) 51.0 label.image 51.0 layout.gadget 51.0 listbrowser.gadget 51.0 radiobutton.gadget (new in 1.5) installed version requester.class (new in 1.5) 51.0 scroller.gadget 51.0 slider.gadget (new in 1.7) 51.0 space.gadget 51.0 string.gadget 51.0 texteditor.gadget installed version textfield.gadget installed version window.class 51.0 Support for ClassAct/Reaction was introduced in version 1.4. The string "installed version" mean library version depends on your MorphOS installation. Version number 51.0 doesn't mean all function calls are implemented or supported. There are now 58 supported interfaces in total. Version history --------------- · Version 1.6 (05.02.2005) - added interfaces for asyncio.library, lowlevel.library, bevel.image, fuelgauge.gadget, glyph.image and integer.gadget - added public API calls to os4loader.library - better Reaction compatibility · Version 1.5 (16.1.2005) - AmigaInput emulation - Requester.class emulation - added interfaces for clicktab.gadget and radiobutton.gadget - asl.library and utility.library promoted to version 51.0 · Version 1.4 (19.12.2004) - Reaction/ClassAct support - new interfaces for iffparse, rexxsyslib and commodities - bugfixes · Version 1.3 (12.12.2004) - MUI is supported now - new interfaces for bsdsocket, console, diskfont, icon and mui - fixed CreateNewProc() in IDOS - fixed AHI emulation · Version 1.2 (05.12.2004) - new os4loader.library - new command to patch MorphOS LoadSeg() - fixed NewList() in IExec - fixed GetProgramName() in IDOS - added gadtools, asl, cgx, layers, ahi and workbench interfaces · Version 1.1 (28.11.2004) - new libraries and devices