home *** CD-ROM | disk | FTP | other *** search
- 26-Feb-1996
- Documentation for
-
- ==========================
- ==== FastExec 39.16 ====
- ==========================
- Copyright © 1994-1996 PitPlane Productions
-
- IMPORTANT! Please read copyrights, disclaimer and
- license parts of this document before use.
-
-
-
- *** What is FastExec? ***
-
- o FastExec is a reset proof patch to move Execbase and supervisor stack
- from chipram into 32bit fastram on Blizzard 12x0 based A1200s, or
- other turbo card based systems having the same problem. FastExec
- requires Kickstart 3.0 or better.
-
-
- *** Why FastExec? ***
-
- o With Blizzard turbos (at least 1230-III) fast memory is added to
- system memory pool after execbase is initialized. This leads to the
- fact that execbase and system supervisor stack are stuffed into chip
- memory! As you may have heard, chipram is slow compared against
- fastram, in fact fastram can be more than ten times faster! It's a
- pity that so vital parts of system get into chip memory, as there
- usually is loads of lighting speed fastram available. FastExec is
- program to fix this problem.
-
- o There is another program called FastExec (author Torbjörn Andersson)
- but it isn't as good as mine. It's over 4K long. It uses HACKS. It
- doesn't survive resets. It's ShareWare. First version of my FastExec
- was (internally) released at the end of year 1994, so it's an
- independent product.
-
- o Taken from the document of Andersson's FastExec:
-
- "FastExec is not programmed in a recommended way, because I
- don't know any clean way to solve the problem. FastExec may
- not work on your system."
-
- As a side effect Andersson's FastExec disturbs AutoConfig system.
- Just try to examine expansion boards in your system after using it.
- My machine claimed that there weren't any present!? I think there
- isn't any good reason to move expansion.library because it causes
- these severe troubles.
-
- Well, I know the clean way to move execbase and I implemented it.
-
-
- o This tool is FREEWARE!! (see license)
- o FastExec is 100% assembler!
- o FastExec executable is less than 1024 bytes short!
- o Uses only 424 bytes of memory! (Yes, that's true!!)
- o Doesn't conflict with bootmenu! (Andersson's FastExec does!)
- o Can be used to fix similar troubles with other turbos too!
- o I dunno about the speedup, as there aren't many multitasking
- benchmark programs around. Should be worth of it, though.
- o FastExec should be compatible with all future kickstarts.
- o Enforcer hit free (tested)
-
-
- *** Notes ***
-
- o ATTENTION kickstart release 2 users!!
- Would you like to see FastExec running on your system? If you would,
- contact me (author) and ask. This could be _very_ easily implemented,
- but I really didn't see any reason to support this anchient kickstart
- release... ;-) The fact is that most of the powerful systems (that
- need FastExec) run with kickstart 3.0 or better. (Except maybe some
- upgraded A3000s?) Anyway, if you need FastExec for KS 2.x contact me.
-
- o FastExec has been tested on following system:
-
- A1200 10/540 MB, Blizzard 1230-III 68030 @ 50MHz
- A1200T 10/820 MB, Blizzard 1260 68060 @ 50MHz
-
- FastExec works (should work!) with all other turbo cards having
- similar troubles. FastExec doesn't rely on Blizzard products, but
- others aren't tested. If you're having troubles with FastExec on
- your system and you're sure that trouble is hardware (or maybe even
- software) related, contact me. I'll (try to) fix it. I cannot
- guarantine FastExec to be 100% software/hardware compatible!
-
- o Note that FastExec can *not* move execbase to fast memory which is
- added with AddMem or similar tool in startup-sequence. Credit Card
- (PCMCIA) memory cannot be used, but it's even slower than chipram
- anyway!
-
- o Some of virus killers and checkers may report that system's kickmem
- and kicktag pointers are in use. That really is the case, but you
- should calmly ignore these warnings. (Most virus killers/checkers
- will show the name of the kicktag, in this case it is 'Fast_Exec'.)
-
- o FastExec doesn't use Cold- or CoolCapture. This means it'll work fine
- with, for example, ShapeShifter's PrepareEmul tool, in any
- circumstances.
-
- o FastExec should be compatible with all future Kickstarts. Kickstart
- 3.0 is currently the only tested one. If FastExec refuses to
- co-operate with KS 3.1 or maybe with 4.0 beta(?) then contact me.
-
- o To contact the author (for any reason?) try this:
-
- Harry Sintonen (Delta) (Gifts, cli-scripts, ASM Sources
- Kotipolku 30 etc. are welcome. No illegal trade.)
- 48710 Karhula
- FINLAND
-
-
- *** Technique ***
-
- o If you're not interested how this program works you should skip this
- part of the document. Maybe you should skip it anyway, because first
- of all, this part is quite technical and secondly: I'm not very good
- in explaining complicated things in english as this. (Forgive me!!
- English isn't my native language after all. ;-)
-
- o The very early rom startup hasn't changed much since Kickstart
- release 1.2. All the internals, including hardware initialization,
- execbase and internal variable building are almost identical in all
- kickstart versions. Of course, in newer kickstarts things are done
- much better than in earlier versions, and some structures has been
- expanded, but the main idea is the same.
-
- When the system has been initialized, temporary execbase has been
- created. Then the system will search ROM memory for resident modules
- and create ResModules list. If any KickTags are defined they'll
- be inserted (or they'll replace existing modules) to ResModules list.
- After this, all the resident modules will be initialized. This really
- gets things running. The ResModules list will be initialized in
- priority order, that is, expansion.library will be run (read:
- initialized) first.
-
- Expansion.library initialises all the expansions in system and for
- example, memory of SupraRAM 500RX expansion for Amiga 500 will be
- added to system's MemList. Apparently the memory of Blizzard 12x0
- Turbo Board is NOT added in this phase. All memory above 16 megabyte
- area (8MB autoconfig memory area) will be initialized afterwards. The
- task is done by resident called 'diag init'. Its priority is 105
- while exec.library's is 104.
-
- Exec.library will be the next resident module to initialize. It tries
- to allocate fast memory for execbase, but if it doesn't succeed it
- will use the temporary execbase, which is always in chipram
- (actually, it can be in pseudo fast memory). If it does get the
- memory then the temporary execbase is cloned to new one and the
- memory taken by temporary execbase is free'ed. As the memory of
- Blizzard Turbo Board isn't available, the execbase and supervisor
- stackpointer will be in chipram (The memory is added to system
- afterwards in 'diag init' resident).
-
- The trick is, that we'll allocate known fastram when the system is
- running with that memory. Then we'll relocate execbase and supervisor
- stack to this newly allocated memory array. The hard part is that
- execbase can NOT be cloned when it is available in multitasking
- enviroiment. Programs might have got execbase pointer from address 4
- and use it happily, when we would free the memory used by that
- execbase and use the new, totally different memory array as new
- execbase. This would cause a total crash. The solution is to clone
- execbase early enough, BUT after fastram is added to system memory
- pool, which means use of kicktag pointer at priority 104. (Just after
- 'diag init' resident!)
-
- Now our kicktag code is called after the fastram is available so we
- can simply AllocMem() the execbase and stack area, clone execbase,
- create new supervisor stack, set new execbase pointer to address 4,
- set new supervisor stack pointer, free old execbase and stack memory,
- and viola!, things are running fine.
-
- The memory of kicktag code (code handling all the above) is
- allocated with KickMemPtr service of execbase. As this memory is
- allocated by execbase initialization, it must exists in MemList at
- that time (this code is in chipram with A1200). Now, all the memory
- has been allocated and the system is running from fastram.
-
- This technique will work with future kickstarts. The reason is that
- most of the execbase's structures aren't initialized at the moment
- the cloning is done. Actually the only potential problem is that
- system will crash if some program gets execbase pointer before
- FastExec and uses it afterwards.
-
-
- Now, that was a cutted version of _The Technique_!! [grin]
-
-
- *** FastExec's Usage ***
-
- o FastExec's template is
-
- FORCE24BIT/S, RESET=REBOOT/S
-
- FORCE24BIT/S With this switch you can force FastExec to
- accept also fast memory below 24-bit
- address range. Normally only fast memory
- above 16MB (24-bit) is accepted. Usually
- this switch isn't needed, I added it just
- for compability reasons.
-
- RESET=REBOOT/S If this switch is specified FastExec will
- reboot the machine immeditially after
- FastExec is installed to memory. BEWARE!!
- You will lose all the information in ram!
- Of course, no reboot is done if execbase is
- already in fastram.
-
-
- o RC (return code) is set:
- OK (0) FastExec installed ok.
- WARN (5) FastExec isn't needed. Exec is already in
- fastram. This is also the result if
- FastExec has already moved exec. Of course
- RESET=REBOOT/S has no effect if execbase is
- already moved!
- ERROR (10) Things went wrong. Couldn't get memory?
- This is the error you get if you do not
- have 'real' fastram at all (see FORCE24BIT
- switch).
- FAIL (20) Something fatal happened! Dos didn't open?
-
-
- o If you aren't aware of the fact whether you really need FastExec or
- not (YES, you don't necessarily need this program! :) and you want to
- install FastExec easily you should follow these instructions:
-
- Write in CLI or Shell:
-
- 1.> FastExec
- 1.> Set
- process 1
- RC 5
- Result2 0
- 1.>
-
- If you got result as above (RC=5) you do not need FastExec as
- execbase is already in fastram. If you got RC=10 then you do not have
- enough memory (or you don't have 'real' 32-bit fastram [See
- FORCE24BIT switch]).
-
- process 1
- RC 0
- Result2 0
-
- If you got Set's output as above (RC=0), you NEED FastExec. It will
- now activate after next reboot, but if you want to make FastExec's
- effect permanent, you need to copy FastExec executable into your C:
- drawer (if not yet done) and insert the following line to the
- beginning of your S:StartUp-Sequence file:
-
- C:FastExec REBOOT
-
- Now, after every coldreboot (total crash, powering up) your machine
- will boot twice, but that isn't too disturbing, I think!
-
- You can leave REBOOT switch out, the only difference is that execbase
- will not be moved into fastram first time the system is powered up
- (or rebooted after fatal crash), as the system will not be rebooted
- by FastExec. This makes more sense if you have several similary
- acting reset proof patches in your startup. Because of this feature
- you can install, for example, following lines to your
- startup-sequence:
-
- C:FastExec ; FastExec will not reboot machine,
- C:PrepareEmul ; but PrepareEmul will!
-
- Now, your machine will be extra rebooted only once, instead of two
- reboots. (I really hate triple reboots!! ;^)
-
-
- Simple, ha?
-
- And remember... Enjoy the FAST Exec!
-
-
-
- *** COPYRIGHTS ***
-
- All Amiga technology is Copyright © Amiga Technologies GmbH.
-
- Blizzard Turbo Boards are © 1994 phase 5 digital products. All rights
- reserved.
-
- ShapeShifter is © 1993-1995 Christian Bauer. PrepareEmul is a part of
- the ShapeShifter package.
-
- SupraRAM is © 1991 Supra Corporation. SupraRAM 500RX is a trademark
- of Supra Corporation.
-
- FastExec is Copyright © 1994-1996 PitPlane Productions.
-
-
- *** LICENSE ***
-
- 1. This license applies to the product called "FastExec", a program for
- the Amiga computer, published by PitPlane Productions under the
- concepts of FreeWare, and the accompanying documentation. The terms
- "Program" and "FastExec" below, refer to this product. The licensee is
- addressed as "you".
-
- 2. You may copy and distribute verbatim copies of the program's
- executable code and documentation as you receive it, in any medium,
- provided that you conspicuously and appropriately publish only the
- original, unmodified program, with all copyright notices and
- disclaimers of warranty intact and including all the accompanying
- documentation, example files and anything else that came with the
- original.
-
- 3. You may not copy and/or distribute this program without the
- accompanying documentation and other additional files that came with
- the original. You may not copy and/or distribute modified versions of
- this program.
-
- 4. You may not copy, modify, sublicense, distribute or transfer the
- program except as expressly provided under this license. Any attempt
- otherwise to copy, modify, sublicense, distribute or transfer the
- program is void, and will automatically terminate your rights to use
- the program under this license. However, parties who have received
- copies, or rights to use copies, from you under this license will not
- have their licenses terminated so long as such parties remain in full
- compliance.
-
- 5. By copying, distributing and/or using the program you indicate your
- acceptance of this license to do so, and all its terms and conditions.
-
- 6. Each time you redistribute the program, the recipient automatically
- receives a license from the original licensor to copy, distribute
- and/or use the program subject to these terms and conditions. You may
- not impose any further restrictions on the recipients' exercise of the
- rights granted herein.
-
- 7. You may not disassemble, decompile, re-source or otherwise reverse
- engineer the program.
-
- 8. If you wish to incorporate parts of the program into other programs,
- write to the author to ask for permission.
-
- 9. You agree to cease distributing the program and data involved if
- requested to do so by the author.
-
- 10. You may charge a fee to recover distribution costs. The fee for
- diskette distribution may not be more than the cost to obtain a public
- domain diskette from Fred Fish.
-
-
- *** DISCLAIMER ***
-
- NO GUARANTEE IS GIVEN NOR IMPLIED THAT THIS PROGRAM IS FIT FOR ANY
- USE. THIS PROGRAM AND THE INFORMATION WITHIN THIS TEXT IS PROVIDED ON
- "AS IS" BASIS. THE ENTIRE RISK AS TO ITS QUALITY AND PERFORMANCE IS
- WITH THE USER. SHOULD THE PROGRAM PROVE DEFECTIVE, THE USER (AND NOT
- THE AUTHOR) ASSUMES THE ENTIRE COST OF ALL NECCESSARY DAMAGES. IN NO
- EVENT WILL THE AUTHOR BE LIABLE FOR DIRECT, INDIRECT, INCIDENTAL OR
- CONSEQUENTIAL DAMAGES RESULTING FROM ANY DEFECT IN THE PROGRAM. THE
- AUTHOR RESERVES THE RIGHT TO MAKE CHANGES TO THE SOFTWARE OR
- DOCUMENTATION WITHOUT NOTICE.
-