All Rights Reserved
Source code for the main Enforcer tool:
Source code for the MMU tool:
Source code for SegTracker:
Source code for FindHit:
Source code for RebootOff:
Source code for Move4K:
Source code for LawBreaker:
Enforcer is an advanced debugging tool for Amiga computer systems equiped with a 68020/68851, 68030, 68040, or 68060 CPU. It uses the MMU to help detect stray pointers and access to invalid memory.
The Enforcer archive includes tools to help identify the exact location of bugs, including the line of source code in most C or Assembly code, as well as some other languages. (Requires debugging information: I know that at least one M2 compiler makes LINE debugging information and that the Pascal compilers at least talked about it. The LINE debug information is what WACK (grandWack), MetaScope, SAS/C, Manx, and DICE all support.) Also includes a large on-line manual and some examples as to how errors can be caught.
Enforcer was instrumental in the development and testing of AmigaOS 2.04 (and up) and to the improvement of the quality of software on the Amiga. Enforcer is designed to provide more debugging capabilities across more hardware configurations and with more options than ever.
The current Enforcer archive (in LHA format) is available here.
I have never charged money for the use of Enforcer as a tool to help make better Amiga programs. Enforcer has helped make Amiga software some of the most reliable software on any computer platform. I have not, however, made the source available. The main reason being that I want to keep the quality of Enforcer high and reduce the chances that there would be "derivative" versions of Enforcer.
People still ask about how to get the source, and about how they can support the developer of Enforcer...
Well, you asked for it; now you can get it...
You can now get the source code to Enforcer and all of Enforcer's tools. For $60 (US) I will send you a disk or EMail you an archive that contains the complete build of Enforcer. Including source and object files, makefiles, icons, etc. The price is not even as high as people had suggested to sell Enforcer for, but I do wish to make some money so that I can keep doing Amiga work. The source is fully commented and should be of interest to anyone who likes looking at how things work on the inside.
However, there are some restrictions: a) The source code is not to be distributed. If you did not get it directly from me, please let me know. b) Any programs made with the source code are not to be distributed without first letting see the new code. c) For commercial use of the source or programs developed from the source, please contact me.
If you have special needs or requirements, please contact me. I would be more than willing to address any concerns/wishes you may have.
Changes from the V37.72 release of Enforcer:
- Enforcer tries to reduce memory frags
- Enforcer now tries to reduce the memory frags that it may have caused on 68040 and 68060 systems while trying to allocate MMU table entries. MMU table entries must be aligned at certain addresses and the new code is better at finding reasonable holes to do this in.
- Opening of 68060/68040 libraries
- To help reduce problems with certain system configurations, Enforcer and MMU now try opening the 68060.library first and only if it fails does it try for the 68040.library. This is mainly for special-case development environments.
Changes from the V37.70 release of Enforcer:
- Changed MMU tables on 68060 CPUs
- There are a number of different 68060.library versions out there. Enforcer now assumes that these libraries do not deal with cached MMU tables.
- Documented hack for some 68060.library versions
- Documented a patch that will let certain 68060.library versions deal with Enforcer better. Some of the libraries, unlike the 68040.library, do not continue to do DMA/MMU processing once Enforcer is loaded. In at least one of them, it is very simple to patch this behavior back to what it should be.
- Enforcer source is viewable on the web!
- I have made a script that puts the current Enforcer source code into HTML format and onto my web site.
Changes from the V37.62 release of Enforcer:
- Added 68060 CPU support.
- The 68060 is the fastest of the Motorola 680x0 series of microprocessors. This CPU adds a significant performance improvement over the 68040 CPU. It also adds some more complexity and a few features that affect debugging. This version of Enforcer is the first public release that provides support for the 68060. See documentation for details.
- New MMU dump tool.
- This tool works on 68040 and 68060 CPUs. See documentation for details.
- A large amount of new documentation.
- Much of the new documentation talks about how and why certain things were built the way they were. Some of the documentation is a "must read" for Amiga system hackers and CPU hardware vendors. It includes some source code for some of the patches that were needed to make the 68040.library support as much Amiga software as possible. (And, thus, 68060.library - hopefully)
- A special offer: Source code to all the Enforcer tools!
- Enforcer has always been available for use by Amiga developers for free. I feel that the wide spread use of Enforcer has been one of the reasons Amiga software is as good as it is. With this release of Enforcer, I am making a special offer to people who wish to get the source code. This offer is detailed in the documentation.
If you have any questions, please contact me at Enforcer@Sinz.org.
Quantum Physics: The dreams that stuff is made of. -- Michael Sinz