ÍÈMR%ͨ3>Í5!pQÍ2!rS>#ÍÿD͘(ÍÈMRGͨ3>Í5!wQÍ2!•S>ÍÿD͘(ÍÈMRiͨ3>Í5!~QÍ2!²S>ÍÿD͘(ÍÈMR‹ͨ3>Í5!…QÍ2!ÁS>ÍÿD͘(ÍÈMR­ͨ3>Í5!ŒQÍ2!ÜS>ÍÿD͘(ÍÈMRÏͨ3>Í5!“QÍ2!õS>ÍÿD͘(ÍÈMRñͨ3>Í5!šQÍ2!T>ÍÿD͘(ÍÈMRͨ3>Í5!¡QÍ2!T>ÍÿD͘(ÍÈMR5ͨ3>Í5!¨QÍ2!/T>ÍÿD͘(ÍÈMRWͨ3>Í5!¯QÍ2!AT>ÍÿD͘(ÍÈMR˜ͨ3>Í5!¶QÍ2!XT>ÍÿD͘(!ÎU>ÍÿD͘(!ÐUÍýD͘(!GR>ÍÿD͘(ÍÈMÉÃ&Í)&íÿå*åU#ÍõGÑ"˜VÍF&~*˜VwÍ)&íÿå*çUÍõGÑå*˜V#Ñ>GÍ\EÍ)&õÿå*çUÍõGÑå*˜V Ñ>GÍ\E*˜V 6?*˜V6*˜V6?R2ͨ3!»QÍ2!^T> ÍÿD͘(ÍÈMÍU&!ÜUÍE!‹V6!TRÜUxÍaDÊÞ!jTÜUxÍaDœR}ͨ3!ÀQÍ2!kT>ÍÿD͘(ÍÈM!‹Vå!‹Vn&+MáÍDëG!‹V> ÍKEÃÐ!GRÜUxÍaD³!‹V6ÃÐ!SRÜUxÍaDÊÐ!žVÍ›!‹V Í�DÍU&!ÜUÍEÃB!mT‹V>ÍBDÂíÉ!HR‹V>Í("šV!šV~#¶Â&*˜V‹V>ÍXE*˜VmT>GÍ\EÃ`!‹Vå*šV+MáÍDå*˜VGÑ>Í\E!‹Vå*šV#ëáÍ!Då*˜VGÑ>Í\E*˜V"¢V! VÍê&Öÿ„*˜V"¦V!¤VÍ'ÃáRàͨ3!ÅQÍ2!ÎU>ÍÿD͘(!GR>ÍÿD͘(*˜V>ÍÿD͘(!HR>ÍÿD͘(*˜V>ÍÿD͘(!pT>ÍÿD͘(ÍÈMÉ*˜VåÍ)&íÿå*çUÍõGÑÑ>GÍ\E*˜VåÍ)&õÿå*çUÍõGÑÑ>GÍ\EÉô¨V~# Â.Í)&íÿå*åU#ÍõGÑ"¬V*ªV~*¬VwÍ)&íÿå*¨V^#VëÍõGÑå*¬V#Ñ>GÍ\EÍ)&õÿå*¨V^#VëÍõGÑå*¬V Ñ>GÍ\E*¬V 6?*¬V"°V!®VÍ÷&ÉÃùRÔͨ3!ÖQÍ2!T>ÍÿD͘(ÍÈMÍU&!¶VÍE!´VÍ›!�TÍKDÊñÉÍ)&+å*çUÍõGÑë!�TxÍaDÂQ*áUåÍ)&ûÿå*çUÍõGÑ^#VëÑͨH"áU*ãUåÍ)&+++å*çUÍõGÑ^#VëÑͨH"ãUÍF&"¹V!·VÍ)*åU+"åU*çU"²V*åU"»V*»Vë*²VͨHú·Í)&íÿå*²VÍõGÑåÍ)&íÿå*²V#ÍõGÑëáÍD*²V#"²VÃpRÔͨ3!ÛQÍ2!‘T> ÍÿD͘(ÍÈM*åUë*çUͨHòøRòͨ3>Í5ÍÈM!"çUÉÃRͨ3>Í5!àQÍ2!šT>$ÍÿD͘(ÍÈMÍU&!ÃVÍE!ÁVÍ›!¾TÍKDÆÿŸ2½V:½V·òfRfͨ3>Í5!åQÍ2!¿T>ÍÿD͘(ÍÈMRwͨ3>Í5ÍÈM!¾V6!"¿V*åU"ÄV*ÄVë*¿VͨH/õ:¾V/Á ò Í)&+å*¿VÍõGÑë!�TxÍaDÊ:½V·ò}R/ͨ3>Í5!êQÍ2!ÙT>ÍÿD͘(Í)&íÿå*¿VÍõGÑ>ÍÿD͘(!HR>ÍÿD͘(Í)&õÿå*¿VÍõGÑ>ÍÿD͘(!áT> ÍÿD͘(ÍÈMÍU&!ÈVÍE!ÆVÍ›!ÜUÍE!�TÜUxÍaDÂfÍF&"ËV!ÉVÍ)Ãz!êTÜUxÍaDÂz!¾V6€ÃRàͨ3>Í5!ïQÍ2!ëT>ÍÿD͘(Í)&íÿå*¿VÍõGÑ>ÍÿD͘(!HR>ÍÿD͘(Í)&õÿå*¿VÍõGÑ>ÍÿD͘(ÍÈMÍF&"ÏV!ÍVÍ);&·òÍU&!ÜUÍE!¾V6€*¿V#"¿VÈÍ_ÍíÉÃ!ÑV~# Â*ÓV~ÖÿÂ/¯É*ÓV~o‡Ÿg@ }õ3>!ðVÍE:×U·ò\!ñVÔU>ÍGEÃa!ñV6Í)&íÿå*åU#ÍõGÑ"ëU*ëU#"íU*ÓV~*ëUwÍ)&íÿå*ÑV^#VëÍõGÑå*ëU#Ñ>GÍ\EÍ)&õÿå*ÑV^#VëÍõGÑå*ëU Ñ>GÍ\E*íUå*ëUëá$ÍDÍF&~*íUw*íU 6*íU 6Í)&íÿå*ÑV^#VëÍõGÑë!×V>ÍKE!SR×V>Í("èV!èV~#¶ÊM!×Vå*èV+MáÍDëG!×V>ÍKEÍ)&õÿå*ÑV^#VëÍõGÑ>ÍÿD!HRõ>ÍÿD!×VõÍýD!GRÍÇDÍÙDÍÙD!×VÍ(E!×VÍýD!ÐUõÍýD!ÎUÍÇDÍÙD!×VÍ(E!ÎUðVxÍaDÂÕ*ëU {Í(DóTÍ\E*ëU 6?:×U·òë!öVÍc'*ëU"úV!øVÍ÷&!ÎUðVxÍaDÖŸ!ÐUñVõÍ:DÆÿŸÁ ò$*íU"þV!üVÍ÷&*ëU 6*ëU 6*ëU"W!WÍ'ÖÿÂrRcͨ3!ôQÍ2!ôT>ÍÿD͘(ÍÈM:×U·òp!WÍc'¯É:×U·ò!WÍc'*íU" W!WÍÚ&ÍîB2ÚUÍ;&å*åU ÍõGÑͨHÜÿ >@åo‡ŸgÑÍWH"îVR ͨ3>Í5!ùQÍ2! U>ÍÿD͘(!×VÍýD͘(!U>ÍÿD͘(!ðV>ÍÿD͘(!ñVÍýD͘(!GR>ÍÿD͘(ÍÈM*íU#"éU!ÖV6!ÕV6€:ÖV·ú3!"ìV*íU~=2W! WÍÒ&:×U·òG!WÍc'!"êV*îV+"W*Wë*êVͨH/õ:ÖV/Á ò¬*éUå*ìV)Ñ"W!WÍ)'*ìV@ "ìV*íU"W!WÍÿ&ÖÊ¢!ÖV6€*êV"îV*êV#"êVÃT!"ìV*ëU~=2W!WÍÒ&:×U·òÍ!WÍc'!"êV*îV+" W* Wë*êVͨH/õ:ÕVÁ ò0*éUå*ìV)Ñ"$W!"WÍ)'*ìV@ "ìV*ëU"(W!&WÍ'ÖÊ&!ÕV6!ÖV6€*êV#"êVÃÚÃ*ëU",W!*WÍâ&ÍîB2ÚU:ÕV·úƒRkͨ3!þQÍ2!U>ÍÿD͘(ÍÈM*ëU 6?*ëU"0W!.WÍ÷&Ãü!ÎUðVxÍaDÂü!ÐUñVÍ:D¾R»ͨ3!RÍ2!/U>)ÍÿD͘(ÍÈMÃü*ëUå*íUëáÍD*ëU"4W!2WÍê&ÖÿÊö*ëU"8W!6WÍ÷&!:WÍ':×U·ò !WÍâ&ÍîB2ÚU:ÕVÉÃw RAͨ3!RÍ2!XU>ÍÿD͘(ÍÈM:×U·òëReͨ3! RÍ2!^U> ÍÿD͘(ÍÈM�‚ͤ3!RÍ2ͳ/!GWÍ(EÍÈM!iUGW>ÍBD“>ÿÉ!SRGW>Í(}2EW!GWKÍDëG!^W>Í\E!\WÍ›!ÜUÍE:EW·Âì!GWÍ!DëG!ÔU>ÍKE!ñUiU>Í\EÃ3!GW:EWåo‡Ÿg++MáÍDëG!ÔU>ÍKE!GW:EWåo‡Ÿg#ëáÍ!DëG!aW>ÍKE!_WÍž!ñUÍE!iUÔU>ÍBDÂU!ÔUÐU>ÍGE:ÏU2ÓUÃÔ!ÔUÍýD!iUõ> ÍÿDÍW(|µÊr>ÿÉÃÔ¯2ÓU<2DW!ÔUn&}2vW:vWo‡Ÿgë:DWo‡ŸgͨHúÔ!ÔU:DW_ÍDëG!FW>Í\E:ÓUo‡Ÿg ÍõGå!FWn&ÑÐÿ }2ÓU!DW4Ä*ÉUë:ÓUo‡ŸgͨHòè>ÿÉÃF R ͨ3!RÍ2!sU>ÍÿD͘(ÍÈM�% ͤ3!RÍ2ͳ/!ÜUÍEÍÈM!uUÜU>ÍaDÂ8 >ÿÉ!wWÍ›!ÜUÍE!ÜUn&Àÿ "BW:ËUo‡Ÿgë*BWͨH*BW+õ|Á°òo >ÿÉÍÍ&*BW}Éü!R— ͨ3!!RÍ2!WR>ÍÿD͘(ÍÈMÍ$2{W:{WÖÿ¦ ÉR· ͨ3>Í5ÍÈM!|W6€!"yW*åU"}W*}Wë*yWͨH/õ:|WÁ ò†!Í)&+å*yWÍõGÑë!�TxÍaDÂe!!WÍ2|W:|W·òe!Í)&+å*yWÍõGÑuU>GÍ\E*áUåÍ)&ûÿå*yWÍõGÑ^#VëÑͨH"áU*ãUåÍ)&+++å*yWÍõGÑ^#VëÑͨH"ãU;&·ò|!ÍU&!ÜUÍE!|W6*yW#"yWÃÈ :|W·úª!Rª!ͨ3!&RÍ2!vU> ÍÿD͘(ÍÈMR»!ͨ3>Í5ÍÈMÉç"Í)&+å*çUÍõGÑë!�TxÍaDÊ2"Í)&+å*çUÍõGÑ�T>GÍ\EÍ)&ûÿå*çUÍõGÑ^#Vëë*áU"áUÍ)&+++å*çUÍõGÑ^#Vëë*ãU"ãUR{"ͨ3!-RÍ2!ƒU>ÍÿD͘(*áU> ÍC͘(!�U>ÍÿD͘(*ãU> ÍC͘(! U>ÍÿD͘(ÍÈM*çU#"çU*åUë*çUͨHò¦"R "ͨ3>Í5ÍÈM!"çUÉØ#Í)&+å*çUÍõGÑë!�TxÍaD #*áUåÍ)&ûÿå*çUÍõGÑ^#VëÑͨH"áU*ãUåÍ)&+++å*çUÍõGÑ^#VëÑͨH"ãUÍ)&+å*çUÍõGÑSR>GÍ\ERl#ͨ3!5RÍ2!¢U>ÍÿD͘(*áU> ÍC͘(!�U>ÍÿD͘(*ãU> ÍC͘(! U>ÍÿD͘(ÍÈM*çU#"çU*åUë*çUͨHò—#R‘#ͨ3>Í5ÍÈM!"çUÉÃÒ%Í)&íÿå*åU#ÍõGÑ"íUÍF&~*íUwÍ)&íÿå*çUÍõGÑå*íU#Ñ>GÍ\EÍ)&õÿå*çUÍõGÑå*íU Ñ>GÍ\E*íU 6*íU 6R$ͨ3>Í5ÍÈM!ŽWÍÚ&ÍîB2ÚU*íU#"éUÍ;&å*åU ÍõGÑͨHîÿ >@åo‡ŸgÑÍWH"‹W!…W6!†W6€:†Wõ:…W/Á ò²%!"‰W"ƒW*‹W+"�W*�Wë*ƒWͨH/õ:…W/Á òÑ$*éUå*‰W)Ñ"”W!’WÍ)'*‰W@ "‰W!–WÍÿ&ÖÊÇ$!…W6€*ƒW"‹W*ƒW#"ƒWÃ$!"‰W"ƒW*‹W+"˜W*˜Wë*ƒWͨH/õ:†WÁ ò¯%!"‡W!»U>;C!½U>;CÍåCÍ„A"šW*šWë*‡WͨH/õ:†WÁ òg%*éUå*‰Wë*‡WÑë!ÜU>GÍ\E!¿UÜUxÍaDÂW%!†W6Ã]%!œWÍZ&*‡W#"‡WÃ%*‰W€ "‰W;&·ò¥%ÍU&!ÜUÍE!ÀUÜUxÍaD %ÍU&!ÜUÍEÃ¥%!†W6*ƒW#"ƒWÃá$Ãb$!žWÍâ&ÍîB2ÚURÑ%ͨ3>Í5ÍÈMÉÍ•O^#Vë^ÉÍÕ%#VÉå ÍáÉÍá%þÐÃø%Íá%þ"Ð& Íà Later CP/M or MP/M Version Required$*VZÉ*ë*VZ{•ozœgÉÍ-&|·g}oÉ!\É!lÉ!€ÉÃÃa&Ãq&Íáõ3>éÃq&ÍÕ%Ã!ƒ&å*éáõ3>éÍÕ%K* é!Ã&å*éÃÍÕ%ÃÍÛ% ÃÍÛ% à ͷÈ>ÿÉ Ã ÃÍÕ%ÃÍÛ%ÃÍÛ%ÃÍÛ%ÃÃÍÛ%ÃÍÛ%ÃÍÛ%ÃÍÛ%ÃÍÛ%ÃÃÃÍÛ%ÃÃÍé%ÃÍé%ÃÍé%ÍÛ%ÃÍé%ÃÍé%ÿ ÃÍé%ÍÕ% ÃÍé%ÍÛ%!ÃÍé%ÍÛ%"ÃÍé%ÍÛ%#ÃÍé%ÍÛ%$ÃÍò%ÍÛ%%ÃÍò%ÍÛ%(Ã|·ô•HDMëÍoHëÉo‡ŸgͯHÂÒ'áÑÑ�QYÅÕéõÍ(�QYå!9ÅÕÍ—FÑÁá+|µÂÛ'ñá3333ò(å!�å!åÅÕÍ—EÑÁáÅÕé·ð/<É|·ðÕHëFëÃ(·ÊI(OÊI(ÅÅÕå¾Â@(# ÊM(Â+(áÑÁÃH(áÑÁÂ((Á¯glÉáÑÁñ�Ê�(ÅåÕ~ë ʆ(¾Ê(#Ãs(ÑáÁ#Ãh(ÑáÁñ�H åÑÑùÕo&ÉõÍÆ."PÑþÂÒ(«(BZ!9ÊÊ(ÊÁ(~#͆/ñ(> ͆/ÂÁ(ëÑ&9ùëéþÂô(x2Py Âá(¯2Pá" W͸)¯<Íä** WéþÂw)xÖ2P=úºHA Â)AÖú)þÒ)G:P=¸ÚºHx2Pá" W͸)!PF6!P~#¶Ê:)x=2P¯Íä*>E͆/:P·+òS)-/<õx͆/ñÖ Úd)Ã[)Æ õxÆ0͆/ñÆ0͆/* Wéþµ)x2Py2Pá" W͸)Í&+:P!P–ÍÇ*Í�+GÊ®)!9~#ù͆/Ã�)* WéÊ®)à 2¯2P2P2P<2P!9Í�*þ ÊÍ)þ+Âà)Í�*Ãí)þ-Âí)>2PÍ�*Íš*Ò*·Âü) Ê* Í£*Í�*Ãí)þ.Â*Í�*Íš*Ò*Í£*Í�*Ã*þeÊ'*þEÂj*Í�*þ+Â7*Í�*Ã@*þ-Â@*Í�*Íš*ÒºHGÍ�*Íš*Ò^*õx‡G‡‡€Gñ€GÍ�*õÂf*¯�Gy€Oñ·Êy*þ ºHÍ�*Ãj*ÑùÕ:PþÒ‹*¯Í£*Ã|*y2PÉÊ—*~#ÉzÉÖ0þ ØÆ0·Éå!P_¶w!P~þÒÀ*4Õ_!PÑsáÉáÈúH·úºH2PG:P�<2P=øÂºH:P·ÂºHÉõÍ&+ñÂþ*:P·Êþ*!P5!P4ʺH:PG:PÊ +�!P–ÍÇ*>2PÍI+͆/!P5Â+É:P!P†<øþÐ_!P>†wþ ØÖ w>+Ã;+!P~5·>.ÈÍ�+G:P·xÈþ0Âh+:P·> À!P~·Ê{+5!P4!P5-¯2PxÉ!P^4{·úš+þÒš+!P~Æ0É>0Éá"¢W*P~2¦W:P·Ê¸+Í6.ʸ+ͺH:¦W2§W>VÍ#.!§WÂÊ+5~/o&ÿ#9ù:P·Â,>9Í#.Ê,>*Í#.Êî+ Ãð+*:§W!9q#=Â÷+Ã.>2¨W<2©W2ªWÍ�+2¥W:©W_:¦W“ú.*P~2¤W:¤Wþ9Âc,:¨Wæ€ÊS,:¨Wæ2¨WÍ.ÂS,:ªW=O:¨WÍ–.ÍŽ.:ªWO:¥WÍŽ.Í .à ,þZÊm,þ*¸,O:¨WæÂ|,yö€2¨W:¨Wæ€Ê ,:¥Wþ0 ,:ªWO:¤Wþ*Êš,> ÍŽ.ò,:¨Wæ2¨W:ªWO:¥WÍŽ.Í .à ,:¤WÍ.ÂL-:¤WÍc.Âý,:¤WÍs.Âæ,:ªWO:¤WÍ–.ÍŽ.Í .Ã,:¤Wö€2¨W:ªWO> ÍŽ.Í .Ã,:¨Wæ€Ê<-:¥Wþ0Â-:ªWO> ÍŽ.ÃF-:ªW=O:¤WÍ–.ÍŽ.:ªWO:¥WÍŽ.:¨Wæ2¨WÃF-:ªWO:¥WÍŽ.Í .à ,:¤WþVŠ-:¨Wæ€Êx-:¨Wæ2¨WÍ.Âx-:ªW=O:¨WÍ–.ÍŽ.:¨Wæ„-<2¨WÍ.Ã,:ªWO:¤WÍT.¿-:¨Wæ€Âª-:¤WþBÊ´-ö-:¨Wæþ*ʶ-> ÍŽ.Í .Ã,:ªWO:¤WþCÊÍ-þD:P·Âà-> ÍŽ. ÍŽ.Ãý-:¤WþCÂô-ÍŽ. >RÍŽ.Ãý-ÍŽ. >BÍŽ.Í .Í .Ã,:§W*¢Wé!ªW4!©W4ÉþSÈþ+Èþ-Èþ$ÈÉG:¦WOx*P#¾È# Â-.<É>SÍ#.È>+Í#.È>-Í#.È>CÍ#.È>DÍ#.Éþ:Èþ/Èþ,Èþ.ÈþBÉ!©WN*P# ȾÂj.·ÉG:©W_:¦W“O x*P# Ⱦ….·É!i#9wÉþ$ÈG:P·Â¯.xþ+Èþ-ÊÃ.þSʽ.xþ+ÊÃ.þ-ÈþSÊÀ.>+É>-É> ÉÍ2þ Âß.x=úÙ.‡‡‡ÆGÍN/ÃÆ.þ Â/:6P·Êï.�Ú/!%Px–ÊÆ.Ú/Í}/ÃÆ.Ͳ5ÃÆ.þ Â/ÊÆ.Å> ͆/Áà /þ Â,/xÂ&/>Í}/ÃÆ.þ Â7/ÍN/ÃÆ.þÀxÂA/>·ÊÆ.=õͲ5ñÃA/Ê{/x!#P–Òc/ÅÍ{/ÁÃN/:4P·Ên/¸Ú{/:#P¸È> ͆/Ãc/>2°W!®WÃ5ÅÕåõ:4P·Ê¢/!#P¾Ò¢/> ͪ/> ͪ/ñͪ/áÑÁÉ2­W!«WÃÀ5Í¥1þÂÇ/y<>ÂÎ/= ÃÎ/þÂ\0¯O€�Ú 2oõÍl1####ñÑùÕõWÍT1Âï/60#Ã0þEÂö/>ew#þ.Â0þeÂ0x·Ê0Íw1þ Âï/Í_1ñ’GåZÑÅ+y=ú@0x=ú80Ö0þ Ú@060ã$ãÃB0w ÂL0+6.ã$ãy=ò"0x=ò"0ñÑùëéþÂÇ0Ñx<¤0!ÿ9ùÿÍ�1þ Ì�1þ ÊŒ0þ ÊŒ0w# ʺH¯Ãt0H ëå!9 ÊŸ0+wÔ0ÑùëxéO¯�o>Ÿg9ùÕx ÈÍ�1ʺHþ ʲ0þ ʲ0w#ï0ÖÚ 2=òÑ0<þÒ 2<_Ê 2K¯€Ú 2 Âß0oWÍl1##ñùõÕÍT1Ê91KÖ0ÚºHþ Ú1Æ0æ_ÆÉþÒºHõæ Â1·ÂºHKñæÆ0w# Â1x·Ê91Íw1þ Âø0Í_1ñ’õGåZÑÊO1+wÃD1ñÑùëéx·ÈÍw1ÊT1Éx·ÈÍw1ºHÃ_1¯•o>Ÿg9##ÉÍ�1ʺHþ Êw1þ Êw1þ ÚºHÉÅÕå;8þ¡1!±WÍgJ> ·áÑÁÉÍ2þ º1Ê¥1Å;8Áî1þ ÂÌ1xÂÆ1>Í2Ã¥1þ ÀÍÕ1Ã¥1Ê2x!#P–Òê1ÅÍ2ÁÃÕ1:4P·Êõ1¸Ú2:#P¸ÈÅ;8ÁÃê1>2¿W!½WÃ5!ÀWÃgJëÃ{2ͼ2^ÍÇ2^#Vþ�ÊT2þ€Â22Í{2Ã2ë#FåþÒM2á#NåþÂM2á#åÕ^Ñ#ër+sáÉÕ#^#V++r+s~·ÁÊ25Â2ͼ25^ÍÇ2q#pÃ2OÕͼ24~þ Ò™2_ÍÇ2Ñs#r#s#r#qÉ!Ÿ2ÃgJ§2¨2MP©2«2 Format Overflow*OP-&`PÉ!áWÉÃÿ2O:pP·yúü2!åÑ9GÊø2~#þ'Âé2Ãé2yÃÿ2õO:hP·ú3ÃW3ÍŠ3ú3{þÂ3*4P|µÊH3j& Õå*4Pë*#PͨH#ëáͨHÑ> Ü’3> Ü’3ÍŠ3> ô’3{=>'Ä’3ñÁ!9·Êy3=õ~#þ'Âr3{þ>'Ì’3Í’3ñÃ]3ùÅ{=>'Ä’3{·>bÌ’3É*#P++|·ÉõÅÕå2ƒX!�XÍÀ5áÑÁñɯï3>ï3>2ŽX"�Xë"‘X`i"“X!9"•X!„XÃË3áX ~# ÂÐ3*áX~Öò?4*áX~·Â4!ÛX>ÍÿDGÅ3!�å!åååå!qP͘6!qP"ïX!íXÍ\8Ã<4!ÛX>ÍÿDGÅ3!R.å!åååå!–P͘6!–P"óX!ñXÍ\8ÃQ4*ãX"õX!õXÍ\8!÷XÍ·6*çX^#Vëå!,PÑs#r*éX^#Vëå!.PÑs#r*åX^#VëÍ D|æÀ*Y!6YÍgJ·òó5×6:hP·ò—6*.Y~Ö Ú6*#P#"#P×6*.Y~Ö Â$6!#P6#6×6:pP·ò—6*.Y~Ö ÂF6*'P#"'P!%P6#6×6*.Y~Ö Â—6*%P#"%P!%P¯¾#žúh6!%P6#6*%På*6P#ÑͨH|µÂ—6!MP"DY!"HY!@YÍgJ·ú’6Ͳ5!+P6€É"JYÁ!9"LY!JYÅÍ·6Á! 9^ùÅÉTY~# ¼6*TY^#Vë|µÊÑ6É*TYå*VYëá ÍD*VY nb¯½œò7*VY ë!YY>ÍXEà 7!NY>ÍÿD*TYÍÅD!YYÍE*TY~#¶ÂL7*TY^#Vë)))|·úL7*TY6P#6*TY~#¶Â†7*TY^#Vë))|·òz7*TY6ÿ#6ÿÆ7*TY6<#6*TY6#6*TY6#6*TY6#6*TY 6*TY^#Vë}‡ÍSA}2XY*TY^#Vë}‡‡‡‡òÝ7!XY44*TY^#Vë}‡‡òó7>2XY*TY^#Vë}ò8*VY~#¶Â8*VY6#6*TY"qY*VY"mY*VY"oY!gYÍ<*TY^#Vë|µÂ[8*TY"{Y!"}Y!sYÍgJÉ^#Vë^#VÕÍN:OPþÚy8!ž8ÍgJ¯2OPO!`P·Âˆ86ÿÃ�8 +~#wÑ!PP s#r!OP4ÍÔMɦ8§8MP¨8ª8 I/O Stack Overflow:+PÖÂÞ8!P"„Y!€YÍ�=·úÛ8!Y6Ãé8:+P2Y!+P6:YÖ Úø8*#P#"#P:YÖ Â9!#P6#6:YÉ"u?Ñá"w?ëé*u?^#V#"u?ëÉ^#VëÉÍ9Í"9"{?Í"9"?|µÉÍ'9È|·È~ÉÍ9Í"9Éy·ÈÖaþÒW9ÆAÉþ Èþ=Èþ.Èþ:Èþ;Èþ<Èþ>Èþ[Èþ]Éy·È É*y?ëÍI9þ ÀÍs9Ã9ÍI9þ$ÀÍs9ÍI9Ö1þÚ¡9 ÉÅÕåo&))))\xH ëá ·Ê¾9#w ¾9ÑÁÍs9¯ÉÍy9*?#·Êí9ÞAþÒí9GÍs9ÍI9þ:Êò9 6Ã÷9p4Ís9+Í‹9Ê:#ÍI9Ê(:#þ*Â:6?Ã:wÍs9Â:ÍI9Ê/:Ís9Ã:#6 Â(:þ.Âh:Ís9 Í‹9Ê\:ÍI9Êh:#þ*ÂT:6?ÃX:wÍs9ÂC:ÍI9Êo:Ís9Ã\:#6 Âh:%#6Âq:*?##^ ~þ?ˆ:# Â�:x·ÉCON CON RDR PUN LST M!£: ~ÉÍy9þ$ ;Ís9ÍI9Ö1þÒì:\·ÊÓ:l·Â ;þ$ ;!~þ  ;Ís9!�:ÅÕåÍI9¾Â;þ Ê;Ís9#Ãô:xáÑÁ=ÈGÃñ:Ís9>�áÁÁ·É¯É*?+ÉÍ";^#VÉÍ*;#{–#zžÉÍ";6#6ÉÍ*;ë€ ër+sÉ!†YF#~�Ú�;!†Y6Pë Í Í2N Í2N!‡Y^r+s6 #6 !‡Y4^NÉ*?|·Â±;}=ž;ÍQ;í;Í©:·Ê©;¯ÉÍO>ÿ·É~þʽ;·Ê½;¯É>Íÿ;NÉ*?|·Âé;YÍ©:=ÊÖ;¯ÉyþÂâ;Í2NÃå;Í>ÿ·É~þÊõ;=Êõ;¯ÉÅ>Íÿ;ÁÈqÉ2„?*?/"�?Í1;ÚV<{²ÈÍ;;Í*;*�?ëÍ*?#ë:„?OÍ·Ê?<Í*;#s#rÃH<ÍD;Í1;Ú<Í;;€ÍÃÿ;Í*;r+s{æÂgÿ·É|µÊv<+€}æ€oÉÍ 9Í9~2}?Í9"y?Í'9:}?þÒ…=Ͳ:ʸ{þ Êñ>*?:}?wþÚ#=6ëæÂF=*s?"q?ÕÍÑ<Â\=:}?þÂñ>ÃM=ÕÍÑÍ<Êñ>!"q?*?(n?w# Âh=*?~#þÌ0@*?ÍÚN>ÿÃf?*{?¯w#wÃf?Í 9Í'9Êf?Í‹;Í9qÃf?Í 9Í'9Êf?Í9NÍÄ;Ãf?*?~ÖÈ" 4À#4À#4ÉÍ 9Í'9Êf?~þÂã=Í>Í¢@Êf?Í;;>Í(>Ãf?Í 9Í'9Êf?~þÌ;;>Í(>Êf?*?~þÊ>>ÿÃf?Í>ͧ@Ãf?*?ë!*~!/É2ƒ?*?ÿÿ|·Ê=>(^#VÕÍB9ãåÍB9ëá{•zœÚP>ëáz·ú´>¯2~?z³Ê>Õå:ƒ?þÂs>Í‹;áÑÈqÃz>NÍÄ;áÑÈ#ÃZ>*?|·Ê´>*~·Ê´>=!~?¾Ú±>õ:ƒ?õÍÿ;Ê®>ñÖª>wñÑ>ÁÁÉ͵=>ÿ·ÉÍ 9Í'9Êf?|·}Êf?~þ> Òf?†<Ãf?Í 9Í'9Êf?|·Âë>*{?¯w=Ãf?*?ÍñN*{?^#V6+6ë++Í©IÃf?Í 9Í99Êf?þ>Òf?"N#F#~Í9q#p#w>ÿÃf?Í 9Í99Êf?þ>Âf?*~ÍB9ë!·ÊU?=ÒG?>!ë*?" s#r#w=Ãf?ë*w?åë·É Í}!áY6ÿþ Ø4É€ÍÉ>ÿ2àY·É*ÝY!4À#4À#4Éå~#N#F#–y#žx#žáÉ:àY·À*ÝYë!!:ßYþÊß?Í´?Òž?:áY·È~æG~#~Oþ?Ò@#~·Â@! p! y–ÈÅÕÍÑÁ! qÍ<Â"@<ÉÍž?ɯÉ~#N#F#w#q#pÉåÍ•?Í…?~·ÑÂL@Õ#ÍÑ!!Í$@É! 6?åÕÅÍÁ<ʇ@=懇‡‡‡Æ _!€x¾Ú{@Â�@FNÅÃZ@Ñá¯wxG>�O>ˆG!$q#p#6Éé@"ÚYë"ÝY2ÜYx2ßYÍ…?¯2àYÍ•?!ÜY~5·ÊMAÍÄ?Êï@=ÂA:ßYþÂA*ÝYëÍ<Âï@ÍàYÃA*ÚYëÍ:ßYO*ÝYë:áY·Â AyÆ OÍ·Ê&A:ßYþž?*ÚY€¯w#  AÍ¥?:àY·Â@A*ÝY!Í´?Ú@AÍ$@*ÚY€"ÚYþ@:àY/·Ég.>�Gx·È|g}oÃZAá"âY>ÍB*âYéá"äYÍgAÍ”A*äYéá"äYÍgAÍ”Aå*äYãÉõÅG!9ë!x·ÊðAþ ÊëAþ+½Aã$%ºHgãÃëAþ-ʲAþ0úºHþ:òºHÖ0ÕT])ÚºH)ÚºHÚºH)ÚºH…o|ÎgÚºHÑâAÑ{þÊB$%ºH}ÃB|‡ÚºHzþ-Ì•HëñÁo&9ùëÅ}ÉO!9îÿëùÅ w#Â%BÁ60#60! 9~ ·òTB!97>š?žÆ'w#ÂEB-!9~Í™BÊmB~#Í™BÂZB! 9~þ.ÂB+60ËBþ0‹B6 #ÂsB+r>‘o&9Ñyùëéåõ>ƒo&9ñæÆ0w+°B6.áÉ!9ÍxGõ}!·ÂÉBñÑÁÁÕÉþòºHÖ/�·ÊC)ÚºH=ÃúB|ÉÁë/˜G!ÍkCþ ÂQC>0ñ·ò`Cþ ÂVC>-Áñ¸Ðá3åÃbCåÕT]))ÑÔkCá寕iO>œ`G>0 ÒŽC<ÆCÁ DMþ0Àþ À> Éo‡Ÿg|·æ€õò¯CÍ•Hë!ñÍœGáÅÕé<Áë!øÿ9ùÅ<·Ow#È ÂÍC·>™úÞC¯w#ÈÃÞC!9ë!7ë>š?žë†'w#ÂñCëÑùëéȇÃDÈ)à Dy°Èw# ÃD~#Ã(D~#W“ –À#Ã…Dë!9åO…o>ŒgãëyÍ©DáÑùëéåõ~õ#…o>ŒgxÁ�Gñ¸Ò¾DGÍ\Eá†wÉF#ëá"æYëõxÍÿDÍÙD*æYé!9G…_>ŒW€Obk++ÊùD~+ÂñDáÑyé~#·ÈÁë/ÃÚHÍ•H#"éYë"óY`i"ñYáÍxGÕë*éY"éY!èY®w`i"ëYá͇FÍŠF"íY*ëYë*ñYÍnF"ëYë͇F"ïY*óYÍõGë͇FÍ•Hë*ïYë*íY|§ò0FÍ•Hë*ñYÍnFÍ•Hë*ëYë|·òHF)))ÚHFÃHFë*ñYÍnFë*ëYë))ÒCF)ÒHF:éYO:êYGz³´µÊhFz·úhF ë)ë)ÒWFÃWF:èYÜGÍ•HDM>!ëë=È)ë)ÒyF ÃFÍŠF|§g}oÉÍYGœFÍ=GœFÕÍxG2õY"öY!øYr#q#páÍxGÕë*öY"öYÑ!õY®æ€w!ûYr#q#p:ùYG:ýYÍ)Hå:úYG:üYÍ)Hå:øYG:ýYÍ)Hå:ùYG:üYÍ)Hå:úYG:ûYÍ)Hå:úYG:ýYÍ)HëáÁ ÒGÁ ÒGÁã Ò!GÁ|e. Ò+Gåo&ë:õY*öYDMáÜG"þY!QGã^#VÕ!9ë*þYÉá3333ÅÕé!lGã^#VÕ!9ë!ëÉá33333333ÅÕé###~·Â‡GGOW_goÉÞ€_ŸW+~ö€G~æ€+N+f.ëÉõz³´µÂ¬GñÉz·ú½G ë)ë)Ò¬GìG}‡ÒÒG$ÂÒGÂÒGÂÒG€x©úäGÊéGÊéG>ÃöH>ÃñHyÆ€Gñªî€OS\É{EåÍ)HãåDÍ)HãåzEÍ)HãDÍ)H\e.Á ÒHÁ ÒHS\e.Á Ò(HÉ.HEg)Ò3H )Ò8H )Ò=H )ÒBH )ÒGH )ÒLH )ÒQH )ÒVH Éz¬õ|·ô•HDMë|·ü•HÍoHñü•HÉëx±>ÊÚH!>ë)Ò‚Hëå ÒŠHãá=Ê“H)Ã|Hëɯ•o>œgÉ^#V#N#FáÅÕé{•ozœgÉ|µÈ|/æÀ=É!ÀHÃgJÈHÉHÊHÌHÎH Conversion2ìH!ãHÃgJëHìHíHïHÃøH2Ix2 I!IÃgJ IIII#}æþOD*VZ~ÒUI##~#fo´ÂI!1IÃgJ9I:I;I=I?I Free Space Exhaustedå##^#V#{•_zœWÚJ{‘_z˜WáÚ!I4z·Â{I{þÚ¤Iå##^#V# ëãå##s#rëÑs#r#ëãës#r+++ë~æs¶w#rá####É}´Èë*VZ}“|šÒJ*{•zœÒJë+F+N+V+5^{ÚJ{•zœÒJ}‘|˜ÒJ{²ÊøIÚøIi`~æs¶w#rë##q#p Øi`N#F#^#Vë~ÒJq4#p+ëi`##s#rÉ$JðO@JðO FREE Request Out-of-Range$ Free Space Overwrite$GKþÒJMbkÃJÍLLFÍKLNÅÍKLN#FÅÍKL^#VáÁ"¿Py2¾PÅÕåxþÒ’Ji&ÍŒMÊÉJ�JÕéáÑÁxþ©J>ÿÉþÚÌJë!MP{–À#z–À*,På*.PåÍÈMáÑùëéáÑÁxÖÈy·xòØJ·ÈÕåÅõÍ0Kñ_!hL^#Vë͇KÍ*K>(Í,KÁyÍcK>)Í,Ká|µÊ KÍKÍôKá|µÊKÍK͇KÍ™KÕOå>,Í,KÍ*KáÉ> _Ã2N Í2N Ã2NæÆ0þ:Ú,KÆÃ,KõÍ:KñÃ:KåÍ*Káå|ÍHKá}ÃHKþ ÚsKd¹ÔuK ÍuK¹Ú€K‘ÃwKõxÍ:KñÉN È#~·ÈÅåÍ,KáÁÉK!ZL͇K*PZë!9{•_zœÂºK{·ÚºKþ ÚÎKÍÌKÍ*K>#Í,K*PZøÿ>·È=^#V#åõëÍTKñáÃÎKÍåK>:åæþ ÒïK>?Í,KáÉå!RL͇Káå͇K>=Í,Ká^#Vë|·Â$L}þÚL.))ÓLÇK#F>A€ÄàK> #õþÂ?L~þ >.ÄåK~þ ÄåKñ=ÈÃ0Lë^#V#ëÉ File: Traceback:xLL�L™L¤L±L¾LÎL ERROR FIXED OVERFLOW OVERFLOW UNDERFLOW ZERO DIVIDE END OF FILE UNDEFINED FILE KEYNULCONCONRDRPUNLSTBADGë!ÁP~þÚMMðO Condition Stack Overflow$4Ox!Z w#s#r#ÑÕs#r!9ë!ÂP s#rÉë!ÁPN!Z È+++++¾ÂTM#{¾ÂmM#z¾ÊrM++~ÃTM++ë!ÁP5!È~# Â�MÃ}Më!ÁPN!Z È+++++¾ÂœM#~#¶ÊÀM+{¾Â»M#z¾ÊÀM++~ÜM#^#Vë¯=É!OP~·ÈåÍNá5:OP·È_!PP^#Vë"MPP.~# ÂîM*€‘æw!/x·ÂdOy·Ê�Oå >€‘O6# Â[OáÅå€ ãÕëÍÑÕÍÑáÁ·ÊKOͯ=É¯É ~#fo++ÃúN!RZ~#¶Ê­O*TZÍñN•OÎOðOàO Íà Insufficient Memory$ Invalid I/O List End of Execution$õO 8Éù 8 8ÉùSYSINSYSPRINT€ ÿ�€ €ÿ�ÿ€ÿ��€ÿ�€ÿ�€ÿÿÿÿ�€ ÿÿÿ�€ÿ�€ÿ�€ÿÿÿÿÿ�€ ÿ�€ $ÿ�€ 'ÿ�€ 'ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ ÿ�€ÿ�€ÿ�€ÿ�€ ÿÿÿÿÿÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ÿ�€ ÿ�€ÿÿ�€ÿÿ�No files. :. k :LSX BC ToDEMRTUV???????????? New‚ Files occupying k(k remaining)Sorry, CP/M 2.x only. Which******k remaining on Drive SWEEP version 2.6 - December 15, 1981by Robert FisherDePaul UniversityChicago, IllinoisOptions:B: Last fileC: Copy fileD: Delete fileE: Erase all untagged filesL: Login new disk and reset systemM: Mass copy of tagged filesR: Rename fileS: Space remaining on diskT: Tag file for transferU: Untag a fileV: View a file at consoleX: Exit to CP/M?: Redisplay menuspace or cr: Next fileDrive New name:   already exists Delete? (Y/N):Y* Deleted.Do you wish to be prompted? (Y/N) : NType A at prompt to abort.Erase ?(Y/N/A)AErasing $ Out of directory spaceCopying =====> Error. Disk full. Warning: source = target. Re-log drive. drive and user: 0123456789: #****Aborted. Total of tagged files = k (k) Total of tagged files = ( üU çUV¾VÝUïU VÒµ V€åUñUÏU12 3 space9V �vBV   PV  ./0,-&')*+(%12€VÜU¢V¦V°V¶VçUÃVÈV¿V¿VÓUúVþVWÏUÏU WWÏUWWWÓU$W(W,W0W4W8WëUÏU@W^WaWÜUyW{WíU”WíUÜUíU­W°W¹WºWMP»W¿WÈWÉWMPÊWÌW Invalid Format ItemƒXŽX�X‘X“X•X Stream/Record Sequen/Direct Input/Output Keyed Access P< $conïXóXPÏX—X¥X³XÁXßXàX YY YYYY%Y 'Y4Y*Y+Y>Y,Y-YHY.datXYYYqYRYSY{Y}Y„YY]ZƒXŽX�X‘X“X•X Stream/Record Sequen/Direct Input/Output Keyed Access P< $conïXóXPÏX—X¥X³ltalst add c sta last call seekit lda reps dcr a sta reps jnz dosek ret seekit mov b,a lda buffer+1 sub b push psw mov a,b sta buffer+1 pop psw mvi b,0 jc movin mvi b,1 cma inr a movin cma inr a mov c,a call seek chkseek mvi a,rhedr out comnd sekwait in status ani opdone jz sekwait mvi a,isbuff out comnd in data in data in data in data mov b,a lda buffer+1 cmp b rz push b lxi d,sekmsg1 call pbuff lda buffer+1 call putadc lxi d,sekmsg2 call pbuff pop b mov a,b call putadc lxi d,sekmsg3 call pbuff sek00 call trkzro xra a sta buffer+1 ori 1 ret ***************************************************************** * * * Cformat formats one track on the current head. * * * ***************************************************************** cformat mvi a,1 ;Initialize the sector count sta buffer+2 lda buffer+1 ana a mvi a,80h jz putkey xra a putkey sta buffer+3 call indx call phytyp mvi b,secm26 lxi d,skewm26 jz floop mvi b,secm10 lxi d,skewm10 floop lxi h,buffer+2 incsec ldax d mov m,a inx d dcx h ;Adjust the pointer to the sector header dcx h mvi a,isbuff ;Initialize the controller pointer out comnd ;Give the command mvi c,hdrlen ;Header length ldloop mov a,m ;Transfer the contents of the buffer to out data ; the controller inx h ;Bump pointer to next byte dcr c ;Update the counter jnz ldloop mvi a,whedr ;Write header command out comnd ;Issue the write header command bwait in status ;Wait for the write to complete ani opdone jz bwait dcr b ;Test for sector count equal to 0 jnz floop ret skewm26 db 22,12,2,23,13,3,24,14,4,25,15,5,26,16,6 db 27,17,7,28,18,8,29,19,9,30,20,10,31,21,11,32,1 skewm10 db 8,15,2,9,16,3,10,17,4,11 db 18,5,12,19,6,13,20,7,14,21,1 zers lxi h,errors call phytyp lxi b,secm26 jz zersx lxi b,secm10 zersx mvi m,0 inx h mvi m,0 inx h dcx b mov a,b ora c jnz zersx ret initfld sta cnt mov a,m push psw call phytyp mvi b,secm26 jz iniflx mvi b,secm10 iniflx pop psw inilp push psw push h lxi h,cnt mov d,m pop h inilop mvi c,hdrlen iniloop mov m,a inx h cma dcr c jnz iniloop inr a dcr d jnz inilop pop psw inr a dcr b jnz inilp ret makbuf0 lxi h,drive ;Get drive # mov a,m rlc rlc ;Move to left four bits rlc rlc mov b,a ;Save drive # in B lda head ;Add in the head # sta buffer add b ani 7 ;Strip off the drive # rlc rlc rlc ;Head # in to four significant bits rlc cma ;Head # is negative logic ani 0fch ;Strip off the drive bits add m ;Add in this drive sta dfnreg ;Save the function register out functn ;Output the function ret incerr ani 3fh mov l,a mvi h,0 lxi d,errors dad d mov e,m inx h mov d,m inx d mov m,d dcx h mov m,e ret newpat lda tsttyp ana a mov a,m jz long short lda sflg ana a mvi a,0 sta sflg mov a,m jnz shortx mvi a,1 sta sflg mov a,m cma ral cma shortx cma dcr a long inr a mov m,a ana a ret ***************************************************************** * * * Pbuff is the CP/M print buffer command. * * * ***************************************************************** pbuff lda quiet ana a jz pbuffx push d lxi d,nulls call pbuffx pop d pblop ldax d inx d cpi '$' jnz pblop pbuffx mvi c,9 ;Print buffer command jmp bdos ;Go and enter the BDOS ***************************************************************** * * * Rbuff is the CP/M read buffer command. * * * ***************************************************************** rbuff lxi d,bufmax ;Beginning of buffer mvi c,10 ;Read console command call bdos ;Read and fill the buffer lda buflen ;Check for zero length ana a ;if zero the return with acr in A mvi a,acr rz lda bufdat ;Otherwise return with the character cpi 'a' ;Fold to upper case rc cpi 'z'+1 rnc sui 20h ;Perform the mapping to upper case ret bufmax db 10 ;Maximum length buflen db 0 ;Current length bufdat ds 10 ;Storage or read in data ***************************************************************** * * * Exit prints a message on the CP/M console then does a warm * * boot. * * * ***************************************************************** exit call pbuff lxi d,insmsg call pbuff call rbuff jmp wboot hlcde mov a,h cmp d rnz mov a,l cmp e ret putadc mov l,a mvi h,0 ***************************************************************** * * * Putdc prints the ascii decimal equivalent of the number in HL * * * ***************************************************************** putdc lxi b,-10 phl push d mov d,b mov e,b phllp dad b inx d jc phllp xthl xchg mov a,h ora l cnz phl pop h mvi a,'0' add l sub c pchar push h push b push d push psw mov e,a mvi c,2 call bdos pop psw pop d pop b pop h ret ***************************************************************** * * * Panic checks if a character has been hit on the console. * * If a character has been pressed, then panic acknowledges the * * fact and asks for an abort. * * * ***************************************************************** panic mvi c,11 call bdos ani 1 rz lxi d,panmsg call pbuff mvi c,1 call bdos call rbuff cpi 'Y' jz wboot cpi 'R' jz askall lxi d,acralf jmp pbuff ***************************************************************** * * * Messages output by the program. * * * ***************************************************************** prompt db 'Discus M26 ,M20, and M10 Hard Disk Format Program Rev. ' db revnum/10+'0' db '.' db (revnum mod 10)+'0' db '$' db 'Rev ' db revnum/10+'0' db '.' db (revnum mod 10)+'0' db '$' phnum db acr,alf db 'Enter Physical Drive Number to be Tested or Formated ' db '(1 - 4, RETURN to exit): $' db acr,alf db 'Physical (1-4): $' lognum db acr,alf db 'Enter Logical Drive Number to be Formated ' db '(1 - 3, RETURN to exit): $' db acr,alf db 'Logical (1-3): $' hdmsg db acr,alf db 'Enter Amount of Formatting Desired:' db acr,alf,atab db 'H = Format Headers Only (Data Remains Intact).' db acr,alf,atab db 'D = Erase Data Field Also.' db acr,alf db 'Function: $' db acr,alf db 'Function (H,D): $' rdymsg db acr,alf db 'Drive is not ready.$' db acr,alf db 'Drive is not ready.$' hltmsg db acr,alf db 'Controller not halted.$' db acr,alf db 'Controller not halted.$' wfmsg db acr,alf db 'Write fault on drive.$' db acr,alf db 'Write fault on drive.$' astrk db '.$' db '.$' hardmsg equ $ softmsg equ $ acralf db acr,alf,'$' db acr,alf,'$' rdywait db acr,alf db 'Waiting for drive to become ready, could take ' db 'as long as 2 minutes.$' db acr,alf db 'Waiting.$' headmsg db acr,alf db 'Testing sector headers, will take about 30 minutes.' db acr,alf,'$' db acr,alf db 'Testing headers.$' formmsg db acr,alf db 'Formatting the entire physical disk, ' db 'will take about 4 minutes.$' db acr,alf db 'Formatting.$' logmsg db acr,alf db 'Formatting a logical drive, will take about 1.5 minutes.$' db acr,alf db 'Formatting.$' errmsg db 'Sector Error, Track $' db 'Sector Error, Track $' secmsg db ', Sector $' db ', Sector $' hedmsg db ', Head $' db ', Head $' rtymsg db ', Error count $' db ', Error count $' donmsg db acr,alf db 'All Finished, Returning to CP/M.$' db acr,alf db '-> CP/M.$' panmsg db acr,alf db 'Want to abort ? (Yes or No, R to restart): $' db acr,alf db 'Abort (Y,N,R): $' datmsg db acr,alf db 'Testing sector data field, will take about 12-14 Hours.' db acr,alf,'$' db acr,alf db 'Testing data.$' failmsg db acr,alf db 'Error Writing Sector Map to Track Zero.$' db acr,alf db 'Error Writing Map.$' fullmsg db acr,alf db 'Bad Sector Map Overflow.$' db acr,alf db 'Overflow.$' seekmsg db acr,alf db 'Testing Track Seek Mechanism, will take about 15 minutes.' db acr,alf,'$' db acr,alf db 'Testing Seeks.$' sekmsg1 db acr,alf db 'Seek error, Looking For Track $' db acr,alf db 'Seek error, Looking For Track $' sekmsg2 db ', Found Track $' db ', Found Track $' sekmsg3 db '.',acr,alf,'$' db '.',acr,alf,'$' unknown db acr,alf db 'Unknown Command.$' db acr,alf db 'Unknown Command.$' bdrvmsg db acr,alf db 'Bad Drive Number.$' db acr,alf db 'Bad Drive.$' funcmsg db acr,alf db 'Choose The Desired Function:' db acr,alf,atab db 'L = Format a Logical Drive.' db acr,alf,atab db 'F = Format an Entire Physical Drive.' db acr,alf,atab db 'C = Continue An Interupted Test.' db acr,alf,atab db 'D = Run a Diagnostic Test.' db acr,alf db 'Function (RETURN to Exit): $' db acr,alf db 'Function (L,F,C,D): $' notyet db acr,alf db 'Not Yet Implemented.$' db acr,alf db 'Not Yet Implemented.$' drvtyp db acr,alf db 'Select The Drive Type:' db acr,alf,atab db 'A = Discus M26, 26 Megabyte Drive.' db acr,alf,atab db 'B = Discus M10, 10 Megabyte Drive.' db acr,alf,atab db 'C = Discus M20, 20 Megabyte Drive.' db acr,alf db 'Drive type (RETURN to Exit): $' db acr,alf db 'Drive type (A,B,C): $' muchmsg db acr,alf db 'How Much of the Diagnostic Do You Want to Run: ' db acr,alf,atab db '1 = Sector Header Field Test Only.' db acr,alf,atab db '2 = Sector Data Field Test Only.' db acr,alf,atab db '4 = Seek Mechanism Test Only.' db acr,alf db 'Choose the Diagnostic by Adding together the ' db 'Desired Options.' db acr,alf db 'Options (RETURN to Exit): $' db acr,alf db 'Option Sum (1-7): $' repmsg db acr,alf db 'Repeat forever (Yes or No): $' db acr,alf db 'Repeat (Y,N): $' prefmt db acr,alf db 'Has the Drive Been Preformated ? (Y or N, RETURN to Exit): $' db acr,alf db 'Preformated (Y,N): $' nulls db 0,0,0,0,0,0,0,0,0,0,'$' insmsg db acr,alf db 'Press RETURN to return to CP/M: $' db acr,alf db 'CP/M: $' ***************************************************************** * * * Dynamic data locations. * * * ***************************************************************** quiet db 1 much db 0 sekcnt db 0 first db 0 last db 0 dltafst db 0 dltalst db 0 reps db 0 disktyp db 0 heads db 0 nodata db 0 frsttrk db 0 lasttrk db 0 settle dw 0 ;20ms time constant buffer ds hdrlen head db 0 dfnreg db 0fch errflg db 0 cnt db 0 badsec db 0 mappnt dw 0 ;Pointer into map table drive db 0ffh ;If this location is NOT 0ffh then ; NO prompting will occur sflg db 0 tsttyp db 1 phase db 0 hedbuf1 ds secm26*hdrlen hedbuf2 ds secm10*hdrlen ds 100h-($ mod 100h) datbuf1 ds seclen mapbeg ds seclen*2 errors ds secm26*2 ds 30 stack equ $ end