home *** CD-ROM | disk | FTP | other *** search
/ Magazyn Exec 5 / CD_Magazyn_EXEC_nr_5.iso / Programy / OS3.5+ / BoingBag39-1.lha / BoingBag3.9-1 / PowerPC / history next >
Text File  |  2001-03-22  |  50KB  |  937 lines

  1. *******************************************************************************
  2. *
  3. *               Welcome to warp speed!
  4. *
  5. *               powerpc.library/WarpOS history
  6. *
  7. *               milestones:
  8. *               V8.0  - first internal release of WarpOS. powerpc.library is
  9. *                       running under WarpOS from now on.
  10. *               V9.0  - PPC native memory management / exception handler
  11. *                       support
  12. *               V10.0 - MMU + BAT support implemented / PPC-Enforcer
  13. *                       Reincarnation of voxelspace demo
  14. *               V11.0 - Virtual signal system / native msg handling
  15. *               V12.0 - first official release
  16. *                       Memory protection support / InterCPU msg handling
  17. *                       CyberStormPPC support
  18. *               V13.0 - Debugger support / Demos equipped with window support
  19. *               V14.0 - Dynamic scheduler / Hardware driver concept
  20. *                       BlizzardPPC support
  21. *               V15.0 - Pooled memory API (new MM) / Shared semaphores /
  22. *                       Blackbox 68K emulation support
  23. *               V16.0 - Maintenance release / bugfixes / small features
  24. *
  25. *******************************************************************************
  26.  
  27.  4. 6.97        - first internal release
  28.                 - V8.0
  29.  
  30.  5. 6.97        - new memory management, based on mempools, inserted
  31.                   (old implementation linked to exec/AllocVec disabled)
  32.  
  33.                   Thanks a lot to Michael Rock for the implementation of
  34.                   this memory management!
  35.                 - V8.1
  36.  
  37.  7. 6.97        - New memory management routines locked by semaphores
  38.                 - OpenLibrary patch implemented to prevent WarpOS from
  39.                   being killed by ELF applications.
  40.                 - New mirror tasks now get the priority of its partner
  41.                   task instead of 0.
  42.                 - New library functions 'Super' and 'User' to switch
  43.                   between supervisor and user mode.
  44.                 - New library function 'SetHardware' to affect some
  45.                   CPU related resources (i.e. trace mode)
  46.                 - V8.2
  47.  
  48.  8. 6.97        - If no tasks are running/ready, the PPC enters a
  49.                   power saving mode (nap mode)
  50.                 - New library function 'ModifyFPExc' allows to set/clear
  51.                   the exception enable bits in the FPSCR to enable/disable
  52.                   particular FP exceptions
  53.                 - New flag for CreateTaskPPC: TASKATTR_MOTHERPRI. Allows
  54.                   child tasks to inherit the priority of the mother task
  55.                 - New tools to set/clear global breakpoints: ibreak and
  56.                   dbreak (dbreak only for 604[e])
  57.  
  58.  9. 6.97        - Priority of WarpOS system task 'Enterprise' changed to 1
  59.                 - New library functions 'SetExcHandler' and 'RemExcHandler'
  60.                   allow to insert/remove custom exception handler (comparable
  61.                   to exec/AddIntServer)
  62.                 - New memory management system temporarly disabled because of
  63.                   linker problems.
  64.                 - V9.0
  65.  
  66. 11. 6.97        - New memory management system re-enabled.
  67.  
  68. 12. 6.97        - Signal numbers changed from BYTE to LONG (AllocSignalPPC,
  69.                   FreeSignalPPC)
  70.                 - Emulation of misaligned FP accesses done (implemented in
  71.                   warp.library). Author of the emulation: M.Rock.
  72.  
  73. 13. 6.97        - Heavy bug fixed: Sleep routine (executed if no tasks
  74.                   are running/ready) trashed the stack of a waiting task.
  75.                 - New library function 'WaitTime' allows to wait for a
  76.                   given time or for given signals.
  77.                 - Emulation of DCBZ to noncachable/writethrough locations
  78.                   implemented (warp.library)
  79.                 - V9.1
  80.  
  81. 14. 6.97        - New WarpOS support task 'Voyager' implemented which frees
  82.                   all memory allocated at 'CreateTaskPPC' if the task is
  83.                   removed.
  84.                 - New *private* library function 'ChangeStack' to change the
  85.                   PPC stack.
  86.                 - New tool 'stackppc' which works the same as the 'stack'
  87.                   command (using 'ChangeTask').
  88.                 - Bug fixed: mirror tasks didn't get double the stack size
  89.                   of the calling 68K process (as intended) because the
  90.                   field 'pr_Stacksize' isn't updated by the Shell when
  91.                   launching programs. The difference of TC_SPUPPER and
  92.                   TC_SPLOWER multiplied by 2 is taken now.
  93.                 - New library functions 'LockTaskList' and 'UnLockTaskList'
  94.                   allow to gain access to a list of all tasks.
  95.                 - New tool 'showtasks' prints out informations about all PPC
  96.                   tasks.
  97.                 - V9.2
  98.  
  99. 15. 6.97        - signal bit definition for SIGF_TIME changed from 2 to 9
  100.                   to avoid collisions with exec signals.
  101.                 - paged MMU setup implemented and activated
  102.                 - exception handlers are now called with MMU switched off.
  103.                   -> no critical locations like custom chip area (which must
  104.                   be accessed in noncachable mode) must be accessed anymore
  105.                 - new library functions 'SetExcMMU' and 'ClearExcMMU' allow
  106.                   to setup a temporary BAT based MMU setup in exception
  107.                   handling code to access critical locations as described
  108.                   above.
  109.  
  110. 16. 6.97        - BAT support done. The BAT registers are now a local resource
  111.                   of each task (like the normal registers) and they are
  112.                   switched by the scheduler.
  113.                 - New library function 'ChangeMMU' allows to change the MMU
  114.                   setup of the current task to standard or to BAT setup.
  115.                 - New tool 'changeMMU' performs the same action as the
  116.                   library function, but it can be controlled from the shell.
  117.  
  118. 17. 6.97        - bug fixed: mempools were not freed by mistake
  119.                 - MMU support for AllocVecPPC/FreeVecPPC implemented
  120.  
  121. 18. 6.97        - ******  Reincarnation of VOXELSPACE !!  *******
  122.                   the executable 'voxelspace' is now located in the demos
  123.                   drawer. To run the demo a separate archive is required.
  124.                   (voxel.lha). Welcome to warp speed! :)
  125.                 - PPC-Enforcer activated. First page is protected and all
  126.                   accesses to $400-$1000 are emulated. Load accesses to $4
  127.                   are emulated, too.
  128.                 - New library function 'GetInfo' allows to get many PPC
  129.                   related information
  130.                 - New tool 'showinfo' displays all information currently
  131.                   available by 'GetInfo'
  132.                 - V10.0
  133.  
  134. 22. 6.97        - bug fixed: if someone tried to open powerpc.library with
  135.                   too high version number, the powerpc.library was shut down.
  136.  
  137. 23. 6.97        - SIGF_TIME changed again (Bit 10)
  138.  
  139. 25. 6.97        - bug fixed which could cause deadlock at 68K-Calls
  140.                 - bug fixed: internal instruction cache flush was broken
  141.                 - signals are now completely transparent to the CPU's. All
  142.                   signals are transferred at Cross-Calls -> A PPC task can
  143.                   now be signaled by signaling its 68K mirror task and vice
  144.                   versa. All signal bits are mirrored.
  145.  
  146. 26. 6.97        - LN_TYPE field of a ppc task changed from NT_TASK to
  147.                   NT_PPCTASK (-> tasksppc.i)
  148.                 - The whole signal handling is now based on the 'virtual
  149.                   signal-pool'. Both CPU's share the signals and they can
  150.                   signal tasks on both CPU's directly (i.e. a PPC-Task can
  151.                   be signaled from 68K using exec/Signal with the PPCTask
  152.                   structure as first argument).
  153.                 - Now it's safe not to restore the nonvolatile registers if
  154.                   a PPC task exits by a single 'blr'. The smalldata base is
  155.                   now automatically transferred to an alternative exit
  156.                   routine, if one was specified at 'CreateTaskPPC'.
  157.                 - V10.1
  158.  
  159. 27. 6.97        - New library functions implemented for Message-Handling:
  160.                   CreateMsgPortPPC, DeleteMsgPortPPC, AddPortPPC, RemPortPPC,
  161.                   FindPortPPC, WaitPortPPC, PutMsgPPC, GetMsgPPC, ReplyMsgPPC
  162.  
  163. 28. 6.97        - A new PPC task now creates immediately a mirror 68K process
  164.                   if none exists.
  165.  
  166. 29. 6.97        - PutMsgPPC/ReplyMsgPPC can now be called from exception
  167.                   handlers.
  168.                 - V10.2
  169.  
  170. 13. 7.97        - New library function 'FreeAllMem' allows to free all
  171.                   allocations made by the calling task.
  172.  
  173. 15. 7.97        - If WarpOS is launched before ENV: is ready, then the
  174.                   env variables are read a second time, when the first
  175.                   RunPPC is performed (except for powerpc/debug)
  176.  
  177. 16. 7.97        - WarpOS-Documentation in AMIGAGuide-Format done (D)
  178.  
  179. 18. 7.97        - Dokumentation for Game-Development 'GameDev.guide'
  180.                   included in archive (D)
  181.                 - V11.0
  182.  
  183. 19. 7.97        - There was a tiny chance of problems with messages
  184.                   sent from exception handling code -> fixed
  185.  
  186. 20. 7.97        - Memory protection support implemented. Two new memory
  187.                   attributes for 'AllocVecPPC' allow to allocate memory,
  188.                   which is protected against other tasks (either full
  189.                   protected or write protected).
  190.                 - The tool 'showtasks' now displays the pagetable of each
  191.                   task.
  192.                 - The PPC-Code of the powerpc.library is now write-protected.
  193.                 - V11.1
  194.  
  195. 21. 7.97        - New library function 'CopyMemPPC' to copy memory areas.
  196.                 - New environment variable 'powerpc/memprot' allows to
  197.                   disable/enable the memory protection feature.
  198.                 - New 68K library functions 'AllocVec32' and 'FreeVec32'
  199.                   allow to allocate memory which can be shared with PPC tasks
  200.                 - New 68K library function 'SPrintF68K' allows to print
  201.                   debug information to the serial port/sushi.
  202.  
  203. 22. 7.97        - cache flush optimization for 68040/68060 didn't work at all
  204.                   -> fixed -> calling overhead decreased by 20 percent
  205.                 - InterCPU message handling implemented. New library functions
  206.                   'AllocXMsg', 'FreeXMsg' and 'PutXMsg' for 68K to alloc
  207.                   special InterCPU-Messages and to send them. New library
  208.                   functions 'AllocXMsgPPC', 'FreeXMsgPPC' and 'PutXMsgPPC' do
  209.                   the same for PPC.
  210.  
  211. 23. 7.97        - Various bugs related to MMU features fixed
  212.                 - C-Includes added to the WarpOS-Archive.
  213.                 - V11.2
  214.  
  215.  1. 8.97        - Changed the assembler macros RUNPOWERPC and RUNPOWERPC_XL
  216.                   (powerpc.i) to support direct PPC-Library-Calls from 68K-
  217.                   Functions. Note: the parameters 2-4 were shifted to the
  218.                   right by one. New parameter 2: The Library-Offset (used
  219.                   in the same way like in the macros RUN68K and RUN68K_XL).
  220.                 - All include files were equipped with checks to the
  221.                   constant POWERPCLIB_V7. If this symbol is defined then
  222.                   no structures/macros are assembled, which can only be used
  223.                   with powerpc.library V8+.
  224.                 - Added include file 'libraries/powerpc.i'. Including this
  225.                   file sets the constant mentioned above and allows to create
  226.                   V7-compatible applications.
  227.                 - Added the powerpc.library V7 and its history file to this
  228.                   archive (directory 'v7')
  229.  
  230.  2. 8.97        - Bug fixed: On PPC-Systems with CPU clocks between
  231.                   250-300 Mhz, the CPU clock returned by 'GetInfo' could
  232.                   have been wrong.
  233.                 - Bug fixed: 'GetInfo' returned a wrong page table size.
  234.                 - Improved the accuracy of the FP conversion in the crash
  235.                   requester which is used to display the FP registers as
  236.                   ASCII string.
  237.  
  238. 19. 8.97        - On some systems with small gfx address space, the gfx
  239.                   RAM was not placed into BAT registers. Now the powerpc.
  240.                   library tries to find out, where the gfx RAM is located
  241.                   (using cybergraphics.library) and puts the gfx RAM into
  242.                   BAT registers if possible (alignment must still be
  243.                   properly set).
  244.                 - New environment variable 'gfxaddr' allows to specify an
  245.                   address (either with or without $) to give the powerpc.
  246.                   library a hint, where the gfx RAM should be.
  247.                 - New versions of cybermand and voxelspace added.
  248.                 - V11.3
  249.  
  250. 27. 8.97        - Removed Gfx-RAM autodetection (seems to be somewhat risky)
  251.                 - Forgot to add warp.library 1.2 to the WarpOS-Archive.
  252.                   powerpc.library V11.3 didn't work at all...
  253.                   -> warp.library V1.2 added
  254.  
  255. 15. 9.97        - CyberstormPPC support added.
  256.                   WarpOS *WORKS* with the CyberStormPPC-Boards !! Cybermand
  257.                   is now 12-13 times faster on 604E/200 relative to 68060/50.
  258.                 - Added new version of voxelspace to the archive. Added
  259.                   special optimization for PPC604E.
  260.                 - Added voxel.readme and voxel_english.readme to the demos
  261.                   drawer. This file contains some notes about the usage of
  262.                   the voxelspace parameters and known problems.
  263.                 - Added english translations of WarpOS.guide and GameDev.guide.
  264.  
  265. 16. 9.97        - Added a correction stage at CPU-clock calculation (in
  266.                   function 'GetInfo'). The cpu clock is now displayed
  267.                   completely correctly.
  268.  
  269. 17. 9.97        - Problems with PPC-Enforcer and 604E fixed (NEVER use
  270.                   self modifying code yourself!). One 'sync'-instruction
  271.                   more, and everything works fine.
  272.  
  273. 18. 9.97        - New library functions GetSysTimePPC, AddTimePPC, SubTimePPC
  274.                   and CmpTimePPC for time measurement (also available vor V7)
  275.                 - New small demo program 'pixelOmania' to measure the
  276.                   context switch performance (i.e. to compare V7 and V8+)
  277.  
  278. 20. 9.97        - Added the 'WarpRace' application to the archive (drawer
  279.                   'WarpRace'). This application is a modular performance
  280.                   test program. Included are several modules and module
  281.                   sources.
  282.                   WarpRace and all modules so far work with powerpc.library V7.
  283.  
  284. 21. 9.97        - Added the 'landscape' demo to the archive (drawer
  285.                   'demos/landscape'), a fractal landscape generator.
  286.                 - Added new versions of 'tabletennis' and 'cyberpi' which
  287.                   don't crash anymore if the powerpc.library can't be opened.
  288.                   'Cyberpi' now supports both CPU's (new parameter M68K).
  289.                 - V12.0
  290.  
  291. 25. 9.97        - Corrected a bug in the warprace executable (CTRL-C only
  292.                   breaked the current recursion level)
  293.                 - Corrected a bug in warprace module 'Landscape.wrm' (mem
  294.                   allocation was broken)
  295.                 - New 68K library function 'GetPPCState' allows to get
  296.                   information about the state of the PPC and of PPC
  297.                   applications (officially available in V13)
  298.                 - New tool PPCState displays the result of 'GetPPCState'
  299.                 - V12.1
  300.  
  301. 27. 9.97        - New env-variable 'noPPC'. If this variable is 1, then
  302.                   the powerpc.library always returns 0 at initialization.
  303.                   This allows to use applications, which try to open
  304.                   the powerpc.library, without PPC boards (before, WarpOS
  305.                   simply crashed) if it supports the 68K too.
  306.  
  307. 29. 9.97        - Static board detection implemented. If problems occur or
  308.                   the 68060.library of the PowerUp-Distribution is not
  309.                   installed, the board type can be selected using the new
  310.                   env variable 'boardtype'.
  311.                   0  =  auto detection using 68060.library
  312.                   1  =  developer board
  313.                   2  =  CyberstormPPC
  314.                 - New env variable 'earlyterm' implemented (also for V7).
  315.                   If the variable is not 0, then the mirror task of a 68k
  316.                   task is removed at the last CloseLibrary of the 68k task,
  317.                   instead at removal of the task.
  318.                   Hope, this will fix the problems with WShell.
  319.                   The tools stackppc and changemmu DON'T work with earlyterm=1!
  320.                   Use the 68K command stack to modify the PPC stack (the PPC
  321.                   stack is about double the size of the 68K stack).
  322.                 - 12.2
  323.  
  324.  8.10.97        - RunPPC now interprets the PP_OFFSET field in the same way as
  325.                   Run68K does. If PP_OFFSET is zero, than it works as before,
  326.                   if it is not zero, a PPC library call is performed with the
  327.                   base in PP_CODE and the library vector offset in PP_OFFSET.
  328.                 - Description and prototypes of SetExcMMU and ClearExcMMU were
  329.                   missing. Corrected.
  330.                 - Bug fixed: FreeXMsgPPC trashed r2.
  331.                 - Inter-CPU messages can now be sent asynchronely, so they
  332.                   may not be answered anymore by the foreign task. But it is
  333.                   really important, that the processor frees the message which
  334.                   allocated it (even if it is another task).
  335.                 - Exec/Replymsg now doesn't crash anymore, when called with
  336.                   an InterCPU-msg without ReplyPort (but don't call exec/
  337.                   ReplyMsg nevertheless without ReplyPort, why should you?).
  338.                   Exec/ReplyMsg now simply does nothing in this case.
  339.                 - New library function SetReplyPortPPC allows to exchange the
  340.                   reply port of a message (internal PPC message or InterCPU
  341.                   message). Officially available in V13.
  342.                 - Added support of fields TC_SWITCH and TC_LAUNCH in the
  343.                   exec task structure. If the appropriate bits in TC_FLAGS
  344.                   are set, these functions are called whenever a PPC task
  345.                   looses resp. gets the CPU (equal behaviour like exec).
  346.                 - New library functions 'SnoopTask' and 'EndSnoopTask'
  347.                   allows to monitor the beginning and the end of a PPC task
  348.                   (useful for debuggers). Officially available in V13.
  349.                 - V12.3
  350.  
  351. 13.10.97        - Voxelspace 1.5 added. Window mode is now supported
  352.                   (only for gfx boards).
  353.                 - Cybermand 1.2 added. Window mode is now supported
  354.                   (also for PAL)
  355.  
  356. 14.10.97        - Landscape 1.1 added. Window mode is now supported
  357.                   (also for PAL)
  358.  
  359. 15.10.97        - Corrected clib/powerpc_protos.h (was very buggy)
  360.  
  361. 16.10.97        - Time Measurement was UNRELIABLE! Busclock could have
  362.                   been measured wrong. Corrected (once again, one 'sync'
  363.                   more...)
  364.                 - ChangeMMU was not correct. IBAT2 and DBAT2 were
  365.                   exchanged.
  366.  
  367. 22.10.97        - Bug fixed: FP-Registers f9-f13 were passed incorrectly
  368.                   to custom exception handlers.
  369.  
  370. 28.10.97        - Major internal change: all board specific stuff is
  371.                   moved from powerpc.library to warp.library. The
  372.                   powerpc.library is now completely board-independent
  373.                   and will work unmodified with all PPC boards.
  374.  
  375.                   The warp.library has now become a real HAL, since
  376.                   it now also provides access to board specific
  377.                   resources using a standardized interface.
  378.  
  379.                   IMPORTANT NOTE: The powerpc.library V12.4 and higher
  380.                   requires the warp.library V2 to be installed!!
  381.                 - Some bugfixes, which maybe could be responsible
  382.                   for some deadlocks in rare cases.
  383.                 - V12.4
  384.  
  385.  6.11.97        - Minor changes in powerpc/powerpc.i (macros RUNPOWERPC
  386.                   and RUNPOWERPC_XL) to avoid linker warnings.
  387.  
  388.  8.11.97        - Bug in clib/powerpc_protos.h fixed. The snoop functions
  389.                   were enabled for V7 by mistake.
  390.                 - V13.0
  391.  
  392. 22.11.97        - Oh, DAMN. Exec tasks couldn't use RunPPC because of
  393.                   DOS calls. These calls are now handled by a new
  394.                   support process called 'Babylon5'.
  395.                 - V13.1
  396.  
  397. 25.11.97        - Some 'sync' instructions added to warp.library (maybe
  398.                   this can solve some problems with PPC crashes). V2.1
  399.  
  400. 26.11.97        - The powerpc.library returns now 0, if ppc.library is
  401.                   active and if someone tries to open the powerpc.library.
  402.  
  403. 27.11.97        - Bugs fixed in pragma/powerpc_lib.h: SPrintF was written
  404.                   instead of SPrintF68K, and GetPPCState was enabled for
  405.                   V7, by mistake.
  406.  
  407.  1.12.97        - NOTE: it is possible, that a PPC application crashes,
  408.                   if it launches WarpOS (that means, if it is the first
  409.                   PPC application) AND if SnoopDos is monitoring
  410.                   exec/OpenLibrary. The crash seems to happen in the
  411.                   Patch of SnoopDos. Run a PPC program earlier or avoid
  412.                   monitoring exec/OpenLibrary with SnoopDos to avoid
  413.                   these problems!
  414.  
  415. 16.12.97        - New version of voxelspace added. It now supports
  416.                   OS3.0 multibuffering with P96 -> No flickering anymore!
  417.                   Use 'TURBOGFX' or 'WARP' as CLI parameter to switch
  418.                   on multibuffering.
  419.                 - V13.2
  420.  
  421.  6. 1.98        - Some tags and defines were missing in powerpc.h
  422.                   (GetInfo)
  423.  
  424.  2. 2.98        - New function 'GetHALInfo' allows to retrieve some
  425.                   information about the WarpUp HAL's status. At the moment
  426.                   the number of emulated alignment exceptions can be
  427.                   evaluated (might be useful to find performance bottlenecks)
  428.                   This function is officially available in V14.
  429.                 - New tool 'ShowHALInfo' displays all results of the
  430.                   function 'GetHALInfo'
  431.  
  432.  4. 2.98        - The WarpUp-HAL (warp.library) was splitted up into two
  433.                   parts: the main HAL and in a hardware driver. From
  434.                   warp.library V3 on, there must be installed a warpHW.library
  435.                   for a specific hardware.
  436.                   The new directory 'hwdrivers' contain all drivers currently
  437.                   available, a description how to make a new hardware driver
  438.                   and a StormC template project to help developing a new driver.
  439.                 - If warp.library V3+ is installed the env variable 'boardtype'
  440.                   is ignored and can be deleted.
  441.                 - The BlizzardPPC hardware driver is currently an untested
  442.                   prototype.
  443.                 - warp.library bumped to V3.0
  444.                 - A new tool 'GetDriverInfo' prints out an identification string
  445.                   of the currently active WarpUp hardware driver.
  446.  
  447.  5. 2.98        - A bug fixed, which was introduced with the reorganisation
  448.                   of the warp.library -> warp.library V3.1
  449.  
  450.  6. 2.98        - A lot of internal changes to support a special project.
  451.                   Most API functions were modified a bit, hopefully all
  452.                   should continue working properly.
  453.                 - V13.3
  454.  
  455. 10. 2.98        - First-Aid text updated. There are still too many people
  456.                   which don't know that WarpOS can't run in parallel with
  457.                   the ppc.library. UFF... Another note points to the problems
  458.                   with CyberGraphX versions with ppc.library support. The best
  459.                   solution is not to install this version. Better wait for
  460.                   a graphics software with REAL PowerPC support.
  461.  
  462.  1. 3.98        - Bug fixed in the WarpOS memory management system. Allocations
  463.                   > 512KB could go wrong (or always went wrong, I don't know).
  464.                 - Dynamic scheduler finally implemented. The new scheduler works
  465.                   very different to the old scheduler and improves the
  466.                   multitasking capabilities very much. Please have a look at the
  467.                   WarpOS documentation (Chapter 'multitasking/The WarpOS Kernel')
  468.                   to get more detailed information about the new scheduler.
  469.                 - Important: the old task priorities have no effect anymore! Use
  470.                   the NICE values to give more or less CPU time to specific
  471.                   tasks.
  472.                 - A lot of new elements added to the task structure (most
  473.                   private, a few read only)
  474.                 - New API function 'SetScheduling' allows to affect the reaction
  475.                   time of low-activity-tasks. Both low and high values can have
  476.                   advantages and disadvantages.
  477.                 - New tool 'sched' to set the reaction time mentioned above.
  478.                 - 'showtasks' now also prints out the NICE value and task ID.
  479.                   Note, that this version of 'showtasks' can't be used with
  480.                   earlier version of powerpc.library anymore.
  481.                 - 'showinfo' now also prints out CPU load and system load.
  482.                   This version also requires powerpc.library 14+.
  483.                 - Bug fixed: PPCtask structure definition in C header file was
  484.                   totally buggy.
  485.                 - New API function 'FindTaskByID' allows to get the task
  486.                   address by specifying the task's ID.
  487.                 - New tool 'stat' prints out task statistics, such as name,
  488.                   taskID, CPU usage, activity etc. This tool was written in C
  489.                   and the corresponding source is located in source/tools/stat/.
  490.                 - Bug fixed: creation of new 68K tasks in the powerpc.library
  491.                   could go wrong (which could maybe have prevented WarpOS from
  492.                   working on certain systems).
  493.                 - New: if a CLI-Background process creates a new mirror task,
  494.                   the name of the command is used for the PPC task name instead
  495.                   of the process' name (which was usually 'Background CLI_PPCx')
  496.                   This improves readability of the 'stat' output.
  497.                 - New PPC tasks (created by 68K tasks) now get at least
  498.                   32KByte stack.
  499.                 - ****************  IMPORTANT  ******************
  500.                   WarpOS failed on several systems due to stack problems of
  501.                   the RAMLIB (its stack is 2K on my machine, incredible...).
  502.                   The powerpc.library now performs stack swapping using
  503.                   exec/StackSwap where the critical (and stack-consuming)
  504.                   code parts are situated. This should especially solve
  505.                   those problems which occurred with RTGMasterPPC.
  506.  
  507.  2. 3.98        - C-Prototype file completely rearranged. The file
  508.                   clib/powerpc_protos.h has been made much more compatible
  509.                   to alternative compilers. The Storm-specific extensions
  510.                   are now located in the file stormprotos/powerpc_sprotos.h.
  511.                   Please design prototype files for future shared libraries
  512.                   in the same way to support all compilers.
  513.  
  514.  3. 3.98        - Bug fixed: Removing tasks which were created from the
  515.                   other CPU resulted in crashes.
  516.                 - New tool 'killppc' allows to remove PPC tasks by
  517.                   specifying the task ID (which can be evaluated using
  518.                   the 'stat' tool). Very useful to eliminate crashed
  519.                   tasks.
  520.                 - The source of 'killppc' is available in C
  521.                   (source/tools/killppc)
  522.                   Never kill the shell's mirror task while the shell operates
  523.                   on the 68K side.
  524.                 - The crash requester now also prints out the task ID
  525.                 - New API function 'SetNiceValue' allows to set NICE values
  526.                   of a task.
  527.                 - New tool 'niceppc' allows to set the NICE value of a
  528.                   PPC task. This can be used to affect the execution speed
  529.                   of tasks and it also affects reaction time.
  530.                 - The source of 'niceppc' is available in C.
  531.                 - TASKATTR_MOTHERPRI now also forces child tasks to get
  532.                   the mother's NICE value.
  533.                 - New task attribute TASKATTR_NICE to set the NICE value
  534.                   of new created tasks.
  535.  
  536.  4. 3.98        - Now it's allowed to free Inter-CPU messages sent from
  537.                   the foreign CPU using FreeXMsg[PPC]. But note, that this
  538.                   is internally done using a cross call.
  539.                 - Removed EXEC tasks were not always caught by the
  540.                   powerpc.library, because the task termination routine of
  541.                   EXEC doesn't call RemTask() over the library interface.
  542.                   Could lead to problems when killing its mirror task on the
  543.                   PPC side. Fixed now by a small AddTask() Patch.
  544.  
  545.  5. 3.98        - Now all memory allocated by a PPC task is freed at task
  546.                   removal. Earlier, only those entries in TC_MEMENTRY were
  547.                   freed.
  548.                 - The powerpc.library API is now also available in AmigaGuide
  549.                   format (see directory 'docs')
  550.                 - A new file 'includes.guide' is now in 'docs' which contains
  551.                   an overview of all include files.
  552.                 - Updated the WarpOS documentation.
  553.                 - Added a new Easyrequester which pops up if the ppc.library
  554.                   was detected.
  555.                 - The prototype of WaitPortPPC() was missing. Corrected.
  556.                 - Added FD file to the archive (include/fd/)
  557.                 - V14.0
  558.  
  559. 12. 3.98        - Bug fixed: Corrupt code caused problems with exception
  560.                   handlers.
  561.  
  562. 14. 3.98        - Problem detected. The ppc.library was put into
  563.                   the flash ROM of the Blizzard Board, therefore WarpOS
  564.                   can't work in the known way.
  565.  
  566. 16. 3.98        - More stack problems solved by exec/Stackswap. Implemented
  567.                   in warp.library -> V3.3
  568.                 - ELF terminator implemented. The env-variable 'Terminator'
  569.                   can be used to launch WarpOS while ppc.library is running.
  570.                   Any ELF activity is instantly terminated. Still does not
  571.                   solve the problems with the new boards.
  572.                 - A second Easyrequester implemented to warn the user before
  573.                   using the ELF terminator facility.
  574.                 - New env variable 'HideWarning' prevents both easy
  575.                   requesters from appearing. Note: the combination of
  576.                   Terminator = non-null and HideWarning=1 is dangerous,
  577.                   because the ELF-terminator is activated without any
  578.                   warning.
  579.                 - First Aid text updated, guess why.
  580.                 - 'stat' had a small bug. Additionally memory usage was
  581.                   decreased and source design was improved.
  582.                 - env-variable 'boardtype' removed
  583.  
  584. 27. 3.98        - New task flag TASKPPC_THROW implemented. If set, the task
  585.                   causes an instruction breakpoint exception when it is launched
  586.                   next time by the scheduler.
  587.                 - New tool 'throw' uses this flag and can be used to interrupt
  588.                   tasks which are caught in endless loops. C Sources are
  589.                   available.
  590.                 - Changed the tag EXCATTR_ID to EXCATTR_PRI (powerpc/powerpc.h).
  591.                   Please update your sources, if you used this tag.
  592.  
  593.  4. 4.98        - Added a note to the autodoc of FreeVecPPC concerning cache
  594.                   coherency. Only important for asynchron applications.
  595.                 - V14.1
  596.  
  597.  5. 4.98        - Finally the WarpOS prototype worked the first time on a
  598.                   Blizzard board!
  599.  
  600.  6. 4.98        - First Aid updated to solve the problems of the WarpUp demos
  601.                   in conjunction with CyberGFX emulation for AGA.
  602.  
  603. 10. 4.98        - More Blizzard problems solved.
  604.  
  605. 16. 4.98        - Bug fixed: WaitTime was buggy, in case that the task was
  606.                   woken up by standard signals instead of the timeout signal.
  607.  
  608. 17. 4.98        - New API PPC function 'TrySemaphorePPC' does the same as
  609.                   'ObtainSemaphorePPC' but supports a timeout value, which
  610.                   defines when the task should give up to obtain the semaphore.
  611.  
  612. 21. 4.98        - Added a msgport entry to the task structure which can be
  613.                   used in a similar way than the msgport of dos processes.
  614.                   Currently the msgport isn't used by WarpOS itself, but
  615.                   applications might simulate the WBMsg mechanism which is used
  616.                   for passing parameters from the Workbench to new created
  617.                   tasks on 68K side.
  618.                   Note, that any access to the msgport entry must be locked
  619.                   by LockTaskList! Also note, that the msgport is instantly
  620.                   available to the mother task after returning from
  621.                   CreateTaskPPC. Finally note, that this msgport is not for
  622.                   general application use, just like on 68K side.
  623.                 - The memory cleanup mechanism (implemented in the Voyager
  624.                   task) introduced at 5.3.98 could lead to severe problems
  625.                   if a task was removed which created child tasks earlier (which
  626.                   were still alive).
  627.                 - New cache flag CACHE_DCACHEINV allows to invalidate an
  628.                   selected address range. *NEVER* use this unless you really
  629.                   need it (and that's mainly for asynchron programming).
  630.                 - New 68K API function 'SetCache68K' provides the same
  631.                   functionality than 'SetCache' on PPC side (except cache
  632.                   locking/unlocking). The special 68040/68060 commands are
  633.                   used to achieve better results than CacheClearE does.
  634.  
  635. 27. 4.98        - The memory cleanup mechanism was still broken in the
  636.                   case that protected memory was freed.
  637.                 - V14.2
  638.  
  639. 29. 4.98        - FindTagItemPPC and GetTagDataPPC were totally broken.
  640.  
  641.  2. 5.98        - If a page didn't fit into the primary PTEG, then the
  642.                   insertion into secondary PTEG went totally wrong. But
  643.                   anyway, the chance for this error to appear in practice
  644.                   was almost 0. Correct in warp.library 3.5.
  645.  
  646.  7. 5.98        - Bug fixed in powerpc/tasksPPC.h: The value SNOOP_xxx
  647.                   were all wrong.
  648.  
  649. 10. 5.98        - Changed the BAT setup for the boot process. The earlier
  650.                   setup failed if motherboard-RAM was involved instead
  651.                   of the RAM on the CPU board.
  652.  
  653. 23. 5.98        - Added support for the blackbox emulation concept.
  654.                 - V14.3
  655.  
  656. 20. 6.98        - More problems with the memory cleanup mechanism
  657.                   fixed.
  658.  
  659. 27. 6.98        - BUG corrected: CTR could be trashed by the scheduler.
  660.                   Don't know if this bug was introduced recently or a
  661.                   long time ago.
  662.  
  663. 30. 6.98        - Bumped warp.library to V4.0 (part of the first 'Blackbox
  664.                   emulation' prototype).
  665.                 - Bumped powerpc.library to V14.4 (part of the first
  666.                   'Blackbox emulation' prototype).
  667.                 - V14.4
  668.  
  669.  5. 7. 98       - Added modifications for blackbox emulation. Now WarpOS
  670.                   applications can be run in parallel to the emulated
  671.                   AMIGA-OS.
  672.  
  673.  6. 7. 98       - Corrected documentation error in powerpc.guide/powerpc.doc.
  674.                   FreeXMsg gets the message in a0, not in a1
  675.                 - V14.5
  676.  
  677.  1. 8.98        - New env variable 'force' forces the address stored in
  678.                   'gfxaddr' to be added to the PPC MMU, even if no matching
  679.                   address space was found in the system structures (has
  680.                   to be set to 1 if CyberVisionPPC hardware is present).
  681.  
  682.  2. 8.98        - Added a new terminator (number 2), which should fix the
  683.                   problems with the new P5 flash ROM.
  684.                 - V14.6
  685.  
  686. 27. 9.98        - Prototypes for InsertPPC were broken.
  687.  
  688.  5.11.98        - Added another 'stackswap' code, which is only executed
  689.                   by tasks called 'ramlib'. This should reduce the
  690.                   stack problems with ramlib.
  691.  
  692. 19.12.98        - Added 'WarpStat' to the tools directory. It does the same
  693.                   as 'stat', but provides a nice GUI (MUI required).
  694.  
  695. 20.12.98        - New env variable 'powerpc/nopatch' does not prevent
  696.                   the ppc.library to be opened when WarpOS is running.
  697.                   Set this, if you would like to use the PowerUp emulation
  698.                   software (which is in development).
  699.                 - New PPC API function 'NewListPPC' to initialize exec
  700.                   lists. Valid after V15.
  701.                 - New flag for PP_FLAGS (call structure): PP_LINEAR.
  702.                   Allows to pass r3-r10 instead of the registers assigned
  703.                   to the 68K registers (only available for RunPPC).
  704.                 - New tag for CreateTaskPPC (TASKATTR_INHERITR2), which
  705.                   forces the new task to use the r2 of the parent task
  706.                   (and so can share its variables).
  707.  
  708. 21.12.98        - New API function 'SetExceptPPC' allows to define
  709.                   signals, which enforce the execution of exception
  710.                   handlers, if they are sent. See the autodocs for
  711.                   differences to exec/SetExcept. Valid after V15.
  712.  
  713. 22.12.98        - New 68K API function 'CreatePPCTask' does the same as
  714.                   CreateTaskPPC on the PPC. It was just added for
  715.                   simplicity to allow 68K applications to create new
  716.                   PPC tasks without having to do a context switch and
  717.                   then call CreateTaskPPC.
  718.                   Valid after V15.
  719.                 - V14.7
  720.  
  721. 31.12.98        - powerpc/RemHeadPPC was broken (return value was
  722.                   wrong).
  723.  
  724. 13. 2.99        - FreeVecPPC could trash several registers. Corrected.
  725.                 - V14.75
  726.  
  727. 14. 2.99        - New env variable 'powerpc/seginfo' can be used to
  728.                   let WarpOS print out segment information if PPC crashes
  729.                   occur. Hunk/offset pairs are given for the excepting
  730.                   instruction and for all sub-calls in the stackframe.
  731.                   This variable expects a numeric value, which corresponds
  732.                   to the max. number of lines written. Set this to some
  733.                   value like 100.
  734.                   This feature requires 'SegTracker' and 'Sushi' to be
  735.                   installed.
  736.  
  737. 20. 2.99        - New API functions 'ObtainSemaphoreSharedPPC',
  738.                   'AttemptSemaphoreSharedPPC,'ProcurePPC','VacatePPC'
  739.                   implement shared and message-based semaphores. Valid
  740.                   after V15.
  741.                 - If powerpc/force was set, while powerpc/gfxaddr wasn't,
  742.                   a lot of troubles could appear. Corrected.
  743.                 - There was a slight chance that GetSysTimePPC could
  744.                   return a wrong result (if an overflow of TBL occurred
  745.                   while reading the time base). Corrected.
  746.                 - New flag PP_THROW for RunPPC. If a PPC call is done with
  747.                   this flag set, then an exception is caused before entering
  748.                   the function (illegal instruction exception/trap). This
  749.                   might be useful for debuggers which want to trigger a
  750.                   breakpoint on every PPC call. The exception can be
  751.                   distinguished from other 'trap' exception by examining
  752.                   r0, which contains the string "WARP".
  753.                   Note, that this flag is not available for Run68K.
  754.  
  755. 21. 2.99        - New tag for CreateTaskPPC: TASKATTR_ATOMIC. Allows to
  756.                   create non-interruptable tasks (except if task enters
  757.                   waiting state). Note, that non-interruptable tasks still
  758.                   can be interrupted by exceptions/interrupts, but not by
  759.                   other tasks. Fixed priorities are NOT supported.
  760.                   Such tasks might have a severe impact on the multitasking,
  761.                   therefore you should never use it without serious
  762.                   justification.
  763.                   Important: this feature is specific to the WarpOS scheduler.
  764.                   If the WarpUp-API would be implemented on top of another
  765.                   scheduler, then this feature might not work anymore.
  766.                 - Added the possibility to add exception handlers for the
  767.                   external interrupt. Those handlers are always executed,
  768.                   if the external interrupt was triggered using WarpOS API
  769.                   functions: CauseInterrupt (PPC) and CausePPCInterrupt (68K).
  770.                 - V14.8
  771.  
  772.  1. 3.99        - The terminator mechanism was too unreliable. Corrected.
  773.  
  774. 10. 3.99        - New memory management system added (written by Frank Wille),
  775.                   which replaces the old one.
  776.                 - Bug fixed in CreateTaskPPC. The space to store the task
  777.                   name was one byte to short.
  778.                 - Added 'BPPCFix' from Frank Wille to the WarpUp archive
  779.                   (directory tools/BPPCFix). Allows to reboot BlizzardPPC
  780.                   machines without launching the ppc.library.
  781.  
  782. 14. 3.99        - New API functions 'CreatePoolPPC', 'DeletePoolPPC',
  783.                   'AllocPooledPPC, 'FreePooledPPC' implement pooled memory
  784.                   functions. Valid after V15.
  785.                 - V14.9
  786.  
  787.  2. 4.99        - Severe bug in the scheduler fixed, which sometimes could
  788.                   have been responsible for multitasking hang-ups and
  789.                   for lost signals.
  790.  
  791.  3. 4.99        - New API function RawDoFmtPPC does the same as exec/RawDoFmt.
  792.                   Valid after V15.
  793.                 - V15.0
  794.  
  795.  5. 6.99        - WaitPortPPC prototypes were missing
  796.                   (stormprotos/powerpc_sprotos.h)
  797.  
  798.  6. 6.99        - FreeAllMem leaded to crashes if the task has allocated
  799.                   protected memory. Additionally semaphores were missing.
  800.  
  801. xx.xx.99        - Made the kickstart ROM user-readable (allows to use
  802.                   UAE with the existing kickstart ROM).
  803.  
  804. 12.10.99        - SetCache68K didn't work when called in supervisor mode.
  805.  
  806. 19.11.99        - FD entry for FreeXMsg was faulty.
  807.  
  808. 30.11.99        - Updated the memory management, it shouldn't waste
  809.                   that much memory anymore.
  810.  
  811. 13. 2.2000      - Bugfix: CopyMemPPC didn't handle some cases with
  812.                   small size values.
  813.                 - CPU clock measurement wasn't 100% perfect, now it
  814.                   hopefully should catch all cases.
  815.                 - Bugfix: SetCache68K trashed a2 and a6
  816.                 - Documentation Bugfix: replaced 'struct PowerPC'
  817.                   by 'struct PPCArgs'
  818.                 - Added support for system call exception.
  819.  
  820. 14. 2.2000      - Bugfix: sending signals across CPU's didn't work at
  821.                   all in some cases.
  822.                 - Bugfix: memory allocation using the PooledMem-API
  823.                   could fail in some cases (fixed by Frank Wille)
  824.  
  825. 15. 2.2000      - Header file 'powerpc/tasksppc.h' was buggy, some
  826.                   of the task attribute flags (NICE, INHERITR2 and
  827.                   ATOMIC) had wrong values
  828.                 - *** IMPORTANT NOTE: The task attribute TASKPPC_INHERITR2
  829.                   doesn't work at all for programs compiled with
  830.                   some or all versions of StormC PPC 4.0 Beta (only the
  831.                   4.0 *BETA*!), because of the way these compiler versions
  832.                   do PPC library calls. Check out the updated documentation
  833.                   of 'CreateTaskPPC' to learn about how to bypass this
  834.                   problem. ***
  835.  
  836. 17. 2.2000      - New env variable 'EnAlignExc' disables the exception
  837.                   handler for doing odd FPU accesses. WarpOS developers
  838.                   should set it, users shouldn't.
  839.                   Modifications are done both in powerpc.library and
  840.                   warp.library.
  841.  
  842. 18. 2.2000      - Major bugfix: Some cache flush mechanisms didn't work
  843.                   correctly, which could lead to incorrect behaviour
  844.                   of the XMsg system and other problems.
  845.                   Modifications are done both in powerpc.library and
  846.                   warp.library.
  847.                 - New env variable 'UseDisable' makes WarpOS use
  848.                   a stronger locking for triggering the PPC interrupt
  849.                   (which is also used for normal context switches).
  850.                   Never set this unless you are explicitely asked to do so!
  851.  
  852. 20. 2.2000      - Corrected the TOC of powerpc.doc.
  853.                 - Fixed a few errors reported by the 'Patchwork' tool.
  854.  
  855.  2. 3.2000      - New API function 'PutPublicMsgPPC' allows to safely
  856.                   send messages to public message ports. Valid after V16.
  857.  
  858.  4. 3.2000      - New API function 'AddUniquePortPPC' replaces 'AddPort'.
  859.                   The new function takes care about race conditions when
  860.                   several tasks attempt to add the same port. Valid after V16.
  861.                 - New API function 'AddUniqueSemaphorePPC' replaces
  862.                   'AddSemaphorePPC'. The new function takes care about
  863.                   race conditions when several tasks attempt to add the
  864.                   same semaphore. Valid after V16.
  865.  
  866.  9. 3.2000      - New API function 'IsExceptionMode' allows to find out,
  867.                   whether the CPU is currently running in exception mode.
  868.                   Valid after V16.
  869.  
  870. 20. 3.2000      - Raised the stack size of some WarpOS system tasks
  871.                   to prevent problems.
  872.  
  873.  2. 4.2000      - Rewrote the 'showtasks' tool from ASM to C and fixed
  874.                   a potential deadlock situation.
  875.  
  876. 17. 8.2000      - Had a long long break.
  877.                 - Fixed erroneous prototype in header files: RemTailPPC
  878.                 - Fixed a little implementation error inside WarpOS
  879.  
  880. 18. 8.2000      - A change made in 18.2.2000 introduced new problems with
  881.                   'SetCache', a faulty function in warp.library has been
  882.                   corrected.
  883.                 - Corrected a few places, where the TB registers weren't
  884.                   read correctly.
  885.  
  886. 19. 8.2000      - WaitTime didn't work for time-spans greater than some
  887.                   value (around 150s).
  888.  
  889. 22. 8.2000      - CmpTimePPC was completely broken.
  890.  
  891. 23. 8.2000      - A new tag for CreateTaskPPC (TASKPPC_NOTIFYMSG) allows
  892.                   the application to provide a message which is sent
  893.                   to the reply port, as soon as the child task has been
  894.                   removed from the system.
  895.                 - Some tags for GetInfo were missing in the API docs.
  896.  
  897. 22. 9.2000      - Fixed a problem in the unaligned FP access emulation code.
  898.  
  899. 25. 9.2000      - Fixed a little problem in the new 'showtasks' tool.
  900.                 - Made some of the tools executables much smaller.
  901.  
  902. 29. 9.2000      - Fixed a serious problem in the generic crash
  903.                   handling code, introduced some time ago.
  904.  
  905. 22.10.2000      - Fixed a little error in powerpc.h
  906.  
  907. 29.10.2000      - Hopefully fixed the infamous 'multitasking lock problem'.
  908.                 - Integrated the CSPPC233Fix tool (without reporting).
  909.  
  910. 30.10.2000      - New env variable 'No233Fix' disables the integrated
  911.                   CSPPC233Fix mechanism.
  912.  
  913.  1.11.2000      - Fixed a few little bugs in warp.library
  914.  
  915.  4.11.2000      - Included PowerUpEmu v0.8c into the WarpUp archive
  916.                 - powerpc.library V16.0
  917.                 - warp.library V5.0
  918.                 - WarpUp 5 beta release
  919.  
  920. 25.11.2000      - Reduced the priority of the CSPPC233Fix exception
  921.                   handler.
  922.  
  923. 20.12.2000      - CPU clock measurement was still not ok. Some overclocked
  924.                   PPC's were detected wrong. Corrected.
  925.  
  926.  7. 1.2000      - Added new exception mechanisms (currently private)
  927.                 - V16.1beta1
  928.  
  929. 21. 1.2000      - Solved some problems in the memory management code.
  930.  
  931.  7. 2.2000      - Solved some problems concerning the alignment exception
  932.                   handling code
  933.                 - warp.library V5.1
  934.                 - powerpc.library V16.1
  935.                 - WarpUp 5.1 release
  936.  
  937.