home *** CD-ROM | disk | FTP | other *** search
/ AmigActive 15 / AACD15.ISO / AACD / System / MorphOS / Developer / docs_dev / System.txt < prev   
Encoding:
Text File  |  2000-09-04  |  7.2 KB  |  242 lines

  1.  
  2. I. Distribution
  3.  
  4.    system/hal.rom
  5.    system/kernel.rom
  6.    system/amiga.rom
  7.    system/module.rom
  8.    system/startup
  9.    dev/
  10.  
  11. II. Binaries
  12.  
  13.  
  14. II.1 startup
  15.      is the Amiga binary which starts the whole system.
  16.      check out qstartup/startup.doc
  17.  
  18. II.2 hal.rom
  19.      is the hal which determines the current hw resources.
  20.      o determines CPU type, clock
  21.      o scan the amiga zorro io ports for zorro2/3 cards and
  22.        configurates them.
  23.      o find local hardware(cvisionppc,symbiosppc)
  24.      o creates a resource map for the Quark kernel
  25.      o Starts the kernel resource.
  26.  
  27. II.3 kernel.rom
  28.      contains the quark kernel and related server threads.
  29.  
  30.       o ExceptionServer
  31.  
  32.       o MasterClanServer
  33.  
  34.       o AddressServer
  35.  
  36.       o ConfigServer
  37.         Is some kind of config filesystem where all the resources
  38.         the hal passed are located. It will be used to provide
  39.         all kinds of internal system prefs.
  40.  
  41.       o CPUTimeServer
  42.  
  43.       o SystemInit
  44.         This server thread basicly starts up the system...
  45.  
  46.         o creates the amiga task.
  47.  
  48.         o searches for the amiga.rom, module.rom and
  49.           kickstart resource.
  50.  
  51.         o maps the initial stack at 0x10000000..0x30000 bytes
  52.  
  53.         o maps the amiga.rom  at 0x01000000
  54.  
  55.         o maps the module.rom at 0x10100000
  56.  
  57.         o grants the new amiga task the needed addressspace.
  58.           amiga custom chips, memory, cvisionppc, symbios scsi
  59.           and so on.
  60.  
  61.         o then it starts the new amiga emulation task`s userthread0
  62.  
  63. II.4 amiga.rom
  64.      contains the 68k emulation.
  65.  
  66.       o parses internal patch tables for kickstarts in the
  67.         patch database.
  68.  
  69.       o creates a task custom exception thread which handles
  70.         exceptions inside of the emulation process space.
  71.         Does something like Enforcer at the moment and in the
  72.         future will provide a little custom chip emulation which
  73.         is needed for handling the interrupt controller register.
  74.  
  75.       o creates 14 intthreads for all amiga custom chip interupts.
  76.         These threads handle the whole exec interrupt system.
  77.         The stack is somewhere in the 0x10000000 area.
  78.  
  79.       o start the emulation in the current thread at 0xf80002
  80.  
  81.         *Technical issues which may need a deeper architecture knowledge*
  82.  
  83.         > It needs to use synchronous interrupt threads because
  84.         > it has to deal with zorro2,zorro3, cias and some custom
  85.         > chip issues.
  86.         > When all cia dependency is removed, zorro hw isn`t needed
  87.         > or all controlled by Quark drivers and the whole custom
  88.         > chip support is replaced by an own system simular to the
  89.         > Draco there`s no need anymore for synchronous intthreads
  90.         > and the emulation would be a "safe" application.
  91.  
  92.         > All the technology to do this is available.
  93.         > It`s only a matter of time.
  94.         > As we have a proven CyberGraphX RTG which already provided
  95.         > the Macrosystem Draco with the ability to run without
  96.         > any custom chipset support.
  97.         > Moving the Symbios7x0 Drivers to the Quark Level is also
  98.         > possible.
  99.  
  100.         > At the moment the emulation is basicly a fat *driver* and
  101.         > when it *seriously* crashes it can take down the system.
  102.  
  103. II.5 module.rom
  104.      contains additional resident modules to the ones in the kickstart.
  105.      It should also be easy to add own modules to the modules we provide.
  106.  
  107.      o exec68k
  108.        o installs import exec extensions.
  109.          o InitResident() extensions
  110.            new resident forms...PPC native residents, patch residents.
  111.  
  112.          o NewSetFunction()
  113.          o new AddTask()
  114.          o new RemTask()
  115.          o new Dispatch()
  116.          o new Switch()
  117.          o new Schedule()
  118.          o new Supervisor()
  119.        o converts current exec init task into an ETask.
  120.        o from now on all tasks are ETasks as described in
  121.          the old exec/tasks.i.
  122.  
  123.          <This module will be replaced with a full ppc exec resident module in the future.>
  124.          <There is no real speed benefit as all important functions are already native but>
  125.          <it would make a port to different hw easier.>
  126.  
  127.      o execppc
  128.        o Replaces all kinds of exec functions with native ppc
  129.          exec functions.
  130.  
  131.      o graphicsppc
  132.        o native patch resident
  133.        o Replaces entries which aren`t yet covered by cybergfx.
  134.          All kinds of Rastport structure related functions which
  135.          are used often.
  136.          Sooner than later this will probably be moved into cybergfx.
  137.  
  138.      o cybppc
  139.        o complete PPC native AmigaOS cybppc.device
  140.  
  141.      o blizzppc
  142.        o complete PPC native AmigaOS blizzppc.device
  143.  
  144.      o a4091ppc
  145.        o complete PPC native AmigaOS A4091 scsi.device
  146.  
  147.      o a4000Tppc
  148.        o complete PPC native AmigaOS A4000T scsi.device
  149.  
  150.      o ppc.library
  151.        o complete PPC native ppc.library which emulates the
  152.          old ppc.library functionality inside the AmigaOS
  153.          enviroment.
  154.        o Extended amiga elf support which means that elfs
  155.          sections are now segments in a seglist.
  156.          That way you can write .elf *Amiga* libraries and
  157.          devices which are loaded by the system
  158.  
  159.      o ramlib
  160.        o PPC native ramlib module with extended
  161.          .elf ppc native libraries and devices.
  162.  
  163.          68k loading rules were(the same for devices)
  164.  
  165.          if $libs contains ":" then loadlib($libs)
  166.          else
  167.          {
  168.            if loadlib("libs:"+$libs) failed
  169.               loadlib($libs) failed
  170.          }
  171.  
  172.          New PPC loading rules are(the same for devices) to
  173.          make sure that a potential new PPC .elf library is
  174.          loaded before a 68k one. That way we can keep 68k and
  175.          PPC version.
  176.          A ppc one doesn`t need the .elf postfix...it`s only
  177.          to seperate 68k and ppc versions on the filesystem.
  178.          
  179.  
  180.          if $libs contains ":" then
  181.          {
  182.            if (loadlib($libs+".elf")) failed
  183.               loadlib($libs)
  184.          }
  185.          else
  186.          {
  187.            if loadlib("libs:"+$libs+".elf") failed
  188.              if loadlib($libs+".elf") failed
  189.                 if loadlib("libs:"+$libs) failed
  190.                    loadlib($libs)
  191.          }
  192.  
  193.      o mathieeeppc
  194.        o native patch resident
  195.  
  196.      o utilityppc
  197.        o native patch resident
  198.  
  199.      o expansionppc
  200.        o native ppc resident overloading patch..
  201.        o it asks the configserver about zorro2/3 resources and
  202.          adds them to the expansion.library`s database.
  203.          The expansion.library itself doesn`t handle board scans
  204.          anymore.
  205.  
  206.      o 68040ppc
  207.        o native ppc resident
  208.        o always fails so no diskresident 68040.library is loaded
  209.  
  210.      o 68060ppc
  211.        o native ppc resident
  212.        o always fails so no diskresident 68040.library is loaded
  213.  
  214.      o dosppc
  215.        o native patch resident
  216.        o replaces some often used dos functions.
  217.          Will be extended...
  218.  
  219.      o cdriveppc
  220.        o native cdromfilesystem
  221.  
  222.      o sfsppc
  223.        o native SFS Filesystem
  224.  
  225.      o bootvgappc
  226.        o native cvisionppc and bvisionppc boot "monitor", simular
  227.          to what you know from the old 68k cvppc 31khz feature.
  228.  
  229.      o ramhandlerppc
  230.        native ramdisk.
  231.  
  232.      o diskppc
  233.        fixes some disk.resource diskid timing issue
  234.  
  235.      o bonusppc
  236.        some internal stuff.
  237.  
  238.  
  239. III. Emulation Design
  240.      How the emulation works is explained in the Emulation.txt
  241.      file.
  242.