~ubuntu-branches/ubuntu/dapper/fpc/dapper

« back to all changes in this revision

Viewing changes to rtl/morphos/doslibd.inc

  • Committer: Bazaar Package Importer
  • Author(s): Carlos Laviola
  • Date: 2005-05-30 11:59:10 UTC
  • mfrom: (1.2.2 upstream)
  • Revision ID: james.westby@ubuntu.com-20050530115910-x5pbzm4qqta4i94h
Tags: 2.0.0-2
debian/fp-compiler.postinst.in: forgot to reapply the patch that
correctly creates the slave link to pc(1).  (Closes: #310907)

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
{
 
2
    $Id: doslibd.inc,v 1.5 2005/02/14 17:13:30 peter Exp $
 
3
    This file is part of the Free Pascal run time library.
 
4
 
 
5
    dos definitions (V50) for MorphOS/PowerPC
 
6
    Copyright (c) 2002 The MorphOS Development Team, All Rights Reserved.
 
7
 
 
8
    Free Pascal conversion
 
9
    Copyright (c) 2004 Karoly Balogh for Genesi S.a.r.l. <www.genesi.lu>
 
10
 
 
11
    See the file COPYING.FPC, included in this distribution,
 
12
    for details about the copyright.
 
13
 
 
14
    This program is distributed in the hope that it will be useful,
 
15
    but WITHOUT ANY WARRANTY; without even the implied warranty of
 
16
    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
 
17
 
 
18
 **********************************************************************}
 
19
 
 
20
 
 
21
 
 
22
{ * dos global definitions (V50)
 
23
  *********************************************************************
 
24
  * }
 
25
 
 
26
 
 
27
const
 
28
  DOSNAME = 'dos.library';
 
29
 
 
30
const
 
31
  DOSTRUE  = -1;
 
32
  DOSFALSE =  0;
 
33
 
 
34
const
 
35
  MODE_OLDFILE   = 1005;
 
36
  MODE_NEWFILE   = 1006;
 
37
  MODE_READWRITE = 1004;
 
38
 
 
39
const
 
40
  OFFSET_BEGINNING = -1;
 
41
  OFFSET_CURRENT   =  0;
 
42
  OFFSET_END       =  1;
 
43
  OFFSET_BEGINING  =  OFFSET_BEGINNING; { * Typo fix * }
 
44
 
 
45
const
 
46
  BITSPERBYTE  = 8;
 
47
  BYTESPERLONG = 4;
 
48
  BITSPERLONG  = 32;
 
49
  _MAXINT      = $7FFFFFFF;
 
50
  _MININT      = $80000000;
 
51
 
 
52
const
 
53
  SHARED_LOCK    = -2;
 
54
  ACCESS_READ    = -2;
 
55
  EXCLUSIVE_LOCK = -1;
 
56
  ACCESS_WRITE   = -1;
 
57
 
 
58
 
 
59
type
 
60
  PDateStamp = ^TDateStamp;
 
61
  TDateStamp = packed record
 
62
    ds_Days  : LongInt;
 
63
    ds_Minute: LongInt;
 
64
    ds_Tick  : LongInt;
 
65
  end;
 
66
 
 
67
const
 
68
  TICKS_PER_SECOND = 50;
 
69
 
 
70
 
 
71
type
 
72
  PFileInfoBlock = ^TFileInfoBlock;
 
73
  TFileInfoBlock = packed record
 
74
    fib_DiskKey     : LongInt;
 
75
    fib_DirEntryType: LongInt;
 
76
    fib_FileName    : Array[0..107] Of Char;
 
77
    fib_Protection  : LongInt;
 
78
    fib_EntryType   : LongInt;
 
79
    fib_Size        : LongInt;
 
80
    fib_NumBlocks   : LongInt;
 
81
    fib_Date        : TDateStamp;
 
82
    fib_Comment     : Array[0..79] Of Char;
 
83
 
 
84
    fib_OwnerUID    : Word;
 
85
    fib_OwnerGID    : Word;
 
86
 
 
87
    fib_Reserved    : Array[0..31] Of Char;
 
88
  end;
 
89
 
 
90
const
 
91
  FIBB_OTR_READ    = 15;
 
92
  FIBB_OTR_WRITE   = 14;
 
93
  FIBB_OTR_EXECUTE = 13;
 
94
  FIBB_OTR_DELETE  = 12;
 
95
  FIBB_GRP_READ    = 11;
 
96
  FIBB_GRP_WRITE   = 10;
 
97
  FIBB_GRP_EXECUTE = 9;
 
98
  FIBB_GRP_DELETE  = 8;
 
99
 
 
100
  FIBB_SCRIPT      = 6;
 
101
  FIBB_PURE        = 5;
 
102
  FIBB_ARCHIVE     = 4;
 
103
  FIBB_READ        = 3;
 
104
  FIBB_WRITE       = 2;
 
105
  FIBB_EXECUTE     = 1;
 
106
  FIBB_DELETE      = 0;
 
107
 
 
108
const
 
109
  FIBF_OTR_READ    = (1 Shl FIBB_OTR_READ);
 
110
  FIBF_OTR_WRITE   = (1 Shl FIBB_OTR_WRITE);
 
111
  FIBF_OTR_EXECUTE = (1 Shl FIBB_OTR_EXECUTE);
 
112
  FIBF_OTR_DELETE  = (1 Shl FIBB_OTR_DELETE);
 
113
  FIBF_GRP_READ    = (1 Shl FIBB_GRP_READ);
 
114
  FIBF_GRP_WRITE   = (1 Shl FIBB_GRP_WRITE);
 
115
  FIBF_GRP_EXECUTE = (1 Shl FIBB_GRP_EXECUTE);
 
116
  FIBF_GRP_DELETE  = (1 Shl FIBB_GRP_DELETE);
 
117
 
 
118
  FIBF_SCRIPT      = (1 Shl FIBB_SCRIPT);
 
119
  FIBF_PURE        = (1 Shl FIBB_PURE);
 
120
  FIBF_ARCHIVE     = (1 Shl FIBB_ARCHIVE);
 
121
  FIBF_READ        = (1 Shl FIBB_READ);
 
122
  FIBF_WRITE       = (1 Shl FIBB_WRITE);
 
123
  FIBF_EXECUTE     = (1 Shl FIBB_EXECUTE);
 
124
  FIBF_DELETE      = (1 Shl FIBB_DELETE);
 
125
 
 
126
const
 
127
  FAULT_MAX = 82;
 
128
 
 
129
 
 
130
type
 
131
  BPTR = LongInt;
 
132
  BSTR = LongInt;
 
133
 
 
134
type
 
135
  PInfoData = ^TInfoData;
 
136
  TInfoData = packed record
 
137
    id_NumSoftErrors: LongInt;
 
138
    id_UnitNumber   : LongInt;
 
139
    id_DiskState    : LongInt;
 
140
    id_NumBlocks    : LongInt;
 
141
    id_NumBlocksUsed: LongInt;
 
142
    id_BytesPerBlock: LongInt;
 
143
    id_DiskType     : LongInt;
 
144
    id_VolumeNode   : LongInt; {BPTR}
 
145
    id_InUse        : LongInt;
 
146
  end;
 
147
 
 
148
 
 
149
const
 
150
  ID_WRITE_PROTECTED = 80;
 
151
  ID_VALIDATING      = 81;
 
152
  ID_VALIDATED       = 82;
 
153
 
 
154
  ID_NO_DISK_PRESENT  = -1;
 
155
  ID_UNREADABLE_DISK  = $42414400;
 
156
  ID_DOS_DISK         = $444F5300;
 
157
  ID_FFS_DISK         = $444F5301;
 
158
  ID_INTER_DOS_DISK   = $444F5302;
 
159
  ID_INTER_FFS_DISK   = $444F5303;
 
160
  ID_FASTDIR_DOS_DISK = $444F5304;
 
161
  ID_FASTDIR_FFS_DISK = $444F5305;
 
162
  ID_LNFS_DOS_DISK    = $444F5306;
 
163
  ID_LNFS_FFS_DISK    = $444F5307;
 
164
  ID_NOT_REALLY_DOS   = $4E444F53;
 
165
  ID_KICKSTART_DISK   = $4B49434B;
 
166
  ID_MSDOS_DISK       = $4d534400;
 
167
 
 
168
const
 
169
  ERROR_NO_FREE_STORE            = 103;
 
170
  ERROR_TASK_TABLE_FULL          = 105;
 
171
  ERROR_BAD_TEMPLATE             = 114;
 
172
  ERROR_BAD_NUMBER               = 115;
 
173
  ERROR_REQUIRED_ARG_MISSING     = 116;
 
174
  ERROR_KEY_NEEDS_ARG            = 117;
 
175
  ERROR_TOO_MANY_ARGS            = 118;
 
176
  ERROR_UNMATCHED_QUOTES         = 119;
 
177
  ERROR_LINE_TOO_LONG            = 120;
 
178
  ERROR_FILE_NOT_OBJECT          = 121;
 
179
  ERROR_INVALID_RESIDENT_LIBRARY = 122;
 
180
  ERROR_NO_DEFAULT_DIR           = 201;
 
181
  ERROR_OBJECT_IN_USE            = 202;
 
182
  ERROR_OBJECT_EXISTS            = 203;
 
183
  ERROR_DIR_NOT_FOUND            = 204;
 
184
  ERROR_OBJECT_NOT_FOUND         = 205;
 
185
  ERROR_BAD_STREAM_NAME          = 206;
 
186
  ERROR_OBJECT_TOO_LARGE         = 207;
 
187
  ERROR_ACTION_NOT_KNOWN         = 209;
 
188
  ERROR_INVALID_COMPONENT_NAME   = 210;
 
189
  ERROR_INVALID_LOCK             = 211;
 
190
  ERROR_OBJECT_WRONG_TYPE        = 212;
 
191
  ERROR_DISK_NOT_VALIDATED       = 213;
 
192
  ERROR_DISK_WRITE_PROTECTED     = 214;
 
193
  ERROR_RENAME_ACROSS_DEVICES    = 215;
 
194
  ERROR_DIRECTORY_NOT_EMPTY      = 216;
 
195
  ERROR_TOO_MANY_LEVELS          = 217;
 
196
  ERROR_DEVICE_NOT_MOUNTED       = 218;
 
197
  ERROR_SEEK_ERROR               = 219;
 
198
  ERROR_COMMENT_TOO_BIG          = 220;
 
199
  ERROR_DISK_FULL                = 221;
 
200
  ERROR_DELETE_PROTECTED         = 222;
 
201
  ERROR_WRITE_PROTECTED          = 223;
 
202
  ERROR_READ_PROTECTED           = 224;
 
203
  ERROR_NOT_A_DOS_DISK           = 225;
 
204
  ERROR_NO_DISK                  = 226;
 
205
  ERROR_NO_MORE_ENTRIES          = 232;
 
206
 
 
207
  ERROR_IS_SOFT_LINK             = 233;
 
208
  ERROR_OBJECT_LINKED            = 234;
 
209
  ERROR_BAD_HUNK                 = 235;
 
210
  ERROR_NOT_IMPLEMENTED          = 236;
 
211
  ERROR_RECORD_NOT_LOCKED        = 240;
 
212
  ERROR_LOCK_COLLISION           = 241;
 
213
  ERROR_LOCK_TIMEOUT             = 242;
 
214
  ERROR_UNLOCK_ERROR             = 243;
 
215
 
 
216
const
 
217
  RETURN_OK    = 0;
 
218
  RETURN_WARN  = 5;
 
219
  RETURN_ERROR = 10;
 
220
  RETURN_FAIL  = 20;
 
221
 
 
222
const
 
223
  SIGBREAKB_CTRL_C = 12;
 
224
  SIGBREAKB_CTRL_D = 13;
 
225
  SIGBREAKB_CTRL_E = 14;
 
226
  SIGBREAKB_CTRL_F = 15;
 
227
 
 
228
  SIGBREAKF_CTRL_C = (1 Shl SIGBREAKB_CTRL_C);
 
229
  SIGBREAKF_CTRL_D = (1 Shl SIGBREAKB_CTRL_D);
 
230
  SIGBREAKF_CTRL_E = (1 Shl SIGBREAKB_CTRL_E);
 
231
  SIGBREAKF_CTRL_F = (1 Shl SIGBREAKB_CTRL_F);
 
232
 
 
233
const
 
234
  LOCK_DIFFERENT    = -1;
 
235
  LOCK_SAME         =  0;
 
236
  LOCK_SAME_VOLUME  =  1;
 
237
  LOCK_SAME_HANDLER =  LOCK_SAME_VOLUME;
 
238
 
 
239
const
 
240
  CHANGE_LOCK = 0;
 
241
  CHANGE_FH   = 1;
 
242
 
 
243
const
 
244
  LINK_HARD  = 0;
 
245
  LINK_SOFT  = 1;
 
246
 
 
247
const
 
248
  ITEM_EQUAL    = -2;
 
249
  ITEM_ERROR    = -1;
 
250
  ITEM_NOTHING  =  0;
 
251
  ITEM_UNQUOTED =  1;
 
252
  ITEM_QUOTED   =  2;
 
253
 
 
254
const
 
255
  DOS_FILEHANDLE   = 0;
 
256
  DOS_EXALLCONTROL = 1;
 
257
  DOS_FIB          = 2;
 
258
  DOS_STDPKT       = 3;
 
259
  DOS_CLI          = 4;
 
260
  DOS_RDARGS       = 5;
 
261
 
 
262
 
 
263
 
 
264
{ * dos date/time definitions
 
265
  *********************************************************************
 
266
  * }
 
267
 
 
268
 
 
269
type
 
270
  { * Required to avoid conflict with default types * }
 
271
  _PDateTime = ^_TDateTime;
 
272
  _TDateTime = packed record
 
273
    dat_Stamp  : TDateStamp;
 
274
    dat_Format : Byte;
 
275
    dat_Flags  : Byte;
 
276
    dat_StrDay : Pointer;
 
277
    dat_StrDate: Pointer;
 
278
    dat_StrTime: Pointer;
 
279
  end;
 
280
 
 
281
const
 
282
  LEN_DATSTRING  = 16;
 
283
 
 
284
const
 
285
  DTB_SUBST  = 0;
 
286
  DTF_SUBST  = (1 Shl DTB_SUBST);
 
287
  DTB_FUTURE = 1;
 
288
  DTF_FUTURE = (1 Shl DTB_FUTURE);
 
289
 
 
290
const
 
291
  FORMAT_DOS = 0;
 
292
  FORMAT_INT = 1;
 
293
  FORMAT_USA = 2;
 
294
  FORMAT_CDN = 3;
 
295
  FORMAT_MAX = FORMAT_CDN;
 
296
  FORMAT_DEF = 4;
 
297
 
 
298
 
 
299
 
 
300
{ * dos extended structures definitions
 
301
  *********************************************************************
 
302
  * }
 
303
 
 
304
 
 
305
type
 
306
  PProcess = ^TProcess;
 
307
  TProcess = packed record
 
308
    pr_Task          : TTask;
 
309
    pr_MsgPort       : TMsgPort;
 
310
    pr_Pad           : Word;
 
311
    pr_SegList       : DWord;    { BPTR }
 
312
    pr_StackSize     : LongInt;  { 68k stacksize! }
 
313
    pr_GlobVec       : Pointer;
 
314
    pr_TaskNum       : LongInt;
 
315
    pr_StackBase     : DWord;    { BPTR }
 
316
    pr_Result2       : LongInt;
 
317
    pr_CurrentDir    : DWord;    { BPTR }
 
318
    pr_CIS           : DWord;    { BPTR }
 
319
    pr_COS           : DWord;    { BPTR }
 
320
    pr_ConsoleTask   : Pointer;
 
321
    pr_FileSystemTask: Pointer;
 
322
    pr_CLI           : DWord;    { BPTR }
 
323
    pr_ReturnAddr    : Pointer;
 
324
    pr_PktWait       : Pointer;
 
325
    pr_WindowPtr     : Pointer;
 
326
    pr_HomeDir       : DWord;    { BPTR }
 
327
    pr_Flags         : LongInt;
 
328
    pr_ExitCode      : Pointer;  { Procedure }
 
329
    pr_ExitData      : LongInt;
 
330
    pr_Arguments     : PChar;
 
331
    pr_LocalVars     : TMinList;
 
332
    pr_ShellPrivate  : DWord;
 
333
    pr_CES           : DWord;    { BPTR }
 
334
  end;
 
335
 
 
336
const
 
337
  PRB_FREESEGLIST = 0;
 
338
  PRF_FREESEGLIST = (1 Shl PRB_FREESEGLIST);
 
339
 
 
340
  PRB_FREECURRDIR = 1;
 
341
  PRF_FREECURRDIR = (1 Shl PRB_FREECURRDIR);
 
342
 
 
343
  PRB_FREECLI     = 2;
 
344
  PRF_FREECLI     = (1 Shl PRB_FREECLI);
 
345
 
 
346
  PRB_CLOSEINPUT  = 3;
 
347
  PRF_CLOSEINPUT  = (1 Shl PRB_CLOSEINPUT);
 
348
 
 
349
  PRB_CLOSEOUTPUT = 4;
 
350
  PRF_CLOSEOUTPUT = (1 Shl PRB_CLOSEOUTPUT);
 
351
 
 
352
  PRB_FREEARGS    = 5;
 
353
  PRF_FREEARGS    = (1 Shl PRB_FREEARGS);
 
354
 
 
355
 
 
356
type
 
357
  PFileHandle = ^TFileHandle;
 
358
  TFileHandle = packed record
 
359
    fh_Flags      : DWord;
 
360
    fh_Interactive: LongInt;
 
361
    fh_Type       : PMsgPort;
 
362
    fh_Buf        : LongInt;
 
363
    fh_Pos        : LongInt;
 
364
    fh_End        : LongInt;
 
365
    fh_Func1      : LongInt;
 
366
    fh_Func2      : LongInt;
 
367
    fh_Func3      : LongInt;
 
368
    fh_Arg1       : LongInt;
 
369
    fh_Arg2       : LongInt;
 
370
    { *** V50 MorphOS *** }
 
371
    fh_BufSize    : LongInt;
 
372
    fh_OrigBuf    : LongInt;
 
373
  end;
 
374
 
 
375
type
 
376
  PDOSPacket = ^TDOSPacket;
 
377
  TDOSPacket = packed record
 
378
    dp_Link: PMessage;
 
379
    dp_Port: PMsgPort;
 
380
    case Byte of
 
381
    0 : ( dp_Action : Longint;
 
382
          dp_Status : Longint;
 
383
          dp_Status2: Longint;
 
384
          dp_BufAddr: Longint;
 
385
        );
 
386
    1 : ( dp_Type: Longint;
 
387
          dp_Res1: Longint;
 
388
          dp_Res2: Longint;
 
389
          dp_Arg1: Longint;
 
390
          dp_Arg2: Longint;
 
391
          dp_Arg3: Longint;
 
392
          dp_Arg4: Longint;
 
393
          dp_Arg5: Longint;
 
394
          dp_Arg6: Longint;
 
395
          dp_Arg7: Longint;
 
396
        );
 
397
  end;
 
398
 
 
399
type
 
400
  PStandardPacket = ^TStandardPacket;
 
401
  TStandardPacket = packed record
 
402
    sp_Msg: TMessage;
 
403
    sp_Pkt: TDOSPacket;
 
404
  end;
 
405
 
 
406
 
 
407
const
 
408
  ACTION_NIL            = 0;
 
409
  ACTION_STARTUP        = 0;
 
410
  ACTION_GET_BLOCK      = 2; { *** OBSOLETE *** }
 
411
  ACTION_SET_MAP        = 4;
 
412
  ACTION_DIE            = 5;
 
413
  ACTION_EVENT          = 6;
 
414
  ACTION_CURRENT_VOLUME = 7;
 
415
  ACTION_LOCATE_OBJECT  = 8;
 
416
  ACTION_RENAME_DISK    = 9;
 
417
  ACTION_WRITE          = 'W';
 
418
  ACTION_READ           = 'R';
 
419
  ACTION_FREE_LOCK      = 15;
 
420
  ACTION_DELETE_OBJECT  = 16;
 
421
  ACTION_RENAME_OBJECT  = 17;
 
422
  ACTION_MORE_CACHE     = 18;
 
423
  ACTION_COPY_DIR       = 19;
 
424
  ACTION_WAIT_CHAR      = 20;
 
425
  ACTION_SET_PROTECT    = 21;
 
426
  ACTION_CREATE_DIR     = 22;
 
427
  ACTION_EXAMINE_OBJECT = 23;
 
428
  ACTION_EXAMINE_NEXT   = 24;
 
429
  ACTION_DISK_INFO      = 25;
 
430
  ACTION_INFO           = 26;
 
431
  ACTION_FLUSH          = 27;
 
432
  ACTION_SET_COMMENT    = 28;
 
433
  ACTION_PARENT         = 29;
 
434
  ACTION_TIMER          = 30;
 
435
  ACTION_INHIBIT        = 31;
 
436
  ACTION_DISK_TYPE      = 32;
 
437
  ACTION_DISK_CHANGE    = 33;
 
438
  ACTION_SET_DATE       = 34;
 
439
 
 
440
  ACTION_SAME_LOCK      = 40;
 
441
 
 
442
  ACTION_SCREEN_MODE    = 994;
 
443
 
 
444
  ACTION_CHANGE_SIGNAL  = 995;
 
445
 
 
446
  ACTION_READ_RETURN     = 1001;
 
447
  ACTION_WRITE_RETURN    = 1002;
 
448
  ACTION_SEEK            = 1008;
 
449
  ACTION_FINDUPDATE      = 1004;
 
450
  ACTION_FINDINPUT       = 1005;
 
451
  ACTION_FINDOUTPUT      = 1006;
 
452
  ACTION_END             = 1007;
 
453
 
 
454
  ACTION_FORMAT          = 1020;
 
455
  ACTION_MAKE_LINK       = 1021;
 
456
 
 
457
  ACTION_SET_FILE_SIZE   = 1022;
 
458
  ACTION_WRITE_PROTECT   = 1023;
 
459
 
 
460
  ACTION_READ_LINK       = 1024;
 
461
  ACTION_FH_FROM_LOCK    = 1026;
 
462
  ACTION_IS_FILESYSTEM   = 1027;
 
463
  ACTION_CHANGE_MODE     = 1028;
 
464
 
 
465
  ACTION_COPY_DIR_FH     = 1030;
 
466
  ACTION_PARENT_FH       = 1031;
 
467
  ACTION_EXAMINE_ALL     = 1033;
 
468
  ACTION_EXAMINE_FH      = 1034;
 
469
 
 
470
  ACTION_EXAMINE_ALL_END = 1035;
 
471
  ACTION_SET_OWNER       = 1036;
 
472
 
 
473
  ACTION_LOCK_RECORD     = 2008;
 
474
  ACTION_FREE_RECORD     = 2009;
 
475
 
 
476
  ACTION_ADD_NOTIFY      = 4097;
 
477
  ACTION_REMOVE_NOTIFY   = 4098;
 
478
 
 
479
  ACTION_SERIALIZE_DISK  = 4200;
 
480
 
 
481
  ACTION_GET_DISK_FSSM   = 4201;
 
482
  ACTION_FREE_DISK_FSSM  = 4202;
 
483
 
 
484
 
 
485
type
 
486
  PErrorString = ^TErrorString;
 
487
  TErrorString = packed record
 
488
    estr_Nums: Pointer; { ^LongInt }
 
489
    estr_Byte: Pointer; { ^Byte    }
 
490
  end;
 
491
 
 
492
type
 
493
  PRootNode = ^TRootNode;
 
494
  TRootNode = packed record
 
495
    rn_TaskArray         : DWord;      { BPTR }
 
496
    rn_ConsoleSegment    : DWord;      { BPTR }
 
497
    rn_Time              : TDateStamp;
 
498
    rn_RestartSeg        : LongInt;
 
499
    rn_Info              : DWord;      { BPTR }
 
500
    rn_FileHandlerSegment: DWord;      { BPTR }
 
501
    rn_CliList           : TMinList;
 
502
    rn_BootProc          : PMsgPort;
 
503
    rn_ShellSegment      : DWord;      { BPTR }
 
504
    rn_Flags             : LongInt;
 
505
  end;
 
506
 
 
507
type
 
508
  PDOSLibrary = ^TDOSLibrary;
 
509
  TDOSLibrary = packed record
 
510
    dl_Lib          : TLibrary;
 
511
    dl_Root         : PRootNode;
 
512
    dl_GU           : Pointer;
 
513
    dl_A2           : LongInt;
 
514
    dl_A5           : LongInt;
 
515
    dl_A6           : LongInt;
 
516
    dl_Errors       : PErrorString;
 
517
    dl_TimeReq      : PTimeRequest;
 
518
    dl_UtilityBase  : PLibrary;
 
519
    dl_IntuitionBase: PLibrary;
 
520
  end;
 
521
 
 
522
 
 
523
const
 
524
  RNB_WILDSTAR = 24;
 
525
  RNF_WILDSTAR = (1 Shl RNB_WILDSTAR);
 
526
 
 
527
  RNB_PRIVATE1 = 1;
 
528
  RNF_PRIVATE1 = (1 Shl RNB_PRIVATE1);
 
529
 
 
530
 
 
531
type
 
532
  PCliProcList = ^TCliProcList;
 
533
  TCliProcList = packed record
 
534
    cpl_Node : TMinNode;
 
535
    cpl_First: LongInt;
 
536
    cpl_Array: Array[0..0] Of PMsgPort;
 
537
  end;
 
538
 
 
539
type
 
540
  PDOSInfo = ^TDOSInfo;
 
541
  TDOSInfo = packed record
 
542
    case Byte of
 
543
    0 : ( di_ResList: DWord; { BPTR }
 
544
        );
 
545
    1 : ( di_McName    : DWord; { BPTR }
 
546
          di_DevInfo   : DWord; { BPTR }
 
547
          di_Devices   : DWord; { BPTR }
 
548
          di_Handlers  : DWord; { BPTR }
 
549
          di_NetHand   : Pointer;
 
550
          di_DevLock   : TSignalSemaphore;
 
551
          di_EntryLock : TSignalSemaphore;
 
552
          di_DeleteLock: TSignalSemaphore;
 
553
        );
 
554
  end;
 
555
 
 
556
type
 
557
  PSegment = ^TSegment;
 
558
  TSegment = packed record
 
559
    seg_Next : DWord;   { BPTR }
 
560
    seg_UC   : LongInt;
 
561
    seg_Seg  : DWord;   { BPTR }
 
562
    seg_Name : Array[0..3] Of Byte;
 
563
    { * seg_Name continues * }
 
564
  end;
 
565
 
 
566
 
 
567
const
 
568
  CMD_SYSTEM    = -1;
 
569
  CMD_INTERNAL  = -2;
 
570
  CMD_NOTLOADED = -998;
 
571
  CMD_DISABLED  = -999;
 
572
 
 
573
 
 
574
type
 
575
  PCommandLineInterface = ^TCommandLineInterface;
 
576
  TCommandLineInterface = packed record
 
577
    cli_Result2       : LongInt;
 
578
    cli_SetName       : DWord;   { BSTR }
 
579
    cli_CommandDir    : DWord;   { BPTR }
 
580
    cli_ReturnCode    : LongInt;
 
581
    cli_CommandName   : DWord;   { BSTR }
 
582
    cli_FailLevel     : LongInt;
 
583
    cli_Prompt        : DWord;   { BSTR }
 
584
    cli_StandardInput : DWord;   { BPTR }
 
585
    cli_CurrentInput  : DWord;   { BPTR }
 
586
    cli_CommandFile   : DWord;   { BSTR }
 
587
    cli_Interactive   : LongInt;
 
588
    cli_Background    : LongInt;
 
589
    cli_CurrentOutput : DWord;   { BPTR }
 
590
    cli_DefaultStack  : LongInt;
 
591
    cli_StandardOutput: DWord;   { BPTR }
 
592
    cli_Module        : DWord;   { BPTR }
 
593
  end;
 
594
 
 
595
type
 
596
  PDeviceList = ^TDeviceList;
 
597
  TDeviceList = packed record
 
598
    dl_Next      : DWord;      { BPTR }
 
599
    dl_Type      : LongInt;
 
600
    dl_Task      : PMsgPort;
 
601
    dl_Lock      : DWord;      { BPTR }
 
602
    dl_VolumeDate: TDateStamp;
 
603
    dl_LockList  : DWord;      { BPTR }
 
604
    dl_DiskType  : LongInt;
 
605
    dl_unused    : LongInt;
 
606
    dl_Name      : DWord;      { BSTR }
 
607
  end;
 
608
 
 
609
type
 
610
  PDevInfo = ^TDevInfo;
 
611
  TDevInfo = packed record
 
612
    dvi_Next     : DWord; { BPTR }
 
613
    dvi_Type     : LongInt;
 
614
    dvi_Task     : Pointer;
 
615
    dvi_Lock     : DWord; { BPTR }
 
616
    dvi_Handler  : DWord; { BSTR }
 
617
    dvi_StackSize: LongInt;
 
618
    dvi_Priority : LongInt;
 
619
    dvi_Startup  : LongInt;
 
620
    dvi_SegList  : DWord; { BPTR }
 
621
    dvi_GlobVec  : DWord; { BPTR }
 
622
    dvi_Name     : DWord; { BSTR }
 
623
  end;
 
624
 
 
625
type
 
626
  PAssignList = ^TAssignList;
 
627
  TAssignList = packed record
 
628
    al_Next: PAssignList;
 
629
    al_Lock: DWord;       { BPTR }
 
630
  end;
 
631
 
 
632
type
 
633
  PDOSList = ^TDOSList;
 
634
  TDOSList = packed record
 
635
    dol_Next: DWord;    { BPTR }
 
636
    dol_Type: LongInt;
 
637
    dol_Task: PMsgPort;
 
638
    dol_Lock: DWord;    { BPTR }
 
639
    case Byte of
 
640
    0: ( dol_handler : record
 
641
           dol_Handler  : DWord;    { BSTR }
 
642
           dol_StackSize: LongInt;
 
643
           dol_Priority : LongInt;
 
644
           dol_Startup  : DWord;
 
645
           dol_SegList  : DWord;    { BPTR }
 
646
           dol_GlobVec  : DWord;    { BPTR }
 
647
         end;
 
648
       );
 
649
    1: ( dol_volume : record
 
650
           dol_VolumeDate: TDateStamp;
 
651
           dol_LockList  : DWord;   { BPTR }
 
652
           dol_DiskType  : LongInt;
 
653
         end;
 
654
       );
 
655
    2: ( dol_assign : record
 
656
           dol_AssignName: PChar;
 
657
           dol_List      : PAssignList;
 
658
         end;
 
659
       );
 
660
    3: ( dol_Misc: array[0..23] of Byte;
 
661
         dol_Name: DWord;    { BPTR }
 
662
       );
 
663
  end;
 
664
 
 
665
 
 
666
const
 
667
  DLT_DEVICE     = 0;
 
668
  DLT_DIRECTORY  = 1;
 
669
  DLT_VOLUME     = 2;
 
670
  DLT_LATE       = 3;
 
671
  DLT_NONBINDING = 4;
 
672
  DLT_PRIVATE    = -1;
 
673
 
 
674
 
 
675
type
 
676
  PDevProc = ^TDevProc;
 
677
  TDevProc = packed record
 
678
    dvp_Port   : PMsgPort;
 
679
    dvp_Lock   : DWord;    { BPTR }
 
680
    dvp_Flags  : DWord;
 
681
    dvp_DevNode: PDOSList;
 
682
  end;
 
683
 
 
684
 
 
685
const
 
686
  DVPB_UNLOCK = 0;
 
687
  DVPF_UNLOCK = (1 Shl DVPB_UNLOCK);
 
688
 
 
689
  DVPB_ASSIGN = 1;
 
690
  DVPF_ASSIGN = (1 Shl DVPB_ASSIGN);
 
691
 
 
692
const
 
693
  LDB_READ    = 0;
 
694
  LDF_READ    = (1 Shl LDB_READ);
 
695
 
 
696
  LDB_WRITE   = 1;
 
697
  LDF_WRITE   = (1 Shl LDB_WRITE);
 
698
 
 
699
  LDB_DEVICES = 2;
 
700
  LDF_DEVICES = (1 Shl LDB_DEVICES);
 
701
 
 
702
  LDB_VOLUMES = 3;
 
703
  LDF_VOLUMES = (1 Shl LDB_VOLUMES);
 
704
 
 
705
  LDB_ASSIGNS = 4;
 
706
  LDF_ASSIGNS = (1 Shl LDB_ASSIGNS);
 
707
 
 
708
  LDB_ENTRY   = 5;
 
709
  LDF_ENTRY   = (1 Shl LDB_ENTRY);
 
710
 
 
711
  LDB_DELETE  = 6;
 
712
  LDF_DELETE  = (1 Shl LDB_DELETE);
 
713
 
 
714
  LDF_ALL     = (LDF_DEVICES Or LDF_VOLUMES Or LDF_ASSIGNS);
 
715
 
 
716
 
 
717
type
 
718
  PFileLock = ^TFileLock;
 
719
  TFileLock = packed record
 
720
    fl_Link  : DWord;   { BPTR }
 
721
    fl_Key   : LongInt;
 
722
    fl_Access: LongInt;
 
723
    fl_Task  : PMsgPort;
 
724
    fl_Volume: DWord;   { BPTR }
 
725
  end;
 
726
 
 
727
 
 
728
const
 
729
  REPORT_STREAM = 0;
 
730
  REPORT_TASK   = 1;
 
731
  REPORT_LOCK   = 2;
 
732
  REPORT_VOLUME = 3;
 
733
  REPORT_INSERT = 4;
 
734
 
 
735
const
 
736
  ABORT_DISK_ERROR = 296;
 
737
  ABORT_BUSY       = 288;
 
738
 
 
739
const
 
740
  RUN_EXECUTE       = -1;
 
741
  RUN_SYSTEM        = -2;
 
742
  RUN_SYSTEM_ASYNCH = -3;
 
743
 
 
744
const
 
745
  ST_ROOT      = 1;
 
746
  ST_USERDIR   = 2;
 
747
  ST_SOFTLINK  = 3;
 
748
  ST_LINKDIR   = 4;
 
749
  ST_FILE      = -3;
 
750
  ST_LINKFILE  = -4;
 
751
  ST_PIPEFILE  = -5;
 
752
 
 
753
 
 
754
 
 
755
{ * dos asl definitions
 
756
  *********************************************************************
 
757
  * }
 
758
 
 
759
 
 
760
type
 
761
  PAChain = ^TAChain;
 
762
  TAChain = packed record
 
763
    an_Child : PAChain;
 
764
    an_Parent: PAChain;
 
765
    an_Lock  : DWord;   { BPTR }
 
766
    an_Info  : TFileInfoBlock;
 
767
    an_Flags : ShortInt;
 
768
    an_String: Array[0..0] Of Char;
 
769
    { * an_String continues * }
 
770
  end;
 
771
 
 
772
type
 
773
  PAnchorPath = ^TAnchorPath;
 
774
  TAnchorPath = packed record
 
775
    case Byte of
 
776
    0 : ( ap_First: PAChain;
 
777
          ap_Last : PAChain;
 
778
        );
 
779
    1 : ( ap_Base      : PAChain;
 
780
          ap_Current   : PAChain;
 
781
          ap_BreakBits : LongInt;
 
782
          ap_FoundBreak: LongInt;
 
783
          ap_Flags     : ShortInt;
 
784
          ap_Reserved  : ShortInt;
 
785
          ap_Strlen    : SmallInt;
 
786
          ap_Info      : TFileInfoBlock;
 
787
          ap_Buf       : Array[0..0] of Char;
 
788
          { * an_Buf continues * }
 
789
        );
 
790
  end;
 
791
 
 
792
 
 
793
const
 
794
  APB_DOWILD       = 0;
 
795
  APF_DOWILD       = (1 Shl APB_DOWILD);
 
796
 
 
797
  APB_ITSWILD      = 1;
 
798
  APF_ITSWILD      = (1 Shl APB_ITSWILD);
 
799
 
 
800
  APB_DODIR        = 2;
 
801
  APF_DODIR        = (1 Shl APB_DODIR);
 
802
 
 
803
  APB_DIDDIR       = 3;
 
804
  APF_DIDDIR       = (1 Shl APB_DIDDIR);
 
805
 
 
806
  APB_NOMEMERR     = 4;
 
807
  APF_NOMEMERR     = (1 Shl APB_NOMEMERR);
 
808
 
 
809
  APB_DODOT        = 5;
 
810
  APF_DODOT        = (1 Shl APB_DODOT);
 
811
 
 
812
  APB_DirChanged   = 6;
 
813
  APF_DirChanged   = (1 Shl APB_DirChanged);
 
814
 
 
815
  APB_FollowHLinks = 7;
 
816
  APF_FollowHLinks = (1 Shl APB_FollowHLinks);
 
817
 
 
818
const
 
819
  APSB_EXTENDED        = 15;
 
820
  APSF_EXTENDED        = (1 Shl APSB_EXTENDED);
 
821
 
 
822
  APEB_DoMultiAssigns  = 0;
 
823
  APEF_DoMultiAssigns  = (1 Shl APEB_DoMultiAssigns);
 
824
 
 
825
  APEB_FutureExtension = 7;
 
826
  APEF_FutureExtension = (1 Shl APEB_FutureExtension);
 
827
 
 
828
const
 
829
  DDB_PatternBit  = 0;
 
830
  DDF_PatternBit  = (1 Shl DDB_PatternBit);
 
831
 
 
832
  DDB_ExaminedBit = 1;
 
833
  DDF_ExaminedBit = (1 Shl DDB_ExaminedBit);
 
834
 
 
835
  DDB_Completed   = 2;
 
836
  DDF_Completed   = (1 Shl DDB_Completed);
 
837
 
 
838
  DDB_AllBit      = 3;
 
839
  DDF_AllBit      = (1 Shl DDB_AllBit);
 
840
 
 
841
  DDB_Single      = 4;
 
842
  DDF_Single      = (1 Shl DDB_Single);
 
843
 
 
844
const
 
845
  P_ANY      = $80;
 
846
  P_SINGLE   = $81;
 
847
  P_ORSTART  = $82;
 
848
  P_ORNEXT   = $83;
 
849
  P_OREND    = $84;
 
850
  P_NOT      = $85;
 
851
  P_NOTEND   = $86;
 
852
  P_NOTCLASS = $87;
 
853
  P_CLASS    = $88;
 
854
  P_REPBEG   = $89;
 
855
  P_REPEND   = $8A;
 
856
  P_STOP     = $8B;
 
857
 
 
858
const
 
859
  COMPLEX_BIT = 1;
 
860
  EXAMINE_BIT = 2;
 
861
 
 
862
const
 
863
  ERROR_BUFFER_OVERFLOW = 303;
 
864
  ERROR_BREAK           = 304;
 
865
  ERROR_NOT_EXECUTABLE  = 305;
 
866
 
 
867
 
 
868
 
 
869
{ * dos hunk definitions
 
870
  *********************************************************************
 
871
  * }
 
872
 
 
873
 
 
874
const
 
875
  HUNK_UNIT         = 999;
 
876
  HUNK_NAME         = 1000;
 
877
  HUNK_CODE         = 1001;
 
878
  HUNK_DATA         = 1002;
 
879
  HUNK_BSS          = 1003;
 
880
 
 
881
  HUNK_RELOC32      = 1004;
 
882
  HUNK_ABSRELOC32   = HUNK_RELOC32;
 
883
 
 
884
  HUNK_RELOC16      = 1005;
 
885
  HUNK_RELRELOC16   = HUNK_RELOC16;
 
886
 
 
887
  HUNK_RELOC8       = 1006;
 
888
  HUNK_RELRELOC8    = HUNK_RELOC8;
 
889
 
 
890
  HUNK_EXT          = 1007;
 
891
  HUNK_SYMBOL       = 1008;
 
892
  HUNK_DEBUG        = 1009;
 
893
  HUNK_END          = 1010;
 
894
  HUNK_HEADER       = 1011;
 
895
 
 
896
  HUNK_OVERLAY      = 1013;
 
897
  HUNK_BREAK        = 1014;
 
898
 
 
899
  HUNK_DREL32       = 1015;
 
900
  HUNK_DREL16       = 1016;
 
901
  HUNK_DREL8        = 1017;
 
902
 
 
903
  HUNK_LIB          = 1018;
 
904
  HUNK_INDEX        = 1019;
 
905
 
 
906
  HUNK_RELOC32SHORT = 1020;
 
907
 
 
908
  HUNK_RELRELOC32   = 1021;
 
909
  HUNK_ABSRELOC16   = 1022;
 
910
 
 
911
const
 
912
  HUNKB_ADVISORY = 29;
 
913
  HUNKB_CHIP     = 30;
 
914
  HUNKB_FAST     = 31;
 
915
 
 
916
  HUNKF_ADVISORY = (1 Shl HUNKB_ADVISORY);
 
917
  HUNKF_CHIP     = (1 Shl HUNKB_CHIP);
 
918
  HUNKF_FAST     = (1 Shl HUNKB_FAST);
 
919
 
 
920
const
 
921
  EXT_SYMB      = 0;
 
922
  EXT_DEF       = 1;
 
923
  EXT_ABS       = 2;
 
924
  EXT_RES       = 3;
 
925
 
 
926
  EXT_REF32     = 129;
 
927
  EXT_ABSREF32  = EXT_REF32;
 
928
 
 
929
  EXT_COMMON    = 130;
 
930
  EXT_ABSCOMMON = EXT_COMMON;
 
931
 
 
932
  EXT_REF16     = 131;
 
933
  EXT_RELREF16  = EXT_REF16;
 
934
 
 
935
  EXT_REF8      = 132;
 
936
  EXT_RELREF8   = EXT_REF8;
 
937
 
 
938
  EXT_DEXT32    = 133;
 
939
  EXT_DEXT16    = 134;
 
940
  EXT_DEXT8     = 135;
 
941
 
 
942
  EXT_RELREF32  = 136;
 
943
  EXT_RELCOMMON = 137;
 
944
 
 
945
  EXT_ABSREF16  = 138;
 
946
 
 
947
  EXT_ABSREF8   = 139;
 
948
 
 
949
 
 
950
 
 
951
{ * dos ExAll definitions
 
952
  *********************************************************************
 
953
  * }
 
954
 
 
955
 
 
956
const
 
957
  ED_NAME       = 1;
 
958
  ED_TYPE       = 2;
 
959
  ED_SIZE       = 3;
 
960
  ED_PROTECTION = 4;
 
961
  ED_DATE       = 5;
 
962
  ED_COMMENT    = 6;
 
963
  ED_OWNER      = 7;
 
964
 
 
965
 
 
966
type
 
967
  PExAllData = ^TExAllData;
 
968
  TExAllData = packed record
 
969
    ed_Next    : PExAllData;
 
970
    ed_Name    : PChar;
 
971
    ed_Type    : LongInt;
 
972
    ed_Size    : Cardinal;
 
973
    ed_Prot    : Cardinal;
 
974
    ed_Days    : Cardinal;
 
975
    ed_Mins    : Cardinal;
 
976
    ed_Ticks   : Cardinal;
 
977
    ed_Comment : PChar;
 
978
    ed_OwnerUID: Word;
 
979
    ed_OwnerGID: Word;
 
980
  end;
 
981
 
 
982
type
 
983
  PExAllControl = ^TExAllControl;
 
984
  TexAllControl = packed record
 
985
    eac_Entries    : Cardinal;
 
986
    eac_LastKey    : Cardinal;
 
987
    eac_MatchString: PChar;
 
988
    eac_MatchFunc  : PHook;
 
989
 
 
990
  end;
 
991
 
 
992
 
 
993
 
 
994
{ * dos record definitions
 
995
  *********************************************************************
 
996
  * }
 
997
 
 
998
 
 
999
const
 
1000
  REC_EXCLUSIVE       = 0;
 
1001
  REC_EXCLUSIVE_IMMED = 1;
 
1002
  REC_SHARED          = 2;
 
1003
  REC_SHARED_IMMED    = 3;
 
1004
 
 
1005
 
 
1006
type
 
1007
  PRecordLock = ^TRecordLock;
 
1008
  TRecordLock = packed record
 
1009
    rec_FH    : LongInt;
 
1010
    rec_Offset: Cardinal;
 
1011
    rec_Length: Cardinal;
 
1012
    rec_Mode  : Cardinal;
 
1013
  end;
 
1014
 
 
1015
 
 
1016
 
 
1017
{ * dos tag definitions (V50)
 
1018
  *********************************************************************
 
1019
  * }
 
1020
 
 
1021
 
 
1022
const
 
1023
  SYS_Dummy       = (TAG_USER + 32);
 
1024
  SYS_Input       = (SYS_Dummy + 1);
 
1025
  SYS_Output      = (SYS_Dummy + 2);
 
1026
  SYS_Asynch      = (SYS_Dummy + 3);
 
1027
  SYS_UserShell   = (SYS_Dummy + 4);
 
1028
  SYS_CustomShell = (SYS_Dummy + 5);
 
1029
 
 
1030
  { *** V50 *** }
 
1031
  SYS_FilterTags  = (SYS_Dummy + 6);   { * filters the tags passed down to CreateNewProc(), default: TRUE * }
 
1032
 
 
1033
const
 
1034
  NP_Dummy         = (TAG_USER + 1000);
 
1035
  NP_Seglist       = (NP_Dummy + 1);
 
1036
  NP_FreeSeglist   = (NP_Dummy + 2);
 
1037
  NP_Entry         = (NP_Dummy + 3);
 
1038
  NP_Input         = (NP_Dummy + 4);
 
1039
  NP_Output        = (NP_Dummy + 5);
 
1040
  NP_CloseInput    = (NP_Dummy + 6);
 
1041
  NP_CloseOutput   = (NP_Dummy + 7);
 
1042
  NP_Error         = (NP_Dummy + 8);
 
1043
  NP_CloseError    = (NP_Dummy + 9);
 
1044
  NP_CurrentDir    = (NP_Dummy + 10);
 
1045
  NP_StackSize     = (NP_Dummy + 11);
 
1046
  NP_Name          = (NP_Dummy + 12);
 
1047
  NP_Priority      = (NP_Dummy + 13);
 
1048
  NP_ConsoleTask   = (NP_Dummy + 14);
 
1049
  NP_WindowPtr     = (NP_Dummy + 15);
 
1050
  NP_HomeDir       = (NP_Dummy + 16);
 
1051
  NP_CopyVars      = (NP_Dummy + 17);
 
1052
  NP_Cli           = (NP_Dummy + 18);
 
1053
  NP_Path          = (NP_Dummy + 19);
 
1054
  NP_CommandName   = (NP_Dummy + 20);
 
1055
  NP_Arguments     = (NP_Dummy + 21);
 
1056
 
 
1057
  NP_NotifyOnDeath = (NP_Dummy + 22);
 
1058
  NP_Synchronous   = (NP_Dummy + 23);
 
1059
  NP_ExitCode      = (NP_Dummy + 24);
 
1060
  NP_ExitData      = (NP_Dummy + 25);
 
1061
 
 
1062
  { *** V50 *** }
 
1063
  NP_SeglistArray  = (NP_Dummy + 26);
 
1064
  NP_UserData      = (NP_Dummy + 27);
 
1065
  NP_StartupMsg    = (NP_Dummy + 28);  { * PMessage, ReplyMsg'd at exit * }
 
1066
  NP_TaskMsgPort   = (NP_Dummy + 29);  { * ^PMsgPort, create MsgPort, automagic delete * }
 
1067
 
 
1068
  NP_CodeType      = (NP_Dummy + 100);
 
1069
  NP_PPC_Arg1      = (NP_Dummy + 101);
 
1070
  NP_PPC_Arg2      = (NP_Dummy + 102);
 
1071
  NP_PPC_Arg3      = (NP_Dummy + 103);
 
1072
  NP_PPC_Arg4      = (NP_Dummy + 104);
 
1073
  NP_PPC_Arg5      = (NP_Dummy + 105);
 
1074
  NP_PPC_Arg6      = (NP_Dummy + 106);
 
1075
  NP_PPC_Arg7      = (NP_Dummy + 107);
 
1076
  NP_PPC_Arg8      = (NP_Dummy + 108);
 
1077
  NP_PPCStackSize  = (NP_Dummy + 109);
 
1078
 
 
1079
const
 
1080
  ADO_Dummy       = (TAG_USER + 2000);
 
1081
  ADO_FH_Mode     = (ADO_Dummy + 1);
 
1082
 
 
1083
  ADO_DirLen      = (ADO_Dummy + 2);
 
1084
  ADO_CommNameLen = (ADO_Dummy + 3);
 
1085
  ADO_CommFileLen = (ADO_Dummy + 4);
 
1086
  ADO_PromptLen   = (ADO_Dummy + 5);
 
1087
 
 
1088
  { *** V50 *** }
 
1089
  ADDS_Dummy      = (TAG_USER + 3000);
 
1090
  ADDS_Name       = (ADDS_Dummy + 1);  { * Segment name * }
 
1091
  ADDS_Seglist    = (ADDS_Dummy + 2);  { * Seglist for this segment * }
 
1092
  ADDS_Filename   = (ADDS_Dummy + 3);  { * Name of the file to load when needed. Ignored if Seglist is given. * }
 
1093
  ADDS_Type       = (ADDS_Dummy + 4);  { * Segment type * }
 
1094
 
 
1095
const
 
1096
  FNDS_Dummy      = (TAG_USER + 3100);
 
1097
  FNDS_Name       = (FNDS_Dummy + 1);  { * Segment name * }
 
1098
  FNDS_From       = (FNDS_Dummy + 2);  { * Segment to start from * }
 
1099
  FNDS_System     = (FNDS_Dummy + 3);  { * Look for a system segment ? * }
 
1100
  FNDS_Load       = (FNDS_Dummy + 4);  { * Load the seglist if needed ? (Default: TRUE) * }
 
1101
 
 
1102
 
 
1103
 
 
1104
{ * dos stdio definitions
 
1105
  *********************************************************************
 
1106
  * }
 
1107
 
 
1108
 
 
1109
const
 
1110
 BUF_LINE = 0;
 
1111
 BUF_FULL = 1;
 
1112
 BUF_NONE = 2;
 
1113
 
 
1114
const
 
1115
 ENDSTREAMCH = -1;
 
1116
 
 
1117
 
 
1118
 
 
1119
{ * dos env-var definitions
 
1120
  *********************************************************************
 
1121
  * }
 
1122
 
 
1123
 
 
1124
type
 
1125
  PLocalVar = ^TLocalVar;
 
1126
  TLocalVar = packed record
 
1127
    lv_Node : TNode;
 
1128
    lv_Flags: Word;
 
1129
    lv_Value: PChar;
 
1130
    lv_Len  : Cardinal;
 
1131
  end;
 
1132
 
 
1133
 
 
1134
const
 
1135
  LV_VAR   = 0;
 
1136
  LV_ALIAS = 1;
 
1137
 
 
1138
const
 
1139
  LVB_IGNORE         = 7;
 
1140
  LVF_IGNORE         = (1 Shl LVB_IGNORE);
 
1141
 
 
1142
  GVB_GLOBAL_ONLY    = 8;
 
1143
  GVF_GLOBAL_ONLY    = (1 Shl GVB_GLOBAL_ONLY);
 
1144
 
 
1145
  GVB_LOCAL_ONLY     = 9;
 
1146
  GVF_LOCAL_ONLY     = (1 Shl GVB_LOCAL_ONLY);
 
1147
 
 
1148
  GVB_BINARY_VAR     = 10;
 
1149
  GVF_BINARY_VAR     = (1 Shl GVB_BINARY_VAR);
 
1150
 
 
1151
  GVB_DONT_NULL_TERM = 11;
 
1152
  GVF_DONT_NULL_TERM = (1 Shl GVB_DONT_NULL_TERM);
 
1153
 
 
1154
  GVB_SAVE_VAR       = 12;
 
1155
  GVF_SAVE_VAR       = (1 Shl GVB_SAVE_VAR);
 
1156
 
 
1157
 
 
1158
 
 
1159
{ * dos ReadArgs definitions
 
1160
  *********************************************************************
 
1161
  * }
 
1162
 
 
1163
 
 
1164
type
 
1165
  PCSource = ^TCSource;
 
1166
  TCSource = packed record
 
1167
    CS_Buffer: PChar;
 
1168
    CS_Length: LongInt;
 
1169
    CS_CurChr: LongInt;
 
1170
  end;
 
1171
 
 
1172
type
 
1173
  PRDArgs = ^TRDArgs;
 
1174
  TRDArgs = packed record
 
1175
    RDA_Source : TCSource;
 
1176
    RDA_DAList : LongInt;
 
1177
    RDA_Buffer : PChar;
 
1178
    RDA_BufSiz : LongInt;
 
1179
    RDA_ExtHelp: PChar;
 
1180
    RDA_Flags  : LongInt;
 
1181
  end;
 
1182
 
 
1183
 
 
1184
const
 
1185
  RDAB_STDIN    = 0;
 
1186
  RDAF_STDIN    = (1 Shl RDAB_STDIN);
 
1187
 
 
1188
  RDAB_NOALLOC  = 1;
 
1189
  RDAF_NOALLOC  = (1 Shl RDAB_NOALLOC);
 
1190
 
 
1191
  RDAB_NOPROMPT = 2;
 
1192
  RDAF_NOPROMPT = (1 Shl RDAB_NOPROMPT);
 
1193
 
 
1194
const
 
1195
  MAX_TEMPLATE_ITEMS = 100;
 
1196
  MAX_MULTIARGS      = 128;
 
1197
 
 
1198
 
 
1199
 
 
1200
{ * dos filehandler definitions
 
1201
  *********************************************************************
 
1202
  * }
 
1203
 
 
1204
 
 
1205
type
 
1206
  PDosEnvec = ^TDosEnvec;
 
1207
  TDosEnvec = packed record
 
1208
    de_TableSize     : Cardinal;
 
1209
    de_SizeBlock     : Cardinal;
 
1210
    de_SecOrg        : Cardinal;
 
1211
    de_Surfaces      : Cardinal;
 
1212
    de_SectorPerBlock: Cardinal;
 
1213
    de_BlocksPerTrack: Cardinal;
 
1214
    de_Reserved      : Cardinal;
 
1215
    de_PreAlloc      : Cardinal;
 
1216
    de_Interleave    : Cardinal;
 
1217
    de_LowCyl        : Cardinal;
 
1218
    de_HighCyl       : Cardinal;
 
1219
    de_NumBuffers    : Cardinal;
 
1220
    de_BufMemType    : Cardinal;
 
1221
    de_MaxTransfer   : Cardinal;
 
1222
    de_Mask          : Cardinal;
 
1223
    de_BootPri       : LongInt;
 
1224
    de_DosType       : Cardinal;
 
1225
    de_Baud          : Cardinal;
 
1226
    de_Control       : Cardinal;
 
1227
    de_BootBlocks    : Cardinal;
 
1228
  end;
 
1229
 
 
1230
 
 
1231
const
 
1232
  DE_TABLESIZE    = 0;
 
1233
  DE_SIZEBLOCK    = 1;
 
1234
  DE_SECORG       = 2;
 
1235
  DE_NUMHEADS     = 3;
 
1236
  DE_SECSPERBLK   = 4;
 
1237
  DE_BLKSPERTRACK = 5;
 
1238
  DE_RESERVEDBLKS = 6;
 
1239
  DE_PREFAC       = 7;
 
1240
  DE_INTERLEAVE   = 8;
 
1241
  DE_LOWCYL       = 9;
 
1242
  DE_UPPERCYL     = 10;
 
1243
  DE_NUMBUFFERS   = 11;
 
1244
  DE_MEMBUFTYPE   = 12;
 
1245
  DE_BUFMEMTYPE   = 12;
 
1246
  DE_MAXTRANSFER  = 13;
 
1247
  DE_MASK         = 14;
 
1248
  DE_BOOTPRI      = 15;
 
1249
  DE_DOSTYPE      = 16;
 
1250
  DE_BAUD         = 17;
 
1251
  DE_CONTROL      = 18;
 
1252
  DE_BOOTBLOCKS   = 19;
 
1253
 
 
1254
 
 
1255
type
 
1256
  PFileSysStartupMsg = ^TFileSysStartupMsg;
 
1257
  TFileSysStartupMsg = packed record
 
1258
    fssm_Unit   : Cardinal;
 
1259
    fssm_Device : LongInt;
 
1260
    fssm_Environ: LongInt;
 
1261
    fssm_Flags  : Cardinal;
 
1262
  end;
 
1263
 
 
1264
type
 
1265
  PDeviceNode = ^TDeviceNode;
 
1266
  TDeviceNode = packed record
 
1267
    dn_Next     : LongInt;
 
1268
    dn_Type     : Cardinal;
 
1269
    dn_Task     : PMsgPort;
 
1270
    dn_Lock     : LongInt;
 
1271
    dn_Handler  : LongInt;
 
1272
    dn_StackSize: Cardinal;
 
1273
    dn_Priority : LongInt;
 
1274
    dn_Startup  : LongInt;
 
1275
    dn_SegList  : LongInt;
 
1276
    dn_GlobalVec: LongInt;
 
1277
    dn_Name     : LongInt;
 
1278
  end;
 
1279
 
 
1280
 
 
1281
 
 
1282
{ * dos notification definitions
 
1283
  *********************************************************************
 
1284
  * }
 
1285
 
 
1286
 
 
1287
const
 
1288
  NOTIFY_CLASS = $40000000;
 
1289
  NOTIFY_CODE  = $1234;
 
1290
 
 
1291
 
 
1292
type
 
1293
  PNotifyRequest = ^TNotifyRequest;
 
1294
  TNotifyRequest = packed record
 
1295
    nr_Name    : PChar;
 
1296
    nr_FullName: PChar;
 
1297
    nr_UserData: Cardinal;
 
1298
    nr_Flags   : Cardinal;
 
1299
    nr_stuff : record
 
1300
      case Byte of
 
1301
      0 : ( nr_Msg : record
 
1302
              nr_Port: PMsgPort;
 
1303
            end );
 
1304
      1 : ( nr_Signal : record
 
1305
              nr_Task     : PTask;
 
1306
              nr_SignalNum: Byte;
 
1307
              nr_pad      : Array[0..2] Of Byte;
 
1308
            end );
 
1309
    end;
 
1310
    nr_Reserved: Array[0..3] Of Cardinal;
 
1311
    nr_MsgCount: Cardinal;
 
1312
    nr_Handler : PMsgPort;
 
1313
  end;
 
1314
 
 
1315
type
 
1316
  PNotifyMessage = ^TNotifyMessage;
 
1317
  TNotifyMessage = packed record
 
1318
    nm_ExecMessage: TMessage;
 
1319
    nm_Class      : Cardinal;
 
1320
    nm_Code       : Word;
 
1321
    nm_NReq       : PNotifyRequest;
 
1322
    nm_DoNotTouch : Cardinal;
 
1323
    nm_DoNotTouch2: Cardinal;
 
1324
  end;
 
1325
 
 
1326
 
 
1327
const
 
1328
  NRB_SEND_MESSAGE   = 0;
 
1329
  NRB_SEND_SIGNAL    = 1;
 
1330
  NRB_WAIT_REPLY     = 3;
 
1331
  NRB_NOTIFY_INITIAL = 4;
 
1332
 
 
1333
  NRB_MAGIC          = 31;
 
1334
 
 
1335
const
 
1336
  NRF_SEND_MESSAGE   = (1 Shl NRB_SEND_MESSAGE);
 
1337
  NRF_SEND_SIGNAL    = (1 Shl NRB_SEND_SIGNAL);
 
1338
  NRF_WAIT_REPLY     = (1 Shl NRB_WAIT_REPLY);
 
1339
  NRF_NOTIFY_INITIAL = (1 Shl NRB_NOTIFY_INITIAL);
 
1340
 
 
1341
  NRF_MAGIC          = (1 Shl NRB_MAGIC);
 
1342
 
 
1343
const
 
1344
  NR_HANDLER_FLAGS = $ffff0000;
 
1345
 
 
1346
 
 
1347
 
 
1348
{ * dos.library segtracker include
 
1349
  *********************************************************************
 
1350
  * }
 
1351
 
 
1352
 
 
1353
const
 
1354
  SEG_SEM = 'SegTracker';
 
1355
 
 
1356
 
 
1357
type
 
1358
  PSegSem = ^TSegSem;
 
1359
  TSegSem = packed record
 
1360
    seg_Semaphore: TSignalSemaphore;
 
1361
    seg_Find     : Procedure; { Name = seg_Find(REG(a0, ULONG Address), REG(a1, ULONG *SegNum), REG(a2, ULONG *Offset)) }
 
1362
    seg_List     : TMinList;
 
1363
  end;
 
1364
 
 
1365
type
 
1366
  PSegArray = ^TSegArray;
 
1367
  TSegArray = packed record
 
1368
    seg_Address: Cardinal;
 
1369
    seg_Size   : Cardinal;
 
1370
  end;
 
1371
 
 
1372
type
 
1373
  PSegNode = ^TSegNode;
 
1374
  TSegNode = packed record
 
1375
    seg_Node : TMinNode;
 
1376
    seg_Name : PChar;
 
1377
    seg_Array: Array[0..0] Of TSegArray;
 
1378
  end;
 
1379
 
 
1380
 
 
1381
 
 
1382
{
 
1383
  $Log: doslibd.inc,v $
 
1384
  Revision 1.5  2005/02/14 17:13:30  peter
 
1385
    * truncate log
 
1386
 
 
1387
  Revision 1.4  2005/01/12 07:59:05  karoly
 
1388
    * Integers changed to SmallInt to be compatible with all modes
 
1389
 
 
1390
  Revision 1.3  2005/01/10 04:58:52  karoly
 
1391
    * fixed alignment problem in TDosList
 
1392
 
 
1393
}