zurueck ============================
AfA OS
[ AROS for AmigaOS ]
============================

Download AmiDevCpp
Version 0.4


Download AmiDevCpp
Version 0.3


Download DevPaks

DevPak Tutorial
(german only)


AmiDevCpp
Support Forum


über AmiDevCpp

about AmiDevCpp

contact
++++++++++++++++++++ Credits

Many many thanks go to Georg Steger who built the AROS
freetype2.library, diskfont.library and aatext.exe for 68k AmigaOS binary
and made with his great work truetype font usage possible (including AntiAliasing)
and helped me alot understand AROS to compile without Linux

thanks of course to to the AROS Team that develop a AmigaOS

Also thanks to the MOS Team who add fixes to this libraries(maybe i forget some)

asl,clipboard,commodities,gadtools,iffparse,intuition,locale,more,multiview, some c progs,some keymap files
diskfont,freetype(truetype support).texteditor and betterstring class

If you have questions or want help on AfA (I like to get help)
don't hesitate to contact me under


AfA uses the same Licence Model as AROS. Please note that you are using
AfA on your own risc. I will not be responsible for any damage or data loss
caused by AfA to you.

Notice too the Copyright of the bitstream Fonts Vera attached in this archive in fonts dir

++++++++++++++++++++ What is it ?

AfA OS is a way to use AROS source without changes and compile them on every
AmigaOS based operating system.

What the hell is the reason of another OS ?

It is not dependent on Linux as a host system. No AROS build system is needed.
So it can run and be build hosted on every AmigaOS compatible system and
provides a compatible API to all systems.

The current project is developed under AmiDevcpp (thanks to the Author for it), a windows Devcpp and
68k GCC 3.4 crosscompiler.
So currently it works on 68k systems only.But maybe someone other do that for OS4 or MOS that coders
that want build for all Amiga Systems need not stay on OS3.1 funcs or have much extra work

Because AfA runs hosted on AmigaOS, you can continue to develop every closed source
AmigaOS by replacing various libraries with the AROS libraries compliants.In MOS of course you need AFA libs
above listet not.

The host Amiga OS is with AFA degraded to do things that MS-DOS was doing for Windows 3.11 - WinMe.
This way new API features introduced by AfA can get a standard on all Amiga alike OSes.
And even more, it makes developing easy, because only new started programs can use
the new library functions, depend on what time ExpandLibrary() is called to check in the
new functions. So it is easy to check for bugs/errors using testprograms,
but the rest of the system is using the old stable functions.

It is easy to boot with or without the new libraries.
No original libraries in your LIBS: directory need to be overwritten.
A left mousebutton hold during boot time will prevent AfA to use the new libraries.
If this is too risky for you, you can start AfA_OS_loader using the option MOUSESTART.
Then, the new libraries are only used when you hold down the left mousebutton during boot
time. Or just start it later by doubleclicking AfA_OS_Loader manually.

To be on the safe side, don't do a later start when you defragment your harddrive or
do important diskoperations.
A later start has in theory a higher risc of crashing the system.

++++++++++++++++++ I don't want to code, read not much, bla bla - I want to use it!

For a complete list of the features, see the file featurelist.txt.

Installation:

- copy the dir AfA_OS_Libs to your sys: Amigadrive Bootpartition.If you dont like it here
you can add too a assign AfA_OS: to your directory where the AfA_OS_Libs are
- copy Libs:freetype2.library in your sys:libs directory
- copy C:AfA_OS_Loader to your sys:fonts directory
- copy Fonts: to your sys:fonts directory. If you want to have more fonts, use the Fonts
from AROS or MOS
- copy prefs: to your sys:prefs dir

To start it on boot time, insert AfA_OS_Loader in your S:startup-sequence, short before IPrefs

It must be inserted after patching tools like MCP or picasso96/cgx, because they patch the
AfA_OS Functions back.

If you start it with the parameter MOUSESTART (must uppercase written), you must hold the
left mousebutton during boot time to load the modules, instead of skipping them.

To see if all works well, start the "TextBench" program found in this archive.
TTF antialiased speed is currently no textrender record, it is not optimized,
see aatext source code, but I hope it is fast enough to be usable even on a 060/50MHz.

WinUAE is not very fast on GFX actions.
On AMD64 3000+, 10 characters can be printed about 7000 times per sec ( = 70 000 chars/sec).
Courier 15 text can be printed 9000 times per sec ( = 90000 chars/sec).So aa and truetype is not much slower.

On both with larger text lines more chars/sec are print

I am intrested to get 68k values of the TextBench, please send them to me.

++++++++++++++++++ I want to code and help to make more AROS libs available

Then download the AROS source code and AROS includes. Put the AROS source code in
a directory called AROSsource and the includes in AROSincludes. Start an existing project
(xxx.dev) in amidevcpp or look on the .dev projectfiles.
Here you see what settings are used and you can create a makefile for your prefered compiler if you dont
want use amidev Cpp.If you find loading is too slow of the projects then deactivate the class browser
for local and global include files.But notice you get then less help on type completion.

Now save the existing project using "save as" under the name of the new AROS lib you
want compile. For every AROS lib, you must modify the libdefs_68k_afa.h to correct library names
and basetypes, and copy it to the sourcedir. Sometimes, if you get compiler errors, you need
to add an include search path to the source directory.

Now you can compile. See also afa_os/include/aros/machine.h file the text.
Here you can choose if you want use AROS or AmigaOS stubs, debug, log or something else.

Look also in the xxx_start.c files.Here is the source code located, that is platform dependent
and initializing the library. Such a file you must add for your library and the existing one must
be removed.

The projects currently in need no change-very less change in arossource. But if you find one
let me know or mail on AROS Mailinglist.

little changes are in graphics_init.c

gfxinit.This line you must remove now.

//NEWLIST(&LIBBASE->TextFonts);

The rest of files you need are in the archive.It is done that the first include search path search in the dir
afa_os/include and use if the file is found here this file instead of arosinclude.
See also the include search order in amidev projects.It is important that you dont change the order

another thing to understand is what the AFA_system.library do.It hold in the positive lib space the preferences
struct which can acsess by prefs progs by opening this lib.also it offers a pref load(filename)
and a prefs Save(filename) command.because most lib have prefs setting this lib must start at first.

In future come in this libs all stuff and funcs that is diffrent to AROS

Usefull funcs in arrossuport.c

sometimes you need wait that a module is loaded.here AFA OS support WaitOpenLibrary.
This wait until a lib is load.There is the ExpandLibrary command.this copy the funcs of a old library to new
libray with same name but with a lib priority 1 above old.So this lib is then open by programs that start later

You can choose pars for the lib pos size and number of offsets the lib can have.
So every amigaos lib can grow as you like

New funcs are then set with the Macro SETFUNC.Here you can choose which original functions you want replace

++++++++++++ Hm Whats that.Wy not use the amiga library Format ???

Because the exe create the lib on runtime you can easy develop no need to
copy libs to lib dir and reboot.Oh no it dont boot,start from another partition change lib..
You can start another lib exe or add a testprog in the libexe can single step this with garphical debugger

But a Limit is here.Amigaos have only 127 pri.You must reboot after 127 times the lib exe is start

Users have the advantage if see a problem of a new program.They can easy boot by hold left
mousebutton and check fast if the problem really come from AFA,remove modules and
hopefully write a report so that this can fix soon and in the future that module can use