Imported Upstream version 2.17
[debian/cpmtools] / cpm.ps
diff --git a/cpm.ps b/cpm.ps
new file mode 100644 (file)
index 0000000..6c63133
--- /dev/null
+++ b/cpm.ps
@@ -0,0 +1,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