Attention:

History:

- 45.5
  o structure bug introduced with 45.4 fixed....caused a lot problems

- 45.4
  o CTRL-C,D,E,F handling.
    If you create a synchron PPC Task, the 68k caller task waits
    for the finish of the PPC Task and these break signals.
    If a break signal is received it send the Signal to the
    PPC Task. So checking for ctrl-c should be easy and not that
    time consuming anymore.
    Only activated with tag PPCTASKTAG_BREAKSIGNAL.
    The Break Signal Server is a new Process called "PPC:CTRLHandler"
  o Inbetween BETA release problem with CON: and a signal to the base
    task instead of the msgtask which caused a crash.
    

- 45.3
  o IF_CACHEFLUSHNO CallOSM68k Caos update bug fixed(Teemu Suikki)
  o WaitFinishNode list problem which could cause an enforcer hit(Fixed)

- 45.2
  o Spurious Interrupt problem solved(Teemu Suikki)
    Dumbug.

- 45.1
  o 45.0Beta2`s PPCCallM68k change didn`t compile..argl.
    Definitely not my day.

- 45.0
  Release

- 45.0Beta2
  o Removed the updating of the PPCCallOS caos.d0-d1 fields again
    BUT the PPCCallM68k caos.#? updating is there!!!!!!!!!!

- 45.0Beta1
  o Final Bump
  o Default PPC stacksize 16384 instead of 8192

- 44.45Beta
  o Activated custom flush routines again
  o fixed a sync problem in PPCGetmessage() and optimized it.
  o Reworked the msg#?.c examples(which were basicly only my own
    small msg test bench)
  o alias PPCSignalTask() == PPCSignal()...
  o Init Timerbase set to 0 during coldstart
  o IF_ASYNC for asynchron PPCCall#? handling
  o TASKTAG_STACKSIZE understood by PPCGetTaskAttr() on the ppc side
  o ATTENTION:
    Completely reworked the TaskHook system..forget everything described below
  o PPCINFOTAG_CPUPLL
  o PPCGetAttr() on the PPC side
  o Fixed the A4000 ram slowness(dbat mapping overruled mmu mapping)
  o Zeropage of the chipram only readable by the PPC
  o 64Bit Math
    PPCAdd64()
    PPCAdd64p()
    PPCSub64()
    PPCSub64p()
    PPCNeg64()
    PPCNeg64p()
    PPCCmp64()
    PPCCmp64p()
    PPCMulu64()
    PPCMulu64p()
    PPCMuls64()
    PPCMuls64p()
    PPCDivu64()
    PPCDivu64p()
    PPCDivs64()
    PPCDivs64p()
    PPCModu64()
    PPCModu64p()
    PPCMods64()
    PPCMods64p()

  o 604e now jumps into an exception for 0x1000-0x1200 exceptions instead of
    running into 603e emulation code. This case should never happen though.
    Just for a clean system.
  o PPCTASKINFOTAG_EXCEPTIONHOOK problem fixed
  o Added a new element to struct ExceptionMsg and bumped the version of this structure
  o Smarter handling of a supervisor PPC crash
  o made the old Angelmode working again(internal)
  o Fixed really really really really weird RawDoFmt crash problem...well..i wouldn`t
    really call that a fix.
  o mark zeropage GUARD to avoid speculative scheduling hits
  o extended the PPCGet/SetTaskAttr() API..the way how to pass values.
  o StopTask problem fixed
  o PPCDeleteTask() problem fixed if an other waitnode was already added.
  o PPCTASKINFOTAG_WAITFINISHTASK
    to find the parent process where you created a sync PPC Task from.
  o callm68k bug introduced with some changes lately

- 44.44Beta
  o Fixed a MMU problem which only was visible with a BlizzardPPC basicly.
    Switched off the cache optimized M68k routines for the fair...no time
    to test that again...the .36-.43 fix

- 44.43Beta
  o Fixed IsisPPC crash problem introduced after .36

- 44.42Beta
  o More BlizzardPPC changes

- 44.41Beta
  o More usage of the internal cacheflush functions
  o Slowdown problem(MMU page cleanup had a problem)

- 44.40Beta
  o Added BlizzardPPC support

- 44.39Beta
  o Changes in the stoneold PPCCallOS m68k routines

- 44.38Beta
  o Mungwall hit introduced with 44.37Beta fixed

- 44.37Beta
  o smarter memory aligning
  o PPCCacheTrashE() entry in the jumptable was corrupt

- 44.36Beta
  o Added
    PPCINFOTAG_ADDCREATETASKHOOK(Forget this..see 44.45Beta)
    PPCINFOTAG_REMCREATETASKHOOK(Forget this..see 44.45Beta)
    PPCINFOTAG_ADDDELETETASKHOOK(Forget this..see 44.45Beta)
    PPCINFOTAG_REMDELETETASKHOOK(Forget this..see 44.45Beta)
    PPCTASKINFOTAG_STOPTASK
    PPCTASKINFOTAG_ELFOBJECT
    PPCTASKINFOTAG_EXCEPTIONHOOK
    for a better debugger support
  o Now PPCCreateProcess uses the tags also in the internal M68k CreateNewproc()
    for the msgtask. So you can pass NP_ tags this way directly to the msg process.
    Makes PPCTASKTAG_INPUTHANDLE, PPCTASKTAG_OUTPUTHANDLE,PPCTASKTAG_INPUTHANDLE
    obsolete.

- 44.35Beta
  o instead of NIL: it uses the OS process default handle now.

- 44.34Beta
  o Added IF_CACHEINVALIDAREA to the interface.h
  o Fixed the inclue cut&paste error in the CacheInvalidE() function
  o Fixed elf search for section symbol address bug

- 44.33Beta
  o Renamed old CacheInvalidE to CacheTrashE and wrote a clean
    CacheInvalidE() which uses cinvl and cinvp depended on address.
    situation.

- 44.32Beta
  o Well..some other msg optimizations
  o Fixed the sizeof(Body) bug in the examples/msg#? sources
  o Fixed msg4 example
  o Added msg5 example for async msgs

- 44.31Beta
  o New function PPCLoadObjectTags() which can load embedded elfobjects now.
  o Some name changes...sorry..i think it`s better to change it now than never.
    PPCGetInfo() -> PPCGetAttrs()
    PPCGetObjectInfos -> PPCGetObjectAttrs()
    PPCGetTaskInfos -> PPCGetTaskAttrs()
    PPCSetTaskInfos -> PPCSetTaskAttrs()
  o PPCSetAttr()
    PPCINFOTAG_EXCEPTIONHOOK to set a system default ExceptionHook
  o fixed ELF Object resolved error output requester for a not known reloc type.
  o fixed the stack problem(Kleinert`s superview)
  o DeleteTask() now has a BOOL instead of a VOID
    and fixed a serious bug in the remove task handling which lead to enforcer hits
    and very likely a crash
  o if PPCELFLOADTAG_ELFADDRESS is specified it`s a stream..otherwise a file.
    PPCELFLOADTAG_ELFNAME overrules the Name function parameter
  o Name parameter removed
  o PPCELFLOADTAG_HOOK to overload the Elf Stream IO
  o Hook API reworked
  o Some Cache handling changes
  o Added 68040.library detection
  o Some cache msg handling changes
  o PPCSetAttr pragma was wrong

- 44.30Beta
  o Used 66Mhz Busclock instead of 50Mhz busclock so that
    people don`t think they have a 150Mhz board(50Mhz*3) instead
    of a 66Mhz (66Mhz*3=200Mhz) board.
  o Optimized PPC Cacheflush
  o Optimized some communications
  o Polished the Autodocs..

- 44.29Beta
  o Fixed PPCRunKernelModuleFPU hang problem
  o Initial release

- 44.28Beta
  o Fixed 603e startup problem

- 44.27Beta
  o Used STARTUP interface in examples/msg2
  o Added romcopy check to avoid havoc if a serious error occurs
  o Fixed ExceptionHandler problem on the 604e..weird it worked on the 603e
  o Fixed a PPCWait() return bug(H&P)
  o Added PPC IRQ to the hardware to fix the deadlock problem with the old
    PowerUP and first cyberstorm PPC under high traffic
  o Created a CauseInt function instead of the old custom intreq function
    which was a cludge anyway...let`s hope i can fix that too for the PowerUP Proto
    board.
  o Fixed PPCTool,PPCShowTasks,PPCReadByte() hang problem
  o Overkill-test bench bug fixed...(bug only in 44.27:-)
  o MMU Page now supervisor only to detect programs which are too curious:-)
    or run amok.
  o Added the following debug tools to ToolsDebug/
    o PPCShowInt
    o PPCShowTrap
    o PPCShowMMU
    o PPCSetMCP
    o PPCSetSMI

- 44.26Beta
  o Fixed bss alignment problem

- 44.25Beta
  o Added names to the interrupt nodes

- 44.24Beta
  o PPCTASKTAG_MSGPORT didn`t free the signal it used...fixed
  o PPCDeleteTask reworked
  o Fixed a Pool Management bug

- 44.23Beta
  o Fixed PPCGetTaskAttr(different proto)
  o Fixed PPCTask PPCPort creation
  o Fixed Examples/Startup.c

- 44.22Beta(intermediate release)
  o CyberstormPPC support
  o CPUInfo now handles 604 clocks
  o Fixed the CACHEFLUSHAREA problem in the CallOS calls
  o Added some Cacheflush optimizing on the M68k side
  o ElfLoader error check improved..otherwise it would create an ElfObject with no .text section.
  o Improved Msg speed..removed an unnecessary cacheflush
  o CacheInvalid now also deals with non page aligned addresses
  o M68k Side functions added
    o PPCCreateWaitPortList()
    o PPCDeleteWaitPortList()
    o PPCAddWaitPortList()
    o PPCRemWaitPortList()
    o PPCWaitPortList()
    o PPCGetPortListAttr()
    o PPCSetPortListAttr()
    (!!!!!Not tested!!!!!)
  o PPC->M68k switch time improvement hopefully
    (fooled the scheduler to start the m68k task at once after a PPC interrupt)
  o fixed low memory problems in the init
  o fixed a serialized problem in the init

  o Fixed the PortList includes/autodocs
  o New PPCCreateTask attributes
    o PPCTASKTAG_STARTUP_MSG
    o PPCTASKTAG_STARTUP_MSGDATA
    o PPCTASKTAG_STARTUP_MSGLENGTH
    o PPCTASKTAG_STARTUP_MSGID
    which implements a new startup ppc msg which can be used to abitrate for the PPCTask exit
    as it is replied after the PPCTask was closed.
  o New PPC function
    o PPCGetTaskAttr() which supports
      o PPCTASKTAG_STARTUP_MSG
      o PPCTASKTAG_STARTUP_MSGDATA
      o PPCTASKTAG_STARTUP_MSGLENGTH
      o PPCTASKTAG_STARTUP_MSGID
  o Changed Int signal mask
  o Final CyberPPC603e,604e support(Gerald`s playground release)


- 44.21Beta
  o Pri Constructor support
    A priviledge constructor/deconstructor can be used to force a certain
    sort on the constructor list. For a constructor it means that the one
    with the highest priority come first. For deconstructor it means that
    the one with the highest priority comes at the end of the .dtor section
    which is ran *backwards* so it`s also called as the first.
    Normal constructor/deconstructors are called after pri de/constructors.
    A pri de/constructor is defined by long Pri,long Function where Pri
    can be -4096..4095
    See constructor.h
  o BSS hunk load problem fixed.



- 44.20Beta
  o Finally..this version runs stable again(Party on)
  o PPCCreateMessage also initializes not used msg fields now.
  o Removed some TypeOfMem->trap debugger stops...

- 44.19Beta
  o Internal Scheduler changes to make the Semaphores working.
  o Fixed a long standing problem
  o Shrinked the size of the PPC Kernel
  o Removed the DBAT mapping for the Cyberstorm local ram which
    caused a conflict with the flexible mmu mapping system.
  o Reworked 603e mmu example code
  o Changed the whole exception create/delete intframe system
    to get it working with exceptions in supervisor(MMU).
  o Fixed Semaphores
  o Fixed Semaphore Example(Wasted searching a bug in my code)
  o A lot internal changes and
    for (;;)
    {
      printf("Debug is my second name\nNext-Terminal + tip ttyb38400 rules\n");
    }

  o Semaphore functions
    o PPCReleaseSemaphore()
    o PPCObtainSemaphore()
    o PPCAttemptSemaphore()
    o PPCAttemptSemaphoreShared()
    o PPCObtainSemaphoreShared()
    o PPCCreateSemaphore()
    o PPCDeleteSemaphore()
    o PPCObtainSemaphoreByName()
    o PPCObtainSemaphoreSharedByName()
    o PPCAttemptSemaphoreByName()
    o PPCAttemptSemaphoreSharedByName()

  o fd2inlinePPCLib output CallOS changed to PPCCallOS


- 44.18Beta
  o Fixed another problem with the PPCDebug and the internal symbolbase
  o Fixed CallOS/CallM68k problem

- 44.17Beta
  o Fixed something in symbol reloc find(PPCDebug output problem)
  o Added more internal Semaphore Function Symbols to the symbolbase
  o Fixed the last reason PPCDeletePort could ran amok

- 44.16Beta
  o Forgot to init a nestcount which caused the PPCDeletePort()
    problem.(Andree)
  o UsedStack finally fixed(Sends a Prayer...:-))

- 44.15Beta
  o PPCGetMessage() to PowerUPKernel autodocs added
  o PPCVersion() added
  o PPCRevision() added
  o Fixed 44.14Beta release from last night

- 44.14Beta
  o IrseeSoft reminded me that i haven`t made any use of the Cachemodes
    yet in the Caos structure so i added that. Should improve certain
    switch times if the cache configs are used carefully.
  o Made PPCNextTagItem(),PPCFindTagItem(),PPCGetTagData() available
  o Internal SystemPool for coming Semaphore support
  o From now on ALL OLD PPC program don`t work anymore. SystemCall IDs
    aren`t valid anymore. See 44.9Beta
  o Added MsgID parameter to PPCSendMessage to understand what this msg is about.
  o Added PPCMSGTAG_MSGID,PPCMSGTAG_MSGTYPE attribute to ppclib/message.h

- 44.13Beta
  o Added BOOL for PPCDeletePort()

- 44.12Beta
  o Fixed missing PA_SIGNAL in the msgport initializing

- 44.11Beta
  o Oops..sorry..the DebugRequester didn`t work correctly

- 44.10Beta
  o Changed bumprev copyright msg
  o New PPC functions
    o PPCFindName
    o PPCInsertSync
    o PPCAddHeadSync
    o PPCAddTailSync
    o PPCRemoveSync
    o PPCRemHeadSync
    o PPCRemTailSync
    o PPCFindNameSync

- 44.9Beta
  o Fixed PPCGetTaskInfo PPCTASKINFOTAG_PRIORTTY bug
  o Added PPCReadWord();
  o Added PPCWriteWord();
  o Added PPCReadByte();
  o Added PPCWriteByte();
  o Fixed PPCGetTaskInfo PPCTASKINFOTAG_USEDSTACKSIZE bug
  o MsgOut task now at Pri 10..this is the PPCScheduler signal task.
  o MsgIn task set at the priority of the task which creates the PPC task.
    Beware..if you`re current task runs too fast you`re responsible for the
    sideeffects that may happen when your PPC side calls m68k routines.
    You shouldn`t also change the taskpri of your currenttask in an asynchronus
    CreatePPC situation.
  o Changed some IO addressing
  o Added dynamic binding of the following functions.
    New PPC functions(Renamed some old functions..source change necessary):
    o PPCAllocMem
    o PPCFreeMem
    o PPCCallOS
    o PPCCallM68k
    o PPCOpen
    o PPCClose
    o PPCRead
    o PPCWrite
    o PPCSeek
    o PPCAllocVec
    o PPCFreeVec
    o PPCFinishTask
    o PPCSignal
    o PPCWait
    o PPCFindTask
    o PPCAllocSignal
    o PPCFreeSignal
    o PPCCacheFlush
    o PPCCacheFlushAll
    o PPCCacheInvalid
    o PPCSetSignal
    o PPCRawDoFmt
    o PPCCreatePool
    o PPCDeletePool
    o PPCAllocPooled
    o PPCFreePooled
    o PPCAllocVecPooled
    o PPCFreeVecPooled
    o PPCCreatePort
    o PPCDeletePort
    o PPCObtainPort
    o PPCReleasePort
    o PPCCreateMessage
    o PPCDeleteMessage
    o PPCGetMessage
    o PPCGetMessageAttr
    o PPCReplyMessage
    o PPCSendMessage
    o PPCWaitPort
    o strcmp
    o strcpy
    o strlen
    o memcpy
    o PPCInsert
    o PPCAddHead
    o PPCAddTail
    o PPCRemove
    o PPCRemHead
    o PPCRemTail

    -> LibPowerUP.a is worthless from now on. DON'T use it anymore!
       This means you have to recompile your software and add the
       prefix where it is missing.
       The reason for this general change is that we want the complete
       control over the system call ABI for a possible portation to
       another OS.
       This avoids any serious conflicts in the future.
  o PPC<->M68k OS level communication isn`t using extensive busy waits anymore on
    the PPC side which would slow down tasks.
  o New M68k ppc.library functions:
    o PPCCreatePool();
    o PPCDeletePool();
    o PPCAllocPooled();
    o PPCFreePooled();
    o PPCFreeVecPooled();
    o PPCAllocVecPooled();
    o PPCCreatePort
    o PPCDeletePort
    o PPCObtainPort
    o PPCReleasePort
    o PPCCreateMessage
    o PPCDeleteMessage
    o PPCGetMessage
    o PPCGetMessageAttr
    o PPCReplyMessage
    o PPCSendMessage
    o PPCWaitPort
    o PPCCacheClearE()
    o PPCCacheInvalidE()

  o Error Requestor for missing symbols
  o Added kernel function support for the symbol/reloc info functions.
  o A lot internal changes

- 44.8Beta
  o Fixed a Bug in LibPowerup.a(AllocPooled) in a lowmem situation
  o Added SetSignal to PowerUP.doc/protos, removed PPCAmiga.doc(old style)
  o PPCSetTaskInfo()
  o PPCGetObjectInfo() to get ELF Symbol informations.
    Useful for special startups or expecially Debugger informations.
    (PPCDebug makes use of this already)
  o Fixed ElfLoader problem with 0 size objects...objects where the .size was
    forgotten. (LibMoto Beta)
  o Several changes in the Elfloader Symbol handling
  o Added PPCGetObjectInfo() ScanSymbolHook Tag so you could dump all symbols
  o Added PPCWriteLongFlush() to support PPCDebug breakpoints

- 44.7Beta
  o Forgot 2 kprintfs in the lib from last night

- 44.6Beta
  o gpr30 wasn't updated in an exception
  o gpr29 was trashed by a system call(Oops)
    (Heh..actually PPCDebug can be useful:-)

- 44.5Beta
  o Tools/PPCDebug..a small example how to write a debugger for the ppc.library
  o several changes to 44.4Beta to get the debug support working
  o Fixed the Examples/#?..wasn`t uptodate to work with the latest include layout
  o 38400 Baud Debug output removed again and put into an external program to
    support people that use 300 Baud Psion Terminals

- 44.4Beta(inbetween release)
  o PPCReadLong()
  o PPCWriteLong()
  o made PPCGetTaskInfo cache safe...was a bit lazy there
  o internal scheduler extension
  o Task dependent Exception Handling for a Debugger
  o Tools/PPCLoadTimer to measure the time needed by the
    PPCRunObject() call.
  o Fixed several register restore problems
  o Tools/PPCShowTasks extended..shows registers too now.
    Values should be reliable now because of the PPCGetTaskInfo()
    changes.
  o PPCStartTask();
  o PPCStopTask();
  o cleaned up PowerUP/clib/ppc_protos.h and removed some internal
    non public defined structs.
  o Register Trashing Bug fixed in the FinishTask routine caused by
    the cache fix in 44.2Beta

- 44.3Beta
  o PPCTASKTAG_WAITFINISH for synchron PPCCreateTask()=PPCRunObject()
    made public.
  o Fixed FinishTask problem with PPCCreateTask()(Kleinert)
    stupid mistake

- 44.2Beta
  o Fixed another hang problem(Chris Hames)
  o Fixed Cache sideeffects in ExitTask and Remtask(Not tested though:-))

- 44.1Beta
  o Fixed libpowerup autodocs
  o Added function PPCSetSignal so a Checksignal doesn`t need some PPCWait() magic
  o Internal changes in the systemcall area
  o improved Exception output
  o Activated Page MMU mapping of the AmigaOS system...like the 68060 MMU mapping.
  o GCCTools/ppc-amigaos-ld2 is a new PPC linker which outputs errors for
    undefined symbols.

- 44.0Beta7
  o internal

- 44.0Beta6
  o Fixed FindTask,FindTaskObject crash problems
  o Fixed FinishTask problem
  o Removed 38400 Baud serial init

- 44.0Beta5
  o Added Zorro3 Mapping,Removed Optimized CacheFlushing Mapping(Not used anyway yet)

- 44.0Beta4
  o Fixed RunKernalModule()
  o Added RunKernalModuleFPU()
  o changed interfaces.h,interfaces.i
  o Improved Exception Output
    (Now shows offsets to the .text section which can be used with the dump of
     the ELF bin)
  o Fixed a bug in the ELF Loader(Enforcer hits) when it found a reloc section
    for a not loaded section
  o Changed link obj to a link lib...changed the names
  o added new LibAmiga.a(with Source and not complete)

- 44.0Beta3
  o Changed interface.h and interface.i to support configurable CacheFlush.
    So you have to recompile your software
  o Added new PPCTASKTAGINFO_ tags
    Rethink the input/output problems
  o PPCFindTaskObject() added
  o PPCFindTask() runtask bug fixed

- 44.0Beta2
  o Added the multitasking support for PPC-M68k-OS calls
  o Fixed PPCAllocSignal
  o Added PPCTASKTAG_INPUTHANDLE
  o Added PPCTASKTAG_OUTPUTHANDLE
  o Added PPCTASKTAG_ERRORHANDLE
  o Added the memfree of the task enviroment
  o Each PPC Task has a MsgIn Task now
  o Schedule Handler Task
  o Exception Handler Task
  o Scheduler disabled if no PPC Task running(no slowdown of the system)

- 44.0Beta1
  o Added MultiTasking to the PPC kernel
  o ULONG RunKernelModule()
    for custom interrupt servers...a cybergfx blitengine may be one

- 43.x
  old,outdated,quick hacks,not worthy
