home *** CD-ROM | disk | FTP | other *** search
-
- I. Distribution
-
- system/hal.rom
- system/kernel.rom
- system/amiga.rom
- system/module.rom
- system/startup
- dev/
-
- II. Binaries
-
-
- II.1 startup
- is the Amiga binary which starts the whole system.
- check out qstartup/startup.doc
-
- II.2 hal.rom
- is the hal which determines the current hw resources.
- o determines CPU type, clock
- o scan the amiga zorro io ports for zorro2/3 cards and
- configurates them.
- o find local hardware(cvisionppc,symbiosppc)
- o creates a resource map for the Quark kernel
- o Starts the kernel resource.
-
- II.3 kernel.rom
- contains the quark kernel and related server threads.
-
- o ExceptionServer
-
- o MasterClanServer
-
- o AddressServer
-
- o ConfigServer
- Is some kind of config filesystem where all the resources
- the hal passed are located. It will be used to provide
- all kinds of internal system prefs.
-
- o CPUTimeServer
-
- o SystemInit
- This server thread basicly starts up the system...
-
- o creates the amiga task.
-
- o searches for the amiga.rom, module.rom and
- kickstart resource.
-
- o maps the initial stack at 0x10000000..0x30000 bytes
-
- o maps the amiga.rom at 0x01000000
-
- o maps the module.rom at 0x10100000
-
- o grants the new amiga task the needed addressspace.
- amiga custom chips, memory, cvisionppc, symbios scsi
- and so on.
-
- o then it starts the new amiga emulation task`s userthread0
-
- II.4 amiga.rom
- contains the 68k emulation.
-
- o parses internal patch tables for kickstarts in the
- patch database.
-
- o creates a task custom exception thread which handles
- exceptions inside of the emulation process space.
- Does something like Enforcer at the moment and in the
- future will provide a little custom chip emulation which
- is needed for handling the interrupt controller register.
-
- o creates 14 intthreads for all amiga custom chip interupts.
- These threads handle the whole exec interrupt system.
- The stack is somewhere in the 0x10000000 area.
-
- o start the emulation in the current thread at 0xf80002
-
- *Technical issues which may need a deeper architecture knowledge*
-
- > It needs to use synchronous interrupt threads because
- > it has to deal with zorro2,zorro3, cias and some custom
- > chip issues.
- > When all cia dependency is removed, zorro hw isn`t needed
- > or all controlled by Quark drivers and the whole custom
- > chip support is replaced by an own system simular to the
- > Draco there`s no need anymore for synchronous intthreads
- > and the emulation would be a "safe" application.
-
- > All the technology to do this is available.
- > It`s only a matter of time.
- > As we have a proven CyberGraphX RTG which already provided
- > the Macrosystem Draco with the ability to run without
- > any custom chipset support.
- > Moving the Symbios7x0 Drivers to the Quark Level is also
- > possible.
-
- > At the moment the emulation is basicly a fat *driver* and
- > when it *seriously* crashes it can take down the system.
-
- II.5 module.rom
- contains additional resident modules to the ones in the kickstart.
- It should also be easy to add own modules to the modules we provide.
-
- o exec68k
- o installs import exec extensions.
- o InitResident() extensions
- new resident forms...PPC native residents, patch residents.
-
- o NewSetFunction()
- o new AddTask()
- o new RemTask()
- o new Dispatch()
- o new Switch()
- o new Schedule()
- o new Supervisor()
- o converts current exec init task into an ETask.
- o from now on all tasks are ETasks as described in
- the old exec/tasks.i.
-
- <This module will be replaced with a full ppc exec resident module in the future.>
- <There is no real speed benefit as all important functions are already native but>
- <it would make a port to different hw easier.>
-
- o execppc
- o Replaces all kinds of exec functions with native ppc
- exec functions.
-
- o graphicsppc
- o native patch resident
- o Replaces entries which aren`t yet covered by cybergfx.
- All kinds of Rastport structure related functions which
- are used often.
- Sooner than later this will probably be moved into cybergfx.
-
- o cybppc
- o complete PPC native AmigaOS cybppc.device
-
- o blizzppc
- o complete PPC native AmigaOS blizzppc.device
-
- o a4091ppc
- o complete PPC native AmigaOS A4091 scsi.device
-
- o a4000Tppc
- o complete PPC native AmigaOS A4000T scsi.device
-
- o ppc.library
- o complete PPC native ppc.library which emulates the
- old ppc.library functionality inside the AmigaOS
- enviroment.
- o Extended amiga elf support which means that elfs
- sections are now segments in a seglist.
- That way you can write .elf *Amiga* libraries and
- devices which are loaded by the system
-
- o ramlib
- o PPC native ramlib module with extended
- .elf ppc native libraries and devices.
-
- 68k loading rules were(the same for devices)
-
- if $libs contains ":" then loadlib($libs)
- else
- {
- if loadlib("libs:"+$libs) failed
- loadlib($libs) failed
- }
-
- New PPC loading rules are(the same for devices) to
- make sure that a potential new PPC .elf library is
- loaded before a 68k one. That way we can keep 68k and
- PPC version.
- A ppc one doesn`t need the .elf postfix...it`s only
- to seperate 68k and ppc versions on the filesystem.
-
-
- if $libs contains ":" then
- {
- if (loadlib($libs+".elf")) failed
- loadlib($libs)
- }
- else
- {
- if loadlib("libs:"+$libs+".elf") failed
- if loadlib($libs+".elf") failed
- if loadlib("libs:"+$libs) failed
- loadlib($libs)
- }
-
- o mathieeeppc
- o native patch resident
-
- o utilityppc
- o native patch resident
-
- o expansionppc
- o native ppc resident overloading patch..
- o it asks the configserver about zorro2/3 resources and
- adds them to the expansion.library`s database.
- The expansion.library itself doesn`t handle board scans
- anymore.
-
- o 68040ppc
- o native ppc resident
- o always fails so no diskresident 68040.library is loaded
-
- o 68060ppc
- o native ppc resident
- o always fails so no diskresident 68040.library is loaded
-
- o dosppc
- o native patch resident
- o replaces some often used dos functions.
- Will be extended...
-
- o cdriveppc
- o native cdromfilesystem
-
- o sfsppc
- o native SFS Filesystem
-
- o bootvgappc
- o native cvisionppc and bvisionppc boot "monitor", simular
- to what you know from the old 68k cvppc 31khz feature.
-
- o ramhandlerppc
- native ramdisk.
-
- o diskppc
- fixes some disk.resource diskid timing issue
-
- o bonusppc
- some internal stuff.
-
-
- III. Emulation Design
- How the emulation works is explained in the Emulation.txt
- file.
-