Attention: Open: History: - 45.20 o PPC Kernel race condition which can lead to a deadlock of the whole system in extreme situations - 45.19 o 233Mhz support o EGCS check which doesn`t use the Sys V.4 traceback status word in front of every function. The check simply checks if the first 6 bits of the first long in ".text" section is 0, then it`s not a instruction and must be the traceback status word and the program is started at + 0x4. - 45.18 o Internal changes in the interrupt stack reloc area o Priority problem solved...well..the only solution which is possible but i don`t like that.(Fixes VDoom -5 problem and people which use anything else than 0 for the msgtask) o processor clocks should work now... o AllocVecPooled,FreeVecPooled entries in the link symbol table were equal to the AllocPooled,FreePooled functions. o DEC Scheduler o 8192 Bytes M68k Msg TaskStack now o NP_Priority is passed through now if used..otherwise the current task`s priority is cloned. - 45.17 o PPCCallOS/M68k debug output change - 45.16 o scheduler reg problem introduced in 45.14 problem was that several program in parallel didn`t work anymore with 14 o ELFLoadSeg doesn`t patch the InternalLoadSeg functions anymore because this causes problems. - 45.15 o Fix illegal elf load problem(ElfLoadSeg Patch problem with scripts) introduced in 45.13 - 45.14 o a PPCSignal from the M68k now dispatches the task at once. o ppcdiss.library only loaded when needed - 45.13 o ELFLoader enforcer hit on error case - 45.12 o internal changes for rom version - 45.11 o PPCELFLOADTAG_FILE extension for ElfSegLoad - 45.10 o Minor cache area code improvements - 45.9 o blizzard ppc changes o Fixed some other port problems(ISIS) i introduced with 45.6 It`s really time i change the way how the kernel is generated but that would take some time. o PPCGetPortListAttr(,PPCPORTLISTTAG_RECEIVEDSIGNALS) bug - 45.8 o CACHEFLUSHNO invalids the caos structure now..thought i could remove that one because the m68k doesn`t change anything at the structure but missed that i need an invalid to remove that from the cache... - 45.7 o small test changes - 45.6 o reworked the elf loader...added a missing semaphore. There was a small window of a list manipulation collison. o sigh...fixed a memtrash bug in msg2 o ElfLoader memory problem when file had an error. Weird that this bug wasn`t noticed before. o PPCObtainPort enforcer hit fixed..Msg2old example source - 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