IMD 1.18: 30/01/2015 19:57:11 single density cp/m 2.2 distribution diskette #cp2-677-0093 do NOT try to boot from this diskette  ¯GÍðÍð!Ô Ͷ!€Ô ͶÍ!ð $!€à Ͷ!á ͶÃêåÅÍ$ðÁá $ òÉ!Ô~Í ð~#· ÷Ãð   ÌÏÁÄ ÁÂÏÒÔÅÄÃ\×Ã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 USER¥]!×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ØÍ^Ö:ÎÛÖ !ðÛ¶Â ÖÂ×$$$ SUB¥]ÃܙܥܫܱÜë"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ÕéÍçÌæÉå€Ã3êÃ?êÃÐêÃÓêÃÖêÃÖêÃÖêÃÓêÀëÃSëÃŒëÃCëÃNëàëóëÃÐêÃHë¯2!íÍJì61\íÍSëÍ€ë!Ô Í�ê!€Ô Í�êÍŒë P!€à Í�ê!á Í�ê>Ã2!ê"2!Ü"28!ð"9€ÍNëÃÔ"9íy28íåÅÍ ëÁá $ ëÉ!¼êÍJìùê ÃÁÎÎÏÔ ÂÏÏÔ ÃЯ͠¤Ãðà ðyà ð     ò?ÀÚê]íôêýíÝíÚê]íôê-î îÚê]íôê]î=îÚê]íôê�îmîy28íÉë n&ÉíC9íÉ!yþÐ26ío))))ëåOÍðáÈÍÆë :6íO×!ÉÍðÈÍÆë(õÉy27íÍ!ðÈÍÆëÀ:7íOì*9í:8íOÍ$ðÈÍÆë(îÉ*9í:8íOÍ'ðÈÍÆë(îÉ2:íy2;í!kìÍJì+:;íGÍAìûÍJì!ŽìÍJì::í8F_!Íì:;íþ0!–ìË‚Ë#0¬ËBÄ êÍJìËÂÍAìË‚ç!íÍJì:7íÍUì¯Í ê:8íÍUì>·É!»ìÍJìÍ êþ(ï¯ÉÅÿ>¤í±ÁÉ~þ¤#ÈOÍ êõõÍ^ìñæÆ�'Î@'OÍ êÉ ÂÉÏÓ ¤ÓÅÌÅÃÔ ¤ÓÅÅË ¤ÒÅÁÄ ¤×ÒÉÔÅ ¤ÅÒÒÏÒ  ¤¤¤ÃÁÎÎÏÔ ÓÅÅˤÂÁÄ ÃÒäÃÁÎÎÏÔ ÒÅÓÔÏÒŤÄÒÉÖÅ ÎÏÔ ÒÅÁÄÙ ­¤×ÒÉÔÅ ÐÒÏÔÅÃÔÅĤ×ÒÉÔÅ ÆÁÕÌÔ¤ÒÅÃÏÒÄ ÎÏÔ ÆÏÕÎĤÂÁÄ ÃÒäÄÁÔÁ ÏÖÅÒÒÕΤ  ÔÒ˯ÓÅÃÔ ½ ¤ ¶°Ë ÃЯ͠ÖÅÒÓÉÏΠ²®² ¤ MOVCPM COML PIP COM: SUBMIT COM XSUB COMååå=Â!óv"z!w6͈!ëÃuá#ÁÃãáÁ+Žw+wz þ>ÂZÁáÅxÆG}‘o|˜g"|ë! ÁÅ:mþ Êc Ãp!ÿ"Ãx±Êp ~#ÃcÁå*|ë!:mþ ÊED COM4ASM COM@ !"#$%DDT COM&&'()*LOAD COM+,ååå… x±ÊÀä SYNCRONIZATION ERROR$ {æ°ã~#ão}oÒ¼„üÃ…Ñ*z¾ÂZ# ÂÉ:mþ Êm€! ~·Â #Âáë*€ÿ DM! x±Ê  wSTAT COM)-./012SYSGEN COM3DUMP COM4DUMP ASM!56789ååå#ÃøÃ!N#F! D!_>0w#wÊ1!`4~þ:Ú60+4Ã*�"e@Íuà READY FOR "SYSGEN" OR "SAVE 00 CPM00.COM"$*|é à BIOS ASM`:;<=>?@ABCDECBIOS ASMEFGHIJKLMNDEBLOCK ASMPOPQRSTUVWXDISKDEF LIB1YZ[\]^_Ã,COPYRIGHT (C) DIGITAL RESEARCH, 1979 1]þ Ê‘þ?Ê‘!þ Ê_·Ê_Ö0þ Òr)å))Á O Ã@|·Âr}þÚr.g))Ã¥{Íuà INVååCONSTRUCTING 00k CP/M vers 2.2$åCPM59 COMD`abcdefghååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååALID MEMORY SIZE$!$Ê¡~/w¾/wÊ”|æügå*"záå|æ?¸>@G!�>0w#w!Ž4~þ:ÚÏ60+4ÂÁ~Íu!N#FÅ! �x±Ê, Åå¾Â# Ê Ãð¯ Gþ:Ê�:ïwÖx2ðpÍ0ʹ#þ*©6?ëw˜Í0ÊÀï#6 ¹þ.ÂéÍ0Êé#þ*ÂÙ6?ÃÛwÂÈÍ0ÊðÃß#6 Âé#6Âòë"ˆá _ÃÅÍŒÁÉ> Í’> Ã’> Ã’Å͘á~·È#åÍŒáì Ã_ÃÍ2î<ÉÃï2íÍÃËÃÃÃÃÃÃÍÃßÃÍ·ÉÃôÍá=ÂqÍfÍ^!ðå~2Í>Í`á~2ݯ2í\!Í!ÍB!~·Ê>þ Ê>#Ã0�~·ÊO#ÃCx2€Í˜ÍÕÍÍ1«Í)ͽÂÍfà zͧÆBAD LOÉ!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ëÒþ ÂÙÍ¢ÃÙñÍÂÂÍäØÑÆÍ^þ ÂBRͧÍ9!5‚#~þY‚#"ˆÍTÍÍï<ÌêÆALL (Y/N)?Í^ ÍTÍÐʧ͘!ñ6ÿ!ñ~þ€Ú‡åÍþ#~þ?  Âx·ÉDIR ERA TYPESAVEREN USER¥]!yþÐξÂO#Â<þ ÂTyÉ#ÂO Ã3¯21«Åyæ_Í͸2«Áyæ2ïͽ:·ÂÃùÃôÃÃÃÿ Ã͇‡‡‡!ï¶2É:ï2ÉþaØþ{Ðæ_É:«·Ê–:ï·>Ľ¬ÍËÊ–:»=2̬Íù–!€€ÍB!º6#5¬ÍÚÊ–:ïADCOMÍfÍ^:ÎÖ !ð¶Â Â$$$ SUBá ¯w4!€ÍY~þʆ͌͆Ãt=ʆÍÙÍfà ÍøõÍ^ ÍTÍÕÍïÑÍ Êû¯2íño&)|µÊñ+å!€åÍØÍÍÑáÂûÃÔÍÍÚ<Âͧ˜1«͘ÍÐÆAÍŒ>>ÍŒÍ9€ÍØÍÐ2ïÍ^Ä :ð·Â¥Í.!Á_~#foéw]­Ž¥!óv"!éßçREAD ERRORðçNO FILEÍ^:ð·Â·Ä½!ͬÍÂʧÍÝÂÍÝÍ ÍÍ)!F#x·Êº~Í0wëw!"ˆÉ Í·ÈÍ·ÉÀÃ!«~·È6¯Í½¬Íï:ïý(!¾Â¥]Ù¥«±ë"C ë{2Ö!"E 9" 1A ¯2à2Þ!tåyþ)ÐK!G_^#V*C ëéÈ � Î Ô í ó ø á þ ~ƒEœ¥«È×àæìõþ ,1ÛyÛ{ÛÿæÂ0Ó!B0}Óy|ÓzÛxæÊ0ÛyæþÒ0Û{ÜÿæÂ0Â0À€€ ÍÕÆNO SPACEÍ^ :ðõÍTÍéÂy!ÍÝÍB*ˆëÍOþ=Ê?þ_Âsë#"ˆÍ^ÂsñG!ð~·ÊY¸pÂsp¯2ÍÍéÊmÍÍÆÍêÆÍfà ‚ͧà !Î ~þ Ê3#Ö0þ Ò Wxæà x€Ú €Ú ‚Ú G ÂÉ~þ  # Â3xÉ~#ÂBÉ!€�ÍY~ɯ2Í:ð·È=!ï¾Èý:ð·È=!ï¾È:ïýÍ^ÍT!ÎÏ#ÂýÉ͘*Š~þ Ê"·Ê"åÍŒá#Ã>?͌͘ÍÝ·Èþ Ú Èþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃO…oÐ$É>!ÍÍYåå¯2ð*ˆëÍOë"Šëá·Ê‰Þ@ &-AGMS  ›!ÊÍåþÊÉ!Õô!áô!ÜÍåÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉ :B ÆA2ƺÍÓ ÁÍÓ ! ~6Ã\ÃX COPYRIGHT (C) 1979, DIGITAL RESEARCH †FILE EXISTSÍøþÒ _:Îþ Ê ÍÉÍõ:Îþ ÂÄ:ð·Ê‰=2ïÍ)ͽÉÖþ  ÕÍTÑ!ƒÍ@ÍÐÊk!åëÍØÍÍùÂá€}“|šÒqÃáú>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®~þ Â� 6?#ˆÕÍéÌêÊ:îæ`O> ÍKÚÑ{ÕæõÂÌ͘ÅÍÐÁÆAÍ’>:Í’ÃÔÍ¢>:Í’Í¢xÍKæþ ÂùñõþÂ÷> ÍKæþ Ê> Í’xþ  ·Àà ÍûÍ ØõOÍ� ñÉþ Èþ Èþ ÈþÈþ É: ·ÂE ÍæÈÍ þÂB Í þʯÉ2 >É: ·Âb ÅÍ# ÁÅÍ ÁÅ: ·ÄÁy! þÈ4þ Ð5~·ÈyþÂy 5Éþ À6ÉyÃS:êæ2E !Ô~ЯwÉÍþ >ÿà ÍT  ÍÍõ ÈÍD Í^ 6åÍkÍÆ Í-äPYy°ÊÑ ÕÅÍ5ÒìÁÑ*Æ{•zœÒôÅÕBKÍ5ÒìÑÁÃÀ<ÍdáÑÉy°ÂÀ!Éêë*³{–#zžÉÍ Ør+sÉ{•ozœgÉÿ*ìë*ÌÍ• ÐÅÍ÷ *½ë*ìÁ ÊÄ ¾ÈÍ ÐÍ, ÉwÉÍœ Íà ͸ ÃÚ Íà Ͳ !±Ãã !¹N#FÃ$*¹ë*±€ÃO !ê~#¾À<É!ÿ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É>"O *»ë!ÁÍO *Æ|!Ý6ÿ·Ê� 6>ÿ·Éͯ*µw#w*·w#wÉÍ'û Í*·È! ÃJ *êÍê "å"ì!åN#F*·^#V*µ~#foy“xšÒú å*Á{•_zœWá+Ãä å*ÁÚ2Õ>2ÓÍT *C ÍG Í» :ãþ€Ò Íw Í„ ÂnÍ> 2×·Ê;O Í^ DM;}´ÂH>à "åë*C  :Ý·:×ÊdÍd sÃlO s#r:E ·ÀÅÍŠ :Õ==»ÁÍ Ò� õ^ÍH ñö@Oyþ ÂH  ÍH : æ– Éͬ  Í à #ÍH ÍÉ : ! ¾Ð ÍH ù  ÍH  ÃH þ$ÈÅOÍ� ÁÃÓ : 2 *C N#åÅåÍûæáÁþ ÊÁ þ Ê Õ*C ëÍ^ ÁÍO ÍÃ ÃÆ ÍT  Í*C ~wÍõ ÈÍD  ÍÍ-Ã' ÍÍõ È ÍÍ-Ã@ÍÍõ Èͦ ~õåÍ^ ë*C  ÕÍO Íx Ñ! N!Fáñwy¾ÿ"êÉ*Èë*ê#"êÍ• ÒÃþ :êæ‡ 2é·ÀÅÍà ÍÔ ÁÞ yæ<_WyæOx‡‡‡‡‡±OxæG*¿ ~ÂVÉÕÍ5æþÁ±ÂdwÉÍ^ ÅÑ ÈÕ:ݷʈà !"­"¯¯2B !€"±ÍÚ Ã!Ír ÍQÃQÍQâë~þ?ÊÂͦ ~þ?Är ÍQÍÃé *Ù"C ÍQÍ-Ãé ÍQÍœÃÍQüÍQÃþÍr ÍQÃ$ÍQÍÃ*¯ y•xœÚ ëá#Ãú áÅÕåë*ÎDMÍÑ*µs#rÑ*·s#rÁy“OxšG*ÐëÍ0MDÃ!!ÃN:ã· ÂE G>–O:â Ê\ ·ÃS €É*C  :Ý·Êq n&É ^#VëÉÍ> OÍ^ Åy==»å*¹Ww#òŒÍà *ç"åÅÍÑ Á͸ *å:ÄG¥¸#šá"åÍÚ ÍÑ ÁÅ͸ Á:ã!á¾ÚÒw4 ÂßõÍi æwñþÂ:ÕþÂÍÒ ÍZ!E ~·Âþ=2ã6Á þ x·Êï : 2 Ãp þÂ& x·Êï ~+é þÂ7 ÅåÍÉ ¯2 Ãñ þÂH å! >–wáÃï þÂ_ á: ! ¾Òá 5ͤ ÃN þÂk ͱ áÃá þ¦ Åͱ ÁáåÅx·ÊŠ #NxÊ‹>Ú‹>€*C wÉ~#¶+Àw#w+ɯ2E 2ê2ëÍ ÀÍi æ€ÀÍÍõ ÈÍ^ ë*C :Ý·Êè~·ÂÛw·Âá~¾ÂÃýÍ”ëÍ”ë¾Â#¾Â # ÅåNÃŽ ÅN#Fåy°Ê�*Æ}‘|˜Ô\á#ÁÃu*ÆÍê #DM*¿6# x±Â±*Êë*¿s#rÍ¡ *³6#6Íþ ÿÍÍõ ÈÍ^ >å¾ÊÒ:A ¾Âö#~Ö$Âö=2E ÍkÍŒ ÃÒÃ):B à ë"±ÃÚ *¿Ã)*­Ã)ÍQÍ;Ã*»"E É:ÖþÿÂ;:A à æ2A ÉÍQÓÍQÜÍQÃÒ*C }/_|/*¯¤W}£_*­ë"¯}£o|¢g"­É:Þ·Ê‘*C 6"åÉ*å}´É:Ã*å)=Â� "ç:ÄO:㡵o"åÉ*C  É*C ë!ÉÍ® ~2ãë~2áͦ :Ŧ2âÉÍ® :ÕþÂÞ ¯O:ã�wë:áwÉ È|·g}oÃë €*¹¯†# ÃÒ ¯2ÕÅ*C ë!!~æõ~#~æO~æGñ#n,-.‹! w! y–ÂG!x–æÊÅÕÍ¢ÑÁ.:E <Ê„! q!pÍQ:E <ÂÁÅ. Ê„Í$.:E <Ê„ÁÅåÍ áÁÃx å: ·Êñ ! –2 ͤ ! 5™ Ãñ #wÅåOÍ áÁ~þx½ þʹÚï áp ÃH Í Ã Íà y<Êà <Êà Í·Ê‘Í Ã :à !qÉëMDÃÓ Í#ÂÍìÿ ë ¾Úw ë ~>ÿ2ÒÃ!E 5ÉÍT *C å!¬"C ÍÍõ á"C Èë!¯w# ÂF! wÍŒ ÍýÃx ¯2ÒÍ¢Íõ È*C  ~<æwʃG:Å !Ҧʎ:Ôà Åõ:Å/Gy Oñ ‘æÁÉ>ÿ2Ô!Øq*C "ÙÍþ Í¡ ÍÍõ Ê”*ÙëþåÊJÕÍ ÑÒ”Í^ :ØOy·Êƒþ?Ê|xþ Ê|þ Ês–æÂ-Ã|ÅNÍÁÂ-# :à·Ê‘w:ß2ÖÍE* ù*E }DÉÍQ>2ÕÍÌÉå€Âý É È)à Å:B O!Í Áyµox´gÉ*­:B OÍê }æÉ!­N#FÍ "­*È#ë*³s#rÉÍ^  ~Ð!ÃJ Í È! ÃJ *¹:é…oÐ$É*C ~ÉÍi 6ÉÍi ö€wÉ*¯Ã åÍi 6ÀáÁ}2E Ãx ÿÍÌÁÉÍÌÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ Í*C !år#r#rÍõ Ê Í^ Í¥áå_y–#xž#{žÚ 2E É>à ! ^#Vëé Èw#ÃP :B OÍ|µÈ^#V#"³##"µ##"·##ë"Ð!¹Íì 4~æʶÍÍõ ¬:Ó<ʶÍ$Íõ ʶïÍZÍ» ¯Ã Í Ãx >2Õ>ÿ2ÓÍ» :ã!á¾Úæþ€ÂûÍZ¯2ã:E ·ÂûÍw Í„ ÊûÍŠ ÍÑ Í² ÃÒ Ã > óÃÃÃaÃdÃjÃmÃrÃuÃxÃ}çìûÃÁÃÊÃpñ‚ns î‚ns<‚nskL‚nsš{ò?À15D715E0AB :100A700015E615EC15F515FE1504160A1611162CBB :100A80000E17161D1626162D16411647164D160E54 :100A9000155316040C040C9B1�@@‘BHH„ˆ  !$$�A"D@‚�„ˆ "€ˆA" "€€BH‰A "‘ !’$� D‰ B �’I ‘ $� ˆ!„$$ €H‚@BD D$ABORTED$BAD PARAMETER$INVALID USER NUMBER$RECORD TOO LONG$INVALID DIGIT$END OF FILE, CTL-Z?$CHECKSUM ERROR$CORRECT ERROR, TYPE RÃÎÉÉ(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)      00k CP/M vers 2.2 1!œÍÓ¯2Ã1€ ÅÍ»Í}ͧͬÁ,ÅÍÁÂI*l€DMÍ»:kþÚ:j<å’ HI DIA!$$$ $" "€€$„€D ! $„ˆ" „’ $AB " BD„ˆD‘ $‘$’D�„’!"D’I$!$’BH„!"I‚B I‰$"D HDETURN OR CTL-Z$INVALID FORMAT$HEX$$$$NO DIRECTORY SPACE$NO FILE$COM$START NOT FOUND$QUIT NOT FOUND$CANNOT CLOSE DESTINATION FILE@�$@B �B’�„ ’H’H II$�‚@ˆD€’I AˆBI€$"$‚H�$‚H�ˆ(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)(INP:/OUT:SPACE)Oͧ¯Óý¯Óü>~Óü¯Óó€Í»>Ã2!"2!"28!ø"9:OûÃÁ ÊRÅÃÉ![ÍÓÃÿ?bootÃøÍøæÉà øÃø¯Éà øÃøç!å" " $"! �@H €�‚!BI „� " ‘’I  $’I$’I$’D’I$‘ !I$@"$"$‘! $’I$’I( ¨ ¨ ¨  � „ $DESTINATION IS R/O, DELETE (Y/N)?$**NOT DELETED**$$$$$$$NOT FOUND$COPYING -$REQUIRES CP/M 2.0 OR NEWER FOR OPERATION.$UNRECOGNI€@‚$�$I! ’H’*ª  $Hˆ@„@A „‚I $ˆD’!!$I"BI"I"@$’BˆIIH‰€$„’$’$‰$„ˆBB„’I$’@„BI!"$’‰$’ COPYRIGHT (C) 1979, DIGITAL RESEARCH, PIP VERS 1.5$$$ SUB =.:,<> _[]INPIRDPTRUR1UR2RDROUTLPTUL1PRNLSTPTPUP1UP2PUyþÐæ2fyæ·Ê’>0G!h~æÏ°wi&))))3É!jqÉ!kqÉë ~2koÉi`"lÉÍàÍðÉÍàÍðÉ~·ÈåOÍjá#ÃÓ!h~æø±wæ !k¶wÉ Í?ÍL:f·>gåB„I�B�‚@!  ! !! ‰D ZED DESTINATION$CANNOT WRITE$INVALID PIP FORMAT$CANNOT READ$INVALID SEPARATOR$1ò€Å€ÌÍ :ÌÖÖŸ2¥ÍLë> Í„ÒýMÍ9ÍÍ „’„A D‚�I$’@’ ªˆA$€@ªªªªªªªªªª’$’�’$�@H! "!„$$"„’„ ’@B$!!‘!DH’$�$�‰"H NTTYCRTUC1CONNULEOFDISK READ ERROR$DISK WRITE ERROR$VERIFY ERROR$NOT A CHARACTER SINK$READER STOPPING $NOT A CHARACTER SOURCE$ ÓyxÓzÃÓ‰xÓŠÍYæÊÍ?þÊ2·Â8ÍLÚ2æþÂ8ÉÍLÃ8 Âò>É:f·ÂIÛyÉÛ‰É:f·ÂVÛ{ÉÛ‹É:f·ÂcÛxÉۈɀ€å 2ÀÍ2ü1òÍ@:À2Á!o6+6+6!¦6#6!ó6#6þ:¥ÒG*ÍÍo Í.!N6ÿ:ÌþÂ^*üMÍ^Í!K6!6!¤6+6'Í :©þÂ�Ã$€ :{¡åÍ4Ê Á –ÖŸ2!{4Ãm €*¡"¡:Ú¹ µͯ !z4ÂI 'ÍÓ2!"¡É!€q:€þ Úô !ó4>!S¾Òô :S!ó¾Òô É:2�*£M ÍÉ!kp+q*jëÍÉ> Ó>ÓÛÚª Þ ÛæÉ!qp+qÍ/ *pDMÍ9:Í Í:M2r:N!r¾Úø !Ì:r¾Òñ *r&Í NÍ!r4ÂÐ !Ì6:ÃÃéͯ Ãm!6Ã2Ãm!6Ã2Ãm!6Ã2Ãm!�6Í2�Ãmˆ­¶¿ÊÕàðóöùüÿ'2:Ž2:TÒ’:£2ŽÍ :©ÖÆÿŸõ:¨Ö,ÆÿŸõ:¨Ö ÆÿŸÁH¡ÁH±Ò°¼ͯ :¨Ö ÆÿŸ2§ó:£þÂÎÍEÍÏ:£þÂÛÍ1:¥2ÌÃûv!òq!òå*8éÉ!ûå*6é: É>þÂ:Í  Í Ã Í É*¡}æ2‰€ÿÍD"‡ÍÈ *‡Ê å*‰ëÍ *‰&"¡É!Šq:UÒY:Šþ ÂYÉ:¦Ò©:Šþ Ê©:_2‹þʘ:‹þ€!‹6<:©þÂÃ:”=2KÍ Í :©þʤÍ\:õÒ·\ÍîÍxÃÀ'ÍîͲÃÛ:©ÖÆÿŸ!õ¶ÒÖÍ\Í¢Í Í :©þÂ͈ÍÆ'Å!Í ÍßÍ!Ý ^#Vëéÿ¡ÍŽÚ ÍÈ *¡Ê :€w*¡#"¡Ã Ã= Ã= Ã= Ã= Ã= Âͯ à *€MÍæÃ !6€Ãq à !6ÀÃq à !6€Ãq à *€&ëÍà !Í”:®þÿÊ :ͳÍ.ÃÉ!ws+p+q+ÑÁp+qÕ:w=2wþÿÊN *så*uÁ w*s#"s*u#"uÃ' É!"�*MÍ^Í7 !x6:û!x¾Ú¾ *�ë*DM͆ ÍÃ!£6*�MÍE:Ž2£:�ÒÜ:Ò²:§<2§ÖÖŸ2�ý:�Ö ÖŸ2�:�ÒÜÍ} ÒÜÍþÂÖ>Éͯ :iÒë:�æ2�:dÒú*�MÍîÉ:[Ò úͦ>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®:ô<2ô!‹¾Ú˜!ô6 Í >!]¾Ò¤; !¦6:QÒÌ:ŠÖÖŸõ:£ÖÖŸÁH¡ÒÌÍÉ:Šþ ÂÙ!ô6*ŠMÍ :Šþ Âí!¦6É!Œq:ŒÖaŸ/õ>z!Œ–²ÃÛ:©þÂ$Í:¨þ ÊÃ$͈ͲÃÛ!N6ÿ'Í :©ÖŸ!õ¶ÒCwͯ !6:©þÂ^Í¢Íc!¨6ÿÃ{:¨ÖŸ/õ>!¨–Ÿ/ÁH±Ò{�ͯ :¨<26à à !6 à à !60à à *€&ëÍà !6ÃÏ Ã !6ÃÏ Ã !6ÃÏ Ã *€&ëÍà . 1 4 7 : = F P [ f q  Š •   ® ¹2yþÊ­ :yþÊ— ”ͯ *�"Ÿë*6:û2x÷ €*�"�!x4Âd !"�Í/ É!¡Íj}=2|þÿÂÛ É!"¡*KMÍ^'Í_ !z6:|!z¾Ú1 *¡*�MÍÉ:�É>!ú¾Ò(:ú=2úþÂ%> É>É>!ø¾ÒF!ø5+N!Í ~2‘!÷4ÉÍ<2‘þÂT>É>!b¾Ò}*bMÍ­Òz:b2÷!b6:ù<2øé>!É!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ëŸ/ÁH¡Ò:Œæ_2Œ:ŒÉ!�q:�ÖAŸ/õ>Z!�–Ÿ/ÁH¡Ò8:�ö 2�:�É:¤=O>¹Úm:W!Q¶õÍ} ÁH¡ÒmÍþÂd>É×Í9>É!�6:2Ž*¤M!E£þŠÍÏÍ :©ÖÆÿŸõ:¨Ö=ÆÿŸÁH±Ò®�ͯ !§6:§Ò¾:À2ÁÍ !6:©ÖÖŸõ:õ/ÁH¡Òí͈;!¨6ÿÃ:©ÖÆÿŸõ> !¨–Ÿ/õ> Ä Ï :�2É!‚q:‚þ Ê" *‚MÍÐ Ãn :cþÂ4 *‚MÍÐ Ãn :ó2ƒ!c:ƒ¾ÚQ !c:ƒ–2ƒÃ: !ƒ:c–w>!ƒ¾Òn !ƒ5 ÍÐ ÃY :‚þ Â{ !ó6É!„qÊ "}*}DM͆ 'ÍÓþÊ ¤ͯ €*¡"¡!z4Âó :eÒÉ !"¡€Í† !z6:|!z¾ÚÀ 'Í? ÖÖŸ2*H#"H!{6:{Ö€Ÿ!¦Ò¢ *{&`¾Ò¥*`MÍ­Òž!`6!ú6> É:‘Éé:‘ÉÃ(É!’q:ù!’†wO!Í ~2“þÂÙ*’&Í :‘w>É!‘:“¾Âê!ù4Ãï!ù6>É:N<2N!̾ÚÍÉ!Ãp+q*ÂëÍÉÿ ÍÉ!Äq*Ä&ë ÍÉ*ÀMÍ É*ÁMÍ É!Æp+q*Åë!ÍÉ!Èp+q*Çë"ÍÉ!Êp+q*Éë$ÍÉ!Ë6€Ë ÍÉ ^#Vëéý�ÍŽÚ—ÍO *�ë*~2�*�#"�ÃmÍó2�ÃmÍ– 2�Ãm!6ÃàÃm!6ÃàÃm!6 ÃàÃmÍæ2�ÃmÃÃÃÃÃÖŸÁH¡ÁH±Ò°ͯ :^!¶w:¨<2¤:¨þÂ0ÍÏÃ}:¨þÂ@ÍEÃ}:¨ÖŸ!¦ÒS!W6:£þ Âz!]6:cþÂm!c6:_þÂz!_6ÍlÍ:„ÖÖŸ!l¦wÒ™  Í Ã¢ :„Æ0OÍ É!…q:…æøOÍ| :…æOÍ| É!†6:]ÖÖŸ2l:o†'2o:nÎ'2n:mÎ'2m*mMÍ£ *nMÍ£ *oMÍ£ :] > É*N&Í NÍîÉÍò2¨þ ÂÃÉ!–p+q!õ6!©6+6 !ª6:ªþ ÒS:ªþ ÂM!¨6ÍgÃ8Í:N2M*¨MÍ8ÒpÍÁ!©6É!”6!—6>!—¾ :0æ20:1æ21¢Íê'ͳ'Íã:®þÿ²¥ͯ !G6!"¡É!ÿÿ"ŸÍ7 *MÍ^ÍnÍ/ :a/õ:ÁH¡Òì!®6ÿ:®þÿÂú¸ͯ !&6Í9ÍþÂŽ>É!œ6Í-Ãe!µ6Í»2´þÂÇÍ=2´þʺÍ-é:¯ÒÄ>É>ÉÍÄ"·Í»2¶:´ÖÆÿŸ!¯¦Òð!´5Í»2³ÃÓͬ!µ†þÊ\ÍDM!Í ÍÆÉÍ :©ÖÖŸõ:¨Ö=ÖŸÁH¡Ú-Í\:N2OÉë_ë…oŒgÉ_{¥oz¤gÉ^#Vë)å))Á É_{µoz´gÉ^#Vë) ÂdÉ^#Vë|·g}o ÂnÉ_{•o!õ6É!œq!¨6?!œ:ª¾Ò ÍgÃ�É!�q*�&ë*•~É!ö6:À2ÁÍò2¨:¨Ö ÖŸõ:¨Ö]ÖŸÁH±Úº:¨ÖA2žO>¹Ò:¨þ ÂúÍò2¨Ãͯ ±õ:¿ÖÖŸÁH±õ:¿ÖÖŸÁH±Ú"!¾6!¿4ÂÉ:¾Ò_ÍÍjÚYÍO ÍjÒM*Ÿ"¡ÃS*ÿ"¡ÍÈ Ã3Í@ÃbÍl*¾MÍ1ÉÿÿŸÍ“µÆÿŸÉ!"À"ÄÚ•*—&P 6!—4Âz!ö6!ø6#6#6!ª6*¨MÍ8ÚÚ:ªþÚ¾É:¨þ*ÂÎ͇ÃÑÍgÍò2¨ê:¨þ:¿:”þÊëÉ:ªþÂ,Í¡ÖA<2”O>ÀÍý2*ý"�É>!b¾Ò!Äͯ >!`¾Ò0Ôͯ É!¼q:¼ÒE:24ÃJ!46*¡}æþÊa!44ÍEÃJÍÍÈ *KMÍ^'Í�:®þÿ‚ãÍÍ-:¯Ò>É>É!±p+q:¯Ò,!¯6*°DMÍ9É:®Ò<!®6ÍÉ:¯ÒzÍ 2²þÂW!®6ÃD*œ&L :²w:œ<2œþOÚv*Í:²É>ÉÍ=zœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ H ©=¨É÷:¨ÖSÖŸõ:¨ÖQÖŸÁH±ÒI:N<2ŸÍò2¨ÖÖŸõ:¨Ö ÖŸÁH±Ú@Ã"Íò2¨Ã�Íò2¨Ö02ŸO> ¹Òc!Ÿ6Ã�Íò2¨Ö02™O> ¹Ú�*Ÿ&ÍOå*™Í7 *MÍ^€Í† \Í”!"Â:®ÖÿÆÿŸÀÂõÍŽŸÁH¡ÒÄ*Â#"ÂͧÃ�Í/ :®þÿÂå>ÄÍ›µÂá9ͯ Í.É*Â#"À:®æ‡‡‡‡‡_!€å¹ÒÉÍ*¨MÍ8Ò):¨þ[Âͱ!N5!©6Éñ:ªþÊ5É!¡6ÿ#6>!¢¾Ú°! 6: <2 O>‘Ÿ/õ: !¡†O!T å* MÍ¡á–ÖŸÁH¡Ò~ÃK: ¯ ¤Íê!36'Ín:®þÿÊé:0Òã:fÚÕÍ9ÍOÍîþYÊÒ#Í9Í.3Íê'ͳÉÍ.:0æ20'Í 'ͳ'Å7Í 6Íê'Íö2¹Ö0O> ¹Ú’:¹Ö0É:¹ÖAO>¹Ò¤:Í:¹ÖAÆ ÉÍ}‡‡‡‡õÍ}ÁH±Éͬ!µ†wÉÍ»O`iÍdåÍ»áÍVÉÍ[2ºO>¹Ú2:ºÖÖŸ!X¦Ú!»6:œ!å&Á ë!ŸsÃc*ž&P :Ÿw:žþ·>!Ÿ¾Ò±ͯ :Ÿ2ÁÃÂÍò2¨É:¨þ_ÂÎ!¨6=É!£6>'!£¾ÚéÍE!£4ÂÔÉ!©p+q*¨å0Í É!­'Í !'6!36'ÅÍ :1/!a¶ÒE*Ä#"Ä>ÍzµÂ?CÍ9ÍIͲÃ�ÉÍ.!Æ6> !ƾڇ*Æ&' ~2Çþ Ê€:Æþ Ây.Í*ÇMÍþ¡!©6Íòþ[–ͱ!N5:¢2¨É:¡Æ2¡!¢4Â=É:¨þ[¼ͱÃ4:ªþÂÈÉ!ª6:¨þ.ÂÍò2¨OÍ8Ú:ªþ ÚìÉ:¨þ*Âü ͇ÃÿÍgÃÉ!ÿÍj>ÿÍA+ë!ûsÉ!Ê"@ÿÍ“Ú1!€"ÿÃ<*ýë*ÿ"ÿÍÉÊÍ“åÍnÊ "ÿáÍDÍn"ý"ÿÍÉ:¤ÖÆÿŸ!Q¦2½Ò‚Í»¾Ú:»=O!L NÍE!»4Âü ÍE ÍE:ºþÂ/ÉÃÚÍ.*œ&L 6$LÍ9kÍ9Í.ÍþÂXÉÃÚÉ�ͯ É*KMÍ^ž0Íý20ŤÍår+s+p+q*¬~þ$Ê7*¬>¦*ªõ>¦ÁH¹Ê&>É*ª#"ª*¬#"¬Ã>ÉÍ 2¨:ÒR�ŸÍŽŸÉ:¨ÖÖŸÉ!¯6!œ6Í=2µþ:Ê™!œ6:µþ“H!Æ4ÂQÉ>!”¾Ò›:”=2á:ü2É:öÒ¬Í\>!”¾Ò¿:”=2KÃÅ:ü2KÉ!À:Á¾ÊÑÉ!:K¾ÂÞÍ\ÉÍ:¨þ ÊíÍ\É!Ép+q͈ÍßÅ*ÈÕ:¨þ[ ͱ!N5!©6:”þÂ%:ü<2”*•6 *• 6ÉÃ¥É!šq!›6> !›¾Úd*›&I :š¾Â]>É!›4ÂA>É:ª<2ªO*• :¨w:¨þ?†:X!W¶Ò“ÍÚäÍ:Ú¤*¨MÍEÓ:½Ò±ÍÍ@ÉÍ@:O2MÍc;!¾6#6>!¿¾Ú)*¿&P ~þÊ":¿ÖÖŸõ:¿ÖÖŸÁH±õ:¿ÖÖŸÁH åv ~ÉÃÃÃÍÉÉÉ_{•ozœgÉ001 $$$$ SUBʉSͧÉ!v6!"v!|6:|Ò€!x6Í 2}ÖÆÿŸõ:}Ö ÆÿŸÁH¡Òk:}þ Êh:}þ$Â6Í 2}þ$Âæ*}MÍÄÃ3:}Ö02}O> ¹Òþ�ͧÃ3!zà ÉÃ]xsub*"-!/"*"+!"á"¼éÃÉ1Þ MÍ*!€"ºÍ�!"*¼é (xsub active)$áå|þÿÒ*yþ Ê¥þÂ*ë"ºëÃ*7Í*and Too Long$Parameter Error$Invalid Control Character$Directory Full$Cannot Close, Read/Only?$!9"ð!“ùÍÌÍŠÍþ͇É!Ýp+q*Üååå6Í­:}þÊ"!}5Í�ÒÃÍ­ÃÍ�Ò3*yMÍÄÃ"Ãh:}þ^ÂaÍ Öa2}O>¹ÒV�ͧÃ^:}É>É*z&ô ~þ ÂÃ!z4íÉ!{q*v#"vÿÍ™ÒÞdͧ*vv :{w:x<2xO>}¹Òý|ͧÉ»2%·Â Í‹É*-"Ã*$$$ SUBqÕ:(=2(þÿÊN *$å*&Á w*$#"$*&#"&Ã' É!"N*´MÍ^Í7 !)6:¬!)¾Ú¾ *Në*²DM͆ ·ÍÃï=2ïþÿʦ*ëå*íÁ w*ë#"ë*í#"íÃÉ!óp+q(Í÷+Í÷¶Í÷*òDMÍ÷*ðùÉ�ÅôÍp*€&ô 6:ÅeÍp\Í:ÞþÿÂ=¼ÃW Extended Submit Vers 2.0Xsub Already Present$Requires CP/M Version 2.0 or later$Å:þÂy*###۾ƒ# ÊyÃk ÍååÍ-!Û6»Í]:Þþÿ·ͧÍz2~þÊe:~2€O!� 6*~&‚ 6$>!~¾Ò_Íz*~&€ w!~5ÃBÍxûÍ:ÞþÿÂyÆͧÉ*v+"v2*þÊ­ :*þÊ— ”ͯ *N"Pë*²6:¬2)÷ €*N"N!)€ €$@€BA$! A� ‚"!$"„"ͧ!t6€É>!t¾Ò%\Í=þÊ >É!t6:t<2t=O!€ ~2uþ Âb:¸<2¸O>9¹Òb!¸60+~9¹Òb!·60+4:uÖaþÒt:uæ_2u:uÉ»ÍMþÁÉ Íþ Ò— 4ÍÁÉ!~=ÖÁÅ�WÕ!x±Êµ ~#èÑÁåbx±Ê× {æÂÊã~#ão}oÒÓ„ùÑ.éxsubbÉ!np+q*mëÍ2_É!pp+q*oëÃß copyright(c) 1977, digital research $Error On Line $SUBNo 'SUB' File Present$Disk Write Error$Command Buffer Overflow$Commå  åÃ_Ãî QÍüÒ›=Íe Í Ãî Íb:!þ-®ÍÆ! 6:!þ#¿͇ÍÆÃüÍ;ÒÜÍJ:!þ:ÂÙ!!6LÍvÃü:!þ:ÂüÍÆÍJÍv: þÂü*#"ÍŽ! 6ÍF!f6:h2k!i¾Ò :i2k:j2h:k!h¾Ò¶Í9 æ:h2j!!6:j2hÃe:!þ >"ÍúµÂáÃõͲ*"M ~2!OÍË :!þ Â*+":fÒ É*g&ëÍÉ!lq:lþ Ú$ !h4:lþ Â1 !h6*lMÍü É:hþÂB ÉÍ  Í Í !h55É!mq:mÖ ÖŸõ:hæO>‘ÁH¡2nyÒ} !m6 !o2dþ‘ÍÞ 2dÃ�:d=2d!\6:l2eþ±:d2eø:e=2eÍEÍU !M6 !""*o"$!h6Ã1m!6#Ãõ1m!6?Ãõ1m!6>1m!f6²Íú"&! 6ÍR*I""ëÃè :!ÖMÖŸõ:ÖÖŸÁH¡Ò| ! 6ÿ>ÍúµÂF Í›Íeõ: <2 O! ÁHqyþ Êd ÃF : 2! 6å*ëá#s#rÃè :!þåÒ! 6:!þBÂ)! >–w!"&*o"(ÍRÃî :!þCÂ:ÍeÍRÃî :!þDÂKÍeÍXÃî :!þKÂ\Í·ÍXÃî :!þLÂjÍ^Ãî :!þPšÍŽÒ‡! 6ÍÚ!!6Ãe*!MÍ› /Ò$^ÍL:!Æ@OÍL:!þ Â2Í‘Ãe:þÂb:!þ ÚL:h<2hÃb:!þ Âb:hæO>‘!h†wÍÙ:!þ ÂpÍX:!þ Â…!!6  Í6:n!o¾Úš *mMÍ !o4‚ É!pq:pþ Úª >É:pÖ ÖŸõ:pÖ ÖŸÁH±õ:pÖ ÖŸÁH±É!qq*qMÍ› Úç ^ÍW :qÆ@2q*qMÍW É ÍË  ÍË É!sp+qÍ *MÍË ºÍú *!MÍË Íï 1m! 6!6! 6ÍÆ: 2EÍÕÒbͽ!e:d¾Ê\:æðõ:eæÁH±2Í Ãî HÍÕÒ†ͽ:e2!:d2e:!2dNÂÝ ÍüÍ¢ÒÚ *ëÍo/Ò× ÍÄ Ò¦ ÃõÍáͶÍn! 6!"&ÍRÍè! 6o$ÍíÚÔ Ã×ÃŽ Ç Ãè :!þSÂ0 ÍüÍ$Í¢Ò- Í :2"ÍúÃÀ COPYRIGHT (C) 1979, DIGITAL RESEARCH DISK OR DIRECTORY FULL$FILE EXISTS, ERASE IT$NEW FILE$** FILE IS READ/ONLY **$"SYSTEM" ÍF×Í¢Ò—ÍïÍ:ÇÃî :!þT¨ÍFÃî :!þU¾: ÖÖŸ2Ãî :!þVÂüÍŽÒî"$ÍíDMÍ©/ÍË *oDMÍ©Íï Ãù: ÖÖŸ2Ãî :!þLÊ!!6ûô:!þʛ͑:! ¦Ò©Íï Ãî OÍüÒ¸û:!þR†!”6ÍGÍÒá>!”¾ÒÛÃ×ÍÃÈ!!6 :”ÖÖŸ2Ò.t– *rë ÍÉ!up+qÍï *tDMÍú É!wp+q*vë ÍÉ!zp+q*yëÍ2xÉ!|p+q*{ëÍ2xÉ!~p+q*}ëÍ2xÉ!€p+q*ëÍÉ!‚p+q*�ëûÃî :!þI¬!Š: –ÖŸõ:ÖÖŸÁH¡2 Ò®ÍX:h2iÍÒ�:!þÊ�:!ÖÖŸõ:!ÖÖŸÁH±õ:!ÖÖŸÁH±Ò,!"! 6#~þÂÍï ÍFÃë+s#r!:¾Ò* *&Ÿ ~2!:<2ÍÙà Ãë Ãè :!þWÂ> ÍvÃè :!þX³ ÍZÍŽÒ\ ÍE•Íe ð :7/Òƒ ÍE!76•Íe •Í• :xþÿƒ FILE NOT ACCESSIBLE$BAK$$$BAK$$$-(Y/N)?$NO MEMORY$BREAK "$" AT $1mMÍò"m Í×+ë!8s~!”¾ÚÍÃ!6!“6sÍ, !”6€:xþÿÂB!6OÃõÍU2!þÊSÍÙÃB!G6:Òƒ!6:G¾Òƒ*G&¶ ~2!:G<2GÍÙÍÉ!„p+q*ƒëÍÉ!†p+q*…ëÍ2xÉ!ˆp+q*‡ëÍÉ!‰6€‰Í É ÍÒÛ Í>É>ÉÍÉ! q* &ëÍÉ!p+q*)Í·ÍX:!þÂÍï ÍXÃ):i!h¾Ò)Í9 ÃÃe:!þÂÊ:h2jO>¹ÒF ÍL>!"ÍŸõ:i!j–ŸÁH¡Ò¼*"+M ~þ ʼͲ!f6!h6!"Í- Í·*&"K(KÍíÚ° *KM NÍ”*K"KÒŒ Ãè :!þZÂÝ ÍŽÒÍ Íó þÂÍ ÃõÍ¢ÒÚ Í:ÃÍ Ãè :!þÊè ÃâÃî ÃâÃ'ûvÍÉ!gq9mÍí+ë+s#r!9ÍÓë+s#r9Íí";9;Íí"^*mM 6*m+"o!oÍÓë#s#r!6!f6!6:]Ö ÖŸõ:mÖ ÆÿŸÁH±Ò}Í- :\ÍüÍ¢Ò‘Í ÄÃè :!þJ ÍüÍ$:2Í$Í¢Ò Í :=2:<2!¾ÒÝ*&Ÿ ~2!ÍÙü*""I*M*ëÍo/ÒöÃ×!:–"  ëÍÉ:7Ò •Íe ÍÉ!p+q*DMÍ Íï Í É=Í? )Í É!p+q.å*DMFá -ÂL É*9"`!"b!h6!j6!|6.!=\ -Âx “**"&*"+"(á*$#"&**#"(É*"#""É*$#"$É*"+""É*$+"$É*#"É!4qM*"å*$å: þÂ*(yÚñ"$ááÉDMáÑ}‘|˜ÒC#~þ¦> ÍúµÊ¡* +" >ÍãµÂ¡Ã×! 6: <2 =O! NÍ’É: ÒÉÍó OÍ’É: Ò! 6:hÖÖŸ!¦Òo$ÍíÚúÍÃýÍOÃ6ÍÚÍF:B2 o(ÍíµÖŸõ>&ÍúµÖŸÁH±Ò6Í›Ã9ÍèÉ!C6>!C¾ÚaÍÄ ÒRÃõ>úÍ:C<2CÂ?É! 6!"É͇Í¢Ò�q"Íí*bë*^:w*b#"bÉ!q:6þ€Ú¶ÍZ•Í… þʱÍ- !66*6&¶ :w:6<26É!J6*b}æþÊê:J<2JÍmÃÐÍ=Í? :xþÿÂþÍ- šÂÉÍe2!ÖÖŸõ:!Ö ÖŸõ: /ÁH¡ÁH±/ÉÍÒQ:!þ Â@!!6 ÍR!!6 :!þÂKÃâÍRÃ$É*&Ÿ :!w:<2þdÚnÃíÉ!:s+q*$";!>6!e:d¾Ê¥ *eMÍç \ÍR :xþÿÊ¥ @Í *dMÍç \Í, :xþÿÂ× \Í• :xþÿÂË Í- VÍ Íï Ãù :eÒë _Í Íï Ãù :fÒù wÍ ”Í:   å*#"áÃö*&DMáÑy“xšÒCþ Â1å*+"áõ:4Ò?ñw+ÃñÃÕ³â"$á""ÉÉÍÊÉÍÊÉÍ·ÍRÉ: þ—*$"("ÍíÒˆ!*ÍË Í¸ ! 6 ÍË !h6!Š: –ÖŸ2 Ò3* &‹ 6 : <2 =O!‹ NÍ’É*dMÍç €Í÷ É:”þ€ÚsÍGsÍu þÊn>É!”6:”<2”=O!€ÚŠÍ›Ã�ÍÄÃqÉ!!6 ÍÙ!!6 ÍÙÉ!6*!MÍa2D*!MÍ’2!:D/!¶+wÉ!6Íe2!Í¢É!Eq!E:!–ÖŸõ:ŠÖÖŸÁH¡õ:ÖÖŸÁH¡É!FqÍ: Í;*dMÍç .=\ -Â=ͨ Í;�Í: *eMÍç =ͨ É.M= -ÂCÉ!q:þÊYÉ*MÍË É!q:ÖaŸ/õ>z!–Ÿ/ÁH¡É!q*:>/;oõÍíŸÁH¡Òç*;#"(";:92=*=&Ÿ å*(M Ñ–ÖŸ!:õ:=–ÖŸ2>/ÁH¡Òä:=<2=*(#"(æÀ:>Òø*(+"(ÍR:>É!6=Íe !e:d¾Ê*eMÍç =Íe —Í: =Íe =Í• !]6:xþÿÂ>Í- !"É!76!¡6!µ6!66É*dMÍç ¶Í÷ ÉÍÓ*dMÍç !6:8!¾ÚÏ"&Ô"Íí"&ÃÃ*""&$mÍíÍýÚ¸*o"(ÃÃ*ë*$"(É$"ÍíÚÓÃíÍÚOÍ26þÂæÍ›É*"M :6wÍ¢:6þ ÂÍÂÉ NÍ’É!ÿÿ"É>ÍúµÖŸÉ!"ÉÍŽ/Ò´*+">É>É!": þÂß*#"*""*!".+",Ãñ*$"**o".!",!36:3Ò{.*FMÍÕÒ8Íï *FMÍü   ÍÍó OÍy2FÍï :FþYÊ5Ã>É>É:!Ö02HO> ‘Ÿ/É!"Í;Òu*)))å*)Á å*H&Á "ÍÆÃPÉÍíÒMÍaÒŽ:æ_É:É!q:Ò¥*MÍyÉ:É!p+q!'"!6>ÍúµÊ*ë*ͪ{2*ë*ͪ"*ë! ͪë":ÖÆÿŸ!¶Ò!Í$:2É*ëÍo/ÒÃ×É*!MÍyõ:”<2”=O!s ÁHqÉ*ë*DMÍÉÍ·! 6: þÂe!"*""?Ãk*&"?*?+M ~2AÖ ÖŸõ:h*`ë*;DMÍ÷ \Íu 2xþÊ»>!x¾Ò¨Í- *`ë*;6:82ÃÅ€*`"`:<2ÂwÍÓÉ!"`É9`ÍíÚéÍh*`ë*;~2þÊ*`#"`ÃÄÉ!7q:Ò*7MÍ’É:7Éo$ÍíÚ+Í›Éͪ*$M ~28OÍm:8þ ÂIÍÂÉÃÉ͇Í¢Òu$oÍíqÍýÚoÍ›ÃrÍÃPÉ! 6!"&*ÍíµÆÿŸ22*,ë**"0M õ~Ö ÆÿŸÁH¡Ò3*0"*Ãý*+"*+">ÍãµÆÿŸ23:2/Òk!36,*Ííë+s#rÃx:3Òx*0"*Ãö: þ˜! 6Ííë+s#ré! 6Íí"ÉDM!>õ)ë—)ë�‘o|˜gÒà ñ=±É^#Vë) ÂÍÉ^#Vë|·g}o Â×É_{•ozœgÉi`N#F‘o˜gÉo&•o6:Æ0OÍË Ã ÍË ÃºÉ!p+q:/Ò(É*DMÍ©:ÍË  ÍË : ÒI ÍË ÃN*ÍË É*DMÍÉ:þÊaÉÍOÉ>!¾ÒºÍÄ ÒxÃ×!: ¾ÚÖÆÿŸÁH¡Ò�Íï *&"?(?ÍíÚÙ:Aþ ½Í8*#"ÍÄ Ò½Ã×*?M ~2AOÍË *?"?Ò•É!"É*"É*"ÉÍáÍÚÍ^: 2B! :É*eMÍç !bÍÓ+ë!s{þÿÂ!ÉÍf!6:!¾Úb*bë*^DMÍ÷ =Í… þÊNÍ- €*b"b:<2Â)ÍfÉ!"bÉ!q9bÍíÚ€Í*$"(ÍRÍŽÒ”ÍMÍ¢Ò¡ÍÔ($ÍíÒµ! 6ÍRÉ͇ÍvÉͶÍÚ2!þÊÕ*!MÍmÃÀÍËÉ$"ÍíµÂéÃí*"M :!wÍ¢:!þ ÂÍ  œgÉ_{–_z#žWëÉ H Â=ÂÉ LIBHEXåX$$$$$$$LIB1*"Íà COPYRIGHT(C) 1978, DIGITAL RESEARCH åð ð åÃà á ÃÊ Ã4êÃÞü ÃÃ/ÃLÃ9ASMPRNå  : ÖAþæÉ: ÖAþæÉÍ‹ÀÍqÉ: þaØþ{Ðæ_2 ÉÍ 2 Ã-Éþ ÈþÈþ!ɯ2…ÍI: þ Êôþ;Êáþ*Âí: þ ÂíÍ­Í·ÊúÃáö þ ÂúÍ­ÃÇÍ‹ÊYÍú :7þÊ—Í8 zÍú !<ͼ ÃCP/M ASSEMBLER - VER 2.0 NO SOURCE FILE PRESENT NO DIRECTORY SPACE SOURCE FILE NAME ERROR SOURCECCMPCPIDAADADDCRDCXENDEQUHLTINRINXJMPLDALXIMODMOVMVINOPNOTORAORGORIOUTPOPPSWRALRARRETRLCRRCRSTSBBSBISETSHLSHRSTASTCSUBSUIXORXRAXÍ :7þÊž !zååÍÍ Í8 ÑÍ ÑÍ Ã!"›¯2D2X2#Í! 8Íé É!ãͼ Ãz¼À{½ÉÅÕå*›ÍÄ ÂÍ! !"›!�Åå8ÍáÁ·€Â €€w![€¯w#w#Âb!"ÖÉ!ˆF¯#†Âvæ2[>Ã9ÍqÊ>Ã9: þ'Â!¯2 >Ã9þ Â7:Ï·Ä! 6 >2„>2…: 2 ·ÄQÍ­:…þÈþÄž! :…þÂlÍjÊ<Í–ÈÃ<þÂÍjÊ<Í|Â<:  FILE READ ERROR OUTPUT FILE WRITE ERROR CANNOT CLOSE FILES END OF ASSEMBLY ÅG:7þxʘÕõ!#~·Ê„þÚl͸Ä*Ðë*!O {½Â�z¼ÊŠRICALLENDMLDAXLHLDPCHLPUSHSHLDSPHLSTAXXCHGXTHLENDIFMACROTITLE  PF FPóû!Û (Έ€Æ  2æ/# Âþ Âç ÃþÒ+6# Â�*›å#"›á~áÑÁÉ!úͼ ÃÅG:6þÊQþxÂJÍÞÃQÕåÍSáÑÁÉ*�ë!Ÿwë#"�ë!ÍÄ ÀÍ1 !"�!ŸY~þÈÅÕÉG*Ö##~æð°wÉ*Ö##~æ<É*Ö}´ÉÍq!ˆ~þÚ¬6![^![^#fk"Ö͘ÈÍŽ!ˆ¾ÂáG#ë*Ö###¾Âá#ÂÕÉ*Ö^#Vëû!ˆ^*Ë"Öë*ÍþOÊŠþQÂ�>ÖþH >2 ¯2 û: þB­>ôþD> ¸!ˆ52 !"†!ˆN#~#þAÒÒÖ0ÃÔÖ7åÅO! ¾Ô~*†ë!·Ê÷Òñë)ëÃè "†Áá ÂÆ͸*Ð"!!#^4!$ñwÑÁÉõæͯñõæͯñ‚WÉÆ�'Î@'ê>:ͪ!#^¯Ww*!{Íš|Íš}Íš¯Íš{·Êè!$~#ÍšÂ߯’Íš> ͪ> ͪÉ?¸þ'  vÃ:P@<° ö!ÓÁÉ Ç˜Þ PP27�Ö (¨îÍ *éÅ"ùëã  NZZ NCC POPEP€€~# Â…ÑÕåÍáÑÁ·Â¡ÈÃz!ͼ ÃwÅÕåÍ´áÑÁÉ*Ÿ ë!¡ wë#"Ÿ ë!ÍÄ ÀÍ8 !"Ÿ !¡ zÃzÅÕå_ÍáÑÁÉOÍ4: þ È:6þÈyÍÞÉ{•zœëÒA"Ë*Öë![N![ N#Fr+sëq#pˆþÚ/>G=#w#wÂ3¯#w#wÉ!JÍÃSYMBOL TABLE OVERFLOW æðG*Ö##~æ°wÉ*Ö##~æÉÍ!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÉ: þ Êþ'Â<Í­þ'ÀÃ<õ>VÃ$õ>OÃ$ÅåÍáÁñÉõ:…þÄžñÉàÃ\ÞØÃëÃ`ÃrÃ�ÖÃ@Ã2ÃÀÍõþ Ê0þ Ê0:„þxÒ0_<2„! ñwÉñÉÍI2 2„> 2 Í>2„ɯ2ˆ2 É!ˆ~þ@Ú_6Í^4#: wÉ~þ$À¯wÉ: Ö0þ æÉÍqÀ M ÿ¯x�»ÊÄ_åÕÅåBH!œÑ‰¾#¶ ¦ÁÑá{ÉÁÑáÚÀKÈCȯ<É:‰ÂþJÈÄþCÈÀþRÉ:ˆþÒ þÊòþ !‹6 s!оÂ:„! ·ÊG~Íë#x=Ã2„> Íë> Íë! >x6 #=Â'ÉG! ~þ ÀpÉÍ( ÊO*�}´ÊO>Í4Ã?:7þÊw:#·Ä¸*Ð"!͸*Ÿ }´Êw>ͪÃgÍ( ʆÍ1 Ž*Ö_###ÉåÍÑs#rÉÍ^#VëÉÃ`ÃÃÄÔæ‚®½ 4 ½ÝïWm ()*+,-/ABCDEHLMDBDIDSDWEIIFINORSPACIADCADDADIANAANDANICMACMÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7Í¡ É:\þ Ê» Í24!dÍ® 25Í® 27Í® 26!8ÍÍ Í( ʃ !YååÍÍ Í1 ÑÍ Ñ  #¾È Âø ɯ<É:ˆO=_ÕþÒZ!µF!©V#fjQ̓ÂEÑ!º^#Vo&)~#FÉÑÍÇÀÅÍÛxÁÀ·°Gy¿Éѯ<ÉàÃÃnÃ8Íç°Ã®Íò°Ã®ÍòæĽ yæ0°Ã®Íò°Ã®ÍH Í ñÍG Í ÍùÃ1:…þÄÑ :‰þ,Èþ;Èþ ÄÑ ÉÅÍÍc*ÉÁÉÍÑ|·ÄÇ }ÉÍÝþÔÇ æÉÍçæ8OÉÍòæ áÁÃvÍÛÍc*É|·ÄÑ EÍH Íùͺþ,Ê^Ã1Í Í¦ ÍÑë*Ò"Ò"ÐÃ1Í ÍÑåEÍH áDÍH Íùͺþ,ÊÃÃ1Í Í¦ : þ Â1ÍÑ: þ Âú"í > 2 Í yÁÉÍñþÊÉÍñþÊþÀ=É!z{w# Â%þ Âw!PÍ Â yÍ“ÉÍõÍ}ñöÀÉ*w#"ÉÍŒþ Ê@þ.Ê@Í<Ê!¦EÍ·Â~ÃP =Ê…VëÃqþ”*†ÃqͦÂ1þÒ&þ O:lµ·Ì…>ÿ2ly÷ÂÅ:‘·ÊÞ_!w~¸ÚÞ!‘s!m~ÍôÁùÁyþ Â!‘~·Êü=w_!m~þ ÊÿÍ…¯¼Ã=COPYRIGHT (C) 1980, DIGITAL RESEARCH DDT VERS 2.2$1ÅÅ0 ÍÁ!~=�WÕ!x±Êe ~#ÃXÑÁåbx±Ê‡ {æÂzã~#ão}oÒƒë!’~þڢͅ6~44O!� s#rÉõ!‘~þ Ú¿6Í…^4ñ!mw!wpÉ!’~·ÂÞÍ…!É55N!� N#fiÉÍÏëÍÏÉo&)^#fkĽ yæ0°ÃG ÍÝÃG ÍÑÃt õÅ:…þÂ):‰þ,Ê.>CÍÁñÉÍ :…þÂ|:‰þ ÂJÍüþ;ÂrÍ Í:…þÂR:‰þ ʼþÊ‹þ!ʼÃRþ!ʼþÊ‹>SÍ:…þÂ|:‰þ Â|ËÃÑÍã ÃÑÍ Ê|*ÒåÍÑ"ÒÍ Í© !6=á"ÒÃ1Í ÍÑ: þ Â1}Ú1Í:…þÂn:‰þ>BÌÊ‹ÃSþÂSͦÂSþÂSxþ!ÎÍ·Â’ÍPÍŒÃQ!æͷªÍPÍ}ÍQxÃQ!êÍ·ÂÆÍÛÍ“G@ÍÛ±°ÃQ! Í·ÂÜ yÍ“G€Ã¾!Í·Âô ÍÛÍ“±ÃQ!Í·ÂÍÃͰ>ÿ2lÃyþÊþÂPÍÍLÃnÍRæ>UÌÍX:l·Ì…¯2l͓̈́ÃiÑ.éÍ2_É!fp+q*eëÍ2_ÉÍ2_É!hp+q*gëÍÉ!jp+q*iëÍÉ!lp+q*këÍÉ!np+q*mëÍ2_É!pp+q*oë鉒™Ÿ«¿ÆÐÙàìø…Íìz·Â'{þØÍ…>ɯ•o>œgÉÍìë"k!m6ů{_zW5áÈ>Î)D…*k•OxœGÅÒd ã!m?ÃFDM!¯xGyOÚ‚°ÈÃÃR{•ozœgÉ!Ï~4·Ê§Íͦ !6 ! Í*Ëë*ÔÍ„å*Íë*ÔÍ„\áÍiëÍ© !Ö·Êäw#ÃËH USE FACTOR !Í*í "ÐÃz¼À{½É*Ð"ÒÉÂSÃÑÍã Ã1ÍÑ: þ Â1"Ò"ÐÍ Í¦ Ã1Í Ê|ÍRþÄÝ >ÍOÍÑåÍ áÍU!"ë Ã1Íã ÍÃ1Öþ!Ò|_!ë^#fké $8AP`ix�ÛÍ“öÍQÍŒÃQ!.Í·Â6yþÚ#ÆGÍÍ™°ÍQæÏþÀà!2Í·ÂQÍŒþÒÍ“öÇÃQ!>Í·Âq ÂeÁÃgÅÍÍ™±ÃQ:zþJÂ�ÍEöËÃ*å>EÍáɯ2ÏÍCÍÍ!"ë "Ð"Ò"í Í:…þʼþÂÝ:‰þ*Â1Í Â|ÃRþÂ|ͦÊ0ÍFÍIÂþÍL:Ï·Ä× Ã ÍRÃÃOÃ$*sëÍõyÍ�ñÉþ Èþ Èþ,Èþ ÈþÊ$É Í ÍÉÍŒþ ÊÍÊ9!z6 # ÂL!zwÍŒÍÊj# ÊÃX:zþ ÉÖ0þ ØÆùþØÃ͘ƒë)ëÃsÍìÍnÃÍ5ëÃÍ5ÃÍ·Ê)=âÍ·Êõ¯|g}oñ=îÍìÃÍìëÍ-ÃÂÍÏÍ-ÃÍÏ#ÃÓÍìz¤g{¥oÃÍìz´g{µoÃÍìz¬g{­*ë "ÖÍIÉÍ È!"ë :Ï·Â1 ÍRõæÄÝ ñöÍO*ÒÍUÉÍRæÌ× ÍXë*ÒÍóÄ× ÉG:Ï·xÊl ÅÍ: þ *ÒÌ© :ï þÁÒl xÍ– *Ð#"ÐÉåEÍH áDÃH Æ0ˆ�ž¥ÍH ÍñÍüÍÍñÍüñÍòþ8Ê1æĽ yæ0°Ã®ÍH ÍñÍò°GÍÍç°Ã®Íò°ÍG ÍÍ ñÍH Í ñÍòæ(Ľ yæ°Ã®ÍH ÍñþC–ÍEöÍQyÍQxÃQþRÂÍöÀÃQ*Õë* {•zœÒ·*ùÉÑ~#" É<æþÚÈÆþÚÏÆÆAOÃGæðÆ�'Î@'OÍxæÆ�'Î@'OÃNÍ#Âõ þ Íã ÃR*ë }´ÄÝ *Ö"ë Í:…þ¿:‰þ:¿üþÂ×X!C^#fké[©ÀÞ@‡�§ÎÍ Í:…þÂŒ:ˆ=ÊŒG!‰ʆÅF#åÍH=ÂëN#FyÉÍ}ÂÉæ8Éæ0Éë*zë{¾Â¯#z¾È+++ Â¥ ÉÕz¾ÂÊ#½ÑÉ#ÂÊøÿÑ · ÉÅÍ9Ê!`Í Â yÁÉÅÍ9Ê!rÍ·oÓ:…þÀ:‰þ Èþ;Èþ,Èþ!ɯ2‘2’=2l!"ÉÍÂ]!‘~·ÊH5_!m~ÍôÃ0:’þÄ…: þ À*�"ÉÉ: þ Â:…þ‰:ˆ·Ì…þÔ…!‰^#þ:ØÆÉÍ~ !ï ^4! wÉõæ͆ ñæÆ *Òë!ï å6zÕÍ– Ñ{Í– á4ÉõÅ>RÍÁñÉõå>VÍáñÉõ>DÃæ õ>PÃæ õ>LÃæ õ>NÍñÉ Ãzæ8É͇O!B NÍ#NÍ ÍÃÍæþ¾SÍPÃÍ.* |ÍÕ}ÍÕ ÍÍÉ!9":·Êq!ÿÿ"<Âq<2* ×ÍžÂ@!~·Êƒ5Éë*‡}“|šëÉÍ� Ð"‡Éå!Í� áÉÍ� !ʬ =« Íf åÍkþÿÊ« Íj Êá áå\Í¢á·ÂF €€w# ÂÓ Í‹ ÃÀ Ít þÊ« Þ:Âá WáåÍ& _Í& õÍ& ÁO { Ò« Í� =« Íf " Í ÃþÍ“ Ò« Í� Ê»Íf " =Ê»Íf "=« ¯Ã½> 2ÍÃþÍ� ÊåÍf ÚÕ"]æ=ÊåÍf =« Ãð*]}æðo¿"_Í Í Âþ*]"xÃó áñÊ(#"¹ë!¨N#FÍWÚ(ÍÈ *Jë>‚·7Ã…û*M|µÊN+"MÍ ÂN:L·ÂHÍ…Ã…ÍD Ã…ÍÈ >*ÍÇ *¹Í“ Òb" Í. *·"]Ãþ !/~ #¾#Ê�ÂtT 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 ANÆ7ÃÇ õæÍö ñæÃö > ÍÇ > ÃÇ ÅÕå Í¢æáÑÁÉë|Í }à þÒ@ þ ÒÇ >.ÃÇ ë*_}“o|šëÉþ Èþ,Èþ ÉÖ0þ ØÆùþØÃ« ë^#V#ëÉë!ÍY ))))µoÍÝ ÍP Ê@* Í¡Í. ÍÍÍ;Í£W!E¾Êý# ¡ ¾Êé# ¬¾ÊÎ# ·æÀþ@Ê´þ€Ê¥zæÇÖÊ–=Ê�=Ê|zæÀÊJzæÊ?ÖÊ4ÖÊ)ÖÊzæ zæ·Â `i"¹ÃF Í& Í& w# Í& õÍ‹ ñ« Ãá ÅåÕÍt ÍY æðõÍt ÍY Á°GÑ‚WxáÁÉ Í¢!o ~·ÊZ ÍÇ #ÃN Í *‡Í. ÍÅ *¹Í. Ãþ NEXT PCÍ� =«aÍ. ÍÅ ~Í #ÍE Ú}æÂ"]*aëÍÅ Í6 *]}“Â#|’Â#*]ÍE ÚþÃóÍ� þ« Íf åÍf åÍf ÑÁÉ{‘z˜ÉÍA|·Â« ÍWÚþ}ÃdÍ Í� Íf åÍf åÍfZÉ*¹F#åÍn!Is!œ^#Vëé¸à¸à¾ò&&##&ÍÎÂ)ÍÙÃ):¨»À:©ºÉÁá^#V#åÅÃÄ*µ^#VÉÍÎÊíÁÅ>Ã+ÑÕÃ)xþÿÂü¯Ã-æ8_A 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Âq ëÉs#r#å!V4áÉÍÝ !V6#þ ÊÕ þ,® >€2Vñ Ím Í… þ ÊÕ ÍÝ Ím Í… þ ÊÕ ÍÝ Ím Í… þ « Vþ�Ê« ·Éå!à XN!³~ëáÉÍã Êþ Ãö æO=!9 ÍóÍþŸ!6ÍóÃq!2ÍóÍÍÕÃqCÍÍ ÃÙJÍÍ ÃÙRÍÍ Ãq!zæÊ zæ=ÊnþÚaÖ‡‡O ÍóÍ$ÃqÍóÍ$,ÍÃÙ!Í Íf Í åÍ. ÍÅ á~åÍ ÍŠͶ ÍÝ áþ Ê» þ.ÊþåÍ“ =« Íf |·Â« }áw#Ä ¯ÃÅ >ÿ2LÍ� !ÊÞ =« Íf }´Ê« +"MÍD Ã…ÍÝ þ Âõ ÍD Ãþ !³ ¾Ê # DMÑáóÊ¡Ú�"¹æ=Ê¡Ͳ=Ê¡YPͲ1¯ÑÁñáù*¹å*·ûÉõÅ!O~4·ÊÍ#~#F#»ÂÍxºÂÍ~#s#r#w>ÿÁñÉÍ� þ« Íf åÍf ÑåÍ Í. ÍŠᯕo>œgÍ.Ã)*·ëÍÄÂ)þÃ)ÑÕÃ)ÍÙÁÅ>Ã+ÑÕÑÕ><7áÉÿÃÇÂÿÍÇÄÿÉÇÇÿéÇÇÆÏç"ÇÀ÷ÓÍ9Í.ÍþÂYÉÃÛÉ�ͯ É* MÍ^žáÍý2¶áÅUâêÃÏ Ã¶ ÃÝ ÃÇ Ã Ã- Ã� Ãf à Éã"JãÃ*"¨!¢"!"¯2O!" "]"‡"¹!1·å!å++"·åå"M>Ã28!†"9:]þ Êþ!åí 1¯ÉÖ!¾ _^ÿ!»ÉÍ ^#VëÉ~ÍÇ xþÒ+ Íó Íö Éõ>=ÍÇ ñÂ= !´~Í ÉÍ Í. É!³ Í ÅåÍ áÁ#xþ Òf þÚL ÍÅ ÃL ÍÅ Í…õÕÅÍ“ Ò† *¹" !6ÿóÍ;,ÍÃô!Ù!ÍóÍ;Ãqzæ8O!î ÍóÃÅ!êÍóÍ;,Ízæ;Ãqy‡‡O!Î ÍóÍ£õÍ£Wñ_Í•Ãqy‡‡O!¦ Íóͣ͒Ãqy‡‡ Âû ë ÍÝ þ « ÅÍ Í ÍŠͶ Í� ·Êþ=« Íf ÁxþÒY |·Â« }þÒ« Íã gA>þÍS ¤Ag}ÍS ´ÃþÈÃS Âi |·Â« }!´wÃþåÍ Ñs#rÃþåÕÅ:[æÊ”  Ãþ¯2|2\ÍÝ  !]w# Ê« ÍÝ þ.Ê& þ  Ê0 6 #Ã& þ.ÂK !eÍÝ þ ÊK w# Ê« Ã: ÊU 6 #ÃK 6ÃþÍAÍWÚþ w#Ã] !e~æþHÀ#~æþEÀ#~æþXÍ :áæ2á:âæ2â¢ÍêØͳØÍã:_þÿ³¥ͯ !ø6! �@!’!BH @@A‚BH B! "ˆBHI$$’BI$BI „$„’ ’HI Í“ Ú !€"Í >-ÍÇ Í¶ ÍÝ þ ÊþÖAÚ« þÒ« _!7^#Vëé~« « Æ« \pÚ « « —Z « « « « œ z à ¿ « « ç « « åÕů2[\Í¢ÁÑáÉÍ“Íï +"_*¹~Í #ÍE Ú¯ õÍÅ ñ³Ê« ^#VëÍ. ï ~Í ÁÑñÉCZMEIABDHSPöôüúþ!"MÉó"·á+"¹õ!9ñ1·åõÅÕ*¹~þÿõå!O~6·Ê=G#^#V#~O!b ÍóÃq!vÍózÍ’ÃqÍ.?Í*ù!9"Í8"͉ÍZ*" Ã+*ùÉ'/7?vÉãéëóùûÆÎÓÖÛÞæîöþ"*2:ÃÍEI SPHLDI XCHGPCHLXTHLRE_!€~þʦ ![4·Ã§ \Í¢·Â¦ 2[à 7ÁÑáÉÍ >?ÍÇ Ãþ eÍ¢!g"cÉ> åÕÅ_Í¢ÁÑáÉþÈþaØæ_Éå!f~·> Êô 5*c~#"cÍÔ áÉþ Ò Æ0ÃÇ  ‚D$��„‘H��„„D$$ H „ B’!$D$ˆ"$’B$�’DA!AB�’I$„�’H B$�’I $’H’I$‘�H$‰! $’I ÚÚ×€* " ÒxÃÚéÍß20 þº€Å*   DM€Í"Ã×:0 þÊÈAÍd*   6!ÿ" Ç!" : É!"6 "8 ": }2< !"4 "= ! ÍdÅeÍ"\ÍÏ\Íÿ\ÍŠ: þÿ²ÍdÃÉÍä\Í�: þÿÂÉ)ÍdÍàÍ;É! q* &ëÍfÉ ÍÐ ÍÐÉ! q> ! ¾Ò: ÆAÖ OÃ3 Copyright (c) 1979, Digital Research????????????CON:RDR:PUN:LST:DEV:VAL:USR:DSK:TTY:CRT:BAT:UC1:TTY:PTR:UR1:UR2:TTY:PTPåA Ö0O> ¹Ú:A Ö0É:A ÖAO>¹Ò&–ÍRÍ€:A ÖAÆ ÉÍü‡‡‡‡õÍüÁH±ÉÍ.2B !2 †w:B É!D s+q*C &Í�:D ÍÉÃÃÃÍÉÉÉë_ë…oŒgÉ_$’I$„$�’’A !Aªªªªªª @’$’I$‰"!$’H$I$’I ’"! $�‘A$ˆ€’ � H„H��„AA"I @BB‘ „$�„’A"6ÍYþ:Ê Ã!2 6Í=21 þ á:1 : Írë+s#rÍ=õÍ=_ÁHÍL"4 " >6 ͪµÂS* "6 Í=23 :1 =21 þÿÊvÍ=OÍý* #" ÃY8  Í�ÒÍÐÃ: Æ0OÍÐÉ! q: æøOÍë: æOÍëÉ! p+q* |OÍ* }OÍÉ! p+q* ë ÍfÉ! p+qÍà* DMÍBÉ! p+q)ÍR* DMÍB1ÍB*:UP1:UP2:TTY:CRT:LPT:UL1:R/OR/WSYSDIRR/O R/W SYS DIR ** Aborted **Active User :Active Files: Drive Characteristics6Ã@ COPYRIGHT (C) 1978, DIGITAL RESEARCH ERROR: $, LOAD ADDRESS $DISK READ$INVERTED LOAD ADDRESS$DISK WRITE$LOAD ADDRESS $ERROR{µoz´gÉ^#Vë) Â�É_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉ$�$$I$’’$H!!! ‰’BH" !I B  �ˆˆ$$���!BD!€ $!�’BI D@‰"€!$�I$$H‰�"!�ˆ‚I‰* +"8 Í.!2 †þÊž¨ÍRÍ€Ã* "4 4 = Í�ÒÂÍý* #" ç¹ÍR*6 DMÍ+ÈÍR*8 DMÍ+×ÍR*: DMÍ+æÍR*< MÍÍàÉ!?  DMÍ+Í;É! p+q* ëÍi2 É! p+q* ëÍi2 É! p+q* ëÍi2 ÉÍi2 É!" p+q*! ëÍfÉ!$ p+q*# ëÍiÉ!& p+q*% ëÍiÉ!5536: 128 Byte Record CapacityKilobyte Drive Capacity32 Byte Directory EntriesChecked Directory EntriesRecords/ ExtentR ADDRESS $BYTES READ:$INVALID HEX DIGIT$CHECK SUM ERROR $FIRST ADDRESS $LAST ADDRESS $BYTES READ $RECORDS WRITTEN $HEXCANNOå‰$I$„’I$�ˆUUU$’�$A$�� q=  Í�ÒKÍdÿ*= ë! ͸Òp!@ 6>!@ ¾ÚX*= }O!< å*@ &€ Ñw*= #"= !@ 4Â)!< 4\ÍïþÊmaÍdÃ* }O!< :? wÉ( p+q*' ëÍi2 É!* p+q*) ëÍfÉ!/ s+p+q+ÑÁp+qÕ:/ =2/ þÿÊX*+ å*- Á w*+ #"+ *- #"- Ã1É* #" ÿÍ–Úr*   ~É!" ÿ! ͸ecords/ BlockSectors/ TrackReserved Tracks is Temp R/O Disk: d:=R/OSet Indicator: d:filename.typ $R/O $R/W $SYS $DIRDisk ST OPEN SOURCE$COMNO MORE DIRECTORY SPACE$CANNOT CLOSE FILE$*çùÉ!9"ç!e ù!" !" \Å!éÍ"÷ÅòÍ"éÍŠ: þÿƒûåålÍR*4 DMÍ+{ÍR* DMÍ+ŠÍRÍæ 4 Í�Òß*4 }æþ¿Íæ= 4 Í�< NÍ*4 #"4  ÍÐÃ¥ÍàÍ;ÉÍà*4 DMÍ+:ÍÐ ÍÐÉÍY2 tatus : DSK: d:DSK:User Status : USR:Iobyte Assign: =Bad DelimiterInvalid AssignmentBad Delimiter: Bytes Remaining On DMÍÀ oͱ*—DMÍÀ ͱ*N#FÍÀ Žͱ * N#FÍÀ �ͱÍ É!œp+qÍ *›DM'Í:Í�Í«ÉÍZ"�!Ÿ6>�ÍêµÊ *�}Ò *ŸMTåÍZëás#r*lëÍâÚ¶*lëÍâë+s#r*jN#F+q#pÃŒÉ!nq!"o"q}2uo&"s* ësÍÝÚ:nÒñ*sDMÍÛ2u:uÚqoÍsj6?\Í:'þÿÊC:'懇‡‡‡Æ€o&"º)!Ë)6!"¾):Ë)/¸¾)õÍÝŸÁH¡Ò˜Í]!Æ)6> !Æ)¾ÚŽ*Æ)&ë*º)å*Æ)&ë*¼)Á ¾Êy!Æ)6 Ä:Æ)Ö ÖÍR"Éÿ ÍOÉ!/q*/&ë ÍLÉ!1p+q*0ë#ÍLÉÍ~*##N!ͽ€Íž"TÉ!Vq*VMÍöͳÉ!Xp+q!WÍÃë* >WåÍr#MáͲÉ!_ =2¨þÿ IÍÒ>É!©6ü:§=2§þÿÊ8 :©2©:¨‡‡2¨Ã :©!¦!¨¶2Í9:Yþ ÂT >É:Yþ,Êe \ÍÒ>ÉÃŒ É!¬p+q*«~þ:ʉ *«NÍ�*R/, Space: Invalid File Indicator** Too Many Files **File Not Found Size Recs Bytes Ext Acc65536 set to R/O InvalidÍÌÍÃ!�ÍÃë+s#r#4Ãè É!¢s+p+q!¤6!¦66:¢!¦¾Ú„ !¥6!£6>!£¾Úr *¤&ë* å*£&Y ѾÊi !¥6!¤4+4ÂA :¥Ò} :¦É!¦*s"sÒÎ*oɹÍÒÉÇÍÒÍŠO ÍÕÍÒ!v6>!v¾ÚQ*v&w 6`i+4Â6Ï)ÍA*Í:'þÿÊ“:'懇‡‡‡O!Ï) ~2vþåÊ�:Ÿ2Ë):Æ)<2Æ)ÂM*¾)#"¾)Ã/:Ë)Ò©*¾)+"¾)Ã`*¸"¾)#"¸Í]!¸ÍøŸ*¼)ë!õÍøŸ/ÁH±Òí¥ÍÒ!"¾)!"¸Í]*¾)º) å*¾)ëás#r!Æp+q!`6>!`¾Ú6*`&ë*^å*`&Y ѾÊ/>É!`4 >É*]&€ ~þ ÂO!]4Ã9!a6:aþÒæ*]&€ ~2bO>¹Òz*bMÍëà Íë>«#"«Ão :Í�É!®p+q!'"±!°6>±ÍêµÊü *­ë*±Í{2¯*­ëÍ�"­PY! Íë"±>ÍÓµÖŸ!°¶+õ~“ÆÿŸÁH±Òù !°6:¯Æ0OÍ�à kÍ� Disk AssignmentWrong CP/M Version (Requires 2.0)!9"2!TùÍíþ ÒOÍÒË!]6:\ÖÖŸõ:]Ö ÖŸÁH¡ÒrÍ3 Ë:\þÊ€ÍË4Â- >É!ª6Í99Í 2§þ¨ :ªÖÆÿŸÉ!ª4:§þ :2©!¨6+6>!§¾Ú :§‡‡O!9 DMÍi ­ͱ:©æ‡‡!¨†O!Y DMÍi :¨Æ2¨væO!w 6Í,Ã]!v6>!v¾ÚÂ*v&w ~Ò»*vM Í!v4˜ÉãÍÒÍ8ÆAOÍ�:Í�èͱ*##N!ͽ"—* N#F*—ëÍ "™)6> !Æ)¾Ú.*Æ)&ë*º)å*Æ)&ë*¼)Á w:Æ)<2Æ)Â*¾)º) >w#6*¾)º) w#6*¾)º!) w#6*¾)º%) w#6*¾)º) N#F*¾)ź) Áq#p*¾)º%)!b–Ÿ/õ~Ö,ÖŸÁH±õ~Ö:ÖŸÁH±õ~Ö*ÖŸÁH±õ~Ö.ÖŸÁH±õ~Ö>ÖŸÁH±õ~Ö<ÖŸÁH±õ~Ö=ÖŸÁH±Òß*]&€ 6Ãã!]4ÃT!]4É!cq*a&Y :cw!a4Í ÉÍQ" Í8ÆAOÍ�jͱÉÍ·DMÍ� ÉmÍÒÍ Í ÉÍZ"³Íl"µ!·6>³ÍêµÊ¥ *³}Ò† *·MÍÌÍ �ͱ*µ}Òx OÍ�Ã} WÍ�„͇ /Ò‹ͺ *2ùÉ!"q*"&ëÍLÉ Í� Í�É Í�É!$p+q*#~þÊÑ*#NÍ�*##"#÷É!&p+qÍ *%DMͱÉ ÍOÉ ÍOÉ!(q*(&ë:©æþ2©Í !§4 ÃF :§þ® ²ÍÒÈÍÒúÍÒÍÒ)ÍÒ!§6>!§¾Ú« Í :§‡‡O!9 DMÍi 8ͱ!¨6> !¨¾Ú¤ Ã… :¨Æ2¨Ò>ÍÓµÖŸ!—õÍøµÆÿŸÁH¡Ò% ÿÍÒÃ- *™DMÍÀ ͱÍ·DMÍÀ  ͱ* N#FÍÀ 9ͱ * ^#Vë))DMÍÀ Tͱ* ~ÿÍõÒÒ!Ç)6!Æ)6>!Æ)¾Ú=Ãñ:Ç)!Æ)†wÒ×Ã=*Æ)&ë*º)~2È):É!gr+s+p+q!h6>fÍêµÊr*dë*fÍ!is*dëÍ�"dPY! Íë"f>ÍÓµÆÿŸ!h¦#õ~“ÖŸÁH¡ÒaÍ«Ão!h6:iÆ0OÍ�ÃÉ!mr+s+p+q*lͱÍ !³ÍÃë+s#r!µÍÃë+s#r#4ÃD Í É:\þʹ :\=OÍÌÉͳÍ© !6!Ì)6ÿÍlÒä :Ì)þÂÚ É:Ì)=2Ì)Ãð :]þ Âð Í& É!"¸}2\!h6?!ÍLÉ!*p+q*)ëÍO2'É!,p+q*+ëÍO2'ÉÍO2'ÉÍOÉ!.p+q*-ëÍLÉÍRÉÍRÉÍLÉÍRÉ\ÍLÉk ä  Í�:§‡‡‡‡!¨†O!Y DMÍi Ãw !§4ÂC ÃF :§þ¿ Í>ÉÃF :§þÂÍ ÍÝ ÃF :§=2§‡‡‡‡2¨Í9:Yþ=Êï ;ÍÒ>ÉÍ9*¨&Y DMÍ Ç)þÂ*Æ)& ë*º):È)¶2È):È)þÊ:*¾)º!) å*¾)º) ëÁÍsÃãÍ,à >¸ÍêµÂXºÍÒÃ\:Ì)þÿ“>!¸ÍõÒd!"À)>!À)ÍõÒd!"åM!>õ)ë—)ë�‘o|˜gÒ˜ ñ=†ÉDM!>)ë)ëÒ­ =Â¥É~ ³É^#Vë) ½É^#Vë|·g}o ÂÇÉ_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÍšÍuþ ÂcÍŠ¯2©Íá!?Íš!ÈÍ•Íuþ ÊcÖAþÚ7ÍnÃÆA2ÖAͦ!õÍ•Íuþ ÂcÍŠ!©6Íá!?ÍšÃ>ͦÍŠÃ!QÍ•ÉSYSGEN VER Í�*À)#"À)ÃÍ& Ã\!"À)¸À)ÍÝÒ\ÍäÒ°ÍÉ*À)"¾)Í]Í ÍÀ*Ì)M! ^#Vëé *¼) >€¶*¼) wà *¼) >¦*¼) wà *¼) >€¶*¼)ÃxCOPYRIGHT (C) 1978, DIGITAL RESEARCH  o&)))))))ÉÍþaØþ{ÐÀ)!"Ä)*¸++ë!Ä)ÍøÚa*Ä)¼) ^#Vë"¾)Í]*¼)"º)*Ä)º) ^#Vë"¾)Í]!Æ)6> !Æ)¾ÚT*Æ)&ë*º)~2É)å*Æ)&ë*¼)~2Ê)OѹÒ;*Ä)º) ^#Vë"åÉ2.0SOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETURN TO REBOOT)DESTINATION wà *¼) >¦*¼) wÃÏáó.å*¼)DM\á -Â+!\6Íuìͱ:Ì)‡‡O!™ DMͱ*À)#"À)ÙÉ*¾)))))Ï)"¼)É:mþ Âw>É.Yn æ_É_ÍÉ> ̓> ̓ÉåÍŠá~·Èå̓á#ÚO*é*é*é*!é*$é*'éÃÃ! "ª>ÿ2§!§4:(¾ÊwNͯ>ÿ2¨Â)*Ä)¼) å*Ä)º) ãN#Fáq#p*Ä)¼) å*Â)ëás#r*À)#"À)!Æ)6 ÃJ:Ê)!É)¾ÒJ!Æ)6 :Æ)<2Æ)ÂÆ*Ä)"Ä)ÒˆÃq:ÒtÉÍÒÃwÍ Ðͱ!åå ON Í, THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE A, B, C, OR D)NO SOURC-Â:YÖSÖŸõ:ZÖ ÖŸÁH¡Ò§!6>þÉ©Í 2Ì)þ½ŽÍÒ>É!Í)6> !Í)¾Ú*Í)&ë*¼)>¦2Î)þ Ê÷:Í)þ Âð.Í�*Î)MÍ�:Í)<2Í)ÂÅ:)!¨4¾Êf!¨^!*FNÅÍ·Áy�Íjë*ªDMÍ¿¯2¬:¬þ ÚK!ÍšÍuþ ÂcÍŠÃ<2¬:©·Ê\ÍÏÃ_ÍÇ·ÊÃ/:)Íjë*ª"ªÃìÉ1Í!uÍš"À)¸À)ÍÝÒ�*À)º) ^#Vë"¾)Í]Í .å*¼)DM\á -°!\6:Òé\Í£:þÊÛæͱÃæ*}DM'ÍÍ«*¾)º%) N#F'ÍÍ«*¾)ååE FILE ON DISKSOURCE FILE INCOMPLETEÉÍ9Í9:Yþ=Â/Í9õÍþÒ&Í© ÍcÃ,ùÍÒÃHÍ© 9Í þÂEÍÃÃHͺ ÉÃÃÃÍÉÉÉi`N#F�oˆgÉë_ë…oŒgÉë_ë¥o¤gÉD:]þ ÊÖ\ÍÜ<œ!xÍ•Ãc¯2|Å\Í×Á·ÂÍ ¢! åDMÍ¿\Í×á·Â€õ!�Í•Ãc!„Í•Íuþ ÊÖAþÚñÍnÃÖÆA2´ÖAͦÍŠ!ªº!) N#F'ÍkÍ�Í«*¾)º) N#FèÍÍ«RÍ�/Í� *¼) ~ÒIOÍ�ÃNWÍ�Í«Í8ÆAOÍ�:Í� *¼) ~2È)Òt(Í�ÍÀ:È)Òƒ)å !9"1WÍÁþÿÂóÍœÃQ>€2!åÍ¢áÚQG}æÂDÍrÍYÚQ|Í�}Í�#> ÍexÍ�Ã#Ír*ùÉåÕÅ ÍÁÑáÉåÕÅ_ÍÁÑáÉ> Íe> ÍeÉæþME FCBFN EQU FCB+1 ;FILE NAME FCBFT EQU FCB+9 ;DISK FILE TYPE (3 CHARACTERS) FCBRL EQU FCB+12 ;FILE'S CURRENT REEL NUMBER FC 579, PACIFIC GROVE ; CALIFORNIA, 93950 ; ORG 100H BDOS EQU 0005H ;DOS ENTRY POINT CONS EQU 1 ;READ CONSOLE TYPEF EQU 2 ;CTER READY RRC ;INTO CARRY JC FINIS ;DON'T PRINT ANY MORE ; MOV A,H CALL PHEX MOV A,L CALL PHEX NONUM: INX H ;TåJMP FINIS ;TO RETURN ; OPENOK: ;OPEN OPERATION OK, SET BUFFER INDEX TO END MVI A,80H STA IBP ;SET BUFFER POINTER TO 80H ; Ò‰Æ0ËÆ7ÍeÉõÍ}ñÍ}É ÍÉ:þ€Â³Íηʳ7É_<2!€~·É¯2|\ÍÉåÕÅ\ÍÁÑáÉFILE DUMP VERSION 1.4$ NO INPUT FIBRC 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 ;FCBTYPE FUNCTION PRINTF EQU 9 ;BUFFER PRINT ENTRY BRKF EQU 11 ;BREAK KEY FUNCTION (TRUE IF CHAR READY) OPENF EQU 15 ;FILE OPEN O NEXT LINE NUMBER MVI A,' ' CALL PCHAR MOV A,B CALL PHEX JMP GLOOP ; FINIS: ; END OF DUMP, RETURN TO CCP ; (NOTE å HL CONTAINS NEXT ADDRESS TO PRINT LXI H,0 ;START WITH 0000 ; GLOOP: PUSH H ;SAVE LINE POSITION CALL GNB POP H ;RECALLLE PRESENT ON DISK$ê!õÅÕåYÍáÑÁñÉþ Èþ Èþ,Èþ ÈþÊ<É Í ÍÉÍ þ Ê*Í$ÊA!‹6 # ÂT!‹wÍ Í$Êr# Ê*Ã`:‹þ ÉÖ0þ ØÆùþ LENGTH ; ; SET UP STACK LXI H,0 DAD SP ; ENTRY STACK POINTER IN HL FROM THE CCP SHLD OLDSP ; SET SP TO LOCAL STACK ARREADF EQU 20 ;READ FUNCTION ; FCB EQU 5CH ;FILE CONTROL BLOCK ADDRESS BUFF EQU 80H ;INPUT DISK BUFFER ADDRESS ; ; NON GRAPHTHAT A JMP TO 0000H REBOOTS) CALL CRLF LHLD OLDSP SPHL ; STACK POINTER CONTAINS CCP'S STACK LOCATION RET ;TO THE CCP å 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ØÃ*ÍAÊ*!‹ ~þ ʰÍxkb))))_ëyþ‘BK{ÉÍ…Â*É!6Ã6Ã!"Éæ8Éæ0Éë*‹ë{¾Âç#z¾È+++ ÂÝ ÉÕ‹¾Â#ÂõEA (RESTORED AT FINIS) LXI SP,STKTOP ; READ AND PRINT SUCCESSIVE BUFFERS CALL SETUP ;SET UP INPUT FILE CPI 255 ;255 IF FIIC CHARACTERS CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED ; ; FILE CONTROL BLOCK DEFINITIONS FCBDN EQU FCB+0 ;DISK NA; ; ; SUBROUTINES ; BREAK: ;CHECK BREAK KEY (ACTUALLY ANY KEY WILL DO) PUSH H! PUSH D! PUSH B; ENVIRONMENT SAVED MVI C,B; FILE DUMP PROGRAM, READS AN INPUT FILE AND PRINTS IN HEX ; ; COPYRIGHT (C) 1975, 1976, 1977, 1978 ; DIGITAL RESEARCH ; BOX ;CHECK LOW 4 BITS JNZ NONUM ; PRINT LINE NUMBER CALL CRLF ; ; CHECK FOR BREAK KEY CALL BREAK ; ACCUM LSB = 1 IF CHARAåLE NOT PRESENT JNZ OPENOK ;SKIP IF OPEN IS OK ; ; FILE NOT THERE, GIVE ERROR MESSAGE AND RETURN LXI D,OPNMSG CALL ERR  RKF CALL BDOS POP B! POP D! POP H; ENVIRONMENT RESTORED RET ; PCHAR: ;PRINT A CHARACTER PUSH H! PUSH D! PUSH B; SAVED LF,'NO INPUT FILE PRESENT ON DISK$' ; VARIABLE AREA IBP: DS 2 ;INPUT BUFFER POINTER OLDSP: DS 2 ;ENTRY SP VALUE FROM CCP ;,BUFF DAD D ; ABSOLUTE CHARACTER ADDRESS IS IN HL MOV A,M ; BYTE IS IN THE ACCUMULATOR ORA A ;RESET CARRY BIT RET ; ; MDS-800 I/O Drivers for CP/M 2.2 ; (four drive single density version) ; ; Version 2.2 February, 1980 ; vers equ 22 ;versENDING WITH "$" MVI C,PRINTF ;PRINT BUFFER FUNCTION CALL BDOS RET ; ; GNB: ;GET NEXT BYTE LDA IBP CPI 80H JNZ G0 å 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 PC ; STACK AREA DS 64 ;RESERVE 32 LEVEL STACK STKTOP: ; END SETUP: ;SET UP FILE ; OPEN THE FILE FOR INPUT XRA A ;ZERO TO ACCUM STA FCBCR ;CLEAR CURRENT RECORD ; LXI D,FCB MVI C,ion 2.2 ; ; Copyright (c) 1980 ; Digital Research ; Box 579, Pacific Grove ; California, 93950 ; ; true equ 0ffffh ;valu ; READ ANOTHER BUFFER ; ; CALL DISKR ORA A ;ZERO VALUE IF READ OK JZ G0 ;FOR ANOTHER BYTE ; END OF DATA, RETURN WITH CåHAR RET ; ; PNIB: ;PRINT NIBBLE IN REG A ANI 0FH ;LOW 4 BITS CPI 10 JNC P10 ; LESS THAN OR EQUAL TO 9 ADI '0' JMåOPENF CALL BDOS ; 255 IN ACCUM IF OPEN ERROR RET ; DISKR: ;READ DISK FILE RECORD PUSH H! PUSH D! PUSH B LXI D,FCB Me of "true" false equ not true ;"false" test equ false ;true if test bios ; if test bias equ 03400h ;base of CCP in test sARRY 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åP PRN ; ; GREATER OR EQUAL TO 10 P10: ADI 'A' - 10 PRN: CALL PCHAR RET ; PHEX: ;PRINT HEX CHAR IN REG A PUSH PSW RRCåVI C,READF CALL BDOS POP B! POP D! POP H RET ; ; FIXED MESSAGE AREA SIGNON: DB 'FILE DUMP VERSION 1.4$' OPNMSG: DB CR,ystem endif if not test bias equ 0000h ;generate relocatable cp/m system endif ; patch equ 1600h ; org patch cpmb e INDEX TO DE INR A ;INDEX=INDEX+1 STA IBP ;BACK TO MEMORY ; POINTER IS INCREMENTED ; SAVE THE CURRENT FILE ADDRESS LXI Hå RRC RRC RRC CALL PNIB ;PRINT NIBBLE POP PSW CALL PNIB RET ; ERR: ;PRINT ERROR MESSAGE ; D,E ADDRESSES MESSAGE å qu $-patch ;base of cpm console processor bdos equ 806h+cpmb ;basic dos (resident portion) cpml equ $-cpmb ;length (in bytes) lib diskdef ;load the disk definition library disks 4 ;four disks diskdef 0,1,26,6,1024,243,64,64,offset diskdef 1,0 disd/write ; setdma set subsequent dma address (initially 80h) ; ; (read and write assume previous calls to set up the io paramequ 78h ;base of disk command io ports dstat equ base ;disk status (input) rtype equ base+1 ;result type (input) rbyte equ baster in (result in reg-a) ; conout console character out (char in reg-c) ; list list out (char in reg-c) ; punch punch out (chequ 0f3h ;interrupt control port inte equ 0111$1110b ;enable rst 0(warm boot), rst 7 (monitor) ; ; mds monitor equates mon80of cpm system nsects equ cpml/128 ;number of sectors to load offset equ 2 ;number of disk tracks used by cp/m cdisk equ 0004hkdef 2,0 diskdef 3,0 ; endef occurs at end of assembly ; ; end of controller - independent code, the remaining subroutines ters) ; read read track/sector to preset dma address ; write write track/sector from preset dma address ; ; jump vector for e+3 ;result byte (input) ; ilow equ base+1 ;iopb low address (output) ihigh equ base+2 ;iopb high address (output) ; readf ar in reg-c) ; reader paper tape reader in (result to reg-a) ; home move to track 00 ; ; (the following calls set-up the io  equ 0f800h ;mds monitor rmon80 equ 0ff0fh ;restart mon80 (boot error) ci equ 0f803h ;console character to reg-a ri equ 0f806 ;address of last logged disk on warm start buff equ 0080h ;default buffer address retry equ 10 ;max retries on disk i/o befor ; are tailored to the particular operating environment, and must ; be altered for any system which differs from the intel mds.indiviual routines jmp boot wboote: jmp wboot jmp const jmp conin jmp conout jmp list jmp punch jmp reader jmp equ 4h ;read function writf equ 6h ;write function recal equ 3h ;recalibrate drive iordy equ 4h ;i/o finished mask cr equ 0dparameter block for the ; mds, which is used to perform subsequent reads and writes) ; seldsk select disk given by reg-c (0,1,h ;reader in to reg-a co equ 0f809h ;console char from c to console out po equ 0f80ch ;punch char from c to punch device lo ee error ; ; perform following functions ; boot cold start ; wboot warm start (save i/o byte) ; (boot and wboot are the same ; ; the following code assumes the mds monitor exists at 0f800h ; and uses the i/o subroutines within the monitor ; ; we ahome jmp seldsk jmp settrk jmp setsec jmp setdma jmp read jmp write jmp listst ;list status jmp sectran ; mach ;carriage return lf equ 0ah ;line feed ; signon: ;signon message: xxk cp/m vers y.y db cr,lf,lf if test db '32' ;32k 2...) ; settrk set track address (0,...76) for subsequent read/write ; setsec set sector address (1,...,26) for subsequent reaqu 0f80fh ;list from c to list device csts equ 0f812h ;console status 00/ff to register a ; ; disk ports and commands base e for mds) ; const console status ; reg-a = 00 if no character ready ; reg-a = ff if character ready ; conin console characlso assume the mds system has four disk drives revrt equ 0fdh ;interrupt revert port intc equ 0fch ;interrupt mask port icon  example bios endif if not test db '00' ;memory size filled by relocator endif db 'k CP/M vers ' db vers/10+'0','.',v here from cold start boot) ; enable rst0 and rst7 di mvi a,12h ;initialize command out revrt xra a out intc ;clearedmented dma address in hl mov b,h mov c,l ;ready for call to set dma call setdma lda ios ;sector number just read cpi 2ret ; conout: ;console character from c to console out jmp co ; list: ;list device out ; (exactly the same as mds call) tries push b wboot0: ;enter here on error retries lxi b,cpmb ;set dma address to start of disk system call setdma mvi cged disk number mov c,a ;send to ccp to log it in ei jmp cpmb ; ; error condition occurred, print message and retry booers mod 10+'0' db cr,lf,0 ; boot: ;print signon message and go to ccp ; (note: mds boot initialized iobyte at 0003h) lxi  mvi a,inte ;rst0 and rst7 bits on out intc xra a out icon ;interrupt control ; ; set default buffer address to 80h 6 ;read last sector? jc rd1 ; must be sector 26, zero and go to next track lda iot ;get track to register a inr a mov c jmp lo ; listst: ;return list status xra a ret ;always not ready ; punch: ;punch device out ; (exactly the same as ,0 ;boot from drive 0 call seldsk mvi c,0 call settrk ;start with track 0 mvi c,2 ;start reading sector 2 call setsec terr: pop b ;recall counts dcr c jz booter0 ; try again push b jmp wboot0 ; booter0: ; otherwise too many retries sp,buff+80h lxi h,signon call prmsg ;print message xra a ;clear accumulator sta cdisk ;set initially to disk a jmp goclxi b,buff call setdma ; ; reset monitor entry points mvi a,jmp sta 0 lxi h,wboote shld 1 ;jmp wboot at location 00 ,a ;ready for call call settrk xra a ;clear sector number rd1: inr a ;to next sector mov c,a ;ready for call call setsemds call) jmp po ; reader: ;reader character in to reg-a ; (exactly the same as mds call) jmp ri ; home: ;move to home  ; ; read sectors, count nsects to zero pop b ;10-error count mvi b,nsects rdsec: ;read next sector push b ;save sector  lxi h,bootmsg call prmsg jmp rmon80 ;mds hardware monitor ; bootmsg: db '?boot',0 ; ; const: ;console status to regpm ;go to cp/m ; ; wboot:; loader on track 0, sector 1, which will be skipped for warm ; read cp/m from disk - assuming the sta 5 lxi h,bdos shld 6 ;jmp bdos at location 5 if not test sta 7*8 ;jmp to mon80 (may have been changed by ddt) lxic pop b ;recall sector count dcr b ;done? jnz rdsec ; ; done with the load, reset default buffer address gocpm: ;(enterposition ; treat as track 00 seek mvi c,0 jmp settrk ; seldsk: ;select disk given by register c lxi h,0000h ;return 000count call read jnz booterr ;retry if errors occur lhld iod ;increment dma address lxi d,128 ;sector size dad d ;incre-a ; (exactly the same as mds call) jmp csts ; conin: ;console character to reg-a call ci ani 7fh ;remove parity bit re is a 128 byte cold start ; start. ; lxi sp,buff ;using dma - thus 80 thru ff available for stack ; mvi c,retry ;max re h,mon80 shld 7*8+1 endif ; leave iobyte set ; previously selected disk was b, send parameter to cpm lda cdisk ;last log 0 if error mov a,c cpi ndisks ;too large? rnc ;leave HL = 0000 ; ani 10b ;00 00 for drive 0,1 and 10 10 for drive 2,3 ) lxi h,iof ;io function address mov a,m ;get it to accumulator for masking ani 11111000b ;remove previous command ora csuming disk/trk/sec/dma set) mvi c,readf ;set to read function call setfunc call waitio ;perform read function ret ;maylete (00) unlinked ; 00 unlinked i/o complete, 01 linked i/o complete (not used) ; 10 disk status changed 11 (not use track address given by c lxi h,iot mov m,c ret ; setsec: ;set sector number given by c lxi h,ios mov m,c ret secbank ;set bank flags ora a ;zero if drive 0,1 and nz if 2,3 mvi a,iopb and 0ffh ;low address for iopb mvi b,iopb shr 8 ; sta dbank ;to select drive bank mov a,c ;00, 01, 10, 11 ani 1b ;mds has 0,1 at 78, 2,3 at 88 ora a ;result 00? jz setd ;set to new command mov m,a ;replaced in iopb ; the mds-800 controller requires disk bank bit in sector byte ; mask the bit have error set in reg-a ; ; write: ;disk write function mvi c,writf call setfunc ;set to write function call waitio d) cpi 10b ;ready status change? jz wready ; ; must be 00 in the accumulator ora a jnz werror ;some other condition,tran: ;translate sector bc using table at de mvi b,0 ;double precision sector number in BC xchg ;translate table addresshigh address for iopb jnz iodr1 ;drive bank 1? out ilow ;low address to controller mov a,b out ihigh ;high address jmrive mvi a,00110000b ;selects drive 1 in bank setdrive: mov b,a ;save the function lxi h,iof ;io function mov a,m ani from the current i/o function ani 00100000b ;mask the disk select bit lxi h,ios ;address the sector select byte ora m ;ret ;may have error set ; ; ; utility subroutines prmsg: ;print message at h,l to 0 mov a,m ora a ;zero? rz ; more t retry ; ; check i/o error bits call inbyte ral jc wready ;unit not ready rar ani 11111110b ;any other errors? (de to HL dad b ;translate(sector) address mov a,m ;translated sector number to A sta ios mov l,a ;return sector number in p wait0 ;to wait for complete ; iodr1: ;drive bank 1 out ilow+10h ;88 for drive bank 10 mov a,b out ihigh+10h ; wait0 11001111b ;mask out disk number ora b ;mask in new disk number mov m,a ;save it in iopb mov l,c mvi h,0 ;HL=disk numberselect proper disk bank mov m,a ;set disk select bit on/off ret ; waitio: mvi c,retry ;max retries before perm error ro print push h mov c,a call conout pop h inx h jmp prmsg ; setfunc: ; set function for next i/o (command in reg-cleted data ok) jnz werror ; ; read or write is ok, accumulator contains zero ret ; wready: ;not ready, treat as error foL ret ; setdma: ;set dma address given by regs b,c mov l,c mov h,b shld iod ret ; read: ;read next disk record (as: call instat ;wait for completion ani iordy ;ready? jz wait0 ; ; check io completion ok call intype ;must be io comp dad h ;*2 dad h ;*4 dad h ;*8 dad h ;*16 lxi d,dpbase dad d ;HL=disk header table address ret ; ; settrk: ;setewait: ; start the i/o function and wait for completion call intype ;in rtype call inbyte ;clears the controller ; lda d r now call inbyte ;clear result byte jmp trycount ; werror: ;return hardware malfunction (crc, track, seek, etc.) ; the as for bdos operation endef end lda dbank ora a jnz inbyt1 in rbyte ret inbyt1: in rbyte+10h ret ; instat: lda dbank ora a jnz insta1 in dstawrite ;write disk jmp listst ;return list status jmp sectran ;sector translate ; ; fixed data tables for four-drive stat a permanent error message if it is not ; recoverable. in any case, the not ready condition is ; treated as a separate condirt sector count ; ; jump vector for individual subroutines jmp boot ;cold start wboote: jmp wboot ;warm start jmp constmds controller has returned a bit in each position ; of the accumulator, corresponding to the conditions: ; 0 - deleted data (; Skeletal CBIOS for first level of CP/M 2.0 alteration ; msize equ 20 ;cp/m version memory size in kilobytes ; ; "bias" is t ret insta1: in dstat+10h ret ; ; ; ; data areas (must be in ram) dbank: db 0 ;disk bank 00 if drive 0,1 ; 10 ndard ; IBM-compatible 8" disks ; disk parameter header for disk 00 dpbase: dw trans,0000H dw 0000H,0000H dw dirbf,dpblk tion for later improvement trycount: ; register c contains retry count, decrement 'til zero dcr c jnz rewait ;for another  ;console status jmp conin ;console character in jmp conout ;console character out jmp list ;list character out jmp accepted as ok above) ; 1 - crc error ; 2 - seek error ; 3 - address error (hardware malfunction) ; 4 - data over/under flowaddress offset from 3400H for memory systems ; than 16K (referred to as "b" throughout the text). ; bias equ (msize-20)*1024 if drive 2,3 iopb: ;io parameter block db 80h ;normal i/o operation iof: db readf ;io function, initial read ion: db 1 ;num dw chk00,all00 ; disk parameter header for disk 01 dw trans,0000H dw 0000H,0000H dw dirbf,dpblk dw chk01,all01 ; distry ; ; cannot recover from error mvi a,1 ;error code ret ; ; intype, inbyte, instat read drive bank 00 or 10 intype: lpunch ;punch character out jmp reader ;reader character out jmp home ;move head to home position jmp seldsk ;select di (hardware malfunction) ; 5 - write protect (treated as not ready) ; 6 - write error (hardware malfunction) ; 7 - not ready  ccp equ 3400H+bias ;base of ccp bdos equ ccp+806h ;base of bdos bios equ ccp+1600h ;base of bios cdisk equ 0004H ;current diber of sectors to read iot: db offset ;track number ios: db 1 ;sector number iod: dw buff ;io address ; ; ; define ram arek parameter header for disk 02 dw trans,0000H dw 0000H,0000H dw dirbf,dpblk dw chk02,all02 ; disk parameter header for da dbank ora a jnz intyp1 ;skip to bank 10 in rtype ret intyp1: in rtype+10h ;78 for 0,1 88 for 2,3 ret ; inbyte: sk jmp settrk ;set track number jmp setsec ;set sector number jmp setdma ;set dma address jmp read ;read disk jmp ; (accumulator bits are numbered 7 6 5 4 3 2 1 0) ; ; it may be useful to filter out the various conditions, ; but we will gesk number 0=A,...,15=P iobyte equ 0003h ;intel i/o byte ; org bios ;origin of this program nsects equ ($-ccp)/128 ;warm sta disk 03 dw trans,0000H dw 0000H,0000H dw dirbf,dpblk dw chk03,all03 ; ; sector translate vector trans: db 1,7,13,19 ; b,c push b ;replace on stack for later recall call setdma ;set dma address from b,c ; ; drive set to 0, track set, sectorhas the current track number mvi d,2 ;d has the next sector to read ; note that we begin by reading track 0, sector 2 since t shld 1 ;set address field for jmp at 0 ; sta 5 ;for jmp to bdos lxi h,bdos ;bdos entry point shld 6 ;address field ofed tables ; ; individual subroutines to perform each function boot: ;simplest case is to just perform parameter initializatioacks cpi 27 jc load1 ;carry generated if sector<27 ; ; end of current track, go to next track mvi d,1 ;begin with first sectors 1,2,3,4 db 25,5,11,17 ;sectors 5,6,7,8 db 23,3,9,15 ;sectors 9,10,11,12 db 21,2,8,14 ;sectors 13,14,15,16 db 20, set, dma address set call read cpi 00h ;any errors? jnz wboot ;retry the entire boot if an error occurs ; ; no error, msector 1 ; contains the cold start loader, which is skipped in a warm start lxi h,ccp ;base of cp/m (initial load point) lo jump at 5 to bdos ; lxi b,80h ;default dma address is 80h call setdma ; ei ;enable the interrupt system lda cdisk ;gn xra a ;zero in the accum sta iobyte ;clear the iobyte sta cdisk ;select disk zero jmp gocpm ;initialize and go to sector of next track inr c ;track=track+1 ; ; save register state, and change tracks push b push d push h call settr26,6,12 ;sectors 17,18,19,20 db 18,24,4,10 ;sectors 21,22,23,24 db 16,22 ;sectors 25,26 ; dpblk: ;disk parameter block, cove to next sector pop h ;recall dma address lxi d,128 ;dma=dma+128 dad d ;new dma address is in h,l pop d ;recall sectoad1: ;load one more sector push b ;save sector count, current track push d ;save next sector to read push h ;save dma addret current disk number mov c,a ;send to the ccp jmp ccp ;go to cp/m for further processing ; ; ; simple i/o handlers (muscp/m ; wboot: ;simplest case is to read the disk until all sectors loaded lxi sp,80h ;use space below buffer for stack mvk ;track address set from register c pop h pop d pop b jmp load1 ;for another sector ; ; end of load operation, set paommon to all disks dw 26 ;sectors per track db 3 ;block shift factor db 7 ;block mask db 0 ;null mask dw 242 ;disr address pop b ;recall number of sectors remaining, and current trk dcr b ;sectors=sectors-1 jz gocpm ;transfer to cp/m iess mov c,d ;get sector address to register c call setsec ;set sector address from register c pop b ;recall dma address tot be filled in by user) ; in each case, the entry point is provided, with space reserved ; to insert your own code ; const: i c,0 ;select disk 0 call seldsk call home ;go to track 00 ; mvi b,nsects ;b counts # of sectors to load mvi c,0 ;c rameters and go to cp/m gocpm: mvi a,0c3h ;c3 is a jmp instruction sta 0 ;for jmp to wboot lxi h,wboote ;wboot entry poink size-1 dw 63 ;directory max db 192 ;alloc 0 db 0 ;alloc 1 dw 16 ;check size dw 2 ;track offset ; ; end of fixf all have been loaded ; ; more sectors remain to load, check for track change inr d mov a,d ;sector=27?, if so, change tr ;console status, return 0ffh if character ready, 00h if not ds 10h ;space for status subroutine mvi a,00h ret ; conin: ;rack given by register c mov a,c sta track ds 10h ;space for track select ret ; setsec: ;set sector given by register n first read/write ; seldsk: ;select disk given by register C lxi h,0000h ;error return code mov a,c sta diskno cpi 4 r in 'diskno' (0,1) ; the track number in 'track' (0-76) ; the sector number in 'sector' (1-26) ; the dma address in 'dt ;null subroutine ; ; reader: ;read character into register a from reader device mvi a,1ah ;enter end of file for now (ren (usually this is similar to write ; so we will allow space to set up read command, then use ; common code in write) ds 10hconsole character into register a ds 10h ;space for input routine ani 7fh ;strip parity bit ret ; conout: ;console charac mov a,c sta sector ds 10h ;space for sector select ret ; sectran: ;translate the sector given by BC using the ;t;must be between 0 and 3 rnc ;no carry if 4,5,... ; disk number is in the proper range ds 10 ;space for disk select ; commaad' (0-65535) ds 256 ;space reserved for I/O drivers mvi a,1 ;error condition ret ;replaced when filled-in ; ; the replace later) ani 7fh ;remember to strip parity bit ret ; ; ; i/o drivers for the disk follow ; for now, we will simply s ;set up read command jmp waitio ;to perform the actual i/o ; write: ;perform a write operation ds 10h ;set up write commacter output from register c mov a,c ;get to accumulator ds 10h ;space for output routine ret ; list: ;list character froranslate table given by DE xchg ;HL=.trans dad b ;HL=.trans(sector) mov l,m ;L = trans(sector) mvi h,0 ;HL= trans(sectopute proper disk parameter header address lda diskno mov l,a ;L=disk number 0,1,2,3 mvi h,0 ;high order zero dad h ;*2 mainder of the CBIOS is reserved uninitialized ; data area, and does not need to be a part of the ; system memory image (the store the parameters away for use ; in the read and write subroutines ; home: ;move to the track 00 position of current drive nd ; waitio: ;enter here from read and write to perform the actual i/o ; operation. return a 00h in register a if the operam register c mov a,c ;character to register a ret ;null subroutine ; listst: ;return list status (0 if not ready, 1 if rer) ret ;with value in HL ; setdma: ;set dma address given by registers b and c mov l,c ;low order address mov h,b ;high dad h ;*4 dad h ;*8 dad h ;*16 (size of each header) lxi d,dpbase dad d ;HL=.dpbase(diskno*16) ret ; settrk: ;set tpace must be available, ; however, between "begdat" and "enddat"). ; track: ds 2 ;two bytes for expansion sector: ds 2 ;two  ; translate this call into a settrk call with parameter 00 mvi c,0 ;select track 0 call settrk ret ;we will move to 00 otion completes ; properly, and 01h if an error occurs during the read or write ; ; in this case, we have saved the disk numbeady) xra a ;0 is always ok to return ret ; punch: ;punch character from register c mov a,c ;character to register a re order address shld dmaad ;save the address ds 10h ;space for setting the dma address ret ; read: ;perform read operatio bytes for expansion dmaad: ds 2 ;direct memory address diskno: ds 1 ;disk number 0-15 ; ; scratch ram area for BDOS use beg******************** ;* * ;* CP/M to host disk constants eblocking Algorithms for CP/M 2.0 * ;* * ;*******************************king only. * ;* * ;***************************************************** å * ;* BDOS constants on entry to write * ;* dat equ $ ;beginning of data area dirbf: ds 128 ;scratch directory area all00: ds 31 ;allocation vector 0 all01: ds 31 ;alloc * ;* * ;***************************************************** blksiz equ********************** ; ; utility macro to compute sector mask smask macro hblk ;; compute log2(hblk), return @x as result ; ; DISKDEF macro, or hand coded tables go here dpbase equ $ ;disk param block base ; boot: wboot: ;enter here on systemå * ;***************************************************** wrall equ 0 ;write to allocated wrdir equ 1 ;write ation vector 1 all02: ds 31 ;allocation vector 2 all03: ds 31 ;allocation vector 3 chk00: ds 16 ;check vector 0 chk01: ds 16 2048 ;CP/M allocation size hstsiz equ 512 ;host disk sector size hstspt equ 20 ;host disk sectors/trk hstblk equ hstsiz/1 ;; (2 ** @x = hblk on return) @y set hblk @x set 0 ;; count right shifts of @y until = 1 rept 8 if @y = 1 exitm endi boot to initialize xra a ;0 to accumulator sta hstact ;host buffer inactive sta unacnt ;clear unalloc count ret ; åto directory wrual equ 2 ;write to unallocated ; ;***************************************************** ;*  ;check vector 1 chk02: ds 16 ;check vector 2 chk03: ds 16 ;check vector 3 ; enddat equ $ ;end of data area datsiz equ $-be28 ;CP/M sects/host buff cpmspt equ hstblk * hstspt ;CP/M sectors/track secmsk equ hstblk-1 ;sector mask smask hstblk ;compf ;; @y is not 1, shift right one position @y set @y shr 1 @x set @x + 1 endm endm ; ;*********************************home: ;home the selected disk home: lda hstwrt ;check for pending write ora a jnz homed sta hstact ;clear host active;***************************************************** ;* * ;* Sector D * ;* The BDOS entry points given below show the * ;* code which is relevant to deblocgdat;size of data area end ute sector mask secshf equ @x ;log2(hstblk) ; ;***************************************************** ;*   flag homed: ret ; seldsk: ;select disk mov a,c ;selected disk number sta sekdsk ;seek disk number mov l,a ;diskhkuna ;check for unalloc ; ; write to unallocated, set parameters mvi a,blksiz/128 ;next unalloc recs sta unacnt lda se ;***************************************************** ;* * ;* The WRITE enag ;rsflag = 0 jmp rwoper ;to perform the write ; alloc: ;not an unallocated record, requires pre-read xra a ;0 to ac************************** ;* * ;* The READ entry point takes the place of jnz alloc ;skip if not ; ; tracks are the same lda seksec ;same sector? lxi h,unasec cmp m ;seksec = unasec? jnz al 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) kdsk ;disk to seek sta unadsk ;unadsk = sekdsk lhld sektrk shld unatrk ;unatrk = sectrk lda seksec sta unasec ;unatry point takes the place of * ;* the previous BIOS defintion for WRITE. * ;* cum sta unacnt ;unacnt = 0 inr a ;1 to accum sta rsflag ;rsflag = 1 ; ;********************************************** * ;* the previous BIOS defintion for READ. * ;* * ;*************loc ;skip if not ; ; match, move to next sector for future ref inr m ;unasec = unasec+1 mov a,m ;end of track? cpi cpret ; settrk: ;set track given by registers BC mov h,b mov l,c shld sektrk ;track to seek ret ; setsec: ;set sesec = seksec ; chkuna: ;check for write to unallocated sector lda unacnt ;any unalloc remain? ora a jz alloc ;skip i * ;***************************************************** write: ;write the selected CP/M sector xra a ;0 to a******* ;* * ;* Common code for READ and WRITE follows * ;* **************************************** read: ;read the selected CP/M sector xra a sta unacnt mvi a,1 sta readop ;rmspt ;count CP/M sectors jc noovf ;skip if no overflow ; ; overflow to next track mvi m,0 ;unasec = 0 lhld unatrk ictor given by register c mov a,c sta seksec ;sector to seek ret ; setdma: ;set dma address given by BC mov h,b mf not ; ; more unallocated records remain dcr a ;unacnt = unacnt-1 sta unacnt lda sekdsk ;same disk? lxi h,unadsk ccumulator sta readop ;not a read operation mov a,c ;write type in c sta wrtype cpi wrual ;write unallocated? jnz c * ;***************************************************** rwoper: ;enter here to peread operation sta rsflag ;must read data mvi a,wrual sta wrtype ;treat as unalloc jmp rwoper ;to perform the read ; nx h shld unatrk ;unatrk = unatrk+1 ; noovf: ;match found, mark as unnecessary read xra a ;0 to accumulator sta rsflov l,c shld dmaadr ret ; sectran: ;translate sector number BC mov h,b mov l,c ret ; ;***************************cmp m ;sekdsk = unadsk? jnz alloc ;skip if not ; ; disks are the same lxi h,unatrk call sektrkcmp ;sektrk = unatrk?  form the read/write xra a ;zero to accum sta erflag ;no errors (yet) lda seksec ;compute host sector rept secshf orst ldax d ;source character inx d mov m,a ;to dest inx h dcr c ;loop 128 times jnz rwmove ; ; data has been mov secmsk ;least signif bits mov l,a ;ready to shift mvi h,0 ;double count rept 7 ;shift left 7 dad h endm ; hl hashysical * ;* disk. * ;* * ;************************************lxi h,hstsec ;sekhst = hstsec? cmp m jz match ;skip if match ; nomatch: ;proper disk, but not correct sector lda hstw * ;***************************************************** sektrkcmp: ;HL = .unatrk or .hsttrk, compare with a a ;carry = 0 rar ;shift right endm sta sekhst ;host sector to seek ; ; active host sector? lxi h,hstact ;host aced to/from host buffer lda wrtype ;write type cpi wrdir ;to directory? lda erflag ;in case of errors rnz ;no furthe relative host buffer address lxi d,hstbuf dad d ;hl = host address xchg ;now in DE lhld dmaadr ;get/put CP/M data ***************** writehst: ;hstdsk = host disk #, hsttrk = host track #, ;hstsec = host sect #. write "hstsiz" bytes ;frrt ;host written? ora a cnz writehst ;clear host buff ; filhst: ;may have to fill the host buffer lda sekdsk sta hssektrk xchg lxi h,sektrk ldax d ;low byte compare cmp m ;same? rnz ;return if not ; low bytes equal, test high 1stive flag mov a,m mvi m,1 ;always becomes 1 ora a ;was it already? jz filhst ;fill host if not ; ; host buffer actir processing ; ; clear host buffer for directory write ora a ;errors? rnz ;skip if so xra a ;0 to accum sta hstwrt mvi c,128 ;length of move lda readop ;which way? ora a jnz rwmove ;skip if read ; ; write operation, mark and switchom hstbuf and return error flag in erflag. ;return erflag non-zero if error ret ; readhst: ;hstdsk = host disk #, hsttrktdsk lhld sektrk shld hsttrk lda sekhst sta hstsec lda rsflag ;need to read? ora a cnz readhst ;yes, if 1 xra  inx d inx h ldax d cmp m ;sets flags ret ; ;***************************************************** ;* ve, same as seek buffer? lda sekdsk lxi h,hstdsk ;same disk? cmp m ;sekdsk = hstdsk? jnz nomatch ; ; same disk, same  ;buffer written call writehst lda erflag ret ; ;***************************************************** ;*  direction mvi a,1 sta hstwrt ;hstwrt = 1 xchg ;source/dest swap ; rwmove: ;C initially 128, DE is source, HL is de = host track #, ;hstsec = host sect #. read "hstsiz" bytes ;into hstbuf and return error flag in erflag. ret ; ;*******a ;0 to accum sta hstwrt ;no pending write ; match: ;copy data to or from buffer lda seksec ;mask buffer number ani * ;* WRITEHST performs the physical write to * ;* the host disk, READHST reads the ptrack? lxi h,hsttrk call sektrkcmp ;sektrk = hsttrk? jnz nomatch ; ; same disk, same track, same buffer? lda sekhst  * ;* Utility subroutine for 16-bit compare * ;*  ********************************************** ;* * ;* Unitialized RAM data cal disk drives attached ; to the CP/M system, and parameter-list-i defines the ; characteristics of the ith drive (i=0,1,...,*********************************** end s, ; while the value of "enddat" defines the next location ; following the end of the data area. the size of this ; area is rk: ds 2 ;last unalloc track unasec: ds 1 ;last unalloc sector ; erflag: ds 1 ;error reporting rsflag: ds 1 ;read sectortracks to skip (word) ; [0] is an optional 0 which forces 16K/directory entry ; ; for convenience, the form ; dn,dm ; defiareas * ;* * ;***************************************************** ;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; CP/M 2.0 disk re-definition library ; ; Copyright (c) 1979 ; Digital Research ; Box 579 ; Pacific Grove, CA ; 93950 ; given by the value of "datsiz" at the end of the ; assembly. note that the allocation vector will be quite ; large if a large flag readop: ds 1 ;1 if read operation wrtype: ds 1 ;write operation type dmaadr: ds 2 ;last dma address hstbuf: ds hstsnes disk dn as having the same characteristics as ; a previously defined disk dm. ; ; a standard four drive CP/M system is de sekdsk: ds 1 ;seek disk number sektrk: ds 2 ;seek track number seksec: ds 1 ;seek sector number ; hstdsk: ds 1 ;host d,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 "sk; CP/M logical disk drives are defined using the ; macros given below, where the sequence of calls ; is: ; ; disks n ; disk disk size is defined with a small block ; size. ; dskhdr macro dn ;; define a single disk header list dpe&dn: dw xlt&dn,00iz ;host buffer ; ;***************************************************** ;* fined 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 isk number hsttrk: ds 2 ;host track number hstsec: ds 1 ;host sector number ; sekhst: ds 1 ;seek shr secshf hstact: ds 1ew factor" for sector translate ; bls is the data block size (1024,2048,...,16384) ; dks is the disk size in bls increments (wdef parameter-list-0 ; diskdef parameter-list-1 ; ... ; diskdef parameter-list-n ; endef ; ; where n is the number of logi00h ;translate table dw 0000h,0000h ;scratch area dw dirbuf,dpb&dn ;dir buff,parm block dw csv&dn,alv&dn ;check, alloc vec * ;* The ENDEF macro invocation goes here * ;* * ;****************** ; endef ; ; the value of "begdat" at the end of assembly defines the ; beginning of the uninitialize ram area above the bio ;host active flag hstwrt: ds 1 ;host written flag ; unacnt: ds 1 ;unalloc rec cnt unadsk: ds 1 ;last unalloc disk unatord) ; dir is the number of directory elements (word) ; cks is the number of dir elements to checksum ; ofs is the number of  tors endm ; disks macro nd ;; define nd disks ndisks set nd ;;for later reference dpbase equ $ ;base of disk parameter blnd yet blkshf set blkshf+1 blkmsk set (blkmsk shl 1) or 1 blkval set blkval/2 endm ;; generate the extent mask byte blkva else secmax set lsc-(fsc) ;;sectors 0...secmax sectors set secmax+1;;number of sectors als&dn set (dks)/8 ;;size of allocatr 8,<;alloc0> ddb %dirblk and 0ffh,<;alloc1> ddw %(cks)/4,<;check size> ddw %ofs,<;offset> ;; generate the translate table for n gcdr set 0 ;;variable for r rept 65535 gcdx set gcdm/gcdn gcdr set gcdm - gcdx*gcdn if gcdr = 0 exitm endif r block dirblk set 0 ;;fill with 1's on each loop rept 16 if dirrem=0 exitm endif ;; not complete, iterate once again ocks ;; generate the nd elements dsknxt set 0 rept nd dskhdr %dsknxt dsknxt set dsknxt+1 endm endm ; dpbhdr macro dl set bls/1024 ;;number of kilobytes/block extmsk set 0 ;;fill from right with 1's rept 16 if blkval=1 exitm endif ;; ion vector if ((dks) mod 8) ne 0 als&dn set als&dn+1 endif css&dn set (cks)/4 ;;number of checksum elements ;; generate te, if requested if nul skf xlt&dn equ 0 ;no xlate table else if skf = 0 xlt&dn equ 0 ;no xlate table else ;; generagcdm set gcdn gcdn set gcdr endm endm ; diskdef macro dn,fsc,lsc,skf,bls,dks,dir,cks,ofs,k16 ;; generate the set stateme ;; shift right and add 1 high order bit dirblk set (dirblk shr 1) or 8000h if dirrem > dirbks dirrem set dirrem-dirbks eln dpb&dn equ $ ;disk parm block endm ; ddb macro data,comment ;; define a db statement db data comment endm ; ddw otherwise more to shift extmsk set (extmsk shl 1) or 1 blkval set blkval/2 endm ;; may be double byte allocation if (dks)he block shift value blkval set bls/128 ;;number of sectors/block blkshf set 0 ;;counts right 0's in blkval blkmsk set 0 ;;fite the translate table nxtsec set 0 ;;next sector to fill nxtbas set 0 ;;moves by one on overflow gcd %sectors,skf ;; gcdn nts for later tables if nul lsc ;; current disk dn same as previous fsc dpb&dn equ dpb&fsc ;equivalent parameters als&dn eqse dirrem set 0 endif endm dpbhdr dn ;;generate equ $ ddw %sectors,<;sec per track> ddb %blkshf,<;block shift> ddb macro data,comment ;; define a dw statement dw data comment endm ; gcd macro m,n ;; greatest common divisor of m,n ;;  > 256 extmsk set (extmsk shr 1) endif ;; may be optional [0] in last position if not nul k16 extmsk set k16 endif ;; lls with 1's from right rept 16 ;;once for each bit position if blkval=1 exitm endif ;; otherwise, high order 1 not fou= gcd(sectors,skew) neltst set sectors/gcdn ;; neltst is number of elements to generate ;; before we overlap previous elementu als&fsc ;same allocation vector size css&dn equ css&fsc ;same checksum vector size xlt&dn equ xlt&fsc ;same translate table %blkmsk,<;block mask> ddb %extmsk,<;extnt mask> ddw %(dks)-1,<;disk size-1> ddw %(dir)-1,<;directory max> ddb %dirblk shproduces value gcdn as result ;; (used in sector translate table generation) gcdm set m ;;variable for m gcdn set n ;;variablnow generate directory reservation bit vector dirrem set dir ;;# remaining to process dirbks set bls/32 ;;number of entries pe s nelts set neltst ;;counter xlt&dn equ $ ;translate table rept sectors ;;once for each sector if sectors < 256 ddb %nxååffer dsknxt set 0 rept ndisks ;;once for each disk lds alv,%dsknxt,als lds csv,%dsknxt,css dsknxt set dsknxt+1 endm e#ÃøÃ!N#F! D!_>0w#wÊ1!`4~þ:Ú60+4Ã*�"e@Íuà READY FOR "SYSGEN" OR "SAVE 34 CPM59.COM"$*|é ÃØÏ tsec+(fsc) else ddw %nxtsec+(fsc) endif nxtsec set nxtsec+(skf) if nxtsec >= sectors nxtsec set nxtsec-sectors endifÃ,COPYRIGHT (C) DIGITAL RESEARCH, 1979 1]þ Ê‘þ?Ê‘!þ Ê_·Ê_Ö0þ Òr)å))Á O Ã@|·Âr}þÚr.g))Ã¥{Íuà INVånddat equ $ datsiz equ $-begdat ;; db 0 at this point forces hex record endm ; CONSTRUCTING 59k CP/M vers 2.2$ nelts set nelts-1 if nelts = 0 nxtbas set nxtbas+1 nxtsec set nxtbas nelts set neltst endif endm endif ;;end of nulALID MEMORY SIZE$!$Ê¡~/w¾/wÊ”|æügå*"záå|æ?¸>@G!�>0w#w!Ž4~þ:ÚÏ60+4ÂÁ~Íu!N#FÅ! �x±Ê, Åå¾Â# Ê Ãð¯åå fac test endif ;;end of nul bls test endm ; defds macro lab,space lab: ds space endm ; lds macro lb,dn,val defds l=Â!óv"z!w6͈!ëÃuá#ÁÃãáÁ+Žw+wz þ>ÂZÁáÅxÆG}‘o|˜g"|ë! ÁÅ:mþ Êc Ãp!ÿ"Ãx±Êp ~#ÃcÁå*|ë!:mþ Êååb&dn,%val&dn endm ; endef macro ;; generate the necessary ram data areas begdat equ $ dirbuf: ds 128 ;directory access bu… x±ÊÀä SYNCRONIZATION ERROR$ {æ°ã~#ão}oÒ¼„üÃ…Ñ*z¾ÂZ# ÂÉ:mþ Êm€! ~·Â #Âáë*€ÿ DM! x±Ê  w   Ò!Î× ~þ Ê3Ô#Ö0þ Ò ÒWxæà Òx€Ú Ò€Ú Ò‚Ú ÒG ÂÔÉ~þ  Ò# Â3ÔxÉ~#ÂBÔÉ!€�ÍYÒ~ɯ2Í×:ð×·È=!ï×¾ÈýÐ:ð×·È=!ï×¾È:ï×ýÐÍ^ÒÍTÔ!Î×ÏÓ#ÂýÑÉ͘Ð*ŠÐ~þ Ê"Ò·Ê"ÒåÍŒÐá#ÃÒ>?ÍŒÐ͘ÐÍÝÑÂÓ·Èþ Ú ÒÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃOÒ…oÐ$É>!Í×ÍYÒåå¯2ð×*ˆÐëÍOÒë"ŠÐëá·Ê‰ÒÞ@Ýåå&å-åAåGåMåäSåÛÛ›å!ÊØÍåØþÊÉ!̫ͯØ!áØÃ´Ø!ÜØÍåØÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉÙ:BÛÆA2ÆØºØÍÓÙÁÍÓÙ!Û~6Ã\ÓÃXÓ COPYRIGHT (C) 1979, DIGITAL RESEARCH †×FILE EXISTSÍøÓþÒ Ò_:Î×þ Ê ÒÍÑÉ×ÍõÑ:Î×þ ÂÄÖ:ð׷ʉ×=2ï×Í)ÑͽÐÉ×Ö×þ  ÒÕÍTÔÑ!ƒ×Í@ÔÍÐÐÊk×!åëÍØÑÍ×ÍùÐÂ×á€Ð}“|šÒq×Ãá¡ ^°=~þ Â�Ô 6?#ˆÔÕÍéÐÌêÓÊÕ:î׿`O> ÍKÔÚÕÑ{ÕæõÂÌÔ͘ÐÅÍÐÑÁÆAÍ’Ð>:Í’ÐÃÔÔÍ¢Ð>:Í’ÐÍ¢ÐxÍKÔæþ ÂùÔñõþÂ÷Ô> ÍKÔæþ ÊÕ> Í’Ðxþ Gþ:Ê�Ò:ï×wÖÒx2ð×pÍ0ÒʹÒ#þ*©Ò6?ëÒw˜ÒÍ0ÒÊÀÒïÒ#6 ¹Òþ.ÂéÒÍ0ÒÊéÒ#þ*ÂÙÒ6?ÃÛÒwÂÈÒÍ0ÒÊðÒÃßÒ#6 ÂéÒ#6ÂòÒë"ˆÐá ·Àà æÍûØÍÙØõOÍ�ÙñÉþ Èþ Èþ ÈþÈþ É:Û·ÂEÙÍææÈÍ æþÂBÙÍ æþʯÉ2Û>É: Û·ÂbÙÅÍ#ÙÁÅÍ æÁÅ: Û·ÄæÁy! ÛþÈ4þ Ð5~·ÈyþÂyÙ5Éþ À6ÉyÐ_ÃÅÍŒÐÁÉ> Í’Ð> Ã’Ð> Ã’ÐÅ͘Ðá~·È#åÍŒÐáìÐ Ã_ÃÍ2î×<ÉÃÃЯ2í×Í×ÃËÐÃÃÐÃÃÐÃÃÐÍ×ÃßÐÃÍ·ÉÃôÐÍÖá=Âq×ÍfÔÍ^Ò!ð×å~2Í×>Í`Òá~2Ýׯ2í×\!Í×!ÍBÔ!Ð~·Ê>×þ Ê>×#Ã0×�~·ÊO×#ÃC×x2€Í˜ÐÍÕÑÍÑÍ1«×Í)ÑͽÐÂÓÍfÔà Òz×ͧÐÆ×BAD LOú>úͦÉÍÉÍÉ!«q:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®ÒÕþ ÂÙÔÍ¢ÐÃÙÔñÍÂÑÂÕÍäÐØÔÑÆ×Í^Òþ ÂBÕRÕͧÐÍ9Ñ!Ð5‚Ó#~þY‚Ó#"ˆÐÍTÔÍ×ÍïÐ<ÌêÓÆ×ALL (Y/N)?Í^Ò ÒÍTÔÍÐÐʧÕ͘Ð!ñ×6ÿ!ñ×~þ€Ú‡ÕåÍþ#~þ? Ó ÂÓx·ÉDIR ERA TYPESAVEREN USER¥]!ÓyþÐÎ×¾ÂOÓ#Â<Óþ ÂTÓyÉ#ÂOÓ Ã3Ó¯2Ð1«×Åyæ_ÍÑ͸Ð2«×Áyæ2ï×ͽÐ:зÂÍÙÒ�Ùõ^ÍHÙñö@Oyþ ÂHÙ ÍHÙ: Ûæ–ÙÉͬÙ Í æà æ#ÍHÙÍÉÙ: Û! ۾РÍHÙùÙ ÍHÙ ÃHÙ þ$ÈÅOÍ�ÙÁÃÓÙ: Û2 Û*CÛN#åÅåÍûØæáÁþ ÊÁÚþ Ê×ÃùÐÃôÐÃÃÐÃÿ ÃÍч‡‡‡!ï×¶2É:ï×2ÉþaØþ{Ðæ_É:«×·Ê–Ñ:ï×·>ĽÐ¬×ÍËÐÊ–Ñ:»×=2Ì׬×ÍùЖÑÐ!€€ÍBÔ!º×6#5¬×ÍÚÐÊ–Ñ:ï×ADCOMÍfÔÍ^Ò:Î×Ö !ð×¶Â ÒÂÓ$$$ SUBÉ!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ëÐá կw4!€ÍYÒ~þʆ×ÍŒÐÍÂц×ÃtÕ=ʆ×ÍÙÓÍfÔà ÒÍøÓõÍ^Ò ÒÍTÔÍ×ÕÍïÐÑÍ ÑÊûÕ¯2í×ño&)|µÊñÕ+å!€åÍØÑÍ×ÍÑÑáÂûÕÃÔÕÍ×ÍÚÐ<ÂÖÖͧ˜Ó1«×͘ÐÍÐÑÆAÍŒÐ>>ÍŒÐÍ9Ñ€ÍØÑÍÐÑ2ï×Í^ÒÄ Ò:ð×·Â¥ÖÍ.Ó!ÁÓ_~#foéwÔÕ]Õ­ÕÖŽÖ¥Ö!óv"Ð!ÐéßÓçÐREAD ERRORðÓçÐNO FILEÍ^Ò:ð×·ÂÁÚþÂÚx·ÊïÙ: Û2 ÛÃpÚþÂ&Úx·ÊïÙ~+éÚþÂ7ÚÅåÍÉÙ¯2 ÛÃñÙþÂHÚå! Û>–wáÃïÙþÂ_Úá: Û! Û¾ÒáÙ5ͤÙÃNÚþÂkÚͱÙáÃáÙþ¦ÚÅͱÙÁáåÅx·ÊŠÚ#N·Ä½Ð!ÐͬÐÍÂÑʧÑÍÝÑÂÓÍÝÑÍÑ ÐÍÍ)Ñ!ÐF#x·ÊºÑ~Í0ÑwëÑw!Ð"ˆÐÉ Í·ÈÍ·ÉÀÃ!«×~·È6¯Í½Ð¬×ÍïÐ:ï×ýÐ(Ó!ؾ¥]ÃؙإثرØë"CÛë{2Öå!"EÛ9"Û1AÛ¯2àå2Þå!tååyþ)ÐK!GØ_^#V*CÛëéæÈÚ�ÙÎÚææÔÚíÚóÚøÚáÙþÚ~äƒäEäœä¥ä«äÈä×äàäæäìäõäþäå åå,1ÛyÛ{ÛÿæÂ0Ó!B0}Óy|ÓzÛxæÊ0ÛyæþÒ0Û{ÜÿæÂ0Â0Ãæ€Ѐ€ÜÐÍÕÑÆ×NO SPACEÍ^Ò Ò:ð×õÍTÔÍéÐÂyÖ!Í×Ý×ÍBÔ*ˆÐëÍOÒþ=Ê?Öþ_ÂsÖë#"ˆÐÍ^ÒÂsÖñG!ð×~·ÊYÖ¸pÂsÖp¯2Í×ÍéÐÊmÖÍ×ÍÑÆ×ÍêÓÆ×ÍfÔà Ò‚ÖͧÐÃ! ÅåÍÙáÁÃxÚå: Û·ÊñÙ! Û–2 ÛͤÙ! Û5™ÚÃñÙ#wÅåOÍÙáÁ~þx½ÚþʹÚïÙáp ÃHÙÍÙÃÛÍæÃÛy<ÊàÚ<ÊæÃ æÍæ·Ê‘åÍ æÃÛ:ÃÛ!qÉëMDÃÓÙÍ#ÂÍàìÿ ë ¾Úáw ë ~>ÿ2ÒåÃà!EÛ5ÉÍTÝ*CÛå!¬å"CÛÍßÍõÝá"CÛÈë!¯w# ÂFá! wÍŒÝÍýßÃxݯ2ÒåÍ¢àÍõÝÈ*CÛ ~<æwʃáG:Åå !Òå¦ÊŽáÞ:ÔåÃÛÅõ:Åå/Gy Oñ ‘æÁÉ>ÿ2Ôå!Øåq*CÛ"ÙåÍþÝÍ¡ÛÍÞÍõÝÊ”ß*ÙåëþåÊJßÕÍÝÑÒ”ßÍ^Ý:ØåOy·Êƒßþ?Ê|ßxþ Ê|ßþ Êsß–æÂ-ßÃ|ßÅNÍßÁÂ-ß# :àå·Ê‘åw:ßå2ÖåÍEä*Ûù*EÛ}DÉÍQä>2ÕåÍãÌâÉå€ÂýÜÉ È)ÃÝÅ:BÛO!ÍÝÁyµox´gÉ*­å:BÛOÍêÜ}æÉ!­åN#FÍ Ý"­å*Èå#ë*³ås#rÉÍ^Ý ~Ð!ØÃJÛÍÝÈ! ØÃJÛ*¹å:éå…oÐ$É*CÛ~ÉÍiÝ6ÉÍiÝö€wÉ*¯ÃÛåÍiÝ6ÀáÁ}2EÛÃxÝÿÍãÌÁáÉÍãÌâÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ Íß*CÛ!år#r#rÍõÝÊ äÍ^ÝÍ¥ãáå_y–#xž#{žÚÙ2EÛÉ>ÃÛ! Ø^#Vëé Èw#ÃPÛ:BÛOÍæ|µÈ^#V#"³å##"µå##"·å##ë"Ðå!¹åÍìá 4~æʶáÍßÍõݬá:Óå<ʶáÍ$áÍõÝʶáïáÍZàͻܯÃÛÍÛÃxÝ>2Õå>ÿ2ÓåÍ»Ü:ãå!áå¾Úæáþ€ÂûáÍZá¯2ãå:EÛ·ÂûáÍwÜÍ„ÜÊûáÍŠÜÍÑÛͲÛÃÒÜÃÛ>ÃSß:êåæ2EÛ!Ôå~ЯwÉÍþÝ>ÿÃÛÍTÝ ÍßÍõÝÈÍDÝÍ^Ý6åÍkÞÍÆÝÍ-ßäßPYy°ÊÑß ÕÅÍ5ÞÒìßÁÑ*Æå{•zœÒôßÅÕBKÍ5ÞÒìßÑÁÃÀß<ÍdÞáÑÉy°ÂÀß!ÉóæÃÃæÃaçÃdçÃjçÃmçÃrçÃuçÃxçÃ}çççìçûçÃÁçÃÊçÃpçÃ±ç‚ænèsæ éîè‚ænèsæ<é邿nèsækéL邿nèsæšé{éò?Àêåë*³å{–#zžÉÍÝØr+sÉ{•ozœgÉÿ*ìåë*ÌåÍ•ÝÐÅÍ÷Ü*½åë*ìåÁ ÊÄݾÈÍÝÐÍ,ÝÉwÉÍœÝÍàÝ͸ÛÃÚÝÍàÝͲÛ!±åÃãÝ!¹åN#FÃ$æ*¹åë*±å€ÃOÛ!êå~#¾À<É!ÿä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É>"OÛ*»åë!ÁåÍOÛ*Æå|!Ýå6ÿ·Ê�Û6>ÿ·ÉÍæ¯*µåw#w*·åw#wÉÍ'æÃ»ÛÍ*æ·È! ØÃJÛ*êåÍêÜ"åå"ìå!ååN#F*·å^#V*µå~#foy“xšÒúÛå*Áå{•_zœWá+ÃäÛå*ÁåÚ2Õå>2ÓåÍTÝ*CÛÍGÝÍ»Ü:ãåþ€ÒÛÍwÜÍ„ÜÂnâÍ>Ü2×å·Ê;âO Í^ÜDM;ß}´ÂHâ>ÃÛ"ååë*CÛ :Ýå·:×åÊdâÍdÝsÃlâO s#r:EÛ·ÀÅÍŠÜ:Õå==»âÁ Õ*CÛ ëÍ^ÝÁÍOÛÍÃÛÃÆÝÍTÝ Íß*CÛ~wÍõÝÈÍDÝ ÍàÍ-ßÃ'à ÍßÍõÝÈ ÍàÍ-ßÃ@àÍßÍõÝÈͦÜ~õåÍ^Ýë*CÛ ÕÍOÛÍxÝÑ! N!Fáñwy¾      59k CP/M vers 2.2 1!œæÍÓç¯2Ãç1€ ÅÐÍ»çÍ}çͧçͬçÁ,ÅÍÁçÂIç*lè€DMÍ»ç:kèþÚç:jè<ÿ"êåÉ*Èåë*êå#"êåÍ•ÝÒÞÃþÝ:ê忇 Þ2éå·ÀÅÍÃÛÍÔÝÁÞÝyæ<_WyæOx‡‡‡‡‡±OxæG*¿å ~ÂVÞÉÕÍ5ÞæþÁ±ÂdÞwÉÍ^ÝÅÑ ÈÕ:Ýå·ÊˆÞÃÛ!"­å"¯å¯2BÛ!€"±åÍÚÝÃ!äÍrÝÍQäÃQàÍQäâàë~þ?ÊÂäͦÜ~þ?ÄrÝÍQäÍßÃéÝ*Ùå"CÛÍQäÍ-ßÃéÝÍQäÍœßÃßÍQäüáÍQäÃþáÍrÝÍQäÃ$áÍQäÍàÃß*¯Üy•xœÚÜëá#ÃúÛáÅÕåë*ÎåDMÍæÑ*µås#rÑ*·ås#rÁy“OxšG*ÐåëÍ0æMDÃ!æ!ÃåN:ãå· ÂEÜG>–O:âå Ê\Ü·ÃSÜ€É*CÛ :Ýå·ÊqÜn&É ^#VëÉÍ>ÜOÍ^ÜÅy==»âå*¹åWw#òŒâÍàÝ*çå"ååÅÍÑÛÁ͸Û*åå:ÄåG¥¸#šâá"ååÍÚÝÍÑÛÁÅ͸ÛÁ:ãå!áå¾ÚÒâw4 ÂßâõÍiÝæwñþÂã:ÕåþÂãÍÒÜÍZá!EÛ~·Âþâ=2ãå6xÊ‹à>Ú‹à>€*CÛwÉ~#¶+Àw#w+ɯ2EÛ2êå2ëåÍÝÀÍiÝæ€ÀÍßÍõÝÈÍ^Ý ë*CÛ :Ýå·Êèà~·ÂÛàw·Âáà~¾ÂáÃýàÍ”àëÍ”àë¾Âá#¾Âá # Oͧç¯Óý¯Óü>~Óü¯Óó€Í»ç>Ã2!æ"2!Ø"28!ø"9:OûÃÐÁ ÊRçÅÃÉæ![çÍÓçÃÿ?bootÃøÍøæÉà øÃø¯Éà øÃøçç!ÅåNÃŽÞ ÅN#Fåy°Ê�Þ*Æå}‘|˜Ô\Þá#ÁÃuÞ*ÆåÍêÜ#DM*¿å6# x±Â±Þ*Êåë*¿ås#rÍ¡Û*³å6#6ÍþÝÿÍÞÍõÝÈÍ^Ý>å¾ÊÒÞ:AÛ¾ÂöÞ#~Ö$ÂöÞ=2EÛÍkÞÍŒÝÃÒåÃ)å:BÛÃÛë"±åÃÚÝ*¿åÃ)å*­åÃ)åÍQäÍ;àÃß*»å"EÛÉ:ÖåþÿÂ;å:AÛÃÛæ2AÛÉÍQäÓãÍQäÜãÍQäÃÒã*CÛ}/_|/*¯å¤W}£_*­åë"¯å}£o|¢g"­åÉ:Þå·Ê‘å*CÛ6"ååÉ*åå}´É:Ãå*åå)=Â�Ü"çå:ÄåO:ã塵o"ååÉ*CÛ É*CÛë!ÉÍ®Ü~2ãåë~2áåͦÜ:Åå¦2âåÉÍ®Ü:ÕåþÂÞܯO:ãå�wë:áåwÉ È|·g}oÃëÜ€*¹å¯†# ÃÒܯ2ÕåÅ*CÛë!!~æõ~#~æO~æGñ#n,-.‹ã! w! y–ÂGã!x–æÊãÅÕÍ¢àÑÁ.:EÛ<Ê„ã! q!pÍQà:EÛ<ÂãÁÅ. Ê„ãÍ$á.:EÛ<Ê„ãÁ" 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Éۈɀ€ååååååååååååååååå# åååååååååååååååååååååååååå$ åååååååååååååååååååååååååå% åååååååååååååååååååååååååå& åååååååååååååååååååååååååå' åååååååååååååååååååååååååå( åååååååååååååååååååååååååå) åååååååååååååååååååååååååå* åååååååååååååååååååååååååå+ åååååååååååååååååååååååååå, åååååååååååååååååååååååååå- åååååååååååååååååååååååååå. åååååååååååååååååååååååååå/ åååååååååååååååååååååååååå0 åååååååååååååååååååååååååå1 åååååååååååååååååååååååååå2 åååååååååååååååååååååååååå3 åååååååååååååååååååååååååå4 åååååååååååååååååååååååååå5 åååååååååååååååååååååååååå6 åååååååååååååååååååååååååå7 åååååååååååååååååååååååååå8 åååååååååååååååååååååååååå9 åååååååååååååååååååååååååå: åååååååååååååååååååååååååå; åååååååååååååååååååååååååå< åååååååååååååååååååååååååå= åååååååååååååååååååååååååå> åååååååååååååååååååååååååå? åååååååååååååååååååååååååå@ ååååååååååååååååååååååååååA ååååååååååååååååååååååååååB ååååååååååååååååååååååååååC ååååååååååååååååååååååååååD ååååååååååååååååååååååååååE ååååååååååååååååååååååååååF ååååååååååååååååååååååååååG ååååååååååååååååååååååååååH ååååååååååååååååååååååååååI ååååååååååååååååååååååååååJ ååååååååååååååååååååååååååK ååååååååååååååååååååååååååL åååååååååååååååååååååååååå