~ubuntu-branches/ubuntu/feisty/fpc/feisty

« back to all changes in this revision

Viewing changes to fpcdocs/dos.xml

  • Committer: Bazaar Package Importer
  • Author(s): Torsten Werner
  • Date: 2007-01-27 20:08:50 UTC
  • mfrom: (1.2.3 upstream)
  • Revision ID: james.westby@ubuntu.com-20070127200850-9mrptaqqjsx9nwa7
Tags: 2.0.4-5
* Fixed Build-Depends.
* Add myself to Uploaders in debian/control.
* Make sure that the sources are really patched before building them.
* Build unit 'libc' on powerpc too.

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
1
<?xml version="1.0" encoding="ISO8859-1"?>
 
2
<fpdoc-descriptions>
 
3
<!--  
 
4
 
 
5
   $Id: dos.xml,v 1.3 2005/03/16 07:54:10 michael Exp $ 
 
6
   This file is part of the FPC documentation. 
 
7
   Copyright (C) 1997, by Michael Van Canneyt 
 
8
 
 
9
   The FPC documentation is free text; you can redistribute it and/or 
 
10
   modify it under the terms of the GNU Library General Public License as 
 
11
   published by the Free Software Foundation; either version 2 of the 
 
12
   License, or (at your option) any later version. 
 
13
 
 
14
   The FPC Documentation 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.  See the GNU 
 
17
   Library General Public License for more details. 
 
18
 
 
19
   You should have received a copy of the GNU Library General Public 
 
20
   License along with the FPC documentation; see the file COPYING.LIB.  If not, 
 
21
   write to the Free Software Foundation, Inc., 59 Temple Place - Suite 330, 
 
22
   Boston, MA 02111-1307, USA. 
 
23
 -->
 
24
<package name="rtl">
 
25
<module name="DOS">
 
26
<short>DOS - Turbo Pascal MS-DOS interface</short>
 
27
<!-- \FPCexampledir{dosex} -->
 
28
<descr>
 
29
<p>
 
30
The <file>DOS</file> unit gives access to some operating system calls 
 
31
related to files, the file system, date and time. Except for the 
 
32
PalmOS target, this unit is available to all supported platforms.
 
33
</p>
 
34
<p>
 
35
The unit was first written for dos by Florian Klaempfl. It was ported to 
 
36
linux by Mark May and enhanced by Michael Van Canneyt. 
 
37
The Amiga version was ported by Nils Sjoholm.
 
38
</p>
 
39
<p>
 
40
Under non-DOS systems, some of the functionality is lost, as it is either impossible 
 
41
or meaningless to implement it. Other than that, the functionality for all 
 
42
operating systems is the same.
 
43
</p>
 
44
</descr>
 
45
 
 
46
<topic name="fileattributes">
 
47
<short>File attributes</short>
 
48
<descr>
 
49
<p>
 
50
The File Attribute constants are used in <link id="FindFirst"/>,
 
51
<link id="FindNext"/> to
 
52
determine what type of special file to search for in addition to normal files. 
 
53
These flags are also used in the <link id="SetFAttr"/> and <link id="GetFAttr"/> routines to 
 
54
set and retrieve attributes of files. For their definitions consult 
 
55
<link id="fileattributes"/>.
 
56
</p>
 
57
<table>
 
58
<caption>Possible file attributes</caption>
 
59
<th><td>Constant</td><td>Description</td><td>Value</td></th>
 
60
<tr><td><var>readonly</var></td><td><printshort id="readonly"/></td><td> $01</td></tr>
 
61
<tr><td><var>hidden</var> </td><td> <printshort id="hidden"/> </td><td> $02 </td></tr>
 
62
<tr><td><var>sysfile</var> </td><td> <printshort id="sysfile"/> </td><td> $04</td></tr>
 
63
<tr><td><var>volumeid</var> </td><td>  <printshort id="volumeid"/> </td><td> $08</td></tr>
 
64
<tr><td><var>directory</var> </td><td> <printshort id="directory"/> </td><td> $10</td></tr>
 
65
<tr><td><var>archive</var> </td><td> <printshort id="archive"/> </td><td> $20</td></tr> 
 
66
<tr><td><var>anyfile</var> </td><td> <printshort id="anyfile"/> </td><td> $3F</td></tr>
 
67
</table>
 
68
</descr>
 
69
</topic>
 
70
 
 
71
<topic name="filemodes">
 
72
<short>File open mode constants.</short>
 
73
<descr>
 
74
<p>
 
75
These constants are used in the <var>Mode</var> field of the <var>TextRec</var>
 
76
record. Gives information on the filemode of the text I/O. For their
 
77
definitions consult the following table:
 
78
</p>
 
79
<table>
 
80
<caption>Possible mode constants</caption>
 
81
<th><td>Constant</td><td>Description</td><td>Value</td></th> 
 
82
<tr><td><var>fmclosed</var></td><td><printshort id="fmclosed"/></td><td>$D7B0</td></tr>
 
83
<tr><td><var>fminput</var></td><td><printshort id="fminput"/></td><td>$D7B1 </td></tr>
 
84
<tr><td><var>fmoutput</var></td><td><printshort id="fmoutput"/></td><td>$D7B2</td></tr>
 
85
<tr><td><var>fminout</var></td><td><printshort id="fminout"/></td><td>$D7B3</td></tr>
 
86
</table>
 
87
</descr>
 
88
</topic>
 
89
 
 
90
<topic name="filehandling">
 
91
<short>File handling</short>
 
92
<descr>
 
93
<p>
 
94
Routines to handle files on disk.
 
95
</p>
 
96
<table>
 
97
<th><td>Name</td><td>Description</td></th>
 
98
<tr><td><link id="FExpand"/></td><td>Expand filename to full path</td></tr>
 
99
<tr><td><link id="FindClose"/></td><td>Close finfirst/findnext session</td></tr>
 
100
<tr><td><link id="FindFirst"/></td><td>Start find of file</td></tr>
 
101
<tr><td><link id="FindNext"/></td><td>Find next file</td></tr>
 
102
<tr><td><link id="FSearch"/></td><td>Search for file in a path</td></tr>
 
103
<tr><td><link id="FSplit"/></td><td>Split filename in parts</td></tr>
 
104
<tr><td><link id="GetFAttr"/></td><td>Return file attributes</td></tr>
 
105
<tr><td><link id="GetFTime"/></td><td>Return file time</td></tr>
 
106
<tr><td><link id="GetLongName"/></td><td>Convert short filename to long filename (DOS only)</td></tr>
 
107
<tr><td><link id="GetShortName"/></td><td>Convert long filename to short filename (DOS only)</td></tr>
 
108
<tr><td><link id="SetFAttr"/></td><td>Set file attributes</td></tr>
 
109
<tr><td><link id="SetFTime"/></td><td>Set file time</td></tr>
 
110
</table>
 
111
</descr>
 
112
</topic>
 
113
 
 
114
<topic name="diskhandling">
 
115
<short>Directory and disk handling</short>
 
116
<descr>
 
117
<p>
 
118
Routines to handle disk information.
 
119
</p>
 
120
<table>
 
121
<th><td>Name</td><td>Description</td></th>
 
122
<tr><td><link id="AddDisk"/></td><td>Add disk to list of disks (UNIX only)</td></tr>
 
123
<tr><td><link id="DiskFree"/></td><td>Return size of free disk space</td></tr>
 
124
<tr><td><link id="DiskSize"/></td><td>Return total disk size</td></tr>
 
125
</table>
 
126
</descr>
 
127
</topic>
 
128
 
 
129
<topic name="process">
 
130
<short>Process handling</short>
 
131
<descr>
 
132
<p>
 
133
Functions to handle process information and starting new processes.
 
134
</p>
 
135
<table>
 
136
<th><td>Name</td><td>Description</td></th>
 
137
<tr><td><link id="DosExitCode"/></td><td>Exit code of last executed program</td></tr>
 
138
<tr><td><link id="EnvCount"/></td><td>Return number of environment variables</td></tr>
 
139
<tr><td><link id="EnvStr"/></td><td>Return environment string pair</td></tr>
 
140
<tr><td><link id="Exec"/></td><td>Execute program</td></tr>
 
141
<tr><td><link id="GetEnv"/></td><td>Return specified environment string</td></tr>
 
142
</table>
 
143
</descr>
 
144
</topic>
 
145
 
 
146
<topic name="sysinfo">
 
147
<short>System information</short>
 
148
<descr>
 
149
<p>
 
150
Functions for retrieving and setting general system information such as date
 
151
and time.
 
152
</p>
 
153
<table>
 
154
<th><td>Name</td><td>Description</td></th>
 
155
<tr><td><link id="DosVersion"/></td><td>Get OS version</td></tr>
 
156
<tr><td><link id="GetCBreak"/></td><td>Get setting of control-break handling flag</td></tr>
 
157
<tr><td><link id="GetDate"/></td><td>Get system date</td></tr>
 
158
<tr><td><link id="GetIntVec"/></td><td>Get interrupt vector status</td></tr>
 
159
<tr><td><link id="GetTime"/></td><td>Get system time</td></tr>
 
160
<tr><td><link id="GetVerify"/></td><td>Get verify flag</td></tr>
 
161
<tr><td><link id="Intr"/></td><td>Execute an interrupt</td></tr>
 
162
<tr><td><link id="Keep"/></td><td>Keep process in memory and exit</td></tr>
 
163
<tr><td><link id="MSDos"/></td><td>Execute MS-dos function call</td></tr>
 
164
<tr><td><link id="PackTime"/></td><td>Pack time for file time</td></tr>
 
165
<tr><td><link id="SetCBreak"/></td><td>Set control-break handling flag</td></tr>
 
166
<tr><td><link id="SetDate"/></td><td>Set system date</td></tr>
 
167
<tr><td><link id="SetIntVec"/></td><td>Set interrupt vectors</td></tr>
 
168
<tr><td><link id="SetTime"/></td><td>Set system time</td></tr>
 
169
<tr><td><link id="SetVerify"/></td><td>Set verify flag</td></tr>
 
170
<tr><td><link id="SwapVectors"/></td><td>Swap interrupt vectors</td></tr>
 
171
<tr><td><link id="UnPackTime"/></td><td>Unpack file time</td></tr>
 
172
</table>
 
173
</descr>
 
174
</topic>
 
175
 
 
176
<element name="TLineEndStr">
 
177
<short>End-of-line string</short>
 
178
<descr>
 
179
<var>TLineEndStr</var> is used in the <link id="TextRec"/> record to
 
180
indicate the end-of-line sequence for a text file.
 
181
</descr>
 
182
</element>
 
183
 
 
184
<element name="GetMSCount">
 
185
<short>Number of milliseconds since a starting point.</short>
 
186
<descr>
 
187
<p>
 
188
<var>GetMSCount</var> returns a number of milliseconds elapsed since a
 
189
certain moment in time. This moment in time is implementation dependent.
 
190
This function is used for timing purposes: Substracting the results of 2
 
191
subsequent calls to this function returns the number of milliseconds elapsed
 
192
between the two calls.
 
193
</p>
 
194
<p>
 
195
This call is not very reliable, it is recommended to use some system
 
196
specific calls for timings.
 
197
</p>
 
198
</descr>
 
199
<seealso>
 
200
<link id="GetTime"/>
 
201
</seealso>
 
202
</element>
 
203
 
 
204
<element name="fmclosed">
 
205
<short>File is closed</short>
 
206
</element>
 
207
 
 
208
<element name="fminput">
 
209
<short>File is read only</short>
 
210
</element>
 
211
 
 
212
<element name="fmoutput">
 
213
<short>File is write only</short>
 
214
</element>
 
215
 
 
216
<element name="fminout">
 
217
<short>File is read and write</short>
 
218
</element>
 
219
 
 
220
<element name="fcarry">
 
221
<short>CPU carry flag. Not used.</short>
 
222
</element>
 
223
 
 
224
<element name="fparity">
 
225
<short>CPU parity flag. Not used.</short>
 
226
</element>
 
227
 
 
228
<element name="fauxiliary">
 
229
<short>CPU auxiliary flag. Not used.</short>
 
230
</element>
 
231
 
 
232
<element name="fzero">
 
233
<short>CPU zero flag. Not used.</short>
 
234
</element>
 
235
 
 
236
<element name="fsign">
 
237
<short>CPU sign flag. Not used.</short>
 
238
</element>
 
239
 
 
240
<element name="foverflow">
 
241
<short>CPU overflow flag. Not used.</short>
 
242
</element>
 
243
 
 
244
<element name="readonly">
 
245
<short>Read-Only file attribute</short>
 
246
</element>
 
247
 
 
248
<element name="hidden">
 
249
<short>Hidden file attribute</short>
 
250
</element>
 
251
 
 
252
<element name="sysfile">
 
253
<short>System file attribute</short>
 
254
</element>
 
255
 
 
256
<element name="volumeid">
 
257
<short>Volumd ID file attribute</short>
 
258
</element>
 
259
 
 
260
<element name="directory">
 
261
<short>Directory file attribute</short>
 
262
</element>
 
263
 
 
264
<element name="archive">
 
265
<short>Archive file attribute</short>
 
266
</element>
 
267
 
 
268
<element name="FileNameLen">
 
269
<short>Maximum length of a filename</short>
 
270
</element>
 
271
 
 
272
<element name="anyfile">
 
273
<short>Match any file attribute</short>
 
274
</element>
 
275
 
 
276
<element name="ComStr">
 
277
<short>Command-line string type</short>  
 
278
</element>
 
279
 
 
280
<element name="PathStr">
 
281
<short>Full File path string type.</short>  
 
282
</element>
 
283
 
 
284
<element name="DirStr">
 
285
<short>Full directory string type.</short>  
 
286
</element>
 
287
 
 
288
<element name="NameStr">
 
289
<short>Fill filename string type.</short>  
 
290
</element>
 
291
 
 
292
<element name="ExtStr">
 
293
<short>Filename extension string type.</short>  
 
294
</element>
 
295
 
 
296
<element name="SearchRec">
 
297
<short>File Search Results record</short>
 
298
<descr>
 
299
<p>
 
300
<var>SearchRec</var> is filled by the <link id="FindFirst"/> call and can be
 
301
used in subsequent <link id="FindNext"/> calls to search for files. The
 
302
structure of this record depends on the platform. Only the following
 
303
fields are present on all platforms: 
 
304
</p>
 
305
<dl>
 
306
<dt>Attr</dt><dd>File attributes.</dd>
 
307
<dt>Time</dt><dd>File modification time.</dd>
 
308
<dt>Size</dt><dd>File size</dd>
 
309
<dt>Name</dt><dd>File name (name part only, no path)</dd>
 
310
</dl>
 
311
</descr>
 
312
</element>
 
313
 
 
314
<element name="filerecnamelength">
 
315
<short>Maximum length of FileName part in <link id="FileRec"/></short>
 
316
</element>
 
317
 
 
318
<element name="FileRec">
 
319
<short>Record describing an untyped file</short>
 
320
<descr>
 
321
<var>FileRec</var> is used for internal representation of typed and untyped files.
 
322
</descr>
 
323
</element>
 
324
 
 
325
<element name="FileRec.Handle">
 
326
<short>OS file handle</short>
 
327
</element>
 
328
 
 
329
<element name="FileRec.Mode">
 
330
<short>File open mode</short>
 
331
</element>
 
332
 
 
333
<element name="FileRec.RecSize">
 
334
<short>Size of a record (in bytes)</short>
 
335
</element>
 
336
 
 
337
<element name="FileRec._Private">
 
338
<short>Private data, do not use</short>
 
339
</element>
 
340
 
 
341
<element name="FileRec.UserData">
 
342
<short>User data, for implementing a user driver.</short>
 
343
</element>
 
344
 
 
345
<element name="FileRec.Name">
 
346
<short>File name</short>
 
347
</element>
 
348
 
 
349
<element name="TextRecNameLength">
 
350
<short>Maximum length of filename in <link id="TextRec"/></short>
 
351
</element>
 
352
 
 
353
<element name="TextRecBufSize">
 
354
<short>Size of default buffer in <link id="TextRec"/></short>
 
355
</element>
 
356
 
 
357
<element name="TextBuf">
 
358
<short>Type for default buffer in <link id="TextRec"/></short>
 
359
</element>
 
360
 
 
361
<element name="TextRec">
 
362
<short>Record describing Text files</short>
 
363
<descr>
 
364
<p>
 
365
<var>TextRec</var> describes the internal working of a <var>Text</var> file.
 
366
</p>
 
367
<p>
 
368
Remark that this is not binary compatible with the Turbo Pascal definition
 
369
of <var>TextRec</var>, since the sizes of the different fields are different.
 
370
</p>
 
371
</descr>
 
372
</element>
 
373
 
 
374
<element name="Handle">
 
375
<short>OS file handle for this record</short>
 
376
</element>
 
377
 
 
378
<element name="Mode">
 
379
<short>File open mode</short>
 
380
</element>
 
381
 
 
382
<element name="bufsize">
 
383
<short>Current buffer size.</short>
 
384
</element>
 
385
 
 
386
<element name="bufpos">
 
387
<short>Current buffer position.</short>
 
388
</element>
 
389
 
 
390
<element name="bufend">
 
391
<short>Current length of data in buffer</short>
 
392
</element>
 
393
 
 
394
<element name="bufptr">
 
395
<short>Pointer tuo buffer.</short>
 
396
</element>
 
397
 
 
398
<element name="openfunc">
 
399
<short>Called when file needs to be opened.</short>
 
400
</element>
 
401
 
 
402
<element name="inoutfunc">
 
403
<short>Called when an I/O operation needs to be performed.</short>
 
404
</element>
 
405
 
 
406
<element name="flushfunc">
 
407
<short>Called when buffer must be flushed.</short>
 
408
</element>
 
409
 
 
410
<element name="closefunc">
 
411
<short>Called when file must be closed.</short>
 
412
</element>
 
413
 
 
414
<element name="UserData">
 
415
<short>Room for user data when implementing custom text file.</short>
 
416
</element>
 
417
 
 
418
<element name="name">
 
419
<short>File name.</short>
 
420
</element>
 
421
 
 
422
<element name="buffer">
 
423
<short>Default buffer.</short>
 
424
</element>
 
425
 
 
426
<element name="Registers">
 
427
<short>Record to keep CPU registers for <link id="MSDos"/> call. Unused.</short>
 
428
</element>
 
429
<element name="DateTime">
 
430
<short>Record containing a date/time description</short>
 
431
<descr>
 
432
The <var>DateTime</var> type is used in <link id="PackTime"/> and <link id="UnPackTime"/> for
 
433
setting/reading file times with <link id="GetFTime"/> and <link id="SetFTime"/>.
 
434
</descr>
 
435
</element>
 
436
 
 
437
<element name="DateTime.Year">
 
438
<short>Year part</short>
 
439
</element>
 
440
<element name="DateTime.Month">
 
441
<short>Month of the year</short>
 
442
</element>
 
443
<element name="DateTime.Day">
 
444
<short>Day of the month</short>
 
445
</element>
 
446
<element name="DateTime.Hour">
 
447
<short>Hour of the day</short>
 
448
</element>
 
449
<element name="DateTime.Min">
 
450
<short>Minute of the hour</short>
 
451
</element>
 
452
<element name="DateTime.Sec">
 
453
<short>Second in the minute</short>
 
454
</element>
 
455
 
 
456
<element name="DosError">
 
457
<short>Last OS (MS-DOS) error</short>
 
458
<descr>
 
459
<p>
 
460
The <var>DosError</var> variable is used by the procedures in the dos unit to 
 
461
report errors. It can have the following values :
 
462
</p>
 
463
<table>
 
464
<caption>Dos error codes</caption>
 
465
<th><td>Value</td><td>Meaning</td></th>
 
466
<tr><td>2 </td><td> File not found. </td></tr>
 
467
<tr><td>3 </td><td> path not found. </td></tr>
 
468
<tr><td>5 </td><td> Access denied. </td></tr>
 
469
<tr><td>6 </td><td> Invalid handle. </td></tr>
 
470
<tr><td>8 </td><td> Not enough memory. </td></tr>
 
471
<tr><td>10 </td><td> Invalid environment. </td></tr>
 
472
<tr><td>11 </td><td> Invalid format. </td></tr>
 
473
<tr><td>18 </td><td> No more files.</td></tr>
 
474
</table>
 
475
<p>
 
476
Other values are possible, but are not documented.
 
477
</p>
 
478
</descr>
 
479
</element>
 
480
 
 
481
<element name="drivestr">
 
482
<short>Pathnames representing drives.</short>
 
483
<descr>
 
484
This variable is defined in the linux version of the dos unit. It is used
 
485
in the <link id="DiskFree"/> and <link id="DiskSize"/> calls.
 
486
</descr>
 
487
</element>
 
488
 
 
489
<element name="AddDisk">
 
490
<short>Add disk definition to list if drives (Unix only)</short>
 
491
<descr>
 
492
<p>
 
493
<var>AddDisk</var> adds a filename <var>S</var> to the internal list of disks. It is
 
494
implemented for systems which do not use DOS type drive letters.
 
495
 This list is used to determine which disks to use in the <link id="DiskFree"/>
 
496
and <link id="DiskSize"/> calls. 
 
497
The <link id="DiskFree"/> and <link id="DiskSize"/> functions need a file on the 
 
498
specified drive, since this is required for the <var>statfs</var> system call.
 
499
The names are added sequentially. The dos
 
500
initialization code presets the first three disks to:
 
501
</p>
 
502
<ul>
 
503
<li> <var>'.'</var> for the current drive, </li>
 
504
<li> <var>'/fd0/.'</var> for the first floppy-drive (linux only).</li>
 
505
<li> <var>'/fd1/.'</var> for the second floppy-drive (linux only).</li>
 
506
<li> <var>'/'</var> for the first hard disk.</li>
 
507
</ul>
 
508
<p>
 
509
The first call to <var>AddDisk</var> will therefore add a name for the second
 
510
harddisk, The second call for the third drive, and so on until 23 drives
 
511
have been added (corresponding to drives <var>'D:'</var> to <var>'Z:'</var>)
 
512
</p>
 
513
</descr>
 
514
<errors>
 
515
None
 
516
</errors>
 
517
<seealso>
 
518
<link id="DiskFree"/>
 
519
<link id="DiskSize"/> 
 
520
</seealso>
 
521
</element>
 
522
 
 
523
 
 
524
<element name="DiskFree">
 
525
<short>Get free size on Disk.</short>
 
526
<descr>
 
527
<p>
 
528
<var>DiskFree</var> returns the number of free bytes on a disk. The parameter
 
529
<var>Drive</var> indicates which disk should be checked. This parameter is 1 for
 
530
floppy <var>a:</var>, 2 for floppy <var>b:</var>, etc. A value of 0 returns the free
 
531
space on the current drive. 
 
532
</p>
 
533
<remark>
 
534
For Unices:
 
535
The <var>diskfree</var> and <var>disksize</var> functions need a file on the 
 
536
specified drive, since this is required for the <var>statfs</var> system call.
 
537
These filenames are set in the initialization of the dos unit, and have 
 
538
been preset to :
 
539
</remark>
 
540
<ul>
 
541
<li> <var>'.'</var> for the current drive, </li>
 
542
<li> <var>'/fd0/.'</var> for the first floppy-drive (linux only).</li>
 
543
<li> <var>'/fd1/.'</var> for the second floppy-drive (linux only).</li>
 
544
<li> <var>'/'</var> for the first hard disk.</li>
 
545
</ul>
 
546
<p>
 
547
There is room for 1-26 drives. You can add a drive with the
 
548
<link id="AddDisk"/> procedure.
 
549
These settings can be coded in <var>dos.pp</var>, in the initialization part.
 
550
</p>
 
551
</descr>
 
552
<errors>
 
553
-1 when a failure occurs, or an invalid drive number is given.
 
554
</errors>
 
555
<seealso>
 
556
<link id="DiskSize"/>
 
557
<link id="AddDisk"/>
 
558
</seealso>
 
559
<example file="dosex/ex6"/>
 
560
</element>
 
561
 
 
562
 
 
563
<element name="DiskSize">
 
564
<short>Get total size of disk.</short>
 
565
<descr>
 
566
<p>
 
567
<var>DiskSize</var> returns the total size (in bytes) of a disk. The parameter
 
568
<var>Drive</var> indicates which disk should be checked. This parameter is 1 for
 
569
floppy <var>a:</var>, 2 for floppy <var>b:</var>, etc. A value of 0 returns the size
 
570
of the current drive. 
 
571
</p>
 
572
<remark>
 
573
For unix only:
 
574
The <var>diskfree</var> and <var>disksize</var> functions need a file on the specified drive, since this
 
575
is required for the <var>statfs</var> system call.
 
576
These filenames are set in the initialization of the dos unit, and have 
 
577
been preset to :
 
578
</remark>
 
579
<ul>
 
580
<li> <var>'.'</var> for the current drive, </li>
 
581
<li> <var>'/fd0/.'</var> for the first floppy-drive (linux only).</li>
 
582
<li> <var>'/fd1/.'</var> for the second floppy-drive (linux only).</li>
 
583
<li> <var>'/'</var> for the first hard disk.</li>
 
584
</ul>
 
585
<p>
 
586
There is room for 1-26 drives. You can add a drive with the
 
587
<link id="AddDisk"/> procedure.
 
588
These settings can be coded in <var>dos.pp</var>, in the initialization part.
 
589
</p>
 
590
<p>
 
591
For an example, see <link id="DiskFree"/>.
 
592
</p>
 
593
</descr>
 
594
<errors>
 
595
-1 when a failure occurs, or an invalid drive number is given.
 
596
</errors>
 
597
<seealso>
 
598
<link id="DiskFree"/>
 
599
<link id="AddDisk"/>
 
600
</seealso>
 
601
</element>
 
602
 
 
603
<element name="DosExitCode">
 
604
<short>Exit code of last executed program.</short>
 
605
<descr>
 
606
<var>DosExitCode</var> contains (in the low byte) the exit-code of a program 
 
607
executed with the <var>Exec</var> call.
 
608
</descr>
 
609
<errors>
 
610
None.
 
611
</errors>
 
612
<seealso>
 
613
<link id="Exec"/>
 
614
</seealso>
 
615
<example file="dosex/ex5"/>
 
616
</element>
 
617
 
 
618
<element name="DosVersion">
 
619
<short>Current OS version</short>
 
620
<descr>
 
621
<p>
 
622
<var>DosVersion</var> returns the operating system or kernel version. The
 
623
low byte contains the major version number, while the high byte 
 
624
contains the minor version number.
 
625
</p>
 
626
<remark>
 
627
On systems where versions consists of more then two numbers, 
 
628
only the first two numbers will be returned. For example Linux version 2.1.76 
 
629
will give you DosVersion 2.1. Some operating systems, such as FreeBSD, do not
 
630
have system calls to return the kernel version, in that case a value of 0 will
 
631
be returned.
 
632
</remark>
 
633
</descr>
 
634
<errors>
 
635
None.
 
636
</errors>
 
637
<seealso>
 
638
</seealso>
 
639
<example file="dosex/ex1"/>
 
640
</element>
 
641
 
 
642
<element name="EnvCount">
 
643
<short>Return the number of environment variables</short>
 
644
<descr>
 
645
<var>EnvCount</var> returns the number of environment variables.
 
646
</descr>
 
647
<errors>
 
648
None.
 
649
</errors>
 
650
<seealso>
 
651
<link id="EnvStr"/>
 
652
<link id="GetEnv"/>
 
653
</seealso>
 
654
</element>
 
655
 
 
656
<element name="EnvStr">
 
657
<short>Return environment variable by index</short>
 
658
<descr>
 
659
 
 
660
<var>EnvStr</var> returns the <var>Index</var>-th <var>Name=Value</var> pair from the list
 
661
of environment variables. 
 
662
The index of the first pair is zero.
 
663
</descr>
 
664
<errors>
 
665
The length is limited to 255 characters. 
 
666
</errors>
 
667
<seealso>
 
668
<link id="EnvCount"/>
 
669
<link id="GetEnv"/>
 
670
</seealso>
 
671
<example file="dosex/ex13"/>
 
672
</element>
 
673
 
 
674
 
 
675
<element name="Exec">
 
676
<short>Execute another program, and wait for it to finish.</short>
 
677
<descr>
 
678
<p>
 
679
<var>Exec</var> executes the program in <var>Path</var>, with the options given by
 
680
<var>ComLine</var>. The program name should <em>not</em> appear again in
 
681
<var>ComLine</var>, it is specified in <var>Path</var>. Comline contains only the 
 
682
parameters that are passed to the program.
 
683
</p>
 
684
<p>
 
685
After the program has terminated, the procedure returns. The Exit value of
 
686
the program can be consulted with the <var>DosExitCode</var> function.
 
687
</p>
 
688
<p>
 
689
For an example, see <link id="DosExitCode"/>
 
690
</p>
 
691
</descr>
 
692
<errors>
 
693
Errors are reported in <var>DosError</var>.
 
694
</errors>
 
695
<seealso>
 
696
<link id="DosExitCode"/>
 
697
</seealso>
 
698
</element>
 
699
 
 
700
<element name="FExpand">
 
701
<short>Expand a relative path to an absolute path</short>
 
702
<descr>
 
703
<p>
 
704
<var>FExpand</var> takes its argument and expands it to a complete filename, i.e.
 
705
a filename starting from the root directory of the current drive, prepended
 
706
with the drive-letter or volume name (when supported).
 
707
</p>
 
708
<remark>
 
709
On case sensitive file systems (such as unix and linux), the resulting
 
710
name is left as it is, otherwise it is converted to uppercase.
 
711
</remark>
 
712
</descr>
 
713
<errors>
 
714
<link id="FSplit"/>
 
715
</errors>
 
716
<seealso>
 
717
</seealso>
 
718
<example file="dosex/ex11"/>
 
719
</element>
 
720
 
 
721
 
 
722
<element name="FindClose">
 
723
<short>Dispose resources allocated by a <link id="FindFirst"/>/<link
 
724
id="FindNext"/> sequence.</short>
 
725
<descr>
 
726
<p>
 
727
<var>FindClose</var> frees any resources associated with the search record
 
728
<var>F</var>.
 
729
</p>
 
730
<p>
 
731
This call is needed to free any internal resources allocated by the 
 
732
<link id="FindFirst"/> or <link id="FindNext"/> calls.
 
733
</p>
 
734
<p>
 
735
The unix implementation of the dos unit therefore keeps a table of open
 
736
directories, and when the table is full, closes one of the directories, and
 
737
reopens another. This system is adequate but slow if you use a lot of
 
738
<var>searchrecs</var>.
 
739
</p>
 
740
<p>
 
741
So, to speed up the findfirst/findnext system, the <var>FindClose</var> call was
 
742
implemented. When you don't need a <var>searchrec</var> any more, you can tell
 
743
this to the dos unit by issuing a <var>FindClose</var> call. The directory
 
744
which is kept open for this <var>searchrec</var> is then closed, and the table slot
 
745
freed.
 
746
</p>
 
747
<remark>
 
748
It is recommended to use the linux call <var>Glob</var> when looking for files 
 
749
on linux.
 
750
</remark>
 
751
</descr>
 
752
<errors>
 
753
Errors are reported in DosError.
 
754
</errors>
 
755
<seealso>
 
756
<link id="FindFirst"/>
 
757
<link id="FindNext"/>
 
758
</seealso>
 
759
</element>
 
760
 
 
761
<element name="FindFirst">
 
762
<short>Start search for one or more files.</short>
 
763
<descr>
 
764
<p>
 
765
<var>FindFirst</var> searches the file specified in <var>Path</var>. Normal files,
 
766
as well as all special files which have the attributes specified in
 
767
<var>Attr</var> will be returned.
 
768
</p>
 
769
<p>
 
770
It returns a <var>SearchRec</var> record for further searching in <var>F</var>.
 
771
<var>Path</var> can contain the wildcard characters <var>?</var> (matches any single
 
772
character) and <var>*</var> (matches 0 ore more arbitrary characters). In this
 
773
case <var>FindFirst</var> will return the first file which matches the specified
 
774
criteria.
 
775
If <var>DosError</var> is different from zero, no file(s) matching the criteria 
 
776
was(were) found.
 
777
</p>
 
778
<remark>
 
779
On os/2, you cannot issue two different <var>FindFirst</var> calls. That is,
 
780
you must close any previous search operation with <link id="FindClose"/> before
 
781
starting a new one. Failure to do so will end in a Run-Time Error 6 
 
782
(Invalid file handle)
 
783
</remark>
 
784
</descr>
 
785
<errors>
 
786
Errors are reported in DosError.
 
787
</errors>
 
788
<seealso>
 
789
<link id="FindNext"/>,
 
790
<link id="FindClose"/>
 
791
</seealso>
 
792
<example file="dosex/ex7"/>
 
793
</element>
 
794
 
 
795
 
 
796
<element name="FindNext">
 
797
<short>Find next matching file after <link id="FindFirst"/></short>
 
798
<descr>
 
799
<p>
 
800
<var>FindNext</var> takes as an argument a <var>SearchRec</var> from a previous
 
801
<var>FindNext</var> call, or a <var>FindFirst</var> call, and tries to find another
 
802
file which matches the criteria, specified in the <var>FindFirst</var> call.
 
803
If <var>DosError</var> is different from zero, no more files matching the
 
804
criteria were found.
 
805
</p>
 
806
<p>
 
807
For an example, see <link id="FindFirst"/>.
 
808
</p>
 
809
</descr>
 
810
<errors>
 
811
<var>DosError</var> is used to report errors.
 
812
</errors>
 
813
<seealso>
 
814
<link id="FindFirst"/>
 
815
<link id="FindClose"/>
 
816
</seealso>
 
817
</element>
 
818
 
 
819
<element name="FSearch">
 
820
<short>Search a file in searchpath</short>
 
821
<descr>
 
822
<p>
 
823
<var>FSearch</var> searches the file <var>Path</var> in all directories listed in
 
824
<var>DirList</var>. The full name of the found file is returned.
 
825
<var>DirList</var> must be a list of directories, separated by semi-colons.
 
826
When no file is found, an empty string is returned.
 
827
</p>
 
828
<remark>
 
829
On unix systems, <var>DirList</var> can also be separated by colons, as is
 
830
customary on those environments.
 
831
</remark>
 
832
</descr>
 
833
<errors>
 
834
None.
 
835
</errors>
 
836
<seealso>
 
837
<link id="FExpand">FExpand</link>
 
838
</seealso>
 
839
<example file="dosex/ex10"/>
 
840
</element>
 
841
 
 
842
 
 
843
 
 
844
<element name="FSplit">
 
845
<short>Split a full-path filename in parts.</short>
 
846
<descr>
 
847
<var>FSplit</var> splits a full file name into 3 parts : A <var>Path</var>, a
 
848
<var>Name</var> and an extension  (in <var>ext</var>.) 
 
849
The extension is taken to be all letters after the <em> last</em> dot (.). For 
 
850
dos, however, an exception is made when <var>LFNSupport=False</var>, then
 
851
the extension is defined as all characters after the <em> first</em> dot.
 
852
</descr>
 
853
<errors>
 
854
None.
 
855
</errors>
 
856
<seealso>
 
857
<link id="FSearch">FSearch</link>
 
858
</seealso>
 
859
<example file="dosex/ex12"/>
 
860
</element>
 
861
 
 
862
 
 
863
<element name="GetCBreak">
 
864
<short>Get control-Break flag</short>
 
865
<descr>
 
866
<p>
 
867
<var>GetCBreak</var> gets the status of CTRL-Break checking under dos and Amiga.
 
868
When <var>BreakValue</var> is <var>false</var>, then dos only checks for the 
 
869
CTRL-Break key-press when I/O is performed. When it is set to <var>True</var>,
 
870
then a check is done at every system call.
 
871
</p>
 
872
<remark>
 
873
Under non-dos and non-Amiga operating systems, <var>BreakValue</var> always returns 
 
874
<var>True</var>.
 
875
</remark>
 
876
</descr>
 
877
<errors> 
 
878
None
 
879
</errors>
 
880
<seealso>
 
881
<link id="SetCBreak"/>
 
882
</seealso>
 
883
</element>
 
884
 
 
885
<element name="GetDate">
 
886
<short>Get the current date</short>
 
887
<descr>
 
888
<var>GetDate</var> returns the system's date. <var>Year</var> is a number in the range
 
889
1980..2099.<var>mday</var> is the day of the month,
 
890
<var>wday</var> is the day of the week, starting with Sunday as day 0.
 
891
</descr>
 
892
<errors>
 
893
None.
 
894
</errors>
 
895
<seealso>
 
896
<link id="GetTime"/>
 
897
<link id="SetDate"/>
 
898
</seealso>
 
899
<example file="dosex/ex2"/>
 
900
</element>
 
901
 
 
902
 
 
903
<element name="GetEnv">
 
904
<short>Get environment variable by name.</short>
 
905
<descr>
 
906
<p>
 
907
<var>Getenv</var> returns the value of the environment variable <var>EnvVar</var>.
 
908
When there is no environment variable <var>EnvVar</var> defined, an empty
 
909
string is returned.
 
910
</p>
 
911
<remark>
 
912
Under some operating systems (such as unix), case is important when looking
 
913
for <var>EnvVar</var>.
 
914
</remark>
 
915
</descr>
 
916
<errors>
 
917
None.
 
918
</errors>
 
919
<seealso>
 
920
<link id="EnvCount"/>
 
921
<link id="EnvStr"/>
 
922
</seealso>
 
923
<example file="dosex/ex14"/>
 
924
</element>
 
925
 
 
926
<element name="GetFAttr">
 
927
<short>Get file attributes</short>
 
928
<descr>
 
929
<p>
 
930
<var>GetFAttr</var> returns the file attributes of the file-variable <var>f</var>.
 
931
 <var>F</var> can be a untyped or typed file, or of type <var>Text</var>. <var>f</var> must
 
932
have been assigned, but not opened. The attributes can be examined with the
 
933
following constants :
 
934
</p>
 
935
<ul>
 
936
<li> <var>ReadOnly</var></li>
 
937
<li> <var>Hidden</var></li>
 
938
<li> <var>SysFile</var></li>
 
939
<li> <var>VolumeId</var></li>
 
940
<li> <var>Directory</var></li>
 
941
<li> <var>Archive</var></li>
 
942
</ul>
 
943
<p>
 
944
Under linux, supported attributes are:
 
945
</p>
 
946
<ul>
 
947
<li> <var>Directory</var></li>
 
948
<li> <var>ReadOnly</var> if the current process doesn't have access to the file.</li>
 
949
<li> <var>Hidden</var> for files whose name starts with a dot <var>('.')</var>.</li>
 
950
</ul>
 
951
</descr>
 
952
<errors>
 
953
Errors are reported in <var>DosError</var>
 
954
</errors>
 
955
<seealso>
 
956
<link id="SetFAttr"/>
 
957
</seealso>
 
958
<example file="dosex/ex8"/>
 
959
</element>
 
960
 
 
961
 
 
962
<element name="GetFTime">
 
963
<short>Get file last modification time.</short>
 
964
<descr>
 
965
<var>GetFTime</var> returns the modification time of a file.
 
966
This time is encoded and must be decoded with <var>UnPackTime</var>. 
 
967
<var>F</var> must be a file type, which has been assigned, and
 
968
opened.
 
969
</descr>
 
970
<errors>
 
971
Errors are reported in <var>DosError</var>
 
972
</errors>
 
973
<seealso>
 
974
<link id="SetFTime"/>
 
975
<link id="PackTime"/>
 
976
<link id="UnPackTime"/>
 
977
</seealso>
 
978
<example file="dosex/ex9"/>
 
979
</element>
 
980
 
 
981
 
 
982
<element name="GetIntVec">
 
983
<short>Get interrupt vector</short>
 
984
<descr>
 
985
<p>
 
986
<var>GetIntVec</var> returns the address of interrupt vector
 
987
<var>IntNo</var>.
 
988
</p>
 
989
<remark>
 
990
This call does nothing, it is present for compatibility only. Modern systems
 
991
do not allow low level access to the hardware.
 
992
</remark>
 
993
</descr>
 
994
<errors>
 
995
None.
 
996
</errors>
 
997
<seealso>
 
998
<link id="SetIntVec"/>
 
999
</seealso>
 
1000
</element>
 
1001
 
 
1002
<element name="GetLongName">
 
1003
<short>Get the long filename of a DOS 8.3 filename.</short>
 
1004
<descr>
 
1005
<p>
 
1006
This function is only implemented in the GO32V2 and Win32 versions of Free Pascal.
 
1007
</p>
 
1008
<p>
 
1009
<var>GetLongName</var> changes the filename <var>p</var> to a long filename
 
1010
if the API call to do this is successful. The resulting string
 
1011
is the long file name corresponding to the short filename <var>p</var>.
 
1012
</p>
 
1013
<p>
 
1014
The function returns <var>True</var> if the API call was successful, 
 
1015
<var>False</var> otherwise.
 
1016
</p>
 
1017
<p>
 
1018
This function should only be necessary when using the DOS extender
 
1019
under Windows 95 and higher.
 
1020
</p>
 
1021
</descr>
 
1022
<errors>
 
1023
If the API call was not succesfull, <var>False</var> is returned.
 
1024
</errors>
 
1025
<seealso>
 
1026
<link id="GetShortName"/>
 
1027
</seealso>
 
1028
</element>
 
1029
 
 
1030
<element name="GetShortName">
 
1031
<short>Get the short (8.3) filename of a long filename.</short>
 
1032
<descr>
 
1033
<p>
 
1034
This function is only implemented in the GO32V2 and Win32 versions of Free Pascal.
 
1035
</p>
 
1036
<p>
 
1037
<var>GetShortName</var> changes the filename <var>p</var> to a short filename
 
1038
if the API call to do this is successful. The resulting string
 
1039
is the short file name corresponding to the long filename <var>p</var>.
 
1040
</p>
 
1041
<p>
 
1042
The function returns <var>True</var> if the API call was successful, 
 
1043
<var>False</var> otherwise.
 
1044
</p>
 
1045
<p>
 
1046
This function should only be necessary when using the DOS extender
 
1047
under Windows 95 and higher.
 
1048
</p>
 
1049
</descr>
 
1050
<errors>
 
1051
If the API call was not successful, <var>False</var> is returned.
 
1052
</errors>
 
1053
<seealso>
 
1054
<link id="GetLongName"/>
 
1055
</seealso>
 
1056
</element>
 
1057
 
 
1058
<element name="GetTime">
 
1059
<short>Return the current time</short>
 
1060
<descr>
 
1061
<p>
 
1062
<var>GetTime</var> returns the system's time. <var>Hour</var> is a on a 24-hour time
 
1063
scale. <var>sec100</var> is in hundredth of a
 
1064
second.
 
1065
</p>
 
1066
<remark>
 
1067
Certain operating systems (such as Amiga), always set the <var>sec100</var> field
 
1068
to zero.
 
1069
</remark>
 
1070
</descr>
 
1071
<errors>
 
1072
None.
 
1073
</errors>
 
1074
<seealso>
 
1075
<link id="GetDate"/>
 
1076
<link id="SetTime"/>
 
1077
</seealso>
 
1078
<example file="dosex/ex3"/>
 
1079
</element>
 
1080
 
 
1081
 
 
1082
<element name="GetVerify">
 
1083
<short>Get verify flag</short>
 
1084
<descr>
 
1085
<p>
 
1086
<var>GetVerify</var> returns the status of the verify flag under dos. When
 
1087
<var>Verify</var> is <var>True</var>, then dos checks data which are written to disk,
 
1088
by reading them after writing. If <var>Verify</var> is <var>False</var>, then data
 
1089
written to disk are not verified.
 
1090
</p>
 
1091
<remark>
 
1092
Under non-dos systems (excluding os/2 applications running under vanilla DOS),  
 
1093
Verify is always <var>True</var>.
 
1094
</remark>
 
1095
</descr>
 
1096
<errors>
 
1097
None.
 
1098
</errors>
 
1099
<seealso>
 
1100
<link id="SetVerify"/>
 
1101
</seealso>
 
1102
</element>
 
1103
 
 
1104
<element name="Intr">
 
1105
<short>Execute interrupt</short>
 
1106
<descr>
 
1107
<p>
 
1108
<var>Intr</var> executes a software interrupt number <var>IntNo</var> (must be between
 
1109
0 and 255), with processor registers set to <var>Regs</var>. After the interrupt call
 
1110
returned, the processor registers are saved in <var>Regs</var>.
 
1111
</p>
 
1112
<remark>
 
1113
Under non-dos operating systems, this call does nothing.
 
1114
</remark>
 
1115
</descr>
 
1116
<errors>
 
1117
None.
 
1118
</errors>
 
1119
<seealso>
 
1120
<link id="MSDos"/>
 
1121
</seealso>
 
1122
</element>
 
1123
 
 
1124
<element name="Keep">
 
1125
<short>Terminate and stay resident.</short>
 
1126
<descr>
 
1127
<p>
 
1128
<var>Keep</var> terminates the program, but stays in memory. This is used for TSR
 
1129
(Terminate Stay Resident) programs which catch some interrupt.
 
1130
<var>ExitCode</var> is the same parameter as the <var>Halt</var> function takes.
 
1131
</p>
 
1132
<remark>
 
1133
This call does nothing, it is present for compatibility only.
 
1134
</remark>
 
1135
</descr>
 
1136
<errors>
 
1137
None.
 
1138
</errors>
 
1139
<seealso>
 
1140
</seealso>
 
1141
</element>
 
1142
 
 
1143
<element name="weekday">
 
1144
<short>Return the day of the week</short>
 
1145
<descr>
 
1146
<var>WeekDay</var> returns the day of the week on which the day
 
1147
<var>Y/M/D</var> falls. Sunday is represented by 0, Saturday is 6.
 
1148
</descr>
 
1149
<errors>
 
1150
On error, -1 is returned.
 
1151
</errors>
 
1152
<seealso>
 
1153
<link id="PackTime"/>
 
1154
<link id="UnpackTime"/>
 
1155
<link id="GetTime"/>
 
1156
<link id="SetTime"/>
 
1157
</seealso>
 
1158
</element>
 
1159
 
 
1160
<element name="DTToUnixDate">
 
1161
<short>Convert a DateTime to unix timestamp</short>
 
1162
<descr>
 
1163
<var>DTToUnixDate</var> converts the DateTime value in <var>DT</var> to a
 
1164
unix timestamp. It is an internal function, implemented on Unix platforms,
 
1165
and should not be used.
 
1166
</descr>
 
1167
<errors>
 
1168
None.
 
1169
</errors>
 
1170
<seealso>
 
1171
<link id="UnixDateToDT"/>
 
1172
<link id="PackTime"/>
 
1173
<link id="UnpackTime"/>
 
1174
<link id="GetTime"/>
 
1175
<link id="SetTime"/>
 
1176
</seealso>
 
1177
</element>
 
1178
 
 
1179
<element name="UnixDateToDT">
 
1180
<short>Convert a unix timestamp to a DateTime record </short>
 
1181
<descr>
 
1182
<var>DTToUnixDate</var> converts the unix timestamp value in <var>SecsPast</var> to a
 
1183
DateTime representation in <var>DT</var>. It is an internal function, implemented on Unix platforms,
 
1184
and should not be used.
 
1185
</descr>
 
1186
<errors>
 
1187
None.
 
1188
</errors>
 
1189
<seealso>
 
1190
<link id="DTToUnixDate"/>
 
1191
<link id="PackTime"/>
 
1192
<link id="UnpackTime"/>
 
1193
<link id="GetTime"/>
 
1194
<link id="SetTime"/>
 
1195
</seealso>
 
1196
</element>
 
1197
 
 
1198
 
 
1199
<element name="MSDos">
 
1200
<short>Execute MS-DOS system call</short>
 
1201
<descr>
 
1202
<p>
 
1203
<var>MSDos</var> executes an operating system call. This is the same as doing a
 
1204
<var>Intr</var> call with the interrupt number for an os call.
 
1205
</p>
 
1206
<remark>
 
1207
Under non-dos operating systems, this call does nothing. On DOS systems,
 
1208
this calls interrupt $21.
 
1209
</remark>
 
1210
</descr>
 
1211
<errors>
 
1212
None.
 
1213
</errors>
 
1214
<seealso>
 
1215
<link id="Intr"/>
 
1216
</seealso>
 
1217
</element>
 
1218
 
 
1219
<element name="PackTime">
 
1220
<short>Pack DateTime value to a packed-time format.</short>
 
1221
<descr>
 
1222
<var>UnPackTime</var> converts the date and time specified in <var>T</var>
 
1223
to a packed-time format which can be fed to <var>SetFTime</var>.
 
1224
</descr>
 
1225
<errors>
 
1226
None.
 
1227
</errors>
 
1228
<seealso>
 
1229
<link id="SetFTime"/>
 
1230
<link id="FindFirst"/>
 
1231
<link id="FindNext"/>
 
1232
<link id="UnPackTime"/>
 
1233
</seealso>
 
1234
<example file="dosex/ex4"/>
 
1235
</element>
 
1236
 
 
1237
 
 
1238
<element name="SetCBreak">
 
1239
<short>Set Control-Break flag status</short>
 
1240
<descr>
 
1241
<p>
 
1242
<var>SetCBreak</var> sets the status of CTRL-Break checking. When 
 
1243
<var>BreakValue</var> is <var>false</var>, then dos only checks for the CTRL-Break 
 
1244
key-press when I/O is performed. When it is set to <var>True</var>, then a 
 
1245
check is done at every system call.
 
1246
</p>
 
1247
<remark>
 
1248
Under non-dos and non-Amiga operating systems, this call does nothing.
 
1249
</remark>
 
1250
</descr>
 
1251
<errors>
 
1252
None.
 
1253
</errors>
 
1254
<seealso>
 
1255
<link id="GetCBreak"/>
 
1256
</seealso>
 
1257
</element>
 
1258
 
 
1259
<element name="SetDate">
 
1260
<short>Set system date</short>
 
1261
<descr>
 
1262
<p>
 
1263
<var>SetDate</var> sets the system's internal date. <var>Year</var> is a number
 
1264
between 1980 and 2099.
 
1265
</p>
 
1266
<remark>
 
1267
On a unix machine, there must be root privileges, otherwise this
 
1268
routine will do nothing. On other unix systems, this call currently
 
1269
does nothing.
 
1270
</remark>
 
1271
</descr>
 
1272
<errors>
 
1273
None.
 
1274
</errors>
 
1275
<seealso>
 
1276
<link id="GetDate"/>
 
1277
<link id="SetTime"/>
 
1278
</seealso>
 
1279
</element>
 
1280
 
 
1281
<element name="SetFAttr">
 
1282
<short>Set file attributes</short>
 
1283
<descr>
 
1284
<p>
 
1285
<var>SetFAttr</var> sets the file attributes of the file-variable <var>F</var>.
 
1286
 <var>F</var> can be a untyped or typed file, or of type <var>Text</var>. <var>F</var> must
 
1287
have been assigned, but not opened. The attributes can be a sum of the
 
1288
following constants:
 
1289
</p>
 
1290
<ul>
 
1291
<li> <var>ReadOnly</var></li>
 
1292
<li> <var>Hidden</var></li>
 
1293
<li> <var>SysFile</var></li>
 
1294
<li> <var>VolumeId</var></li>
 
1295
<li> <var>Directory</var></li>
 
1296
<li> <var>Archive</var></li>
 
1297
</ul>
 
1298
<remark>
 
1299
Under unix like systems (such as linux and BeOS) the call exists, but is not implemented, 
 
1300
i.e. it does nothing.
 
1301
</remark>
 
1302
</descr>
 
1303
<errors>
 
1304
Errors are reported in <var>DosError</var>.
 
1305
</errors>
 
1306
<seealso>
 
1307
<link id="GetFAttr"/>
 
1308
</seealso>
 
1309
</element>
 
1310
 
 
1311
 
 
1312
<element name="SetFTime">
 
1313
<short>Set file modification time.</short>
 
1314
<descr>
 
1315
<p>
 
1316
<var>SetFTime</var> sets the modification time of a file,
 
1317
this time is encoded and must be encoded with <var>PackTime</var>. 
 
1318
<var>F</var> must be a file type, which has been assigned, and
 
1319
opened.
 
1320
</p>
 
1321
<remark>
 
1322
Under unix like systems (such as linux and BeOS) the call exists, but is not implemented, 
 
1323
i.e. it does nothing.
 
1324
</remark>
 
1325
</descr>
 
1326
<errors>
 
1327
Errors are reported in <var>DosError</var>
 
1328
</errors>
 
1329
<seealso>
 
1330
<link id="GetFTime"/>
 
1331
<link id="PackTime"/>
 
1332
<link id="UnPackTime"/>
 
1333
</seealso>
 
1334
</element>
 
1335
 
 
1336
<element name="SetIntVec">
 
1337
<short>Set interrupt vector</short>
 
1338
<descr>
 
1339
<p>
 
1340
<var>SetIntVec</var> sets interrupt vector <var>IntNo</var> to <var>Vector</var>.
 
1341
<var>Vector</var> should point to an interrupt procedure.
 
1342
</p>
 
1343
<remark>
 
1344
This call does nothing, it is present for compatibility only.
 
1345
</remark>
 
1346
</descr>
 
1347
<errors>
 
1348
None.
 
1349
</errors>
 
1350
<seealso>
 
1351
<link id="GetIntVec"/>
 
1352
</seealso>
 
1353
</element>
 
1354
 
 
1355
<element name="SetTime">
 
1356
<short>Set system time</short>
 
1357
<descr>
 
1358
<p>
 
1359
<var>SetTime</var> sets the system's internal clock. The <var>Hour</var> parameter is
 
1360
on a 24-hour time scale.
 
1361
</p>
 
1362
<remark>
 
1363
On a linux machine, there must be root privileges, otherwise this
 
1364
routine will do nothing. On other unix systems, this call currently
 
1365
does nothing.
 
1366
</remark>
 
1367
</descr>
 
1368
<errors>
 
1369
None.
 
1370
</errors>
 
1371
<seealso>
 
1372
<link id="GetTime"/>
 
1373
<link id="SetDate"/>
 
1374
</seealso>
 
1375
</element>
 
1376
 
 
1377
<element name="SetVerify">
 
1378
<short>Set verify flag</short>
 
1379
<descr>
 
1380
<p>
 
1381
<var>SetVerify</var> sets the status of the verify flag under dos. When
 
1382
<var>Verify</var> is <var>True</var>, then dos checks data which are written to disk,
 
1383
by reading them after writing. If <var>Verify</var> is <var>False</var>, then data
 
1384
written to disk are not verified.
 
1385
</p>
 
1386
<remark>
 
1387
Under non-dos operating systems (excluding os/2 applications running
 
1388
under vanilla dos), Verify is always <var>True</var>.
 
1389
</remark>
 
1390
</descr>
 
1391
<errors>
 
1392
None.
 
1393
</errors>
 
1394
<seealso>
 
1395
<link id="SetVerify"/>
 
1396
</seealso>
 
1397
</element>
 
1398
 
 
1399
<element name="SwapVectors">
 
1400
<short>Swap interrupt vectors</short>
 
1401
<descr>
 
1402
<p>
 
1403
<var>SwapVectors</var> swaps the contents of the internal table of interrupt 
 
1404
vectors with the current contents of the interrupt vectors.
 
1405
This is called typically in before and after an <var>Exec</var> call.
 
1406
</p>
 
1407
<remark>
 
1408
Under certain operating systems, this routine may be implemented
 
1409
as an empty stub.
 
1410
</remark>
 
1411
</descr>
 
1412
<errors>
 
1413
None.
 
1414
</errors>
 
1415
<seealso>
 
1416
<link id="Exec"/>
 
1417
<link id="SetIntVec"/>
 
1418
</seealso>
 
1419
 
 
1420
</element>
 
1421
<element name="UnPackTime">
 
1422
<short>Unpack packed file time to a DateTime value</short>
 
1423
<descr>
 
1424
<p>
 
1425
<var>UnPackTime</var> converts the file-modification time in <var>p</var>
 
1426
to a <var>DateTime</var> record. The file-modification time can be 
 
1427
returned by <var>GetFTime</var>, <var>FindFirst</var> or <var>FindNext</var> calls.
 
1428
</p>
 
1429
<p>
 
1430
For an example, see <link id="PackTime"/>.
 
1431
</p>
 
1432
</descr>
 
1433
<errors>
 
1434
None.
 
1435
</errors>
 
1436
<seealso>
 
1437
<link id="GetFTime"/>
 
1438
<link id="FindFirst"/>
 
1439
<link id="FindNext"/>
 
1440
<link id="PackTime"/>
 
1441
</seealso>
 
1442
</element>
 
1443
 
 
1444
<!-- unresolved type reference Visibility: default -->
 
1445
<element name="baseunix">
 
1446
<short>Used for unix implementation</short>
 
1447
</element>
 
1448
 
 
1449
<!-- variable Visibility: default -->
 
1450
<element name="SearchRec.SearchPos">
 
1451
<short>Current search position</short>
 
1452
</element>
 
1453
 
 
1454
<!-- variable Visibility: default -->
 
1455
<element name="SearchRec.SearchNum">
 
1456
<short>Current search number</short>
 
1457
</element>
 
1458
 
 
1459
<!-- variable Visibility: default -->
 
1460
<element name="SearchRec.DirPtr">
 
1461
<short>Pointer to directory</short>
 
1462
</element>
 
1463
 
 
1464
<!-- variable Visibility: default -->
 
1465
<element name="SearchRec.SearchType">
 
1466
<short>Type of search</short>
 
1467
</element>
 
1468
 
 
1469
<!-- variable Visibility: default -->
 
1470
<element name="SearchRec.SearchAttr">
 
1471
<short>Attributes specified at findfirst.</short>
 
1472
</element>
 
1473
 
 
1474
<!-- variable Visibility: default -->
 
1475
<element name="SearchRec.Fill">
 
1476
<short>Padding bytes</short>
 
1477
</element>
 
1478
 
 
1479
<!-- variable Visibility: default -->
 
1480
<element name="SearchRec.Attr">
 
1481
<short>Attributes of the file.</short>
 
1482
</element>
 
1483
 
 
1484
<!-- variable Visibility: default -->
 
1485
<element name="SearchRec.Time">
 
1486
<short>Timestamp of the file</short>
 
1487
</element>
 
1488
 
 
1489
<!-- variable Visibility: default -->
 
1490
<element name="SearchRec.Size">
 
1491
<short>Size of the file</short>
 
1492
</element>
 
1493
 
 
1494
<!-- variable Visibility: default -->
 
1495
<element name="SearchRec.Reserved">
 
1496
<short>Reserved for future use</short>
 
1497
</element>
 
1498
 
 
1499
<!-- variable Visibility: default -->
 
1500
<element name="SearchRec.Name">
 
1501
<short>Name fo the file</short>
 
1502
</element>
 
1503
 
 
1504
<!-- variable Visibility: default -->
 
1505
<element name="SearchRec.SearchSpec">
 
1506
<short>Wildcard specs specified at findfirst</short>
 
1507
</element>
 
1508
 
 
1509
<!-- variable Visibility: default -->
 
1510
<element name="SearchRec.NamePos">
 
1511
<short>Name position</short>
 
1512
</element>
 
1513
 
 
1514
<!-- variable Visibility: default -->
 
1515
<element name="Registers.ax">
 
1516
<short>AX register</short>
 
1517
</element>
 
1518
 
 
1519
<!-- variable Visibility: default -->
 
1520
<element name="Registers.f1">
 
1521
<short>F1 register</short>
 
1522
</element>
 
1523
 
 
1524
<!-- variable Visibility: default -->
 
1525
<element name="Registers.bx">
 
1526
<short>BX register</short>
 
1527
</element>
 
1528
 
 
1529
<!-- variable Visibility: default -->
 
1530
<element name="Registers.f2">
 
1531
<short>F2 register</short>
 
1532
</element>
 
1533
 
 
1534
<!-- variable Visibility: default -->
 
1535
<element name="Registers.cx">
 
1536
<short>CX register</short>
 
1537
</element>
 
1538
 
 
1539
<!-- variable Visibility: default -->
 
1540
<element name="Registers.f3">
 
1541
<short>F3 register</short>
 
1542
</element>
 
1543
 
 
1544
<!-- variable Visibility: default -->
 
1545
<element name="Registers.dx">
 
1546
<short>DX register</short>
 
1547
</element>
 
1548
 
 
1549
<!-- variable Visibility: default -->
 
1550
<element name="Registers.f4">
 
1551
<short>F4 register</short>
 
1552
</element>
 
1553
 
 
1554
<!-- variable Visibility: default -->
 
1555
<element name="Registers.bp">
 
1556
<short>BP register</short>
 
1557
</element>
 
1558
 
 
1559
<!-- variable Visibility: default -->
 
1560
<element name="Registers.f5">
 
1561
<short>F5 register</short>
 
1562
</element>
 
1563
 
 
1564
<!-- variable Visibility: default -->
 
1565
<element name="Registers.si">
 
1566
<short>SI register</short>
 
1567
</element>
 
1568
 
 
1569
<!-- variable Visibility: default -->
 
1570
<element name="Registers.f51">
 
1571
<short>F51 register</short>
 
1572
</element>
 
1573
 
 
1574
<!-- variable Visibility: default -->
 
1575
<element name="Registers.di">
 
1576
<short>DI register</short>
 
1577
</element>
 
1578
 
 
1579
<!-- variable Visibility: default -->
 
1580
<element name="Registers.f6">
 
1581
<short>F6 register</short>
 
1582
</element>
 
1583
 
 
1584
<!-- variable Visibility: default -->
 
1585
<element name="Registers.ds">
 
1586
<short>DS register</short>
 
1587
</element>
 
1588
 
 
1589
<!-- variable Visibility: default -->
 
1590
<element name="Registers.f7">
 
1591
<short>F7 register</short>
 
1592
</element>
 
1593
 
 
1594
<!-- variable Visibility: default -->
 
1595
<element name="Registers.es">
 
1596
<short>ES register</short>
 
1597
</element>
 
1598
 
 
1599
<!-- variable Visibility: default -->
 
1600
<element name="Registers.f8">
 
1601
<short>F8 register</short>
 
1602
</element>
 
1603
 
 
1604
<!-- variable Visibility: default -->
 
1605
<element name="Registers.flags">
 
1606
<short>Flags</short>
 
1607
</element>
 
1608
 
 
1609
<!-- variable Visibility: default -->
 
1610
<element name="Registers.fs">
 
1611
<short>FS register</short>
 
1612
</element>
 
1613
 
 
1614
<!-- variable Visibility: default -->
 
1615
<element name="Registers.gs">
 
1616
<short>GS register</short>
 
1617
</element>
 
1618
 
 
1619
<!-- variable Visibility: default -->
 
1620
<element name="Registers.al">
 
1621
<short>AL register</short>
 
1622
</element>
 
1623
 
 
1624
<!-- variable Visibility: default -->
 
1625
<element name="Registers.ah">
 
1626
<short>AH register</short>
 
1627
</element>
 
1628
 
 
1629
<!-- variable Visibility: default -->
 
1630
<element name="Registers.f9">
 
1631
<short>F9 register</short>
 
1632
</element>
 
1633
 
 
1634
<!-- variable Visibility: default -->
 
1635
<element name="Registers.f10">
 
1636
<short>F10 register</short>
 
1637
</element>
 
1638
 
 
1639
<!-- variable Visibility: default -->
 
1640
<element name="Registers.bl">
 
1641
<short>BL register</short>
 
1642
</element>
 
1643
 
 
1644
<!-- variable Visibility: default -->
 
1645
<element name="Registers.bh">
 
1646
<short>BH register</short>
 
1647
</element>
 
1648
 
 
1649
<!-- variable Visibility: default -->
 
1650
<element name="Registers.f11">
 
1651
<short>F11 register</short>
 
1652
</element>
 
1653
 
 
1654
<!-- variable Visibility: default -->
 
1655
<element name="Registers.f12">
 
1656
<short>F12 register</short>
 
1657
</element>
 
1658
 
 
1659
<!-- variable Visibility: default -->
 
1660
<element name="Registers.cl">
 
1661
<short>CL register</short>
 
1662
</element>
 
1663
 
 
1664
<!-- variable Visibility: default -->
 
1665
<element name="Registers.ch">
 
1666
<short>CH register</short>
 
1667
</element>
 
1668
 
 
1669
<!-- variable Visibility: default -->
 
1670
<element name="Registers.f13">
 
1671
<short>F13 register</short>
 
1672
</element>
 
1673
 
 
1674
<!-- variable Visibility: default -->
 
1675
<element name="Registers.f14">
 
1676
<short>F14 register</short>
 
1677
</element>
 
1678
 
 
1679
<!-- variable Visibility: default -->
 
1680
<element name="Registers.dl">
 
1681
<short>DL register</short>
 
1682
</element>
 
1683
 
 
1684
<!-- variable Visibility: default -->
 
1685
<element name="Registers.dh">
 
1686
<short>DH register</short>
 
1687
</element>
 
1688
 
 
1689
<!-- variable Visibility: default -->
 
1690
<element name="Registers.eax">
 
1691
<short>EAX register</short>
 
1692
</element>
 
1693
 
 
1694
<!-- variable Visibility: default -->
 
1695
<element name="Registers.ebx">
 
1696
<short>EBX register</short>
 
1697
</element>
 
1698
 
 
1699
<!-- variable Visibility: default -->
 
1700
<element name="Registers.ecx">
 
1701
<short>ECX register</short>
 
1702
</element>
 
1703
 
 
1704
<!-- variable Visibility: default -->
 
1705
<element name="Registers.edx">
 
1706
<short>EDX register</short>
 
1707
</element>
 
1708
 
 
1709
<!-- variable Visibility: default -->
 
1710
<element name="Registers.ebp">
 
1711
<short>EBP register</short>
 
1712
</element>
 
1713
 
 
1714
<!-- variable Visibility: default -->
 
1715
<element name="Registers.esi">
 
1716
<short>ESI register</short>
 
1717
</element>
 
1718
 
 
1719
<!-- variable Visibility: default -->
 
1720
<element name="Registers.edi">
 
1721
<short>EDI register</short>
 
1722
</element>
 
1723
 
 
1724
<!-- variable Visibility: default -->
 
1725
<element name="TextRec.Handle">
 
1726
<short>File handle</short>
 
1727
</element>
 
1728
 
 
1729
<!-- variable Visibility: default -->
 
1730
<element name="TextRec.Mode">
 
1731
<short>File open mode</short>
 
1732
</element>
 
1733
 
 
1734
<!-- variable Visibility: default -->
 
1735
<element name="TextRec.bufsize">
 
1736
<short>Size of buffer</short>
 
1737
</element>
 
1738
 
 
1739
<!-- variable Visibility: default -->
 
1740
<element name="TextRec._private">
 
1741
<short>For internal use only</short>
 
1742
</element>
 
1743
 
 
1744
<!-- variable Visibility: default -->
 
1745
<element name="TextRec.bufpos">
 
1746
<short>buffer start position</short>
 
1747
</element>
 
1748
 
 
1749
<!-- variable Visibility: default -->
 
1750
<element name="TextRec.bufend">
 
1751
<short>buffer end position</short>
 
1752
</element>
 
1753
 
 
1754
<!-- variable Visibility: default -->
 
1755
<element name="TextRec.bufptr">
 
1756
<short>Pointer to buffer</short>
 
1757
</element>
 
1758
 
 
1759
<!-- variable Visibility: default -->
 
1760
<element name="TextRec.openfunc">
 
1761
<short>File open function</short>
 
1762
</element>
 
1763
 
 
1764
<!-- variable Visibility: default -->
 
1765
<element name="TextRec.inoutfunc">
 
1766
<short>File IO function</short>
 
1767
</element>
 
1768
 
 
1769
<!-- variable Visibility: default -->
 
1770
<element name="TextRec.flushfunc">
 
1771
<short>Data flush function</short>
 
1772
</element>
 
1773
 
 
1774
<!-- variable Visibility: default -->
 
1775
<element name="TextRec.closefunc">
 
1776
<short>File close function</short>
 
1777
</element>
 
1778
 
 
1779
<!-- variable Visibility: default -->
 
1780
<element name="TextRec.UserData">
 
1781
<short>User data (reserved)</short>
 
1782
</element>
 
1783
 
 
1784
<!-- variable Visibility: default -->
 
1785
<element name="TextRec.name">
 
1786
<short>File name</short>
 
1787
</element>
 
1788
 
 
1789
<!-- variable Visibility: default -->
 
1790
<element name="TextRec.LineEnd">
 
1791
<short>Line ending in use</short>
 
1792
</element>
 
1793
 
 
1794
<!-- variable Visibility: default -->
 
1795
<element name="TextRec.buffer">
 
1796
<short>Standard buffer</short>
 
1797
</element>
 
1798
 
 
1799
 
 
1800
</module>
 
1801
</package>
 
1802
</fpdoc-descriptions>
 
 
b'\\ No newline at end of file'