Short: MuLib aware experimental 68060 library Author: thorfdbg@alumni.tu-berlin.de (Thomas Richter) Uploader: thorfdbg alumni tu-berlin de (Thomas Richter) Type: util/sys Version: 46.6 Requires: an 68060, the mmu.library. Architecture: m68k-amigaos >= 2.0.4 ------------------------------------------------------------------------------ New in release 46.6: - The previous release had a bug when emulating FPU instructions in supervisor code. While the code was aware of this condition, it failed to create the proper stackframe for it and hence may have crashed. - Also, if more than 4 bytes were to be copied in or out of the code, the emulation failed to run the copy in the supervisor space. - If an access error was reported during a 1 to 4 byte copy- in or copy out, the code crashed because the stack frame was different than expected. - If an access error was detected during emulation of user code, the access error handler was incorrectly called in user mode, and hence crashed. Now, the entire FPSP stack frame is copied over from user to supervisor code, and execution continues in supervisor code as it should. (This is a very tricky condition). ------------------------------------------------------------------------------ This archive contains an experimental version of the 68060.library which substitutes the 68060.library that comes with the MuLib distribution. As such, it requires installation of the mmu.library. The experimental feature of this library is that it is multitasking-friendly. A program that makes excessive use of the 68060 FPU emulation may cause the mouse pointer to react sluggish, and the system may react less responsive. This is because the FPU emulation that comes with the regular 68060.library executes in supervisor mode and, as such, blocks multitasking. The currently running task can not be removed from the CPU while the FPU emulation is active, and hence the input.device, responsible for moving the mouse pointer, will not react to user input. This version of the 68060.library contains experimental code which executes the FPU emulation in user mode rather than supervisor mode, thus allows the operating system to remove CPU from the currently executing task, even if is in the middle of FPU emulation code. As result, the system remains reactive even if the FPU is under heavy use. ------------------------------------------------------------------------------ Installation: - If not yet done so, install the MuLib package and its processor libraries. - Make a backup of the 68060.library that comes with the Mu680x0Libs package. - Copy the 68060.library in this archive to LIBS: ------------------------------------------------------------------------------ FAQ: - Why is this an experimental library? Should I use it? It is experimental because the technology is new and is not quite as well tested as the regular 68060.library. Nevertheless, despite the handling of unimplemented floating point instructions, the code base is identical to that of the 46.4 68060.library in the Mu680x0Libs package. If you feel uneasy about experimental software, do not use this version but the regular version. It may contain bugs and may cause problems that have not yet been indentified. - Why do I need the mmu.library? Will it work without it? Will it work without a mmu? The mmu.library is needed because the codebase of this library is based on the 68060.library contained in the MuLibs archive, and as such, it offloads all its MMU based functions to the mmu.library. Hence, the 68060.library contained in this package will require the mmu.library, and will not work without it. The mmu.library will, however, also operate without a MMU, just will not provide many useful functions. - Is this library any faster than the regular library? No. It is slower because forwarding the execution of the FPU code from supervisor to user space causes some overhead. - Then, if it is slower, why should I use it? Because speed is not everything. This version is multi-tasking friendly and will not hog your CPU under heavy FPU load, thus the system will be more responsive under heavy load. - And what about the unimplemented integer instructions of the 68060? They continue to operate in supervisor mode. The functions are usually smaller and take less CPU time than the FPU emulation code, hence the advantage of executing them in user code is smaller. However, if there is an indication that this would be of advantage, inform me and I'll see what I can do. - And what about the unimplemented data types of the 68060? Again, they continue to execute in supervisor mode for the time being. If there is an indication that they should be offloaded to user space, let me know. ------------------------------------------------------------------------------ The THOR-Software Licence (v3, January 2nd 2021) This License applies to the computer programs known as the "mmu.library", and the "68060.library V46". The "Program", below, refers to such program. The "Archive" refers to the package of distribution, as prepared by the author of the Program, Thomas Richter. Each licensee is addressed as "you". The Program and the data in the archive are freely distributable under the restrictions stated below, but are also Copyright (c) Thomas Richter. Distribution of the Program, the Archive and the data in the Archive by a commercial organization without written permission from the author to any third party is prohibited if any payment is made in connection with such distribution, whether directly (as in payment for a copy of the Program) or indirectly (as in payment for some service related to the Program, or payment for some product or service that includes a copy of the Program "without charge"; these are only examples, and not an exhaustive enumeration of prohibited activities). However, the following methods of distribution involving payment shall not in and of themselves be a violation of this restriction: (i) Distributing the Program on a physical data carrier (e.g. CD-ROM, DVD, USB-Stick, Disk...) provided that: a) the Archive is reproduced entirely and verbatim on such data carrier, including especially this licence agreement; b) the data carrier is made available to the public for a nominal fee only, i.e. for a fee that covers the costs of the data carrier, and shipment of the data carrier; c) a data carrier with the Program installed is made available to the author for free except for shipment costs, and d) provided further that all information on said data carrier is redistributable for non-commercial purposes without charge. Redistribution of a modified version of the Archive, the Program or the contents of the Archive is prohibited in any way, by any organization, regardless whether commercial or non-commercial. Everything must be kept together, in original and unmodified form. Limitations. THE PROGRAM IS PROVIDED TO YOU "AS IS", WITHOUT WARRANTY. THERE IS NO WARRANTY FOR THE PROGRAM, EITHER EXPRESSED OR IMPLIED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT OF THIRD PARTY RIGHTS. THE ENTIRE RISK AS TO THE QUALITY AND PERFORMANCE OF THE PROGRAM IS WITH YOU. SHOULD THE PROGRAM PROVE DEFECTIVE, YOU ASSUME THE COST OF ALL NECESSARY SERVICING, REPAIR OR CORRECTION. IF YOU DO NOT ACCEPT THIS LICENCE, YOU MUST DELETE THE PROGRAM, THE ARCHIVE AND ALL DATA OF THIS ARCHIVE FROM YOUR STORAGE SYSTEM. YOU ACCEPT THIS LICENCE BY USING OR REDISTRIBUTING THE PROGRAM. Thomas Richter ----------------------------------------------------------------------------- So long, Thomas (March 2021)