Imported Upstream version 2.17
[debian/cpmtools] / cpm.ps
1 %!PS-Adobe-3.0
2 %%Creator: groff version 1.19
3 %%CreationDate: Sun Feb  3 19:48:55 2013
4 %%DocumentNeededResources: font Times-Roman
5 %%+ font Times-Bold
6 %%+ font Times-Italic
7 %%DocumentSuppliedResources: procset grops 1.19 0
8 %%Pages: 4
9 %%PageOrder: Ascend
10 %%DocumentMedia: Default 595 842 0 () ()
11 %%Orientation: Portrait
12 %%EndComments
13 %%BeginDefaults
14 %%PageMedia: Default
15 %%EndDefaults
16 %%BeginProlog
17 %%BeginResource: procset grops 1.19 0
18 /setpacking where{
19 pop
20 currentpacking
21 true setpacking
22 }if
23 /grops 120 dict dup begin
24 /SC 32 def
25 /A/show load def
26 /B{0 SC 3 -1 roll widthshow}bind def
27 /C{0 exch ashow}bind def
28 /D{0 exch 0 SC 5 2 roll awidthshow}bind def
29 /E{0 rmoveto show}bind def
30 /F{0 rmoveto 0 SC 3 -1 roll widthshow}bind def
31 /G{0 rmoveto 0 exch ashow}bind def
32 /H{0 rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
33 /I{0 exch rmoveto show}bind def
34 /J{0 exch rmoveto 0 SC 3 -1 roll widthshow}bind def
35 /K{0 exch rmoveto 0 exch ashow}bind def
36 /L{0 exch rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
37 /M{rmoveto show}bind def
38 /N{rmoveto 0 SC 3 -1 roll widthshow}bind def
39 /O{rmoveto 0 exch ashow}bind def
40 /P{rmoveto 0 exch 0 SC 5 2 roll awidthshow}bind def
41 /Q{moveto show}bind def
42 /R{moveto 0 SC 3 -1 roll widthshow}bind def
43 /S{moveto 0 exch ashow}bind def
44 /T{moveto 0 exch 0 SC 5 2 roll awidthshow}bind def
45 /SF{
46 findfont exch
47 [exch dup 0 exch 0 exch neg 0 0]makefont
48 dup setfont
49 [exch/setfont cvx]cvx bind def
50 }bind def
51 /MF{
52 findfont
53 [5 2 roll
54 0 3 1 roll
55 neg 0 0]makefont
56 dup setfont
57 [exch/setfont cvx]cvx bind def
58 }bind def
59 /level0 0 def
60 /RES 0 def
61 /PL 0 def
62 /LS 0 def
63 /MANUAL{
64 statusdict begin/manualfeed true store end
65 }bind def
66 /PLG{
67 gsave newpath clippath pathbbox grestore
68 exch pop add exch pop
69 }bind def
70 /BP{
71 /level0 save def
72 1 setlinecap
73 1 setlinejoin
74 72 RES div dup scale
75 LS{
76 90 rotate
77 }{
78 0 PL translate
79 }ifelse
80 1 -1 scale
81 }bind def
82 /EP{
83 level0 restore
84 showpage
85 }bind def
86 /DA{
87 newpath arcn stroke
88 }bind def
89 /SN{
90 transform
91 .25 sub exch .25 sub exch
92 round .25 add exch round .25 add exch
93 itransform
94 }bind def
95 /DL{
96 SN
97 moveto
98 SN
99 lineto stroke
100 }bind def
101 /DC{
102 newpath 0 360 arc closepath
103 }bind def
104 /TM matrix def
105 /DE{
106 TM currentmatrix pop
107 translate scale newpath 0 0 .5 0 360 arc closepath
108 TM setmatrix
109 }bind def
110 /RC/rcurveto load def
111 /RL/rlineto load def
112 /ST/stroke load def
113 /MT/moveto load def
114 /CL/closepath load def
115 /Fr{
116 setrgbcolor fill
117 }bind def
118 /setcmykcolor where{
119 pop
120 /Fk{
121 setcmykcolor fill
122 }bind def
123 }if
124 /Fg{
125 setgray fill
126 }bind def
127 /FL/fill load def
128 /LW/setlinewidth load def
129 /Cr/setrgbcolor load def
130 /setcmykcolor where{
131 pop
132 /Ck/setcmykcolor load def
133 }if
134 /Cg/setgray load def
135 /RE{
136 findfont
137 dup maxlength 1 index/FontName known not{1 add}if dict begin
138 {
139 1 index/FID ne{def}{pop pop}ifelse
140 }forall
141 /Encoding exch def
142 dup/FontName exch def
143 currentdict end definefont pop
144 }bind def
145 /DEFS 0 def
146 /EBEGIN{
147 moveto
148 DEFS begin
149 }bind def
150 /EEND/end load def
151 /CNT 0 def
152 /level1 0 def
153 /PBEGIN{
154 /level1 save def
155 translate
156 div 3 1 roll div exch scale
157 neg exch neg exch translate
158 0 setgray
159 0 setlinecap
160 1 setlinewidth
161 0 setlinejoin
162 10 setmiterlimit
163 []0 setdash
164 /setstrokeadjust where{
165 pop
166 false setstrokeadjust
167 }if
168 /setoverprint where{
169 pop
170 false setoverprint
171 }if
172 newpath
173 /CNT countdictstack def
174 userdict begin
175 /showpage{}def
176 /setpagedevice{}def
177 }bind def
178 /PEND{
179 clear
180 countdictstack CNT sub{end}repeat
181 level1 restore
182 }bind def
183 end def
184 /setpacking where{
185 pop
186 setpacking
187 }if
188 %%EndResource
189 %%BeginFeature: *PageSize Default
190 << /PageSize [ 595 842 ] /ImagingBBox null >> setpagedevice
191 %%EndFeature
192 %%IncludeResource: font Times-Roman
193 %%IncludeResource: font Times-Bold
194 %%IncludeResource: font Times-Italic
195 grops begin/DEFS 1 dict def DEFS begin/u{.001 mul}bind def end/RES 72
196 def/PL 841.89 def/LS false def/ENC0[/asciicircum/asciitilde/Scaron
197 /Zcaron/scaron/zcaron/Ydieresis/trademark/quotesingle/Euro/.notdef
198 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
199 /.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef/.notdef
200 /.notdef/.notdef/.notdef/space/exclam/quotedbl/numbersign/dollar/percent
201 /ampersand/quoteright/parenleft/parenright/asterisk/plus/comma/hyphen
202 /period/slash/zero/one/two/three/four/five/six/seven/eight/nine/colon
203 /semicolon/less/equal/greater/question/at/A/B/C/D/E/F/G/H/I/J/K/L/M/N/O
204 /P/Q/R/S/T/U/V/W/X/Y/Z/bracketleft/backslash/bracketright/circumflex
205 /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
206 /z/braceleft/bar/braceright/tilde/.notdef/quotesinglbase/guillemotleft
207 /guillemotright/bullet/florin/fraction/perthousand/dagger/daggerdbl
208 /endash/emdash/ff/fi/fl/ffi/ffl/dotlessi/dotlessj/grave/hungarumlaut
209 /dotaccent/breve/caron/ring/ogonek/quotedblleft/quotedblright/oe/lslash
210 /quotedblbase/OE/Lslash/.notdef/exclamdown/cent/sterling/currency/yen
211 /brokenbar/section/dieresis/copyright/ordfeminine/guilsinglleft
212 /logicalnot/minus/registered/macron/degree/plusminus/twosuperior
213 /threesuperior/acute/mu/paragraph/periodcentered/cedilla/onesuperior
214 /ordmasculine/guilsinglright/onequarter/onehalf/threequarters
215 /questiondown/Agrave/Aacute/Acircumflex/Atilde/Adieresis/Aring/AE
216 /Ccedilla/Egrave/Eacute/Ecircumflex/Edieresis/Igrave/Iacute/Icircumflex
217 /Idieresis/Eth/Ntilde/Ograve/Oacute/Ocircumflex/Otilde/Odieresis
218 /multiply/Oslash/Ugrave/Uacute/Ucircumflex/Udieresis/Yacute/Thorn
219 /germandbls/agrave/aacute/acircumflex/atilde/adieresis/aring/ae/ccedilla
220 /egrave/eacute/ecircumflex/edieresis/igrave/iacute/icircumflex/idieresis
221 /eth/ntilde/ograve/oacute/ocircumflex/otilde/odieresis/divide/oslash
222 /ugrave/uacute/ucircumflex/udieresis/yacute/thorn/ydieresis]def
223 /Times-Italic@0 ENC0/Times-Italic RE/Times-Bold@0 ENC0/Times-Bold RE
224 /Times-Roman@0 ENC0/Times-Roman RE
225 %%EndProlog
226 %%Page: 1 1
227 %%BeginPageSetup
228 BP
229 %%EndPageSetup
230 /F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
231 (formats CPM\(5\))2.5 F/F1 10.95/Times-Bold@0 SF -.219(NA)72 84 S(ME)
232 .219 E F0(cpm \255 CP/M disk and \214le system format)108 96 Q F1
233 (DESCRIPTION)72 112.8 Q/F2 10/Times-Bold@0 SF(Characteristic sizes)87
234 124.8 Q F0(Each CP/M disk format is described by the follo)108 136.8 Q
235 (wing speci\214c sizes:)-.25 E(Sector size in bytes)144 160.8 Q
236 (Number of tracks)144 172.8 Q(Number of sectors)144 184.8 Q(Block size)
237 144 196.8 Q(Number of directory entries)144 208.8 Q(Logical sector sk)
238 144 220.8 Q -.25(ew)-.1 G(Number of reserv)144 232.8 Q
239 (ed system tracks \(optional\))-.15 E(Of)144 244.8 Q(fset to start of v)
240 -.25 E(olume \(optional\))-.2 E 2.848(Ab)108 268.8 S .348
241 (lock is the smallest allocatable storage unit.)-2.848 F .347
242 (CP/M supports block sizes of 1024, 2048, 4096, 8192 and)5.348 F .207
243 (16384 bytes.)108 280.8 R(Unfortunately)5.207 E 2.707(,t)-.65 G .208(hi\
244 s format speci\214cation is not stored on the disk and there are lots o\
245 f formats.)-2.707 F(Accessing a block is performed by accessing its sec\
246 tors, which are stored with the gi)108 292.8 Q -.15(ve)-.25 G 2.5(ns).15
247 G(oftw)-2.5 E(are sk)-.1 E -.25(ew)-.1 G(.)-.4 E F2(De)87 309.6 Q
248 (vice ar)-.15 E(eas)-.18 E F0 2.5(AC)108 321.6 S
249 (P/M disk contains three areas:)-2.5 E -1.29(Vo)144 345.6 S(lume of)1.29
250 E(fset \(optional\))-.25 E(System tracks \(optional\))144 357.6 Q
251 (Directory)144 369.6 Q(Data)144 381.6 Q .058
252 (The system tracks store the boot loader and CP/M itself.)108 405.6 R
253 .058(In order to sa)5.058 F .358 -.15(ve d)-.2 H .057
254 (isk space, there are non-bootable).15 F 1.55
255 (formats which omit those system tracks.)108 417.6 R 1.55(The term)6.55
256 F/F3 10/Times-Italic@0 SF 1.55(disk capacity)4.05 F F0(al)4.05 E -.1(wa)
257 -.1 G 1.55(ys e).1 F 1.55(xcludes the space for system)-.15 F 2.748
258 (tracks. Note)108 429.6 R .248
259 (that there is no bitmap or list for free blocks.)2.748 F .248
260 (When accessing a dri)5.248 F .548 -.15(ve f)-.25 H .248
261 (or the \214rst time, CP/M).15 F -.2(bu)108 441.6 S
262 (ilds this bitmap in core from the directory).2 E(.)-.65 E 3.15(Ah)108
263 458.4 S .65(ard disk can ha)-3.15 F .95 -.15(ve t)-.2 H .65
264 (he additional notion of a).15 F F3 .65(volume of)3.15 F(fset)-.18 E F0
265 .65(to locate the start of the dri)3.15 F .95 -.15(ve i)-.25 H .65
266 (mage \(which).15 F .531(may or may not ha)108 470.4 R .831 -.15(ve s)
267 -.2 H .531(ystem tracks associated with it\). The base unit for v).15 F
268 .53(olume of)-.2 F .53(fset is byte count from)-.25 F 1.224(the be)108
269 482.4 R 1.224(ginning of the ph)-.15 F 1.224(ysical disk, b)-.05 F 1.225
270 (ut speci\214ers of)-.2 F F3(K)3.725 E F0(,)A F3(M)3.725 E F0(,)A F3(T)
271 3.725 E F0(or)3.725 E F3(S)3.725 E F0 1.225
272 (may be appended to denote kilobytes,)3.725 F(me)108 494.4 Q -.05(ga)
273 -.15 G .806(bytes, tracks or sectors.).05 F .806(If pro)5.806 F .805
274 (vided, a speci\214er must immediately follo)-.15 F 3.305(wt)-.25 G .805
275 (he numeric v)-3.305 F .805(alue with no)-.25 F 2.881(whitespace. F)108
276 506.4 R .381(or con)-.15 F -.15(ve)-.4 G .381(nience upper and lo).15 F
277 .381(wer case are both accepted and only the \214rst letter is signi\
278 \214cant,)-.25 F .02(thus 2KB, 8MB, 1000trk and 16sec are v)108 518.4 R
279 .019(alid v)-.25 F .019(alues. Of)-.25 F .019
280 (fset must appear subsequent to track, sector and sec-)-.25 F
281 (tor length v)108 530.4 Q(alues.)-.25 E F2(Dir)87 547.2 Q
282 (ectory entries)-.18 E F0 .408
283 (The directory is a sequence of directory entries \(also called e)108
284 559.2 R .409(xtents\), which contain 32 bytes of the follo)-.15 F(w-)
285 -.25 E(ing structure:)108 571.2 Q 4.16(St F0)144 595.2 R 1.94
286 (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)
287 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
288 F2(St)108 631.2 Q F0(is the status; possible v)2.5 E(alues are:)-.25 E
289 (0\21115: used for \214le, status is the user number)144 655.2 Q .795(1\
290 6\21131: used for \214le, status is the user number \(P2DOS\) or used f\
291 or passw)144 667.2 R .794(ord e)-.1 F .794(xtent \(CP/M 3 or)-.15 F
292 (higher\))144 679.2 Q(32: disc label)144 691.2 Q
293 (33: time stamp \(P2DOS\))144 703.2 Q(0xE5: unused)144 715.2 Q
294 (CP/M tools)72 768 Q(February 18, 2012)151.35 E(1)192.2 E 0 Cg EP
295 %%Page: 2 2
296 %%BeginPageSetup
297 BP
298 %%EndPageSetup
299 /F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
300 (formats CPM\(5\))2.5 F/F1 10/Times-Bold@0 SF(F0\211E2)108 84 Q F0 .412
301 (are the \214le name and its e)2.912 F 2.913(xtension. The)-.15 F 2.913
302 (ym)-.15 G .413(ay consist of an)-2.913 F 2.913(yp)-.15 G .413
303 (rintable 7 bit ASCII character b)-2.913 F(ut:)-.2 E F1(<)2.913 E 3.362
304 (>.,;:=?*[])108 96 S F0 5.862(.T)-3.362 G .862
305 (he \214le name must not be empty)-5.862 F 3.361(,t)-.65 G .861(he e)
306 -3.361 F .861(xtension may be empty)-.15 F 5.861(.B)-.65 G .861
307 (oth are padded with)-5.861 F 2.831(blanks. The)108 108 R .331
308 (highest bit of each character of the \214le name and e)2.831 F .331
309 (xtension is used as attrib)-.15 F 2.832(ute. The)-.2 F(attrib)2.832 E
310 (utes)-.2 E(ha)108 120 Q .3 -.15(ve t)-.2 H(he follo).15 E
311 (wing meaning:)-.25 E(F0: requires set wheel byte \(Backgrounder II\))
312 144 144 Q(F1: public \214le \(P2DOS, ZSDOS\), for)144 156 Q
313 (ground-only command \(Backgrounder II\))-.18 E
314 (F2: date stamp \(ZSDOS\), background-only commands \(Backgrounder II\))
315 144 168 Q(F7: wheel protect \(ZSDOS\))144 180 Q(E0: read-only)144 192 Q
316 (E1: system \214le)144 204 Q(E2: archi)144 216 Q -.15(ve)-.25 G(d).15 E
317 .338(Public \214les \(visible under each user number\) are not supporte\
318 d by CP/M 2.2, b)108 240 R .338(ut there is a patch and some)-.2 F
319 (free CP/M clones support them without an)108 252 Q 2.5(yp)-.15 G
320 (atches.)-2.5 E .827(The wheel byte is \(by def)108 268.8 R .828
321 (ault\) the memory location at 0x4b)-.1 F 5.828(.I)-.4 G 3.328(fi)-5.828
322 G 3.328(ti)-3.328 G 3.328(sz)-3.328 G .828(ero, only non-pri)-3.328 F
323 (vile)-.25 E .828(ged commands)-.15 F(may be e)108 280.8 Q -.15(xe)-.15
324 G(cuted.).15 E F1(Xl)108 297.6 Q F0(and)2.546 E F1(Xh)2.546 E F0 .046
325 (store the e)2.546 F .046(xtent number)-.15 F 5.046(.A)-.55 G .045
326 (\214le may use more than one directory entry)-2.5 F 2.545(,i)-.65 G
327 2.545(fi)-2.545 G 2.545(tc)-2.545 G .045(ontains more blocks)-2.545 F
328 .21(than an e)108 309.6 R .21(xtent can hold.)-.15 F .21
329 (In this case, more e)5.21 F .21
330 (xtents are allocated and each of them is numbered sequentially)-.15 F
331 .457(with an e)108 321.6 R .457(xtent number)-.15 F 5.457(.I)-.55 G
332 2.957(fap)-5.457 G -.05(hy)-2.957 G .457(sical e).05 F .456
333 (xtent stores more than 16k, it is considered to contain multiple logi-)
334 -.15 F .234(cal e)108 333.6 R .234
335 (xtents, each pointing to 16k data, and the e)-.15 F .234
336 (xtent number of the last used logical e)-.15 F .235(xtent is stored.)
337 -.15 F(Note:)5.235 E 1.55(Some formats decided to al)108 345.6 R -.1(wa)
338 -.1 G 1.549(ys store only one logical e).1 F 1.549(xtent in a ph)-.15 F
339 1.549(ysical e)-.05 F 1.549(xtent, thus w)-.15 F 1.549(asting e)-.1 F
340 (xtent)-.15 E 2.81(space. CP/M)108 357.6 R .31(2.2 allo)2.81 F .31
341 (ws 512 e)-.25 F .31(xtents per \214le, CP/M 3 and higher allo)-.15 F
342 2.811(wu)-.25 G 2.811(pt)-2.811 G 2.811(o2)-2.811 G 2.811(048. Bit)
343 -2.811 F .311(5\2117 of Xl are 0, bit)2.811 F .577(0\2114 store the lo)
344 108 369.6 R .577(wer bits of the e)-.25 F .576(xtent number)-.15 F 5.576
345 (.B)-.55 G .576
346 (it 6 and 7 of Xh are 0, bit 0\2115 store the higher bits of the)-5.576
347 F -.15(ex)108 381.6 S(tent number).15 E(.)-.55 E F1(Rc)108 398.4 Q F0
348 (and)2.946 E F1(Bc)2.946 E F0 .446
349 (determine the length of the data used by this e)2.946 F 2.946
350 (xtent. The)-.15 F(ph)2.947 E .447(ysical e)-.05 F .447(xtent is di)-.15
351 F .447(vided into logical)-.25 F -.15(ex)108 410.4 S .156
352 (tents, each of them being 16k in size \(a ph).15 F .156(ysical e)-.05 F
353 .156(xtent must hold at least one logical e)-.15 F .156
354 (xtent, e.g. a block-)-.15 F .053(size of 1024 byte with tw)108 422.4 R
355 .054(o-byte block pointers is not allo)-.1 F 2.554(wed\). Rc)-.25 F .054
356 (stores the number of 128 byte records of)2.554 F .457
357 (the last used logical e)108 434.4 R 2.957(xtent. Bc)-.15 F .456
358 (stores the number of bytes in the last used record.)2.957 F .456(The v)
359 5.456 F .456(alue 0 means 128)-.25 F .654(for backw)108 446.4 R .654
360 (ard compatibility with CP/M 2.2, which did not support Bc.)-.1 F .655
361 (ISX records the number of unused)5.655 F(instead of used bytes in Bc.)
362 108 458.4 Q F1(Al)108 475.2 Q F0 .9(stores block pointers.)3.4 F .899(I\
363 f the disk capacity is less than 256 blocks, Al is interpreted as 16 by\
364 te-v)5.9 F(alues,)-.25 E .243(otherwise as 8 double-byte-v)108 487.2 R
365 2.743(alues. A)-.25 F .243
366 (block pointer of 0 marks a hole in the \214le.)2.743 F .243
367 (If a hole co)5.243 F -.15(ve)-.15 G .243(rs the range).15 F .341
368 (of a full e)108 499.2 R .341(xtent, the e)-.15 F .341
369 (xtent will not be allocated.)-.15 F .34(In particular)5.341 F 2.84(,t)
370 -.4 G .34(he \214rst e)-2.84 F .34
371 (xtent of a \214le does not neccessarily)-.15 F(ha)108 511.2 Q .479 -.15
372 (ve ex)-.2 H .179(tent number 0.).15 F 2.679<418c>5.179 G .18
373 (le may not share blocks with other \214les, as its blocks w)-2.679 F
374 .18(ould be freed if the other)-.1 F .822
375 (\214les is erased without a follo)108 523.2 R .822
376 (wing disk system reset.)-.25 F .822
377 (CP/M returns EOF when it reaches a hole, whereas)5.822 F
378 (UNIX returns zero-v)108 535.2 Q(alue bytes, which mak)-.25 E
379 (es holes in)-.1 E(visible.)-.4 E F1(Nati)87 552 Q .2 -.1(ve t)-.1 H
380 (ime stamps).1 E F0 1.053(P2DOS and CP/M Plus support time stamps, whic\
381 h are stored in each fourth directory entry)108 564 R 6.054(.T)-.65 G
382 1.054(his entry)-6.054 F 1.3(contains the time stamps for the e)108 576
383 R 1.299(xtents using the pre)-.15 F 1.299
384 (vious three directory entries.)-.25 F 1.299(Note that you really)6.299
385 F(ha)108 588 Q 1.294 -.15(ve t)-.2 H .994(ime stamps for each e).15 F
386 .994(xtent, no matter if it is the \214rst e)-.15 F .994
387 (xtent of a \214le or not.)-.15 F .995(The structure of time)5.994 F
388 (stamp entries is:)108 600 Q 2.5(1b)144 624 S(yte status 0x21)-2.5 E 2.5
389 (8b)144 636 S(ytes time stamp for third-last directory entry)-2.5 E 2.5
390 (2b)144 648 S(ytes unused)-2.5 E 2.5(8b)144 660 S
391 (ytes time stamp for second-last directory entry)-2.5 E 2.5(2b)144 672 S
392 (ytes unused)-2.5 E 2.5(8b)144 684 S
393 (ytes time stamp for last directory entry)-2.5 E 2.872(At)108 708 S .372
394 (ime stamp consists of tw)-2.872 F 2.872(od)-.1 G .372(ates: Creation a\
395 nd modi\214cation date \(the latter being recorded when the \214le)
396 -2.872 F .935(is closed\).)108 720 R .936(CP/M Plus further allo)5.935 F
397 .936(ws optionally to record the access instead of creation date as \
398 \214rst time)-.25 F(CP/M tools)72 768 Q(February 18, 2012)151.35 E(2)
399 192.2 E 0 Cg EP
400 %%Page: 3 3
401 %%BeginPageSetup
402 BP
403 %%EndPageSetup
404 /F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
405 (formats CPM\(5\))2.5 F(stamp.)108 84 Q 2.5(2b)144 108 S
406 (ytes \(little-endian\) days starting with 1 at 01-01-1978)-2.5 E 2.5
407 (1b)144 120 S(yte hour in BCD format)-2.5 E 2.5(1b)144 132 S
408 (yte minute in BCD format)-2.5 E/F1 10/Times-Bold@0 SF
409 (DateStamper time stamps)87 160.8 Q F0 .552(The DateStamper softw)108
410 172.8 R .552(are added functions to the BDOS to manage time stamps by a\
411 llocating a read only)-.1 F .441(\214le with the name "!!!TIME&.D)108
412 184.8 R -1.11(AT)-.4 G 2.941("i)1.11 G 2.941(nt)-2.941 G .441(he v)
413 -2.941 F .441(ery \214rst directory entry)-.15 F 2.941(,c)-.65 G -.15
414 (ove)-2.941 G .441(ring the v).15 F .442(ery \214rst data blocks.)-.15 F
415 (It)5.442 E(contains one entry per directory entry with the follo)108
416 196.8 Q(wing structure of 16 bytes:)-.25 E 2.5(5b)144 220.8 S
417 (ytes create date\214eld)-2.5 E 2.5(5b)144 232.8 S
418 (ytes access date\214eld)-2.5 E 2.5(5b)144 244.8 S
419 (ytes modify date\214eld)-2.5 E 2.5(1b)144 256.8 S(yte checksum)-2.5 E
420 .237(The checksum is only used on e)108 280.8 R -.15(ve)-.25 G .236(ry \
421 8th entry \(last entry in 128-byte record\) and is the sum of the \214r\
422 st 127).15 F(bytes of the record.)108 292.8 Q
423 (Each date\214eld has this structure:)5 E 2.5(1b)144 316.8 S
424 (yte BCD coded year \(no century)-2.5 E 2.5(,s)-.65 G 2.5(oi)-2.5 G 2.5
425 (ti)-2.5 G 2.5(ss)-2.5 G(ane assuming an)-2.5 E 2.5(yy)-.15 G
426 (ear < 70 means 21st century\))-2.5 E 2.5(1b)144 328.8 S
427 (yte BCD coded month)-2.5 E 2.5(1b)144 340.8 S(yte BCD coded day)-2.5 E
428 2.608(1b)144 352.8 S .108(yte BCD coded hour or)-2.608 F 2.608(,i)-.4 G
429 2.608(ft)-2.608 G .108(he high bit is set, the high byte of a counter f\
430 or systems without real)-2.608 F(time clock)144 364.8 Q 2.5(1b)144 376.8
431 S(yte BCD coded minute, or the lo)-2.5 E 2.5(wb)-.25 G
432 (yte of the counter)-2.5 E F1(Disc labels)87 405.6 Q F0 .258(CP/M Plus \
433 support disc labels, which are stored in an arbitrary directory entry)
434 108 417.6 R 5.257(.T)-.65 G .257(he structure of disc labels)-5.257 F
435 (is:)108 429.6 Q 2.5(1b)144 453.6 S(yte status 0x20)-2.5 E F1(F0\211E2)
436 144 465.6 Q F0(are the disc label)2.5 E 2.886(1b)144 477.6 S .386
437 (yte mode: bit 7 acti)-2.886 F -.25(va)-.25 G .386(tes passw).25 F .387
438 (ord protection, bit 6 causes time stamps on access, b)-.1 F .387
439 (ut 5 causes)-.2 F .874(time stamps on modi\214cations, bit 4 causes ti\
440 me stamps on creation and bit 0 is set when a label)144 489.6 R -.15(ex)
441 144 501.6 S 2.5(ists. Bit).15 F 2.5(4a)2.5 G(nd 6 are e)-2.5 E(xclusi)
442 -.15 E -.15(ve)-.25 G(ly set.).15 E 3.45(1b)144 513.6 S .95(yte passw)
443 -3.45 F .95(ord decode byte: T)-.1 F 3.45(od)-.8 G .951(ecode the passw)
444 -3.45 F .951(ord, xor this byte with the passw)-.1 F .951(ord bytes in)
445 -.1 F(re)144 525.6 Q -.15(ve)-.25 G(rse order).15 E 5(.T)-.55 G 2.5(oe)
446 -5.8 G(ncode a passw)-2.5 E
447 (ord, add its characters to get the decode byte.)-.1 E 2.5(2r)144 537.6
448 S(eserv)-2.5 E(ed bytes)-.15 E 2.5(8p)144 549.6 S(assw)-2.5 E(ord bytes)
449 -.1 E 2.5(4b)144 561.6 S(ytes label creation time stamp)-2.5 E 2.5(4b)
450 144 573.6 S(ytes label modi\214cation time stamp)-2.5 E F1 -.1(Pa)87
451 602.4 S(ssw).1 E(ords)-.1 E F0 1.484(CP/M Plus supports passw)108 614.4
452 R 1.484(ords, which are stored in an arbitrary directory entry)-.1 F
453 6.484(.T)-.65 G 1.484(he structure of these)-6.484 F(entries is:)108
454 626.4 Q 2.5(1b)144 650.4 S(yte status \(user number plus 16\))-2.5 E F1
455 (F0\211E2)144 662.4 Q F0(are the \214le name and its e)2.5 E(xtension.)
456 -.15 E 3.171(1b)144 674.4 S .671(yte passw)-3.171 F .671
457 (ord mode: bit 7 means passw)-.1 F .672
458 (ord required for reading, bit 6 for writing and bit 5 for)-.1 F
459 (deleting.)144 686.4 Q 3.451(1b)144 698.4 S .951(yte passw)-3.451 F .951
460 (ord decode byte: T)-.1 F 3.451(od)-.8 G .951(ecode the passw)-3.451 F
461 .95(ord, xor this byte with the passw)-.1 F .95(ord bytes in)-.1 F(re)
462 144 710.4 Q -.15(ve)-.25 G(rse order).15 E 5(.T)-.55 G 2.5(oe)-5.8 G
463 (ncode a passw)-2.5 E(ord, add its characters to get the decode byte.)
464 -.1 E 2.5(2r)144 722.4 S(eserv)-2.5 E(ed bytes)-.15 E(CP/M tools)72 768
465 Q(February 18, 2012)151.35 E(3)192.2 E 0 Cg EP
466 %%Page: 4 4
467 %%BeginPageSetup
468 BP
469 %%EndPageSetup
470 /F0 10/Times-Roman@0 SF 174.415(CPM\(5\) File)72 48 R 174.415
471 (formats CPM\(5\))2.5 F 2.5(8p)144 84 S(assw)-2.5 E(ord bytes)-.1 E/F1
472 10.95/Times-Bold@0 SF(SEE ALSO)72 112.8 Q/F2 10/Times-Italic@0 SF
473 (mkfs.cpm)108 124.8 Q F0(\(1\),).32 E F2(fsc)2.5 E(k.cpm)-.2 E F0
474 (\(1\),).32 E F2(fsed.cpm)2.5 E F0(\(1\),).32 E F2(cpmls)2.5 E F0(\(1\))
475 .27 E(CP/M tools)72 768 Q(February 18, 2012)151.35 E(4)192.2 E 0 Cg EP
476 %%Trailer
477 end
478 %%EOF