IMD 1.17: 2/06/2011 14:59:46 advanced digital cpm 2.2 ser# 615-00127 dsdd  >oÓ:~W!€{Ó>ˆÓ Û·ò"í¢öÛ OíCü° Ê>» ×íSþ>OÓ:üÃ3ðæ8ö0OÍ,ÍÉzæ8ÉÍU‡O!£ NÍ#Nyþ ÂÉ,Í!}ä(ç1Í|µ‘Ê3N#Fx±2‚íCƒN#FíC€åÍ$á#^#Vë^#VíS…#~2{#~2|<2~###~2}#^#VíS‡N#FíC‰íC‹Í*…íK�íB0íK‹íC‹ÍÅ:‚·( í[ƒÍ0åÁÍ!Í'·˜Â3á#"�*€ åÕÅÍÓÁÑá(,ò*�#"�+))í[‡íR�Ê3–ë!\ æí¡À÷Éjí°ý!kÝ!»ÍcÕÍyÝqÝpÝuí[~+:…=½8ÝuÍcá7?íR#|µ()Ý ÏÝwÝ G}�Ýw¯ÝwÝNüÝFýÝqÝpÊÕ:~ÝF€o:…=½8ÎÝuµý^:}·(ý#ý~Wý#³ÀÑë:{G)ýí[…7?íK‰ íR0ûÉ! åå*áN#Fåx±(@Íá#N #F#"ááÑÅåáåDMÍ$áÁx ¹8Ô€Ååí[ƒÍ0MDÍ!Í'·˜ TÓ»Ý!·!ÝÝFÝ~O�<_>,½( 0éW}’Wy’ÝwÝåá·íRDM!»76í°! í[36:jËæGí°Ã6ëF#ÍN!¬ÍN !\ÍP>OÓÃ3ðF#åNÅÍ ÁáöÉCPM SYSSelectReadFile not found error: file þ Ê÷ þ.Ê÷ ÍaÊÏ  !g ý ÍüÂ!Ãó!ž ÍúÂ0ÍŸ2!b  ÍüÂF>íÍôÃó!®  Íü®WÍÂcÍ¡OÃiÍæö W*##y•Oxœþ€y·úÏ ÃŠþÿÂÏ y·òÏ AzÙÍܰKBÍôyÍôxÃôÍܰÍôy͡Ùø!Š ÍüÂÅ{/OÃâý!– ÍüÂ.{/ÆOÍ9ÍÖ±OÍVþÚÞ Í >±G>ËÍôÅͽÁÙÉÉÃ3Ã8Ã=ÉÉÉÃäÃõÃæÃëÃðÀÉÉÃB>ÃV>Ãa>Ãoz³i`Èë n&ÉÃVÃaÃo‡ÿÉGÍVx(ù‡OíxæÉA‡G:î°G:í°ÓÝ~Ó É> 2ì:âOÛ ‘ÈyÓÝ~öóÓ Ûû8 Û æ™ ÝqÉÍØÝ*ñÝ~·($Íb8Í‚í°¯ÉÍDÍ´·À2è:â2æ:ãæá:ã2ç>¢2>Œ2ïÍ7ÍS> 2ì>ÐóÓ :ïGããããÛ æ / _Ý~·(!s*ê:çÓ{Ó ÍÛ û_°ÈÍÍS·(»É€Û·ðí¢ ø óó:ì= >ÑÉ2ìÛ æÈÝ~ö Ó Û æ(ú¯Ó ÝwÉ:ãæø2äÝF¸8� <2çy2îÉ:ãW:èØ:âG:æ¸(7É:äGz�Øþ?ÉG!ó€ý€í[êÉGÝ!yÝüÉ>ÐÓ zÍ•ÓÍ0¯2âÝw<2ã!s"êÍ®·À:ò·(ÖåþÐÝw·(>>Ýw¯Éÿ€}ï÷ÃZÃhÃ�ÃyÃÁÃêÃÐÃgÃÛà ÆÃÓÃ}!ã"Q!ãÃ*"µ!¯"!""²!¯2V!2M!2#!2S!!" "d!"ö!"´!!1ô!å!å++"ô!åå"O!>Ã28!†"9:]þ Ê!÷1ì!ÍÛįÍÑ>#ÍyÍhÍ�þ Ê!J!6þ-ÂB5Í�ÖAÚ]þÒ]_!Y^#Vëé¯]8]03]]Ù¡]]å]§’!]]j]]åÕů2[\ͯÁÑáÉ>2M!!€""²!ÉÍÖÒ]ÍзÂÉ:J!·ÊÓÍ Ã=Â]Íg" Í ÃÍÖÒ]ÍÐÊýÍg" =ÊýÍg"=Â]¯Ãÿ> 2ÍÃÍÐÚ]Ê]Ígå=Â!ÅÅÃ1Ígå=Â-ÅÃ1ÍgåÑÁ!ãéÍÁÊWÍgÚG"d!æ=ÊWÍg=Â]Ãb*d!}æðoµ"f!ÍÑÍÛÂ*d!"h!Í#>:Íy:K!·ÊžÍw^#V#ëÍ#ëÍ:Ú² Â…òÍw~ÍÁ#Í:Ú²}æž"d!:J!·Âõ*h!ëÃÃÍwÂÅÍ+:K!·Êá!L!~·/wÊäÃäÃç*d!}“ÂÌ|’ÂÌ*d!Í:ÚÃeÍÐþÂ]ÍgåÍgåÍgÑÁÉ{‘z˜ÉÍ|·Â]ÍÚ}Ã$¯2D!ÍÑÍÐ2E!ÍgåÍg"F!åÍg"H!DMÑáÃ\å!D!6ÿáóÊxÚf"ö!æ=ÊxÍÛ=ÊxYPÍÛ!$!å~·ʲ#^#Vå:D!·Ê«*ö!{½Â«z¼Â«áá"!!å~62 !òá#wë6ÿá Â}1¶!ýáÝáÙáÑÁÙñ1ì!ÑÁñáù*ö!å*ô!ûÉõÅ!V!~4·Êö#~#F#»ÂöxºÂö~#s#r#w>ÿÁñÉÍÐÊ¿Íg=Ê==Â]åÍgÑåÍÑÍ#Íwᯕo>œgÍ#Ã'èd ëÍÑÕÕÍêÍw>#Íy…!3^#V#ã0}“o|šgÚg ÃZx·ò~õyþ0Ê…ÍyñæGÑyÍyÑñæþ‘GÃ~ãÂSÑÑz·Â{æþ Ú<ÊÍw>'Íy{æÍy>'ÍyÃ*²!##V+^+N+yþÒÍÑëÍ#ëÍw Êè~+ÍyÃÜÍÛÂÃÄx·ÀÃ�þ.Èþ Èþ*Èþ ÉÍûÊ w#Íó ÂÍûÈÍóà þ*Â,Íó?r# Â,É:J!·Â]m!!€Ow #w ÂEq!\Íñþ ÊSõÍóþ:ÂoñÖ@w#ÍñÃtG6#ñÍþ.ÌóåååååååååMOVCPM COMLPIP COM: SUBMIT COM XSUB COMED COM4ASM COM@DDT COM&LOAD COMSTAT COM)SYSGEN COMDUMP COMDUMP ASM! !"CPM SYSH#$%&'DEBLOCK ASMP()*+,DISKDEF LIB1-./0FORMAT ASMA12345NEWSIZE DOC6CPMINSTADOC 7LDRGEN COM8TRK0 LDR9:MODEM COM;;<=>RAMDISK MAC?@FMTHD COMAFORMAT COM BREADFRSTDOCCDMODEM DOC`EFGHIJLOADER DOCKLUSER DOCMNINTRFACEDOC,OPQZ80 LIBNRSTUVFORMAT DOCWCPM60,CO DXYZ[\åååååååÃ,COPYRIGHT (C) DIGITAL RESEARCH, 1979 1]þ Ê‘þ?Ê‘!þ Ê_·Ê_Ö0þ Òr)å))Á O Ã@|·Âr}þÚr.g))Ã¥{Íuà INVALID MEMORY SIZE$!$Ê¡~/w¾/wÊ”|æügå*"záå|æ?¸>@G!�>0w#w!Ž4~þ:ÚÏ60+4ÂÁ~Íu!N#FÅ! �x±Ê, Åå¾Â# Ê Ãð¯=Â!óv"z!w6͈!ëÃuá#ÁÃãáÁ+Žw+wz þ>ÂZÁáÅxÆG}‘o|˜g"|ë! ÁÅ:mþ Êc Ãp!ÿ"Ãx±Êp ~#ÃcÁå*|ë!:mþ Ê… x±ÊÀä SYNCRONIZATION ERROR$ {æ°ã~#ão}oÒ¼„üÃ…Ñ*z¾ÂZ# ÂÉ:mþ Êm€! ~·Â #Âáë*€ÿ DM! x±Ê  w#ÃøÃ!N#F! D!_>0w#wÊ1!`4~þ:Ú60+4Ã*�"e@Íuà READY FOR "SYSGEN" OR "SAVE 00 CPM00.COM"$*|é à CONSTRUCTING 00k CP/M vers 2.2$ú>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®É!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ë1ÛyÛ{ÛÿæÂ0Ó!B0}Óy|ÓzÛxæÊ0ÛyæþÒ0Û{ÜÿæÂ0Â0À€€ Ã\ÃX COPYRIGHT (C) 1979, DIGITAL RESEARCH _ÃÅÍŒÁÉ> Í’> Ã’> Ã’Å͘á~·È#åÍŒáì Ã_ÃÍ2î<ÉÃï2íÍÃËÃÃÃÃÃÃÍÃßÃÍ·ÉÃôÍÃùÃôÃÃÃÿ Ã͇‡‡‡!ï¶2É:ï2ÉþaØþ{Ðæ_É:«·Ê–:ï·>Ľ¬ÍËÊ–:»=2̬Íù–!€€ÍB!º6#5¬ÍÚÊ–:ï·Ä½!ͬÍÂʧÍÝÂÍÝÍ ÍÍ)!F#x·Êº~Í0wëw!"ˆÉ Í·ÈÍ·ÉÀÃ!«~·È6¯Í½¬Íï:ïý(!¾ÂÏ#ÂýÉ͘*Š~þ Ê"·Ê"åÍŒá#Ã>?͌͘ÍÝ·Èþ Ú Èþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃO…oÐ$É>!ÍÍYåå¯2ð*ˆëÍOë"Šëá·Ê‰Þ@Gþ:Ê�:ïwÖx2ðpÍ0ʹ#þ*©6?ëw˜Í0ÊÀï#6 ¹þ.ÂéÍ0Êé#þ*ÂÙ6?ÃÛwÂÈÍ0ÊðÃß#6 Âé#6Âòë"ˆá #~þ?  Âx·ÉDIR ERA TYPESAVEREN USERg!yþÐξÂO#Â<þ ÂTyÉ#ÂO Ã3¯21«Åyæ_Í͸2«Áyæ2ïͽ:·Â˜1«͘ÍÐÆAÍŒ>>ÍŒÍ9€ÍØÍÐ2ïÍ^Ä :ð·Â¥Í.!Á_~#foéw]­Ž¥!óv"!éßçREAD ERRORðçNO FILEÍ^:ð·Â !Î ~þ Ê3#Ö0þ Ò Wxæà x€Ú €Ú ‚Ú G ÂÉ~þ  # Â3xÉ~#ÂBÉ!€�ÍY~ɯ2Í:ð·È=!ï¾Èý:ð·È=!ï¾È:ïýÍ^ÍT!Î~þ Â� 6?#ˆÕÍéÌêÊ:îæ`O> ÍKÚÑ{ÕæõÂÌ͘ÅÍÐÁÆAÍ’>:Í’ÃÔÍ¢>:Í’Í¢xÍKæþ ÂùñõþÂ÷> ÍKæþ Ê> Í’xþ Òþ ÂÙÍ¢ÃÙñÍÂÂÍäØÑÆÍ^þ ÂBRͧÍ9!5‚#~þY‚#"ˆÍTÍÍï<ÌêÆALL (Y/N)?Í^ ÍTÍÐʧ͘!ñ6ÿ!ñ~þ€Ú‡åÍþá ¯w4!€ÍY~þʆ͌͆Ãt=ʆÍÙÍfà ÍøõÍ^ ÍTÍÕÍïÑÍ Êû¯2íño&)|µÊñ+å!€åÍØÍÍÑáÂûÃÔÍÍÚ<ÂͧÍÕÆNO SPACEÍ^ :ðõÍTÍéÂy!ÍÝÍB*ˆëÍOþ=Ê?þ_Âsë#"ˆÍ^ÂsñG!ð~·ÊY¸pÂsp¯2ÍÍéÊmÍÍÆÍêÆÍfà ‚ͧÆFILE EXISTSÍøþÒ _:Îþ Ê ÍÉÍõ:Îþ ÂÄ:ð·Ê‰=2ïÍ)ͽÉÖþ  ÕÍTÑ!ƒÍ@ÍÐÊk!åëÍØÍÍùÂá€}“|šÒqÃáá=ÂqÍfÍ^!ðå~2Í>Í`á~2ݯ2í\!Í!ÍB!~·Ê>þ Ê>#Ã0�~·ÊO#ÃCx2€Í˜ÍÕÍÍ1«Í)ͽÂÍfà zͧÆBAD LOADCOMÍfÍ^:ÎÖ !ð¶Â Â$$$ SUBgÙ¥«±ë"C ë{2Ö!"E 9" 1A ¯2à2Þ!tåyþ)ÐK!G_^#V*C ëéÈ � Î Ô í ó ø á þ ~ƒEœ¥«È×àæìõþ , &-AGMS  ›!ÊÍåþÊÉ!Õô!áô!ÜÍåÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉ :B ÆA2ƺÍÓ ÁÍÓ ! ~6·Àà ÍûÍ ØõOÍ� ñÉþ Èþ Èþ ÈþÈþ É: ·ÂE ÍæÈÍ þÂB Í þʯÉ2 >É: ·Âb ÅÍ# ÁÅÍ ÁÅ: ·ÄÁy! þÈ4þ Ð5~·ÈyþÂy 5Éþ À6ÉyÍ Ò� õ^ÍH ñö@Oyþ ÂH  ÍH : æ– Éͬ  Í à #ÍH ÍÉ : ! ¾Ð ÍH ù  ÍH  ÃH þ$ÈÅOÍ� ÁÃÓ : 2 *C N#åÅåÍûæáÁþ ÊÁ þ ÊÁ þ x·Êï : 2 Ãp þÂ& x·Êï ~+é þÂ7 ÅåÍÉ ¯2 Ãñ þÂH å! >–wáÃï þÂ_ á: ! ¾Òá 5ͤ ÃN þÂk ͱ áÃá þ¦ Åͱ ÁáåÅx·ÊŠ #NÅåÍ áÁÃx å: ·Êñ ! –2 ͤ ! 5™ Ãñ #wÅåOÍ áÁ~þx½ þʹÚï áp ÃH Í Ã Íà y<Êà <Êà Í·Ê‘Í Ã :à !qÉëMDÃÓ Í# 2E É>à ! ^#Vëé Èw#ÃP :B OÍ|µÈ^#V#"³##"µ##"·##ë"Ð!¹ÍO *»ë!ÁÍO *Æ|!Ý6ÿ·Ê� 6>ÿ·Éͯ*µw#w*·w#wÉÍ'û Í*·È! ÃJ *êÍê "å"ì!åN#F*·^#V*µ~#foy“xšÒú å*Á{•_zœWá+Ãä å*ÁÚ y•xœÚ ëá#Ãú áÅÕåë*ÎDMÍÑ*µs#rÑ*·s#rÁy“OxšG*ÐëÍ0MDÃ!!ÃN:ã· ÂE G>–O:â Ê\ ·ÃS €É*C  :Ý·Êq n&É ^#VëÉÍ> OÍ^ "åÉ*å}´É:Ã*å)=Â� "ç:ÄO:㡵o"åÉ*C  É*C ë!ÉÍ® ~2ãë~2áͦ :Ŧ2âÉÍ® :ÕþÂÞ ¯O:ã�wë:áwÉ È|·g}oÃë €*¹¯†# Âý É È)à Å:B O!Í Áyµox´gÉ*­:B OÍê }æÉ!­N#FÍ "­*È#ë*³s#rÉÍ^  ~Ð!ÃJ Í È! ÃJ *¹:é…oÐ$É*C ~ÉÍi 6ÉÍi ö€wÉ*êë*³{–#zžÉÍ Ør+sÉ{•ozœgÉÿ*ìë*ÌÍ• ÐÅÍ÷ *½ë*ìÁ ÊÄ ¾ÈÍ ÐÍ, ÉwÉÍœ Íà ͸ ÃÚ Íà Ͳ !±Ãã !¹N#FÃ$*¹ë*±€ÃO !ê~#¾À<É!ÿÿ"êÉ*Èë*ê#"êÍ• ÒÃþ :êæ‡ 2é·ÀÅÍà ÍÔ ÁÞ yæ<_WyæOx‡‡‡‡‡±OxæG*¿ ~ÂVÉÕÍ5æþÁ±ÂdwÉÍ^ ÅÑ ÈÕ:ݷʈÅåNÃŽ ÅN#Fåy°Ê�*Æ}‘|˜Ô\á#ÁÃu*ÆÍê #DM*¿6# x±Â±*Êë*¿s#rÍ¡ *³6#6Íþ ÿÍÍõ ÈÍ^ >å¾ÊÒ:A ¾Âö#~Ö$Âö=2E ÍkÍŒ ÃÒ:Ôà Åõ:Å/Gy Oñ ‘æÁÉ>ÿ2Ô!Øq*C "ÙÍþ Í¡ ÍÍõ Ê”*ÙëþåÊJÕÍ ÑÒ”Í^ :ØOy·Êƒþ?Ê|xþ Ê|þ Ês–æÂ-Ã|ÅNÍÁÂ-# ÃS:êæ2E !Ô~ЯwÉÍþ >ÿà ÍT  ÍÍõ ÈÍD Í^ 6åÍkÍÆ Í-äPYy°ÊÑ ÕÅÍ5ÒìÁÑ*Æ{•zœÒôÅÕBKÍ5ÒìÑÁÃÀ<ÍdáÑÉy°ÂÀ!É Õ*C ëÍ^ ÁÍO ÍÃ ÃÆ ÍT  Í*C ~wÍõ ÈÍD  ÍÍ-Ã' ÍÍõ È ÍÍ-Ã@ÍÍõ Èͦ ~õåÍ^ ë*C  ÕÍO Íx Ñ! N!Fáñwy¾xÊ‹>Ú‹>€*C wÉ~#¶+Àw#w+ɯ2E 2ê2ëÍ ÀÍi æ€ÀÍÍõ ÈÍ^ ë*C :Ý·Êè~·ÂÛw·Âá~¾ÂÃýÍ”ëÍ”ë¾Â#¾Â # ÂÍìÿ ë ¾Úw ë ~>ÿ2ÒÃ!E 5ÉÍT *C å!¬"C ÍÍõ á"C Èë!¯w# ÂF! wÍŒ ÍýÃx ¯2ÒÍ¢Íõ È*C  ~<æwʃG:Å !Ҧʎì 4~æʶÍÍõ ¬:Ó<ʶÍ$Íõ ʶïÍZÍ» ¯Ã Í Ãx >2Õ>ÿ2ÓÍ» :ã!á¾Úæþ€ÂûÍZ¯2ã:E ·ÂûÍw Í„ ÊûÍŠ ÍÑ Í² ÃÒ Ã >2Õ>2ÓÍT *C ÍG Í» :ãþ€Ò Íw Í„ ÂnÍ> 2×·Ê;O Í^ DM;}´ÂH>à "åë*C  :Ý·:×ÊdÍd sÃlO s#r:E ·ÀÅÍŠ :Õ==»ÁÅy==»å*¹Ww#òŒÍà *ç"åÅÍÑ Á͸ *å:ÄG¥¸#šá"åÍÚ ÍÑ ÁÅ͸ Á:ã!á¾ÚÒw4!õÍi æwñþÂ:ÕþÂÍÒ ÍZ!E ~·Âþ=2ã6ÃÒ ¯2ÕÅ*C ë!!~æõ~#~æO~æGñ#n,-.‹! w! y–ÂG!x–æÊÅÕÍ¢ÑÁ.:E <Ê„! q!pÍQ:E <ÂÁÅ. Ê„Í$.:E <Ê„Á¯Ã åÍi 6ÀáÁ}2E Ãx ÿÍÌÁÉÍÌÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ Í*C !år#r#rÍõ Ê Í^ Í¥áå_y–#xž#{žÚs+p+qÍ-ÃäáÉ*C  Í¥!!q#p#wÉ*¯:B OÍê åëÍY áÌG }Ø*¯MDÍ "¯ã:Ö!B ¾ÈwÃ!>ÿ2Þ*C ~æ=2ÖþÒu:B 2ß~2àæàwÍE:A *C ¶wÉ>"à !"­"¯¯2B !€"±ÍÚ Ã!Ír ÍQÃQÍQâë~þ?ÊÂͦ ~þ?Är ÍQÍÃé *Ù"C ÍQÍ-Ãé ÍQÍœÃÍQüÍQÃþÍr ÍQÃ$ÍQÍÃ*¯Ã):B à ë"±ÃÚ *¿Ã)*­Ã)ÍQÍ;Ã*»"E É:ÖþÿÂ;:A à æ2A ÉÍQÓÍQÜÍQÃÒ*C }/_|/*¯¤W}£_*­ë"¯}£o|¢g"­É:Þ·Ê‘*C 6:à·Ê‘w:ß2ÖÍE* ù*E }DÉÍQ>2ÕÍÌÉå€Ã³ÃÃÃaÃdÃjÃmÃrÃuÃxÃ}çìûÃÁÃÊÃpñ‚ns î‚ns<‚nskL‚nsš{ò?À      00k CP/M vers 2.2 1!œÍÓ¯2Ã1€ ÅÍ»Í}ͧͬÁ,ÅÍÁÂI*l€DMÍ»:kþÚ:j<Oͧ¯Óý¯Óü>~Óü¯Óó€Í»>Ã2!"2!"28!ø"9:OûÃÁ ÊRÅÃÉ![ÍÓÃÿ?bootÃøÍøæÉà øÃø¯Éà øÃøç!yþÐæ2fyæ·Ê’>0G!h~æÏ°wi&))))3É!jqÉ!kqÉë ~2koÉi`"lÉÍàÍðÉÍàÍðÉ~·ÈåOÍjá#ÃÓ!h~æø±wæ !k¶wÉ Í?ÍL:f·>g ÓyxÓzÃÓ‰xÓŠÍYæÊÍ?þÊ2·Â8ÍLÚ2æþÂ8ÉÍLÃ8 Âò>É:f·ÂIÛyÉÛ‰É:f·ÂVÛ{ÉÛ‹É:f·ÂcÛxÉۈɀ€@�$@B �B’�„ ’H’H II$�‚@ˆD€’I AˆBI€$"$‚H�$‚H�ˆ€@‚$�$I! ’H’*ª  $Hˆ@„@A „‚I $ˆD’!!$I"BI"I"@$’BˆIIH‰€$„’$’$‰$„ˆBB„’I$’@„BI!"$’‰$’„’„A D‚�I$’@’ ªˆA$€@ªªªªªªªªªª’$’�’$�@H! "!„$$"„’„ ’@B$!!‘!DH’$�$�‰"H �@@‘BHH„ˆ  !$$�A"D@‚�„ˆ "€ˆA" "€€BH‰A "‘ !’$� D‰ B �’I ‘ $� ˆ!„$$ €H‚@BD D$’ HI DIA!$$$ $" "€€$„€D ! $„ˆ" „’ $AB " BD„ˆD‘ $‘$’D�„’!"D’I$!$’BH„!"I‚B I‰$"D HD" " $"! �@H €�‚!BI „� " ‘’I  $’I$’I$’D’I$‘ !I$@"$"$‘! $’I$’I( ¨ ¨ ¨  � „ B„I�B�‚@!  ! !! ‰D 15D715E0AB :100A700015E615EC15F515FE1504160A1611162CBB :100A80000E17161D1626162D16411647164D160E54 :100A9000155316040C040C9B1ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃÎÉÉ(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE) COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUNTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE RETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE$DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNIZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1ò€Å€ÌÍ :ÌÖÖŸ2¥ÍLë> Í„ÒýMÍ9ÍÍ 2ÀÍ2ü1òÍ@:À2Á!o6+6+6!¦6#6!ó6#6þ:¥ÒG*ÍÍo Í.!N6ÿ:ÌþÂ^*üMÍ^Í!K6!6!¤6+6'Í :©þÂ�Ã$:©þÂÃ:”=2KÍ Í :©þʤÍ\:õÒ·\ÍîÍxÃÀ'ÍîͲÃÛ:©ÖÆÿŸ!õ¶ÒÖÍ\Í¢Í Í :©þÂ͈ÍÆ'Å!Í ÍßͲÃÛ:©þÂ$Í:¨þ ÊÃ$͈ͲÃÛ!N6ÿ'Í :©ÖŸ!õ¶ÒCwͯ !6:©þÂ^Í¢Íc!¨6ÿÃ{:¨ÖŸ/õ>!¨–Ÿ/ÁH±Ò{�ͯ :¨<2£þŠÍÏÍ :©ÖÆÿŸõ:¨Ö=ÆÿŸÁH±Ò®�ͯ !§6:§Ò¾:À2ÁÍ !6:©ÖÖŸõ:õ/ÁH¡Òí͈;!¨6ÿÃ:©ÖÆÿŸõ> !¨–Ÿ/õ>–ŸÁH¡ÁH±Ò°ͯ :^!¶w:¨<2¤:¨þÂ0ÍÏÃ}:¨þÂ@ÍEÃ}:¨ÖŸ!¦ÒS!W6:£þ Âz!]6:cþÂm!c6:_þÂz!_6ÍlÍÍ :©ÖÆÿŸõ:¨Ö,ÆÿŸõ:¨Ö ÆÿŸÁH¡ÁH±Ò°¼ͯ :¨Ö ÆÿŸ2§ó:£þÂÎÍEÍÏ:£þÂÛÍ1:¥2ÌÃûv!òq!òå*8éÉ!ûå*6é: É>úͦ>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®É!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ëÍÉ!Ãp+q*ÂëÍÉÿ ÍÉ!Äq*Ä&ë ÍÉ*ÀMÍ É*ÁMÍ É!Æp+q*Åë!ÍÉ!Èp+q*Çë"ÍÉ!Êp+q*Éë$ÍÉ!Ë6€Ë ÍÉ ÍÉ!kp+q*jëÍÉ> Ó>ÓÛÚª Þ ÛæÉ!qp+qÍ/ *pDMÍ9:Í Í:M2r:N!r¾Úø !Ì:r¾Òñ *r&Í NÍ!r4ÂÐ !Ì6:Í”:®þÿÊ :ͳÍ.ÃÉ!ws+p+q+ÑÁp+qÕ:w=2wþÿÊN *så*uÁ w*s#"s*u#"uÃ' É!"�*MÍ^Í7 !x6:û!x¾Ú¾ *�ë*DM͆ ÍÃ2yþÊ­ :yþÊ— ”ͯ *�"Ÿë*6:û2x÷ €*�"�!x4Âd !"�Í/ É!¡Íj}=2|þÿÂÛ É!"¡*KMÍ^'Í_ !z6:|!z¾Ú1 *¡Ê "}*}DM͆ 'ÍÓþÊ ¤ͯ €*¡"¡!z4Âó :eÒÉ !"¡€Í† !z6:|!z¾ÚÀ 'Í? ÖÖŸ2*H#"H!{6:{Ö€Ÿ!¦Ò¢ *{&€ :{¡åÍ4Ê Á –ÖŸ2!{4Ãm €*¡"¡:Ú¹ µͯ !z4ÂI 'ÍÓ2!"¡É!€q:€þ Úô !ó4>!S¾Òô :S!ó¾Òô É:2�*£M!Ý ^#Vëéÿ¡ÍŽÚ ÍÈ *¡Ê :€w*¡#"¡Ã Ã= Ã= Ã= Ã= Ã= Âͯ à *€MÍæÃ !6€Ãq à !6ÀÃq à !6€Ãq à *€&ëÍà !6à à !6 à à !60à à *€&ëÍà !6ÃÏ Ã !6ÃÏ Ã !6ÃÏ Ã *€&ëÍà . 1 4 7 : = F P [ f q  Š •   ® ¹ Ä Ï :�2É!‚q:‚þ Ê" *‚MÍÐ Ãn :cþÂ4 *‚MÍÐ Ãn :ó2ƒ!c:ƒ¾ÚQ !c:ƒ–2ƒÃ: !ƒ:c–w>!ƒ¾Òn !ƒ5 ÍÐ ÃY :‚þ Â{ !ó6É!„q:„ÖÖŸ!l¦wÒ™  Í Ã¢ :„Æ0OÍ É!…q:…æøOÍ| :…æOÍ| É!†6:]ÖÖŸ2l:o†'2o:nÎ'2n:mÎ'2m*mMÍ£ *nMÍ£ *oMÍ£ :]þÂ:Í  Í Ã Í É*¡}æ2‰€ÿÍD"‡ÍÈ *‡Ê å*‰ëÍ *‰&"¡É!Šq:UÒY:Šþ ÂYÉ:¦Ò©:Šþ Ê©:_2‹þʘ:‹þ€!‹6<:ô<2ô!‹¾Ú˜!ô6 Í >!]¾Ò¤; !¦6:QÒÌ:ŠÖÖŸõ:£ÖÖŸÁH¡ÒÌÍÉ:Šþ ÂÙ!ô6*ŠMÍ :Šþ Âí!¦6É!Œq:ŒÖaŸ/õ>z!Œ–Ÿ/ÁH¡Ò:Œæ_2Œ:ŒÉ!�q:�ÖAŸ/õ>Z!�–Ÿ/ÁH¡Ò8:�ö 2�:�É:¤=O>¹Úm:W!Q¶õÍ} ÁH¡ÒmÍþÂd>É×Í9>É!�6:2Ž*¤M!E ^#Vëéý�ÍŽÚ—ÍO *�ë*~2�*�#"�ÃmÍó2�ÃmÍ– 2�Ãm!6ÃàÃm!6ÃàÃm!6 ÃàÃmÍæ2�ÃmÃÃÃÃÃÃÃÃéͯ Ãm!6Ã2Ãm!6Ã2Ãm!6Ã2Ãm!�6Í2�Ãmˆ­¶¿ÊÕàðóöùüÿ'2:Ž2:TÒ’:£2Ž!£6*�MÍE:Ž2£:�ÒÜ:Ò²:§<2§ÖÖŸ2�ý:�Ö ÖŸ2�:�ÒÜÍ} ÒÜÍþÂÖ>Éͯ :iÒë:�æ2�:dÒú*�MÍîÉ:[Ò *�MÍÉ:�É>!ú¾Ò(:ú=2úþÂ%> É>É>!ø¾ÒF!ø5+N!Í ~2‘!÷4ÉÍ<2‘þÂT>É>!b¾Ò}*bMÍ­Òz:b2÷!b6:ù<2øé>!`¾Ò¥*`MÍ­Òž!`6!ú6> É:‘Éé:‘ÉÃ(É!’q:ù!’†wO!Í ~2“þÂÙ*’&Í :‘w>É!‘:“¾Âê!ù4Ãï!ù6>É:N<2N!̾Ú> É*N&Í NÍîÉÍò2¨þ ÂÃÉ!–p+q!õ6!©6+6 !ª6:ªþ ÒS:ªþ ÂM!¨6ÍgÃ8Í:N2M*¨MÍ8ÒpÍÁ!©6É!”6!—6>!—¾Ú•*—&P 6!—4Âz!ö6!ø6#6#6!ª6*¨MÍ8ÚÚ:ªþÚ¾É:¨þ*ÂÎ͇ÃÑÍgÍò2¨ê:¨þ:¿:”þÊëÉ:ªþÂ,Í¡ÖA<2”O>¹ÒÉÍ*¨MÍ8Ò):¨þ[Âͱ!N5!©6Éñ:ªþÊ5É!¡6ÿ#6>!¢¾Ú°! 6: <2 O>‘Ÿ/õ: !¡†O!T å* MÍ¡á–ÖŸÁH¡Ò~ÃK: þ¡!©6Íòþ[–ͱ!N5:¢2¨É:¡Æ2¡!¢4Â=É:¨þ[¼ͱÃ4:ªþÂÈÉ!ª6:¨þ.ÂÍò2¨OÍ8Ú:ªþ ÚìÉ:¨þ*Âü ͇ÃÿÍgÃÕ:¨þ[ ͱ!N5!©6:”þÂ%:ü<2”*•6 *• 6ÉÃ¥É!šq!›6> !›¾Úd*›&I :š¾Â]>É!›4ÂA>É:ª<2ªO*• :¨w:¨þ?†!õ6É!œq!¨6?!œ:ª¾Ò ÍgÃ�É!�q*�&ë*•~É!ö6:À2ÁÍò2¨:¨Ö ÖŸõ:¨Ö]ÖŸÁH±Úº:¨ÖA2žO>¹Ò:¨þ ÂúÍò2¨Ãͯ ÷:¨ÖSÖŸõ:¨ÖQÖŸÁH±ÒI:N<2ŸÍò2¨ÖÖŸõ:¨Ö ÖŸÁH±Ú@Ã"Íò2¨Ã�Íò2¨Ö02ŸO> ¹Òc!Ÿ6Ã�Íò2¨Ö02™O> ¹Ú�*Ÿ&ÍOå*™&Á ë!ŸsÃc*ž&P :Ÿw:žþ·>!Ÿ¾Ò±ͯ :Ÿ2ÁÃÂÍò2¨É:¨þ_ÂÎ!¨6=É!£6>'!£¾ÚéÍE!£4ÂÔÉ!©p+q*¨å0Í É!­r+s+p+q*¬~þ$Ê7*¬>¦*ªõ>¦ÁH¹Ê&>É*ª#"ª*¬#"¬Ã>ÉÍ 2¨:ÒR�ŸÍŽŸÉ:¨ÖÖŸÉ!¯6!œ6Í=2µþ:Ê™!œ6:µþ“HÍ9ÍþÂŽ>É!œ6Í-Ãe!µ6Í»2´þÂÇÍ=2´þʺÍ-é:¯ÒÄ>É>ÉÍÄ"·Í»2¶:´ÖÆÿŸ!¯¦Òð!´5Í»2³ÃÓͬ!µ†þÊ\ÍÍ-:¯Ò>É>É!±p+q:¯Ò,!¯6*°DMÍ9É:®Ò<!®6ÍÉ:¯ÒzÍ 2²þÂW!®6ÃD*œ&L :²w:œ<2œþOÚv*Í:²É>ÉÍ=2¹Ö0O> ¹Ú’:¹Ö0É:¹ÖAO>¹Ò¤:Í:¹ÖAÆ ÉÍ}‡‡‡‡õÍ}ÁH±Éͬ!µ†wÉÍ»O`iÍdåÍ»áÍVÉÍ[2ºO>¹Ú2:ºÖÖŸ!X¦Ú!»6:œ!»¾Ú:»=O!L NÍE!»4Âü ÍE ÍE:ºþÂ/ÉÃÚÍ.*œ&L 6$LÍ9kÍ9Í.ÍþÂXÉÃÚÉ�ͯ É*KMÍ^ž0Íý20Å¤Í :0æ20:1æ21¢Íê'ͳ'Íã:®þÿ²¥ͯ !G6!"¡É!ÿÿ"ŸÍ7 *MÍ^ÍnÍ/ :a/õ:ÁH¡Òì!®6ÿ:®þÿÂú¸ͯ !&6ÀÍý2*ý"�É>!b¾Ò!Äͯ >!`¾Ò0Ôͯ É!¼q:¼ÒE:24ÃJ!46*¡}æþÊa!44ÍEÃJÍÍÈ *KMÍ^'Í�:®þÿ‚ãͯ ¤Íê!36'Ín:®þÿÊé:0Òã:fÚÕÍ9ÍOÍîþYÊÒ#Í9Í.3Íê'ͳÉÍ.:0æ20'Í 'ͳ'Å7Í 6Íê'ÍöÉ!ÿÍj>ÿÍA+ë!ûsÉ!Ê"@ÿÍ“Ú1!€"ÿÃ<*ýë*ÿ"ÿÍÉÊÍ“åÍnÊ "ÿáÍDÍn"ý"ÿÍÉ:¤ÖÆÿŸ!Q¦2½Ò‚Í:X!W¶Ò“ÍÚäÍ:Ú¤*¨MÍEÓ:½Ò±ÍÍ@ÉÍ@:O2MÍc;!¾6#6>!¿¾Ú)*¿&P ~þÊ":¿ÖÖŸõ:¿ÖÖŸÁH±õ:¿ÖÖŸÁH±õ:¿ÖÖŸÁH±õ:¿ÖÖŸÁH±Ú"!¾6!¿4ÂÉ:¾Ò_ÍÍjÚYÍO ÍjÒM*Ÿ"¡ÃS*ÿ"¡ÍÈ Ã3Í@ÃbÍl*¾MÍ1ÉÿÿŸÍ“µÆÿŸÉ!"À"ÄÍ7 *MÍ^€Í† \Í”!"Â:®ÖÿÆÿŸÀÂõÍŽŸÁH¡ÒÄ*Â#"ÂͧÃ�Í/ :®þÿÂå>ÄÍ›µÂá9ͯ Í.É*Â#"À:®æ‡‡‡‡‡_!€å'Í !'6!36'ÅÍ :1/!a¶ÒE*Ä#"Ä>ÍzµÂ?CÍ9ÍIͲÃ�ÉÍ.!Æ6> !ƾڇ*Æ&' ~2Çþ Ê€:Æþ Ây.Í*ÇMÍ!Æ4ÂQÉ>!”¾Ò›:”=2á:ü2É:öÒ¬Í\>!”¾Ò¿:”=2KÃÅ:ü2KÉ!À:Á¾ÊÑÉ!:K¾ÂÞÍ\ÉÍ:¨þ ÊíÍ\É!Ép+q͈ÍßÅ*ÈDM!Í ÍÆÉÍ :©ÖÖŸõ:¨Ö=ÖŸÁH¡Ú-Í\:N2OÉë_ë…oŒgÉ_{¥oz¤gÉ^#Vë)å))Á É_{µoz´gÉ^#Vë) ÂdÉ^#Vë|·g}o ÂnÉ_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ H ©=¨ÉååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃß copyright(c) 1977, digital research $Error On Line $SUBNo 'SUB' File Present$Disk Write Error$Command Buffer Overflow$Command Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"ð!“ùÍÌÍŠÍþ͇É!Ýp+q*Üë ÍŠÉ!àp+q*ßëÍ�2ÞÉ!âp+q*áëÍ�2ÞÉ!äp+q*ãëÍŠÉ!æp+q*åëÍ�É!èp+q*çëÍ�É!êp+q*éëÍ�2ÞÉ!ïs+p+q+ÑÁp+qÕ:ï=2ïþÿʦ*ëå*íÁ w*ë#"ë*í#"íÃÉ!óp+q(Í÷+Í÷¶Í÷*òDMÍ÷*ðùÉ�ÅôÍp*€&ô 6:ÅeÍp\Í:ÞþÿÂ=ͧ!t6€É>!t¾Ò%\Í=þÊ >É!t6:t<2t=O!€ ~2uþ Âb:¸<2¸O>9¹Òb!¸60+~9¹Òb!·60+4:uÖaþÒt:uæ_2u:uÉ»ÍMþʉSͧÉ!v6!"v!|6:|Ò€!x6Í 2}ÖÆÿŸõ:}Ö ÆÿŸÁH¡Òk:}þ Êh:}þ$Â6Í 2}þ$Âæ*}MÍÄÃ3:}Ö02}O> ¹Òþ�ͧÃ3!z6Í­:}þÊ"!}5Í�ÒÃÍ­ÃÍ�Ò3*yMÍÄÃ"Ãh:}þ^ÂaÍ Öa2}O>¹ÒV�ͧÃ^:}É>É*z&ô ~þ ÂÃ!z4íÉ!{q*v#"vÿÍ™ÒÞdͧ*vv :{w:x<2xO>}¹Òý|ͧÉ»Í-!Û6»Í]:Þþÿ·ͧÍz2~þÊe:~2€O!� 6*~&‚ 6$>!~¾Ò_Íz*~&€ w!~5ÃBÍxûÍ:ÞþÿÂyÆͧÉ*v+"vv ~ÉÃÃÃÍÉÉÉ_{•ozœgÉ001 $$$$ SUBåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå¼ÃW Extended Submit Vers 2.0Xsub Already Present$Requires CP/M Version 2.0 or later$Å:þÂy*###۾ƒ# ÊyÃk ÍÁÉ Íþ Ò— 4ÍÁÉ!~=ÖÁÅ�WÕ!x±Êµ ~#èÑÁåbx±Ê× {æÂÊã~#ão}oÒÓ„ùÑ.éxsubbÉ!np+q*mëÍ2_É!pp+q*oëà ÉÃ]xsub*"-!/"*"+!"á"¼éÃÉ1Þ MÍ*!€"ºÍ�!"*¼é (xsub active)$áå|þÿÒ*yþ Ê¥þÂ*ë"ºëÃ*7Í*É*ºëÍ*ÉÅÕÍxÑÁÍ*õÍ�ñÉÍ‹<ÉÕÍ›Ñ Ê Õ:%·Ê*=26Í‹!7^#6 #6 #6$ 8Í*á7¾Úæ~O #w# Âé!6:6=2%·Â Í‹É*-"Ã*$$$ SUBqÕ:(=2(þÿÊN *$å*&Á w*$#"$*&#"&Ã' É!"N*´MÍ^Í7 !)6:¬!)¾Ú¾ *Në*²DM͆ ·ÍÃ2*þÊ­ :*þÊ— ”ͯ *N"Pë*²6:¬2)÷ €*N"N!)€ €$@€BA$! A� ‚"!$"„"åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃÀ COPYRIGHT (C) 1979, DIGITAL RESEARCH DISK OR DIRECTORY FULL$FILE EXISTS, ERASE IT$NEW FILE$** FILE IS READ/ONLY **$"SYSTEM" FILE NOT ACCESSIBLE$BAK$$$BAK$$$-(Y/N)?$NO MEMORY$BREAK "$" AT $1mMÍò"m Í×+ë!8s~1m!f6²Í *MÍË ºÍú *!MÍË Íï 1m! 6!6! 6ÍÆ: 2EÍÕÒbͽ!e:d¾Ê\:æðõ:eæÁH±2Í Ãî HÍÕÒ†ͽ:e2!:d2e:!2dûÃî :!þI¬!Š: –ÖŸõ:ÖÖŸÁH¡2 Ò®ÍX:h2iÍÒ�:!þÊ�:!ÖÖŸõ:!ÖÖŸÁH±õ:!ÖÖŸÁH±Ò,!"! 6#~þÂÍï ÍFÃ)Í·ÍX:!þÂÍï ÍXÃ):i!h¾Ò)Í9 ÃÃe:!þÂÊ:h2jO>¹ÒF ÍL>!"ÍŸõ:i!j–ŸÁH¡Ò¼*"+M ~þ ʼͲ!f6!h6!"! 6ÍF!f6:h2k!i¾Ò :i2k:j2h:k!h¾Ò¶Í9 æ:h2j!!6:j2hÃe:!þ >"ÍúµÂáÃõͲ*"M ~2!OÍË :!þ Â*+"!!6Ãe*!MÍ› /Ò$^ÍL:!Æ@OÍL:!þ Â2Í‘Ãe:þÂb:!þ ÚL:h<2hÃb:!þ Âb:hæO>‘!h†wÍÙ:!þ ÂpÍX:!þ Â…!!6  ÍLÊ!!6ûô:!þʛ͑:! ¦Ò©Íï Ãî OÍüÒ¸û:!þR†!”6ÍGÍÒá>!”¾ÒÛÃ×ÍÃÈ!!6 :”ÖÖŸ2Ò.t– -Âý•Í? Ã>!”¾ÚÍÃ!6!“6sÍ, !”6€:xþÿÂB!6OÃõÍU2!þÊSÍÙÃB!G6:Òƒ!6:G¾Òƒ*G&¶ ~2!:G<2GÍÙÃ_Ãî QÍüÒ›=Íe Í Ãî Íb:!þ-®ÍÆ! 6:!þ#¿͇ÍÆÃüÍ;ÒÜÍJ:!þ:ÂÙ!!6LÍvÃü:!þ:ÂüÍÆÍJÍv: þÂü*#"ÍŽÒ! 6:!þBÂ)! >–w!"&*o"(ÍRÃî :!þCÂ:ÍeÍRÃî :!þDÂKÍeÍXÃî :!þKÂ\Í·ÍXÃî :!þLÂjÍ^Ãî :!þPšÍŽÒ‡! 6ÍÚÍF×Í¢Ò—ÍïÍ:ÇÃî :!þT¨ÍFÃî :!þU¾: ÖÖŸ2Ãî :!þVÂüÍŽÒî"$ÍíDMÍ©/ÍË *oDMÍ©Íï Ãù: ÖÖŸ2Ãî :!þ Â(:ÖÖŸõ:ÖÖŸÁH¡Ò%Í^ÍbÍFÃî : ÖÖŸõÍŽÁH±Òë :!þAÂy! 6*""&*o"(ÍRÍŽÒaÍnÍ¢ÒnÍÄÃa! 6ÍRÃè :!þF”ÍüÍ¢Ò‘Í ÄÃè :!þJ ÍüÍ$:2Í$Í¢Ò Í :=2:<2!¾ÒÝ*&Ÿ ~2!ÍÙü*""I*M*ëÍo/ÒöÃ×!:–"Íú"&! 6ÍR*I""ëÃè :!ÖMÖŸõ:ÖÖŸÁH¡Ò| ! 6ÿ>ÍúµÂF Í›Íeõ: <2 O! ÁHqyþ Êd ÃF : 2! 6å*ëá#s#rÃè :!þNÂÝ ÍüÍ¢ÒÚ *ëÍo/Ò× ÍÄ Ò¦ ÃõÍáͶÍn! 6!"&ÍRÍè! 6o$ÍíÚÔ Ã×ÃŽ Ç Ãè :!þSÂ0 ÍüÍ$Í¢Ò- Í :2"Íúë+s#r!:¾Ò* *&Ÿ ~2!:<2ÍÙà Ãë Ãè :!þWÂ> ÍvÃè :!þX³ ÍZÍŽÒ\ ÍE•Íe ð :7/Òƒ ÍE!76•Íe •Í• :xþÿƒ Í- Í·*&"K(KÍíÚ° *KM NÍ”*K"KÒŒ Ãè :!þZÂÝ ÍŽÒÍ Íó þÂÍ ÃõÍ¢ÒÚ Í:ÃÍ Ãè :!þÊè ÃâÃî ÃâÃ'ûvÍÉ!gq:fÒ É*g&ëÍÉ!lq:lþ Ú$ !h4:lþ Â1 !h6*lMÍü É:hþÂB ÉÍ  Í Í !h55É!mq:mÖ ÖŸõ:hæO>‘ÁH¡2nyÒ} !m6 !o6:n!o¾Úš *mMÍ !o4‚ É!pq:pþ Úª >É:pÖ ÖŸõ:pÖ ÖŸÁH±õ:pÖ ÖŸÁH±É!qq*qMÍ› Úç ^ÍW :qÆ@2q*qMÍW É ÍË  ÍË É!sp+q*rë ÍÉ!up+qÍï *tDMÍú É!wp+q*vë ÍÉ!zp+q*yëÍ2xÉ!|p+q*{ëÍ2xÉ!~p+q*}ëÍ2xÉ!€p+q*ëÍÉ!‚p+q*�ëÍÉ!„p+q*ƒëÍÉ!†p+q*…ëÍ2xÉ!ˆp+q*‡ëÍÉ!‰6€‰Í É ÍÒÛ Í>É>ÉÍÉ! q* &ëÍÉ!p+q*ëÍÉ:7Ò •Íe ÍÉ!p+q*DMÍ Íï Í É=Í? )Í É!p+q.å*DMFá -ÂL É*9"`!"b!h6!j6!|6.!=\ -Âx !e:d¾Ê¥ *eMÍç \ÍR :xþÿÊ¥ @Í *dMÍç \Í, :xþÿÂ× \Í• :xþÿÂË Í- VÍ Íï Ãù :eÒë _Í Íï Ãù :fÒù wÍ ”Í: =Íe !e:d¾Ê*eMÍç =Íe —Í: =Íe =Í• !]6:xþÿÂ>Í- !"É!76!¡6!µ6!66É*dMÍç ¶Í÷ ÉÍÓ*dMÍç !6:8!¾ÚÏ*`ë*;DMÍ÷ \Íu 2xþÊ»>!x¾Ò¨Í- *`ë*;6:82ÃÅ€*`"`:<2ÂwÍÓÉ!"`É9`ÍíÚéÍh*`ë*;~2þÊ*`#"`:É*eMÍç !bÍÓ+ë!s{þÿÂ!ÉÍf!6:!¾Úb*bë*^DMÍ÷ =Í… þÊNÍ- €*b"b:<2Â)ÍfÉ!"bÉ!q9bÍíÚ€Í*bë*^:w*b#"bÉ!q:6þ€Ú¶ÍZ•Í… þʱÍ- !66*6&¶ :w:6<26É!J6*b}æþÊê:J<2JÍmÃÐÍ=Í? :xþÿÂþÍ- šÍ: Í;*dMÍç .=\ -Â=ͨ Í;�Í: *eMÍç =ͨ É.M= -ÂCÉ!q:þÊYÉ*MÍË É!q:ÖaŸ/õ>z!–Ÿ/ÁH¡É!q*MÍaÒŽ:æ_É:É!q:Ò¥*MÍyÉ:É!p+q!'"!6>ÍúµÊ*ë*ͪ{2*ë*ͪ"*ë! ͪë":ÖÆÿŸ!¶Ò!6:Æ0OÍË Ã ÍË ÃºÉ!p+q:/Ò(É*DMÍ©:ÍË  ÍË : ÒI ÍË ÃN*ÍË É*DMÍÉ:þÊaÉÍOÉ>!¾ÒºÍÄ ÒxÃ×!: ¾Ú¦> ÍúµÊ¡* +" >ÍãµÂ¡Ã×! 6: <2 =O! NÍ’É: ÒÉÍó OÍ’É: Ò! 6:hÖÖŸ!¦Òo$ÍíÚúÍÃýÍOÃ*ÍË Í¸ ! 6 ÍË !h6!Š: –ÖŸ2 Ò3* &‹ 6 : <2 =O!‹ NÍ’É*dMÍç €Í÷ É:”þ€ÚsÍGsÍu þÊn>É!”6:”<2”=O!€ NÍ’É!ÿÿ"É>ÍúµÖŸÉ!"ÉÍŽ/Ò´*+">É>É!": þÂß*#"*""*!".+",Ãñ*$"**o".!",!36:3Ò{.*ÍíµÆÿŸ22*,ë**"0M õ~Ö ÆÿŸÁH¡Ò3*0"*Ãý*+"*+">ÍãµÆÿŸ23:2/Òk!36,*Ííë+s#rÃx:3Òx*0"*Ãö: þ“**"&*"+"(á*$#"&**#"(É*"#""É*$#"$É*"+""É*$+"$É*#"É!4qM*"å*$å: þÂ*(yÚñ"$ááÉDMáÑ}‘|˜ÒC#~þ  å*#"áÃö*&DMáÑy“xšÒCþ Â1å*+"áõ:4Ò?ñw+ÃñÃÕ³â"$á""ÉÉÍÊÉÍÊÉÍ·ÍRÉ: þ—*$"("ÍíÒˆ!"&Ô"Íí"&ÃÃ*""&$mÍíÍýÚ¸*o"(ÃÃ*ë*$"(É$"ÍíÚÓÃíÍÚOÍ26þÂæÍ›É*"M :6wÍ¢:6þ ÂÍÂÉÃÄÉ!7q:Ò*7MÍ’É:7Éo$ÍíÚ+Í›Éͪ*$M ~28OÍm:8þ ÂIÍÂÉÃÉ͇Í¢Òu$oÍíqÍýÚoÍ›ÃrÍÃPÉ! 6!"&*$"(ÍRÍŽÒ”ÍMÍ¢Ò¡ÍÔ($ÍíÒµ! 6ÍRÉ͇ÍvÉͶÍÚ2!þÊÕ*!MÍmÃÀÍËÉ$"ÍíµÂéÃí*"M :!wÍ¢:!þ ÂÍÂÉÍe2!ÖÖŸõ:!Ö ÖŸõ: /ÁH¡ÁH±/ÉÍÒQ:!þ Â@!!6 ÍR!!6 :!þÂKÃâÍRÃ$É*&Ÿ :!w:<2þdÚnÃíÉ!:s+q*$";!>6:>/;oõÍíŸÁH¡Òç*;#"(";:92=*=&Ÿ å*(M Ñ–ÖŸ!:õ:=–ÖŸ2>/ÁH¡Òä:=<2=*(#"(æÀ:>Òø*(+"(ÍR:>É!6Í$:2É*ëÍo/ÒÃ×É*!MÍyõ:”<2”=O!s ÁHqÉ*ë*DMÍÉÍ·! 6: þÂe!"*""?Ãk*&"?*?+M ~2AÖ ÖŸõ:hÖÆÿŸÁH¡Ò�Íï *&"?(?ÍíÚÙ:Aþ ½Í8*#"ÍÄ Ò½Ã×*?M ~2AOÍË *?"?Ò•É!"É*"É*"ÉÍáÍÚÍ^: 2B! 6ÍÚÍF:B2 o(ÍíµÖŸõ>&ÍúµÖŸÁH±Ò6Í›Ã9ÍèÉ!C6>!C¾ÚaÍÄ ÒRÃõ>úÍ:C<2CÂ?É! 6!"É͇Í¢Ò�q"ÍíÚŠÍ›Ã�ÍÄÃqÉ!!6 ÍÙ!!6 ÍÙÉ!6*!MÍa2D*!MÍ’2!:D/!¶+wÉ!6Íe2!Í¢É!Eq!E:!–ÖŸõ:ŠÖÖŸÁH¡õ:ÖÖŸÁH¡É!Fq*FMÍÕÒ8Íï *FMÍü   ÍÍó OÍy2FÍï :FþYÊ5Ã>É>É:!Ö02HO> ‘Ÿ/É!"Í;Òu*)))å*)Á å*H&Á "ÍÆÃPÉÍíÒ˜! 6Ííë+s#ré! 6Íí"ÉDM!>õ)ë—)ë�‘o|˜gÒà ñ=±É^#Vë) ÂÍÉ^#Vë|·g}o Â×É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉ H Â=ÂÉ LIBX$$$$$$$LIBÍ$:2É*ëÍo/ÒÃ×É*!MÍyõ:”<2”=O!s ÁHqÉ*ë*DMÍÉÍ·! 6: þÂe!"*""?Ãk*&"?*?+M ~2AÖ ÖŸõ:hÖÆÿŸÁH¡Ò�Íï *&"?(?ÍíÚÙ:Aþ ½Í8*#"ÍÄ Ò½Ã×*?M ~2AOÍË *?"?Ò•É!"É*"É*"ÉÍáÍÚÍ^: 2B! 6ÍÚÍF:B2 o(ÍíµÖŸõ>&ÍúµÖŸÁH±Ò6Í›Ã9ÍèÉ!C6>!C¾ÚaÍÄ ÒRÃõ>úÍ:C<2CÂ?É! 6!"É͇Í¢Ò�q"ÍíÚŠÍ›Ã�ÍÄÃqÉ!!6 ÍÙ!!6 ÍÙÉ!6*!MÍa2D*!MÍ’2!:D/!¶+wÉ!6Íe2!Í¢É!Eq!E:!–ÖŸõ:ŠÖÖŸÁH¡õ:ÖÖŸÁH¡É!Fqå1*"Íà COPYRIGHT(C) 1978, DIGITAL RESEARCH ð ð Ãà á ÃÊ Ã4êÃÞü ÃÃ/ÃLÃ9ASMPRNHEX!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7Í¡ É:\þ Ê» Í24!dÍ® 25Í® 27Í® 26!8ÍÍ Í( ʃ !YååÍÍ Í1 ÑÍ ÑÍ :7þÊž !zååÍÍ Í8 ÑÍ ÑÍ Ã!"›¯2D2X2#Í! 8Íé É!ãͼ Ãz¼À{½ÉÅÕå*›ÍÄ ÂÍ! !"›!�Åå8ÍáÁ·€Â €€w# Âþ Âç ÃþÒ+6# Â�*›å#"›á~áÑÁÉ!úͼ ÃÅG:6þÊQþxÂJÍÞÃQÕåÍSáÑÁÉ*�ë!Ÿwë#"�ë!ÍÄ ÀÍ1 !"�!ŸY~þÈÅÕ€€~# Â…ÑÕåÍáÑÁ·Â¡ÈÃz!ͼ ÃwÅÕåÍ´áÑÁÉ*Ÿ ë!¡ wë#"Ÿ ë!ÍÄ ÀÍ8 !"Ÿ !¡ zÃzÅÕå_ÍáÑÁÉOÍ4: þ È:6þÈyÍÞÉ:„! ·ÊG~Íë#x=Ã2„> Íë> Íë! >x6 #=Â'ÉG! ~þ ÀpÉÍ( ÊO*�}´ÊO>Í4Ã?:7þÊw:#·Ä¸*Ð"!͸*Ÿ }´Êw>ͪÃgÍ( ʆÍ1 YÍú :7þÊ—Í8 zÍú !<ͼ ÃCP/M ASSEMBLER - VER 2.0 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR SOURCE FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES END OF ASSEMBLY ÅG:7þxʘÕõ!#~·Ê„þÚl͸Ä*Ðë*!O {½Â�z¼ÊŠ͸*Ð"!!#^4!$ñwÑÁÉõæͯñõæͯñ‚WÉÆ�'Î@'ê>:ͪ!#^¯Ww*!{Íš|Íš}Íš¯Íš{·Êè!$~#ÍšÂ߯’Íš> ͪ> ͪÉÃ@Ã2ÃÀÍõþ Ê0þ Ê0:„þxÒ0_<2„! ñwÉñÉÍI2 2„> 2 Í>2„ɯ2ˆ2 É!ˆ~þ@Ú_6Í^4#: wÉ~þ$À¯wÉ: Ö0þ æÉÍqÀ: ÖAþæÉ: ÖAþæÉÍ‹ÀÍqÉ: þaØþ{Ðæ_2 ÉÍ 2 Ã-Éþ ÈþÈþ!ɯ2…ÍI: þ Êôþ;Êáþ*Âí: þ ÂíÍ­Í·ÊúÃáö þ ÂúÍ­ÃÇÍ‹Ê>Ã9ÍqÊ>Ã9: þ'Â!¯2 >Ã9þ Â7:Ï·Ä! 6 >2„>2…: 2 ·ÄQÍ­:…þÈþÄž! :…þÂlÍjÊ<Í–ÈÃ<þÂÍjÊ<Í|Â<: þOÊŠþQÂ�>ÖþH >2 ¯2 û: þB­>ôþD> ¸!ˆ52 !"†!ˆN#~#þAÒÒÖ0ÃÔÖ7åÅO! ¾Ô~*†ë!·Ê÷Òñë)ëÃè "†Áá ÂÆÉ: þ Êþ'Â<Í­þ'ÀÃ<õ>VÃ$õ>OÃ$ÅåÍáÁñÉõ:…þÄžñÉàÃ\ÞØÃëÃ`ÃrÃ�Ö![€¯w#w#Âb!"ÖÉ!ˆF¯#†Âvæ2[ÉG*Ö##~æð°wÉ*Ö##~æ<É*Ö}´ÉÍq!ˆ~þÚ¬6![^![^#fk"Ö͘ÈÍŽ!ˆ¾ÂáG#ë*Ö###¾Âá#ÂÕÉ*Ö^#Vëû!ˆ^*Ë"Öë*Í{•zœëÒA"Ë*Öë![N![ N#Fr+sëq#pˆþÚ/>G=#w#wÂ3¯#w#wÉ!JÍÃSYMBOL TABLE OVERFLOW æðG*Ö##~æ°wÉ*Ö##~æÉÍŽ*Ö_###ÉåÍÑs#rÉÍ^#VëÉÃ`ÃÃÄÔæ‚®½ 4 ½ÝïWm ()*+,-/ABCDEHLMDBDIDSDWEIIFINORSPACIADCADDADIANAANDANICMACMCCMPCPIDAADADDCRDCXENDEQUHLTINRINXJMPLDALXIMODMOVMVINOPNOTORAORGORIOUTPOPPSWRALRARRETRLCRRCRSTSBBSBISETSHLSHRSTASTCSUBSUIXORXRAXRICALLENDMLDAXLHLDPCHLPUSHSHLDSPHLSTAXXCHGXTHLENDIFMACROTITLE  PF FPóû!Û (Έ€Æ  2æ/?¸þ'  vÃ:P@<° ö!ÓÁÉ Ç˜Þ PP27�Ö (¨îÍ *éÅ"ùëã  NZZ NCC POPEP M ÿ¯x�»ÊÄ_åÕÅåBH!œÑ‰¾#¶ ¦ÁÑá{ÉÁÑáÚÀKÈCȯ<É:‰ÂþJÈÄþCÈÀþRÉ:ˆþÒ þÊòþ !‹6 s!оÂ#¾È Âø ɯ<É:ˆO=_ÕþÒZ!µF!©V#fjQ̓ÂEÑ!º^#Vo&)~#FÉÑÍÇÀÅÍÛxÁÀ·°Gy¿Éѯ<ÉàÃÃnÃ8ë!’~þڢͅ6~44O!� s#rÉõ!‘~þ Ú¿6Í…^4ñ!mw!wpÉ!’~·ÂÞÍ…!É55N!� N#fiÉÍÏëÍÏÉo&)^#fk鉒™Ÿ«¿ÆÐÙàìø…Íìz·Â'{þØÍ…>ɯ•o>œgÉÍìë"k!m6ů{_zW5áÈ>Î)D…*k•OxœGÅÒd ã!m?ÃFDM!¯xGyOÚ‚°ÈÃë)ëÃsÍìÍnÃÍ5ëÃÍ5ÃÍ·Ê)=âÍ·Êõ¯|g}oñ=îÍìÃÍìëÍ-ÃÂÍÏÍ-ÃÍÏ#ÃÓÍìz¤g{¥oÃÍìz´g{µoÃÍìz¬g{­oÓ:…þÀ:‰þ Èþ;Èþ,Èþ!ɯ2‘2’=2l!"ÉÍÂ]!‘~·ÊH5_!m~ÍôÃ0:’þÄ…: þ À*�"ÉÉ: þ Â:…þ‰:ˆ·Ì…þÔ…!‰^#=Ê…VëÃqþ”*†ÃqͦÂ1þÒ&þ O:lµ·Ì…>ÿ2ly÷ÂÅ:‘·ÊÞ_!w~¸ÚÞ!‘s!m~ÍôÁùÁyþ Â!‘~·Êü=w_!m~þ ÊÿÍ…¯ÃͰ>ÿ2lÃyþÊþÂPÍÍLÃnÍRæ>UÌÍX:l·Ì…¯2lÍ“ÍÃ*å>EÍáɯ2ÏÍCÍÍ!"ë "Ð"Ò"í Í:…þʼþÂÝ:‰þ*Â1Í Â|ÃRþÂ|ͦÊ0ÍFÍIÂþÍL:Ï·Ä× Ã ÍRþ Íã ÃR*ë }´ÄÝ *Ö"ë Í:…þ¿:‰þ:¿üþÂ×X!C^#fké[©ÀÞ@‡�§ÎÍ Í:…þÂŒ:ˆ=ÊŒG!‰ʆÅF#åÍH áÁÃvÍÛÍc*É|·ÄÑ EÍH Íùͺþ,Ê^Ã1Í Í¦ ÍÑë*Ò"Ò"ÐÃ1Í ÍÑåEÍH áDÍH Íùͺþ,ÊÃÃ1Í Í¦ : þ Â1ÍÑ: þ Âú"í > 2 Í:…þÂ|:‰þ Â|ËÃÑÍã ÃÑÍ Ê|*ÒåÍÑ"ÒÍ Í© !6=á"ÒÃ1Í ÍÑ: þ Â1}Ú1Í:…þÂn:‰þ>BÌÊ‹ÃSþÂSͦÂSþÂSxþÂSÃÑÍã Ã1ÍÑ: þ Â1"Ò"ÐÍ Í¦ Ã1Í Ê|ÍRþÄÝ >ÍOÍÑåÍ áÍU!"ë Ã1Íã ÍÃ1Öþ!Ò|_!ë^#fké $8AP`ix�ˆ�ž¥ÍH ÍñÍüÍÍñÍüñÍòþ8Ê1æĽ yæ0°Ã®ÍH ÍñÍò°GÍÍç°Ã®Íò°ÍG ÍÍ ñÍH Í ñÍòæ(Ľ yæ°Ã®ÍH ÍñÍç°Ã®Íò°Ã®ÍòæĽ yæ0°Ã®Íò°Ã®ÍH Í ñÍG Í ÍùÃ1:…þÄÑ :‰þ,Èþ;Èþ ÄÑ ÉÅÍÍc*ÉÁÉÍÑ|·ÄÇ }ÉÍÝþÔÇ æÉÍçæ8OÉÍòæĽ yæ0°ÃG ÍÝÃG ÍÑÃt õÅ:…þÂ):‰þ,Ê.>CÍÁñÉÍ :…þÂ|:‰þ ÂJÍüþ;ÂrÍ Í:…þÂR:‰þ ʼþÊ‹þ!ʼÃRþ!ʼþÊ‹>SÍÃR{•ozœgÉ!Ï~4·Ê§Íͦ !6 ! Í*Ëë*ÔÍ„å*Íë*ÔÍ„\áÍiëÍ© !Ö·Êäw#ÃËH USE FACTOR !Í*í "ÐÃz¼À{½É*Ð"ÒÉ*ë "ÖÍIÉÍ È!"ë :Ï·Â1 ÍRõæÄÝ ñöÍO*ÒÍUÉÍRæÌ× ÍXë*ÒÍóÄ× ÉG:Ï·xÊl ÅÍ: þ *ÒÌ© :ï þÁÒl xÍ– *Ð#"ÐÉåEÍH áDÃH Æ0þ:ØÆÉÍ~ !ï ^4! wÉõæ͆ ñæÆ *Òë!ï å6zÕÍ– Ñ{Í– á4ÉõÅ>RÍÁñÉõå>VÍáñÉõ>DÃæ õ>PÃæ õ>LÃæ õ>NÍñɼÃ=COPYRIGHT (C) 1980, DIGITAL RESEARCH DDT VERS 2.2$1ÅÅ0 ÍÁ!~=�WÕ!x±Êe ~#ÃXÑÁåbx±Ê‡ {æÂzã~#ão}oÒƒ„ÃiÑ.éÍ2_É!fp+q*eëÍ2_ÉÍ2_É!hp+q*gëÍÉ!jp+q*iëÍÉ!lp+q*këÍÉ!np+q*mëÍ2_É!pp+q*oëÃÃOÃ$*sëÍõyÍ�ñÉþ Èþ Èþ,Èþ ÈþÊ$É Í ÍÉÍŒþ ÊÍÊ9!z6 # ÂL!zwÍŒÍÊj# ÊÃX:zþ ÉÖ0þ ØÆùþØÃ͘=ÂëN#FyÉÍ}ÂÉæ8Éæ0Éë*zë{¾Â¯#z¾È+++ Â¥ ÉÕz¾ÂÊ#½ÑÉ#ÂÊøÿÑ · ÉÅÍ9Ê!`Í Â yÁÉÅÍ9Ê!rÍ·Â yÁÉÍñþÊÉÍñþÊþÀ=É!z{w# Â%þ Âw!PÍ Â yÍ“ÉÍõÍ}ñöÀÉ*w#"ÉÍŒþ Ê@þ.Ê@Í<Ê!¦EÍ·Â~ÃP !ÎÍ·Â’ÍPÍŒÃQ!æͷªÍPÍ}ÍQxÃQ!êÍ·ÂÆÍÛÍ“G@ÍÛ±°ÃQ! Í·ÂÜ yÍ“G€Ã¾!Í·Âô ÍÛÍ“±ÃQ!Í·ÂÍÛÍ“öÍQÍŒÃQ!.Í·Â6yþÚ#ÆGÍÍ™°ÍQæÏþÀà!2Í·ÂQÍŒþÒÍ“öÇÃQ!>Í·Âq ÂeÁÃgÅÍÍ™±ÃQ:zþJÂ�ÍEöËþC–ÍEöÍQyÍQxÃQþRÂÍöÀÃQ*Õë* {•zœÒ·*ùÉÑ~#" É<æþÚÈÆþÚÏÆÆAOÃGæðÆ�'Î@'OÍxæÆ�'Î@'OÃNÍ#Âõ Ãzæ8É͇O!B NÍ#NÍ ÍÃÍæþ¾SÍPÃÍ.* |ÍÕ}ÍÕ ÍÍÉ!9":·Êq!ÿÿ"<Âq<2* ×ÍžÂ@!~·Êƒ5Ê@* Í¡Í. ÍÍÍ;Í£W!E¾Êý# ¡ ¾Êé# ¬¾ÊÎ# ·æÀþ@Ê´þ€Ê¥zæÇÖÊ–=Ê�=Ê|zæÀÊJzæÊ?ÖÊ4ÖÊ)ÖÊzæ zæO=!9 ÍóÍþŸ!6ÍóÃq!2ÍóÍÍÕÃqCÍÍ ÃÙJÍÍ ÃÙRÍÍ Ãq!zæÊ zæ=ÊnþÚaÖ‡‡O ÍóÍ$ÃqÍóÍ$,ÍÃÙ!ÍóÍ;,ÍÃô!Ù!ÍóÍ;Ãqzæ8O!î ÍóÃÅ!êÍóÍ;,Ízæ;Ãqy‡‡O!Î ÍóÍ£õÍ£Wñ_Í•Ãqy‡‡O!¦ Íóͣ͒Ãqy‡‡O!b ÍóÃq!vÍózÍ’ÃqÍ.?Í*ù!9"Í8"͉ÍZ*" Ã+*ùÉ'/7?vÉãéëóùûÆÎÓÖÛÞæîöþ"*2:ÃÍEI SPHLDI XCHGPCHLXTHLRET HLT CMC STC CMA DAA RAR RAL RRC RLC NOP CPI ORI XRI ANI SBI IN SUI OUT ACI ADI CALLJMP LDA STA LHLDSHLDMOV ADD ADC SUB SBB ANA XRA ORA CMP INR DCR MVI LXI STAXINX DAD LDAXDCX RST PSW POP PUSHNZZ NCC POPEP M B C D E H L M A B D H SP PSW ??= M!EâêÃÏ Ã¶ ÃÝ ÃÇ Ã Ã- Ã� Ãf à Éã"JãÃ*"¨!¢"!"¯2O!" "]"‡"¹!1·å!å++"·åå"M>Ã28!†"9:]þ Êþ!åí 1¯Í“ Ú !€"Í >-ÍÇ Í¶ ÍÝ þ ÊþÖAÚ« þÒ« _!7^#Vëé~« « Æ« \pÚ « « —Z « « « « œ z à ¿ « « ç « « åÕů2[\Í¢ÁÑáÉÍ“ Ò« Í� =« Íf " Í ÃþÍ“ Ò« Í� Ê»Íf " =Ê»Íf "=« ¯Ã½> 2ÍÃþÍ� ÊåÍf ÚÕ"]æ=ÊåÍf =« Ãð*]}æðo¿"_Í Í Âþ*]"aÍ. ÍÅ ~Í #ÍE Ú}æÂ"]*aëÍÅ Í6 *]}“Â#|’Â#*]ÍE ÚþÃóÍ� þ« Íf åÍf åÍf ÑÁÉ{‘z˜ÉÍA|·Â« ÍWÚþ}ÃdÍ Í� Íf åÍf åÍf DMÑáóÊ¡Ú�"¹æ=Ê¡Ͳ=Ê¡YPͲ1¯ÑÁñáù*¹å*·ûÉõÅ!O~4·ÊÍ#~#F#»ÂÍxºÂÍ~#s#r#w>ÿÁñÉÍ� þ« Íf åÍf ÑåÍ Í. ÍŠᯕo>œgÍ. Ãþ¯2|2\ÍÝ  !]w# Ê« ÍÝ þ.Ê& þ  Ê0 6 #Ã& þ.ÂK !eÍÝ þ ÊK w# Ê« Ã: ÊU 6 #ÃK 6ÃþÍAÍWÚþ w#Ã] !e~æþHÀ#~æþEÀ#~æþXÉë*‡}“|šëÉÍ� Ð"‡Éå!Í� áÉÍ� !ʬ =« Íf åÍkþÿÊ« Íj Êá áå\Í¢á·ÂF €€w# ÂÓ Í‹ ÃÀ Ít þÊ« Þ:Âá WáåÍ& _Í& õÍ& ÁO {·Â `i"¹ÃF Í& Í& w# Í& õÍ‹ ñ« Ãá ÅåÕÍt ÍY æðõÍt ÍY Á°GÑ‚WxáÁÉ Í¢!o ~·ÊZ ÍÇ #ÃN Í *‡Í. ÍÅ *¹Í. Ãþ NEXT PCÍ� =« Íf Í åÍ. ÍÅ á~åÍ ÍŠͶ ÍÝ áþ Ê» þ.ÊþåÍ“ =« Íf |·Â« }áw#Ä ¯ÃÅ >ÿ2LÍ� !ÊÞ =« Íf }´Ê« +"MÍD Ã…ÍÝ þ Âõ ÍD Ãþ !³ ¾Ê # Âû ë ÍÝ þ « ÅÍ Í ÍŠͶ Í� ·Êþ=« Íf ÁxþÒY |·Â« }þÒ« Íã gA>þÍS ¤Ag}ÍS ´ÃþÈÃS Âi |·Â« }!´wÃþåÍ Ñs#rÃþåÕÅ:[æÊ” _!€~þʦ ![4·Ã§ \Í¢·Â¦ 2[à 7ÁÑáÉÍ >?ÍÇ Ãþ eÍ¢!g"cÉ> åÕÅ_Í¢ÁÑáÉþÈþaØæ_Éå!f~·> Êô 5*c~#"cÍÔ áÉþ Ò Æ0ÃÇ Æ7ÃÇ õæÍö ñæÃö > ÍÇ > ÃÇ ÅÕå Í¢æáÑÁÉë|Í }à þÒ@ þ ÒÇ >.ÃÇ ë*_}“o|šëÉþ Èþ,Èþ ÉÖ0þ ØÆùþØÃ« ë^#V#ëÉë!ÍY ))))µoÍÝ ÍP Âq ëÉs#r#å!V4áÉÍÝ !V6#þ ÊÕ þ,® >€2Vñ Ím Í… þ ÊÕ ÍÝ Ím Í… þ ÊÕ ÍÝ Ím Í… þ « Vþ�Ê« ·Éå!à XN!³~ëáÉÍã Êþ Ãö æÉÖ!¾ _^ÿ!»ÉÍ ^#VëÉ~ÍÇ xþÒ+ Íó Íö Éõ>=ÍÇ ñÂ= !´~Í ÉÍ Í. É!³ Í ÅåÍ áÁ#xþ Òf þÚL ÍÅ ÃL ÍÅ Í…õÕÅÍ“ Ò† *¹" !6ÿÍï +"_*¹~Í #ÍE Ú¯ õÍÅ ñ³Ê« ^#VëÍ. ï ~Í ÁÑñÉCZMEIABDHSPöôüúþ!"MÉó"·á+"¹õ!9ñ1·åõÅÕ*¹~þÿõå!O~6·Ê=G#^#V#~xÃó áñÊ(#"¹ë!¨N#FÍWÚ(ÍÈ *Jë>‚·7Ã…û*M|µÊN+"MÍ ÂN:L·ÂHÍ…Ã…ÍD Ã…ÍÈ >*ÍÇ *¹Í“ Òb" Í. *·"]Ãþ !/~ #¾#Ê�ÂtZÉ*¹F#åÍn!Is!œ^#Vëé¸à¸à¾ò&&##&ÍÎÂ)ÍÙÃ):¨»À:©ºÉÁá^#V#åÅÃÄ*µ^#VÉÍÎÊíÁÅ>Ã+ÑÕÃ)xþÿÂü¯Ã-æ8_Ã)*·ëÍÄÂ)þÃ)ÑÕÃ)ÍÙÁÅ>Ã+ÑÕÑÕ><7áÉÿÃÇÂÿÍÇÄÿÉÇÇÿéÇÇÆÏç"ÇÀ÷ÓÍ9Í.ÍþÂYÉÃÛÉ�ͯ É* MÍ^žáÍý2¶áÅUÍ :áæ2á:âæ2â¢ÍêØͳØÍã:_þÿ³¥ͯ !ø6! �@!’!BH @@A‚BH B! "ˆBHI$$’BI$BI „$„’ ’HI ‚D$��„‘H��„„D$$ H „ B’!$D$ˆ"$’B$�’DA!AB�’I$„�’H B$�’I $’H’I$‘�H$‰! $’I $’I$„$�’’A !Aªªªªªª @’$’I$‰"!$’H$I$’I ’"! $�‘A$ˆ€’ � H„H��„AA"I @BB‘ „$�„’A"$�$$I$’’$H!!! ‰’BH" !I B  �ˆˆ$$���!BD!€ $!�’BI D@‰"€!$�I$$H‰�"!�ˆ‚I‰$I$„’I$�ˆUUU$’�$A$�� xÃó áñÊ(#"¹ë!¨N#FÍWÚ(ÍÈ *Jë>‚·7Ã…û*M|µÊN+"MÍ ÂN:L·ÂHÍ…Ã…ÍD Ã…ÍÈ >*ÍÇ *¹Í“ Òb" Í. *·"]Ãþ !/~ #¾#Ê�ÂtZÉ*¹F#åÍn!Is!œ^#Vëé¸à¸à¾ò&&##&ÍÎÂ)ÍÙÃ):¨»À:©ºÉÁá^#V#åÅÃÄ*µ^#VÉÍÎÊíÁÅ>Ã+ÑÕÃ)xþÿÂü¯Ã-æ8_åÃ@ COPYRIGHT (C) 1978, DIGITAL RESEARCH ERROR: $, LOAD ADDRESS $DISK READ$INVERTED LOAD ADDRESS$DISK WRITE$LOAD ADDRESS $ERROR ADDRESS $BYTES READ:$INVALID HEX DIGIT$CHECK SUM ERROR $FIRST ADDRESS $LAST ADDRESS $BYTES READ $RECORDS WRITTEN $HEXCANNOT OPEN SOURCE$COMNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$*çùÉ!9"ç!e ù!" !" \Å!éÍ"÷ÅòÍ"éÍŠ: þÿƒûÍdÅeÍ"\ÍÏ\Íÿ\ÍŠ: þÿ²ÍdÃÉÍä\Í�: þÿÂÉ)ÍdÍàÍ;É! q* &ëÍfÉ ÍÐ ÍÐÉ! q> ! ¾Ò: ÆAÖ OÍÐÃ: Æ0OÍÐÉ! q: æøOÍë: æOÍëÉ! p+q* |OÍ* }OÍÉ! p+q* ë ÍfÉ! p+qÍà* DMÍBÉ! p+q)ÍR* DMÍB1ÍB* DMÍ+Í;É! p+q* ëÍi2 É! p+q* ëÍi2 É! p+q* ëÍi2 ÉÍi2 É!" p+q*! ëÍfÉ!$ p+q*# ëÍiÉ!& p+q*% ëÍiÉ!( p+q*' ëÍi2 É!* p+q*) ëÍfÉ!/ s+p+q+ÑÁp+qÕ:/ =2/ þÿÊX*+ å*- Á w*+ #"+ *- #"- Ã1É* #" ÿÍ–Úr*   ~É!" ÿ! ͸ÚÚ×€* " ÒxÃÚéÍß20 þº€Å*   DM€Í"Ã×:0 þÊÈAÍd*   6!ÿ" Ç!" : É!"6 "8 ": }2< !"4 "= ! 6ÍYþ:Ê Ã!2 6Í=21 þ á:1 : Írë+s#rÍ=õÍ=_ÁHÍL"4 " >6 ͪµÂS* "6 Í=23 :1 =21 þÿÊvÍ=OÍý* #" ÃY8  Í�Ò‰* +"8 Í.!2 †þÊž¨ÍRÍ€Ã* "4 4 = Í�ÒÂÍý* #" ç¹ÍR*6 DMÍ+ÈÍR*8 DMÍ+×ÍR*: DMÍ+æÍR*< MÍÍàÉ!? q=  Í�ÒKÍdÿ*= ë! ͸Òp!@ 6>!@ ¾ÚX*= }O!< å*@ &€ Ñw*= #"= !@ 4Â)!< 4\ÍïþÊmaÍdÃ* }O!< :? wÉlÍR*4 DMÍ+{ÍR* DMÍ+ŠÍRÍæ 4 Í�Òß*4 }æþ¿Íæ= 4 Í�< NÍ*4 #"4  ÍÐÃ¥ÍàÍ;ÉÍà*4 DMÍ+:ÍÐ ÍÐÉÍY2A Ö0O> ¹Ú:A Ö0É:A ÖAO>¹Ò&–ÍRÍ€:A ÖAÆ ÉÍü‡‡‡‡õÍüÁH±ÉÍ.2B !2 †w:B É!D s+q*C &Í�:D ÍÉÃÃÃÍÉÉÉë_ë…oŒgÉ_{µoz´gÉ^#Vë) Â�É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃ3 Copyright (c) 1979, Digital Research????????????CON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTP:UP1:UP2:TTY:CRT:LPT:UL1:R/OR/WSYSDIRR/O R/W SYS DIR ** Aborted **Active User :Active Files: Drive Characteristics65536: 128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords/ ExtentRecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk Status : DSK: d:DSK:User Status : USR:Iobyte Assign: =Bad DelimiterInvalid AssignmentBad Delimiter: Bytes Remaining On R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O Invalid Disk AssignmentWrong CP/M Version (Requires 2.0)!9"2!TùÍíþ ÒOÍÒË!]6:\ÖÖŸõ:]Ö ÖŸÁH¡ÒrÍ3 Ë:\þÊ€ÍË͇ /Ò‹ͺ *2ùÉ!"q*"&ëÍLÉ Í� Í�É Í�É!$p+q*#~þÊÑ*#NÍ�*##"#÷É!&p+qÍ *%DMͱÉ ÍOÉ ÍOÉ!(q*(&ëÍLÉ!*p+q*)ëÍO2'É!,p+q*+ëÍO2'ÉÍO2'ÉÍOÉ!.p+q*-ëÍLÉÍRÉÍRÉÍLÉÍRÉ\ÍLÉÍR"Éÿ ÍOÉ!/q*/&ë ÍLÉ!1p+q*0ë#ÍLÉÍ~*##N!ͽ€Íž"TÉ!Vq*VMÍöͳÉ!Xp+q!WÍÃë* >WåÍr#MáͲÉ!_p+q!`6>!`¾Ú6*`&ë*^å*`&Y ѾÊ/>É!`4 >É*]&€ ~þ ÂO!]4Ã9!a6:aþÒæ*]&€ ~2bO>¹Òz*bMÍëà Íë>!b–Ÿ/õ~Ö,ÖŸÁH±õ~Ö:ÖŸÁH±õ~Ö*ÖŸÁH±õ~Ö.ÖŸÁH±õ~Ö>ÖŸÁH±õ~Ö<ÖŸÁH±õ~Ö=ÖŸÁH±Òß*]&€ 6Ãã!]4ÃT!]4É!cq*a&Y :cw!a4É!gr+s+p+q!h6>fÍêµÊr*dë*fÍ!is*dëÍ�"dPY! Íë"f>ÍÓµÆÿŸ!h¦#õ~“ÖŸÁH¡ÒaÍ«Ão!h6:iÆ0OÍ�ÃÉ!mr+s+p+q*lTåÍZëás#r*lëÍâÚ¶*lëÍâë+s#r*jN#F+q#pÃŒÉ!nq!"o"q}2uo&"s* ësÍÝÚ:nÒñ*sDMÍÛ2u:uÚqoÍs*s"sÒÎ*oɹÍÒÉÇÍÒÍŠO ÍÕÍÒ!v6>!v¾ÚQ*v&w 6`i+4Â6Ï)ÍA*Í:'þÿÊ“:'懇‡‡‡O!Ï) ~2vþåÊ�:væO!w 6Í,Ã]!v6>!v¾ÚÂ*v&w ~Ò»*vM Í!v4˜ÉãÍÒÍ8ÆAOÍ�:Í�èͱ*##N!ͽ"—* N#F*—ëÍ "™>ÍÓµÖŸ!—õÍøµÆÿŸÁH¡Ò% ÿÍÒÃ- *™DMÍÀ ͱÍ·DMÍÀ  ͱ* N#FÍÀ 9ͱ * ^#Vë))DMÍÀ Tͱ* ~�ÍêµÊ *�}Ò *ŸMÍÌÍÃ!�ÍÃë+s#r#4Ãè É!¢s+p+q!¤6!¦66:¢!¦¾Ú„ !¥6!£6>!£¾Úr *¤&ë* å*£&Y ѾÊi !¥6!¤4+4ÂA :¥Ò} :¦É!¦4Â- >É!ª6Í99Í 2§þ¨ :ªÖÆÿŸÉ!ª4:§þ :2©!¨6+6>!§¾Ú :§‡‡O!9 DMÍi ­ͱ:©æ‡‡!¨†O!Y DMÍi :¨Æ2¨:©æþ2©Í !§4 ÃF :§þ® ²ÍÒÈÍÒúÍÒÍÒ)ÍÒ!§6>!§¾Ú« Í :§‡‡O!9 DMÍi 8ͱ!¨6> !¨¾Ú¤ Ã… :¨Æ2¨Òk ä  Í�:§‡‡‡‡!¨†O!Y DMÍi Ãw !§4ÂC ÃF :§þ¿ Í>ÉÃF :§þÂÍ ÍÝ ÃF :§=2§‡‡‡‡2¨Í9:Yþ=Êï ;ÍÒ>ÉÍ9*¨&Y DMÍ =2¨þÿ IÍÒ>É!©6ü:§=2§þÿÊ8 :©2©:¨‡‡2¨Ã :©!¦!¨¶2Í9:Yþ ÂT >É:Yþ,Êe \ÍÒ>ÉÃŒ É!¬p+q*«~þ:ʉ *«NÍ�*«#"«Ão :Í�É!®p+q!'"±!°6>±ÍêµÊü *­ë*±Í{2¯*­ëÍ�"­PY! Íë"±>ÍÓµÖŸ!°¶+õ~“ÆÿŸÁH±Òù !°6:¯Æ0OÍ�à kÍ�Í ÉÍQ" Í8ÆAOÍ�jͱÉÍ·DMÍ� ÉmÍÒÍ Í ÉÍZ"³Íl"µ!·6>³ÍêµÊ¥ *³}Ò† *·MÍÌÍ �ͱ*µ}Òx OÍ�Ã} WÍ�„ͱÍ !³ÍÃë+s#r!µÍÃë+s#r#4ÃD Í É:\þʹ :\=OÍÌÉͳÍ© !6!Ì)6ÿÍlÒä :Ì)þÂÚ É:Ì)=2Ì)Ãð :]þ Âð Í& É!"¸}2\!h6?!j6?\Í:'þÿÊC:'懇‡‡‡Æ€o&"º)!Ë)6!"¾):Ë)/¸¾)õÍÝŸÁH¡Ò˜Í]!Æ)6> !Æ)¾ÚŽ*Æ)&ë*º)å*Æ)&ë*¼)Á ¾Êy!Æ)6 Ä:Æ)Ö ÖŸ2Ë):Æ)<2Æ)ÂM*¾)#"¾)Ã/:Ë)Ò©*¾)+"¾)Ã`*¸"¾)#"¸Í]!¸ÍøŸ*¼)ë!õÍøŸ/ÁH±Òí¥ÍÒ!"¾)!"¸Í]*¾)º) å*¾)ëás#r!Æ)6> !Æ)¾Ú.*Æ)&ë*º)å*Æ)&ë*¼)Á w:Æ)<2Æ)Â*¾)º) >w#6*¾)º) w#6*¾)º!) w#6*¾)º%) w#6*¾)º) N#F*¾)ź) Áq#p*¾)º%) å*º) ~ÑÍe å*º) å* ~á¦o&€ÍžÁ å*¾)º%) Áq#p!Ç)6* >ÿÍõÒÒ!Ç)6!Æ)6>!Æ)¾Ú=Ãñ:Ç)!Æ)†wÒ×Ã=*Æ)&ë*º)~2È):Ç)þÂ*Æ)& ë*º):È)¶2È):È)þÊ:*¾)º!) å*¾)º) ëÁÍsÃãÍ,à >¸ÍêµÂXºÍÒÃ\:Ì)þÿ“>!¸ÍõÒd!"À)>!À)ÍõÒd!"À)!"Ä)*¸++ë!Ä)ÍøÚa*Ä)¼) ^#Vë"¾)Í]*¼)"º)*Ä)º) ^#Vë"¾)Í]!Æ)6> !Æ)¾ÚT*Æ)&ë*º)~2É)å*Æ)&ë*¼)~2Ê)OѹÒ;*Ä)º) ^#Vë"Â)*Ä)¼) å*Ä)º) ãN#Fáq#p*Ä)¼) å*Â)ëás#r*À)#"À)!Æ)6 ÃJ:Ê)!É)¾ÒJ!Æ)6 :Æ)<2Æ)ÂÆ*Ä)"Ä)ÒˆÃq:ÒtÉÍÒÃwÍ Ðͱ!"À)¸À)ÍÝÒ�*À)º) ^#Vë"¾)Í]Í .å*¼)DM\á -°!\6:Òé\Í£:þÊÛæͱÃæ*}DM'ÍÍ«*¾)º%) N#F'ÍÍ«*¾)º!) N#F'ÍkÍ�Í«*¾)º) N#FèÍÍ«RÍ�/Í� *¼) ~ÒIOÍ�ÃNWÍ�Í«Í8ÆAOÍ�:Í� *¼) ~2È)Òt(Í�ÍÀ:È)Òƒ)Í�*À)#"À)ÃÍ& Ã\!"À)¸À)ÍÝÒ\ÍäÒ°ÍÉ*À)"¾)Í]Í ÍÀ*Ì)M! ^#Vëé *¼) >€¶*¼) wà *¼) >¦*¼) wà *¼) >€¶*¼) wà *¼) >¦*¼) wÃÏáó.å*¼)DM\á -Â+!\6Íuìͱ:Ì)‡‡O!™ DMͱ*À)#"À)ÙÉ*¾)))))Ï)"¼)É:mþ Âw>É.Yn -Â:YÖSÖŸõ:ZÖ ÖŸÁH¡Ò§!6>þÉ©Í 2Ì)þ½ŽÍÒ>É!Í)6> !Í)¾Ú*Í)&ë*¼)>¦2Î)þ Ê÷:Í)þ Âð.Í�*Î)MÍ�:Í)<2Í)ÂÅÉÍ9Í9:Yþ=Â/Í9õÍþÒ&Í© ÍcÃ,ùÍÒÃHÍ© 9Í þÂEÍÃÃHͺ ÉÃÃÃÍÉÉÉi`N#F�oˆgÉë_ë…oŒgÉë_ë¥o¤gÉDM!>õ)ë—)ë�‘o|˜gÒ˜ ñ=†ÉDM!>)ë)ëÒ­ =Â¥É~ ³É^#Vë) ½É^#Vë|·g}o ÂÇÉ_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃxCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))ÉÍþaØþ{Ðæ_É_ÍÉ> ̓> ̓ÉåÍŠá~·Èå̓á#ÚO*é*é*é*!é*$é*'éÃÃ! "ª>ÿ2§!§4:(¾ÊwNͯ>ÿ2¨:)!¨4¾Êf!¨^!*FNÅÍ·Áy�Íjë*ªDMÍ¿¯2¬:¬þ ÚK!ÍšÍuþ ÂcÍŠÃ<2¬:©·Ê\ÍÏÃ_ÍÇ·ÊÃ/:)Íjë*ª"ªÃìÉ1Í!uÍš:]þ ÊÖ\ÍÜ<œ!xÍ•Ãc¯2|Å\Í×Á·ÂÍ ¢! åDMÍ¿\Í×á·Â€õ!�Í•Ãc!„Í•Íuþ ÊÖAþÚñÍnÃÖÆA2´ÖAͦÍŠ!ªÍšÍuþ ÂcÍŠ¯2©Íá!?Íš!ÈÍ•Íuþ ÊcÖAþÚ7ÍnÃÆA2ÖAͦ!õÍ•Íuþ ÂcÍŠ!©6Íá!?ÍšÃ>ͦÍŠÃ!QÍ•ÉSYSGEN VER 2.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION ON Í, THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE A, B, C, OR D)NO SOURCE FILE ON DISKSOURCE FILE INCOMPLETEå!9"1WÍÁþÿÂóÍœÃQ>€2!åÍ¢áÚQG}æÂDÍrÍYÚQ|Í�}Í�#> ÍexÍ�Ã#Ír*ùÉåÕÅ ÍÁÑáÉåÕÅ_ÍÁÑáÉ> Íe> ÍeÉæþ Ò‰Æ0ËÆ7ÍeÉõÍ}ñÍ}É ÍÉ:þ€Â³Íηʳ7É_<2!€~·É¯2|\ÍÉåÕÅ\ÍÁÑáÉFILE DUMP VERSION 1.4$ NO INPUT FILE PRESENT ON DISK$ê!õÅÕåYÍáÑÁñÉþ Èþ Èþ,Èþ ÈþÊ<É Í ÍÉÍ þ Ê*Í$ÊA!‹6 # ÂT!‹wÍ Í$Êr# Ê*Ã`:‹þ ÉÖ0þ ØÆùþØÃ*ÍAÊ*!‹ ~þ ʰÍxkb))))_ëyþ‘BK{ÉÍ…Â*É!6Ã6Ã!"Éæ8Éæ0Éë*‹ë{¾Âç#z¾È+++ ÂÝ ÉÕ‹¾Â#Âõååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX ; ; COPYRIGHT (C) 1975, 1976, 1977, 1978 ; DIGITAL RESEARCH ; BOX 579, PACIFIC GROVE ; CALIFORNIA, 93950 ; ORG 100H BDOS EQU 0005H ;DOS ENTRY POINT CONS EQU 1 ;READ CONSOLE TYPEF EQU 2 ;TYPE FUNCTION PRINTF EQU 9 ;BUFFER PRINT ENTRY BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY) OPENF EQU 15 ;FILE OPEN READF EQU 20 ;READ FUNCTION ; FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS ; ; NON GRAPHIC CHARACTERS CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED ; ; FILE CONTROL BLOCK DEFINITIONS FCBDN EQU FCB+0 ;DISK NAME FCBFN EQU FCB+1 ;FILE NAME FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS) FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER FCBRC EQU FCB+15 ;FILE'S RECORD COUNT (0 TO 128) FCBCR EQU FCB+32 ;CURRENT (NEXT) RECORD NUMBER (0 TO 127) FCBLN EQU FCB+33 ;FCB LENGTH ; ; SET UP STACK LXI H,0 DAD SP ; ENTRY STACK POINTER IN HL FROM THE CCP SHLD OLDSP ; SET SP TO LOCAL STACK AREA (RESTORED AT FINIS) LXI SP,STKTOP ; READ AND PRINT SUCCESSIVE BUFFERS CALL SETUP ;SET UP INPUT FILE CPI 255 ;255 IF FILE NOT PRESENT JNZ OPENOK ;SKIP IF OPEN IS OK ; ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN LXI D,OPNMSG CALL ERR JMP FINIS ;TO RETURN ; OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END MVI A,80H STA IBP ;SET BUFFER POINTER TO 80H ; HL CONTAINS NEXT ADDRESS TO PRINT LXI H,0 ;START WITH 0000 ; GLOOP: PUSH H ;SAVE LINE POSITION CALL GNB POP H ;RECALL LINE POSITION JC FINIS ;CARRY SET BY GNB IF END FILE MOV B,A ; PRINT HEX VALUES ; CHECK FOR LINE FOLD MOV A,L ANI 0FH ;CHECK LOW 4 BITS JNZ NONUM ; PRINT LINE NUMBER CALL CRLF ; ; CHECK FOR BREAK KEY CALL BREAK ; ACCUM LSB = 1 IF CHARACTER READY RRC ;INTO CARRY JC FINIS ;DON'T PRINT ANY MORE ; MOV A,H CALL PHEX MOV A,L CALL PHEX NONUM: INX H ;TO NEXT LINE NUMBER MVI A,' ' CALL PCHAR MOV A,B CALL PHEX JMP GLOOP ; FINIS: ; END OF DUMP, RETURN TO CCP ; (NOTE THAT A JMP TO 0000H REBOOTS) CALL CRLF LHLD OLDSP SPHL ; STACK POINTER CONTAINS CCP'S STACK LOCATION RET ;TO THE CCP ; ; ; SUBROUTINES ; BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO) PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED MVI C,BRKF CALL BDOS POP B! POP D! POP H; ENVIRONMENT RESTORED RET ; PCHAR: ;PRINT A CHARACTER PUSH H! PUSH D! PUSH B; SAVED MVI C,TYPEF MOV E,A CALL BDOS POP B! POP D! POP H; RESTORED RET ; CRLF: MVI A,CR CALL PCHAR MVI A,LF CALL PCHAR RET ; ; PNIB: ;PRINT NIBBLE IN REG A ANI 0FH ;LOW 4 BITS CPI 10 JNC P10 ; LESS THAN OR EQUAL TO 9 ADI '0' JMP PRN ; ; GREATER OR EQUAL TO 10 P10: ADI 'A' - 10 PRN: CALL PCHAR RET ; PHEX: ;PRINT HEX CHAR IN REG A PUSH PSW RRC RRC RRC RRC CALL PNIB ;PRINT NIBBLE POP PSW CALL PNIB RET ; ERR: ;PRINT ERROR MESSAGE ; D,E ADDRESSES MESSAGE ENDING WITH "$" MVI C,PRINTF ;PRINT BUFFER FUNCTION CALL BDOS RET ; ; GNB: ;GET NEXT BYTE LDA IBP CPI 80H JNZ G0  ; READ ANOTHER BUFFER ; ; CALL DISKR ORA A ;ZERO VALUE IF READ OK JZ G0 ;FOR ANOTHER BYTE ; END OF DATA, RETURN WITH CARRY SET FOR EOF STC RET ; G0: ;READ THE BYTE AT BUFF+REG A MOV E,A ;LS BYTE OF BUFFER INDEX MVI D,0 ;DOUBLE PRECISION INDEX TO DE INR A ;INDEX=INDEX+1 STA IBP ;BACK TO MEMORY ; POINTER IS INCREMENTED ; SAVE THE CURRENT FILE ADDRESS LXI H,BUFF DAD D ; ABSOLUTE CHARACTER ADDRESS IS IN HL MOV A,M ; BYTE IS IN THE ACCUMULATOR ORA A ;RESET CARRY BIT RET ; SETUP: ;SET UP FILE ; OPEN THE FILE FOR INPUT XRA A ;ZERO TO ACCUM STA FCBCR ;CLEAR CURRENT RECORD ; LXI D,FCB MVI C,OPENF CALL BDOS ; 255 IN ACCUM IF OPEN ERROR RET ; DISKR: ;READ DISK FILE RECORD PUSH H! PUSH D! PUSH B LXI D,FCB MVI C,READF CALL BDOS POP B! POP D! POP H RET ; ; FIXED MESSAGE AREA SIGNON: DB 'FILE DUMP VERSION 1.4$' OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$' ; VARIABLE AREA IBP: DS 2 ;INPUT BUFFER POINTER OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP ; ; STACK AREA DS 64 ;RESERVE 32 LEVEL STACK STKTOP: ; END ARRY SET FOR EOF STC RET ; G0: ;READ THE BYTE AT BUFF+REG A MOV E,A ;LS BYTE OF BUFFER INDEX MVI D,0 ;DOUBLE PRECISION INDEX TO DE INR A ;INDEX=INDEX+1 STA IBP ;BACK TO MEMORY ; POINTER IS INCREMENTED ; SAVE THE CURRENT FILE ADDRESS LXI H,BUFF DAD D ; ABSOLUTE CHARACTER ADDRESS IS IN HL MOV A,M ; BYTE IS IN THE ACCUMULATOR ORA A ;RESET CARRY BIT RET ; SETUP: ;SET UP FILE ; OPEN THE FILE FOR INPUT XRA A ;ZERO TO ACCUM STA FCBCR ;CLEAR CURRENT RECORD ; LXI D,FCB MVI C,OPENF CALL BDOS ; 255 IN ACCUM IF OPEN ERROR RET ; DISKR: ;READ DISK FILE RECORD PUSH H! PUSH D! PUSH B LXI D,FCB MVI C,READF CALL BDOS POP B! POP D! POP H RET ; ; FIXED MESSAGE AREA SIGNON: DB 'FILE DUMP VERSION 1.4$' OPNMSG: DB CR,LF,'NO INPUT FILE PRESENT ON DISK$' ; VARIABLE AREA IBP: DS 2 ;INPUT BUFFER POINTER OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP ;åÃ\ÛÃXÛ COPYRIGHT (C) 1979, DIGITAL RESEARCH Ø_ÃÅÍŒØÁÉ> Í’Ø> Ã’Ø> Ã’ØÅ͘Øá~·È#åÍŒØáìØ Ã_ÃÍ2îß<ÉÃÃØ¯2íßÍßÃËØÃÃØÃÃØÃÃØÍßÃߨÃÍ·ÉÃôØÍßÃùØÃôØÃÃØÃÿ ÃÍÙ‡‡‡‡!ïß¶2É:ïß2ÉþaØþ{Ðæ_É:«ß·Ê–Ù:ïß·>ĽØ¬ßÍËØÊ–Ù:»ß=2Ì߬ßÍùØÂ–ÙØ!€€ÍBÜ!ºß6#5¬ßÍÚØÊ–Ù:ï߷ĽØ!ØÍ¬ØÍÂÙʧÙÍÝÙÂÛÍÝÙÍÙ ØÍÍ)Ù!ØF#x·ÊºÙ~Í0ÙwëÙw!Ø"ˆØÉ Í·ÈÍ·ÉÀÃ!«ß~·È6¯Í½Ø¬ßÍïØ:ïßýØ(Û!à¾ÂÏÛ#ÂýÙÉ͘Ø*ŠØ~þ Ê"Ú·Ê"ÚåÍŒØá#ÃÚ>?ÍŒØÍ˜ØÍÝÙÂÛ·Èþ Ú ÚÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃOÚ…oÐ$É>!ÍßÍYÚåå¯2ðß*ˆØëÍOÚë"ŠØëá·Ê‰ÚÞ@Gþ:Ê�Ú:ïßwÖÚx2ðßpÍ0ÚʹÚ#þ*©Ú6?ëÚw˜ÚÍ0ÚÊÀÚïÚ#6 ¹Úþ.ÂéÚÍ0ÚÊéÚ#þ*ÂÙÚ6?ÃÛÚwÂÈÚÍ0ÚÊðÚÃßÚ#6 ÂéÚ#6ÂòÚë"ˆØá #~þ? Û ÂÛx·ÉDIR ERA TYPESAVEREN USERg!ÛyþÐÎß¾ÂOÛ#Â<Ûþ ÂTÛyÉ#ÂOÛ Ã3Û¯2Ø1«ßÅyæ_ÍÙ͸Ø2«ßÁyæ2ïßͽØ:ط˜Û1«ß͘ØÍÐÙÆAÍŒØ>>ÍŒØÍ9Ù€ÍØÙÍÐÙ2ïßÍ^ÚÄ Ú:ðß·Â¥ÞÍ.Û!ÁÛ_~#foéwÜÝ]Ý­ÝÞŽÞ¥Þ!óv"Ø!ØéßÛçØREAD ERRORðÛçØNO FILEÍ^Ú:ðß·Â Ú!Îß ~þ Ê3Ü#Ö0þ Ò ÚWxæà Úx€Ú Ú€Ú Ú‚Ú ÚG ÂÜÉ~þ  Ú# Â3ÜxÉ~#ÂBÜÉ!€�ÍYÚ~ɯ2Íß:ðß·È=!ïß¾ÈýØ:ðß·È=!ïß¾È:ïßýØÍ^ÚÍTÜ!Îß~þ Â�Ü 6?#ˆÜÕÍéØÌêÛÊÝ:îßæ`O> ÍKÜÚÝÑ{ÕæõÂÌÜ͘ØÅÍÐÙÁÆAÍ’Ø>:Í’ØÃÔÜÍ¢Ø>:Í’ØÍ¢ØxÍKÜæþ ÂùÜñõþÂ÷Ü> ÍKÜæþ ÊÝ> Í’Øxþ ÒÝþ ÂÙÜÍ¢ØÃÙÜñÍÂÙÂÝÍäØÃ˜ÜÑÆßÍ^Úþ ÂBÝRÝͧØÍ9Ù!Ø5‚Û#~þY‚Û#"ˆØÍTÜÍßÍïØ<ÌêÛÆßALL (Y/N)?Í^Ú ÚÍTÜÍÐØÊ§Ý͘Ø!ñß6ÿ!ñß~þ€Ú‡ÝåÍþØá ݯw4!€ÍYÚ~þʆßÍŒØÍÂÙ†ßÃtÝ=ʆßÍÙÛÍfÜà ÚÍøÛõÍ^Ú ÚÍTÜÍßÕÍïØÑÍ ÙÊûݯ2íßño&)|µÊñÝ+å!€åÍØÙÍßÍÙÑáÂûÝÃÔÝÍßÍÚØ<ÂÞÞͧØÍÕÙÆßNO SPACEÍ^Ú Ú:ðßõÍTÜÍéØÂyÞ!ÍßÝßÍBÜ*ˆØëÍOÚþ=Ê?Þþ_ÂsÞë#"ˆØÍ^ÚÂsÞñG!ðß~·ÊYÞ¸pÂsÞp¯2ÍßÍéØÊmÞÍßÍÙÆßÍêÛÆßÍfÜà Ú‚ÞͧØÃ†ßFILE EXISTSÍøÛþÒ Ú_:Îßþ Ê ÚÍÙÉßÍõÙ:Îßþ ÂÄÞ:ð߷ʉß=2ïßÍ)ÙͽØÃ‰ßÖßþ  ÚÕÍTÜÑ!ƒßÍ@ÜÍÐØÊkß!åëÍØÙÍßÍùØÂßá€Ø}“|šÒqßÃáÞá=ÂqßÍfÜÍ^Ú!ðßå~2Íß>Í`Úá~2Ý߯2íß\!Íß!ÍBÜ!Ø~·Ê>ßþ Ê>ß#Ã0ß�~·ÊOß#ÃCßx2€Í˜ØÍÕÙÍÙÍ1«ßÍ)ÙͽØÃ‚ÛÍfÜà ÚzßͧØÃ†ßBAD LOADCOMÍfÜÍ^Ú:ÎßÖ !ðß¶Â ÚÂÛ$$$ SUBgÃà™à¥à«à±àë"Cãë{2Öí!"Eã9"ã1Aã¯2àí2Þí!tíåyþ)ÐK!Gà_^#V*CãëéîÈâ�áÎâîîÔâíâóâøâááþâ~ìƒìEìœì¥ì«ìÈì×ìàìæìììõìþìí íí,åíí&í-íAíGíMíìSíãã›í!ÊàÍåàþÊÉ!Õàôà!áàôà!ÜàÍåàÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉá:BãÆA2ÆàºàÍÓáÁÍÓá!ã~6·Àà îÍûàÍáØõOÍ�áñÉþ Èþ Èþ ÈþÈþ É:ã·ÂEáÍîæÈÍ îþÂBáÍ îþʯÉ2ã>É: ã·ÂbáÅÍ#áÁÅÍ îÁÅ: ã·ÄîÁy! ãþÈ4þ Ð5~·ÈyþÂyá5Éþ À6ÉyÍáÒ�áõ^ÍHáñö@Oyþ ÂHá ÍHá: ãæ–áÉͬá Í îà î#ÍHáÍÉá: ã! ã¾Ð ÍHáùá ÍHá ÃHá þ$ÈÅOÍ�áÁÃÓá: ã2 ã*CãN#åÅåÍûàæáÁþ ÊÁâþ ÊÁâþÂâx·Êïá: ã2 ãÃpâþÂ&âx·Êïá~+éâþÂ7âÅåÍÉá¯2 ãÃñáþÂHâå! ã>–wáÃïáþÂ_âá: ã! ã¾Òáá5ͤáÃNâþÂkâͱááÃááþ¦âÅͱáÁáåÅx·ÊŠâ#NÅåÍááÁÃxâå: ã·Êñá! ã–2 ãͤá! ã5™âÃñá#wÅåOÍááÁ~þx½âþʹÚïááp ÃHáÍáÃãÍîÃãy<Êàâ<Êîà îÍî·Ê‘íÍ îÃã:Ãã!qÉëMDÃÓáÍ#á2EãÉ>Ãã! à^#Vëé Èw#ÃPã:BãOÍî|µÈ^#V#"³í##"µí##"·í##ë"Ðí!¹íÍOã*»íë!ÁíÍOã*Æí|!Ýí6ÿ·Ê�ã6>ÿ·ÉÍî¯*µíw#w*·íw#wÉÍ'îûãÍ*î·È! àÃJã*êíÍêä"åí"ìí!åíN#F*·í^#V*µí~#foy“xšÒúãå*Áí{•_zœWá+Ãäãå*ÁíÚäy•xœÚäëá#ÃúãáÅÕåë*ÎíDMÍîÑ*µís#rÑ*·ís#rÁy“OxšG*ÐíëÍ0îMDÃ!î!ÃíN:ãí· ÂEäG>–O:âí Ê\ä·ÃSä€É*Cã :Ýí·Êqän&É ^#VëÉÍ>äOÍ^ä"åíÉ*åí}´É:Ãí*åí)=Â�ä"çí:ÄíO:ãí¡µo"åíÉ*Cã É*Cãë!ÉÍ®ä~2ãíë~2áíͦä:Åí¦2âíÉÍ®ä:ÕíþÂÞä¯O:ãí�wë:áíwÉ È|·g}oÃëä€*¹í¯†# ÂýäÉ È)ÃåÅ:BãO!ÍåÁyµox´gÉ*­í:BãOÍêä}æÉ!­íN#FÍ å"­í*Èí#ë*³ís#rÉÍ^å ~Ð!àÃJãÍåÈ! àÃJã*¹í:éí…oÐ$É*Cã~ÉÍiå6ÉÍiåö€wÉ*êíë*³í{–#zžÉÍåØr+sÉ{•ozœgÉÿ*ìíë*ÌíÍ•åÐÅÍ÷ä*½íë*ìíÁ ÊÄå¾ÈÍåÐÍ,åÉwÉÍœåÍàå͸ãÃÚåÍàåͲã!±íÃãå!¹íN#FÃ$î*¹íë*±í€ÃOã!êí~#¾À<É!ÿÿ"êíÉ*Èíë*êí#"êíÍ•åÒæÃþå:êíæ‡ æ2éí·ÀÅÍÃãÍÔåÁÞåyæ<_WyæOx‡‡‡‡‡±OxæG*¿í ~ÂVæÉÕÍ5ææþÁ±ÂdæwÉÍ^åÅÑ ÈÕ:Ýí·ÊˆæÅåNÃŽæ ÅN#Fåy°Ê�æ*Æí}‘|˜Ô\æá#ÁÃuæ*ÆíÍêä#DM*¿í6# x±Â±æ*Êíë*¿ís#rÍ¡ã*³í6#6ÍþåÿÍæÍõåÈÍ^å>å¾ÊÒæ:Aã¾Âöæ#~Ö$Âöæ=2EãÍkæÍŒåÃÒæ:ÔíÃãÅõ:Åí/Gy Oñ ‘æÁÉ>ÿ2Ôí!Øíq*Cã"ÙíÍþåÍ¡ãÍæÍõåÊ”ç*ÙíëþåÊJçÕÍåÑÒ”çÍ^å:ØíOy·Êƒçþ?Ê|çxþ Ê|çþ Êsç–æÂ-çÃ|çÅNÍçÁÂ-ç# ÃSç:êíæ2Eã!Ôí~ЯwÉÍþå>ÿÃãÍTå ÍçÍõåÈÍDåÍ^å6åÍkæÍÆåÍ-çäçPYy°ÊÑç ÕÅÍ5æÒìçÁÑ*Æí{•zœÒôçÅÕBKÍ5æÒìçÑÁÃÀç<ÍdæáÑÉy°ÂÀç!É Õ*Cã ëÍ^åÁÍOãÍÃãÃÆåÍTå Íç*Cã~wÍõåÈÍDå ÍèÍ-çÃ'è ÍçÍõåÈ ÍèÍ-çÃ@èÍçÍõåÈͦä~õåÍ^åë*Cã ÕÍOãÍxåÑ! N!Fáñwy¾xÊ‹è>Ú‹è>€*CãwÉ~#¶+Àw#w+ɯ2Eã2êí2ëíÍåÀÍi忀ÀÍçÍõåÈÍ^å ë*Cã :Ýí·Êèè~·ÂÛèw·Âáè~¾ÂéÃýèÍ”èëÍ”èë¾Âé#¾Âé # ÂÍèìÿ ë ¾Úéw ë ~>ÿ2ÒíÃè!Eã5ÉÍTå*Cãå!¬í"CãÍçÍõåá"CãÈë!¯w# ÂFé! wÍŒåÍýçÃxå¯2ÒíÍ¢èÍõåÈ*Cã ~<æwʃéG:Åí !Òí¦ÊŽéìé 4~æʶéÍçÍõå¬é:Óí<ʶéÍ$éÍõåʶéïéÍZèÍ»ä¯ÃãÍãÃxå>2Õí>ÿ2ÓíÍ»ä:ãí!áí¾Úæéþ€ÂûéÍZé¯2ãí:Eã·ÂûéÍwäÍ„äÊûéÍŠäÍÑãͲãÃÒäÃã>2Õí>2ÓíÍTå*CãÍGåÍ»ä:ãíþ€ÒãÍwäÍ„äÂnêÍ>ä2×í·Ê;êO Í^äDM;ç}´ÂHê>Ãã"åíë*Cã :Ýí·:×íÊdêÍdåsÃlêO s#r:Eã·ÀÅÍŠä:Õí==»êÁÅy==»êå*¹íWw#òŒêÍàå*çí"åíÅÍÑãÁ͸ã*åí:ÄíG¥¸#šêá"åíÍÚåÍÑãÁÅ͸ãÁ:ãí!áí¾ÚÒêw4!ØõÍiåæwñþÂë:ÕíþÂëÍÒäÍZé!Eã~·Âþê=2ãí6ÃÒä¯2ÕíÅ*Cãë!!~æõ~#~æO~æGñ#n,-.‹ë! w! y–ÂGë!x–æÊëÅÕÍ¢èÑÁ.:Eã<Ê„ë! q!pÍQè:Eã<ÂëÁÅ. Ê„ëÍ$é.:Eã<Ê„ëÁ¯ÃãåÍiå6ÀáÁ}2EãÃxåÿÍëÌÁéÉÍëÌêÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ Íç*Cã!år#r#rÍõåÊ ìÍ^åÍ¥ëáå_y–#xž#{žÚìs+p+qÍ-çÃäëáÉ*Cã Í¥ë!!q#p#wÉ*¯í:BãOÍêäåëÍYãáÌGã}Ø*¯íMDÍ å"¯íãæ:Öí!Bã¾ÈwÃ!ì>ÿ2Þí*Cã~æ=2ÖíþÒuì:Bã2ßí~2àíæàwÍEì:Aã*Cã¶wÉ>"Ãã!"­í"¯í¯2Bã!€"±íÍÚåÃ!ìÍråÍQìÃQèÍQìâèë~þ?ÊÂìͦä~þ?ÄråÍQìÍçÃéå*Ùí"CãÍQìÍ-çÃéåÍQìÍœçÃçÍQìüéÍQìÃþéÍråÍQìÃ$éÍQìÍèÃç*¯íÃ)í:BãÃãë"±íÃÚå*¿íÃ)í*­íÃ)íÍQìÍ;èÃç*»í"EãÉ:ÖíþÿÂ;í:AãÃãæ2AãÉÍQìÓëÍQìÜëÍQìÃÒë*Cã}/_|/*¯í¤W}£_*­íë"¯í}£o|¢g"­íÉ:Þí·Ê‘í*Cã6:àí·Ê‘íw:ßí2ÖíÍEì*ãù*Eã}DÉÍQì>2ÕíÍëÌêÉå€ÃøÃAïÖîÚîÞîâîÃÆîüîÃpîØõÃtîÃxîØñÃ|îÀîæîÃõôØà‰ð‰ð‰ð‰ð‰ð‰ðNð‰ð   :”î!ï‡_zV#_~ëéÉ  :!)ï:!!ïæÌ!1ï: !9ï:ä€ññððððððððó1d͘õ|µÊÐï^#VíSÎï*3îý!1îåýýNýFx±(BÍtîýNýF íCÌïÁÅ͘ñ7?íKÌïýnýfíBá8ËíCÌï€åí[ÎïÍõôMDÍxîÍ|î· #Ì*5î"!î">Ã22*3î:Oûé×ïÍàõvWarm boot error-reset system $ÃðÃ-ðÃŒðÚðëðSBCIO ‡( ÿÉ*ö|•È>ÿÉGÍðx(ù‡(OíxæÉó& ö}<æ2öû~ÉísTö1TöåÕõ*ö$}æ¼ Û¯ÍŒðí[ö! öÛæw}<æ2öñÑáí{TöûíMA‡íyíxæ þ >ÿÈ/É:ðð·(Ó>ÏÓ>Ó¯Ó2ððÛæÈ>ÿÉÍÁð·(úyÓ>€Ó¯ÓÉÃŒñÃ�ñÃŽñÓñÃBóÊòà óFLOPPY rñøEñÌü€ürñøEñ8ýìüò?À@/À €_ÿð      y2öÉy2öÉíCþîÉGÍõ· 8Ý"öÝ~G:ö°G:ö°ÓÝ~Ó >2ö>ÐÓ ããããÛ æ€È!ö5 íµöÍàõÍUôm÷Íàõ-÷ÍàõÍšîþ Ñá>É> 2 ö:öOÛ ‘ :öG:‰ò�ÈyÓÝ~²óÓ :ö2‰òÛû8 Û æ™ ÝqÉÍôÁÝ*öÝ~·(P>¹(=¹(!&Í ó·À:öæø2öî2öͺôëí°>ÿ2 ö/ÉÍÅò·ÀEÍ™ô0çzæøW:öº #Í¢ô8Í ó·À/2öÍ:ö2 ö>£2úó>¬2öÃvóÍ ó·À/2öÍ{ôÍló·À§: ö·>ÿ2 ö/ÈÝåÝ*ö>£2úó>¬2ö*öå*ö"ö:ö̓ôÍvóá"öÝá2 öÉÝ*öÝ~·(Í™ô8ͺôí°ÉÍ ó·ÀÍ{ôÍló·Àë:ö2 ö>¢2úó>Œ2öÍòñÍEò> 2 ö>ÐÓ :öGããããóÛ æ / _Ý~·(!€ø*þî: öÓ{Ó ÍóóÛ û_°È{æ¿:ö #þ¬ µöÍàõÍUôÇöÍàõ-÷ÍàõÍšîþ œ>ÉWÍôÍJò·(�É€Û·ðí¢ ø óó: ö=2 ö W{þ(þ¬(yö~ö„öÍàõ‰öÍàõ:öÍíõšöÍàõ: öÍíõ¤öÍàõ:öÍíõÍUôóïÍàõ>áɬöÍàõ:öÍíõÉÛ æÈÝ~ö Ó Û æ(ú¯Ó ÝwÉ:öæø2öÝF¸8� <2 öy2öÉ:öW: öØ*öíKöíB(7É:öGz�Øþ?ÉÝ"ö*ö"ö:öGæø2öxæG!ø€ý€í[þî¯2 öÉGÝ!ñÝüÉz³i`Èë n&Éy· P:ö·Ê‹õ>2ö*¯íPËY}(|˘Aý8gÕÍ óÑ·À>ÐÓ :ö2öz2öÍçôÓÍgô¯2ö2öÝw<2ö*þîå!€ø"þîÍfóá"þî·À:ÿø·(Öåþ8 VöÍàõÍUô>ÿÉÝw·(>>Ýw¯Éz2öÍçôÝ~ã:”î¹ Âîï‡_Gy‡_·()g�ÊÇõDÅÕÍ‚îÑÁ· <`G.ÅÕÍ“îÑÁ|µÈy2”î¯É!Éþ$ÈOÕÍžîÑóõÍöõñæÆ�'Î@'OÞîÿññÿCan't recognize density of disk in$Read$Write$Seek$ error on track $ sector $ side $ drive $ The diskette in$ is write-protected. Remove the diskette and put on the write protect tab, then type any character.$ Type a control-C if you wish to abort the operation instead $ is not ready. Insert diskette, close drive door, and type any character to continue.$ÍøÃ¯ï!1ù í³!;ù í³!`î|íGí^¯22yøÍàõ:îÆË?Ë?Í!ùÅHÍžîÁÍžî«øÍàõ:"ïÆ1OÍžîâøÍàõ:*ïþ8øøÍàõõùÍàõñÆ1OÍžîùÍàõÉ Super Quad CP/M v X2.0 Typeahead installed $K CP/M 2.2 installed Default console is serial port $ Default printer is $parallel printer driver$serial port $ $ ÿ‘0ü�Æ0O>0€GÉÁDê`ÁDê Þ!Îã ~þ Ê3à#Ö0þ Ò ÞWxæà Þx€Ú Þ€Ú Þ‚Ú ÞG ÂàÉ~þ  Þ# Â3àxÉ~#ÂBàÉ!€�ÍYÞ~ɯ2Íã:ðã·È=!ïã¾ÈýÜ:ðã·È=!ïã¾È:ïãýÜÍ^ÞÍTà!Îã~þ Â�à 6?#ˆàÕÍéÜÌêßÊá:îãæ`O> ÍKàÚáÑ{ÕæõÂÌà͘ÜÅÍÐÝÁÆAÍ’Ü>:Í’ÜÃÔàÍ¢Ü>:Í’ÜÍ¢ÜxÍKàæþ ÂùàñõþÂ÷à> ÍKàæþ Êá> Í’Üxþ å;***************************************************** ;* * ;* Sector Deblocking Algorithms for CP/M 2.0 * ;* * ;***************************************************** ; ; utility macro to compute sector mask smask macro hblk ;; compute log2(hblk), return @x as result ;; (2 ** @x = hblk on return) @y set hblk @x set 0 ;; count right shifts of @y until = 1 rept 8 if @y = 1 exitm endif ;; @y is not 1, shift right one position @y set @y shr 1 @x set @x + 1 endm endm ; ;***************************************************** ;* * ;* CP/M to host disk constants * ;* * ;***************************************************** blksiz equ 2048 ;CP/M allocation size hstsiz equ 512 ;host disk sector size hstspt equ 20 ;host disk sectors/trk hstblk equ hstsiz/128 ;CP/M sects/host buff cpmspt equ hstblk * hstspt ;CP/M sectors/track secmsk equ hstblk-1 ;sector mask smask hstblk ;compute sector mask secshf equ @x ;log2(hstblk) ; ;***************************************************** ;* * ;* BDOS constants on entry to write * ;* * ;***************************************************** wrall equ 0 ;write to allocated wrdir equ 1 ;write to directory wrual equ 2 ;write to unallocated ; ;***************************************************** ;* * ;* The BDOS entry points given below show the * ;* code which is relevant to deblocking only. * ;* * ;***************************************************** ; ; DISKDEF macro, or hand coded tables go here dpbase equ $ ;disk param block base ; boot: wboot: ;enter here on system boot to initialize xra a ;0 to accumulator sta hstact ;host buffer inactive sta unacnt ;clear unalloc count ret ; home: ;home the selected disk home: lda hstwrt ;check for pending write ora a jnz homed sta hstact ;clear host active flag homed: ret ; seldsk: ;select disk mov a,c ;selected disk number sta sekdsk ;seek disk number mov l,a ;disk number to HL mvi h,0 rept 4 ;multiply by 16 dad h endm lxi d,dpbase ;base of parm block dad d ;hl=.dpb(curdsk) ret ; settrk: ;set track given by registers BC mov h,b mov l,c shld sektrk ;track to seek ret ; setsec: ;set sector given by register c mov a,c sta seksec ;sector to seek ret ; setdma: ;set dma address given by BC mov h,b mov l,c shld dmaadr ret ; sectran: ;translate sector number BC mov h,b mov l,c ret ; ;***************************************************** ;* * ;* The READ entry point takes the place of  * ;* the previous BIOS defintion for READ. * ;* * ;***************************************************** read: ;read the selected CP/M sector xra a sta unacnt mvi a,1 sta readop ;read operation sta rsflag ;must read data mvi a,wrual sta wrtype ;treat as unalloc jmp rwoper ;to perform the read ; ;***************************************************** ;* * ;* The WRITE entry point takes the place of * ;* the previous BIOS defintion for WRITE. * ;* * ;***************************************************** write: ;write the selected CP/M sector xra a ;0 to accumulator sta readop ;not a read operation mov a,c ;write type in c sta wrtype cpi wrual ;write unallocated? jnz chkuna ;check for unalloc ; ; write to unallocated, set parameters mvi a,blksiz/128 ;next unalloc recs sta unacnt lda sekdsk ;disk to seek sta unadsk ;unadsk = sekdsk lhld sektrk shld unatrk ;unatrk = sectrk lda seksec sta unasec ;unasec = seksec ; chkuna: ;check for write to unallocated sector lda unacnt ;any unalloc remain? ora a jz alloc ;skip if not ; ; more unallocated records remain dcr a ;unacnt = unacnt-1 sta unacnt lda sekdsk ;same disk? lxi h,unadsk cmp m ;sekdsk = unadsk? jnz alloc ;skip if not ; ; disks are the same lxi h,unatrk call sektrkcmp ;sektrk = unatrk? jnz alloc ;skip if not ; ; tracks are the same lda seksec ;same sector? lxi h,unasec cmp m ;seksec = unasec? jnz alloc ;skip if not ; ; match, move to next sector for future ref inr m ;unasec = unasec+1 mov a,m ;end of track? cpi cpmspt ;count CP/M sectors jc noovf ;skip if no overflow ; ; overflow to next track mvi m,0 ;unasec = 0 lhld unatrk inx h shld unatrk ;unatrk = unatrk+1 ; noovf: ;match found, mark as unnecessary read xra a ;0 to accumulator sta rsflag ;rsflag = 0 jmp rwoper ;to perform the write ; alloc: ;not an unallocated record, requires pre-read xra a ;0 to accum sta unacnt ;unacnt = 0 inr a ;1 to accum sta rsflag ;rsflag = 1 ; ;***************************************************** ;* * ;* Common code for READ and WRITE follows * ;* * ;***************************************************** rwoper: ;enter here to perform the read/write xra a ;zero to accum sta erflag ;no errors (yet) lda seksec ;compute host sector rept secshf ora a ;carry = 0 rar ;shift right endm sta sekhst ;host sector to seek ; ; active host sector? lxi h,hstact ;host active flag mov a,m mvi m,1 ;always becomes 1 ora a ;was it already? jz filhst ;fill host if not ; ; host buffer active, same as seek buffer? lda sekdsk lxi h,hstdsk ;same disk? cmp m ;sekdsk = hstdsk? jnz nomatch ; ; same disk, same track? lxi h,hsttrk call sektrkcmp ;sektrk = hsttrk? jnz nomatch ; ; same disk, same track, same buffer? lda sekhst lxi h,hstsec ;sekhst = hstsec? cmp m jz match ;skip if match ; nomatch: ;proper disk, but not correct sector lda hstwrt ;host written? ora a cnz writehst ;clear host buff ; filhst: ;may have to fill the host buffer lda sekdsk sta hstdsk lhld sektrk shld hsttrk lda sekhst sta hstsec lda rsflag ;need to read? ora a cnz readhst ;yes, if 1 xra a ;0 to accum sta hstwrt ;no pending write ; match: ;copy data to or from buffer lda seksec ;mask buffer number ani secmsk ;least signif bits mov l,a ;ready to shift mvi h,0 ;double count rept 7 ;shift left 7 dad h endm ; hl has relative host buffer address lxi d,hstbuf dad d ;hl = host address xchg ;now in DE lhld dmaadr ;get/put CP/M data mvi c,128 ;length of move lda readop ;which way? ora a jnz rwmove ;skip if read ; ; write operation, mark and switch direction mvi a,1 sta hstwrt ;hstwrt = 1 xchg ;source/dest swap ; rwmove: ;C initially 128, DE is source, HL is dest ldax d ;source character inx d mov m,a ;to dest inx h dcr c ;loop 128 times jnz rwmove ; ; data has been moved to/from host buffer lda wrtype ;write type cpi wrdir ;to directory? lda erflag ;in case of errors rnz ;no further processing ; ; clear host buffer for directory write ora a ;errors? rnz ;skip if so xra a ;0 to accum sta hstwrt ;buffer written call writehst lda erflag ret ; ;***************************************************** ;* * ;* Utility subroutine for 16-bit compare * ;* * ;***************************************************** sektrkcmp: ;HL = .unatrk or .hsttrk, compare with sektrk xchg lxi h,sektrk ldax d ;low byte compare cmp m ;same? rnz ;return if not ; low bytes equal, test high 1s inx d inx h ldax d cmp m ;sets flags ret ; ;***************************************************** ;* * ;* WRITEHST performs the physical write to * ;* the host disk, READHST reads the physical * ;* disk. * ;* * ;***************************************************** writehst: ;hstdsk = host disk #, hsttrk = host track #, ;hstsec = host sect #. write "hstsiz" bytes ;from hstbuf and return error flag in erflag. ;return erflag non-zero if error ret ; readhst: ;hstdsk = host disk #, hsttrk = host track #, ;hstsec = host sect #. read "hstsiz" bytes ;into hstbuf and return error flag in erflag. ret ; ;***************************************************** ;* * ;* Unitialized RAM data areas * ;* * ;***************************************************** ; sekdsk: ds 1 ;seek disk number sektrk: ds 2 ;seek track number seksec: ds 1 ;seek sector number ; hstdsk: ds 1 ;host disk number hsttrk: ds 2 ;host track number hstsec: ds 1 ;host sector number ; sekhst: ds 1 ;seek shr secshf hstact: ds 1 ;host active flag hstwrt: ds 1 ;host written flag ; unacnt: ds 1 ;unalloc rec cnt unadsk: ds 1 ;last unalloc disk unatrk: ds 2 ;last unalloc track unasec: ds 1 ;last unalloc sector ; erflag: ds 1 ;error reporting rsflag: ds 1 ;read sector flag readop: ds 1 ;1 if read operation wrtype: ds 1 ;write operation type dmaadr: ds 2 ;last dma address hstbuf: ds hstsiz ;host buffer ; ;***************************************************** ;* * ;* The ENDEF macro invocation goes here * ;* * ;***************************************************** end ; CP/M 2.0 disk re-definition library ; ; Copyright (c) 1979 ; Digital Research ; Box 579 ; Pacific Grove, CA ; 93950 ; ; CP/M logical disk drives are defined using the ; macros given below, where the sequence of calls ; is: ; ; disks n ; diskdef parameter-list-0 ; diskdef parameter-list-1 ; ... ; diskdef parameter-list-n ; endef ; ; where n is the number of logical disk drives attached ; to the CP/M system, and parameter-list-i defines the ; characteristics of the ith drive (i=0,1,...,n-1) ; ; each parameter-list-i takes the form ; dn,fsc,lsc,[skf],bls,dks,dir,cks,ofs,[0] ; where ; dn is the disk number 0,1,...,n-1 ; fsc is the first sector number (usually 0 or 1) ; lsc is the last sector number on a track ; skf is optional "skew factor" for sector translate ; bls is the data block size (1024,2048,...,16384) ; dks is the disk size in bls increments (word) ; dir is the number of directory elements (word) ; cks is the number of dir elements to checksum ; ofs is the number of tracks to skip (word) ; [0] is an optional 0 which forces 16K/directory entry ; ; for convenience, the form ; dn,dm ; defines disk dn as having the same characteristics as ; a previously defined disk dm. ; ; a standard four drive CP/M system is defined by ; disks 4 ; diskdef 0,1,26,6,1024,243,64,64,2 ; dsk set 0 ; rept 3 ; dsk set dsk+1 ; diskdef %dsk,0 ; endm ; endef ; ; the value of "begdat" at the end of assembly defines the ; beginning of the uninitialize ram area above the bios, ; while the value of "enddat" defines the next location ; following the end of the data area. the size of this ; area is given by the value of "datsiz" at the end of the ; assembly. note that the allocation vector will be quite ; large if a large disk size is defined with a small block ; size. ; dskhdr macro dn ;; define a single disk header list dpe&dn: dw xlt&dn,0000h ;translate table dw 0000h,0000h ;scratch area dw dirbuf,dpb&dn ;dir buff,parm block dw csv&dn,alv&dn ;check, alloc vectors endm ; disks macro nd ;; define nd disks ndisks set nd ;;for later reference dpbase equ $ ;base of disk parameter blocks ;; generate the nd elements dsknxt set 0 rept nd dskhdr %dsknxt dsknxt set dsknxt+1 endm endm ; dpbhdr macro dn dpb&dn equ $ ;disk parm block endm ; ddb macro data,comment ;; define a db statement db data comment endm ; ddw macro data,comment ;; define a dw statement dw data comment endm ; gcd macro m,n ;; greatest common divisor of m,n ;; produces value gcdn as result ;; (used in sector translate table generation) gcdm set m ;;variable for m gcdn set n ;;variable for n gcdr set 0 ;;variable for r rept 65535 gcdx set gcdm/gcdn gcdr set gcdm - gcdx*gcdn if gcdr = 0 exitm endif gcdm set gcdn gcdn set gcdr endm endm ; diskdef macro dn,fsc,lsc,skf,bls,dks,dir,cks,ofs,k16 ;; generate the set statements for later tables if nul lsc ;; current disk dn same as previous fsc dpb&dn equ dpb&fsc ;equivalent parameters als&dn equ als&fsc ;same allocation vector size css&dn equ css&fsc ;same checksum vector size xlt&dn equ xlt&fsc ;same translate table else secmax set lsc-(fsc) ;;sectors 0...secmax sectors set secmax+1;;number of sectors als&dn set (dks)/8 ;;size of allocation vector if ((dks) mod 8) ne 0 als&dn set als&dn+1 endif css&dn set (cks)/4 ;;number of checksum elements ;; generate the block shift value blkval set bls/128 ;;number of sectors/block blkshf set 0 ;;counts right 0's in blkval blkmsk set 0 ;;fills with 1's from right rept 16 ;;once for each bit position if blkval=1 exitm endif ;; otherwise, high order 1 not found yet blkshf set blkshf+1 blkmsk set (blkmsk shl 1) or 1 blkval set blkval/2 endm ;; generate the extent mask byte blkval set bls/1024 ;;number of kilobytes/block extmsk set 0 ;;fill from right with 1's rept 16 if blkval=1 exitm endif ;; otherwise more to shift extmsk set (extmsk shl 1) or 1 blkval set blkval/2 endm ;; may be double byte allocation if (dks) > 256 extmsk set (extmsk shr 1) endif ;; may be optional [0] in last position if not nul k16 extmsk set k16 endif ;; now generate directory reservation bit vector dirrem set dir ;;# remaining to process dirbks set bls/32 ;;number of entries per block dirblk set 0 ;;fill with 1's on each loop rept 16 if dirrem=0 exitm endif ;; not complete, iterate once again ;; shift right and add 1 high order bit dirblk set (dirblk shr 1) or 8000h if dirrem > dirbks dirrem set dirrem-dirbks else dirrem set 0 endif endm dpbhdr dn ;;generate equ $ ddw %sectors,<;sec per track> ddb %blkshf,<;block shift> ddb %blkmsk,<;block mask> ddb %extmsk,<;extnt mask> ddw %(dks)-1,<;disk size-1> ddw %(dir)-1,<;directory max> ddb %dirblk shr 8,<;alloc0> ddb %dirblk and 0ffh,<;alloc1> ddw %(cks)/4,<;check size> ddw %ofs,<;offset> ;; generate the translate table, if requested if nul skf xlt&dn equ 0 ;no xlate table else if skf = 0 xlt&dn equ 0 ;no xlate table else ;; generate the translate table nxtsec set 0 ;;next sector to fill nxtbas set 0 ;;moves by one on overflow gcd %sectors,skf ;; gcdn = gcd(sectors,skew) neltst set sectors/gcdn ;; neltst is number of elements to generate ;; before we overlap previous elements nelts set neltst ;;counter xlt&dn equ $ ;translate table rept sectors ;;once for each sector if sectors < 256 ddb %nxtsec+(fsc) else ddw %nxtsec+(fsc) endif nxtsec set nxtsec+(skf) if nxtsec >= sectors nxtsec set nxtsec-sectors endif nelts set nelts-1 if nelts = 0 nxtbas set nxtbas+1 nxtsec set nxtbas nelts set neltst endif endm endif ;;end of nul fac test endif ;;end of nul bls test endm ; defds macro lab,space lab: ds space endm ; lds macro lb,dn,val defds lb&dn,%val&dn endm ; endef macro ;; generate the necessary ram data areas begdat equ $ dirbuf: ds 128 ;directory access buffer dsknxt set 0 rept ndisks ;;once for each disk lds alv,%dsknxt,als lds csv,%dsknxt,css dsknxt set dsknxt+1 endm enddat equ $ datsiz equ $-begdat ;; db 0 at this point forces hex record endm ; = gcd(sectors,skew) neltst set sectors/gcdn ;; neltst is number of elements to generate ;; before we overlap previous elements nelts set neltst ;;counter xlt&dn equ $ ;translate table rept sectors ;;once for each sector if sectors < 256 ddb %nxtsec+(fsc) else ddw %nxtsec+(fsc) endif nxtsec set nxtsec+(skf) if nxtsec >= sectors nxtsec set nxtsec-sectors endif nelts set nelts-1 if nelts = 0 nxtbas set nxtbas+1 nxtsec set nxtbas nelts set neltst endif endm endif ;;end of nul fac test endif ;;end of nul bls test endm ; defds macro lab,space lab: ds space endm ; lds macro lb,dn,val defds lb&dn,%val&dn endm ; endef macro ;; generate the necessary ram data areas begdat equ $ dirbuf: ds 128 ;directory access buffer dsknxt set 0 rept ndisks ;;once for each disk lds alv,%dsknxt,als lds csv,%dsknxt,css dsknxt set dsknxt+1 endm eå; ; ; ; MACLIB MACRO ; ;FORMAT PROGRAM FOR THE WD1791 FDISK CONTROLLER ; INTERLEAVED SECTOR VERSION ; ; ************** DD DISK CONTROLLER **************** ; TRUE EQU 0FFFFH FALSE EQU NOT TRUE ; ; ;**************************************************** ; ; ;DISK DRIVE TYPE MINI EQU false ;FALSE FOR 8 INCH DRIVES ; ;*************************************************** ; ; ; ; ; ;**************************************** ; ;DOUBLE DENSITY CODE FLAG ; ;THIS FLAG IS PLACED ON TRACK 0 ;SECTOR 1 FOR DOUBLE DENSITY DISKS ; CODE1 EQU 0e6H ;single sided CODEQ EQU 0e7H ;double sided ;********************************************* ; BDOS EQU 5 WBOOT EQU 0 CMD EQU 00CH DAL EQU CMD+3 WAIT EQU 014H WTRACK EQU 0F4H SEEK EQU 19H DSEL EQU 014H TRACK EQU CMD+1 SECT EQU CMD+2 ; IF NOT MINI SECNT EQU 8 SSECT EQU 26 MTK EQU 76 ;77 TRACKS (0-76) GAP1 EQU 80 GAP3 EQU 80 PRE0 EQU 12 SGAP4F EQU 40 SGAP2F EQU 26 SGAP20 EQU 6 SGAP1F EQU 27 ENDIF ; ; IF MINI SECNT EQU 4 ;1024 byte sectors SSECT EQU 18 ;DOUBLE DENSITY GAPS GAP1 EQU 255 GAP3 EQU 255 PRE0 EQU 12 ;SINGLE DENSITY GAPS SGAP4F EQU 11 SGAP1F EQU 7 SGA1F6 EQU 3 SGAP20 EQU 6 MTK EQU 39 ;40 TRACKS (0-39) ENDIF ; INTRP EQU 0D0H RESTO EQU 1 ;6MS STEP ORG 100H ; START: LXI SP,START PRINT PRINT IF MINI PRINT ENDIF COMPLT: IF MINI MVI A,CODE1 STA CODE2 ; set allways double density XRA A ELSE ; 8 inch drives MVI A,0E5H ;INIZ CODE2 TO ISNT CODEQ STA CODE2 PRINT CALL IMPC ;GET CHAR CPI 'D' ;IS DOUBLE ? JNZ CKSINGL ;IF NOT SEE IF SINGLE ; ; XRA A ;SET DENS TO 0 FOR DOUBLE DENSITY JMP SETUP1 CKSINGL: CPI 'S' JNZ QUIT ;NOT SINGLE THEN QUIT MVI A,MTK+2 ;DO ALL TRACKS SINGLE DENSITY ENDIF SETUP1: STA DENS ; ; PRINT MVI A,0FFH ;INIZ SYSTEM FLAG TO NOT STA FLAG ;SYSTEM CALL IMPC ;GET ANSWER SUI 'A' JC QUIT CPI 4 JNC QUIT ; START1: MOV C,A STA DISKNO ;SAVE DRIVE NUMBER SYSTK: PRINT CALL IMPC CPI 'N' JZ DOIT CPI 'Y' JNZ SYSTK XRA A STA FLAG DOIT: XRA A STA DBLFL LDA DENS ORA A JNZ DOIT1 MVI A,CODE1 ; assume single sided STA CODE2 PRINT CALL IMPC CPI 'S' JZ DOIT1 CPI 'D' JNZ DOIT MVI A,CODEQ STA CODE2 MVI A,1 STA DBLFL DOIT1: PRINT LDA DISKNO ADI 41H CHAROUT PRINT <': and press the Return key '> CHARIN CPI 0DH JNZ 0 ; exit if not return PRINT LDA DISKNO OUT WAIT ;SELECT DISK & SET SINGLE DENSITY MVI A,RESTO di OUT CMD IN WAIT ;WAIT FOR DONE ei ; XRA A MOV D,A ;START WITH TRACK 0 STA SIDE ;SET SIDE ZERO SLOOP2: MVI E,1 ;SECTOR LXI H,BUFF ;DMA BUFFER ; IF NOT MINI MVI A,0FFH MVI B,SGAP4F CALL PUT XRA A MVI B,6 CALL PUT MVI M,0FCH INX H ; ENDIF ; MVI B,SGAP1F ;GAP 1 MVI A,0FFH CALL PUT IF MINI MVI B,SGA1F6 MVI A,0F6H CALL PUT ENDIF SLOOP: XRA A MVI B,SGAP20 CALL PUT MVI M,0FEH INX H MOV M,D ;TRACK INX H LDA SIDE MOV M,A ;SET SIDE INX H MOV M,E INX H MVI M,0 INX H MVI M,0F7H INX H MVI A,0FFH MVI B,11 CALL PUT MVI B,6 XRA A CALL PUT MVI M,0FBH INX H MVI A,0E5H MVI B,128 CALL PUT ;DATA 128 BYTES MOV A,E DCR A ;SEE IF SECTOR 1 ORA D ;MAKE SURE TRACK 0 JNZ NO1 LDA DENS ORA A JNZ NOTDD DCX H LDA CODE2 ;DENSITY CODE MOV M,A INX H NOTDD: NO1: MVI M,0F7H INX H MVI A,0FFH MVI B,SGAP1F CALL PUT IF MINI MVI A,0F6H MVI B,SGA1F6 CALL PUT ENDIF INR E MOV A,E CPI SSECT+1 ;MAX SINGLE DENSITY SECTORS PER TRACK JNZ SLOOP MVI C,3 SLOOP3: MVI B,0 MVI A,0FFH CALL PUT DCR C JNZ SLOOP3 PUSH D LXI H,BUFF XCHG ;PUT IN D,E LXI H,WLOOP MVI A,WTRACK di OUT CMD ; CALL WLOOP ei POP D IN CMD ;GET STATUS ORA A ;TEST JNZ ERROR LDA DENS ORA A JZ START2 INR D MOV A,D OUT DAL ;TELL 1791 LDA DENS CMP D ;DENS IS 77+1 OR 0 JZ COMPLT ;IF D=78 AND DENS = 78 THEN DONE MVI A,SEEK di OUT CMD IN WAIT ;WAIT FOR END OF SEEK ei ; ;SEE IF LAST TRACK ; LDA FLAG MOV B,A MOV A,D ;GET TRACK SUI 2 ORA B ;IF D=2 AND FLAG = 0 THEN ;DONE WITH SD SYSTEM JZ COMPLT JMP SLOOP2 ENDIF ; NOT MINI ; ; DOUBLE DENSITY FORMAT ROUTINE ; START2: XRA A STA SIDE if mini mvi d,0ffh ;fake so double density starts at track 0 jp was12 endif LDA DBLFL ORA A MVI D,0 JZ WAS12 MVI A,1 STA SIDE LOOP2: LDA SIDE ADD A ADD A MOV B,A LDA DISKNO ORA B ORI 8 OUT WAIT ; SELECT DRIVE, DENSITY & HEAD MVI E,0 ;RESET SECTOR COUNTER LXI H,TABLE ;RESET POINTER SHLD PTR ;RESET TABLE POINTER LXI H,BUFF ;DMA BUFFER MVI B,GAP1 ;GAP 1 MVI A,4EH CALL PUT LOOP: LDA DBLFL ORA A JZ INTER1 MOV A,D CPI 0 JNZ INTERL JMP INTER2 INTER1: MOV A,D ;SEE IF TRACK 1 CPI 0 JNZ INTERL ;IF NOT TK 0 THEN DO INTERLEAVE ; ; ; NON INTERLEAVE SECTOR CALCULATION ; INTER2: INR E MOV A,E CPI SECNT+1 JMP NEXTSE ; ; INTERLEAVE SECTOR CALCULATION ; TABLE LOOK UP ; INTERL: PUSH H LHLD PTR MOV E,M MOV A,E INX H SHLD PTR ;POINT NEXT AND SAVE POP H ORA A ;SET FLAGS NEXTSE: JZ NEXTTK CALL PUTZERO MVI A,0F5H MVI B,3 CALL PUT MVI M,0FEH INX H MOV M,D ;TRACK INX H LDA SIDE MOV M,A ;SET SIDE INX H MOV M,E INX H MVI M,3 INX H MVI M,0F7H INX H MVI A,4EH MVI B,22 CALL PUT MVI B,12 XRA A CALL PUT MVI A,0F5H MVI B,3 CALL PUT MVI M,0FBH INX H MVI A,0E5H MVI B,0 CALL PUT ;DATA 1024 BYTES CALL PUT CALL PUT CALL PUT IF MINI MOV A,E ; GET SECTOR DCR A ORA D JNZ MN0S1 push H push D lxi D,0fc7fh dad D ;put code byte at end of 1st 128 bytes LDA CODE2 MOV M,A pop D pop H MN0S1: ENDIF MVI M,0F7H INX H MVI A,4EH MVI B,GAP3 CALL PUT JMP LOOP NEXTTK: MVI C,3 LOOP3: MVI B,0 MVI A,4EH CALL PUT DCR C JNZ LOOP3 PUSH D LXI H,BUFF XCHG ;PUT IN D,E LXI H,WLOOP MVI A,WTRACK di OUT CMD ; CALL WLOOP POP D IN CMD ;GET STATUS ei ORA A ;TEST JNZ ERROR LDA DBLFL ;SEE IF DOUBLE SIDED ORA A JZ ONES2 ;DO ONLY ONLY ONE SIDE LDA SIDE ;GET SIDE NUMBER DCR A ;TEST SIDE JZ WAS12 MVI A,1 ;DO SIDE 1 STA SIDE ;DO OTHER SIDE JMP LOOP2 WAS12: ;DO NEXT TRACK XRA A STA SIDE ;SET SIDE 0 ONES2: INR D MOV A,D CPI MTK+1 ;LAST TRACK? JZ COMPLT OUT DAL MVI A,SEEK di OUT CMD IN WAIT ei LDA FLAG ;TEST ALL DISK? ORA A JZ COMPLT JMP LOOP2 PUT: MOV M,A INX H DCR B JNZ PUT RET PUTZERO: MVI B,PRE0 XRA A CALL PUT RET ERROR: PUSH PSW PRINT POP PSW PUSH PSW HEXOUT ;PRINT ERROR STATUS POP PSW PUSH PSW ANI 80H JZ ERROR1 POP PSW PRINT JMP COMPLT ERROR1: POP PSW ANI 40H ;SEE IF WRITE PROTECT JZ COMPLT PRINT JMP COMPLT QUIT: LDA 4 ;SELECT DRIVE 0 HEAD 0 ANI 03H OUT WAIT ;DO IT JMP WBOOT ;GO BACK TO CPM IMPC: ;INPUT A CHAR. FROM THE CONSOLE XRA A STA IBUFF+2 INPUT IBUFF,80 LDA IBUFF+2 RET ; ; WLOOP: IN WAIT ORA A RP ; LDAX D ;GET DATA OUT DAL ;PUT DATA IN 1791 INX D PCHL ;JMP WLOOP FLAG: DB 0 DENS: DB 0 PTR: DW TABLE DBLFL: DB 0 DISKNO: DB 0 ;DISK NUMBER SIDE: DB 0 ;SIDE OF DISK SIDENO: DB 0 ;SET TO 1 IFF B COMMAND IS ENTERED CODE2: DB 0E5H TABLE: ; IF NOT MINI ; DB 1,18,35,10,27,44,2,19,36,11,28,45,3 ; DB 20,37,12,29,46,4,21,38,13,30,47,5 ; DB 22,39,14,31,48,6,23,40,15,32,49,7 ; DB 24,41,16,33,50,8,25,42,17,34,51 ; DB 9,26,43 db 1,4,7,2,5,8,3,6 ENDIF ; IF MINI db 1,3,2,4 ENDIF DB 00 BUFF: IBUFF: END START  JMP COMPLT ERROR1: POP PSW ANI 40H ;SEE IF WRITE PROTECT JZ COMPLT PRINT JMP COMPLT QUIT: LDA 4 ;SELECT DRIVE 0 HEAD 0 ANI 03H OUT WAIT ;DO IT JMP WBOOT ;GO BACK TO CPM IMPC: ;INPUT A CHAR. FROM THE CONSOLE XRA A STA IBUFF+2 INPUT IBUFF,80 LDA IBUFF+2 RET ; ; WLOOP: IN WAIT ORA A RP ; LDAX D ;GET DATA OUT DAL ;PUT DATA IN 1791 INX D PCHL ;JMP WLOOP FLAG: DB 0 DENS: DB 0 PTR: DW TABLE DBLFL: DB 0 DISKNO: DB 0 ;DISK NUMBER SIDE: DB 0 ;SIDE OF DISK SIDENO: DB 0 ;SET TO 1 IFF B COMMAND IS ENTERED CODE2: DB 0E5H TABLE: ; IF NOT MINI ; DB 1,18,35,10,27,44,2,19,36,11,28,45,3 ; DB 20,37,12,29,46,4,21,38,13,30,47,5 ; DB 22,39,14,31,48,6,23,40,15,32,49,7 ; DB 24,41,16,33,50,8,25,42,17,34,51 ; DB 9,26,43 db 1,4,7,2,5,8,3,6 ENDIF ; IF MINI db 1,3,2å Regenerating the SUPERBIOS for a different memory size Thå SUPERBIOÓ normallù resideó iî á 61Ë CP/Í systeí witè  6´ � Ë  oæ  RAM®  Thå extrá 3Ë comeó froí thå facô thaô thå  BIOÓ  ió � relatively large and includes a 1Kbyte deblocking buffer. 1) Assemble SUPRBIOS.MAC with M80 (Microsoft Macro-80). 2©  Determinå  thå  linë addresó foò thå  BIOS®  Thå  standarä � SUPERBIOÓ ió org'ä aô EE00H®  Calculatå youò highesô RAÍ addresó � availablå  tï  thå SUPERBIOÓ anä subtracô 1200È tï geô  thå  linë � address®  Exampleº  Á systeí haó á 2Ë memory-mappeä videï boarä � residing at F800H-FFFFH. F800h-1200H = E600H for the SUPERBIOS. 3© Uså á Microsoft-compatiblå linkeò (LINK¬  L80¬  LINKMT¬ etc© � tï  linë SUPRBIOS.REL®  LINË wilì generatå aî offseô .COÍ  file¬ � while with L80 you get a .HEX file. LINK: L80: LINË SUPRBIOS[LEA00Ý L8° /P:EA00,SUPRBIOS,SUPRBIOS/N/X/E 4©  Creatå  á  relocateä  CP/Í usinç á patcheä  MOVCPÍ  aó  peò � Digital Research note. MOVCPM 59 * SAVE 34 CPM59.COM 5) Integrate the new BIOS and CP/M into the CPM.SYS file. DDT CPM59.COM NEXT PC 2300 0100 -M980,1F7F,10°  (Movå  thå  CCÐ anä BDOÓ  tï  100È ) if using an offset .COM file (better alternative!) -ISUPRBIOS.COM -R1600 iæ usinç á .HEØ filå (besô tï avoid© calculatå thå offseô tï makå � the .HEX file load at 1700. Load address = E600H, offset =1700H-EA00H = 3100H -ISUPRBIOS.HEX -R2E00 .pa Š Makå  surå yoõ reaä thå BIOÓ iî correctlù - 1700È shoulä  bå � thå BIOÓ jumð table. -G0 A>ERA CPM.SYS A>SAVÅ 34 CPM.SYÓ (Iæ  yoõ havå modifieä thå BIOÓ yoõ musô savå howeveò manù  pageó � arå necessarù tï includå thå BIOÓ iî thå .SYÓ file® Therå arå 22 � pages to the CCP and BDOS portions of CPM.SYS) Thå ne÷ disë shoulä bå bootablå iæ iô haó haä thå loadeò SYSGEN'ä � on it. � åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Creatinç  á bootablå SUPERBIOÓ disë foò customeró whï alreadù owî CP/M 1©  Patcè youò copù oæ MOVCPM.COÍ aó describeä iî thå  attacheä � Digitaì  Researcè Note®  Thió ió necessarù becauså thå SUPERBIOÓ � useó  á sectoò blocking/deblockinç algorithí (differenô thaî  thå � Digitaì Researcè algorithm© thaô useó thå directorù writå codå iî � à tï flusè disë bufferó afteò filå closing. 2) Make a copy of your SUPERBIOS distribution disk to work on. Do PIP B:=*.*[vo] then use SYSGEN to transfer the loader. 3©  Puô thå copù oæ oæ thå SUPERBIOÓ distributioî disë iî  youò � seconä floppù drivå (B:)¬ anä youò currenô CP/Í systeí disë (witè � thå patcheä MOVCPM.COM© iî thå firsô floppù drivå (A:). 4) Run MOVCPM and DDT to create a system file. A>MOVCPÍ 61 ª ¨ 61Ë ió thå normaì systeí sizå ) CONTSTRUCTING 61K CP/M V2.2 READY FOR "SYSGEN" OR "SAVE 34 CPM61.COM" A>SAVE 34 B:CPM61.COM A>B: B>A:DDÔ  CPM61.COÍ ¨  Uså youò DDÔ tï brinç iî CP/M ) NEXT PC 2300 0100 -M980,1F7F,100 ( Move the CCP and BDOS to 100H ) -ICPM.SYS -R1600 ( The CPM.SYS file has the BIOS image ) -M2D00,3700,1700 ( Move the new BIOS to 1700H ) -l1700,1702 ( Make sure move went OK ) 1700 JMP FA00 -G0 ( Exit and save ) B>ERA CPM.SYS B>SAVE 34 CPM.SYS 5© Yoõ no÷ havå á bootablå systeí disë equivalenô tï thoså senô � to customers who have purchased CP/M from Advanced Micro Digital. ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÃ(COPYRIGHT (C) 1982, ADVANCED MICRO DIGITAL o&)ýÉÍæ_É_ÍÉ> Í?> Í?ÉåÍFá~·ÈåÍ?á#ÃVOͦ|µÈÝåÑ{² 2í2ô=2ïÝ~2í¯Ýw2ï=2ôöÿÉ! $'**jéÃÃ! "ñÍ’>!ï4¾(QNÅÍ–Á:ô·( yÍ.í[ñDMÍš¯2ó:óþ 8!AÍVÍ7þ ÂÍFÃÁ<2ó:ð·(͢͞·(¨Î:ô·(:íÝwÉ1!ÍV:]þ (J\Ͱ< !ÂÍQÍwï2|! åDMÍš\ͫᷠ[€ÃT!ÕÍQÍwï2i!]ÍVÉ!zÍQÍ7þ (02ÉÖAÍb ÍäÍF!®ÍVÍ7þ ÂÍF¯2ð͵!’ÍV!ÚÍQÍ7þ (E20ÖAÍb Íä!ÍQÍ7þ )ÍF:íÆå2 :]þ (:k2~ >2ð͵!’ÍVÿÍFÃ!¤ÍQÉADVANCED MICRO DIGITAL LDRGEN VER 2.1 for the Super Quad Z80 SBC with eight inch drives Enter source drive (A-P) or type if in memoryPlace source disk in drive and type Enter destination drive (A-P) or type to rebootPlace destination disk on drive and type Physical error in disk operation - type to continue, anything else to quitLDRGEN successfulBad drive specification (A-P)Can'nt open file: Error in reading file: å>oÓ:~W!€€{Ó>ˆÓ Û·ò"í¢öÛ OíCü° Ê>» ×íSþ>OÓ:üÃ3ðç1!ý¯2Ú¥í°Í|µÊ}N#Fx±2ËíCÌN#FíCÉåÍ$á#^#Vë^#VíSÎ#~2Ä#~2Å<2Ç###~2Æ#^#VíSÐN#FíCÒíCÔÍ*ÎíKÖíB0íKÔíCÔÍÅ:Ë·( í[ÌÍ0åÁÍ!Í'·Â}á#"Ö*É åÕÅÍãÁÑá(,ò*Ø#"Ø+))í[ÐíR#Ê}–ë!¤ æí¡À÷ɳí°ý!´Ý!AÍxÕÍŽÝqÝpÝuÝt+í[Çí[ÎíR8 ÝuÝtÍxá7?íR#|µ(/Ý ÄÝsÝrÝ +ÝuÝt¯ÝwÝwÝNúÝFûÝqÝpÄÕÝnÝf¤ý^:Æ·(ý#ý~Wý#³ÀÑë:ÄG)ýí[Î7?íKÒ íR0ûÉ! ý!;åýýNýFx±(EÍýNýF íCÛÁÅÍ$7?íKÛýnýfíBá8ËíCÛ€åí[ÌÍ0MDÍ!Í'· {É:Ú·ÂmÝ!;!åÝÝNÝFÝnÝfíB#Ñ>,½(0âW}’_ÝnÝfíRÝuÝtÝåá;íRDM!A76í°! í[36:³ËæGí°Ã6!€�¯w0í°Ã ëÍ–!2Í– !¤Í—>OÓÃ3ðF#åNÅ¯Í ÁáôÉ SYS: Which .SYS file to load 0 = CPM 1 = OSLOAD ? SelectReadFile not found error: file *‰+":*‹+"/:*�+"^:*�+"�:!":"5:"d:"“:!":"7:"f:"•:É:ã8þÂÇ*¶9É:ã8=o&))ä8  ^#VëÉ!q;p+q!r;6>!r;¾Ú2*r;&²;) ëp;ÍÉÉÃ3Ã>ÃLÉÉÉÃýà ÃÿÃÃ~Ã’ÉÉÇÿÉGÍ3x(ù‡OíxæÉA‡G:x°GÓÝ~Ó É> 2v:nOÛ ‘ÈyÓÝ~öóÓ Ûû8 Û æ™ ÝqÉÍ!ÖÝ*zÝ~·(Í­8ÍÎí°ÉÍ�Í··Àð:q2t>¢2>Œ2yÍKÍc> 2v>ÐÓ :yGããããóÛ æ / _Ý~·(!` *k:tÓ{Ó ÍÛ û_°ÈÍ!Íc·(»É€Û·ðí¢ ø óó:v= L{þ(þ¬(¡¦¬ÍZ±ÍZ:nÍhÂÍZ:tÍhÌÍZ:xÍhÔÍZÝÍZ>ÿÉ2vÛ æÈÝ~ö Ó Û æ(ú¯Ó ÝwÉ:qæø2rÝF¸8� <2ty2xÉ:qW:jØ*míKoíB(7É:rGz�Øþ?ÉÝ"|*m"o:qGæø2rxæG!à€ý€í[k¯2jÉGÝ!ŠÝüÉ>ÐÓ zæÍûÓÍ{¯2n2xÝw<2q*kå!` "kͱá"k·À:ß ·(Öåþ8 ~ÍZÍd>ÿÉÝw·(>>Ýw¯ÉÍûÝ~çÿŽŽCan't recognize density of disk in$Read$Write$Seek$ error on track $ sector $ side $ drive $ $ç!\6ÍÈÍ‚Ò !ÿÿÉ!y;6Í‚Ú6 :y;þÚ- !ÿÿÉͰ Í­Ã :s;þ:Â| :\ÖÖŸõ:y;ÖÖŸÁH¡ÚZ !ÿÿÉ:]ÖA<2\O>¹Òn !ÿÿÉ*y;&\ 6 ì !y;6:s;þ.¨ ͭ͂ڨ :y;þ ÚŸ !ÿÿÉͰ Í­ÃŒ !Éà É:y;<2y;O!\ :s;wÉ:s;Ö0O> ¹ÚÝ :s;Ö02s;>ÉÃö :s;ÖAO>¹Úö :s;ÖAÆ 2s;>É>É!"z;͆ :s;ÉÍ<É:s;Ö]ÆÿŸõ:s;Ö ÆÿŸÁH¡Ò€ ÍÈ:s;þS¸ !³96Í­Ã} :s;þPÂÎ !—96Íù "š9Ã} :s;þDÂä !˜96Íù "œ9Ã} :s;þLÂõ Íù "Æ8Ã} :s;þM Íù Û æ™ ÝqÉÍ!ÖÝ*zÝ~·(Í­8ÍÎí°ÉÍ�Í··Àð:q2t>¢2>Œ2yÍKÍc> 2v>ÐÓ :yGããããóÛ æ / _Ý~·(!` *k:tÓ{Ó ÍÛ û_°ÈÍ!Íc·(»É€Û·ðí¢ ø óó:v= L{þ(þ¬(¡¦¬ÍZ±ÍZ:nÍhÂÍZ:tÍhÌÍZ:xÍhÔÍZÝÍZ>ÿÉ2vÛ æÈÝ~ö Ó Û æ(ú¯Ó ÝwÉ:qæø2rÝF¸8� <2ty2xÉ:qW:jØ*míKoíB(7É:rGz�Øþ?ÉÝ"|*m"o:qGæø2rxæG!à€ý€í[k¯2jÉGÝ!ŠÝüÉ>ÐÓ zæÍûÓÍ{¯2n2xÝw<2q*kå!` "kͱá"k·À:ß ·(Öåþ8 ~ÍZÍd>ÿÉÝw·(>>Ýw¯ÉÍûÝ~çÿŽŽCaåÃÿ!9"1Ís MODEM TRANSFER PROGRAM as of 05/14/82 FOR SUPER QUAD Z80 SBC by ADVANCED MICRO DIGITAL $Ñ ÍÍî>ÿ2ä/2�Í:åþX˜>ÿ2Ãc:åGþ ÊcþMʉÍõÍ>2äÛÛ:åþEÊTþTÊÔþSÊ}þRÊêþDÊ Ãc:äþÿÊ:]þ Âð>ÿ2ä/2�ÃÍßÍAÍÍ!"Î>2äÍhÊ`ÍsG:·>2xÂ^þÊcþÊ þÊVþÌSÊþÂ^:äþÿÊ`:�/2�Ã`>ÿ2Ã`ÓÛæþÂÛþÊæÍ[õ:�þÊ™ñw#"Îþ ÂŽ>:Í[:=¼Ì ÃñÃ>ÓÍÛ2žÍÛ2ŸÕÍùÍ Ñ!ÊÖ:žw#Í[ÊÖ:Ÿw#Í[>ÓÉÄ ÛæþÊî x±ÂÞÉÛÉ6#á}·l&õ)ñ>�oÉÍ5ÕÍ5ÑëÕ€Ñë+|µÂÉÍÉÅÕåõÍñáÑÁÉ!Í�!\ ÍiÉåÕÅõ!3Í�!lÍ�Í¥:,þ ʘÍçÍñþÿÂîÍ0 ++FILE DOES NOT EXIST++ Í0TYPE "R" TO RETURN TO MODEM TYPE "A" TO RE-ENTER NAME: ÍsÍ}Í[ÍNþAÊcþRÊŠØ€ÍÍúþÊþÊ;ÍþÊþÊfÃöÍ0 ++FILE TRANSFER COMPLETED++ ÊÍ0 ++FILE TRANSFER UNSUCCESSFUL++ ÊÍ0 ++ TRANSFER CANCELLED ++ ñÁÑáÉ6# 6 #”6#Â�ÉÍ0 ENTER FILE NAME TO BE TRANSFERRED - C/R TO QUIT: *ÍœÍNÉ*!3ÍÓÉ3ÍÉ3ÍÉ€!€~Í"þÈÍh·ÊÍsþÈ#ÂÉõÛæþÂ#ñÓÍ[ÉÛæþÊsÍhÊTÍsþÊcÓÍ[ÃTÛÓÍ[ÃT:ì·Â£>ÿ2Ñ:(·ÄSͯÒ«>B2ì>ÍaÃ=:]þ Ê4Í�Í¥PÍ�Í#ÚÜÍÔ¯2ÍŽ ÍÌ :ô·Ìë Äæ Íø ÚÃö>ÍaÍø ÚÜÃ=¯2ô:ì·Â>2ÑÍlÒ>B2ìÃ=:]þ Ê4ÃÍ) Í© ÍßÍQ:ç·ÂN:ì·ÊNÍ0FILE OPEN, READY TO RECEIVE :ô·>ÂY>CÍa:ô·ÂyÍ0CRC in effect ÑÍ0Checksum in effect Í’ ڣ͡ÍÔ͈ Ñ͹͈ ÍÃ=:ç·ÊÍÍ0AWAITING NAME NAK P͸>Ía!Ö5úñ*Ò\ Íi"ÒÍø·É>Ía7Éå !]~æÍa:ç·~Ä[ÅÍÁÚ8þÂ#Â>Ía:ç·ÄNQͺÊe>uÍa:ç·ÊXÍ0CHECKSUM ERROR P͸>ÍaÃù>ÍaáÉ!\Í‘:ç·Ê‘Í0AWAITING FILE NAME ÍAÚ‘Í£þÊ¡·É7Éå!]ÍÒÜ:ç·ÊÙÍ0TIME OUT RECEIVING FILENAME ÃþÊ?þÊw:ç·~Ä[Å>ÍaÁ#}þÊé:ç·ÄNyÍaÍþÊ?!\Í‘:ç·Ê6Í0CHECKSUM ERROR ÍAÚ6äáÉ>ÍaÍ‹ÍþÈ7É>2(2ÖÍ®!F^"ÒÍ !\7ÍÓÍ» Ú•:fæ€Âp*Ò\ë Íië"Ò!Ö4Ãp!×5Âd!F^"Ò:ÖþAØ>@2ÖÉå!×6!+N!, 6 !+F#Ê ~þ ÂÆ#Ê ~þ ÊÑ"Ô+#Ê ~þ Âá:×<2×#Ê ~þ ÊóÃá6 áÉ*Ô9~þ Ê #à #~þ Ê "Ô!8pÉ Í·È€Í\Íþÿȇ‡‡‡‡!€…o ~æ€Â] #~æ€È+øÿ] Íi!e~æw#~æw\Í!\l Íi!u6B#6A#6KlÍ!l6\ÍÉ:·È\Í<ÈÃ} ÅÕå€ÍáÑÁ¯2h:n ·Â >2n !\o  ͇ :\2{ !o \ ͇ ÅÕå\ÍáÑÁÃ< !{ \ ͇ ÅÕå\ÍáÑÁ!o \ ͇ ÅÕå\ÍáÑÁ<7ÂE 2n É=懇‡‡‡Æ�o&å|  ͇ á] ͇ ¯2h2|É>~# x±Â‡ ɯ2¯2:ç·ÊÊ Í0 AWAITING # å*#͆Í0 (ͪÍ0H)}á:)·Ê ¯2):ô·Â ÍÒ Í0 ++Switching to CHECKSUM MODE++ >C2ô>ÍaÃ’ ÍÚ Íñ Úþ þÊ{ ·ÊÊ þ7ÈG:ê·ÊA :ç·Ê_ Í0 xÍ·Í0H RCD, NOT SOH ÍÒ_ >Ía:<2þ Ú– :ê·Ê† :ç·ÊŒ ÍÎÊ’ ÍÍD ++ UNABLE TO RECEIVE BLOCK -- ABORTING ++ $:ê·ÊÐ :ç·Ê_ Í0 ++ TIMEOUT ++ :Í·ÍNÃ_ õ:§Êü ñ7ÉñÉ:ê·Ê :ç·Ê_ Í0 :æ Ê1 Í0++FRAMING ERR++ Íq :æÊP Í0++OVERRUN ERR++ Íq :æÊn Í0++PARITY ERR++ Íq Ã_ :Í·ÍNÉÍÚ Íñ Úþ WÍÚ Íñ Úþ /ºÊÍ :ê·Ê« :ç·Ê_ Í0 ++ BAD SECTOR # IN HDR Ã_ z2>2Í!€ÍÚ Íñ Úþ w,ÂÞ :ô·Ê Q¯2ÍÚ Íñ Úþ ºÂ^ :G:¸Ê‚ <¸Â•ÉÍÚ Íñ Úþ Â" ÍV·Ê :ê·ÊI :ç·Ê_ Í0 ++CRC err++ Ãå :ê·Êl :ç·Ê_ Í0 ++ CKSUM ++ Ãå ͈ Ã’ >ÍaÉ:ç·Ê¹ Í0 SEND # å*͆Í0 (ͪÍ0H)á>Ía:Ía:/ÍaÉ>2Í!€~Ía,ÂÙ ¯2ÉyÍaÉÍEzÍa{Ía¯ÉÍ ÚkþÈG:ç·Ê)Í0 xÍ·Í0H RCD, NOT ACK :<2þ Ø:ê·ÊA:ç·ÊFÍÎ7ÈÍD CAN'T SEND SECTOR -- ABORTING $:ç·Ê)Í0 TIMEOUT ON ACK Ã)ÍhÈÍsþÀ1ÍÒ˜>ÍaÍÒ¥> ÍaÍ0 ROUTINE CANCELLED >B2ìÃÞå*#"}áÉ:ì·Ê+\Í<ÈÍ0FILES EXISTS -- TYPE 'Y' TO ERASE: ÍsõÍ[ñÍ}þYÂcÍN\ÍÉÍ0 No file specified Ãc\Í<ÀÍDERROR - CAN'T MAKE FILE DIRECTORY MUST BE FULL $#\Í*}" !"}É\Í<ÂÄÍDCAN'T OPEN FILE$:ì·ÂÐ:ç·ÈÍ0FILE OPEN, SIZE: * ͆Í0 (ͪÍ0H) SECTORS É\Í<ÀÍDCAN'T CLOSE FILE$: =2 ú:*€Íg"É:þ7ÈFÅÕÍ\ÍÑÁ·Êx=ʇÍD++ FILE READ ERROR ++$!€ë yþ€Ê�ÃF>2y2 !F"€ÍÃ#*ë!€Ígë": <2 þ€À: ·ÈOFåÕÅÍ\ÍÁÑá·Âí!€ë ¯2 !F"ÉÍaÍDERROR WRITING FILE $ÛÛÕx‡GPÃÍ‹ÛæþÊ0ÂÂÂÑ7É>ÓÛæ02ÛÑõÍ�O:è·ÊY:ê·Â^:·Ê^ñõÍñ·Éõ:é·Êw:ê·Â|:·Ê|ñõÍñõÍ�OÛæþƒñÓÉ:ê·Êž:ç·Ê¸Í0AWAITING INITIAL NAK Í‹ÍþÈþCÊÏÊ•øÍ0CRC request received ¯2ôÉ*"l"w"aÉ]2åþ Ê%!æ¾Â6Ã#ÂÃ:ô·Â4:åþRÂ:ê·À2çÉ:ì·Â¤:ç·Ê}!]_ÍiÍiÍ0 TRANSFERRED :\2Ð!\Í�:Ð2\!õÍi:Ñ·Â}Ãê>ÿ2(2ä/2�:ê·Ê¾:ç·ÊÞÍ0 ALL TRANSFERS COMPLETED >C2ô>ÿ2):ë·ÂcÍNÃ!þí³ÉDÁh!l\Íi¯2|2hÉþ ÊAþ ÊAþ ÊAþ Ú2þÚAõ>(ÍAñÍ·>)ÃAÅÕå_ÍáÑÁÉõ> Í[> Í[ñÉõÅÕåOÍáÑÁñÉÅÕåÍáÑÁ·ÉÅÕåÍáÑÁÉþaØþ{Ðæ_ÉõÅÕåöÿÿÿ Ú� ë|µÄ†{Æ0ÍAáÑÁñÉåõ|Í·}Í·ñáÉõÍÀñæþ ÚÉÆÆ0Ã[:ì·Â×<ɯ2Í0MULTIPLE ERRORS ENCOUNTERED. TYPE Q TO QUIT, R TO RETRY: ÍsõÍNñÍ}þRÈþQÂηÉã~·Ê=ÍA#Ã1ãÉ ÃÑÍ?Í0:ì·ÂÞ>Q2çÕ€ÍÀ~#ÂiÉ*!\ÍÓÍ:]þEÈþMÈGþTÊúþSʸþRŸ:ì·ÈøÍ0 ++Bad Option++ þ:mþ ÀÍ0 Re-enter PRIMARY option and file name only: *ÍœÃr:mþ Â>2�>ÿ2ä/É>2äÉå!"aáÉõÅåO*ayO}o|gÒ:|îg}î!oÂ&"aáÁñÉõ¯ÍÍå*aT]áñÉå*a|µáÈ>ÿÉ!õÍi!íæÍi>2n /2(:·ÂzÍ0 PRIMARY OPTIONS: WRT - Write file to disk (from terminal mode) DEL - Erase present file (from terminal mode) RET - Return to terminal mode with no loss of data Í0XPR - Toggle expert mode (Menu on/off) DIR - List directory (may specify drive) CPM - Exit to CP/M S - Send CP/M file {^Y - Toggle save on/of R - Receive CP/M file { ^E - Exit to menu T - Terminal mode (optional file name) { ^T - File transfer mode E - Terminal mode with echo { ^X - Cancel file transfer SECONDARY OPTIONS: B - Batch mode Multi File transfers T - Terminal mode after file transfer (memory save off) R - View what is received in file transfer S - View what is sent in file transfer Í0 DEFAULT DRIVE: ÍÆAÍ[Í0 Command: *ÍœÍN,ÍCPMÒ\ÍDIRÒÍRETÚØ*ÎÃÍWRTÒ7ÍXPRÒeÍDELÒå:,!yÍoáÚ‚åÍráØÂÍËÃz:þ Ê‚Í5>ÿ2ä/2�!Í�Â:äþÿÊ‚:þ Ê‚*ÎÍòÍ Í,>ÿ2ä/2�!Í�Â:/2ÂF#¾ÈÂp7ÉSRTEMãÕ~·Ê˜¾Â�#Ã�>#¾Â’7Ñ#ãÉõåÅÕÍwÑÕ¯ë͇þ ÊhþÊçþÊçþÊþÊ,þÊ[þ ÚªGëáå#4+~#¾ÚQëpx;#êëáå#G~ÖwÚë+xF6 þÊ x;ê4ëê;> ;>;ê>#;> ;> ;àÑÕG>#;> ;> ;x·Êª;ÂEê>;5ëê> ;> ;ê> ;> ;ÑÁáñÉÑáåÕF##> w#€ÉåÕÅͬ·ÊŠͤþaÚ þ{Ò æ_ÁÑáÉ*éåÕÅͶÁÑáÉ*éåÕÅõÍÊñÁÑáÉ* OéõÅÕåÍMë#^#6 áÑÕåÍxÍŠþ Ê9þ Ê áå ÍŠþ Ê9þ Âà þ Ê9áå ÍxÍŠþ Ê9áå ÍŠáå#Ížáå ÍžáÑÁñÉåÅ6# > Íq>Íq > Íq>ÍqÁáÉw#ÂqÉþ:ˆæ_Ö@w#Éþ Èþ.Èþ È úŠw#Ê~þ*Ê®# ñÍÃ~þ*Ê¿#ÈóÍÃÉ6?#ÂÃÉ*!\ÍÓ!ÂÍ�:l2Â:mþ õÌsñÄ�Íœ€Í¯2ãÂÍþÿÊbÍ�~·ÊRûÿ~æ€ÂRöÿ#5ÍiÍiÍ0 | :ã<2ãæ·ÌNÂÍþÿÊoà Í0NOT FOUNDÍNÉ>? !Ãw#ÂzÉ!mà ÍiÉæ‡‡‡‡‡_!€É:·ʨÆ@ïÍÆA2½Í0 DRIVE ÉoDQRSVTDQRSVTBCFFÍ0INVALID OPTION Ãcÿÿ€: ++BAD LIBRARY NUMBER CALLED++ $LED++ $åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå;--------------------------------------------------------------------------- ; ; SUPERBIOS implementation example - Memory disk ; ;-------------------------------------------------------------------------- nbanks equ 4 ;number of 16K banks available memory equ 16h ;SBC memory control port bnkslct equ 40h ;bank select for memory disk rambase equ 4000h ;bank address - 4000h recommended dirbuf equ 0F900h ;for standard system secbuf equ 0F980h ;use floppy deblocking buffer for two-stage transfer .z80 ; org at 0 code relative, control location at link time jp ramhome jp ramsel jp rsettrk jp rsetsec jp rsetdma jp ramread jp ramwrite ret nop nop ;no flush needed db 'RAMDISK ' ;module name for display in more advanced loader ramhome: ld C,0 rsettrk: ld A,C ld (ramtrk),A ret rsetsec: ld A,C ld (ramsec),A ret rsetdma: ld (ramdma),BC ret ramsel: ld HL,ramdph ret page 60 ; Disk tables for memory disk - see CP/M 2 Alteration Guide for details ramdph: dw 0,0,0,0 ;no sector translate dw dirbuf ;use dirbuf in floppy module dw ramdpb dw 0 ;no directory check dw ramalv ;allocation vector ramdpb: dw 128 ;128 sectors per track - each 16K bank is a one ;track db 3 ;BSH - use 1K blocks if <257K memory db 7 ;BLM db 0 ;EXM dw 16*banks-1 ;if using 1K blocks dw 63 ;64 directories should be enough db 0c0h ;two directory blocks db 0 dw 0 ;no directory check dw 0 ;no system tracks ramalv: 2*nbanks-1 ;for 1K blocks ramtrk: ds 1 ramsec: ds 1 ramdma: ds 2 page ;------------------------------------------------------------------------- ; ; The only actual i/o involved is blockmoves between the memory bank ; and the user's DMA area. If the DMA area is masked by the bank ; address, we must transfer through a secondary buffer. ; ;------------------------------------------------------------------------- ramread: ld C,0 ;read/write flag jr ramio ramwrite: ld C,0ffh ramio: ld HL,(ramdma) ld B,H ld A, 11000000b and B ;get two high order bits of address dec A ;if bank addressed at 4000h jr nz,onetran ;DMA address is masked by memory bank ld A,C or A jr z,dblread ;must do write through secondary buffer ld DE,secbuf ld BC,128 ldir ;move from DMA to secondary buffer ld HL,secbuf ;make onetran think this is DMA address ld C,A ;read/write flag jr onetran dblread: ld HL,secbuf call onetran ;read from bank to secondary buffer ld DE,(ramdma) ld HL,secbuf ld BC,128 ldir ;move from secondary buffer to user DMA ret ;A set to 0 in onetran page onetran: call bankon ;turn on memory bank ld A,(ramsec) srl A ld DE,rambase rr E ;put low order bit of A (odd number of sectors) add A,D ;in E and base + sectors/2 in D ld D,A ld A,C ;readwrite flag ld BC,128 or A jr nz,dowrite ;write operation ex DE,HL ;set to read to user DMA dowrite: ldir call bankoff ;restore SBC memory xor A ret ;return with no errors bankon:  ;turn on 16K bank at 4000h ;can use A,B,DE ld A,00101101b ;turn off 4000h bank on SBC out (memory),A ld A,(ramtrk) ;each track is one 16K bank dec A ld B,A ld A,1 jr z,setbnk ;bank 0 shift: add A,A djnz shift ;A now has one bit set at position (ramtrk) setbnk: out (bnkslct),A ;for boards with one bit per bank ret bankoff: xor A out (bnkslct),A ;turn of memory board ld A,00101111b ;turn on 4000h bank of SBC memory ret end ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååÖ Íq Í:rþ(þ8á ÍC ÍÛs!õþ0Úþ:ÒÖ0DM)) )…oÂN$ñ=Â3))–gí°þ ÍÍÖ0þ8 á Íã2e8 Í:eÍYi ÍÍþ ʬP ÍÓ“ Í@!s6ÿ#¹*f&"k:gG_!s}/o|/g#"ox/o&ÿ#"ms*oÒú*mëÃë§úÃëx*k:g¸Âö> ÓçÛç§ú> G>€°G:e°2e*håÍh:jWÕÅzÍYÍÁÑ:gÓâáå}Óä|Óå:e²Óæ>PÓç!s>àO¯íyí£ úÛç§únÚ‹Í7ò9á+|§åò2áÀ Í*h:j_:g=WÍhKåÕÅyÍYÍÁÑáBxÓã}Óä|Óå:e±Óæ> ÓçÛç§úÅÒåÕÅá ÍÛáÍPò ÍÛææÍYü ÍÛåÍPÛäÍP ÍÛãÍP¿ ÍÍhÁÑáÍ7ò² ò +|§òœ ÍÓåÕŠͧ( ÍþÊ¡ÁÑáÉõÍYñæÆ�'Î@'_ÍÉÕÅå´ Íáå|ÍPáå}ÍP­ ÍáÁÑÉ& ÍØ˜˜˜˜å1ŸŸŸÿÿÿÿÿÿADVANCED DIGITAL CORPORATION HDC1001 Hard Disk Controller Formatter Select disk type from following menu *** Hard Disk selection choices *** 0 = ST503 ; Seagate Technology ST503 1 = ST506 2 = TM601S ; Tandon Magnetics TM601S 3 = TM602S 4 = TM603S 5 = TM603SE 6 = TM501  ; Tandon Magnetics TM501 7 = SA602 ; Shugart Associates SA602 8 = SA604 9 = SA606 10 = SA1002 ; Shugart Associates SA1002 11 = SA1004 12 = Q2010 ; Quantum Q2010 13 = Q2020 14 = Q2030 15 = Q2040 ? $ Invalid input try again. $ Which physical hard disk do you want to format. (0-3)? $ This operation will destroy all data on drive $. Hit return to continue or ^C to abort.$ Formatting. CYLINDER HEAD $$ Verifying. CYLINDER HEAD $ HDC1001 Error $ on Head $, Cylinder $, Sector $ Format completed.$Sorry, unrecoverable error during format.$ Operation aborted.$@åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå1Ã2 SBC Z80 SUPER QUAD DOUBLE / SINGLE $ ÍÃd DENSITY FORMAT PROGRAM vs 2.0$= Í>å2çà Enter Density, Single or Double (S,D) :$t ÍÍÃþD´¯Ã»þS¹>N2àÃð Enter Disk Drive to be Formatted (A,B,C,D) :$Á Í>ÿ2ßÍÃÖAÚ¹þÒ¹O2äÃ< Format System Tracks only ? (Y,N) :$ ÍÍÃþNÊUþY¯2߯2ã:à·Â²>æ2çÓ Format Single or Double Sided (S,D) :$h ÍÍÃþSʲþDÂU>ç2ç>2ãÃÓ Insert diskette into drive $µ Í:äÆA_ÍÃ: and press the Return key $é ÍÍþ Âà $ Í:äÓ>óÓ Ûû¯W2å!ñ>ÿ(Íû¯Íû6ü#>ÿÍû¯Íû6þ#r#:åw#s#6#6÷#>ÿ Íû¯Íû6û#>å€Íû{=²Â•:à·Â•+:çw#6÷#>ÿÍû{þÂS>ÿÍû ¨Õ!ñë!Ö>ôóÓ ÍÖûÑÛ ·Â :à·ÊózÓ:àºÊl>óÓ Ûû:ßGzÖ°ÊlÃ7¯2å:ã·ÊÜ>2å:凇G:ä°öÓ!è"á!ñP>NÍû:ã·Ê5zþÂBÃ;zþÂB{þ ÃNå*á^{#"áá·Ê¡Í>õÍû6þ#r#:åw#s#6#6÷#>NÍû ¯Íû>õÍû6û#>åÍûÍûÍûÍû6÷#>NPÍûÃ%>NÍû £Õ!ñë!Ö>ôóÓ ÍÖÑÛ û·Â :ã·Êà:å=ÊÜ>2åï2åzþMÊlÓ>óÓ Ûû:ß·ÊlÃw#ÂûÉ ¯ÍûÉõÃ< Disk Formatting Error Disk drive Status : $  ÍñõÃ`õÍRñæÆ�'Î@'_ÃÍIñõæ€Ê‹ñÀ Drive not ready$n ÍÃlñæ@Êlî Disk is write protected$” ÍÃl:æÓï2ó ñ>PÍ:óÉÛ·ðÓéèååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå SUPERBIOS distribution diskette contents: CPM.SYS      ió  á  memorù  imagå  oæ CP/Í  witè  thå  SUPERBIOS® �              Customeró whï havå noô purchaseä CP/Í froí  Advanceä �              Micrï  Digitaì  wilì receivå á CPM.SYÓ witè thå  CCÐ �              anä   BDOÓ  zeroeä  out®   Seå   CPMINSTA.DOà  foò �              installatioî procedure. USER.DOC giveó  basiã informatioî necessarù foò thå operatioî �              oæ CP/Í witè thå SUPERBIOS¬ aó welì aó á descriptioî �              oæ thå contentó oæ alì thå .DOà files-              CPMINSTA.DOC¬ NEWSIZE.DOC¬ FORMAT.DOC¬ INTRFACE.DOC SUPRBIOS.MAC ió  thå sourcå filå foò thå SUPERBIOS®  Iô  caî  bå �              editeä   anä  reassembleä  iæ  modificatioî  oæ  thå �              SUPERBIOÓ   ió   desired®    Thå   procedurå    foò �              incorporatinç   á   ne÷   BIOÓ   ió   describeä   iî �              NEWSIZE.DOC. FORMAT.COM ió  thå  SUPERBIOÓ floppù disë formaô  program®  Iô �              wilì  onlù ruî oî thå SUPEÒ QUAÄ SBC¬  buô wilì  ruî �              undeò  thå previouó BIOS®  Internaì detailó oæ  thå �              disk formats are described in FORMAT.DOC. LDRGEN.COM ió  thå  equivalenô oæ SYSGEN.COÍ iî á  normaì  CP/Í �              system®  LDRGEN.COÍ  transferó thå  SUPERBIOÓ  colä �              starô   loadeò  froí  sourcå  (usuallù  á  disk©  tï �              destination® Detailó oæ thå loadeò operatioî arå iî �              LOADER.DOC. FORMAT.ASM is the source file for FORMAT.COM. SBCBOOT.ASM ió thå sourcå filå foò thå colä loadeò oî tracë zerï �              sector one, which is brought in by the monitor PROM. SBCBOOT.HEX ió  thå assembleä SBCBOOT.ASM¬  foò installatioî  iî �              customized loaders. LDRBDOS.MAC ió  thå  sourcå filå foò thå  logicaì  (non-hardwarå �              dependent) portion of the loader. LDRBIOS.MAC ió thå sourcå filå foò thå hardwarå driveró tï  makå �              thå  loadeò  worë  witè thå SUPEÒ QUAÄ  floppù  disë �               controller. rmats are described in FORMAT.DOC. LDRGEN.COM ió  thå  equivalenô oæ SYSGEN.COÍ iî á  normaì  CP/Í �              system®  LDRGEN.COÍ  transferó thå  SUPERBIOÓ  colä �              starô   loadeò  froí  sourcå  (usuallù  á  disk©  tï �              destination® Detailó oæ thå loadeò operatioî arå iî �              LOADER.DOC. FORMAT.ASM is the source file for FORMAT.COM. SBCBOOT.ASM ió thå sourcå filå foò thå colä loadeò oî tracë zerï �              sector one, which is brought in by the monitor PROM. SBCBOOT.HEX ió  thå assembleä SBCBOOT.ASM¬  foò installatioî  iî �              customized loaders. LDRBDOS.MAC ió  thå  sourcå filå foò thå  logicaì  (non-hardwarå �              dependent) portion of the loader. LDRBIOS.MAC ió thå sourcå filå foò thå hardwarå driveró tï  makå �              thå  loadeò  worë  witè thå SUPEÒ QUAÄ  floppù  disë �             å CP/M MODEM PROGRAM DOCUMENTATION 05/18/82 Thió  prograí  useó  thå filå transfeò routineó writteî  bù  Warä � Christenseî iî hió CP/Í filå transfeò prograí (V2.° aó oæ 8/6/79© � anä ió compatablå witè hió prograí iî singlå filå transfeò  mode® � Multi-filå  transferó  arå  onlù  possiblå  betweeî  twï  systemó � runninç thå prograí describeä below. This program has two functions: 1. Communication 2. Program transfer COMMUNICATIONS Thå  prograí  maù emulatå á terminaì oò echï datá bacë tï  sendeò � (acô aó á computer). Terminal Mode - 'T' Option      Thå terminaì modå maù bå calleä witè oò withouô á filå name® �      Iæ  á  filå  ió specifieä (iô shoulä bå á  ne÷  file)¬  theî �      anythinç  receiveä bù thå modeí maù bå saveä iî  memorù  anä �      lateò writteî oî disk® Thå savå featurå ió toggleä ON/OFÆ bù �      Control-Y®  Á  coloî (:© wilì bå printeä aô thå beginninç oæ �      eacè linå wheî memorù savå ió active®  Thå coloî wilì noô bå �      transmitteä oveò thå modeí noò wilì iô bå saveä iî memory.      Iæ  á  filå ió noô specified¬  theî memorù savå caî  noô  bå �      activated.      Iæ  thå memorù buffeò ió fulì (thå buffeò ió froí thå toð oæ �      thå prograí tï thå bottoí oæ BDOS)¬ thå contentó arå automa-�      ticallù  writteî tï disë (buô thå filå ió noô  yeô  closed)® �      Communicationó  maù theî continuå witè thå buffeò reinitial-�      ized®  Thå  computeò witè whicè yoõ arå  communicatinç  musô �      accepô  thå X-OÎ anä X-OFÆ (Control-Ñ anä Control-S© conven-�      tionó oò datá wilì bå lost.      Wheî communicationó arå over¬ uså Control-Å tï exiô froí thå �      Terminaì modå anä enteò thå Menu®  Thå filå tï whicè yoõ arå �       writinç musô theî bå closeä bù usinç thå 'WRT§  command®  Iæ �      thió  ió noô done¬  alì datá wilì bå lost®  É decideä noô tï �      closå thå filå automaticallù sincå therå wilì bå timeó  wheî �      yoõ  leavå terminaì modå anä theî decidå tï  re-enter®  Thió �      maù  bå  donå whilå iî thå Menõ bù usinç thå 'RET§  command® �      Yoõ maù re-enteò Terminaì modå anä savå iî thå samå filå  aó �      manù  timeó  aó yoõ wisè aó lonç aó yoõ havå noô closeä  thå �      filå witè thå 'WRT§ command.      Whilå  iî  Terminaì  mode¬  Control-Ô wilì puô yoõ  iî  Filå �      Transfeò mode®  Thió wilì allo÷ yoõ tï senä thå contentó  oæ �      aî  ASCIÉ  filå oveò thå modem®  Thió routinå doeó nï  erroò �Š      checkinç  anä therå arå nï protocoló specifieä betweeî  thió �      prograí anä thå receivinç computeò otheò thaî thaô iô shoulä �      bå  readù  tï receivå datá viá  thå  modem®  Control-Ø  wilì �      canceì thå transfer. Computer mode - 'E' Option      Thió  modå echoó datá receiveä bù otheò computer®  Onlù  onå �      computeò maù bå iî thió modå aô onå time®  Therå ió nï  savå �      featurå iî thió mode® Usefuì iæ yoõ wisè tï communicatå witè �      somebodù runninç thå terminaì portioî oæ thå program. File transfer - 'S' and 'R' Options      Theså  featureó  arå thå samå aó iî thå CP/Í  Modeí  prograí �      writteî  bù Warä Christenseî excepô thaô upoî completioî  oæ �      thå transfer¬  controì returnó tï thå Menõ unlesó thå secon-�      darù  'T§  optioî haó beeî selected®  Iî  thå  latteò  case¬ �      controì  returnó tï Terminaì mode®  Remembeò thaô iæ yoõ arå �      operatinç  á  remotå computeò usinç  á  timesharinç  prograí �      (sucè  aó  Warä Christensen'ó "BYE")¬  thå remotå shoulä  bå �      instructeä  tï  senä oò receivå iî thå quieô (Q© modå  aó  á �      secondarù option®  Exampleó oæ commandó foò sendinç anä  re-�      ceivinç arå listeä below. Multi-file transfers      Usinç thå  (batch© secondarù option¬ morå thaî onå filå anä �      ambiguouó filenameó maù bå transferred®  Tï senä files¬  uså �      thå  primarù optioî "S¢ anä thå secondarù optioî "B¢  (alonç �      witè  anù  otheò secondarù options)®  Tï receivå  thå  fileó �      beinç sent¬ uså thå "R¢ primarù optioî anä thå "B¢ secondarù �      option®  Fileó  maù noô bå nameä sincå filenameó arå senô bù �      thå sendinç program¬  buô á disë drivå maù bå specifieä  (oò �      elså thå fileó arå writteî tï thå defaulô drive). Backup option      Therå  ió á bytå aô thå beginninç oæ thå prograí (106H© thaô �      wilì creatå á backuð filå iæ á filå oî thå disë haó thå samå �      namå aó thå filå beinç receiveä iî multi-filå transfeò  (seå �      MODEM.SET)®  Iæ thió bytå ió seô tï 0FFH¬ á backuð filå wilì �      bå  created®  Iæ  iô  ió zerï thå filå oî thå disë  wilì  bå �      deleteä beforå thå ne÷ filå ió received®  Iæ yoõ arå runninç �      CP/Í  ² anä á filå oî thå disë ió designateä R/Ï oò  SYS¬  á �      backuð  wilì bå createä whetheò thå bytå aô 106È ió  seô  oò �      not.      Bå  carefuì  - iæ  yoõ arå runninç CP/Í ± anä thå  drivå  oî �      whicè  yoõ arå receivinç haó aî R/Ï filå witè thå samå  namå �      createä bù CP/Í 2¬  thå R/Ï filå caî noô bå accesseä (found¬ �      changed¬  erased¬  etc.© bù CP/Í 1®  Yoõ wilì thereforå havå �      twï fileó witè thå samå namå wheî yoõ arå runninç CP/Í 2® Tï �      fiø thió problem¬  uså CP/Í ± tï changå thå namå oæ thå filå �      thaô  ió noô R/O®  Theî uså CP/Í ² tï dï whaô yoõ wanô  witè �Š      thå R/Ï file. Examples:       Thå  sendeò enteró SBÔ B:*.COÍ tï senä alì thå COÍ fileó  oî �      disë  B®  Alsï  specifieä waó returî tï terminaì  modå  wheî �      done.      Thå  receiveò enteró R tï receivå alì thå fileó beinç  senô �      oî thå defaulô drive.      Thå  sendeò enteró thå commanä S ASM.COÍ *.HEØ B:M*.ª whicè �      wilì senä ASM.COÍ froí thå defaulô drive¬  alì thå HEØ fileó �      froí thå defaulô drive¬  anä alì thå fileó startinç witè "M¢ �      froí thå  drive.      Multifilå transferó maù onlù bå donå froí thå menu®  Iô  maù �      noô bå specifieä wheî thå MODEÍ prograí ió called®  Iî otheò �      wordó  A>MODEÍ  SA *.COÍ wilì resulô iî aî  INVALIÄ  OPTIOÎ �      erroò message. Return to Menu - 'M' option When asked to select an option, 'M' returns to Menu. The MENU      Iæ thå Modeí prograí ió entereä witè nï option¬  thå Menõ ió �      called®  Thå Menõ giveó thå choicå oæ selectinç thå standarä �      optionó aó defineä bù Warä Christenseî (T¬ E¬ R¬ anä S)® Thå �      Terminaì modå haó beeî greatlù expandeä aó describeä  above® �      Thå  "R¢ anä "S¢ commandó musô bå calleä witè á filenamå  oò �      yoõ  wilì bå requireä tï enteò thå primarù commanä (Ó oò  R© �      anä thå filenamå agaiî (buô NOÔ thå secondarù options)®  Iæ �      yoõ wanô multi-filå transfers¬ theî thå "R¢ optioî doeó noô �      neeä á filename. REÔ  - Yoõ maù alsï enteò terminaì modå usinç thå 'RET§  command¬ �      buô nï datá wilì bå saveä sincå á filå maù noô bå nameä witè �      'RET'® Uså thå 'RET§ commanä tï RE-ENTEÒ Terminaì modå afteò �      iô  haó firsô beeî entereä witè thå 'T§ option®  Iæ thió  ió �      done¬  yoõ  wilì stilì bå ablå tï savå thå communicationó iæ �      yoõ werå doinç sï beforå yoõ exitteä thå terminaì mode. WRÔ - Thå 'WRT§ commanä musô bå useä afteò leavinç Terminaì mode® �      Thió  writeó  thå lasô buffeò tï disë anä closeó  thå  file® �      Failurå tï uså thå 'WRT§ commanä resultó iî losó oæ alì datá �      anä á filå oæ lengtè zero. DEÌ  - Thå 'DEL§ commanä eraseó thå mosô recenô filå accesseä  iî �      Terminaì  mode®  Usefuì iæ yoõ decidå  afteò  communicationó �      thaô yoõ don'ô wanô tï savå informatioî jusô gathered. CPM - The 'CPM' command reboots and returns to CP/M. Š XPÒ  - Thå 'XPR§ commanä ió á togglå whicè causeó thå menõ tï  bå �      printeä oò noô printed®  Initiallù thå menõ ió oî unlesó thå �      prograí ió calleä witè thå "X¢ optioî (ie® A>MODEÍ Ø ). DIÒ  - Thå 'DIR§ commanä listó thå directorù oæ á  CP/Í  disk®  Á �      drivå  maù bå specifieä (ie®  DIÒ B:© oò thå  defaulô  drivå �      wilì bå listed® Afteò thå directorù ió listed¬ thå menõ wilì �      noô bå printeä whetheò XPÒ modå ió oî oò off® Iæ XPÒ modå ió �      oî anä yoõ wisè tï seå thå menu¬ hiô return. LISTING OF COMMANDS AND OPTIONS Primary options S - send a CP/M file (must specify file/s) R - receive a CP/M file (must name file unless B sec opt used) T - terminal mode (specify file if memory save wanted) E - terminal mode with echo M - return to menu X - used only when program is called to initially toggle menu off Secondary options B - multi-file mode for sending and receiving files T - return to terminal mode after transfer (memory save off) R - view what is received in file transfer S - view what is being sent in file transfer V - view what is being sent or received in file transfer T - Terminal mode (used with remotely controlled computer) EXAMPLES (fn = filename, ft = filetype) Send another file S fn.ft Receivå filå oî  drive¬ vie÷ whaô ió beinç received¬ returî �      tï terminaì modå RRT B:fn.ft Senä  alì COÍ files¬  nï messageó oî console SBQ *.COM Send two files from two different drives SB A:fn1.ft1 B:fn2.ft2 Receive files being sent by above on drive A RB A: Š Terminaì mode¬ savå communicatioî iî file¬ (iî terminaì musô �      typå CTRL-Ù tï starô save¬  iî menõ musô typå "WRT¢ tï closå �      file.) T fn.ft COMPUTER TO COMPUTER TRANSFERS      Tï uså thió prograí foò transfeò oæ fileó betweeî twï compu-�      teró  thaô  eacè arå runninç thió prograí anä  arå  directlù �      connecteä  togetheò bù aî RS-23² seriaì linë iô ió necessarù �      tï bå carefulì iî connectinç them® Eacè computer'ó senä datá �      linå musô bå connecteä tï thå otheró receivå datá line. EXAMPLE: pins pins /----------\ RS-232 CABLE /----------\ | |2____________________________________3| | | Computer | | Computer | | # 1 |3____________________________________2| # 2 | | | | | | |7____________________________________7| | \----------/ \----------/  SUPRBIOS loader operation Thå SUPERBIOÓ makeó uså oæ á systeí filå loadeò tï brinç thå � systeí intï memorù oî á colä boot® Thå loadeò ió alloweä tï bå á � maximuí oæ C80È byteó long®  Iî thå standarä implementation¬ thå � loadeò  lookó  foò thå filå CPM.SYÓ oî floppù drivå °  (thaô  is¬ � thaô  drivå whicè repondó tï thå physicaì linå Drivå Selecô °  )® � Iæ thå filå ió noô present¬ thå loadeò wilì responä witè aî erroò � messagå  tï thå terminal®  Otherwise¬  thå loadeò wilì loaä  thå � systeí   filå  intï  memorù  startinç  aô  somå  buffeò  locatioî � (normallù 2000H)® Thå loadeò theî determineó thå loaä addresó oæ � thå  CP/Í systeí anä blockmoveó iô tï thaô address®  Thå  loadeò � alsï  filló iî á tablå iî thå SUPERBIOÓ whicè containó á  mað  oæ � wherå oî thå disë thå filå CPM.SYÓ ió located®  Thió informatioî � ió necessarù sï thaô thå SUPERBIOÓ caî reloaä thå CCÐ anä BDOÓ oî � á  warí  boot®  Thaô ió whù yoõ musô noô changå densitù  oî  thå � systeí  disë iæ iô ió á floppy¬  sincå diskó oæ differenô densitù � havå  thå  CPM.SYÓ filå iî differenô places¬  anä  changinç  disë � density makes a warm boot impossible. Thå LDRGEÎ prograí ió thå equivalenô tï SYSGEÎ iî á standarä � system®  Iô transferó thå outeò tracë onlù froí thå sourcå  disë � tï  thå destination®  Afteò runninç LDRGEN¬  yoõ musô transfeò á � valid CPM.SYS file to the disk for it to be bootable. Customizing the loader: Thå  loadeò ió á .COÍ filå whicè executeó aô 100H®  Iæ  yoõ � wisè  tï  booô ofæ á disë otheò thaî á  floppù  drive¬  yoõ  musô � integratå á customizeä BIOÓ foò thå loader® Thå BIOÓ ió org'ä aô � 500È  witè á standarä BIOÓ jumð table¬  anä musô supporô  consolå � outpuô  anä alì disë functionó excepô writå (foò thå singlå  booô � disk). Sincå thå loadeò ió á .COÍ file¬ yoõ caî debuç iô bù runninç � thå  loadeò  aó á normaì transienô prograí undeò  youò  debugger® � Wheî  thå  custoí loadeò ió debugged¬  iô caî bå LDRGEN'ä ontï  á � disë bù passing the file name as a command parameter to LDRGEN: LDRGEN B:CUSTMLDR.COM Thå  loadeò sourcå ió includeä foò youò use®  Thå  loagicaì � functioî oæ thå loadeò iî findinç á filå oî thå defaulô disë  caî � bå  useä tï supporô loadinç oæ systeí fileó froí á booô volumå tï � á volatilå systeí volumå (e.g® á memorù disk)® Modifù thå loadeò � sï thaô afteò thå systeí ió loadeä anä blockmoved¬  thå  coldbooô � routinå  returnó tï thå loader®  Theî reaä thå systeí filå  froí � thå  booô  volumå  anä writå theí tï thå systeí disë  usinç  BDOÓ � calls. g'ä aô � 500È  witè á standarä BIOÓ jumð table¬  anä musô supporô  consolå � outpuô  anä alì disë functionó excepô writå (foò thå singlå  booô � disk). Sincå thå loadeò ió á .COÍ file¬ yoõ caî debuç iô bù runninç � thå  loadeò  aó á normaì transienô prograí undeò  youò  debugger® � Wheî  thå  custoí loadeò ió debugged¬  iô caî bå LDRGEN'ä ontï  á � disë bù passing the fileå Welcome to the SUPERBIOS Thió  ió onlù aî introduction®  Seå thå followinç fileó foò � additional information: FORMAT.DOC for detailed information on the disk format. CPMINSTA.DOà foò installatioî oæ thå systeí foò  useró  whï � already own CP/M. NEWSIZE.DOà tï regeneratå thå systeí foò á differenô memorù � size. INTRFACE.DOC for information on modifying the BIOS. Generating a new system disk: Assuminç yoõ alreadù havå á bootablå systeí disk¬  eitheò bù � purchaså oæ CP/Í froí Advanceä Micrï Digitaì oò bù followinç  thå � steps outlined in CPMINSTA.DOC- Uså  FORMAT.COÍ tï formaô á blanë disë iî thå desireä formaô � (Standarä  eighô incè singlå densitù diskó generallù  don'ô  neeä � refomatting)®  Placå youò systeí disë iî Aº  anä thå destinatioî � disk in B:. Run LDRGEN from A to B. Uså  PIР tï  transfeò thå filå CPM.SYÓ froí Á  tï  B®  Foò � optimuí performance¬  CPM.SYÓ shoulä bå thå firsô filå yoõ  writå � tï anù systeí disk®  Thió ió becauså thå systeí musô accesó thió � filå oî eacè warí booô (control-C)¬ anä thå accesó ió mucè fasteò � iæ  thå  filå ió oî thå outermosô trackó oæ thå disë  (fileó  arå � writen to a new disk from the outer tracks in). .pa ŠOperation of the SUPERBIOS: Thå  SUPERBIOÓ behaveó iî generaì aó anù normaì CP/Í system® � However¬  yoõ  musô noô changå densitù oæ diskó withouô  doinç  á � control-C®  Thió ió becauså thå SUPERBIOÓ checkó onlù oncå afteò � each warm boot to see what density each disk is. Iî  general¬  yoõ  maù  changå  systeí  diskó  aô  anù  timå � provided: 1) The system disks are the same density. 2) CPM.SYS is the first file on each disk. Iæ  yoõ  wisè  tï changå densitù oæ systeí  diskó  yoõ  musô � reboot the system (push the reset button and type control-C). Printer Selection: Thå  SUPERBIOÓ  containó  codå tï drivå  botè  thå  paralleì � printeò  interfacå  anä  thå seriaì interfacå aó  thå  CP/Í  lisô � device® Thå distributioî versioî haó thå paralleì printeò aó thå � default® Thå defaulô printeò caî bå changeä bù patchinç thå bytå � iî CPM.SYÓ witè DDT®  (bytå 1829È - seô tï ² foò parallel¬ ± foò � serial). Thå  systeí displayó thå defaulô printeò oî colä boot®  Thå � printeò  maù bå changeä aô anù timå tï thå alternatå bù  changinç � thå  iobytå  aô  locatioî 3®  STAÔ  LST:=CRTº  wilì  selecô  thå � alternate printer, STAT LST:=TTY: restores the default. NOTICE: Aó  shipped¬  thå  SUPERBIOÓ caî supporô eighô  incè  doublå � sideä  doublå densitù driveó oî thå firsô twï driveó ¨ ° anä ± )® � Iæ  thå  thirä  drivå ¨ drivå ² © ió  alsï  doublå  sideä  doublå � density¬  theî yoõ cannoô ruî á fourtè drive® Iæ thå thirä drivå � ió  singlå sideä doublå density¬  theî yoõ caî ruî á fourtè drivå � if it is also single sided. Thió limitatioî comeó froí thå facô thaô therå ió nï rooí iî � thå  BIOÓ  foò thå allocatioî vectoò necessarù  foò  fouò  doublå � sideä disks®  Iæ yoõ neeä tï ruî fouò drives¬ oæ whicè morå thsî � twï  arå  doublå  sided¬  yoõ wilì havå tï changå  thå  SUPERBIOÓ � Allocatioî Vectoò ³ tï thå samå sizå aó vectoò 0¬  anä generatå á � 61K CP/M by the procedure outlined in NEWSIZE.DOC. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå SUPRERBIOS internal interface specifications Thå  SUPERBIOÓ ió á modular¬  tablå driveî prograí  designeä � for easy expansion and modification. Thå  firsô  twï  memorù  pageó oæ thå  SUPERBIOÓ  perforí  á � mappinç froí logicaì unitó tï physicaì drivers® Thió parô oæ thå � program will not normally need to be changed. Thå  logicaì tï physicaì devicå assignmenô tablå ió aô  100È � relativå  tï  thå starô oæ thå BIOS®  Iô containó  sixteeî  disë � entries¬ fouò consolå entries¬ fouò lisô entries¬ onå reader¬ anä � onå punch®  Á tablå entrù consistó oæ twï bytes® Thå firsô bytå � ió thå higè ordeò bytå oæ thå addresó oæ thå devicå handler® Thå � handleò moduleó alwayó starô oî á pagå boundary¬  sï thió bytå ió � sufficienô  tï  specifù thå addresó oæ alì thå  routineó  iî  thå � handler®  Thå seconä bytå ió á devicå numbeò withiî thå handler® � Foò example¬ á harä disë formatteä aó twï logicaì driveó woulä bå � addresseä  bù twï tablå entries¬  botè witè thå samå addresó  buô � with two device numbers (0 and 1, usually). Thió  mappinç  systeí makeó iô possiblå tï  reconfigurå  thå � system without having to reassemble the BIOS. Driveò  moduleó comå iî twï flavors¬  characteò i/ï handleró � (consoleó  anä  lisô devices© anä disë  handlers®  Eacè  handleò � module starts on a page boundary with a jump table. Character handlers: The jump table is : table+0 jp poll console character in table+3 jp console character input table+6 jp console character output table+9 jp list character output table+0C jp list status table+0F eight character ASCII name for module Thå routineó receivå exactlù thå samå paramteró aó describeä � iî  thå  CP/Í  ² Alteratioî Guide®  Iî  addition¬  eacè  routinå � receiveó  thå devicå numbeò iî A®  Thå routineó wilì  returî  tï � their caller whatever the normal code for CP/M 2 would be. .pa ŠDisk Handlers: The jump table is : table+0 jp   home table+3 jp select disk table+6 jp set track table+9 jp set sector table+0C jp read sector table+0F jp write sector table+12H jp flush buffers Eacè  routinå  excepô flusè receiveó thå  normaì  parameteró � passeä  accordinç  tï  thå CP/Í ² Alteratioî  guide®  Thå  writå � routinå wilì receivå thå deblockinç informatioî iî à describeä iî � thå appendiø oî sectoò blocking/deblocking®  (Seå alsï thå  codå � foò  reaä anä writå iî thå floppù modulå oæ thå SUPERBIOS)®  Thå � device number is passed in A. Selecô disë receiveó twï addtionaì paramters®  Oî thå firsô � calì tï selecô á giveî disë afteò á warí boot¬ biô · oæ Á wilì bå � set®  Iæ  thå selecô ió successfuì (knowî bù thå selecô  routinå � returninç á nonzerï valuå iî HL)¬  thå biô wilì bå reset¬ anä biô � 7 of A will be reset until the next warm boot. Selecô  alsï receiveó á parameteò iî B®   ió zerï oî entrù � tï  selecô iæ thå lasô disë succesfullù selecteä waó iî thå  samå � modulå aó thå ne÷ disë beinç selected®  Thió informatioî maù  bå � useful in determining buffer flushing strategies. Thå  flusè  entrù poinô ió useä bù thå logicaì  disë  selecô � handler® Flusè ió calleä oî thå currentlù selecteä disë wheneveò � á  disë iî á differenô modulå ió selected®  Thió ió á sigî  thaô � anù  shareä bufferó musô bå flushed®  Flusè shoulä returî ° iî Á � iæ  thå flusè waó successful¬  nonzerï iæ aî erroò  occured®  Iæ � flush returns an error code, the new disk select will be denied. DMA address handling: Undeò certaiî conditions¬  thå BDOÓ wilì issuå á selecô disë � calì tï á ne÷ disk¬ anä expecô thå previouó DMÁ addresó tï remaiî � iî force® Therefore¬ thå Seô DMÁ addresó BIOÓ calì simplù storeó � thå valuå aô á fixeä locatioî (FÅ anä FÆ relativå tï thå starô oæ � thå BIOS)® Youò reaä anä writå routineó wilì havå tï geô thå DMÁ � address from this location before each operation. .pa ŠInterrupt handlers: Aô  thå moment¬  thå SUPERBIOÓ doeó noô havå anù  interrupt-� driveî  code®  However¬  futurå releaseó wilì uså interruptó foò � typeahead¬ harä disë controller¬ anä possiblù otheò useó aó well® � Thå uså oæ thå Z8° alternatå registeò seô ió reserveä foò  systeí � uså ONLY® Thió wilì enablå improveä performancå iî aî interrupt-� driveî   enviromenô   sincå  contexô  switchinç  wilì  bå   fast® � Therefore¬  wå  recommenä thaô anù modificationó yoõ makå tï  thå � codå dï noô uså thå alternatå registers¬ excepô iî youò interrupô � handlers. Verù fe÷ CP/Í programó uså thå alternatå registeò  set®  Iæ � yoõ  uså  onå oæ thoså thaô does¬  wå suggesô yoõ includå á  flaç � bytå tï indicatå tï youò interrupô handleró thaô theyõ musô  savå � registers®  Thió  wilì  bå includeä iî thå nexô releaså  oæ  thå � SUPERBIOS. Thå SUPERBIOÓ disableó interruptó wheî thå CPÕ ió waitinç oî � aî INTRÑ oò DRÑ froí thå FDC¬  durinç seeë anä sectoò read/write® � Interruptó  cannoô bå enableä durinç thå sectoò  read/write¬  buô � thå  seeë  caî bå rewritteî tï bå polleä iæ yoõ neeä thå  CPÕ  tï � samplå interruptó durinç thå seeë period® Á realtimå clocë usinç � á  6° Hú interrupô wiì loså timå durinç disë access¬  buô á ±  Hú � clock should be OK. Example SUPERBIOS module: Thå  filå RAMDISK.MAà ió includeä aó aî examplå oæ á modulaò � disë driver® Iô showó thå uså oæ thå disë calls¬ anä caî bå useä � as is. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå; ; Z-80 MACRO LIBRARY ; ; THE FOLLOWING MACROS ENABLE ASSEMBLING Z-80 INSTRUCTIONS ; WITH THE DIGITAL RESEARCH MACRO ASSEMBLER. ; ; INVOKE WITH "MACLIB Z80" ; ; ; ; MACRO FORMATS ; ----- ------- ; ; ; MACRO ZILOG TDL ; ----- ----- --- ; ; LDX R,D LD R,(IX+D) MOV R,D(IX) ; LDY R,D LD R,(IY+D) MOV R,D(IY) ; STX R,D LD (IX+D),R MOV D(IX),R ; STY R,D LD (IY+D),R MOV D(IY),R ; MVIX NN,D LD (IX+D),NN MVI D(IX) ; MVIY NN,D LD (IY+D),NN MVI D(IY) ; LDAI LD A,I LDAI ; LDAR LD A,R LDAR ; STAI LD I,A STAI ; STAR LD R,A STAR ; LXIX NNNN LD IX,NNNN LXI IX,NNNN ; LXIY NNNN LD IY,NNNN LXI IY,NNNN ; LBCD NNNN LD BC,(NNNN) LBCD NNNN ; LDED NNNN LD DE,(NNNN) LDED NNNN ; LSPD NNNN LD SP,(NNNN) LSPD NNNN ; LIXD NNNN LD IX,(NNNN) LIXD NNNN ; LIYD NNNN LD IY,(NNNN) LIYD NNNN ; SBCD NNNN LD (NNNN),BC SBCD NNNN ; SDED NNNN LD (NNNN),DE SDED NNNN ; SSPD NNNN LD (NNNN),SP SSPD NNNN ; SIXD NNNN LD (NNNN),IX SIXD NNNN ; SIYD NNNN LD (NNNN),IY SIYD NNNN ; SPIX LD SP,IX SPIX ; SPIY LD SP,IY SPIY ; PUSHIX PUSH IX PUSH IX ; PUSHIY PUSH IY PUSH IY ; POPIX POP IX POP IX ; POPIY POP IY POP IY ; EXAF EX AF,AF' EXAF ; EXX EXX EXX ; XTIX EX (SP),IX XTIX ; XTIY EX (SP),IY XTIY ; LDI LDI LDI ; LDIR LDIR LDIR ; LDD LDD LDD ; LDDR LDDR LDDR ; CCI CPI CCI ; CCIR CPIR CCIR ; CCD CPD CCD ; CCDR CPDR CCDR ; ADDX D ADD (IX+D) ADD D(IX) ; ADDY D ADD (IY+D) ADD D(IY) ; ADCX D ADC (IX+D) ADC D(IX) ; ADCY D ADC (IY+D) ADC D(IY) ; SUBX D SUB (IX+D) SUB D(IX) ; SUBY D SUB (IY+D) SUB D(IY) ; SBCX D SBC (IX+D) SBB D(IX) ; SBCY D SBC (IY+D) SBB D(IY) ; ANDX D AND (IX+D) ANA D(IX) ; ANDY D AND (IY+D) ANA D(IY) ; XORX D XOR (IX+D) XRA D(IX) ; XORY D XOR (IY+D) XRA D(IY) ; ORX D OR (IX+D) ORA D(IX) ; ORY D OR (IY+D) ORA D(IY) ; CMPX D CP (IX+D) CMP D(IX) ; CMPY D CP (IY+D) CMP D(IY) ; INRX D INC (IX+D) INR D(IX) ; INRY D INC (IY+D) INR D(IY) ; DCRX D INC (IX+D) INR D(IX) ; DCRY D DEC (IY+D) DCR D(IY) ; NEG NEG NEG ; IM0 IM0 IM0 ; IM1 IM1 IM1 ; IM2 IM2 IM2 ; DADC RR ADC HL,RR DADC RR ; DSBC RR SBC HL,RR DSBC RR ; DADX RR ADD IX,RR DADX RR ; DADY RR ADD IY,RR DADY RR ; INXIX INC IX INX IX ; INXIY INC IY INX IY ; DCXIX DEC IX DCX IX ; DCXIY DEC IY DCX IY ; BIT B,R BIT B,R BIT B,R ; SETB B,R SET B,R SET B,R ; RES B,R RES B,R RES B,R ; BITX B,D BIT B,(IX+D) BIT B,D(IX) ; BITY B,D BIT B,(IY+D) BIT B,D(IY) ; SETX B,D SET B,(IX+D) SET B,D(IX) ; SETY B,D SET B,(IY+D) SET B,D(IY) ; RESX B,D RES B,(IX+D) RES B,D(IX) ; RESY B,D RES B,(IY+D) RES B,D(IY) ; JR ADDR JR ADDR-$ JMPR ADDR ; JRC ADDR JR C,ADDR-$ JRC ADDR ; JRNC ADDR JR NC,ADDR-$ JRNC ADDR ; JRZ ADDR JR Z,ADDR-$ JRC ADDR ; JRNZ ADDR JR NZ,ADDR-$ JRNZ ADDR ; DJNZ ADDR DJNZ ADDR-$ DJNZ ADDR ; PCIX JMP (IX) PCIX ; PCIY JMP (IY) PCIY ; RETI RETI RETI ; RETN RETN RETN ; INP R IN R,(C) INP R ; OUTP R OUT (C),R OUTP R ; INI INI INI ; INIR INIR INIR ; OUTI OTI OUTI ; OUTIR OTIR OUTIR ; IND IND IND ; INDR INDR INDR ; OUTD OTD OUTD ; OUTDR OTDR OUTDR ; RLCR R RLC R RLCR R ; RLCX D RLC (IX+D) RLCR D(IX) ; RLCY D RLC (IY+D) RLCR D(IY) ; RALR R RL R RALR R ; RALX D RL (IX+D) RALR D(IX) ; RALY D RL (IY+D) RALR D(IY) ; RRCR R RRC R RRCR R ; RRCX D RRC (IX+D) RRCR D(IX) ; RRCY D RRC (IY+D) RRCR D(IY) ; RARR R RR R RARR R ; RARX D RR (IX+D) RARR D(IX) ; RARY D RR (IY+D) RARR D(IY) ; SLAR R SLA R SLAR R ; SLAX D SLA (IX+D) SLAR D(IX) ; SLAY D SLA (IY+D) SLAR D(IY) ; SRAR R SRA R SRAR R ; SRAX D SRA (IX+D) SRAR D(IX) ; SRAY D SRA (IY+D) SRAR D(IY) ; SRLR R SRL R SRLR R ; SRLX D SRL (IX+D) SRLR D(IX) ; SRLY D SRL (IY+D) SRLR D(IY) ; RLD RLD RLD ; RRD RRD RRD ; ; ; ; @CHK MACRO USED FOR CHECKING 8 BIT DISPLACMENTS ; @CHK MACRO ?DD ; USED FOR CHECKING RANGE OF 8-BIT DISP.S IF (?DD GT 7FH) AND (?DD LT 0FF 80H) 'DISPLACEMENT RANGE ERROR - Z80 LIB' ENDIF ENDM LDX MACRO ?R,?D @CHK ?D DB 0DDH,?R*8+46H,?D ENDM LDY MACRO ?R,?D @CHK ?D DB 0FDH,?R*8+46H,?D ENDM STX MACRO ?R,?D @CHK ?D DB 0DDH,70H+?R,?D ENDM STY MACRO ?R,?D @CHK ?D DB 0FDH,70H+?R,?D ENDM MVIX MACRO ?N,?D @CHK ?D DB 0DDH,36H,?D,?N ENDM MVIY MACRO ?N,?D @CHK ?D DB 0FDH,36H,?D,?N ENDM LDAI MACRO DB 0EDH,57H ENDM LDAR MACRO DB 0EDH,5FH ENDM STAI MACRO DB 0EDH,47H ENDM STAR MACRO DB 0EDH,4FH ENDM LXIX MACRO ?NNNN DB 0DDH,21H DW ?NNNN ENDM LXIY MACRO ?NNNN DB 0FDH,21H DW ?NNNN ENDM LDED MACRO ?NNNN DB 0EDH,5BH DW ?NNNN ENDM LBCD MACRO ?NNNN DB 0EDH,4BH DW ?NNNN ENDM LSPD MACRO ?NNNN DB 0EDH,07BH DW ?NNNN ENDM LIXD MACRO ?NNNN DB 0DDH,2AH DW ?NNNN ENDM LIYD MACRO ?NNNN DB 0FDH,2AH DW ?NNNN ENDM SBCD MACRO ?NNNN DB 0EDH,43H DW ?NNNN ENDM SDED MACRO ?NNNN DB 0EDH,53H DW ?NNNN ENDM SSPD MACRO ?NNNN DB 0EDH,73H DW ?NNNN ENDM SIXD MACRO ?NNNN DB 0DDH,22H DW ?NNNN ENDM SIYD MACRO ?NNNN DB 0FDH,22H DW ?NNNN ENDM SPIX MACRO DB 0DDH,0F9H ENDM SPIY MACRO DB 0FDH,0F9H ENDM PUSHIX MACRO DB 0DDH,0E5H ENDM PUSHIY MACRO DB 0FDH,0E5H ENDM POPIX MACRO DB 0DDH,0E1H ENDM POPIY MACRO DB 0FDH,0E1H ENDM EXAF MACRO DB 08H ENDM EXX MACRO DB 0D9H ENDM XTIX MACRO DB 0DDH,0E3H ENDM XTIY MACRO DB 0FDH,0E3H ENDM LDI MACRO DB 0EDH,0A0H ENDM LDIR MACRO DB 0EDH,0B0H ENDM LDD MACRO DB 0EDH,0A8H ENDM LDDR MACRO DB 0EDH,0B8H ENDM CCI MACRO DB 0EDH,0A1H ENDM CCIR MACRO DB 0EDH,0B1H ENDM CCD MACRO DB 0EDH,0A9H ENDM CCDR MACRO DB 0EDH,0B9H ENDM ADDX MACRO ?D @CHK ?D DB 0DDH,86H,?D ENDM ADDY MACRO ?D @CHK ?D DB 0FDH,86H,?D ENDM ADCX MACRO ?D @CHK ?D DB 0DDH,8EH,?D ENDM ADCY MACRO ?D @CHK ?D DB 0FDH,8EH,?D ENDM SUBX MACRO ?D @CHK ?D DB 0DDH,96H,?D ENDM SUBY MACRO ?D @CHK ?D DB 0FDH,96H,?D ENDM SBCX MACRO ?D @CHK ?D DB 0DDH,9EH,?D ENDM SBCY MACRO ?D @CHK ?D DB 0FDH,9EH,?D ENDM ANDX MACRO ?D @CHK ?D DB 0DDH,0A6H,?D ENDM ANDY MACRO ?D @CHK ?D DB 0FDH,0A6H,?D ENDM XORX MACRO ?D @CHK ?D DB 0DDH,0AEH,?D ENDM XORY MACRO ?D @CHK ?D DB 0FDH,0AEH,?D ENDM ORX MACRO ?D @CHK ?D DB 0DDH,0B6H,?D ENDM ORY MACRO ?D @CHK ?D DB 0FDH,0B6H,?D ENDM CMPX MACRO ?D @CHK ?D DB 0DDH,0BEH,?D ENDM CMPY MACRO ?D @CHK ?D DB 0FDH,0BEH,?D ENDM INRX MACRO ?D @CHK ?D DB 0DDH,34H,?D ENDM INRY MACRO ?D @CHK ?D DB 0FDH,34H,?D ENDM DCRX MACRO ?D @CHK ?D DB 0DDH,035H,?D ENDM DCRY MACRO ?D @CHK ?D DB 0FDH,35H,?D ENDM NEG MACRO DB 0EDH,44H ENDM IM0 MACRO DB 0EDH,46H ENDM IM1 MACRO DB 0EDH,56H ENDM IM2 MACRO DB 0EDH,5EH ENDM BC EQU 0 DE EQU 2 HL EQU 4 IX EQU 4 IY EQU 4 DADC MACRO ?R DB 0EDH,?R*8+4AH ENDM DSBC MACRO ?R DB 0EDH,?R*8+42H ENDM DADX MACRO ?R DB 0DDH,?R*8+09H ENDM DADY MACRO ?R DB 0FDH,?R*8+09H ENDM INXIX MACRO DB 0DDH,23H ENDM INXIY MACRO DB 0FDH,23H ENDM DCXIX MACRO DB 0DDH,2BH ENDM DCXIY MACRO DB 0FDH,2BH ENDM BIT MACRO ?N,?R DB 0CBH,?N*8+?R+40H ENDM SETB MACRO ?N,?R DB 0CBH,?N*8+?R+0C0H ENDM RES MACRO ?N,?R DB 0CBH,?N*8+?R+80H ENDM BITX MACRO ?N,?D @CHK ?D DB 0DDH,0CBH,?D,?N*8+46H ENDM BITY MACRO ?N,?D @CHK ?D DB 0FDH,0CBH,?D,?N*8+46H ENDM SETX MACRO ?N,?D @CHK ?D DB 0DDH,0CBH,?D,?N*8+0C6H ENDM SETY MACRO ?N,?D @CHK ?D DB 0FDH,0CBH,?D,?N*8+0C6H ENDM RESX MACRO ?N,?D @CHK ?D DB 0DDH,0CBH,?D,?N*8+86H ENDM RESY MACRO ?N,?D @CHK ?D DB 0FDH,0CBH,?D,?N*8+86H ENDM JR MACRO ?N DB 18H,?N-$-1 ENDM JRC MACRO ?N DB 38H,?N-$-1 ENDM JRNC MACRO ?N DB 30H,?N-$-1 ENDM JRZ MACRO ?N DB 28H,?N-$-1 ENDM JRNZ MACRO ?N DB 20H,?N-$-1 ENDM DJNZ MACRO ?N DB 10H,?N-$-1 ENDM PCIX MACRO DB 0DDH,0E9H ENDM PCIY MACRO DB 0FDH,0E9H ENDM RETI MACRO DB 0EDH,4DH ENDM RETN MACRO DB 0EDH,45H ENDM INP MACRO ?R DB 0EDH,?R*8+40H ENDM OUTP MACRO ?R DB 0EDH,?R*8+41H ENDM INI MACRO DB 0EDH,0A2H ENDM INIR MACRO DB 0EDH,0B2H ENDM IND MACRO DB 0EDH,0AAH ENDM INDR MACRO DB 0EDH,0BAH ENDM OUTI MACRO DB 0EDH,0A3H ENDM OUTIR MACRO DB 0EDH,0B3H ENDM OUTD MACRO DB 0EDH,0ABH ENDM OUTDR MACRO DB 0EDH,0BBH ENDM RLCR MACRO ?R DB 0CBH, 00H + ?R ENDM RLCX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 06H ENDM RLCY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 06H ENDM RALR MACRO ?R DB 0CBH, 10H+?R ENDM RALX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 16H ENDM RALY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 16H ENDM RRCR MACRO ?R DB 0CBH, 08H + ?R ENDM RRCX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 0EH ENDM RRCY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 0EH ENDM RARR MACRO ?R DB 0CBH, 18H + ?R ENDM RARX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 1EH ENDM RARY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 1EH ENDM SLAR MACRO ?R DB 0CBH, 20H + ?R ENDM SLAX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 26H ENDM SLAY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 26H ENDM SRAR MACRO ?R DB 0CBH, 28H+?R ENDM SRAX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 2EH ENDM SRAY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 2EH ENDM SRLR MACRO ?R DB 0CBH, 38H + ?R ENDM SRLX MACRO ?D @CHK ?D DB 0DDH, 0CBH, ?D, 3EH ENDM SRLY MACRO ?D @CHK ?D DB 0FDH, 0CBH, ?D, 3EH ENDM RLD MACRO DB 0EDH, 6FH ENDM RRD MACRO DB 0EDH, 67H ENDM åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå SUPERBIOS disk formats Thå SUPERBIOÓ singlå densitù eighô incè formaô ió completelù � IBÍ  standarä  3740®  Thå diskó shoulä bå readablå bù  anù  CP/Í � standarä  singlå  densitù system®  Notå thaô thå Advanceä  Micrï � Digitaì formaô prograí filló alì sectoró witè E5'ó iî  accordancå � with standard practice. Somå  eighô incè singlå densitù diskó froí otheò systemó maù � noô  bå readablå aô firsô witè thå SUPERBIOS®  Thió  ió  becauså � theù  havå  odä  byteó locateä wherå thå doublå densitù  codå  ió � supposeä tï be® Thå SUPERBIOÓ interpretó eitheò á 0° oò Eµ tï bå � singlå  density¬  anythinç elså (otheò thaî thå SUPERBIOÓ  doublå � densitù  codes© causinç aî error®  Iæ yoõ arå unablå tï  reaä  á � supposedlù   standarä  singlå  densitù  disk¬   trù  runninç  thå � SUPERBIOÓ  formaô  prograí  witè thå FORMAÔ  SYSTEÍ  TRACKÓ  ONLÙ � option® Thió wilì filì thå outeò twï trackó witè Eµ anä noô hurô � any of the data. Thå SUPERBIOÓ doublå densitù formaô foò eighô incè diskó haó � thå  firsô  tracë oæ eacè disë bå singlå density¬  iî  accordancå � witè  IBÍ  practice®  Alì  trackó  oæ  minifloppieó  arå  doublå � density® Bytå 7Æ oæ tracë zero¬ sectoò ± ió á codå bytå (thió ió � thå standarä location)®  Ouò codeó arå Eµ foò singlå density¬ E¶ � foò  singlå sideä doublå density¬  anä E· foò doublå sideä doublå � density®  Therå  ió nï doublå sideä singlå  densitù  format¬  aó � therå arå nï standardó availablå foò sucè disks. Doublå  densitù  diskó havå onlù onå  reserveä  track®  Thå � sectoró  arå 102´ byteó iî length®  Eighô incè diskó havå  eighô � sectoró peò track¬  fivå incè diskó havå four® Thå physicaì ske÷ � oî thå disë ió threå foò eighô inch¬  twï foò fivå  inch®  Theså � numberó werå choseî tï optimizå sequentiaì sectoò operationó sucè � aó prograí loads¬  sincå theså operationó arå thå mosô sensityivå � to the skew factor.  Ã,COPYRIGHT (C) DIGITAL RESEARCH, 1979 1]þ Ê‘þ?Ê‘!þ Ê_·Ê_Ö0þ Òr)å))Á O Ã@|·Âr}þÚr.g))Ã¥{Íuà INVALID MEMORY SIZE$!$Ê¡~/w¾/wÊ”|æügå*"záå|æ?¸>@G!�>0w#w!Ž4~þ:ÚÏ60+4ÂÁ~Íu!N#FÅ! �x±Ê, Åå¾Â# Ê Ãð¯=Â!óv"z!w6͈!ëÃuá#ÁÃãáÁ+Žw+wz þ>ÂZÁáÅxÆG}‘o|˜g"|ë! ÁÅ:mþ Êc Ãp!ÿ"Ãx±Êp ~#ÃcÁå*|ë!:mþ Ê… x±ÊÀä SYNCRONIZATION ERROR$ {æ°ã~#ão}oÒ¼„üÃ…Ñ*z¾ÂZ# ÂÉ:mþ Êm€! ~·Â #Âáë*€ÿ DM! x±Ê  w#ÃøÃ!N#F! D!_>0w#wÊ1!`4~þ:Ú60+4Ã*�"e@Íuà READY FOR "SYSGEN" OR "SAVE 34 CPM60.COM"$*|é ÃàÓ CONSTRUCTING 60k CP/M vers 2.2$¡ ^=ú>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®É!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ë1ÛyÛ{ÛÿæÂ0Ó!B0}Óy|ÓzÛxæÊ0ÛyæþÒ0Û{ÜÿæÂ0Â0Ãê€Ô€€àÃ\×ÃX× COPYRIGHT (C) 1979, DIGITAL RESEARCH Ô_ÃÅÍŒÔÁÉ> Í’Ô> Ã’Ô> Ã’ÔÅ͘Ôá~·È#åÍŒÔáìÔ Ã_ÃÍ2îÛ<ÉÃÃÔ¯2íÛÍÛÃËÔÃÃÔÃÃÔÃÃÔÍÛÃßÔÃÍ·ÉÃôÔÍÛÃùÔÃôÔÃÃÔÃÿ ÃÍÕ‡‡‡‡!ïÛ¶2É:ïÛ2ÉþaØþ{Ðæ_É:«Û·Ê–Õ:ïÛ·>ĽÔ¬ÛÍËÔÊ–Õ:»Û=2ÌÛ¬ÛÍùÔ–ÕÔ!€€ÍBØ!ºÛ6#5¬ÛÍÚÔÊ–Õ:ï۷ĽÔ!ÔͬÔÍÂÕʧÕÍÝÕÂ×ÍÝÕÍÕ ÔÍÍ)Õ!ÔF#x·ÊºÕ~Í0ÕwëÕw!Ô"ˆÔÉ Í·ÈÍ·ÉÀÃ!«Û~·È6¯Í½Ô¬ÛÍïÔ:ïÛýÔ(×!ܾÂÏ×#ÂýÕÉ͘Ô*ŠÔ~þ Ê"Ö·Ê"ÖåÍŒÔá#ÃÖ>?ÍŒÔ͘ÔÍÝÕÂ×·Èþ Ú ÖÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃOÖ…oÐ$É>!ÍÛÍYÖåå¯2ðÛ*ˆÔëÍOÖë"ŠÔëá·Ê‰ÖÞ@Gþ:Ê�Ö:ïÛwÖÖx2ðÛpÍ0ÖʹÖ#þ*©Ö6?ëÖw˜ÖÍ0ÖÊÀÖïÖ#6 ¹Öþ.ÂéÖÍ0ÖÊéÖ#þ*ÂÙÖ6?ÃÛÖwÂÈÖÍ0ÖÊðÖÃßÖ#6 ÂéÖ#6ÂòÖë"ˆÔá #~þ? × Â×x·ÉDIR ERA TYPESAVEREN USERg!×yþÐÎÛ¾ÂO×#Â<×þ ÂT×yÉ#ÂO× Ã3ׯ2Ô1«ÛÅyæ_ÍÕ͸Ô2«ÛÁyæ2ïÛͽÔ:Է˜×1«Û͘ÔÍÐÕÆAÍŒÔ>>ÍŒÔÍ9Õ€ÍØÕÍÐÕ2ïÛÍ^ÖÄ Ö:ðÛ·Â¥ÚÍ.×!Á×_~#foéwØÙ]Ù­ÙÚŽÚ¥Ú!óv"Ô!Ôéß×çÔREAD ERRORð×çÔNO FILEÍ^Ö:ðÛ·Â Ö!ÎÛ ~þ Ê3Ø#Ö0þ Ò ÖWxæà Öx€Ú Ö€Ú Ö‚Ú ÖG ÂØÉ~þ  Ö# Â3ØxÉ~#ÂBØÉ!€�ÍYÖ~ɯ2ÍÛ:ðÛ·È=!ïÛ¾ÈýÔ:ðÛ·È=!ïÛ¾È:ïÛýÔÍ^ÖÍTØ!ÎÛ~þ Â�Ø 6?#ˆØÕÍéÔÌê×ÊÙ:îÛæ`O> ÍKØÚÙÑ{ÕæõÂÌØÍ˜ÔÅÍÐÕÁÆAÍ’Ô>:Í’ÔÃÔØÍ¢Ô>:Í’ÔÍ¢ÔxÍKØæþ ÂùØñõþÂ÷Ø> ÍKØæþ ÊÙ> Í’Ôxþ ÒÙþ ÂÙØÍ¢ÔÃÙØñÍÂÕÂÙÍäÔØØÑÆÛÍ^Öþ ÂBÙRÙͧÔÍ9Õ!Ô5‚×#~þY‚×#"ˆÔÍTØÍÛÍïÔ<ÌêׯÛALL (Y/N)?Í^Ö ÖÍTØÍÐÔʧÙ͘Ô!ñÛ6ÿ!ñÛ~þ€Ú‡ÙåÍþÔá ٯw4!€ÍYÖ~þʆÛÍŒÔÍÂÕ†ÛÃtÙ=ʆÛÍÙ×ÍfØÃ ÖÍø×õÍ^Ö ÖÍTØÍÛÕÍïÔÑÍ ÕÊûÙ¯2íÛño&)|µÊñÙ+å!€åÍØÕÍÛÍÕÑáÂûÙÃÔÙÍÛÍÚÔ<ÂÚÚͧÔÍÕÕÆÛNO SPACEÍ^Ö Ö:ðÛõÍTØÍéÔÂyÚ!ÍÛÝÛÍBØ*ˆÔëÍOÖþ=Ê?Úþ_ÂsÚë#"ˆÔÍ^ÖÂsÚñG!ðÛ~·ÊYÚ¸pÂsÚp¯2ÍÛÍéÔÊmÚÍÛÍÕÆÛÍêׯÛÍfØÃ Ö‚ÚͧÔÆÛFILE EXISTSÍø×þÒ Ö_:ÎÛþ Ê ÖÍÕÉÛÍõÕ:ÎÛþ ÂÄÚ:ð۷ʉÛ=2ïÛÍ)ÕͽÔÉÛÖÛþ  ÖÕÍTØÑ!ƒÛÍ@ØÍÐÔÊkÛ!åëÍØÕÍÛÍùÔÂÛá€Ô}“|šÒqÛÃáÚá=ÂqÛÍfØÍ^Ö!ðÛå~2ÍÛ>Í`Öá~2ÝÛ¯2íÛ\!ÍÛ!ÍBØ!Ô~·Ê>Ûþ Ê>Û#Ã0Û�~·ÊOÛ#ÃCÛx2€Í˜ÔÍÕÕÍÕÍ1«ÛÍ)ÕͽÔÂ×ÍfØÃ ÖzÛͧÔÆÛBAD LOADCOMÍfØÍ^Ö:ÎÛÖ !ðÛ¶Â ÖÂ×$$$ SUBgÃܙܥܫܱÜë"Cßë{2Öé!"Eß9"ß1A߯2àé2Þé!téåyþ)ÐK!GÜ_^#V*CßëéêÈÞ�ÝÎÞêêÔÞíÞóÞøÞáÝþÞ~èƒèEèœè¥è«èÈè×èàèæèìèõèþèé éé,áéé&é-éAéGéMéèSéßß›é!ÊÜÍåÜþÊÉ!ÕÜôÜ!áÜôÜ!ÜÜÍåÜÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉÝ:B߯A2ÆÜºÜÍÓÝÁÍÓÝ!ß~6·Àà êÍûÜÍÝØõOÍ�ÝñÉþ Èþ Èþ ÈþÈþ É:ß·ÂEÝÍêæÈÍ êþÂBÝÍ êþʯÉ2ß>É: ß·ÂbÝÅÍ#ÝÁÅÍ êÁÅ: ß·ÄêÁy! ßþÈ4þ Ð5~·ÈyþÂyÝ5Éþ À6ÉyÍÝÒ�Ýõ^ÍHÝñö@Oyþ ÂHÝ ÍHÝ: ßæ–ÝÉͬÝ Í êà ê#ÍHÝÍÉÝ: ß! ߾РÍHÝùÝ ÍHÝ ÃHÝ þ$ÈÅOÍ�ÝÁÃÓÝ: ß2 ß*CßN#åÅåÍûÜæáÁþ ÊÁÞþ ÊÁÞþÂÞx·ÊïÝ: ß2 ßÃpÞþÂ&Þx·ÊïÝ~+éÞþÂ7ÞÅåÍÉݯ2 ßÃñÝþÂHÞå! ß>–wáÃïÝþÂ_Þá: ß! ß¾ÒáÝ5ͤÝÃNÞþÂkÞͱÝáÃáÝþ¦ÞÅͱÝÁáåÅx·ÊŠÞ#NÅåÍÝáÁÃxÞå: ß·ÊñÝ! ß–2 ßͤÝ! ß5™ÞÃñÝ#wÅåOÍÝáÁ~þx½ÞþʹÚïÝáp ÃHÝÍÝÃßÍêÃßy<ÊàÞ<Êêà êÍê·Ê‘éÍ êÃß:Ãß!qÉëMDÃÓÝÍ#Ý2EßÉ>Ãß! Ü^#Vëé Èw#ÃPß:BßOÍê|µÈ^#V#"³é##"µé##"·é##ë"Ðé!¹éÍOß*»éë!ÁéÍOß*Æé|!Ýé6ÿ·Ê�ß6>ÿ·ÉÍê¯*µéw#w*·éw#wÉÍ'êûßÍ*ê·È! ÜÃJß*êéÍêà"åé"ìé!åéN#F*·é^#V*µé~#foy“xšÒúßå*Áé{•_zœWá+Ãäßå*ÁéÚày•xœÚàëá#ÃúßáÅÕåë*ÎéDMÍêÑ*µés#rÑ*·és#rÁy“OxšG*ÐéëÍ0êMDÃ!ê!ÃéN:ãé· ÂEàG>–O:âé Ê\à·ÃSà€É*Cß :Ýé·Êqàn&É ^#VëÉÍ>àOÍ^à"åéÉ*åé}´É:Ãé*åé)=Â�à"çé:ÄéO:ã页o"åéÉ*Cß É*Cßë!ÉÍ®à~2ãéë~2áéͦà:Åé¦2âéÉÍ®à:ÕéþÂÞà¯O:ãé�wë:áéwÉ È|·g}oÃëà€*¹é¯†# ÂýàÉ È)ÃáÅ:BßO!ÍáÁyµox´gÉ*­é:BßOÍêà}æÉ!­éN#FÍ á"­é*Èé#ë*³és#rÉÍ^á ~Ð!ÜÃJßÍáÈ! ÜÃJß*¹é:éé…oÐ$É*Cß~ÉÍiá6ÉÍiáö€wÉ*êéë*³é{–#zžÉÍáØr+sÉ{•ozœgÉÿ*ìéë*ÌéÍ•áÐÅÍ÷à*½éë*ìéÁ ÊÄá¾ÈÍáÐÍ,áÉwÉÍœáÍàá͸ßÃÚáÍàáͲß!±éÃãá!¹éN#FÃ$ê*¹éë*±é€ÃOß!êé~#¾À<É!ÿÿ"êéÉ*Èéë*êé#"êéÍ•áÒâÃþá:ê鿇 â2éé·ÀÅÍÃßÍÔáÁÞáyæ<_WyæOx‡‡‡‡‡±OxæG*¿é ~ÂVâÉÕÍ5âæþÁ±ÂdâwÉÍ^áÅÑ ÈÕ:Ýé·ÊˆâÅåNÃŽâ ÅN#Fåy°Ê�â*Æé}‘|˜Ô\âá#ÁÃuâ*ÆéÍêà#DM*¿é6# x±Â±â*Êéë*¿és#rÍ¡ß*³é6#6ÍþáÿÍâÍõáÈÍ^á>å¾ÊÒâ:Aß¾Âöâ#~Ö$Âöâ=2EßÍkâÍŒáÃÒâ:ÔéÃßÅõ:Åé/Gy Oñ ‘æÁÉ>ÿ2Ôé!Øéq*Cß"ÙéÍþáÍ¡ßÍâÍõáÊ”ã*ÙéëþåÊJãÕÍáÑÒ”ãÍ^á:ØéOy·Êƒãþ?Ê|ãxþ Ê|ãþ Êsã–æÂ-ãÃ|ãÅNÍãÁÂ-ã# ÃSã:êéæ2Eß!Ôé~ЯwÉÍþá>ÿÃßÍTá ÍãÍõáÈÍDáÍ^á6åÍkâÍÆáÍ-ãäãPYy°ÊÑã ÕÅÍ5âÒìãÁÑ*Æé{•zœÒôãÅÕBKÍ5âÒìãÑÁÃÀã<ÍdâáÑÉy°ÂÀã!É Õ*Cß ëÍ^áÁÍOßÍÃßÃÆáÍTá Íã*Cß~wÍõáÈÍDá ÍäÍ-ãÃ'ä ÍãÍõáÈ ÍäÍ-ãÃ@äÍãÍõáÈͦà~õåÍ^áë*Cß ÕÍOßÍxáÑ! N!Fáñwy¾xÊ‹ä>Ú‹ä>€*CßwÉ~#¶+Àw#w+ɯ2Eß2êé2ëéÍáÀÍiáæ€ÀÍãÍõáÈÍ^á ë*Cß :Ýé·Êèä~·ÂÛäw·Âáä~¾ÂåÃýäÍ”äëÍ”äë¾Âå#¾Âå # ÂÍäìÿ ë ¾Úåw ë ~>ÿ2ÒéÃä!Eß5ÉÍTá*Cßå!¬é"CßÍãÍõáá"CßÈë!¯w# ÂFå! wÍŒáÍýãÃxá¯2ÒéÍ¢äÍõáÈ*Cß ~<æwʃåG:Åé !Òé¦ÊŽåìå 4~æʶåÍãÍõá¬å:Óé<ʶåÍ$åÍõáʶåïåÍZäÍ»à¯ÃßÍßÃxá>2Õé>ÿ2ÓéÍ»à:ãé!áé¾Úæåþ€ÂûåÍZå¯2ãé:Eß·ÂûåÍwàÍ„àÊûåÍŠàÍÑßͲßÃÒàÃß>2Õé>2ÓéÍTá*CßÍGáÍ»à:ãéþ€ÒßÍwàÍ„àÂnæÍ>à2×é·Ê;æO Í^àDM;ã}´ÂHæ>Ãß"åéë*Cß :Ýé·:×éÊdæÍdásÃlæO s#r:Eß·ÀÅÍŠà:Õé==»æÁÅy==»æå*¹éWw#òŒæÍàá*çé"åéÅÍÑßÁ͸ß*åé:ÄéG¥¸#šæá"åéÍÚáÍÑßÁÅ͸ßÁ:ãé!áé¾ÚÒæw4!ÔõÍiáæwñþÂç:ÕéþÂçÍÒàÍZå!Eß~·Âþæ=2ãé6ÃÒà¯2ÕéÅ*Cßë!!~æõ~#~æO~æGñ#n,-.‹ç! w! y–ÂGç!x–æÊçÅÕÍ¢äÑÁ.:Eß<Ê„ç! q!pÍQä:Eß<ÂçÁÅ. Ê„çÍ$å.:Eß<Ê„çÁ¯ÃßåÍiá6ÀáÁ}2EßÃxáÿÍçÌÁåÉÍçÌæÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ Íã*Cß!år#r#rÍõáÊ èÍ^áÍ¥çáå_y–#xž#{žÚès+p+qÍ-ãÃäçáÉ*Cß Í¥ç!!q#p#wÉ*¯é:BßOÍêàåëÍYßáÌGß}Ø*¯éMDÍ á"¯éãâ:Öé!Bß¾ÈwÃ!è>ÿ2Þé*Cß~æ=2ÖéþÒuè:Bß2ßé~2àéæàwÍEè:Aß*Cß¶wÉ>"Ãß!"­é"¯é¯2Bß!€"±éÍÚáÃ!èÍráÍQèÃQäÍQèâäë~þ?ÊÂèͦà~þ?ÄráÍQèÍãÃéá*Ùé"CßÍQèÍ-ãÃéáÍQèÍœãÃãÍQèüåÍQèÃþåÍráÍQèÃ$åÍQèÍäÃã*¯éÃ)é:BßÃßë"±éÃÚá*¿éÃ)é*­éÃ)éÍQèÍ;äÃã*»é"EßÉ:ÖéþÿÂ;é:AßÃßæ2AßÉÍQèÓçÍQèÜçÍQèÃÒç*Cß}/_|/*¯é¤W}£_*­éë"¯é}£o|¢g"­éÉ:Þé·Ê‘é*Cß6:àé·Ê‘éw:ßé2ÖéÍEè*ßù*Eß}DÉÍQè>2ÕéÍçÌæÉå€Ã³êÃÃêÃaëÃdëÃjëÃmëÃrëÃuëÃxëÃ}ëçëìëûëÃÁëÃÊëÃpëñë‚ênìsê íîì‚ênìsê<íí‚ênìsêkíLí‚ênìsêší{íò?À      60k CP/M vers 2.2 1!œêÍÓë¯2Ãë1€ ÅÔÍ»ëÍ}ëͧëͬëÁ,ÅÍÁëÂIë*lì€DMÍ»ë:kìþÚë:jìÓý¯Óü>~Óü¯Óó€Í»ë>Ã2!ê"2!Ü"28!ø"9:OûÃÔÁ ÊRëÅÃÉê![ëÍÓëÃÿ?bootÃøÍøæÉà øÃø¯Éà øÃøçë! yþÐæ2fìyæ·Ê’ë>0G!hì~æÏ°wi&))))3êÉ!jìqÉ!kìqÉë ~2kìoÉi`"lìÉÍàëÍðëÉÍàëÍðëÉ~·ÈåOÍjëá#ÃÓë!hì~æø±wæ !kì¶wÉ Í?ìÍLì:fì·>gì ìÓyxÓzÃìÓ‰xÓŠÍYìæÊìÍ?ìþÊ2ì·Â8ìÍLìÚ2ìæþÂ8ìÉÍLìÃ8ì Âòë>É:fì·ÂIìÛyÉÛ‰É:fì·ÂVìÛ{ÉÛ‹É:fì·ÂcìÛxÉۈɀ€:àé·Ê‘éw:ßé2ÖéÍEè*ßù*Eß}DÉÍQè>2ÕéÍçÌæÉå€Ã³êÃÃêÃaëÃdëÃjëÃmëÃrëÃuëÃxëÃ}ëçëìëûëÃÁëÃÊëÃpëñë‚ênìsê íîì‚ênìsê<íí‚ênìsêkíLí‚ênìsêší{íò?À      60k CP/M vers 2.2 1!œêÍÓë¯2Ãë1€ ÅÔÍ»ëÍ}ëͧëͬëÁ,ÅÍÁëÂIë*lì€DMÍ»ë:kìþÚë:jìÓý¯Óü>~Óü¯Óó€Í»ë>Ã2!ê"2!Ü"28!ø"9:OûÃÔÁ ÊRëÅÃÉê![ëÍÓëÃÿ?bootÃøÍøæÉà øÃø¯Éà øÃøçë!ååååååå åååååååå åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå åååååååå åååååååå!åååååååå!åååååååå"åååååååå"åååååååå#åååååååå#åååååååå$åååååååå$åååååååå%åååååååå%ååååå&åååååååå&åååååååå'åååååååå'åååååååå(åååååååå(åååååååå)åååååååå)åååååååå*åååååååå*åååååååå+åååååååå+åååååååå,åååååååå,åååååååå-åååååååå-åååååååå.åååååååå.åååååååå/åååååååå/åååååååå0åååååååå0åååååååå1åååååååå1åååååååå2åååååååå2åååååååå3åååååååå3åååååååå4åååååååå4åååååååå5åååååååå5åååååååå6åååååååå6åååååååå7åååååååå7åååååååå8åååååååå8åååååååå9åååååååå9åååååååå:åååååååå:åååååååå;åååååååå;åååååååå<åååååååå<åååååååå=åååååååå=åååååååå>åååååååå>åååååååå?åååååååå?åååååååå@åååååååå@ååååååååAååååååååAååååååååBååååååååBååååååååCååååååååCååååååååDååååååååDååååååååEååååååååEååååååååFååååååååFååååååååGååååååååGååååååååHååååååååHååååååååIååååååååIååååååååJååååååååJååååååååKååååååååKååååååååLååååååååLåååååååå