1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
|
mINT13.SYS is an MS-DOS device driver which implements a memory cache
for data referenced on IBM-PC XT/AT Hard disks. It caches at the
"INT 13H" level and caches tracks.
NOTE WARNING: There is a "re-boot" bug in RAMDrive version 1.16. When
INT13 and RAMDrive are both installed, it is possible
that Ctrl-Alt-Del will not work. This problem is "fixed"
by updating your RAMDrive to version 1.17 or later.
IN CONFIG.SYS:
device = [d:][path]int13.sys [bbbb] [/e | /a] [/d] [/wt:on] [/wc:off]
[/t:nnnnn] [/r:on] [/c:on]
bbbb First numeric argument, if present, is cache size
in K bytes. Default value is 256. Min is 128. Max
is 4096 (4 Meg).
/e Specifies that PC AT Extended Memory is to be used.
It is an error if /E is specified on a machine other
than an IBM PC AT. /E is the default.
NOTE: There is 1k of INT13 overhead. That is to say,
if there are 512k bytes of extended memory, there
will be 511k bytes available for assignment to INT13.
/a Specifies that Above Board memory is to be used. It
is an error if the above board device driver is not
present.
Neither /A or /E Specifies /E
NOTE: THESE ARE THE ONLY CONFIGURATIONS. You must either have an
Above Board (or compatible), or you must have extended memory
on an IBM PC-AT (or compatible).
/d Disable caching. Causes INT13 to come up with caching
disabled (default is enabled).
/wt:on Enable write through. When INT13 is
caching write information, it is a good idea to imply
a flush of the cache on some operations so that in
case of a crash or power failure the information in
the cache which is not on the disk will not be lost.
/wt:on enables write through on full track INT 13s which
are to tracks not currently in the cache. /wt:off
disables it. INT13 is faster with write through
disabled, at the expense of there being a bigger risk of
loosing data. /wt:on IS NOT a substitute for flushing
before a re-boot!!!! The write through mechanism is far
from perfect, all it is is a risk REDUCER, not a risk
eliminator. Write through is off by default.
/wc:off - Disable write caching. There is risk when
caching "dirty" information that the system will crash,
or be re-booted, or be turned off before this
information can be written to the disk. This may
corrupt the disk. This risk can be ELIMINATED, at the
expense of cache performance, by NOT caching any dirty
information. /wc:off disables the caching of dirty
information, eliminating the risk. Write caching is
on by default.
/t:nnnnn - Set the auto flush interval. INT13 listens on the
system timer to note the passage of time and "age" the
dirty information in the cache. Every nnnnn ticks,
the cache is flushed. The timer ticks 18.2 times a
second.
nnnnn |
===========================================
18 | Flush every second
1092 | Flush every minute
5460 | Flush every 5 minutes
10920 | Flush every 10 minutes
21840 | Flush every 20 minutes
32760 | Flush every 30 minutes
65520 | Flush every hour
The default setting of nnnnn is 1092 or every minute.
nnnnn = 0 causes a wait for 65536 ticks which is a
little over an hour. The max value for nnnnn is 65535.
/r:on - Enable re-boot flush.
This enables the flush on re-boot logic. The default
is /r:off. This enables a flush in the Ctrl-Alt-Del
keyboard re-boot logic. NOTE WARNING DANGER!!!!!!!!
Enabling this feature can cause strange system behavior.
You will have to type Ctrl-Alt-Del twice at least. This
can adversly effect other software in the system.
The result of this can be very unpredictable.
/c:on - Enable all cache on reads.
Normally INT13 does not cache EVERY I/O. Whenever
it sees a full track I/O which is not currently in
the cache, it DOES NOT cache that track. This is
an optimization for "typical" operation, and actually
increases performance. This is the default setting
(/c:off). There may be some cases where it is desirable
that ALL reads be cached. One example is that you are
"loading" the cache prior to locking it with FLUSH13 /l.
With /c:off, some pieces of what you're trying to load
may not get into the cache. Another example is that
you continually access in a sequential manner (like
program load) some large file which happens to be
contiguous on the disk. Again, there may be some "piece"
of the file which does not get into the cache with
/c:off. /c:on enables the caching of ALL reads.
NOTE: The same "don't bother caching operations which
are full track and not in the cache" applies
to writes as well. /c has NO EFFECT on this
behavior however. /c only effects read operations.
MESSAGES:
INT13: Above Board Memory Manager not present
The /A switch was given but INT13 could not detect the presence of the
Above Board memory manager. You need to have a
device = EMM.SYS
line in your CONFIG.SYS file before you have any device = int13.sys
lines. INT13 will install a driver, but it will be non-functional.
INT13: Above Board Memory Status shows error
During the process of trying to set up the cache in Above Board memory
an error was detected. Run the Above Board Confidence test to test
your Above Board memory. INT13 will install a driver, but it will be
non-functional.
INT13: Computer must be PC-AT, or PC-AT compatible
The /E switch can only be given on an IBM PC AT or an IBM PC AT
compatible computer that has the FCH model byte (byte at FFFF:000E).
INT13 will install a driver, but it will be non-functional.
INT13: No extended memory available
Your system has NO memory for RAMDrive drives.
INT13 will install a driver, but it will be non-functional.
INT13: Insufficient memory
Your system has some memory available for INT13 cache, but not enough
to set up a driver. INT13 will install a driver, but it will be non-functional.
INT13: Invalid parameter
You specified too many parameters, your numeric parameter is not
valid, you specified conflicting or too many switches. Edit your CONFIG.SYS
file and fix the INT13 line. INT13 will install a driver, but it will
be non-functional.
INT13: Incorrect DOS version
INT13 only runs on 2.X and 3.X versions of DOS.
INT13 will install a driver, but it will be non-functional.
INT13: I/O error accessing cache memory
During the set up of the INT13 cache, an error was detected trying to
access the cache memory. Run any memory tests you have that will
exercise your extended or expanded memory.
INT13 will install a driver, but it will be non-functional.
INT13: No hardfiles on system
INT13 could not find any hardfiles on your system. Only hardfiles
which are compatible with IBM hardfiles at the ROM BIOS INT 13H
level can be supported. INT13 will install a driver, but it will
be non-functional.
INT13: Too many bytes per track on hardfile
One of the hardfiles on your system defined a very large track.
This track is too large for INT13 to be able to cache it.
INT13 will install a driver, but it will be non-functional.
Microsoft INT13 Cache version Y.YY
INT13 Header message, Y.YY is the version of INT13.
Cache size: nnnnk in UUUUUU Memory
Room for tttt tracks of ssss sectors each
This is an informational message from INT13 telling you how many Kilo Bytes
of memory were assigned to the cache and what type of memory it is, how many
tracks this allows to be buffered and how many sectors there are per track.
NOTE: There is nothing to "prevent" you from having two device = INT13.SYS
lines in your CONFIG.SYS file, but you should not do this. Very
unpredictable behavior will occur, and FLUSH13 will only "talk" to
one of them.
INT13 has several behavior aspects that can be changed. This is done
with the FLUSH13 utility.
FLUSH13 [/s|/sx|/sr] [/d|/e] [/l|/u] [/i] [/f] [/wt:on|/wt:off]
[/wc:on|/wc:off] [/t:nnnnn] [/r:on|/r:off] [/c:on|/c:off]
No arguments - This causes FLUSH13 to flush out any "dirty"
tracks in the INT13 cache. A "dirty" track is one
which has been written into the cache, but not yet
written to the disk. This invokation causes all dirty tracks
to be written out to the disk so that the system can
be re-booted or turned off. NOTE: FAILURE TO FLUSH
THE CACHE BEFORE A RE-BOOT OR POWER OFF CAN CAUSE THE
INFORMATION ON THE HARDFILE TO BE CORRUPTED.
/f - Flush. Same as the no arguments case, but allows you to
perform the flush and do something else (like /s).
/i - Flush and invalidate. This is the same as the no argument
case except that all of the information in the cache
is also discarded. This makes the cache EMPTY.
/d - Disable caching. This causes all dirty cache information
to be flushed and all caching to stop.
/e - Enable caching. This causes caching to be enabled after
a previous /d disable. When INT13 is started it is enabled.
/l - Lock the cache. This causes all dirty information to be
flushed, and the cache contents to be locked in the cache.
When in this mode the locked elements will not be discarded
to make room for new tracks. This can be used
to "load" the cache with desired things. For instance if
you use the "foobar" program a lot, you can run foobar,
causing it to be loaded into the cache, then lock the cache.
This causes the foobar program to always be in the cache.
You may lock the cache as many times as you want. Each lock
causes the current information (including any previously
locked information) to be locked.
NOTE: Information in a locked cache is READ ONLY!! Any write
operation on information in a locked cache causes the
information to be unlocked.
/u - Unlock the cache. This undoes a previous /l and returns
the cache to normal operation.
/s - Print status. This displays the settings of the setable
device parameters.
/sx - Print extended status. Same as /s, only additional
Statistical information is also given.
/sr - Reset statistics. Same as /sx, only the additional
Statistical information is reset to 0.
/wt:on off - Enable or Disable write through. When INT13 is caching
write information, it is a good idea to imply a flush of
the cache on some operations so that in case of a crash or
power failure the information in the cache which is not on
the disk will not be lost. /wt:on enables write through on full
track INT 13s which are to tracks not currently in the cache.
/wt:off disables it. INT13 is faster with write through
off, at the expense of there being a bigger risk of
loosing data. /wt:on IS NOT a substitute for flushing before
a re-boot!!!! This write through mechanism is far from perfect,
all it is is a risk REDUCER, not a risk eliminator. /wt:off
is the setting when INT13 is started.
/wc:on off - Enable or Disable write caching. There is risk when
caching "dirty" information that the system will crash,
or be re-booted, or be turned off before this information
can be written to the disk. This may corrupt the disk.
This risk can be ELIMINATED, at the expense of cache
performance, by NOT caching any dirty information.
/wc:off disables the caching of dirty information,
eliminating the risk. /wc:on enables the caching of dirty
information. /wc:on is the default when INT13 is started.
WARNING: You must be careful to flush the cache before
re-booting the system, or turning it off if /wc:on is selected.
You should also be careful to disable the cache (/d), or do
/wc:off before running any program under development which
has a chance of crashing due to bugs.
NOTE: When /wc:off is selected, write info CAN get into
the cache (when the write is to a track which is currently
in the cache). The difference is that this "dirty" information
is IMMEDIATELY written out to the disk instead of being
held in the cache in the "dirty" state. When the write is
to a track that is not in the cache, it will be passed
through to the disk without being cached.
/t:nnnnn - Set the auto flush interval. INT13 listens on the system
timer to note the passage of time and "age" the dirty
information in the cache. Every nnnnn ticks, the cache is
flushed. The timer ticks 18.2 times a second.
nnnnn |
===========================================
18 | Flush every second
1092 | Flush every minute
5460 | Flush every 5 minutes
10920 | Flush every 10 minutes
21840 | Flush every 20 minutes
32760 | Flush every 30 minutes
65520 | Flush every hour
The default setting of nnnnn is 1092 or every minute.
NOTE: There is no way to "disable" this tick aging. Setting
nnnnn = 0 causes a wait for 65536 ticks which is a
little over an hour. The max value for nnnnn is 65535.
Disabling the cache (/d), or turning write caching
off (/wc:off) effectively prevents the aging from
doing anything as there is never anything to flush
in these cases. Setting very low values of nnnnn
should be avoided as it places a lot of overhead into
the timer interrupt service. Rather than set low values,
it is better to just turn off write caching (/wc:off).
NOTE: As stated above, the max value for nnnnn is 65535. It
should be noted however that FLUSH13 DOES NOT object if
you specify a number larger than this! It will simply
use only the low 16 bits of the number.
/r:on off - En/Disable reboot flush.
INT13 has a provision for detecting Ctrl-Alt-Del user
reboots. /r:on enables a flush of the cache at this time
to prevent the disks from being corrupted. The default
setting is /r:off. NOTE WARNING DANGER!!!!! Enabling
this feature can prevent disks from being damaged BUT
the mechanism has flaws. For one, you will have to hit
Ctrl-Alt-Del a second time to get the system to reboot.
YOU MUST NOT POUND ON THE KEY. You will crash the system if
you do. Hit the key ONCE, if the system re-boots, fine. If
there is info to flush out of the cache, the drive light
will come on and the system will probably NOT reboot. WAIT
until the drive light is OFF before hitting Ctrl-Alt-Del
again. This feature of INT13 MAY NOT WORK with other
software in the system. USER BEWARE!!!!!!!!!!!!!!!!!!!
/c:on off - En/Disable all cache on reads.
Normally INT13 does not cache EVERY I/O. Whenever
it sees a full track I/O which is not currently in
the cache, it DOES NOT cache that track. This is
an optimization for "typical" operation, and actually
increases performance. This is the default setting
(/c:off). There may be some cases where it is desirable
that ALL reads be cached. One example is that you are
"loading" the cache prior to locking it with FLUSH13 /l.
With /c:off, some pieces of what you're trying to load
may not get into the cache. Another example is that
you continually access in a sequential manner (like
program load) some large file which happens to be
contiguous on the disk. Again, there may be some "piece"
of the file which does not get into the cache with
/c:off. /c:on enables the caching of ALL reads.
NOTE: The same "don't bother caching operations which
are full track and not in the cache" applies
to writes as well. /c has NO EFFECT on this
behavior however. /c only effects read operations.
If invalid or conflicting arguments are given, FLUSH13 prints a usage line.
|