Short: exec.library v45.25 WIP for all Amiga Classics Author: Cosmos Uploader: cosmos.amiga@gmail.com Type: util/libs Requires: WB 3.1+ and 68020+ Version: 45.25.30 Architecture: m68k-amigaos URL: http://leblogdecosmos.blogspot.com Improved exec.libary for our beloved Amiga Classics I'm always looking for since a very long time the original sources of the Kickstart 3.1. I lost many years without, so upload them on my email ! This new exec.library support these 68k CPUs, FPUs and MMU : - 68020, 68EC020 - 68030, 68EC030 - 68040, 68EC040, 68LC040 - 68881, 68882 - 68851 exec.library v45.25.30 68020+ (Work in progress) - added 1 Mb Kickstart support for the GVP Turbo+ Jaws - fix a little trouble with the Fpu : Fusion is working fine now exec.library v45.25.28 68020+ (Work in progress) - fix 040/060 adapter code (SpeedGeek) exec.library v45.25.26 68020+ (Work in progress) - all 68000/010 code removed - disable 060 fpu for the 040/060 adapter (SpeedGeek) - R_AllocPooled optimized - R_FreePooled optimized - many functions turned to 020+ only exec.library v45.25.21 (Work in progress) - fix a small bug in R_AllocMem - fix R_AddTask - another & better MMU detection method - IntAckFix included (Bert Jahn) - ultrafast autovec - removed all 060 stuff (because now into the 68060.library) Installation - Take an original A1200 v3.1 Kickstart (v40.68) - spatch -oexec.library_45.25.26 -pexec_452518.pch Kickstart31.rom - 'Loadmodule Libs:exec.library_45.25.26' at the top of the StartUp-Sequence (or 'Loadresident force Libs:exec.library_45.25.26') (or 'Loadresident force noreboot Libs:exec.library_45.25.26') WIP exec optimization summary The exec.library was written in asm since the beginning... So, it's hard to get a real speedup. Anyway, many bytes can be saved using some 68k tricks... All the code are always reworked to use all the features of the 68060 with a full 68000 compatibility. The new 020+ opcodes are used very rarely, so special _020, _030, _040 and/or _060 functions are created when needed. Statut Bytes saved 001. autovec Done 410 002. R_AbortIO - - 003. R_AddDevice Done 2 004. R_AddHead - - 005. R_AddIntServer Done 16 006. R_AddLibrary Done 2 007. R_AddMemHandler Done 2 008. R_AddMemList Done 18 009. R_AddPort Done 2 010. R_AddResource Done 2 011. R_AddSemaphore Done 6 012. R_AddTail - - 013. R_AddTask Done 84 014. R_Alert - - 015. R_AllocAbs Done - 016. R_Allocate Done 28 017. R_AllocEntry Done 12 018. R_AllocMem Done 46 019. R_AllocPooled To do 020. R_AllocSignal Done 6 021. R_AllocTrap Done 2 022. R_AllocVec Done 4 023. R_AttemptSemaphore Done 2 024. R_AttemptSemaphoreShared Done 6 025. R_AvailMem Done - 026. R_CacheClearE Done 6 027. R_CacheClearE_020 Done 12 028. R_CacheClearE_030 Done 12 029. R_CacheClearE_040 Done 12 030. R_CacheClearU Done 6 031. R_CacheClearU_020 Done 12 032. R_CacheClearU_030 Done 12 033. R_CacheClearU_040 Done 12 034. R_CacheControl - - 035. R_CacheControl_020 Done 62 036. R_CacheControl_030 Done 62 037. R_CacheControl_040 Done 30 038. R_CachePostDMA - - 039. R_CachePreDMA Done 6 040. R_CachePreDMA_030 Done 18 041. R_CachePreDMA_040 - - 042. R_Cause Done 42 043. R_CheckIO - - 044. R_CloseDevice To do 045. R_CloseLibrary To do 046. R_ColdReboot Done 30 047. R_ColdReboot_010 Done 26 048. R_ColdReboot_040 Done 26 049. R_CopyMem To do 050. R_CopyMemQuick To do 051. R_CreateIORequest Done 12 052. R_CreateMsgPort Done 14 053. R_CreatePool Done 20 054. R_Deallocate Done 18 055. R_Debug - - 056. R_DeleteIORequest Done 2 057. R_DeleteMsgPort Done 4 058. R_DeletePool Done 22 059. R_Disable - - 060. R_Dispatch_FPU Done 16 061. R_Dispatch_noFPU Done 16 062. R_DoIO - - 063. R_Enable - - 064. R_Enqueue Done 4 065. R_Exception Done 42 066. R_Exception_010 Done 42 067. R_ExitInt Done 6 068. R_FindName Done 2 069. R_FindPort Done 2 070. R_FindResident Done 2 071. R_FindSemaphore Done 2 072. R_FindTask Done 28 073. R_Forbid Done 6 074. R_FreeEntry Done 6 075. R_FreeMem Done - 076. R_FreePooled To do 077. R_FreeSignal Done 2 078. R_FreeTrap Done 2 079. R_FreeVec - - 080. R_GetCC - - 081. R_GetMsg Done 34 082. R_InitCode Done 4 083. R_InitResident Done 14 084. R_InitSemaphore Done 2 085. R_InitStruct Done 48 086. R_Insert - - 087. R_MakeFunctions Done 4 088. R_MakeLibrary Done 10 089. R_ObtainQuickVector Done 6 090. R_ObtainSemaphore Done 2 091. R_ObtainSemaphoreList Done 2 092. R_ObtainSemaphoreShared Done 4 093. R_OldOpenLibrary - - 094. R_OpenDevice To do 095. R_OpenLibrary To do 096. R_OpenResource Done 4 097. R_Permit Done 2 098. R_Procure Done 6 099. R_PutMsg Done 60 100. R_RawDoFmt To do 101. R_ReleaseSemaphore Done 24 102. R_ReleaseSemaphoreList Done 6 103. R_RemDevice To do 104. R_RemHead - - 105. R_RemIntServer Done 28 106. R_RemLibrary To do 107. R_RemMemHandler Done 8 108. R_Remove Done - 109. R_RemPort Done 10 110. R_RemResource Done 10 111. R_RemSemaphore Done 10 112. R_RemTail - - 113. R_RemTask Done 8 114. R_ReplyMsg Done 2 115. R_Reschedule - - 116. R_Schedule Done 2 117. R_SendIO - - 118. R_SetExcept Done 38 119. R_SetFunction Done 4 120. R_SetIntVector Done ...
Alek_NGI