Embedder II Release V1.0 (C) Copyright 1993,1994 Bigmama/Focus Design All Rights Reserved Copyright note ~~~~~~~~~~~~~~ Embedder and Embedder II are copyrighted and must under *NO* circumstances be distributed commercially without an agreement with the author. If the archive and files are kept exactly like listed below, the "EmbedderII.LHA" archive can be freely distributed in any non-commercial electronic form. The archive "EmbedderII.LHA" should contain the following files: EmbedderII/ Docs.info Embedder Embedder.info Icons.info EmbedderII/Docs EmbedderII.doc EmbedderII.doc.info Arguments.doc Arguments.doc.info EmbedderII/Icons Embedder.info Embedder_project.info Disclaimer ~~~~~~~~~~ The creator of this program can and will in no way be held responsible for any family crisis, genetic mutations or damage on computers and/or software. So if you use it, you're the only one responsible for anything caused by this piece of software. Except from this I hope you'll enjoy and use it a lot.... Introduction ~~~~~~~~~~~~ Welcome to the world of Embedder, one of the most usable process embedding utilities around. If you know programs like Degrader you may have a slight idea of what Embedder can and will do for you. This utility was written because intros and demos that doesn't work with caches, AA chipset, relocated vector base, etc., is fuckin' annoying to deal with if you haven't got an old A500 or A2000 nearby. Embedder was written with all these facts taken into account and I hope it will help a lot of people. As most users with accellerated Amigas or A1200/A3000/A4000 owners use Workbench as their desktop, Degrader isn't much fun for these users at all. Therefore I wrote Embedder. There's been another version out some time ago; Embedder V1.1 in fact. But please note that this is Embedder II V1.0 and is a totally rewritten program, as it's smaller, faster and better. Embedder features usage from both Workbench and a CLI/Shell with the possibility of total configurability from both platforms. So although Workbench usage is favourized by me, there's help for all CLI freaks too. The programs you "embed" will benefit from Embedders possibilities of controlling your CPU caches, the resolution of your View and sprites, the relocation of the vector base register (VBR) and you'll get the extra feature of running cli-programs from the Workbench for free. Requirements ~~~~~~~~~~~~ To use Embedder you must be the lucky owner of a Kickstart(TM) 2.00+ (V36) although you will be a bit better of with 2.04+ (V37) because the V36 has some minor bugs. The sprite-resetting feature (part of the Embedder View controller) will only work on a Kickstart(TM) 3.0+ (V39), but as all versions older than V39 doesn't support different sprite-resolutions, this isn't a problem. To benefit from the AppIcon and the AppMenuItem you'll need at least Workbench V36. All functions that require a 68010 and better CPU can be used safely on 68000 too. Features ~~~~~~~~ There are 4 basic features of Embedder that I want to explain here. Cache control is not the most common problem when running A500 intros on accelerated machines, but if nothing else works, you'll have to try it. Embedder have the ability of dis-/enabling both instruction and data caches on all present Motorola® CPU's (Don't know about the 060 yet! ;-) ) The VBR is one of the most common problems with intros at present. It relocates the base address of all CPU exception vectors and thereby causes the interrupts never being executed. I guess you noticed that a lot of intros never came anywhere when first loaded or the music was probably not playing. Most trackloaded stuff hasn't got any problems with this because the vector base is first relocated when the SetPatch command is executed. On machines without fastram, the vector bae will never be relocated, so there goes another one for all you A1200 owners out there. Anyway, Embedder can set up the VBR so it seems like it isn't there at all so interrupts will work again. Along with the VBR, the View generated by graphics.library on AA chipset and some ECS machines is also a big problem. If you have problems with the graphics of your intros, that is if the graphics are totally module-torn-to-shit-like, then the feature of resetting the View to a totally blank display and setting the sprites back into the standard 140ns resolution of the ECS and older chipsets come in real handy. This is about it when dealing with Embedders embedding features. Note that all modifications to the environment will be restored, when the embedded process exits. Also note that if you disable the View, you will get a blank display from loading starts until the excuted process sets up some kind of a display. Setting up Embedder ~~~~~~~~~~~~~~~~~~~ As mentioned above, Embedder runs from both CLI and Workbench. You configure Embedder via ToolTypes either way you run it. There is some differences though: From Workbench: Embedder will load and read it's icon to get the ToolTypes, then an AppIcon and an AppMenuItem is set up and you can start playing around. If the program you execute via the App's has got it's own icon (e.g. the Embedder_project icon) then the ToolTypes present here will temporarily override the startup ToolTypes. Note that the ToolTypes not present will NOT affect the setup of the specific feature. All programs run from the App's will run as if they were executed from CLI, so if you don't need the embedding features you can just use it to run CLI-programs from WB. You can also insert the path of Embedder in a project icon belonging to the program you want to execute, then Embedder will be executed every time you double-click that icon. When run from a project icon or when run by clicking the Embedder icon and the icon of the program, Embedder will *NOT* create App's and stay resident. If you use the App's a lot, you can place Embedder in the WBStartup directory to get that little nice icon on your screen immediately at LoadWb time. From CLI: Here Embedder will also try to find it's icon to get the default setup from the ToolTypes. To specify temporary stuff, just enter them at the command-line. From the CLI the AppIcon and AppMenuItem isn't available, but you'll benefit from the fact, that Embedder will run without Workbench running. Embedder will throw some command-line options at you if you type 'Embedder ?' in the CLI and they'll look like this 'Cac/K,ICac/K,DCac/K,VBR/K,View/K,File/A,Args/F:' and they correspond directly to the ToolTypes described below, except for the File/A and Args/F options which describes the file and arguments of the program you want to embed. Sample command-line: 'Embedder dcac off vbr on view on c:dir df0:s/ If Embedder is unable to locate it's icon the built-in setup will be used. It goes like follows: CACHE=ON, VBR=OFF, View=OFF The ToolTypes understood by Embedder means what they're called :-) CACHE=(ON/OFF) Determines wether you want both caches to be enabled as you run a process or not. Note that if you set this to ON and the cache is disabled it will still be turned on when a process is run. ICACHE=(ON/OFF) This en-/disables the instruction cache. It takes precedence over the CACHE ToolType; shares all other properties with CACHE. DCACHE=(ON/OFF) This en-/disables the data cache (including copyback). It takes precedence over the CACHE ToolType; shares all other properties with CACHE. VBR=(ON/OFF) If you've got fastram you probably want to set this to OFF, as the chance of working interrupts is much bigger then. Note that the VBR is present on 68010 and higher only. VIEW=(ON/OFF) On AA (AGA) chipsets this one should probably be off, as many intros/demos that put up their own copperlist will fail, if they don't reset the display. When View is OFF Embedder will remove the View and set up a blank old-chipset display. This might have an effect on ECS also when running SuperHires or some overscan modes. *NOTE* All features restores the system as it was before the embedded process was executed. Contact me! ~~~~~~~~~~~ You can get in touch with me in several ways... via InterNet: mail me at "bigmama@bohr.ot.dk" via BBS: '/Y\etal Connextion' [elite only] node 0: +45 74435949 node 1: +45 74435950 via mail: Bigmama/Focus Design Jesper Matthiesen Skovgyden 26 5230 Odense M DK-Denmark Contact me for almost anything but swapping. For reporting bugs, for a little coders chat or if you discovered how to code something really nice ;-) // \X/ Amiga rulez! History ~~~~~~~ Although Embedder II hasn't got much of a history yet, I want to explain the differences between Embedder II V1.0 and Embedder V1.1. A lot of bugs should be fixed, especially the bug that left the system hangin' after the embedded process had ended. Additionally Embedder II works from CLI without Workbench running. -------------------------------------------------------------------------------- Embedder II V1.0 28-Jan-94 First release of Embedder II Totally rewritten release of Embedder. Lots of changes... --------------------------------------------------------------------------------