Difference between revisions of "AmigaLib"

From Freepascal Amiga wiki
Jump to: navigation, search
(AmigaLib Table: start adding entries)
(AmigaLib Table: add additional function names)
Line 87: Line 87:
 
| CallHook                  ||              ||          ||              || ||              ||          ||        ||
 
| CallHook                  ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CallHookA                  ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| ChangeExtSprite            ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CheckRexxMsg              ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CloseWorkbenchObject      ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CoerceMethod              ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CoerceMethodA              ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CopyRegion                ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CreateExtIO                ||              ||          ||              || ||              ||          ||        ||
 
|-
 
|-
|                           ||              ||          ||              || ||              ||          ||        ||
+
| CreateGadget              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CreateMenus                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CreateNewProcTags          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CreatePort                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CreateStdIO                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CreateTask                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxCustom                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxDebug                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxFilter                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxSender                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxSignal                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| CxTranslate                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| dbf                        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DISPATCHERARG              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DeleteExtIO                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DeletePort                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DeleteStdIO                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DeleteTask                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoDTMethod                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoGadgetMethod            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoMethod                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoMethodA                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoSuperMethod              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoSuperMethodA            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoSuperNew                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DoTimer                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| DrawBevelBox              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| EasyRequest                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| ErrorOutput                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| ExtendFontTags            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| FastRand                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| fpa                        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| fpbcd                      ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| fprintf                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| FreeIEvents                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| fwritef                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GetDTAttrs                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GetExtSprite              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GetRexxVar                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GetRPAttrs                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GetVisualInfo              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GT_GetGadgetAttrs          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| GT_SetGadgetAttrs          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| HookEntry                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| HotKey                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| InvertString              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| InvertStringForward        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LayoutMenuItems            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LayoutMenus                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LibAllocAligned            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LibAllocPooled            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LibCreatePool              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LibDeletePool              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LibFreePooled              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| LockBitmapTags            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| MakeDirAll                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| MakeWorkbenchObjectVisible ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| MergeSortList              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewDTObject                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewList                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewLoadSegTags            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewObject                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewRawDoFmt                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| NewRectRegion              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| ObtainBestPen              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| ObtainInfo                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenAmigaGuide            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenAmigaGuideAsync        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenCatalog                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenMakeDir                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenScreenTags            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenWindowTags            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| OpenWorkbenchObject        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| printf                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| RangeRand                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| RefreshDTObject            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| RefreshDTObjects          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| ReleaseInfo                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| RemTOF                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| RemoveAmigaGuideHost      ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SelectErrorOutput          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SendAmigaGuideCmd          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SendAmigaGuideContext      ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetAmigaGuideAttrs        ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetAmigaGuideContext      ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetAttrs                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetDTAttrs                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetGadgetAttrs            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetInfo                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetRexxVar                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetRPAttrs                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetSuperAttrs              ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetSuperAttrsA            ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SetWindowPointer          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| sprintf                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| strdup                    ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| SystemTags                ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| TimeDelay                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| UnlockBitmapTags          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| VideoControlTags          ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| waitbeam                  ||              ||          ||              || ||              ||          ||        ||
 +
|-
 +
| WorkbenchControl          ||              ||          ||              || ||              ||          ||        ||
 
|}
 
|}
  
 +
legend:
 
: red = unimplemented
 
: red = unimplemented
 
: red + n/a = unimplemented, no other implementation available (e.g. no c, no pascal meaning implement from scratch).
 
: red + n/a = unimplemented, no other implementation available (e.g. no c, no pascal meaning implement from scratch).

Revision as of 19:36, 14 January 2016

Introduction

Unit amigalib is a unit that has its origin in Classic Amiga amiga_lib headers.


The Problem

Functions declared inside unit AmigaLib are primarily dictated by their c counter part on the underlying platform (plus some additional helpful routines that we can use ?).

On Classic there are c headers for amiga_lib, on AROS there are the alib headers, while on MorphOS we have something similar also using alib headers.

As usual, none of the available c headers offer any kind of unification, making a big mess of things when attempting to transfer to Pascal. AROS alib complicate things even further because alib was heavily expanded there, overlapping most of the functions declared in classic Amiga unit sysvartags.

Since (currently) none of the available AmigaLib units contain all function implementations, there is room to toy around a little and attempting to organize the big messy pile.

In order to do so, you can find a very large table, that contains all functions declared in their c counterparts that originates from their c-headers and which theoretically all belong to unit AmigaLib. The fact that some functions are not available on all supported platforms does not really matter as much.

The goal of the table is to provide information on where the functions originate from, and be able to decide into which Pascal unit they need to end up.

Note that implementing all functions inside the same unit poses the same difficulties encountered with classic Amiga unit sysvartags. There are some questions that requires answering before able to continue with this unit (See Below).

AmigaLib Table

In the table below the left subtable contains the original c location, while the right subtable displays the pascal unit location in which the function (is) located).

List of amiga lib functions and their location/status (c/Pascal) per platform
Function OS3.x AROS MorphOS OS3.x AROS MorphOS Remark(s)
ACrypt
AddAmigaguideHost
AddAppIcon
AddAppMenuItem
AddAppWindow
AddAppWindowDropZone
AllocAslRequestTags
AllocDosObjectTags
AllocNamedObject
AllocSpriteData
AndRectRect
AddTOF
afp
ArgArrayDone
ArgArrayInit
ArgInt
ArgString
ArosInquire
arnd
AslRequestTags
asmallocpooled
asmcreatepool
asmdeletepool
asmfreepooled
BeginIO
BestCModeIDTags
BestModeID
BuildEasyRequest
CallHook
CallHookA
ChangeExtSprite
CheckRexxMsg
CloseWorkbenchObject
CoerceMethod
CoerceMethodA
CopyRegion
CreateExtIO
CreateGadget
CreateMenus
CreateNewProcTags
CreatePort
CreateStdIO
CreateTask
CxCustom
CxDebug
CxFilter
CxSender
CxSignal
CxTranslate
dbf
DISPATCHERARG
DeleteExtIO
DeletePort
DeleteStdIO
DeleteTask
DoDTMethod
DoGadgetMethod
DoMethod
DoMethodA
DoSuperMethod
DoSuperMethodA
DoSuperNew
DoTimer
DrawBevelBox
EasyRequest
ErrorOutput
ExtendFontTags
FastRand
fpa
fpbcd
fprintf
FreeIEvents
fwritef
GetDTAttrs
GetExtSprite
GetRexxVar
GetRPAttrs
GetVisualInfo
GT_GetGadgetAttrs
GT_SetGadgetAttrs
HookEntry
HotKey
InvertString
InvertStringForward
LayoutMenuItems
LayoutMenus
LibAllocAligned
LibAllocPooled
LibCreatePool
LibDeletePool
LibFreePooled
LockBitmapTags
MakeDirAll
MakeWorkbenchObjectVisible
MergeSortList
NewDTObject
NewList
NewLoadSegTags
NewObject
NewRawDoFmt
NewRectRegion
ObtainBestPen
ObtainInfo
OpenAmigaGuide
OpenAmigaGuideAsync
OpenCatalog
OpenMakeDir
OpenScreenTags
OpenWindowTags
OpenWorkbenchObject
printf
RangeRand
RefreshDTObject
RefreshDTObjects
ReleaseInfo
RemTOF
RemoveAmigaGuideHost
SelectErrorOutput
SendAmigaGuideCmd
SendAmigaGuideContext
SetAmigaGuideAttrs
SetAmigaGuideContext
SetAttrs
SetDTAttrs
SetGadgetAttrs
SetInfo
SetRexxVar
SetRPAttrs
SetSuperAttrs
SetSuperAttrsA
SetWindowPointer
sprintf
strdup
SystemTags
TimeDelay
UnlockBitmapTags
VideoControlTags
waitbeam
WorkbenchControl

legend:

red = unimplemented
red + n/a = unimplemented, no other implementation available (e.g. no c, no pascal meaning implement from scratch).
blue = implemented, untested
purple = difficulty, discuss first
Green = implemented, tested, and having correct (pascal) location mentioned

Questions