1{
2    This file is part of the Free Pascal run time library.
3
4    utility functions for AmigaOS/m68k
5    Copyright (c) 2007 Karoly Balogh
6
7    See the file COPYING.FPC, included in this distribution,
8    for details about the copyright.
9
10    This program is distributed in the hope that it will be useful,
11    but WITHOUT ANY WARRANTY; without even the implied warranty of
12    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
13
14 **********************************************************************}
15
16
17function FindTagItem(tagVal : Cardinal location 'd0';
18                     tagList: PTagItem location 'a0'): PTagItem;
19SysCall AOS_UtilityBase 030;
20
21function GetTagData(tagValue  : Cardinal location 'd0';
22                    defaultVal: Cardinal location 'd1';
23                    tagList   : PTagItem location 'a0'): Cardinal;
24SysCall AOS_UtilityBase 036;
25
26function PackBoolTags(initialFlags: Cardinal location 'd0';
27                      tagList     : PTagItem location 'a0';
28                      boolMap     : PTagItem location 'a1'): Cardinal;
29SysCall AOS_UtilityBase 042;
30
31function NextTagItem(tagListPtr: pPTagItem location 'a0'): PTagItem;
32SysCall AOS_UtilityBase 048;
33
34procedure FilterTagChanges(changeList  : PTagItem location 'a0';
35                           originalList: PTagItem location 'a1';
36                           apply       : Cardinal location 'd0');
37SysCall AOS_UtilityBase 054;
38
39procedure MapTags(tagList: PTagItem location 'a0';
40                  mapList: PTagItem location 'a1';
41                  mapType: Cardinal location 'd0');
42SysCall AOS_UtilityBase 060;
43
44function AllocateTagItems(numTags: Cardinal location 'd0'): PTagItem;
45SysCall AOS_UtilityBase 066;
46
47function CloneTagItems(tagList: PTagItem location 'a0'): PTagItem;
48SysCall AOS_UtilityBase 072;
49
50procedure FreeTagItems(tagList: PTagItem location 'a0');
51SysCall AOS_UtilityBase 078;
52
53procedure RefreshTagItemClones(clone   : PTagItem location 'a0';
54                               original: PTagItem location 'a1');
55SysCall AOS_UtilityBase 084;
56
57function TagInArray(tagValue    : Cardinal location 'd0';
58                    var tagArray: Cardinal location 'a0'): LongBool;
59SysCall AOS_UtilityBase 090;
60
61function FilterTagItems(tagList        : PTagItem location 'a0';
62                        var filterArray: Cardinal location 'a1';
63                        logic          : Cardinal location 'd0'): Cardinal;
64SysCall AOS_UtilityBase 096;
65
66function CallHookPkt(hook       : PHook   location 'a0';
67                     hobject    : Pointer location 'a2';
68                     paramPacket: Pointer location 'a1'): Cardinal;
69SysCall AOS_UtilityBase 102;
70
71procedure Amiga2Date(seconds: Cardinal   location 'd0';
72                     result : PClockData location 'a0');
73SysCall AOS_UtilityBase 120;
74
75function Date2Amiga(date: PClockData location 'a0'): Cardinal;
76SysCall AOS_UtilityBase 126;
77
78function CheckDate(date: PClockData location 'a0'): Cardinal;
79SysCall AOS_UtilityBase 132;
80
81function SMult32(arg1: LongInt location 'd0';
82                 arg2: LongInt location 'd1'): LongInt;
83SysCall AOS_UtilityBase 138;
84
85function UMult32(arg1: Cardinal location 'd0';
86                 arg2: Cardinal location 'd1'): Cardinal;
87SysCall AOS_UtilityBase 144;
88
89function SDivMod32(dividend: LongInt location 'd0';
90                    divisor: LongInt location 'd1'): LongInt;
91SysCall AOS_UtilityBase 150;
92
93function UDivMod32(dividend: Cardinal location 'd0';
94                   divisor : Cardinal location 'd1'): Cardinal;
95SysCall AOS_UtilityBase 156;
96
97function Stricmp(string1: PChar location 'a0';
98                 string2: PChar location 'a1'): LongInt;
99SysCall AOS_UtilityBase 162;
100
101function Strnicmp(string1: PChar   location 'a0';
102                  string2: PChar   location 'a1';
103                  length : LongInt location 'd0'): LongInt;
104SysCall AOS_UtilityBase 168;
105
106function ToUpper(character: Cardinal location 'd0'): Char;
107SysCall AOS_UtilityBase 174;
108
109function ToLower(character: Cardinal location 'd0'): Char;
110SysCall AOS_UtilityBase 180;
111
112procedure ApplyTagChanges(list      : PTagItem location 'a0';
113                          changeList: PTagItem location 'a1');
114SysCall AOS_UtilityBase 186;
115
116function SMult64(arg1: LongInt location 'd0';
117                 arg2: LongInt location 'd1'): LongInt;
118SysCall AOS_UtilityBase 198;
119
120function UMult64(arg1: Cardinal location 'd0';
121                 arg2: Cardinal location 'd1'): Cardinal;
122SysCall AOS_UtilityBase 204;
123
124function PackStructureTags(pack         : Pointer  location 'a0';
125                           var packTable: Cardinal location 'a1';
126                           tagList      : PTagItem location 'a2'): Cardinal;
127SysCall AOS_UtilityBase 210;
128
129function UnpackStructureTags(pack         : Pointer  location 'a0';
130                             var packTable: Cardinal location 'a1';
131                             tagList      : PTagItem location 'a2'): Cardinal;
132SysCall AOS_UtilityBase 216;
133
134function AddNamedObject(nameSpace: PNamedObject location 'a0';
135                        nobject  : PNamedObject location 'a1'): LongBool;
136SysCall AOS_UtilityBase 222;
137
138function AllocNamedObjectA(name   : PChar    location 'a0';
139                           tagList: PTagItem location 'a1'): PNamedObject;
140SysCall AOS_UtilityBase 228;
141
142function AttemptRemNamedObject(nobject: PNamedObject location 'a0'): LongInt;
143SysCall AOS_UtilityBase 234;
144
145function FindNamedObject(nameSpace : PNamedObject location 'a0';
146                         name      : PChar        location 'a1';
147                         lastObject: PNamedObject location 'a2'): PNamedObject;
148SysCall AOS_UtilityBase 240;
149
150procedure FreeNamedObject(nobject: PNamedObject location 'a0');
151SysCall AOS_UtilityBase 246;
152
153function NamedObjectName(nobject: PNamedObject location 'a0'): PChar;
154SysCall AOS_UtilityBase 252;
155
156procedure ReleaseNamedObject(nobject: pNamedObject location 'a0');
157SysCall AOS_UtilityBase 258;
158
159procedure RemNamedObject(nobject: PNamedObject location 'a0';
160                         message: PMessage     location 'a1');
161SysCall AOS_UtilityBase 264;
162
163function GetUniqueID: Cardinal;
164SysCall AOS_UtilityBase 270;
165
166