-
Notifications
You must be signed in to change notification settings - Fork 20
/
cpm.ps
478 lines (478 loc) · 20.5 KB
/
cpm.ps
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
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
%!PS-Adobe-3.0
%%Creator: groff version 1.19
%%CreationDate: Sun Feb 3 19:48:55 2013
%%DocumentNeededResources: font Times-Roman
%%+ font Times-Bold
%%+ font Times-Italic
%%DocumentSuppliedResources: procset grops 1.19 0
%%Pages: 4
%%PageOrder: Ascend
%%DocumentMedia: Default 595 842 0 () ()
%%Orientation: Portrait
%%EndComments
%%BeginDefaults
%%PageMedia: Default
%%EndDefaults
%%BeginProlog
%%BeginResource: procset grops 1.19 0
/setpacking where{
pop
currentpacking
true setpacking
}if
/grops 120 dict dup begin
/SC 32 def
/A/show load def
/B{0 SC 3 -1 roll widthshow}bind def
/C{0 exch ashow}bind def
/D{0 exch 0 SC 5 2 roll awidthshow}bind def
/E{0 rmoveto show}bind def
/F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
/G{0 rmoveto 0 exch ashow}bind def
/H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/I{0 exch rmoveto show}bind def
/J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
/K{0 exch rmoveto 0 exch ashow}bind def
/L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/M{rmoveto show}bind def
/N{rmoveto 0 SC 3 -1 roll widthshow}bind def
/O{rmoveto 0 exch ashow}bind def
/P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/Q{moveto show}bind def
/R{moveto 0 SC 3 -1 roll widthshow}bind def
/S{moveto 0 exch ashow}bind def
/T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
/SF{
findfont exch
[exch dup 0 exch 0 exch neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/MF{
findfont
[5 2 roll
0 3 1 roll
neg 0 0]makefont
dup setfont
[exch/setfont cvx]cvx bind def
}bind def
/level0 0 def
/RES 0 def
/PL 0 def
/LS 0 def
/MANUAL{
statusdict begin/manualfeed true store end
}bind def
/PLG{
gsave newpath clippath pathbbox grestore
exch pop add exch pop
}bind def
/BP{
/level0 save def
1 setlinecap
1 setlinejoin
72 RES div dup scale
LS{
90 rotate
}{
0 PL translate
}ifelse
1 -1 scale
}bind def
/EP{
level0 restore
showpage
}bind def
/DA{
newpath arcn stroke
}bind def
/SN{
transform
.25 sub exch .25 sub exch
round .25 add exch round .25 add exch
itransform
}bind def
/DL{
SN
moveto
SN
lineto stroke
}bind def
/DC{
newpath 0 360 arc closepath
}bind def
/TM matrix def
/DE{
TM currentmatrix pop
translate scale newpath 0 0 .5 0 360 arc closepath
TM setmatrix
}bind def
/RC/rcurveto load def
/RL/rlineto load def
/ST/stroke load def
/MT/moveto load def
/CL/closepath load def
/Fr{
setrgbcolor fill
}bind def
/setcmykcolor where{
pop
/Fk{
setcmykcolor fill
}bind def
}if
/Fg{
setgray fill
}bind def
/FL/fill load def
/LW/setlinewidth load def
/Cr/setrgbcolor load def
/setcmykcolor where{
pop
/Ck/setcmykcolor load def
}if
/Cg/setgray load def
/RE{
findfont
dup maxlength 1 index/FontName known not{1 add}if dict begin
{
1 index/FID ne{def}{pop pop}ifelse
}forall
/Encoding exch def
dup/FontName exch def
currentdict end definefont pop
}bind def
/DEFS 0 def
/EBEGIN{
moveto
DEFS begin
}bind def
/EEND/end load def
/CNT 0 def
/level1 0 def
/PBEGIN{
/level1 save def
translate
div 3 1 roll div exch scale
neg exch neg exch translate
0 setgray
0 setlinecap
1 setlinewidth
0 setlinejoin
10 setmiterlimit
[]0 setdash
/setstrokeadjust where{
pop
false setstrokeadjust
}if
/setoverprint where{
pop
false setoverprint
}if
newpath
/CNT countdictstack def
userdict begin
/showpage{}def
/setpagedevice{}def
}bind def
/PEND{
clear
countdictstack CNT sub{end}repeat
level1 restore
}bind def
end def
/setpacking where{
pop
setpacking
}if
%%EndResource
%%BeginFeature: *PageSize Default
<< /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
%%EndFeature
%%IncludeResource: font Times-Roman
%%IncludeResource: font Times-Bold
%%IncludeResource: font Times-Italic
grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
/Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
/.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
/ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
/period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
/semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
/P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
/underscore/quoteleft/a/b/c/d/e/f/g/h/i/j/k/l/m/n/o/p/q/r/s/t/u/v/w/x/y
/z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
/guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
/endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
/dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
/quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
/brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
/logicalnot/minus/registered/macron/degree/plusminus/twosuperior
/threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
/ordmasculine/guilsinglright/onequarter/onehalf/threequarters
/questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
/Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
/Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
/multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
/germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
/egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
/eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
/ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
/Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
/Times-Roman@0 ENC0/Times-Roman RE
%%EndProlog
%%Page: 1 1
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
(formats CPM\(5\))2.5 F/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME)
.219 E F0(cpm \255 CP/M disk and \214le system format)108 96 Q F1
(DESCRIPTION)72 112.8 Q/F2 10/Times-Bold@0 SF(Characteristic sizes)87
124.8 Q F0(Each CP/M disk format is described by the follo)108 136.8 Q
(wing speci\214c sizes:)-.25 E(Sector size in bytes)144 160.8 Q
(Number of tracks)144 172.8 Q(Number of sectors)144 184.8 Q(Block size)
144 196.8 Q(Number of directory entries)144 208.8 Q(Logical sector sk)
144 220.8 Q -.25(ew)-.1 G(Number of reserv)144 232.8 Q
(ed system tracks \(optional\))-.15 E(Of)144 244.8 Q(fset to start of v)
-.25 E(olume \(optional\))-.2 E 2.848(Ab)108 268.8 S .348
(lock is the smallest allocatable storage unit.)-2.848 F .347
(CP/M supports block sizes of 1024, 2048, 4096, 8192 and)5.348 F .207
(16384 bytes.)108 280.8 R(Unfortunately)5.207 E 2.707(,t)-.65 G .208(hi\
s format speci\214cation is not stored on the disk and there are lots o\
f formats.)-2.707 F(Accessing a block is performed by accessing its sec\
tors, which are stored with the gi)108 292.8 Q -.15(ve)-.25 G 2.5(ns).15
G(oftw)-2.5 E(are sk)-.1 E -.25(ew)-.1 G(.)-.4 E F2(De)87 309.6 Q
(vice ar)-.15 E(eas)-.18 E F0 2.5(AC)108 321.6 S
(P/M disk contains three areas:)-2.5 E -1.29(Vo)144 345.6 S(lume of)1.29
E(fset \(optional\))-.25 E(System tracks \(optional\))144 357.6 Q
(Directory)144 369.6 Q(Data)144 381.6 Q .058
(The system tracks store the boot loader and CP/M itself.)108 405.6 R
.058(In order to sa)5.058 F .358 -.15(ve d)-.2 H .057
(isk space, there are non-bootable).15 F 1.55
(formats which omit those system tracks.)108 417.6 R 1.55(The term)6.55
F/F3 10/Times-Italic@0 SF 1.55(disk capacity)4.05 F F0(al)4.05 E -.1(wa)
-.1 G 1.55(ys e).1 F 1.55(xcludes the space for system)-.15 F 2.748
(tracks. Note)108 429.6 R .248
(that there is no bitmap or list for free blocks.)2.748 F .248
(When accessing a dri)5.248 F .548 -.15(ve f)-.25 H .248
(or the \214rst time, CP/M).15 F -.2(bu)108 441.6 S
(ilds this bitmap in core from the directory).2 E(.)-.65 E 3.15(Ah)108
458.4 S .65(ard disk can ha)-3.15 F .95 -.15(ve t)-.2 H .65
(he additional notion of a).15 F F3 .65(volume of)3.15 F(fset)-.18 E F0
.65(to locate the start of the dri)3.15 F .95 -.15(ve i)-.25 H .65
(mage \(which).15 F .531(may or may not ha)108 470.4 R .831 -.15(ve s)
-.2 H .531(ystem tracks associated with it\). The base unit for v).15 F
.53(olume of)-.2 F .53(fset is byte count from)-.25 F 1.224(the be)108
482.4 R 1.224(ginning of the ph)-.15 F 1.224(ysical disk, b)-.05 F 1.225
(ut speci\214ers of)-.2 F F3(K)3.725 E F0(,)A F3(M)3.725 E F0(,)A F3(T)
3.725 E F0(or)3.725 E F3(S)3.725 E F0 1.225
(may be appended to denote kilobytes,)3.725 F(me)108 494.4 Q -.05(ga)
-.15 G .806(bytes, tracks or sectors.).05 F .806(If pro)5.806 F .805
(vided, a speci\214er must immediately follo)-.15 F 3.305(wt)-.25 G .805
(he numeric v)-3.305 F .805(alue with no)-.25 F 2.881(whitespace. F)108
506.4 R .381(or con)-.15 F -.15(ve)-.4 G .381(nience upper and lo).15 F
.381(wer case are both accepted and only the \214rst letter is signi\
\214cant,)-.25 F .02(thus 2KB, 8MB, 1000trk and 16sec are v)108 518.4 R
.019(alid v)-.25 F .019(alues. Of)-.25 F .019
(fset must appear subsequent to track, sector and sec-)-.25 F
(tor length v)108 530.4 Q(alues.)-.25 E F2(Dir)87 547.2 Q
(ectory entries)-.18 E F0 .408
(The directory is a sequence of directory entries \(also called e)108
559.2 R .409(xtents\), which contain 32 bytes of the follo)-.15 F(w-)
-.25 E(ing structure:)108 571.2 Q 4.16(St F0)144 595.2 R 1.94
(F1 F2 F3 F4 F5 F6 F7 E0)4.44 F 1.39(E1 E2 Xl)3.89 F 1.39(Bc Xh)5 F(Rc)
2.78 E 2.5(Al Al Al Al Al Al Al Al Al Al Al Al Al Al Al Al)144 607.2 R
F2(St)108 631.2 Q F0(is the status; possible v)2.5 E(alues are:)-.25 E
(0\21115: used for \214le, status is the user number)144 655.2 Q .795(1\
6\21131: used for \214le, status is the user number \(P2DOS\) or used f\
or passw)144 667.2 R .794(ord e)-.1 F .794(xtent \(CP/M 3 or)-.15 F
(higher\))144 679.2 Q(32: disc label)144 691.2 Q
(33: time stamp \(P2DOS\))144 703.2 Q(0xE5: unused)144 715.2 Q
(CP/M tools)72 768 Q(February 18, 2012)151.35 E(1)192.2 E 0 Cg EP
%%Page: 2 2
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
(formats CPM\(5\))2.5 F/F1 10/Times-Bold@0 SF(F0\211E2)108 84 Q F0 .412
(are the \214le name and its e)2.912 F 2.913(xtension. The)-.15 F 2.913
(ym)-.15 G .413(ay consist of an)-2.913 F 2.913(yp)-.15 G .413
(rintable 7 bit ASCII character b)-2.913 F(ut:)-.2 E F1(<)2.913 E 3.362
(>.,;:=?*[])108 96 S F0 5.862(.T)-3.362 G .862
(he \214le name must not be empty)-5.862 F 3.361(,t)-.65 G .861(he e)
-3.361 F .861(xtension may be empty)-.15 F 5.861(.B)-.65 G .861
(oth are padded with)-5.861 F 2.831(blanks. The)108 108 R .331
(highest bit of each character of the \214le name and e)2.831 F .331
(xtension is used as attrib)-.15 F 2.832(ute. The)-.2 F(attrib)2.832 E
(utes)-.2 E(ha)108 120 Q .3 -.15(ve t)-.2 H(he follo).15 E
(wing meaning:)-.25 E(F0: requires set wheel byte \(Backgrounder II\))
144 144 Q(F1: public \214le \(P2DOS, ZSDOS\), for)144 156 Q
(ground-only command \(Backgrounder II\))-.18 E
(F2: date stamp \(ZSDOS\), background-only commands \(Backgrounder II\))
144 168 Q(F7: wheel protect \(ZSDOS\))144 180 Q(E0: read-only)144 192 Q
(E1: system \214le)144 204 Q(E2: archi)144 216 Q -.15(ve)-.25 G(d).15 E
.338(Public \214les \(visible under each user number\) are not supporte\
d by CP/M 2.2, b)108 240 R .338(ut there is a patch and some)-.2 F
(free CP/M clones support them without an)108 252 Q 2.5(yp)-.15 G
(atches.)-2.5 E .827(The wheel byte is \(by def)108 268.8 R .828
(ault\) the memory location at 0x4b)-.1 F 5.828(.I)-.4 G 3.328(fi)-5.828
G 3.328(ti)-3.328 G 3.328(sz)-3.328 G .828(ero, only non-pri)-3.328 F
(vile)-.25 E .828(ged commands)-.15 F(may be e)108 280.8 Q -.15(xe)-.15
G(cuted.).15 E F1(Xl)108 297.6 Q F0(and)2.546 E F1(Xh)2.546 E F0 .046
(store the e)2.546 F .046(xtent number)-.15 F 5.046(.A)-.55 G .045
(\214le may use more than one directory entry)-2.5 F 2.545(,i)-.65 G
2.545(fi)-2.545 G 2.545(tc)-2.545 G .045(ontains more blocks)-2.545 F
.21(than an e)108 309.6 R .21(xtent can hold.)-.15 F .21
(In this case, more e)5.21 F .21
(xtents are allocated and each of them is numbered sequentially)-.15 F
.457(with an e)108 321.6 R .457(xtent number)-.15 F 5.457(.I)-.55 G
2.957(fap)-5.457 G -.05(hy)-2.957 G .457(sical e).05 F .456
(xtent stores more than 16k, it is considered to contain multiple logi-)
-.15 F .234(cal e)108 333.6 R .234
(xtents, each pointing to 16k data, and the e)-.15 F .234
(xtent number of the last used logical e)-.15 F .235(xtent is stored.)
-.15 F(Note:)5.235 E 1.55(Some formats decided to al)108 345.6 R -.1(wa)
-.1 G 1.549(ys store only one logical e).1 F 1.549(xtent in a ph)-.15 F
1.549(ysical e)-.05 F 1.549(xtent, thus w)-.15 F 1.549(asting e)-.1 F
(xtent)-.15 E 2.81(space. CP/M)108 357.6 R .31(2.2 allo)2.81 F .31
(ws 512 e)-.25 F .31(xtents per \214le, CP/M 3 and higher allo)-.15 F
2.811(wu)-.25 G 2.811(pt)-2.811 G 2.811(o2)-2.811 G 2.811(048. Bit)
-2.811 F .311(5\2117 of Xl are 0, bit)2.811 F .577(0\2114 store the lo)
108 369.6 R .577(wer bits of the e)-.25 F .576(xtent number)-.15 F 5.576
(.B)-.55 G .576
(it 6 and 7 of Xh are 0, bit 0\2115 store the higher bits of the)-5.576
F -.15(ex)108 381.6 S(tent number).15 E(.)-.55 E F1(Rc)108 398.4 Q F0
(and)2.946 E F1(Bc)2.946 E F0 .446
(determine the length of the data used by this e)2.946 F 2.946
(xtent. The)-.15 F(ph)2.947 E .447(ysical e)-.05 F .447(xtent is di)-.15
F .447(vided into logical)-.25 F -.15(ex)108 410.4 S .156
(tents, each of them being 16k in size \(a ph).15 F .156(ysical e)-.05 F
.156(xtent must hold at least one logical e)-.15 F .156
(xtent, e.g. a block-)-.15 F .053(size of 1024 byte with tw)108 422.4 R
.054(o-byte block pointers is not allo)-.1 F 2.554(wed\). Rc)-.25 F .054
(stores the number of 128 byte records of)2.554 F .457
(the last used logical e)108 434.4 R 2.957(xtent. Bc)-.15 F .456
(stores the number of bytes in the last used record.)2.957 F .456(The v)
5.456 F .456(alue 0 means 128)-.25 F .654(for backw)108 446.4 R .654
(ard compatibility with CP/M 2.2, which did not support Bc.)-.1 F .655
(ISX records the number of unused)5.655 F(instead of used bytes in Bc.)
108 458.4 Q F1(Al)108 475.2 Q F0 .9(stores block pointers.)3.4 F .899(I\
f the disk capacity is less than 256 blocks, Al is interpreted as 16 by\
te-v)5.9 F(alues,)-.25 E .243(otherwise as 8 double-byte-v)108 487.2 R
2.743(alues. A)-.25 F .243
(block pointer of 0 marks a hole in the \214le.)2.743 F .243
(If a hole co)5.243 F -.15(ve)-.15 G .243(rs the range).15 F .341
(of a full e)108 499.2 R .341(xtent, the e)-.15 F .341
(xtent will not be allocated.)-.15 F .34(In particular)5.341 F 2.84(,t)
-.4 G .34(he \214rst e)-2.84 F .34
(xtent of a \214le does not neccessarily)-.15 F(ha)108 511.2 Q .479 -.15
(ve ex)-.2 H .179(tent number 0.).15 F 2.679<418c>5.179 G .18
(le may not share blocks with other \214les, as its blocks w)-2.679 F
.18(ould be freed if the other)-.1 F .822
(\214les is erased without a follo)108 523.2 R .822
(wing disk system reset.)-.25 F .822
(CP/M returns EOF when it reaches a hole, whereas)5.822 F
(UNIX returns zero-v)108 535.2 Q(alue bytes, which mak)-.25 E
(es holes in)-.1 E(visible.)-.4 E F1(Nati)87 552 Q .2 -.1(ve t)-.1 H
(ime stamps).1 E F0 1.053(P2DOS and CP/M Plus support time stamps, whic\
h are stored in each fourth directory entry)108 564 R 6.054(.T)-.65 G
1.054(his entry)-6.054 F 1.3(contains the time stamps for the e)108 576
R 1.299(xtents using the pre)-.15 F 1.299
(vious three directory entries.)-.25 F 1.299(Note that you really)6.299
F(ha)108 588 Q 1.294 -.15(ve t)-.2 H .994(ime stamps for each e).15 F
.994(xtent, no matter if it is the \214rst e)-.15 F .994
(xtent of a \214le or not.)-.15 F .995(The structure of time)5.994 F
(stamp entries is:)108 600 Q 2.5(1b)144 624 S(yte status 0x21)-2.5 E 2.5
(8b)144 636 S(ytes time stamp for third-last directory entry)-2.5 E 2.5
(2b)144 648 S(ytes unused)-2.5 E 2.5(8b)144 660 S
(ytes time stamp for second-last directory entry)-2.5 E 2.5(2b)144 672 S
(ytes unused)-2.5 E 2.5(8b)144 684 S
(ytes time stamp for last directory entry)-2.5 E 2.872(At)108 708 S .372
(ime stamp consists of tw)-2.872 F 2.872(od)-.1 G .372(ates: Creation a\
nd modi\214cation date \(the latter being recorded when the \214le)
-2.872 F .935(is closed\).)108 720 R .936(CP/M Plus further allo)5.935 F
.936(ws optionally to record the access instead of creation date as \
\214rst time)-.25 F(CP/M tools)72 768 Q(February 18, 2012)151.35 E(2)
192.2 E 0 Cg EP
%%Page: 3 3
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
(formats CPM\(5\))2.5 F(stamp.)108 84 Q 2.5(2b)144 108 S
(ytes \(little-endian\) days starting with 1 at 01-01-1978)-2.5 E 2.5
(1b)144 120 S(yte hour in BCD format)-2.5 E 2.5(1b)144 132 S
(yte minute in BCD format)-2.5 E/F1 10/Times-Bold@0 SF
(DateStamper time stamps)87 160.8 Q F0 .552(The DateStamper softw)108
172.8 R .552(are added functions to the BDOS to manage time stamps by a\
llocating a read only)-.1 F .441(\214le with the name "!!!TIME&.D)108
184.8 R -1.11(AT)-.4 G 2.941("i)1.11 G 2.941(nt)-2.941 G .441(he v)
-2.941 F .441(ery \214rst directory entry)-.15 F 2.941(,c)-.65 G -.15
(ove)-2.941 G .441(ring the v).15 F .442(ery \214rst data blocks.)-.15 F
(It)5.442 E(contains one entry per directory entry with the follo)108
196.8 Q(wing structure of 16 bytes:)-.25 E 2.5(5b)144 220.8 S
(ytes create date\214eld)-2.5 E 2.5(5b)144 232.8 S
(ytes access date\214eld)-2.5 E 2.5(5b)144 244.8 S
(ytes modify date\214eld)-2.5 E 2.5(1b)144 256.8 S(yte checksum)-2.5 E
.237(The checksum is only used on e)108 280.8 R -.15(ve)-.25 G .236(ry \
8th entry \(last entry in 128-byte record\) and is the sum of the \214r\
st 127).15 F(bytes of the record.)108 292.8 Q
(Each date\214eld has this structure:)5 E 2.5(1b)144 316.8 S
(yte BCD coded year \(no century)-2.5 E 2.5(,s)-.65 G 2.5(oi)-2.5 G 2.5
(ti)-2.5 G 2.5(ss)-2.5 G(ane assuming an)-2.5 E 2.5(yy)-.15 G
(ear < 70 means 21st century\))-2.5 E 2.5(1b)144 328.8 S
(yte BCD coded month)-2.5 E 2.5(1b)144 340.8 S(yte BCD coded day)-2.5 E
2.608(1b)144 352.8 S .108(yte BCD coded hour or)-2.608 F 2.608(,i)-.4 G
2.608(ft)-2.608 G .108(he high bit is set, the high byte of a counter f\
or systems without real)-2.608 F(time clock)144 364.8 Q 2.5(1b)144 376.8
S(yte BCD coded minute, or the lo)-2.5 E 2.5(wb)-.25 G
(yte of the counter)-2.5 E F1(Disc labels)87 405.6 Q F0 .258(CP/M Plus \
support disc labels, which are stored in an arbitrary directory entry)
108 417.6 R 5.257(.T)-.65 G .257(he structure of disc labels)-5.257 F
(is:)108 429.6 Q 2.5(1b)144 453.6 S(yte status 0x20)-2.5 E F1(F0\211E2)
144 465.6 Q F0(are the disc label)2.5 E 2.886(1b)144 477.6 S .386
(yte mode: bit 7 acti)-2.886 F -.25(va)-.25 G .386(tes passw).25 F .387
(ord protection, bit 6 causes time stamps on access, b)-.1 F .387
(ut 5 causes)-.2 F .874(time stamps on modi\214cations, bit 4 causes ti\
me stamps on creation and bit 0 is set when a label)144 489.6 R -.15(ex)
144 501.6 S 2.5(ists. Bit).15 F 2.5(4a)2.5 G(nd 6 are e)-2.5 E(xclusi)
-.15 E -.15(ve)-.25 G(ly set.).15 E 3.45(1b)144 513.6 S .95(yte passw)
-3.45 F .95(ord decode byte: T)-.1 F 3.45(od)-.8 G .951(ecode the passw)
-3.45 F .951(ord, xor this byte with the passw)-.1 F .951(ord bytes in)
-.1 F(re)144 525.6 Q -.15(ve)-.25 G(rse order).15 E 5(.T)-.55 G 2.5(oe)
-5.8 G(ncode a passw)-2.5 E
(ord, add its characters to get the decode byte.)-.1 E 2.5(2r)144 537.6
S(eserv)-2.5 E(ed bytes)-.15 E 2.5(8p)144 549.6 S(assw)-2.5 E(ord bytes)
-.1 E 2.5(4b)144 561.6 S(ytes label creation time stamp)-2.5 E 2.5(4b)
144 573.6 S(ytes label modi\214cation time stamp)-2.5 E F1 -.1(Pa)87
602.4 S(ssw).1 E(ords)-.1 E F0 1.484(CP/M Plus supports passw)108 614.4
R 1.484(ords, which are stored in an arbitrary directory entry)-.1 F
6.484(.T)-.65 G 1.484(he structure of these)-6.484 F(entries is:)108
626.4 Q 2.5(1b)144 650.4 S(yte status \(user number plus 16\))-2.5 E F1
(F0\211E2)144 662.4 Q F0(are the \214le name and its e)2.5 E(xtension.)
-.15 E 3.171(1b)144 674.4 S .671(yte passw)-3.171 F .671
(ord mode: bit 7 means passw)-.1 F .672
(ord required for reading, bit 6 for writing and bit 5 for)-.1 F
(deleting.)144 686.4 Q 3.451(1b)144 698.4 S .951(yte passw)-3.451 F .951
(ord decode byte: T)-.1 F 3.451(od)-.8 G .951(ecode the passw)-3.451 F
.95(ord, xor this byte with the passw)-.1 F .95(ord bytes in)-.1 F(re)
144 710.4 Q -.15(ve)-.25 G(rse order).15 E 5(.T)-.55 G 2.5(oe)-5.8 G
(ncode a passw)-2.5 E(ord, add its characters to get the decode byte.)
-.1 E 2.5(2r)144 722.4 S(eserv)-2.5 E(ed bytes)-.15 E(CP/M tools)72 768
Q(February 18, 2012)151.35 E(3)192.2 E 0 Cg EP
%%Page: 4 4
%%BeginPageSetup
BP
%%EndPageSetup
/F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
(formats CPM\(5\))2.5 F 2.5(8p)144 84 S(assw)-2.5 E(ord bytes)-.1 E/F1
10.95/Times-Bold@0 SF(SEE ALSO)72 112.8 Q/F2 10/Times-Italic@0 SF
(mkfs.cpm)108 124.8 Q F0(\(1\),).32 E F2(fsc)2.5 E(k.cpm)-.2 E F0
(\(1\),).32 E F2(fsed.cpm)2.5 E F0(\(1\),).32 E F2(cpmls)2.5 E F0(\(1\))
.27 E(CP/M tools)72 768 Q(February 18, 2012)151.35 E(4)192.2 E 0 Cg EP
%%Trailer
end
%%EOF