Rev 7696 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 7696 | Rev 7983 | ||
---|---|---|---|
Line 1... | Line 1... | ||
1 | (* |
1 | (* |
2 | BSD 2-Clause License |
2 | BSD 2-Clause License |
Line 3... | Line 3... | ||
3 | 3 | ||
4 | Copyright (c) 2018-2019, Anton Krotov |
4 | Copyright (c) 2018-2020, Anton Krotov |
5 | All rights reserved. |
5 | All rights reserved. |
Line 6... | Line 6... | ||
6 | *) |
6 | *) |
Line 15... | Line 15... | ||
15 | FILE* = POINTER TO RECORD (C.ITEM) |
15 | FILE* = POINTER TO RECORD (C.ITEM) |
Line 16... | Line 16... | ||
16 | 16 | ||
Line 17... | Line 17... | ||
17 | ptr: INTEGER; |
17 | ptr: INTEGER; |
18 | 18 | ||
- | 19 | buffer: ARRAY 64*1024 OF BYTE; |
|
- | 20 | count: INTEGER; |
|
Line 19... | Line 21... | ||
19 | buffer: ARRAY 64*1024 OF BYTE; |
21 | |
Line 20... | Line 22... | ||
20 | count: INTEGER |
22 | chksum*: INTEGER |
Line 81... | Line 83... | ||
81 | ptr := UTILS.FileCreate(name); |
83 | ptr := UTILS.FileCreate(name); |
Line 82... | Line 84... | ||
82 | 84 | ||
83 | IF ptr > 0 THEN |
85 | IF ptr > 0 THEN |
84 | file := NewFile(); |
86 | file := NewFile(); |
85 | file.ptr := ptr; |
87 | file.ptr := ptr; |
- | 88 | file.count := 0; |
|
86 | file.count := 0 |
89 | file.chksum := 0 |
87 | ELSE |
90 | ELSE |
88 | file := NIL |
91 | file := NIL |
Line 89... | Line 92... | ||
89 | END |
92 | END |
Line 188... | Line 191... | ||
188 | END write; |
191 | END write; |
Line 189... | Line 192... | ||
189 | 192 | ||
190 | 193 | ||
191 | PROCEDURE WriteByte* (file: FILE; byte: BYTE): BOOLEAN; |
194 | PROCEDURE WriteByte* (file: FILE; byte: BYTE): BOOLEAN; |
Line 192... | Line 195... | ||
192 | VAR |
195 | VAR |
193 | res: BOOLEAN; |
196 | arr: ARRAY 1 OF BYTE; |
194 | - | ||
195 | BEGIN |
- | |
196 | res := TRUE; |
- | |
197 | IF (file # NIL) & (file.count >= 0) THEN |
- | |
198 | IF file.count = LEN(file.buffer) THEN |
- | |
199 | IF flush(file) # LEN(file.buffer) THEN |
- | |
200 | res := FALSE |
197 | |
201 | ELSE |
- | |
202 | file.buffer[0] := byte; |
- | |
203 | file.count := 1 |
- | |
204 | END |
- | |
205 | ELSE |
- | |
206 | file.buffer[file.count] := byte; |
- | |
207 | INC(file.count) |
- | |
208 | END |
- | |
209 | ELSE |
- | |
210 | res := FALSE |
- | |
211 | END |
198 | BEGIN |
Line 212... | Line 199... | ||
212 | 199 | arr[0] := byte |
|
213 | RETURN res |
200 | RETURN write(file, arr, 1) = 1 |