2
This file is part of the Free Pascal run time library.
4
A file in Amiga system run time library.
5
Copyright (c) 1998-2003 by Nils Sjoholm
6
member of the Amiga RTL development team.
8
See the file COPYING.FPC, included in this distribution,
9
for details about the copyright.
11
This program is distributed in the hope that it will be useful,
12
but WITHOUT ANY WARRANTY; without even the implied warranty of
13
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
15
**********************************************************************}
19
{$I useamigasmartlink.inc}
20
{$ifdef use_amiga_smartlink}
22
{$endif use_amiga_smartlink}
28
uses exec,amigados, amigaguide, asl, bullet, intuition, datatypes ,
29
gadtools, graphics, locale, lowlevel, realtime,
30
workbench, utility, tagsarray;
32
{ As of today boolean and char doesn't function in
33
array of const. Use ltrue and lfalse instead. You
36
Added the define use_amiga_smartlink.
39
Changed integer > smallint.
40
Moved ltrue and lfalse to exec.
43
nils.sjoholm@mailbox.swipnet.se
48
This is functions and procedures with array of const.
49
For use with fpc 1.0 and above.
52
{ functions from amigados. }
53
FUNCTION AllocDosObjectTags(type_ : ULONG; Const argv : Array of Const) : POINTER;
54
FUNCTION CreateNewProcTags(Const argv : Array of Const) : pProcess;
55
FUNCTION NewLoadSegTags(file_ : pCHAR; Const argv : Array of Const) : LONGINT;
56
FUNCTION SystemTags(command : pCHAR; Const argv : Array of Const) : LONGINT;
57
{ This one as well, an overlay function }
58
FUNCTION SystemTags(command : string; Const argv : Array of Const) : LONGINT;
60
{ functions from amigaguide. }
61
FUNCTION AddAmigaGuideHost(h : pHook; name : pCHAR; Const argv : Array Of Const) : POINTER;
62
FUNCTION OpenAmigaGuide(nag : pNewAmigaGuide; Const argv : Array Of Const) : POINTER;
63
FUNCTION OpenAmigaGuideAsync(nag : pNewAmigaGuide; Const argv : Array Of Const) : POINTER;
64
FUNCTION RemoveAmigaGuideHost(hh : POINTER; Const argv : Array Of Const) : LONGINT;
65
FUNCTION SendAmigaGuideCmd(cl : POINTER; cmd : pCHAR; Const argv : Array Of Const) : LONGINT;
66
FUNCTION SendAmigaGuideContext(cl : POINTER; Const argv : Array Of Const) : LONGINT;
67
FUNCTION SetAmigaGuideAttrs(cl : POINTER; Const argv : Array Of Const) : LONGINT;
68
FUNCTION SetAmigaGuideContext(cl : POINTER; id : ULONG; Const argv : Array Of Const) : LONGINT;
70
{ functions from asl. }
71
FUNCTION AllocAslRequestTags(reqType : ULONG; Const argv : Array Of Const) : POINTER;
72
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
74
{ functions from bullet }
75
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
76
FUNCTION ReleaseInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
77
FUNCTION SetInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
79
{ functions from datatypes }
80
FUNCTION GetDTAttrs(o : pObject_; Const argv : Array Of Const) : ULONG;
81
FUNCTION NewDTObject(name : POINTER; Const argv : Array Of Const): POINTER;
82
FUNCTION ObtainDataType(typ : ULONG; handle : POINTER; Const argv : Array Of Const) : pDataType;
83
PROCEDURE RefreshDTObject(o : pObject_; win : pWindow; req : pRequester; Const argv : Array Of Const);
84
FUNCTION SetDTAttrs(o : pObject_; win : pWindow; req : pRequester; Const argv : Array Of Const) : ULONG;
86
{ functions from gadtools }
87
FUNCTION CreateGadget(kind : ULONG; gad : pGadget; ng : pNewGadget; Const argv : Array Of Const) : pGadget;
88
FUNCTION CreateMenus(newmenu : pNewMenu; Const argv : Array Of Const) : pMenu;
89
PROCEDURE DrawBevelBox(rport : pRastPort; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT; Const argv : Array Of Const);
90
FUNCTION GetVisualInfo(screen : pScreen; Const argv : Array Of Const) : POINTER;
91
FUNCTION GT_GetGadgetAttrs(gad : pGadget; win : pWindow; req : pRequester; Const argv : Array Of Const) : LONGINT;
92
PROCEDURE GT_SetGadgetAttrs(gad : pGadget; win : pWindow; req : pRequester; Const argv : Array Of Const);
93
FUNCTION LayoutMenuItems(firstitem : pMenuItem; vi : POINTER; Const argv : Array Of Const) : BOOLEAN;
94
FUNCTION LayoutMenus(firstmenu : pMenu; vi : POINTER; Const argv : Array Of Const) : BOOLEAN;
96
{ functions from graphics }
97
FUNCTION AllocSpriteData(bm : pBitMap; Const argv : Array Of Const) : pExtSprite;
98
FUNCTION BestModeID(Const argv : Array Of Const) : ULONG;
99
FUNCTION ChangeExtSprite(vp : pViewPort; oldsprite : pExtSprite; newsprite : pExtSprite; Const argv : Array Of Const) : LONGINT;
100
FUNCTION ExtendFontTags(font : pTextFont; Const argv : Array Of Const) : ULONG;
101
FUNCTION GetExtSprite(ss : pExtSprite; Const argv : Array Of Const) : LONGINT;
102
PROCEDURE GetRPAttrs(rp : pRastPort; Const argv : Array Of Const);
103
FUNCTION ObtainBestPen(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG; Const argv : Array Of Const) : LONGINT;
104
PROCEDURE SetRPAttrs(rp : pRastPort; Const argv : Array Of Const);
105
FUNCTION VideoControlTags(colorMap : pColorMap; Const argv : Array Of Const) : BOOLEAN;
106
FUNCTION WeighTAMatchTags(reqTextAttr : pTextAttr; targetTextAttr : pTextAttr; Const argv : Array Of Const) : smallint;
108
{ functions from intuition. }
109
FUNCTION OpenScreenTags(newScreen : pNewScreen; tagList : array of const) : pScreen;
110
FUNCTION OpenWindowTags(newWindow : pNewWindow; tagList : array of const) : pWindow;
111
FUNCTION NewObject(classPtr : pIClass; classID : pCHAR; Const argv : Array Of Const) : POINTER;
112
FUNCTION SetGadgetAttrs(gadget : pGadget; window : pWindow; requester : pRequester; Const argv : Array Of Const) : ULONG;
113
FUNCTION NewObject(classPtr : pIClass; classID : string; Const argv : array of const ) : POINTER;
116
FUNCTION OpenCatalog(locale : pLocale; name : pCHAR; Const argv : Array Of Const) : pCatalog;
118
{ functions from lowlevel }
119
FUNCTION SetJoyPortAttrs(portNumber : ULONG; Const argv : Array Of Const) : BOOLEAN;
120
FUNCTION SystemControl(Const argv : Array Of Const) : ULONG;
122
{ functions from realtime }
123
FUNCTION CreatePlayer(Const argv : Array Of Const) : pPlayer;
124
FUNCTION GetPlayerAttrs(player : pPlayer; Const argv : Array Of Const) : ULONG;
125
FUNCTION SetPlayerAttrs(player : pPlayer; Const argv : Array Of Const) : BOOLEAN;
128
function AllocNamedObject(name : STRPTR; Const argv : Array Of Const) : pNamedObject;
130
{ functions from workbench }
131
FUNCTION AddAppMenuItem(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; Const argv : Array Of Const) : pAppMenuItem;
132
FUNCTION AddAppWindow(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort; Const argv : Array Of Const) : pAppWindow;
138
FUNCTION AllocDosObjectTags(type_ : ULONG; Const argv : Array of Const) : POINTER;
140
AllocDosObjectTags := AllocDosObjectTagList(type_, readintags(argv));
143
FUNCTION CreateNewProcTags(Const argv : Array of Const) : pProcess;
145
CreateNewProcTags := CreateNewProcTagList(readintags(argv));
148
FUNCTION NewLoadSegTags(file_ : pCHAR; Const argv : Array of Const) : LONGINT;
150
NewLoadSegTags := NewLoadSegTagList(file_,readintags(argv));
153
FUNCTION SystemTags(command : pCHAR; Const argv : Array of Const) : LONGINT;
155
SystemTags := SystemTagList(command,readintags(argv));
158
FUNCTION SystemTags(command : string; Const argv : Array of Const) : LONGINT;
160
SystemTags := SystemTagList(command,readintags(argv));
163
FUNCTION OpenScreenTags(newScreen : pNewScreen; tagList : array of const) : pScreen;
165
OpenScreenTags := OpenScreenTagList(newScreen, readintags(tagList));
168
FUNCTION OpenWindowTags(newWindow : pNewWindow; tagList : array of const) : pWindow;
170
OpenWindowTags := OpenWindowTagList(newWindow, readintags(tagList));
173
FUNCTION NewObject(classPtr : pIClass; classID : pCHAR; Const argv : Array Of Const) : POINTER;
175
NewObject := NewObjectA(classPtr,classID, readintags(argv));
178
FUNCTION NewObject(classPtr : pIClass; classID : string; Const argv : array of const ) : POINTER;
180
NewObject := NewObjectA(classPtr,pas2c(classID),readintags(argv));
183
FUNCTION SetGadgetAttrs(gadget : pGadget; window : pWindow; requester : pRequester; Const argv : Array Of Const) : ULONG;
185
SetGadgetAttrs := SetGadgetAttrsA(gadget,window,requester,readintags(argv));
188
FUNCTION AddAmigaGuideHost(h : pHook; name : pCHAR; Const argv : Array Of Const) : POINTER;
190
AddAmigaGuideHost := AddAmigaGuideHostA(h,name,readintags(argv));
193
FUNCTION OpenAmigaGuide(nag : pNewAmigaGuide; Const argv : Array Of Const) : POINTER;
195
OpenAmigaGuide := OpenAmigaGuideA(nag,readintags(argv));
198
FUNCTION OpenAmigaGuideAsync(nag : pNewAmigaGuide; Const argv : Array Of Const) : POINTER;
200
OpenAmigaGuideAsync := OpenAmigaGuideAsyncA(nag,readintags(argv));
203
FUNCTION RemoveAmigaGuideHost(hh : POINTER; Const argv : Array Of Const) : LONGINT;
205
RemoveAmigaGuideHost := RemoveAmigaGuideHostA(hh,readintags(argv));
208
FUNCTION SendAmigaGuideCmd(cl : POINTER; cmd : pCHAR; Const argv : Array Of Const) : LONGINT;
210
SendAmigaGuideCmd := SendAmigaGuideCmdA(cl,cmd,readintags(argv));
213
FUNCTION SendAmigaGuideContext(cl : POINTER; Const argv : Array Of Const) : LONGINT;
215
SendAmigaGuideContext := SendAmigaGuideContextA(cl,readintags(argv));
218
FUNCTION SetAmigaGuideAttrs(cl : POINTER; Const argv : Array Of Const) : LONGINT;
220
SetAmigaGuideAttrs := SetAmigaGuideAttrsA(cl,readintags(argv));
223
FUNCTION SetAmigaGuideContext(cl : POINTER; id : ULONG; Const argv : Array Of Const) : LONGINT;
225
SetAmigaGuideContext := SetAmigaGuideContextA(cl,id,readintags(argv));
228
FUNCTION AllocAslRequestTags(reqType : ULONG; Const argv : Array Of Const) : POINTER;
230
AllocAslRequestTags := AllocAslRequest(reqType,readintags(argv));
233
FUNCTION AslRequestTags(requester : POINTER; Const argv : Array Of Const) : BOOLEAN;
235
AslRequestTags := AslRequest(requester,readintags(argv));
238
FUNCTION ObtainInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
240
ObtainInfo := ObtainInfoA(glyphEngine,readintags(argv));
243
FUNCTION ReleaseInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
245
ReleaseInfo := releaseInfoA(glyphEngine,readintags(argv));
248
FUNCTION SetInfo(glyphEngine : pGlyphEngine; Const argv : Array Of Const) : ULONG;
250
SetInfo := SetInfoA(glyphEngine,readintags(argv));
253
FUNCTION GetDTAttrs(o : pObject_; Const argv : Array Of Const) : ULONG;
255
GetDTAttrs := GetDTAttrsA(o,readintags(argv));
258
FUNCTION NewDTObject(name : POINTER; Const argv : Array Of Const): POINTER;
260
NewDTObject := NewDTObjectA(name,readintags(argv));
263
FUNCTION ObtainDataType(typ : ULONG; handle : POINTER; Const argv : Array Of Const) : pDataType;
265
ObtainDataType := ObtainDataTypeA(typ,handle,readintags(argv));
267
PROCEDURE RefreshDTObject(o : pObject_; win : pWindow; req : pRequester; Const argv : Array Of Const);
269
RefreshDTObjectA(o,win,req,readintags(argv));
272
FUNCTION SetDTAttrs(o : pObject_; win : pWindow; req : pRequester; Const argv : Array Of Const) : ULONG;
274
SetDTAttrs := SetDTAttrsA(o,win,req,readintags(argv));
277
FUNCTION CreateGadget(kind : ULONG; gad : pGadget; ng : pNewGadget; Const argv : Array Of Const) : pGadget;
279
CreateGadget := CreateGadgetA(kind,gad,ng,readintags(argv));
282
FUNCTION CreateMenus(newmenu : pNewMenu; Const argv : Array Of Const) : pMenu;
284
CreateMenus := CreateMenusA(newmenu,readintags(argv));
287
PROCEDURE DrawBevelBox(rport : pRastPort; left : LONGINT; top : LONGINT; width : LONGINT; height : LONGINT; Const argv : Array Of Const);
289
DrawBevelBoxA(rport,left,top,width,height,readintags(argv));
292
FUNCTION GetVisualInfo(screen : pScreen; Const argv : Array Of Const) : POINTER;
294
GetVisualInfo := GetVisualInfoA(screen,readintags(argv));
297
FUNCTION GT_GetGadgetAttrs(gad : pGadget; win : pWindow; req : pRequester; Const argv : Array Of Const) : LONGINT;
299
GT_GetGadgetAttrs := GT_GetGadgetAttrsA(gad,win,req,readintags(argv));
302
PROCEDURE GT_SetGadgetAttrs(gad : pGadget; win : pWindow; req : pRequester; Const argv : Array Of Const);
304
GT_SetGadgetAttrsA(gad,win,req,readintags(argv));
307
FUNCTION LayoutMenuItems(firstitem : pMenuItem; vi : POINTER; Const argv : Array Of Const) : BOOLEAN;
309
LayoutMenuItems := LayoutMenuItemsA(firstitem,vi,readintags(argv));
312
FUNCTION LayoutMenus(firstmenu : pMenu; vi : POINTER; Const argv : Array Of Const) : BOOLEAN;
314
LayoutMenus := LayoutMenusA(firstmenu,vi,readintags(argv));
317
FUNCTION AllocSpriteData(bm : pBitMap; Const argv : Array Of Const) : pExtSprite;
319
AllocSpriteData := AllocSpriteDataA(bm,readintags(argv));
322
FUNCTION BestModeID(Const argv : Array Of Const) : ULONG;
324
BestModeID := BestModeIDA(readintags(argv));
327
FUNCTION ChangeExtSprite(vp : pViewPort; oldsprite : pExtSprite; newsprite : pExtSprite; Const argv : Array Of Const) : LONGINT;
329
ChangeExtSprite := ChangeExtSpriteA(vp,oldsprite,newsprite,readintags(argv));
332
FUNCTION ExtendFontTags(font : pTextFont; Const argv : Array Of Const) : ULONG;
334
ExtendFontTags := ExtendFont(font,readintags(argv));
337
FUNCTION GetExtSprite(ss : pExtSprite; Const argv : Array Of Const) : LONGINT;
339
GetExtSprite := GetExtSpriteA(ss,readintags(argv));
342
PROCEDURE GetRPAttrs(rp : pRastPort; Const argv : Array Of Const);
344
GetRPAttrsA(rp,readintags(argv));
347
FUNCTION ObtainBestPen(cm : pColorMap; r : ULONG; g : ULONG; b : ULONG; Const argv : Array Of Const) : LONGINT;
349
ObtainBestPen := ObtainBestPenA(cm,r,g,b,readintags(argv));
352
PROCEDURE SetRPAttrs(rp : pRastPort; Const argv : Array Of Const);
354
SetRPAttrsA(rp,readintags(argv));
357
FUNCTION VideoControlTags(colorMap : pColorMap; Const argv : Array Of Const) : BOOLEAN;
359
VideoControlTags := VideoControl(colorMap,readintags(argv));
362
FUNCTION WeighTAMatchTags(reqTextAttr : pTextAttr; targetTextAttr : pTextAttr; Const argv : Array Of Const) : smallint;
364
WeighTAMatchTags := WeighTAMatch(reqTextAttr,targetTextAttr,readintags(argv));
367
FUNCTION OpenCatalog(locale : pLocale; name : pCHAR; Const argv : Array Of Const) : pCatalog;
369
OpenCatalog := OpenCatalogA(locale,name,readintags(argv));
372
FUNCTION SetJoyPortAttrs(portNumber : ULONG; Const argv : Array Of Const) : BOOLEAN;
374
SetJoyPortAttrs := SetJoyPortAttrsA(portNumber,readintags(argv));
377
FUNCTION SystemControl(Const argv : Array Of Const) : ULONG;
379
SystemControl := SystemControlA(readintags(argv));
382
FUNCTION CreatePlayer(Const argv : Array Of Const) : pPlayer;
384
CreatePlayer := CreatePlayerA(readintags(argv));
387
FUNCTION GetPlayerAttrs(player : pPlayer; Const argv : Array Of Const) : ULONG;
389
GetPlayerAttrs := GetPlayerAttrsA(player,readintags(argv));
392
FUNCTION SetPlayerAttrs(player : pPlayer; Const argv : Array Of Const) : BOOLEAN;
394
SetPlayerAttrs := SetPlayerAttrsA(player,readintags(argv));
397
function AllocNamedObject(name : STRPTR; Const argv : Array Of Const) : pNamedObject;
399
AllocNamedObject := AllocNamedObjectA(name,readintags(argv));
402
FUNCTION AddAppMenuItem(id : ULONG; userdata : ULONG; text_ : pCHAR; msgport : pMsgPort; Const argv : Array Of Const) : pAppMenuItem;
404
AddAppMenuItem := AddAppMenuItemA(id,userdata,text_,msgport,readintags(argv));
407
FUNCTION AddAppWindow(id : ULONG; userdata : ULONG; window : pWindow; msgport : pMsgPort; Const argv : Array Of Const) : pAppWindow;
409
AddAppWindow := AddAppWindowA(id,userdata,window,msgport,readintags(argv));