READ ME UNIDSK AZ5 0CUNIDSK DVR:UNIFMT COM@[UNIFMT PZS#D Unidisk 3.5 disk driver for the PCPI Applicard 3-Apr-87 ---------------------------------------------- This library contains an Applicard driver for the 3.5" 800K disk drive. It was developed specifically for the Central Point Software Universal Disk Controller and 800K drive, but should work with the standard Apple 800K drive as it follows the ProDos conventions for a block device. The driver is called UNIDSK.DVR. The library also contains a Turbo Pascal program for formatting 800K disks and testing the integrity of the hardware and driver software. It is written to be fairly general and interrogates UNIDSK.DVR for the device attributes, but if you modify UNIDSK.DVR check the formatter program for dependencies. The formatting program is called UNIFMT.COM, and the source is UNIFMT.PAS. Please report any bugs or comments to me at: Bob Fillmore c/o IAD BBS @ (613) 952-2289 he source is UNIFMT.PAS. Please report any bugs or comments to me at: Bob Fillmore cvUNIDSK.A65 0 Naa9Ce9 Ti2Nf\5\toD@TI" n;$"1&:J$KFZ@R($B$E)%:c)I%F`C'"y2d!JDAS+3L`*KVZI0g"2 BL,4/' $S0aR FBѐp9e2I_ B;1P|n<)J 9PA=khI d1P}ZlE+eR\uciDaIzǹ|&q-K҄"YD=Vb $TL_u0EUm!\E^]THxpS aA K_Z'x6pDEa%l=0-^Z^]ЁtEv^ ~wtY!5v'zEVriH dTd V_ZEΘH(K_fZָ g(g 0elɱ;šVBAHGjzdG]A$L' CEnZ)&> yt +$l3*i rt 3grrl- |6 : C t4g@`8 s@-+p̛%P7qZ?Q6,8tkCʷ}uJ֗dF^a&-]P 1YxD8Bw VV*V:Bl֗CR 'e: `(\?{o Bj]H}sD$L~7B{9ohR9 $EW lY%$ ʸJA W]0R"T dr{];|XEi8@ S m=^4 LQ<ιۊ0YpΨzp$/a>U& L!>vodBWaRI`2Bi)8`KIzcY:j;V#d\!lR QG֙tqi9dz-=%Ƨ :J!7|d:HS)B!  MQ9IFu F\JX0 ao$STj(Q2==% 3Y!,L-MD5څsL!P_X!XҮp=||}ra#tZ9D焞h5!2'Tſa-_+ ZSH-&,nmG^w8$ܾ&NB B #Y),{ hn)G9k*>Fȑ͝.mA !3ؖb>w*UKi$T9;j 6g =h1myTb @m'\;L,N X%$fA@W ڸ?X%qR9H7euߣuJv3ĕ/yg@IzS5f@LP)2d$&(٢-cr VIձQ/-P $ʾ{xȕ*ƚE!dv^̸ y.Q9iF$ edlt"ɹ7ŵ'D\@H0 $n#L3R`HP.%˞J"@ "x1sVr&1B|3m4׀n3z:j) RLm{#NTyBi Ɗx4"NLe+)I߮_AFCMj(Qiš<.,tqc=2R}Ed긥RrTbitϊLSrQ`ʑhi?h%iEpɝXCAT HTSՙ)|.vӳSQn)~GN'5|[tSJ$}wB%|ߋ)NN ozħFD:3=2 `>͐wS,nM] @dO&:~g@4NK`6^^!B#^$Rw$sgYaHef=s_8!H)0NH>FtG׆Hs%FP3t1o;AJa>?H#QdG'&Ep6^lUc."1azqwm`'PXAT=kxn Q8ZQ1%{a,uG'}J{0Y8ZH1RL;d*TH7X1"#Q' "0x=;f^2FV7QӄRx`;<4N0N]*Zh=:hk)Ia8a⯍OKr E)UM:OfJ#7e5f8d!L^d2F_~PޑKaѭ o^vOq3*z)yYq ҍ瀳‰P0O᎙2Y5F1O/IE3(5B䓸t8,N؊GO_O)P`E#cZȊH!y`; GuyA]dJ`pNM.L"5c$B^vA]lAFyv؎<17Q8 E["A#9,WTFap;-լ)sWarzCH{"6{CXIЛ>a'_y*)vV֒\džp i"vQ02͜A{Đwi$ ΅ۙH'7֖$GhQKQis]b^^î [%lBMTt!!8N-MM]3ҤJ7RO=u}5UPKNYR9]+:I:Ej.?F*l::O [:h)!`Uq!0_0;L:Ga~'Zo8 %j[tBuBX)6Yi8Joy:)⾰2r; 1:wiJؽ@LyàR\@0.0g…5HoH?yLV&A?LZ/W_ÁE{J]8پ-wE`{ EٴJ[,4aV/|oqLȠ#?Y9kиq=Y;ZkKݮ Fآ YoQKz*XV ұke Hap!2pVih|^XtxߋYj !a{Bfk w>:B%-*V~%B9#x ~P0S qY;%t*5 [NKgӜJGJ O^RdLa0kk o!d>G$QqLW>1-;wp:>{=-CJ s- /1nLmӜD7GD^=R Xw;xIS¶8@P0Sae?Z^aلݙ%E;ڄ0{]>sܾ:];~N%i{ބJ羉sonMQ X:B ۋmkuMĂ^܍ۃxFv˰T@7$X#D2YKQ>bGTt{v-H5a2Q/Zދj*- AV F!\#ls9m-H|꒍MN/aޕzYs1NǞq"Bl62@L_F7J BM޽}jC^Qn߼B#hJr<mﰘ'q aHnY"VWQM,FrRuǒv*5.)R1BCM&-b gU U&\A/uJdLBF̏+RF!e!ֹw7LyM='V4 1~D!d2~(Y"fs'֚YO"ukڒo1:'z!q5}EXȌa5,A.*?ǔ` iCmTR>$KYasfE'`K4p39WnUGl34[a( 4v輀 Q.۔یIe)>{)^)IOPZ>ZFzKy$۝ZhIpB*Aer RNB i3["E m28!"9!!>2 0&+!0 [ (!ePWA8Q0G: x@!\w# (   L). )!h6# (*(.(!8}(*(Ww#>?> w#a{ |e}nƐ'@'ý7||}>"C ""*B"[R*"^#V#^#V#N#FO/o&9O/o&9!9(> (G!9 w#EMw}8"RB0 >RRR!+k = R!+k = !+k = !+k = !#k = !+k = T]KB!z> S>))0 = |  DMgo>jB0 7?= H<͡z5)<z {0Gɯgo|| }||/g}/o#}o&K[xAJSJDM!b"!6J"DM'oodo o} $yWj _}8(8J`9{T]=o`9y $͙ >" 8# }>(́ x }} ˸T}ٕ(0D= ,= (  0% , 7 R ?(88 x  - 8˸x   ͠ ,-xG} }م 9 .>#n0  = - nx  ,-(-˸G,- }ٕ? 9.>R 88 ?= u+-(> 08  8R ?x  , 78ƀ8ƀ8ox٨!دoGOW_gɷɷ|لg{ً_zيWyىOxوG|ٔg{ٛ_zٚWyٙOx٘Gxٸyٹzٺ{ٻ|ټx٨u xx( ?}ٽR }ց <( 7 = |٤g{٣_z٢Wy١Ox٠G 8͉ }x>"8}ƀ/ƀó ͙ - }0- ,}l˸k 8 ́ # x(͙ -k 8 -k 8, }l8;*!# ! >8# # 8---͙ ,,,-xGg?+2n*8t z~,->"x"$}.́  ,͙ ́ ! >,.-͙ o&0%͔,# ͙ }g }؉}颋.:}8c~I$I~L*.ٷx˸́ }0G,\<}͔,-(- ! >0 $# o8 Á >"m.`1pF,t6|!wS<.z}[|%FXc~ur1}ٯx(<˸k 8́ !~Jk 0ͺO!Z>k 8 =  ͙ # ͙ ́ ͺ͙ 0 - OT0 j oD,:j !I}袋.}8c~I$I~L!>8# # ͙ # = Ù nf^VNF!DLT\I!!53!r1!!> x #-= o˸x(-͙ }(x>8( , `i!>"| | >)=|(DMbo˸y88yx(0 8> x(>-q{(ay(oe z(>.q (o =e{>Eq>+|(|Dg>-q|/ 0:p# ~# +>0w#,-  60# ˸}րogM͇| .( = ~> x0w#xG% % ZJDM% = _~65(+~hìx-Sx9?+{Η@}|  gZJDM0 ,7}o˸ #yO!@9i&  #w#/w#w#!9! E9!!9~(+FM!"9!(#>2*u"|>":( E *6#w*6#6 !\$!u[ (W( #:~CONTRMKBDLSTAUXUSR>2ͭ*#~ u*:> >w###6Õ  #6++p>2Su:*6###ww#w$w#w: ͳ##N#F*B>w#w#[s#rò>2u*6 #-Nw#Fwq#p#6#w#w#w͞* :( Q: *^ F* < >26"~^*-w#ww#Ͳ^"~ <@*u!\  >2*|>! * \$\<(!: [1Á\!(f"́> 2:!"F( #~#6$>!"N>!~8>O6*"w (=(&("( :( 8y(~#ͽ7+ (6*#~́*#~ *~(h#"b=  8ͽ ̶J= B== ͯ}8= ͵}/l !*###~-_~(46*>2>*##w:>*##~*#~(E͋ ( ( ( ͕!] ( ( ((w#(͕́̕6!]~-#8~>7́ Õ͕>O*{͍̈́s #r*{/͍ d͋ ͕ (( #w(͕́̕q*#~ʶ (͕́ ͕ Õ*##~6[O*#~(08ʦ=ʦ==ʩ=ʬò+###~-_q46`>*:4^q}Q*|(|( 6-#Sy[R8 (G> QC~Q#*ͳyC!' !+TRUEFALSEy!9^#~#(G~Q#> Q> Q "F!(#R0ͳ*4#4>R *4 #4(Ͳ>>2*V(/˖:(#~+ x y!t( =( X:(R*:(###~-_-K< =>:("^"*^˞*V˖0 SѷR8A* N#F#s#r 0})jS\*###w* N#FB ^r+s>!T]>)j)0 0= R!#*^#V#N#F#^#V>">!2DM"~ʲx(L* :O(o:" C}=( ?*-N#Fp+qq#p! * F+N+++V+^Bq#p>>>SѷR* s#r$ s#r*"[R0s#r>"[^#VS!9[R8[R>O"w2x2!"" ͵*>2"!"""!\u*: ͭ!~6go(\R*s#r_2x( s x(T]DMR0 -a%Ù}Wo*!~6o&͠|ͣ}^C User break1: I/O Run-time error e, PC=[R"` Program aborted*1!`!q.]ͅ<,6@ Unidisk 3.5 Disk Formatter V1.0OO"2*&*s"!!*&!͇*&*s#r}2:O"*!}2{*!͡}2z*{&*z&!*&!$Ea@ -- Unit *&ͱ@: -- *&'R@I/O Error or bad block numberOa(R @No device connectedOa+R;@Disk is write protectedOa@ Driver error *&!͵O͔!u!*&!͇!!q!*q&z"!!*&e.!u*#ãd!*&!͇!*&!!!!!!!!!!!!!!!d**&͡"*!*&͇*͡"*!! ͇*͡"**^E @$ ** Directory size exceeds one trackO@Unit *&ͱ@: Driver name : !!0O@! Sector size : *!͵O@! CP/M records/track : *!͵O@! CP/M records/host block : *&!͵O@! CP/M records/allocation block : *&!͵O@! Sector mask : *&!͵O@! Sector shift count : *&!͵O@! Block shift factor : *&!͵O@! Block shift mask : *&!͵O@! Disk size in alloc blocks : *!!͵O@! Directory size (entries) : *!!͵O@! Allocation mask : *!͵O@! Check size : *!͵O@! Directory offset : *!͵O!2!@Sectors per track : *!͵O!2!@ Tracks on disk : *!͵O!2!@Directory sectors : *!͵O*&!͇!͡"!2!@ Allocation unit : *!͵!KͱO!2!@ Disk capacity : *!*͇!͵!KͱO!!!Eʹ%@Reading track *&!͵@ sector *&!͵O!E%@ press RETURN to continueO!*&!͇!+*&*&+*&+!!!Rz]&"!**#>&d!Eʨ&@Writing track *&!͵@ sector *&!͵O!E&@ press RETURN to continueO!*&!͇!+*&*&+*&+!!!RzO'"!*n&*#-'dO@Creating CP/M directory..O!!!Rzʸ'"!*!s*#Ö'*}2!*!Rz'}2a&*&#'@Directory created.OO@Testing track/sector mapping..O@ writing every sectorO!*!Rz{)}2@ writing track *&!͵O!!!͡!Rz("!*!͇*&s*#(!*!Rzp)}2!!!͡!Rzb)"!*!͇!R*&s*#-)a&*&#)*&#v(@ reading every sectorO!*!Rzʓ+}2@ reading track *&!͵O!*!Rzʈ+}2r%*&!!n&$*&!!n&$}oEʯ*@Track *&!͵@ sector *&!͵@ reads as !!n&!͵!/ͱ!!n&!͵O!!!͡!Rz}+"!*!͇!Rn&*&$!*!͇!Rn&*&$}oEt+@ track *&!͵@ sector *&!͵@ data lostO*#**&#)*&#ò)@#Track/sector mapping test complete.O@Low-level formatting..!*&!͇!*&d*&!$E#,r@ complete.O͔!}2*&!A}2@ Enter unit (*&!Aͱ@ or *&!!Aͱ@ , default is *&!Aͱ@) : !͚*&!E,*&!A}2*&!a7*&!zJ}oE(-!A*&!aR}2*&*&*&*&!!A}oEU,*&!AR}2*&}2b!-! @1) Format diskO!-! @!2) Test driver and data integrityO!-!@3) QuitO!-!@Enter option: !͚*&1R=.+S'M.2RM.+ (@Formatting complete.Or!-!vUNIFMT.PAS =QTi2Nf\5Xl7ɼm0q@p9# Jh 3Nf HʆlY.)S :)$R-Ctp6LfHPE*!$ 0uSAt4Dci#4r3HMyIn3B̦e9vJ|C}0YqXl6bz gi8p+>WIr|t !B6 mw`p7 b$D吊bP6"d- PQuJCetT BSXu__r(`0fGQr!Fq$HB0D C < <GA7ҨP 8ubH$ $aƀr@wqѦJT1i 5 b8" p Ijp3aG!\$y Ct aq嚉X(SF9Fa~S1gWIqCܤ( oYf.g`(i+6e*Q'Yr) )u nXK0r.b(NFщ G^tk09iʷ%&;al4cCK >PڃHjZ1ʲWZ**<|f1|"ͬ9L`kWyi\C֯PZBXkihR=_S4hb0s$(BFG L"Ї]kճ\:$ܽ'uX,]aa]g"qajP\M{;s{ 2Be긁]/Mk>_{u}s}Qt߭ݳ_SמzB-$.#Dz9eI>!֗xY4@H$9br&wd-jQ OvXCU]"[$/t->Zl"2%PО˔-jnسW80Cf| 9OTOYBt4J^M=@[}nȓאzuŕHOKnBXf"3("@ ,1PuEX2g$h6/eD6P Q"IصpcI$CX` JfjK,,y3&9ÁBKKzJb.jlh64vNtNY*F4"NYpe0 F@*C 7gCH" @xS ,,B Io@ ^TC0Ш qD%JR R(ޯJ-KJVL T cp^T̙h4"6 $TT90p|Mb[Q +&' b. `YL&2xS%I<\Hpb=^>V:Ydt͒A8N*;Rkң*9nd0d/RRCya60 %RnH"ۈbZ83 <[$@k(4'|d/2FK Td*0!S۟v5ԑ7Z4"L#&N Ug0VP4('ӖTti<ؐPmuK%6;WN0d*_sM6%T'[ 7Ƙ7޽[Pmb/}N^Y7H).u%Kf Xvk A$HZDsfa_/ۗrX8<wQjD>yt#˞LߺtgeKe7Z4E^źPtA <]7NāyqNSg=6xٞd=]RӞٚbw0yG!a)s[0NxU(wF.|WmȒ6pOq^͹%Eywd3F7ۃpV|bs]u dXz`߁3K=?ԧ~5r`s`& sFviI }r}=1^!4~bwU&shC&1c65\ha%-h,AF+ u9Qʂb`hCwECW;D@c'msVʂ sD`/td:8H5$tPJET#66fV(`IXE=x5L{HRrvSvE6C:q}")Ewha0swR烇w:Vu|Bw4X,~Fk:~ج {½{b=k{O0|s((|BqHa d>6c'|vzx(L,m4=DsC4L}4(H 05K9LK4B^06x3p,4"(~hlb=X}1L4^(yc^{ҿ+5~ H$:Hac"ɍy, y/ޏ 115V&[}&0&eE2 bUH! )S`\(ccY`h,0 DaxE@U N\cV:B%0J[iK " _ qRYfv,5- Fʙ[FxRՔNxvR PV 1ٝnlfo '#o6o`(2pfi#_f$DbYY \a^$9Ex$0 hjorbcwy%y|kfQ+9qɛ&q&l2`tPxռRiYClU)K$U)4ɵtI0rxڜAUilϝp9RUa/$ytWHG/xah:OR;#)I0Y\9;⋤@eWㄲz,|nF:œy ~%@.fERVZ~=Y<_ A!#)o> Vo'1ښ1ږφR0##.yW3L:|f'JDq;Jc :7^g )?W):ȧw, 3J:d*#ʜ9W2BW;z 3 ch&Yzb)1SxtH06\6(İ0Qbzۈ˦Wf♺[V:sLa*? )ZsxicP89@c9co+1s"5J:jF;3.""jήҦz;X jԯ2K-KQ){1J9HP'sA$S!$h`X撯ʡf;rʪz`mjKVQql) %8-ĕa#ZW[o{0l˕lpюRPzq{&(@0N-uz! n"CEza)ĞC)wC'"!XWB@wtؒ:apG/`l#?#>%c5o2> +R`'r0e(q$ĔIE,Z,"sis2Y<)6nc",I<- eŒ3cQ JIr-F vRlLp)2U6!`ll$1jȲlQ-)(Ś|_?!&|0n3.LM\ 0|2L >Sb-,2B ?FŜL4YOYwq 2Jƫ}E29lʐ19 u" Ə̙˜ (zB&&Ic}a'6r5u"[{Y [n JK A$S zp2ΦSrρUϫɉGy>S|7eU.ag