Rev 7983 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7983 | Rev 8097 | ||
---|---|---|---|
Line 11... | Line 11... | ||
11 | 11 | ||
Line 12... | Line 12... | ||
12 | 12 | ||
13 | CONST |
13 | CONST |
Line 14... | Line 14... | ||
14 | 14 | ||
15 | slash* = "\"; |
15 | slash* = "\"; |
16 | OS* = "WINDOWS"; |
16 | eol* = 0DX + 0AX; |
Line 57... | Line 57... | ||
57 | lpSecurityDescriptor: INTEGER; |
57 | lpSecurityDescriptor: INTEGER; |
58 | bInheritHandle: INTEGER |
58 | bInheritHandle: INTEGER |
Line 59... | Line 59... | ||
59 | 59 | ||
Line 60... | Line -... | ||
60 | END; |
- | |
61 | - | ||
62 | TSystemTime = RECORD |
- | |
63 | - | ||
64 | Year, |
- | |
65 | Month, |
- | |
66 | DayOfWeek, |
- | |
67 | Day, |
- | |
68 | Hour, |
- | |
69 | Min, |
- | |
70 | Sec, |
- | |
71 | MSec: WCHAR |
- | |
72 | - | ||
Line 73... | Line 60... | ||
73 | END; |
60 | END; |
Line 74... | Line 61... | ||
74 | 61 | ||
Line 75... | Line 62... | ||
75 | 62 | ||
76 | VAR |
63 | VAR |
Line 77... | Line -... | ||
77 | - | ||
78 | hConsoleOutput: INTEGER; |
- | |
79 | 64 | ||
Line 80... | Line 65... | ||
80 | Params: ARRAY MAX_PARAM, 2 OF INTEGER; |
65 | hConsoleOutput: INTEGER; |
81 | argc: INTEGER; |
66 | |
Line 114... | Line 99... | ||
114 | _OpenFile (lpFileName: INTEGER; lpReOpenBuff: OFSTRUCT; uStyle: INTEGER): INTEGER; |
99 | _OpenFile (lpFileName: INTEGER; lpReOpenBuff: OFSTRUCT; uStyle: INTEGER): INTEGER; |
Line 115... | Line 100... | ||
115 | 100 | ||
116 | PROCEDURE [windows-, "kernel32.dll", "GetCurrentDirectoryA"] |
101 | PROCEDURE [windows-, "kernel32.dll", "GetCurrentDirectoryA"] |
Line 117... | Line -... | ||
117 | _GetCurrentDirectory (nBufferLength, lpBuffer: INTEGER): INTEGER; |
- | |
118 | - | ||
119 | PROCEDURE [windows-, "kernel32.dll", "GetSystemTime"] |
- | |
120 | _GetSystemTime (T: TSystemTime); |
102 | _GetCurrentDirectory (nBufferLength, lpBuffer: INTEGER): INTEGER; |
121 | 103 | ||
Line -... | Line 104... | ||
- | 104 | PROCEDURE [windows-, "kernel32.dll", "ExitProcess"] |
|
- | 105 | _ExitProcess (code: INTEGER); |
|
- | 106 | ||
Line 122... | Line 107... | ||
122 | PROCEDURE [windows-, "kernel32.dll", "ExitProcess"] |
107 | PROCEDURE [ccall, "msvcrt.dll", "time"] |
123 | _ExitProcess (code: INTEGER); |
108 | _time (ptr: INTEGER): INTEGER; |
124 | 109 | ||
125 | 110 | ||
Line 213... | Line 198... | ||
213 | END GetArg; |
198 | END GetArg; |
Line 214... | Line 199... | ||
214 | 199 | ||
215 | 200 | ||
216 | PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF CHAR; bytes: INTEGER): INTEGER; |
201 | PROCEDURE FileRead* (F: INTEGER; VAR Buffer: ARRAY OF CHAR; bytes: INTEGER): INTEGER; |
Line 217... | Line 202... | ||
217 | VAR |
202 | VAR |
218 | res, n: INTEGER; |
203 | res: INTEGER; |
219 | 204 | ||
220 | BEGIN |
- | |
221 | IF _ReadFile(F, SYSTEM.ADR(Buffer[0]), bytes, n, NIL) = 0 THEN |
- | |
222 | res := -1 |
205 | BEGIN |
Line 223... | Line 206... | ||
223 | ELSE |
206 | IF _ReadFile(F, SYSTEM.ADR(Buffer[0]), bytes, res, NIL) = 0 THEN |
224 | res := n |
207 | res := -1 |
Line 225... | Line 208... | ||
225 | END |
208 | END |
226 | 209 | ||
227 | RETURN res |
210 | RETURN res |
Line 228... | Line 211... | ||
228 | END FileRead; |
211 | END FileRead; |
229 | 212 | ||
230 | 213 | ||
231 | PROCEDURE FileWrite* (F: INTEGER; Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER; |
- | |
232 | VAR |
- | |
233 | res, n: INTEGER; |
214 | PROCEDURE FileWrite* (F: INTEGER; Buffer: ARRAY OF BYTE; bytes: INTEGER): INTEGER; |
Line 234... | Line 215... | ||
234 | 215 | VAR |
|
235 | BEGIN |
216 | res: INTEGER; |
Line 267... | Line 248... | ||
267 | 248 | ||
268 | RETURN res |
249 | RETURN res |
Line -... | Line 250... | ||
- | 250 | END FileOpen; |
|
- | 251 | ||
- | 252 | ||
- | 253 | PROCEDURE chmod* (FName: ARRAY OF CHAR); |
|
269 | END FileOpen; |
254 | END chmod; |
270 | 255 | ||
271 | 256 | ||
272 | PROCEDURE OutChar* (c: CHAR); |
257 | PROCEDURE OutChar* (c: CHAR); |
273 | VAR |
258 | VAR |
Line 290... | Line 275... | ||
290 | PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN; |
275 | PROCEDURE isRelative* (path: ARRAY OF CHAR): BOOLEAN; |
291 | RETURN ~(letter(path[0]) & (path[1] = ":")) |
276 | RETURN ~(letter(path[0]) & (path[1] = ":")) |
292 | END isRelative; |
277 | END isRelative; |
Line 293... | Line -... | ||
293 | - | ||
294 | - | ||
295 | PROCEDURE now* (VAR year, month, day, hour, min, sec: INTEGER); |
- | |
296 | VAR |
- | |
297 | T: TSystemTime; |
- | |
298 | - | ||
299 | BEGIN |
- | |
300 | _GetSystemTime(T); |
- | |
301 | year := ORD(T.Year); |
- | |
302 | month := ORD(T.Month); |
- | |
303 | day := ORD(T.Day); |
- | |
304 | hour := ORD(T.Hour); |
- | |
305 | min := ORD(T.Min); |
- | |
306 | sec := ORD(T.Sec) |
- | |
307 | END now; |
- | |
308 | 278 | ||
309 | 279 | ||
310 | PROCEDURE UnixTime* (): INTEGER; |
280 | PROCEDURE UnixTime* (): INTEGER; |
Line -... | Line 281... | ||
- | 281 | RETURN _time(0) |
|
- | 282 | END UnixTime; |
|
- | 283 | ||
- | 284 | ||
- | 285 | PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER; |
|
- | 286 | BEGIN |
|
- | 287 | SYSTEM.GET32(SYSTEM.ADR(x), a); |
|
- | 288 | SYSTEM.GET32(SYSTEM.ADR(x) + 4, b) |
|
311 | RETURN 0 |
289 | RETURN a |
312 | END UnixTime; |
290 | END splitf; |
313 | 291 | ||
Line 314... | Line 292... | ||
314 | 292 | ||
315 | PROCEDURE d2s* (x: REAL): INTEGER; |
- | |
316 | VAR |
293 | PROCEDURE d2s* (x: REAL): INTEGER; |
Line 317... | Line 294... | ||
317 | h, l, s, e: INTEGER; |
294 | VAR |
318 | 295 | h, l, s, e: INTEGER; |
|
319 | BEGIN |
296 | |
320 | SYSTEM.GET(SYSTEM.ADR(x), l); |
297 | BEGIN |
Line 335... | Line 312... | ||
335 | e := 1151; |
312 | e := 1151; |
336 | h := 0; |
313 | h := 0; |
337 | l := 0 |
314 | l := 0 |
338 | ELSIF e = 2047 THEN |
315 | ELSIF e = 2047 THEN |
339 | e := 1151; |
316 | e := 1151; |
340 | IF (h MOD 100000H # 0) OR (l # 0) THEN |
317 | IF (h MOD 100000H # 0) OR (BITS(l) * {0..31} # {}) THEN |
341 | h := 80000H; |
318 | h := 80000H; |
342 | l := 0 |
319 | l := 0 |
343 | END |
320 | END |
344 | END; |
321 | END; |
345 | DEC(e, 896) |
322 | DEC(e, 896) |
Line 346... | Line 323... | ||
346 | 323 | ||
347 | RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 |
324 | RETURN LSL(s, 31) + LSL(e, 23) + (h MOD 100000H) * 8 + (l DIV 20000000H) MOD 8 |
Line 348... | Line -... | ||
348 | END d2s; |
- | |
349 | - | ||
350 | - | ||
351 | PROCEDURE splitf* (x: REAL; VAR a, b: INTEGER): INTEGER; |
- | |
352 | VAR |
- | |
353 | res: INTEGER; |
- | |
354 | - | ||
355 | BEGIN |
- | |
356 | a := 0; |
- | |
357 | b := 0; |
- | |
358 | SYSTEM.MOVE(SYSTEM.ADR(x), SYSTEM.ADR(a), 4); |
- | |
359 | SYSTEM.MOVE(SYSTEM.ADR(x) + 4, SYSTEM.ADR(b), 4); |
- | |
360 | SYSTEM.GET(SYSTEM.ADR(x), res) |
- | |
361 | RETURN res |
- | |
362 | END splitf; |
325 | END d2s; |
363 | - | ||
364 | 326 | ||
365 | BEGIN |
327 | |
366 | eol[0] := 0DX; eol[1] := 0AX; eol[2] := 0X; |
328 | BEGIN |
367 | maxreal := 1.9; |
329 | maxreal := 1.9; |
368 | PACK(maxreal, 1023); |
330 | PACK(maxreal, 1023); |
369 | hConsoleOutput := _GetStdHandle(-11); |
331 | hConsoleOutput := _GetStdHandle(-11); |