IMD 1.18: 9/11/2012 10:27:04 eng rel 7.0 10-18-85 #5  Ý*þ!˜�í£>€G øÛ:‘“2©�2³�!¨�Íó!¬�ÍóÍö:€“Ë_ êËo(ìæÐÄù!®�Íó!¼�8í³>�íGí^û!²�ÍóÍö:€“æÀÄù!q�@'í°Ã@>ðíy�>ùíyÛÿÍòÍcòwÍòÍcòwÃòÿñòóôõö÷øúûüýþÿÿ�ÿF ÿÃÇË}òÿ (•КÏÏ«‡Ò�õÛ>ÃÓ8ñíM ÃÜÃÜPDOSYSLIB CPM86­Ûۦ˟§¦*‰ ‰ÖKª*Ñ­? ,>íCOM$$$  SUB¦ÖË_ÃÅÍŒ¦ÁÉ> Í’¦> Ã’¦> Ã’¦Å͘¦á~·È#åÍŒ¦áì¦ ÃDIR —ßLISTmàTYPEqàUSERËáDFU ÕáGO âáERA GàSAVEáREN ‡áGET ŒâJUMPÝá¯2Û1wÛÅyæ_Í[ÝÍÝ2-ÜÁyæ2oÝ(Í#Ý2-ÜzÛ>·/Ä=Ý/2-Ü:Û· )1wÛÍ­ÜÍÝÆAÍ´ÜÍYÝ·(þ 8 Ö õ>1Í´ÜñÆ0Í´ÜÍ}ÝÍßÝÍÝÍÝ2oÝÍöÞÄÞŽÜÕ:íÞ·ÂçáÍußÂçá~#foéÍâÞÍöÞ:œÛÖ !íÞ¶ÂÞ›ÍûÜNo FilåÉ> Í´Ü> æÅ_åÍáÁÉÍôÜÃtÝÕÿÍôÜÑþ(óÉõ>·(ñÅÖñõÍ´Üñþ ÊìàÉ›ÛÅÍÁ·ÉõÍ­ÜñãõÍÝñãÉ~Í´Ü~#·Èøõ € Ã_ø¯2»Û›ÛÍ<É÷›Ûðì!-Ü~·È6zÛÌ>_ÿ ÁÍY݇‡‡‡!oݶ2É>2ÉþaØþ{Ðæ_É:-Ü·(EzÛÕÍ/ÝÑ(;:‰Û=2šÛÍòÜ /Û!€Pí°!ˆÛ6#5zÛÍ6Ý(>)Í´Ü!ÛÍÝÍõÝÈÍEÝÃ=ÜÍEÝÍ_Ý>>Í´Ü ÛÍÍnÝÉ!ÛF#~ÍtÝwø6!Û"YÛÉÕ ÍôÜÄÁÜÑÉÍQÞþØÍ­Ü*[Û~·(åÍ´Üá#ôÍÝ¿ÍEÝÃ=Ü·Èþ 8ÝÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>Éí[YÛ·Èþ À÷…oÐ$ÉÍöÞ!¦Û ~+þ øþH(+!œÛ~þ (#Ö0þ 0Wy�8 �8‚8OãyÉÃÞÍöÞ!œÛ ~þ (-þH()Ö08åþ 8Öþ0Û#OzæðW{_æ²W{æð±_Îë}É!€�ÍLÞ~ɯ2›ÛÍìÞÈÍìÞÈ:oÝÃ#Ý>·È=!oݾÉ!›Û¯2íÞÍ?ÞíS[Û·( Ö@Gþ:(:oÝwx2íÞp¯2¾ÛÍFßþ. ÍFßÍgß#6ûíSYÛ:¾Û·ÉÍ"Þ(#þ* 6?Ímßwþ?ÌmßæÍ"ÞÈù#6 ûÉ:¾Û<2¾ÛÉ!¿Û œÛ¾ #øþ É#ý## å ÉÍöÞÍØÞ!œÛ~þ Ì?àÍ?Þ(íSYÛþS >€ þD ¯2æß>€¯2æßWÕÍ:ÝÌ¢Ü(g=æ`O> ÍÏÞÑÕ¢þ JÑ{Õæõ Í­ÜÍÝ |  xÍÏÞæþ ñõþ > ÍÏÞæþ (> Í´Üxþ 0 þ Ö>.Í´ÜÏñÍõÝ ÍAÝ—ÑÉ 6?#ûÉÍöÞþ ÍûÜAll¿ÍÁÜþYÂ=ÜÍ­ÜÍØÞÍÆß›ÛÍPÝÉ>ÿ¯2ÙÜÍöÞÂÞÍ?Þ2öà(ë"YÛÍØÞÍ(ÝÊéàÍ­Ü>2¼Û!½Û6ÿ!½Û~þ€8 åÍïÜá 8¯w4!€ÍLÞ~æþÈþ þ 8þ (Í×Ü > Í×Üxæ õÍõÝ(¾þȹ=ÈÆâå!¼Û5 6>þP(ÍÉÜþÊŽÜáÉÍQÞo&åÍXáÍ1Ýá(:¯2»ÛÍ?ÞþS()íSYÛ|µ(+å!€åÍÝ›ÛÍôÜÑá ä›ÛÍ6Ý< ÍìâÍÝÉÍöÞÂÞÍØÞÍ:Ý›ÛÈÕÍûÜDelete File¿ÍÁÜÑþYÂŽÜÕÍPÝÑÉÍXá:íÞõ!›Û«Ûí°Í?Þþ= (ë#"YÛÍöÞ ñG!íÞ~·(¸p p¯2›Û›ÛÍ1ÝÀÍ¢ÜÆâÍÞ_Í[ÝÑÜÍÞ2´âõÍ�Þþ( 2¶â_Í[Ýé!íÞ¯¶Â‚â6Ý!>Ú¼8åëÍÝ›ÛÍòÜá €ç=ÈÍûÜFulì>·É·ÉÉVVVVVÃ!ã—åÈåÍåÒå£åÃåHIDOS11f¨åŽåísñ1Kñ!"ñ"ÜñíSñ{2Ôñ!Rãåyþ)ÐK!Kñ_^#V*ñëé:Üñ·(*ñ6:Ýñ·( w:Þñ2ÔñÍÃïí{ñ*ñ}DÉÍüå:Íò5y<( < Íò)à òÍò·ÊmãÍ ò:!qÉþ$ÈÕO͈æÑóÍæ2ñÉ>ø>"öã!"øð"úð¯2ñ!€"üðÍÄéÃÌïë~þ?(Íõè~þ?ÄšéÍÂðÍãêÃÑé*×ñ"ñÍÂðÍ9ëÃÑéÍè Íãê<('ͼð(ÍRêÍ.èÍpé͆é6åͱêͼéÍ9ë< êͼðÄNêÃ�äÍè Íãê*ñFp<(Ípé ͧéÍ9ëîÃ�ä*úðB:ñöãíSüðÃÄéͼð(ÍRê*«ñ(*øð#Í‘ç Íãê<(  ͧéÍ9ëñ:ÒñͶãÃïç*§ñ"ñÉ:Ôñþÿ :ñöãæ2ñÉÍÂðÿÍñîÌ@íÉÍÂðÍñîÌ~íÉÍÂð Íãê*ñ!år#r#r<( ͆é͉ïáå_y–#xž#{ž8s+p+qÍ9ëÝáÉ*ñ}/_|/*úð¤W}£_*øðë"úð}£o|¢g"øðÉÍÂð>2ÓñÍõîÌ~íÉBdos Err On : $Bad Sector$Select$File R/O$ Not Locked$No Locks$ SHRALLOC$„åͦãÃ!TåÍÛåþÊÉ!{åò!sååÍ<æ! ñ6$ÿðͦãÑͦãÍñåÚ!oåã!_å!kå!fåÍÛåÃåÍ<æ:ñÆA2PåDåͦãÑͦã!ñ~6·Àà òÍñåÍ æØõO͈æñÉþ Èþ Èþ ÈþÈþ É:ñ· ÍòæÈÍ òþ Í òþʯÉ2ñ>É ÍCæ :ñ· ÅÍæÁÅÍ òÁÅ:ñ·ÄòÁy!ñþÈ4þ Ð5~·Èyþ 5Éþ À6ÉyÍ æ0 õ^ÍCæñö@Oyþ ¶ ÍCæ:ñæ ôÉÍ¢æ Í òà ò#ÍCæÍ<æ:ñ!ñ¾Ð ÍCæñ:ñ2ñ*ñN#åÅåÍñåæáÁþ ÊŠçþ ÊŠçþ x·(å:ñ2ñMþ x·(Ô~+vþ       ÅåÍ<æ¯2ñÂþ å!ñ>–wá±þ á:ñ!ñ¾0•5Íšæñþ ͧæá…þ 3ÅͧæÁáåÅx·( #NÅåÍxæáÁðå:ñ·ÊÎæ!ñ–2ñÍšæ!ñ5 ÷ÃÎæ#wÅåOÍxæáÁ~þx þʹÚÌæáp ÃCæÍÂðͼðÈ!²ñÿðí°bk6+í°!¶ñí°!þð"J6 !" ñÍ`ò}·ÈþƒÈþ‚Ìëç* ñ+" ñ|µ çÍçç!" ñÜ*ãé*ãéͼðÈÍfò}·ÈþƒÈ*ãérror at ãÕÅõå!ôûÍ1úáåÍYúáñÁÑãûíMå+++ÍYúáÉ!øòÉ:íò:âòþÿ !Yü~É&oZüå ^#VáëÉ ÀüZýŠüÚüúüÀüZý­üý:ý 4òÀ   4òÀ       ÷(Í%÷ÍW÷͉÷!þÿ€í°*òò€ÿ€í°Ã¬÷:ëò·È!éòâòí í í Í‰÷!€þ€ÿ€í°f:âò¾À:ãò#¾À:äò#¾É*íò"âò:ðò2åòÆË?2äòÉ}FyE*ôò+"}ù*òò"{ùÍW÷M!æòÍF÷ ¯É!âòæòí í í }F!þ"{ù$!æòÍF÷ !ÿþí°!"ëòyE!ÿ"{ù!ÿ"}ù>2žò{2‡ùz2zùx2™ò:äò2�ò!L6 :NËG 6Í3ü2šÃýà óÃ�óÃŒó×óâóÿóÃÏóúõÃ1õÃ’õ×õÜõÃÿôÃõýóæõ ü ü ü ü ü üôô ü ü ü­ù üúÃ%÷ÃçûÃ.üÃçûáõ1mòÃçûÃçûÃçûÃçûÃþôÃçûÃçûÃçûÃçûÃçûÃçûÃçûÃçûÃ*ü€ ü ü ü ü ü ü ü üÿÿÿÿÿÿÿ€€ùfð¦( # 4~æ?(#Íãê< :Ññ<(Í’ì:ñ<( Í¿ëÍ é¯Ã¶ãͺãàéÍÂð>2Óñ>ÿ2ÑñÍ é:áñ!ßñ¾8þ€ ÍÞì¯2áñ:ñ· ÍÌè( ÍÒèÍ=èÍ èÃ!éúãÍÂð>2Óñ¯2ÑñÍ~é*ñÍséÍ é:áñþ€ÒºãÍÌèÂdîÍ”çͼð(ÍRê͸ëÍÌè(ÍïçÃdîÍŠè2Õñ·(O ͧèDMPYy°( ÕÅÍê0ÁÑ*Âñ{•zœ0ÅÕBKÍê0ÑÁÙ<ÍHêáÑy°ÍÂðÍ~éÔçÍò¯*¡ñw#w#w#wͼðÈÊòÍ'òÍ*ò·È* ãé*îñÍ<é"âñ¯2äñí[½ñ!€·íR !D:âñæOÍ~è:âñ:ãñO:äñG*Êñ DMÃò*âñ¯GOíR8ÃpèåÍaèÁí[�ñÍ0òDMÃ!ò!¿ñN:áñË? ûG>–O:àñ (Ë'ù€É*ñ :Ûñ·(n&É ^#VëÉÍŠèOͧè"åñÉÍ¿è}´É:¿ñ*åñ)Ë= ú"çñ:ÀñO:áñ¡µo"âñx2äñÉ*ñ É*ñó1€>òíGí^Ý"þòý"ó:çÿ2—22O2M:íÿ2N:ìÿ2H!@6#û>ÿ2G!èÿ1í³:éÿþ(!ëý+ í³!êÿ2í³!ëý" í³!ëý# í³>Ó+>@Ó+>Ó#>°Ó#Ûþ€ :îÿ·(>ß2õý2„õ!ôýÍÜø:ìÿþ>( >ÅÓ3>Ó3>¥Ó3>üÓ3>PÓ0>ZÓ >·Ó >Ó >Ó*>Ó*>Ó+>Ó+!ÜýÍ1úû! óåíM CP/M 2.249f Láê�ÿòæ2œò:ãò2›ò!sù:›òw+Í×õÍxú!Ëø"Xò—Ó!wù8í³>ÿ2Êø!™òÍÜøûÍøø:Êø·( ó>ÃÓ8—2wú2ÊøûÍaù:¢òæÀÈ!L¥ò:¤òËo(5ÌOûXËg( 5ÌOûÍÎõKËG(5ÌOûA:£òËo(5ÌOû4ËW(5ÌOû*Ë(5ÌOû ËG(5ÌOûËg(5ÄOû ËO(ÄOûÍOû!M4ÃøõÛ>ÃÓ8—2wú2ÊøñûÉT]>ÿ2¢ò~þÿÈÍù0Íøøëê~Ó#ë!¢òÍùÐÛA=ÿó1€>òíGí^û>Ã2!ò"20"12!ã"ÍøøÍ%÷ÿÍ1õͺõÍ—õÛÍœõ Í¡õÍÿôÍ’õÍ—õçÍœõ Í¡õÍÿô€Í¡õ:O!NËvÊÛ˶ÃÛÍÝó@ô†ô¼ô¢ôÍÝóNôŽôÄôªôÍÝó`ô˜ôÓô²ô:æÍâó`ô²ô˜ô|ôÝôòôþôçû—É:æÍâó`ô²ô:æÍâóNôªô:æã_~#foãÉvvvvvvvvvvvvvvvv Ì!}´ Íïç>öãåͼðÄNêá"åñë*ñ :Ûñ·:Õñ(ÍŒésO s#r:»ñæ@(ͼð(Í‘éæwÍ!é>ÿ2îðÍì¯2ñ2îðÍ¿è:ñ·ÀÅÍÒè:Óñ== :ÁÅy== 3å*¥ñWw#ò€îÍÊé*çñ"âñÅÍ=èÁÍ%è*âñ:ÀñG¥¸# çá"âñÍÄéÍ=èÁÅÍ%èÁ:áñ!ßñ¾8w4 õÍ‘éæwñþ :Óñþ Í!éÍÞì!ñ~· =2áñ6Ã!é¯2ÓñÅí[ñ!!~æë!ÉÍýè~2áñë~2ßñÍõè:Áñ¦2àñÉÍýè:Óñþ ¯O:áñ�wë:ßñwÉ:ñO ÈË<Ëø:ñ!<=()úyµox´gÉ*øðÍ8é}æÉ!øðN#FÍEé"øðÉ͆é ~Ð*ãéÍYéÈ* ãé*¥ñ:íñ…oÐ$É*ñ~ÉÍ‘é6ÉÍ‘éö€wÉÕ*ñ å͆éÑëÁí°Í.èÍÊéÍ%èíKüðíK¥ñÃ$ò*¥ñí[üð€í°É!îñ~#¾À<É!ÿÿ"îñÉ*Äñí[îñíSîñ·íR8è:w#ËFôÛ0ûÉÿõG˨Ëà:ãòþ8þŠ0 Ëèþ;8þe0Ë ËÐó:úOxÓ —2úûñG:ù¸ y·Àx2ùåÕÍ.ü+~Ñáþ @Ê:öÃ:ö>>2úÉÍ%÷¯Ó ÉÿÿÿÃÇË(•XšÏÏ«‡vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvõûís‹ù1­ùåÕÅ!@:H4¾ 6#><4¾ 6#4– w#>4– w##4:wú· !ú~·(5 Ígù#ÁÑáí{‹ùñûíMõûísîó1ôåÕÅÍ'ô(Í2ôóÍ—óÁÑáí{îóñûíMÛ(æO*àò}¼É&Àòq<æ2àòÉû*àò|<æG•È>ÿÉÍ@ô(ûh&Àò~!áòpÉÛ*æ(úyÓ(ÉÛ+æÈ>ÿÉÍjô(ûÛ)æÉÛ+æ(úyÓ)ÉÛ"æÈ>ÿÉ͆ô(ûÛ æÉÛ"æ(úyÓ ÉÛ#æÈ>ÿÉÍ¢ô(ûÛ!ÉÛ#æ(úyÓ!ÉÛæ@ÈöÿÉÛæ@(úÛæ úÛÉÛæ úyÓÉ:æþ(íÛËw ñyÓÛÉÛæ úyÓÓÉÉÍW~#~æO~æG#~æ°G~æü. ^zí[ñ! w! y– !x–æ(6áåÅÕÍìÑÁ.:ñ<(*! q!p͸ë:ñ< ÁÅ. (Í’ì.:ñ<(Á¯Ã¶ãåÍ‘é6ÀáÁ}2ñàéëN! ~æ€�O~æG!~‡‡‡‡€G~æ0É*ñ ͉ï!!q#p#wÉ:Ôñ!ñ¾Èw*úð:ñOÍ<éëOÍò|µ * ãé^#V###"¡ñ##"£ñ##íS�ñ¥ñí°*îñæ‡ý2íñ·ÀÍ.èÍÊéÍ èÃÄéyæ<_WyæOx‡‡‡‡‡±OxæG*«ñ ~ üÉÕÍêæþÁ± üwÉ>ÿÍè¯2éñ*Íñí[ÊñMDÍò*«ñ"ëñ:Ìñ2êñ:ÏñGÅí[�ñ!êñN4Í0òMDÍ!òíKëñÍ$ò:éñ· Í èÍ%è*ëñ€"ëñÁÈÃÄé͆éÅÑ ÈÕ:Ûñ·(ÅåN ÅN#Fåy°(*ÂñíBÔ@êá#ÁØ>ÿ2Òñ2òñ!Öñq*ñ"×ñÍ è:Öñ·(ÿTEE >ÇòÛ1fõÛæ€(ñã!úãûíM÷ *** HALTed at !úÍ1úá+ÍYúóv~·ÈOÍ—ó#öNÍ—ó#ùÉÅå Í—ó Í—óáÁ~Í`ú#ëÉ|åÍ`úá}õÍiúñæÆ0þ:8ÆO×óûó:wú· ÷/2wúÉ *** error key to abort, to retry, or to ignore FDC buf: Cmd Dsk Trk Hd Sec Den Max .üþÿÊçû+~þÊLöþ ÊxöÃçûy2öòÍ.üþÿÊçû+~þÊSöþ ÊÆöÃçûyþÿ( þ8¯2!É2íòÍ.üåÕõ+~!Zõåþ( þ ( áñÑáëÉ:„õ!Ÿòp#q2�õÛþ€À!€õÃÜø�ÿ�yþÒçûÍâóçûçûíCîòÉy2ðòÉíCòòÉíCôòÉÕÍ.ü+~áþ(`i#É n&É!"îòÍ.ü+~þ(þ (É:íò2âò!oùåÍ3üáw+åÍùÍÜøÍ:öÿ!uùÍÜøÍøø:¢òGþ€§ñðÿ­ñ#í°*Âñ|!Ûñ6ÿ·(6*úðÍ8é}ØíKúðÍEé"úðͼð(<þð>!²ñí°>!>*ñå!þð"ñ Íãêá"ñ!þð6 <(¯2ñÉ*ãéÍ è*ÂñÍ<é#DM*«ñ6# x± øí[Æñ*«ñs#rÍçéÍîéÍÞéÈ͆é>å¾(ñ:ñ¾ #~Ö$ =2ñͱêÚ:­ñËwÉ>ÿ2Üñ*ñ~æ=2Ôñþ0:ñ2Þñ~2ÝñæàwÍÃï:ñ*ñ¶wÉå½F+½F+€ F*×ñ#~æ©O#÷y· Íçé"ðñ&Ë'ËË'Ëöí[Äñ£o|¢g"îñ"ðñíR(Ù:òñ·(kÍîé*îñí[ðñ·íR ¯2òñÍÞé(âí[×ñ͆é:ÖñOy·(/þ?($xþ (þ (–æ ½ÅNõ:Áñ/Gy Oñ ‘æÁ ¨# Í:îñæ2ñ!Òñ~Ð:ñwÉÍçé>ÿöãÍšéÍÂðÍãê<ÈÍõè~õå͆éí[ñ åí°Í éÑ! N!Fáñwy¾x(>8>€*ñwÉ~#¶+Àw#ÿ.Í<2!|µÊ/!É:Þ€o&å!å!å!9^#V!^ÕÍ)ÑÑÑÑÍZUÊA/!É!9^#V!^!ÿÍKUÊ\/!É!å!/0å*åÍduÑÑÑÂ{/!#Ã~/!å!9^#V!^ë+#ÍVñ€å*é€åͱtÑÑÑ!å!9^#Vë#å*é€åͱtÑÑÑ!9^#V!^Õ*é€Ñs!9^#V!^Õ*é€Ñs!9^#V!^Õ*é€ Gap Len StatusEöNRDYføDATApøTRACžøENDTŠø ID ²øORUN”øSECT»øPROT¨øDENS}øMADRI/O ÑÕÅ!û ~»#~# º(####ð:NËG >2LÁÑ û·íR}Éå!†úÍ1úáÍ;ú!ŽúÍ1úáå¥ò·íRá(!ÙúÍ1ú!•úÍ1ú!™òÍCú!L6 !ŸúÍ1úÍŒóþÊþ Èþ ëáÉ *** CALL error at !ÑûÍ1úáÍ!üåÆ *** INT e(íÅæOÍ3üæ¹Á àxæHþH(,xËo(ÔáæÐ y·(Í:öÃaù:NËG šÍaù>ÿÉ ††x± ùÉÍaùÍOûá#‹}y*òò"{ù*ôò+"}ù¯2žò*íò"âò:ðò2äòÃÛ÷:îò·(Î:ôò·Êk÷í[íò*éò·íR :ðòG:ìò� í[òò!ÿ€í°ÉÍW÷͉÷õ:åò!þ8!€þí[òò€í°ñÉ:îò·(‡:ôò·Êr÷:ðò0Í%÷ÍW÷*âò"éò*äò"ëò*òòÿ€í°—ÉÍW÷!éòÍFÆFSFÆFSSFFFFFFFFFFFFCopyright (c) 1983 Digital Microsystems vvvvvvvvòwãˆæ|ãòò�ãœã¡ã¦ã¾æ³ã¾ãÃãÃï²ëìÜãøãä8ívíŒì<äbägämätäcé�ä†ä¦ä­äÀäÌäØä°ïå¹ã¹ã3åÿôyö ô„ööFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFFw+ÉÍÂð¯2ñ2îñ2ïñÍYéÀÍ‘éæ€À:îð<Ä”çÍãê<(Z͆é ë*ñ :Ûñ·(~· w· ~¾ 8Í÷ëëÍ÷ëë¾ *#¾ $ # Òìÿ ë ¾8 w ë ~>ÿ2Ðñ͹éÃïç!ñ6ÿöÍšéÍÂðÍ~éÍ”ç:»ñæ@Ìpð*ñå#ððí°!ïð"ñÍãêá"ñ<(ë!¯w# û! w ͧéÍ éÃïç¯2ÐñÍì:ñ<È*ñ ~<æw( G:Áñ !Ðñ     ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååSYSLIB1 OVRE†‡™š›åSYSLIB1 OVREghijkåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå€ ÷ �  ƒ  � *<;=G=S 8 _ 9 n : } ;  ¦› §¦§™'/ þ × ÿ ä  Ãs COPYRIGHT (C) DIGITAL RESEARCH, 1981 01/25/82 1‘n1‘nÍña^7Í�Í¢$Ú’~7Í�Í Í $ÍL!ù‚6ÿ:ù‚<2ù‚þÒ:*ù‚M!Ë ^#VëéÍÆÃÑÍéÃÑÍíÃѹ¿ÅÍF*͉*:C…Ú ÍVÒò!C…6ÿ!ù‚6Ã!F…6ÍaÍ‚ÍååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååLMCMD CMD(]^_LMCMD COM`aåLMCMD $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååSYSLIB2 OVRgåSYSLIB2 OVRlååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååGIOSHNS 71AIoqrsuLDCPM A86,Z[\åGIOSHNS 71AI¡¢£¤¥åGIOSHNS 71AI|}~€åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå ö  ÷ ?  ?  2?  ô ö h ÷  ö ‚ ÷ äœå¨*ì´*í þ Ê ÿ × Íó‰*ÿÍ‚Ã×*ù‚M!/ ^#VëéÍùÃ7ÍÃ7Í Ã7Ã7 &,Ã�Í ûvÍ/$Íf$Ím$Í_$ÉÍ!$Í$Í($ÉÍ?Ú`>ÉÍÒgò7Í�ÍOÍ2†…Íý!7:†…¾Â‡>ÿÉ! 7:†…¾Â”>ÉÃgÉÅ!ú‚ƒÍmMú‚Ís!"š„}2ƒ2L…2M…!ƒ6ÿ!ü‚6É!Sƒ6!ƒ6w:1ƒþÂÝ!ƒ6OÍÍ!ƒ6͘É͘É!ƒ6ÿ͘ÍŸ:É 8Í�ÉINSTALL COM\,-./01RANDOM A868bcdeåINSTALL $$$åRANDOM $$$GENDEF CMDL89:;<GENDEF COML=>?@ALDCOPY A86ZTUVWXYSB8-7-D5 CBIOS A86RCMAP816 10  åCBIOS $$$åCMAP816 $$$COPYDISKA86€"#$%&'()COPYDISKA86 *åCOPYDISK$$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååCMAPHNS 10 !åCMAPHNS $$$SYSLIB COM€BCDEFGHISYSLIB COMC�‚ƒ„… ÌÎÏwsrvãt}|~ ÿ vé ÿ �êëuq{ypzxŸ!ƒ68Í�É»†oÍ'moåÍ'më!dÍ�lëÑÍ�l!‘ns!F…6ͪ:ͦ:1ƒþÊG*‘nMÍ¢.Í?)7Í�*š„DM€…Íâ‚…Í�N7Í�*‘nM€…Í⃅Í�%ÍÍýÉ!’nq:L…!C…¦Ò«ÍX$!L…6!C…6:’nÒ«͉*͉*É7Õ Ô ? € Æ � × ƒ èLDBIOS A86€JKLMNOPQLDBIOS A86RSåGENDEF $$$åLDBIOS $$$TBIOS A86€ˆ‰Š‹Œ�Ž�TBIOS A860�‘’åLDCOPY $$$åSB8-7-D5$$$SINGLES DEFfåSINGLES $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååTRACK A868“”•–åTRACK $$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååCMAPHNS $$$åSYSLIB COM€£¤¥¦§¨©ªåSYSLIB COMB«¬­®¯ååååååååååååååååååååååååååååååååDISKCHK COM 4åDISKCHK $$$åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Å  Ä � ð ¬+  ­¬­âáà Æ i  Ç z  Ç ‹  œ  ¯    ˆ Õ  ‰ ä  Š  � ù "  .  =  L   € j � { ƒ Œ � �®ºÆ Ò  á  ðåTBIOS $$$SYSLIB7 OVRmnååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååBIOS A86€BIOS A86åBIOS $$$SYSLIB6 OVRlGIOS16B 71ALvwxyzåCOPY5 SUB{åGIOS16B 71AL—˜œ�žåGIOS16B RGCLœ�žŸ åGIOS16B 71AL¦§¨©ªååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååGENCMD COM!567åGIOS816 71A€|}~€«¬­SYSLIB3 OVR*hijåGIOS816 71A®¯ó  ‹   Œ  , Ž  4 Ž 0   A  ¡O  ¢]  £ ¤y  ¥¤¥ ö £  ÷  ö ½  ÷ � ö Ý  ÷     €  �  � 0$A%M%Y e ! t " ƒ #  ÿ ¡è®è ÿ š˜øüúõ CPM86 {åCPM86 14B{,-./0123CPM86 14C{|}~€—˜œåSYSLIB6 OVRqASM86 COM€ ASM86 COMZ åNETUNLOKEXEUwxyz{ åååååååååååååååååååååååååååååååååNETLOCK EXEVpqrsuvåTELEVID $$$ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååCMAP16B 10 tåCMAP16B $$$åSYSLIB4 OVRpSYSLIB4 OVRkåCOPY5 SUBoCOPY5 SUBpååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååDOSYSLIBCOM+åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå     € ÷  �   �   *  6  B   N  ]   l   æŠ ç– *î¢ *ï � ¸ , Å 4 Ø   �þ !½o60*¼o&“) N#F*¸oëÍ�l!¾os*¼o&“) N#F*¸oëÍ�l"¸o:¾oþÂR *¼o&ë*ºo:½owÃg :¾oÆ0*¼o&ë*ºow!½o60!¼o4ÂôÉA86H86LSTSYM!w~r+s+p+qÅ*t~ë!Ís Å*t~#ëÍsÅ *t~ ë*v~DMÍ\É!{~r+s+p+q*x~#DM*z~ëÍ{ *x~:¿owÉ!|~q:|~þÂà >É:|~þÂë >É:|~þÂö >É>É!}~q!}~!o†w Íï#>!po¾Ò Íï#É!sor+s+q:qo=2qoþÿÊ>*roNÍ6*ro#"roÃ!É!uop+q:otoÍslë#s#r*to :mo¾Â¥*to##:o†ÆO>O¹ÒvÍ( *to N#FxoͽxoÍ Í6*to##å*voãNÑÍͯÉ:2ƒþ¯ÉÍ Íï#Í3Í(Í3Í(Í3É*ë!Í�lÍ®l+"o!»†"oÅ“n€Ís !oqyÖ#w#qñ09B[€’0000LABELSVARIABLESNUMBERS!#oq:#oþ ÂJ!o6ÃV:#oþ ÊV!o4*#oMÍï#É!&or+s+q!'o6ÿ#6:'o<2'o!$o¾Ò�*'o&ë*%o:(o†2(oÃn:(oæ?É!0os+p+q+ÑÁp+q+Áp+q+ÁqÕ**oë*)oMÍ^o&)ë*.o^#Vë"1o>1oÍ/mµÊ*1o##:)o¾Â *)oå:0o1oÍslå**oëÁÍ7Ò *1o###ñ � 455+ 0 7 1 F 2 U 3 cTESTs PUSHÁSCASW…» REPZ¬AAAˆ MOVSËDAA©²AAD±/ PUSHF— MOVSB[ADC$STOSÕE LODSWÞÿADD¿CMPSW/S ÿ      œ  Ð 5   Ñ E ) Ò U ) Ó   Ð u   Ñ … ) Ò • ) Ó óóòÂÇ ÂÑ ÃÊá Êë Ë:¿o¾Ê!:}~2¿o*¿oMÍTÉ!~p+q"*~~ ^#Vë"�~ÍmµÂ®!!"�~*~~NÍù �~Í'mÒ¨!*�~$ ë*~~DMÍd*~~#DMÍÄ2€~þÊ›!:€~þÂ�!*�~$ ë*~~6!"�~Ø!*~~DMœ7ÍNÃ¥!€*�~"�~Ã@!!"�~*�~$ ë*~~~2€~*�~#"å*~~ Áq#p:€~É!„~p+q*ƒ~NÍù !"…~"*ƒ~ …~Í$mÒ."*…~$ ë*ƒ~:ooÍ/m"oÉÍÉÍÉ!}oq*}o&ëÍÉ!~oq*~o&ëÍÉ ÍÉ Ío&É!oq*o&ëÍÉ!�op+q*€oëÍÉ!ƒop+q€Íd*‚oëÍÉ!…op+q*„o >€¶w*„oDMÍtÉ!‡op+q*†oëÍÉ!‰op+q*ˆoëÍÉ!‹op+q*ŠoëÍÉ!�op+q*ŒoëÍÉ!�op+q*ŽoëÍÉÍÉ Íå*,oÁq#p>ÿÉ*1o^#Vë"1oÃÈ>É!:or+s+q+ÑÁp+q+Áp+q+ÁqÕ:8o!3o†oÍ/më!oÍ=mÒRÚ7Í�Í *4oë*3oMÍ^o&)ë*6o";o*;oå*oãN#Fáq#p*;oå*oëás#r*o###å*9oÁq#p*o##:3ow*3oå*4o:8ooåÍslëÁÍ\:8ooÍslå*3o&Á ë+s#r>ÿÉ!Aor+s+p+q+ÑÁqÕ*=oå*>oå“nÅ*oM*@oëÍÉ!For+s+p+q+ÑÁqÕTOSBúJA&JB ñDEC&JC_ LOOPNE¹AAM,DJE4Á REPNZJAE0JBEMNJG LEA\ßCLCñCMClåCLDt’ANDU LOOPZÀAASXJGE–bJL–SBB¥¿INÑDAS´ëCLI0JNAÄÖJOJNBÓàJPÛÊ NEGâäINCJNCòJE  Ð û   Ñ  ) Ò  ) Ó   Ð ;   Ñ K ) Ò [ ) Ó ž  Ð �   Ñ ‘ ) Ò ¡ ) Ó   Ð Á   Ñ Ñ ) Ò á ) Ó DMÍd*ƒ~#DMÍÔO>¹Ò!"*ƒ~DM®7ÍN€*…~"…~Ãå!É!‰~r+s+q*ˆ~NÍÑ O!«" ^#Vëéó"*‡~MÍó"*‡~MÍ/ó""*ˆ~ ^#Vë"Š~ÍmµÂˆ"*ˆ~DMÍÒ!!"Š~*Š~$ ë*ˆ~:‡~w*Š~#"å*ˆ~ Áq#pó"K"N"X"b"É!�~p+q"*Œ~ q#p*Œ~NÍù ÍH}þ0Úé"*Œ~#DMÍŠþÿÊæ"ÉÃø"*Œ~#DMÍtþÿÊø"É*Œ~DM’7 ÍÉ!‘op+q:�oæ€2�o:‘oþÂ):�oþÂ)>É:‘oþÿÂ<:�oþÊ<>É>É!“op+qÿ’oÍ'mŸëõ>ÿ+Í:mŸÁH¡É!˜or+s+p+q+ÑÁqÕ:”o=2”oþÿÊ’*•oå*—oÁ w*—o#"—o*•o#"•oÃkÉ'èd !šop+q*™o~þʽ*™oNÍ*™o#"™oãÉ!œop+q*›o>A†OÍ:Í!�o6>!�o¾Ú*�o& ë*›o>¦þ Âÿ!�o6Ã**Boå*CoåœÅ*oMGoÍÒ)*Goå*Eoëás#r>ÿÉ>É!Mor+s+p+q+ÑÁqÕ*Ioå*Joå*Loå*oë“nÍ–É!Qor+s+p+q*oå*NoDM*PoëÍ\É!Uor+s+p+q*oå*Roë*ToDMÍ\É!Zor+s+p+q+ÑÁqÕ*Voå*Woå*Yoå*oëœÍ–É!]or+s+q:[ooÍ/më!oÍ=mÒÌ>É*[oå*\oDM*oëÍ\:[ooÍslë+s#r>ÿÉ!bor+s+p+q+ÑÁqÕ*^oåSCúlJLEôLAHFÙCBW� MOVSW¸CALLêJS.®JNE&JNAE=ÅCWDàJPENlJNGVJNBE± SALg5STOSWoŒCMPe RCL�{ OR_ LOOPNZ�{ SAHF›ÏCALLFúLDS® DIVbJNGE¾XJNLÇDJZÏ LESñ SAR¸JNOæ¥ RCRîµ REPö €  �  ƒ # � 4EQ]  i  x  ‡   ®¥ ¯®¯  Ð Ç  Ñ ×) Ò ç) ÍNÉ!�~p+q*Ž~NÍÑ þÂL#"*Ž~ >w#6*Ž~NÍù *Ž~#DMÍ´*Ž~#DMÍäþÿÂL#*Ž~DMº7ÍNÉ!‘~p+q*�~NÍÑ þ‰#*�~ëÍ/"*�~DMÍÒ!*�~#DMͤþÿ‰#*�~DMË7ÍNÉ!“~p+q*’~NÍù $*’~ DMÍd*’~#DMͤÒ°#É!”~q*”~MxÍ/"É!•~q:,zþÂÖ#*•~MÍÃî#:F…Òä#*•~MÍ*•~M,zÍ/"É!–~q*–~MP|Í/"ÉÀ�o& ë*›o>¦OÍ!�o4ÂØ.Í!�o6 > !�o¾ÚJ*�o& ë*›o>¦OÍ!�o4Â%Í É!¡or+s+p+q* oDMÍ�:Í Í*žoDM;É!¥or+s+q+ÑÁqÕ:£o=2£oþÿÊ�*¤o:¢ow*¤o#"¤oÀÉ!¦oq:¦oþ0Ò­>É>9!¦o–Ÿ/É!§oq:§oþAÒÅ>É>Z!§o–Ÿ/É!¨oq*¨oMͶÒà>ÿÉ*¨oMÍžÉ!©oq:©oþ Â÷>ÿÉ:©oþ Â>*_oåœÅ*aoëÍÉ!"o}2go>?!go¾Ú_*go&“n) ^#Vë"!o>!oÍ/mµÊX*!o^#Vë"eoÍô*eo"!oÃ6!go4ÂÉ:o!oÍsl"ho:ooÍsl"jo!lo6*!o##~!lo¾ÚÙ*o##~!lo¾Òš>É:lo=O*ho Oå*jo ~á¾Ò¶>É:lo=O*ho Oå*jo Á ¾ÒÒ>ÿÉ!lo4Â}>ÿÉ*!oå*oëás#r*!oå*coÁq#pÉ!o"co"o*o± SHLþƒJMPÂJNPbHLTNJNLEÂJPO'% LOCK°SCAS8STCAÐSUBIÅXCHGÌJNSZ STDbýINTjÛ RET» REPEz»SCASBƒuIDIV× NOP–+ ROLž÷SHR¦šJMPF° MULì POPSTIõ RETFÏê NOT5 LODSà®JNZék MOVk ROÓ ùýû ª «ª« € ; � L ƒ ] � n,-‹-— ( £ ) ² * Á +  ö ß ÷ oÍ!ÉäsÍ!ÉÀoÍ´"ÉäsÍ´"ÉxÍ#É,zÍ#ÉP|Í#ÉÀoÍŠ#É!áo6#q#p:ÍoþÊW$!Ío6!Ïo6Í $ÉäsÍŠ#ÉxÍM#É,zÍM#ÉP|ÍM#É!›~r+s+p+q+ÑÁqÕ*š~ëäsͲ :—~2äsÅ*˜~DMæsÍ\É! ~6ÿÍô2‡…2¿o:\þÊÃ$:\=2¿oOÍTo ÀoͲ r xͲ u ,zͲ x P|Ͳ ÅÂo]Í\Å x]Í\ÿÉ:©oþ Ò >É>~!©o–Ÿ/É!ªoq:ªoþaÚ3>~!ªo¾Ú3:ªoÖ 2ªo:ªoÉ!¯or+s+p+q+ÑÁqÕ:«o=2«oþÿÊs*¬oå*®oÁ ¾Êb>É*¬o#"¬o*®o#"®oÃF>ÿÉ!²or+s+q:°oæøOÍž*±ow:°oæOÍž*±o#wÉ!³oq:³oÆ02³oO>9¹Ò¹:³oÆ2³o:³oÉ!·or+s+p+q*´o|*¶oëOÍv*´o}*¶o##ëOÍvÉ!»or+s+p+q!½o6 +6>!¼o¾Ún :¼o^#Vë"o>ÍmµÊ$Í`ÒÍÜÉ*o"coÃýÍÜÉ Í6 Í6É!moq!o6Í Í6:moþÂY Í:moþÂi& Í:moþÂy/ÍÍ(*o"o>oÍ/mµÊ£*oDMÍ?*o^#Vë"oÂ:oþÊ®Í(É*o&ë!Í�l!oos*o&ëÍ�lyÍmë!pos+~þÚÞÍ(Ã:2ƒþÂý:po=2poþÿÊú Í6ÃæÃ:poRùªCMPS? LODSB  IRETrWAIT¹CMPSB&û POPF�IMUL­ OUTÛ RETNJdXORSÖXLATÁ REPNEdINTOnK LOOPw¤JMPS:JCXZ‰U LOOPE|�˜ ¹ÃÍèð!;EUd|„Žž­¼Ìê %5F^y‰¤¶ÖÞ/Qr�®·¿ÇØð ÷ ¨©©* „ 6 … E „ T … › † x ‡ ‡ † – ‡ ¥ ´  × € à �      Å.z]Í\ÅR|]Í\:eþ Ê+%ÅÊoeÍ\ Ń Ís!�~6:�~ÖŸõ:�~!ž~–ŸõÍ­&Ö$ÆÿŸÁH¡ÒÕ%û%!¡~6ÿ:¡~Ò†&>!ž~¾Ò†&Í­&OÍ2œ~þ ʃ&:œ~þA 8:õ~2÷~*õ~MÍB82ü~!"ú~!6ÍV9Ã-:ÍV9Íž8!÷~6ÿÉ:ù‚þ”:!õ~:÷~–ÆÿŸú‚ò~õÍ"mµÆÿŸÁH±Ò{::÷~þÿÊ`:Íž8:õ~2÷~*õ~MÍB82ü~*ú‚"ú~!6ÍV9*•„&¥ƒ ë*ö~MÍv!•„44*ú‚#"ú‚"ò~É!ô~6!÷~6ÿÉÍ^9É!%s+q:$2ö~:%2õ~ÖO! ; ^#Vëé:ô~ÚÙ:Í€9Í.:Ã;Í.:Ã;Í.:Ã;Í.:Ã;Íä9Ã;Íä9Ã;Íä9ED INCLUDE NOT ALLOWEDILLEGAL EXPRESSION ELEMENTMISSING TYPE INFORMATION IN OPERAND(S)LABEL OUT OF RANGEMISSING SEGMENT INFORMATION IN OPERANDERROR IN CODEMACROBUILDINGÏ2â2ý2303E3[3|3œ3¹3Í3í34'4K4h4˜4Å4å4ü4525Y5l5“5Î2** ERROR NO: ** NEAR: " é.ê.ë.0/R/‡/¦/Å/Ô/í/           „þ' +Íe(ÃO+!œ„6: „þ!Â+!¢„6 : „þ;Â8+:¢„þ Ê8+ÍA'2¢„Ã'+! „6 :¦~ÒL+!§~6ÿÃO+ÍÇ'É:¢„þ Ê^+͉*ÃP+É!¸~q:œ„ÖÖŸ!¸~õ:¢„–ÖŸÁH¡Ò€+>ÿÉ>É!¹~q:œ„þª+!¹~:¢„¾ÂŸ+͉*>ÿÉ:¢„þ ª+>É͉*Ç+É Í_+É % !½~q*½~MÍèÚÙ+!½~6#:½~þ Êå+!¼~4:½~þ Âò+!¼~6*½~MÍÀ#É!¾~q:¼&ÀoÍÕ&Ã&:œ~þHÂ&xÍÕ&Ã&:œ~þPÂ,&,zÍÕ&Ã&:œ~þSÂ=&P|ÍÕ&Ã&:œ~þFÂy&Í­&OÍ2œ~þIÂ\&!D…6ÿÃv&:œ~þDÂl&!D…6Ãv&! ~6!ž~6Ã&! ~6!ž~6Ãá%:,z21ƒ:P|22ƒ:Ào2ˆ…*ÀoMÍÑ þÊ©&! ~6: ~É>!ž~¾ÒÌ&*Ÿ~&€ ~2œ~!ž~5#4ÃÑ&!œ~6 :œ~É!£~p+qÍ­&OÍ2œ~*œ~MͶÒ':œ~ÖA*¢~w*¢~>¾ÒÃ;Íä9Ã;Ï:ß:å:ë:ñ:÷:ý:;É+-*/ +-  !…�q*�ùÉ!��6*„�MÍ<;É!‡�p+qÅ*†� å*†�ÑÍm#M*†�ëÍs*†� 6@É!‹�r+s+q+ÑÁqÕ!Œ�6ÿ:Œ�<2Œ�!‰�¾Ò½;*Œ�&ë*Š�NÍ_+Òº;͉*:Œ�!ˆ�†ÉÃ�;>ÿÉ!��r+s+q+ÑÁqÕ:œ„þ É!ñ~q:ƒ!ƒ¶Ò7:F…Ú7!F…6ÿ*ñ~MÍJ6 Í~Î~0œ0È0ü01(101<1!Þ~6ÿ:Þ~<2Þ~!Ï~¾Òª1*Þ~&ë*Ð~å*Þ~&ë*Ø~~á¾Ò‰1>É*Þ~&ë*Ð~å*Þ~&ë*Ø~Á ¾Ò§1>ÉÃ]1>É:Ü~þ»1>ÉÃo2*Ü~&ë!Í�l!Ý~s*Ï~&ͬlë*Ö~"Ø~*Ý~&))ë*Ô~"Ú~ÍX1O!i2 ^#Vëé*Ú~"~!¾~¾Ò, ÍÅ+Ãþ+É!À~p+q*¿~~þÊ1,*¿~NÍÅ+*¿~#"¿~Ã,É!¼~6!º~4 7Í,ƒÍ,·+Í,3ƒÍ,:ƒÖ OÍú+#7Í,*º~M€…Íâ�…Í,º+Í,!»~6É:SƒÒ¦,:»~<2»~O:Rƒ¹Ú£, ÍÅ+ ÍÅ+Ç,ë, ÍÀ#!»~6É>!»~¾ÒÀ,Í€,Í2,É!»~4:RƒÖ õ~ÁH¹ÚÕ,ͱ,É!Á~q:Á~þ Â-:¼~Ö_!Í�lyÍmë!Á~s:Á~=2Á~'*¢~~þÒ'! ~6Ã'! ~6!ž~6É*¨~ùÉ!ª~q*¤ƒ&Tƒ :ª~w:¤ƒþOÒ@'!¤ƒ4É:¤~ÒK'Í':L…Ò['Í$2«~Ãa'Íþ#2«~:«~þÂq'!¤~6ÿò':«~Ö ÖŸ!¦~¦Ò‰'!«~6 ò':«~þ ™'!¦~6ÿò'!¦~6*«~MÍ#':«~þ ²'!«~6 :¥~ÚÃ'*«~MÍ2«~:«~É: „Ö ÖŸõ: „Ö ÖŸÁH±Òè'ÍA'2 „ÃÇ'É!¬~q*¡„&¢„ :¬~w:¡„þOÒ:‘�!��†ÉÃÚ;>ÿÉ!–�r+s+p+q*“�##~ÖÆÿŸ*•�##õ~ÖÆÿŸÁH±Ò9<ÍE;É!š�r+s+p+q*—�##NÍ’É:œ�þ¬<>É:œ�þ·<>ÉÍE;É!ž�p+q:œ„ÖÖŸõ:�„ÖÖŸÁH¡Ò=: „þ:Â=*��å*ž„ëás*��~‡‡‡æö w͉*͉*>É*š„#"š„ÉYNCP/M ASM86 1.1 SOURCE: PAGEEND OF ASSEMBLY. NUMBER OF ERRORS: . USE FACTOR: CP/M 8086 ASSEMBLER VER 1.1 PARAMETER ERROR NO FILE DISK READ ERROR DISK FULL DIRECTORY FULL CANNOT CLOSE SYMBOL TABLE OVERFLOW USER BREAK. Ô~!Þ~6>!Þ~¾Ú/2*Þ~&ë*Ô~å*Þ~&ë*Ò~Á w!Þ~4Â2>ÿÉÃo2:Ï~Ø~Ísl"Ö~*Ú~"Ô~!Ý~:Ü~–=+wÍ­1ÉÃo2:Ý~2Ü~Í­1ÉÃo2ü152\2É!ã~r+s+p+q+ÑÁqÕ:ß~2Ï~*à~"Ð~*â~"Ò~þ ÒÊ2*Ï~&D1) ^#Vë"Ô~*Ï~&0) ^#Vë"Ö~~2Ü~*Ö~#"Ö~Í­1ÉÃÍ2>ÉÉILLEGAL FIRST ITEMMISSING PSEUDO INSTRUCTIONILLþÿÊ - ÍÅ+Ãù,Ã"-*Á~MÍÅ+:Á~þ Â"-ÍÁ,É ÍÖ, ÍÖ,É!È~s+p+q+ÑÁp+q+Áp+qÕ!È~:¼~–Ÿ*Â~å*Æ~Áõ –ŸÁH¡Òr-*Â~N*Ä~ NÍÖ,*Â~4ÃB-É:1ƒÖÖŸõ:F…/ÁH¡Òˆ-É:L…Ò¡-!¥ƒ6=:•„þ¡-!•„6!É~6#6!¼~6É~Å¥ƒÅ•„Í.-!É~:•„–!¤ƒ†O>¹ÒZ.!É~:•„–õ:¤ƒ#–ÁH�O>¹ÒW.Íú+É~Å¥ƒÅ•„Í.-:–„þ(!¡„4É!­~q!®~6ÿ:®~Òa(ÍA'2 „OÍÎÒ/(* „MÍé'Ã(!®~6: „Ö@ÖŸõ: „Ö_ÖŸÁH±Ò^(!®~6ÿ+~Ò^(* „MÍé'Ã(ÍÇ'É!¥~6ÿ!¡„6!¯~6ÿ:¯~Òí(ÍA'2 „: „Ö'ÆÿŸõ: „Ö ÆÿŸÁH¡Ò©(* „MÍé'ÍA'2 „Ã�(: „þ'ÂÛ(ÍA'2 „þ'ÂÆ(* „MÍé'ÃØ(!¥~6ÍÇ'!œ„6!¯~6Ãê(!¥~6!œ„6ü!¯~6Ãt(É!·~6ÿÍ(:¡„=O!>ÿÉ!¢�r+s+p+q*Ÿ�DMÍR;*Ÿ�##6*Ÿ� å*¡�ëás#rÉ!¤�p+q:œ„þûÊj=*£�DMÍR;*£�##:œ„w*£� :�„w*£� å*ž„ëás#rÃ>*¡„å¥�¢„Í,ÒÊ=*£�ë*¥�DMÍR*£�##~2§�ÖúÖŸõ:§�ÖùÖŸÁH±õ:§�ÖýÖŸÁH±ÒÇ=!„�6ÿ*£�##6!��6 ÍÞ6Ã>!��6#~Òü=*¡„å¥�¢„ÍÊÚé=ÍE;*£�##6ú*£�ë*¥�DMÍm ÍÞOK(Y/N)? END OF PASS 1 END OF PASS 2 ÿÿÿÿ�‚ƒ„…†‡ˆ!q:D…Ò[8*&*8 ~ÉÃf8*&68 ~ÉÉ!p+q*~2 *#"~2!*: w*+":!wÉ!"q*"Mͱ#Éú~Íg8:Ö2ù~!ø~6!†…6ÿ:†…<2†…!¾ÒÖ8*†…&ù~ †`iwö8:ø~/<*&ù~ w:Í’8!†…6:!†…¾Ú9*†…&ùEGAL PSEUDO INSTRUCTIONDOUBLE DEFINED VARIABLEDOUBLE DEFINED LABELUNDEFINED INSTRUCTIONGARBAGE AT END OF LINE - IGNOREDOPERAND(S) MISMATCH INSTRUCTIONILLEGAL INSTRUCTION OPERANDSMISSING INSTRUCTIONUNDEFINED ELEMENT OF EXPRESSIONILLEGAL PSEUDO OPER Ê+.Íú+!Ë~6>!Ë~¾Ú+.*Ë~&–„ NÍÖ,!Ë~4Â.!Ê~:¤ƒ–O>¹ÒQ.Íú+Ê~ÅTƒÅ:ƒ=_¤ƒÍ.-Í#-ÃÐ-Ã].Í#-É:F…!ƒ¶Òl.Ís- Å*•„M¥ƒÍs Å–„Ís!•„6!¤ƒ6É:ƒÒ¡.!º~6#6ÿͱ,É!Ì~q:ƒÒè.Í#-Í#-)7Í,*š„DM€…Íâ‚…Í,N7Í,*Ì~M€…Í⃅Í,Á+Í,É"AHALAXBHBLBPBXCHCLCS¢„ ~2´~:¡„==2³~:´~þBÂ")!°~6#6Ãw):´~ÖOÖŸõ:´~ÖQÖŸÁH±ÒE)!°~6#6Ãw):´~þHÂX)!°~6#6Ãw):´~þDÂk)!°~6 #6Ãw)!°~6 #6!³~4!²~6ÿ:²~<2²~O!¢„ ~þ0“)Ã|):²~!±~†O:³~¹Ò*!"µ~:³~!²~¾Ú**²~&¢„ ~2´~Ö02´~O> ¹ÒÓ):´~Ö2´~!°~:´~¾Úâ)!·~6ÿ*°~&ë*µ~ͬlå*´~&Á "µ~!²~4è)6!„�6ÿ͉*É!©�p+q$Í_+Ò>>É.Í_+Ò(>>É:œ„þÂI>>!¡„–Ÿõ~ÖŸÁH¡ÒF>>É>É*¨�DMÍ-=*¨�##~2ª�ÖÖŸõ:ª�ÖÖŸÁH±õ:ª�ÖÖŸÁH±Ò~>>É>É;Å!9N#FÍ >O!®? ^#Vëé!9N#F`i6!9Íwl6Íklå*ú‚ëás#r:ÿ‚Òò>:ü‚‡‡‡ö ö!9õÍwlÁHqÍklå*ý‚ëás#r͉*ø?͉*!9N~ N€…Ív*€…MÍ’8*�…MÍ’8!†…4Âï8 Í’8 Í’8É!#q>!¾ÒD9Íž8*ú‚"ú~!6*&ù~ :#w!4É*ö~MÍ)9É:÷~þÿÊi9Íž8ÍB82ü~!"ú~!6Íž8É:ù‚þÂã9!ô~6ÿ:÷~þÿʘ9Íž8!6!"ú~ÍB82ü~:ÿ‚ÒÃ9*þ‚MÍ)9*ý‚MÍ)9ÃÍ9Í)9Í)9*û‚MÍ)9*ú‚MÍ)9Íž8!÷~6ÿÉ:ù‚þÂ-:!õ~:÷~¾Ê"::÷~þÿÊ:ÍžANDNESTED "IF" ILLEGAL - "IF" IGNOREDILLEGAL "IF" OPERAND - "IF" IGNOREDNO MATCHING "IF" FOR "ENDIF"SYMBOL ILLEGALLY FORWARD REFERENCED - NEGLECTEDDOUBLE DEFINED SYMBOL - TREATED AS UNDEFINEDINSTRUCTION NOT IN CODE SEGMENTFILE NAME SYNTAX ERRORNESTCXDBDDDHDIDLDSDWDXEQESGEGTIFLELTNEORRBRSRWSISPSS ANDENDEQUMODNOTORGPTRSEGSHLSHRXOR BYTECSEGDBITDSEGENDMESEGLASTLISTRELBRELWSSEGTYPEWORDDWORDEJECTENDIFMODRMSHORTTITLEIFLISTLENGTHNOLISTOFFSETSEGFIXINCLUDESIMFORMNOIFLISTNOSEGFIXPAGESIZECODEMACROPAGEWIDTHÃ*!·~6ÿ:·~Ò*!œ„6üÃ)*!œ„6#6å*µ~ëá#s#rÉÍ(*¡„圄¢„Íp2ÚE*!œ„6ûÉ!C…6!¤~6!¦~6+6!§~6 Å¥ƒðÍs Å–„Ís!¤ƒ6!•„6Í�.Í6$! „6 É!9"¨~:§~ÒŸ*Í^.!§~6ÍÇ':¤~ÒÒ*!œ„6:¦~ÒÂ*!¤~6!C…6ÿÃÏ*!§~6ÿ+6ÿ!¢„6 ÃO+!¡„6: „2¢„* „MͶÒî*Í**ÃO+* „MÍžÒÿ*Íî(ÃO+:     #FÍ-=!9N#F þÊ?ÍE;!9N#F`i6!9Íwlå* ƒëás#r>‡‡‡æ!9õÍwlÁHq:ƒÒa?!9Íwl> ¶wø?:¡„þÂ?!9N#F*¢„&ëÍ=ß?:¢„!9w:£„2¢„~2£„!9N#F*¢„ëÍ=͉*ø?ø?ÍE;ø?š>ø>d?¥?¨?3áÉÅ(Í_+Òø?:&<2&O>¹ÒÖ?ÍE;͉*!9N#FÍ&F)Í_+Úï?ÍE;!&5͉*áÉ[Í_+Ò= ^#Vëé!]‚6ÿ+6&ÃBT!]‚6ÿ+6.ÃBTÍQT/2]‚!\‚66ÃBTÍQT2]‚!\‚6>ÃBTTTT,T:]‚ÒPT*\‚MÍÖQÉ*Z‚ ~·æ2\‚:^‚æ€ÖÆÿŸõ:\‚ÖÖŸÁH¡É!a‚r+s+q*`‚ ^#Vë"i‚*`‚##~2e‚*`‚ ~2f‚æüæ2g‚*`‚ >¦2h‚:e‚þÂÓT*i‚ë!c‚s+6!d‚6ÃTU:f‚æÀþÂíT!c‚6+6!d‚6ÃTUÍ›U2d‚:d‚2b‚;UO!‰*:œ„þÂ>O:ž„þÂ2O!Û�5~þÂ/O͉*Í*N:Ü�Ò.O!ƒ6ÿÉÃ>O:ž„þÂ>O!Û�4ÍP+ÃøNÉ>!M…¾ÒXO!M…5Í*NÃ`OÍÞ6ÍP+É:L…ÒqOÍÞ6ÍP+É!ß�6:ˆ…2Ý� Åà� Ís:¡„ÖÖŸõ: „Ö:ÖŸÁH¡õ*¢„MͶÁH¡Ò¸O:¢„ÖA2Ý�͉*͉*>!¡„–ŸõÍTPÁH±ÒÐOÍIPÃ#P*¡„åà�¢„Í\͉*.Í_+ÒP͉*>!¡„–ŸõÍTPÁH±ÒPÍIP+!"ý‚:Í�2ü‚}2ÿ‚o&"ú‚É$Í_+ÒQJ:Í�2ü‚*É�~2ÿ‚*Ç�^#Vë"ý‚*Ë�^#Vë"ú‚ÒJJÍŠJ͉*ÍþHÉZ…Í GÒ�J:\…þÂ�J*`…"ý‚:Í�2ü‚!ÿ‚6ÿ!"ú‚ÍŠJÍþHÉÍP+ ÍÞ6É*Í�&öH ^*þ‚MÍ®:*Í�&öH ^*ý‚MÍ®:*ý‚DM¨ƒÍ½!•„6É!Î�qÍI!Ò�6!"Ð�!Ï�6ÿ:Ï�Ò÷J!F…6!Ï�6*Î�MÍK:F…!Ò�¶wÃÔJ*Ð�"N…:Ò�! 9Í$mŸë+++w#6ÃOE! 9ë!9Í$mŸ/ë+w#6ÃOE! 9ë!9Í$mµÆÿŸë+w#6ÃOE³DÌDâDûDE*E>ÿ! 9Í:mµÂfEÿÿ! 9q#p!9Íwlå!9N#Fáq#p!9ùÉÅÅ8;ÍÀ;þÿÊÄE!9N#FÍ‚E!9N#F+ÅN#FPYÁÍ<!9ÍwlÍÏlë+s#rÃÎE!9N#FÍGDáÉ;ååååÅ!9N#FÍ‚EÅ9;ÍÀ;þÿÊ F!9DMÍ‚E!9N#F@:ƒ�Ú @ÍE;!ƒ�6͉*!9N#FÍR;!9N#F`i6!9N#FÍŸGÚ;@ÍE;áÉ!9N#FÍ�>áÉ!ôÿ9ùÅÅ#;ÍÀ;! 9wþÿÊCA!9N#FÍ»?! 9N!6A ^#Vëé!9Íwl> ¦þ”@ÍE;!9N#F+Íwl^#VÍ=Ã@A!9N#F+Íwl^#VÍ=Ã@A!9N#F+Íwl>¦_Í=Ã@A!9N#F+ÅN#F`i^#VÁÍ=Ã@A!9N#F`iN#FNU ^#Vëé:h‚æ2c‚ÃTU:h‚æö2c‚ÃTU:h‚æO>¹ÒFU!c‚6#~þÂCU!d‚6!b‚6ÃKU!c‚6ÃTU UU!U:_‚‡‡‡æ82_‚:b‚ææÀ2b‚:b‚!_‚¶!c‚¶OÍÖQ>!d‚¾ÒšU*i‚MÍÖQ:d‚þšU*j‚MÍÖQÉ:g‚þ¦U>É>i‚Í/mµÂµU>É*i‚DMÍÉ:f‚æ@þÊØU:f‚æ€þÊÕU>É>É>É*I…~2k‚ÍRÍRë*k‚MÍwTÉÍR"m‚*m‚ N#PÃP*¡„åè�¢„Í\͉*Ã#PÅè�'NÍ\:ß�Ò0PÍP+ÃHP*Ý�åè�à�Ít$Í$Í*N!L…6ÿÉÍÞ6!ß�6ÿÉ!Þ�6ÿ:Þ�<2Þ�!¡„¾Ò~P*Þ�&¢„ NÍÎÚ{P>ÿÉÃYP>ÉÍ*N!C…6ÿÉRƒÍ:NɃÍ:NÉ*ù‚M!þP ^#Vëé:œ„þÂÖPÅ3ƒÍs>!¡„¾ÒÉP!¡„6*¡„å3ƒ¢„Í\ÍP+ÃQÍP+ÃQ:œ„þÂóP͉*Í*NÃûP ÍÞ6ÍP+ÃQ¨P2F…É!Ó�q*Ð�#"Ð�*Ó�M!1K ^#VëéÍ®KÃ7KÍLÃ7KÍFLÃ7KK%K+K,Í_+ÒKK͉*!Ï�6ÿÃ`Kͱ+ÒXKÍP+Ã`KÍÞ6ÍP+É!Ö�q*ü‚&úH ^*Ö�MÍ®:ÉZ…Í GÒ«K:\…2Ô�ÖÖŸõ:Ô�ÖÖŸÁH±õ:Ô�ÖÖŸÁH±Ò«K>ÿÉ>É:œ„ÖÖŸõ>!¡„–ŸÁH¡ÒL:¡„Ð�Ísl+ë+s#r!Ô�6ÿ:Ô�<2Ô�!¡„¾Ò÷K*Ô�&¢„ NÍaKÃÙK!\…6͉*Ã#ëÍ<!9Íwlå! 9ÑÍ‚lë+s#rÃàE! 9ùÉåååååÅ!9N#FÍÐEÅ:;ÍÀ;! 9wþÿÊ F!9DMÍÐE!9N#F#ëÍ! 9w#6!9N#F! 9ÅN#F PYÁÍ=Ã@A@«@Â@Ü@ô@ÃÊA!9N#FÍ»?Å(;ÍÀ;þÿÊÊA!9DMÍ»?!9N#F###~`iw!9Íwlå!9N#Fáq#pÍklå! 9N#Fáq#pÍklå! 9~áwÍkl>¦õ>øå! 9¦ÑÁH±ëwÃMA!9ùÉ;Å!9DMÍ»<þÿÊ B!9N#FÍI@!9Íwl>ç¦ë#¶ëwF!l‚qÍRë*l‚MÍwTÉ!o‚6#6*I…~þ ÊTV*I…NÅfQÍ*RO!KV ^#VëéÍÓVÃQVÍïVÃQVÃQV!s‚¾Ò~V*s‚M!q‚Íölw:r‚þÒ’V!r‚>–O+Íålw:p‚ÖÿÆÿŸõ>!r‚–ŸÁH¡ÒÒV:q‚æ€þÊÃV*p‚&lQ :o‚¶2o‚!p‚5!r‚5+~‡wÃ’VÉ*I…~2t‚ÍR*I…NÅ*t‚MÍ_VÍRÉ*I…~2u‚ÍRÍR"w‚ÜPâPÉ:ƒÒQͱ,Í*NÉ!Sƒ6ÿÍ*NÉÍ*N:ƒÒ5Q!ƒ6!ƒ6ÿ!¤ƒ6É:ƒÒPQÍ*NÍ^.!ƒ6ÿ!ƒ6ÃSQÍ*NÉÍ*N!ƒ6ÿÉÍ*N!ƒ6É @€!;‚6É!<‚6ÿ:<‚<2<‚!;‚¾ÒŸQ*<‚&ë� NÍ®:ÃQÉ:Y…2>‚O>¹Ò²Q!>‚6!=‚6ÿ:=‚<2=‚*>‚&hQ ¾ÒÕQ�Í®:÷QÉ!?‚q:E…ÒòQ*;‚&ë� :?‚w!;‚4É!A‚p+q*@‚MÍÖQLÍwKÒL*`…MÍaKÃLÍaKÍÞ6ÉÍwKÒ6L*`…MÍaK*a…MÍaKÃELÍaKÍaKÍÞ6ÉÍwKÒ„L:\…þÊ„L:]…æ þÊL*`…MÍaK*a…MÍaK*^…MÍaK*_…MÍaKÉÄLÍÞ6!Ô�6>!Ô�¾ÚžLÍaK!Ô�4‰LÍÞ6ÉͽJÉͽJÉͽJÉ!×�qÍI*ú‚DM*×�ëÍ7IɃŃŃÍxIÉ ƒÅƒÅƒÍxIÉ ƒÅƒÅƒÍxIɃ� >w#6:��É!°�p+q!‚�6#6*¯�DMÍÇFÉ!²�p+q!‚�6ÿ#6*±�DMÍÇFÉ *Y…&ͬlZ… "´�!³�6ÿ!ƒ�6ÿ*´�DMÍÇF2³�[Í_+Ò‰G:ƒ�Ò„G͉**´�DMÍŸG!³�¦wÉG!³�6:³�É!‚�6Í:GÉ!‚�6ÿÍ:GÉ!·�p+q¹�¸�Í4HÚµG>ɹ�¸�Í¡H͉*+Í_+ÒöG͉*»�º�Í4HÚÝG>É!º�:¸�¾ÂêG>É»�º�Í¡H͉*]Í_+ÚH>Íkl>¿¦wÃB!9N#FÍI@3áÉ;ÅÅ);Í};!9wþÿÊjB!9N#FÍB!9N#F+ÅN#FPYÁͦ2|‚*I…>¦2}‚*I…> ¦2~‚ÍR *y‚&ͬlZ… "�‚!z‚6ÿ:}‚þÊqWÍ’W2z‚:|‚þÊ�WÍéW!z‚¦w:z‚ÒŽWÍ�X2z‚:z‚É*I…~2‚ÍR:}‚þ®W*I…~2€‚ÍR*�‚ N#F!ƒ‚q:}‚þÂÝW!‚:ƒ‚–Ÿ/#õ~!ƒ‚–Ÿ/ÁH¡ÉÃèW!‚:ƒ‚–ÖŸÉÉ*�‚##~2†‚þÂúW>ÿÉ*�‚*A‚MÍÖQÉ*I…#"I…É*I…n& ͬlZ… "B‚ÍR*B‚É!G‚r+s+q+ÑÁqÕ!H‚6ÿ:H‚<2H‚!E‚¾ÒeR*H‚&ë*F‚:D‚¾ÂbRÍR:H‚Éà ¦þÂÄRÍÞ6*M‚ N#FÍóQ*M‚ N#FÍóQÉÍR"O‚*O‚ ëú‚Í"m++"Q‚*O‚ ŃŃÍxIÉÍ7IÉ*ù‚M! N ^#VëéÍNõ*¡„å~…¢„͈ÁH¡ÒkM!P…6*W…DMN…Ím*B…å*~…^#Vò„ÍñÚhM!K…6ÿÛM!Y…6Í–GÒˆM*W…DMZ…ÍmÍP+ÛM!P…6ý*W…DMN…ÍmÍP+ÃN:P…þʽM!Y…6Í–GÒ½M*W…DMZ…ÍmÍP+ÃN:P…þÂÑM͉*ÃN!Y…6Í–G/õ:P…ÖüÖŸÁH±ÒõM ÍÞ6ÍP+ÃN!•„6*`…DMÉ͉**¶� > ¦þÂ*H*¶�##~þÂ*H*¶� >@¶w*¶�##6>ÿÉ!¿�r+s+p+q:œ„ÖÖŸõ:�„ÖÖŸÁH¡ÒžH*¼�6*¾�å*ž„ëás*¾�~ÖÖŸõ~ÖÖŸÁH±ÒH>ÿÉ*¼�6*¾�~ÖÖŸõ~ÖÖŸÁH±ÒžH>ÿÉ>É!Ã�r+s+p+q*À�~þÂÖH*¶� >@¶w*Â�~þÂÓH*¶� >¶wÃõH*¶� >€¶w*Â�~þÂõH*¶� >¶wÉ  ͱÍ®lë! 9s#réC!9N#F! 9^#VÍ�l! 9s#réC!9N#F! 9^#VÍ�lë! 9s#réC>!9Í:mŸõ>Í/mŸÁH¡ÒoC!9N! 9Íìlë+s#réC>!9Í:mŸõ>Í/mŸÁH¡ÒœC!9N! 9Íþlë+s#réCòBC)CECrC!9Íwlå!9N#Fáq#pÇB!9ùÉåååååÅ!9N#FÍwBÅ0;Í};! 9wþÿÊAD!9DMÍwB!9N#F#ëÍ >¦2‡‚:†‚þÂX!|‚:‡‚–ÖŸÉ:†‚þÂ9X:‡‚ÖÖŸ!|‚õ:‡‚–ÖŸÁH±É:†‚þÂŒX*�‚ ^#Vë"„‚:|‚=O!„X ^#Vëé*„‚DMÍ?/É*„‚DMÍ?É*„‚DMÍÖÖŸÉ>É`XjXsX�X>É*�‚##~2ˆ‚*�‚ N#F!‰‚q*�‚ >¦2Š‚*{‚M!DY ^#Vëé:ˆ‚ÖÖŸõ:‰‚ÖÖŸÁH¡É:ˆ‚ÖÖŸÉ:ˆ‚ÖÖŸÉÍUYõ:ˆ‚ÖÖŸÁH±ÉÍUYÉ:ˆý‚Í$mµÆÿŸõ*Q‚DMÍÖÖŸÁH±Ò#SÍÞ6*Q‚MÍÖQ:–„þ ÂBS*O‚ N#F–„ͽÉÍR"S‚*S‚ ý‚Í$mµÊ_SÍÞ6*S‚ ëú‚Í"m+++DMÍóQ:–„þ Â�S*S‚ N#F–„ͽÉ*I…~2U‚ÍRÍR"X‚*X‚ >@¦þÂÌS*X‚ ~2V‚æüæ2W‚!U‚–ÖŸ2E…ÉÍR"Z‚*Z‚ ~2^‚*Z‚ >@¦þÂPT:^‚æüæ2\‚O!:T¨ƒÍ½ÍþHÃN'MžMÃMÉ: „Ö ÖŸõ: „Ö;ÖŸÁH±ÉA86ͱ+Ú6NÍÞ6ÍP+É!Ù�p+q:ù‚þÂNNÍP+ÃvNZ…Í GÒnN:\…þÂnN*Ø�å*`…ëásÍ*NÉ ÍÞ6ÍP+É:M…þŠN ÍÞ6ÍP+ÃÆNZ…Í#GÚšNÍÇNÃÆN:\…þʨNÍÇNÃÆN*`…ë!Ú�s{þÊÀN!M…4Í*NÃÆNÍP+ÍÐNÉ ÍÞ6ÍP+É>2Û�:ƒ/!ƒ¦ÒóNÍ^.!ƒ6!Ü�6ÿÃøN!Ü�6:C…ÚDOÍ+Ú IÍÞ6ÍP+É:•„ÖÖŸõ:ù‚ÖÆÿŸÁH¡Ò6I*ú‚DM¦ƒÍ½!•„6É!Æ�s+p+qZ…Í#GÒoI:\…þÂoI*`…"N…*Æ�&ë*`…ͬlë*Ä�"ú‚ÍþHÉ ÍÞ6ÍP+É!Í�s+p+q+ÑÁp+q+Áp+qÕ*ü‚M!ðI ^#Vëé*ý‚"ƒ:ÿ‚2ƒ*ú‚"ƒÃøI*ý‚"ƒ:ÿ‚2ƒ*ú‚"ƒÃøI*ý‚" ƒ:ÿ‚2ƒ*ú‚"ƒÃøI*ý‚" ƒ:ÿ‚2ƒ*ú‚"ƒÃøIœI±IÆIÛIͱ+ÒJÍ:D!9Íwlë!9Í$më+s#rÃØC! 9ùÉ!òÿ9ùÅ!9N#FÍÈCÅ2;ÍÀ;! 9wþÿÊ|E!9DMÍÈC!9N#F#ëÍ<!9ÍwlN#F! 9q#på! 9N#Fá#q#p! 9N!CE ^#Vëé! 9ë!9Í$mµÖŸë+w#6ÃOE! 9ë!9Í$mŸë+w#6ÃOE!9ë! 9Í$mŸ/ë+++w#6ÃOE!9ë     ‚ÖÖŸõ:Ђ֯ÿŸÁH¡É:ˆ‚ÖÖŸõ:Š‚ÖÖŸÁH¡É:ˆ‚ÖÖŸ*�‚ õ>À¦ÖÖŸÁH¡ÉÃXØXáXêXúXþXY(YÉ:ˆ‚ÖÖŸÉ*I…"‹‚ÍRÍR*I…~2�‚ÍR:�‚æþÊ�Y>ÿÉ!Y…:�‚¾Ê“Y!Ž‚6øY!Ž‚6ÿ#6ÿ:�‚<2�‚!�‚¾Ò¸Y*�‚MÍ W!Ž‚¦wÛY:Ž‚ÚÅY*‹‚"I…:Ž‚É*G…"I…Í^YÒÙY>ÿÉ*I…>Í:mµÂèY>É*I…^#Vë"I…ÃÏYÉ åÉ!·†q*·†MÍ5hÉ͉*: „þ,ÂiÍsjÃ!iÍbj͉*É!¸†q:œ„þÂei:¸†þÂGi*�†å~áw*�†#"�†>ÿ!ž„Í:mÒ[i!8†6ÿÉÃbi*ž„MÍ5hÃ^j:¸†þÂ{i*�†> †w*�†#"�†ÍãgO!4j ^#Vëé!8†6ÿÉÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍ*¡„å�…¢„ÍÊfÒd*�…MÍ5h͉*Ã$d!8†6ÿÉÉÍ5hÉ:œ„ÖÆÿŸõ>!ž„Í:mŸÁH±ÒJd!8†6ÿÉÍ5h*ž„MÍ5h͉*:¢„þ(Êgd!8†6ÿÉ͉*:œ„þûµd*¡„å�…¢„ÍÊfÚ‰d!8†6ÿÉ*�†++"�†5*�†##"�†*�…MÍ5h͉*:¢„þ(ʲd!8†6ÿÉ͉*:œ„ÖÆÿŸõ>ÿ!ž„Í:mŸÁH±ÒÔd!8†6ÿÉ*ž„MÍ5h͉*:¢„þ)Êìd!8†6ÿÉ͉*>�†Í/më+s#rÖÖÃ`ÍMÃ`:‰…Ò_Í6fÃ_ͤLÃ`:‰…Ò)_ÍÉöZ>ÿÉ*~…^#Vë"G…É*G…åiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^jÍiÃ^j‹i”iœi¤i¬i´i¼iÄiÌiÔiÜiäiìiôiüij jjj$j,j͉*É*�†+"�†>†wÍ%iÉ*�†+"�†>†wÍ%i:¢„þ,Ê‘j!8†6ÿÉ͉*Í%i:¢„þ)ʧj!8†6ÿÉÉ!¹†q*¹†MÍ5hÉ!º†q*º†MÍ5hÉ*¡„å*6†ë¢„Í\:¡„6†Íslë+s#rë6*6†#ë+s#r͉*:¢„þ:Êøj!8†6ÿ͉**¢„MÍŸõ:¢„Ö)ÖŸÁH¡Òe͉**�†"�†:¢„þ,Ê(eÉ͉*Ã+dÉ Í5hÉÍ5hÉ!‘…q:ù‚þÂKeÍP+É!8†6:‰…Ú\e!8†6ÿ*‘…M!´e ^#VëéÍÜbÃÆeÍÜbÃÆeÍbcÃÆe ÍbcÃÆeͤcÃÆeÍ/bÃÆeÍbcÃÆeÍbcÃÆeÍ%dÍ+dÍ/eÃÆelete|e„eŒe’e˜e e¨eÍ b!8†¶ÒÛe!¡†6ÿÍÞ6ÍP+É:ù‚þÂðe!‰…6ÿÍP+É!8†6!¡†6:‰…Ò_–_œ_¢_¨_®_´_º_À_Æ_É!õ‚qÍí\:õ‚Ò(`ͯ\͉*¨\Íù\O!Ï` ^#VëéÍâ`ͤLÍ aÃá`Íâ`ͪLÍ aÃá`Íâ`ͰLÍ aÃá`Íâ`ͶLÍ aÃá`Íâ`ͶLÍ aÃá`Íâ`ͶLÍ aÃá`ÍD]Ò³`Íå]Ò­`ÍMð`ÍP+ö`ÍP+Ãá`ÍÞ6ÍP+Ãá`ÍÞ6ÍP+Ãá`=`K`Y`g`w`‡`—`¹`Ä`É!÷‚q!ö‚6ÍD]Ò aÍå]Ò a*÷‚ë##"�‚>¦ÖÆÿŸÉ!•‚6ÿ!Y…6ͱ+/2’‚:’‚ÒŠ[!’‚6 *Y…&ͬlZ… "“‚Í�GÚj[*“‚##~þýÊT[ÍÞ6!•‚6,̓+Òg[!’‚6ÿÃ[,Í_+Òƒ[͉*:Y…þÒƒ[!’‚6ÿ!Y…4Ã[:•‚É!™‚6ÿ+6ÿ:˜‚<2˜‚!Y…¾ÒÕ[ *˜‚&ͬlZ… "–‚##~þÂÒ[*–‚ >¦þÂÒ[!™‚6Ö[:™‚Òß[>ÿÉ!˜‚6ÿ:˜‚<2˜‚!Y…¾Ò9\ *˜‚&ͬlZ…åHgO!Xk ^#VëéͨjÃjkͨjÃjkͨjÃjkͨjÃjkͨjÃjkͨjÃjkͨjÃjkͨjÃjk!8†6ÿÉÃjkkkk'k/k7k?kGkOk*£„MÍygO!¦k ^#VëéÍ´jðkÍ´jðkÍ´jðkÍ´jðkÍ´jðk~k†kŽk–kžk͉*:¢„þ(¾kÍ i!;†4É!’…"ã…!<†"�†!æ…"6†Å’…PÍsÅ9†dÍsÅæ…PÍs!£†6!"Ÿf!8†6ÿÍÃk!‰…6ÿÍ lÚf!8†6ÿÍ0lÍ b!8†¶Ò2f!¡†6ÿÍÞ6ÍP+ÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉÍ;eÉ:ù‚þÂ}fÍP+!‰…6É!8†6:‰…ÚŽf!8†6ÿÍ5e:ù‚þœfÍKlÍ b!8†¶!¤†¶Ò°fÍÞ6ÍP+!¡†6!‰…6ÉACDEMRSXBWDS!©†r+s+p+q+ÑÁqÕ!ª†6*¨†6*¨†:;†=¾ÚEg:¥†!ª††O!æ… ~ÖÖÍ ^!ö‚6ÿÉ:ö‚ÒaÍF^É:¢„þ ÊfaÍgaO!Za ^#VëéÍÞ6ÍP+ÃfaÿÍ`ÃfaÍt^ÃfaÍÄ^ÃfaÍZ^ÃfaÍ`Ãfa-a8a@aFaLaRaÉ:œ„2ø‚þÂua>É:ø‚ÖûÖŸõ: „Ö:ÖŸÁH¡Ò�a>É:ø‚ÖûÖŸõ:ø‚ÖÖŸÁH±Òãa*¡„å~…¢„͈Òãaͯ\͉**ž„ë!ø‚s:œ„ÖÖŸõ{ÖÖŸÁH¡Òàa>É>É:ø‚þûÊîa>É>É!Qƒ6!$ƒ6!……6 "–‚ >¦þÊ\>ÿÉ*–‚##~ÖÖŸõ*–‚ N#FÍ?ÁH¡Ò6\>ÿÉÃä[>ÉÍtQͳZÒ„\Í[Ò}\ÍŽ[Òr\ÍZÒj\ͱ+Úg\ÍÞ6Ão\ÍÞ6Ãz\ÍÞ6Í QÄ\ÍZÒ„\ÍP+É     :¡„2B…*¡„åò„¢„Í\É:B…2š‚*B…囂ò„Í\ͯ\:š‚2¡„*š‚墄›‚Í\ÉÅN… ÍsÉ!í‚r+s+ title '8086 Disk I/O Drivers' ;********************************************* ;* * ;* Basic Input/Output System (BIOS) for * ;* CP/M-86 Configured for iSBC 86/12 with * ;* the iSBC 204 Floppy Disk Co†!¢†6!¤†6É:œ„þûÊl>É*¡„å’…¢„Í\:¡„2å…͉*>ÿÉ:œ„þûÂJlÍÀj:¢„þ,ÊDlÉ͉*Ã0lÉ:¡†ÒSlÉ͘hÚel!8†6ÿ!¤†6ÿÉÉi`N#F�oˆgÉë_ë…oŒgÉi`N#F¡o gÉDM!>õ)ë—)ë�‘o|˜gÒ¦l ñ=”lÉDM!>)ë)ëÒ»l =³lÉYPë—–_>#žWëÉi`ë/o/gÉi`N#F±o°gÉ~‡ ÂælÉ^#Vë) ÂðlÉ~· Â÷lÉ^#Ÿõ*¥†å*ª†&æ… ë*¦†DMÍ7ÁH¡Ò#g>ÿÉ:ª†<2ª†O!æ… ~þÊ:gÃ#g!ª†4*¨†4Âãf>É!«†q!¬†6>!¬†¾Úug*¬†&¾f :«†¾Âng:¬†É!¬†4ÂQg:¬†É!­†q!®†6>!®†¾Úßg*®†&Æf :­†–ÖŸõ:®†ÖŸÁH¡Ò­g:®†É*®†&Æf :­†–ÖŸõ:®†ÖÖŸÁH¡ÒØg:¤„þBÂØg>É!®†4‚g:®†É:œ„þÊîg>É!¯†6:�„þÂh!¯†6!Rƒ6B!K…6!D…6Å3ƒÍs!‰…6É:¢„þ Ê+b>ÿÉ>ÉÉ:œ„þÂZb Í5h>!ž„Í:mÒPb!8†6ÿÉÃWb*ž„MÍ5hÑb:œ„þû‹b*¡„劅¢„ÍÊfÒ‚b Í5h*Š…MÍ5hÈb!8†6ÿÉÑb!8†6ÿÉ͉*:¢„þ,Ê¢b!8†6ÿÉ͉*:œ„þûÂÕb*¡„劅¢„ÍÊfÒÌb*Š…MÍ5h͉*ÉÃÒb!8†6ÿÉÃÛb!8†6ÿÉÉ!‹…q:œ„þÂ#c*‹…MÍ5h:‹…þÂc*ž„DMÍbhÃq:œ„þÊ]:ë‚<É!î‚6ÿ:î‚<2î‚!낾Ò@]*ž„ë!ï‚s+N*ì‚ {¾Â=]͉*:î‚ÉÃ]:î‚É!ð‚q:ù‚þŠ]*B…åW…ò„Í,Ò‡]*W…DMN…ÍR:P…þúÊ„]!P…6ù*W…DMN…Ím>ÉÃâ]*B…åW…ò„Í,Úž]>É*W…DMN…ÍR!ñ‚6ÿ:P…þú¾]!ð‚6ÃË]:P…þùÊË]!ñ‚6:ñ‚Òâ]ÍÃ\*ð‚MÍÞ6ÍÃ\>É>ÿÉ:ù‚þÂ^*B…åW…ò„ÍÊÚ^!Kntroller * ;* * ;* (Note: this file contains both embedded * ;* tabs and blanks to minimize the list file * ;* width for printing purposes. You may wish* ;* to expand the blanks before performing *Vë|·g}o ÂmÉ_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉi`N#F©o¨gÉ:�„þ h!¯†6:¯†ž„Ísl#}É:œ„þÊ$h>É:�„þÊ/h>É*ž„#}É!°†q*Ÿ†#"Ÿ†>cÍmÒSh!8†6ÿ!¢†6ÿÉ*�†:°†w*�†#"�†É!²†p+q*Ÿ†##"Ÿ†>cÍmÒƒh!8†6ÿ!¢†6ÿÉ*�†å*±†ëás#r*�†##"�†É!³†"µ†*å…å*µ†ë’…͈ÒÌh*³†>Í:mµÊÉh*³†^#Vë"³†Ã°hÃáh*å…å*µ†ë’…ÍíÚáh>É*³†å*oëás#r*Ÿ†M9†Í®Úþh>É>ÿc>ÿ!ž„Í:mÒc!8†6ÿÃc*ž„MÍ5h͉*ÉÃac:œ„þûÂ[c*¡„包¢„ÍÊfÒRc:‹…É>ÿÉ!ó‚s+q:ü‚‡‡‡æ2ô‚:ò‚2P…:ÿ‚Ò/^:ó‚ö 2ó‚:ô‚!ó‚¶2Q…*ý‚"R…*ú‚"T…É:ù‚þÊY^*W…DMN…ÍmÉ:ü‚þÊm^ÍÞ6ÍP+Ãs^ÍIÍ<\Éͯ\ÍD]Ò‘^Íå]Ò‘^Í ^ÍF^͉*͉*ͱ+Ò¤^ÍP+ÃÃ^*¡„å~…¢„͈Ò¾^͉*ÍZ^ÃÃ^ÍÞ6Ɉ\ Íù\O!Ñ_ ^#VëéÍwNÃ`ÍEOÃ`ÍaOÃ`ÍÊLÃ`ÍÛLÃ`ÍìLÃ`ÍýL      ;* major editing.) * ;********************************************* ; Copyright (C) 1980,1981 ; Digital Research, Inc. ; Box 579, Pacific Grove ; California, 93950 ; ; (Permission is hereby granted to use ; or abstractmov si,0 ;then propagate mov cx,510 ;trap vector to rep movs ax,ax ;all 256 interrupts ;BDOS offset to proper interrupt mov bdos_offset,bdos_ofst pop ds ;restore the DS register ;********************************************* ;*  byte sector jmp LISTST ;return list status jmp SECTRAN ;xlate logical->physical sector jmp SETDMAB ;set seg base for buff (DMA) jmp GETSEGT ;return offset of Mem Desc Table jmp GETIOBF ;return I/O map byte (IOBYTE) jmp SETIOBF ;set I/O 204+8 ;8257 out mode dmac_stat equ base204+8 ;8257 in status fdc_sel equ base204+9 ;FDC select port (not used) fdc_segment equ base204+10 ;segment address register reset_204 equ base204+15 ;reset entire interface max_retries equ 10 ;max retries ory ;| | ;--------------------------------------------- ENDIF ;loader_bios csts equ 0DAh ;i8251 status port cdata equ 0D8h ; " data port IF blc_list ;--------------------------------------------- the following program in ; the implementation of CP/M, MP/M or ; CP/NET for the 8086 or 8088 Micro- ; processor) true equ -1 false equ not true ;********************************************* ;* * ; * ;* National "BLC 8538" Channel 0 for a serial* ;* 9600 baud printer - this board uses 8 Sig-* ;* netics 2651 Usarts which have on-chip baud* ;* rate generators. * ;* map byte (IOBYTE) ;********************************************* ;* * ;* INIT Entry Point, Differs for LDBIOS and * ;* BIOS, according to "Loader_Bios" value * ;* n disk i/o ;before perm error cr equ 0dh ;carriage return lf equ 0ah ;line feed cseg org ccpoffset ccp: org bios_code ;********************************************* ;* * ;* BIOS Jump Vecto ;| | lsts equ 41h ;2651 No. 0 on BLC8538 status port ldata equ 40h ; " " " " " data port blc_reset equ 60h ;reset selected USARTS on BLC8538 ;| | ;-----* Loader_bios is true if assembling the * ;* LOADER BIOS, otherwise BIOS is for the * ;* CPM.SYS file. Blc_list is true if we * ;* have a serial printer attached to BLC8538 * ;* Bdos_int is interrupt used for earlier * ;* versions.  * ;********************************************* mov al,0FFh out blc_reset,al ;reset all usarts on 8538 mov al,4Eh out ldata+2,al ;set usart 0 in async 8 bit mode mov al,3Eh out ldata+2,al ;set usart 0 to 9600 baud mov al,37h  * ;********************************************* INIT: ;print signon message and initialize hardware mov ax,cs ;we entered with a JMPF so use mov ss,ax ; CS: as the initial value of SS:, mov ds,ax ; DS:, mov es,ax ; and ES: ;use local stacr for Individual Routines * ;* * ;********************************************* jmp INIT ;Enter from BOOT ROM or LOADER jmp WBOOT ;Arrive here from BDOS call 0 jmp CONST ;return console keyboard status---------------------------------------- ENDIF ;blc_list ;********************************************* ;* * ;* Intel iSBC 204 Disk Controller Ports * ;* * ;* * ;* * ;********************************************* loader_bios equ false blc_list equ true bdos_int equ 224 ;reserved BDOS Interrupt IF not loader_bios ;------------------ out ldata+3,al ;enable Tx/Rx, and set up RTS,DTR ;| | ;--------------------------------------------- ENDIF ;not loader_bios IF loader_bios ;--------------------------------------------- ;| k during initialization mov sp,offset stkbase cld ;set forward direction IF not loader_bios ;--------------------------------------------- ;| | ; This is a BIOS for the CPM.SYS file. ; Setup all inte jmp CONIN ;return console keyboard char jmp CONOUT ;write char to console device jmp LISTOUT ;write character to list device jmp PUNCH ;write character to punch device jmp READER ;return char from reader device jmp HOME ;move to trk 00 on******************************************** base204 equ 0a0h ;SBC204 assigned address fdc_com equ base204+0 ;8271 FDC out command fdc_stat equ base204+0 ;8271 in status fdc_parm equ base204+1 ;8271 out parameter fdc_rslt equ base204+1 ;8271 in --------------------------- ;| | bios_code equ 2500h ccp_offset equ 0000h bdos_ofst equ 0B06h ;BDOS entry point ;| | ;---------------------------------------------  | ;This is a BIOS for the LOADER push ds ;save data segment mov ax,0 mov ds,ax ;point to segment zero ;BDOS interrupt offset mov bdos_offset,bdos_ofst mov bdos_segment,CS ;bdos interrupt segment pop ds ;restorrrupt vectors in low ; memory to address trap push ds ;save the DS register mov ax,0 mov ds,ax mov es,ax ;set ES and DS to zero ;setup interrupt 0 to address trap routine mov int0_offset,offset int_trap mov int0_segment,CS mov di,4  cur sel drive jmp SELDSK ;select disk for next rd/write jmp SETTRK ;set track for next rd/write jmp SETSEC ;set sector for next rd/write jmp SETDMA ;set offset for user buff (DMA) jmp READ ;read a 128 byte sector jmp WRITE ;write a 128result fdc_rst equ base204+2 ;8271 out reset dmac_adr equ base204+4 ;8257 DMA base address out dmac_cont equ base204+5 ;8257 out control dmac_scan equ base204+6 ;8257 out scan control dmac_sadr equ base204+7 ;8257 out scan address dmac_mode equ baseENDIF ;not loader_bios IF loader_bios ;--------------------------------------------- ;| | bios_code equ 1200h ;start of LDBIOS ccp_offset equ 0003h ;base of CPMLOADER bdos_ofst equ 0406h ;stripped BDOS ent     e data segment ;| | ;--------------------------------------------- ENDIF ;loader_bios mov bx,offset signon call pmsg ;print signon message mov cl,0 ;default to dr A: on coldstart jmp ccp ;jump to coling. ;[BX] points to length, ; followed by Command byte, ; followed by length-1 parameter bytes mov last_com,BX ;save command address for retries outer_retry: ;allow some retrying mov rtry_cnt,max_retries retry: mov BX,last_com call senHome Error" jmps home ;and retry SETTRK: ;set track address given by CX mov trk,cl ;we only use 8 bits of track address ret SETSEC: ;set sector number given by cx mov sect,cl ;we only use 8 bits of sector address ret SECTRAN: ;translate p al,'z' ja uret ;greater than 'z' is ok sub al,'a'-'A' ;else shift to caps uret: ret ; utility subroutine to print messages pmsg: mov al,[BX] ;get next char from message test al,al jz return ;if zero return mov CL,AL call CONOUT  IF blc_list ;--------------------------------------------- ;| | call LISTST jz LISTOUT ;wait for printer not busy mov al,cl out ldata,al ;send char to TI 810 ;| d start entry of CCP WBOOT: jmp ccp+6 ;direct entry to CCP at command level IF not loader_bios ;--------------------------------------------- ;| | int_trap: cli ;block interrupts mov ax,cs mov ds,ad_com ;transmit command to i8271 ; check status poll mov BX,last_com mov al,1[bx] ;get command op code mov cx,0800h ;mask if it will be "int req" cmp al,2ch jb exec_poll ;ok if it is an interrupt type mov cx,8080h ;else we use "not command sector CX using table at [DX] mov bx,cx add bx,dx ;add sector to tran table address mov bl,[bx] ;get logical sector ret SETDMA: ;set DMA offset given by CX mov dma_adr,CX ret SETDMAB: ;set DMA segment given by CX mov dma_seg,CX ret ; ;print it inc BX jmps pmsg ;next character and loop ;********************************************* ;* * ;* Disk Input/Output Routines * ;* * ;*** | ;--------------------------------------------- ENDIF ;blc_list ret LISTST: ;poll list status IF blc_list ;--------------------------------------------- ;| | in al,lsts and al,81h ;look ax ;get our data segment mov bx,offset int_trp call pmsg hlt ;hardstop ;| | ;--------------------------------------------- ENDIF ;not loader_bios ;********************************************* ;* busy" and al,0fh cmp al,0ch ;unless there isn't mov al,0 ja exec_exit ; any result ;poll for bits in CH, exec_poll: ; toggled with bits in CL in al,fdc_stat ;read status and al,ch xor al,cl ; isolate what we want to poll jz exec_p GETSEGT: ;return address of physical memory table mov bx,offset seg_table ret ;********************************************* ;* * ;* All disk I/O parameters are setup: the * ;* Read and Write entry****************************************** SELDSK: ;select disk given by register CL mov bx,0000h cmp cl,2 ;this BIOS only supports 2 disks jnb return ;return w/ 0000 in BX if bad drive mov al, 80h cmp cl,0 jne sel1 ;drive 1 if not zero t both TxRDY and DTR cmp al,81h jnz zero_ret ;either false, printer is busy or al,255 ;both true, LPT is ready ;| | ;--------------------------------------------- ENDIF ;blc_list ret PUNCH: ;not im * ;* CP/M Character I/O Interface Routines * ;* Console is Usart (i8251a) on iSBC 86/12 * ;* at ports D8/DA * ;* * ;**********************oll ;and loop until it is done ;Operation complete, in al,fdc_rslt ; see if result code indicates error and al,1eh jz exec_exit ;no error, then exit ;some type of error occurred . . . cmp al,10h je dr_nrdy ;was it a not ready drive ?  points transfer one * ;* sector of 128 bytes to/from the current * ;* DMA address using the current disk drive * ;* * ;********************************************* READ: mov al,12h ;basic read sectormov al, 40h ;else drive is 0 sel1: mov sel_mask,al ;save drive select mask ;now, we need disk parameter address mov ch,0 mov bx,cx ;BX = word(CL) mov cl,4 shl bx,cl ;multiply drive code * 16 ;create offset from Disk Parameter Base add bx,oplemented in this configuration READER: mov al,1ah ret ;return EOF for now GETIOBF: mov al,0 ;TTY: for consistency ret ;IOBYTE not implemented SETIOBF: ret ;iobyte not implemented zero_ret: and al,0 ret ;return zero in AL and fl*********************** CONST: ;console status in al,csts and al,2 jz const_ret or al,255 ;return non-zero if RDA const_ret: ret ;Receiver Data Available CONIN: ;console input call const jz CONIN ;wait for RDA in al,cdata and a ;no, dr_rdy: ; then we just retry read or write dec rtry_cnt jnz retry ; up to 10 times ; retries do not recover from the ; hard error mov ah,0 mov bx,ax ;make error code 16 bits mov bx,errtbl[BX] call pmsg ;print appropriate message  command jmps r_w_common WRITE: mov al,0ah ;basic write sector command r_w_common: mov bx,offset io_com ;point to command string mov byte ptr 1[BX],al ;put command into string ; fall into execute and return execute: ;execute command strffset dp_base return: ret HOME: ;move selected disk to home position (Track 0) mov trk,0 ;set disk i/o to track zero mov bx,offset hom_com call execute jz return ;home drive and return if OK mov bx,offset bad_hom ;else print call pmsg ;"ags ; Routine to get and echo a console character ; and shift it to upper case uconecho: call CONIN ;get a console character push ax mov cl,al ;save and call CONOUT pop ax ;echo to console cmp al,'a' jb uret ;less than 'a' is ok cml,7fh ;read data and remove parity bit ret CONOUT: ;console output in al,csts and al,1 ;get console status jz CONOUT ;wait for TBE mov al,cl out cdata,al ;Transmitter Buffer Empty ret ;then return data LISTOUT: ;list device output        in al,cdata ;flush usart receiver buffer call uconecho ;read upper case console character cmp al,'C' je wboot_l ;cancel cmp al,'R' je outer_retry ;retry 10 more times cmp al,'I' je z_ret ;ignore error or al,255 ;set code for permanent errS dw tpa_len ;and extends to 08000 dw 2000h ;second is 20000 - dw 2000h ;3FFFF (128k) include singles.lib ;read in disk definitions loc_stk rw 32 ;local stack for initialization stkbase equ offset $ lastoff equ offset $ tpa_seg equ (last | ;--------------------------------------------- ENDIF ;not loader_bios bad_hom db cr,lf,'Home Error',cr,lf,0 int_trp db cr,lf,'Interrupt Trap Halt',cr,lf,0 errtbl dw er0,er1,er2,er3 dw er4,er5,er6,er7 dw er8,er9,e inc BX mov al,[BX] ;get command or al,sel_mask ;merge command and drive code out fdc_com,al ;send command byte parm_loop: dec cl jz exec_exit ;no (more) parameters, return inc BX ;point to (next) parameter parm_poll: in al,fdc_stat t ;* Send_com sends a command and parameters * ;* to the i8271: BX addresses parameters. * ;* The DMA controller is also initialized * ;* if this is a read or write * ;* * ;**************or exec_exit: ret dr_nrdy: ;here to wait for drive ready call test_ready jnz retry ;if it's ready now we are done call test_ready jnz retry ;if not ready twice in row, mov bx,offset nrdymsg call pmsg ;"Drive Not Ready" nrdy01: call tesoff+0400h+15) / 16 tpa_len equ 0800h - tpa_seg db 0 ;fill last address for GENCMD ;********************************************* ;* * ;* Dummy Data Section * ;* rA,erB dw erC,erD,erE,erF er0 db cr,lf,'Null Error ??',0 er1 equ er0 er2 equ er0 er3 equ er0 er4 db cr,lf,'Clock Error :',0 er5 db cr,lf,'Late DMA :',0 er6 db cr,lf,'ID CRC Error :',0 er7 db cr,lf,'Data CRC Error :',0 er8 db cr,est al,20h ;test "parameter register full" bit jnz parm_poll ;idle until parm reg not full mov al,[BX] out fdc_parm,al ;send next parameter jmps parm_loop ;go see if there are more parameters ;********************************************* ;* ******************************* send_com: in al,fdc_stat test al,80h ;insure command not busy jnz send_com ;loop until ready ;see if we have to initialize for a DMA operation mov al,1[bx] ;get command byte cmp al,12h jne write_maybe ;it_ready jz nrdy01 ;now loop until drive ready jmps retry ;then go retry without decrement zret: and al,0 ret ;return with no error code wboot_l: ;can't make it w/ a short leap jmp WBOOT ;********************************************* ;* * ;********************************************* dseg 0 ;absolute low memory org 0 ;(interrupt vectors) int0_offset rw 1 int0_segment rw 1 ; pad to system call vector rw 2*(bdos_int-1) bdos_offset rw 1 bdos_segment rw 1 lf,'Drive Not Ready :',0 er9 db cr,lf,'Write Protect :',0 erA db cr,lf,'Trk 00 Not Found :',0 erB db cr,lf,'Write Fault :',0 erC db cr,lf,'Sector Not Found :',0 erD equ er0 erE equ er0 erF equ er0 nrdymsg equ er8 rtry_cnt db 0 ;disk  * ;* Data Areas * ;* * ;********************************************* data_offset equ offset $ dseg org data_offset ;contiguous with f not a read it could be write mov cl,40h jmps init_dma ;is a read command, go set DMA write_maybe: cmp al,0ah jne dma_exit ;leave DMA alone if not read or write mov cl,80h ;we have write, not read init_dma: ;we have a read or write operatio * ;* The i8271 requires a read status command * ;* to reset a drive-not-ready after the * ;* drive becomes ready * ;* * ;***************** END ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååerror retry counter last_com dw 0 ;address of last command string dma_adr dw 0 ;dma offset stored here dma_seg dw 0 ;dma segment stored here sel_mask db 40h ;select mask, 40h or 80h ; Various command strings for i8271 io_com db 3 ;length rdcode segment IF loader_bios ;--------------------------------------------- ;| | signon db cr,lf,cr,lf db 'CP/M-86 Version 2.2',cr,lf,0 ;| | ;-------------------n, setup DMA controller ; (CL contains proper direction bit) mov al,04h out dmac_mode,al ;enable dmac mov al,00 out dmac_cont,al ;send first byte to control port mov al,cl out dmac_cont,al ;load direction register mov ax,dma_adr ou**************************** test_ready: mov dh, 40h ;proper mask if dr 1 test sel_mask,80h jnz nrdy2 mov dh, 04h ;mask for dr 0 status bit nrdy2: mov bx,offset rds_com call send_com dr_poll: in al,fdc_stat ;get status word test alå_wr db 0 ;read/write function code trk db 0 ;track # sect db 0 ;sector # hom_com db 2,29h,0 ;home drive command rds_com db 1,2ch ;read status command ; System Memory Segment Table segtable db 2 ;2 segments dw tpa_seg ;1st seg starts after BIO-------------------------- ENDIF ;loader_bios IF not loader_bios ;--------------------------------------------- ;| | signon db cr,lf,cr,lf db ' System Generated - 11 Jan 81',cr,lf,0 ;| t dmac_adr,al ;send low byte of DMA mov al,ah out dmac_adr,al ;send high byte mov ax,dma_seg out fdc_segment,al ;send low byte of segment address mov al,ah out fdc_segment,al ;then high segment address dma_exit: mov cl,[BX] ;get count ,80h jnz dr_poll ;wait for not command busy in al,fdc_rslt ;get "special result" test al,dh ;look at bit for this drive ret ;return status of ready ;********************************************* ;* *        title 'Customized Basic I/O System' ;********************************************* ;* * ;* This Customized BIOS adapts CP/M-86 to * ;* the following hardware configuration * ;* Processor: hlt ;hardstop ;| | ;--------------------------------------------- ENDIF ;not loader_bios ;********************************************* ;* * ;* CP/M Character Ie mov cx,510 ;trap vector to rep movs ax,ax ;all 256 interrupts ;BDOS offset to proper interrupt mov bdos_offset,bdos_ofst pop ds ;restore the DS register ; (additional CP/M-86 initialization) ;| |  jmp SECTRAN ;xlate logical->physical sector jmp SETDMAB ;set seg base for buff (DMA) jmp GETSEGT ;return offset of Mem Desc Table jmp GETIOBF ;return I/O map byte (IOBYTE) jmp SETIOBF ;set I/O map byte (IOBYTE) ;**************************------------ ;| | bios_code equ 1200h ;start of LDBIOS ccp_offset equ 0003h ;base of CPMLOADER bdos_ofst equ 0406h ;stripped BDOS entry ;| | ;------------------------ * ;* Brand: * ;* Controller: * ;* * ;* * ;* Programmer: /O Interface Routines * ;* * ;********************************************* CONST: ;console status rs 10 ;(fill-in) ret CONIN: ;console input call CONST jz CONIN ;wait for RDA rs 10 ;(fill-in;--------------------------------------------- ENDIF ;not loader_bios IF loader_bios ;--------------------------------------------- ;| | ;This is a BIOS for the LOADER push ds ;save data segment mov ******************* ;* * ;* INIT Entry Point, Differs for LDBIOS and * ;* BIOS, according to "Loader_Bios" value * ;* * ;******************************************--------------------- ENDIF ;loader_bios cseg org ccpoffset ccp: org bios_code ;********************************************* ;* * ;* BIOS Jump Vector for Individual Routines * ;*  * ;* Revisions : * ;* * ;********************************************* true equ -1 false equ not true cr equ 0dh ;carriage return lf equ 0ah ;line feed ;**********) ret CONOUT: ;console output rs 10 ;(fill-in) ret ;then return data LISTOUT: ;list device output rs 10 ;(fill-in) ret LISTST: ;poll list status rs 10 ;(fill-in) ret PUNCH: ;write punch device rs 10 ;(fill-in) ret REAax,0 mov ds,ax ;point to segment zero ;BDOS interrupt offset mov bdos_offset,bdos_ofst mov bdos_segment,CS ;bdos interrupt segment ; (additional LOADER initialization) pop ds ;restore data segment ;| |*** INIT: ;print signon message and initialize hardware mov ax,cs ;we entered with a JMPF so use mov ss,ax ;CS: as the initial value of SS:, mov ds,ax ;DS:, mov es,ax ;and ES: ;use local stack during initialization mov sp,offset stkbase cl * ;********************************************* jmp INIT ;Enter from BOOT ROM or LOADER jmp WBOOT ;Arrive here from BDOS call 0 jmp CONST ;return console keyboard status jmp CONIN ;return console keyboard char jmp *********************************** ;* * ;* Loader_bios is true if assembling the * ;* LOADER BIOS, otherwise BIOS is for the * ;* CPM.SYS file. * ;* DER: rs 10 ;(fill-in) ret GETIOBF: mov al,IOBYTE ret SETIOBF: mov IOBYTE,cl ;set iobyte ret ;iobyte not implemented pmsg: mov al,[BX] ;get next char from message test al,al jz return ;if zero return mov CL,AL call CONOUT  ;--------------------------------------------- ENDIF ;loader_bios mov bx,offset signon call pmsg ;print signon message mov cl,0 ;default to dr A: on coldstart jmp ccp ;jump to cold start entry of CCP WBOOT: jmp ccp+6 ;direct entry to CCP d ;set forward direction IF not loader_bios ;--------------------------------------------- ;| | ; This is a BIOS for the CPM.SYS file. ; Setup all interrupt vectors in low ; memory to address trap CONOUT ;write char to console device jmp LISTOUT ;write character to list device jmp PUNCH ;write character to punch device jmp READER ;return char from reader device jmp HOME ;move to trk 00 on cur sel drive jmp SELDSK ;select disk for ne * ;********************************************* loader_bios equ false bdos_int equ 224 ;reserved BDOS interrupt IF not loader_bios ;--------------------------------------------- ;| | ;print it inc BX jmps pmsg ;next character and loop ;********************************************* ;* * ;* Disk Input/Output Routines * ;* * ;****at command level IF not loader_bios ;--------------------------------------------- ;| | int_trap: cli ;block interrupts mov ax,cs mov ds,ax ;get our data segment mov bx,offset int_trp call pmsg push ds ;save the DS register mov IOBYTE,0 ;clear IOBYTE mov ax,0 mov ds,ax mov es,ax ;set ES and DS to zero ;setup interrupt 0 to address trap routine mov int0_offset,offset int_trap mov int0_segment,CS mov di,4 mov si,0 ;then propagatxt rd/write jmp SETTRK ;set track for next rd/write jmp SETSEC ;set sector for next rd/write jmp SETDMA ;set offset for user buff (DMA) jmp READ ;read a 128 byte sector jmp WRITE ;write a 128 byte sector jmp LISTST ;return list status bios_code equ 2500h ccp_offset equ 0000h bdos_ofst equ 0B06h ;BDOS entry point ;| | ;--------------------------------------------- ENDIF ;not loader_bios IF loader_bios ;---------------------------------      ***************************************** SELDSK: ;select disk given by register CL ndisks equ 2 ;number of disks (up to 16) mov disk,cl ;save disk number mov bx,0000h ;ready for error return cmp cl,ndisks ;n beyond max disks? jnb return ;retuåå---------------------- ENDIF ;not loader_bios int_trp db cr,lf db 'Interrupt Trap Halt' db cr,lf ; System Memory Segment Table segtable db 2 ;2 segments dw tpa_seg ;1st seg starts after BIOS dw tpa_len ;and extends to 08000 dw 2000h ;s address to the selected sector * ;* (return 00 if successful, 01 if perm err)* ;* * ;********************************************* READ: rs 50 ;fill-in ret WRITE: rs 50 ;(fill-in) ret ;**rn if so mov ch,0 ;double(n) mov bx,cx ;bx = n mov cl,4 ;ready for *16 shl bx,cl ;n = n * 16 mov cx,offset dpbase add bx,cx ;dpbase + n * 16 return: ret ;bx = .dph HOME: ;move selected disk to home position (Track 0) mov trk,0 ;set disk €@¡ÁTHIS IS A HEADER*# w# w# wÃc Í­!áåÍõ8 GÍ™¸(OÍ#ôÍÝ:Í#* åÍ£æ(ùÍÎþ(Oþ (\þ(6þ(Oþ 8þ.(&þ0€@¡Á Í#?Í#¸#w´^Í#UÍ#Í­!áå£ëáåíRë(ê€åecond is 20000 - dw 2000h ;3FFFF (128k) include singles.lib ;read in disk definitions loc_stk rw 32 ;local stack for initialization stkbase equ offset $ lastoff equ offset $ tpa_seg equ (lastoff+0400h+15) / 16 tpa_len equ 0800h - tpa_seg ******************************************* ;* * ;* Data Areas * ;* * ;********************************************* data_offset equ offi/o to track zero rs 10 ;(fill-in) ret SETTRK: ;set track address given by CX mov trk,CX ret SETSEC: ;set sector number given by cx mov sect,CX ret SECTRAN: ;translate sector CX using table at [DX] mov bx,cx add bx,dx ;add sector tåådb 0 ;fill last address for GENCMD ;********************************************* ;* * ;* Dummy Data Section * ;* * ;*************************set $ dseg org data_offset ;contiguous with code segment IOBYTE db 0 disk db 0 ;disk number trk dw 0 ;track number sect dw 0 ;sector number dma_adr dw 0 ;DMA offset from DS dma_seg dw 0 ;DMA Base Segment IF loader_bios ;-------------------o tran table address mov bl,[bx] ;get logical sector ret SETDMA: ;set DMA offset given by CX mov dma_adr,CX ret SETDMAB: ;set DMA segment given by CX mov dma_seg,CX ret ; GETSEGT: ;return address of physical memory table mov bx,offseåå******************** dseg 0 ;absolute low memory org 0 ;(interrupt vectors) int0_offset rw 1 int0_segment rw 1 ; pad to system call vector rw 2*(bdos_int-1) bdos_offset rw 1 bdos_segment rw 1 END -------------------------- ;| | signon db cr,lf,cr,lf db 'CP/M-86 Version 1.0',cr,lf,0 ;| | ;--------------------------------------------- ENDIF ;loader_bios It seg_table ret ;********************************************* ;* * ;* All disk I/O parameters are setup: * ;* DISK is disk number (SELDSK) * ;* TRK is track number (SETTRKåååF not loader_bios ;--------------------------------------------- ;| | signon db cr,lf,cr,lf db 'System Generated 00/00/00' db cr,lf,0 ;| | ;-----------------------) * ;* SECT is sector number (SETSEC) * ;* DMA_ADR is the DMA offset (SETDMA) * ;* DMA_SEG is the DMA segment (SETDMAB)* ;* READ reads the selected sector to the DMA* ;* address, and WRITE writes the data from * ;* the DMA      å cmp al,source ; see if same as source jne not_same ; no, go see if > max mov si,offset same_message ; can't have same drive call pmsg ; so we print message jmp another ; and go try again not_same: cmp al,drive_cnt ; is dest > mao, continue jmp exit ; yes, we should exit next_1: cmp al,drive_cnt ; see if valid drive code jb save_source ; yes, go save it drive_err: mov si,offset bad_drive ; else, print call pmsg ; a bad drive message jmp another ; and tåååx? jnb drive_err ; go print invalid drive error mov dest,al ; save destination drive add al,'A' ; make ascii drive code mov dest_ascii,al ; save for messages mov cl,dest ; get destination drive mov dl,0 ; force first time sery to get another save_source: mov source,al ; save it as the source drive add al,'A' ; make ascii drive code mov source_ascii,al ; save for messages mov cl,source ; get source drive mov dl,0 ; force first time selection call s title 'COPYDISK 1 Feb 82' ver equ 20 ; Version 2.0 -jrp ; COPYDISK duplicates entire diskettes using all of the ; available storage as a multiple track buffer. ; This program must be built with a large extra segment ; as follows: ; ASMåålection call seldsk ; select destination drive test bx,bx ; insure drive exists jz drive_err ; no, go error out mov di,ES:word ptr 10[bx] ; point to destination DPB mov si,offset disk_def ; point to source drives def mov cx,15 ; leeldsk ; select it test bx,bx ; insure the drive exists jz drive_err ; no, fatal mov si,ES:word ptr 10[bx] ; get pointer to DPB ; create local copy of disk definition push ds ! push es ; save segments pop ds ! pop es ; and exchan86 COPYDISK ; GENCMD COPYDISK EXTRA[M0200,XFF00] ; This allows COPYDISK to utilize all the left-over memory in your ; system as its buffer. cseg ; code segment start: mov si,offset signon_message call pmsg ; print signon message nextåångth of a definition cld ! rep cmpsb ; compare the definitions je next_2 ; must be equal. jmp different_type ; else go print error next_2: mov dx,es:word ptr 00[bx] ; get secttran table address mov cx,0 ; logical sector zero call sge them mov di,offset disk_def ; point to local disk def table mov cx,15 ; diskdef is 15 bytes long cld ! rep movsb ; copy it push ds ! push es ; swap back pop ds ! pop es ; segment registers mov dx,es:word ptr 00[bx] ; get se_copy: ; reload local stack for retries. pushf ; save interrupt flag in stack pop bx ; put it in bx cli ; disable interrupts mov ax,ds ; get our data segment mov ss,ax ; and use as stack segment mov sp,offset stack_end ;å @ÛGTHIS IS A HEADER*# w# w# wÃc Í­!áåÍõ8 GÍ™¸(OÍ#ôÍÝ:Í#* åÍ£æ(ùÍÎþ(Oþ (\þ(6þ(Oþ 8þ.(&þ0 @ÛG Í#?Í#¸#w´^Í#UÍ#Í­!áå£ëáåíRë(ê€ectran ; find out first sector number cmp bx,base_sector ; make sure its the same je next_3 ; the same is OK, jmp different_type ; no, fatal error next_3: ; determine track capacity mov ax,spt ; get the sectors per track mov dcttran table address mov cx,0 ; logical sector zero call sectran ; find out first sector number mov base_sector,bx ; save this for track reads mov si,offset dest_message ; prompt for destination call get_drive ; get the drive code  set stack pointer push bx ; flags back into stack popf ; restore interrupt status mov si,offset source_message ; prompt for source drive call get_drive ; request drive code cmp al, cr - 'A' ; see if it was a jne next_1 ; nåå      l,128 ; length of a sector mul dl ; get track capacity mov track_size,ax ; save it ; determine number of tracks on diskette mov al,blm ; get block mask inc al ; plus 1 gives sectors/block mov ah,0 ; make 16 bits mov dx,0get pointer to read/write inc si ; skip leading call pmsg ; print that mov ax,trk ; get track number call pdec ; print it mov si,offset sector_message ; print ", Sector " call pmsg mov ax,sector ; get sector number (0 org) ma address and segment mov ax,base_track ; get starting track number sub ax,trk ; gives relative track of pass mov dx,0 ; make dword mul spt ; compute sector of track add ax,sector ; add in current logical sector adc dx,0 ; makemsg mov cl,13 int BDOS mov cl,0 ; reboot mov dl,0 ; CP/M-86 int BDOS different_type: mov si,offset type_error_message call pmsg jmp aborting track_block: mov message_pointer,si ; save pointer to message mov disk_functio; yes, terminate loop sub ax,nts ; lower by number of tracks per buffer inc ax ; and adjust by 1. jns not_neg ; check to make sure its positive mov ax,0 ; no, zero is floor not_neg: mov btr,ax ; save as last track for this copy pa ; make 32 bits mul dsm ; total sectors/data area add ax,spt ; force round up dec ax ; by adding SPT-1 div spt ; compute number of tracks add ax,off ; add in operating sys tracks dec ax ; number of last track mov max_tra add ax,base_sector ; correct if 1 origin call pdec ; print the sector number mov si,offset continue_message ; see if user wants to ignore call get_yn ; ask for a Y/N response jnc next_5 ; yes, continue jmp aborting ; NO, go ask for double precision add mov cx,128 ; length of a sector mul cx ; gives base offset as 32 bits mov dma_offset,ax ; gives base dma offset mov cl,12 ! shl dx,cl ; move to high nibble add dx,extra_base ; offset extra segment mov dma_segmen,ax ; save pointer to read/write mov selected_disk,cl ; save drive select code mov dl,1 ; tell bios have selected before call seldsk ; select diskette drive mov ax,base_track ; get base track number for this pass mov trk,ax ; save ass mov si,offset reading_message ; point to read message mov ax,offset read ; and proper subroutine mov cl,source ; select source diskette call track_block mov si,offset writing_message ; point to write message mov ax,offset write ; ack,ax ; save value ; compute number of tracks that will ; fit in our data segment mov ax,extra_length ; get low 16 bits of DS length mov dl,extra_length_H ; get other 8 bits mov dh,0 ; zero rest of 32 bit divisor div track_size new disks next_5: call crlf no_disk_error: pop cx ; recover sector number inc cx ; sector = sector + 1 cmp cx,spt ; see if past last sector jae next_6 ; done, exit jmp next_sector ; else, continue next_6: dec trk ; track nt,dx ; save DMA segment mov cx,dx ; put in argument register call setdmab ; pass to CBIOS mov cx,dma_offset ; get the offset again call setdma ; and pass it to BIOS also mov ax,sector ; fetch current sector number inc ax ; s loop index next_track: ; first inner loop... mov ax,trk ; get the index cmp ax,btr ; see if less than last jnl next_4 ; no, continue jmp next_track_x ; yeah, exit loop next_4: mov si,message_pointer call pmsg ; print " Track " mov ax,trk ; get the track number call pdec ; print as decimal mov si,offset space_message ; then, print some call pmsg ; spaces to blank any garbage mov cx,trk ; get desired track address call settrk ; give to bios ; adjust base track by number we copied mov base_track,ax jmps next_block next_block_x: ; here, we are done with a sucessful copy mov si,offset done_message ; print message call pmsg ; announcing success another: mov si,offset anotg because of error mov si,offset abort_message call pmsg jmp another adequite_memory: mov si,offset ready_message ; insure this is correct call get_yn ; print request jc aborting ; if NO, then get new input mov si,offset copy_mesa segment call setdmab ; point dma base address call read ; read 128 byte record push ax ; save read error in stack mov si,offset verify_buffer ; point to sector we just read les di,dword ptr dma_offset ; get pointer to one we wrote nction ; read/write/verify a sector test al,al ; check error return code jz no_disk_error ; see if we got a bad sector ; got fatal disk error mov si,offset disk_error_message call pmsg ; print disk error mov si,message_pointer ;  mov cx,0 ; start with logical sector 0 next_sector: push cx ; save current sector number mov sector,cx ; save sector number (0 org) add cx,base_sector ; correct for first sector number call setsec ; pass to cbios ; compute dher_message call getyn ; see if we want another copy jc exit ; no, go exit next_copy_v: ; convienient for short jumps jmp next_copy ; back for another disk copy exit: ; here, we are exiting mov si,offset exit_message call psage ; else tell user OK. call pmsg mov ax,max_track ; get maximum track number mov base_track,ax ; save as outer loop index next_block: mov ax,base_track ; get loop index cmp ax,0 ; see if we are outside limits jl next_block_x      mov cx,128 ; 128 byte record cld ! rep cmpsb ; compare them mov al,0 ; no error je verify_good ; so we are ok mov al,0FFh ; else, we got compare error verify_good: pop dx ; recover read error byte or al,dl ; merge into retu cr,lf,'Illegal Diskette Drive',cr,lf,0 same_message db cr,lf,'Source and Destination cannot be the same' db cr,lf,0 type_error_message db cr,lf,'Source and Destination disks must be' db cr,lf,'the same type',cr,lf,0 continue_message db cr,lof the data segment rs 1 ; not used extra_length rw 1 ; low 16 bits extra length extra_length_H rb 1 ; high 8 bits '' '' extra_base rw 1 ; base of the extra segment org 005Ch default_FCB rs 35 ; default File Control Block org 00nout: ; output character in AL to console mov dl,al mov cl,6 int BDOS ret pdec: ; print unsigned 16 bits in AX as decimal ; with zero suppresion mov cx,0 ; cx is digit counter pdec_1: ; here to divide out next digit sub dxrint message and get Y or N push si ; save message pointer call pmsg ; print the message call get_upper ; get a upper case letter pop si ; recover message pointer cmp al,'Y' ; see if response was 'Y' je get_yn_x ; yes, return w/rn code ret ; back to caller ; *********************************** ; * ; * BIOS direct entry points ; * ; *********************************** home: mov al,8 jmps bios_call seldsk: mov al,9 jmps bios_call settrk: mov al,10 f,'Ignore error (Y/N) ? ',0 sector_message db ', Sector ',0 disk_error_message db cr,lf,'Permanent Error ',0 crlf_message db cr,lf,0 exit_message db cr,lf,'COPY program exiting',cr,lf,0 ; VARIABLES source rb 1 ; source drive select co80h default_buffer rs 128 ; default record buffer org 0100h ; start of user data segment ; MESSAGES signon_message db cr,lf,'CP/M-86 Full Disk COPY Utility' db cr,lf,' Version ' db ver/10+'0', '.', (ver mod 10)+'0',cr,lf,0 ,dx ; Zero DX mov bx,10 ; constant 10 div bx ; quotient to AX, remainder to DX add dl,'0' ; make remainder ascii digit push dx ; and stick onto stack inc cx ; bump digit counter test ax,ax ; see if any quotient left jnz pdec_1  no carry cmp al,'N' ; see if was 'N' jne get_yn ; no, invalid. reprompt stc ; set carry for a NO get_yn_x: ret get_char: ; read a line from CONIN and return first char mov cl,10 ; function for line in mov dx,offset line_buff jmps bios_call setsec: mov al,11 jmps bios_call setdma: mov al,12 jmps bios_call setdmab: mov al,17 jmps bios_call read: mov al,13 jmps bios_call write: mov al,14 jmps bios_call sectran: mov al,16 jmps bios_call de dest rb 1 ; destination drive select code selected_disk rb 1 ; current drive select code trk rw 1 ; current track number sector rw 1 ; current sector number (0 origin) nts rw 1 ; number of tracks per buffer full base_track rw 1 ; starting trac source_message db cr,lf,cr,lf,'Enter Source Disk Drive (A-D) ? ',0 dest_message db cr,lf,cr,lf,' Destination Disk Drive (A-D) ? ',0 ready_message db cr,lf,cr,lf,'Copying Disk ' source_ascii rb 1 db ': to Disk ' dest_ascii rb 1 db ':',cr,lf  ; yes, continue stacking digits pdec_2: pop ax ; get a digit from the stack push cx ; save count call conout ; print it pop cx ; restore count loop pdec_2 ; and continue if more in stack ret ; done. . . ; ** DATA SEGMENT ; point at buffer int BDOS ; read the line mov al,line_buff+1 ; get input length cmp al,1 ; insure single char entered jb get_char_1 ; no, go mov al,line_buff+2 ; get the character ret get_char_1: mov al,cr ; null string,  bios_call: mov bios_function,al mov bios_CX,cx mov bios_DX,DX mov cl,50 mov dx,offset bios_function int BDOS ret ; **************************************** ; * ; * Operator interaction subroutines ; * ; ***************************k number for this pass track_size rw 1 ; size of each track in bytes btr rw 1 ; last track number of this pass dma_offset rw 1 ; current buffer offset dma_segment rw 1 ; current buffer segment base message_pointer rw 1 ; points to appropriate read/wr db 'Is this what you want to do (Y/N) ? ',0 memory_message db cr,lf,'Insufficient memory available for copy',0 abort_message db cr,lf,cr,lf,'Copy aborted',cr,lf,0 done_message db cr,lf,'Copy completed.',0 another_message db cr,lf,cr,lf,'Copy  ** dseg cr equ 0dh ; ascii carriage return lf equ 0ah ; ascii line feed drive_cnt equ 16 ; CP/M currently supports up to 16 drives BDOS equ 224 ; system call interrupt number ; CP/M-86 Page Zero code_length rw 1 ; low 16 bits return a ret crlf: ; print a mov si,offset crlf_message ; fall into pmsg pmsg: ; print message at [SI] to zero lods al ; get a character test al,al ; see if zero terminator jz pmsg_x ; yes, exit push s************* get_drive: ; print message and read drive code call pmsg ; first, print the message call get_upper ; then get an upper case letter sub al,'A' ; and normalize to 0... ret get_upper: ; get upper case console input w/ eite message disk_function rw 1 ; points to '' '' '' subroutine base_sector rw 1 ; either 0 or 1 normally max_track rw 1 ; total number of tracks on disk line_buff db 80 db 0 rb 80 bios_function rb 1 ; bios function number bios_another disk (Y/N) ? ',0 copy_message db cr,lf,'Copy started',cr,lf,0 reading_message db cr,' Reading Track ',0 writing_message db cr,' Writing Track ',0 verify_message db cr,'Verifying Track ',0 space_message db ' ',0 bad_drive dbcode length code_length_H rb 1 ; high 8 bits '' '' code_base rw 1 ; base of the code segment model_8080 rb 1 ; 8080 memory model flag data_length rw 1 ; low 16 bits data length data_length_H rb 1 ; high 8 bits '' '' data_base rw 1 ; base i ; save pointer call conout ; not done, print character pop si ; recover pointer jmp pmsg ; and loop pmsg_x: ret conin: ; get character from console into AL mov cl,6 mov dl,0FFh int BDOS test al,al jz conin ret cocho call get_char ; get console character cmp al,'a' ; see if lower case jb get_upper_x ; below, leave cmp al,'z' ; insure not > z ja get_upper_x ; not lower at all sub al,'a'-'A' ; make upper get_upper_x: ret get_yn: ; p     cx rw 1 ; first argument for BIOS call bios_dx rw 1 ; second argument for BIOS call disk_def rs 0 ; disk definition table gets copied here spt rw 1 ; 128 byte sectors per track bsh rb 1 ; block shift factor blm rb 1 ; block mask exm rb 1 ; ëás#r!9^#Vë~#¶ÊÃõ!’9^#VÕÍ×$Ñ!å!”9^#VÕ;ÑÑë! 9s#r!ÿÿÍØ+ÊH!É!9å~#fo++ëás#rë##ë!”9~#foÍç+Êä!9^#Vë^#VÕ! å!9åÍÉ ÑÑÑ!$å!9åÍY*Ñë!9#Ñs!9^#Vë^#VÕÍY*Ñë!9s!€å!9å!9^#VÕÍQ ÑÑÑÿÿÍØ+Êá! 9^#VÕÍ#Ñ!ÉÃH! 9^#VÕÍ#ÑÿÿÍØ+Êý!É!*! 9^#VÕ!åÍ« ÑÑÉ %sìÿÍé*!å! 9åÍìÑÑ!9^ëÃ_! 9^#VÕÍoÑÃn!²,åÍoÑÃn!"9^#VÕÍoÑÃnÍ?,EY6PÉÍé**F3"D3!å!9^#VÕ!„,åÍÕ)ÑÑÑͯ!å!‚,å!ì1åÍŒ)ÑÑÑʯÑ*B3|µÊÄ*D3å!ÅåÍ« ÑÑÉ *** Error: EOF while processing line %d Íé*!å!9^#Vå1Õ*.l~þ1Â{:€þÂv!‚ží°:Ög.6 T!– í°!‚§í°† Í„> 2„ Í!†~þY(þy ͯO:Ö g.éP Íà This disk will install into the System Control Area of your hard disk. Do you wish to proceed with theextent mask dsm rw 1 ; disk size in blocks drm rw 1 ; directory size al0 rb 1 ; alloc 0 al1 rb 1 ; alloc 1 cks rw 1 ; checksum size off rw 1 ; directory offset rw 128 stack_end rw 0 verify_buffer rs 128 ; sector buffer for verify funÉ %súÿÍé*! å!9^#VÕ!9^#VÕÍr*ÑÑÑ!9^#V! 9s#r!9^#V! 9s#r! 9~#¶Êv !ê,åÍóÑë! 9s! 9^ëÃX !å!9å~#fo#ëás#rë+Ñs!9^#Vë^ëÉ! 9å~#fo+ëás#rë#|µÊÆ !õ,å!åÍPÑÑ!õ,å! åÍPÑÑ!õ,å!åÍPÑÑÆ à ! 9^#V!9~#foÍç+Ê* !õ,å!åÍPÑÑ!õ,å! åÍPÑÑ!õ,å!åë^!B2ÑsÉÍé*!å!9^#Vë^!B2ÑsÉÍé*! 9^#Vë^!B2^!ÍØ+ÊW!9^#VÕÍoÑÃc!9^#VÕÍoÑÉýÿÍé*ÍZ!å! 9åÍìÑÑÍÉÍé*!å! åÍ(ÑÑ!å! åÍ(ÑÑÉÍé*!Àå*<2åͨÑÑ"@2!"B3*@2ÉrþÿÍé**F3#"F3*@2å!På!ì1åÍiÑÑÑÂê!"B3*B3|µÂV!ì1ë!9s#rÃå installation (Y/N) ? : $ $ Error...Command tail is not 5 characters long. $ Error...Bios is not 2.249. Check ZCPR length. $syslib <12345vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvENDction db 0 ; force out data segment end ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÍPÑÑ! å!9å~#fo+ëás#rëÑs! 9å~#fo#ëás#rÃs ! 9^Õ!9å~#fo#ëás#rë+Ñs! 9å~#fo+ëás#rÃs Í?,É d d † É - ÃA !ê,åÍóÑë!9s! Íç+ʪ !9^! Íç+ʪ !9^#Vë^ëÉÉÍé*!9å!9^#VÕ!8åÍ ÑÑÑÉÍé*! 9^#Vë"Ú.!9å!9^#VÕ!ÿ åÍ ÑÑÑDM!å*Ú.Ñs`iÉ!9å~#fo#ëás#r!9^#Vë^! Íç+ÊH!9^#Vë^!^ÍØ+ÊE!å! 9^#VëÑsÃ!å! 9^#VëÑs*B3ÉÍé**@2åÍÑ!"B3ÉÍé*! 9^#VÕÍY*Ñ#å!åÍ"%ÑÑå*°,)H3Ñs#rz³Ê¿! 9^#VÕ*°,)H3^#VÕ͹)ÑÑ*°,#"°,É!ÈåÍ« ÑÉ *** Internal error: out of memory ÿÿÍé*! å!9^#VÕ!åååÍé*! 9^#VÕ*Ú.#"Ú.+Ñs!ÿͰ+É&ÿÍé*!æ9N#F!è9^#VÕÝá!ë!Þ9s#r!ê9^#V!à9s#rÝåá#åÝá+^Õýáz³Êëýåá%ÍØ+ÊÄ!ë!9s!ë!Ü9s#r! ë!Ú9s#r!'ë!Ø9s#rÝn&åýá-ÍØ+Êà !ë!Ü9s#rÝåá#åÝá+^Õýáýåá0ÍØ+Êè !0ë!Ú9s#rÝåá#åÝá+^Õýáýåá*ÍØ+Ê" !à9å~#fo##ë9^#VÕÍr*ÑÑÑ!|µÊ‰!ê,åÍóÑë!9s!9^! ÍØ+ÂB!9^! ÍØ+ÊM! 9^#Vë^ëÉ!9~#¶Ê†!9å~#fo+ëás#r!9^Õͼ*Ñå!9å~#fo#ëás#rë+Ñsà ÉÍé*! 9å~#fo+ëás#rë#|µÊ¶!õ,å!åÍPÑÑÃ�É^ÿÍé*!®9^#VÕ͘Ñ!På! 9åÍ ÑÑåÍÒ*Ñë!9s#rÕ!²9^#VÕÍ:*ÑÑÂ!õ,å!åÍPÿÍé*! å! å!å!å!ßåÍ« ë! 9ù! 9^#V!Í,ÊJ!9^#Vë##^#Vë"<2Ã[!åÍ« Ñ!"åÍ« ÑÉ! 9^#V!Í,Ê€!9^#V!^#Vë">2Æ!œ,">2!å!å!B2åÍr*ÑÑÑÍ ¬*<2å!3åÍ« ÑÑÉÍM!å*°,)H3Ñs#r:‚2o&ÍØ+ÊÛ!H3å*>2åÍËÑÑ!ÉInstall Utility -- version %d.%d%ååás#rë++^#V!Ö9s#rÝåá#åÝá+^ÕýáÃl !ë!Ö9s#rÝåá#åÝá+^Õýá!S.#^!Ͱ+Êl !Ö9^#V! ÍY+ýåÑÐÿë!Ö9s#rÃ- ýåá.ÍØ+Ê Ýåá#åÝá+^Õýá!*ÍØ+ʽ !à9å~#fo##ëás#rë++^#V!Ø9s#rÝåá#åÝá+^Õýáà !ë!Ø9s#rÃÙ Ýåá#åÝá+^ÕýáýåáS.#^!Ͱ+Ê !Ø9^#V! ÍY+ýåÑÐÑÑ!²9^#VÕÍ« ÑÃÉ!9^#VëÉ®ÿÍé*!På! 9åÍ ÑÑë!X9s#r!X9^#VÕÍÒ*ÑyÍØ+ÊO!É!X9^#VÕÍÒ*ÑnÍØ+Êh!É!õ,å!åÍPÑÑ!^9^#VÕÍ« Ñà ÉÍé*! 9^#VÕ͘ÑÉÍé*! 9^#Vë~#¶ÊÊ! 9å~#fo##ëás#rë++^#VÕÍ« ÑÞÉzÿÍé*!å!€å!9åÍr*ÑÑÑ!”9^#V!9s#rÃ!9å~#fo##c%c Invoke INSTALL as follows - INSTALL FILENAME Unable to open file %s Íé*ÍÂÂú:ì1o&ÃÇ!î1åÍûÑÃî!ñ1å!î1åÍÑÑÃî!î1åÍoÑÃî!î1åÍïÑÃî!î1åÍ ÑÃî!ô1å!ñ1å!î1åÍ'ÑÑÑÃî!î1åÍoÑÃîÍdÃîÃîÍ?,c“dbf}ižqmr¾sˆw³Ä*B3|µÊ÷ÉÃSÉÍéåå     ÿë!Ø9s#rÃË !ë!Ô9s#rýåálÍØ+Ê@ Ýåá#åÝá+^Õýá!ë!Ô9s#rÃZ ýåáhÍØ+ÊZ Ýåá#åÝá+^ÕýáýåáÃ7!ë!Ò9s#rÕ ! ë!Ò9s#rÕ !ë!Ò9s#rÕ !öÿë!Ò9s#r!Ô9^#VÕ!9å!Ö9^#VÕ!æ9^#VÕÍôë!9ù!Ð9s#r!Ô9^#V!à9å~#foëás#rÃV!à9å~#fo##ëás#rë++^#V!Ð9s#rÕÍY*Ñë!Ô!€å!9^#VÕÍŽ*ÑÑÑÅ!"åÍ(ÑÑ"4|µÊ+"!ÿÿÉ!$ ^!9~#foͰ+ë!$ s{³Â]"`i!å~#fo#ëás#r!ÉÍé*!9N#F!9^#VÕÝáÝåá+åÝá#|µÊ¶"`i^! ÍØ+Ê "! å!åÍ(ÑÑ`i#DM+^Õ!åÍ(ÑÑÃx"!9^#VëÉÍé*!9N#F!9^#VÕÝáÝåá+åÝá#|µÊý"`i#DM+^Õ!9^#VÕÍ(ÑÑÃÖ"!å!9^#V!Ñs#r!9^#V!Ͱ+Ê&ÅÍ#ÑÍu)!ÉÍé*! 9N#Fͼ#Å!åÍ(ÑÑ!ë!% s!ÉÍé*! 9^#Vë)))�-DM!9^#VÕ!9^#VÕ! ^#VÕ`i^ë)A.^#VëÍè*ÑÑÑÉüÿÍé*!DM!9^#VÕÝáÝn&&åÍ\)ÑÝåá$~·ÊÝn$&å!€ÑëÍ6,DMë!9~#foÍu,Êì!9^#VBKÅ!9^#VÕÝåÍÇÑÑÑÊÊ!¶åÝåÍ�ÑÑåýáÃ"!åÝå;ÑÑåýáýåáÿÿÍØ+Êh!Ñå!€å͹)ÑÑÝå!€åÍý)ÑÑ!óå!€åÍý)ÑÑ!€å! åÍ(ÑÑ! åÍõÑ÷`iå*¤/#"¤/+)è.Ñs#r`i#DM~·Ê·`i^! ÍØ+Â¥`i^! ÍØ+Ê´!å`i#DM+Ñs÷ÃÃ3!è.å*¤/åÍÑÑ!åÍõÑÉCan't open file for redirection: $Íé**å-Íèëás!ÿÿÉ! ^#V`is#rÝåáë! s#r`iå~#fo#ëás#rë+^!ÿͰ+ÉÍé*!õ,å!9^#VÕÍPÑÑÉÍé*! 9N#F!9^#VÕÝá`i ÍØ+ÊŠÝå! åÍ“ÑÑÿÿÍØ+ÊŠ!ÿÿÉÝåÅÍ“ÑÑÉÍé*!9N#F! ^#VÕ`i^#VáÍf,ÊÉ! 9^#V!ÿͰ+åÅÍ�ÑÑÉ! 9^#VÕ`iå~#fo#ëás#rë+Ñs!ÿͰ+ÉÍé*!ê,DM`ic-ëÍt,Ê9s#rÃn!à9å~#fo##ëás#rë++^#VÕýáýåáå!9ë!Ò9s#rëÑsÃVÍ?,cdŠ o` sÛ un x| !!9ë!Ð9~#foÍ6,ë!Ô9s#r!Ô9^#V!Ø9~#foÍ,Ê‘!Ø9^#V!Ô9s#r!Ü9~#¶Êëí!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍ,Êë!Ú9^#VÕ`iÍè*ÑÿÿÍØ+Êè!ÿÿÉÞ!ë!Ò9s#rÃ!Ò9å~#9^#VëÉÍé*! 9N#FÅ!#åÍ(ÑÑ`i!~#¶Â6#!ë!$ s!É`i!å~#fo+ëás#rÅÍÉ#ÑÊS#!ÿÿÉ!åÝáÝåá€ëÍu,ʆ#Ýåá+åÝá^!Íç+ʃ#Ýåá#åÝáÆ#ÃY#Ýåá€ÿë!$ s!€ÍØ+ʸ#`i!å~#fo#ëás#r!ë!$ s!ÉÍé*!"â1ÉÍé*! 9N#F*â1PYÍç+Âñ#!! ^#V*ä1Íç+Ê^$!€å!åÍ(ÑÑÅ!Íu)!É!9^#V`iÍ6,ëÍ›+ë! 9s#rz³Êo! 9^#VÕ!9^#V`iåÝåÍ|$ÑÑÑë!9s#rz³ÊoÍu)! 9^#V!9~#foÍ6,ëÍ‹+PYÉ! 9^#V!Í‹+PYDM`ië!9~#foÍt,Ê»!9^#V`iÍ6,å!9^#V`iåÝåÍÇÑÑÑÊ»Íu)`iÉÍu)!9^#VëÉÍé*! 9N#FÅÍÉ#ÑÊà!ÿÿÉ!9^#VÕ!9^#VÕ!$ ^!€åÍŽ*Ñ*!DM`i ëÍ,Ê `i#DM+åÍ#ÑÃ! 9~#¶ÊC!åÍ(ÑͰ+ÊC!GåÍ×$ÑÍãÉA:$$$.SUBÍé*!ýÿ"4!ÿÿÉÍé*!Écon:CON:lst:LST:prn:PRN:pun:PUN:rdr:RDR:Íé*!9^#VÕ!å!9^#VÕ;ÑÑÑÉüÿÍé*!�-åÝá!ë! 9s#rÃñÝåáåÝá! 9å~#fo#ëás#r! 9^#V! Í,Ê`i DMõÿåÍÑÃöÉÍé*! 9N#F!åÝá`i~·Êƒ! ^!Ͱ+ÊR!ÿÿåÅÍ�ÑÑåÝá! ^ÕÍ#ÑÝåÑÍÀ+åÝá! ^!Ͱ+ʃ! ^#VÕÍÛ%Ñ!ë! sÝåáÉÍé*! 9N#F!ë"å-! ^!Ͱ+Ê·!ÿÿÉ! ^!Ͱ+Ê#! ^#VÕ`i^#VáÍ6,åÝáÝå! ^#VÕ! ^ÕÍQ ÑÑÑÿÿÍØ+Ê#!åfo#ëás#r!Ð9^#Vë~·ÊU!Ò9^#V!Ø9~#foÍ,ÊU!Ð9å~#fo#ëás#rë+^Õ`iÍè*ÑÿÿÍØ+ÊR!ÿÿÉÃù!Ò9^#V!Þ9å~#foëás#r!Ü9~#¶ÂÁÇ!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍ,ÊÁ! å`iÍè*ÑÿÿÍØ+ʾ!ÿÿÉÃxÃèýå`iÍè*ÑÿÿÍØ+ÊÙ!ÿÿÉ!Þ9å~#fo#ëás#rÃP !Þ9^#VëÉÅ!"¹,"»,! !åÍ(ÑÑ"4ÍØ+ $*4ÍØ+ÊB$!"4!å!€å!€åÍr*ÑÑÑ!"â1!É*4|µÊN$!ÿÿÉ`i"â1!! ^#Vë"ä1!ÉÍé*! 9^#Vë)))�-^ëÉÍ(+!É$Í(+"Å*Ö.ë!€"Ö.ÍÁÅ*Ô.ëÍ·ÂÂ$*Ô.!4´$#4*Ø.+"Ø.}´ÂŠ$ÁÉþÊÒ$þÊÒ$o&"4Á*Ø.ÉØÿÍé*!9å!69^#VÕÍ/(ÑÑDMÅÍ\)Ñ!9å!åÍÑÑ!$ ^!9~#foͰ+ë!$ s{³Â4`i!å~#fo#ëás#r!ÉÍé*:ß0·Â¨!ÿ}2Þ0!}2à0}2ß0!Þ0å! åÍ(ÑÑ! å!åÍ(ÑÑ:à0o&ÍØ+Ê‹!}2ß0!É:I.oå:ß0o#}2ß0&Þ0#Ñs!"à1:ß0o&DMë!9~#foÍ,ÊÈ!9^#VBKÅ!9^#VÕ*à1Þ0åÍŽ*ÑÑÑ`ië*à1"à1`ië:ß0oëÍ6,}2ß0`iÉÍéÝnÝfQÍØ+ÂÃØ!øÿ"4!ÿÿÉ!ÿ-DMÃ-`iDM`i~#¶ÊN!9^#VÕ`i^#VÕÍ�)ÑÑÊNÃ%! ^#VÕýá!9^#V!Ͱ+#ë!9s#r!9^#V!Ͱ+Ê“ýnÝu}µÂ“!öÿ"4!ÿÿÉ!9^#V!Ͱ+ʸýnÝu}µÂ¸!öÿ"4!ÿÿÉ! ^#VÝsÝrýnÝuýnÝu!aÝuÝtÅÝå!9^#VÕ!9^#VÕ!9^#VÕýnýfÍè*ë!`iÑånÍÀ+ëás!ë`is#r! s#r!ÿÿÉ!9^#V!ÿÿÍØ+ÊZ!ûÿå`iÑånͰ+ëás!ë`is#r! s#r!É`i~#¶ÂkÅÍGÑ! ^#V!ÍØ+ʤ!å!9å! ^ÕÍQ ÑÑÑÿÿÍØ+Âü!9^#VëÉ! ^#V`is#r! ^#VÕ! ^#Váë! s#r!å`iÑånÍÀ+ëás!9^#VÕ`iå~#fo#ëás#rë+Ñs!ÿͰ+É9~2·,G+V+^+ë6"µ,ë+N+V+^!¹,w#Ây·òL/žw#Â@ÃMõ!¼,>õ^ë)|‘Úag,ÂYës+ñ=ÂTZ!˜~*µ,+"µ,w!¹,¯¾ÂM#ƒ*µ,ñò–+6-ÁÉ0123456789ABCDEFÍé*ÍþDM|µÂ¼!ÉÅ!9^#VÕ!9^#VÕÍÔÑÑÑÉÍé*!9^#VÕÍÑ!½,DMÃö`iDMx±Â!úÿ"(ÑÑDMÍu)`iÿÍØ+Ê%!ÿÿ"4!ÿÿÉ!ÉÍé*! 9^#V!9~#foÍY+DMÅ̓&ÑåÝá|µÊ]%!å!9^#VÕÝåÍr*ÑÑÑÝåáÉþÿÍé*!9N#F!üÿ ^#Vë+))ë!9s#rÅÍÛ%Ñ!9^#VÕ̓&ÑåÝá|µÊ×%ÝåáPYÍç+Ê×%!9^#V!9~#foÍu,ÊÅ%!9^#VëÃÍ%!9^#VëåÝåÅÍŽ*ÑÑÑÝåáÉÍé*! 9^#V!üÿåÝáÝåá##~#¶Êþ%!ÿÿÉ!æ*!9N#F!åÝáà Ýåá#åÝáÝåáë!9~#foÍ,ÊM ! 9^#VÕÍ(Ñå`i#DM+Ñs!ÍØ+ÂM à ÝåáÉÍé*! 9^#Vë)))�-DM!9^#VÕ!9^#VÕ! ^#VÕ! ^ë)J.^#VëÍè*ÑÑÑÉüÿÍé*!DM!9^#VÕÝáÝn&&åÍ\)ÑÝåá$~·Ê!Ýn$&å!€ÑëÍ6,DMë!9~#foÍu,Êë !9^#VBKÅ!9^#VÕÝåÍÓ!ÑÑÑÊ!Í 9ù!Í,Ê!QÝuÝt!ÿÿÉ! 9^#VëÉÍé*! 9^#V!Í,ÂI! 9^#V! Í,ÊS!ýÿ"4!ÿÿÉ! 9^#Vë)))�-DM! ^#VÕ! ^#VëÍè*Ñë! 9s#r!ë! s! s! s`is!Që! s#r! 9^#VëÉþÿÍé*!¦/DMÃÀ`i'DM`iÞ0ëÍt,ÊÚ`i%~·Êäø!ùÿ"4!ÿÿÉÅ!9^#VÕÍ/(ÑÑë!9s#r!ÿÿÍØ+Íé*!ê,DM`i~·Ê-`i DMc-ëÍf,Ê*!Éà !ë`is#r! s#r! s#r`iÉþÿÍé*!9N#F! ^ÕÍb$ÑÊ}!ë! s#r`ië! s#rÉ!å̓&Ñë!9s#rz³Êc!ë! s#r!å`iÑånÍÀ+ëás!9^#V! s#rÉ!Ú.:s# y°ÂÇ*ùø"4*k-"4Íôm-ÍÍÃãÍé*!å!$4!É!9^#VÕÅÍ�)ÑÑÊÃî! ^#VÕ!9^#VÕ;ÑÑåÝáÿÿÍØ+Ê>!ÉÝåáå!9^#V!Ñs!å!9^#V!Ñs!9^#VëÉÍé*! 9^#VÕÝá!9å~#fo+ëás#r!Í,ÊÃ!9^#VÕÍóÑDMÿÿÍç+ÊÃ`iåÝåá#åÝá+Ñs`i ÍØ+ÂÃÃy!Ýu`iÿÿÍØ+ÊêÝåáë! 9~#foÍØ+Êê!É! 9^#VëÉÍé*! 9N#F1DMÃ&! ^#VBK`iÝåÑëÍu,Â.&! ^#VÕÝåáÑëÍu,Êb&! ^#VÕ`iÑëÍf,Ê_&ÝåáPYëÍu,Âb&! ^#VÕÝåáÑëÍt,Âb&Ã&! ^#VÝsÝrÝåáë! s#r`i"ê1!ÉþÿÍé*!9^#Vë###ëÍ›+#ë!9s#r*ê1|µÂµ&!æ1"è1"ê1!æ1åÝá*è1DMÃÑ&`iåÝá! ^#VBK! ^#VÕ`iÑÍç+Ê-'! ^#VÕ`i^#Vë))PYÑÍØ+Ê-'! u)!ÿÿÉ!9^#V`iÍ6,ëÍ›+ë! 9s#rz³Ê{!! 9^#VÕ!9^#V`iåÝåÍ„$ÑÑÑë!9s#rz³Ê{!Íu)! 9^#V!9~#foÍ6,ëÍ‹+PYDM|µÂx!!ÿÿÉ`iÉ! 9^#V!Í‹+PYDM`ië!9~#foÍt,ÊÇ!!9^#V`iÍ6,å!9^#V`iåÝåÍÓ!ÑÑÑÊÇ!Íu)`iÉÍu)!9^#VëÉÍé*! 9N#FÅÍÉ#ÑëÍ,Êó!!ÿÿÉ!9^#VÕ!$ ^Ê !úÿ"4!ÿÿÉ!9^#V!ÿÍØ+Ê(ÍM)ë!9s#r!9^#VÕÍ\)Ñ!9^#V!Ͱ+ÊNÅ!åÍ(ÑÑÅ!åÍ(ÑÑÿÍØ+Ê”!9^#V!Ͱ+Ê„Å!åÍ(ÑÑÿÍØ+Ê‘!ÿÿ"4Íu)!ÿÿÉ÷!9^#V!Ͱ+ÍØ+Ê·!ûÿ"4Íu)!ÿÿÉ!ë!! s#r!# s!$ s!9^#V!& s`iå!9^#V!Ñs#r!9^#V!Ͱ+#ë!% s!-/å!�åÍŽ*ÑÑÑ!å:€o&Ͱ+$/Ñs!Ð"è.!$/DM!"¤/*¤/ëÍ,ʺ`i^! ÍØ+Â\`i^! ÍØ+Êd`i#DMÃ@`i~·Êº`i^!>ÍØ+Ê‚!åýáÖ`i^!<ÍØ+Êk!åýá`i#DM^! ÍØ+µ`i^! ÍØ+ʸÖ`iåÝá`i#DM~·Êõ`i^! ÍØ+Âã`i^! ÍØ+Êò!å`i#DM+ÑsÃõýýåÍ#Ñýåá|µÅÍ^ÑåÝáÿÿÍç+ÊZ!ÝåÑͰ+åÝáÃG`iå~#fo+ëás#r!å`iÑånÍÀ+ëás!ÿÿÉÃÍ?,D D ZÝåáÉÍé*! 9N#F! ^#VÕ`i^#VáÍf,Ê! ^!Ͱ+Ê“!ÿÿÉ!ûÿå`iÑånͰ+ëás`i~#¶Â·ÅÍGÑ! ^#VÕ! ^#VÕ! ^ÕÍTÑÑÑåÝáëÍø+ÊÝåá|µÂð!Ãó!å`iÑånÍÀ+     ^#Vë^#VÕ`iÑå~#foëás#r! ^#Vë##^#V! s#rÃÑ&`i^#V!9~#foÍf,ÊÉ'`i^#V!9~#foÍØ+Êc'! ^#VÝsÝrñ'!9^#Vë))PY"ê1*ê1ÝuÝt! ^#VÕ*ê1##Ñs#r`i^#V!9~#foÍ6,å*ê1Ñs#r!9^#V`is#rÝåá"ê1!ë! s#r`iÉ`iæ1ÍØ+Ê(!åÍ)ÑDMÿÿÍØ+Êë'!É!ë`is#r!ë! s#r`4???????????aaaQQQQQQQQaaaaªkiåÍÛ%Ñ!æ1DMÃÃ&ÉÍ(+Í(ëÉÍ(+*Ô.DM*Ö.ëÍëo¯gÉÅ!9N#F#^#V þ ÊF(þ ÂJ(Ã;(kb6#> 6 #=ÂQ(>6#=ÂZ(ëÅ Í)Ú{(Ö0_z‡‡‡‚‚ƒWÃe(þ/Â…(ñÈ(Áÿ þ: >³( æþAÚî(þ[Ò¤(Ö@ð(þaÚî(þ{Òî(Ö`w# þ.ÊÎ(·Êç(ʶ(Íõ(w#÷({…o|Îg ·Êç(Íõ(w#ÂØ(&jz·ÁÉ!ÿÿ|·ÁÉþ*Âþ( >?Éþaç-pç-uí-zí-í-„í-‰í-Ží-“ó-˜ó-ù-Q™8û Q˜ ¿"¿" 00000 �@@@@@@@@@@@@@@@ @@@@@@@ @@@@@ @@@@ Øþ{ÐÖ Éþ0Øþ:Ò)·É7É!9^#V*k-Ú7)ë*4}“|šÚ7)*k-ë"k-ë|µÉ!ÿÿ¯=É!9}–_|#žWë"4ÉÍ(+ ÿÍo&·ÉÍ(+ ÿÍ2R.:Ô.þÿÈ _ÃÍ(+ :R._Ã!9ÅÿÕ)!9ÅF+N+V+^+~+ngëx±Ê³)–³)·Ê³)# Þ)ÁoŸgµÉ!9V+^+~+ngåw·ÊÑ)#ÃÆ)á|µÉ!9ÅF+N+V+^+~+ngåx±Êø)w·Êó)# Ãç)áÁ|µÉ!åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå9ÅÿÃ*!9ÅF+N+V+^+~+ng対Ê#*#Ã*x±Ê4*w·Ê4*# Ã#*wáÁ|µÉ!9^#V#në~»ÊV*·ÊQ*#ÃD*!¯É|µÉ!9~#fo¯¾Ên*#Ãe*ë}´ÉÅ!9^#V#N#F#nëx±ÊŒ*s# Ã�*ÁÉÅ! 9F+N+V+^+~+ngºÒ¸*®*}»Ò¸*ʺ* ë ë+í¸ÁÉí°ÁÉ!9~þaÚÍ*þ{ÒÍ*Ö o&·É!9~þAÚã*þ[Òã*Æ o&·ÉéáÅDM!9ë9ùÕÝåýå`iÍè*ýáåÝáëáùÁë|µÉáÅDM!9ë9ùÕ!+å`ié~# x±Â+ÉÑ!9¯Æê7+ÝåýåÅÕÔ.~#Â>+!K+ãéÁ¯ÆêV+ýáÝá|µÉÅDM!>)ë)ëÒi+ =Âa+Á}´Éë{æ_ʘ+|´ò£+|7g}oÂ~+´Éë{æ_ʘ+)“+}´Éë{æ_ʘ+|·g}o£+´É|¢g}£o´É|/g}/o´É|²g}³o´É|ªg}«o´É|µÊñ+Ãâ+}“Ââ+|’Êñ+!¯É}“Âñ+|’Êâ+!}´Éë|ªú ,}“|åš?>Îo&Ézæo&Éë|ªú$,}“|š>Îo&É|æo&É}/o|/g#}´Éë}“o|šgµÉëáÅBK^#Vz·ú_,#y¾ÊY,###ÃG,#x¾ÂT,#~#foÁéë}“|š>?Îo&Éë}“|š>Îo&Él install.txt$$$.sub99rr+ww+a a+ xx+      ¦ÍÍñÍÍ€Í8ÍàÃ’Í2È2Ç!€V!�zþÊt~þ Â<#ðþAúiþHòiõ ½Íñ_õÍ ÔÍñÖA2ÇÍYÉ ×ÍÃ’ ÷ÍÍYÉÍ"ÃåÝ*ÃÝNÝFíCÏÝ*ÃÝ~þ2ÑÝáÝFÅÝnÝf"Ò#Á>)ü2ÂÍË+"À#|µÀ!Â5É:ÑþÂÙ4Ãêþ ÂäNÃêþ À`: ÎÉ*"~*þÂ!Œ6Ã#:ìþ Â!�6Ã#!œ6þ É!ï6>!ï¾ÚhÍÒJ*ï&ñ 6 Ãa*ï&ñ :·wÍqOÍŽ2·!ï4Â,!ì6!ð6!î6:ìÖ Ÿ!ð¦Òç!î6+6>!í–Ÿ/#¦ÒÑ*í&ñ å*ì&Í’ å*í&Á Á ¾ÊÊ!î6ÃÎ!í4Ã�:îÒà!ð6Ãä!ì4Ãw:ðÒó!ì6ÿ:ìÉ:·Ö]ÆÿŸõ6fÍn€Í^!Ä6>!ľڠ*Ä&Ó) >Í\µÊ» *Ä&Ó) >ÍÝÕðÿÍìëá+s#r*Ä&) ^#V!ÍóÕ *Ä&Íß  Áq#p *Ä&Íß  >Í\µÂ» *Ä&Ó) ^#V!ÍóÕ *Ä&Íß  Áq#p!Ä4 !"Ñ*È"Ó!"ˆ͉2Ðþ:Êí :ÐþÂê û ÃÔ !Â6͆ 2Á͆ õ͆ _|OÍÝ*’}OÍÝÉ!•p+q*”ë ÍÉ!—p+qÍ­*–DMÍÉ!žp+q«Í*�DMͳÍ*šDMÍøͱÉÃÍ1É!¡p+q* ëÍÉ!£p+q*¢ëÍ2ŸÉ!¥p+q*¤ëÍ2ŸÉ!§p+q*¦ëÍ2ŸÉÍ2ŸÉ!©p+q*¨ëÍÉ!«p+q*ªëÍÉ!­p+q*¬ëÍÉ!¯p+q*®ëÍ2ŸÉ!±p+q*°ëå"�*$"„*'"�*-"Š*"‡* "�É@Í:Ñþ ÂX:ÐË?2Ð:ÏË2ÏíKËÍ}ÍÀíKÍÍ€̓ÍIí[ÉíSÉ*Ï·íR°:Ñþ ˜*Ë|µÂ˜*Ï)"ÏÝ*ËÝ#Ý"ËíSÉ.Í!À5>ÿ¾ÂX#öÉ*Å^#Vz³ÂÕíKÉíCÍÉíKÉ͉"ÍÉ€!À>¶Â÷#ù #ÍÉ >Í:·Ö ÆÿŸÁH¡ÒÎͳ:·þAÂ8ÍB å*ì&Íß  Áq#pÃË:·þMÂuÍB å*ì&Íß  Áq#p:ì< *ì&õÍß ÁHqÃË:·þX›ÍB å*ì&Íß  Áq#pÃË:·þBÂÅÍB))))å*ì&Í’  Áq#pÃËÍ=ͱÃ÷Éi`N#F�oˆgÉë_ë…oŒgÉ_{¥oz¤gÉDM!>õ)ë—)ëÁHÍë*Ñ"š͆ 2Ãþ û :Ãþ„Â+ !Ã6ƒÃ8 :ÃþƒÂ8 !Ã6„>�!ÖŸõ~Ö…ŸÁH¡Ò{ !Ä6:ÃÖ‚!ľÚx *Ä&Ó) šÍÑë+s#r!Ä4ÂP Í• :ÃÖÖŸžšõÍDŸÁH¡õ:ÃÖÖŸÁH±Ò¸ žšÍDå*ÓÁ ë+s#rÍ• ÃÔ Í MÍ*ÎDMÍø\Í:å ÉÉ!¹q:¹þ Ò�> É:¹ÖaþÒ¯:¹æ_2¹:¹ÉÍqOÍŽ2·:·þ ÂÒÍqOÍŽ2·ýÉ!ºq:ºÖ0O> ¹Úé:ºÖ0É:ºÖAO>¹Òø>ÿÉ:ºÖAÆ Éå€!ÀÍÉÕÅå ÍŒáÁ~Í.#Ñ Åå ÔÍáÁÝÉõÍ7ñæþ ÚCÆ7ÃEÆ0OÃŒ€!À@®w#ùÉ:Ç_Í:ÇO͆|µÊr"ÅÉ gÍÃ’ÃÃÃÃÃÃà �Í:ÈO͆ÍDISKCHK version 1.4b $checksumming on drive $ $Error---invalid drive chosen $checksumm�‘o|˜gÒ  ñ=ÂúÉDM!>)ë)ëÒ! =ÂÉ_{µoz´gÉ^#Vë) Â4É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉCODE DATA ÿÿEXTRAÿÿSTACKX1 X2 X3 X4 8080 NZERONHEAD€Í€Í^\ÍÓþÊ ÍWÉ!èq*šv ÍTÒ8 ØÍͱ*šë*˜:èwÉ*šv ë!Í_Ÿõ:�/ÁH¡Òt *šë*˜6*š#"šÃE ÉÍ*ÈDMÍøÍ*šDMÍøÍÍÖ šÈÍDÒÏ *È}æþ´ ÍÖ *Èë*˜NÍÝ*È#"È Í�Ú Í­ͱÉÍ­*ÈDMÍø:Í� Í�É*ãDMÍ^\ÍÓþÊ Í!¼s+q*»&Í4:¼Í&É!½6>!½¾Ú?*½&¦ :·¾Â8>É!½4Â>É!"¾Íq2·ÍÚ…*·MÍÓ2·þÿÂjÍ=Ã|*¾))))å*·&Á "¾Íq2·ÃN*¾É*ˆ#"ˆÿÍ=Ú¢*ˆ‡ ~É!"ˆÿ!ˆÍ_Ú ÃÇ€*ˆ"ˆÒ¨à fÍÃ2ÀþÂê€Å*ˆ‡ DM€ÍÃ:ÀþÊøÎÍ1*ˆ‡ 61�ͺÍ0102821100654321 COPYRIGHT (C) 1981, DIGITAL RESEARCH [], ERROR: $, LOAD ADDRESS $DISK WRITE$DISK READ$INSUFFICIENT MEMORY TO CREATE CMD FILE $ing on currently logged in drive $ Disk suitable for use. $ BAD DISK---DO NOT USE. CheckSum is: $Error--Selected disk does not exist $DONE $Error---Disk too full to contain checksum $ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååW!å4É!v"ã*ãå*Ìv ëáÍ=Ú4 Íì €*ã"ãà :ÅÚ? Íì É*ãå*Ìv #ë*ãÍ="šëÍÉ͉OÍÓ2éþÿÊm :éÉ*ÍÍu ÉÍZ ‡‡‡‡õÍZ ÁH±ÉÍw 2ê!†w:êÉ:ÃÖÖŸõ>„!ÖŸÁH±Òà ͆ õ͆ _ÁHÍ))))"ÑÃó :Á=2ÁþÿÊà ͆ OÍ *š#"šÃà ÌšÍDÒó *š+"ÌÍw !†þÊ !ÿ"ˆ÷!"ˆ:‡É!"Ê"Ì"Î}2å!‡62|:œÒ8!|6!Å6!"Ñ}2Ä>!ľÚg*Ä&Ó) >w#6!Ä4ÂGÍE !"È!"š͉2Ðþ:Ê�:ÐþÂŒãÃv!Â6͆ 2ÁÎÍÜë+s#r͆ õ͆ _ÁHÍå*ÑÁ "È"š>ÊÍQµÂÐ*š"Ê͆ 2ÃO>�‘Ÿõ:ÃÖ…ŸÁH¡Òü:ŒÚöÍ ÃùÍ• à:ÃþLOAD ADDRESS $ERROR ADDRESS $BYTES READ:$INVALID HEX DIGIT$CHECK SUM ERROR $BYTES READ $RECORDS WRITTEN $H86CANNOT OPEN SOURCE$CMDNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$ÍÉ!9"�!vù!"š!v"˜!Œ6#6!œ6!"ˆ\Å!fÍmÅoÍfÍBAD DISK---DO NOT USE. CheckSum is: $Error--Selected disk does not exist $DONE $Error---Disk too full to contain checksum $å<ÍÍu É!Å6:Ãþ„ !Ã6ƒÃ+ :ÃþƒÂ+ !Ã6„:ÃÖ�O!Ó :ÁšåÍÜ+"æëáÍ_Ú‘ >æÍQµÂ` !"æ:ÃÖ�O!Ó å*æëás#r:ÃÖ€õ:ÃÖ�o& Íß ÁHqÉ!"Š€ ~2·ͳ*Š€ ~2·þ ʽ *Š#"Šã Éͳ:·þ ÂÊ ÉÍ'þÿÂÕ Í=:ìþÒþ :·Ö]ÖŸõ:·Ö ÖŸÁH±Òø Í=Í÷Ã#:ì�ÂÍ• !ß6à:ÃÖÖŸžšõÍDŸÁH¡—õÍDŸ/ÁH¡õ:ÃÖÖŸÁH±ÒX—šÍDë+s#rÍ• !ß6:ÃÖÖŸžšõÍDŸ/ÁH¡Ò !Å6:ÁšÍÜë*žÍ=+"æÕÍTÒ *æ"Õ!è6ÃvÍ *š+ðÿÍì"È*Ìë!Íóë"à>äÍQµÂá*Ìë!Íóë"ä*È"Ì:ÅÚñþ ÍE !Å6!r6!†n:ŸþÿÂqÍ1„ÅeÍ\ͳ\Íã\Ín:ŸþÿÂ?‡Í1Ã\Í’ ; Í\Í�:ŸþÿÂ\ŸÍ1Í­ͱÉ:Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2Ž2ŽÉ!�q*�&ëÍÉ Í� Í�É!�q> !�¾ÒÓ:�ÆAÖ OÍ�ÃÜ:�Æ0OÍ�É!‘q:‘æøO͸:‘æO͸É!“p+q*’å     å`þ¢Wë™ 4þÀ¢5Æ7Æ6Æ4]ÃU‹ì 4þÀXwŠX·Æ‡ÎþXuè»m‚?$��u2ÆX€>Xw& X´‰Æ»mŠ��,A¢Y<s ´‰ÃƇÎþXuÓ€>e u¹¾× ¿eüò¤¸€Pè‰ý¸\Pè ý€>èÿu¸Û Pèëü°$Pè±ü¸ PèÎüèw°¢8¢9¢7¢|ÇÈ¢X X<w´‰ÃƇ:è� ]ÃU‹ì‹F1Ò÷v‰¢ Òu‹Fë‹F‰F¡¢‰FëÝ]ÂU‹ìÿvÿ6€è ¸ÂPè@ ÿvÿ6‚è ÿvè@ ]ÂU‹ì°;Pè¶ è? ÿvèk °:Pè§ è0 ÿvèÄ è ]ÂU‹ìèC °;Pè‹ è ¸‹ Pè§ èù è- ¸± Pèš ¸¸ PèÚ èô÷¸¼ Pèà ¸Ò Pè‚  çÐØs°:PèO èŰ€Pè× ¸Ù Pè¼ ÆÆ Æ<wi´‰ÃŠ�©ÐÙsW¹ê QPè^  çÐØs°:ÇÊëC�>ÊuÇÊë3�>ÊuÇÊë#�>Ê uÇÊë�>Ê@uÇÊëé®ë%€>Äu �>Êvƒ>ˆt勈Ñã¡Ê;‡èwÖëZ€>ÄuU÷ÊuvÇ–¡Ê£”¡”HˆàÐÀöÐÐØs_‹ˆÑ㋇ò)”¡–ÐØs¸òPè‡ Ç”ëΡ–Ñè €£–ëÁë,€>Äu%¡Ê% À°ÿu@‹ÊP;Œ°ÿw@Y ÁÐØsèÏýŠÄyyÛÛœXúŒÙŽÑ�&€P�è× +É‹ÑÍàU‹ì‹V‹NÍà]Â0102821100654321å ƇB þXuå»Ƈ:$¸® Pèšüè]þ]ÃU‹ìèþ€>H u ÆGNÆHo¸DPèwü]ÃU‹ì 8ÐØr3èìýÆ8¸EPè‡ýÿvèVü 4*^¢ZþZt° Pè üëò°?Pèü]ÂU‹ì‚~tÿvè…]ÂU‹ì 4:5rèØý 9ÐØsí°]Ê4·Š‡é¢þ4]ÃU‹ì°¢ƒ¢^ ]ÐØsÆ]ëÆ\‚>\uZ€>[ t‚>[uè�ÿ¢[ë4èPè 舸î Pÿ6ÆèC ¸ò Pèz ¸ÿ Pÿ6Æè1  çÐØs°:Pèåè[¸ Pÿ6Æè ¸ PèM þÆu�¸ Pèé ¸ Pè) èC÷¸ Pè/ ¸3 PèÑ ¸: Pè è+÷¸> PèÀ ¸F Pè °P¸[ Pès ]ÃU‹ì çÐØs¸… 븈 PèÞ ]ÃU‹ìÆÇ€>ÇwŠÇ·Æ‡©þÇuèÆ¨ 9öÐÐØré�Æ8è4 è ¸o Pè¶õ€>\ tn¸w PèMööÐÐØs¸|·Ñã¡Ê‰‡€è 8ÐØs]ÃþÄéãýèXüöÐÐØs]À>Äux‹‚Ї©öÐÐØs¸úPèû  ÐÐØs.èx°;PèÀ èI¸PèÜÿ6€è@¸PèÎÿ6‚è2èèM¸P¸"P詸8P¸<P螸XP¸\P蓸vP¸zPèˆ]À>Ä s ¸�PèŠ ]á„+‚@£˜ ÐÐØré3è÷  ÃöÐÐØs!°;Pè6 è¿ ¸—PèRÿ6€è¶¸�PèDè– ‹ˆAU‹ì€~ v ŠFA, ˆFë€F0ÿvèc ]ÂU‹ìŠF±ÒèPèÏÿŠF$PèÆÿ]ÂU‹ì‹FˆàPèÙÿ‹FPèÒÿ]ÂU‹ìŠF0Pè! ]ÂU‹ìŠF´¹d1Ò÷ñPèÝÿŠF´¹ 1Ò÷ñ1Ò÷ñRèÉÿŠF´¹ 1Ò÷ñRè¹ÿ]ÂU‹ì àÐØsè� ÿvè °,PèÉ Æ¤ ¤:^w-þÈ´‰ÃЇ_¢¥< s°#Pè¤ ÿ6¥è>ÿëÿ6¥è” þ¤uʰ:Pèˆ ÿ6\èdåÐØsÆ\ë&èäÐØsÆ\ë€>['u Æ\Æ[ëÆ\ 9ÐØs¨¸û Pèü런ÐØr馂>[t2 [Š^·ˆ‡_þÈ^€ûv€>\uÆ]]ø PèÃþÆ^ [¢„è ÿ¢[€>\u€>[$tè�öÐÐØs›]Ãë—€>\té €>[$uÆ[ëæè>öÐÐØsÝ€>[Ot€>[QuÆƒë €>[Huƃ‚>ƒtÆ[ë$€>„Bu ëXЦ·Ñã.ÿ§É è ¸„ Pè†õè÷ ¸� Pè|õë+èë ¸– Pèpõèˆöë¸� Pèdõè™÷ëèÐ è8þë� ¦ µ Á €>\ t¸¦ Pèâè+öégÿ]ÃU‹ìèóèÎèËè1ÿè¨èàèÓ]ÃU‹ì°PŠF´Pèô]ÂU‹ì° Pèäÿ° PèÞÿ]ÃU‹ì° Pÿvèäó]ÂU‹ìèÙÿÿvèäÿ]ÂU‹ì°PÿvèÄó¢è]ÂU‹ì°Pÿvè±ó¢è]ÂU‹ì°Pÿvèžó]ÂU‹ì°°Òà´÷&Š£”°;Pè èŒ ƒ>”t ÿ6”è°ë¸ÄPè°:Pèã èl ¸ÊPèÿèQ Ç”ƒ>ˆt‹ˆÓ&”¡”÷&ŠP¸ãPèóÿ6Œ¸üPèèÿ6ޏ PèÝ ÃöÐÐØsÇ”€ë�>ŠvÇ” ëÇ”@‹ˆAÓ&”ÿ6”¸0 P袋ˆA°Òà´P¸A Pè�ÿ6˜¸Q Pè„ÿ6�¸a Pèyƒ>†uƽ ½öÐÐØs ÿ6†¸r PèYèÇÿ€>\u°,Pèt ÿ6Êè)ÿ°HPèg  9ÐØs¸Pè� ]ÂU‹ì \:FuèÙ°ë°]ÂU‹ìƦÿ ¦þÀ¢¦´‰Æ‹^Š¢§Àu°ë  \:§uÛ°ë]ÂU‹ì€>\ °ÿt@ 9]ÃU‹ìèçÿöÐÐØsèxëò]ÃU‹ì çöÐÐØs¸P艰$Pè]]ÃU‹ì‚>¨u€>\u¡Ê¢¨ëƨ‚>¨t€>¨v¸&PèS è#¸.PèD¸5Pè„ å þ^ƃë€>„Duþ^ëÆƒ ÇÊÆ� �:^wvþÈ´‰ÃЇ_¢‚€t+¡ÌÑà£Ì €Ð袀ÐØså¡Ìʰÿr@ÐØsÕÆ\ëÎþ�u�‚>\u¸ Pè‹ýÆ\]Ãë.€>\u%€>['u èÅý¢[<'t]À>[ u ¸! PèZý]Ãë]ÃéQþ]ÃU‹ì [,0< °ÿvPÿvèŽó]ÂU‹ì°Pÿvè~ó]ÂU‹ì°Pÿvènó¢è]ÂU‹ì°Pÿvè[ó]ÂU‹ì°PÿvèKó]ÂU‹ìè@ÿÿvè[ÿèô]ÂU‹ì 9ÐØs°]áÈ@£È=ÿvDÇÈ�>Ès0‹È�‡éPè©ÿ¸\Pè_ÿÀt‹ÈƇéÇÈëÐ�È€ëÈÇÈè]ÃU‹ì‹ÈЇé¢S<uÆ9 S]ÃU‹ìÆT TþÈ¢T<ÿtA´‰Æ‹^Š¢U ¸… Pÿ6€èI¸‰ PèpèŠú¸� Pèvÿ6˜¸¢ PèÅ‹ˆÿ·¸´ PèÉ‹ˆÿ· ¸À P躡ˆ¢Å�>ŠvþÅ ÃÐØsŠÅ·ÿ·¸Ë ëÿ6’¸Ö P臡ŠHP¸å Pèh¡ŒHP¸ó Pè\¡–ˆàP¸ Pèb¡–P¸ PèW¡Ž¹1Ò÷ñP¸ Pè2ÿ6�¸ Pè'¸! Pÿ6€è„ ¸% Pè«  ½ÐØs°Pè ¸) Pè§ é²è®ù¸< Pèš ÇšÇÜÐØsè—ÿë°$Pè¸9Pè{ƹ ¹:¨v项WQþÈPè" çÐØs°:PèÖèr¸[P ¹þÈPèèZ¸Pè:¸_Pè2èQ¸Pè)è?¸Pè¸oPèè6¸|P趸„P ¹þÈP踈Pèùè¸�P ¹þÈPè«è¸¡P ¹þÈP蛸¥PèÒþ¹téSÿ]ÃU‹ì¸ºPèk ]ÃU‹ìÆÅ€>Å wŠÅ·Æ‡ºþÅuèÆÄÆ\å@]ÃU‹ìèéÿŠ[€éAP€ù°ÿv@Y Á]ÃU‹ì [,A<°ÿv@]ÃU‹ìè½ÿPèåÿY Á]ÃU‹ì¸£Ê¢[¢\¢]]ÃU‹ì°´PPè8í]ÃU‹ì¹¾\¿ˆüò¤¹¾. ¿‘üò¤‚>lt l¢ˆ¸ˆPèYù¸ˆPè‚ù€>èÿu¸2 Pè§ù°¢¨´£†¢©Æ6]ÃU‹ì¡†±ÓèH¢«<ÿu]Ãdžƪ ª:«w*‹†�‡ªPèOù¸ˆPèùÀt¸L Pè< uÆU0 UþÀŠTµ‰Î‹^ˆ<9v T´‰Æ‹^Æ0ëºÆTë³]ÂU‹ì 7ÐØs1¸:Pèkþ‚>5t#ÆV 5þÈ8VwŠV·ÿ·éèþþVuâÆ7]ÃU‹ìè¸ÿÆ4ÿÆ5èÓþ¢W<u逸:PèAÿ W< °ÿt@P€>W°ÿt@Y ÁöÐÐØsI€>W u° Pë2€>W u° PèI 4þÀ¨uñë W< r<t,a<s€&W_ÿ6Wè!èœÿ6˜ÿ6†èõ‰Á¡˜1Ò÷ñ£ž¡ž£ Ç”¡˜H9”wl¡”¹1Ò÷ñ Òtèj ëƒ>”tèB �>˜sèg ëèV ¡š‚PèU ¡š†£š;˜r¡˜)šÿ u¡œ@£œ£š¡ž£ ƒ”sŠèð ¸L Pÿ6€è© ¸P PèÐ ¡Š¹1ÒP÷ñ£”X1Ò÷ñ Òtÿ”ÿ6”èê ¸T Pè· ¸k Pÿ6€èn ¸o Pè• ¡Ž¹1Ò÷ñPèà ¸s P,èuþP€>Ä °ÿt@Y ÁöÐÐØr鏯Pè}ýŠÄ·ÑãLJ€°,PèöýöÐÐØs ¸ÒPèý ë5€>\ °ÿt@P€>\,°ÿt@Y ÁŠÄ·ˆ‡ºÐØsЇüöÐÐØs¸ÚëÅé‘€>\t ¸âPèµ é}ŠÄ·Ñã¡Ê;‡Àr;‡ÔvéQ‚>Äu‹ÊЇ©ÐØs¸êPè~ ‹ÊƇ©ë~€>Äu ¡Ê;‚vÈ€>Äu ¡„+‚9Êw´€>ÄuU�>Êuå     Mù�†€þªuÍdž]ÃU‹ì€~ uÆ©€~ u  ©$ø¢©€~ rþ©�>†rèsÿŠF‹†ˆ‡ªÿ†]ÂU‹ìÆ•¡†¨t þ•°Pè¡ÿëíèBÿ¸ˆPèXø€>èÿu¸] PèÀø]ÃU‹ì° Pè|ÿ° Pèvÿ]ÃU‹ì° Pèkÿ]ÃU‹ì°,Pè`ÿ]ÃU‹ìŠF0PèRÿ]ÂU‹ì°;PèEÿè½ÿ]ÃU‹ì‹F Àt[‰Á‹F 1Ò÷ñ» 1Ò÷󈬂>¬°ÿt@"F Disk Parameter Blocks$dpe$xlt$Translate Table$Scratch Area$dirbuf,$dpb$Dir Buff, Parm Block$csv$alv$Check, Alloc Vectors$range $equ$ diskparm$delimit$missing$numeric$duplic $Alloc $no disk$Disk $ is the same as Disk $dpb$Equivalent Parameters$als$Sament, Command Form is: GENDEF x $ Where x.DEF Holds Disk Definitions With Optional Parameters : C: Create Diskdef Comment O: Generate Offset-Relative Labels Z: Z80, 8080, or 8085 (else 8086, 8088) x.LIB is Created Upon Com @€?End-File$offset $bad val$dpbase$equ$Base of Disk Parameter Blocks$dpe$xlt$Translate Table$Scratch Area$dirbuf,$dpb$Dir Buff, Parm Block$csv$alv$Check, Alloc Vectors$range $equ$ diskparm$delimit$missing$numeric$duplicPƒù°ÿw@Y"ÁˆFÐØsŠFöÐÐØs° Pèóþëÿ6¬èŒÿ‹F¹ 1Ò÷ñ‰Fëž]ÂU‹ì€~ v ŠF, AˆFë€F0ÿvè¸þ]ÂU‹ìŠF±ÒèPèÏÿŠF$PèÆÿ]ÂU‹ì‹FˆàPèÙÿ‹FPèÒÿ]ÂU‹ìÿvèàÿ°hPèsþ]ÂU‹ìŠF´P°PP¸dPèÿ]ÂU‹ìÿv°PP¸'Pèÿ]ÂU‹ìÿv°P°P¸'Pèïþ]ÂU‹ì 7ÐØsE 6ÐØs]ÃÆ Allocation Vector Size$css$Same Checksum Vector Size$xlt$Same Translate Table$too few$Disk $ is CP/M 1.4 Double Density Compatible$65536$128 Byte Record Capacity$Kilobyte Drive Capacity$32 Byte Directory Entries$Checked Directory Entries$Records / Extentpletion. $Premature End-of-File$Length $Convert$Quote $ LIBno ".LIB" directory space$".LIB" disk full$cannot close ".LIB"$dw$db$ˆ ‰ Š ‹ Œ � ˜ Ÿ DISKSENDEFMACLIBDISKDEFŒ ´ÈÒÜ $Alloc $no disk$Disk $ is the same as Disk $dpb$Equivalent Parameters$als$Same Allocation Vector Size$css$Same Checksum Vector Size$xlt$Same Translate Table$too few$Disk $ is CP/M 1.4 Double Density Compatible$65536$128 Byte Record Capacity$Kilobyte Driv6‚>5u]ð;Pèþè�þÆ­ ­þÀ¢­:5sþÈ´‰Ãÿ·éèáýëãèWþ]ÃU‹ì‹^€?$t ÿ7èÊýÿFëî]ÂU‹ìÿvèÞÿŠF´P°PP¸dPègþ]ÂU‹ìè)þÿvè½ÿ]ÂU‹ìÿvèçÿèþ]ÂU‹ì€>© sèþëô°;PènýÿvèŽÿèàý]ÂU‹ì¸q PèÄÿ]ÃU‹ì¸t Pè¸ÿ]ÃU‹ìèâÿÿvèæþ]ÂU‹ìèÞÿÿvè¾þ]ÂU‹ìÿvè×ÿÿvè—ÿ]Â$Records / Block$Sectors / Track$Reserved Tracks$Sector Skew Factor$dpb$equ$Disk Parameter Block$Sectors Per Track$Block Shift$Block Mask$Extnt Mask$1.4 Compatible$Disk Size - 1$Directory Max$Alloc0$Alloc1$Check Size$Offset$xlt$equ$No Translate Table$Tranåe Capacity$32 Byte Directory Entries$Checked Directory Entries$Records / Extent$Records / Block$Sectors / Track$Reserved Tracks$Sector Skew Factor$dpb$equ$Disk Parameter Block$Sectors Per Track$Block Shift$Block Mask$Extnt Mask$1.4 Compatible$Disk Size - Error(s)$U‹ìÿvèÔÿÿvè„ÿ]ÂU‹ìè¨ù€>\t€>\u]À>\u€>_;u €>_ tè€ùëô _¢\]À>^v]Ê^·Ñ㋇x £®‰ÃŠ¢±Š^·Š‡§ ¢\‚>±t[þ± ^¢² ²À°ÿw@вþË·Š�_в¶‰Ö‹®P:°ÿt@Y"ÁÐØsþʈ²ëÇ‚>²u]Ãþ\ ^´®ëžÆ\]ÃU‹ì [:F°ÿt@¢°ÐØsÆ[ °]Âslate Table$als$equ$Allocation Vector Size$css$equ$Check Vector Size$ds$rs$Uninitialized Scratch Memory Follows:$begdat$equ$Start of Scratch Area$dirbuf$Directory Buffer$alv$als$Alloc Vector$csv$css$Check Vector$enddat$equ$End of Scratch Area$datsiz$equ$-bå 1$Directory Max$Alloc0$Alloc1$Check Size$Offset$xlt$equ$No Translate Table$Translate Table$als$equ$Allocation Vector Size$css$equ$Check Vector Size$ds$rs$Uninitialized Scratch Memory Follows:$begdat$equ$Start of Scratch Area$dirbuf$Directory Buffer$alv$alegdat$Size of Scratch Area$Marks End of Module$program$ÒÈÜÉNo Stmt$ maclib$ macpar$ disks$ diskdef$extra $!!q> !!¾Òˆ:!ÆAÖ 2!Ã�:!Æ02!*!MÍUÉ!€!q:€!æøOÍn:€!æOÍnÉ!‚!p+q*�!|O͘*�!}O͘É!ƒ!q:ƒ!Æ0OÍUÉ!„!q*„!&ë!dÍ· KÍÊ*„!&ë! Í· ! Í· MÍ1!Í’Í0102821100654321ÿÿÿ@ÿÿþÿþÿÿÿ ? @€End-File$offset $bad val$dpbase$equ$Base ofs$Alloc Vector$csv$css$Check Vector$enddat$equ$End of Scratch Area$datsiz$equ$-begdat$Size of Scratch Area$Marks End of Module$program$ÒÈÜÉNo Stmt$ maclib$ macpar$ disks$ diskdef$extra $ DISKDEF Table Generator, Vers 1.0 $DEF No Input File Preseÿÿÿ@ÿÿþÿþÿÿÿ      Ê*„!&ë! Í· MÍÊÉ!†!p+q:@$Ò£Í*…!DMÍ€,ÍU!‡!6:Þ&!‡!¾Úp:‡!=O!ß& ~2ˆ!þ Òb#ÍU*ˆ!M͘Ãi*ˆ!MÍU!‡!4Â5:ÍU*Ü&MÍØ:Ü&þ–,ÍU*Ù&DMͳHÍU:°&Ò£ÕÍ€É!‰!q!‰!:Ü&¾Â¸Í­>É>É!Œ!p+q!Š!6ÿ:Š!<2Š!O*‹! ~2�!þÂà>É!�!:Ü&¾Âí>ÉÃÆÉ:Ü&Ö ÖŸ!°&¶ÉÍñ2Ô&ÂÝ!¸&6$ÚÍ€ÍVÉÍ:¿&þ Â(!¾&6N#6o»&Í€É!×&p+q:¯&Ò=ÉÍ!¯&6¼&͹*Ö&DMÍ€!Þ&:«&–2Ø&:Ø&=2Ø&O>¹Òs ÍUÃ]?ÍUÉ!ÿ&q:ÿ&þÊŒ*ÿ&M͹É!¬&:«&¾Ú§ÍV:°&Ò¤>ÉÃ�*«&&`& ~2':«&<2«&:'É!'6!Þ&6+~Ò×!Ý&6ÃÜ!Ü&6:Ü&þÂK:Û&Ö ÖŸõ:Û&ÖÖŸÁH±ÒÍ�2 $DEF No Input File Present, Command Form is: GENDEF x $ Where x.DEF Holds Disk Definitions With Optional Parameters : C: Create Diskdef Comment O: Generate Offset-Relative Labels Z: Z80, 8080, or 8085 (else 8086, 8088!¯&6Í­Íž/Í:Ü&þ Ê‹7Í»Ú,<Í/Ë*Š!M!u ^#VëéÍ­DÍÍ­MÍÃ}Í­VÍÍÃ}]ÍÍ2 Ã}Í­ÍÃÃ}<Q`l:Ü&þ Ê‹fÍ/ÍþÃùÉÍúÍcÍ$ÍÔÍÍ ÍñÉLIBno ".LIB" directory space$".LIB" disk full$cannot close ".LIB"$dw$db$ÍÉ.Þ!͈à „Íì:͹ÍOŠÍìÍD!"À!>!¨!Í7!Ò= *¨!M!À!Íû ë+s#r*À!ë*ª!ÍÖ DM£Í•*¬!DM¼Í•*®!DMÖÍ•:½!Úu !€"À!à !ª!Í:!ÒŠ ! "À!Ã� !@"À!*¨!#M!À!Íû ë+s#r*À!DMðÍ•*¨!#M>Íõ OÍ•*Ä!DMÍ•*°!DM!Í•>¦!Í,!µÂå !·!6:·!Ú÷ *¦!DM2Í•Íi* !ëEÚ Í­ÃþÉ:G$ÚÞÍì$͹É>!Ž!¾Ò0!Ž!6ÃH:Ü&þÂC*Ù&ë!Ž!sÃH!Ž!6:Ž!ÖÖŸõ>!Ž!–ŸÁH±ÒeæÍ/Í­îÍìõÍA:<$Ò�Í Æ$͹ùÍS!Ÿ!6:Ž!!Ÿ!¾Ú* :Ÿ!=_Í :G$Ò²:͹Íx:Ÿ!=_Í ÍUÍHÍSÍxÍHÍUÍH/ÍSÍx<Íì:Ÿ!=_DÍ HÍSÛ&Ã;ÍLÒ!Ü&6Ã;Í-Ò#!Ü&6Ã;:Û&þ'Â6!Ü&6+6Ã;!Ü&6:°&ÒH'ÍÃÜ:Û&þʆ*Þ&&ß& :Û&w <`iwO>¹Ò†:Ü&þÂ{!Ý&6É=Í/!Þ&6:Û&2'Í�2Û&:Ü&þ¶:Û&þ$ª!Û&6óÍX/Ò³ÉÃ):Ü&þÂú:Û&þ$ÂÎ!Û&6Ã÷Í9/Ò÷:Û&ÖOÖŸõ:Û&ÖQÖŸÁH±Òö!'6Ã:Û&þHÂ!) x.LIB is Created Upon Completion. $Premature End-of-File$Length $Convert$Quote $!H$q*H$&ëÍÉ ÍU ÍUÉ!J$p+q*I$ë ÍÉ!L$p+qÍe*K$DMÍpÉ!O$p+q*N$ëÍ2M$É!Q$p+q*P$ëÍ2M$É!S$p+q*R$ëÍÉ!U$p+q*T$ëÍÉ!W$p+q*V$ëÍÉ!Y$p+q*X$ëÍ2M$É![$p+\ -Â.ç!¨ -Â:lþÊ(:l2Þ!Þ!͸Þ!Íè:M$þÿÂB¬Í!þ!6!"$}2ÿ!!­&6É!$Í!+ë!$s{þÿÂlÉ!"$!$6:$!$¾Ú²*$" DMÍ Þ!ÍØþÊžÆÍ€*$"$:$<2$Âw!"$É!$q:$þ ÂÊ!ÿ!6:$þ ÂÜ:ÿ!Ææø2ÿ!:$þ Úë:ÿ!<2ÿ!$Í$!ÚúÍW*$"Í IÍAÍ MÍS*Ä!DMbͧ*¨!¼ NtÍÂ*¨!Á N€ÍÂ*¨!ë!¿!s!ª!Í:!ÒR!¿!5:½!Òl*¿!&Æ N‹ÍÂÃv*²!M–ÍÂ*ª!+DM¥ͧ*¬!+DM³ͧ*Â!|OÁÍÂ*Â!}OÈÍÂ*®!ë!Í· BKÏͧ*°!DMÚͧ* !ëáÍ åÍA:·!ÒæÍ\éÍSÃÇÍ üÍS!"Æ!"È!*Ä!DM*¦!Íx:Ÿ!=_]Í ÍU:Ÿ!=_aÍ eÍS!Ÿ!4‘ÉzÍ/É!¿!6> !¿!¾ÚR *¿!&´! 6!¿!4Â7 !¾!6!Ü&6,Íñõ:¾!Ö ÖŸÁH±Ú †Í*¾!& !) >w#6,ͤÚ— ’Í/Ãü :Ü&Ö ÖŸõ:Ü&Ö,ÖŸÁH±*¾!&´! wÒÐ *¾!&¨ ~ÚÍ šÍ/Ãü :Ü&þÊá ¢Í/Ãù *¾!&€) Ù&Í!!Ÿ*¾!&”) ë+õÍ'6>!'¾Ò!Û&6ÃG:'þBÂ+:Þ&=2Þ&!'6ÃG:'þDÂB:Þ&=2Þ&!'6 ÃG!'6 !"Ù&!'6:Þ&!'¾Úã:'=O!ß& ~2'þAÚ}:'ÖAÆ 2'Ã…:'Ö02':'2'O:'¹Ú˜!Ü&6*Ù&"'*'&"Ù&:'þÊÙ*')"':'·2'ÒÖ*'ë*Ù&"Ù&ŸÒÖ!Ü&6æ:'<2'ÂR:Ü&þÂñEÍ/!Ü&6ÉÃ):Ü&þÂq*Z$ëÍÉ!]$p+q*\$ëÍÉ!Ë&p+qÍe*Ê&DMÍ€ÍñÉ:°&Ò:>É*^&#"^&ÿÍ!ÚNÍ É!"^&^&Í$!Ò–*^&^$ DMÍ \ÍÈþʉ*^&^$ 6!"^&Ó€*^&"^&ÃT!"^&Í É*^&^$ ~2Ì&þµ!°&6:Ì&É!Î&p+q!Ï&6:Ï&=2Ï&þÿÊ*Ï&&ë*Í&~2Ð&þ Âè!Ð&60:Ð&<*Ï&&ë*Í&wO>9¹Ò *Ï :$w*$#"$É!ë!6*$}æþÊ,:ë!<2ë!͹ÃÍWÞ!Í¥:M$þÿÂC×ÍÉ ͹ ͹É ͹É,͹É!$q:$Æ0O͹É;͹ÍDÉ! $r+s+q+ÑÁq+Áp+qÕ> $Í,!µÊë*$ë* $Í· ! Í· ë! $s~ÖÖŸ!$¦õ>! $Í7!ŸÁH¡2$ÒÓ: $/ÒÐ ͹ÃÚ* $MÍ[* $ë! Í· ë" $ÄÉ! $q> ! $¾Ò: $Ö ÆAëÍ0å*Ä!ëáÍ· ë"Ê!*Ê!"Ì!!"À!*Ä!+ë!À!Í:!ÚÄ*À!ë!Í· >Í!µÊDÍUÃg>!À!Í7!ÒRÍDÄ!Í$!ÒdÍÃgÍx*¢!ë*Æ!DMÍr*¦!ë*Æ!"Æ!ë!Ä!Í:!Ú—Ä!Æ!Í!ë+s#r*Ì!+"Ì!>Í!µÂ·*È!#"È!"Æ!*Ê!"Ì!*À!"À!ÒÍD* !ë Í ÍA*ª!ë!Í· ë"À!*ª!ë͹ >Í!µÊü*À!#"À!*À!D!!ŸÁH±Ò Í+ Ãæ :¾!þÂ6 *Ù&�! ~Ò* ªÍ/*Ù&�! 6Ãæ :¾!ÖÖŸ¢!Ù&õÍ!Ÿ/ÁH¡ÒW Í+ Ãæ :¾!ÖÖŸ¢!¤!õÍ!ë!Ù&Í:!ŸÁH¡Ò~ Í+ Ãæ :¾!þÂú Ù&Í$!µÂœ !"Ù&Ã÷ Ù&Í$!µÂ² !"Ù&Ã÷ Ù&Í$!µÂÈ !"Ù&Ã÷  Ù&Í$!µÂÞ !"Ù&Ã÷ @Ù&Í$!µÂô !"Ù&Ã÷ Í+ Ãæ :¾!þÂ(:Û&þ'ÂÍ�2Û&þ'ÊÉ:Û&þ Â%MÍ/ÉÃ)ÉÃKÉ:Û&Ö0O> ‘Ÿ/ÉÍ-õ:Û&ÖAO>‘Ÿ/ÁH±É:Û&ÖAO>‘Ÿ/ÉÍ-õÍLÁH±É!"Ù&}2Û&2Ü&!Ý&6ÉDISKSENDEFMACLIBDISKDEFvwxyz{†�Œ ´ÈÒÜÍ¿:Ü&ÖÖŸõ:Ü&ÖÖŸÁH±ÒÉÉ:Ü&þÂî:ß&þ;Âç:ß&þ ÊçÍ¿ÃÙ:ß&2Ü&É>!Þ&¾ÒøÉ*Þ&&•&&ë*Í&60Ã!Ï&6ÃÄÉ:®&ÒP±&Í€>!¬&¾ÒP!Ñ&6:¬&=!Ñ&¾ÚP*Ñ&&`& NÍU!Ñ&4Â1!®&6ÉÍ!«&6ÿ#6Í02Ò&þÊþ±&͹:Ò&Ö ÖŸõ:Ò&ÖÖŸÁH±Úï:Ò&þ š ÍÃæ:Ò&þ ½ Í:«&<æþʺ ÍçÃæ:Ò&þ Úæ:Ò&þÊæ:Ò&ÖaþÒß:Ò&æ_2Ò&*Ò&MÍÍ02Ò&Ãr:«&<2¬&!®&6+6!«2 $Ã: $Æ02 $* $M͹É!$q:$æøOÍì:$æOÍìÉ!$p+q*$|OÍ*$}OÍÉ!$p+q*$DMÍ1h͹É!$q*$&åÅdÍrÉ!$p+q*$åÅ'ÍrÉ!$p+q*$åÅ'ÍrÉ:®&Òë:­&Ò­É!­&6:¬&þ»É;͹ÍO!$6:$<2$!¬&¾Òè:$=O!`& N͹ÃÈÍDÉ!$p+q*$~þ$Ê *$NÍMÍrÍS* !ë+Í /ÍA*®!ë!Í· BKÍr3ÍSÉ!Ñ!r+s+p+q*Î!ë*Ð!Í· "Ò!>Í!µÂT*Ð!É*Ð!"Î!*Ò!"Ð!Ã:É!×!r+s+p+q*Ô!DM* !ëÍ ‚ÍA*Ô!DM*¢!ëÍ *Ö!DMÍSÉ!Û!r+s+p+q;͹ÍO*Ø!DM͈:͹ÍO*Ú!DMÍìÍDÉÍi;͹ÍOKÍìÍDÍiqÍìxÍAÍ |ÍS’Íì:G$Ò:͹> !Ù&Í:!Ÿõ>¨!Í,!µÖŸÁH¡Ò& Í+ Ã; *¨!²) ëÙ&Í!Ò; Í+ Ãæ :¾!þ´ >Ù&ͪ >Í!µÊ] Í+ ñ !"Â!*Ù&"À!*À!+|Ú± *¨!Ë) À!Í!!ë+s#r*Â!}Ò� ²Í/!"À!î !Â!Í!€Íí "Â!Ãi Ãæ :¾!ÖÖŸõ>Ù&ͪ >Í!µÆÿŸ¬!Ù&õÍ!ŸÁH±ÁH¡Òæ Í+ *¾!& !) å*Ù&ëás#rÍ­:¯&) ^#Vë" '~2 '*Þ&&¥ ~2Ü&>! '¾Òz ! '5:Þ&#w>! '–Ÿõ~=O!ß& å* '&ë* 'Á –ÖŸÁH¡Ò\ ! '5Ã, : 'þÂe É!Ü&4:Þ& 'Í� ë+s#rà !Ü&6É!'q!':Û&–ÖŸ#wÒ™ !Û&6: 'Éë_ë…oŒgÉë_ë¥o¤gÉDM!>õ)ë—)ë�‘o|˜gÒÐ ñ=¾ ÉDM!>)ë)ëÒå =ÂÝ É_{µoz´gÉ~‡ Âõ É^#Vë)&6É!Ó&q:«&<þKÒ#:«&<2«&O!`& :Ó&wÉ!Ô&6>!Ô&¾ÚD*Ô&&.$ 6!Ô&4Â):mþ$€!Ô&6>!Ô&¾Ú€*Ô&&m ~ÖA2Õ&þÒy*Õ&&.$ 6!Ô&4ÂQ:eþ ˜.e -Â�€Í \Í’:M$þÿÂÀÍ€$ÍU>ÍpÍñ!¯&6#6!®&6!|6!"^&!Ô&6>!Ô&¾Ú*Ô&&±& 6 *Ô&&¹& 6 :Ô&<¹*$#"$ÃòÉ!$s+p+q*$DMÍì*$&åÅdÍrÉ!$p+qÍO*$DMÍìÉ!!$p+q* $DMÍ/ÍOÉ!#$p+q:ÿ!þ ÒgÍOÃY;͹*"$DMÍìÍDÉëÍAÉîÍAÉ!%$p+qÍx*$$DMÍrÉ!&$qÍ*&$MÍ\É!*$r+s+p+q*'$DM͆*)$DMÍSÉ!-$r+s+q*+$M͘*,$DMÍSÉ DISKDEF Table Generator, Vers 1.0ͽ€Í\™ÍS!Ü!6>!Ü!¾Ú„*Ü!&�! ~Ò}*Ü!ëªÍ :G$ÒA:͹ͽ*Ü!ë®Í ²ÍS*Ü!ë¿Í :G$Òj:͹ͽ*Ü!ëÃÍ ÇÍS!Ü!4ÂÔÍìÛÍAÍ ßÍSóÍìúÍAÍ þÍìÍSÍÂÉ:G$ÒÍEÍAÃÓHÍAÉ!Ý!6>!Ý!¾Úô*Ý!&�! 6!Ý!4ÂÙ!Ž!6:°&Ú‘Ò É!¾!4Ã\ ÍñÚ É:¾!þ‡ *¢!�! ~Ú- ºÍ/:0$Ò_ Íi;͹ÍOÂÍì* !MÍ\ÈÍì*¢!MÍ\ÍDÍiâÞÍdüøÍdÍd:6ÍdÉÖ :¾!þ Ò– OÍ/É¢!¤!Í!#"Ä!:0$Òú Íi:½!ÚÒ ;͹ÍOWÍì* !MÍ\]ÍìÍD*¨!#M>Íõ _*ª!ÍÖ "À!;͹ÍO>!À!Í7!Ò *À!DM      Âÿ É^#Vë|·g}o  !É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉRETURN to continue --> ÿÿÍ�Z!å! åÍÅWÑÑÊH!å!åÍÅWÑÑ!å!åÍÅWÑÑÉþÿÍ�Z!9^#VÕ!»åÍÐ;ÑÑ!å! 9åÍëÑÑDM! 9^ÕÍcZÑë!9s`iÍ7_ÂO!9^!YÍ7_Ê­!9^!NÍ7_ÂO!9^!YÍ(_É%s (Y/N)? --> Í�Z!ÙåÍIÑÉ Is this correct ëÿÍ�Z!#9^#V!Íc_ÊVERIFY Verify that the Control Area is complete P - PRODUCT Product Table Add/Modify Q - QUIT Leave this program. Enter your choice --> Í�Z*ô_DM`i~·Êã !å!9^#VÕÅÍ[YÑÑÑÊã `iDMû `i~·Âî !É`iÉÍ�Z*ú_DM`iappears corruptedfile is not an overlaycannot find it on the disk.Í�Z!\åÍÐ;Ñ!åÍÞHÑÉ Exiting program normally Í�Z!�åÍÐ;Ñ!åÍÞHÑÉ Leaving program due to errorþÿÍ�Z!Gë!9s#r!9^#Vë~·Âß!åÍÐ;Ñ!PåÍÐ;ÑÍx!9^#Vë^!ÿÍ7_Ê!åÍÐ;Ñ!´åÍå!#9^#VÕ!MåÍÐ;ÑÑ!É!DMÃ#`i#DM`iëÍb_ÊÔ!'`åÍÜAÑë!9s! Í7_ÊÔ!9^ëþ!9^Õ`ië! 9ÑsÃÑx±Êx!å!|åÍÐ;ÑÑx±Ê�!å!åÍÐ;ÑÑ`i+DM`i+DMÃÑx±Ê¶!å!å!ƒåÍÐ;ÑÑÑ`i+DM×`i+DMÃÑÍ�_x—fSÃ`iÍ(_Êû!'`åÍÜAÑë!9s! Í7_ÊûÃß!åÝ~·Ê. !å!9^#VÕ`iåÍ[YÑÑÑÊ. `i`DMÃü `i~·Â= !É`iÉÍ�Z!åýá*ô_DM`i^ÕÝáz³Ê| ÝåáåÍ7_Ê| `iDMýåá#åýáÃQ ýåáÉÍ�Z!åýá*ú_DM! ^ÕÝáz³Ê¾ ÝåáåÍ7_ʾ `i`DMýåá#åýáÑ ýåáÉþÿÍ�Z! ë!9s#r!9^#VÕÍZÑå!9^#V!å! 9^#VÕÍ[YÑÑÑÊ !Ð;Ñ!ïåÍÐ;Ñ!+åÍÐ;Ñ!eåÍÐ;ÑÍ} É This program will not work on a running Master. You can run SYSLIB if you boot from a floppy. You are running this program on a network station. SYSLIB will read and write the tables from the LOCAL hard disk attached toåáà Ýåá#åÝáÝåáPYëÍb_ÊJÝåáë!#9~#foÍb_ÊJÝåáë!9^Õ!#9å~#fo#ëás#rë+ÑsÃ`iÉ *BUG* call to dgets wants too many chars (%d)%c %c%c %cöÿÍ�Z!"î_"ì_!å!å!9åÍZÑÑÑ!9^#VÕ! 9åÍëÑÑë!9s#rz³ÂØ!"î_Í [É!9^#V!9~#foÍb_Â!9^#V!9~#foÍc_ÊÉ!ÉTHIS IS A HEADERyÿÍ�Z!åÝá!ë! 9s#r!xë! 9s!ë! 9s!9ë! 9s#r! 9åÍc Ñ!9^!9s!9^!Íb_Êt !åÝá!€DMÆ !9ån+ëás!9~·Êœ !PYÍ©^DMÃ| `iëÍÄ_´ `iëÍÅ_ʺ !åÝáÝåá|µÊß Å!â åÍÐ;ÑÑ! åÍÐ;Ñ!T åÍÐ;ÑÍx`iÉ Error - the size of your Con this station. If you intended to work on the SHARED hard disk attached to the Master, you should abort this program now.Í�Z!å!ÛåÍûÑÑDM`iÃÇ!ãåÍÐ;Ñ! åÍÐ;ÑÍx!åÍÐ;ÑÍxÃÚ!8åÍÐ;ÑÍxÃÚÍ�_ýÿ«ÿÿ˜¶¹ÉSYSLIB7 Sorry, you need that overlayèFImpossible ProductZSBC-3 ComputersDSC-4DMS-1280DMS-3/C "Killer Bee"DMS-86 and DMS-5086DMS-5016DMS-816PC AdapterDMS-16BDMS-808Apricot AdapterHex AdapterÍ�Z! å!1å!2å!‘åÍÐ;ë!9ùÍ®Í~ÍN'ÂÝ!¯åÍÐ;ÑÍEÍ "-Ž!ð_åÍc Ñ!ö_åÍc Ñ!ü_åÍc ÑÍIDM!"ì_Í [É! 9^!Í(_Ê.!"î_Í [É! 9åÍ8ÑÉúÿÍ�Z! 9åÍ [áÍ&[!DM!"ì_!9^#Vë~·Êò`i#DM+ëÍb_Êò! 9åÍ [ÍQ[áåÍ[Ít]áÍ&[!9å~#fo#ëás#rë+^ÕÍúÑë!9s#r!9^#V!ÿÿÍ(_ÊÐ!"ì_Í [É! 9å! 9^#VëÍ)^ÍQ[áåÍ[ÍÆ[áÍ&[ÃY! 9Í[ÉÍ�Ztrol Area is listed as %dk. SYSLIB only understands sizes of 256k or 512k for the Control Area. Í�ZÍ´:ëÍG_ʇ ! 9^#Vë##^ëÖ ! 9^#Vë##^ë#DM! 9^#Vë###^Õ!9^#V!^#VÕÅ!9^#Vë^#VÕ!åÍã%ë! 9ùëÉÍ�ZÍ´:ëÍG_Êö ! 9^#Vë##^ëà ! 9^#Vë## in order to run SYSLIB. Not a Separated Boot System Access Denied. ÿÿÍ�Z!ãåÍÐ;Ñ!õåÍÐ;Ñ!÷åÍÐ;Ñ!;åÍÐ;Ñ!åÍÐ;Ñ!¶åÍÐ;Ñ!¸åÍÐ;Ñ!÷åÍÐ;Ñ!7 åÍÐ;Ñ!9 åÍÐ;Ñ!i åÍÐ;Ñ!k åÍÐ;Ñ!– åÍÐ;Ñ!˜ åÍÐ;Ñ!å! 9åÍëÑÑÍ7_ÂO!9^ÕÍcZÑÉ SYSLIB MAIN MENU A - ÃfÍE!Aå!ËåÍûÑÑÃ�!Må!ÓåÍûÑÑÃ�!å!ÛåÍûÑÑÃ�!å!ãåÍûÑÑÃ�!å!ëåÍûÑÑÃ�!å!óåÍûÑÑÃ�Í�_AE&LVMPFQV6�ÃûÉ SYSLIB -- version %c.%c%c Hard disk not operational.SYSLIB1SYSLIB1SYSLIB2SYSLIB4SYSLIB3SYSLIB6Í�! 9^ÕÍcZÑë! 9s! 9^!0ÍG_Ê>! 9^!9ÍH_Ê>! 9^!ÐÿÉ! 9^!AÍG_Êj! 9^!FÍH_Êj! 9^!ÉÿÉ!ÿÿÉÍ�Zê!9å~#fo+ëás#rë#! 9å~#fo#ëás#rë+!9å~#fo#ëás#rë+!9^#V!Íc_Ê÷!9^#Vë^Õ!9^#Vë^áÍ7_Êô!9^#Vë^Õ!9^#Vë^á͆_ÉÃw!ÉÍ�^ë#DM! 9^#Vë###^Õ!9^#V!^#VÕÅ!9^#Vë^#VÕ!åÍã%ë! 9ùëÉÍ�Z!9^#V!ÍQ^å!ÑëÍÛ^å!9^#V!Í<^ë!9~#fo^áÍ_ÉÿÿÍ�Z!° åÍÐ;Ñ!å! 9åÍëÑÑʯ !9^!Í(_ʯ ÍEÉ Hit RETURN to continue, to abort: ÿÿÍ�Z!ù åÍÐ;Ñ!å! 9åÍëÑÑÉ Press ADD/REPLACE Add or replace a Control Area Directory file E - ERASE Erase a file from the Control Area Directory M - MODIFY Modify a Control Area file name L - LIST List Control Area Directory or OS Table V - Z!"/Ž!9^#VÕ!9^#VÕÍV#ÑÑDMÿÿÍ(_Ê‘! 9^#VÕ*/Žå!”åÍÐ;ÑÑÑ*/ŽÃz!ÃåÍÐ;ÑÑ!ÚåÍÐ;ÑÑ!øåÍÐ;ÑÑ!åÍÐ;ÑÑ!)åÍÐ;ÑÑÍ�_ùÿdúÿNûÿYoC`iÉ SYSLIB: Error #%d in loading overlay %s.OVR: overlay missing or badnot enough memory to load it!overlay  Error(s)$     Z!9^#VÕ!9^#VÕ!9^#VÕÍnÑÑÑÍ(_ÉÍ�Z!ÿÿåÝáÝåáëÍb_ÂLÝåáëÍc_Êx!å!9^#VÕÍëÑÑåÝáÝåáëÍc_Êu!ðåÍÐ;ÑÃ2! å!ÝåÑë͆_å!9^#VÝåáåÍZÑÑÑ!åýá! 9^#VBKòýåá#åýáýåáëÍb_Êì`i^! Íb_ÊÖ!"ì_Ãé`i^ÕÍcZÑå`i#DM+ÑsëÝåáÉ Too long! Re-e!É!XÉÍ�Z!9^Õ!9^#VÕÍ“+ÑÑ!9^!Í_ÂF)!9^#V* `Í7_ÂS(!9^* `Í7_Êw(!å!båͶ,ÑÑ!9^#Vë" `!9^ë+" `! 9^ëÃÓ(! 9^Õ!+åÍÐ;ÑÑÉ!€å!›bå!9^#VÕͺ:ÑÑÑÃâ(!€å!9^#VÕ!›båͺ:ÑÑÑ!å!båÍ`-ÑÑÃâ(Í�_”(­(‚(!€ë!9å~#foëás#r!9ån#ëásëás#r! 9å~#fo#ëás#rÃß"!9å~#foëás#r! 9^#VÕ!9^#V! Ñs#r!9^#VÕ!9^#V! ÑsÉ!9^#Vë"bÍe#é²ÿÍ�Z!ë!R9s#r*bå! 9å͈YÑÑ!Á$å! 9åͤYÑÑ!å! 9åͧIÑÑë!T9s#r!ÍG_Âî#!R9å~#fo#ëás#rë+|µÊÏ#! åÍÉ$Ñ!Æ$å! 9å͈YÑÑ*bå! 9åͤYÑÑÄ#! å!J9å!X9^#VÕÍ!Í©^ë*ô_ë!"9~#foÍ(_ÊÉ!"9^#V! ^#V! 9s#r!"9^#V! ^!9s#r!"9^#V!"^#V!9s#r!"9^#V!$^! 9s#rÍ@ +ë!9s#r!9^#V!Í©^ë*ô_ë!9s#r!9^#V! ^#V!9~#fo͆_ë!9s#r!9^#V! ^#VÕ!9^#V! ^áë! 9~#fo͆_ë!9s#r!9^#V!ÍÛ^ë!9~#foÍÐ;ÑÑÃÌ!ÝåÍÐ;ÑÃ…ÝåáëÍb_ÊAÝåá)))ë!9~#fo~·ÊA!âåÍÐ;ÑÃQÉ Filename Load Addr. Entry Off. Support Files -------- ---------- ----------- ------------- %c %8lx %4x %c Í�Z*`DM!åÝáÃÝåánter --> Í�Z!DMÃ`i#DM`iëÍb_ÊJ! 9å~#fo#ëás#rë+^Õ!KåÍÐ;ÑÑÃÉ%cÍ�Z!DMÃa`i#DM`iëÍb_Ê¢! 9^#Vë^! Í7_Ê¢! 9å~#fo#ëás#rë+^Õ!£åÍÐ;ÑÑÃ\É%cÍ�Z!ÉåÍÐ;Ñ! 9^#VÕÍNÑ!êåÍÐ;ÑÉ There is already a file named in the Control Area.!€Íc_Ê")!ë!9s!9å~#fo#ëás#r!9å~#fo+ëás#r!9^Õ!9^#VÕÍ“+ÑÑ!9^#V!Íc_ÊJ*!9^#V!Í<^DM! 9^ëö)! 9^Õ!"+åÍÐ;ÑÑÉ`iëÍÛ^å!9^#VÕͶ,ÑÑÃÅ)`iëÍÛ^å!9^#VÕÍ`-ÑÑÃÅ)Í�_‚)œ)p)`i)ë!9å~#foë͆_ëás#r`iëÍÛ^ë!9å~#foëás#r`i)ë!9ånë=MÑÑÑ Í7_Ê$!åÍÉ$Ñ!H9^#V!ñÍ7_Ê.$!åÍÉ$Ñ!J9^#V!L9~#foë!N9~#foå*4ŽÑëÍÄ_Ê\$!(åÍÉ$Ñ!J9^#Vë^#Vë}21Ž!J9^#Vë"2Ž!L9^#VÕ!L9^#VÕ!X9^#VÕÍ=MÑÑÑë!L9~#foÍÄ_ʬ$!2åÍÉ$Ñ!T9^#VÕÍ KÑ!P9^#VëÉ.ovra:°ÿÍ�Z*bå!^9^#VÕ!]%å!9åÍî;ë!9ù!9å! åÍÅWÑÑ!\9^ë!9s#r!9^#V!Íc_ÊN !9^#V!ÍG_Ê6!ë!9s#rÃD!9^#V!9s#r!9^#VÕ! 9å!9^#Vë+å!9^#VÕ!åÍã%ë! 9ù!9^#VÕ! 9å! 9^#Vë+å!9^#VÕ!åÍã%ë! 9ù!9^#V! 9å~#foëás#r!9^#V!9å~#foëás#r! 9^#V!€Íc_Êý!€ë! 9å~#foë͆_ëás#r!9å~#fo#ëás#r!#åÝáÝåá(ëÍb_Ê8`i^!Íc_Ê8`i^!Íb_Ê8`iDMÃýÝåáÉÍ�Z!SåÍÐ;Ñ!�åÍÐ;ÑÉ Entry Filename Track Sect Records Load Addr Exc Off ----- -------- ----- ---- ------- --------- -------Í�Z! 9^#VÕÍ Ñ! 9^#V!^#VÕ!9^#V!Í[Í8[!9^#V˜ÿÍ�Z!|9^#V!Í<^ë!n9s#rÃ4!ë!n9å~#foëÍ<^ëás#r!n9^#V!Íc_ʲ!n9^#VBKÃU`i#DM`ië!|9~#foÍb_ʯ`ië!n9~#fo͆_ë!l9s#rØ!n9^#V!l9å~#foë͆_ëás#r!l9^#V!ÍG_ʬ!l9^#V!v9~#foÍ©^ë!t9~#foåÝá!l9^#V!n9~#foë!v9~#foÍ©^ë!t9~#foåýáÝåáë!x9~#fo^#Vás!9^!€Íc_Ê5*!€ë!9ånë͆_ëás!9å~#fo#ëás#rÃ*!9^Õ!9^#VÕÍ“+ÑÑ!9^#V!Íc_Êl*!9^#VÕ!?+åÍÐ;ÑÑÉ!9~#¶Ê+!å!båͶ,ÑÑ!9^#Vë" `!9^ë" `! 9^ëÃõ*! 9^Õ!v+åÍÐ;ÑÑÉ!€å!bå!9^#VÕͺ:ÑÑÑÃ+!€å!9^#VÕ!båͺ:ÑÑÑ!å!båÍ`-ÑÑÃ+Í�_¶*#V! Í<^Ã3%!|%DMÃJ%!�%DMÃJ%!¡%DMÃJ%!µ%DMÃJ%!Î%DMÃJ%Í�_%%#%+% %Å! åÍÅWÑÑ! åÍÞHÑÉError %d loading overlay: %s $(File corrupted?)$(File not found)$(Header truncated)$(File isn't an overlay)$(Not enough memory)$þÿÍ�Z!9ån#ëás!9^#V!ÍH_9^#V!€Íc_Ê2 !€ë!9å~#foë͆_ëás#r! 9å~#fo#ëás#r!9^#V!9å~#foë͆_ëás#rÃëÉúÿÍ�Z!9^#V*ô_͆_ëÍJ^ë! 9s#rÍ@ +ë! 9s#r! 9^#V!Íb_£ ! 9^#V! 9~#foÍc_ʵ ! 9^#VÕ!K!åÍÐ;ÑÑÉ! 9^#V!9s#rÃç !9å~#fo#ëás#r!9å~#foëás#r!9^#V! 9~#foÍb_Ê)!!å! ^#VÕ!9^#V! ^Õ!9^#V! ^#VÕ!4åÍÐ;ë!9ùÉ %4x %2x %4x %8lx %4xÍ�Z!låÍÐ;Ñ!¦åÍÐ;ÑÉ Entry Filename OS Type Support Files Required ----- -------- ------- -------------------------------Í�Z! 9^#V!åÍ Ñ!på! 9s#rýåáë!x9~#fo^#V!9s#r!z9^#V!Í(_ÊX!ÿë! 9å~#foÍ_ëás#r!ÿë!9å~#foÍ_ëás#r!9^#V! 9~#foÍÅ_¬!v9^#VÕ!9åÝåÍ5ZÑÑÑ!v9^#VÕÝåýåÍ5ZÑÑÑ!v9^#VÕýå!9åÍ5ZÑÑÑÃÃPÃÉÍ�ZÃË! 9å~#fo+ëás#r! 9^#V!Íc_ÊÞüÉÍ�Z!:å!9^#VÕÍáYÑÑDM|µÂ ! Ï*¤*É *BUG* way = 0x%x in hd_xfer *BUG* way = 0x%x in hd_xfer *BUG* blk = %d after we've done block xfer in hd_xfer *BUG* way = 0x%x in hd_xferüÿÍ�Z!9å!9^ë+ëÍ<^Í)^Í8[!9^#VëÍ)^Í[@Ít]ÍF[ÍÆ[áÍ&[!9Í[Í[ÿÿÍé]Ê,!k,åÍÐ;Ñ!9Í[Í8[!9^Ê&!9^#VÕ!ü&åÍÐ;ÑÑ!É:`·Â/&ÍN'Â/&!"`!É!}2`:bo&Ãy&:bo&å! 'åÍÐ;ÑÑ!ë!9s#rÈ&!(ë!9s#rÈ&!4ë!9s#rÈ&Í�_k&X]&?&!9~#¶Êä&!9^#VÕ!9^#VÕ!9^Õ!9^#VÕ!9^Õ!9^#VëÍ�Zë! 9ùë~#¶ÊÛ&!"`Ãá&!"`Ãê&!"`*`|µÊø&!Ãû&!É *BU!9^#VÕ!9^#V!åÍ5ZÑÑÑ!9^#VÕÍe"ÑÃÆ !å!å!9^#V!Í©^ë*ô_åÍZÑÑÑÉ **BUG** bad SD entry # %d in sd_delete()Í�Z! 9~#¶Â‡!É! 9^#V*ú_͆_`ëÍJ^DMÍ€ +åÝá`iëÍb_¼!`iÝåÑëÍc_ÊÇ!Å!:"åÍÐ;ÑÑÉ`iåýáÃî!ýåá#åýá+! 9å~#fo`ëás#rë ÿýåáÝåÑëÍb_Ê"!`å!ÍÐ;Ñ! 9^#Vë^ëÃx! 9^#Vë^Õ!tåÍÐ;ÑÑÛ!�åÍÐ;ÑÛ!ŒåÍÐ;ÑÛ!—åÍÐ;ÑÛ!¢åÍÐ;ÑÛ!­åÍÐ;ÑÛ!¸åÍÐ;ÑÛ!ÃåÍÐ;ÑÛÍ�_+6AL!W"b#m!ÎåÍÐ;Ñ!DMð`i#DM`iëÍb_Ê`i)))ë! 9~#fo~·Ê`i)))ë! 9~#foåÍ Ñ`iëÍb_Ê!ÑåÍÐ;Ñ9^#VBKÃ`i#DM!åÝáÃÝåá#åÝáÝåáëÍb_Êe`i~·Êe`i^!.Í7_Êe`i#DM+^ÕÍcZÑå!9å~#fo#ëás#rë+ÑsÃÃoÝåá#åÝáÝåáëÍb_Ê–! å!9å~#fo#ëás#rë+ÑsÃhÉÿÿÍ�Z!EåÍÐ;Ñ!9~#¶Ê·!måÍÐ;Ñ!~åÍÐ;Ñ!9~#¶ÊÑ!§åÍÐ;Ñ!¸åÍÐ;Ñ!DMÃæ`i#DM`iëÍb_Ê ! 9^#V`i^ÕÕ!9^#VÕ!Š,åÍÐ;ë! 9ù!9Í[Í[Í�\Í8^Í_}2`!9Í[Í[Í�\Í8^ÿÍ_}2`!9Í[Í[ÿÍð[Í8^}2`É *** illegal sector requested trk = %x, sec = %x; xebec address = %06lxÍ�Z!9^#V!ÍQ^ÊÞ,!9^#VÕ!-åÍÐ;ÑÑÉ!9^#V!Í<^}2`!å̓3Ñ!å:`o&G* sector count = %d in hd_xfer *BUG* bad controller type 0x%x in hd_xfer()Í�ZÍn'}2b&XÍ(_Êj'Í .ÉÍe5ÉÿÿÍ�Z*DM!iPYDM`i^!ÐÿëÍb_ʯ'!DM`i^!Í_«'!XÉ!É`i^!Ðÿ|µÂÉ'!ë!9sÃÒ'! ë!9s!å!å!2åÍãWÑÑÑDM!9^`iDM`i^!6Í_Â(9^#VÕ!9^#V!`åÍ5ZÑÑÑÃÏ!!å!`åÝåá`Í©^ë*ú_åÍZÑÑÑÉ **BUG** bad OS entry # %d in os_delete()üÿÍ�Z!ë! 9s#r!ë!9s#r!9^#V*ô_Í7_Ê)#!9å~#foèÿëás#r!9^#V! ^#V! 9s#r!9^#V! ^#VÕ!9^#V! ^áë!9s#r!9^#V!€Íc_Ê#!€ë!9å~#foë͆_ë! 9^#V!?~·Êo!ÖåÍÐ;Ñ!DMÃ(`i#DM`iëÍb_Êo`i)))ë! 9~#fo~·Êl`i)))ë! 9~#foåÍ Ñ!âåÍÐ;ÑÃ#É ODD OS 0x%x CP/M 2.2 CP/M 86 HiDos CCP/M MS-DOS 2.0MS-DOS 2.xMS-DOS 3.x êýÍ�ZÍ@ +ë!9s#r!9^#V!ºåÍÐ;ÑÑÃá! 9^#V!Í[Í8[!½åÍÐ;ÑÑÑ! 9^#V!^#VÕ!ÍåÍÐ;ÑÑ!9~#¶ÊD!DMÃY!PYDM`iëÍb_ÊD`i)))ë!9~#fo~·ÊD`iåÝáÃŒÝåá#åÝá`i###åÝåáÑëÍb_ÊÝåáëÍb_ÊÝåá)))ë!9~#fo~·Ê!åýáÃÓýåá#åýáýåáëÍb_ÊÝåá)))ë!9~#foýåÑ^Õ!Úå     å!9^#VÕÍ¿3ÑÑÑÍ/1Ê-!V-åÍ2ÑÉ *BUG* in just_read length = 0x%x, not multiple of 256just_readÍ�Z!9^#V!ÍQ^ʈ-!9^#VÕ!É-åÍÐ;ÑÑÉ!9^#V!Í<^}2`! å̓3Ñ!å:`o&å!9^#VÕÍï3ÑÑÑÍ/1ÊÈ-!.åÍ2ÑÉ *BUG* in just_write length = 0x%x, not multiple of 256ntroller * ;* * ;* (Note: this file contains both embedded * ;* tabs and blanks to minimize the list file * ;* width for printing purposes. You may wish* ;* to expand the blanks before performing *åá#åÝá+^Õýáýåá*Í(_ÊG=!à9å~#fo##ëás#rë++^#V!Ö9s#rÝåá#åÝá+^ÕýáÑ=!ë!Ö9s#rÝåá#åÝá+^Õýá!�a#^!Í_Ê‘=!Ö9^#V! Í©^ýåÑÐÿë!Ö9s#rÃR=ýåá.Í(_Ê2>Ýåá#åÝá+^Õýá!*Í(_Êâ=!à9å~#fo##ëás#rë++^#V!Ø9s#rÝåá#åÝá+^ÕýáÃ2>!ë!Ø9s#rÃþ=Ýåá#åÝá+^ÕýáýåásØ7!9^!ÍH_Ê%8!å*`åÍ_:ÑÑÃ(8ÍË9!ÉúÿÍ�Z!ºŽDM:`o&))))):Žë! 9s#r!9^#Vë))))å!9^ë+ëÍ<^ÑåÝá! 9^#Vë###^! 9s! 9^#V!^ë#ë!9s! 9^ÕÝåáÑëÍt^#ë! s!9^Õ! 9^ÕÝåáÑëÍJ^ÑëÍt^ë! s!9^Õ! 9^ÕÝåáÑëÍJ^ÑëÍJ^ë! 9s#r! 9^#Vë##:ÑÑ!å!åÍä:ÑÑÉÓÛÓo&µÉÅÓ>Ó>@ÓÓ!``6í°ÁÉÍ�Z!å̓3ÑÍ/1ÊT3!U3åÍ2ÑÉdo_recalÍ�Z!å̓3ÑÍ/1Êz3!{3åÍ2ÑÉq_readyÍ�Z! 9^ë}2`ÍM0Í1Í7_Ê­3!´3åÍO2Ñó3Íb0Í�0Écmd_hard_5!9Å^#V#F##NëPAåÕÍ1}Ñáþ Âë3ÛËgÊÞ3í²ÂÑ3Á}·É!9Å^#V#F##NëPAjust_writeþþÍ�ZÍ·.Â.!É:`o&ë!9s#r!}2`!å! `å!$9åͺ:ÑÑÑ! 9åÍ3/Ñ!å! 9å!å!å!åÍ(ë! 9ù! 9åÍ3/Ñ!*9^!ÿÍ(_Ê”.!}2`!@9åÍ3/Ñ!9^#Vë}2`!€å! 9å!:Žåͺ:ÑÑÑ!:ŽÉÿÿÍ�ZÍ3Í“/ë!9s{³Ê/Í1Í7_Êâ.!/åÍO2ÑÍb0!}2`Í�0Í/1Ê/! å!/åÍÐ; ;* major editing.) * ;********************************************* ; Copyright (C) 1980,1981 ; Digital Research, Inc. ; Box 579, Pacific Grove ; California, 93950 ; ; (Permission is hereby granted to use ; or abstractá�a#^!Í_Ê2>!Ø9^#V! Í©^ýåÑÐÿë!Ø9s#rÃð=!ë!Ô9s#rýåálÍ(_Êe>Ýåá#åÝá+^Õýá!ë!Ô9s#rÃ>ýåáhÍ(_Ê>Ýåá#åÝá+^ÕýáýåáÃ\?!ë!Ò9s#rú>! ë!Ò9s#rú>!ë!Ò9s#rú>!öÿë!Ò9s#r!Ô9^#VÕ!9å!Ö9^#VÕ!æ9^#VÕÍAë!9ù!Ð9s#r!Ô9^#V!à9å~#foëás#rÃ{?^ë+++å! 9^#VáÍc_ÊQ9!^9åÍÐ;Ñ!å!ºŽåÍ€;ÑÑ! 9^#Vë##^ë+++å:`o&å!�9åÍÐ;ÑÑÑÍö:! 9^#V! sÉ Mapping error in xlate_dms_cmd: (Max phys track on volume %x is %x)Í�Z!å!ÂŽåÍ_:ÑÑ:ÉŽ·ÊÇ9ÍË9!É!ÉÍ�Z!ê9åÍÐ;Ñ!å!ºŽåÍ€;ÑÑÍö:É HDSK error; buffer =åÕÍ1}ÑáþÂ4ÛËgÊ4í³Â4Á}·ÉÍ�ZÍÏ4Â/4!ÉÃA4!9å~#fo+ëás#r!9^#V!Íc_ÊÄ4!9^#VÕ!9^Õ!9^#VÕ!9^ÕÍi6ë!9ùÂ�4!É!€ë!9å~#foëás#r!9ån#ëás!€Íc_ÊÁ4!ë!9s!9å~#fo#ëás#rÃ24:`·ÊÎ4Í 5ÉÍ�Z*`|µÂù4!åÍ-VÑ"`|µÂù4!55åÍÐ;Ñ!É!ºŽDM!ÑÑÍM0ÃÎ.!9^ëÉdms15_upWaiting for hard disk %cÍ�Z! å̓3ÑÍt0!DMÃQ/`i#DM`iëÍÄ_Ê~/! 9å~#fo#ëás#rë+^Õ!åÍä:ÑÑÃL/Í/1ÊŒ/!�/åÍ2ÑÉxinitÍ�Z͹/£/!É!ÁåÍß2ÑÍ0µ/!É!ÉþÿÍ�Z!ë!9s#rÃÜ/!9å~#fo#ëás#r!9^#V!èÍb_Êÿ/Í3Í_Âü/!ÉÃÍ/! the following program in ; the implementation of CP/M, MP/M or ; CP/NET for the 8086 or 8088 Micro- ; processor) true equ -1 false equ not true ;********************************************* ;* * ;!à9å~#fo##ëás#rë++^#V!Ð9s#rÕÍZÑë!Ô9s#rÓ?!à9å~#fo##ëás#rë++^#VÕýáýåáå!9ë!Ò9s#rëÑsÃ{?Í�_c-?d¯>o…>s?u“>x¡>F?!9ë!Ð9~#fo͆_ë!Ô9s#r!Ô9^#V!Ø9~#foÍc_ʶ?!Ø9^#V!Ô9s#r!Ü9~#¶Ê@ÃÒ?!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍc_Ê@!Ú9^#VÕ`iÍ�ZÑ ÅÛ>QÓ x±Ê/:ÛæÊ :ÛþRÂ:!å!ºŽåÍ5:ÑÑÁÉ!¯ÁÉÅ!9Í„:ÊN:ÛæÂ@:í£Â@::–:=2–:ò@:Á!}´ÉÅ!9Í„:Êx:ÛæÊj:í¢Âj::–:=2–:òj:ÁÉ^#V#N#Fx2–:ëAx·ÉÍ�Z:`o&DM! 9^#Vë}2``iÉ! }´ÉÅ!9^#V#N#F#~#foÅDMáí°}´ÁÉ!9~2Þ:Ûo&µÉ!9~2ð:##~Óo&µÉÿÿÍ�Z!1;åë`is!ë! s:`oë! s!Më! sÍ:Ê-5ͦ9Â15!É!É Hard disk i/o error: can't allocate 1k bufferÍ�Z!å!åÍä:ÑÑ!}2ºŽÍ:Ê‹5ͦ9Â�5!É!€å!:ŽåÍ_:ÑÑ!:ŽÉÿÿÍ�Z!ë!9s!}2ºŽ:`o&å*`åÍ,8ÑÑÂÍ5!É!9^!Íb_ÊG6!9ån#ëásë+}µÊ÷5!‚"ÀŽÃý5!"ÀŽÍ:ÉþÿÍ�Z!ë!9s#rÃ&0!9å~#fo#ëás#r!9^#V!èÍb_ÊI0Í3Í_ÊF0!ÉÃ0!ÉÍ�ZÍð0!ÁåÍß2ÑÍ1ÉÍ�ZÍ1!AåÍß2ÑÉÍ�Z!åÍÕ:ÑÍ_ÂŽ0Ãz0ÉÍ�Z:`o&Í(_Ê´0:`o& Í_}2`Ít0!åÝá!`DMÃÌ0Ýåá#åÝáÝåáëÍb_Êï0`i#DM+^Õ!åÍä:ÑÑÃÅ0ÉÍ�ZÍ3Í_Ê* Loader_bios is true if assembling the * ;* LOADER BIOS, otherwise BIOS is for the * ;* CPM.SYS file. Blc_list is true if we * ;* have a serial printer attached to BLC8538 * ;* Bdos_int is interrupt used for earlier * ;* versions. ÿÿÍ(_Ê @!ÿÿÉÃÃ?!ë!Ò9s#rÃ-@!Ò9å~#fo#ëás#r!Ð9^#Vë~·Êz@!Ò9^#V!Ø9~#foÍb_Êz@!Ð9å~#fo#ëás#rë+^Õ`iÍ�ZÑÿÿÍ(_Êw@!ÿÿÉÃ@!Ò9^#V!Þ9å~#foëás#r!Ü9~#¶Âæ@ì@!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍc_Êæ@! å`iÍ�ZÑÿÿÍ(_Êã@!ÿÿÉÃ�@à Aýå`iÍ�ZÑÿÿÍ(_Êþ@!ÿÿÉ!ÞÍÐ;ÑÍÍAë!9s!Í(_Ê(;!];åÍÐ;Ñ!ÿÿåÍÞHÑ!9^ëÉ Hit RETURN to continue, to abort: Abnormal end at operator requestÍ�ZØ;!9å~#fo+ëás#r!9^#V!Íc_ÊÉ;! 9å~#fo#ëás#rë+^Õ!Ê;åÍÐ;ÑÑÉ;É%02x Í�Z!9å!9^#VÕ!!CåÍE<ÑÑÑÉÍ�Z! 9^#Vë"c!Â6!ë!9ånëásÃD6!å*`åÍ5:ÑÑͦ9ÂG6:ÉŽo&@Í7_ÊD6!ë!9ånëásÃÍ5!9^!ÍH_Êb6!}2`!ÉÍË9!ÉÿÿÍ�Z!9^ë+øÿÍ_#ë!9s!9^#V*`Í7_¾6:`o&å! 9^áÍ7_¾6:`o&å:`o&ÑÍ7_Êð6!9^Õ!9^#VÕÍU7ÑÑ!9^ë}2`!9^#Vë"`:`o}2`!9^Õ!9^á1Ãö0ÉÍ�ZÍ3Í_Â1à 1ÉÍ�ZÍt0Í3Í_ÉÍ�ZÍ1 Í7_ÊM1!k1åÍO2Ñ!ÿÉ!åÍÕ:ÑÍ_DMÍt0!åÍÕ:Ñ`iÉx_stat_rcvüÿÍ�Z!9^#VÕ!¸1åÍÐ;ÑÑ!Ö1åÍÐ;Ñ!å!`åÍ€;ÑÑ!è1åÍÐ;Ñ!å!6ŽåÍ€;ÑÑÉ Xebec controller error at %s command buffer: status buffer: Í�Z! * ;* * ;********************************************* loader_bios equ true blc_list equ true bdos_int equ 224 ;reserved BDOS Interrupt IF not loader_bios ;------------------- title '8086 Disk I/O Drivers' ;********************************************* ;* * ;* Basic Input/Output System (BIOS) for * ;* CP/M-86 Configured for iSBC 86/12 with * ;* the iSBC 204 Floppy Disk Co9å!9^#VÕ!$<åÍE<ÑÑÑDM!å*cÑs`iÉÍ�Z! 9^#VÕ*c#"c+Ñs!ÿÍ_É&ÿÍ�Z!æ9N#F!è9^#VÕÝá!ë!Þ9s#r!ê9^#V!à9s#rÝåá#åÝá+^Õýáz³ÊAýåá%Í(_Êé@!ë!9s!ë!Ü9s#r! ë!Ú9s#r!'ë!Ø9s#rÝn&åýá-Í(_Êè7!€åÅ!9^#VÕÍ5ZÑÑÑ!}2`ÃQ7!€å!9^#VÕÅÍ5ZÑÑÑ!ÉÿÿÍ�Z!ë!9s:`·Êu7Í 5Âu7!É!}2ºŽ!9^Õ!9^#VÕÍ,8Ñј7!É!9^!Íb_Ê8!9ån#ëásë+}µÊÂ7!‚"ÀŽÃÈ7!"ÀŽÍ:Âß7!ë!9ånëásÃ8ͦ9Â8:ÉŽo&@Í7_Ê8!ë!9ånëå̓3Ñ!å!å!6ŽåÍ¿3ÑÑÑÉÍ�ZÍù1! 9^#VÕÍv1ÑÍ/1ÊA2!E2åÍO2Ñ!ÿÉ!Éx_err_rcvÿÿÍ�ZÍ1ë!9s! 9^#VÕ!™2åÍÐ;ÑÑ!½2åÍÐ;Ñ!å!`åÍ€;ÑÑ!9^Õ!È2åÍÐ;ÑÑÍö:É Xebec controller fatal error in %s Command: SASI bus status: 0x%xÍ�Z!å!åÍä:ÑÑ! 9^Õ!åÍä     -------------------------- ;| | bios_code equ 2500h ccp_offset equ 0000h bdos_ofst equ 0B06h ;BDOS entry point ;| | ;--------------------------------------------- E | ;This is a BIOS for the LOADER push ds ;save data segment mov ax,0 mov ds,ax ;point to segment zero ;BDOS interrupt offset mov bdos_offset,bdos_ofst mov bdos_segment,CS ;bdos interrupt segment pop ds ;restorerupt vectors in low ; memory to address trap push ds ;save the DS register mov ax,0 mov ds,ax mov es,ax ;set ES and DS to zero ;setup interrupt 0 to address trap routine mov int0_offset,offset int_trap mov int0_segment,CS mov di,4 mcur sel drive jmp SELDSK ;select disk for next rd/write jmp SETTRK ;set track for next rd/write jmp SETSEC ;set sector for next rd/write jmp SETDMA ;set offset for user buff (DMA) jmp READ ;read a 128 byte sector jmp WRITE ;write a 128 esult fdc_rst equ base204+2 ;8271 out reset dmac_adr equ base204+4 ;8257 DMA base address out dmac_cont equ base204+5 ;8257 out control dmac_scan equ base204+6 ;8257 out scan control dmac_sadr equ base204+7 ;8257 out scan address dmac_mode equ base2NDIF ;not loader_bios IF loader_bios ;--------------------------------------------- ;| | bios_code equ 1200h ;start of LDBIOS ccp_offset equ 0003h ;base of CPMLOADER bdos_ofst equ 0406h ;stripped BDOS entr data segment ;| | ;--------------------------------------------- ENDIF ;loader_bios mov bx,offset signon call pmsg ;print signon message mov cl,0 ;default to dr A: on coldstart jmp ccp ;jump to coldov si,0 ;then propagate mov cx,510 ;trap vector to rep movs ax,ax ;all 256 interrupts ;BDOS offset to proper interrupt mov bdos_offset,bdos_ofst pop ds ;restore the DS register ;********************************************* ;* byte sector jmp LISTST ;return list status jmp SECTRAN ;xlate logical->physical sector jmp SETDMAB ;set seg base for buff (DMA) jmp GETSEGT ;return offset of Mem Desc Table jmp GETIOBF ;return I/O map byte (IOBYTE) jmp SETIOBF ;set I/O m04+8 ;8257 out mode dmac_stat equ base204+8 ;8257 in status fdc_sel equ base204+9 ;FDC select port (not used) fdc_segment equ base204+10 ;segment address register reset_204 equ base204+15 ;reset entire interface max_retries equ 10 ;max retries ony ;| | ;--------------------------------------------- ENDIF ;loader_bios csts equ 0DAh ;i8251 status port cdata equ 0D8h ; " data port IF blc_list ;---------------------------------------------  start entry of CCP WBOOT: jmp ccp+6 ;direct entry to CCP at command level IF not loader_bios ;--------------------------------------------- ;| | int_trap: cli ;block interrupts mov ax,cs mov ds,ax * ;* National "BLC 8538" Channel 0 for a serial* ;* 9600 baud printer - this board uses 8 Sig-* ;* netics 2651 Usarts which have on-chip baud* ;* rate generators. * ;* ap byte (IOBYTE) ;********************************************* ;* * ;* INIT Entry Point, Differs for LDBIOS and * ;* BIOS, according to "Loader_Bios" value * ;*  disk i/o ;before perm error cr equ 0dh ;carriage return lf equ 0ah ;line feed cseg org ccpoffset ccp: org bios_code ;********************************************* ;* * ;* BIOS Jump Vector ;| | lsts equ 41h ;2651 No. 0 on BLC8538 status port ldata equ 40h ; " " " " " data port blc_reset equ 60h ;reset selected USARTS on BLC8538 ;| | ;------ ;get our data segment mov bx,offset int_trp call pmsg hlt ;hardstop ;| | ;--------------------------------------------- ENDIF ;not loader_bios ;********************************************* ;*  * ;********************************************* mov al,0FFh out blc_reset,al ;reset all usarts on 8538 mov al,4Eh out ldata+2,al ;set usart 0 in async 8 bit mode mov al,3Eh out ldata+2,al ;set usart 0 to 9600 baud mov al,37h  * ;********************************************* INIT: ;print signon message and initialize hardware mov ax,cs ;we entered with a JMPF so use mov ss,ax ; CS: as the initial value of SS:, mov ds,ax ; DS:, mov es,ax ; and ES: ;use local stack for Individual Routines * ;* * ;********************************************* jmp INIT ;Enter from BOOT ROM or LOADER jmp WBOOT ;Arrive here from BDOS call 0 jmp CONST ;return console keyboard status --------------------------------------- ENDIF ;blc_list ;********************************************* ;* * ;* Intel iSBC 204 Disk Controller Ports * ;* * ;** * ;* CP/M Character I/O Interface Routines * ;* Console is Usart (i8251a) on iSBC 86/12 * ;* at ports D8/DA * ;* * ;*********************** out ldata+3,al ;enable Tx/Rx, and set up RTS,DTR ;| | ;--------------------------------------------- ENDIF ;not loader_bios IF loader_bios ;--------------------------------------------- ;|  during initialization mov sp,offset stkbase cld ;set forward direction IF not loader_bios ;--------------------------------------------- ;| | ; This is a BIOS for the CPM.SYS file. ; Setup all inter jmp CONIN ;return console keyboard char jmp CONOUT ;write char to console device jmp LISTOUT ;write character to list device jmp PUNCH ;write character to punch device jmp READER ;return char from reader device jmp HOME ;move to trk 00 on ******************************************* base204 equ 0a0h ;SBC204 assigned address fdc_com equ base204+0 ;8271 FDC out command fdc_stat equ base204+0 ;8271 in status fdc_parm equ base204+1 ;8271 out parameter fdc_rslt equ base204+1 ;8271 in r     ********************** CONST: ;console status in al,csts and al,2 jz const_ret or al,255 ;return non-zero if RDA const_ret: ret ;Receiver Data Available CONIN: ;console input call const jz CONIN ;wait for RDA in al,cdata and al ;no, dr_rdy: ; then we just retry read or write dec rtry_cnt jnz retry ; up to 10 times ; retries do not recover from the ; hard error mov ah,0 mov bx,ax ;make error code 16 bits mov bx,errtbl[BX] call pmsg ;print appropriate message command jmps r_w_common WRITE: mov al,0ah ;basic write sector command r_w_common: mov bx,offset io_com ;point to command string mov byte ptr 1[BX],al ;put command into string ; fall into execute and return execute: ;execute command strifset dp_base return: ret HOME: ;move selected disk to home position (Track 0) mov trk,0 ;set disk i/o to track zero mov bx,offset hom_com call execute jz return ;home drive and return if OK mov bx,offset bad_hom ;else print call pmsg ;"Hgs ; Routine to get and echo a console character ; and shift it to upper case uconecho: call CONIN ;get a console character push ax mov cl,al ;save and call CONOUT pop ax ;echo to console cmp al,'a' jb uret ;less than 'a' is ok cmp,7fh ;read data and remove parity bit ret CONOUT: ;console output in al,csts and al,1 ;get console status jz CONOUT ;wait for TBE mov al,cl out cdata,al ;Transmitter Buffer Empty ret ;then return data LISTOUT: ;list device output  in al,cdata ;flush usart receiver buffer call uconecho ;read upper case console character cmp al,'C' je wboot_l ;cancel cmp al,'R' je outer_retry ;retry 10 more times cmp al,'I' je z_ret ;ignore error or al,255 ;set code for permanent errong. ;[BX] points to length, ; followed by Command byte, ; followed by length-1 parameter bytes mov last_com,BX ;save command address for retries outer_retry: ;allow some retrying mov rtry_cnt,max_retries retry: mov BX,last_com call sendome Error" jmps home ;and retry SETTRK: ;set track address given by CX mov trk,cl ;we only use 8 bits of track address ret SETSEC: ;set sector number given by cx mov sect,cl ;we only use 8 bits of sector address ret SECTRAN: ;translate s al,'z' ja uret ;greater than 'z' is ok sub al,'a'-'A' ;else shift to caps uret: ret ; utility subroutine to print messages pmsg: mov al,[BX] ;get next char from message test al,al jz return ;if zero return mov CL,AL call CONOUT  IF blc_list ;--------------------------------------------- ;| | call LISTST jz LISTOUT ;wait for printer not busy mov al,cl out ldata,al ;send char to TI 810 ;| r exec_exit: ret dr_nrdy: ;here to wait for drive ready call test_ready jnz retry ;if it's ready now we are done call test_ready jnz retry ;if not ready twice in row, mov bx,offset nrdymsg call pmsg ;"Drive Not Ready" nrdy01: call test_com ;transmit command to i8271 ; check status poll mov BX,last_com mov al,1[bx] ;get command op code mov cx,0800h ;mask if it will be "int req" cmp al,2ch jb exec_poll ;ok if it is an interrupt type mov cx,8080h ;else we use "not command bector CX using table at [DX] mov bx,cx add bx,dx ;add sector to tran table address mov bl,[bx] ;get logical sector ret SETDMA: ;set DMA offset given by CX mov dma_adr,CX ret SETDMAB: ;set DMA segment given by CX mov dma_seg,CX ret ; ;print it inc BX jmps pmsg ;next character and loop ;********************************************* ;* * ;* Disk Input/Output Routines * ;* * ;**** | ;--------------------------------------------- ENDIF ;blc_list ret LISTST: ;poll list status IF blc_list ;--------------------------------------------- ;| | in al,lsts and al,81h ;look at_ready jz nrdy01 ;now loop until drive ready jmps retry ;then go retry without decrement zret: and al,0 ret ;return with no error code wboot_l: ;can't make it w/ a short leap jmp WBOOT ;********************************************* ;* usy" and al,0fh cmp al,0ch ;unless there isn't mov al,0 ja exec_exit ; any result ;poll for bits in CH, exec_poll: ; toggled with bits in CL in al,fdc_stat ;read status and al,ch xor al,cl ; isolate what we want to poll jz exec_po GETSEGT: ;return address of physical memory table mov bx,offset seg_table ret ;********************************************* ;* * ;* All disk I/O parameters are setup: the * ;* Read and Write entry ***************************************** SELDSK: ;select disk given by register CL mov bx,0000h cmp cl,2 ;this BIOS only supports 2 disks jnb return ;return w/ 0000 in BX if bad drive mov al, 80h cmp cl,0 jne sel1 ;drive 1 if not zero m both TxRDY and DTR cmp al,81h jnz zero_ret ;either false, printer is busy or al,255 ;both true, LPT is ready ;| | ;--------------------------------------------- ENDIF ;blc_list ret PUNCH: ;not imp * ;* The i8271 requires a read status command * ;* to reset a drive-not-ready after the * ;* drive becomes ready * ;* * ;******************ll ;and loop until it is done ;Operation complete, in al,fdc_rslt ; see if result code indicates error and al,1eh jz exec_exit ;no error, then exit ;some type of error occurred . . . cmp al,10h je dr_nrdy ;was it a not ready drive ? points transfer one * ;* sector of 128 bytes to/from the current * ;* DMA address using the current disk drive * ;* * ;********************************************* READ: mov al,12h ;basic read sector ov al, 40h ;else drive is 0 sel1: mov sel_mask,al ;save drive select mask ;now, we need disk parameter address mov ch,0 mov bx,cx ;BX = word(CL) mov cl,4 shl bx,cl ;multiply drive code * 16 ;create offset from Disk Parameter Base add bx,oflemented in this configuration READER: mov al,1ah ret ;return EOF for now GETIOBF: mov al,0 ;TTY: for consistency ret ;IOBYTE not implemented SETIOBF: ret ;iobyte not implemented zero_ret: and al,0 ret ;return zero in AL and fla     *************************** test_ready: mov dh, 40h ;proper mask if dr 1 test sel_mask,80h jnz nrdy2 mov dh, 04h ;mask for dr 0 status bit nrdy2: mov bx,offset rds_com call send_com dr_poll: in al,fdc_stat ;get status word test al,åwr db 0 ;read/write function code trk db 0 ;track # sect db 0 ;sector # hom_com db 2,29h,0 ;home drive command rds_com db 1,2ch ;read status command ; System Memory Segment Table segtable db 2 ;2 segments dw tpa_seg ;1st seg starts after BIOS------------------------- ENDIF ;loader_bios IF not loader_bios ;--------------------------------------------- ;| | signon db cr,lf,cr,lf db ' System Generated - 11 Jan 81',cr,lf,0 ;|  dmac_adr,al ;send low byte of DMA mov al,ah out dmac_adr,al ;send high byte mov ax,dma_seg out fdc_segment,al ;send low byte of segment address mov al,ah out fdc_segment,al ;then high segment address dma_exit: mov cl,[BX] ;get count 80h jnz dr_poll ;wait for not command busy in al,fdc_rslt ;get "special result" test al,dh ;look at bit for this drive ret ;return status of ready ;********************************************* ;* *  title 'LDCOPY Ver 1.1 Oct 81' vers equ 10 ; Copyright, (C) 1981 ; Digital Research, Inc. ; P.O. Box 579 ; Pacific Grove, CA 93950 ; LDCOPY is used to generate and propagate bootable CP/M-86 systems. ; It copies a CP/M-86 Loader image dw tpa_len ;and extends to 08000 dw 2000h ;second is 20000 - dw 2000h ;3FFFF (128k) include singles.lib ;read in disk definitions loc_stk rw 32 ;local stack for initialization stkbase equ offset $ lastoff equ offset $ tpa_seg equ (lasto | ;--------------------------------------------- ENDIF ;not loader_bios bad_hom db cr,lf,'Home Error',cr,lf,0 int_trp db cr,lf,'Interrupt Trap Halt',cr,lf,0 errtbl dw er0,er1,er2,er3 dw er4,er5,er6,er7 dw er8,er9,er inc BX mov al,[BX] ;get command or al,sel_mask ;merge command and drive code out fdc_com,al ;send command byte parm_loop: dec cl jz exec_exit ;no (more) parameters, return inc BX ;point to (next) parameter parm_poll: in al,fdc_stat te;* Send_com sends a command and parameters * ;* to the i8271: BX addresses parameters. * ;* The DMA controller is also initialized * ;* if this is a read or write * ;* * ;*************** (either from a disk file, or from ; the system tracks of an existing CP/M-86 system diskette) to a new ; diskette. ; The following equates will require modification for different ; diskette formats. For convienence, they are only referenced ; by aff+0400h+15) / 16 tpa_len equ 0800h - tpa_seg db 0 ;fill last address for GENCMD ;********************************************* ;* * ;* Dummy Data Section * ;* A,erB dw erC,erD,erE,erF er0 db cr,lf,'Null Error ??',0 er1 equ er0 er2 equ er0 er3 equ er0 er4 db cr,lf,'Clock Error :',0 er5 db cr,lf,'Late DMA :',0 er6 db cr,lf,'ID CRC Error :',0 er7 db cr,lf,'Data CRC Error :',0 er8 db cr,lst al,20h ;test "parameter register full" bit jnz parm_poll ;idle until parm reg not full mov al,[BX] out fdc_parm,al ;send next parameter jmps parm_loop ;go see if there are more parameters ;********************************************* ;* ****************************** send_com: in al,fdc_stat test al,80h ;insure command not busy jnz send_com ;loop until ready ;see if we have to initialize for a DMA operation mov al,1[bx] ;get command byte cmp al,12h jne write_maybe ;if pair of data bytes near the end of the data segment. ; In addition, the skew table in the data area will need modification. sdspt equ 26 ; number of sectors per track sdlt equ 2 ; " of tracks for loader ; *********** * ;********************************************* dseg 0 ;absolute low memory org 0 ;(interrupt vectors) int0_offset rw 1 int0_segment rw 1 ; pad to system call vector rw 2*(bdos_int-1) bdos_offset rw 1 bdos_segment rw 1 f,'Drive Not Ready :',0 er9 db cr,lf,'Write Protect :',0 erA db cr,lf,'Trk 00 Not Found :',0 erB db cr,lf,'Write Fault :',0 erC db cr,lf,'Sector Not Found :',0 erD equ er0 erE equ er0 erF equ er0 nrdymsg equ er8 rtry_cnt db 0 ;disk e * ;* Data Areas * ;* * ;********************************************* data_offset equ offset $ dseg org data_offset ;contiguous with c not a read it could be write mov cl,40h jmps init_dma ;is a read command, go set DMA write_maybe: cmp al,0ah jne dma_exit ;leave DMA alone if not read or write mov cl,80h ;we have write, not read init_dma: ;we have a read or write operation*************** ; * ; * global equates ; * ; ************************** bdosint equ 224 ;BDOS interrupt number false equ 0 true equ not false cr equ 0dh ;carriage return lf equ 0ah ;line feed sdndisks equ 16 ; maximum num END åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååårror retry counter last_com dw 0 ;address of last command string dma_adr dw 0 ;dma offset stored here dma_seg dw 0 ;dma segment stored here sel_mask db 40h ;select mask, 40h or 80h ; Various command strings for i8271 io_com db 3 ;length rd_ode segment IF loader_bios ;--------------------------------------------- ;| | signon db cr,lf,cr,lf db 'CP/M-86 Version 1.1',cr,lf,0 ;| | ;--------------------, setup DMA controller ; (CL contains proper direction bit) mov al,04h out dmac_mode,al ;enable dmac mov al,00 out dmac_cont,al ;send first byte to control port mov al,cl out dmac_cont,al ;load direction register mov ax,dma_adr out     ber of drives sdsecsiz equ 128 ; size of each sector tpa equ 100h fcbaddr equ 5ch fcbname equ fcbaddr + 1 ;1st char of file name fcbtype equ fcbaddr + 9 ;file type fcbcr equ fcbaddr + 32 ;current record cseg jmp start db ' COPYRIGHT (C) cr jne reboot1 ;local jmp then to reboot, >128 ;typed a cr, ok to ignore call crlf jmp rwsec endtrk: ;end of track mov cx,spt ;sectors per track call multsec ;*secsiz mov bx,dmaddr ;base dma for this track add bx,cx k mov sector,-1 ;counts 0, 1, 2, . . . 25 ;sector incremented before read or write rwsec: ;read or write sector inc sector ;to next sector mov bx,sector ;current sector cmp bx,spt ;sectors per track jz endtrk ;read or write sectoall done if cr jz pboot ;this is normal program exit point mov ah,al ;save ascii drive letter sub al,'A' ;make it a number cmp al,ndisks jb putc call baddisk ;invalid drive name jmp putldr ;to try again putc: mov pdisk,ah ;drive letcx ;don't read to far jz don or al,al ;0 if read ok jnz badrd add dx,secsiz ;inc dma by sector size jmp rdinp don: ret badrd: ;read error encountered in input file mov dx,offset badfile call crmsg jmp reboot ; ************1981, DIGITAL RESEARCH ' rs 100h ; Emergency Patch Area (DRI) ; *********************** ; * ; * program begins here ; * ; *********************** start: mov ax,ds mov es,ax mov dx,offset signon call outmsg cmp byte ptr .fcbname,'  ;+ spt * secsiz mov dmaddr,bx ;ready for next track jmp rwtrk ;for another track endrw: ;end of read or write, return to caller ret reboot1:jmp reboot ;farther than 128 bytes ; *************************************r to or from l_5: ;current dma address mov si,offset tran add bx,bx ; double sector number mov cx,[bx+si] ;xlate to physical sector push si push cx call sec ;set up sector number pop cx pop si mov bx,[si] sub cx,bx ;tran(sector)-ter in message call sel ;select dest drive in al mov dx,offset putmsg call crmsg ;check with user for ok call getchar cmp al,cr ;user mistake if not cr, reboot jnz pboot call crlf mov rewr,1 ;set to write for getput call getput ;to p************** ; * ; * getldr: get CP/M loader from 1st N tracks ; * ; ************************** getldr: mov dx,offset askget call crmsg ;which drive is source on ? call getchar ;must get from disk - not from memory mov ah,al ;save asci' jz gl ;check for file given on command line call getfile ;read ldr from file jmp ps gl: call getldr ;read ldr from 1st 2 tracks ps: call putldr ;put ldr on " " " jmp reboot ; *************************** ; * ; * getfile: get the **** ; * ; * utility subroutines ; * ; **************************************** ; ;***** multsec: ;cx * sector size push dx ;return value in cx mov ax,secsiz mul cx mov cx,ax pop dx ret ;***** baddisk: mov dx,offset qdisk ;bad distran(0) call multsec ;cx * sector size add cx,dmaddr ;base of dma for this track ;+(tran(sector)-tran(0))*secsiz call dma ;dma address set from cx ;dma address set, clear retry count trysec: ;try tut loader back on diskette mov dx,offset done call outmsg jmp putldr ;for another put operation pboot: jmp reboot ;back to cp/m ; *********************** ; * ; * getput: get or put loader (rewr=0 for read, 1 for write) ; * disk is already i char sub al,'A' ;normalize drive number cmp al,ndisks ;valid drive? jb getc ;skip to getc if so call baddisk ;invalid drive number jmp getldr ;to try again getc: mov gdisk,ah ;ascii drive letter for message call sel ;to select the drfile specified in command tail into ram ; * ; *************************** getfile: cmp byte ptr .fcbtype,' ' jnz opn mov byte ptr .fcbtype, 'C' mov byte ptr .fcbtype + 1,'M' mov byte ptr .fcbtype + 2,'D' opn: mov dx,fcbaddr ;try to opk name call crmsg ret ; ********************** ; * ; * bdos subroutines ; * ; ********************** bdos: int bdosint ret ;function numbers in cl reset equ 0 ;warm boot coni equ 1 ;console input cono equ 2 ;console output pro read or write current sector or rewr,0 ;read or write? jz tryread ; Start of Patch 02 3/08/82 by rld as per DRI instructions mov cl,00 mov ax,track inc ax cmp ax,nlt jne normal_write mov ax,sector inc ax cmp ax,spt jne normal_writselected ; * ; *********************** getput: mov bx,offset loadp ;load point in ram for cp/m during LDCOPY mov dmaddr,bx ;clear track to 00 mov track,-1 ;start with track equal -1 rwtrk: ;read or write next track inc track ;track =ive in al call crlf mov dx,offset getmsg call outmsg ;make sure right drive call getchar cmp al,cr ;user mistake, no cr jnz gboot call crlf mov rewr,0 ;set to read for getput call getput mov dx,offset done call outmsg ret gboot:en it call open inc al ;255 becomes 00 jnz rdok ;ok to read if not 255 mov dx,offset nofile call crmsg ;file not present, error and reboot jmp reboot rdok: mov byte ptr .fcbcr,0 ;current record = 0 mov dx,offset loadp ;base of buffer str equ 9 ;print string rconb equ 10 ;read console buffer self equ 14 ;select disk openf equ 15 ;disk open setdmaf equ 26 ;where data will go dreadf equ 20 ;disk read biosf equ 50 ;bios call reboot: mov al,0 call sel call crlf moe mov cl,01 Normal_Write: ; End of Patch 02 installed rld 8/30/82 ;must be write call write jmp chkrw ;check for error returns tryread: call read chkrw: or al,al jz rwsec mov dx,offset errmsg call outmsg call getchar cmp al, track + 1 mov cx,track cmp cx,nlt ;number of loader tracks = current track ? jnz nxttrk ;end of this routine > 128 bytes jmp endrw ;end of read or write ;otherwise notdone, go to next track nxttrk: mov cx,track call trk ;to set trac jmp reboot ;back to cp/m ; ******************************* ; * ; * putldr: put CP/M loader on 1st N tracks ; * ; ******************************* putldr: mov dx,offset askput call crmsg ;what drive to put ldr call getchar cmp al,cr ; mov cx,maxsecs ;sector count rdinp: push cx push dx ;ready for dma call bdma ;bdos dma function mov dx,fcbaddr ;ready for read call dread pop dx ;recall dma address pop cx ;recall sector count cmp al,1 ;check for eof jz don dec      v cl,reset mov dl,0 ; release memory jmp bdos ;**** getchar: ;get an upper case char into al call getbuf ;use buffered console read cmp conbuf+1,0 ;just a crlf? mov al,cr jz ex mov al,conbuf+2 ;first char read cmp al,'a' ;translates constructed automatically by the ; GENCMD utility). ; CPMLDR may be read into any segment that does not ; overlap the desired system load segment as it makes ; all memory references using copies of the CS: register ; it is entered with. false åfor double density dw 0,0,0,0,0,0,0,0 dw 0,0,0,0,0,0,0,0 dw 0,0,0,0,0,0,0,0 dw 0,0,0,0,0,0,0,0 ; (64 extra bytes reserved) ; ************************* ; * ; * variables ; * ; ************************ bds: ;bios data structure fnumn sel: ;select disk given by register a mov cl,al mov al,seldsk jmp bios ;**** trk: ;set up track mov al,settrk ;offset for settrk entry jmp bios ;gone to settrk ;**** sec: ;set up sector number mov al,setsec jmp bios ;*** to upper case if lower jb ex cmp al,'z' ja ex and al,5fh ;it is lower, make upper ex: ret ;**** getbuf: ;read console buffer mov cl,rconb mov dx,offset conbuf jmp bdos ;**** putchar: ;write character from al to console movequ 0 true equ not false cr equ 0dh lf equ 0ah lbios_offset equ 1200h ; offset of LBIOS biosoff equ 2500h ; offset of BIOS from start of CPM.SYS ; this is the entry point into CPM.SYS bootdrv equ 0 ; boot drive always zero å rb 1 ;storage for bios parameters bcx rw 1 ;the bdos bios func puts these bdx rw 1 ;in registers before jumping to bios nlt dw sdlt ;number of loader tracks spt dw sdspt ;sectors per track ndisks db sdndisks ;number of disks secsiz dw * dma: ;set dma address to value of cx mov al,setdma jmp bios ;**** read: ;perform read operation mov al,readf jmp bios ;**** write: ;perform write operaton mov al,writf jmp bios ; ************************** ; * ; * data are dl,al mov cl,cono jmp bdos ;**** crlf: ;send carriage return, line feed mov al,cr call putchar mov al,lf call putchar ret ;**** crmsg: ;print message addressed by dx til zero ;with leading crlf push dx call crlf pop dx  ; 128 bytes of CPM.SYS lbdosoff equ 406H ;location of LBDOS in LOADER bdos_int equ 224 ;lbdos interrupt number ; dummy section for interrupt vectors dseg 0 org 0 abs_zero rw 2*bdosint bdos_offset rw 1 bdos_segment rw 1 ; bdos  title 'CP/M-86 Loader' ; The CPMLDR consists of this module along with the ; LDRBDOS and LBIOS. ; CPMLDR resides on the first two tracks of a ; CP/M-86 system diskette and is brought into memory ; by the ROM bootstrap loader to load initiate CP/sdsecsiz ;sector size maxsecs dw sdlt * sdspt ;maximum sectors to read from file sdisk rb 1 ;selected disk for current operation track rw 1 ;current track rewr rb 1 ;read if 0,write if 1 sector rw 1 ;current sector dmaddr dw 0 ;current dma addas ; * ; ************************** dseg org 0100h ; skip past page zero ;messages signon db 'LDCOPY VERS ' db vers/10+'0','.',vers mod 10+'0','$' askget db 'Source Drive Name $' getmsg db 'Source On ' gdisk rs 1 ;filled in at get ;drop thru to outmsg0 ;**** outmsg: mov cl,prstr jmp bdos ;dx has string addr ;**** bdma: ;dx has address mov cl,setdmaf jmp bdos ;**** dread: ;disk read function mov cl,dreadf jmp bdos ;**** open: ;file open function mov cfunction numbers coutf equ 2 pstrf equ 9 seldsk equ 14 openf equ 15 readsf equ 20 dmaf equ 26 dmabf equ 51 ;******************************* ;* ;* CPMLDR starts here ;* ;******************************* cseg org 0 ; JMPM-86 ; It opens the file 'CPM.SYS' using the LDRBDOS and LBIOS ; and then reads it into memory. Finally, a jump to the BIOS ; initialization entry point starts CP/M-86 ; The first 128 byte record of the CPM.SYS file is a header ; with the followinress retry rb 1 ;number of tries on this sector conbuf db 30 rb 32 ;console buffer ;make stack on even address loadp rs sdsecsiz*sdspt*sdlt db 0 ; force out last data segement byte end function db ', Then Type Return$' askput db 'Destination Drive Name (Or Return To Reboot) $' putmsg db 'Destination On ' pdisk rs 1 ;filled in at put function db ', Then Type Return$' errmsg db 'Permanent Error, Type Return To Ignore$' done db 'l,openf jmp bdos ;**** bios: mov fnum,al ;bios function number mov bcx,cx mov bdx,dx mov dx,offset(bds) mov cl,biosf jmp bdos ; **************************** ; * ; * bios utilities ; * ; **************************** seldsk equ 9 F to here from boot ROM jmp LBIOS ; allow loader BIOS to ; initialize start: ; loader BIOS jumps here xor ax,ax ! mov ds,ax ; temp DS at absolute zero mov bdos_offset,lbdosoff ; to patch in interrupt table mov bdos_segment,g format: ; ty rb 1 ;seg type (not used here) ; len rw 1 ;length (not used here) ; abs dw ldrstart ;absolute segment address for LOADER ; min rw 1 ;minimum mem (not used here) ; max rw 1 ;max mem needed (not used here) ; (This header record iåFunction Complete$' qdisk db 'Invalid Drive Name$' nofile db 'No Source File On Disk$' badfile db 'Source File Read Error$' ;translate table tran dw 1,3,5,7,9,11,13,15,17,19,21,23,25 dw 2,4,6,8,10,12,14,16,18,20,22,24,26 ;leave room ;wboot+24 for disk select settrk equ 10 ;wboot+27 for set track function setsec equ 11 ;wboot+30 for set sector function setdma equ 12 ;wboot+33 for set dma address readf equ 13 ;wboot+36 for read function writf equ 14 ;wboot+39 for write functio     cs ; offset and segment mov ax,cs ! mov ss,ax ; make ss, ds, es = cs mov ds,ax ! mov es,ax mov sp,offset(stack) ; set up local stack call initlbdos ;warm up lbdos and lbios call openfnc ;open CPM.SYS cmp al,255 ! jne perr ; inPè,þ¢Àu¸€P‹j�‡P°€PèUþëÍ€>t¸ŽPèfý‹jƇÇjÿë®Çj ]ÃU‹ì¸£z£|£~¢$¢%Æ¢|£€¢€>wŠ·ÑãLJ‚þuåèÇxÇpÆèÞ¢<uéAèÑPèÍPènþ£t€>–uJè¼¢ÿtƃ>tt4ÿt袢"<uèö¢<ÿt Š·ˆ‡eëÿ6"¯¯„°ðœXúŒÙŽÑ�&HP�è~+É‹ÑÍàU‹ì‹V‹NÍà]Â0102821100654321Disk$' rerr db cr,lf,'Error In Reading CPM.SYS$' segment db cr,lf,'Segment Address = $' lenmsg db cr,lf,' Last Offset = $' crlf db cr,lf,'$' ; vector for jmpf indirect to start CP/M bios dd abs_zero ; (dummy value) org offset bioseft 4 push cx ! push ax ; save crucial registers call pnib ; print hex nibble pop ax ! pop cx ; restore registers dec ch ! jnz lhex ; and loop four times ret pnib: ;print low nibble in AL as hex char and al,0fh ! cmp al,9 ja p10 ;abovsure good file mov dx,offset nofile ! call msg ; no CPM.SYS file jmp stop ; then halt the machine perr: mov dx,cs ! call setdmab mov dx,offset page1 ! call setdma ;read first page of CPM.SYS call read mov ax,word ptr page1+3 ;get abs fiècþëÅ€>˜u&°PèPèePèaPèþŠ$·Ñ㉇Jƒ.tþ$€>šté�è;´£~ÿtÆŠ·Š‡e´9~°ÿu@þÈP€û°ÿv@Y"ÁÐØrÕþ°Pèàƒ>ttBèî´£~èæþÈ¢´ÑàP ± öá[‹�J‰Ã�j þÀP ± öá‰ÃYˆ�iƒ.të·€>„u èâƒ.tè¯ÿ6tè~é­þÆ <w3± öá‰Ãƒ¿jU‹ì°´PPèŠÿ]ÃU‹ì‰à£H»€�‡–‰Ä¸£pÇn@¢¢ÆÇj¸\P¸ðP°!Pè*¸ûP¸ùP°Pè¸ðPèw€>ÿu¸ÿPè(¸P¸eP°Pèù¸\P蟸\Pèȸ\PèF€>ÿu¸ëèëè覸\Pè=€>ÿu¸-PèÛèVè@ÿ]ÃU‹ì ¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢¢]à ; overlay preceding with DW's biosstart dw biosoff ; first word is BIOS offset ldseg rw 1 ; second is segment to put CPM.SYS fcb db 0,'CPM ','SYS',0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 org (offset $+1) and 0FFFEh ; even address fe 9 ? add al,'0' ;digit jmp prn p10: add al,'A'-10 ;char a-e prn: mov dl,al ;****** putchar: mov cl,coutf jmp sys_vec ;****** initlbdos: mov cl,seldsk ! mov dx,bootdrv ; select boot disk jmp sys_vec ;****** openfnc: mov cl,opeld from header mov ldseg,ax ; save it and mov dx,ax ! call setdmab ; set DMA segment for disk IO mov dx,offset segment ! call msg ; put memory map on console mov ax,ldseg ! call phex ; print base system segment ; mov dx,0 ;offset of Ct ‹‡jƒÀ%ðÿ¾1Ò÷ö‰‡jƒ¿nu‰‡nþuƸiP¸€P°€Pè<ü¸€Pè‡û¸\PèûûÀtèmûè¸êPè.û %þÀPèãúè°ú]ÃU‹ì¡p@;v ¸˜Pè ûè‚ùŠF‹n‹6pˆ]ÂU‹ì¡p@;°ÿr@ŠöÑ"ÁÐØs‹n‹6pÆÿpëÔ]ÃU‹ì¸ÀPè»úÿ6xè�ú¸ÏPè­úÿ6pèú¸ÞPèŸúè1¡x;ps ¨uè!‹n‹6xU‹ì°PŠF´Pè‡þ]ÂU‹ì° Pèäÿ° PèÞÿ]ÃU‹ì€~ v ŠFA, ëŠF0PèÁÿ]ÂU‹ìŠF±ÒèPèÓÿŠF$PèÊÿ]ÂU‹ì‹FˆàPèÙÿ‹FPèÒÿ]ÂU‹ì° Pÿvèþ]ÂU‹ìèˆÿÿvèäÿ]ÂU‹ì¸kPèæÿÿvèÐÿ¸sPèÉÿÿ6pè«ÿèJþ]ÂU‹ì¸ƒPèÑÿ]ÃU‹ì°PÿvèÄý]ÂU‹ì°Pÿvè´ý¢]ÂU‹ì°Pÿvè¡ý¢]ÂU‹ì°or stack rw 32 stack equ offset $ dseg org stack page1 rb 128 ; dummy section for BIOS init label org lbios_offset lbios: end enf ! mov dx,offset fcb ; fcb already initialized mov cl,openf jmp sys_vec ;******** ; setdma: ;set new dma addr in dx mov cl,dmaf jmp sys_vec ;******** ; setdmab: ; set new dma segment base from DX mov cl,dmabf jmp sys_vec ;PM in segment readit: call setdma ; set DMA offset for push dx ! call read ; next sector read cmp al,01H ! je done ; check for EOF cmp al,0 ! je prerr ; check for good write mov dx,offset rerr ! call msg ; print READ ERROR message ÿ0è=úÿx° Pèðùë×èþùèèø]ÃU‹ìèóùÿ6xè7ú°:PèÓù° PèÍù]ÃU‹ìÿ6’è‡ú¸\PèûúÀtèmúþ%]ÃU‹ìÇ’@¡’ƒÀ‹|�Á@;Áw èÄÿ�’€ëãè¹ÿ]ÃU‹ìèKü¢& &]ÃU‹ì¡tH£tƒøt èÜÿPè¿þÿpëç¡p;|vH£|]ÃU‹ìè½ÿPè¹ÿPèZû¹÷áPè¬ÿ´YÁ£p]ÃU‹ìÆ'€>'wè�ÿŠ'·ˆ‡(ÿtþ'PÿvèŽý¢]ÂU‹ì°P¸Pèzý¢]ÃU‹ì°Pÿvèiý]ÂU‹ì°PÿvèYý]ÂU‹ì°PÿvèIý]ÂU‹ì°Pÿvè9ý¢]ÂU‹ì°Pÿvè&ý]ÂU‹ìŠFþȈF<ÿt‹^Š‹^ˆÿFÿFëâ]ÂU‹ìètþÆ ´;lw‰Æÿ´€èHþþuæ°?Pè<þèLþè6ý]ÃU‹ì¡l@£lŠ€µ;Áw‰ÆŠ„€]ð ]ÃU‹ì€~ s° ëŠF,a<å****** ; pcrlf: mov dx,offset crlf ;print carriage return, line feed ;****** ; msg: ;print msg starting at dx until $ mov cl,pstrf ;print string function jmp sys_vec ;***** ; read: mov dx,offset fcb ! mov cl,readsf ; jmp sys_vec ; jmp stop ; hard stop on any error prerr: pop dx ! add dx,80h ; address for next record jmp readit done: mov dx,offset lenmsg ! call msg ; print length message pop ax ! dec ax ! call phex ; print last address call pcrlf ; and a crlf uâÆ'ë€'rB€>'w;Æ!Æ <w!Š'Ø·Š�M´‰Ã:�(tÆ!þuØ€>!të·°ÿ]à'þÀ´¹1Ò÷ñ]ÃU‹ìÆ. .:Fwèÿ¢ÿtþ.uè]ÂU‹ìÇl¾Š„€¢èmú‹6lŠ„€¢< tÿlëë]ÃU‹ìèPú€> u]ÃèI<ÿuèÉù€>0s€>]t€> uè±ùèðëÍ€>0uÆë¿€>0 s€f_ŠF]ÂU‹ìè¹ÿPèÕÿ¢€> tï]ÃU‹ìŠF´±ÓàŠNµ Á]ÂU‹ìÆ€>w Š·:‡fu°]Ãþuà°]ÃU‹ìŠF,0< vŠF,A<v°ÿëŠF,A ]ÂU‹ìÇrè6ÿ¢èžÿöÐÐØs(ÿ6è½ÿ¢<ÿuèæþëÞ¡r¹÷ኵÁ£rëÉ¡r]ÃU‹ì¡j@£j=ÿw‰ÃЇ]ÃÇjë�j€rJ�>jÿwB¸ðå****** ; sys_vec: int bdos_int ret ;****** ; stop: hlt ; hard stop 8086 for error jmp stop ;******************************** ;* ;* DATA AREA ;* ;******************************** nofile db cr,lf,'The File CPM.SYS Not Found On This  jmpf bios ; leap to BIOS initialization ;***************************** ;* ;* subroutines ;* ;***************************** ;****** phex: ;print 4 hex characters from ax mov cx,0404h ; 4 in both CH and CL lhex: rol ax,cl ; rotate l     uÆë±Æëª]ÃU‹ìÆ3€>3w1èúÐØs Š3·Æ‡5 ë Š3·ˆ‡5è‡ùPè£ù¢þ3uÈÆ0Æ4Æ2€>0 °ÿr@"4ÐØsWÆ2Æ1 1<°ÿv@"2ÐØs' 0±öáŠ1·Š�5“‰Æ:ˆtÆ2ëÍþ1ëÇ 2ÐØsÆ4ë�þ0ë— 4ÐØsÆ0ÿ 0]ÃU‹ì€>]°ÿu@P€> °ÿu@Y"ÁÐØspèù€>+"!6*& ~Í}µÆÿŸõ:<2O>‘Ÿ/ÁH¡Ò7à !5ÍÀ >Í}µÊ­͹ o&" *&Í>+å  å͹ =2O!  ÑÍý Áå!+  Áq#p:< *&õÍ>+ ÁHq*++"Ã@:þ„ÂÃÍý *++"ÍÈ *MÍÀ Ã5!6>!¾Úg  *&Í>+  >͈µÊ`  *&Íÿ UÍÿÃ*Íè Í Íâ\ÍO:ëþÿÂ*mÍÿÍ{ÍÉ:Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2Ú2ÚÉ!Ûq*Û&ëÍÉ Ík ÍkÉ!Üq> !ܾҡ:ÜÆAÖ OÍkê:ÜÆ0OÍkÉ!Ýq:ÝæøO͆:ÝæO͆É!ßp+q*Þ|OÍ«*Þ}OÍ«É!áp+q*àë ÍÉ!ãp+qÍ{*âDMÍÝÉ!åAuèƒùP 0± öá‰ÃY‰�lëÆ€>Mu(èhùP 0± öá‰ÃY‰�n 0þÀP 0± öá‰ÃYˆ�ië—€>Xuè9ùP 0± öá‰ÃY‰�pëãè4øè˜õëÛ]Ã>+  >Í ÕðÿÍë!Íá+s#r *&Í>+  >͈µÂ`  *&Í>+ å Ñå!ãN#Fáq#p!4ÂÒ+Å€€ÍÔ€Í,\Í¡þʇ Í%͈ *Íí:7ÍfµÊé ͹ OÍœ *æ#"æÃÈ æÍpÒü *æ+"É͹ *#"ÃãÉÍ{!6Ö:Í}Ú3*&€ NÍk!4Â?ÍkÍ{ÍÉ*Ö#"Ö:€ÍfÚX*Ö€ ~É> ÉÉ!q:þ Òk> É:ÖaþÒ}:æ_2:ÉÍ?OÍ\2:þ  Í?OÍ\2ËÉ!s+q*&Í`:ÍRÉ!6>!¾Úà*&¦ :¾ÂÙ>É!4½>É! q: Ö0O> ¹Úù: Ö0É: ÖAO>å COPYRIGHT (C) 1982, DIGITAL RESEARCH [], ERROR: $, LOAD ADDRESS $DISK WRITE$DICODE DATA EXTRASTACKX1 X2 X3 X4 8080 NZERONHEADCGROUPDGROUPEGROUPSGROUPõ͹ _ÁHÍ¡))))å͹ _á"æÉ!<6>!<¾ÚD ͹ *<&= w*+"!<4 !<6>!<¾Ú® Ãc :<Æ2<ÒI î !6!6>!¾Ú  :<!†O!ï å*&= Ѿʙ !6!4Âm :þ« ñ ÃU >ÿÉ:<<_!Í{É!Cq!D6:C!D¾Úç ͹ 2*+"!D4ÂÉ É!"Ö€ ~2Í�*Ö€ ¹Ò>ÿÉ: ÖAÆ É!" Í?2͸ÚS*MÍã2þÿÂ8Í ÃJ* ))))å*&Á " Í?2Ã* É*Ô#"ÔÿÍiÚp*ÔÓ ~É!"Ôÿ!ÔÍ‹ÚØÕ€*Ô"ÔÒvÃØ²Í‘2 þ¸€Å*ÔÓ DM€ÍÔÃÕ: þÊÆÎÍÿ*ÔÓ 6!ÿ"ÔÃ…!"Ô:ÓÉ!"""}2627!Ó62|o&1¶͈Í0102821100654321 COPYRIGHT (C) 1982, DIGITAL RESEARCH [], ERROR: $, LOAD ADDRESS $DISK WRITE$DISK READ$INSUFFICIENT MEMORY TO CREATE CMD FILE $SK READ$INSUFFICIENT MEMORY TO CREATE CMD FILE $LOAD ADDRESS $ERROR ADDRESS $BYTES READ:$RECORDS WRITTEN $ABSCANNOT OPEN SOURCE$CMDNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$~2þ Ê *Ö#"ÖÃù ÉÍ�:þ  ÉÍ} þÿÂ+ Í :FþÒT :Ö]ÖŸõ:Ö ÖŸÁH±ÒN Í ÍM Ãy :FþÂd !Ø6Ãy :Fþ Ât !Ù6Ãy !è6à É!I6>!I¾Ú¾ ͸Ò  *I&K 6 ÷ *I&K :wÍ?OÍ\2!I4‚ !F6!J6!H6:FÖ Ÿ!J¦Ò= !H6+6>!G–Ÿ/#¦Ò' *G&K å*F""2>!¾Ú&*&$) >w#6!4ÂÍÆ !"!"æ! 6͹ 2þÂHÃÍ͹ õ͹ _ÁHÍ¡":þ–¹͹ 2*+"!6>Í}µÊ¹*+"͹ 2þ«Í 2þÿʨ*& :wò*MÍÀ !4Ãr:þ˜ÂîÍÀ ͹ õ͹ _ÁHÍ¡å*6& ) Áq#p*++"!64:þšÂ­͹ o&"*LOAD ADDRESS $ERROR ADDRESS $BYTES READ:$RECORDS WRITTEN $ABSCANNOT OPEN SOURCE$CMDNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$ÍÉ!9"¶!Ðù!"æ!Ð"ä!Ø6#6!è6!"Ô\Å!²ÍÔ;Å»ÍÔ²Í<:ëþÿÂÞ?ÍÿRÅeÍÔ\Í�\ͱ\Í<:ëþå      &Í>¸ å*G&Á Á ¾Ê !H6Ã$ !G4Ãã :HÒ6 !J6Ã: !F4ÃÍ :JÒI !F6ÿ:FÉ:Ö]ÆÿŸõ:Ö ÆÿŸÁH¡Òú Í�:þAÂŽ Í å*F&Í>+  Áq#pÃ÷ :þMÂË Í å*F&Í>+  Áq#p:F< *F&õÍ>+ ÁHqÃ÷ :þXÂñ Í å*F&Í>+  Áq#pÃ÷ Í ÍÃM Éi`N#Fend of read command, all errors end-up here ; ; error: mov dx,offset errmsg call print jmp ready ; ; BDOS entry subroutine bdos: int 224 ;entry to BDOS if by INT 224 ret ; abort: ;return to CCP mov cl,0 loop ; not end, store character mov byte ptr [bx],al inc bx ;next to fill loop rloop ;decrement cx ..loop if not 0 erloop: ; end of read loop, store 00 mov byte ptr [bx],0h ; ; write the record to selected record number me it mov cl,makef mov dx,offset fcb call bdos inc al ;err 255 becomes zero jnz ready ; ; cannot create file, directory full mov dx,offset nospace call print jmp abort ;back to ccp ; 12 ;return version number openf equ 15 ;file open function closef equ 16 ;close function makef equ 22 ;make file function readr equ 33 ;read random writer equ 34 ;write random ; ; Equate�oˆgÉë_ë…oŒgÉ_{¥oz¤gÉDM!>õ)ë—)ë�‘o|˜gÒ8 ñ=Â&ÉDM!>)ë)ëÒM =ÂEÉ_{µoz´gÉ^#Vë) Â`É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉCODE DATA EXTRASTACKX1 X2 X3 X4 8080 NZERONHEADCGROUPDGROUPEGROUcall bdos ;use function 0 to end execution ; ; utility subroutines for console i/o ; getchr: ;read next console character to a mov cl,coninp call bdos ret ; putchr: ;write character from a to consoleov cl,writer mov dx,offset fcb call bdos or al,al ;error code zero? jz ready ;for another record jmps error ;message if not ; ; ; ; end of write command, process read ; ; notw: ; not a write command, rea ; loop back to "ready" after each command ; ready: ; file is ready for processing ; call readcom ;read next command mov ranrec,dx ;store input record# mov ranovf,0h ;clear high byte if set cmp al,'Q' ;quit? jnz s for non graphic characters cr equ 0dh ;carriage return lf equ 0ah ;line feed ; ; ; load SP, ready file for random access ; cseg pushf ;push flags in CCP stack pop ax ;save flags in AX cli ;disable interruPSGROUP mov cl,conout mov dl,al ;character to send call bdos ;send character ret ; crlf: ;send carriage return line feed mov al,cr ;carriage return call putchr mov al,lf ;line feed call putchrd record? cmp al,'R' jz ranread jmps error ;skip if not ; ; read random record ranread: mov cl,readr mov dx,offset fcb call bdos or al,al ;return code 00? jz readok jmps error ; ; read w notq ; ; quit processing, close file mov cl,closef mov dx,offset fcb call bdos inc al ;err 255 becomes 0 jz error ;error message, retry jmps abort ;back to ccp ; ; ; end of quit command, process write ; pts mov bx,ds ;set SS register to base of DATA group mov ss,bx ;set SS, SP with interrupts disabled mov sp,offset stack ; for 80888 push ax ;restore the flags popf ; ; CP/M-86 initial release returns the file ; system version number of å ret ; print: ;print the buffer addressed by dx until $ push dx call crlf pop dx ;new line mov cl,pstring call bdos ;print the string ret ; readcom: ;read the next commandas successful, write to console readok: call crlf ;new line mov cx,128 ;max 128 characters mov si,offset buff ;next to get wloop: lods al ;next character and al,07fh ;mask parity jnz wloop1 jmp ready ;for another command if 00 wloop1: ; notq: ; not the quit command, random write? cmp al,'W' jnz notw ; ; this is a random write, fill buffer until cr mov dx,offset datmsg call print ;data prompt mov cx,127 ;up to 127 characters mov bx,offset buff ;d2.2: check is ; shown below for illustration purposes. ; mov cl,version call bdos cmp al,20h ;version 2.0 or later? jnb versok ; bad version, message and go back mov dx,offset badver call print ; ;**************************************************** ;* * ;* Sample Random Access Program for CP/M-86 * ;* * ;******************************** line to the conbuf mov dx,offset prompt call print ;command? mov cl,rstring mov dx,offset conbuf call bdos ;read command line ; command line is present, scan it mov ax,0 ;start with 0000 mov bx,offset conlin readc: mo push cx ;save counter push si ;save next to get cmp al,' ' ;graphic? jb skipw ;skip output if not graphic call putchr ;output character skipw: pop si pop cx loop wloop ;decrement CX and check for 00 jmp ready ; ; ; estination rloop: ;read next character to buff push cx ;save loop conntrol push bx ;next destination call getchr ;character to AL pop bx ;restore destination pop cx ;restore counter cmp al,cr ;end of line? jz er jmp abort ; versok: ; correct version for random access mov cl,openf ;open default fct mov dx,offset fcb call bdos inc al ;err 255 becomes zero jnz ready ; ; cannot open file, so creat******************** ; ; BDOS Functions ; coninp equ 1 ;console input function conout equ 2 ;console output function pstring equ 9 ;print string until '$' rstring equ 10 ;read console buffer version equ !     v dl,[bx] ;next command character inc bx ;to next command position mov dh,0 ;zero high byte for add or dl,dl ;check for end of command jnz getnum ret ; not zero, numeric? getnum: sub dl,'0' cmp dl,10 ;carry if numeric jnb endrd you made a backup of your Control Area (Partition 0) Enter the name of the file to be erased (or press ESC to go back to main menu) --> Invalid input!That file is not in System Directory. You have asked to ERASE this file: This file is NEEDED by tååå mov cl,10 mul cl ;multipy accumulator by 10 add ax,dx ;+digit jmps readc ;for another char endrd: ; end of read, restore value in a and return value in bx mov dx,ax ;return value in DX mov al,-1[bx] cmp al,'a' ;chehese OS's: This file is NEEDED to boot these products: PRODUCT #%d (%s) ARE YOU SURE YOU WANT TO ERASE IT Removing file from System Directory. The ERASE procedure will take a few seconds. WARNING!!! DO NOT TOUCH THE COMåååck for lower case jnb transl ret transl: and al,5fH ;translate to upper case ret ; ; ; Template for Page 0 of Data Group ; Contains default FCB and DMA buffer ; dseg org 05ch fcb rb 33 ;default file control block ranrec rw 1 ;PUTER UNTIL THE ERASE IS COMPLETED. DO NOT INTERRUPT THIS ERASE!!! Erasing...... Erase is complete.úÿÍ�Z!ë!9s#rÍéåýá*`ë! 9s#r!DMÃl”`i#DM! 9å~#foëás#r`iýåÑëÍb_Ê •! 9^#Vë#ë! 9s#r!åÝáì”Ýåá#åÝá!ë! 9å~#foëás#rÝåáëÍb_Ê•!å! 9ñËŽØ –òþÍ�Z!‘åÍÐ;Ñ!J‘åÍÐ;Ñ!ƒ‘åÍÐ;Ñ!¤‘åÍIÑÊÿŽ!½‘åÍIÑÂ�É!÷‘åÍÐ;Ñ! ’åÍÐ;Ñ! 9åÍ&ÑDM*ì_|µÊ(�!DMx±Â8�!M’åÍÐ;ÑÃI�! 9^!Í(_ÊI�Éx±Ê�! 9åͰ Ñë!9s#rz³Âu�!]’åÍÐ;Ñ!¸ åͳÑÉ! 9åÍñ Ñë!9s#r!ƒ’åÍÐ;Ñ!9^#V!Í7_å!9^#VÕ!9^#VÕÍ—ÑÑÑ!9å! 9åÍ•ÑÑåårandom record position ranovf rb 1 ;high order (overflow) byte buff rb 128 ;default DMA buffer ; ; string data area for console messages badver db 'sorry, you need cp/m version 2$' nospace db 'no directory space$'^#VÕ!9^#VÕÍ[YÑÑÑ•! 9^#Vë^Õ! 9å~#fo#ëás#rë+)ë!9~#foÑs#rÕÒ”ÃU”!9^#VëÉôÿÍ�Z!ë!9s#r*ú_ë!9s#rÍ€ ë! 9s#r!ë!9s#rÃX•!9å~#fo#ëás#r!9^#V! 9~#foÍb_Ê –!ë!9s#rÊ•!9å~#fo#ëás#r!9^#V!Íb_Ê–!å!9^#Vë)))å!9^#V!`Í©^Ñë!9~#fDM|µÊ'�!§’åÍÐ;Ñ!åÝáÃà�Ýåá#åÝáÝåáPYëÍb_Ê'�Ýåá)ë!9^#V!`Í©^ë*ú_ë!9s#r!9^#VÕÍ Ñ!Ï’åÍÐ;ÑÃÙ�!9å! 9åÍ+”ÑÑDM|µÊ“�!Ú’åÍÐ;Ñ!åÝáÃU�Ýåá#åÝáÝåáPYëÍb_Ê“�Ýåá)ë!9^#Vë)Ò_^#VÕÝåá)ë! 9^#VÕ! “åÍÐ;ÑÑÑÃN�!'“åÍÐ;Ñ!)“åÍIѧ�É!K“åÍÐ;Ñ! 9åÍ Ñ![“åÍÐ;Ñ!åå datmsg db 'type data: $' errmsg db 'error, try again.$' prompt db 'next command? $' ; ; ; fixed and variable data area ; conbuf db conlen ;length of console buffer consiz rs 1 ;resulting sizoå!9^#VÕÍ[YÑÑÑ–!9^#VÕ! 9å~#fo#ëás#rë+)ë!9~#foÑs#rÖÃ{•ÃI•!9^#VëÉ`i"¦–!¢– s# y°Â –Ý"¨–ý"ª–á"¤–Ñ!9"¢–*2Žå–Í(_áÊU–:1ŽwÍËŽëÃu–åËŽÍ(_áÊ|–ån–í°á:1ŽwÍÎŽë*¤–ååëÉÿÿ!9s#r*¦–DMÝ*¨–ý*ª–!9^#V*¢–ùÃu–““åÍÐ;Ñ!ΓåÍÐ;Ñ!”åÍÐ;Ñ!9^#VÕÍçÑ!9^#VÕÍP Ñ!9^#VÕÍv!Ñ!ð_åÍÒ Ñ!ö_åÍÒ Ñ!”åÍÐ;ÑÉ This is the ERASE option. WARNING!!! ERASING IS A DANGEROUS PROCESS. IF INTERRUPTED IT COULD CORRUPT YOUR ENTIRE CONTROL AREA DIRECTORY. Do you want to continue Haveå disks 2 diskdef 0,1,26,6,1024,243,64,64,2 diskdef 1,0 endef ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååe after read conlin rs 32 ;length 32 buffer conlen equ offset $ - offset consiz ; rs 31 ;16 level stack stack rb 1 db 0 ;end byte for GENCMD end "     ñËŽ– Ì¢þÿÍ�ZÍ-�ë!9s#r*î_|µÊíŽ!+�åÍÐ;ÑÉ!9^#VëÃ�Í –Ã'�Í=ŸÃ'�Í!”Ã'�Íà�Ã'�Í�_AøŽEþŽL�T �'�ÃÑŽÉ ýÿÍ�Z!"î_!«�åÍÐ;Ñ!Á�åÍÐ;Ñ!û�åÍÐ;Ñ!6�åÍÐ;Ñ!c�åÍÐ;Ñ!¡�åÍÐ;Ñ!å! 9åÍëÑÑë!9s#r!Íc_Â9�!9~#¶Ê˜�!Û�!"î_! 9^ÕÍcZÑÉ PRODUCT TABLE MENUÉ!9^#V!Í,^ë*v_É There is no room in the Control Area Directory for the new entry that this file would require.÷ÿÍZ!9^#V!ͺ^ë! 9s#r!9^#VÕ!9^#V! Ñs#r!9~#¶Ê1¬!9^#V! ^#VÕ!9^#V! Ñs#r!9^#V! ^Õ!9^#V! Ñsé­Í@ ë!9s#r!9^#Vproduct %02x --> There is no file named %c in the Control Area Directory. I cannot accept it into the Product Table.ùÿÍ�Z!f åÍÐ;Ñ!– åÍÐ;Ñ!å!å͉ÑÑÍ8^ë! 9s*î_|µÊrŸÉ! 9^ÕÍ|“Ñë! 9s#rz³Â”Ÿ!Ê åÍÐ;ÑÉ!¡åÍÐ;ÑÍÛ”! 9^#VÕÍZ•Ñ! 9^Õ!0¡åÍÐ;ÑÑ! 9^this:You have asked to modify this Product Table entry:The modified Product Table entry looks like this:Loader ProgramLogin ProgramOS Menu Program Would you like to see the list of possible product types Enter Product Type Number you want to add or  PRODUCT TYPE TABLE Í�Z!ò”åÍÐ;Ñ!&•åÍÐ;ÑÉ Product Boot Loader Login Program OS Menu ------- ----------- ------------- -------úÿÍ�Z!9^#Vë^Õ! –åÍÐ;ÑÑ!ë! 9s#r!9^#Vë#ë!9s#rã•! 9å~#fo#ëás#r! 9^#V!Íb_Ê –!–åÍÐ;Ñ!ë!  A - ADD/MODIFY Add or modify a Product Table entry. E - ERASE Erase an entry from the Product Table. L - LIST List the Product Table. T - TYPES Display Product Types for DMS equipment. Enter your choice (Press RETURN!Í,^ë*v_èÿë!9s#r!9~#¶Êå¬!9^#V! ^#VÕ!9^#V! ^#VÕ!9^#V! ^á+€ëÍ¿]Ñå!9^#V! Ñs#r!9^#V! ^#VÕ!9^#V! ^á+€ëÍÔ]#å!9^#V! Ñsà ­!å!9^#V! Ñs#r!å!9^#V! Ñs!9^#V! ^#VÕ!9^#V! ^!9~#fo+ëÍn^Ñë! 9s#r!ë)Ò_^#VÕ!j¡åÍÐ;ÑÑ! 9^ÕÍ¢ÑÊóŸ!‘¡ë!9s#rÃþŸ!•¡ë!9s#r!9^#VÕ!œ¡åÍÐ;ÑÑ!Ü¡åÍIÑ ÉÍéë! 9s#r!åå!å!9^#VÕÍZÑÑÑ! 9^#VÕ!å!å!å*`åÍë! 9ù!ü_åÍÒ ÑÉ Enter Product Type Number you want to delete. (Press RETURN to go back to the Product Memodify. (Press RETURN to go back to the Product Menu) --> The Product Type Table is full -- you cannot make any more entries. This is an unusual condition and may indiindicate a corrupted Control Area or a program bug. You have asked to add an entr9s#rÃØ•! 9å~#fo#ëás#r! 9^#V!Íb_Ê –!9å~#fo#ëás#rë+^Õ!–åÍÐ;ÑÑÃɕÔ•É %02x %cÑÿÍ�Z!‡™ë!9s#r!Ç™ë!9s#r!ú™ë!9s#r!,šë! 9s#r!;šë! 9s#r!Išë! 9s#r!YšåÍIÑÊv–Íà�!“šåÍÐ;Ñ!ÉšåÍÐ;Ñ!å!å͉ÑÑÍ8^ë!39s#r*î_|µÊ§–É!39^#V!Íc_ÊÇ–!39^#V! to go back to Main Menu) --> Í�Z!v‘åÍÐ;Ñ!¥‘åÍÐ;Ñ!Ñ‘åÍÐ;Ñ!è‘åÍÐ;ÑÍ!&’åÍÐ;Ñ!e’åÍÐ;Ñ!¡’åÍÐ;Ñ!¶’åÍÐ;ÑÍ!Ê’åÍÐ;Ñ!Ý’åÍÐ;Ñ!õ’åÍÐ;ÑÍ! “åÍÐ;Ñ!“åÍÐ;Ñ!6“åÍÐ;ÑÍ!I“åÍÐ;Ñ!\“åÍÐ;ÑÍÜ É Product Type codes for various DMS computers (Press any key to stop or r9^#V! ^!9~#fo+̓^#ë! 9s*¯�ëÍ¿]+ë!9s#r! 9^#V!9~#foÍæ^Ê©­!­­åÍS;Ñ!â­åÍS;Ñ!®åÍS;ÑÍx!É There is no room in the Control Area for this file. You can make more room by deleting some files or by running EXPAND.`i"t°!p° s# y°Â5®Ý"v°ý"nu) --> There is no entry for that product type in the table. You have asked to delete this product type: If you delete this entry, machines of Product Type %02x (i.e. %s) will not be able to log in.AREare no Currently there %s machines of that y for product type %02x (%s). Is this correct Program names entered here should be eight characters or less. Press ESC to return to the Product Menu. Press RETURN to keep current choice.Í�Z! 9^#VÕ!¯œåÍÐ;ÑÑÍÛ”!9^#VÕÍZ•Ñ!´œåÍIÑÉ %s Is this corÍb_ÂÍ–!ÃЖ!ë!9s{³ÂÞ–Íà�!9~·Êv–!39^#VÕÍ|“Ñë!9s#r!9^#V!Í(_ë!29s!29~·Ê†—Íéë!9s#r!(ÍG_ÊR—!ýšåÍÐ;Ñ!5›åÍÐ;Ñ!m›åÍÐ;ÑÍÜ !ë!9s×!39^#Vë)Ò_^#VÕ!59^#VÕ!£›åÍÐ;ÑÑÑ!ß›åÍIÑë!9sá—!9^#VÕ!9^#VÕÍ€œÑÑë!9s!9~·Â¬—ëÉ!39^#V!9s!ð›åÍÐ;Ñ!estart listing) Prod. Type Models ---------- ---------------------------------------------- 1 DMS-3, 3/101, 3/102, 3/103, 3/4004, 3/4008, 3/501, 3/A25, 3/B, 3/F (Fox), 15, 5080 2 DMS-4 3 ñËŽš Ö•üÿÍ�Z!ë! 9s#r!ë!9s#r!fåÍ@�Ñë! 9å~#foëás#r!fåÍ»’Ñë! 9å~#foëás#r! 9~#¶Êc�! 9^#VÕ!��åÍÐ;ÑÑ!¿�åÍÐ;ÑÍÜ !påÍ@�Ñ!å�åÍÐ;ÑÍ!påÍ»’Ñ!ç�åÍÐ;ÑÃk�!é�åÍÐ;ÑÍÌ•ë!9s#r!9~#¶Ê‘�!9^#VÕ!�åÍÐ;ÑÑÍÜ !=�åÍÐ;ÑÉ FOUND (%d) ERRORS IN THE TABLES. Atype in the Machine Table. ARE YOU SURE YOU WANT TO DELETE THIS ENTRYûùÍ�Z! 9"^£!Z£åÍc Ñ! 9ë! 9s#r!ë!9s#rÃ_¢! 9å~#fo ëás#rëôÿ!9å~#fo#ëás#rë+!9^#V!€Íb_ÊÈ¢!9^Õ! 9^#V!^! 9sáÍ(_Ê•¢!É! 9^!Íb_ÂÈ¢! 9^!åÍ(_ÂÈ¢! 9^!ÍcrectÍ�Z!9^#VÕ!9^#VÕ!9^#VÕÍ]�ÑÑÑ �!9~#¶Ê�!å!9^#VÕ!9^#VÕÍ5ZÑÑÑ!É!<�åÍÐ;ÑÃÌœ!9^#Vë^!Í(_Ê8�!É!ÉEnter a file name (or ESC) --> ôÿÍ�Z!ë! 9s#r!ë! 9s#r!9^#VÕ!9^#VÕ!§žåÍÐ;ÑÑÑ! å!å!9åÍZÑÑÑ!å!9åÍëÑÑë!9s#rz³ÂÅ�0œåÍÐ;Ñ!29~·Ê�˜!39^#VÕ!9å!å!9^#VÕÍÆœë!9ùÊU˜!39^#VÕ!$9å!å!9^#VÕÍÆœë!9ùÊU˜!39^#VÕ!,9å!å!9^#VÕÍÆœë!9ùÊU˜!9å!9^#VÕÍ€œÑÑÂ[˜!Ã^˜!ë!9s!9^#V!Í©^ë*`ë!9s#rÃ2™!ZœåÍÐ;Ñ!39^#VÕ!9å!9^#Vë#å!9^#VÕÍÆœë!9ùÊ#™!39^#VÕ!$9å 1280 4 3/C 5 86, 5086 6 5016 7 816 8 PC Adapter 9 16B A 808 B Apricot Adapter úÿÍ�Z*`ë! 9s#rÍéë!9s#r!ë! 9s#rÃΓ! 9å~#fo#ëás#rë+! 9å~#fony key stops/restarts ERROR REPORT. THERE ARE NO ENTRY ERRORS IN THE TABLES. Found (%d) files that may not be needed. òÿÍ�Z!ë!9s#r*ú_ë!9s#rÍ€ ë!9s#r!ë! 9s#rÖ�! 9å~#fo#ëás#r!9å~#fo`ëás#r! 9^#V!9~#foÍb_ʯ‘!ë!9s#r!9^#V!_ÂÈ¢Ã7¢!É`i"d£!`£ s# y°ÂÙ¢Ý"f£ý"h£á"b£Ñ!9"`£*2ŽåÌ¢Í(_áÊ£:1ŽwÍËŽëÃ.£åËŽÍ(_áÊ5£å'£í°á:1ŽwÍÎŽë*b£ååëÉÿÿ!9s#r*d£DMÝ*f£ý*h£!9^#V*`£ùÃ.£ !É! 9^!Í(_Êç�!å!9^#VëÑs!É!9^#VÕ!9åÍßÑÑ!9^#VÕͰ Ñ”ž!ë! 9s#r!ÔžåÍÐ;Ñ!ë!9s#rÃ8ž!9å~#fo#ëás#r!9^#V!Íb_Ê„ž!9^#V!9~#fo^! Í7_Ê„ž!9^#V!9~#fo^Õ!îžåÍÐ;ÑÑÃ)ž!ñžåÍÐ;Ñ!ŸåÍÐ;Ñ! 9~#¶Ên�!9^#VëÉ Enter name of the %s for !9^#V! å!9^#VÕÍÆœë!9ùÊ#™!39^#VÕ!,9å!9^#V!å!9^#VÕÍÆœë!9ùÊ#™!9å!9^#VÕÍ€œÑÑÂ)™!Ã,™!ë!9s!9~·Ê†™!å!9^#VÕ!9åÍ5ZÑÑÑ!29~·Ê~™!9^#Vë#å!å!å!å*`åÍë! 9ù!ü_åÍÒ ÑÉThe Product Table entry which you have created looks like ëás#rëçÿ! 9^#V!9~#foÍb_Êÿ“! 9^#Vë^!9~#foÍ7_Êÿ“æ“! 9^#V!9~#foÍb_Ê”! 9^#VëÉ!ÉúÿÍ�Z!¾”åÍÐ;ÑÍÛ”Íéë!9s#r*`ë! 9s#r!ë! 9s#rÃ~”! 9å~#fo#ëás#rë+! 9å~#foëás#rëçÿ! 9^#Vë~·Ê²”! 9^#V!9~#foÍb_ʲ”! 9^#VÕÍZ•ÑÍÃV”!Ù”åÍÐ;ÑÍÜ É #     ë! 9s#r!ë!9s#rÃù�!9å~#fo#ëás#r!ë! 9å~#foëás#r!9^#V!Íb_ʬ‘!9^#Vë)))ë!9~#fo~·Ê¬‘! 9^#VÕͰ Ñ©‘!9å~#fo#ëás#r!9^!pÍ(_Ê©‘!9^#V!Í(_Ê€‘!¸‘åÍÐ;Ñ!ä‘åÍÐ;Ñ!’åÍÐ;ÑÍ! 9^#VÕ!9å~#fo#ëás#rÕ!9^#VÕÍ1’ÑÑÑÍÃ×�Ãu�!9^#VëÉ These en9å~#fo+ëás#rëÑs! 9å~#fo#ëás#rÃ.–! 9^Õ!9å~#fo#ëás#rë+Ñs! 9å~#fo+ëás#rÃ.–Í�_›•§• Œ• Œ•˜•§•ä•ÃV•!ÿå!åÍÅWÑÑÿÍ_ë!9s{³ÂR–Ã1–!9^! Í(_Âr–!9^! Í(_Ê~–!¬–åͰ–Ñ!É!9^!Í(_ •Ã1–ÉEnter Password: $ $^C$ $Í�Z! 9^#VÕ! ÊÝ�!9^#VÕ!9^#VÕÍš“ÑÑ"ß–ÉÃ|�!þÿ"ß–É Sorry, this program requires BIOS 2.248 or greater. Sorry, your system has an old style password table, to upgrade to the new style run the password utility PW version 1.1 or later. GetPW called with bad utility nPUTER UNTIL THE ERASE IS COMPLETED. DO NOT INTERRUPT THIS ERASE!!! Erasing...... Erase is complete.úÿÍZ!ë!9s#rÍéåýá*‚_ë! 9s#r!DMÃî“`i#DM! 9å~#foëás#r`iýåÑëÍå^Ê�”! 9^#Vë#ë! 9s#r!åÝáÃ.”Ýåá#åÝá!ë! 9å~#foëás#rÝåáëÍå^ÊŠ”!å! 9ñËŽ† Â�ÿÿÍ�Z!�åÍÐ;Ñ!R�åÍÐ;Ñ!~�åÍÐ;Ñ!å! 9åÍëÑÑ!9^ÕÍcZÑOÍ(_Ê�Í8�Ã�ͨ�ÍÜ É To list the OPERATING SYSTEM TABLE type 'O'. Any other key starts list of Control Area Directory. (Any key stops or restarts listing) --> Í�Z!�åÍÐ;ÑÍ<*ô_DM!tries in the OS table refer to non-existent files: OS Filename Missing Files ----------- -------------Í�Z!9^#V!ÍQ^Í(_ÊU’!ª’åÍÐ;Ñ!9^#V!Í(_Ê}’! 9^#V!åÍ Ñ!¬’åÍÐ;Ñ!9^#V!Í(_Ê•’!±’åÍÐ;Ñ!9^#VÕÍ Ñ!·’åÍÐ;ÑÉ òÿÍ�ZåÍÅWÑÑÉPSWDCORE Version 1.1ac;ÑÍÜ !ë!9s×!39^#Vë)T_^#VÕ!59^#VÕ!%›åÍS;ÑÑÑ!a›åÍIÑë!9sÃ#—!9^#VÕ!9^#VÕÍœÑÑë!9s!9~·Â.—ëÉ!39^#V!9s!r›åÍS;Ñ!umber = %d Automatic Password checking in effect Í�Z*á–|µÂ&’!å!î–å!å!å!åÍã%ë! 9ù!"á–!ÉÍ�ZÍõ‘!å!î–å!P’åÍ[YÑÑÑÂL’!É!ÉSB0000þÿÍ�Z!9^#Vë^!Í_ë! 9s!9^#Vë^!Í_ë!9s!ðå!9^#VëÑånÍ_ëás!ðå!9^#VëÑånÍ_ëás!9^!ðÍ^#VÕ!9^#VÕÍÞXÑÑч”! 9^#Vë^Õ! 9å~#fo#ëás#rë+)ë!9~#foÑs#rʔÔÃד!9^#VëÉôÿÍZ!ë!9s#r*|_ë!9s#rÍ€ ë! 9s#r!ë!9s#rÃÚ”!9å~#fo#ëás#r!9^#V! 9~#foÍå^ÊŒ•!ë!9s#rà •!9å~#fo#ëás#r!9^#V!Íå^ʉ•!å!9^#Vë)))å!9^#V!`Í,^Ñë!9~#fåÝáÃÛ�Ýåá#åÝá+`iDMèÿ`i~·Ê�`i^!åÍ7_Ê�Ýåá€ëÍb_Ê�Ýå!3�åÍÐ;ÑÑÅÍÇÑÍÃÇ�É CONTROL AREA DIRECTORY %x ÿÿÍ�Z!œ�åÍÐ;ÑÍU!åÝá*ú_DMÃ_�`i`DM! ^!9s{³Ê›�!9^!åÍ7_Ê›�Ýåá#åÝá+å!½�åÍÐ;ÑÑÅÍæÑÍÃW�É OPERATING SYSTEM TABLE %x !ë!9s#r*`ë!9s#rÍéë!9s#r!ë! 9s#rÓ! 9å~#fo#ëás#r!9å~#foëás#r! 9^#V!9~#foÍb_Ê”!ë!9s#r!9^#Vë#ë! 9s#r!ë!9s#rÃr“!9å~#fo#ëás#r!ë! 9å~#foëás#r!9^#V!Íb_Ê”! 9^#VÕͰ Ñ”!9å~#fo#ëás#r!9^!pÍ(_Ê”!9^#V!Í(_Êã“!²›åÍS;Ñ!29~·Ê˜!39^#VÕ!9å!å!9^#VÕÍHœë!9ùÊ×—!39^#VÕ!$9å!å!9^#VÕÍHœë!9ùÊ×—!39^#VÕ!,9å!å!9^#VÕÍHœë!9ùÊ×—!9å!9^#VÕÍœÑÑÂÝ—!Ãà—!ë!9s!9^#V!Í,^ë*‚_ë!9s#rô˜!Ü›åÍS;Ñ!39^#VÕ!9å!9^#Vë#å!9^#VÕÍHœë!9ùÊ¥˜!39^#VÕ!$9å_Í_å!9^#VëÑånÍ_ëás! 9^!ðÍ_Í_å!9^#VëÑånÍ_ëásÉÍ�Z!å!Œ“å!9^#VÕÍ[YÑÑÑÊ2“!å!““å!9^#VÕÍ[YÑÑÑÂ3“É! 9^#V!å!9^#VÕÍW’ÑÑ! 9^#V!å!9^#Vë#åÍW’ÑÑ! 9^#Vë###å!9^#Vë##åÍW’ÑÑ! 9^#VëÉ //////Í�Z!9^#V!Íc_ÂÀ“!9^#V!ÍH_ÊÄ“!oå!9^#VÕÍÞXÑÑц•!9^#VÕ! 9å~#fo#ëás#rë+)ë!9~#foÑs#rÉ•Ãý”ÃË”!9^#VëÉ`i"(–!$– s# y°Â¢•Ý"*–ý",–á"&–Ñ!9"$–*´�å••Í«^áÊו:³�wÍMŽëÃ÷•åMŽÍ«^áÊþ•åð•í°á:³�wÍPŽë*&–ååëÉÿÿ!9s#r*(–DMÝ**–ý*,–!9^#V*$–ùÃ÷•`i"T‘!P‘ s# y°ÂÏ�Ý"V‘ý"X‘á"R‘Ñ!9"P‘*2ŽåÂ�Í(_áÊ‘:1ŽwÍËŽëÃ$‘åËŽÍ(_áÊ+‘å‘í°á:1ŽwÍÎŽë*R‘ååëÉÿÿ!9s#r*T‘DMÝ*V‘ý*X‘!9^#V*P‘ùÃ$‘&”åÍÐ;Ñ!Q”åÍÐ;Ñ!|”åÍÐ;Ñ!¨”åÍÐ;ÑÍ! 9^#VÕ!9å~#fo#ëás#rÕ! 9^#VÕ!9^#VÕÍË”ë!9ùÍÃP“Ãð’!9^#VëÉ These Product Table entries refer to non-existent files: Product Missing File Needed For ------- ------------ -!9^#V! å!9^#VÕÍHœë!9ùÊ¥˜!39^#VÕ!,9å!9^#V!å!9^#VÕÍHœë!9ùÊ¥˜!9å!9^#VÕÍœÑÑ«˜!î˜!ë!9s!9~·Ê™!å!9^#VÕ!9å͸YÑÑÑ!29~·Ê™!9^#Vë#å!å!å!å*‚_åÍë! 9ù!~_åÍÒ ÑÉThe Product Table entry which you have created looks like É!9å~#fo+ëás#r!9^#V!ÍQ^)å!9^#V!Í<^å!9^#V! Í©^Ñú–^áÍÁ^Í_É÷ÿÍ�Z!å! 9å!9^#VÕÍ5ZÑÑÑ!ë!9s!9åͪ”Ñ!9åÍú’Ñ!ë!9s#rÃf”!9å~#fo#ëás#r!9^#V! Íb_ʦ”!å! 9å!9^#V! Í©^ô–åÍ[YÑÑÑ£”!9^#VëÉÃW”!þÿÉÍ�Z! 9^#Vë~·Ê•! 9ñËŽ ËŽ`i"è–!ä–Šs# y°ÂØŽÝ"ê–ý"ì–á"æ–Ñ!9"ä–*2ŽåËŽÍ(_áÊ �:1ŽwÍY�ëÃ-�åY�Í(_áÊ4�å&�í°á:1ŽwÍ\�ë*æ–ååëÉÿÿ!9s#r*è–DMÝ*ê–ý*ì–!9^#V*ä–ùÃ-�óÿÍ�ZÍõ‘Í*’Âo�!ýÿ"ß–É*i^!0Íb_Ê‘�!ç�åÍÐ;Ñ!"ß–É:—o&ÿÍ7_ʬ�!‘åÍÐ;Ñ!þÿÉ!9^#V!ÍG_ÂÌ�!9^ you made a backup of your Control Area (Partition 0) Enter the name of the file to be erased (or press ESC to go back to main menu) --> Invalid input!That file is not in System Directory. You have asked to ERASE this file: This file is NEEDED by t---------Í�Z!9^#V!Í(_Ê•! 9^#Vë^ë)Ò_^#VÕ!9^#Vë^Õ!n•åÍÐ;ÑÑÑÕ!•åÍÐ;Ñ!9^#VÕÍ Ñ!9^#VëÃZ•!‡•åÍÐ;ÑÃm•!Ÿ•åÍÐ;ÑÃm•!¬•åÍÐ;ÑÃm•!»•åÍÐ;ÑÃm•Í�_9•D•O•.•É %-2d - %-22.19s No good reason (*BUG*) Boot Loader Login Program OS Methis:You have asked to modify this Product Table entry:The modified Product Table entry looks like this:Loader ProgramLogin ProgramOS Menu Program Would you like to see the list of possible product types Enter Product Type Number you want to add or ^#Vë^!aÍG_Êÿ”! 9^#Vë^!zÍH_Êÿ”! 9^#Vë^!àÿå!9^#VëÑs! 9å~#fo#ëás#rð”ÉúÿÍ�Z!’–åͰ–Ñ! å!9^#VÕ!9^#VÕÍZÑÑÑ!9^#V! 9s#r!9^#V! 9s#r! 9~#¶Ê1–!ÿå!åÍÅWÑÑÿÍ_ë! 9s{³Â�•Ã`•! 9^ëÖ!¤–åͰ–Ñ!Éà •!¨–åͰ–Ñ!É! 9^#V!9~#foÍ7_Êá•! å!#V!Íb_Êä�!9^#VÕ!¡‘åÍÐ;ÑÑ!"ß–É*i^!1ÍG_ÊP�!å!å!2åÍãWÑÑÑë!9s#r!9^#V!^!ÿÍ7_ÊP�!Í‘åÍÐ;Ñ!9^#VÕ! 9^#V!^ÕÍš“ÑÑ"ß–É!9^#VÕ!åÍš“ÑÑÍ(_Êq�!"ß–É!ë! 9s#r! 9å~#fo+ëás#rë#|µÊà�!å!9åÍ•ÑѪ�!þÿ"ß–É!9åÍ”Ñë! 9s#r!þÿÍ7_hese OS's: This file is NEEDED to boot these products: PRODUCT #%d (%s) ARE YOU SURE YOU WANT TO ERASE IT Removing file from System Directory. The ERASE procedure will take a few seconds. WARNING!!! DO NOT TOUCH THE COMnu ProgramÍ�Z!É`i"h–!d– s# y°Âã•Ý"j–ý"l–á"f–Ñ!9"d–*2ŽåÖ•Í(_áÊ–:1ŽwÍËŽëÃ8–åËŽÍ(_áÊ?–å1–í°á:1ŽwÍÎŽë*f–ååëÉÿÿ!9s#r*h–DMÝ*j–ý*l–!9^#V*d–ùÃ8–$     modify. (Press RETURN to go back to the Product Menu) --> The Product Type Table is full -- you cannot make any more entries. This is an unusual condition and may indiindicate a corrupted Control Area or a program bug. You have asked to add an entrìŽî¹€üó¤3ÀÃ2ÿ±Óã�ÃvÊñèîÿŠG :üt3<þt/<üu€>>u€ê€ë»WŠ&ñè2ë<ýu»{ëî»øëé°àü¢Î ë¢Ï¡æ£Ð¡è@¢Ò ê¢Óèfsè »Òèõ€>nuë°Ìڻ̹è è¬rÝè�ç¸ P誃Äÿ6 ¸P蜃ÄëÊérÿŠFü0äƒøt ŠFü0äƒøuB‹Fú;Ft8ÿ6 ¸PèmƒÄÿ6 ¸ Pè_ƒÄÿ6 ¸PèQƒÄ¸ ÿNú‹vúˆÿFýëŠFü%ÿ‹vúÿFúˆÿNýé%ÿ3À‹vúˆ‹Fú+F3Ò‹å]ÃU‹ì¾áVè­ƒÄÿ6åÿvÿvè‹å]ÃU‹ìŠf‹N ‹V ÍN]ÃU‹ì‹^öu%ö u,‹G;G}5‹wŠ@2äÿG<tQ< tXø‹å]À'÷Šé*€>Ú€uþ Ü:uë ÿØÆÚþÚ €ÉÃèX Š2ÀÆ ŠÁú€»Ý¹éf öÿtìé   ÀtÃèsó3ÀÃÆÛÿ Þöÿt ´ð"àþÀ$ Äë $ðÆÿ¢ÞèU rUÆÝè¦ÿŒÚ»Ö¹ üè1 r=èÝ €>Öu3€>×tÆ ÿÆþÚÆøÃ Þ´ð"àþÈ$ Ä¢ÞÆ ùÃè  »ÿè�똀ùs&ˆåŠÙèŽØ¾¿G¹ó¤3ö¿>¤² ÍM¾Cˆ$FˆFˆ±Òü€ä:àu!€>>u€>ˆs[SÆŒ`èù ít[Sèh[^C€ûu ŒÚ¹]èt rö ^´±Óà£Ýè¡ è12À²ÍM3Ò»� ŽÚ‹÷Ð÷;÷u �úàuè�êy for product type %02x (%s). Is this correct Program names entered here should be eight characters or less. Press ESC to return to the Product Menu. Press RETURN to keep current choice.ÍZ! 9^#VÕ!1œåÍS;ÑÑÍ]”!9^#VÕÍÜ”Ñ!6œåÍIÑÉ %s Is this cor±Óç�Ǧ‹6ìŽî¹€üó¤3Ààü¢s¢tÆpSè›[ru¿÷SèØþŠˆG [<þuÃ:ütùŠãPèÁþÆGÿX<útN<ýu»{ë<üu €>=tÖ»Wë <ûu»•ëè€ÄAˆ&<S»3èà[èÜ ÿþø¿ì¹üó¤»ËÃésÿ üèaþÆG ÿ¢t¢sÆpèr2ÀðÃèDþŠG ¢rŠG ¢qè r)ŒÚ»o¹èˌڻö¹  üèärè�¿ö€=G2ä‹å]ÃSèKƒÄ=ÿÿtã‹^ëÃS¸?‹O �W‹_Í![rK=t‰G¸‰G‰G ‹G‰G ë ötªÿOùë.öt£ö€už€€SèlÿƒÄ=ÿÿt�€'< tˆÿO° ë�€@ˆGø¸ÿÿ‹å]ÃU‹ìŠF˜ƒøa|ŠF˜ƒøz¸àÿPZŠF˜ˆFŠF˜‹å]ÃU‹ìƒìX‹ä Àu¸ÂP¸ PèƒÄ¸€Pè܃ċF‰F¸‹v¸ÿF¸Š%ÿ‰Fü‹FüÿNü Àt$‹v¸Š0äƒø t ‹XSUB PIP $1=D:ASM86.COM[OV] $1=D:BIOS.A86[OV] $1=D:CBIOS.A86[OV] $1=D:COPYDISK.A86[OV] $1=D:GENCMD.COM[OV] $1=D:GENDEF.CMD[OV] $1=D:GENDEF.COM[OV] $1=D:LDBIOS.A86[OV] $1=D:LDCOPY.A86[OV] $1=D:LDCPM.A86[OV] $1=D:LMCMD.CMD[OV] $1=D:LMCMD.COM[OV]‰b°ÿ²ÍM»èZ »ÌèT ŒÚ¹¹3Àö> tÇd ÿ.dÿ÷S�>÷èu!Ç÷öþÿtÄ &öuQRèµ ûZY[ÃèÍÿè“¿ÃÍÈè†äðúŠÈèx3C�Mè€$à<àtöÿt Q¹ÀèáûYÃè¢ÃèH'- ¥×ŠÈè13MC*WeÎkŠÈè3Mä–Ãú°æ–ä–Ãèäúû[QèŠrectÍZ!9^#VÕ!9^#VÕ!9^#VÕÍßœÑÑÑ¢œ!9~#¶Ê—œ!å!9^#VÕ!9^#VÕ͸YÑÑÑ!É!¾œåÍS;ÑÃNœ!9^#Vë^!Í«^ʺœ!É!ÉEnter a file name (or ESC) --> ôÿÍZ!ë! 9s#r!ë! 9s#r!9^#VÕ!9^#VÕ!)žåÍS;ÑÑÑ! å!å!9åÍœYÑÑÑ!å!9åÍëÑÑë!9s#rz³ÂG�Mu ÀÃè‚ùÃè}éÇÿ‰‰‹ñ¿pŒÙŽÁ¹ŽÚó¤ ü€>pt¢s¢t p<t4<s>Šu€ûÿt'€ûs0è·ý<u ŠG :üu ŠG 8quŠG 8ruè]ÿr€>uÿtlëÆöOëhÆöOëa p<uèpëP<u? ü:÷u6ŠüŠrŠ.q°»v:O u :o u:W t þÀƒÃ<uèë :utÆ÷ûŠuè&ý ÷ˆG ÆöMŽ‹>ƒÇv¸Š0äƒø u3À‹v¸ˆÿF¸ëÒ3À‹v¸ˆ‹F‰F¸¸‰Fþ‹v¸ÿF¸Š%ÿ@‰Fü‹FüÿNü Àt<‹v¸Š%ÿuë+‹F¸�vº‹VþÿFþÑâò‰�~þ }‹v¸Š%ÿtÿF¸ÿNüëîÿF¸ëº3À�vº‹VþÑâò‰�> €v¸€‰ ¸›P°Pè1 ƒÄ¾‰‰ ¸‹6 ‰¸ˆ‹6 ‰D‹6 ‰D 3À‹6 ‰D‹6 ‰D¸D‰F¨¸‰Fª�v¨VVèrƒÄ‹F®%€t:¸P° $1=D:RANDOM.A86[OV] $1=D:SINGLES.DEF[OV] $1=D:TBIOS.A86[OV] $1=D:TRACK.A86[OV] . ; ; END OF COPY ; CÒè"C˜ÑàØYÿ'VÄ6h&Š^ÃWÄ>h&ˆ _ÃP䆨t ä„SQè=Y[è` XÏèÃä–¨Ãä’¨Ãè tÃ䚨@tù¨ uöäœèëéèØÿtûˆa ÀÃèÐÿtûä”$ÃèËÿtûä�$ÃèÆÿtûˆaÃä†$Ã3ÀÃä–¨Ãä’$Ã䚨 °u°ÿ ÀÃ䚨@ëñèØÿtûŠÁæ„€ÉÃ3ÀÃèÐÿtûŠÁæ”ÃèËÿtûŠÁæ�ÃPè3ÿ$<Xté2VQ¾è Yè�þè ^Ê F Ét è!É! 9^!Í«^Êi�!å!9^#VëÑs!É!9^#VÕ!9åÍßÑÑ!9^#VÕͰ Ñž!ë! 9s#r!VžåÍS;Ñ!ë!9s#rú�!9å~#fo#ëás#r!9^#V!Íå^Êž!9^#V!9~#fo^! ͺ^Êž!9^#V!9~#fo^Õ!pžåÍS;ÑÑë�!sžåÍS;Ñ!“žåÍS;Ñ! 9~#¶Êðœ!9^#VëÉ Enter name of the %s for ¾ö¹ ó¤ öûv¹ ü8G uÆG ÿƒÃâòÉìÉîø6¾…ðŽfÿÖÃúXHH£$¾$¿|è€�$¾$¿wès»Yèû�éüÿŠ„Àt ŠÈSè÷[Cëðòÿë2ÒVW‹ì‹F£Äÿ7ƒÃ‹7ÿ mu[_^ÃÀ?u[è¼ÿëîS‹w‹ŠþË·Ñ㋟ÆÿÓ[ƒÃëÚ¹Š$당QƹÑÀÐâú€0€=9v€GYâäÌ؎Àü€<uPèÒ ƒÄ¾‰‰ ¸‹6 ‰¸‹6 ‰D‹6 ‰D‹6 ‰D 邸E‰F¨¸‰Fª�v¨VVèƒÄ‹ ƒÀP¸Pè| ƒÄ¾‰‰ ¸‹6 ‰‹ ‹6 ‰D‹ 3ÒRPÿ6 è¥ ƒÄRPèÐ XZ‹6 ‰D ‹ ‹6 +D ‹6 ‰D ‹F¨‹6 ‰D¸‹6 ‰D¸P°Pè ƒÄ¾‰‰ ¸‹6 ‰¸‹6 ‰D‹6 ‰D ¸‹6 ‰D‹6 ‰U‹ìƒì¸‰Fþ�Fè‰Fü¸bP°P°P¸PèƒÄ�~uJ¸1PèƒÄ¸tPèƒÄ¸¨PèúƒÄ¸âPèðƒÄ¸PèæƒÄ¸Pÿvüè ƒÄ‰Fæ Àuëàë‹vƒÆ‹4‰vüVè܃ĉFæ�~æ ~ ¸,P訃Äë ÿvüÿvæèƒÄ‹å]ÃU‹ìƒì�Fç‰Fû‹FˆFæ‹vÿFŠ˜P趃ċvûÿFûˆ%ÿuã�væV¸P°P讃ĉFýëm¸KPèGƒÄ¸v|þŠ ÉtèsþFÃè�ÿtûŠÁæœÃè“ÿtûŠÁæœæž ÃèÿtèCÿ<u.ÆÍÿë <u.ÆÍä–$."ÍÃÿèÔÿtûŠÁæ”ÃàaþÀ$ŠØ*`uÃ2ÿS�Ã@Š[Ê`SþÀã:au[±èôýÈ`[2ÿ�Ã@ˆÊ`þÀã:aà ÿÊ&ü»ºÿtÃ�è«Æn ü¢ï¹Qè Ysâ÷ë ŒÚ¹�îèÎ úêðþˆ‹6ˆŒ&ÿ€>;;éÄéÙéÞéãéíéùé-éLé×éQé8éÏé*é.é0éDéRéKé.éOéXéo éž é¼ éà éÄ é\éwé¬é!é&éûé6é£éœéôéééiéhé$äëöÍM˃ùuÃCC‹CCŠîCâúëêèÅsèe‹�èSÿ€>nùÃŽÚ‹ñŠF<r°Ã&¢x&¢ŽŠØŠD ¿z¹ü󤿈¹󤿂¹ó¤P Š$¢‘‹Óè’û ü8G uÆG ÿ ü¢s‹ÚÆpè/ýX<`u/Pè7r Š$:‘XuétY°ðÃèrþŽf&‹O&OAÃ<àuO€>òuƈèÚÿ�ùÀs�é@r�ù s°ðÃ�é€þˆŠG <ÿt¢ëŠG ¢êŠG ¢ðŠG¢ñÃ3ÛÃÇæÉæÉèà ҋÙtÚŠ2ÿàð<àt<`uéT°àð<àt<`uòé½è,Žî‹>ìŽØ+öëèŽÀ+ÿ‹6ìŽîü¹@ó¥3Àñ¡æÓàè±ÓàóÊë‹æ¡è%øÿŠê:úu;öu;ôu :ûué‰ö£ôˆúˆûŒÚ»¦ üèy ÀtË6è�æ±Óæ�Ʀ‹>Pè=ƒÄë{¸¡Pè1ƒÄëo¸ÌPè%ƒÄëc¸PèƒÄëW¸ Pè ƒÄëK¸LPèƒÄë?ÿvý¸yPèòƒÄë0¸“PèæƒÄë$P肃�FU:." ô‹å]ÃU‹ìƒì¸ PÿvÿvèƒÄ‹F‰Fú‹FH‰Fý‹Fý ÀuéÑÿ6 èƒÄˆFüŠFü0äƒø t ŠFü0äƒø ué­ŠFü0äƒøu9‹FýÿNý Àt,ÿ6 ¸P踃Äÿ6 té2€ùuÇÆ ÉÆ ÿÃ�>€uÿè;s »ùèéù€>u ÆÆë �>€t àü¢Öè‡ r%ŒÚ»Ô¹èG èà rt9éªè »ÿèñ€>nuÀëäŒÚ»&¹€è è© rÞuJÆÆ ÿè r#ÆÝènèy rnu¾Æé éQé/é+é>é| é³é�ûVUPŠÄÐàÄ2ä‹ðXÿÖ]^ÊUWƒÆÿÖ_]ˌȎ؎ÀŽÐ¼&ü¸ŽØŽÀÿ64ÿ66ÿ6ÿ6 ÿ6 ÿ6ÇÁ Œ¿¾¹þüó¥Ç›Œ¿¾¹>ó¥�� � ��6�43ÀŽÀŒÚ¹ ¿@‹5GG‹&‰FF&‰GGâî²è) ¢ü¢R»ß²¹Aè  ÿ¢lŒÈ£j¸ %     Æòÿ‰óQŽÁ3ÿ¹°åüóªYÆ�þë'<ÿtéÿŠxèáú€ àu%ÆòèóýŽf&‹Oë èåýŽf&+OI&‰OŠxèB3À΋ù‹Ù&ŠG<r°ÊØè’ú‹ó¹üó¤3ÀÈmÈá¿Ènð8æ‚æ’ÈŽèeú¾zŒØŽÀ‹û¹üó¤ ˆª ‰ª Šª ‹ª Œª �ª Žª2ÀªÃè rMÆyŒÚ»y¹èČڻˆ¹ üèÝr-è Please reset the computer €Ä©‹¿Ã¶Ä©read write read1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 71a ÿ€= €>þÿu°Aè›þëèýüÆþÿ[YZ^_è}úÆþ.Ž.‹&.¡ Ï¢ ý»¹ŒÊèoþÃP䀰æ‚°¤æ‚䀀>ÿu¢ä€WÄ>ðüªä€ªä€Q‹Itªä€âûSR¹䂨uâø±ë±ä€°æ‚°æ‚°æ‚ä‚ Á¢ °æ‚ÆýÿÆÿ€>þÿu/Ä> Æþ 4€:ýu  4€$èt °Wè\ÿ°ªë°ƒª°VèOÿZ[Y_è¯ùXÏ¢°û»¹ŒÊèµý‰ ‰<ÿt( Š¨@t°üë¨t°ýë ¨ t°ÿë°þ¢�2ÀÃè\ë©ùÃQRÇ�,èàýsZYuï°ðè\ZYQR‹ÙC‹Ý üè}sèÁýëÜZYQRÝA‹Ù¹ üèbsëÄè ZYŽÂ‹ù ^ª¸ÃƚǛÇ�;ÆŸTQRètýsZYuõ°ùàšèîZ[SR‹› üèsèVýëÝZY Ÿ ÀtèÍè­3ÀÃÄ ÷Âÿÿt ‰ ‰¢ÃÇ ¤Œ¢Ãè@%€l€ÿ ÿÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXû­èF÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèõítèîëöÃþ¿ Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�ì€ÿè�>è€u ÇèÿæâØY€ÊÃZ+Ñ‹Ê3ÒÃŒî‰>ì‰æ‰èŠÈè#òþÐéŸÿËbô±Óà»v؃Ê´ÿˆ' ÀÃöÿt±èÄí èÕÃèè©ÃŽÚ‹ÙŠ‹O‹W‹_ÃÆšÇ›ˆÇ�YÆŸSémÿÆš!Ç›€Ç�JÆŸéTÿ‹ÙŽÂ&Š¢ûÇöÇôyÆú°éîèèmrø°è(èÌè3ÀÃè}ÆßÆ#¿àŒØŽÀ‹ñ‹ÂŽØ¹üó¤Ç�hèjüsuù¸Ìڻß¹èìè…s Æ#ÿèOüëàPè±X´ ÀtŠà$ö#ÿt€ü�t €ü‚u €>ßu€Ì@ÛGTHIS IS A HEADER*# w# w# wÃc Í­!áåÍõ8 GÍ™¸(OÍ#ôÍÝ:Í#* åÍ£æ(ùÍÎþ(Oþ (\þ(6þ(Oþ 8þ.(&þ0@ÛG Í#?Í#¸#w´^Í#UÍ#Í­!áå£ëáåíRë(ê€ ÿ ÿ ÿ ÿ ÿ ÿ ÿÁÄ� i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location:ÃèrúÃèîƒúu ƒùuŒÚ¹l‰h‰jŠÈèöíÃVWŽÂ‹ù¾=¹ üó¤_^΋ٹv&‰CC¹€&‰ÃŒØŽÀ¿ŽÂ‹ñ¹üó¤ÃÃ@HŒG †Á„5êŠG’á„5êˆG–á„5ê8œ@¦H¦P¦X¦`¶d¶h¶l¶p¶t¶x¶|¶ ÃÆßéˆÿÆúÿàü»¹ŒÚú¢«‰ø‰ÿ‰ð‰ò»œèÐû»¶ƒ>øt »Ç þ¢è³àü¹»ŒÊè} ÃSR¢Æ¡ö£È¡ô@¢Ê ú¢Ç û¢Ëèœûs uùZ[° ÀÌڻĹèZ[SR¹ üè5s  ¨€t ¨u°NèäèiûëȰDèÚèÇZ[3Àø  Ét‹Á±Óè£ùÃ<ûu üè6ÿëè&ÿÆÿÿÆÿÇù èÇù *** *** i/o error at location: command: L S u COMMON BIOS for DMS HNS-86 and 5086 Version 7.1a Signing off... Digital Microsystems, Inc.  Drive A cannot be written to. Partition is a HIDOS partition. Parti ÿ†X‚X ~Ü Ý ‚˜ ~€k€ÿ€ ËùÆþÆýº�ûöýÿu1ÆüJuñâëèæþûÆÃ» öÿtè@úëè?ú¸ ÀùÆà 4€$èuöÿÿtÆÿ€>Ptÿõ4€ ¢ÃùÆà$¢Ã3ÀÆÃè�þÆþÿûèüû3ÀÃöüÿtÆü⻹ŒÚ°¢ 2ä ÀtŠ&ü€Ì€‰œSQR‹<t ƒ>u‹âþP»³úèúX¹âþY^º€ Àütƒùution is Read Only. Partition is already owned by you on another drive. Partition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000¤€¿Ä#¿,¨5ÃBËIÇPÈWÊ`¿Ä#¿,Ÿ5ÃBÓIÏPÐWÒ`¿Ä#¿,±5ÃBÛI×PØWÚ`‹¿Ã¶Ä©‹¿Ì¶Ä©‹¿Þ¶Ä©‹¿Õ¶Ä©‹¿ç¶Ä©‹¿ð¶ ŠØ¬Nð ª  4€$èt醀>þÿté„ þÿuAÄ> &Š<u6°ªÆþÿèÝú°VèpÇ÷ ü‹ ƒÃ¹�‹¢Æ©ÙèöýÆ©Ýë$°WèE€>þÿtè8ýÆýë&     €�ؾؿ+ès» èû�éüÿŠ„Àt ŠÈSè÷[Cëðòÿë2ÒVW‹ì‹F£„ÿ7ƒÃ‹7ÿ -u[_^ÃÀ?u[è¼ÿëîS‹w‹ŠþË·Ñ㋟†ÿÓ[ƒÃëÚ¹Š$당QƹÑÀÐâú€0€=9v€GYâäÌ؎Àü€<uäëöÍMÃö�ÿtW‹>•‹ GG;tâøë ‹CCCCCâý_‹ƒùuÃCC‹CCŠîCâúëÈèÅsèe‹sè1ÿ€>ÿtìé ß ÀtÃèsó3ÀÃÆ°ÿ ³öÙÿt ´ð"àþÀ$ Äë $ðÆÙÿ¢³èw rUƲè¦ÿŒÚ»«¹ ÒèS r=èÿ €>«u3€>¬tÆßÿÆÚþ¯ÆØøÃ ³´ð"àþÈ$ Ä¢³ÆßùÃè »Õè�똀ùs&ˆlŠÙèŠG <ÿt¢rŠG ¢qŠG ¢wŠG¢xÃ3ÛÃÇmÉmÉoà ҋÙtÚŠ2ÿàw<àt<`uéT°àu!€>u€>]s[SÆa`è[ ít[Sè¨[^C€ûu ŒÚ¹3èÖ rö 4´±Óࣳèè“2À²ÍMQ3É»º€ŽÂ�ê è7u.ŽÛ¡&;u÷¡&;÷t ºàèu�é�Á ‹ÑYé�Á ŽÙ‹÷Ð÷;÷u;ÊuêÉ"°ÿ²ÍM»ÈèZ »ŒèT ŒÚ¹¹3Àö tÇ$ ÿ.$ÿ~S�>~èu!Ç~öÔÿtÄv&öÒZ;Âs3À‹å]Ëè‰Fþ‹F‹èЉè‹Fþ‹å]ÃU‹ìƒì3À‰Fþ‹v‹% tÿvèïƒÄƒøÿu¸ÿÿ‰Fþ3À¾‹~‹UÑâò‰¸>‰Fî‹v‹D‰Fðÿvè±ïƒÄ�vîVVèáãƒÄ%t‹Fî%ÿ‰O¸ÿÿ‹å]ËFþ‹å]ÃRETURNNETLOCK version %d.%d%c Please use the following conven.ùÃŽÚ‹ñŠF<r°Ã&¢M&¢cŠØŠD ¿O¹üó¤¿]¹ó¤¿W¹ó¤P _$¢f‹Óèpû Ò8G uÆG ÿ Ò¢3‹ÚÆ0è ýX<`u/Pè7r _$:fXuétY°ðÃèPþŽ&&‹O&OAÃ<àuO€>yuÆ]èÚÿ�ùÀs�é@r�ù s°ðÃ�é€þ]Æyÿ‰zQŽÁ3ÿ¹°åüóªYÆbþë'<ÿtéÿŠMè¿úw<àt<`uòé½è,Žu‹>sŽØ+öëèŽÀ+ÿ‹6sŽuü¹@ó¥3Àñ¡mÓào±ÓàzÊr‹m¡o%øÿŠq:Ðu;Ìu;Êu :Ñué‰Ì£ÊˆÐˆÑŒÚ»Z! Òè› ÀtË6o�æ±Óæ�ÆZ!‹>sŽu¹€üó¤3ÀÃ2ÿ±Óã�Ã6ÊxèîÿŠG :Òt3<þt/<üu€>u€q€ë» Š&xè2ë<ýuuQRè× ûZY[ÃèÍÿè“nr|w膓Ÿ³©ŠÈèxâò<üè€$à<àtöÈÿt Q¹ÀèáûYÃè¢ÈÃèH½ÊÅÖÜÏT†ŠÈè1âüòÙ}ŠÈèâüä–Ãú°æ–ä–Ãè“©û[QèŠCÒè"C˜ÑàØYÿ'VÄ6(&Š^ÃWÄ>(&ˆ _ÃP䔨t ä�SQè=Y[è‚ XÏèÃä–¨Ã䆨Ãè ttion when you enter a lock string To lock a file, enter the file name and file type. Separate the filename from the file type with a period. To lock a partition, enter the partition name. Enter your lock string: Your lock string is too long. *** T€ àu%ÆyèÑýŽ&&‹Oë èÃýŽ&&+OI&‰OŠMèB3À΋ù‹Ù&ŠG<r°ÊØèpú‹ó¹üó¤3ÀÈ-ÈÝáÈ.ð8æ„æ”ÈcèCú¾OŒØŽÀ‹û¹üó¤ ]ª ^ª _ª `ª aª bª cª2ÀªÃè rMÆNŒÚ»N¹èČڻ]¹ ÒèÝr-艠^<ÿt( _¨@t°üë¨t°ýë ¨ t°ÿë°þ¢b2ÀÃè\»/ëëé°àÒ¢£ r¢¤¡m£¥¡o@¢§ q¢¨èˆsè( »¨èõ€>.uë°Ìڻ¡¹è5 èÎrÝo�ç±Óç�ÇZ!‹6sŽu¹€üó¤3ÀàÒ¢3¢4Æ0Sè›[ru¿·SèØþŠˆG [<þuÃ:ÒtùŠãPèÁþÆGÃ䚨@tù¨ uöä›èëéèØÿtûˆ! ÀÃèÐÿtûä’$ÃèËÿtûä‚$ÃèÆÿtûˆ!Ãä”$Ã3ÀÃä–¨Ãä†$Ã䚨 °u°ÿ ÀÃ䚨€ëñèØÿtûŠÁæ�€ÉÃ3ÀÃèÐÿtûŠÁæ’ÃèËÿtûŠÁæ‚ÃPè3ÿ$<Xté2VQ¾Äè Yè�þè ^Ê F Ét è|þŠ ÉtèsþFÃè�ÿtûŠÁæ›Ãè“ÿtûŠÁæ›æ� ÃèÿtèCÿ<u.Æ|ÿë <u.Æ|ä–$."|ÃÿèÔÿVVéÄéˆé»é’éœé¨éÜéûé´ééçé¬éé é é!é/é(éÝéþéé@ éoé�é”é•é-éHé}éòé÷éÌéétéméÅéâéØéðéEéë©ùÃQRÇsèàýsZYuï°ðè\ZYQR‹ÙC‹³ Òè}sèÁýëÜZYQR³A‹Ù¹ ÒèbsëÄè ZYŽÂ‹ù 4ª¸ÃÆpÇqÇsÆuTQRètýsZYuõ°ùàpèîZ[SR‹q ÒèsèVýëÝZY u ÀtèÍè­3ÀÃÄv÷Âÿÿt ‰v‰xÃÇvzŒxÃè èÕÃèè©ÃŽÚ‹ÙŠ‹O‹W‹_ÃÆpÇqˆÇs/ÿX<útN<ýu»/ë<üu €>tÖ» ë <ûu»Iëè€ÄAˆ&ðS»çèà[èÜ ÿþ¸¿ ¹üó¤»Ãésÿ ÒèaþÆG ÿ¢4¢3Æ0èr2ÀðÃèDþŠG ¢2ŠG ¢1è-r)ŒÚ»/¹èíŒÚ»¶¹  Òèr貿¶€=Mu ÀÃè¤ùÃèŸéÇÿ‰À‰Â‹ñ¿0ŒÙŽÁ¹ŽÚó¤ Ò€>0t¢3¢4 0<t4<s>Š5€ûÿt'tûŠÁæ’Ãà!þÀ$ŠØ* uÃ2ÿS�Ê[Ê SþÀã:!u[±èôýÈ [2ÿ�ÃˆÊ þÀã:!à ÿÊ&Ò»ÚºÝÿIÃ�·è«Æ. Ò¢Ä¹Qè6 Ysâ÷ë ŒÚ¹�Ãèð úêþˆÞ‹6ÛˆŒÚ ÿÛ€>Úté2€ùuÇÛÆÙ ÉÆßÿÃ�>Û€uÿÛè;s »Ïèéù€>Þu ÆÚÆÙë �>Û€té¼ éé éüééMé„éLûVUPŠÄÐàÄ2ä‹ðXÿÖ]^ÊUWƒÆÿÖ_]ˌȎ؎ÀŽÐ¼Ú ü¸ŽØŽÀÿ64ÿ66ÿ6ÿ6 ÿ6 ÿ6Çp Œ¿¾¹þüó¥ÇxŒ¿¾¹>ó¥�� � ��6�43ÀŽÀŒÚ¹ ¿‹5GG‹&‰FF&‰GGâî²èØ ¢Ò¢(»µ²¹AèÅ  Õ¢,ŒÈ£*¸ ¾‹R9u NNâõ$të w$të$t°2ä À‰F è¡ûÂè�û‹~‹F‰‹F‰E‹F‰E‹F‰Eè~ûƒìèiû‹F‰F‹v‹D‹3Û¹ÑøÑÚÑÛâø%ÿ�u‹Ø‹ÐëÆuSémÿÆp!Çq€Çs ÆuéTÿ‹ÙŽÂ&Š¢ÑÇÌÇÊyÆÐ°éîèèmrø°è(èÌè3ÀÃè}Æ´Æ×¿µŒØŽÀ‹ñ‹ÂŽØ¹üó¤Çs>èjüsuù¸Ìڻ´¹èìè…s Æ×ÿèOüëàPè±X´ ÀtŠà$ö×ÿt€ü�t €ü‚u €>´u€ÌÃÆ´éˆÿÆÐÿàÒ»×¹ŒÚú¢€‰Î‰äÿ䉯‰€ûs0è·ý<u ŠG :Òu ŠG 81uŠG 82uè]ÿr€>5ÿtlëÆ¶OëhƶOëa 0<uèpëP<u? Ò:·u6ŠÒŠ2Š.1°»6:O u :o u:W t þÀƒÃ<uèë :5tÆ·ûŠ5è&ý ·ˆG ƶMŽÀ‹>ƒǾ¶¹ ó¤ ¶û6¹ Ò8G uÆG ÿƒÃâòÉsÉuø6¾…ðŽ&ÿÖÃúXHH£Ø¾Ø¿0è ÞàÒ¢«è© r%ŒÚ»©¹èi è rÞt9éªè$ »Õèñ€>.uÀëäŒÚ»Ú ¹€è2 èË rÞÚuJÆÚÆßÿè? r#Ʋènè› r.u¾ÆÚé*€>¯€uþØ ±:Øuë ÿ­Æ¯þ¯ Þ€ÉÃèz ŠÞ2ÀÆßŠÁú€»²¹éˆ öݎؾ¿¹ó¤3ö¿¤² ÍM¾ˆ$FˆFˆ•‹ GGGGâü‹£—Ûã3À3À£ŒÙ>Œ Œt»Îè »Öè »óè »èü »gèö è˜û»¾µ3íö€t½€$ˆc¿O¹üó¤VSè¿ r5 _$Š&±Òü€ä:à8‰F‰V‰^ÇFè;ûÃè+û‹~¸ð#Ç=ðt^�ç�FƒVƒ×÷ÇtƒïÑïÑ^Ñ^ƒF�fðÿ ~‹F%ð-ð?=ð}#=ø~)‹F-8y€Ì‹V‹^¹ÑãÑÒÑÐâøë‹F ÿºÿÿë3À™‹~‰‰Eè³úÂU‹ì‹vŠ%ÿt"ŠF%ÿ‹vÿFŠ�âÿ;Ðu ÿN‹F‹å]ÃëÔ3À‹å]ÃU‹ìƒì�~þv3À‹å]ËF@%þÿ‰F‹FP�F+è3'     È»qè®û»‡ƒ>Ît »˜ …¢‡è¿àÒ¹»×ŒÊè} ×ÃSR¢›¡Ì£�¡Ê@¢Ÿ Ð¢œ Ñ¢ èœûs uùZ[° ÀÌڻ™¹èZ[SR¹ Òè5s á¨€t ¨u°NèäèiûëȰDèÚèÇZ[3Àø  Ét‹Á±Ó裀Ã<ûu Òè6ÿëè&ÿÆÕÿÆÖÿÇ€ èÇ€ Ë€ÆÔÆÓº�ûöÓÿu1ƃJuñâëèæþûƃ‰Fþ¸2‰Fø‹vø‹4‰vú ötl‹vú‹D;FþrY‹FþƒÀ‹vú‹T;Ðr4‹vø‹4vþƒÆ‰vü‹vú‹4‹~ü‰5‹vú‹D+Fþƒè‹vü‰D‹Fü‹vú‰ë ‹vú‹D‰Fþ‹vú‹4‹~ø‰5ë‹Fú‰Føëˆ‹Fú Àu‹FþƒÀPè!ƒÄ‰Fú Àt5‹Fú‹vú‰‹Fþ‹vú‰D�Fú‹Fþ;Fv3ÀP‹Fþ+FP‹FúFPè®èƒÄ‹Fú‹å]ÃU‹ìŠF˜ƒøA|ŠF˜ƒøZ¸ PZŠF˜ˆFŠF˜‹ ÿ ÿ ÿ[%�„A i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location: *** *** i/o error at location: command: @H©©¯·©©©©Ö”ó†ó–ˆ`ˆÇ$Ž×ŒG–FD ”Á„5êXŠG†á„5êŠG–á„5ê8œU U(U0U`‡h‡p‡x‡€Á˜L@d ÿ†XD„X ~Ü»ÉöÖÿtèúëèú¸ ÀùÆÖàá4€$èuöÕÿtÆÕ€>×Ptÿ|4€ ¢ƒùÆÖà×$¢ƒ3ÀÆÖÃè�þÆÔÿûèüû3ÀÃöƒÿtƃâ×»×¹ŒÚ°¢à2ä ÀtŠ&Ҁ̀‰æœSQR‹ˆ<t ƒ>æu‹ŠâþP»ˆúèûùX¹âþY^º€ Àütƒùu ŠØ¬NƠת á4€$èt醀>Ôÿté„ ×ÔÿuAÄ>v&Š<u6°ªÆ…ÿèÝú°VèpÇ~ Ò‹vƒÃ¹�‹xÆ~ÙèöýÆ~Ýë$°WèE€>Ôÿtè8ýÆÓë€>Ôÿu°Aè›þëèýüÆÔÿ[YZ^_è}úÆ….Žê.‹&ì y d000000 40 gios16b cpm86 pdriver  y p a n 9 y phase2 login86 login86 y q …Ft…F u¹�v�~è¤þ郃ì�v‹üèžþ�v�~ôè•þ‹ô�~ô‹D+Ety‡þ÷ØE±Óè‹È»øÑYKKyùâó¹‹Ù‹3x ø‹CCâøë%�ø‹CCâø‹E Ày3Àartition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000 Please reset the computer €„ãì~õƒ  œ�Ÿ Ó„ãìuõƒ¨ ¤¥§ Ó„ãì‡õƒ° ¬­¯ K™v„iK¢v„iK´v„iK«v„iK½v„iKÆv„iK™v„iread write re.¡âÏ¢× „»×¹ŒÊèoþÃP䀰æ„°¤æ„䀀>‡ÿu¢×ä€WÄ>Æüªä€ªæ¤ä€Q‹äItªä€âûSR¹䄨uâø±ë±ä€°æ„°æ„°æ„ä„ Á¢á°æ„ÆÓÿƆ€>…ÿu/Ä>vÆ… ×4€:„u á4€$èt °WèZÿ°ªë°ƒª°VèMÿ.öŽÿtæ¥Z[Y_è£ùXÏ¢×°û»×¹ŒÊè©ýÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXûŠè¹‹Ùù÷CCâø´€1Wèpþ^�~èNþ÷F ðuÇF èþƒìèíý‹v‹F‹VëƒìèÜý‹v‹F3Ò3ÛSSë0ƒìèÈý‹v‹F‹Vë ƒìè·ý‹v‹F™3ÛSS Òy ÷Ú÷؃ڀπ‰vRP¸0CPS‹üèóý‹ô�~èÐýè�ýÃè€ý¸ð…F t…Fu¹�v�~è€ýëv�ƒì�v‹üèzý�v�~ôèqý3ÛSSSSSS‹ôè_�Ç9!�ïß ¹ .Š‹ Àt.Š]÷ .Š]ad1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 71a ÿ€ ÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèÇítèÒíëöÃþn Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�s€ÿo�>o€u ÇoÿmâØY€ÊÃZ+Ñ‹Ê3ÒÃŒu‰>s‰m‰oŠÈèõñþéŸÿË"ô±Óà»6؃Ê´ÿˆ' ÀÃöÚÿt±è–íÃèfúÃèØíƒúu ƒùuŒÚ¹,‰(‰*ŠÈèÈCCsCCÿtúƒÇâÚ‹Fö-0@Fê‰FÞ‹Fô3Fè‰FÜ‹üè[ý‹ô�~è8ýèøüÂ" " " " è¿ü¸ð…Fu¹�v�~èÄüë…F u¸ÿÿ‰F‰F‰F€ä F ë~�ƒì �v‹üè¥ü[Y3ÀPPPPQSƒì �v‹üè�ü¹5Q¹�vê�~þ‹;rwNNOOâò¹�vä�~øø‹FFGGâöù¹�vðÑFFâúYâÄ‹Fâ-ð?)Fî‹Fà1Fvøˆ‹F ™RPÿvþÿvüè%ôXZ‰Fü‰Vþ Ðu³‹Fú Àt ¸-ÿNø‹vøˆ�FÖƒÀ!+Fø3Ò‰Fú@Pÿvÿvøèš÷ƒÄ‹Fú‹å]ÃU‹ìƒì‹F‰Fö¸A‰Fð�vøVèÄëƒÄ�vðVVèÊëƒÄ%t¸ÿÿ‹å]Ã3À‹å]ÃPSQRVWU‹ìÿf�F‹å]_^ZY[XÃìèáÿ‹F‰F‹v‹D‰F‹D‰F‹D‰F‹‰FèÊÿÃU‹ì¾ð‹FÑàðÿ4è%‹å]ÃU‹ìƒì�~ÿv3À‹å]ËF@%þÿ@%€,€ÿ ÿ ÿ ÿ ÿ ÿíÃVWŽÂ‹ù¾¹ üó¤_^΋ٹ6&‰CC¹€&‰ÃŒØŽÀ¿ÄŽÂ‹ñ¹üó¤Ãûæ¤æ¥PR‹—ì¨ tÆ�ëþ�tgö”€¢”t¨€uÆ‘ë3þ‘u-ëJ¨€tÆ’þ“€>“uë4þ’€>’ u Ɠƒ°‹—î¸þŽÀú&Æí&ÆMûZXÏúëþP¸þŽÀ&Æí&ÆMXÍÏ������ÏÃ(     ì�~ìèü�vì�~è[üèüÂè ü¸ë&èü¸ëèùû¸ëèñû¸ëèéû¸ëèáû¸ŠnŠv!ŠÍ ÎyŠÍ2Îy:õ}ë!ŠÄ¹¾‹R9u NNâõ$të w$të$t°2ä À‰F è¡ûÂè�û‹~‹F‰‹F‰E‹F‰E‹F‰Eè~ûƒìèiû‹F‰F‹v‹D‹3Û¹ÑøÑÚÑÛâø%ÿ�u‹Ø‹Ðë8‰F‰V‰^ÇFè;ûÃè+û‹~¸ð#Ç=8ë�èÔu ‹‰‹GDëŒè·‹‰‹G‰Dëï3À¢)#¢“#¸“#£”#è�‹óŠ ÐáÐáþÁ2í¿*#üó¤ÃŠ)#µ¿Ž#‹9t!s‹UG;Âu ‹E+G‰Eë@ƒïâܰÿËG;Etsó‰‹E+G‰Eë‹Eû‰‹Eý‰EŠEÿˆEƒïâÑþ)#ƒ”#°Ã€>)#t‹”#€uèêþëêñè�ú‹™$±ÿ¾'#°ÿ€>)#sƒtþÀ ÀÃQ‹D+Gu ‹‰è ë‰D#¢#»‰!S€ù)r €é€ù6é¹þŠÙ·ŠÊÛ.ÿ§€ »«#è<uUë»¶#ë»Â#뻽#èéjSèÓ ¤$A¢§#¹›#èÏYèËéªPQÆ'#ÿˆ(#2í‹6™$‰6©$¿Æ#‰>™$Ž�$üó¤YXÃQ±!ëQ±$èÍÿYÃPQŠ(#2íŽ�$¾Æ#‹>©$‰>™$üó¤YXñ‹Ü"Ž##èŒÈŽØÃé»ý������Sº×"èðÿ[ÃPS‹\+\‹E+E;Øv‡÷[XÃ+Û+ÒÆâ"ÿ¹¾ "€<tf€èˆútº'èžúë�è)ýëùèÖýë8¹o èúëìèGý( uéíü¢ÎèWúé¹{ èÍùë¨è'û€>( u : ÀtþÈ¢9 £1 èÊù ÛtÌ 9 èÐùé×€>0 tëºè3ý¿0¾¹ó¤º'èÃùuè=ýéŽüèŽù@t¤‰ŽÃè+ýŒØŽÀè%û»: SŠ¢'¸èû[Š¢7ÆG¿\޾'¹!èÊü¾ èÁú Àt¬ Àtºèqÿt 9 èLÿ» è ÿè2tèVé¿èP± º èáþ» 3É.Š ã ŠèzÿˆCâöˆ/Ç5 ñ è½þ Àuñè³þ Àñë±3ë ‹èõÿº€±é™þöÿuð¢èØþºè ÿ 9 éÌþ¿Ü ¾ ¹ó¦ãëÃôŠ ÀuÃ< sé“W¿; ¹ üò®_Ê<uÃ< tÃFëñCÆ âúÃQèÌÿYtòC<*u°?ëFˆâëè¸ÿtFëøÃ¸»'ØSÆ: ‹65 èðt^�ç�FƒVƒ×÷ÇtƒïÑïÑ^Ñ^ƒF�fðÿ ~‹F%ð-ð?=ð}#=ø~)‹F-8y€Ì‹V‹^¹ÑãÑÒÑÐâøë‹F ÿºÿÿë3À™‹~‰‰Eè³úÂU‹ì‹vŠ%ÿt"ŠF%ÿ‹vÿFŠ�âÿ;Ðu ÿN‹F‹å]ÃëÔ3À‹å]ÃU‹ìƒì�~þv3À‹å]ËF@%þÿ‰F‹óFP�F+É3ÒZ;Âs3À‹å]ËɉFþ‹F‹ÉЉÉ‰YÃQVW *#þÈ¢*#*ÁtŠÈ2íÉ‹þƒÆüó¥_^YÃRW3ÒµÿƒÆþÁ:*#s‹D;Ârî‹ÐŠé‹þëæ°ÿ‹÷ŠÍþÅtþÀ À_ZÃRWºÿÿµÿƒÆþÁ:*#s‹D+Gtrë;Âsç‹ÐŠé‹þëß°ÿ‹÷ŠÍþÅtþÀ À_ZËGÃSèöÿ‰F‹Þèîÿ‰F[ÃUƒì‹ìQµÿèãÿ‹;r ‹F;FrµŠÅYƒÄ] Àà*#þ*#´öä‹ð�´+#ÃUƒì‹ìRQè¬ÿ‹;u‹F;FuYQèÿë<uÆâ"ƒ|t>‹D£×"ƒ|‹Dt‹D£Ù"Q±8Rè ÿZY€>›$t1Q±6è‘ÿY¡Ù"9Ds‰D±8è€ÿë\ƒ|t Ts ºðÿëë[TƒÆ â� Òt)‰Ù"±7èTÿ€>›$t±5èHÿ;Ù"w×±7è=ÿ‹Ù"+Óè,‹>”#¡##ŒÉ;ÁuÆEþ“#ë¾ "¹8tƒÆ â÷°ÿðÀ>â"ÿu ‹"Ú‰"ðèÔÿƒ|t.‹þ¸èÆÿƒ|tèãþÑê‹Ú\;\v+\ < tëõè¯úµ¿�N¬ª ÀtþÅëöŠÅ¿€ª¿&‹E.£û&ŠE.¢úèðøè*úÆÏ.Æ ŽŽ»ƒ?tŽ.ÿù¼0 é±øèˆüè†ú (, »: uéhûéÇûCMD$$$ SUB·ÿ‰67 t@€|:t 9 ë<w<w´ÿ[ë9¢: FFˆ¹è ÿ¹<.uFè•ÿC‹û‹Á¹ü3Àóª‰65 [¹ C€??uþÄâöŠ äÿD »¾(¹ó¦tùKuñ°Ê< u÷‹ÃÃŒÊèÛþºKèãþÃÇ5 .€> u.Æ ¼0 è>ë,.Æ ¼0 QŠÁ±ÒØ$ŠÐ¢Îèïýè’ý¢èˆýX$¢9 è‡ýè©ÿ.€> uü¼0 èAýèsþAè+ý°>è&ýèŠÿèÈýüè_þ¢9 .‹Fþ‹å]ÃU‹ìƒì3À‰Fþ‹v‹% tÿvèïƒÄƒøÿu¸ÿÿ‰Fþ3À¾ð‹~‹UÑâò‰¸>‰Fî‹v‹D‰Fðÿvè±ïƒÄ�vîVVèáãƒÄ%t‹Fî%ÿ‰0¸ÿÿ‹å]ËFþ‹å]ÃNETUNLOCK version %d.%d%c Please use the following convention when you enter a lock string to 2‰‹G)Dë(‹F+Fu ‹+‰Dë‹+‰Dè©ÿ‹F‰+F÷؉DYZƒÄ]ËGDEèÁþÃQRVSèhŠ/‹óƒî[±ÿƒÆþÁ:Ís èEÿuò°ë°ÿ^ZY ÀÃUƒì‹ìVQ¾'#±ÿƒÆþÁ:*#sè ÿ‹;s ‹F;wëã;FsÞ°ë°ÿY^ƒÄ] ÀÃUƒì‹ì¾'#±ÿƒÆþÁ:*#s èÏþ‹+Fuëë°ÿƒÄ] ÀÃUƒì‹ì¾'#±ÿƒÆþÁ:*#s è¤þ‹F+uëë°ÿƒÓë‰\U‰Uðè›ÿT‰TÃ|tDÃDÃÆÖ"¡×"€>â"ÿu ÆÖ"£"£Ô"ë,¾ "¹€<t€<u£Ô"ƒ|u‰D€< uÆè¯ÿƒÆ âÚÃýpuSè5þ[½¾T"ÃÅËØ%ð±Òì±ÓãƒësþÌá�$£##�‰Ü"¡”$£à"¡–$£Þ"ŒÊ±3èþº "±èþýèéý€>›$téÍèþ„ÀuöèMÿºT"±èßý½p¹» "Q€?t$ŽG¿‹OãQèp  =_.:;<>,DIRSUSERREN TYPEERA DIR NO FILEALL (Y/N)?FILE EXISTSMEMOR€> ;t׋65 è«þtÎèÚþu+ö: ÿtéE€>( tè5ÿH»â ØØ‹ÿâ¹� ë¹\ éïüèãü‹7 Š< t ÀtSèÃü[Cëî°?èºüèÅü.Æ étÿè€þö: ÿuÌ»(¹ €? u°!Ê< t'C,0< s±ŠðöÅàuªŠÅ±ÒÀÅr ÅrœÆr˜ŠèþÉuÔÀ? uŒCþÉuöŠÅÃüó¤Ã»K´ÁØŠÃÆ' : Àt$þÈ»9 :tëŠÎèÆüë : Àt þÈ»9 :uà9 be cleared. To unlock a file, enter the filename and file type Separate the file name from the file type with a period. To unlock a partition, enter the partition name. Enter your unlock string: Your unlock string is too long. The lock string was Ä] Àûæ"ŠÆ Àu%élèîÿè rPŠÈèÀXÃ< t< t < t<t< àæ" ÀuKèD$tñè8<u:è1<t2ÀÃÆå"€>“#u è  ›$¢ëö¯$ÿt€>“#uÆ éHûé&û¢æ"°àã" ÀuQè ÿYQèîYQ€>¶$tèÓYŠÁ»å"<tþ< sþŠ ÀtŠÁ<uþÃ< uûÆÊÁèNÿs P±^è®ÿY€É@€ù u¥± è ÿ å"$uôÃè± èŽ±éÿ¹üó¥ƒÿuŒÂ€ÆŽÂYâçYƒÃ âÐŽÔ"Œ›$¿¹0°ü󪿠Ö"&ˆE²¾ "¹8tƒÆ â÷ë0‹D&‰E‹Dƒ|t‹Dè&ÿ&ˆe&‰€>â"ÿu ƒÇ&ˆe&‰ë þƒÇ€úvµ¡Ü"£™$Ƙ$¡à"£”$¡Þ"éû�éû$ÿÿëà #<tÆ €>“#wèhëèò‹”#èéþ“#Ƙ$»%é·Ž�$‹ÚŠ‹O‹W[3ÛŠØÀØ�Ã%ÿ㉢$‹Êè´ÃY NOT AVAILABLEREAD ERROR CANNOT CLOSE NON-SYSTEM FILE(S) EXIST SYSTEM FILE(S) EXIST” šŠÒ* ƒä.Ƙ$P.Š&'#. #PÍàX.¢#.ˆ&'#XÃ�£–$á##£�$Ç›$ÿÿéÇ€>à$ð t¹ª èüëÆñ è€>ð t¹Å èüé/.Æ Æð è­ý€üÿuéøþè�ÿ»(€? u µ Æ?CþÍuø²Rè)üuèÒþu雠ͱÒȊȰ èEÿÐÐsöñ ÿuÆð ëpöñ ÿtÆð ëbZŠÂþÂRé$PuèzûQè«üYAèjû°:èeûëè^û°:è[ûèVûµŠÅèñþ$< uXP<u ° èàþ$< t° è5ûþÅ€ý s €ý uÓè$ûëÎXèIüÎÎé*é!é COPYRIGHT (C) 1980, DIGITAL RESEARCH ‰±#è†ÿè å":ä"sá± èuÿëð± ènÿ± éiÿ‹ñ¬<$tÉAQŠÈè®ÿYëë å"¢ä"‹™$&ŠCSµQSè·þ[Y< uéÆ< tù<u ítæþÍ å"¢ã"ëQ<u ítÔ&ŠþÍKë|<u QSè“ÿÆä"ë¾<uö¶$ë²<u[ ä"»å"�:s‘�þèGÿëí<uèKÿ[é~ÿ<u5Qè?ÿY[SQ ítC&ŠþÍQSèüþ[YëíS ã" Àt*å"¢ã"è ÿþã"u÷ë˜C&ˆþÅQSŠÈèÑ‹¢$‰%#‹ $鲃.”#‹>”#‹‰‹G‰EÆE€)#Ãè›u €>*#tsèíun‹D9Gr‰G‹‰ëSèyuXƒÆþÁ:*#sMèHuð‹D+9Gr‰Gë-èSu2èÝu-èkè‹ÿëèAu ƒÆþÁ:*#sèuðèCènÿ *#ˆG2Àë°ÿ¢›$ËG£Ù"‹£×"»×"èëè€ÿuèãëσtÓèluÎè’tÉèc<uÂèÄu‹þŠéèæt‹GEë¢è&«c°%üµÓØÞêñì  �' ¡ § Ò ë ô ý ! !!!!!(!º.!4!=!F!X!a!g!m!s!÷÷Ä!Ö!ø!ñ Wv€¬ÎôD¤°"é » $éJ” ŒÈŽØ��$€ùt€ù rƱ$ÿŒ”$‰&–$€>˜$tŒÈŽÐ¼Ž$‹–$Ž”$&‹_�ãtûŒØUWVŒ%#è^_]Ž%#úŽ”$‹&–$Ʊ$Ž�$ω™$ˆ#3À£›$¢'#¢uèƒûé`ÿZÃ.Æ èÚü€ü u!¹d èûèŸû» þté³ýC€?YtéªýC‰5 €>( tgè‰þº'èHûþÀuèêýëL.Æ è’üuJ€>( tCèeþèûtáè·ú»ÿ�û€r Sè#û[u»C¾JóŠ<tSè†úè´û[uëØþÈuéÀè‘ýèEþé–ý.Æ è:üuò : PèþèÍútëU¾'¿7¹èíý‹65 èãû<=t<_u5F‰65 èüu+XŠè»: Š Àt:ň/uˆ/Æ'ÍàŒÍŽÅñ3ÒëóŠÐ±ëí° QèôÿYð èõÿ° ëñQèóÿ[Š ÀuÃCSèØÿ[ëñº'±;ëÁ¹2º0 ë¹±:ëµ± 뱊бë«è¨ÿ¢ÍþÀñëóÆGº'ëò±èäÿtù› ë ±ëØ±ëÔº'ëó±ëèsÿ Àñëöº'ë÷èˆÿé·±ë²ÿ± éVÿ–#`u‹™$ŠG $€u¢–#°ÿë~ÃèÿéòúèZë‹�$‰«$±‹™$€??tè…ö€??tè=÷èâþ±èùë‹«$‰�$‹©$‰™$èÀþèóøé ÷è·þèœùéµøè®þèýþéÛûè¥þéüèŸþèüöé)ûè–þèòù锸‹ê"ë& ¤$éÓô‰ $éJ÷‹ø"ë‹è"ë ènþèòùélø‹ô"‰›$à#<ÿu ¥$ëÌ$¢¥$ÃèOþè™þéyýèFþé~ýè@þé³ýè™êéíý¡™$÷ÐP»ê"#‰°€‹™$ºÚˆÃ?uú‹ò­‰Ã3À¢›$£¦$è üuòèRü$€uë±è þèêütá¹è2üÙ‡Ú‹™$Ù±€>#tŠ À‹ò¬uˆ ÀuŠ‹úüª:uGëè ÿ‡Úè›ÿ‡Ú‹ò‹;u3BCþÉBCþÉu¹ìÿÙ‡ÚÙ‹ò¬:rˆ¹Ù‡ÚÙŠ‹úüªÆ #ÿéÎþþ›$Ãè¬ûÿ6™$Ç™$ç"±è‹ýèUü�™$tä‹™$»Ú±2ÀˆCþÉuù» Úˆè±ûèyþé˜û2À¢ #èÿè ütÿ ÀÃè‘3À‹î"‰Ë#è�ëŠ #èŠ Àtß»"éoÿ‹¦$±Óë‰#‰#¡#º÷6ú"R‹È‹6î"‰ #èJY‹ #èT‹Ëé@»ü"Š #ÒèŠè±* #ÒàÅË™$ƒÃÙ€>#tŠ·ÃÙ‹ÃèËÿŠÈµèÜÿ‰#Ë# ÛÊü"‹#Óã‰# #"ý" ؉#Ë™$ƒÃ Šú™$»ÚÃèðÿŠ¢#‡ÚŠ¢#è×ÿ þ""¢#ÃèÕÿ #<ur! s#r!ÿÿÉ!9^#V!ÿÿÍ(_ÊCE!ûÿå`iÑånÍ_ëás!ë`is#r! s#r!É`i~#¶ÂTEÅÍ0FÑ! ^#V!Í(_Ê�E!å!9å! ^ÕÍ:PÑÑÑÿÿÍ(_ÂåD!9^#VëÉ! ^#V`is#r! ^#VÕ! ^#Váë! s#r!å`iÑånÍ_ëás!9^#VÕ`iå~#fo#ëás#rë+Ñs!ÿÍ_ÉÍ�Z!'`DM`i~·ÊF`išÿþè“ÿà²)Ȳ)ûÏ*èÕè�ÿ»+PèËX$_ )Ž )èÛþ^uƒþ!u<ué¬þ°ðÉ )É )ûI+û *è°Ê„Àt ŠÈSèÍþ[CëðòX»è"#‰À>#t$‹™$€>–#`u€O€Æ # Àt ˆ #¢#èéý€>'#ÿuèSê¡›$‹ØÃèãýÆ#±ècüuðéLû¹€¿ ‹6 $Ž¢$¬ª Àtâø°€*Á¢ é:íä ° µ º ³‹™$ƒÃ ŠþÀ$ˆtŠè þ""Å" #t ë&ƒÃþŠ$t&±è!ýèëûu  #þÀtèuÿèÜût ëè‚þè�ú2Àé"ùè#ùé4ûÆ#Æ #ÿèwú #:#r<€u(èÿèWú3À£#ˆ€>›$uè úèút èúè¦ùèyùé]úéÛøÆ#Æ #èºú‹™$è£úè(ú #<€réºøèÒùèÞù±uHè–ù¢#3É ÀtŠÈIèŸù‹ËèQý Ûu°éŒø‰#‡Ú‹™$ƒÃ€># #´t2À#ˆ‡Ú #ˆù€‹ò"2ÀCâûÃQФ$»ÓãY Ùáè"Ф$Óè$Ëè"èßÿ‰è"‹#B‹ì"‰Ãèº ÚŠÐÐs» "ëèÇÿt»"é*þ‹ò" #´ØÃ‹™$ƒÃŠÃèóÿÆÃèìÿ €ˆË¦$‹ì";ÃèòÿrúB‰ÃR+Ó‹ÚZñÿ‹#‹#èìÿsàQèOÿ‹#ö"YþÁt :t è¾ÿsè_ÿÈÃèÍÿè±è3þëèèþ‹¢$èº » $ëŒÙ DM `ëͶ_ÊF!ÉÃòE!ë`is#r! s#r! s#r`iÉþÿÍ�Z!9N#F! ^ÕÍKTÑÊfF!ë! s#r`ië! s#rÉ!åÍ-VÑë!9s#rz³ÊLF!ë! s#r!å`iÑånÍ_ëás!9^#V! s#rÉ!b´,s# y°Â°F*ùø"ÊŽ*¨`"4ŽÍÝFª`ÍÍÃÌFÍ�Z!å!ecå!�åÍ5ZÑÑÑ!å:€o&9å~#fo#ëás#rÃužw#ÂeAÃrAõ!&`>õ^ë)|‘Ú†Ag,Â~Aës+ñ=ÂyAZ!½A~*`+"`w!#`¯¾ÂrA#¨A*`ñò»A+6-ÁÉ0123456789ABCDEFÍ�Z!'`åÍÜAÑÉÍ�Z! 9N#FÅÍGBÑåÝáÿÿÍ7_ÊCB!ÝåÑå؈ëØ؉C±€>›$tÈ #èŠù€>#uE€> #u>ÿ6#‹>ò"3À¹@üó«è¾ú‹#‰#èïøèËø‹#Æ #ŠÃŠ6ý""ÆC:Æuà�#è‡úèÌøè¨ø #»#:rˆþ±Pèöù$ˆX<u€>#uè_ùèYþ»›$Š ÀuþÈ¢#ÆéHùÆ#Q‹™$»!ÚŠ$PŠÐÐCŠÐÐ$ŠÈŠÐØÐØÐØÐØ$ŠèXCŠ Û³ui» Úˆ» ÚŠÁ*u »ÚŠè° »ò"‹é™ ‹ò"‹ $±€Ž¢$è~ýû¦$ŠC:uþÀûÿÿ‰¦$Ë#‹¦$C‰¦$èdÿsëä ¦$$Q±ÒàY¢# Àu&QèÌýè‹ÿYéLÿ‹Ñ€áþÁŠé±Óê‹ø"ÚŠŠÍÒÀ‹ÑÃRèàÿ$þY ÁQŠÎÒȈYÃèÙþƒÃQ±ZþÉuÃR€>#tQSеëþÉQ‹CS Ét ‹ÿ";Ùrè¹ÿ[CYëÏ‹ÿ"±ÓëC‹Ë‹ø"ÆCâú‹#‹ø"‰èý‹ì"Çè2ÿ±ÿè5ÿèÍ_ecÑs!¹H")c!ecDM!"åc*åcëÍb_Ê£H`i^! Í(_ÂEG`i^! Í(_ÊMG`i#DMÃ)G`i~·Ê£H`i^!>Í(_ÊkG!åýáÃG`i^!<Í(_ÊTH!åýá`i#DM^! Í(_žG`i^! Í(_Ê¡GÃG`iåÝá`i#DM~·ÊÞG`i^! Í(_ÂÌG`i^! Í(_ÊÛG!å`i#DM+ÑsÃÞGæGýåÍ KÑýåá|µÊýG!¶åÝå͆IÑÑåýáà H!Í_åÝáÃ0B`iå~#fo+ëás#r!å`iÑånÍ_ëás!ÿÿÉÃéAÍ�_-B -B BCBÝåáÉÍ�Z! 9N#F! ^#VÕ`i^#VáͶ_ÊC! ^!Í_Ê|B!ÿÿÉ!ûÿå`iÑånÍ_ëás`i~#¶Â BÅÍ0FÑ! ^#VÕ! ^#VÕ! ^ÕÍ=MÑÑÑåÝáëÍH_ÊðBÝåá|µÂÙB!ÃÜB!å`iÑånÍ_ëás!ÿÿÉ! ^#V`is#rÝåáBdos Err On : $Bad Sector$Select$File R/O$Å*$t–#`u‹™$ÆÃ÷"ÿÿuŒ"3Û‰è"‰ê"Š·$ˆ¤$éNÿè{ÿèØ÷€>¥$t Ç™#þÆ—#ÿèûè<ö—#ÿuÃÆ—#�>™#þtò‹˜#€ãüK‰¦$Æ–#`‹™$ƱèIùèaùèÍúèu‹6¦$‰6˜#éNÿèTý± è=ÿèþt»è4ýèOýÆå±èkþè´ýè-ÿëå‹Ñ Ét IRQè)þÐØsYZ;ÿ"sBQR‹ÊèþÐØsZYëÚÐÐþÀè+þ[Zà Éu̻ñ² Rµ‹™$ÑèõüYèûè©ûé[ýèÝü± èÆþ‹™$ŠƒÃˆè…ýuÃè±ü±² èÇÿè±þëë± è¡þèkýtæ±² è±ÿè›þëï±è‹þèUýtÐèöûPSè›ü‡Ú‹™$± Rè»úè©üZ» ÚŠ»ÚŠ/[Xˆ:ŠÅt°r*     +åÍ KÑÃïH! 9~#¶Ê,I!åÍÅWÑÍ_Ê,I!0IåÍÀTÑÍÌFÉA:$$$.SUBÍ�Z!ýÿ"/Ž!ÿÿÉÍ�Z!Écon:CON:lst:LST:prn:PRN:pun:PUN:rdr:RDR:Í�Z!9^#VÕ!å!9^#VÕͧIÑÑÑÉüÿÍ�Z!Ê`åÝá!ë! 9s#rÃÚIÝåáåÝá! 9å~#fo#ëás#r! 9^#V! Íb_ÊüIÝnÝf:IÍ(_ÂJÃÁI!øÿ"[úÅ]ÊÅ]ú]ͬ[úº]ÃÅ]ͬ[úº]ʺ]ÃÅ]"c!"cÉ"c|·ò"^!ÿÿ"cÉ*cÉz¬õÍ^^ëñú|_}´ÉÍt^ë}´ÉzõÍ^^ñ·ú|_|µÉ|·òi^/g}/o#z·òt^/W{/_ÅMD!Í�^Á}´Éy/Ox/G>)ë)ëÒ’^, Ú£^õ}‘o|˜gñ=Š^É=Š^ÉÅDM!>)ë)ëÒ¹^ =±^Á}´Éë{æ_Êè^|´òó^|7g}oÂÎ^´Éë{æ_Êè^)Âã^}´Éë{æ_Êè^|·g}oÂó^´É¨`ë|µÉ!ÿÿ¯=É!9}–_|#žWë"ÊŽÉÍÏZ ÿÍo&·ÉÍÏZ ÿÍ2�a:bþÿÈ _ÃÍÏZ :�a_Ã!9ÅÿÃdY!9ÅF+N+V+^+~+ngëx±Ê‚Y–‚Y·Ê‚Y# ÃmYÁoŸgµÉ!9V+^+~+ngåw·Ê Y#ÕYá|µÉ!9ÅÿøY!9ÅF+N+V+^+~+ng対ÊÊY#ÃÂYx±ÊÛYw·ÊÛY# ÃÊYwáÁ|µÉ!9^#V#në~»ÊýY·ÊøY#ÃëY!¯É|µÉÍ(_Ê+T!"/Ž!å!€å!€åÍZÑÑÑ!"#f!É*/Ž|µÊ7T!ÿÿÉ`i"#f!! ^#Vë"%f!ÉÍ�Z! 9^#Vë)))Ì`^ëÉÍÏZ!ÃrTÍÏZ"Å*bë!€"bÍÁÅ*bëͷ«T*b!4Â�T#4*b+"b}´ÂsTÁÉþÊ»TþÊ»To&"/ŽÁ*bÉØÿÍ�Z!9å!69^#VÕÍþWÑÑDMÅÍ+YÑ!9å!åÍÅWÑÑDMÍDY`iÿÍ(_ÊU!ÿÿ_ë!$ s{³ÂO`i!å~#fo#ëás#r!ÉÍ�Z: e·Â‘O!ÿ}2e!}2!e}2 e!eå! åÍÅWÑÑ! å!åÍÅWÑÑ:!eo&Í(_ÊtO!}2 e!É:†aoå: eo#}2 e&e#Ñs!"!f: eo&DMë!9~#foÍc_ʱO!9^#VBKÅ!9^#VÕ*!feåÍ5ZÑÑÑ`ië*!f"!f`ië: eoë͆_}2 e`iÉÍ�Z!9N#F!åÝáÃPÝåá#åÝ/Ž!ÿÿÉ!Îo&Ézæo&Éë|ªút_}“|š>Îo&É|æo&É}/o|/g#}´Éë}“o|šgµÉëáÅBK^#Vz·ú¯_#y¾Ê©_###×_#x¾Â¤_#~#foÁéë}“|š>?Îo&Éë}“|š>Îo&É'-6K_hp{ƒ‹›-f 0-r!9~#fo¯¾ÊZ#à Zë}´ÉÅ!9^#V#N#F#nëx±Ê3Zs# Ã(ZÁÉÅ! 9F+N+V+^+~+ngºÒ_ZÂUZ}»Ò_ZÊaZ ë ë+í¸ÁÉí°ÁÉ!9~þaÚtZþ{ÒtZÖ o&·É!9~þAÚŠZþ[ÒŠZÆ o&·ÉéáÅDM!9ë9ùÕÝåýå`iÍ�ZýáÝáëáùÁë|µÉáÅDM!9ë9ùÕ!©Zå`ié~# x±ÂÄZÉÑ!9¯ÆêÞZÝåýåÅÕb~#ÂåZ!òZãéÁ¯ÆêýZýáÝá|µÉ"/Ž!ÿÿÉ!ÉþÿÍ�Z!9N#F!üÿ ^#Vë+))ë!9s#rÅÍ…UÑ!9^#VÕÍ-VÑåÝá|µÊ�UÝåáPYÍ7_Ê�U!9^#V!9~#foÍÅ_ÊoU!9^#VëÃwU!9^#VëåÝåÅÍ5ZÑÑÑÝåáÉÍ�Z! 9^#V!üÿåÝáÝåá##~#¶Ê¨U!ÿÿÉ!'fDMùU! ^#VBK`iÝåÑëÍÅ_ÂØU! ^#VÕÝåáÑëÍÅ_Ê V! ^#VÕ`iÑëͶ_Ê VÝåáPYëÍÅ_ V! ^#VÕÝåáÝåáë!9~#foÍb_Ê6P! 9^#VÕÍÅWÑå`i#DM+Ñs!Í(_Â6PÃúOÝåáÉÍ�Z! 9^#Vë)))Ê`DM!9^#VÕ!9^#VÕ! ^#VÕ! ^ë)‡a^#VëÍ�ZÑÑÑÉüÿÍ�Z!DM!9^#VÕÝáÝn&&åÍ+YÑÝåá$~·ÊïPÝn$&å!€Ñë͆_DMë!9~#foÍÅ_ÊÔP!9^#VBKÅ!9^#VÕÝåͼQÑÑÑÊïPÍDY!ÿÿÉ!9^#V`i͆_ëÍÿÿÉ! 9^#VëÉÍ�Z! 9^#V!Íb_Â2K! 9^#V! Íc_Êžw#Ât[É!c~·ÂÅ]#ƒ[ú]¯=Áɯ<ÁÉÅ c!(cî€O~÷[Å c!(c¾Ú�[”[+µ[¯ÁÉÅc!%c¯Ž#ÂÐ[ÁÉÅc!%c¯ž#Âå[ÁÉÅc!%c¦#ÂáÑëÍÄ_ VðU! ^#VÝsÝrÝåáë! s#r`i"+f!ÉþÿÍ�Z!9^#Vë###ëÍë^#ë!9s#r*+f|µÂ_V!'f")f"+f!'fåÝá*)fDMÃ{V`iåÝá! ^#VBK! ^#VÕ`iÑÍ7_Ê×V! ^#VÕ`i^#Vë))PYÑÍ(_Ê×V! ^#Vë^#VÕ`iÑå~#foëás#r! ^#Vë##^#V! s#rÃ{V`i^#V!9~#foͶ_ÊsW`i^#V!9~#foÍ(_Ê W!ë^ë! 9s#rz³ÊdQ! 9^#VÕ!9^#V`iåÝåÍmTÑÑÑë!9s#rz³ÊdQÍDY! 9^#V!9~#fo͆_ëÍÛ^PYDM|µÂaQ!ÿÿÉ`iÉ! 9^#V!ÍÛ^PYDM`ië!9~#foÍÄ_ʰQ!9^#V`i͆_å!9^#V`iåÝåͼQÑÑÑʰQÍDY`iÉÍDY!9^#VëÉÍ�Z! 9N#FÅͲSÑëÍb_ÊÜQ!ÿÿÉ!9^#VÕ!$ ^!€å!9^#VÕÍ5ZÑÑÑÅ!Í(_ÊLÍYë!9s#r!9^#VÕÍ+YÑ!9^#V!Í_Ê7LÅ!åÍÅWÑÑÅ!åÍÅWÑÑÿÍ(_Ê}L!9^#V!Í_ÊmLÅ!åÍÅWÑÑÿÍ(_ÊzL!ÿÿ"/ŽÍDY!ÿÿÉàL!9^#V!Í_Í(_Ê L!ûÿ"/ŽÍDY!ÿÿÉ!ë!! s#r!# s!$ s!9^#V!& s`iå!9^#V!Ñs#r!9^#V!Í_#ë!% s!Må!9^#V!Ñs#r!9^#:I:I:I:IJIJIJIJI“KTI$aYI$a^I*acI*ahI*amI*arI*awI*a|I0a�I0a6a:I‚M!OäO :I�P¨R¨R 00000 �@@@@@@@@@@@@@@@ @@@@@@@ @@@@@ ù[ÁÉÅc!%c¶# \ÁÉÅc!%c®#Â!\ÁÉ!c~/w#Â1\É:%cæ?È*cë*c)ë)ëÒO\,=ÂG\"cë"cÉÃb\: cõ:%cæ?Ê\W! cñõ~w+Âs\Âl\ñÉ!Ny·ðëÃq[ÅcÍ�\Å%cÍ�\yÁ©õÍí\ñÁún[ÉÅcÍ�\y·õ%cÍ�\Íí\!c!cw#ÂÃ\ñÁún[ÉÅÍí\ÁÉÅÍí\!c!cw#Âã\ÁÉ!!c¯w#Âó\> õ!c ^#VÝsÝrÃ[W!9^#Vë))PY"+f*+fÝuÝt! ^#VÕ*+f##Ñs#r`i^#V!9~#fo͆_å*+fÑs#r!9^#V`is#rÝåá"+f!ë! s#r`iÉ`i'fÍ(_ʹW!åÍâXÑDMÿÿÍ(_Ê•W!É!ë`is#r!ë! s#r`iåÍ…UÑ!'fDMÃmVÉÍÏZÍÈWëÉÍÏZ*bDM*bëÍëo¯gÉÍÏZÍæWo&ÉÍÏZ*bë*+++ë*bDM*bëéÅ!"åÍÅWÑÑ"/Ž|µÊR!ÿÿÉ!$ ^!9~#foÍ_ë!$ s{³ÂFR`i!å~#fo#ëás#r!ÉÍ�Z!9N#F!9^#VÕÝáÝåá+åÝá#|µÊŸR`i^! Í(_ʉR! å!åÍÅWÑÑ`i#DM+^Õ!åÍÅWÑÑÃaR!9^#VëÉÍ�Z!9N#F!9^#VÕÝáÝåá+åÝá#|µÊæR`i#DM+^Õ!9^#VÕÍÅWÑÑÿR!9^#VëÉÍ�Z! 9N#FÅ!#V!Í_ÊMÅÍïRÑÍDY!ÉÍ�Z! 9N#FÍ¥SÅ!åÍÅWÑÑ!ë!% s!ÉÍ�Z! 9^#Vë)))Ê`DM!9^#VÕ!9^#VÕ! ^#VÕ`i^ë)~a^#VëÍ�ZÑÑÑÉüÿÍ�Z!DM!9^#VÕÝáÝn&&åÍ+YÑÝåá$~·ÊðMÝn$&å!€Ñë͆_DMë!9~#foÍÅ_ÊÕM!9^#VBKÅ!9^#VÕÝåͰNÑÑÑÊðMÍDY!É!9^#V`i͆_ë@@@@ VÕÍ ’ÑÑ"©ŸÉÃþŽ!þÿ"©ŸÉ Sorry, this program requires BIOS 2.248 or greater. Sorry, your system has an old style password table, ·~�w#Â]ŸæO!c!%c·ž#Â]yÞÂ0]!c4ñ=Âû\Éñ=Êa]õ!c·~�w#Â<]ŸO!c!%c·Ž#ÂO]yÎÂ0]Ã&]!c!%c·Ž#Âj]ÉÅ!c!c~6#Â}]> õ!c·~�w#Â�]Ò­]c!%c·Ž#¤]ñ=‰]ÁÉ͘[ÊÅ]!¯É͘[ʺ]!¯<É͘[úÅ]ú]͘[úÅ]ÊÅ]ú]͘[úº]ÃÅ]͘[úº]ʺ]ÃÅ]ͬ[úÅ]ú]ͬ9N#F#^#V þ ÊXþ ÂXà Xkb6#> 6 #= X>6#=Â)XëÅ ÍÖXÚJXÖ0_z‡‡‡‚‚ƒWÃ4Xþ/ÂTXñÃWXÁÿ þ: >‚X æþAÚ½Xþ[ÒsXÖ@ÃXþaÚ½Xþ{Ò½XÖ`w# þ.Ê�X·Ê¶XÊ…XÍÄXw#ÆX{…o|Îg ·Ê¶XÍÄXw#§X&jz·ÁÉ!ÿÿ|·ÁÉþ*ÂÍX >?ÉþaØþ{ÐÖ Éþ0Øþ:ÒàX·É7É!9^#V*¨`ÚYë*ÊŽ}“|šÚY*¨`ë"åÍÅWÑÑ`i!~#¶ÂS!ë!$ s!É`i!å~#fo+ëás#rÅͲSÑʦÑÑÊy’!¡9åÍ Ñ00ÍJ:þÿ!9^#Vë^!Í9:ë!9s!9^#Vë^!Í9:ë!9s!ðå!9^#VëÑån&Í9:ëás!ðå!9^#VëÑån&Í9:ëás!9^!ðÍk;ÍA:å!9^#VëÑån&Ík;ëás!9^!ðÍk;ÍA:å!9^#VëÑån&Ík;ëásÉÍJ:!å!’å!9^#VÕÍ¢ZÑÑÑʸ‘!å!’å!9^#VÕÍ¢ZÑÑѹ‘É! 9^#V!å!9^#VÕÍ×�ÑÑ!  title 'Track Buffered BIOS - SBC204' ; 5 Jan 82 -jrp ; Copyright (C) 1980,1981 ; Digital Research, Inc. ; Box 579, Pacific Grove ; California, 93950 ; ; (Permission is hereby granted to use ; or abstract the following program in ; the imperating System TableñÿÍ�Z!9^!AÍ(_ë!9s!å!9^#VÕ!9^#VÕÍZÑÑÑ!9~·Ê-š!±›åÍÐ;Ñ!æ›åÍÐ;Ñ!œåÍÐ;ÑÃ5š!%œåÍÐ;Ñ!RœåÍÐ;Ñ!9^#Vë+å!9^#VÕÍëÑÑë! 9s#rz³Êuš!9^#Vë^!Í(_Êyš!ÿÿÉ!9^#VÕÍ'¥Ñ! 9å!9^#VÕÍßÑÑ!9~·ÊR›! 9åͰ ÑÊÇš! 9åͦÑ!œåÍIÑÂÄš!ÑÍ<!9^#VÕ!1˜åÍÐ;ÑÑ!�9^#VÕÍÇÑÍÊÂé”É!å!…9å!…9^#VÕÍ5ZÑÑÑ!DM!8˜åÍÐ;Ñ!ƒ9å!U˜åÍÐ;ÑÑ!€˜åÍÐ;Ñ! å!å!9åÍZÑÑÑ!å! 9åÍëÑÑåÝáëÍc_Ê\•!ª˜åÍÐ;ÑÖÝåá|µÊ–! 9^!Í(_Êu•É!ë!9s! 9ë!9s#r!9^#Vë^ÕÍcZÑå! 9å~#fo#ëás#rë+Ñs{³Ê¶•Ê•! 9åÍ€¤ÑÊ ë!!9s#rz³Ê®�!¸9^#V! 9s#r!‰9åÍñ Ñë!#9s#rz³Â@�Í€ 0ëÍG_Ê�!’åÍÐ;Ñ!°’åÍÐ;ÑÃy’Í€ `Í©^ë*ú_ë!#9s#r!‰9å!£9å!)9åÍâ�ÑÑÑÃŒ�!å!'9å!¥9åÍ5ZÑÑÑ! 9^#V!|9s#r!@å!>9å!'9^#V!åÍ5ZÑÑÑ!‰9å!'9åÍ� ÑÑýåÅÍ•°ÑÑ!€å!£9åÅÍ=MÑÑÑýåá#åýáÃÈ�ÅÍG£ÑÍ[€Í�\Í8^ë9^#V!å!9^#Vë#åÍ×�ÑÑ! 9^#Vë###å!9^#Vë##åÍ×�ÑÑ! 9^#VëÉ //////ÍJ:!9^#V!ÍÄ:ÂE’!9^#V!Í©:ÊI’!É!9å~#fo+ëás#r!9^#V!ÍÝ:)å!9^#V!Ío:å!9^#V! ÍA;ѹŸ^áÍs;Í9:ÉÍJ:÷ÿ!å!9^#VÕ!9åÍïYÑÑÑ!ë! 9s!9åÍ.“Ñ!9åÍ�‘Ñ!ë! lementation of CP/M, MP/M or ; CP/NET for the 8086 or 8088 Micro- ; processor) true equ -1 false equ not true ; Track buffering equates... host_sectsiz equ 128 host_spt equ 26 host_fsn equ 1 bdos_int equ 224 bios_code equ 2500h ccp_oÿÿÉÛ! 9åÍñ ÑÊýš!œœåÍÐ;Ñ!ÏœåÍÐ;Ñ!�åÍÐ;Ñ!4�åÍIÑÂúš!ÿÿÉÛ!9^#VÕ!X�åÍÐ;ÑÑÍÊ›!ÿÿÉ!å!9^#VÕͧIÑÑë! 9s#r!ÿÿÍ(_ÊO›!9^#VÕ!}�åÍÐ;ÑÑ!ÿÿÉØ›! 9åͰ ÑÂ�›!¦�åÍÐ;Ñ!Ï�åÍÐ;Ñ! 9åÍNÑ!à�åÍÐ;Ñ!ÿÿë! 9s#rØ›!ë! 9s#r! 9^#V!ÿÿÍ(_Âï™! 9^#VëÉ What is the nam–! 9åͰ ÑÊñ•!å!…9å!9åÍûÑÑÑÂñ•! 9åͦÑà –!å!…9å!9åÍ5ZÑÑÑ!DMÖ!½˜åÍÐ;ÑÖ!DMx±Ê•!ƒ9å!…9åÍ>¦ÑÑÂ5–É!Û˜åÍÐ;ÑÍ<!9^#VÕ!™åÍÐ;ÑÑ!ƒ9åÍÇÑÍÊÂa–É!DM!9~#¶Ê-—x±Â-—!`å!#9å!#9^#VÕÍ5ZÑÑÑ! ™åÍÐ;Ñ!ƒ9åÍNÑ!3™åÍÐ;ÑÍU!9^#VÕ!5™åÍÐ;ÑÑ!!9åÍæ! 9s#r!…9~#¶Êî�!…9^#V! ^#V! 9~#foÍ(_Âô�!Ã÷�!ë!9s#r!!9^#VÕ!'9å!�9åÍÔ¢ÑÑÑÊy’!…9~#¶Êq‘!9~#¶Ê9‘!Ð’åÍÐ;ÑÃq‘!“åÍÐ;Ñ!;“åÍÐ;Ñ!p“åÍÐ;Ñ!…9^#VÕÍçÑ!…9^#VÕÍP Ñ!ž“åÍÐ;Ñ!9^#VÕ! 9^#VÕ!‰9^#VÕ!�9åÍ8¬ë!9ùÊy’!9^#VÕ!‡9^#VÕ̓«ÑÑë!‡9s#rz³Êy’!9å9s#rÃê’! 9å~#fo#ëás#r! 9^#V! ÍÃ:Ê*“!å!9å!9^#V! ÍA;³ŸåÍ¢ZÑÑÑÂ'“! 9^#VëÉÃÛ’!þÿÉÍJ:! 9^#Vë~·Ê”“! 9^#Vë^!aͨ:Ê‚“! 9^#Vë^!zÍ©:Ê‚“! 9^#Vë^!àÿå!9^#VëÑs! 9å~#fo#ëás#rÃ3“ÉÍJ:!ÿÿë!9~#foÍ�;ÍA:å!9^#Vë#ë!9~#foÍ�;å!9^#VáÍ <ÑÍ9:ÉÍffset equ 0000h bdos_ofst equ 0B06h ;BDOS entry point csts equ 0DAh ;i8251 status port cdata equ 0D8h ; " data port lsts equ 41h ;2651 No. 0 on BLC8538 status port ldata equ 40h ; " " " " " data port blc_reset equ 60h ;reset se of the file to add to the Control Area Directory? (Use the full CP/M name in form filename.ext) Enter the name of the file entry to modify. (Press RETURN to go back to main menu) --> Do you want to overwrite it That file is not in the Control AreÑ!;™åÍIÑÊ —!ƒ9å!#9åÍ� ÑÑ!W™åÍÐ;ÑÍU!9^#VÕ!Ž™åÍÐ;ÑÑ!!9åÍæÑÍÊDM×!DMx±Ê*—!`å!!9^#VÕ!%9åÍ5ZÑÑÑÃf–!”™åÍÐ;Ñ!å!ƒ9^#VÕ!‡9åÍ5ZÑÑÑ!�9^#V!å!”9Í[áÍ&[!–9^#VÕ!ƒ9^#V!Ñs#r!ð_åÍÒ Ñ!9~#¶ÊÈ—!µ™åÍÐ;ÑÍ€ ë!9s#r!9^#VÕ!å!Wå!`å*ú_åÍë! 9ù!!²“åÍÐ;ÑÑýå!£9åÅ!�9åÍ”©ë!9ùÊy’!ГåÍÐ;Ñ!ë!’9s!‘9s!ë! 9s!Ÿ9s!ž9s!å!‰9^#VÕ!�9åÍ5ZÑÑÑ!ð_åÍÒ Ñ!!9~#¶Êy’!ñ“åÍÐ;Ñ!`å!%9^#VÕ!)9åÍ5ZÑÑÑÍ€ å!å!Wå!`å*ú_åÍë! 9ù!ö_åÍÒ ÑÅÍ KÑÉ There is no room in the OS Table for the entry that this new OS J:!}2/ ÉÍJ:!}2/ ÉÍJ:áÿ!"¾¡ÍF—ÿ͉:Ê ”!"ì¡Ã”!"ì¡!ë!!9s#r! å!å!9åÍZÑÑÑ!!9å~#fo+ëás#rë#|µÊ¬”!9å!9å!19^#VÕ!19^ÕÍR—ë!9ù!9s#r!9~#¶Ê‹”!9^#V!ÍÄ:Ê””!9^#VëÉ!å!9åÍ•ÑÑ©”!ÉÃ1”!9å!9å!19^#VÕ!19^ÕÍR—ë!9ùëÉÍJ:elected USARTS on BLC8538 ;********************************************* ;* * ;* Intel iSBC 204 Disk Controller Ports * ;* * ;********************************a but it does have an OS Table entry. This is an unusual condition. If you proceed, the new entry will replace the old one. Do you wish to proceed You have asked to read in file %s. Can't find the file (%s) to be added. There is no file in the ö_åÍÒ ÑÉ *SERIOUS BUG* in modify, can't find file in sd any more This is the entry you have chosen to modify: %02x What is the new file name? (Press RETURN to keep current name of %s) (Press ESC to go back to Main Menu) --> 8 characters max! Thawould require. The new file will fit exactly on top of the old one. Erasing the old version of the file. WARNING!!! DO NOT TOUCH THE COMPUTER UNTIL THE ERASE IS COMPLETED. DO NOT INTERRUPT THIS ERASE!!! Erasing..... Erase is complete. Copying file %!å!9^Õ͵–ÑÑ͉:Êô”!É!å!•å*µ¡åÍïYÑÑÑ!ÉPART0 ÍJ:úÿ!�–åÍY<Ñ! å!9^#VÕ!9^#VÕÍZÑÑÑ!9^#V!9s#r!9^#V!9s#r!9~#¶Ê<–!ÿå!åÍCLÑÑÿÍ9:ë!9sz³Â†•Ãe•!9^ëÖ!®–åÍY<Ñ!ÉÃ%•!°–åÍY<Ñ!É!9^#V!9~#fo͘:Êè•! å! 9å~#fo+ëás#r,     ************* base204 equ 0a0h ;SBC204 assigned address fdc_com equ base204+0 ;8271 FDC out command fdc_stat equ base204+0 ;8271 in status fdc_parm equ base204+1 ;8271 out parameter fdc_rslt equ base204+1 ;8271 in result fdc_rst equ base204+2 ********************************* ;* * ;* Disk Input/Output Routines * ;* * ;********************************************* SELDSK: ;select disk givenfor TBE mov al,cl out cdata,al ;Transmitter Buffer Empty ret ;then return data LISTOUT: ;list device output call LISTST jz LISTOUT ;wait for printer not busy mov al,cl out ldata,al ;send char to TI 810 ret LISTST: ;poll list stav al,4Eh out ldata+2,al ;set usart 0 in async 8 bit mode mov al,3Eh out ldata+2,al ;set usart 0 to 9600 baud mov al,37h out ldata+3,al ;enable Tx/Rx, and set up RTS,DTR mov bx,offset signon call pmsg ;print signon message call clear_flagsselect disk for next rd/write jmp SETTRK ;set track for next rd/write jmp SETSEC ;set sector for next rd/write jmp SETDMA ;set offset for user buff (DMA) jmp READ ;read a 128 byte sector jmp WRITE ;write a 128 byte sector jmp LISTST ;re;8271 out reset dmac_adr equ base204+4 ;8257 DMA base address out dmac_cont equ base204+5 ;8257 out control dmac_scan equ base204+6 ;8257 out scan control dmac_sadr equ base204+7 ;8257 out scan address dmac_mode equ base204+8 ;8257 out mode dmac_stat by register CL mov cpm_disk,cl ; save the selected drive mov bx,0000h cmp cl,2 ;this BIOS only supports 2 disks jnb return ;return w/ 0000 in BX if bad drive ;now, we need disk parameter address mov ch,0 mov bx,cx ;BX = word(CL) mov cltus in al,lsts and al,81h ;look at both TxRDY and DTR cmp al,81h jnz zero_ret ;either false, printer is busy or al,255 ;both true, LPT is ready ret PUNCH: ;not implemented in this configuration READER: mov al,1ah ret ;return EOF for  ; initialize track buffering mov cl,0 ;default to dr A: on coldstart jmp ccp ;jump to cold start entry of CCP WBOOT: jmp ccp+6 ;direct entry to CCP at command level int_trap: cli ;block interrupts mov ax,cs mov ds,ax ;get our data seturn list status jmp SECTRAN ;xlate logical->physical sector jmp SETDMAB ;set seg base for buff (DMA) jmp GETSEGT ;return offset of Mem Desc Table jmp GETIOBF ;return I/O map byte (IOBYTE) jmp SETIOBF ;set I/O map byte (IOBYTE) ;pr equ base204+8 ;8257 in status fdc_sel equ base204+9 ;FDC select port (not used) fdc_segment equ base204+10 ;segment address register reset_204 equ base204+15 ;reset entire interface max_retries equ 10 ;max retries on disk i/o ;before perm e,4 shl bx,cl ;multiply drive code * 16 add bx,offset dp_base ;create offset from Disk Parameter Base return: ret home: test wr_flag,1 ! jnz home1 ; if the buffer is clean, mov cur_disk,-1 ; insure we read the directory by invalidating ; now GETIOBF: mov al,0 ;TTY: for consistency ret ;IOBYTE not implemented SETIOBF: ret ;iobyte not implemented zero_ret: and al,0 ret ;return zero in AL and flags ; Routine to get and echo a console character ; and shift it to uppergment mov bx,offset int_trp call pmsg hlt ;hardstop ;********************************************* ;* * ;* CP/M Character I/O Interface Routines * ;* Console is Usart (i8251a) on iSBC 86/12 * int signon message and initialize hardware INIT: mov ax,cs ;we entered with a JMPF so use mov ds,ax ; CS: as the initial value of DS:, mov es,ax ; and ES: mov ss,ax ; use local stack during initialization mov sp,offset stkbase cld ;set forwarrror cr equ 0dh ;carriage return lf equ 0ah ;line feed cseg org ccpoffset ccp: org bios_code ;********************************************* ;* * ;* BIOS Jump Vector for Individual Routines * ; the track buffer home1: mov cx,0 ; home is a settrk zero settrk: mov cpm_track,cx ; save track number for next operation ret setsec: mov cpm_sec,cx ; save sector number for next operation ret setdma: mov dma_offset,cx ; save DM case uconecho: call CONIN ;get a console character push ax mov cl,al ;save and call CONOUT pop ax ;echo to console cmp al,'a' jb uret ;less than 'a' is ok cmp al,'z' ja uret ;greater than 'z' is ok sub al,'a'-'A' ;else shift to c;* at ports D8/DA * ;* * ;********************************************* CONST: ;console status in al,csts and al,2 jz const_ret or al,255 ;return non-zero if RDA const_ret:d direction push ds ;save the DS register mov ax,0 mov ds,ax mov es,ax ;set ES and DS to zero ;setup interrupt 0 to address trap routine mov int0_offset,offset int_trap mov int0_segment,CS mov di,4 mov si,0 ;then propagate mov cx,510 * * ;********************************************* jmp INIT ;Enter from BOOT ROM or LOADER jmp WBOOT ;Arrive here from BDOS call 0 jmp CONST ;return console keyboard status jmp CONIN ;return console keA offset address ret setdmab: mov dma_segment,cx ; save DMA segment address ret sectran: mov bx,cx ; Put logical sector into dest. reg. test dx,dx ; see if table address is zero jz sectran_exit ; yeah, logical = physical add bx,dx ; eaps uret: ret ; utility subroutine to print messages pmsg: mov al,[BX] ;get next char from message test al,al jz return ;if zero return mov CL,AL call CONOUT ;print it inc BX jmps pmsg ;next character and loop ;************ ret ;Receiver Data Available CONIN: ;console input call const jz CONIN ;wait for RDA in al,cdata and al,7fh ;read data and remove parity bit ret CONOUT: ;console output in al,csts and al,1 ;get console status jz CONOUT ;wait ;trap vector to rep movs ax,ax ;all 256 interrupts ;BDOS offset to proper interrupt mov bdos_offset,bdos_ofst pop ds ;restore the DS register ; Initialize the BLC 8538 printer port mov al,0FFh out blc_reset,al ;reset all usarts on 8538 moyboard char jmp CONOUT ;write char to console device jmp LISTOUT ;write character to list device jmp PUNCH ;write character to punch device jmp READER ;return char from reader device jmp HOME ;move to trk 00 on cur sel drive jmp SELDSK ;-     lse, we need to fetch the mov bl,[BX] ; actual sector number from the table mov bh,0 ; zero high byte for good luck sectran_exit: ret GETSEGT: ;return address of physical memory table mov bx,offset seg_table ret read: call trac last_com,BX ;save command address for retries outer_retry: ;allow some retrying mov rtry_cnt,max_retries retry: mov BX,last_com call send_com ;transmit command to i8271 ; check status poll mov BX,last_com mov al,1[bx] ;get command op codealid -1. push es ; save extra segment mov cur_disk,-1 ; insure initial pre-read sub ax,ax ; make a zero mov wr_flag,al ; clear the dirty buffer flag mov di,offset sec_flags ; point to the update flag list mov bx,ds ! mov es,bx ; ESsector number if (host_fsn ne 0) sub ax,host_fsn ; correct if we start with sector one endif mov cl,7 ; log2(128) shl ax,cl ; sector times 128 gives offset mov cx,64 ! cld ; move 64 words forward ret flush_buffer: test wr_fl may leave dirty records ; in the buffer call flush_buffer ; we have a directory write, need to ; flush the buffer to insure the ; disks integrity write_return: sub ax,ax ; never return BAD SECTOR code ret track_setup: ; k_setup push es ; save the extra segment register mov si,offset track_buffer ; source segment is systems DS: add si,ax ; gives the offset into the buffer les di,dma_longword ; point ES:DI at the users sector rep movsw ; doit pop es ; r mov cx,0800h ;mask if it will be "int req" cmp al,2ch jb exec_poll ;ok if it is an interrupt type mov cx,8080h ;else we use "not command busy" and al,0fh cmp al,0ch ;unless there isn't mov al,0 ja exec_exit ; any result ;poll for bits <- DS mov cx,host_spt ! cld ; set length and direction rep stosb ; zero the sector update flags mov cur_dma_seg,ds ; get our segment address pop es ; recover extra segment ret track_READ: mov io_com,4 ; read track takes 4 byte cag,1 ; see if we have anything to write jz no_flush ; no, skip scanning for dirty sectors mov bx,host_fsn ; start at first host sector mov cx,host_spt ; for host_spt sectors... next_sect: test sec_flags-host_fsn[BX],1 ; see if this sector has common code for setting up reads and writes mov al,cpm_disk ; see if selected disk is cmp al,cur_disk ; the same as last time jne wrong_track ; no, we have wrong track mov ax,cpm_track ; see if desired track is same as cmp ax,cur_track ;estore the extra segment sub ax,ax ; make a zero return code ret write: push cx ; save the write mode from the BDOS call track_setup push ax ; save buffer offset push ds ; save the data segment push es ; save the extra segment  in CH, exec_poll: ; toggled with bits in CL in al,fdc_stat ;read status and al,ch xor al,cl ; isolate what we want to poll jz exec_poll ;and loop until it is done ;Operation complete, in al,fdc_rslt ; see if result code indicates errommand mov io_com+1,13h ; special read track command jmps r_w_common sector_WRITE: mov io_com,3 ; write sector takes 3 byte command mov io_com+1,0ah ; basic write sector command r_w_common: cmp cur_disk,1 ! jne not_first_b ; see if drive been changed jz not_updated ; no, leave it alone mov sec_flags-host_fsn[BX],0 ; zero the flag for next time push bx ; save the registers push cx mov cur_sec,bx ; save host sector number mov ax,host_sectsiz if (host_fsn ne 0) sub bx,h the track in the buffer je correct_track ; same drive and track, we don't need to read ; Desired operation is on a different track then is in our buffer, ; So it will be nessecary to read in the desired track. First, we ; must check to see if anymov bx,ds ! mov es,bx ; destination is our data segment mov di,offset track_buffer ; destination is in track buffer add di,ax ; plus appropriate offset lds si,dma_longword ; source is users DMA address rep movsw ; move that sector pop es or and al,1eh jz exec_exit ;no error, then exit ;some type of error occurred . . . cmp al,10h je dr_nrdy ;was it a not ready drive ? ;no, dr_rdy: ; then we just retry read or write push ax ; save error code call restore ; after physicB test b_first_flag,-1 ! jz not_first_b ; and first reference to B call restore ; then restore drive B mov b_first_flag,0 ; and clear flag not_first_b: mov bx,offset io_com ;point to command string mov ax,cur_sec ; put sector in mov sect,ost_fsn endif mul bx ; make track buffer offset add ax,offset track_buffer ; make direct pointer mov cur_dma_adr,ax ; save for write routine call sector_write pop cx pop bx not_updated: inc bx loop next_sect no_flush: mov wr_flag, sectors of the current buffer are dirty. wrong_track: call flush_buffer ; write any old records, if nessecary mov ax,cpm_track ; get desired track number mov cur_track,ax ; make in new track mov al,cpm_disk ; get desired disk number mov; restore the extra segment pop ds ; and the data segment registers pop ax ; recover buffer offset mov cx,host_sectsiz ; setup to divide by host sector size sub dx,dx ; extend ax to 32 bits div cx ; find out which host sector we changed ally homing this disk pop ax ; recover error code dec rtry_cnt jnz retry ; up to 10 times ; retries do not recover from the ; hard error mov ah,0 mov bx,ax ;make error code 16 bits mov bx,errtbl[BX] call pmsg ;print appropriate messagal ; iopb as 8 bits mov ax,cur_track ; same with mov trk,al ; track . . ; fall into execute and return execute: ;execute command string. ;[BX] points to length, ; followed by Command byte, ; followed by length-1 parameter bytes mov0 ; clear the dirty buffer flag ret clear_flags: ; Clear all variables associated with the track buffer, ; so next operation will have to read a track. ; This is involves clearing all write flags and setting ; the old drive code to the inv cur_disk,al ; make it current drive mov cur_dma_adr,offset track_buffer ; point dma offset at track buffer mov cur_sec,host_fsn ; starting from first sector call track_read ; load the track correct_track: mov ax,cpm_sec ; get the cp/m  mov bx,ax ; put into index [BX] mov sec_flags[BX],1 ; set the update flag for that sector mov wr_flag,1 ; also set the dirty buffer flag pop cx ; recover BDOS write code cmp cl,1 ; is this a directory update ? jne write_return ; no, we.     e in al,cdata ;flush usart receiver buffer call uconecho ;read upper case console character cmp al,'C' je wboot_l ;cancel cmp al,'R' je outer_retry ;retry 10 more times cmp al,'I' je z_ret ;ignore error or al,255 ;set code for permanent e; Track buffering variables cpm_disk rb 1 cpm_track rw 1 cpm_sec rw 1 cur_disk rb 1 cur_track rw 1 cur_sec rw 1 dma_offset rw 1 dma_segment rw 1 dma_longword equ dword ptr dma_offset bdos_wr_code rb 1 wr_flag rb 1 ; System Memory S_trp db cr,lf,'Interrupt Trap Halt',cr,lf,0 errtbl dw er0,er1,er2,er3 dw er4,er5,er6,er7 dw er8,er9,erA,erB dw erC,erD,erE,erF er0 db cr,lf,'Error Code 0 :',0 er1 db cr,lf,'Error Code 1 :',0 er2 db cr,lf,'Error Code 2 :',0 er3 db cradr out dmac_adr,al ;send low byte of DMA mov al,ah out dmac_adr,al ;send high byte mov ax,cur_dma_seg out fdc_segment,al ;send low byte of segment address mov al,ah out fdc_segment,al ;then high segment address dma_exit: mov cl,[BX]cute jz restore_exit ;home drive and return if OK mov bx,offset bad_hom ;else print call pmsg ;"Home Error" jmps restore ;and retry restore_exit: ret ;********************************************* ;* rror exec_exit: ret dr_nrdy: ;here to wait for drive ready call test_ready jnz retry ;if it's ready now we are done call test_ready jnz retry ;if not ready twice in row, mov bx,offset nrdymsg call pmsg ;"Drive Not Ready" nrdy01: call egment Table segtable db 2 ;2 segments dw tpa_seg ;1st seg starts after BIOS dw tpa_len ;and extends to 08000 dw 1000h ;second is 10000 - dw 1000h ;1FFFF (64k) ; include singles.lib ;read in disk definitions ; DISKS 2 dpbase equ $ ,lf,'Error Code 3 :',0 er4 db cr,lf,'Clock Error :',0 er5 db cr,lf,'Late DMA :',0 er6 db cr,lf,'ID CRC Error :',0 er7 db cr,lf,'Data CRC Error :',0 er8 db cr,lf,'Drive Not Ready :',0 er9 db cr,lf,'Write Protect :',0 erA db cr,lf,'Track ;get count inc BX mov al, 80h cmp cur_disk,0 jne sel1 ;drive 1 if not zero mov al, 40h ;else drive is 0 sel1: mov sel_mask,al ; save select mask or al,[BX] ;merge command and drive code out fdc_com,al ;send command byte parm_loop: dec  * ;* Send_com sends a command and parameters * ;* to the i8271: BX addresses parameters. * ;* The DMA controller is also initialized * ;* if this is a read or write * ;* * ;**********test_ready jz nrdy01 ;now loop until drive ready jmps retry ;then go retry without decrement zret: and al,0 ret ;return with no error code wboot_l: ;can't make it w/ a short leap jmp WBOOT ;********************************************* ;Base of Disk Parameter Blocks dpe0 dw xlt0,0000h ;Translate Table dw 0000h,0000h ;Scratch Area dw dirbuf,dpb0 ;Dir Buff, Parm Block dw csv0,alv0 ;Check, Alloc Vectors dpe1 dw xlt1,0000h ;Translate Table dw 0000h,0000h ;Scratch Area dw dirbuf,d 00 Not Found :',0 erB db cr,lf,'Write Fault :',0 erC db cr,lf,'Sector Not Found :',0 erD db cr,lf,'Error Code D :',0 erE db cr,lf,'Error Code E :',0 erF db cr,lf,'Error Code F :',0 nrdymsg equ er8 b_first_flag db -1 rtry_cnt db 0 cl jz parm_exit ;no (more) parameters, return inc BX ;point to (next) parameter parm_poll: in al,fdc_stat test al,20h ;test "parameter register full" bit jnz parm_poll ;idle until parm reg not full mov al,[BX] out fdc_parm,al ;send next par*********************************** send_com: in al,fdc_stat test al,80h ;insure command not busy jnz send_com ;loop until ready ;see if we have to initialize for a DMA operation mov al,1[bx] ;get command byte cmp al,13h jne write_mayb ;* * ;* The i8271 requires a read status command * ;* to reset a drive-not-ready after the * ;* drive becomes ready * ;* * ;**************pb1 ;Dir Buff, Parm Block dw csv1,alv1 ;Check, Alloc Vectors ; DISKDEF 0,1,26,6,1024,243,64,64,2 ; ; 1944: 128 Byte Record Capacity ; 243: Kilobyte Drive Capacity ; 64: 32 Byte Directory Entries ; 64: Checked Directory Entries ; ;disk error retry counter last_com dw 0 ;address of last command string cur_dma_adr dw 0 ;dma offset stored here cur_dma_seg dw 0 ;dma segment stored here sel_mask db 40h ;select mask, 40h or 80h ; Various command strings for i8271 io_com dbameter jmps parm_loop ;go see if there are more parameters parm_exit: ret ;********************************************* ;* * ;* Data Areas * ;* e ;if not a read it could be write mov cl,40h jmps init_dma ;is a read command, go set DMA write_maybe: cmp al,0ah jne dma_exit ;leave DMA alone if not read or write mov cl,80h ;we have write, not read init_dma: ;we have a read or write oper******************************* test_ready: mov dh, 40h ;proper mask if dr 1 test sel_mask,80h jnz nrdy2 mov dh, 04h ;mask for dr 0 status bit nrdy2: mov bx,offset rds_com call send_com dr_poll: in al,fdc_stat ;get status word test 128: Records / Extent ; 8: Records / Block ; 26: Sectors / Track ; 2: Reserved Tracks ; 6: Sector Skew Factor ; dpb0 equ offset $ ;Disk Parameter Block dw 26 ;Sectors Per Track db 3 ;Block Shift db 7 ;Block Mask db 0 ;Ex 3 ;length (changed to 4 to read a track) rd_wr db 0 ;read/write function code trk db 0 ;track # sect db 0 ;sector # sec_len db 26 ;transfer 26 sectors on a track read hom_com db 2,29h,0 ;home drive command rds_com db 1,2ch ;read status command  * ;********************************************* data_offset equ offset $ dseg org data_offset ;contiguous with code segment signon db cr,lf,cr,lf db ' CP/M-86, 1 Feb 82 ',cr,lf,0 bad_hom db cr,lf,'Home Error',cr,lf,0 intation, setup DMA controller ; (CL contains proper direction bit) mov al,04h out dmac_mode,al ;enable dmac mov al,00 out dmac_cont,al ;send first byte to control port mov al,cl out dmac_cont,al ;load direction register mov ax,cur_dma_ al,80h jnz dr_poll ;wait for not command busy in al,fdc_rslt ;get "special result" test al,dh ;look at bit for this drive ret ;return status of ready restore: ;move selected disk to home position (Track 0) mov bx,offset hom_com call exe/     tnt Mask dw 242 ;Disk Size - 1 dw 63 ;Directory Max db 192 ;Alloc0 db 0 ;Alloc1 dw 16 ;Check Size dw 2 ;Offset xlt0 equ offset $ ;Translate Table db 1,7,13,19 db 25,5,11,17 db 23,3,9,15 db 21,2,8,14 db 20,26,6,12 db 18,24,4,1 al,cur_disk ; the same as last time jne wrong_track ; no, we have wrong track mov ax,cpm_track ; see if desired track is same as cmp ax,cur_track ; the track in the buffer je correct_track ; same drive and track, we don't need to read ;  write: push cx ; save the write mode from the BDOS call setup push ax ; save buffer offset push ds ; save the data segment push es ; save the extra segment mov bx,ds ! mov es,bx ; destination is our data segment mov di,offset track old_disk: mov bl,cpm_disk ! mov bh,0 mov dl,4 ! shl bx,dl ; times 16 add bx,offset dpbase ; gives offset from DPBASE ret ; back to BDOS setdma: mov dma_offset,cx ; save DMA offset address ret setdma_seg: mov dma_segment,cx ; save; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; * * ; * CP/M-86 Accelerator -- Track Buffering Routines * ; * * ; * This module, when installed in a CBIOS, causes * ; * CP/M-86 to perform disk input output on a * ; * tra0 db 16,22 als0 equ (243+7)/8 ;Allocation Vector Size css0 equ 16 ;Check Vector Size ; DISKDEF 1,0 ; ; Disk 1 is the same as Disk 0 ; dpb1 equ dpb0 ;Equivalent Parameters als1 equ als0 ;Same Allocation Vector Size css1 equ css0 ;SameDesired operation is on a different track then is in our buffer, ; So it will be nessecary to read in the desired track. First, we ; must check to see if any sectors of the current buffer are dirty. wrong_track: call flush_buffer ; write any old r_buffer ; destination is in track buffer add di,ax ; plus appropriate offset lds si,dma_longword ; source is users DMA address rep movsw ; move that sector pop es ; restore the extra segment pop ds ; and the data segment registers pop  DMA segment address ret home: test wr_flag,1 ! jnz home1 ; if the buffer is clean, mov cur_disk,-1 ; insure we read the directory by invalidating ; the track buffer home1: mov cx,0 ; home is a settrk zero settrk: mov cpm_track,cx ; sck by track basis, rather than sector by * ; * sector. * ; * * ; * This speeds diskette access up, often by a * ; * factor of four or more times. * ; * * ; * The actual disk sectors must be a integral * ; * multiple of 128 bytes,  Checksum Vector Size xlt1 equ xlt0 ;Same Translate Table ; ENDEF ; ; Uninitialized Scratch Memory Follows: ; dirbuf rs 128 ;Directory Buffer alv0 rs als0 ;Alloc Vector csv0 rs css0 ;Check Vector alv1 rs als1 ;Alloc Vector csv1 rs csecords, if nessecary mov ax,cpm_track ; get desired track number mov cur_track,ax ; make in new track mov al,cpm_disk ; get desired disk number mov cur_disk,al ; make it current drive mov cur_dma,offset track_buffer ; point dma offset at trax ; recover buffer offset mov cx,host_sectsiz ; setup to divide by host sector size sub dx,dx ; extend ax to 32 bits div cx ; find out which host sector we changed mov bx,ax ; put into index [BX] mov sec_flags[BX],1 ; set the update flave track number for next operation ret setsec: mov cpm_sec,cx ; save sector number for next operation ret sectran: mov bx,cx ; Put logical sector into dest. reg. test dx,dx ; see if table address is zero jz sectran_exit ; yeah, logical =but do not need to be * ; * a power of two multiple unlike the deblocking * ; * algorithms supplied with CP/M-86. * ; * * ; * * * * * * * * * * * * * * * * * * * * * * * * * * * * * ; The following three equates must be set to correspond ts1 ;Check Vector sec_flags rb host_spt track_buffer rb host_spt*host_sectsiz loc_stk rw 32 ;local stack for initialization stkbase equ offset $ lastoff equ offset $ tpa_seg equ ((lastoff+07FFh)/0400h)*40h ; round off to 1K boundaryack buffer mov cur_sec,host_fsn ; starting from first sector call track_read ; load the track correct_track: mov ax,cpm_sec ; get the cp/m sector number if (host_fsn ne 0) sub ax,host_fsn ; correct if we start with sector one endif ag for that sector mov wr_flag,1 ; also set the dirty buffer flag pop cx ; recover BDOS write code cmp cl,1 ; is this a directory update ? jne return ; no, we may leave dirty records ; in the buffer call flush_buffer ; we have a dir physical add bx,dx ; else, we need to fetch the mov bl,[BX] ; actual sector number from the table mov bh,0 ; zero high byte for good luck sectran_exit: ret read: call setup push es ; save the extra segment register mov si,offset tro the ; actual disk utilized. host_sectsiz equ 1024 ; bytes per actual (physical) disk sector host_spt equ 8 ; actual sectors per track host_fsn equ 1 ; starting sector number (only 0 or 1 allowed) init: call clear_flags ; Initialize track bu tpa_len equ 0800h - tpa_seg db 0 ;fill last address for GENCMD ;********************************************* ;* * ;* Dummy Data Section for Interrupt Vectors * ;* mov dl,7 ; log2(128) shl ax,dl ; sector times 128 gives offset mov cx,64 ! cld ; move 64 words forward ret flush_buffer: test wr_flag,1 ; see if we have anything to write jz no_flush ; no, skip scanning for dirty sectors mov bx,0 ectory write, need to ; flush the buffer to insure the ; disks integrity return: mov ax,0 ; never return BAD SECTOR code ret setup: ; common code for setting up reads and writes mov al,cpm_disk ; see if selected disk is cmpack_buffer ; source segment is systems DS: add si,ax ; gives the offset into the buffer les di,dma_longword ; point ES:DI at the users sector rep movsw ; doit pop es ; restore the extra segment sub ax,ax ; make a zero return code ret ffering . . . jmp CCP_entry seldsk: mov cpm_disk,cl ; save the selected drive test dl,1 ; check logged-in bit jnz old_disk ; not first time selected if nz ; here if CP/M is about to login to the drive being ; selected.  * ;********************************************* dseg 0 ;absolute low memory org 0 ;(interrupt vectors) int0_offset rw 1 int0_segment rw 1 ; pad to system call vector org bdos_int * 4 bdos_offset rw 1 bdos_segment rw 1 END 0      ; start at host sector 0 mov cx,host_spt ; for host_spt sectors... next_sect: test sec_flags[BX],1 ; see if this sector has been changed jz not_updated ; no, leave it alone mov sec_flags[BX],0 ; zero the flag for next time push bx ; save V1V0Ö+V3V2Ö+V5V4Ö+V7V6Ö+V9V8Ö+V;V:ålongword dma_offset rw 1 dma_segment rw 1 cur_disk rb 1 cur_sec rw 1 cur_track rw 1 cur_dma rw 1 bdos_wr_code rb 1 ; 1 indicates a directory write wr_flag rb 1 ; bit 0 on indicates we have a dirty buffer sec_flags rb host_spt ; bit 0 of ethe registers push cx mov cur_sec,bx ; save host sector number mov ax,host_sectsiz mul bx ; make track buffer offset add ax,offset track_buffer ; make direct pointer mov cur_dma,ax ; save for write routine call sector_write pop cx popÿë2ҌȎØVW‹ì‹F£Ç*ÿ7ƒÃ‹7ÿ Òu €>³)u[_^ÃÀ?u[èµÿ_^ÃS‹w‹ŠþË·Ñ㋟É*ÿÓ[ƒÃëØ¹Š$당QƹÑÀÐâú€0€=9v€GYâäÌ؎Àü€<uäëöÍMËÜ6÷Gtûéäâºëºë ºëº ëºS˜±Óà»R+Ø‹_ ŠÆ˜Ø‹„Òt@‹È[þ?è¿ýþBè¸ýËñŽÚŠ˜F‹ FF‹‹ðððèžýÈach byte on indicates ; corresponding host sector has been ; updated and needs writing. track_buffer rb host_sectsiz * host_spt  bx not_updated: inc bx loop next_sect no_flush: mov wr_flag,0 ; clear the dirty buffer flag ret clear_flags: ; Clear all variables associated with the track buffer, ; so next operation will have to read a track. ; This is involves cle³)áÂ*È´)ÃS¸ÿŽØ»ÆíÆM[þQèxýþfèqýþ`èjýþ�ècýþrè\ýþoèUýþcèNýþTèGýþ0è@ýþWè9ýþZè2ýþ]è+ýþlè$ý°�s°`þièýÀÿ?À€ÿ?À€ÿÀ €ÿÿðåaring all write flags and setting ; the old drive code to the invalid -1. mov cur_disk,-1 ; insure initial pre-read sub ax,ax ; make a zero mov wr_flag,al ; clear the dirty buffer flag mov di,offset sec_flags ; point to the update flag@€ÿÿÿ€€ÿÿÿÿ€ÿÿÿÿX)g)v)…)”)£) DMS-86 CP/M BIOS Version 1.4c F*Ä*Ç*b* i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location: *** *** i/o error at å list mov bx,ds ! mov es,bx ; ES <- DS mov cx,host_spt ! cld ; set length and direction rep stosb ; zero the sector update flags ret track_read: ; read an entire track from the drive "cur_disk", ; the track "cur_track" into "track_bufflocation: command: Sorry, call not implemented. Ø'ß'( Do you wish to (R)etry, (A)bort or (I)gnore ? Digital Microsystems, Inc. CP/M-86 Version 1.1 N N V+Ö+V-V,Ö+V/V.Ö+åer". ret sector_write: ; write a physical sector to disk "cur_disk", ; track "cur_track", sector "cur_sec" from ; the buffer at DS:"cur_dma". ret dseg cpm_disk rb 1 cpm_track rw 1 cpm_sec rw 1 dma_longword rd 1 org dma_1      ÀùƶàÁ4€$èuöµÿtƵ€>·Ptÿa4€ ¢cùƶà·$¢c3ÀƶÃè�þÆ´ÿûè üû3ÀÃöhÿtÆhâ·»·¹ŒÚ°¢À2ä ÀtŠ&²€Ì€‰ÆœSQR‹m<t ƒ>Æu‹oâþP»iúèþùX¹âþY^º€ Àütƒùu ŠØ¬N§!Éthe newits What is %s Memory Load Address (0-FFFFFFFF)? (Press RETURN to keep current value of %lx) (Press ESC to go back to main menu) --> Invalid entry What iport file #%d --> Í�Z!9^#VÕ!9^#VÕ!9^#VÕÍ—ÑÑÑÍÊÉüÿÍ�Z!"/Ž!9å!åÍ [Í8[!9^#VÕÍ4¯!9ùáÍ&[Í[ÿÿÿÿÍ´]Ê?£Íñ£!9Í[ÉøÿÍ�Z!"/Ž! 9å!åÍ [Í8[!9^#VÕÍ4¯!9ùáÍ&[Í[ÿÿÿÿÍ´]Âæ£!9å!åÍ [Í8[!9^#VÕÍ4¯!9ùáÍ&[Í[ÿÿÿÿÍ´]Âæ£!å!Ê.‰&̸€ŽÐ¼NŒÈŽØä€ä€Æ³ÿ°æ„ä„¢Á°æ„WVRQSÄ>¦ ·ª Á4€$èu| ·´ÿuAÄ>V&Š<u6°ªÆjÿèíú°VèwÇc ²‹VƒÃ¹�‹XÆ_ÙèþÆ_Ýë+°WèL€>´ÿtèEýƳë€>´ÿu°Aè¨þë€>´ÿuèýÆ´ÿ[YZ^_è†úÆj.ŽÊ.‹&Ì.¡ÂÏ¢· i»·¹ŒÊèuþÃPä€9^#V! ^!9~#fo+Í_#ë! 9s*-ŽëÍ<^+ë!9s#r! 9^#V!9~#foÍc_Ê'®!+®åÍÐ;Ñ!`®åÍÐ;Ñ!•®åÍÐ;ÑÍx!É There is no room in the Control Area for this file. You can make more room by deleting some files or by running EXPAND.`i"ò°!î° s# y°Â³®Ý"ô°ý"s %s Entry Point Offset (0-FFFF)? (Press RETURN to keep current value of %x) (Press ESC to go back to main menu) --> Invalid entryüÿÍ�Z!9å!9^#VÕ!å͉ÑÑáÍ&[*î_|µÊŒ©!9Í[Í~[ÂŒ©!"î_!9Í[É!9Í[ÉûÿÍ�Z!9^#V! ^#V! 9s#r!9^#V! ^! 9s!9Í[Í8[!9^#VÕÍ4¯!9ùÍ[ÿÿÿÿÍ´]Êé£Íñ£!9Í[ÉÍ�Z!;¤åÍÐ;Ñ*/ŽýÿÍ(_ʤ!C¤åÍÐ;ÑÃ:¤*/ŽúÿÍ(_Ê-¤!S¤åÍÐ;ÑÃ:¤*/Žå!j¤åÍÐ;ÑÑÉ *BUG* bad fd to lseekinvalid param to lseekerrno = %d from lseekÍ�Z!DMâ¤`i#DM! 9å~#fo#ëás#r`iëÍb_Êá¤! 9^#Vë^! Í7_Êá#rë+^Õ!9å~#fo#ëás#rë+ÑsÖž!–ŸåÍÐ;Ñ!ÏŸåÍÐ;Ñ!ÙŸåÍÐ;Ñ! åÍÐ;Ñ!DMà Ÿ`i#DM`iëÍb_Ê•ŸÅ!H åÍÐ;ÑÑ! å!å!9åÍZÑÑÑ!å! 9åÍëÑÑÊTŸ! 9^! Í(_ÊdŸ!^ åÍÐ;Ñ`i+DMß! 9^!Í(_•Ÿ`i)))ë!!9~#foå! 9åÍßÑÑÃŸÉ This is an OS file and may require other f°æ„°¤æ„䀀>lÿu¢·ä€WÄ>¦üªä€ªæ¤ä€Q‹ÄItªä€âûSR¹䄨uâø±ë±ä€°æ„°æ„°æ„ä„ Á¢Á°æ„ƳÿÆk€>jÿu/Ä>VÆj ·4€:iu Á4€$èt °WèZÿ°ªë°ƒª°VèMÿ.ösÿtæ¥Z[Y_è¬ùXÏ¢·°û»·¹ŒÊè¯ýÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXûoè!÷3ÀùÊ System call madö°á"ð°Ñ!9"î°*2Žå¦®Í(_áÊè®:1ŽwÍËŽëïåËŽÍ(_áʯå¯í°á:1ŽwÍÎŽë*ð°ååëÉÿÿ!9s#r*ò°DMÝ*ô°ý*ö°!9^#V*î°ùïÍ�Z! 9^#Vë)))Í`~·Â\¯!ýÿ"/ŽÍ [ÿÿÿÿÉ! 9^#Vë)))Ð`^#VBK!9^#Vëà °!& ^ÕÍ+YÑ!€å`iÑånÍ_ëásÅ!åÍÅWÑÑ!å`iÑånÍ_ëásÅÍïRÑÍDY!«åÍÐ;Ñ!ë!9s#rÃå©!9å~#fo#ëás#r!9^#V! ^#VÕ! 9^#VáÍb_Ê«!å!9^#VÕ!9^ë+å!9^#VÕ!åÍã%ë! 9ù! 9ån#ëás!€Íc_Ê�ª*-ŽëÍ<^å! 9å~#fo#ëás#ráÍc_Êxª! 9^#VÕ!*«åÍÐ;ÑÑ!É!ë! 9s!9^#Vë#å! å!]«åÍÐ;ÑÑÑ!9^#V! ^#VÕ! 9^#Vë#ÑëÍb_Ê«!9^#VÕ¤! 9^#Vë^Õ!#¥åÍáYÑÑÊÞ¤!ÉÃŽ¤Ãø¤`i#DM! 9å~#fo#ëás#r`iëÍb_Ê¥! 9^#Vë^! Í7_Ê¥!ÉÃä¤!É.: Í�Z!DM! 9^#VÕÝáÃZ¥`i#DM! 9å~#fo#ëás#rÝåá#åÝá! 9^#Vë^ÕÍcZÑÝu}µÊ•¥! 9^#Vë^!.Í7_Ê•¥`iëÍb_Ê•¥Ã?¥Ã§¥! 9å~#fo#ëás#r! 9^#Vë~·ÊË¥! 9^#Vë^!.iles in order to work. Enter the names of any support files this OS requires. (Press ESCAPE when all file names have been entered) Support File #%d --> Enter file name or ESCAPE only! ìÿÍ�Z!å!"9^#V!å!&9^#VÕÍ5ZÑÑÑ!DMò `i#DM`iëÍb_Ê ¢! e is implemented on the DMS-816 only ÃèâítèííëöÃþ\ Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�X€ÿT�>T€u ÇTÿRâØY€ÊÃZ+Ñ‹Ê3ÒÃŒZ‰>X‰R‰TŠÈèþñþméŸÿËô±Óà»؃Ê´ÿˆ' ÀÃöºÿt±èÆïÃèoúÃèóíƒúu ƒùuŒÚ¹ ‰‰ ŠÈèãíÃVWŽÂ‹ù¾ó¹ üó¤_^΋Ù9å!! ^#VëÍ^Í[Í:\Í8[!$ ^ëÍ)^ÍF[ÍÆ[ÍQ[áåÍ[ÍÆ[áÍ&[à °!úÿ"/ŽÍ [ÿÿÿÿÉÍ�_ü¯¿¯{¯ÿ¯!ë!# s!9Í[Í[ÍË]Ê[°!ë!! s#r!$ s!úÿ"/ŽÍ [ÿÿÿÿÉ!9Í[Í8^Í_ë!$ s!9Í[Í[Í^\Í8^ë!! s#r!9Í[ÉÍ�Z! 9^#Vë)))Í`~·Â¹°!ýÿ"/Ž!ÿÿÉ! 9^#Vë!9^#VÕÍ•°ÑÑ!€å!9^#VÕ!9^#VÕÍ=MÑÑÑ€Í7_Ê«*/Žå!d«åÍÐ;ÑÑ!É!9å~#fo#ëás#rÃÖ©!É Sectors copied: *YIKES* attempt to increment to track 0x%x in add%c%02x *BUG* read != 128, errno = %dþÿÍ�Z!9~#¶Êœ«!9^#VëÉÍ@ ë!9s#r!€ÍG_ÊÄ«!׫åÍÐ;Ñ!¬åÍÐ;Ñ!Í7_Ê˥Ø¥! 9å~#fo#ëás#rë+^ÕÝåá#åÝá+Ñs{³Ê7¦!DMæ`i#DM! 9å~#fo#ëás#rÝåá#åÝá! 9^#Vë^ÕÍcZÑÝu}µÊ7¦`iëÍb_Ê7¦Ãõ¥!ÝuÉþÿÍ�Z!9~#¶Ê\¦!¨ë!9s#rÃg¦!!¨ë!9s#r!"ì_!9^#VÕ!%¨åÍÐ;ÑÑ!9~#¶Ê£¦!9^#V!Í[Í8[!S¨åÍÐ;ÑÑÑ!€¨åÍÐ;Ñ!9~#¶Êã¦!9^#V!åå!å! 9åÍZÑÑÑ!¢åÍÐ;Ñ!5¢åÍÐ;Ñ!^¢åÍÐ;ÑÅ!�¢åÍÐ;ÑÑ`i)))ë! 9~#fo^!9s{³Ê<¡!9^!åÍ7_Ê<¡`i)))ë! 9~#foåÍ ÑÃD¡! ¢åÍÐ;ÑÅ!ª¢åÍÐ;ÑÑ!å! 9åÍëÑÑåÝá|µÊ­ ! 9^!Í(_ ¢ÝåáÍ(_Êì¡! ë! 9s{³Êì¡!PYë͆_)))å`i)))ë!"9~#foå`i#)))ë!$9~#fo¹&‰CC¹€&‰ÃŒØŽÀ¿¤ŽÂ‹ñ¹üó¤Ãûæ¤æ¥PR‹|ì¨ tÆuëþutgöy€¢yt¨€uÆvë3þvu-ëJ¨€tÆwþx€>xuë4þw€>w u ÆxÆw°‹|î¸þŽÀú&Æí&ÆMûZXÏúëþP¸þŽÀ&Æí&ÆMXÍÏ������ÏÃ@HŽ)))Ð`^#VBK!9^#V!! s#r!ë!# s!$ s!ÉZ[3Àø  Ét‹Á±Óè£eÃ<ûu ²è6ÿëè&ÿƵÿƶÿÇe èÇe ËeƴƳº�ûö³ÿu1ÆhJuñâëèæþûÆc»©ö¶ÿtè!úëè ú¸É!9^#V!Í©^ë*ô_É There is no room in the Control Area Directory for the new entry that this file would require.÷ÿÍ�Z!9^#V!Í7_ë! 9s#r!9^#VÕ!9^#V! Ñs#r!9~#¶Ê¯¬!9^#V! ^#VÕ!9^#V! Ñs#r!9^#V! ^Õ!9^#V! ÑsÃ'®Í@ ë!9s#r!9^#V!å!9^#V!Í[Í8[ÍI©ÑÑÑáÍ&[ç!9^#V!å!å!å͉ÑÑáÍ&[Í~[§*î_|µÊ§!"î_!"ì_*î_|µÊ&§!É*ì_|µÊ6§!ª¨åÍÐ;Ñ*ì_|µÂg¦!9^#VÕ!º¨åÍÐ;ÑÑ!9~#¶Êq§!9^#V!^#VÕ!ã¨åÍÐ;ÑÑ!©åÍÐ;Ñ!9~#¶Ê¸§!å!9^#V!^#VëÍ)^Í8[ÍI©ÑÑÑÍ8^å!9^#V!Ñs#rÃñ§!å!åÍåÍ5ZÑÑÑ!å!å!$9^#V!OåÍZÑÑÑ`i+DMí `i)))ë! 9~#foå! 9åÍßÑÑí É Press RETURN to keep current setting. Press SPACE then RETURN to erase entry. Press ESC to stop entering names. Current support file #%d is not used. Enter new name for sup2     ad1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 70g ÿ€ ÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèÇítèÒíëöÃþn Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�s€ÿo�>o€u ÇoÿmâØY€ÊÃZ+Ñ‹Ê3ÒÃŒu‰>s‰m‰oŠÈèõñþéŸÿË"ô±Óà»6؃Ê´ÿˆ' ÀÃöÚÿt±è–íÃèfúÃèØíƒúu ƒùuŒÚ¹,‰(‰*ŠÈèÈ÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèÇítèÒíëöÃþn Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�s€ÿo�>o€u ÇoÿmâØY€ÊÃZ+Ñ‹Ê3ÒÃŒu‰>s‰m‰oŠÈèõñþéŸÿË"ô±Óà»6؃Ê´ÿˆ' ÀÃöÚÿt±è–íÃèfúÃèØíƒúu ƒùuŒÚ¹,‰(‰*ŠÈèÈ@%€,€ÿ ÿ ÿ ÿ ÿ ÿíÃVWŽÂ‹ù¾¹ üó¤_^΋ٹ6&‰CC¹€&‰ÃŒØŽÀ¿ÄŽÂ‹ñ¹üó¤Ãûæ¤æ¥PR‹—ì¨ tÆ�ëþ�tgö”€¢”t¨€uÆ‘ë3þ‘u-ëJ¨€tÆ’þ“€>“uë4þ’€>’ u Ɠƒ°‹—î¸þŽÀú&Æí&ÆMûZXÏúëþP¸þŽÀ&Æí&ÆMXÍÏ������ÏÃíÃVWŽÂ‹ù¾¹ üó¤_^΋ٹ6&‰CC¹€&‰ÃŒØŽÀ¿ÄŽÂ‹ñ¹üó¤Ãûæ¤æ¥PR‹—ì¨ tÆ�ëþ�tgö”€¢”t¨€uÆ‘ë3þ‘u-ëJ¨€tÆ’þ“€>“uë4þ’€>’ u Ɠƒ°‹—î¸þŽÀú&Æí&ÆMûZXÏúëþP¸þŽÀ&Æí&ÆMXÍÏ������Ïà ÿ ÿ ÿ[%�„A i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location: *** *** i/o error at location: command: @H©©¯·©©©©Ö”ó†ó–ˆ`ˆÇ$Ž×ŒG–FD ”Á„5êXŠG†á„5êŠG–á„5ê8œU U(U0U`‡h‡p‡x‡€Á˜L@d ÿ†XD„X ~Üa cmaphns.10 y 0d000000 40 gioshns cpm86 pdriver  y a gioshns.71a y 0080ff80 80 y a cpm86.14b y 0680ff80 2580 y a cmap816.10 y 0d000000 40 gios816 cpm86 terminal pdriver  y a gios16b.71a y 80ff80 80 y a cmap16b.10 û  $ COMMON BIOS for DMS 16B Version 7.0g Signing off... Digital Microsystems, Inc.  Drive A cannot be written to. Partition is a HIDOS partition. Partition is Read Only. Partition is already owned by you on another drive. P Ý „˜ ~€k€ÿ€z€Ó y d000000 40 gios16b cpm86 pdriver  y p a n 9 y phase2 login86 login86 y q z€Óartition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000 Please reset the computer €„ãì~õƒ  œ�Ÿ Ó„ãìuõƒ¨ ¤¥§ Ó„ãì‡õƒ° ¬­¯ K™v„iK¢v„iK´v„iK«v„iK½v„iKÆv„iK™v„iread write re†€>…ÿu/Ä>vÆ… ×4€:„u á4€$èt °WèZÿ°ªë°ƒª°VèMÿ.öŽÿtæ¥Z[Y_è£ùXÏ¢×°û»×¹ŒÊè©ýÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXûŠè3     „ãì~õƒ  œ�Ÿ Ó„ãìuõƒ¨ ¤¥§ Ó„ãì‡õƒ° ¬­¯ K™v„iK¢v„iK´v„iK«v„iK½v„iKÆv„iK™v„iread write reé*€>Ú€uþ Ü:uë ÿØÆÚþÚ €ÉÃèX Š2ÀÆ ŠÁú€»Ý¹éf öÿtìé   ÀtÃèsó3ÀÃÆÛÿ Þöÿt ´ð"àþÀ$ Äë $ðÆÿ¢ÞèU rUÆÝè¦ÿŒÚ»Ö¹ üè1 r=èÝ €>Öu3€>×tÆ ÿÆþÚÆøÃ Þ´ð"àþÈ$ Ä¢ÞÆ ùÃè  »ÿè�똀ùs&ˆåŠÙèŽØ¾¿G¹ó¤3ö¿>¤² ÍM¾Cˆ$FˆFˆ±Òü€ä:àu!€>>u€>ˆs[SÆŒ`èù ít[Sèh[^C€ûu ŒÚ¹]èt rö ^´±Óà£Ýè¡ è12À²ÍM3Ò»� ŽÚ‹÷Ð÷;÷u �úàuè�ênot cleared. It belongs to another user. Your unlock string is too long. The lock string to be cleared was not found. The unlock string was not found but there was a network retry. Bad Transmission; result is inconclusive. Unknown unlock status = %x ad1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 70g ÿ€ ŠG <ÿt¢ëŠG ¢êŠG ¢ðŠG¢ñÃ3ÛÃÇæÉæÉèà ҋÙtÚŠ2ÿàð<àt<`uéT°àð<àt<`uòé½è,Žî‹>ìŽØ+öëèŽÀ+ÿ‹6ìŽîü¹@ó¥3Àñ¡æÓàè±ÓàóÊë‹æ¡è%øÿŠê:úu;öu;ôu :ûué‰ö£ôˆúˆûŒÚ»¦ üèy ÀtË6è�æ±Óæ�Ʀ‹>‰b°ÿ²ÍM»èZ »ÌèT ŒÚ¹¹3Àö> tÇd ÿ.dÿ÷S�>÷èu!Ç÷öþÿtÄ &öuQRèµ ûZY[ÃèÍÿè“¿ÃÍÈè†äðúŠÈèx3C�Mè€$à<àtöÿt Q¹ÀèáûYÃè¢ÃèH'- ¥×ŠÈè13MC*WeÎkŠÈè3Mä–Ãú°æ–ä–Ãèäúû[Q芉JŠÈèîÃVWŽÂ‹ù¾¹ üó¤_^΋ٹV&‰CC¹€&‰ÃŒØŽÀ¿äŽÂ‹ñ¹üó¤ÃÃ@HŒG †Á„5êŠG’á„5êˆG–á„5ê8œ@¦H¦P¦X¦`¡d¡h¡l¡p¡t¡x¡|¡ ÿ†X‚Your lock string was cleared from the lock table. NEEDS DOS 2.0$ TOO MANY ARGSc8 NO CORE$ $WRITEFREE$$@Y@ˆÃ@„×—A€à7yÃACnµµ¸“Föù?éO8M30ùHw‚Z?¿sÝOuõš™™™™™¹?{®Gáz„?-Cëâ6?:Œ0âŽyE>¼‰Ø—²Òœ<2§¨Õ#öI9<@%€,€ÿ ÿ ÿ ÿ ÿ ÿìŽî¹€üó¤3ÀÃ2ÿ±Óã�ÃvÊñèîÿŠG :üt3<þt/<üu€>>u€ê€ë»WŠ&ñè2ë<ýu»{ëî»øëé°àü¢Î ë¢Ï¡æ£Ð¡è@¢Ò ê¢Óèfsè »Òèõ€>nuë°Ìڻ̹è è¬rÝè�çCÒè"C˜ÑàØYÿ'VÄ6h&Š^ÃWÄ>h&ˆ _ÃP䆨t ä„SQè=Y[è` XÏèÃä–¨Ãä’¨Ãè tÃ䚨@tù¨ uöäœèëéèØÿtûˆa ÀÃèÐÿtûä”$ÃèËÿtûä�$ÃèÆÿtûˆaÃä†$Ã3ÀÃä–¨Ãä’$Ã䚨 °u°ÿ ÀÃ䚨@ëñèØÿtûŠÁæ„€ÉÃ3ÀÃèÐÿtûŠÁæ”ÃèËÿtûŠÁæ�ÃPè3ÿ$<Xté2VQ¾è Yè�þè ^Ê F Ét èX ~Ü Ý ‚˜ ~€k€ÿ€§ôDý¥2š—ŒÏº[%@o¬d(È ?ð?$@@˜™™™™™¹?0123456789ABCDEF ÿ ÿ ÿ[%�„A i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location: *** *** i/o error at location: command: ±Óç�Ǧ‹6ìŽî¹€üó¤3Ààü¢s¢tÆpSè›[ru¿÷SèØþŠˆG [<þuÃ:ütùŠãPèÁþÆGÿX<útN<ýu»{ë<üu €>=tÖ»Wë <ûu»•ëè€ÄAˆ&<S»3èà[èÜ ÿþø¿ì¹üó¤»ËÃésÿ üèaþÆG ÿ¢t¢sÆpèr2ÀðÃèDþŠG ¢rŠG ¢qè r)ŒÚ»o¹èˌڻö¹  üèärè�¿ö€=|þŠ ÉtèsþFÃè�ÿtûŠÁæœÃè“ÿtûŠÁæœæž ÃèÿtèCÿ<u.ÆÍÿë <u.ÆÍä–$."ÍÃÿèÔÿtûŠÁæ”ÃàaþÀ$ŠØ*`uÃ2ÿS�Ã@Š[Ê`SþÀã:au[±èôýÈ`[2ÿ�Ã@ˆÊ`þÀã:aà ÿÊ&ü»ºÿtÃ�è«Æn ü¢ï¹Qè Ysâ÷ë ŒÚ¹�îèÎ úêðþˆ‹6ˆŒ&ÿ€>;;éÄéÙéÞéãéíéùé-éLé×éQé8éÏé*é.é0éDéRéKé.éOéXéo éž é¼ éà éÄ é\éwé¬é!é&éûé6é£éœéôéééiéhé$û  $ COMMON BIOS for DMS 16B Version 7.0g Signing off... Digital Microsystems, Inc.  Drive A cannot be written to. Partition is a HIDOS partition. Partition is Read Only. Partition is already owned by you on another drive. PMu ÀÃè‚ùÃè}éÇÿ‰‰‹ñ¿pŒÙŽÁ¹ŽÚó¤ ü€>pt¢s¢t p<t4<s>Šu€ûÿt'€ûs0è·ý<u ŠG :üu ŠG 8quŠG 8ruè]ÿr€>uÿtlëÆöOëhÆöOëa p<uèpëP<u? ü:÷u6ŠüŠrŠ.q°»v:O u :o u:W t þÀƒÃ<uèë :utÆ÷ûŠuè&ý ÷ˆG ÆöMŽ‹>ƒÇté2€ùuÇÆ ÉÆ ÿÃ�>€uÿè;s »ùèéù€>u ÆÆë �>€t àü¢Öè‡ r%ŒÚ»Ô¹èG èà rt9éªè »ÿèñ€>nuÀëäŒÚ»&¹€è è© rÞuJÆÆ ÿè r#ÆÝènèy rnu¾Æé éQé/é+é>é| é³é�ûVUPŠÄÐàÄ2ä‹ðXÿÖ]^ÊUWƒÆÿÖ_]ˌȎ؎ÀŽÐ¼&ü¸ŽØŽÀÿ64ÿ66ÿ6ÿ6 ÿ6 ÿ6ÇÁ Œ¿¾¹þüó¥Ç›Œ¿¾¹>ó¥�� � ��6�43ÀŽÀŒÚ¹ ¿@‹5GG‹&‰FF&‰GGâî²è) ¢ü¢R»ß²¹Aè  ÿ¢lŒÈ£j¸ artition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000 Please reset the computer €4     ¾ö¹ ó¤ öûv¹ ü8G uÆG ÿƒÃâòÉìÉîø6¾…ðŽfÿÖÃúXHH£$¾$¿|è€�$¾$¿wès»Yèû�éüÿŠ„Àt ŠÈSè÷[Cëðòÿë2ÒVW‹ì‹F£Äÿ7ƒÃ‹7ÿ mu[_^ÃÀ?u[è¼ÿëîS‹w‹ŠþË·Ñ㋟ÆÿÓ[ƒÃëÚ¹Š$당QƹÑÀÐâú€0€=9v€GYâäÌ؎Àü€<u *** *** i/o error at location: command: L S u COMMON BIOS for DMS HNS-86 and 5086 Version 7.0g Signing off... Digital Microsystems, Inc.  Drive A cannot be written to. Partition is a HIDOS partition. Parti ÿ†X‚X ~Ü Ý ‚˜ ~€k€ÿ€ ËùÆþÆýº�ûöýÿu1ÆüJuñâëèæþûÆÃ» öÿtè@úëè?ú¸ ÀùÆà 4€$èuöÿÿtÆÿ€>Ptÿõ4€ ¢ÃùÆà$¢Ã3ÀÆÃè�þÆþÿûèüû3ÀÃöüÿtÆü⻹ŒÚ°¢ 2ä ÀtŠ&ü€Ì€‰œSQR‹<t ƒ>u‹âþP»³úèúX¹âþY^º€ ÀütƒùuäëöÍM˃ùuÃCC‹CCŠîCâúëêèÅsèe‹�èSÿ€>nùÃŽÚ‹ñŠF<r°Ã&¢x&¢ŽŠØŠD ¿z¹ü󤿈¹󤿂¹ó¤P Š$¢‘‹Óè’û ü8G uÆG ÿ ü¢s‹ÚÆpè/ýX<`u/Pè7r Š$:‘XuétY°ðÃèrþŽf&‹O&OAÃ<àuO€>òuƈèÚÿ�ùÀs�é@r�ù s°ðÃ�é€þˆtion is Read Only. Partition is already owned by you on another drive. Partition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000¤€¿Ä#¿,¨5ÃBËIÇPÈWÊ`¿Ä#¿,Ÿ5ÃBÓIÏPÐWÒ`¿Ä#¿,±5ÃBÛI×PØWÚ`‹¿Ã¶Ä©‹¿Ì¶Ä©‹¿Þ¶Ä©‹¿Õ¶Ä©‹¿ç¶Ä©‹¿ð¶ ŠØ¬Nð ª  4€$èt醀>þÿté„ þÿuAÄ> &Š<u6°ªÆþÿèÝú°VèpÇ÷ ü‹ ƒÃ¹�‹¢Æ©ÙèöýÆ©Ýë$°WèE€>þÿtè8ýÆýëÆòÿ‰óQŽÁ3ÿ¹°åüóªYÆ�þë'<ÿtéÿŠxèáú€ àu%ÆòèóýŽf&‹Oë èåýŽf&+OI&‰OŠxèB3À΋ù‹Ù&ŠG<r°ÊØè’ú‹ó¹üó¤3ÀÈmÈá¿Ènð8æ‚æ’ÈŽèeú¾zŒØŽÀ‹û¹üó¤ ˆª ‰ª Šª ‹ª Œª �ª Žª2ÀªÃè rMÆyŒÚ»y¹èČڻˆ¹ üèÝr-è Please reset the computer €Ä©‹¿Ã¶Ä©read write read1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 70g ÿ€= €>þÿu°Aè›þëèýüÆþÿ[YZ^_è}úÆþ.Ž.‹&.¡ Ï¢ ý»¹ŒÊèoþÃP䀰æ‚°¤æ‚䀀>ÿu¢ä€WÄ>ðüªä€ªä€Q‹Itªä€âûSR¹䂨uâø±ë±ä€°æ‚°æ‚°æ‚ä‚ Á¢ °æ‚ÆýÿÆÿ€>þÿu/Ä> Æþ 4€:ýu  4€$èt °Wè\ÿ°ªë°ƒª°VèOÿZ[Y_è¯ùXÏ¢°û»¹ŒÊèµý‰ ‰<ÿt( Š¨@t°üë¨t°ýë ¨ t°ÿë°þ¢�2ÀÃè\ë©ùÃQRÇ�,èàýsZYuï°ðè\ZYQR‹ÙC‹Ý üè}sèÁýëÜZYQRÝA‹Ù¹ üèbsëÄè ZYŽÂ‹ù ^ª¸ÃƚǛÇ�;ÆŸTQRètýsZYuõ°ùàšèîZ[SR‹› üèsèVýëÝZY Ÿ ÀtèÍè­3ÀÃÄ ÷Âÿÿt ‰ ‰¢ÃÇ ¤Œ¢Ãèn9^#V!l9å~#foëÍ _ëás#r!l9^#V!ÍÊ^ʬ!l9^#V!v9~#foÍ,^ë!t9~#foåÝá!l9^#V!n9~#foë!v9~#foÍ,^ë!t9~#foåýáÝåáë!x9~#fo^#V@%€l€ÿ ÿÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXû­èF÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèõítèîëöÃþ¿ Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�ì€ÿè�>è€u ÇèÿæâØY€ÊÃZ+Ñ‹Ê3ÒÃŒî‰>ì‰æ‰èŠÈè#òþÐéŸÿËbô±Óà»v؃Ê´ÿˆ' ÀÃöÿt±èÄí èÕÃèè©ÃŽÚ‹ÙŠ‹O‹W‹_ÃÆšÇ›ˆÇ�YÆŸSémÿÆš!Ç›€Ç�JÆŸéTÿ‹ÙŽÂ&Š¢ûÇöÇôyÆú°éîèèmrø°è(èÌè3ÀÃè}ÆßÆ#¿àŒØŽÀ‹ñ‹ÂŽØ¹üó¤Ç�hèjüsuù¸Ìڻß¹èìè…s Æ#ÿèOüëàPè±X´ ÀtŠà$ö#ÿt€ü�t €ü‚u €>ßu€Ì! 9s#rýåáë!x9~#fo^#V!9s#r!z9^#V!Í«^ÊX!ÿë! 9å~#fo̓^ëás#r!ÿë!9å~#fo̓^ëás#r!9^#V! 9~#foÍH_¬!v9^#VÕ!9åÝå͸YÑÑÑ!v9^#VÕÝåýå͸YÑÑÑ!v9^#VÕýå!9å͸YÑÑÑÃÃPÃÉÍZÃË! 9å~#fo+ëás#r! 9^#V!Íæ^ÊÞüÉÍZ!:å!9^#VÕÍdYÑÑDM|µÂ !  ÿ ÿ ÿ ÿ ÿ ÿ ÿÁÄ� i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location:ÃèrúÃèîƒúu ƒùuŒÚ¹l‰h‰jŠÈèöíÃVWŽÂ‹ù¾=¹ üó¤_^΋ٹv&‰CC¹€&‰ÃŒØŽÀ¿ŽÂ‹ñ¹üó¤ÃÃ@HŒG †Á„5êŠG’á„5êˆG–á„5ê8œ@¦H¦P¦X¦`¶d¶h¶l¶p¶t¶x¶|¶ ÃÆßéˆÿÆúÿàü»¹ŒÚú¢«‰ø‰ÿ‰ð‰ò»œèÐû»¶ƒ>øt »Ç þ¢è³àü¹»ŒÊè} ÃSR¢Æ¡ö£È¡ô@¢Ê ú¢Ç û¢Ëèœûs uùZ[° ÀÌڻĹèZ[SR¹ üè5s  ¨€t ¨u°NèäèiûëȰDèÚèÇZ[3Àø  Ét‹Á±Óè£ùÃ<ûu üè6ÿëè&ÿÆÿÿÆÿÇù èÇù5     9^#VBKÃ`i#DM!åÝáÃÝåá#åÝáÝåáëÍå^Êe`i~·Êe`i^!.ͺ^Êe`i#DM+^ÕÍæYÑå!9å~#fo#ëás#rë+ÑsÃÃoÝåá#åÝáÝåáëÍå^Ê–! å!9å~#fo#ëás#rë+ÑsÃhÉÿÿÍZ!EåÍS;Ñ!9~#¶Ê·!måÍS;Ñ!~åÍS;Ñ!9~#¶ÊÑ!§åÍS;Ñ!¸åÍS;Ñ!DMÃæ`i#DM`iëÍå^Ê ! 9^#V`i^Õ»ÉöÖÿtèúëèú¸ ÀùÆÖàá4€$èuöÕÿtÆÕ€>×Ptÿ|4€ ¢ƒùÆÖà×$¢ƒ3ÀÆÖÃè�þÆÔÿûèüû3ÀÃöƒÿtƃâ×»×¹ŒÚ°¢à2ä ÀtŠ&Ҁ̀‰æœSQR‹ˆ<t ƒ>æu‹ŠâþP»ˆúèûùX¹âþY^º€ Àütƒùu ŠØ¬NyuÆ]èÚÿ�ùÀs�é@r�ù s°ðÃ�é€þ]Æyÿ‰zQŽÁ3ÿ¹°åüóªYÆbþë'<ÿtéÿŠMè¿úw<àt<`uòé½è,Žu‹>sŽØ+öëèŽÀ+ÿ‹6sŽuü¹@ó¥3Àñ¡mÓào±ÓàzÊr‹m¡o%øÿŠq:Ðu;Ìu;Êu :Ñué‰Ì£ÊˆÐˆÑŒÚ»Z! Òè› ÀtË6o�æ±Óæ�ÆZ!‹>sŽu¹€üó¤3ÀÃ2ÿ±Óã�Ã6ÊxèîÿŠG :Òt3<þt/<üu€>u€q€ë» Š&xè2ë<ýuuQRè× ûZY[ÃèÍÿè“nr|w膓Ÿ³©ŠÈèxâò<üè€$à<àtöÈÿt Q¹ÀèáûYÃè¢ÈÃèH½ÊÅÖÜÏT†ŠÈè1âüòÙ}ŠÈèâüä–Ãú°æ–ä–Ãè“©û[QèŠCÒè"C˜ÑàØYÿ'VÄ6(&Š^ÃWÄ>(&ˆ _ÃP䔨t ä�SQè=Y[è‚ XÏèÃä–¨Ã䆨Ãè t!ºåÍS;ÑÑÃá! 9^#V!Í—ZÍ»Z!½åÍS;ÑÑÑ! 9^#V!^#VÕ!ÍåÍS;ÑÑ!9~#¶ÊD!DMÃY!PYDM`iëÍå^ÊD`i)))ë!9~#fo~·ÊD`iåÝáÃŒÝåá#åÝá`i###åÝåáÑëÍå^ÊÝåáëÍå^ÊÝåá)))ë!9~#fo~·Ê!åýáÃÓýåá#åýáýåáëÍå^ÊÝåá)))ë!9~#foýåÑ^Õ!Úåæ„�3ÀÃ.£âä€ä€.¢×.Œê.‰&츀ŽÐ¼nŒÈŽØä€ä€ÆÓÿ°æ„ä„¢á°æ„WVRQSÄ>Ơת á4€$èt醀>Ôÿté„ ×ÔÿuAÄ>v&Š<u6°ªÆ…ÿèÝú°VèpÇ~ Ò‹vƒÃ¹�‹xÆ~ÙèöýÆ~Ýë$°WèE€>Ôÿtè8ýÆÓë€>Ôÿu°Aè›þëèýüÆÔÿ[YZ^_è}úÆ….Žê.‹&ì€ àu%ÆyèÑýŽ&&‹Oë èÃýŽ&&+OI&‰OŠMèB3À΋ù‹Ù&ŠG<r°ÊØèpú‹ó¹üó¤3ÀÈ-ÈÝáÈ.ð8æ„æ”ÈcèCú¾OŒØŽÀ‹û¹üó¤ ]ª ^ª _ª `ª aª bª cª2ÀªÃè rMÆNŒÚ»N¹èČڻ]¹ ÒèÝr-艠^<ÿt( _¨@t°üë¨t°ýë ¨ t°ÿë°þ¢b2ÀÃè\»/ëëé°àÒ¢£ r¢¤¡m£¥¡o@¢§ q¢¨èˆsè( »¨èõ€>.uë°Ìڻ¡¹è5 èÎrÝo�ç±Óç�ÇZ!‹6sŽu¹€üó¤3ÀàÒ¢3¢4Æ0Sè›[ru¿·SèØþŠˆG [<þuÃ:ÒtùŠãPèÁþÆGÃ䚨@tù¨ uöä›èëéèØÿtûˆ! ÀÃèÐÿtûä’$ÃèËÿtûä‚$ÃèÆÿtûˆ!Ãä”$Ã3ÀÃä–¨Ãä†$Ã䚨 °u°ÿ ÀÃ䚨€ëñèØÿtûŠÁæ�€ÉÃ3ÀÃèÐÿtûŠÁæ’ÃèËÿtûŠÁæ‚ÃPè3ÿ$<Xté2VQ¾Äè Yè�þè ^Ê F Ét è|þŠ ÉtèsþFÃè�ÿtûŠÁæ›Ãè“ÿtûŠÁæ›æ� ÃèÿtèCÿ<u.Æ|ÿë <u.Æ|ä–$."|ÃÿèÔÿVVéÄéˆé»é’éœé¨éÜéûé´ééçé¬éé é é!é/é(éÝéþéé@ éoé�é”é•é-éHé}éòé÷éÌéétéméÅéâéØéðéEé.¡âÏ¢× „»×¹ŒÊèoþÃP䀰æ„°¤æ„䀀>‡ÿu¢×ä€WÄ>Æüªä€ªæ¤ä€Q‹äItªä€âûSR¹䄨uâø±ë±ä€°æ„°æ„°æ„ä„ Á¢á°æ„ÆÓÿƆ€>…ÿu/Ä>vÆ… ×4€:„u á4€$èt °WèZÿ°ªë°ƒª°VèMÿ.öŽÿtæ¥Z[Y_è£ùXÏ¢×°û»×¹ŒÊè©ýÃPQW3ÀŽÀ¿`¹‹Ã«GGâû_YXûŠèë©ùÃQRÇsèàýsZYuï°ðè\ZYQR‹ÙC‹³ Òè}sèÁýëÜZYQR³A‹Ù¹ ÒèbsëÄè ZYŽÂ‹ù 4ª¸ÃÆpÇqÇsÆuTQRètýsZYuõ°ùàpèîZ[SR‹q ÒèsèVýëÝZY u ÀtèÍè­3ÀÃÄv÷Âÿÿt ‰v‰xÃÇvzŒxÃè èÕÃèè©ÃŽÚ‹ÙŠ‹O‹W‹_ÃÆpÇqˆÇs/ÿX<útN<ýu»/ë<üu €>tÖ» ë <ûu»Iëè€ÄAˆ&ðS»çèà[èÜ ÿþ¸¿ ¹üó¤»Ãésÿ ÒèaþÆG ÿ¢4¢3Æ0èr2ÀðÃèDþŠG ¢2ŠG ¢1è-r)ŒÚ»/¹èíŒÚ»¶¹  Òèr貿¶€=Mu ÀÃè¤ùÃèŸéÇÿ‰À‰Â‹ñ¿0ŒÙŽÁ¹ŽÚó¤ Ò€>0t¢3¢4 0<t4<s>Š5€ûÿt'tûŠÁæ’Ãà!þÀ$ŠØ* uÃ2ÿS�Ê[Ê SþÀã:!u[±èôýÈ [2ÿ�ÃˆÊ þÀã:!à ÿÊ&Ò»ÚºÝÿIÃ�·è«Æ. Ò¢Ä¹Qè6 Ysâ÷ë ŒÚ¹�Ãèð úêþˆÞ‹6ÛˆŒÚ ÿÛ€>Úté2€ùuÇÛÆÙ ÉÆßÿÃ�>Û€uÿÛè;s »Ïèéù€>Þu ÆÚÆÙë �>Û€té¼ éé éüééMé„éLûVUPŠÄÐàÄ2ä‹ðXÿÖ]^ÊUWƒÆÿÖ_]ˌȎ؎ÀŽÐ¼Ú ü¸ŽØŽÀÿ64ÿ66ÿ6ÿ6 ÿ6 ÿ6Çp Œ¿¾¹þüó¥ÇxŒ¿¾¹>ó¥�� � ��6�43ÀŽÀŒÚ¹ ¿‹5GG‹&‰FF&‰GGâî²èØ ¢Ò¢(»µ²¹AèÅ  Õ¢,ŒÈ£*¸ ÷3ÀùÊ System call made is implemented on the DMS-816 only ÃèÇítèÒíëöÃþn Ét8QVè<ZYQ Ût-RQÿÒYZ Àu#�s€ÿo�>o€u ÇoÿmâØY€ÊÃZ+Ñ‹Ê3ÒÃŒu‰>s‰m‰oŠÈèõñþéŸÿË"ô±Óà»6؃Ê´ÿˆ' ÀÃöÚÿt±è–íÃèfúÃèØíƒúu ƒùuŒÚ¹,‰(‰*ŠÈèÈÆuSémÿÆp!Çq€Çs ÆuéTÿ‹ÙŽÂ&Š¢ÑÇÌÇÊyÆÐ°éîèèmrø°è(èÌè3ÀÃè}Æ´Æ×¿µŒØŽÀ‹ñ‹ÂŽØ¹üó¤Çs>èjüsuù¸Ìڻ´¹èìè…s Æ×ÿèOüëàPè±X´ ÀtŠà$ö×ÿt€ü�t €ü‚u €>´u€ÌÃÆ´éˆÿÆÐÿàÒ»×¹ŒÚú¢€‰Î‰äÿ䉯‰€ûs0è·ý<u ŠG :Òu ŠG 81uŠG 82uè]ÿr€>5ÿtlëÆ¶OëhƶOëa 0<uèpëP<u? Ò:·u6ŠÒŠ2Š.1°»6:O u :o u:W t þÀƒÃ<uèë :5tÆ·ûŠ5è&ý ·ˆG ƶMŽÀ‹>ƒǾ¶¹ ó¤ ¶û6¹ Ò8G uÆG ÿƒÃâòÉsÉuø6¾…ðŽ&ÿÖÃúXHH£Ø¾Ø¿0è ÞàÒ¢«è© r%ŒÚ»©¹èi è rÞt9éªè$ »Õèñ€>.uÀëäŒÚ»Ú ¹€è2 èË rÞÚuJÆÚÆßÿè? r#Ʋènè› r.u¾ÆÚé*€>¯€uþØ ±:Øuë ÿ­Æ¯þ¯ Þ€ÉÃèz ŠÞ2ÀÆßŠÁú€»²¹éˆ öݎؾ¿¹ó¤3ö¿¤² ÍM¾ˆ$FˆFˆ•‹ GGGGâü‹£—Ûã3À3À£ŒÙ>Œ Œt»Îè »Öè »óè »èü »gèö è˜û»¾µ3íö€t½€$ˆc¿O¹üó¤VSè¿ r5 _$Š&±Òü€ä:àíÃVWŽÂ‹ù¾¹ üó¤_^΋ٹ6&‰CC¹€&‰ÃŒØŽÀ¿ÄŽÂ‹ñ¹üó¤Ãûæ¤æ¥PR‹—ì¨ tÆ�ëþ�tgö”€¢”t¨€uÆ‘ë3þ‘u-ëJ¨€tÆ’þ“€>“uë4þ’€>’ u Ɠƒ°‹—î¸þŽÀú&Æí&ÆMûZXÏúëþP¸þŽÀ&Æí&ÆMXÍÏ������ÏÃÈ»qè®û»‡ƒ>Ît »˜ …¢‡è¿àÒ¹»×ŒÊè} ×ÃSR¢›¡Ì£�¡Ê@¢Ÿ Ð¢œ Ñ¢ èœûs uùZ[° ÀÌڻ™¹èZ[SR¹ Òè5s á¨€t ¨u°NèäèiûëȰDèÚèÇZ[3Àø  Ét‹Á±Ó裀Ã<ûu Òè6ÿëè&ÿÆÕÿÆÖÿÇ€ èÇ€ Ë€ÆÔÆÓº�ûöÓÿu1ƃJuñâëèæþûƃ€�ؾؿ+ès» èû�éüÿŠ„Àt ŠÈSè÷[Cëðòÿë2ÒVW‹ì‹F£„ÿ7ƒÃ‹7ÿ -u[_^ÃÀ?u[è¼ÿëîS‹w‹ŠþË·Ñ㋟†ÿÓ[ƒÃëÚ¹Š$당QƹÑÀÐâú€0€=9v€GYâäÌ؎Àü€<uäëöÍMÃö�ÿtW‹>•‹ GG;tâøë ‹CCCCCâý_‹ƒùuÃCC‹CCŠîCâúëÈèÅsèe‹sè1ÿ€>ÿtìé ß ÀtÃèsó3ÀÃÆ°ÿ ³öÙÿt ´ð"àþÀ$ Äë $ðÆÙÿ¢³èw rUƲè¦ÿŒÚ»«¹ ÒèS r=èÿ €>«u3€>¬tÆßÿÆÚþ¯ÆØøÃ ³´ð"àþÈ$ Ä¢³ÆßùÃè »Õè�똀ùs&ˆlŠÙèŠG <ÿt¢rŠG ¢qŠG ¢wŠG¢xÃ3ÛÃÇmÉmÉoà ҋÙtÚŠ2ÿàw<àt<`uéT°àu!€>u€>]s[SÆa`è[ ít[Sè¨[^C€ûu ŒÚ¹3èÖ rö 4´±Óࣳèè“2À²ÍMQ3É»º€ŽÂ�ê è7u.ŽÛ¡&;u÷¡&;÷t ºàèu�é�Á ‹ÑYé�Á ŽÙ‹÷Ð÷;÷u;ÊuêÉ"°ÿ²ÍM»ÈèZ »ŒèT ŒÚ¹¹3Àö tÇ$ ÿ.$ÿ~S�>~èu!Ç~öÔÿtÄv&ö6     @H©©¯·©©©©Ö”ó†ó–ˆ`ˆÇ$Ž×ŒG–FD ”Á„5êXŠG†á„5êŠG–á„5ê8œU U(U0U`‡h‡p‡x‡€Á˜L@d ÿ†XD„X ~ÜHLPUTÒXÞ\dŸhplÒpÒtÒxÒ|ÒÌ8œ@d"Dd"Hd"Ld"Pd"Td"Xd"\d" ÿ›P›X ~ÜìÝ ›˜ ~Àk€ÿ€âþHuøæë�YXøP·ÃVW¿L‹ñŽÚ‹Ëüó¤_^Ã3ÉŠë2*ÎþÉûÏ22äŠÆ×±Óà2öÂÑàÃèþ±ŠÂÒè»�'2äÐàØþÉÒè*б*ÊÃèôýèÊÿPÑø‹•'+ÈIXQéèßý —'*Â3ÉŠÈQè«ÿY‹øùù‹÷NNŽì2Žì2ýó¥‹ßÆ Ãè¯ýè…ÿPÑø‹•'+ÈIXQéèšý ê2*ÂþÈŠÈ2íQèdÿ‹ø‹ðFFYŽì2Žì2üó¥‹ßÆ û  $ COMMON BIOS for DMS 16B Version 7.0g Signing off... Digital Microsystems, Inc.  Drive A cannot be written to. Partition is a HIDOS partition. Partition is Read Only. Partition is already owned by you on another drive. P Ý „˜ ~€k€ÿ€z€Ó.€Š869;9š869£8/¬8:9¹84-À80-Ç81-Î83-×8Š869;9š869£8 /¬8:9¹8<-À88-Ç89-Î8;-×8Š869;9š869£8/¬8:9¹Ãèlýè7ÿt-‹>™'‹÷+6“'Žì2üQ2íŠê2Žì2ó¥+6“'‹þ+6“'Yâä²èý³° ètÃè*ýRèôþt(QèùþY+Â+‹ø‹ð6“'Žì2üQŠê2Žì2ó¥Yâð²Š6˜'è¿ü³° è2Z2Òè²üÃèâü3Û3É2äŠÚŠê2+؃ûy ÙþÎyõ¶³ŠÓèŒüÃè¼ü3Û3É2äŠÚŠê2+؃ûy ÙþÎyõŠ6˜'éîÿŠÓècüÃè“ü3Û3É2äŠÚŠê2Ø;Ùx+ÙþÆ:6˜'xòŠ6˜'Šartition is owned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000 Please reset the computer €„ãì~õƒ  œ�Ÿ Ó„ãìuõƒ¨ ¤¥§ Ó„ãì‡õƒ° ¬­¯ K™v„iK¢v„iK´v„iK«v„iK½v„iKÆv„iK™v„iread write re8D-À8@-Ç8A-Î8C-×8969-/-9;9 99696/-9;9 9969H/-9;9 9969?/-9;9 9969Q/-9;9 9969Z/-9;9 9969-/-9;9 9read write read1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling—'ŠÓè6üÃèfü3Û3É2äŠÚŠê2Ø;Ùx*+ÙþÆ:6˜'xòPQRS°3ÉŠ6˜'Š—'·èDü[ZŠ6˜'YXéÒÿŠÓèñûÃè!ü*ðy2öèäûÃèü*ðy6ë2xúèÓûÃèüð:6ë2xŠ6˜'èÀûÃèðûð:6ë2xŠÆ*˜'3ÉRŠ6˜'Š—'·èáûZŠ6˜'è–ûÃèÆûþÂ:—'yjŠÂ±Òèµ*èQ2í»�'Ðà2äØþÉÒà*ÐP¸€ŠÊÓè‹ðX±*ÊЉ§'YŠÍ2í‹ÆQ‹§'…uÑèâøCCǧ'ad1k spool assign who timedatehd stat net infolock unlock Sorry, no room for spooling... Print file has been spooled. 70g ÿ€ ... Print file has been spooled. 70g ÿ€§/ @¸€Yâåé³*ÙXöرÒàÊÐè ûÃèPûþÊxøŠÂ±ÒèŠè€ÅQ2í»�'Ðà2äØþÉÒà*ÐP¸€ŠÊÓè‹ðXŠÊ€ÁЉ§'YŠÍ2í‹ÆQ‹§'…uÑàâøKKǧ'¸YâåéŠÙ€ëX-±ÒàÊÐè¬úÃèÈü¸ÓÀ Ãè½ü¸þÿÓÀ!û�'¹ÇCCâøÃ3ÉŠê2*ÊènûÃPèvúSèüÑø‹•'+È[XèXûÃè•ú2Òè\úÃ3ÒèVúÈ6ë2ˆê2ˆ6˜'þ˜'ˆ—'þ—9ë!Ð9~#foÍ _ë!Ô9s#r!Ô9^#V!Ø9~#foÍæ^Ê9?!Ø9^#V!Ô9s#r!Ü9~#¶Ê“?ÃU?!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍæ^Ê“?!Ú9^#VÕ`iÍZÑÿÿÍ«^Ê�?!ÿÿÉÃF?!ë!Ò9s#rð?!Ò9å~#fo#ëás#r!Ð9^#Vë~·Êý?!Ò9^#V!Ø9~#foÍå^Êý?!Ð9å~#fo#ëás#rë+^Õ`iÍZÑÿÿÍ«^Êú?!ÿÿÉá?!Ò@%€,€ÿ ÿ ÿ ÿ ÿ ÿ'3ÀŠÂö'HÑࣛ'2öÑ≓'+Â@@£™'V‹ó¿�'¹üó¥Žì2‹>™'>“'¹P´° ó«ÃŽì2‹>™'>“'úúV‹óü¤GâüÃèŠûÃÿ3Š&3Ã@0šÄá5ê€`@  @ @Òá ÒÒÓÒÒ z$é (Ò,Ò0Ò4Ò8Ò<Ò@åDô9^#V!Þ9å~#foëás#r!Ü9~#¶Âi@Ã/@!Þ9å~#fo#ëás#r!Ö9å~#fo+ëás#rë#ë!Ô9~#foÍæ^Êi@! å`iÍZÑÿÿÍ«^Êf@!ÿÿÉà @Ã�@ýå`iÍZÑÿÿÍ«^Ê�@!ÿÿÉ!Þ9å~#fo#ëás#rÃø;!Þ9^#VëÉÅ!"¥_"§_! 9~2£_G+V+^+ë6"¡_ë+N+V+^!¥_w#ÂÄ@y·òô@/žw#Âè@Ãõ@õ!¨_>õ^ë ÿ ÿ ÿ[%�„A i/o error loc: num: cmd: typ: vol: par: trk: sec: *** waiting at location: *** *** i/o error at location: command: 7     þ%€@œ1€ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ ÿ[!6ÓûÀã!@ãûíM÷•%™%¾%ò%”%”%&~&”&±&Í&”%”%”%è&�'”%”%”%”%”%”%”%”%”What function key do you want to program? Programming . Press ^$F13 to leave, ^$F14 to delete.BUFFER FULL efg Sr ;<=>?@ABCDGHIKL5MOPQSRN+J-TUVWXYZ[\]G7H8I9K4L5M6O1P2Q3S.R0N+J-^_`abcdefgw„stuvv%”%”%”%”%”%”%”%Î)Û)ì)ÿ)\)‰) )3)Z+c+)*”%++)+Ÿ*”%”%U((ƒ(Å(D+8+æ+”%”%i+È+@(û'è& #(-27?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~€�‚ƒ„…†‡ˆ‰Š‹Œ�Ž��‘’“”•–—˜™š›œ�žŸ ¡¢£¤¥¦§¨©ª«¬­®¯°±²³´µ¶·¸¹º»¼½¾¿ÀÁÂÃÄÅÆÇÈÉÊËÌÍÎÏÐÑÒÓÔÕÖרÙÚÛÜÝÞßàáâãäåæçèéêëìíîïðñòóôõö÷øùúûüýþÿdÌ<ROPQKLMGHI !"#$%&,-./012ä  7?=?B?G?M?0 Signing off... Digital Microsystems, Inc. 816 7.0 KBYD 0.0 Parity Error  Drive A cannot be written to. Partition is a HIDOS partition. Partition is Read Only. Partition is already owned by you on another drive. Partition is ow å   æ ÁÂÃÄÅÆÇÈÉÊÑÒÓÝÔÕÖÜרÙÛÚáâãËÌÍÎÏÐÞß1!2@3#4$5%6^7&8*9(0)-_=+çà@qQ@wW@eE@rR@tT@yY@uU@iI@oO@pP[{]}áá@aA@sS@dD@fF@gG@hH@jJ@kK@lL;:'"`~\|@zZ@xX@cC@vV@bB@nN@mM,<.>/?*ned by user named . You don't have write ownership of it. Write attempted to partition locked by user . Illegal interrupt called at 0000:0000 Please reset the computer € �¡‚¢ƒ£„¤…¥†¦‡§ˆ¨‰©Šª ‘± ’² “³ �½ ”´ •µ –¶ œ¼ —· ˜¸ ™¹ ›» šºááââãã‹«Œ¬�­Ž®�¯�°ž¾Ÿ¿  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopqrstuvwxyz{|}~0. !"#$%&21/-,+ 9(( 3 45  ''3 450. !"#$%&21/-,+ )0. !"#$%&21/-,+)S++--778899445566112233..00++--8     ååååååååååååååååååååååååå9     åååååååååååååååååååååååååå:     åååååååååååååååååååååååååå;     åååååååååååååååååååååååååå<     åååååååååååååååååååååååååå=     åååååååååååååååååååååååååå>     åååååååååååååååååååååååååå?     åååååååååååååååååååååååååå@     ååååååååååååååååååååååååååA     ååååååååååååååååååååååååååB     ååååååååååååååååååååååååååC     ååååååååååååååååååååååååååD     ååååååååååååååååååååååååååE     ååååååååååååååååååååååååååF     ååååååååååååååååååååååååååG     ååååååååååååååååååååååååååH     ååååååååååååååååååååååååååI     ååååååååååååååååååååååååååJ     ååååååååååååååååååååååååååK     ååååååååååååååååååååååååååL     åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååŽÆŽ´Fúb'R�A³TïñÕr †óGÎÌ ±ä¯ÛâÎ2÷‘N"’­ ¦½n¨G>Yø97­‡ãÑJ5¡ØÃ¥`YÙ&7¨ïóB¶ V²§ù_ƒäbý”ÇÀ¡®÷¸T¸pË+Ó5»¬ëD1Ó ŠueháI ŽéÑWûÁì4ößåååååååå