TD5Ä+Ä�_ €3 3 óÔ(!4í°>€Ó4Ãê& Ã\×ÃX× ©RIGHT (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 USER6¢!×yþÐÎÛ¾ÂO×#Â<×þ ÂT×yÉ#ÂO× Ã3ׯ2Ô1«ÛÅyæ_ÍÕ͸Ô2«ÛÁyæ2ïÛͽÔ:Ô·Âë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ÍãÁÂ-ã# P˜×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 LO½Ã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ß<Ê„çÁ’…ADCOMÍfØÍ^Ö:ÎÛÖ !ðÛ¶Â ÖÂ× $$$ SUB$ÿ6¢ÃܙܥܫܱÜë"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#"³é##"µé##"·é##ë"Ðé!¹éÍMø‡ÿ¯ÃßåÍ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ß46:àé·Ê‘éw:ßé2ÖéÍEè*ßù*Eß}DÉÍQè>2ÕéÍçÌæÉå€'IÃYìÃíÃ,îÃîÃ%îÃRîÃEîÃ:îÃåñÃòÃòñÃòÃøñÃYòÃmòÃ_îÃþñÁ E $$E BbŒêìêLë¬ë /,nvx{78;khfsz45piyrw 12[.m bc0 outeq 'ljgda>-97532\=08641963.+-X ?,NVX}78:KHFSZ45PIYRW 12].M BC0 OUTEQ "LJGDA<_(&%#@|+)*^$!963.+-3       m x±Â{óÉmÃ’óiy2•øx2§ø>2Óø!èø:举ijõ!¦ø6#:°ø¶w##F:åøþPÚÄóÖP w�2´ø#~q‘2³øy‡‡O:¨øæ±2¨ø#å:çøO*Þø|µÊñó NáqÍ‚õ!²ø~6#¶#¶Ê ôÍöÂõôó!‰ø í³><2Âø!§ø Í{ö!ºø6û~·Ê&ôë!‰ø í³ë#~æÀÊmõ:¦ø=2¦øÊõôO~æÂûô#~æÂõyþÊqô#~æÂtôyæ ôÍòõÂõôÃôÍöÍéõÂõôÃô TDrive is not responding is write protected error detected. Please reinsert diskette, push any key to retry T!®ôÃõ!Óø5 ô!‡ôÃõ!šôÃõå>2¦øÍxõ!}ôÍî:äøÆAOÍ êáÍî!¾ôÍîÍê·Ê=õÍ êÃ0õÍ êþÊíþÊíæ_þCÊ]õ!ñôÍîÍ‚õÃtô!ñôÍîÃfõ¯2òø>ÿ·õÍxõñ!îø¶wÉ!Åø~æßwÓ4É!Ü"Æø!Åø~ö wÓ4æÀ~öwÓ4Í©õ!Ãø6û~·Â£õÉó>¥Ó>œÓÉ^wæ2¨ø{æþ_~æþ“2²øÈ~Í@ò`i"Þøë"Üø^#V#ë"—øë¬øí°ÉÃ/ö:¹øO:¦øæ>Âö>ÿ�ò ö>þPÚ&ö>NÃ&ö:±ø·:åøÊö‡þPÚ&öÖPW·Êéõ!µø6#q#p#:¨øw#zrþPÚGö6Oó>d2Âø!¶øN#Í{ö!ºø6û~·Ê[ö#~æÐÊpö!µø5ÂGö·É!Ãø6 ~·ÂuöÉÛ(‡Ò{öú’öÚ{ö~Ó)# Â{öÉåÍšöáÃ{ö!»øå>6#= öá6€Û(‡ÒªöðÛ)w#êöõ>ƒÓ >‹Ó >£Ó ñûíMísÑø1yþõå¯2ÂøûÛ(ö 2ºøÛ(‡ÒÞöúëö>Ó)Íšöóáñí{ÑøûíMûíMõåû!Ãø~·Ê÷5!Âø~·Ê ÷5 ÷6d!Åø~æïÓ4~Ó4!Åø~æ0ÊD÷æ ÂD÷*Æø+"Æø|µÂD÷:ÅøæïÓ42Åø!Äø~·ÊP÷5ÂY÷!Åø~æ¿wÓ4:Ãø·Âl÷:ÅøæPÂl÷>ÓóáñûíMDøõøøÙù³ß  9        ¸öûöøöøöÉöÿEagle CP/M version 2.2.C (Double sided version)ó1!¦ø6§øSí°!ÿ6í°ÍÀí>Ó >Ó >ÏÓ >ýÓ >Ó >Ó>Ó >ÏÓ>ÿÓ>Ó>ÏÓ>Ó>Ó>pÓ> 2àø2èø!LêÍûì!Tê�Íûì!\êÁÍûì:6ê2Í ê!(ì:Ô·ÂõìÍî!Bì:8êæÄîÍ„íÃÔ~·Èy2åÍ-êá·È~·ÈO#åÍêáà íó¯2òø2óø> 2èø1ÍÿÀíûÍòÍòñÍòÔÍøñ>,2ÌøÍYò·Âí!Ìø5Êví€*Øø"Øø!ãø4:Èø=¾ÒFí6*áø#"áøÃFíÍ„í:9êæÊÔÃÔ!ø+ø:8êOþ”íë"|÷"Œ÷ë"ü÷" ø>Ã2!ê"2!Ü"!€"Øø:OÉ>€2ÅøÓ4¯2Õø>Ó*:ê}Ó|Ó*@ê}Ó|Ó>ÕÓ>Ó!€ø í³!€ø í³!ì}Ó|íGí^:9êæÈÛ6Û6É~·È#OåÍ êáÃîå!xîÃfîåÿ!ˆîÃfîå!€îÃfîå!˜îÃ>îå!�î:Ãjîå! î:Ãjîå!¨î:Ãjîå!°îÃVî:æÕ_^#VëÑãɸî¦ï:îøîÉîžï3î ï×îçïRîï¦ï¦ï¸îøîžïžïÉî ï×îï×îï×îçïïFïáîßï!ï8ïÍÉîʸîÛæO>0ÓyÉ>ÓÓÛæÈ>ÿÉÍáîÊ×îyÓÉ>ÓÓÛ!<ê¦#¾Êôî¯É>ÿ·ÉÍ ïÊøîÛæO>0ÓyÉ>ÓÓÛæÈ>ÿÉÍ!ïÊïyÓÉ>Ó[ÓÛ!Bê¦#¾Ê4ï¯É>ÿ·ÉÛ æ0ÈÛ /æÈ>ÿÉ!Fê~æÊ€ïyþ Ê]ïþ ÊkïÀï#4~#¾+€ï6Àï#V6#^+z»ÈÕ ÍŒïÑÃrïª-uùDøõøø ú§ùõøIøÙùuùüõøIø ú§ùDøõøøÙùuùDøõøø ú§ù{øõøbøÙùuù{øõøbø ú§ùDøõø+øÙùuùDøõø+ø ú§ù(¿à0ÿ5ÿ@(Š¿à0ÿ5ÿ@G?À€L?€ÿ ÿDêÁƒÃÃÃÃÃÃà ),Ï),€�9úŠÏ‹«‡ÿnT:FêæÊŒïyþ ÈÍ8ïÊŒïyÓ>Ó >Ó ÉÛ5æ€È>ÿÉÛ5_æ€Ê¦ïÛ6æþ`Ò¦ïO{æ_P!„ê^#Vë ~O·Ê¦ïþaØþ{ÐÛ5æ@yÈæ_OÉÛ0æ€È>ÿÉóísÏø1¹þåÕÅûÍ}ñ:Ôø·Â­ðyæþÊHðþÊ\ñþÊpðþ Ê]ðþ ÊUðþ Êvðþ Ê|ðþÊ�ðþÊ›ðþʧðþ ÚHð:Õø©OÍ“ñ}þOÒ[ðͤñ͈ñóÁÑáí{ÏøûÉͺñÃHð.:Öø¼ÂjðÍÂñÃHðÍ«ñÃHðͳñÃHðͤñÃHð.ÃHð! Í“ñͤñ|µÂ†ð>2ÖøÓFÃHð:Öøg.Í«ñÃHð2ÔøÃKðþÂàðyæþ=Êñþ+Êñþ*Êñþ)Ê%ñþ(Ê-ñþTÊ4ñþYÊ:ñþZÊ:ñÃUñþ=ÊüðþÿÂUñyÖ þPÚôð>Oo:×øgÃNñyÖ þÚñ>G:Öø<€þÚñÖ2×ø>ÿ2ÔøÃKð¯2ÔøÃ�ð>€2ÕøÃUñ¯2ÕøÃUñÍ×ñÃUñåÍ×ñá:Öø¼ÊUñ.Í«ñÃ:ñ¯2ÔøÃHð¯2ÔøÃKð!Äø~·ÂKð:7ê·ÊKðów!Åø~ö@Ó4wÍ©õûÃKðÛIæoÛHægÉ|æÓM}æÓLÉÛ0æ€Ê“ñ}Ó1|Ó2yÓ3É,}þPØ.$|þØ&É-}þPØ.O%|þØ&É:ÖøgÍ«ñ|2Öøå.Í×ñÛKáÉ Í“ñͤñ}·ÂÙñÉ:óø·Âòñ2òø`i"áøÉ`i"ØøÉ&iÉy2ãøÉ!yþ Ò;ò2àøÍ@òz³Ê;ò"Úøå2Èø!~<2Éø!~2Ëø#~2Êøáɯ!Éo&))))r÷åN#F+ ^#Váɯ2ôø>2ðø2ïø>2ñøÃÉò¯2ðøy2ñøþ‹ò:Éø2ôøêø!àøí°:ôø·ÊÁò=2ôø!àøêøÍ{óÂÁò!íø4:Èø=¾Òºò6*ëø#"ëø¯2ïøÃÉò¯2ôø<2ïøóísÍø1ùþû¯2îø:ÊøO :ãø Êçò·ÃÞò2éø!òø~6·Êó!äøàøÍ{ó ó:éø¾Ê.ó:óø·ÊóÍŽó¯2óøäø!àøí°:éø:ïø·Ä‡ó:ãø!Ëø¦o&)))))))9úë*Øøë€:ðø·ÂXó>2óøëí°:ñøþ:îøÂsó·Âsó¯2óøÍŽó:îøóí{Íøû·É¾À#Ö+PIP COM:STAT COM) DDT COM& SUBMIT COM XSUB COMSYSGEN COM ED COM4LOAD COMASM COM@MOVCPM COMLDUMP COMASSIGN COM0 !DISKUTILCOM,"#$DDISKUTLCOM,%&'ICPM60 ASM (KEBIOS ASM€)BCDEFGHIJKLMNOPEBIOS ASM|QRSTUVWXYZ[\]^_`�EAGLEII  CRUN2 COM *+,-./0123CBAS2 COM&3456789:;<=XREF COM8>?@AD COMbc ååHååHååHååHåå_HååDÍÉ!Ã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  Š •   ® ¹;ÃÎÉÉ(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É!‚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ÍîÉ:[Ò v2ÀÍ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*¾ëà^*�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¨Ãͯ ƒÁ²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 ©=¨É'ÿÉ!ÿÍ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͈ÍßÅ*ÈÇ÷:¨Ö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ÿ:®þÿÂú¸ͯ !&6EÃ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*(&ë²ÀÍý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͈ÍßÅ*Èi Í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*—ëÍ "™gÂ)*Ä)¼) å*Ä)º) ã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ë`>ÍÓµÖŸ!—õÍøµÆÿŸÁ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Í�˜‘É?ÿ"À)¸À)ÍÝÒ�*À)º) ^#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>É.Yÿn -Â: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ëšÍ ÉÍ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ë"ò<¼Ã=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Í#Âõ ' Âû ë ÍÝ þ « ÅÍ Í ÍŠͶ Í� ·Êþ=« Í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_‘Ã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¯"‘ÿÃ)*·ëÍÄÂ)þÃ)ÑÕÃ)ÍÙÁÅ>Ã+ÑÕÑÕ><7áÉÿÃÇÂÿÍÇÄÿÉÇÇÿéÇÇÆÏç"ÇÀ÷ÓÍ9Í.ÍþÂYÉÃÛÉ�ͯ É* MÍ^žáÍý2¶áÅUÍ :áæ2á:âæ2â¢ÍêØͳØÍã:_þÿ³¥ͯ !ø6! �@!’!BH @@A‚BH B! "ˆBHI$$’BI$BI „$„’ ’HI f ‚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_ªÍ“ Ú !€"Í >-ÍÇ Í¶ ÍÝ þ ÊþÖ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 Ãþ !³ ¾Ê #{HååÒïÿ¼Ã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� ‚"!$"„"ÿà ÉÃ]xsub*"-!/"*"+!"á"¼éÃÉ1Þ MÍ*!€"ºÍ�!"*¼é (xsub active)$áå|þÿÒ*yþ Ê¥þÂ*ë"ºëÃ*7Í*É*ºëÍ*ÉÅÕÍxÑÁÍ*õÍ�ñÉÍ‹<ÉÕÍ›Ñ Ê Õ:%·Ê*=26Í‹!7^#6 #6 #6$ 8Í*á7¾Úæ~O #w# Âé!6:6=›Ãß 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>}¹Òý|ͧÉ»HååŸÉ Í-!Û6»Í]:Þþÿ·ͧÍz2~þÊe:~2€O!� 6*~&‚ 6$>!~¾Ò_Íz*~&€ w!~5ÃBÍxûÍ:ÞþÿÂyÆͧÉ*v+"vv ~ÉÃÃÃÍÉÉÉ_{•ozœgÉ 001 $$$$ SUBÿë ÍŠÉ!à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>}¹Òý|ͧÉ»ŒúèCOPYRIGHT (C) 1978, DIGITAL RESEARCH `  !"#$%&'()*+,-./0123456789:;<=>?@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_o&)))))))ÉÍþaØþ{Ðæ_É_ÍÉ> Í£> Í£Éåͪá~·ÈåÍ£á#úO*é*é*é*!é*$é*'éÃÃ! "=>ÿ2:!:4:(¾Ê�NÍÏ>ÿ2;:)!;4¾ÊŒ!;^!*FNÅÍ×Áy�ÍŠë*=DMÍ߯2?:?þÚo!¯ͺÍ•þ ÂôͪÃ"<2?:<·Ê‚ÍïÃ…Íç·Ê"ÃS:)ÍŠë*="=à :<·ÈÍïÉ1`!ͺ:]þ Ê\Íü<ÂÌ! ͵Ãô¯2|Å\Í÷ÁÂü ÂÒ! åDMÍß\Í÷á·Â|€Ãä!"͵Ãô!͵Í•þ Ê|þÊôþÊôÖAþÚ*ÍÿÃÆA2KÖAÍÆ|µÊ$ ^#V2)! ~2(ͪ!AͺÍ•õͪñþ ÊoþÊôþÊôï2<Í!Öͺ!_͵Í•þ ÊôþÊôþÊôÖAþÚ¡ÍÿÃ|ÆA2›ÖAÍÆ|µÊ› ^#V2)! ~2(!Œ͵Í•õͪñþ ÊãþÊôþÊôÃ|!<6Í!ÖͺÃ|>ÍÆͪÃ!è͵ÉSYSGEN VERSION 2.2.BSOURCE 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 s!!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/ÒöÃ×!:–"úÇ8A, B, ETC)NO SOURCE FILE ON DISKSOURCE FILE INCOMPLETE$ÿVWXYZ[\]^_o&)))))))ÉÍþaØþ{Ðæ_É_ÍÉ> Í£> Í£Éåͪá~·ÈåÍ£á#úO*é*é*é*!é*$é*'éÃÃ! "=>ÿ2:!:4:(¾Ê�NÍÏ>ÿ2;:)!;4¾ÊŒ!;^!*FNÅÍ×Áy�ÍŠë*=DMÍ߯2?:?þÚo!¯ͺÍ•þ ÂôͪÃ"<2?:<·Ê‚ÍïÿÃ…Íç·Ê"ÃS:)ÍŠë*="=à :<·ÈÍïÉ1`!ͺ:]þ Ê\Íü<ÂÌ! ͵Ãô¯2|Å\Í÷ÁÂü ÂÒ! åDMÍß\Í÷á·Â|€Ãä!"͵Ãô!͵Í•þ Ê|þÊôþÊôÖAþÚ*ÍÿÃÆA2KÖAÍÆ|µÊ$ ^#V2)! ~2(ͪ!AͺÍ•õͪñþ ÊoþÊôþÊôï2<Í!Öͺ!_ÿ͵Í•þ ÊôþÊôþÊôÖAþÚ¡ÍÿÃ|ÆA2›ÖAÍÆ|µÊ› ^#V2)! ~2(!Œ͵Í•õͪñþ ÊãþÊôþÊôÃ|!<6Í!ÖͺÃ|>ÍÆͪÃ!è͵ÉSYSGEN VERSION 2.2.BSOURCE DRIVE NAME (OR RETURN TO SKIP)SOURCE ON , THEN TYPE RETURNDESTINATION DRIVE NAME (OR RETƒURN TO REBOOT)DESTINATION ON Í, THEN TYPE RETURNPERMANENT ERROR, TYPE RETURN TO IGNOREFUNCTION COMPLETEINVALID DRIVE NAME (USE ìÍú"&! 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*ëÃÀ 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ÍË :!þ Â*+"  vëÍÉ: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*ë*ͪ"*ë! ͪë":ÖÆÿŸ!¶Ò! Qÿ*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 Â=ÂÉ+ LIB X$$$$$$$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  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þ ÂÍÂÉ Håå 5ÃÄÉ!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 ž 9Ã@ 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 "= !   xÑÿ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Í+:ÍÐ ÍÐÉÍYÃ2A Ö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ëÉÿ( 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 "= !  akÿÑ`!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþ Š™11*"Íà COPYRIGHT(C) 1978, DIGITAL RESEARCH M ð ð !Ãà á ÃÊ Ã4êÃÞü ÃÃ/ÃLÃ9ASMPRNHEX ÿ2  ÈÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã: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*!{Íš|Íš}Íš¯Íš{·Êè!$~#ÍšÂ߯’Íš> ͪ> ͪÉ ½ýÿ鉒™Ÿ«¿ÆÐÙàìø…Íì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 Íùbͺþ,Ê^Ã1Í Í¦ ÍÑë*Ò"Ò"ÐÃ1Í ÍÑåEÍH áDÍH Íùͺþ,ÊÃÃ1Í Í¦ : þ Â1ÍÑ: þ Âú"í > 2 Í 4 ÿÃ@Ã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ëû!ˆ^*Ë"Öë*Í «ûÿ:…þÂ|:‰þ Â|ËÃÑÍã ÃÑÍ Ê|*ÒåÍÑ"ÒÍ Í© !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ÍñÉ  *éÿ{•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 ()*+,-/ABCDEHLMDBDIDSDWEIIFINORSPACIADCADDADIANAANDANICMACÿMCCMPCPIDAADADDCRDCXENDEQUHLTINRINXJMPLDALXIMODMOVMVINOPNOTORAORGORIOUTPOPPSWRALRARRETRLCRRCRSTSBBSBISETSHLSHRSTASTCSUBSUIXORXRAXRICALLENDMLDAXLHLDPCHLPUSHSHLDSPHLSTAXXCHGXTHLENDIFMACROTITLE  PF FPóû!Û (Έ€Æ  2æÿ/?¸þ'  vÃ:P@<° ö!ÓÁÉ Ç˜Þ PP27�Ö (¨îÍ *éÅ"ùëã  NZZ NCC POPEP M ÿ¯x�»ÊÄ_åÕÅåBH!œÑ‰¾#¶ ¦ÁÑá{ÉÁÑáÚÀKÈCȯ<É:‰ÂþJÈÄþCÈÀþRÉ:ˆþÒ þÊòþ !‹6 s!оoÂ#¾È Âø ɯ<É:ˆO=_ÕþÒZ!µF!©V#fjQ̓ÂEÑ!º^#Vo&)~#FÉÑÍÇÀÅÍÛxÁÀ·°Gy¿Éѯ<ÉàÃÃnÃ8në!’~þڢͅ6~44O!� s#rÉõ!‘~þ Ú¿6Í…^4ñ!mw!wpÉ!’~·ÂÞÍ…!É55N!� N#fiÉÍÏëÍÏÉo&)^#fk ¨ ­ÿÃ,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$°  #~þ?  Âx·ÉDIR ERA TYPESAVEREN USER6¢!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:«æ_ÍÉ Í ÍÉ!­p+qÍ.*¬ë ÍÉ ÍÉ ÍÉ!¯q*¯&ëÍÉ!±p+q*°ëÍ2®É!³p+q*²ëÍ2®É!µp+q*´ëÍ2®ÉÍ2®É!·p+q*¶ëÍÉ!¹p+q*¸ëÍÉ!»p+q*ºëÍÉ!½p+q*¼ëÍ2®É!¿p+q*¾ë {»›á=ÂqÍfÍ^!ðå~2Í>Í`á~2ݯ2í\!Í!ÍB!~·Ê>þ Ê>#Ã0�~·ÊO#ÃCx2€Í˜ÍÕÍÍ1«Í)ͽÂÍfà zͧÆBAD LOADCOMÍfÍ^:ÎÖ !ð¶Â  $$$ SUB$ÿ6¢Ã™¥«±ë"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ÃÓ Í# <@P1ÛyÛ{ÛÿæÂ0Ó!B0}Óy|ÓzÛxæÊ0ÛyæþÒ0Û{ÜÿæÂ0Â0À€€ Ã\ÃX ©RIGHT (C) 1979, DIGITAL RESEARCH %ÿ_ÃÅÍŒÁÉ> Í’> Ã’> Ã’Å͘á~·È#åÍŒáì Ã_ÃÍ2î<ÉÃï2íÍÃËÃÃÃÃÃÃÍÃßÃÍ·ÉÃôÍÃùÃôÃÃÃÿ Ã͇‡‡‡!ï¶2É:ï2ÉþaØþ{Ðæ_É:«·Ê–:ï·>Ľ¬ÍËÊ–:»=2̬Íù–!€€ÍB!º6#5¬ÍÚÊ–:ï·Ä½!ÿͬÍÂʧÍÝÂÍÝÍ ÍÍ)!F#x·Êº~Í0wëw!"ˆÉ Í·ÈÍ·ÉÀÃ!«~·È6¯Í½¬Íï:ïý(!¾ÂÏ#ÂýÉ͘*Š~þ Ê"·Ê"åÍŒá#Ã>?͌͘ÍÝ·Èþ Ú Èþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃO…oÐ$É>!ÍÍYåå¯2ð*ˆëÍOë"Šëá·Ê‰Þ@Gþ:Êz�:ïwÖx2ðpÍ0ʹ#þ*©6?ëw˜Í0ÊÀï#6 ¹þ.ÂéÍ0Êé#þ*ÂÙ6?ÃÛwÂÈÍ0ÊðÃß#6 Âé#6Âòë"ˆá  !  Ó 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ÍŒ ÃÒ 3Mÿ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·>gn ÓyxÓzÃÓ‰xÓŠÍYæÊÍ?þÊ2·Â8ÍLÚ2æþÂ8ÉÍLÃ8 Âò>É:f·ÂIÛyÉÛ‰É:f·ÂVÛ{ÉÛ‹É:f·ÂcÛxÉۈɀ€U @�$ã@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$ +:Ôà Åõ:Å/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 \‰Ö’ 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( ¨ ¨ ¨  5� „ B„I�B�‚@!  ! !! ‰D *€15D715E0AB :100A700015E615EC15F515FE1504160A1611162CBB :100A80000E17161D1626162D16411647164D160E54 :100A9000155316040C040C9B1 @�$ã@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$ ÁÿÃÒ ¯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<ºA‘ÿ!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 FÿILE PRESENT ON DISK$ê!õÅÕåYÍáÑÁñÉþ Èþ Èþ,Èþ ÈþÊ<É Í ÍÉÍ þ Ê*Í$ÊA!‹6 # ÂT!‹wÍ Í$Êr# Ê*Ã`:‹þ ÉÖ0þ ØÆùþØÃ*ÍAÊ*!‹ ~þ ʰÍxkb))))_ëyþ‘BK{ÉÍ…Â*É!6Ã6Ã!"Éæ8Éæ0Éë*‹ë{¾Âç#z¾È+++ ÂÝ ÉÕ‹¾Â#ÂõPDT COMA#$%&'PFMT COM&()*TRKA0 COM+SEEK COM,TERMINALCOM-STEP COM. DUMP $$$ åCPM60 COMZ?FGHIJåHELLOSYSCOMZ@BCDELåSYSMOV AÓM0;<=åASSIGN AÓMZAMNOPQåWRHELLO AÓMR2åDISKUTILBÁKQSTUVWXYZ[\]agiåICPM AÓM KåACHELLO COMjåWRHELLO HÅX^#*v ~æý±w–͘Í<Ê®‰͆Í¥þÊ®þAÊYþBÊYþCÊ^þDÊYþXÊUþZÊ®ÍãÃ)¯Ãc>Ãc>Ãc2x !¤¥6í°>Í�˜Í˜Í)!–:x w!¸5˜Í˜Íî–ÍrÍ<Ê[¼͆Í¥þÊ[þ1Êþ2Êþ3Ê þ4Ê þ5Êþ6Êþ7Ê þ8Ê[ÍãÃʯÃ>Ã>Ã>Ã2y !~6í°>Í�rÍrÍ!–:y w!’5rÍrÍ!q~æïwæÊî͆Íw·ÊkÃÍ¥þ ÈþÈþ ÈþNÈþYÊ‘ÍãÃw¯É÷͆Í¥þÊþYʶþNÊ»þ ʶÍãÙÃÀÃÀ*v q:qæïö@2qÃÍ: ·ÂúÇ͆Í¥þÊþYÊÕþNÊÍãÃâ%͆ ÍL ÍL> 2œ ><2� >P2ž :œ OÍL!œ 4~þÂ,6 !ž 5 ÍL ÍL!� 5 ÍLÃÅÿÍ·Ê_æ_þÊÍ: ·ÊMÁÍB ÉS͆*v #~2} 2� !–"… "‡ >2 ÍJ  ^#V2| O>-‘Ú¥Ã��2ƒ 2‰ x2� 2‹ :} OÅÍV Íb Ín Íz Á·Ât*… €"… !ƒ 4:| ¾Âç6*� #"� ·:‰ 2ƒ *‹ "� *‡ "… –*h~þàë ëÃ:} O~#}æÂ ÂÍV Íb Ín :} þÂ;Í‚ ·Ât*… €"… !ƒ 4:| ¾Â`6*� #"� !} 5Â&:qæ·ö2qà ͆á ͆à ÍÉ_ÍÉ~·Èå_Íá#ÕÿÿÍ·Â¥ÿÿͷʲþaÚËþ{ÒËæ_OþÊÖþ ÒØ> ( Å͆ÁyÉ, ͆ÉÅÍ¥þÊþ Ê7 þ0Ú Hååþéÿþ:Ú ÍãÃîÖ0‡O‡‡�ÁOÅÍ¥þÊþ Ê7 þ0Ú, þ:Ú2 Íãà Ö0Á�ÉÁyÉ**é* éíK *éíK� *éíKƒ *éíK… *!é*$é*'éE EEE"E4EEEhEÐ4hŽÐE EEE"E4EEEhEÐ4hŽÐê õ  ! , 7 A K U _ 9600 Baud $7200 Baud w$4800 Baud $3600 Baud $2400 Baud $1800 Baud $1200 Baud $600 Baud $300 Baud $150 Baud $110 Baud $75 Baud $ͳá=k™ EE"E4$Sorry, this version of the program will not work properly with the current version of the operating system Program aborting $ $?$ ÿAssign System Parameters - Version 1.07 $ Your options are: 1 - Select the line printer 2 - Select parameters for serial port A 3 - Select parameters for serial port B 4 - Save the current parameters 5 - Disable the beeper 6 - Test Áthe currently assigned line printer 7 - End this program Which function would you like to perform? $Please select a baud rate for serial port . Valid baud rates are: A = 9600 B =¤1*>Ã¾Ê ~þÂ}"v 1!q~æßw*v ~!öæÀOþÊO! þ€ÊO!*:qö 2q"kyþÀʦ*v "z F#N!Ò º þ$Êã¸Âx¹Ê~##Ãh^#Vë"m*z ~#ë!TþÊ£!yþÊ£! "o1 ͆Æ͆!LÍ•*kë͆:qæ Âç!QÍ•H͆*më͆!VÍ•*oë͆k ͆Í¥þ2ÊHþ3Ê[þ5Ê“þ1Ê[þ4Êkþ6ÊÕþ7Ê#þÊ#þÊ#ÍãÃí:qOæ@Ê?yæÂ?î͆Íw·ÊkŸ ͆Ã>A2Ó :qö2qÍnÃ[>B2Ó :qö2qÍvÃ[>Ã{> 2� *v "z ¨ ͆Í¥þÊZþUÊßþAÚ¢þMÚ¨ÍãËO:qö@2qyÖA‡‡_!Š ë*z wG#wO:� ·ÂÙxÓyÓÃßxÓyÓÁ ͆Í¥þÊZþYÊþNÊþUÊZÍãÃå*z 6#6ÃP*z 6$# ͆Í¥þÊZþLÊ9þHÊFÍãÃ!*z #6$ÃP*z #6:qæïö@2qÉA͆Í¥þÊþAÊ~þBÊŒþCÊšÍãÃa>A2Ó >ã>B2Ó >€Ã£>Àã!q/¦°ö@w*v ~æ?±w!~æ?±w!q~öwæÂÚå~æÄná~æÄv!’ “ 6í°:æÀþÊÿ!þ€Êÿ)*v "� *͆Íw·ÂÚ˜͆Í¥þÊÚþ ÊÚþ ÊÚþ1ÊJþ2ÊPþ3ÊVþ4Ê\þ5ÊmÍãÃ![Ã_!_Ã_!cÃ_!g’ ~·Ê�#Ãb’ !h ÅÕ^#V#å͆ÍêáÑÁ·Ê� Âu*� ë!’ í°*� ~·ÊÚÍ: ·ÂÈÇ͆Í¥þÊ[þYÊ›þNÊÚÍãð*� ~·ÊÚO#åÍB áÃË:æÀþÀ W͆Í¥þÊþYÊüÃÃ3j 7200 C = 4800 D = 3600 E = 2400 F = 1800 G = 1200 H = 600 I = 300 J = 150 K = 110 L = 75 U = Use the current speed Which speed would you like to use? $ Would you like to check for a busy signal on this port ( Y, N, or U)?$ Is the port busy on a High or Low signal ( H or L )? $Which port do you want to use as the system line printer? Your options are: A = Serial port A B = Serial port B C = Parallel port B (Centronics) Which is your choice? $Would you like to disable the beeper ( Y or N )? $ Would you like to send special control characters to the line printer, i.e. condensed print - (Y or N)? $ What type of printer opertion would you like to perform? Your options are: 1 - Normal printing for a Centronics 737 or 739 2 - Condensed printing for a Centronics 737 or 739 3 - Normal printing for an Epson MX80 4 - Condensed printing for an Epson MX80 5 - Others Which is your choice? $You may enter up to seven characters. Please enteãà š ªD D D D { x x U 1*."Ú:·Ê5!× å í°Þ ͱ>€Ó42Íó>Ó>ÕÓ>Ó!}Ó|íGí^ûÍØÍ÷ ͱ͹þ1ʱþ2Ê¿þ3ÊÇþ4ÊÏþ5ÊÝþ6Êëþ7Êùþ8Êþ9ʧþʧþʧÍûÃgÍ Í±óÃ>ŽÙ !ìà >\ à >� à >sh !ìà >Ž* !ìà >ߢ !Hà >@Ý Ã >`Ý Ã 2ÒæÊÕÅëͱÑÍ6Ñͱ!"ß>2á>ÿ2±:Òæ@†:ÒæÊW:Ü2ÞÍÍ;ÊWXÍTÊ7:ÒæÊw:Ü2Þ!q,Í�Êwÿ ÍTÊW:ÒæÊ—:Ý2ÞÍÍ;Ê—…ÍTÊw:ÒæÊ·:Ý2Þ!q,ÍåÊ·áÍTÊw:Òæ Ê×:Ý2Þ!qÍ�Ê×*ÍTÊw:ÒæÊ !qÝ!q,íK»Ý~®²W#Ý# x±Âíz·Ê 2ÃÍ=ÊwÍJÂ7â ͱ:ÒæÊ*:Ü2ÞÍ,:Ý2ÞÍ,Ãaͱ͹þÊòþYÈÍûÃ9!à:®wÀ!ß4~!·¾É¯*»#ë*ØÚ„"ØÚ„ë*Úëz¼Â}{½Ú„>ÿ·É¯É:Ü2Þ!q,"Ø ÅÍ]Á”:·:·ʪ‡‘Ú¸WxÆ'Gzê�xÊÀÆ'Í-"!>2ð:ðÍ-"êͱ/Í6!q,"Ø*Þ"æ*à"è!"î*ØÍ�Â*î#"îÍJÊ Í]Ê Ãøÿ ÍTÊøêͱ¶Í6!q,"Ø*æ"Þ*è"à:Òæ ÊXÍÍ;ÊXXÍTÊ>*ØÍåÊjµÍTÊ>!qÍ�Ê|ÿ ÍTÊ>!qÝ*ØíK»Ý~®²W#Ý# x±ÂŠz·Êª2ÃÍ=Ê>ÍJÍ]*î+"î|µÂ>:ðÆ'2ð!·:ß¾ÂËÍ Í±Ã!))h^#V#íS²^#V#ë´í°É¯2Ü<2ÝÉãr the ASCII value of the character in decimal. If you want to erase a previously entered string, enter 0 for the first character Enter the 1st character (nn, or 00 to end) $ Enter the 2nd character (nn, or 00 to end) $ Enter the 3rd character (nn, or 00 to end) $ Enter the 4th character (nn, or 00 to end) $ Enter the 5th character (nn, or 00 to end) $ Enter the 6th character (nn, or 00 to end) $ Enter the 7th character (nn, or 00 to end) $The assigned line printer is not ready at this time. Would you like to try again (Y or N)? $Printer test in progress. Push ESC key to stop.$Some parallel line printers do not advance the paper to the top of form when a form feed character is transmitted to it. If you are using such a printer and you would like the operating system to generate a top of form, please push the 'Y' key. $Please wait while the parameters are written to disk$What kind of printer are you using: A) Diablo daisy wheel printer or equivalent B) Qume daisy wheel printer C) ·!ÄÅ~Í ͦ~Í$ͦ> ͦÁ#ÂÉæÆ�'Î@'ÉõÍ$gñÍ oþ0À. Éͱ!Ã~Í ͦ~Í$ͦÃ_æ€Ê_ͱÍ1ͱ͹þÊaþ1Èþ3Ê€þ2Ê‘ÍûÃe·ÉÿÿÍû·ÈþÀÁ ͱó1>€Ó42ÍûÃa_åÍûáÉ ÍûÉÿÿͷ¹ÿÿÍ·ÊÆþaÚßþ{Òßæ_Oþ Òç> Ï ÅͱÁyÉÞ Í±×Ó Í±É:ßG:àO:´_!ñ:µp#q#r#s#= ô>€6#=Â$É:Þ2¥ÍVͤÃG!¢6#6#:¸ö w#:àO‡‡G:Þ€w#:´w#:µw#:½w#>åw*¾"Œ!ñ"’>i2ŠÍVÃÀ>2áÍ6È*’¯2ÖÍ Ê�2Öͽ*’ë*À#:µ2áÍAÈ*’¯2ÖÍ+Ê2ÖÍÑ*’ë*À#:µ2×!¢6#6 #:¸°w#:àO‡‡G:Þ€Vw’2Ó#:ßw:±–2Õ#~q‘2Ô#:áw#:´w#:µw#:ºw#:¶wÍV!Ó~#¶#¶ÂÀ:Ì·Â¶ÃÆÍ­ÂDÍ‚ó! í³><2Ë!£N#Í !Ã6û~·Êæë! í³ë#~æÀÊG:¢=2¢ÊDO~æÂ=#~æÂDyþÊ1#~æÂ4yæÂÆÍ‚ÂDÃÀÍŸͤÂDÃÀ!×5ÂÆ>ÿ·õ!Í~æßw>2ÌñÉ>È2Î!Í~ö wÓ4æÀó>¥Ó>�Ó~öwÓ4!Ì6û~·Â|É:±O:¢æ>”>ÿ�òš>þPÚ¸>NøÃÁ:¹·:ßʸ‡W·Ê¤!­6#q#p#:¥w#ró>d2Ë!®N#Í !Ã6û~·Êå#~æÐÊú!­5ÂÑ·É> 2Ì:5�ÿNEC Spinwriter model 5510 or 5520 D) NEC Spinwriter model 5515 or 5525 X) Any other type of printer Z) Bypass this section Your choice please? $STR INLsing: A) DiabWhat kind of printer are you using: 1) Any non-precision printÿer 2) Diablo 16xx, 17xx series printers 3) Diablo 630 printers 4) Qume Sprint 5 or Sprint 9 5) NEC Spinwriter 5510 or 5520 6) NEC Spinwriter 5515, 5525, 7715 or 7725 7) C.Itoh Starwriter 8) Bypass this section Your choice please? $PRINTER V : Serial Port A.$PRINTER : Serial Port B.$PRINTER : Parallel Port C. $BAUD RATE: $  No Printer Busy Signal. $  Printer Busy High Signal. $ À Printer Busy Low Signal. $Current System Parameter Assignments - $The assigned System Parameters have not been saved. Would you like to save them (Y or N)? $="H=#H=$H     SB INL Printer Busy H7Ó̷ÂÿÉÛ(‡Ò ú Ú ~Ó)#  ÉåÍ& áà !Äå>6#=Â, á6€Û(‡Ò6 ðÛ)w#Ã6 õ>ƒÓ >‹Ó >£Ó ñûíMõå¯2ËÛ(ö 2ÃÛ(‡Òb úo >Ó)Í& óáñûíMûíMõå!Ì~·Ê† 5!Ë~·ÊŸ 5Ÿ !Í~æïÓ4~Ó4!Í~æ0ÊÇ æ ÂÇ *Î+"Î|µÂÇ :Íæï2ÍÓ4>ÓóáñûíM$ $?$Double$Eagle Single Sided Floppy Disk Utility Program - Version 1.05$ What operation would you like to perform? Your options are: 1) Copy from the top disk drive to the bottom disk drive. 2) Perform a read only test on the diskette in the top disk drive. 3) Perform a read only test on the diskette in the bottom disk drive. 4) Format the diskette in the bottom disk drive. 5) Copy the top disk drive to the bottom disk drive with formatting. 6) Format the diskette in the top disk drive. 7) Perform a single disk drive copy. 8) Perform a single disk drive copy with formatting. 9) End this program. Your choice please? $Format and read test on bottom disk drive is in progress$Format and read test on top disk drive is in progress$Copy and verify from the top disk drivCíÿe Copy ---- This is pass of passes. $Please insert the source diskette (the diskette you want to copy from) into the top disk drive Are you ready to continue (Y or N)? $Remove the diskette in the top disk drive and insert the destination dis¡kette (the diskette you want to copy to) into the top disk drive. Are you ready to continue (Y or N)? $zlÿP@OÿvÿƒÃÃÃÃÃà ),Ï),€�ŠÏ‹«‡ady t0Lto format in the top disk drive. Are you ready to continue (Y or N)? $   ** * WARNING  ** * @* * ANY INFORMATION NOW STORED ON THE DISKETTE * * %IN THE TOP DISK DRIVE WILL BE WRITTEN  * * $OVER AND DESTROYED BY THIS OPERATION * * * ** $---- Single Disk Drivбÿe to the bottom disk drive is in progress$Format, copy and verify operation is in progress$Read only test of top disk drive is in progress$Read only test of bottom disk drive is in progress$**** OPERATION ABORTED **** $ Operation was successful $ÿ Read Error on top disk drive. Status = $ Read Error on bottom disk drive. Status = $ Format Error on top disk drive. Status = $ Format Error on bottom disk drive. Status = $ Write error on top disk drive. Status = $ Write error on bottom disk òdrive. Status = $ Data compare error. Status = $ What action would you like to take? Your options are: 1) Retry the operation that resulted in an error 2) Stop this operation and restart the program Your choice please? $   ** * WARNING  ** * n* * ANY INFORMATION NOW STORED ON THE DISKETTE * * IN THE BOTTOM DISK DRIVE WILL BE WRITTEN * * OVER AND DESTROYED BY THIS sà š ªD D D D { x x U 1*."Ú:·Ê5!× å í°Þ ͱ>€Ó42Íó>Ó>ÕÓ>Ó!}Ó|íGí^ûÍØÍ÷ ͱ͹þ1ʱþ2Ê¿þ3ÊÇþ4ÊÏþ5ÊÝþ6Êëþ7Êùþ8Êþ9ʧþʧþʧÍûÃgÍ Í±óÃ>ŽÙ !ìà >\ à >� à >sh !ìà >Ž* !ìà >ߢ !Hà >@Ý Ã >`Ý Ã 2ÒæÊÕÅëͱÑÍ6Ñͱ!"ß>2á>ÿ2±:Òæ@†:ÒæÊW:Ü2ÞÍÍ;ÊWXÍTÊ7:ÒæÊw:Ü2Þ!q,Í�Êwÿ ÍTÊW:ÒæÊ—:Ý2ÞÍÍ;Ê—…ÍTÊw:ÒæÊ·:Ý2Þ!q,ÍåÊ·áÍTÊw:Òæ Ê×:Ý2Þ!qÍ�Ê×*ÍTÊw:ÒæÊ !qÝ!q,íK»Ý~®²W#Ý# x±Âíz·Ê 2ÃÍ=ÊwÍJÂ7â ͱ:ÒæÊ*:Ü2ÞÍ,:Ý2ÞÍ,Ãaͱ͹þÊòþYÈÍûÃ9!à:®wÀ!ß4~!·¾É¯*»#ë*ØÚ„"ØÚ„ë*Úëz¼Â}{½Ú„>ÿ·É¯É:Ü2Þ!q,"Ø ÅÍ]Á”:·:·ʪ‡‘Ú¸WxÆ'Gzê�xÊÀÆ'Í-"!>2ð:ðÍ-"êͱ/Í6!q,"Ø*Þ"æ*à"è!"î*ØÍ�Â*î#"îÍJÊ Í]Ê Ãøÿ ÍTÊøêͱ¶Í6!q,"Ø*æ"Þ*è"à:Òæ ÊXÍÍ;ÊXXÍTÊ>*ØÍåÊjµÍTÊ>!qÍ�Ê|ÿ ÍTÊ>!qÝ*ØíK»Ý~®²W#Ý# x±ÂŠz·Êª2ÃÍ=Ê>ÍJÍ]*î+"î|µÂ>:ðÆ'2ð!·:ß¾ÂËÍ Í±Ã!))h^#V#íS²^#V#ë´í°É¯2Ü<2ÝÉ á OPERATION * * * **ÿ $Please put the source diskette (the diskette you want to copy from) into the top disk drive. Then put the backup diskette (the diskette you want to copy to) in the bottom disk drive B. Are you ready to continue ( Y or N )? $Please put the diskettÃe you want to format in the bottom disk drive. Are you ready to continue (Y or N)? $Please put the diskette you want to format in the top disk drive. Are you ready to continue (Y or N)? $   ** * WARNING  ** * @* * ANY INFORMATION NOW STORED ON THE DISKETTE * * %IN THE TOP DISK DRIVE WILL BE WRITTEN  * * $OVER AND DESTROYED BY THIS OPERATION * * * ** $---- Single Disk DrivJ·!ÄÅ~Í ͦ~Í$ͦ> ͦÁ#ÂÉæÆ�'Î@'ÉõÍ$gñÍ oþ0À. Éͱ!Ã~Í ͦ~Í$ͦÃ_æ€Ê_ͱÍ1ͱ͹þÊaþ1Èþ3Ê€þ2Ê‘ÍûÃe·ÉÿÿÍû·ÈþÀÁ ͱó1>€Ó42ÍûÃa_åÍûáÉ ÍûÉÿÿͷ¹ÿÿÍ·ÊÆþaÚßþ{Òßæ_Oþ Òç> Ï ÅͱÁyÉÞ Í±×Ó Í±É:ßG:àO:´_!ñ:µp#q#r#s#= ô>€6#=Â$É:Þ2¥ÍVͤÃG!¢6#6#:¸ö w#:àO‡‡G:Þ€w#:´w#:µw#:½w#>åw*¾"Œ!ñ"’>i2ŠÍVÃÀ>2áÍ6È*’¯2ÖÍ Ê�2Öͽ*’ë*À#:µ2áÍAÈ*’¯2ÖÍ+Ê2ÖÍÑ*’ë*À#:µ2×!¢6#6 #:¸°w#:àO‡‡G:Þ€Vw’2Ó#:ßw:±–2Õ#~q‘2Ô#:áw#:´w#:µw#:ºw#:¶wÍV!Ó~#¶#¶ÂÀ:Ì·Â¶ÃÆÍ­ÂDÍ‚ó! í³><2Ë!£N#Í !Ã6û~·Êæë! í³ë#~æÀÊG:¢=2¢ÊDO~æÂ=#~æÂDyþÊ1#~æÂ4yæÂÆÍ‚ÂDÃÀÍŸͤÂDÃÀ!×5ÂÆ>ÿ·õ!Í~æßw>2ÌñÉ>È2Î!Í~ö wÓ4æÀó>¥Ó>�Ó~öwÓ4!Ì6û~·Â|É:±O:¢æ>”>ÿ�òš>þPÚ¸>NøÃÁ:¹·:ßʸ‡W·Ê¤!­6#q#p#:¥w#ró>d2Ë!®N#Í !Ã6û~·Êå#~æÐÊú!­5ÂÑ·É> 2Ì: á OPERATION * * * **ÿ $Please put the source diskette (the diskette you want to copy from) into the top disk drive. Then put the backup diskette (the diskette you want to copy to) in the bottom disk drive B. Are you ready to continue ( Y or N )? $Please put the diskettÃe you want to format in the bottom disk drive. Are you ready to continue (Y or N)? $Please put the diskette you want to format in the top disk drive. Are you ready to continue (Y or N)? $   ** * WARNING  ** * @* * ANY INFORMATION NOW STORED ON THE DISKETTE * * %IN THE TOP DISK DRIVE WILL BE WRITTEN  * * $OVER AND DESTROYED BY THIS OPERATION * * * ** $---- Single Disk Driv“Ì·ÂÿÉÛ(‡Ò ú Ú ~Ó)#  ÉåÍ& áà !Äå>6#=Â, á6€Û(‡Ò6 ðÛ)w#Ã6 õ>ƒÓ >‹Ó >£Ó ñûíMõå¯2ËÛ(ö 2ÃÛ(‡Òb úo >Ó)Í& óáñûíMûíMõå!Ì~·Ê† 5!Ë~·ÊŸ 5Ÿ !Í~æïÓ4~Ó4!Í~æ0ÊÇ æ ÂÇ *Î+"Î|µÂÇ :Íæï2ÍÓ4>ÓóáñûíM$ $?$Double$Eagle Single Sided Floppy Disk Utility Program - Version 1.05$ What operation would you like to perform? Your options are: 1) Copy from the top disk drive to the bottom disk drive. 2) Perform a read only test on the diskette in the top disk drive. 3) Perform a read only test on the diskette in the bottom disk drive. 4) Format the diskette in the bottom disk drive. 5) Copy the top disk drive to the bottom disk drive with formatting. 6) Format the diskette in the top disk drive. 7) Perform a single disk drive copy. 8) Perform a single disk drive copy with formatting. 9) End this program. Your choice please? $Format and read test on bottom disk drive is in progress$Format and read test on top disk drive is in progress$Copy and verify from the top disk drivCíÿe Copy ---- This is pass of passes. $Please insert the source diskette (the diskette you want to copy from) into the top disk drive Are you ready to continue (Y or N)? $Remove the diskette in the top disk drive and insert the destination dis¡kette (the diskette you want to copy to) into the top disk drive. Are you ready to continue (Y or N)? $zlÿP@OÿvÿƒÃÃÃÃÃà ),Ï),€�ŠÏ‹«‡ady t0Lto format in the top disk drive. Are you ready to continue (Y or N)? $   ** * WARNING  ** * @* * ANY INFORMATION NOW STORED ON THE DISKETTE * * %IN THE TOP DISK DRIVE WILL BE WRITTEN  * * $OVER AND DESTROYED BY THIS OPERATION * * * ** $---- Single Disk Drivбÿe to the bottom disk drive is in progress$Format, copy and verify operation is in progress$Read only test of top disk drive is in progress$Read only test of bottom disk drive is in progress$**** OPERATION ABORTED **** $ Operation was successful $ÿ Read Error on top disk drive. Status = $ Read Error on bottom disk drive. Status = $ Format Error on top disk drive. Status = $ Format Error on bottom disk drive. Status = $ Write error on top disk drive. Status = $ Write error on bottom disk òdrive. Status = $ Data compare error. Status = $ What action would you like to take? Your options are: 1) Retry the operation that resulted in an error 2) Stop this operation and restart the program Your choice please? $   ** * WARNING  ** * n* * ANY INFORMATION NOW STORED ON THE DISKETTE * * IN THE BOTTOM DISK DRIVE WILL BE WRITTEN * * OVER AND DESTROYED BY THIS ÑUŸ; **'* ; ; MOVE CPM WHERE IT BELONGS ; ;**ÿ ; ; SET CONSTANTS FOR OUR CPM SIZE ; MSIZE EQU 60 ;MEMORY SIZE WE ARE USING BIAS EQU (MSIZE-20)*1024 BASE EQU 3400H ;BASE ADDRESS CCP EQU BASE+BIAS ;BASE OF CCP BDOS EQU CCP+806H ;BASE OF BDOS BIOS EQU CCP+1600H ;BASE OF BIOS LGNTH EQU 10*102ÿ4 ;LENGTH ; ; THE FOLLOWING INFORMATION IS USED BY THE BOOTSTRAP ; ORG BASE-80H ;THIS IS WERE IT WILL GO DW 10 ;TOTAL SECTORS TO LOAD DW BASE-80H ;ADDRESS TO LOAD DW MOVIT ;PLACE TO GO AT END OF BOOT DW 0 ;EXTRA DW 0,0 ; ; ; THE BÿOOTSTRAP SHOULD COME HERE WHEN IT IS COMPLETE. ; RELOCATE THE OPERATING SYSTEM, OVERLAYING THE ; BOOTSTRAP, THEN ENTER AT THE BOOT ENTRY IN THE BIOS ; MOVIT: DI ;DISABLE JUST IN CASE LXI D,CCP ;POINT TO OUR FINAL RESTING PLACE LXI B,LGNTH ;THIS cIS HOW LONG IT IS LXI H,BASE ;THIS IS WHERE IT IS NOW ; MOV1: MOV A,M ;GET A BYTE STAX D ;PUTO±  * ;**ÿ* ; WRALL EQU 0 ;WRITE TO ALLOCATED WRDIR EQU 1 ;WRITE TO DIRECTORY WRUAL EQU 2 ;WRITE TO UNALLOCATED ; ; PORT ADDRESSES FOR THE EAGLE II ; CTC0 EQU 00H ;REAL TIME CLOCK CTC1 EQU 01H ;BAUD RATE CLOCK FOR SIO PORT A CTC2 EQU 02H ;SIO PORT B CLOCKÿ AND MAG TAPE CLOCK CTC3 EQU 03H ;INTERRUPT DRIVER FOR DISK CONTROLLER ; PO1AD EQU 08H ;PIO #1 PORTS PO1AS EQU 0AH PO1BD EQU 09H PO1BS EQU 0BH ; PO2AD EQU 10H ;PIO #2 PORTS PO2AS EQU 12H PO2BD EQU 11H PO2BS EQU 13H ; SIOAD EQU 18H ;SIO PORTS ÿ SIOAS EQU 19H SIOBD EQU 1AH SIOBS EQU 1BH ; SIORB EQU 01H ;RECEIVE CHARACTER AVAILABLE SIOTB EQU 04H ;TRANSMIT CHARACTER AVAILABLE SIOCS EQU 20H ;CLEAR TO SEND ; DMAC EQU 20H ;DMA CONTROLLER DSKS EQU 28H ;DISK STATUS PORT DSKD EQU 29H ;DISK DATœA PORT ; SYSCN EQU 34H ;SYSTEM CONTROL LATCH ; ; SPECIAL BIT VALUES FOR THE SYSCN LATCH ; MTRST EQU 01H ;MAG TAPE FIFO RESET MTRON EQU 10H ;MOTOR ON mÙÉ IT WHERE IT BELONGS INX D ;BUMP THE POINTERS INX H ; DCX B ;COUNT DOWN MOV A,B ; ORA C ;ARE WE DONE? JNZ MOV1 ;CONTINUE UNTIL ALL OF IT HAS BEEN MOVED ; JMP BIOS ;GO TO THE BOOT ENTRY ÿZE-20)*1024 BASE EQU 3400H ;BASE ADDRESS CCP EQU BASE+BIAS ;BASE OF CCP BDOS EQU CCP+806H ;BASE OF BDOS BIOS EQU CCP+1600H ;BASE OF BIOS LGNTH EQU 10*1024 ;LENGTH ; ; THE FOLLOWING INFORMATION IS USED BY THE BOOTSTRAP ; ORG BASE-80H ;THIS IS ÿWERE IT WILL GO DW 10 ;TOTAL SECTORS TO LOAD DW BASE-80H ;ADDRESS TO LOAD DW MOVIT ;PLACE TO GO AT END OF BOOT DW 0 ;EXTRA DW 0,0 ; ; ; THE BOOTSTRAP SHOULD COME HERE WHEN IT IS COMPLETE. ; RELOCATE THE OPERATING SYSTEM, OVERLAYING THEÿ ; BOOTSTRAP, THEN ENTER AT THE BOOT ENTRY IN THE BIOS ; MOVIT: DI ;DISABLE JUST IN CASE LXI D,CCP ;POINT TO OUR FINAL RESTING PLACE LXI B,LGNTH ;THIS IS HOW LONG IT IS LXI H,BASE ;THIS IS WHERE IT IS NOW ; MOV1: MOV A,M ;GET A BYTE STAX D ;PUTYéHÃtà ÃÃPCOPYRIGHT (C) 1978, 1979, 1980 COMPILER SYSTEMS INC ƒáãx±Èw #Ã^        É!�qÛÉ!•q{ÓÉ`ié!´N#F+͸!¶ÍÕ!´q#xæwÉ6 ÍÉÍÕÍÉÍÕÉ—yOxGÈÃÉ—~�O#~ˆG+É ÿ¯»È~#Ãô¯»Èq#Ãÿþ0Øþ:?ØæÉæɇ‡‡‡É:à=2àÉ:à<2àЯ/2ñɯ2àÉ!áÃýÃK +T]~õÍ ÊfG+~õͰñÃQñÍÉÃsõ+T]Í GÊŒ#~õͰñÃwñͰÉ!ï~æðÀ!âÍBÍÈÓÅÕÍÜÑÁz/g{/o# |µ>È|>ØÉ! ï ¾ÀÈ+ ÃË!à ¶>È Wæ€!ß¾Âþzæ#¾?ÂøÿÍÂ>È!ß®>ØÉ Æ'à ÆP'>Ð Î'Ã!ð~·È¯w+6>+6=Â'Ã$`i~Gæ€2ßxæ2àé#Ãò:ßW:à·Ê_²!éÃòɯŽ' È#Ãb7>™Î–ë†'wë È#Ãnë7>™Î–ë†'ëw È#Ã�>€Ã˜¯2i¯2è:àW·Â³Í1!ß:i®wÉ ·ÈæºÅÒÍ`ÍIÁÍ1!ßÃÙ`áÍò!`:i®w:`Gæ€2hxæW!à–qþ`Ò1r·Êõ!é¯Íqñ=ÂüèÍ :hG:߸Â8é!aÍaÐ!é>ÍqÍ$èÍ ÉaÍÂÊ3é!aÚTÍmÓ:h2ßÍÓ–"L:!éÍòA!:Íò!AÍH2H!âÍý!â"I>2K*L~#"L·ÊåõæÊË:*IëõÍaÒÆë4ñ=³ñÍ·ÊåA*IëõÍañ=ÂÓ!K5È*I#"Iá:à·È ·Ê3WæÂ=; ;**3* ; ; BIOS FOR THE EAGLE FLOPPY DISK SYSTEM ; ;**ÿ ; VER EQU 2 ;VERSION NUMBER ; TRUE EQU 0FFFFH ;VALUE FOR A TRUE FALSE EQU NOT TRUE ; ; DOUBL EQU FALSE ;THIS IS A SINGLE SIDED VERSION DFVAL EQU DOUBL AND 1 ;DISK FLAG VALUE ; ; ; ; "BIAS" IS ADDRESS OFFSET FROM 3400H FOR MEMORY SYSTEMS ;ÿ OVER 20K ; ; MSIZE EQU 60 ; BIAS EQU ( MSIZE - 20 ) * 1024 CCP EQU 3400H+BIAS ;BASE OF CCP BDOS EQU CCP+806H ;BASE OF BDOS BIOS EQU CCP+1600H ;BASE OF BIOS ; ; SPECIAL ADDRESS FOR CP/M ; BDISK EQU 0004H ;CURRENT BOOT DISK IOBYTE EQU 0003H ;I¨/O BYTE ; ; RETRY EQU 14 ;RETRY COUNT CR EQU 0DH ;CARRIAGE RETURN LF EQU 0AH ;LINE FEED FF EQU 0CH ;FORM FEED CS EQU 1AH ;CLEAR SCREEN ESC EQU 1BH ;ESCAPE ; ;*** ;*  * ;* BDOS CONSTANTS ON ENTRY TO WRITE * ;* XVï:€!ß®w#zæWÖ@†ú1Ê3w`i#ÍjÍ“èÍ !âÍýÃzþ@Ú3Ã- ¥ WæÊ-_!à~·È“_ÆAwÊ3òo{Ú3Ã-zæ€+®w>2`ió¯Íò¯2û2è¯?Gè!óÒ¤ÍmÃ’Ía!û~€w:=ÊÜ2ÍK:ïæðÂÒ!èÍKÃ�¯!ôÍqÃ�è!ûÍòÍ“èÍ Ãÿů2ßÍ8>@2àá>ª2 É:·È=2~#ɯ±È : 2 Ò:xÍɰÉ{2Íï¯2Íþ ÊMþ+Êdþ-Âg>€2ßÍþ0ÊdÃrÍþ.Ê—þEÊ¥þeÊ¥ÍÚÞGÍ&:·Ì$Ão:ÚÞ/2ÃoÍþ Ê¥GÖ-_ʺÆx½ÍÍÚÞGÍÍÚ×Ox‡‡€‡�G{·ÂÞ�G!ï~·Âñ+ Âã2àÉ!àx†wÚ-Í“èÍÿ Ã!ï"gÍ|µÊ3|Ò)}/o|/g#>€2ß]Õã^#V#ã}“o|šgúBÃ5å*gëÍ&Í$ë"gá{þÂ-áÓ'èd !} ~5*~ ~Òz+"~ Ôæö0É:} ·É·ÈG>0Í”x=È*p w#ÍÚÂ:{ ·ÊÂ:n ·ÂÂ:m ÖÊ¿ÖÊ¿ÖÂÂ6,#"p É:ß·> È>-É!ï"~ >2} ÉÍÐ`i"p :i ·Âg:à·Â 2m 2l 2n 2k 2o ÿ> Í”ÃÕ > 2} ÅéÍ ÍÁ!i ~2k ¯wÍÆÍ”:àÖ@2o !n þ ÚOþÿÊO6ÿ>2m > 2l ÃÕ 6!o p·òZ¯2m Þ/<2l ÃÕ ‡ ÍI:àO·Â•2m 2o Í8:| ·Ê†=2u :r ·> Ä”Ãs :r ·Ê¢ÍÆÍ”:n ·!o 6 yÖ@GʺÒË/%Í”¯2{ 2r 2s ïffff?hfffffA>533333ƒ>‰ˆˆˆˆˆ=i„i„<‰0‡€$;†9"sU':†9"sU'9BT8!%8hx˜Vg‡ 7"hƒC�60wYEG4‚17Gv@�`v'b1AA™’PX#C`QI"U&Àe(Hƒ”BCT—bDvÂRWaGv"Cˆ%T$a'Ù™H•‰%Csrb‰†Â"(H„dA1AA˜XS&YA1AIy&cypÀ—t dYd?Sh&&iy¾v&3u�F=™’8»4S�Y•592x˜XTÀ(E133@…P5™ÀD™ˆ @“cbe¿@–(u?€–�B¿p6W>W"f(@E—3˜Sx†ÅÍI¸Í—ŽÍIÁÍ1¸Í’ŽÃNõÅ›ÍIÁÅÃ~õÅÍ—›ÍôÁ!øÿ DMñ=ÂvŽ ·Äô†×x±Ê¯ ·Ê¯¯É<É ë†ÚöåÅOÅ*ÅCøÿëÍ4|µÂÓÁÅÍ…"üÁqëÍþÍþÍéÍÜÍé*üë*ÃCs#r#6ÉLSÍaáãF#~ÂÉÅ OÅÍ…ë*ÃCs#rÁá~# ÂÉ*ë*¾C {•_zœW*­Cs#r#¯w#w#w*­Cëw#w#s#rÉ!­C^#Vë^#Vz³Ê###~·ÂX#{•_zœW{‘_z˜WÐ+++++ÃUMOÃax±!ÈÍRå"&6 #x±Â’ã+6{ÖzÞÑÚÈ+++Fr+Nsëq#p#s#r#6ë`i##s#r*&É^#VëN#Fx±È###~·Àëp+që`is#rÉÅÍúR*Òaá+6++å++ÍÌá^#Vz³È!~·ëÊÌÉ*tC~2„C*tC#"tCÍ]:¡EÚ4 ÍùÍ] Íù:vCþÂFù:vCÖÖŸõ:wCÖTÖŸÁH¡õ:xCÖRÖŸÁH¡Ò³!½C6Í] ,ÍùÍ}"¹CÍ]*tC~þ,¡ÍåÍ] ÍùÍ}"»Cð>¹CÍUBµÂ°ÍÕöÍÕÍ]>2!„C¾ÒÇ!„C62:„C2ACBCÅ*„CM*tCëÍ\!AC"tCÉ:„C=2„CþÊø*tC#"tCÉ!†Cs+q!C‡ Í1à :| 2m GyÖ@�w:r ë!s ¶ë>Â0 ÍÆ>Ê0 4!m 5<2u :m !l †G:n ·ÂI :o Ox‘GxþÒs ðW?< =ÂV zÜzÔ !ð~·Ês ÍÃg:u ·Â¡ :s !r ¶ÂÕ ÍÆÊÕ :m ·Âð:| þÚð>-Í”ÃÕ G:t OWþ*ʵ þ$µ $ :s !r ¶ÂÆ ÍÆÊÆ OÊÑ zÍ”ÃÆ yÍ”:i ·Êö :| ·Êÿ þÂö :r ·Âö :ß·Âÿ :m ·>0Ì”Í‚Ê !m ~·Ê 5ÍiÍ”Ãÿ :m ͇¯2{ :i Ò2 !j ~Ò• 6>.Í”:n ·ÂV :o G:l ¸ÒN G¯ÃO �2l x͇Í‚Ên !l ~·Ên 5ÍiÍ”ÃV :l ͇:i ·Â• *p +~þ0Š 6 Ã~ þ.Ê� #6 "p :n ·ÊÒ >EÍ”!o :i ·Â¬ 5~· ò· /<-GyÍ”x/ Ö ò¿ Æ GyÍ”xö0Í”:s ·Êã ÍÆÍ”¯2s 2r :i ·Âø > Í”:k 2i *p É 2€ 2� `i#"‚ "„ G¯OW~þ# ÿÃ< þ/Ê: þ&Ê: þ!Ê: þ\Â< #Â< NUÍaÿ# y2z z2y !� ~·Â\ :€ w*‚ ¯Ãb 5*„ ~#"„ 2† ɯ2j :z ·Âz NNÍa`i"p :† þ#Ê þ$Ÿ ÍI þ$Ê >$Í”:†  þ*± ÍI þ*Ê >*Ö þ.ÂÉ ÍI þ#>.– ¯2| Ã1 þ-Âò ÍI þ#Êê þ.>-– >2r ¯2| OÃ1 >2r à þ\ÌI ·Ä”ÍI  2t à > 2t  ÍI þ#Ê þ,Â& >ÿ2{ à !| qþ.ÂB >2j ÍI þ#ÂB Ã6 !l qþ^ÂU ÍI ÿÃH !n qþ-Âf >ÿ2s ÍI *p DMÃÜ*w #"w ~É:v ·È=2v >ÉÍw > Ün Ô:y ·Âœ SNÍa`i"w x±Ê§ 2v bk"p :† þ/ÊÐ þ!Êß þ&Êé þ\ÌI ·Ä”ÍI ò ̓ ÍI ·Ê– þ/ÂР̓ ÍI *p ÉÍw Òâ Ín Í”Ãé `i"p :†�vC6:„C2ƒC*tC"�C:„CÖÆÿŸ*tCõ:…C–ÆÿŸÁH¡õ:†C–ÆÿŸÁH¡Ò\:vCþ ÒV*tCNͺõ:vC<2vCO!vC ÁHqÍåÃÉ:„CÖÆÿŸ*tCõ~Ö ÖŸÁH¡Ò|ÍåÃ]É!"ˆC!‡C6:vC!‡C¾ÚÑ*‡C&vC >9–Ÿõ~Ö0ŸÁH±Ò¯*ˆCÉ!ˆCÍÜAå*‡C&vC >¦_á"ˆC!‡C4ˆ*ˆCÉ:ƒC2„C*�C"tCÉ*ÃC##~ÉÍâÒù*ÃCN#FÍéÉ!‹Cp+q>ŠCÍUBµÂ>É*ŠC~É!ŒCq:ŒCæ_ÖAO>‘Ÿ/É!�Cq:�CÖ0O> ‘Ÿ/É!�Cp+q*ŽC~2�C:�C=2�CþÿÊd*ŽC#"ŽC*ŽCNͺ*ŽCwÃCÉÍýÒu*ÃC"“CÃ*ÃC^#Vë"“CÍ Ò�*ÅC"‘CÙ*ÅC^#Vë"‘C*‘C~2–C!•C6:–C!•C¾Úê*‘Cå*“CÁ ¾ÒÂÍð>É*‘Cå*“C~á¾ÒÕÍð>É*‘C#"‘C*“C#"“C!•C4Â¥Íð>ÉÍéÍÜÍéÉÍýõÍ#ÁH±ÒPMÍa*ÃC>ÿÍ`BÒ>É*ÃC~2ŸCÍÜ*ÃC^#Vë"šCDMÍ£õ*ÅC^#Vë"˜CDMÍ£ÁH±ÒO>É*˜C~2�C2œC! C6:œC! C¾Ú‡* C&ë*˜C~þ\€! C4!�C5! C4Â^*šC~2žC!ŸC¾Ò˜>É:ŸC=2—C:�C!—C†O:žC¹ÚÄ:—C<2—COÍÇÒÁ:—CÉß>É!¡Cq!£C6+6:œC!¢C¾Ú&:žC!¡C¾Òê>É:£C/*¢C&ë*˜Cõ~Ö\ÖŸÁH¡Ò!£C6ÃÍ)Ò!¡C4Ã>É!¢C4ÂÓ>É*¢C&ë*˜C~2¤C:£CÚw:¤Cþ?ÂI>É:¤Cþ#Â`*¡C&ë*šCNÍ&É:¤Cþ!Âw*¡C&ë*šCNÍÉ!£C6*¡C&ë*šC:¤C–ÖŸÉ!¥Cq!"ªC:¥CþÂÐÍ*õÍ ÁH±Ò´SSÍa*ÅC^#Vë"ªC*ÃCå*ÅCãN#Fáq#pÍÜÍ#ÒÝSSÍa*ÅCN#FÍú!ªCÍ`BŸõ*ÅCN#FÍ£ÁH±ÒÍÜ­Ëi þ#Êe þ/Êe þ!Êe þ&Êe þ$Â* ÍI þ$Êe >$Í”Ãþ þ*Â< ÍI þ*Êe >*Ã$ þ-ÂS ÍI þ#Êe þ.Êe >-Ã$ þ\ÌI ·Êe Í”ÍI à *p Éÿ`i~æþAÒœ 6ÉG>M�Øð¦wÉÍÐ!:à·ÈÖAø<2ô )T])åÍiáæ_:ô =2ô ÂÌ :ß·È}/o|/g#É ·ÈÅWÒzæQSÍ‘ÁÅÀÍ1ÁÅÍôŽÍIÁÅÍ1!à·~GÆ wïÍ!¦…o|Îg~x°Üô>õ†ÍIÀÍô–ÍIŽÍ1†ÍN–Í—ñ=ÂFÁÃI Wæ€2ÈzæÅÍ1ÁÅÍ� ÁÅ þDÒTøÍ’†!¸Íò¯2Ž>]ÍiŽÍIÁÅÍ1ͺ åŽÍ1á|·Âø}É!é·Êí–ÚàõÅåÍôáÁñÃ̆#ÿÃÐ:È·Ä“ÁÃI:È·ÁÊ-Ã3 2½Å>AeÍ1ÁÅÍôÍF–ÅÍI¯2ކ!•ÍòÁÍôµ>ÍižÍI›Í1†!uÍò�>ÍižÍN–Íô†ÍI:½ÖAO>Òy/GÍ ÀÍ—mÍô†Í—ÁÃI†ÅÍI¸Í1ÁÃN æþ:ØÅW æ€õzÍ1¾Í’ñ/õ:ßÒµÆÅÍ—:ßÁÒÜÍ—ñ/ÃàÍ’ñÒë!ß~w:àþ:Ú†ÍIÆÍNŽÅÍIÁÍôö>ÍiÁÃIÅÍ1ÆÍ—ÁÅÍIÁäÅÍ1¯!ß~>w2…:àþAÒQ†ÍIŽÍIÃfÍFŽÍI>Í—†ÍIŽÅÍ1ÁÍô>6Íi:…!ß®wÁÃI[07HWgt�‡’—A1A@P\d€€�5bEHyed"BA1P�YTA�E(('@ @’™™™™™™@™™™™™™I@hfç_Íé*ÃC>w#6Í1É*ÃCå*ÅCN#FÍú*ªCÍ4Bë!¬CsáÍcBÒL:¥CþÂE:¬C<*ÃCwÃL*ÃC:¬Cw:¥CþÂa*ÅC^#Vë"¨CÃŽ:¥CþÂ�*ÅC:¬CÍšAå*ÃC~ÑÍ>B"¨CÃŽ*ÅCªCÍŽA+"¨C*ÃC>ÅCåÍUBãNÑÍ4"¦C>Í4BµÂ·ÍéDMÍ…"¦C*¦CåÍéDM*¨CëÍ\*ÃCå*¦CÁ wÍÜÍé*ÃCå*¦Cëás#rÍ1É*ÃCN#F`iÉèd @PÁ™™™™™™E�v2(<PdxÿÿPRINTER BUSY?$ IN LINE $ERROR $WARNING $IMPROPER INPUT - REENTER $AT LINE $1ACÍ;Í5%1ACÍ¥%ÍÕ"ûv!(Eq*(E&ëÍ É!)Eq:EÒð!E6*ÁC|ÒðE‡Í !*E6EŠÍ Òð:*EÒØ) Í !*E6ô½Í  Í ý*)E&ëÍ É*ÁC|õ:E/ÁH¡ÒE‹Í !E6É!+Eq:EÒ/*+EM͘Ã:*+E&ëÍ É Í ÍÉ!-Ep+q*,E~þ$Êf*,ENÍ*,E#",EÃLÉ!/Ep+q*.E)))É!1Ep+q!2E6>!2E¾ÚÊ!3E60*2E&ó) 0EÍJBÚ¼*2E&ó) 0EÍJBë+s#r!3E4Ã�*3EMÍ!2E4ÂÉ!8Er+s+q+ÑÁp+qÕ*7E+"7EÿÿÍ7BµÊü*4E:6Ew*4E#"4EÃÚÉ!:Ep+q*9E|OÍ*9E}OÍ>!DÍ`BÒ,7ÍF*DDMÍtÍ;ÉÍ;!"EÉ>!EÍ`BÒHÍ0É:EÒ] ͈ ͈Ã`Í0É!Ep+q:E2?E!E6Í;HÍF*=EDMÍý:?E2EÉ!@Eq*@EMÍÒÏ:@Eæ_É:@EÉÉ*ÇC#"ÇCÉ*ÅC"ÃCë>Í>B"ÅCÉ*ÃC"ÅC"ÃCÉ!BEp+q¸"E* EDM*EëÍ?*ÃCDMÍIÍhÃ4%:EþÂ/%ÍÜÍF#Ã4%*ÃC6É Í "ÁCÍ7<Ín%*ÍCåÍC­CÍHBëÍËÍ(Œ4Å>‡‡_ÍËÉ*¯C"ÑC"ÇC*±C"ÏC+"D*³C"ÍC*µC"ÉC "­C"ËC*ÉC"ÅC"ÃCÉ*ÇC~ÒÚ%Íì*ÇC#å*ÃCÁ w*ÇC>?¦*ÃC#w*ÇC~ÒÔ%ÍÓÍÔÃ4*ÇCN!3 ^#Vëé*ÃCDMÍ1ÍÜ*ÃCDMÍ—*ÃCDMÍIÍhÃ4*ÅCDMÍ1*ÃCDMÍ’ÍÜ*ÃCDMÍIÍhÃ4*ÃCDMÍ1ÍÜ*ÃCDMÍô*ÃCDMÍIÍhÃ4ÍS4Ã4ÍéÒl&*ÅCëÍi*ÅC6AÃÆ&ÍóÒ‡&ÍÒ„&*ÅCë ÍiÃÆ&ÍÒ›&ENÍ‘*ÅC>¦w*ÅCDMÍ*ÅCDMÍ1*ÃCDMÍô*ÅCDMÍI*ÅCDMÍtÍhÍÜÃ4*ÃCå*ÅCÑåÍŽAëás#rÍÜÃ4*ÅCå*ÃCÑÍJBë+s#rÍÜÃ4Í4*ÅCå*ÃC^#VáN#FåÍéAëá+s#rÍÜ:yEÒ*'*ÃCÍ B#ë+s#rÃ4Í4ÍýÒI'ZDÍ‘*ÅCÿq#pÃ`'*ÅCå*ÃCN#Fá^#VåÍ¿Aá+s#rÍÜ:yEÒv'*ÃCÍ B#ë+s#rÃ4ÍýÒŒ'*ÅC>w#6ÃÜ'Í#ÒŸ'*ÅC>w#6ÃÜ'*ÅC^#Vë"|E!"zE*ÃCëzEÍHBÚÜ'*ÅC^#Vå*|EÍçAëá+s#r*zE"zEÒ¯'ÍÜÃ4*ÃCN#F+q#pÃ4*ÃCÍ Bë+s#rÃ4*ÅCå*ÃCÑͲAë+s#rÍÜÃ4*ÅCå*ÃCÑÍBë+s#rÍÜÃ4ÍÓÃ4͉ Í ÍÜÃ4ÉÍÜÃ4ÍìÍ­Ã4ͺÃ4͉ ÍÜÍÜÃ4ͯOÍ?Ã4ÍeOÍ?Ã4*ÅCå*ÃC^#VáN#FͧOÍ?Ã4*ÃCÍþAë+s#rÃ4*ÇC#"ÇCÍì*ÇCå*ÃCãN#Fáq#p*ÇC#"ÇCÃ4*ÅCDMÍ *ÅC^#Vë"~E*ÃCå*~EãN#Fáq#pÍÜÍÜÃ4Í  ÍÜÍÜÃ4ÍìÍÔ*ÃCå*ÇCëá‘ËCAEÍHBŸÉ!DEp+q*CEÑCÍJBÚ3*CEN#FÍgë*ÍCå*CEÁq#pÉ!GEr+s+q*ÇC#~þœ*FE^#Vë"FEËCÍXBÚi*FEDMÍgë*ÍC"FE*FE^#Vë"HEDMÍúÒœ*HE~!EE¾Úœ*HE+"HE~þœ*FE^#VëÉ!É*ÃCDM*ÅCëÍiÉ*ÅCDM*ÃCëÍiÉ*ÃCDMJEÍiÍ­*ÅCëJEÍiÉ*ÃCDMÍ *ÃCN#F*ÃCëÍiÉ*ÃC~ÖÖŸÉ*ÅC~ÖÖŸÉ*ÃC>Í`BµÖŸÉ*ÅC>Í`BµÖŸÉ*ÃC~É*ÅC~É*ÃC#~É*ÅC#~É!REq*ÃC##:REwÉ!SEqÍÔ*ÇC:SE¦þÊ^*ÃCÿÿq#pÃg*ÃC>w#6É:ñÒ„FOÍ‘*ÃCë Íi!ñ6É*ÃCDMÍ1ÍÒ�ûÍ’ãûÍ—ͺ å*ÃCÁq#pÉ*ÃCDMÍ1ÍÜ*ÃCDMÍÕÉ*­C"TE!"VE*TE>Í`BµÊ *TE ~þÂ*TEëTEÍHBë>Í>Bë*VE"VE*TE^#Vë"TEÃÏ*VEÉ*ÃC~2aEÍÜ!"XEÍÔ*ÃC"[E*ÅC"]E!ZE6*ÇC~!ZE¾Úc*ÃCN#Få*XEëÍéAëá+s#rë"XEÍÜ!ZE4Â5*[E"ÃC*]E"ÅC*XEë*aE&ÍçAå*ÇC~<‡_áDMÍ…"[E"_E*ÇCå*_EÁ w#6!ZE6*ÇC~!ZE¾ÚÐ*_E##"_E*ÃCå*_EãN#Fáq#pÍÜ!ZE4¤Íì*ÃCå*[Eëás#rÉ*ÃC~2fEÍÜ*ÃC^#Vë"bE>Í4BµÂ EAÍaÍÜ*ÃC^#Vë"gE*bEN#F!eEq+6:eE!dE¾ÚN ÍÜÍ€ *ÃCå*bE^#VáN#FÍéAå*gEÁ "gE!dE4 ̀ *bEgEÍJBÚc BSÍa*bE##å*gEë*fE&ÍçAÁ å*ÃCÁq#pÉ*bE##"bEÉ*ÅCDMÍ *ÅC^#V*ÃCDMÍiÉ*ÅCDMÍ Í1*ÅC^#Vë"iEå*ÃCÑÍJBµÊ6!*iEN#FÍúÒí *iEN#F `i"kE~=wþÂí *iEN#FÍé*ÃCN#FÍúÒ%!*ÃCN#FÐs#r*ÇCn&"ÇCÍ1Ã4*ÃCN#FÍ£Ò+)ÍéÍÜÃU)*ÅCN#FÍ£ÒD)ͺÍéÍÜÃU)*ÅCå*ÃC^#VáN#FͱÃ4ÍÔ*ÇC#:ÿC<2ÿCOå!ÓC Áq#p*ÇC^#Vë"ÇCÃ4*ÿC&ÓC) ^#Vë"ÇC:ÿC=2ÿCÒ£)GRÍaÃ4ÍÃ4ÍàÃ4Í5#Ú¼)ÍF#Íå$Ã4Ív!DMÍ"ÍÜÃ4Ͱ!DMÍ":i Úâ)ÍéÍÜÃ4*ÃCN#FͲ7ÍÜ*ÃCN#FÍè7ÍÜÍV"Ã4*ÃCN#FͲ7ÍÜÍV"Ã4Í5#Ò(*ÍìÍF#Ã+*ÍIÃ4*ÅCå*ÃC^áNÍ�ÍÜÍÜÃ4!E6Íå$Ã4!E6Íz$Ã4Ív!DMÍÎ9ÍÜÃ4Ͱ!DMͬ9:i Úz*ÍéÍÜÃ4!€E6:€E<2€EO!Œ4 >Í`BµÊ *Ã…*ͬ5*ÅCN#F*€E&ëÍ6*ÃCN#F͘7ÍéÍÜÍÜÃ4ÍìÍÔ*ÇCN#F*ÃCëÍiÍÔÃ4*ÏC+"DÃ4*ÃC>€®wÃ4Í5#Ú+ÍF#Íz$Ã4*ÃC^#Vë"�EDMÍú/õ>�EÍUBµÆÿŸÁH¡Ò3+*�EDMÍ Ã4Ã4Í0Ã4:i ÚŸ+!ƒE6ÿ:ƒE<2ƒEO! ^#Vë"„Eë!EÍcBÒn+ÃK+ÿÿ„EÍMBµÂ…+*ƒEMÍß+ E„EÍHBÒ—+Í0ß+*„EDMÍâ!Ã4Í^!Ã4ÍýÒµ+Í^!ý+*ÇC##"ÇCÍÜÃ4ÍJ!Ã4Í7!Ã4Í…Ã4!E6*ÇC"EÍâ"Ã4!E6Íz$Ã4!E6Íå$Ã4Íß8Ã4Íc"Í:Ã4*ÃCN#FÍ|:ÍÜÃ4*ÃC>¦wÃ4*ÃCDMÍ� Ã4ÍšÍì*´DMÍ ÍN*ÃCDMÍIÃ4ÍÒc,*ÃCÿÿq#pÃ,ÍéÒv,*ÃC>w#6Ã,*ÃC>w#6Ã4*ÃCDMͤÃ4*ÃCDMÍÃ4*ÃCDMÍ)Ã4ÍìÍ­*ÃCDMÍ*ÅCDMͤÍS4Ã4*ÃCDMÍõ Ã4*ÃC EåÍJBŸÑõ>ÍUBµÖŸÁH±Òí,LTÍa*ÃCëEÍHBÒý,Í:*ÃCp `i"kE~þÿÂ!!*kE#DMÍ *ÃCN#F `i"kE*kE4*ÅCN#FÅ*ÃCëÍ\É*ÃCÇCÍŽA+ë+s#rÍÜÉÍ ÒW!Í7!ÃZ!ÍÜÍÜÉÍÔ*ÇC^#Vë"ÇCÉÍìDÍ É*ÃCDMÍ1:i Òš!DÍi ë!DÍ7Bë!Dsì!DÍÜë!DÍ7Bë!Ds!DÉ:i ÒÙ!*ÃCN#FDÍ� ë!DÍ7Bë!DsÍé!DÉÃá!*ÃC^#VëÉÉ!nEp+qmEEÍHBÒ" Í*E#"EÃè!É!pEp+q*oEDMÍ£Ò"É*oE~2qE!rE6:qE!rE¾ÚU"*oE#"oE*oENÍ*E#"E EÍXBÒN"Í0!rE4Â#"É*ÃC"ð4*ÅC"ò4É!sEq:i Ò¡"DÍù ë!DÍ7Bë!Ds:sEÒ�"DÍù9Ö"DÍ"ÍéÍÜ!i 6É!tE6:tE<2tEO>¹ÚÔ"*tE&Œ4) >Í`BµÊÑ"*tEMÍ|:ç"ÉÍ¢"Í:ÍüÍ É*ÁC|Ú# Í Ú#*ýC#"ýCÃê"D Í :DÖÖŸõ:DÖÆÿŸÁH¡Ò##ÍÕ"!D"Eå*D&Á 6 É*D&D EÍXBŸÉÍÜ*E"ÇCÍ;QÍFÃ}É*D#"Dë!ÉCÍcBÚs#DOÍa*D~É*E#"E~É:Eþ¨#EÍMBÒ¡#ͦ8*ED wÉͦ8ÉÃÀ#:Eþ´#Íx#É:EþÂÀ#Í\#ÉÉ!"EÍ�#2uEþ ÂÕ#ÃÇ#:EþÂæ#!D" EÃý#:EþÂ÷#*E" EÃý#*D" E:uEþ"Ê $!vE6,Ã'$!vE6":EþÊ!$* E#" EÍ�#2uE!vE:uE–ÆÿŸ+õ~Ö ÆÿŸÁH¡ÒP$*E#"EÍ�#2uEÃ'$:vEþ"Âv$Í�#2uEÖ,ÆÿŸõ:uEÖ ÆÿŸÁH¡Òv$ÃX$ÍìÉÍÁ#>EÍUBµÂ•$*ÃC>w#6Ãß$*EM*ÅCëÍ4"wE>Í4BµÂ¸$*E#DMÍ…"wE*wE#å*EDM* EëÍ\*wEå*Eëás*ÃCå*wEëás#rÍ1ÉÍÁ#>!EÍ`BÒ%>ÿ!EÍ`BÒ%!ÿn6N#FÍâ!ÍÜÃ4*ÃCDMÍtÃ4ÍìÍÃ"†EÿÍ©ADMÍ *†E|Ò:-Í—*ÃCDMÍIÃ4*ÁC|Òr-#E›Í *'E&Í.Bå*&E&Á >ÍB"´Ãx-*ýC"´Ã4ÍéõÍÁH±Ò’-NLÍ‘Ú-*ÃCDMÍÃ4Íì*ÃCå*Eëás#rÃ4*ÃCN͈*ÃCw#6Ã4*ÃC^#Vë"ˆEDMÍ£ÒÙ-CAÍa*ˆE#~2ŠEÍé*ÃC:ŠEw#6Ã4Í…"‹E*‹E6*ÃCå*‹E#Á w*ÃCå*‹Eëás#rÍ1Ã4ÍŽÃ4*ÃCN#FÍú2�EÍé*�E&å*ÃCÁq#pÃ4ÍŽÃ4ÍŽÃ4:i 2�E!i 6Ív!ë!ŽEs!D5#~þ ƒ.:D=2DDÍ É.DÍ Í1:�E2i Ã4*ÃCN#FÅ*ÃCN#FÍú_ÁÍ?Íé*ÃCDMÍIÃ4*ÃCå*ÅC^#VáN#FÍ1;"�EÍéÍÜÍé*ÃCå*�Eëás#rÃ4*ÃCN#FÍx;"’EÍé*ÃCå*’Eëás#rÃ4*ÃC^#Vë"”EN*ÃCq#pÃ4Íú2–EÍéÍÜÍé*ÃC:–Ew#6Ã4Í…Ã4*ÅC~=w*ÃCõ~=ÁH¹ÒU/IOÍaÍÜ*ÃC~‡†Í4BµÂ™0!ÿÿ" E!E6Ã4Íl!ÍIÃ4*ÃCN#FÍ—ÍÜÃ4*ÅCN#Fͬ5ÍÜÍÜ*ÅCå*ÃC^#VáN#FÍ6ÍÜÍÜ*ÃCN#FÍL72™EÍéÍÜ:™EÚû0Ã}Ã4*ÅžWÊaõÍ”5*ç4ë*â4{•_zœW{z<õÍ05·Â:9Íž5ñ=Â9Í”5ñÒ!7!æ4>ý¦wÉÁÁ*î4|µWDÊa#"ÇC*ð4"ÃC*ò4"ÅCÍ6Ã}Å*ä4|µÊu9*ô4|µREÊa+"ô4Í;7Ò„9Íò8*â4"ç4:æ4æ‚þ€Â¢9ÍL8*à4! N#F p+q*ç4Áq!æ4>¶wÉ:i Úù9Å,!ö4~6Ô]9"Í]9ÁÍù9"Ã]9:i Úù9Å,!ö4~6Ô]9Á ·È`i#åõ~þ OÄ]9ñá=Âè9Éx±È ·È`i#åõNÍ]9ñá=Â:É*ô4}Ö_|ÞWÚ-:z³Ê-:Õ Í]9ÑÃ: Í]9 Í]9Ã6*î4|µFEÊa#"ÇC*ð4"ÃC*ò4"ÅC*à4ë!,ë! w#w*ç4+"ç4!æ4~æýwÍ6Ã}ÍJ6åŒ4 ¯^w#Vwz³Â•:UCÃaë"à4Í”5Íñ5Íò8Í”5Í5Í=5á¶4 ¯w#wÉÍJ6Œ4å ¯^w#Vwz³UDÌaë"à4Í”5Í5á¶4 ¯w#wÃ=5*}‘o|˜gyx·È"â4õÕëÍ85$Í…"à4ÁÍ£Ú(;Íb6Í 5þÿOSÌaÍ(5·Â(;Íž5ñ=õÂ;ñ*à4DMÃéÅÕͬ5Á*à4å"à4Íb6Íø4<RFÂaá"à4ÁÍb6Íø4<Êq;Íø4Í=5!ÿÿÉÍ=5!ÉÅͬ5Á>ÿ2÷4Íb6*à4 6?ÅÍø4þÿʾ;æ`Æ*â4O ~ÆæOá å×;Í=5á¯2÷4ÉNO INTERMEDIATE LANGUAGE FILE $CRUN VER 2.38 $COPYRIGHT 1981 COMPILER SYSTEMS INC. $ REQUIRES CP/M V2 OR MP/M$!E"ÝE!\"ßE:ÀCÚ’<Íæ;ÍFö;ÍF Í "ÁC}þÂs<<ÍFÍ !ñ6:¡EÒ’<.å*ßEë¢Eá -Š<Í@!ëE"µEͼ@O>¹Ò®<VIÍaÍ ͼ@2»Eþ*Ê=!ºE6ͼ@õ:ºE<2ºEO!»E ÁHqyþ$ÊÜ<þ<*ºEë»EÍ?:ñÒó<CNÍa*µEDMÍI*µÄ£ÿCN#Fͬ5ÍÜÍÜ*ÅCå*ÃC^#VáN#FÍ6ÍÜÍÜ*ÃCN#FÍ„7ÍéÍÜÃ4*ÅC^#Vë"šE*ÃCå*šEÁ wÍÜÍÜÃ4Dͺ8Íl!Ã4*ÃC^#Vë"œE>Í4BµÊ 1*œE~2žE!ŸE6:žE!ŸE¾Ú�1*ŸE&ë*œEN͈!ŸE4Â~1Ã¥1?͈ ͈ÍÜÃ4*ÃC^#Vë"E>Í4BµÂÉ1!ÿÿ"EÍÜÃ4*ÃCN#FÍ *ÃCDMÍIÃ4*ÃCDMÍ Ã4*ÃCDMÍ� *ÃCDMÍ1Íÿº å*ÃCÁq#pÃ4*ÃCN#FÍ£Ú72ÍâÚ.2*ÃCN#FÍ Í1*ÃCN#FÍ6Ã4XIÍaÃ4Í 2 E Í * E&ëÍ Ã4Íì*ÃCå*tCëás#rÍ1Ã4Íì Í Ò–2*ÃCÿÿq#pß2*ÃC>w#6Ã4ÍìÍ *ÃCw#6Ã4Í¢"!ÀC6!\"à4*ÃCN#FÍb6€Í *ÉC"ÅC"ÃCÍüÍ7ͼ@*³EwþÊ>*³E#"³EÃÿ=Ãæ?:·Eþ€Ú,>ͪ@Ía@ͪ@Ãæ?:·EþÂ_>ͪ@*µE"ÛE*ÝE6ͪ@ͼ@þÊ\>ͪ@*ÛE~<*ÛEwÃE>Ãæ?:·Eþ~Âc?ͼ@þ~Ê`?:ÀCÒ]?:·EÒS?*¸E"áE*áE^#Vë"áE­CÍXBÒS?>áEÍUBë+s#r*áE ~<*áE wþ¿>*áE 6:·E=2·EþÊS?*áEå*·E&Á "áE*áE^#Vë"åE*áE##"áE!"çEåEçEÍHBÚS?*áE^#Vë"éE­CÍXBÒ=?>éEÍUBë+s#r*éE ~<*éE wþÂ=?*éE 6*áE###"áE*çE"çEÒõ>*¸E"¸EÃg>Ãæ?ͪ@:·EÖ6ÖŸõ:·EÖ7ÖŸÁH±õ:·EÖ`ÖŸÁH±õ:·EÖÖŸÁH±Ò±?ÍÇ@*µE¯CÍŽA+å*µEÁq#pÍ×@Ãæ?:·Eþ.ÂØ?ÍÇ@*µE^#Vë)))ëEå*µEÁq#pÍ×@Ãæ?:·EþÂæ?ÍÇ@Í×@Ãï=:ÀCÒ@Í*A*¸Eå¸E­CÍHBëÍËÉ *ßE 6I*ßE 6N*ßE 6T*ßE 6 *ßE 6*ßEëÍ þÿÂV@:ÀCÒM@ Í ÍÇ;ÍFÍ É*ßEëÍ É*ÝE#"ÝEë!EÍ7BÚ©@!D"ÝEDÍ ÍW@þÊ�@*ÝE6é@…DÍ ÍW@þÊ©@€*ÝE 6É*ÝEå*µEÁ w*µE#"µEÉÍa@*ÝE~2·EÉͼ@*µE#wͼ@*µEwÉ*µE##"µEÉͼ@O`iÍ.Båͼ@_áÉMNÍaÍ jà4!4À#Ã5Ãø4Ãø4Ãø4Íø4<ÀECÃa!Íø4Ãÿ4"Íø4Ãÿ4Ã*à4DMÃé!"‡5>2‹5·zW{_!‹55Ê}5*‡5Òe5 |g}o"‡5*‰5|g}o"‰5ÃP5*‰5ë*‡5DMÉ*à4.ÉÍŒ5"â4ëÃ85€*â4"â4ëÃ85x±Êº5>@‘>˜ÒÀ5NBÍa`iÅ>)=ÂÅ5. åDMÍ…"à4Íñ5Á *à4 "ç4"é4á}2ë4Í6Ô5ä4*à4$Ãò$*à4 DM!ä4ÃòÅÕÍñ5ÁÍJ6Œ4~#¶FDÂaë*à4ër+sá"ä4:ë4=Â6|µÊ6!æ4~ö@wÃ6É`i"ì4)x±Ê\6>‘>˜ÐFNÃax±Ê7Å*à4#  Íýáë*à4G·Ê7þÚ“6þ:”6æw#>2Á6ÍÂ6ÈÚª6 œ6Èþ.¨6¯2Á6ÍÂ6È È÷6:Á6Úé6þ.ÂÖ6# ÂÏ67Éþ*Âï6:÷4>*Òï6>ÿ2Á66?#·Éþ`Úû6þ{Òû6æ_þ:Ê7þ*Ê7þ?Ê7w#·É:÷4Ú7FIÃa>?à 7*â4ë*é4}“O|šGëx±Èr# Ã27*é4ë*ç4#{•zœØ"ç4ÉÍb6Í 5þÿÊ]7Í!7>ÿÉÍ=5*ì4)åŒ4¯w#wá¶4^#Vz³EOÊaë#"ÇC¯ÉÍb6Í5Í5þÿÂ!7EMÃaÍb6Í 5<ÊŠ7Ã!7ÕÍJ6¶4 Ñs#rÉÍJ6Œ4 ^#Vz³UFÌaë"à4*ì4)¶4 ^#Vë"î4Íñ5*ä4"ô4!ö46ÿÔ5!æ4~æûö€wÚ8:ë4BR=ÂaURÍax±Â8RIÍa *ä4ëÍE5*â4{æ…o>Œg+å{z_yWÕÍò8Ñ!*à4 s#r!æ4~æýwá"ç4Ã6Í”5*à4ë!,ë! ~#~!æ4>¶w:ë42�8Í(5·Â!7!�85ÈÍž5Ão8Í;7Ò”8Íò8ÍŒ5"ç4ÍL8:æ4ÔL8*ç4~þÊ::ÉÍ‚8þ À*ä4|µÊ¦8ERÍa`i6åÅÍ‚8Ááþ ÊÕ8Vʾ8rþ8 þ Â65Ã6*ä4|µÊ6Í‚8þ Âç8Ã6!æ4~Їwæ‚þRõt¡ÿÉ*­C"áE>áEÍUBµÊ)A*áE 6*áE^#Vë"áEÃAÉ*­C"áE*áE^#Vë"ãE>Í4BµÊ‹A*ãE>Í`BµÂPAÉ*áE ~ÖÖŸ*ãE õ~ÖÖŸÁH¡Ò~A*áE DMÍéÈA*áE^#Vë"áEÃ0AÉi`N#F�oˆgÉë_ë…oŒgÉ_{¥oz¤gÉi`N#F¡o gÉDM!>õ)ë—)ë�‘o|˜gÒÖA ñ=ÂÄAÉ^#Vë)å))Á ÉDM!>)ë)ëÒöA =ÂîAÉYPë—z–_>#žWëÉi`ë/o/gÉ_{µoz´gÉi`N#F±o°gÉ^#Vë) Â.BÉ_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉi`N#F©o¨gÉ}€!ÿÿ#ÿ}–4:ÓLÒ*pOMͦ:ÎLÒ!*pO&ëÍÉ!rOp+q*qO~þ$ÊB*qONÍ×*qO#"qOÃ(É!tOp+q!vO6+6>!uO¾Ú¶!wO60*uO&9) sOÍLLÚ‘*uO&9) sOÍLLë+s#r!vO6#4Ã_:uOÖŸ/!vO¶Òª*wOMÍ×ï Í×!uO4ÂQÉ:ÎL2xO:ÓL2yO!ÓL6!ÎL6 Í×®LÍ"BOÍ"¡Í"*@O#"@ODMÍC!?O6 Í× Í× Í×:xO2ÎL:yO2ÓLÉ!{Oq:{Oþ Â6 Í×:M<2MæþÊ3ÃÃA!M4*{OMÍ×:{Oþ ÂV!>O:?O¾ÚVÍ·É Í ÍÉ!ÌL6!ÎL6ÍW: þ€¦Í"×: þÿ‘¸Í"×ÏÍ"Í É. å*MëÛá -ª! N6 *M 6 *M 6€Í*MëÍþÿÂN!ÒL6#6!ØL6!ÎL6ÞÍ"*M~þÊ*M>@¶OÍ:Í!|O6>!|O¾ÚE*|O&ë*M~þ Ê;*|O&ë*MNÍ:|O<2|OÂïÍ"Í É:ÓLÒfͦÍ�OÍ:ÑL/ÒvMÍ:ÒLÒ‡ ÍÇ ÍÇÉ:ÓLÒÖ’NÍ. å*MDMOá -£:Nþʹ:N2OOÍOÍþÿÂÑÍb!3O6!S"NëÍ. å*MDMMá -Âî:NþÊ:N2M:ÑLÒ ÉMÍMÍþÿÂ$Íb!;M6É€Í*MëÍO>¹ÒEÍb: É:ÑLÒQÉ!S"O€*N+Í*Lë!~Os+6:~O!}O¾Ú£*OëÍMÍþÊ�Íb€*O"O:}O<2}OÂlÉ!èL6#6!©O6!¢O6!êL6!çL6!ëL6É!�Oq:ÑLÒÒÉ*N#"Në!Í9LÚìÍI!"N*Në*N:�OwÉ!†Or+s+! N¾Ò !iO6=Ã% !iO6:É:òL2óLÍP 2òLþÂÉ >! N¾Ò™ : N=2 N.!"å* N&ÍL?M DM*Mëá -Â` "* N&ÍL?M ! ~2>MÍ*þʉ ûv: Nþ– !iO6:ÃÆ .å*M6ÿÃÆ !>M6ÃL :òLþ Âê :ÌLÒÛ Íh !4O6*M<2>Mþ€Úl !>M6Í*þÂl >É*>M&ë*¹Ú¬ *�OM!ž ^#Vëé!ÍL6ì !ÖL6!ÎL6ì !ÑL6¦ÃÌHÍ2 ÉÃCOPYRIGHT 1977,1981 COMPILER SYSTEMS, INC'èd  END # ()*+, -/: ;<= > ^ASEQ GEGOGT IFLELTNEONORTOABS�ANDASC‚ATNƒCOS„DEFDIMENDEXP…FORFRE†INP‡INTˆLEN‰LETLOGŠNOTOUT POS‹REMbRNDŒSGN�SINŽSQR�SUB!TAB�TAN‘VAL’XOR"BUFF(CALL#CHR$“DATAcELSE$FEND%FILE&GOTO'INT%”LINE)MID$•NEXT*OPEN+PEEK–POKE,READ-RECL.RECS/SADD—SIZE˜STEP0STOP1STR$™THEN2WEND3%LIST%PAGECHAINICLOSE4FLOATšGOSUB5INPUT6LEFT$›LO###7MATCHœPRINT8USING9WHILE:WIDTH;%CHAIN%EJECTCOMMONREMARKbRENAME�RETURN?RIGHT$žUCASE$ŸVARPTR£%NOLISTCONSOLEBRESTORECSAVEMEMD%INCLUDECOMMAND$ CONCHAR%¢CONSTAT%¡LPRINTERGRANDOMIZEHINITIALIZEIJhŒ}Ñ>ku  PAGE$OUT OF DISK SPACE$OUT OF DIRECTORY SPACE$DISK ERROR $BASNO SOURCE FILE: $.BAS$ERROR $ IN LINE$ AT POSITION$WARNING: INVALID CHARACTER IGNORED IN LINE$INCLUDE NESTING TO DEEP NEAR LINE$FILE: $!mOs+q+ÑÁp+qÕ:mO=2mOþÿÊ�*jO:lOw*jO#"jOÃrÉ’NÍOÍ!O6É!nOq*O&’N :nOw:O<2Oþ€ÚÆÍ�É!oOq*oO&ëÍÉ!pOq:ØL!ÌL¶ÚçÉ:ÒLÒ*pOMÍÇ:pOþ Â!?O|sì !ÐL6ì !ÏL6ì !ÕL6!ÒL6*�O&‚ ~þ(Âl :�O<2�O!>O6:�O<2�OO!� ~Ö02‘OO> ¹Úl :>O‡‡‡õ:>O‡ÁH�!‘O†2>OÃ9 ì !ÔL6+6*�O&‚ ~þ(› :�O<<2�OO!� >¦2Nì ç ï ü   o à :l2NÍ›!M6#6!;O6!4O6!"M6€!iO6:!òL6 Íx É!ôL6!ñL6!ìL6#6:M/Ò:;O2:O*1–Ÿ!žO¶Ò«Ã$!M6:�O<2�Oˆ:MÖÖŸ!M¦ÒÒ!íL6ÃÝ:MþÚÝÃ$Ípþ.Âñ:ôL=2ôL!íL6:íLþÂÿÍN"ïL:MÒ !íL6:ôLþ !ñL60!ôL6#60Í#ÉNBÅ*8ODM*;OëÍÀ ÉÃ)͸ÒLÍÎÒLÍfÃ?:òLþ$Â_!íL6ÍfÃw:òLþ%Âr!íL6ÍfÃw!íL6ÍS/Ò·:õLÖFÖŸõ:öLÖNÖŸÁH¡õ:ôLÖÆÿŸÁH¡Ò«!ìL6Mð!ìL6JÍ#ÉÃI:ìLþbÂà:òLþ ÊÝͦ ÒÔͯ ÃÚÍ& 2òLÿÃI:ìLþcÂ3Í4:òLþ Ê*òLMÍ4Í& 2–2|P!}P4Ââ:|Pæ?É*ðO^*ðOå*ðO ^á"ðOÉ*¥O"ðO^*ðO"ðOÉ!~Pq:~PtPÍøKë!rPÍeLÚq!ÌL6OTÅ*€¶wÉ*ðO >¦É*zP&òO) ^#Vë"ðO>ðOÍWLµÊì*ðO~2�På*xP¾áÂÞÍïÒÞÍ’!{P¾ÂÞ>É*ðO#^#Vë"ðOî>É:�P=O! ë*ðOå*�P&ë*xPÁ ¾Â":�P=2�PþÂ>ÉÃï>É*xP>†2‚POÍD*tP"ðO*xPå*ðOÁ woå*xP#å*ðO ëÁá -ÂS*ðO :{Pw*zP&òO) å*ðO#ãN#Fáq#p*ðO 6*zP&òO) å*ðOëás#r:‚PtPÍøKë+s#rÉ*ðO~É!ƒPq*ðO :ƒP¶*ðO wÉ*ðO ~É*ðO ^#VëÉ!„Pq*ðO :„PwÉ*ðO ~ÉÍè2‡P!ˆP6:‡P!ˆP¾ÚMÍÍÚ‡o&òO"…P*…PðOÍLLµÊ3*…PN#F`i"…PÃ*ðO#å*…PãN#Fáq#p:ˆP<2ˆPÂüÉÍè2ŠP!‰P6:ŠP!‰P¾ÚœÍÍÚO!òO å*ðO#ãN#Fáq#pÍÚO!òO å*ðOëás#r:‰P<2‰PÂYÉ!ÂRq:ËLÒ¯*ÂRMÍÆÉ!"ªO}2ìO2¤O2ïOo&"±Oo&"­Oo&"ÝL2‘R2ÁRo&"§O2©O!¬O6!ÀR6#!ÿÿ"¯Oͤ:ËLÒ$͈ÍÆ!Œ"xP!zP6#6Í%1Í�$Í�ÍrÉ!ÃRq:©O/Ò8*­O#"­O:ËL/ÒG*ÃRMÍÆÉ!ÅRp+q*ÄR|OÍ%*ÄR}OÍ%É!ÇRp+q€!ÆRÍLDMÍHÉ:ëO/!ÏL¦õ:©O/ÁH¡Ò•* !ÒR¾Ú“*ÒRM!z ^#VëéÃ�Ã�ÍP0*»RMÍb1Ò,ÍÂÒÍÌ­OÍZLµÊLDŒòLÃí,Í4Í4*ÝL+"ÝLÃI:ìLþ<ÂE:¬OÒ5!©O6~Í%ÃEFCÅ*8ODM*;OëÍÀ Í#ÉÃ):òLÖ%ÖŸõ:óLÖ ÖŸÁH¡ÒñÍf͸ÒtÍfÃgÍSÒë*ìLM!Ü ^#VëéÍx !ôL6:òLÖ ÆÿŸõ:òLÖ.ÆÿŸÁH¡õ:òLÖ ÆÿŸÁH¡Ò:òLÖ?ÖŸõ:òLÖ*ÖŸÁH±õ:òLÖ:ÖŸõ:ôLÖÆÿŸÁH¡ÁH±ÒúICÅ*8ODM*;OëÍÀ ÃͤÍfÓÍ” !iO6= *M ~=*M w: NþÚp!ÒL6#6!ØL6!ÎL6<Í"*Mw*M#å Íe:öLþ:ÂÜ:õLæ*Mw:ôL==2ôLoõL÷L -ÂÔ>!ôL¾Òê!ôL6*ôLå*M#ëõLá -Â÷!>M6€Í›: N<2 NÍ–!òL6 Íx ÃèÍ” :ÌLÒ3!ÓL6+6!ÎL6Ãè:ÔL2ÓL:ÕL2ÒL:ÖL2ÎLÍ” Ãè:ÌL!ÒL¦Ò\Í·Í” ÃèÍ2ë!>Os>Í@LµÖŸ!M¶Ò�ÍuÄÍ” Ãè! O6ÿ:òLÖ ÆÿŸõ: O<2 OÖŸÁH¡ÒÖÍ2å* O&ßL) Áq#p:MÒÅÍuÃÖ:òLþ ÊÓÍ& 2òLÌ͔ Ãè‹6Nb‡ÃîÍuÃ)ͦ Òͯ Í–Ã)Í-ÍSÒÍx É:ÌLÒ!×L6*4O&N 6?Íx Ãã É:M/Ò^:ôL<2ôLO!ôL :òLw:òL!ñL†æ?w:ôLþÚ^!M6ÉÍ-Íx ÉÍ-Í& 2òLÉ*ôL&ôL ~É:òLÖ0O> ‘Ÿ/É:òLÖaŸ/õ>z!òL–Ÿ/ÁH¡É:òLÖ.ÖŸÉ͇!ÐL¦Ò·:òLæ_2òLÉͤ:òLÖAO>‘Ÿ/õ͇ÁH±ÉÍ{õ͸ÁH±õÍ›ÁH±ÉÍ{ÒíÍfÃà͸Ò:òLÖAO>¹Ú¯ͼ0Ã)*­ODMÍrÍ­:¤OÒ$*§OMÍØÃ)ÍØÃ1!iO6*Í–Ã�Ã�Í–Ã�:ïOÒO!ïO6ÃT!¬O6Ã�!¬O6Ã�Ã�!¬O6Ã�!¬O6Ã�!¬O6Ã�ÓÖÙ7:@W_bjrÃ|/>+!ÒR¾ÚŸÃ|/:ÒRÖ,O!". ^#Vëé!ïO6Ã|/Ã|/ªOæRÍJLŸõ:ÙRÖÖŸÁH¡ÒÛ2Í%Í4Ã|/:ÖRþÂô*æRDMÍ_Ã*æR"ðOÍÌDMÍ60Ã|/ ͆0*¼RMÍb1ðO¥OõÍJLµÖŸÁH¡Ò>Í/*ðON#FÍ_*ðON#FÍ60ÃDAFÍÙ0Ã|/Ã|/*×RMÍO3Ã|/ ÍP0Ã|/_ÍP0Ã|/Ã|/ ÍO3Ã|/Ã|/ÍN2 Í% ͆0Ã|/Ã|/ÅÍ�2*×RMÍ%Ít0Ã|/Ã|/:ÙRþÊ®!ÑR6ÅÍ�2Ã|/ÅÍ�2Ã|/:ØRþÂÙFMͼ0Ãç*ÕRM͆0*ØRMÍt0Ã|/:ØRþÂúÍ%Ã:ØRþ 0Í%ÃFMͼ0 ͆0*ØRMÍt0Ã|/Ã|/!ÑR6ÅÍ�2Ã|/ÅÍ�2Ã|/Ã|/ ÅÍ�2Ã|/:¢OÒx:ÕRþÂp*»R&íP) N#FÍ_!¢O6Ø:ÕRþ“*»R&íP) N#FÍ1ØÍ%Ã|/ÍP0Ã|/ ÍP0Ã|/ ÍP0*ÚRMÍt0Ã|/:¢OÒû*»R&�Q 6*»RMÍb1ÒñÍP0ÍÌå*»R&íP) Áq#pÃø*»RMÍò6à *»RMÍò6Ã|/:çLÒ IFÍÙ0Ír2*æR"ðOÍèþÂ* *ÖRMÍØÍè!ÖR¾Ê: NSÍÙ0ÍÌDMÍ1*ÙRMÍš3!Í%ÍÌþÿÍ9LµÖŸ!ÌL¦Òi SIÍÙ0Ã|/͆0*¼RMÍq1/Ò� ÍØÍ­þÿÍr͆0*ðODMÍ60Ã|/Ír2Ã|/Í 9*¼R&-Q) å*»R&) ãN#Fáq#pÍè9Ã|/Íè9Ã|/ÍÜ8Ã|/Í 9ÍÜ8Ã|/ ÍP0*»RMÍb1Ò3!¥OðOÍJLµÖŸ!¤O¦Ò !÷:òLþE !M6Íf:M<2MÃÉÃÉÃàÉ:òLþ Â.Íx !M6É!’Oq*ÝL#"ÝL:ÌLÒM*’OMÍÆÉ!"”O!M6ÍpþHÂ’!“O6:ôL=!“O¾ÚŽ*”O))))åÍ3_á"”O:“O<2“OÂf*”OÉÍpþBÂÈ!“O6:ôL=!“O¾ÚÄ*”O)åÍ3_á"”O:“O<2“OŸ*”OÉ>!ôL–Ÿõ~ÖÖŸõ>3#–ŸÁH¡ÁH±Òï!M6!É!“O6:ôL!“O¾Ú!*”O)))å*”O)Á åÍ3_á"”O:“O<2“OÂô*”O|Ò/!M6*”OÉ*“O&ôL ~2–OþAÚM:–OÆ 2–O:–OæÉ> !ôL¾Ò_>É!—O6*ôL&– ~2˜O:˜O!—O¾Ú/:˜O!—O†·2™O!šO6*ôL&€) :™O=õ:ôL<ÁH_åÍLÑÍýK"›O*šO&ë*›O:šO<2šOOå!ôL Á ¾Â!ôL:šO¾Âý*šO&ë*›O~2ìLÒú:ìLæ2îL!ìL6L>Éñ*šO&ôL :šO=Oå*›O ~á¾Ò%:™O<2—OÃ,:™O=2˜OÃq>É:òLþ Â=Íx !ôL6Íà:òLþHÂPÍ_:òLÖ,ÆÿŸõ:òLÖ ÆÿŸÁH¡ÒqÍ& 2òLÃPÍNÉTIÅ:ôL·!:O†*8O_DMÍÀ É1.CONSTANT AREA: $CODE SIZE: $DATA STMT AREA: $VARIABLE AREA: $AQGFKLPBTNOCDEIJHXRrU[qZWpS\YVsvwxq   §  &—& PROD $FUNCTION REFERENCE BEFORE DEF: $PROGRAM CONTAINS $ UNMATCHED $ STATEMENTS$FOR$WHILE$DEF$NO$ ERROR$ DETECTED$:ËLÒËòOÅ>@‡_Íe!V"tP*++"rP"èO#6É!|P6#6*ðO~=!}P¾Ú *}P& ë*ðO:|P†‹€FRͼ0Ã0!*»R&-Q) å*ðOëás#r*»R&íP) s#rÍèOͪ0Ã|!:ËLÒv!!ØL6EÍ"! S6:ôL! S¾Úk!* S&ôL NÍ: S<2 SÂJ!ÍW!ØL6Ã|!UFͼ0Ã|/*îL& NÍb0:îL‡‡*îL&÷ õ>¦ÁH�OÍP0*îL&÷ ~æþOͪ0:îLþÂÇ!!£O6ÃÔ!:îLþ#ÂÔ!!¢O6Ã|/ÍË7Ã|/ôLÍ|7Ã|/ÍP0Ã|/͆0Ã|/ÍP0Ã|/͆0Ã|/ÍP0Ã|/ÍP0Ã|/ÍP0Ã|/͆0Ã|/ÍP0Ã|/:»R=O!­Q :ÐR–ÆÿŸõ:ÐRÖÖŸÁH±ÒV"EFÍÙ0*rP ^#Vë"ðO:ÕR/õ:ÙRÖÖŸÁH¡Òƒ".Í%ÍH:ÕRÒ�"Í%ÍÌDMÍ1:ÙRþ§"Í%û":ÕRÒ¶"Í%û" Í%:ÕRÒÏ"ÍÌDMÍ_Í%Í%:ÕRÒ #Í%Í_Íx:Í%Í_8Í%Íx:Í%Í_9Í%Íx:Í%7Í%*rPN#FÍH*rP##å*­Oëás#rÃ|/*»R&ÍQ å*¼R& Ñw6Í%*rP##N#FÍH*rP å*­Oëás#r:ØR2ÐROÍt0ÍtÃ|/!çL6>rPÍWLë+s#rë"èO*èO#>¦*èO#wÍD:êO<2êOÃ|/:ØRþµ#FMͼ0:ÐRÖÖŸõ:ØRÖÖŸÁH¡ÒÕ#pÍ%Ãò#:ÐRÖÖŸõ:ØRÖÖŸÁH¡Òò#:Í%͆0*ÐRMÍt0Ã|/:ÐRÖÖŸõ:»R=O!­Q ~ÖÖŸÁH¡Ò*$pÍ%ÃP$:ÐRÖÖŸõ:»R=O!­Q ~ÖÖŸÁH¡ÒP$:Í%:»R=O!­Q :ÐRw*rP ^#Vë"ðOÍÌDMÍ_ÍP0Ã|/Í�1Ã|/Í�1Ã|/*¼R&°Q ~þ¡$]Í%`Í%Í6ÍÌDMÍHÃ|/Ã|/Íf6Ã|/Í�16Í%Íç1Ã|/:ÚRþÂÛ$EIÍð0:ÚRþÂè$:Í%7Í%Íç1Ã|/*æR"ðO:ËLÒ%Ñ%*çO&³O) N#FÍH*çO&ÍO) ^#Vë"ðO>Í6LµÊ4-*­ODMÍr:çO=2çOÃ|/Ã|/:ØRþÊR-SMͼ0ÃW-yÍ%Ã|/uÍ%Ã|/Ã|/~Í%!©O6Ã|/:ØRþ‚-Í%Ç-Í%*»RMÍò6*ªO#"ªOÃ|/*ªO#"ªOÃ|/:ØRþ²-Í%÷-Í%*»RMÍò6*ªO#"ªOÃ|/*ªO#"ªOÃ|/:×RþÊã-CSÍð0Ãô-*½R&íP) ^#Vë"íO:ØRþÊ.FSͼ0à .zÍ%:ìOÒ.DSÍÙ0Ã.!ìO6Ã|/±¹¼áGJT\dgor‚…ž¡»Èê"4ADQ›£«º l � £ Æ Ì Ò Û !×!Ý!æ!î!ö!þ!""""&"."3#v#§#$}$…$�$´$·$½$Í$ó$(%2%V%ý%& &&&&&"&T&Z&c&f&l&r&Ì&.'I'L'W'b'v'ƒ'†'“'›'´'Å'Ë'Ñ'Ù'Ü'é')(,(2(8(;(A(G(O(\(l(Ì(Ï(Ò(Õ(Ý(ã(é())!),):)V)Y)\)_)b)h)n)q)w)Ä)ß)ç)z+‚+Š+’+•+�+ +±+·+À+Æ+É+Ø+Þ+ä+ì+ï+÷+ú+,,,,&,.,1,<,D,u,³,ì,>-A-Z-b-e-r-˜-¢-È-Ò-É*»R&�Q ~2ÕR*½R& ~2×R*¼R& ~2ÖR*»R&­Q ~2ØR*½R& ~2ÚR*¼R& ~2ÙR*¼R&íP) ^#Vë"æR*¼R&ÍP ~2ÜR*½R& ~2ÝR*»R& ~2ÛR*¼R&íQ) ^#Vë"àR*½R&) ^#Vë"âR*»R&) ^#Vë"äR*¼R&ÍQ ~2ÞR*½R& ~2ßRÉ!éRp+q*¼R&íP) å*èRëás#rÉ!êRq*»R&�Q :êRwÉ!ëRq*»R&­Q :ëRwÉ!ìRq*¼R&­Q :ìRwÉ!íRq*¼R&�Q :íRwÉ!îRq*¼R&ÍP :îRwÉ!ïRq*»R&ÍP :ïRwÉ!ñRp+q*ðRå*»R&ÍQ ^*äRDMÍÀ É!óRp+q*òRå*àRDM*ÞRëÍÀ É!õRp+q*ôRå*âRDM*G*×RMÍØ:¤O/Ò%%Í74ÍñÍ%*ÓR"æRÍ�1Ã|/*ØRMÍt0Ã|/:ËLÒG%Í/Í1å*ðOÁq#p*§O#"§O!¤O6Ã|/:¤OÒf%MPͼ0Ãú%6Í% ÍP0Íç1*ðO"ÓR*»RMÍq12 S*ØRMÍt0*ðO"¥O*ðODMÍ60:ËL! S¦Ò¬%DFͼ0Ãú%:ËLÒÙ%ÍD*tP##"tP*ðO 6 Í­*­ODMÍrÃú%ÍÌ­OÍZLµÆÿŸ!ÌL¦Ò÷%DFͼ0Ãú%ÍNÃ|/ÍD:Ã|/ÍP0Ã|/ÍP0Ã|/ÍD:Ã|/Ã|/Ã|/Ã|/͆0*¼RMÍò6:ÙRþÊ<&FIÍÙ0*»R&íP) N#FÍ1-Í%Ã|/Í/2Ã|/Í_Ã|/Ã|/ÍÇ3Ã|/ÍÇ3Ã|/*æR"ðO:©OÒÆ&:×RþÊ’&VCÍÙ0!©O6*½R&íP) nMÍØ:ÙRþ¾&*½R&íP) n}‡Í%!éL6Ã|/mÍ•4!éL6Ã|/Ã|/'Í%!êL6Ã|/hÍ•4Ã|/:ÙRþÊ©'PIÍÙ0nÍ%ÍŠ4Ã|/Í_nÍ%ÍŠ4Ã|/ÍÑ4Ã|/ÍÑ4Ã|/!éL6Ã|/Ã|/?Í%!éL6Ã|/:»R=O!­Q ~þÊ!(SMÅ:»R=O!íQ :»R=Oå!ÍQ ^áN#FÍÀ Ã&(cÍ%Ã|/Ã|/Í}8Ã|/Í}8Ã|/Ã|/Í}8Ã|/Í}8Ã|/dÍ%Ã|/dÍ%4Í%Ã|/!éL6Í/2&Í%Ã|/!éL6:»R=O!­Q ~þ¦(FMÅ:»R=O!íQ :»R=Oå!ÍQ ^áN#FÍÀ :»R=O!­Q ~þ¼(]Í%Í%Í/2%Í%Ã|/Ã|/Ã|/Ã|/5Í%Ã|/Íf6Ã|/Í{5Ã|/Í{5Í�1:¤OÒý(Í%Ã|/¦ßRëÍÀ É*¯O#"¯OÉ!÷Rp+qÀ!öRÍLDMÍHÉ!øRq*øR&mQ n&-RÉ!ùRq*ùRMÍ$1"xP*ùR&ÍP ~2zP*ùR&�Q ~2{PÉ!úRq*úRMÍ91Í�É!ûRq*ûRMÍb1Òƒ1>ÉÍ%>É!¿R"xP:ÁRæ?2zP!{P6 É!üRq:ËLÒ¼1*æR"ðO:üR­OÍøKDMÍrÉ:ÁR<2ÁRþÂÐ1:ÀR<2ÀR͉1Í�/ÒÞ1Í%*ðODMÍ60Éͽ1ÍÌDMÍHÉ!ÙR:ØR¾Ê2MMͼ0>É>É:ÙRþÂ2FMÍÙ0>É:ØRþÂ+2FMͼ0>ÉÍó1É:ÚRþÂ@2FMÍð0ÃM2:ÚRþÂM2]Í%É:ØRþÂ_2FMͼ0Ãl2:ØRþÂl2]Í%Ít0ÉÍ/2:ÖR<2ÖRO͆0É!ÿRs+q+ÑÁqÕ ͆0!ØR:ÙR¾Ê3:ÙRÖÖŸõ:ØRÖÖŸÁH¡Ò»2pÍ%Ãý2:ÙRÖÖŸõ:ØRÖÖŸÁH¡Ò÷2Í%pÍ%:ÑR/Òê2Í%!ÙR6Ít0Ãý2MMͼ0Ã3:ÙRÖÖŸõ:ÿRÖÖŸÁH¡Ò3FMÍÙ0:ÙRþÂ03*ýRMÍ%ÃI3:ÙRþÂB3*þRMÍ%ÃI3*ÿRMÍ%!ÑR6É!Sq ͆0:ØRþÂj3:Í%!ØR6:ÙRþ‹3Í%:Í%Í%!ÙR6Ít0Í 2Ò™3*SMÍ%É!Sq:Sþ¯3Í_ÃÆ3:SþÂÀ3Í_ÃÆ3Í_ÉÍè2S!ÕR–ÆÿŸõ:SÖÆÿŸÁH¡Òí3NSͼ0Ãô3*ÕRMÍØ*ØRMÍš3 Í%*ÕRMÍ%Í%É!Sq:SþÂ!4Í%Ã64:SþÂ14Í%Ã64Í%É:ÙRÖÖŸõ:ØRÖÖŸÁH¡ÒW4pÍ%Ã~4:ÙRÖÖŸõ:ØRÖÖŸÁH¡Òw4:Í%Ã~4Íó1Ò~4ÉÍ74*ÙRMÍ 4É!êL6;Í%É!Sq:ØRþʧ4SMͼ0:ÕRþ¿4*»R&íP) N#FÍ_*SMÍ%Í%!êL6É:ÕRþÂé4*»R&íP) N#FÍ_:êLÒú4"1Í'5Ã5:éLÒ ÍG5Ã|/ͽ1Í%ÍÌDMÍHbÍ%ÍG5Ã|/Íf6ÍP0Ã|/Íf6:ÖR!S¾Ú†**S&ßL) N#FÍH:S<2SÂc**íODMÍH:¤OÒž**¥O"ðOÍñÃw+!ÎL6:ÕL2ÒL:ÔL2ÓLÍ” :êOþÊÇ**êOë�ÍŽ::çOþÊÙ**çOë“ÍŽ::¤OÒè*™ÍŽ:Í%Í%>!ÚLÍbLÒ+*ÚLDMÍCÃ+�Í" Í">ÚLÍWLµÊ%+SͧÍ"!S6>!S¾Úf+ÍW*S&ÈR) N#FÍ"*S&ßL) N#FÍC:S<2SÂ0+*DMÍ_ÍIÍOÍ Ã|//Í%Ã|/MÍ%Ã|/jÍ%Ã|/Ã|/jÍ%Ã|/Ã|/:ÙRþÊ®+SMÍÙ0Ã|/ÍN2Ã|/Í_Ã|/ÍN2Ã|/Ã|/Í_€Í_Ã|/ÍN2Ã|/ÍN2Ã|/kÍ%Ã|/Ã|/kÍ%Ã|/Ã|/ÍN2eÍ%Ã|/ÍN2eÍ%Ã|/Í/2iÍ%Ã|/Ã|/lÍO3Ã|/fÍ%Ã|/Ã|/ÍN2oÍ%Ã|/gÍ%Ã|/:¤OÒl,*¥O"ðOÍñtÍ%*ÓR"æRÍ�1!¤O6Ãr,DNͼ0Ã|/:çO<2çOþ ÚŠ,NWͼ0í,*çO&ÍO) >w#6*çO&³O) å*­Oëás#rÍtÃ|/:ØRþÂÁ,EWͼ0:ØRþÂÎ,:Í%7Í%Íç1*çO&ÍO) å*ðOëás#rÃ|/:çOþÂý,UWͼ0Ã;-6Í5)*Í'5Ã5=<Í'5:ØRþÂ5:Í%*ØRMÍ 4É!Ss+q:ØRþÂ?5*SMÍ%ÃF5*SMÍ%ÉÍ/2:‘R<2‘Rþ)Ú\5OOͼ0*‘R&‘R NÍ_^Í%9Í%!ëO6É!ëO6*‘R&‘R :ÕRwÉ:êO=2êOþÿ¨5!êO6UNÍÙ0Ãâ56Í%*èO N#FÍH€!­OÍLå*èOÁq#p*èO#>¾Òâ5*èO"èOÃË5É*½R&�Q 6*½RMÍb1*èO ðOõÍLLµÖŸÁH¡Ò6ÍŽ5Ã6INÍð0ÉÍP0*»RMÍq1Òe6ÍÂ!¡O¶/!ÌL¦Òe6:òLþ ÂM6*&?@XBCcdeeefghd(ijklmmmnopsxp{ppp~ppp�…ˆŒ�”p—pšp�p pÿ££¤®°±³ÙÚÛúüüýþÿÿ !#%')+.147:>@BDFHJLNQTWZ\_behlorux{~€ƒ†ˆ‹��“•—� ¢¥¨¬®°³¶¸º¼¾ÀÂÄÆÈÊÌÎ×Ú<š—Øá‡<©Èr¡¥š<Ë<š|þÍÌDMÍ_É:ÖRþ Âk9*æR"ðOÍè!ÚR¾Êc9ÍèÖÖŸõ:ÚRÖÖŸÁH¡õ:×RÖÖŸÁH¡Ò]9*½R&­Q 6!ÚR6pÍ%Ãc9PFÍð0*ÚRMÍ 4ÉÍâ9!ÚR–ÆÿŸõÍâ9ÖÆÿŸÁH¡ÒË9:ÚRÖÖŸõÍâ9ÖÖŸÁH¡Ò¥9:Í%ÃË9:ÚRÖÖŸõÍâ9ÖÖŸÁH¡ÒÅ9pÍ%ÃË9PFÍð0:ÜRæþO͘0:ÖR=2ÖRO͆0É:ÜRæÉ:ÖRþ Â::ÜRþÊþ9NFÍð0Í%*»R&-Q) ^#Vë"ðOÍÌDMÍHÉ:ÖRæþÊ-:NFÍÙ0:ÖRæþO!Ó ~2ÖROÍ%É:ËLÒw:*½R&�Q 6*½RMÍ91Í%Í1DMÍr*ÚRMÍØ:ÖR?BCDEGHIJKM/E  J J  "2"'5 " "". "" " " """0"2""  EFJLM )J #%&'*+,-1345678:<=>?BCDGHIJKM( #&'*+,-134568:=>?BCDGHIJKM)J J  $   AE $ $J JEF9; $  $ """""""""0"""""""""/""  $ )J  $( )J     N—%F  '(),./02679<ŠŒ�‘“”¢¥E!&X  ‰ 33446688: <<<AADFFSSTTUUVVWW Zì[\]^^___``abcddeffgghiijkklmmnrrsttuuuvvwwxxx{{||}}}~~€€‚‚ƒƒ„……†‡ˆˆŠ‹‹������‘’“”•–—˜˜™›œœ�žžŸ ¡¢¢£¤¤¥¦§¨©©ª«¬­®¯°°±²³Rµ                 k    &   $ -3;<@N[kvŠ‹�’•—˜œ¨ÆCBASIC COMPILER VER 2.08  $$\$COPYRIGHT 1981 COMPILER SYSTEMS INC. $1®LrHÍ"¥HÍ"ÍoKÍ·!ØL6:ÌL!ËL¶ÒbK!ÜL6!¾R6!¬"‹!á%*+-FN�’—˜3: ! #�˜ŠWddŽ ÿ8lhcd·ba»²fµ·$&cd·ba&cd·ba}>·Dcd·ba·ucd¸67[Œ»~�@¬ ³p%'(ƒ´±Ã,²¾Þ2¶³´ÜÏ9½ÚÀ:wµÁ¶·:D/±– ?¹®ºCDyCD´¶ CD CDÿCD.Z\CDXCD]`CD‹�CD¦CD�CDCD0CD1†CD§CD&cd·baª«*·"#¿p%'(Ûƒ´±Ã,²¾Þ2¶³4´Ü8Ï9½ÚÀ:µÁ¶·:D)_p%'(ƒ´±Ã,²¾Þ2¶³´ÜÏ9½ÚÀ:µÁ¶·:D+·ÿB!°x„ÄЀ­ ¯egim ýk¨¨¨jþþþº¹--ÿ335ž;<=Y?ä@A¸CæHHKIINJJOKKLLLMNQPRQSR[^“_‘`”bŽffÔhh�iiÒjjàkllŸmmÝnn>uuÙvvvXww¢yy¼zzÖ{{�||Ó}}èÇ€€É�� {‚„„qÌ…††£‡‡Íˆ­‰®6Š‹‹ �Ñ��   ’¤¤¤“• –^  —˜˜™™s¯ÿP!»R6ÿ!ºR6!mQ6:ÜLÒ_K>«!‹PÍbLÚ4JÍ‘K*»R&�P) å*‹Pëás#rÍyK"SÍ®K͆Kë*S+"S*S"SSSÍJLÚ1J*SË: :ìL¾ÂJ*»R&mQ :ºRw!S6:ôL!S¾Ú�I*S&ôL NÍÈK!S4ÂI*»R&ÍP :ñLw*»R&­Q :íLw*»R&íQ) å*8Oëás#r;K*»R&ÍQ w*»R&íP) å*ïLëás#r*So=) ^#Vë"‹P!¾R6*ÿS"SÃ$JSSÍJLµÂ$JESÅ;K*8O_DMÍÀ *S"SÒSIÃ\K!‹PÍeLÒçJ͆K:»RÍ6Lë!¼Rs:¼R<2½R‹PÍOLMÍš:ÜLÒäJ:¼R2»RÍyK"S*»R&mQ ~2ºR*»R&�P) ^#Vë"S*S¹< ån&"S}ÖÆÿŸSSõÍJLµÆÿŸÁH¡áÒÇJ*S#"SÓJ*SKA) ^#Vë"‹P>Í6LµÂäJ!ÜL6Ã\K>ü!‹PÍbLÚAKÍyK"SÍ®K*SÿÝ; ån&"S}ÖÆÿŸ!Sõ:ìLÍbLµÆÿŸÁH¡áÒ/K*S#"SÃûJ*S“?) ^#Vë"‹PÃ\KÍ‘K͆Kå*»R&�P) Áq#pÍyK"‹PÃIÃæHÍoK!ÌL6ÃæHûvͱÍL ͰÉ*‹P·B) ^#VëÉ*‹P‰F n&É:»R<2»Rþ ­KOSÅ*8ODM*:OëÍÀ É:¾RÒ½KÍã !¾R6É:ôL·!:O†É!Sq*ºR&-R :Sw:ºR<2ºRO>d¹Ò÷KOVÅ;K*8O_DMÍÀ Éë_ëq…oŒgÉDM!>)ë)ëÒL = LÉë_ëµo´gÉ^#Vë|·g}o Â*LÉ_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉ +CBASIC V2.08 COMPILATION OF $ãÿ SIZE DW LDIR ;PUT IT OVER ; CHKUNA: LDA UNACNT ;ANY UNALLOC REMAIN? ORA A JZ ALLOC ;SKIP IF NOT ; ; MORE UNALLOCATED RECORDS REMAIN ; DCR A ;UNACNT = UNACNT-1 STA UNACNT ; ; MAKE SURE LOGICAL DISK ADDRESS IS THE SAME ; LXI H,CDISK ;POÿINT AT BEGINNING OF LOGICAL LXI D,UDSK ;AND UNA LXI B,4 ;SET THE COUNT CALL MCMP ; JNZ ALLOC ;NOT THE SAME ; ; MATCH, MOVE TO NEXT SECTOR FOR FUTURE REF ; LXI H,USEC ; INR M ;UNASEC = UNASEC+1 LDA CPMSPT ;GET THE SIZE DCR A ; CMP M ;CÿHECK FOR END OF TRACK JNC NOOVF ;SKIP IF NO OVERFLOW ; ; OVERFLOW TO NEXT TRACK ; MVI M,0 ;UNASEC = 0 LHLD UTRK ;GET THE UNALLOC TRAK NUMBER INX H SHLD UTRK ;UPDATE IT ; ; MATCH FOUND, MARK AS UNNECESSARY READ ; NOOVF: XRA A ;0 TO ACCUMULÙATOR STA RSFLAG ;RSFLAG = 0 JMP RWOPER ;TO PERFORM THE WRITE ; ; NOT AN UNALLOCATED RECORD, REQUIRES PRE-READ ; ALLOC: XRA A ;0 TO ACCUM STA UNACNT ;UNACNT = 0 INR A ;1 TO ACCUM STA RSFLAG ;RSFLAG = 1 ;**³U \ INT €€iÿÿ€ LST@ $:!©ÛÿÃáÍ2 ÉÃCOPYRIGHT 1978,1979,1981 COMPILER SYSTEMS INCèd  # ()*+, -/: ;<= > ^ASEQ GEGOGT IFLELTNEONORTOABS�ANDASC‚ATNƒCOS„DEFDIMENDEXP…FORFRE†INP‡INTˆLEN‰LETLOGŠNOTOUT POS‹REMbRNDŒSGN�SINŽSQR�SUB!TAB�TAN‘VAL’XOR"BUFFÿ(CALL#CHR$“DATAcELSE$FEND%FILE&GOTO'INT%”LINE)MID$•NEXT*OPEN+PEEK–POKE,READ-RECL.RECS/SADD—SIZE˜STEP0STOP1STR$™THEN2WEND3CHAINCLOSE4FLOATšGOSUB5INPUT6LEFT$›L#CALaMATCHœPRINT7USING8WHILE9WIDTH:COMMONCREATE;DELETE  DISK ERROR $BASXREF06: NO SOURCE FILE: $.BAS$XREF07: INVALID PAGE LENGTHXREF05: INCLUDE NESTING TO DEEP NEAR LINE$XREF03: OUT OF MEMORYXREF01: OUT BOF MEMORY$XREF04: TO MANY FUNCTIONSXREF02: OUT OF MEMORY $PAGE NO$  NAME 7 TYPE$.BASPARAMETER $ FUNCTION $ GLOBAL $XREF V2.08 $$E$COPYRIGHT 1981 COMPILER SYSTEMS INC.$1r�Í ¼Í Í“ÍùÍõÍ¿ÍÍÇ'ß#� ±Âÿ~#VZ{�+_~#Fƒ!ï{w!rN,F!Övq#pé{,q#prYP͵7!rN,F!fwq#p7rÿÍYE!Ö{~,FÖOxÞ±Ê'T.Þ6#6.ÔN,FÍ.O!Ú{w#p.Ô~ÖÊ}S¯–OxÞ.Þq#w.Ö~,F.Þ–,OxžÒ–S.ÖN,F.Þq#p.Ü6#6*Þ{+ë{!Ü{–,_zžÚËS-N,F*Ú{ ~!ï{†w.ÜN,F! "Ü{Ã�S!rN,F!Övq#p!Ú{N,F!Øvq#prYP!Þ{N,F͵7!rN,F!fwq#p7r€¥iÍ^ÍÝÍ ûv!Žs+p+q+ÑÁp+qÕ:Ž=2ŽþÿÊC*Šå*ŒÁ w*Š#"Š*Œ#"ŒÃÉ!’s+q+ÑÁp+qÕ:’=2’þÿÊn*�:‘w*�#"�ÃQÉßÍcÍ!_6É!“q*_&ß :“w:_<2_þ€Ú¥ÍoÉ!”q*”&ëÍÉ!•q*•&ëÍÉ Ͷ ͶÉ!–q:�Òã*–Mͦ:žÒñ*–MÍ…:–þ Â!‡4!œ6à !œ4É!˜p+q*—~þ$Ê**—NͶ*—#"—ÃÉjÍ Í ÉvÅ *êDMÍ !Þ6 *ê 6 *ê 6€Í*êëÍþÿÂÜÍÆyÍ *ê~þÊœ*ê>@¶_Í:Í!™6>!™¾ÚÓ*™&ë*ê~þ ÊÌ*™&ë*ê^Í!™4¡’Í Í É:žÒôÍ…ÍocÍÉ:žÒ;ßÍ*êå cÍ :aþÊ:a2ccÍcÍþÿÂ6Í+!ƒ6É€Í*êëÍ2šO>¹ÒZÍ+:šÉ ÍÑ ÍÑÉ Í ÍÉ!œp+q!ž6+6>!�¾Úí!Ÿ60*�&=) ›Í.ÚÈ*�&=) ›Í.ë+s#r!ž6#4Ö:�ÖŸ/!ž¶Òá*ŸMÍÑÃæ ÍÑ!�4ˆÉ:y2zÍ”2yþÂc>!ݾÒW!Ý5"*Ý&Íþ å*êDM!Í "*Ý&Íþ ! ~2Í<þÊGûv:ÝþÂT!‰6:Ã`!Þ6:yÉÃ�:yþ Âw!`6*…#"…:yþ „!y6 :yþ Ê�:yÉÃîÉ:<2þ€Ú°!6Í<þ°>É*&ë* ~ÉÍîÖ ÖŸõ:yÖÖŸÁH±Ò×üÉ:yþ ÊéÍî2yÃØÉ:yþ\ÂøÍØͼÉ! 6!¢DñÍ Í É!Dp+q*¶ å*Cëás#r*¶ >€¶wÉ*¶ >¦ÉÍ×"¶>¶Í9µÊq*¶~2Eå*:¾áÂcÍtÒc>É*¶#^#Vë"¶Ã=>É:E=O! ë*¶å*E&ë*:Á ¾Â§:E=2Eþ¤>ÉÃt>É*:>†2FOÍæ*8"¶*:#å*¶ å*:å*¶Ñw_ÁÍ *¶ 6Í×å*¶#Áq#p*<&¸) å*¶ëás#r:F8Íñë+s#rÉ!Gq*¶ :GwÉ*¶~É!Hq*¶ :H¶wÉ*¶ ~É*¶ ^#VëÉ!Iq*¶ :IwÉ*¶ ~ÉÍ\2L!M6:L!M¾Ú¾Íåͯ‡o&¸"J*J¶Í.µÊ§*JN#F`i"JË*¶#å*JãN#Fáq#p!M4ÂpÉ:ÞÚÍØ :rþFÂ2Í7/!T¶Ò!ͪÍ÷"´DMÍ *´6*´ >w#6:TÒ!±4*«MÍÍ%Ã!ÿÍÍ%Í@"´*…DMÍ$à :rþH²:sþš*«#"«>ÿÍ"µÂ^ÍÆÍ Í ͪÍ÷"´DMÍ *´6*´ >w#6!±6*«MÍÍ%!T6*¶"¯Í7Ò¯Í@"´*…DMÍ$à :rÖ ÖŸ!T¦ÒÜ!®6*¯"¶*±MÍL!T6à :rþ :TÒõ!T6!­6:®Ò *¯"¶Íe!®6:r2sÿÉÍÍ~É*8"P"N!"R!s"¶8¶Í,Ò}*Nå*¶ëás#rÍå*N##"Nå*²+ÑÍ%ÚsÍÆ Í *RDMÍzÍ *R#"RÃ0É*P++"P*R"U>!UÍDÒR!UÍë+s#rëRÍ<"W!Y6:YÒO!Y6!"\W\Í,ÚL*Uë*\"Z*\)ë*På*Z)ë*P^#VáN#FÍ[Ò?*\f6:¢<2¢O!� ~Ö$ÆÿŸ*¢&� õ~Ö'ÆÿŸÁH¡!€õ:¢–ŸÁH¡Ò= à *¢&� ~þ$Âf :¢<2¢O!� ~2¡Ö'ÆÿŸ!€õ:¢–ŸÁH¡Òf :¡ÖA2¡O>¹Úc *¡M!S ^#Vëé!�6Ãc !ž6Ãc !�6#6Ãc !Ÿ6!¢6P!à6$! 6Ãc ! 6Ãc *¢&‚ ~þ(Âß !¢4!ˆ6:¢<2¢O!� ~Ö02¤O> ¹Ú :ˆ‡‡‡õ:ˆ‡ÁH�!¤†æ2ˆÃä :ˆþÒ- ÍÆ—Í Í *¢&‚ ~þ)Â@ !¢4Ãc !¡6Ãc !£6Ãc ’ š ¢ ­ Ä Ì C K ÃL !£6+~!€¾ÒÁ :¢<2¢O!� ~Ö'ÆÿŸõ:€!¢–Ÿ/ÁH¡#õ~! –ŸÁH¡ÒÁ *¢&� å*£&Ë Ñw!£4Ãt :l2aÍ5!6€!y6 ͼÉ!{6!x6!r6!t6:yþ" !r6BÍîþ"Ê :yþ  ÉÃù ͼ:yþ"Ê ÉÃù ÃÚ ÍõÍ7ÁH±ÒÆ !r6A:yþ0ÂC Íî2yÃ2 Í|Í7ÒS ÍÍ|:yÖHÖŸõ:yÖhÖŸÁH±Òq Íû ÿ :yÖ ÖŸõ:yÖ+ÖŸÁH±õ:yÖ-ÖŸÁH±õÍ ÖEÖŸÁH¡Ò¿ Íû ÍÍÒ´ Íû ÿ :yþ ¿ ͼÍ«ÉÃÚ ÍTÒƒ ÍjÒÚ ÍÃÍ :yþ$Âè ÍÃó :yþ%Âó ÍÍ·Ú> :|ÖFÖŸõ:}ÖNÖŸÁH¡õ:{ÖÆÿŸÁH¡Ò& !r6HÃ+ !r6F!{"::x2<Í«ÉÀ :rþbÂ] :yþ ÊZ Íî2yÍêÃF À :rþcÂ| :yþ Êy ÍêÍî2yÃe À Í«ÉÃÚ :yÖ%ÖŸõ:zÖ ÖŸÁH¡Ò¹ ͼÍ@Í:|þI³ :yþ ʽ Íî2yì ͼ!{6:yÖ ÆÿŸõ:yÖ.ÆÿŸÁH¡õ:yÖ ÆÿŸÁH¡Òò Í@ÍÃÅ ÍØ *ê 5:Ý:)ë*P^#Vë"^*Z)ë*På*\)ë*PãN#Fáq#p*Z)ë*På*^ëás#r!Y6*\"\ÒÅóÃŒ*P##"PÉ!cr+s+p+q*` å*b ~á¾Òz>É*` å*b ѾÒ�>É*` å*b ~á¾Ò¤>É*` å*b Ѿҹ>É*`å*bÁ ¾ÒÐ*b~2fÃ×*`~2f!g6ÍÒ÷:g<2g!f¾Âô>ÉÃÜ*g& ë*`å*g& ë*b~á–ŸÉ*`:g¾Ò5*g& ë*`~2dÃ:!d6 *b:g¾ÒY*g& ë*b~2eÃ^!e6 !e:d–ÖŸÉ!h6!l6ÿ*ê~þʤ*ê>@¶õ:l<2lO!¼ ÁHq:l<2lO!¼ 6:!m6>!m¾Úå*m&ë*ê~þ ÊÞ*m&ë*ê:l<2lOå!¼ Á w!m4©hÅ*l&½ DMÍ :¡ÒÍž*P"N!"jRjÍ,ÚL*N^#Vë"¶!m6*¶~!m¾ÚP:m=O! ë*¶NÍÑ!m4Â**¶>!–OÍ~Í,þÂklÍMÂÍ,þÂ|wÍM‚ÍMÍ@"´!i6: Ú >´Í9µÊ !m6*´~!m¾Ú:iÚÄ,ÍÑ ÍÑÃÉ!i6:¢Ö!œ¾ÒñÍ^!ˆ:‡–Ÿ/!¡¦ÒìÍž+Í~:m=O! ë*´N#FÍz!m4Â¥*´ ^#Vë"´ÔÍ^!ˆ:‡–Ÿ/!¡¦Ò7Íž*N##"N*j"jÒÉ!op+q!p6*p&ë*n~þ$Ê}*p&ë*nNÍÑ!p4ÃXÉ!qq!r6:q!r¾Ú� ÍÑ!r4‡É ÍѤÍM¼ÍMÍ~ËÍM:ŸÚÆ+Í~7ÍM:h<2hOÍzÍ^Í^?ÍMÍ^Í^!‡6Éë_ë…oŒgÉDM <2ÝþÚ ÍÆ²Í *…DMÍzÍ *êå:Ý=o&"Íþ DM!Í :Ý=o&"Íþ ! :w*ê#å ÍD:}þ:‚ :|æ*êw~Å:{==2{_|Í >!{¾Ò� !{6|Å*ê# _DMÍ !6€Í5!y6 ͼö ÍØÃÚ :yþ\ÂÇ ÍêÃÚ ÍÞ Í·ÚÖ !r6ͼÉÃØ É:{<2{O!{ :yw:y!x†æ?wÉÍÞ Í¼ÉÍÞ Íî2yÉ*{&{ ~É:yÖ0O> ‘Ÿ/É:yÖaŸ/õ>z!y–Ÿ/ÁH¡É:yÖ.ÖŸÉÍ#!£¦ÒS:yæ_2yÉÍ@:yÖAO>‘Ÿ/õÍ#ÁH±ÉÍõÍTÁH±õÍ7ÁH±ÉÍÒ‰ÍÃ|ÍTÒ¦:yÖAO>¹Ú¢ÍãÉçÉÃ|É:yþ ¶ͼÉ> !{¾ÒÃ>É!¥6*{&_ ~2¦:¦!¥¾Ú�:¦!¥†·2§!¨6*{&I) =õ:{<ÁH_åÍÑÍö"©*¨&ë*©:¨<2¨Oå!{ Á ¾Âa!{:¨¾Â^*¨&ë*©~2rÒ[:ræ2u!r6G>ÉÃ*¨&{ :¨=Oå*© ~á¾Ò†:§<2¥Ã�:§=2¦ÃÕ>ɸÅ>@‡_ÍD!s"8*++"²É!>6#6*¶~=!?¾Úß*?& ë*¶:>†2>!?4·:>æ?É*¶^*¶"¶É> ‡Æ²Í9ë+s#r!8ÍGÒÍÆÜÍ Í Ã#*²ÉÉ!Ap+q:yþ Â9*@+"@*´ >ÍDµÊZ*´ ^#Vë"´Ã9*´~=Oå! ë*´@Í.µÖŸÁõ ÖÆÿŸÁH¡Ò‡É*´~þ ¹Í÷å*´ Áq#p*´ ^#Vë"´6*´ >w#6*´N! ë*´å*@ëás#r*´4É*<&¸) ^#VëÉ!Bq:B8Íñë!²ÍGÚ ÍÆ¯dP!>)ë)ëÒ  =ÂÉ^#Vë|·g}o ÂÉ_{•ozœgÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉ'„CBASIC XREF LISTING OF $ $ $\ INT €€©ÿ XRF ;:eM�„‰$$‘$I"I$‘!’ !$’I@ˆ!€„B ‘ªªª¤’B�"D’€$!D $I$��„aëÿMP OK BIT MTIBT EQU 04H ;MT INPUT READY BIT NULBT EQU 02H ;NULLS BIT (FIFO1) ZROBT EQU 01H ;ZEROS BIT (FIFO0) ; ; ; VIDEO CONTROLLER PORTS ; ; VCBAS EQU 40H ;BASE ADDRESS FOR THE VIDEO CONTROLLER VCIR0 EQU VCBAS ;INIT REG 0 VCIR1 EQU VCIR0+1 ;IÿNIT REG 1 VCIR2 EQU VCIR1+1 ;INTI REG 2 VCIR3 EQU VCIR2+1 ;INIT REG 3 VCIR4 EQU VCIR3+1 ;INIT REG 4 VCIR5 EQU VCIR4+1 ;INIT REG 5 VCIR6 EQU VCIR5+1 ;INIT REG 6 VCPSL EQU VCIR6+1 ;FORCE SELF LOAD (NOT USED) VCRCL EQU VCPSL+1 ;READ CURSOR LINE NUMBERÿ VCRCC EQU VCRCL+1 ;READ CURSOR CHARACTER (COLUMN) NUMBER VCRST EQU VCRCC+1 ;RESET CONTROLLER TIMING CHAIN VCSCR EQU VCRST+1 ;SCROLL UP VCWCC EQU VCSCR+1 ;WRITE CURSOR CHARACTER (COLUMN) NUMBER VCWCL EQU VCWCC+1 ;WRITE CURSOR LINE NUMBER VCSTR EQU VáCWCL+1 ;START VIDEO TIMING CHAIN VCSFL EQU VCSTR+1 ;SELF LOAD (NOT USED) ; ; Z80 OP CODES USED ; IM2 EQU 05EEDH LDIR EQU 0B0EDH OUTIR EQU 0B3EDH RETI EQU 04DEDH STAI EQU 047EDH LSPD EQU 07BEDH SSPD EQU 073EDH ; ;**ŒB '. Please reinsert diskette,' DB ' push any key to retry' DB 0 MCAN: DB CR,ESC,'T',0 ; ; MEDIA ERROR ; MDERR: LXI H,MDKER JMP PRCER ; ; DRIVE NOT READY ; NTRDY: LXI H,TOTRY ; DCR M ; JNZ RWCMB ;NOT YET LXI H,MNRDY ;POINT AT THE NOT READY MESSAGE JMP PRCER ; ; ; DISKETTE IS WRITE PROTECTED ; WTPRT: LXI H,MWPRT ;POINT AT THE MESSAGEE JMP PRCER ; ; ; COMMON ERROR PROCESSING ; PRCER: PUSH H ;SAVE THE MESSAGE MVI A,RETRY ; STA RWTRY ;RESET THE RETRY COUNT CALL CLMTR ;CLEAR THE MOTOR LXI H,MDSK ;POINT AT IT CALL PRNMSG ; LDA PDSK ;GET THE DRIVE NUMBER WE ARE USING ADI 'A' ;ADJUST MOV C,A ;SAVE IT CALL CONO ;PRINT IT TOO POP H ; CALL PRNMSG ;PRINT THE MESSAGE LXI H,MQUE ;GET THE QUESTION CALL PRNMSG ;PRINT IT PRCR1: CALL CONS ; ORA A ; JZ PRCR2 ;WASTE ANY EXTRA CHARACTERS CALL CONI ; JMP PRCR1 ; PRCR2: CALL CONI ;GET REPLY CPI 03H ;CONTROL C? JZ WBOOT ; CPI ESC ;ESCAPE? JZ WBOOT ;ERROR ANI 5FH ;MAKE IT UPPER CASE CPI 'C' ;CONTINUE? *[**: ; ; THIS BEGINS THE LIST OF ABSOLUTE LOCATED CODE ; ;**ÿ ; ORG BIOS ;ORIGIN OF THIS PROGRAM ; NSECT EQU ($-CCP)/128 ;WARM START SECTOR COUNT ; ; JUMP VECTOR FOR INDIVIDUAL SUBROUTINES ; JMP BOOT ;COLD START WBOOTE: JMP WBOOT ;WARM START CONS: JMP CONIS ;CONSOLE STATUS CONI: JMP CONIN ;CONSOLE CHARÿACTER IN CONO: JMP CONOT ;CONSOLE CHARACTER OUT LPTO: JMP LSTOT ;LIST OUTPUT JMP PUNOT ;PUNCH OUT JMP RDRIN ;READER INPUT JMP SETHOM ;HOME THE TRACK NUMBER JMP SETDSK ;SELECT DISK JMP SETTRK ;SET TRACK NUMBER JMP SETSEC ;SET SECTOR NUMBER ™JMP SETDMA ;SET DMA ADDRESS JMP READ ;DISK READ JMP WRITE ;DISK WRITE LPTS: JMP LSTST ;LIST OUTPUT STATUS JMP SCTRN ;SECTOR TRANSLATION ROUTINE ;**l* ; ; THIS BEGINS THE SECTION OF USER MODIFIBLE VALUES ; THE ORDER OF LOCATIONS MUST REMAIN THE SAME ; ***ÀBIT (HI = ON) ACTIV EQU 20H ;INTERNAL USE ONLY BEEPR EQU 40H ;BEEPER CONTROL (HI = ON) PROFF EQU 80H ;EPROM ON/OFF CONTROL (HI = OFF) ; ; VIDEO I/O PORTS ; VSTAT EQU 30H ;VIDEO LATCH STATUS VLRDY EQU 80H ;VIDEO LATCH READY BIT VMCHP EQU 31H ;VIDEO MEMORY CHARATER POSITION VMLIN EQU 32H ;VIDEO MEMORY LINE NUMBER VMDAT EQU 33H ;VIDEO MEMORY DATA VMWRD EQU 34H ;READ VIDEO MEMORY ; KYBDS EQU 35H ;READ KEYBOARD STATUS KYBDD EQU 36H ;READ KEYBOARD DATA (AND CLEAR) ; ; SPECIAL BIT VALUES ON THE KEYBOARD STATUS PORT ; KYRDY EQU 80H ;KEYBOARD CHARACTER READY BIT KYALP EQU 40H ;KEYBOARD ALPHA LOCK SENSE BIT ; ; MAG TAPE PORTS ; MTO1 EQU 35H ;MT OUTPUT #1 FIFO MTO2 EQU 36H ;MT OUTPUT #2 FIFO MTSIN EQU 37H ;OUTPUT CAUSES INPUT FIFO SHIFT IN MTIOS EQU 37H ;INPUT MAG TAPE STATUS ; ; BITS ON THE MAG TAPE STATUS ; RRMBT EQU 80H ;REMOTE CUE REVERSE (LOW TRUE) RMCBT EQU 40H ;REMOTE CUE FORWARD (LOW TRUE) MO2BT EQU 20H ;MT OUT #2 FIFO READY MO1BT EQU 10H ;MT OUT #1 FIFO READY AMPBT EQU 08H ;A&/õ**ÿ* ; ; MARK THE END OF THE JUMP TABLE ; DB 1 ;MARK THIS AS VERSION 1 ASSIGN PROGRAM DW IOSIZ ;SIZE OF SPECIAL I/O SECTION ; ; INITAL VALUE FOR IOBYTE ; IBYTE: DB 81H ;CONSOLE IS CRT:, LIST IS LPT: BPCNT: DB 0CH ;BEEPER CONTROL (0 = OFF) DSKFL:ÿ DB DFVAL ;0 = 410, 1 = 460 SYSFL: DB 0 ;SPECIAL SYSTEM FLAG ; ; SIO PORT A CONTROL VALUES ; SIOA: DB 45H ;CTC BYTE FOR SIO A - EXTRA PORT DB 13 ;CTC BYTE FOR SPEED - 9600 BAUD SAOMK: DB 04H ;XMIT MASK DB 04H ;XMIT READY VALUE DB 0 ; DB 0 ;ÿ ; ; SIO PORT B CONTROL VALUES ; SIOB: DB 45H ;CTC BYTE FOR SIO B - LINE PRINTER DB 13 ;9600 BAUD SBOMK: DB 04H ;XMIT MASK DB 04H ;XMIT READY VALUE DB 0 ; DB 0 ; ; ; PARALLEL PRINTER PORT CONTROL VALUES ; PIO1: DB 0 ;CONTROL FLAG DB 0 ;áCURRENT LINE DB 66 ;TOTAL LINES DB 0 ; DB 0 ; DB 0 ; ; ; INITALIZATION STRINGS ; SAINT: DB 0,0,0,0 ; DB 0,0,0,0 ; SBINT: DB 0,0,0,0 DB 0,0,0,0 ; PPINT: DB 0,0,0,0 DB 0,0,0,0 ; ; EXPANSION AREA ; DB 0,0 ; ¸—ÿy pad DB '+' ;54 - F1 key on the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB '-' ;58 - F2 key on the key pad DB 00H ;59 - not assigned DB 00H ;5A - not assigned DB 00H ;5B - not assigned DB 00™H ;5C - not assigned DB 00H ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned ; ; ; CTMAX EQU $-CRGTB ;MAX CHARACTER ; ;**( ; ; KEY WITH SHIFT, NO CONTROL KEY ;**ÿ ; CSHTB: DB 00H ;00 - NOT USED DB 0AH ;01 - LINE FEED (CUE) DB '?' ;02 DB ',' ;03 DB 'N' ;04 DB 'V' ;05 DB 'X' ;06 DB '}' ;07 DB '7' ;08 - 7 key on key pad DB '8' ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08H ;0B - BACKSÅPACE key DB ':' ;0C DB 'K' ;0D DB 'H' ;0E DB 'F' ;0F ; DB 'S' ;10 DB 'Z' ;11 DB '4' ;12 - 4 key on key pad DB '5' ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - ¿ DB 0, 0 ; DB 0, 0 ; DB 0,p0 ; ; ; ADDRESS TABLE FOR THE FOUR CHARACTER TABLES ; KYTBL: DW CRGTB DW CSHTB DW CCNTB DW CCSTB ; ;**) ; ; KEY WITHOUT CONTROL OR SHIFT ; ;**ÿ ; CRGTB: DB 00H ;00 - NOT USED DB 0AH ;01 - LINE FEED (CUE) DB '/' ;02 DB ',' ;03 DB 'n' ;04 DB 'v' ;05 DB 'x' ;06 DB '{' ;07 DB '7' ;08 - 7 key on key pad DB '8' ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08H ;0B - BACKSÿPACE key DB ';' ;0C DB 'k' ;0D DB 'h' ;0E DB 'f' ;0F ; DB 's' ;10 DB 'z' ;11 DB '4' ;12 - 4 key on key pad DB '5' ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - DELETE KEY DB 'p' ;16 DB 'i' ;17 DB 'y' ;18 DB 'r'¬ ;19 DB 'w' ;1A DB 09H ;1B DB '1' ;1C - 1 key on key pad DB '2' ;1D - 2 key on key pad DB '[' ;1E DB 00H ;1F ; DB '.' ;20 DB 'm' ;21 DB ' ' ;22 DB 'b' ÐDELETE key DB 'P' ;16 DB 'I' ;17 DB 'Y' ;18 DB 'R' ;19 DB 'W' ;1A DB 09H ;1B DB '1' ;1C - 1 key on key pad DB '2' ;1D - 2 key on key pad DB ']' ;1E DB 00H ;1F ; DB '.' ;20 DB 'M' ;21 DB ' ' ;22 DB 'B' ;23 DB 'C' ;24 DB 1BH ;25 - ESCape key DB '0' ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT DB 'O' ;2B DB 'U' ;2C DB 'T' ;2D DB 'E' ;2E DB 'Q' ;2F ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 22H ;34 - DOUBLE quote character DB 'L' ;35 DB 'J' ;36 DB 'G' ;37 DB 'D' ;38 DB 'A' ;39 DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB '<' ;3D DB '_' ;3E DB '(' ;3F ; DB '&' ;40 DB '%' ;41 DB '#' ;42 DB '@' ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB '|' ;47 DB '+' ;48 DB ')' ;49 DB '*' ;4A DB '^' ;Æ;23 DB 'c' ;24 DB 1BH ;25 - ESCape key DB '0' ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT KEY DB 'o' ;2B DB 'u' ;2C DB 't' ;2D DB 'e' ;2E DB 'q' ;2F ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 27H ;34 - single quote character DB 'l' ;35 DB 'j' ;36 DB 'g' ;37 DB 'd' ;38 DB 'a' ;39 DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB '>' ;3D DB '-' ;3E DB '9' ;3F ; DB '7' ;40 DB '5' ;41 DB '3' ;42 DB '2' ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB '\' ;47 DB '=' ;48 DB '0' ;49 DB '8' ;4A DB '6' ;4B DB '4' ;4C DB '1' ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB '9' ;50 - 9 key on the key pad DB '6' ;51 - 6 key on the key pad DB '3' ;52 - 3 key on the key pad DB '.' ;53 - . key on the ke½;™ÿ4B DB '$' ;4C DB '!' ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB '9' ;50 - 9 key on the key pad DB '6' ;51 - 6 key on the key pad DB '3' ;52 - 3 key on the key pad DB '.' ;53 - . key on the key pad DB '+' ;54 - F1 key oÿn the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB '-' ;58 - F2 key on the key pad DB 00H ;59 - not assigned DB 00H ;5A - not assigned DB 00H ;5B - not assigned DB 00H ;5C - not assigned DB 00HQ ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned ; ;**' ; ; KEY WITH CONTROL, NO SHIFT ; ;**ÿ ; CCNTB: DB 00H ;00 - NOT USED DB 0AH ;01 - LINE FEED (CUE) DB 00H ;02 DB 00H ;03 DB 0EH ;04 - N DB 16H ;05 - V DB 18H ;06 - X DB 00H ;07 DB 17H ;08 - 7 key on key pad DB 05H ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08H ;0B - BACKSPACƒù **ÿ* ; CCSTB: DB 00H ;00 - NOT USED DB 0AH ;01 - LINE FEED (CUE) DB 00H ;02 DB 00H ;03 DB 0EH ;04 - N DB 16H ;05 - V DB 18H ;06 - X DB 00H ;07 DB 17H ;08 - 7 key on key pad DB 05H ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08ÿH ;0B - BACKSPACE key DB 00H ;0C DB 0BH ;0D - K DB 08H ;0E - H DB 06H ;0F - F ; DB 13H ;10 - S DB 1AH ;11 - Z DB 13H ;12 - 4 key on key pad DB 1EH ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - DELETE key DB 10H ;16 -ÿ P DB 09H ;17 - I DB 19H ;18 - Y DB 12H ;19 - R DB 17H ;1A - W DB 09H ;1B DB 1AH ;1C - 1 key on key pad DB 18H ;1D - 2 key on key pad DB 00H ;1E DB 00H ;1F ; DB 00H ;20 DB 0DH ;21 - M DB 00H ;22 DB 02H ;23 - B DB 03H ;24 - C ï DB 1BH ;25 - ESCape key DB 1FH ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT DB 0FH ;2B - O DB 15H ;2C - U DB 14H ;2D - T DB 05H ;2E - E ëE key DB 00H ;0C DB 0BH ;0D - K DB 08H ;0E - H DB 06H ;0F - F ; DB 13H ;10 - S DB 1AH ;11 - Z DB 13H ;12 - 4 key on key pad DB 1EH ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - DELETE key DB 10H ;16 - P DB 09H ;17 - I DB 19H ;18 - Y DB 12H ;19 - R DB 17H ;1A - W DB 09H ;1B DB 1AH ;1C - 1 key on key pad DB 18H ;1D - 2 key on key pad DB 00H ;1E DB 00H ;1F ; DB 00H ;20 DB 0DH ;21 - M DB 00H ;22 DB 02H ;23 - B DB 03H ;24 - C DB 1BH ;25 - ESCape key DB 1FH ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT DB 0FH ;2B - O DB 15H ;2C - U DB 14H ;2D - T DB 05H ;2E - E DB 11H ;2F - Q ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 00H ;34 - single quote character DB 0CH ;35 - L DB 0AH ;36 - J DB 07H ;37 - G DB 04H ;38 - D DB 01H ;39 - A DB 00H ;3A - not assigned DB 00H ;DB 11H ;2F - Q ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 00H ;34 - single quote character DB 0CH ;35 - L DB 0AH ;36 - J DB 07H ;37 - G DB 04H ;38 - D DB 01H ;39 - A DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB 00H ;3D DB 00H ;3E DB 00H ;3F ; DB 00H ;40 DB 00H ;41 DB 00H ;42 DB 00H ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB 00H ;47 DB 00H ;48 DB 00H ;49 DB 00H ;4A DB 00H ;4B DB 00H ;4C DB 00H ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB 12H ;50 - 9 key on the key pad DB 04H ;51 - 6 key on the key pad DB 03H ;52 - 3 key on the key pad DB 1EH ;53 - . key on the key pad DB 1CH ;54 - F1 key on the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB 1DH ;58 - F2 key on the key pad DB 00H ;59 - not assigned DB 00H ;5A - not assigned ë¯ÿ3B - not assigned DB 00H ;3C - not assigned DB 00H ;3D DB 00H ;3E DB 00H ;3F ; DB 00H ;40 DB 00H ;41 DB 00H ;42 DB 00H ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB 00H ;47 DB 00H ;48 DB ÿ00H ;49 DB 00H ;4A DB 00H ;4B DB 00H ;4C DB 00H ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB 12H ;50 - 9 key on the key pad DB 04H ;51 - 6 key on the key pad DB 03H ;52 - 3 key on the key pad DB 1EH ;53 - . key on the ÿkey pad DB 1CH ;54 - F1 key on the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB 1DH ;58 - F2 key on the key pad DB 00H ;59 - not assigned DB 00H ;5A - not assigned DB 00H ;5B - not assigned DB p00H ;5C - not assigned DB 00H ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned ; ;**, ; ; KEY WITH SHIFT AND WITH CONTROL ; ;***4ä DB 00H ;5B - not assigned DB 00H ;5C - not assigned DB 00H ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned ; ; IOSIZ EQU (($-BIOS)/80H)+1 ; ; ; DEFINE INTERRUPT VECTOR TABLE ; DS 8 - ( $ AND 7 ) ;EVEN BOUNDRY DMAIV: DW SRVDMA ;DMA VECTORS DW SRVDMA ; DW SRVDMA ; DW SRVDMA ; CTCIV: DW TIME ;REAL TIME CLOCK DW INTER ;NOT USED DW INTER ;NOT USED DW IDSK ;FLOPPY DISK INTERRUPT ; DW 0,0,0,0 ;ROOM FOR MORE ; ; SIGNON MESSAGE ; MSG: DB 'Eagle CP/M version 2.2.' DB VER + 'A' DB ' ' DB 0 ; MSG1: DB '(Double sided version)' DB 0 ; ; COLD BOOT ENTRY ; BOOT: DI ;JUST IN CASE LXI SP,100H ;USE CPM STACK AREA ; ; CLEAR OUR WORK AREA ; LXI H,BEGDAT ;POINT AT BEGINNING MVI M,0 ;CLEAR IT LXI D,BEGDAT+1 ;ONE MORE LXI B,DATSIZ ;GET THE SIZE DW LDIR ;CLEAR THE DATA AREA ; LXI H,0 ;CLEAR THE BOTTOM PART OF RAM LXI D,1 ; LXI B,0FFH ; MVI M,0 ; DW LDIR ; ; SETUP THE DEVICES ; CALL SETIV ;SET THE CTC AND INTERRUPTS ; MVI £RESET THE DISK LXI SP,100H ;SET STACK CALL SETIV ;SET THE INTERRUPT VECTORS EI ; ; MVI C,0 ;SET TO WARM BOOT FROM DRIVE A: CALL SETDSK ;SET THE DISK DRIVE LXI B,0 ; CALL SETTRK ;SET THE TRACK ADDRESS LXI B,1 ; CALL SETSEC ;SET THE FIRST SECTOR NUMBER LXI B,CCP ;SET THE LOAD ADDRES CALL SETDMA ; MVI A,NSECT ;GET THE SIZE STA NBRSC ;SET THE NUMBER OF SECTORS ; WBOOT1: CALL READ ;DO A SECTOR READ ORA A ;DO A SECTOR READ JNZ WBOOT ;TRY AGAIN FROM THE TOP LXI H,NBRSC ;POINT AT OUR COUNT DCR M ;COUNT DOWN JZ GOCPM ;ALL DONE LXI D,80H ;SET THE SECTOR SIZE LHLD DMAAD ;GET THE CURRENT ADDRESS DAD D ;POINT TO NEXT SHLD DMAAD ;PUT IT BACK LXI H,SECTOR ;POINT AT SECTOR INR M ;BUMP IT LDA CPMSPT ;GET THE SECTORS PER TRACK DCR A ;ADJUST IT CMP M ;COMPARE JNC WBOOT1 ;CONTINUE MVI M,0 ;RESET TO ZERO LHLD TRACK ;GET THE TRACK INX H ;BUMP SHLD TRACK ;PUT IT BACK JMP WBOOT1 ;CONTINUE ; ; ALL DONE - SET TO GO TO CPM ; GOCPM: CALL SETCPM ;SET THE ENTRY POINïA,0FH ; OUT PO1AS ;SET LINE PRINTER PORT AS OUTPUT MVI A,07H ; OUT PO1AS ; MVI A,0CFH ;SET PORT B AS A CONTROL PORT ; OUT PO1BS ; MVI A,0FDH ;SET THE DIRECTION OF THE LINES OUT PO1BS ; MVI A,07 OUT PO1BS ;NO INTERRUTS ; MVI A,00 ; OUT PO1AD ;CLEAR THE DATA LATCH MVI A,02 ; OUT PO1BD ;SET THE STROBE HIGH ; ; SETUP THE SECOND PARALELL I/O PORT FOR HARD DISK ; MVI A,0CFH ;PORT A OUT PO2AS ; MVI A,0FFH ; OUT PO2AS ; MVI A,07H ; OUT PO2AS ;NO INTERRUPTS ; MVI A,0CFH ;PORT B OUT PO2BS ; MVI A,0FH ;UPPER NIBBLE OUT, LOWER IN OUT PO2BS ; MVI A,07H ;NO INTERRUPTING OUT PO2BS ; MVI A,70H ; OUT PO2BD ;SET THE OUTPUT BITS ; MVI A,MXDSK ; STA CDISK ;RESET THE DRIVE STA LDSK ;RESET THE LAST DISK ; LXI H,SAINT ;GET THE INIT STRING FOR SIO A MVI C,01 ; CALL LINIT ;DO IT LXI H,SBINT ; MVI C,81H ; CALL LINIT ;DO IT LXI H,PPINT ; MVI C,0C1H ; CALL LINIT ; ; LDA IBYTE ; STA IOBYTE ;SET THE I/O BYTE ; MVI C,CS ; CALL CONO ;CLEAR THE <TS LDA SYSFL ;GET THE FLAG ANI 1 ;WHICH ENTRY POINT JZ CCP ; JMP CCP+3 ;USE THE CLEAR ENTRY POINT ; ; SET UP CP/M ENTRIES ; SETCPM: LXI H,DPBK1A;ASSUME SINGLE SIDED LXI D,DPBK1B LDA DSKFL ;GET THE DISK FLAG MOV C,A ;SAVE IT CPI 1 ; JNZ STCPM1 ;CONTINUE XCHG STCPM1: SHLD DPBA ;SET SHLD DPBB ; XCHG SHLD DPBI SHLD DPBJ ; MVI A,0C3H ;GET JUMP INSTRUCTION STA 0 ;STORE FOR WARM BOOT LXI H,WBOOTE;WARM BOOT ENTRY SHLD 1 ;FINISH JUMP INSTRUCTION STA 5 ;CP/M ENTRY JUMP LXI H,BDOS ;POINT AT BDOS ENTRY SHLD 6 ;FINISH JUMP INSTRUCTION LXI H,80H ;DEFAULT BUFFER ADDRESS SHLD DMAAD ;SET IT LDA BDISK ;GET THE CURRENT BOOT DISK MOV C,A ;LOG IN THE BOOT DISK RET ;ALL DONE ; ; SETUP THE INTERRUPT VECTORS FOR CTC ; SETIV: MVI A,PROFF ;SET THE PROM OFF STA MTRFL ;CLEAR THE MOTOR FLAG OUT SYSCN ;AND SET IT XRA A ; STA REVFL ;CLEAR ANY REVERSE VIDEO MVI A,03H ; OUT CTC0 ;RESET CLOCK 0 LHLD SIOA ;GET THE CONTROL FOR SIO PORT A MOV A,L ;GET THE CONTROL BYT˜SCREEN AND INIT VIDEO ; LXI H,MSG ;POINT AT THE SIGNON MESSAGE LDA CCP+7 ; ORA A ; JNZ BOOT1 ;AUTO BOOT - NO MESSAGE CALL PRNMSG ;PRINT THE SIGN ON MESSAGE LXI H,MSG1 ; LDA DSKFL ;GET THE SINGLE/DOUBLE FLAG ANI 1 ; CNZ PRNMSG ;PRINT THE DOUBLE SIDED MESSAGE BOOT1: CALL SETCPM ;SET THE CPM VECTORS ; JMP CCP ;CONTINUE ; ; SOME DEVICES REQUIRE AN INIT STRING ; LINIT: MOV A,M ;GET THE FIRST CHARACTER OF THE STRING ORA A ;IS IT ZERO? RZ ;YES MOV A,C ;GET THE IOBYTE VALUE STA IOBYTE ;AND SET IT PUSH H ;SAVE THE POINTER CALL LPTS ;CALL THE STATUS ROUTINE POP H ;GET IT BACK ORA A ;IS IT READY? RZ ;NO LINT1: MOV A,M ;GET THE CHARACTER ORA A ;IS IT THE END RZ ;YES MOV C,A ;NO, SET THE CHARACTER UP INX H ;BUMP PUSH H ;SAVE IT CALL LPTO ;DO IT POP H ;GET IT BACK JMP LINT1 ;CONTINUE ; ; WARM BOOT ENTRY ; WBOOT: DI ;DONT INTERRUPT XRA A ;0 TO ACCUMULATOR STA HSTACT ;HOST BUFFER INACTIVE STA HSTWRT ;CLEAR BUFFER WRITTEN MVI A,MXDSK ; STA LDSK ; ] ´E OUT CTC1 ;PUT IT OUT MOV A,H ;GET THE COUNTER OUT CTC1 ; LHLD SIOB ;GET THE CONTROL BYTES FOR PORT B MOV A,L ;GET THE CONTRL BYTE OUT CTC2 ;PUT IT OUT MOV A,H ;GET THE COUNTER BYTE OUT CTC2 ; MVI A,0D5H ;SET FOR INTERRUPT OUT CTC3 ; MVI A,1 ; OUT CTC3 ; ; LXI H,SIOCM ; MVI C,SIOAS ;SET THE SIO-A PORT ADDR MVI B,SIOLN ;SET THE LENGTH DW OUTIR ;SET THE SIO ; LXI H,SIOCM ; MVI C,SIOBS ;SET THE SIO-B PORT ADDR MVI B,SIOLN ;SET THE LENGTH DW OUTIR ;PUT IT OUT ; ; LXI H,CTCIV ;POINT AT THE VECTOR TABLE MOV A,L ;GET THE LOW ORDER OUT CTC0 ;SET THE VECTOR FOR THE CTC MOV A,H ;GET THE HIGH ORDER ADDR DW STAI ;SET THE I REG DW IM2 ;SET INTERRUPT MODE 2 ; LDA SYSFL ;GET THE SYSTEM FLAG ANI 2 ;CHECK IT RZ ;DONT WASTE IT ; IN KYBDD ;WASTE ANY CHARACTER STORED UP IN KYBDD ;JUST IN CASE ; RET ;NOW LEAVE ; ; PRINT MESSAGE UTILITY ; PRNMSG: MOV A,M ;GET IT ORA A ;IS IT THE END? RZ ;YES INX H ;BUMP MOV C,A ;SAVE IT PUSH H ;SAVE CALL CON VT ROUTINES ; COTBL: DW SAOUT ;0 - TTY: DW VIDEO ;1 - CRT: DW LSTOT ;2 - BAT DW SBOUT ;3 - UC1: ; ; READER INPUT ROUTINES ; RITBL: DW KYBIN ;0 - TTY: DW KYBIN ;1 - PTR: DW SAIN ;2 - UR1: DW SBIN ;3 - UR2: ; ; READ INPUT STATUS ROUTINES ; RSTBL: DW KYBST ;0 - TTY: DW KYBST ;1 - PTR: DW SAIST ;2 - UR1: DW SBIST ;3 - UR2: ; ; PUNCH OUTPUT ROUTINES ; PNTBL: DW SAOUT ;0 - TTY: DW SBOUT ;1 - PTP: DW SAOUT ;2 - UP1: DW SBOUT ;3 - UP2: ; ; LIST OUTPUT ROUTINES ; LOTBL: DW SAOUT ;0 - TTY: DW VIDEO ;1 - CRT: DW SBOUT ;2 - LPT: DW PRTOT ;3 - UL1: ; ; LIST OUTPUT STATUS ROUTINES ; LSTBL: DW SAOST ;0 - TTY: DW VDOST ;1 - CRT: DW SBOST ;2 - LPT: DW PRTST ;3 - UL1: ; ; INPUT FROM SIO, PORT A ; SAIN: CALL SAIST ;CHECK THE INPUT STATUS JZ SAIN ;NOT READY YET IN SIOAD ;GET DATA ANI 7FH ;MASK IT OFF MOV C,A ;SAVE IT MVI A,30H ;GET THE RESET ERRORS FLAG OUT SIOAS ;PUT IT OUT MOV A,C ;GET THE CHARACTER BACK IN CASE RET ;NOW LEAVE ; ; INPUT STATUS CHEC oŸ;O ;OUTPUT POP H ;GET IT BACK JMP PRNMSG ;CONTINUE ; ;**.* ; ; CONSOLE AND LINE PRINTER DRIVERS ; ;**ÿ ; ; ; CONSOLE INPUT ; CONIN: PUSH H ;SAVE H-L LXI H,CITBL ;GET THE INPUT TABLE JMP CCOM ;JOIN COMMON CODE ; ; CONSOLE OUTPUT ROUTINE ; CONOT: PUSH H ;SAVE H-L REG LXI H,COTBL ;GET THE OUTPUT TABLE JMP CCOM ;JOIN COMMON CODE ; ; CONSOLEÿ INPUT STATUS ROUTINE ; CONIS: PUSH H ;SAVE H-L LXI H,CSTBL ;GET THE TABLE JMP CCOM ;JOIN COMMON CODE ; ; READER STATUS ROUTINE ; RDRST: PUSH H ;SAVE H-L LXI H,RSTBL ;GET THE READER STATUS TABLE JMP DORDR ;CONTINUE ; ; READER INPUT ROUTINEÿ ; RDRIN: PUSH H ;SAVE THE HL LXI H,RITBL ;GET THE CORRECT TABLE DORDR: LDA IOBYTE ;GET THE I/O BYTE RRC ;SHIFT IT OVER JMP DCOM ;CONTINUE ; ; PUNCH OUTPUT ROUTINE ; PUNOT: PUSH H ;SAVE H-L LXI H,PNTBL ;GET THE TABLE LDA IOBYTE ;GET THE $I/O BYTE RRC ;SHIFT IT OVER RRC „K FOR SIO, PORT A ; SAIST: MVI A,10H ; OUT SIOAS ;RESET EXTERNAL CONDITIONS OUT SIOAS ; IN SIOAS ;GET THE STATUS ANI SIORB ;CHECK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;THERE IS A CHARCTER READY RET ; ; ; OUTPUT TO SIO PORT A ; SAOUT: CALL SAOST ;CHECK THE OUTPUT STATUS JZ SAOUT ;NOT READY, WAIT MOV A,C ;GET THE CHARACTER OUT SIOAD ;PUT THE CHARACTER OUT RET ;AND LEAVE ; ; OUTPUT STATUS FOR SIO PORT A ; SAOST: MVI A,10H ;GET THE CONDITION RESET OUT SIOAS ;RESET CONDITION OUT SIOAS ; IN SIOAS ;GET THE STATUS LXI H,SAOMK ;POINT AT THE MASK ANA M ;MASK OFF THE BITS INX H ;POINT TO VALUE CMP M ;IS IT THE SAME? JZ SAORD ;YES XRA A ;NO RET ; SAORD: MVI A,0FFH ;YES, SET ACC READY ORA A ; RET ;AND LEAVE ; ; INPUT FROM SIO PORT A ; SBIN: CALL SBIST ;IS THERE A CHARACTER THERE? JZ SBIN ;NOT READY YET IN SIOBD ;GET DATA ANI 7FH ;MASK IT OFF MOV C,A ;SAVE IT MVI A,30H ;GET THE RESET ERRORS FLAG OUT SIOBS ;PUT IT OUT MOV A,  RRC JMP DCOM ;CONTINUE ; ; LIST OUTPUT ROUTINE ; LSTOT: PUSH H ; LXI H,LOTBL ;GET THE CORRECT TABLE DOLST: LDA IOBYTE ;GET THE F/O BYTE RLC ;SHIFT IT INTO POSTION RLC ; RLC ; JMP DCOM ;CONTINUE ; ; LIST OUTPUT STATUS ROUTINE ; LSTST: PUSH H ;SAVE HL LXI H,LSTBL ;POINT AT THE LIST STATUS TABLE JMP DOLST ;CONTINUE ; ; COMMON CODE TO ROUTE TO ROUTINES ; CCOM: LDA IOBYTE ;GET THE I/O BYTE RLC ;SHIFT IT OVER DCOM: ANI 6 ;MASK IT OFF PUSH D ;SAVE IT MOV E,A ;SET IT MVI D,0 ;CLEAR HIGH ORDER DAD D ;POINT TO ROUTINE MOV E,M ;GET THE LOW BYTE OF ROUTINE INX H ;POINT TO NEXT MOV D,M ;GET IT XCHG ;PUT ROUTINE ADDR IN H-L POP D ;RESTORE XTHL ;RESTORE H-L PUT ADDR ON STACK RET ;GO TO THE ROUTINE ; ; CONSOLE INPUT ROUTINES ; CITBL: DW SAIN ;0 - TTY: DW KYBIN ;1 - CRT: DW RDRIN ;2 - BAT: DW SBIN ;3 - UC1: ; ; CONSOLE INPUT STATUS ROUTINES ; CSTBL: DW SAIST ;0 - TTY: DW KYBST ;1 - CRT: DW RDRST ;2 - BAT: DW SBIST ;3 - UC1: ; ; CONSOLE OUTPU!Ô!ðC ;GET THE CHARACTER BACK IN CASE RET ;NOW LEAVE ; ; INPUT STATUS CHECK FOR SIO - PORT A ; SBIST: MVI A,10H ; OUT SIOBS ;EXTERNAL CONDITION RESET OUT SIOBS ; IN SIOBS ;GET THE STATUS ANI SIORB ;CHECK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;THERE IS A CHARCTER READY RET ; ; ; OUTPUT TO SIO PORT B ; SBOUT: CALL SBOST ;IS THE XMIT BUFFER EMPTY? JZ SBOUT ;NO, WAIT MOV A,C ;GET THE CHARACTER OUT SIOBD ;PUT THE CHARACTER OUT RET ;AND LEAVE ; ; OUTPUT STATUS FOR SIO PORT B ; SBOST: MVI A,10H ; OUT SIOBS ;RESET EXTERNAL CONDITION OUT SIOBS ; IN SIOBS ;GET THE STATUS LXI H,SBOMK ;POINT AT THE MASK ANA M ;MASK OFF THE WANTED BITS INX H ; CMP M ;CHECK TO SEE IF READY JZ SBORD ;YES XRA A ;SET NOT READY RET ;AND LEAVE SBORD: MVI A,0FFH ;SET READY ORA A ; RET ;AND LEAVE ; ; PARALELL PRINTER ROUTINES ; PRTST: IN PO1BD ;GET THE STATUS INFORMATION ANI 30H ;IS THERE A PRINTER THERE? RZ ;NO, JUST LEAVE IN PO1BD ;GET THE STATUS AGAIN!«ITS ; C CONTAINS THE DATA (X-Y) BITS ; MOV A,E ; ANI 3 ;SAVE JUST THE SHFIT AND CONTROL BITS MOV E,A ; MVI B,0 ;CLEAR MOV D,B ;HIGH ORDER BYTES LXI H,KYTBL ;POINT AT THE TABLE DAD D ;POINT TO THE PROPER DAD D ;TABLE ADDRESS MOV E,M ;GET THE CORRECT TABLE ADDRESS INX H ; MOV D,M ; XCHG ; DAD B ;INDEX TO THE PROPER CHARACTER MOV A,M ;GET THE CHARACTER MOV C,A ;SAVE IT JUST IN CASE ORA A ;IS IT A NULL (UNDEFINED) JZ KYBIN ;NOT VALID - RESTART THE PROCESS ; ; CHECK FOR ALPHA LOCK PROCESSING ; CPI 'a' ;CHECK THE RANGE RC ;NO CPI 'z'+1 ; RNC ;NOT IN THE ALPHA RANGE IN KYBDS ;GET THE STATUS BACK ANI KYALP ;CHECK FOR ALPHA LOCK DOWN MOV A,C ;GET THE CHARACTER BACK RZ ;NO ALPHA LOCK - LEAVE ANI 5FH ;MAKE THIS UPPER CASE MOV C,A ;SAVE IT RET ;AND LEAVE ; ; VIDEO CONTROLLER STATUS CHECK ; VDOST: IN VSTAT ;GET THE VIDEO STATUS ANI VLRDY ;ARE WE READY FOR A CHARACTER? RZ ;NO MVI A,0FFH ;YES RET ; ; ; VIDEO CONTROLLER OUTPUT ROUTINE ; VIDEO!/ CMA ;MAKE THE SIGNAL A HI TRUE READY SIGNL ANI 04H ;IS IT READY FOR A CHARACTER? RZ ;NOT YET MVI A,0FFH ;YES, SET ALL BITS IN CASE RET ;AND LEAVE ; ; OUTPUT THE CHARACTER IN REG C TO THE PRT ; PRTOT: LXI H,PIO1 ;POINT AT THE CONTROL BLOCK MOV A,M ;GET THE CONTROL FLAG ANI 02 ;SOFTWARE FORM FEED? JZ PRTO10 ;NO MOV A,C ;YES, GET THE CHARACTER CPI LF ;IS IT A LINE FEED? JZ PRTF1 ;YES CPI FF ;IS IT A FORM FEED? JZ PRTF2 ; JMP PRTO10 ;NO, CONTINUE ; ; CHARACTER IS A LINE FEED ; PRTF1: INX H ;POINT AT CURRENT LINE INR M ;BUMP MOV A,M ;GET IT INX H ;POINT AT NEXT CMP M ;IS THIS THE END? DCX H ;BACKUP JNZ PRTO10 ;NO MVI M,0 ;RESET TO ZERO JMP PRTO10 ;CONTINUE ; ; PROCESS A FORM FEED ; PRTF2: INX H ;POINT AT CURRENT LINES MOV D,M ;GET THE CURRENT NUMBER OF LINES MVI M,0 ;CLEAR IT INX H ;POINT AT TOTAL MOV E,M ;GET THE TOTAL DCX H ;POINT BACK PRTF3: MOV A,D ;GET THE CURRENT CMP E ;ARE WE DONE YET? RZ ;YES PUSH D ;SAVE MVI C,LF ;OUTPUT A LI!: DI ; DW SSPD,SVDSTK ;SAVE THE OLD STACK LXI SP,VDSTK;GET OUR OWN PUSH H ; PUSH D ; PUSH B ; EI ;ENABLE CALL GTCUR ;GET THE CURSOR POSITION IN HL LDA ESCFL ;GET THE ESCAPE FLAG ORA A ;IS IT SET? JNZ ESCPR ;YES, PROCESS THE NEXT CHARACTER MOV A,C ;GET THE CHARACTER ANI 7FH ;PARITY BIT MUST NOT BE ON CPI 7FH ;CHECK FOR A RUBOUT JZ VRET ;RUBOUT IS A NO-OPERATION CPI 07H ;BELL? JZ BELL ; CPI 08H ;BACKSPACE? JZ VLEFT ;CURSOR LEFT CPI 0AH ;IS IT LINE FEED? JZ VDOWN ;LINE FEED - CURSOR DOWN CPI 0BH ;UP? JZ VUP ;CURSOR UP CPI 0CH ; JZ VRIGH ;CURSOR RIGHT CPI 0DH ; JZ VCR ;CARRIAGE RETURN CPI 1AH ; JZ VCLR ;CLEAR THE VIDEO CPI 1EH ; JZ VHOME ;HOME THE CURSOR CPI 01BH ; JZ VESC ;ESCAPE - BEGIN SPECIALS CPI ' ' ;IS IT A "NON PRINTING" CHARACTER? JC VRET ;YES, DONT PUT IT IN ; ; THIS IS NOT A SPECIAL CHARACTER ; VINSR: LDA REVFL ;GET THE REVERSE FLAG XRA C ;COMBINE THE CHARACTER MOV C,A ;PUT IT BACK CALL PTCHR ;PUT THE CHARACTER OUT MOV !jNE FEED CALL PROUT ;NO, PUT OUT A LINE FEED POP D ;GET IT BACK INR D ;BUMP THE COUNT JMP PRTF3 ;CONTINUE ; ; ACTUAL OUTPUT ROUTINE ; PRTO10: LDA PIO1 ;GET THE FLAGS ANI 1 ;FILTER LINE FEEDS JZ PROUT ;NO MOV A,C ;YES, GET THE CHARACTER CPI LF ;IS IT LINE FEED? RZ ;YES ; ; AT LAST, THE REAL OUTPUT ROUTINE ; PROUT: CALL PRTST ;CHECK THE STATUS JZ PROUT ;NOT YET MOV A,C ;PRINTER IT READY - GET THE CHARACTER OUT PO1AD ;PUT IT OUT MVI A,00 ;PROVIDE A STROBE OUT PO1BD ; MVI A,02H ; OUT PO1BD ;CLEAR THE STROBE RET ;AND LEAVE ; ; CHECK KEYBOARD INPUT STATUS ; KYBST: IN KYBDS ;GET THE STATUS ANI KYRDY ;CHECK FOR READY RZ ;NOT YET MVI A,0FFH ;SET FOR READY RET ;AND LEAVE ; ; INPUT FROM THE KEYBOARD ROUTINE ; KYBIN: IN KYBDS ; MOV E,A ;GET IT AND SAVE IT ANI KYRDY ;GET STATUS JZ KYBIN ;LOOP IN KYBDD ;GET THE DATA ANI 7FH ;MASK OFF THE UNWANTED BITS CPI CTMAX ;IS IT VALID? JNC KYBIN ;NO, TRY AGAIN MOV C,A ;SAVE IT ; ; E CONTAINS THE STATUS B"O"“A,L ;GET THE CHARACTER POSITON CPI 79 ;ARE WE NEAR THE END OF THE LINE JNC VNWL ;NEW LINE ; ; ; UDRET: CALL INRCP ;BUMP THE CHARACTER POSITION ; ; COMMON RETURN POINT ; VRET: CALL PTCUR ;PUT THE CURSOR OUT VCRET: DI ; POP B ;RESTORE POP D ; POP H ; DW LSPD,SVDSTK ;RESTORE EI ; RET ;LEAVE THE SUBROUTINE ; ; MOVE THE CURSOR UP ONE LINE ; VUP: CALL DCRLN ;BACKUP ONE LINE JMP VRET ;AND LEAVE ; ; NEW LINE ; VNWL: MVI L,0 ; ; ; MOVE CURSOR DOWN ONE LINE ; VDOWN: LDA LSTLN ;GET THE LAST LINE DISPLAYED CMP H ;ARE WE ON THAT ONE? JNZ VDWN1 ;NO CALL SCROL ;YES, SCROLL IT JMP VRET ;AND LEAVE VDWN1: CALL INRLN ;BUMP THE LINE JMP VRET ;AND LEAVE ; ; CURSOR LEFT ONE CHARACTER POSITION ; VLEFT: CALL DCRCP ;BACK UP ONE CHARACTER POSITION JMP VRET ;AND LEAVE ; ; CURSOR RIGHT ONE CHARACTER POSITION ; VRIGH: CALL INRCP ; JMP VRET ; ; ; DO A CARRIAGE RETURN - RETURN THE CURSOR TO THE ; BEGINNING OF THE LINE - DO NOT CLEAR THE LINE ; VCR: MVI L,0 ;CLEAR THE CH"9ADD B ;COMBINE CPI 24 ;DID WE WRAP AROUND? JC YCOR3 ;NO SUI 24 ;YES YCOR3: STA YHOLD ;HOLD THIS VALUE MVI A,0FFH ;SET FOR NEXT TIME ; ; SET FLAG FOR SECONDARY ROUTING ; POSCR: STA ESCFL ;SET FOR X VALUE JMP VCRET ;AND RETRUN ; ; CLEAR THE SCREEN ; ESSCL: XRA A ; STA ESCFL ;CLEAR THE FLAG JMP VCLR ;CLEAR THE SCREEN ; ; SET REVERSE VIDEO ; STREV: MVI A,80H ; STA REVFL ; JMP ESCRT ;CLEAR AND RETURN ; ; CLEAR REVERSE VIDEO ; CLREV: XRA A ; STA REVFL ; JMP ESCRT ; ; ; ERASE TO END OF THE CURRENT LINE ; ESEOL: CALL VEOL ;CLEAR TO THE END OF THE LINE JMP ESCRT ;AND LEAVE ; ; ERASE TO END OF PAGE ; ESEOP: PUSH H ;SAVE CALL VEOL ; POP H ;GET IT BACK LDA LSTLN ;GET THE LAST LINE NUMBER CMP H ;HAVE WE DONE THE LAST LINE JZ ESCRT ;YES MVI L,0 ;NO, START AT THE BEGIN OF NEXT CALL INRLN ;BUMP THE LINE JMP ESEOP ;CONTINUE ; ; COMMON ESCAPE SEQUENCE EXIT ROUTINE ; ESCLR: XRA A ; STA ESCFL JMP VRET ;UPDATE CURSOR AND LEAVE ; ; COMMON ESCAPE SEQUENCE E"‚ARACTER POSITION JMP VRET ;AND LEAVE ; ; CLEAR EVERYTHING ; VCLR: LXI H,0 ;SET FOR THE TOP MVI C,' ' ;SET FOR A BLANK VCLR1: CALL PTCHR ;CLEAR THE LINE CALL INRCP ;BUMP THE LINE MOV A,H ;GET IT ORA L ; JNZ VCLR1 ;KEEP GOING MVI A,23 ; STA LSTLN ;RESET LAST LINE OUT VCIR6 ;MAKE SURE WE AGREE JMP VRET ;UPDATE AND LEAVE ; ; HOME THE CURSOR TO THE TOP OF THE DISPLAY ; VHOME: LDA LSTLN ;GET THE CURRENT LAST LINE MOV H,A ;SET THIS VALUE MVI L,0 ;ASSUME FIRST POSITION CALL INRLN ;POINT TO THE TOP LINE ON THE DISPLAY JMP VRET ;AND LEAVE ; ; CHARACTER WAS AN ESCAPE - BEGIN THE ESCAPE SEQUENCE ; VESC: STA ESCFL ;SET THE FLAG JMP VCRET ;AND JUST LEAVE ; ; THIS IS THE FIRST CHARACTER FOLLOWING AN ESCAPE ; THIS ROUTINE WILL ANSWER TO SEVERAL DIFFERENT ; ESCAPE CODE SEQUENCES ; ESCPR: CPI ESC ;IS THIS THE FIRST CHARACTER AFTER ESC JNZ ESCNX ;NO, POSITIONING SEQUENCE MOV A,C ;GET THE CHARACTER ANI 7FH ;JUST IN CASE CPI '=' ; JZ POSCR ;CURSOR POSITIONING COMMAND "BXIT - NO CURSOR UPDATE ; ESCRT: XRA A ; STA ESCFL ;CLEAR THE FLAG JMP VCRET ;AND LEAVE ; ; PROCESS A BELL CODE ; BELL: LXI H,BEEPC ;POINT AT THE BEEPER MOV A,M ;GET THE COUNT ORA A ;IS IT SET? JNZ VCRET ;YES, LEAVE LDA BPCNT ;GET THE BEEPER CONTROL ORA A ;SET IT SET? JZ VCRET ;NO, NO BEEPER DI ; MOV M,A ;SET THE BEEPER LXI H,MTRFL ;GET THE FLAG MOV A,M ;GET IT ORI BEEPR ;SET THE BIT OUT SYSCN ;SET CONTROL MOV M,A ;PUT IT BACK CALL STINT ;SET OUR INTERRUPTS EI ; JMP VCRET ;NOW LEAVE ; ; CONTROLLER UTILITIES ; GTCUR: IN VCRCC ;GET THE CHARACTER POSITION ANI 07FH ;MASK IT OFF MOV L,A ;SAVE IT IN VCRCL ;GET THE LINE POSITION ANI 1FH ;MASK IT MOV H,A ;SAVE IT RET ;AND LEAVE ; ; SET A NEW CURSOR POSITION ; PTCUR: MOV A,H ;DO LINE FIRST ANI 1FH ;MASK IT OUT VCWCL ;GIVE IT TO THE CONTROLLER MOV A,L ;GET THE CHARACTER POSITION ANI 07FH ;MASK IT OUT VCWCC ;PUT IT OUT RET ;AND LEAVE ; ; PUT THE CHARACTER IN C REG TO THE VIDEO MEMORY ; PTC"ÏCPI '+' ; JZ ESSCL ;SCREEN CLEAR? CPI '*' ; JZ ESSCL ;SCREEN CLEAR? CPI ')' ; JZ STREV ;SET REVERSE? CPI '(' ; JZ CLREV ;CLEAR REVERSE? CPI 'T' ; JZ ESEOL ;ERASE TO END OF LINE? CPI 'Y' ; JZ ESEOP ;ERASE TO END OF PAGE? CPI 'Z' ; JZ ESEOP ;ERASE TO END OF PAGE? ; JMP ESCRT ;UNKNOWN SEQUENCE ; ; THIS IT THE SECOND LEVEL ROUTING ; ESCNX: CPI '=' ;IS THIS FOLLOWING A '=' JZ YCOR ;YES, PROCESS CPI 0FFH ;ARE WE WAITING FOR THE Y COR JNZ ESCRT ;NO ; ; THIS IS THE X-AXIS VALUE FOR CURSOR POSITION ; XCOR: MOV A,C ;GET THE VALUE SUI 20H ;ADJUST IT CPI 80 ; JC XCOR2 ;INVALID MVI A,79 ;RESET TO MAC XCOR2: MOV L,A ;SET IT LDA YHOLD ;GET THE Y VALUE MOV H,A ;SET IT JMP ESCLR ;CLEAR AND UPDATE CURSOR ; ; THIS IS THE Y-AXIS (LINE) VALUE FOR THE CURSOR POSITION ; YCOR: MOV A,C ;GET THE INPUT CHARACTER SUI 20H ;ADJUST THE VALUE CPI 24 ; JC YCOR2 ;INVALID MVI A,23 ;TEST YCOR2: MOV B,A ;SAVE IT LDA LSTLN ;GET THE ADJUSTMENT INR A ;MAKE IT THE TOP LINE #Æ#‡HR: IN VSTAT ;GET THE MEMORY LATCH STATUS ANI VLRDY ;IS IT EMPTY? JZ PTCHR ;NO, WAIT MOV A,L ;GET THE CHARACTER POSITION OUT VMCHP ; MOV A,H ; OUT VMLIN ; MOV A,C ;GET THE CHARACTER OUT VMDAT ;WRITE THE CHARACTER RET ;NOW WE CAN LEAVE ; ; INCREMENT THE CHARACTER POINTER ; INRCP: INR L ;BUMP THE CHARACTER POSITION MOV A,L ;GET IT BACK CPI 80 ;ARE WE AT THE END? RC ;NO MVI L,0 ;CLEAR TO FIRST ; ; INCREMENT THE LINE NUMBER ; INRLN: INR H ;BUMP THE LINE NUMBER MOV A,H ;GET IT CPI 24 ;ARE WE AT THE END? RC ; MVI H,0 ;CLEAR THE FIRST RET ;AND LEAVE ; ; DECREMENT THE CHARACTER POSITION ; DCRCP: DCR L ;BACK UP MOV A,L ;GET IT CPI 80 ;DID WE WRAP AROUND? RC ;NO MVI L,79 ;YES, SET TO END OF LINE ; ; DECREMENT THE LINE NUMBER ; DCRLN: DCR H ;BACK UP MOV A,H ;GET IT CPI 24 ;DID WE WRAP AROUND? RC ;NO MVI H,23 ;YES, RESET RET ; ; SCROLL ; SCROL: LDA LSTLN ;GET THE LAST LINE MOV H,A ;PUT IT IN LINE NUMBER CALL INRLN ;POINT TO THE NEW TOP #eM‡K PARAMTER ADR DAD D ;POINT AT ADDR FOR PARAMETERS MOV E,M ;GET THE TABLE ADDRESS INX H ; MOV D,M ;GET IT POP H ; RET ; ;**'* ; ; LOGICAL DISK READ ROUTINE ; ;**Ô* ; READ: XRA A STA UNACNT ;CLEAR THE UNALLOCATED COUNT 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 ; ;**#* ; ; LOGICAL WRITE ROUTINE ; ;**ÿ* ; WRITE: 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 ; ; THIS IS THE FIRST WRITE TO AN UNALLOCATED BLOCK. ; SET THE PARAMETERS ;Œ LDA ALLSZ ;GET THE ALLOCATION SIZE STA UNACNT LXI D,UDSK ;POINT WHERE LXI H,CDISK ;POINT WHAT LXI B,4 ;SET THE SIZE DW LDIR ;PU#™ MOV A,H ;GET IT STA LSTLN ;AND SET PUSH H ;SAVE IT MVI L,0 ;START AT THE BEGINNING CALL VEOL ;ERASE TO END OF LINE IN VCSCR ;SCROLL POP H ;RESTORE HL RET ;AND LEAVE ; ; ERASE TO END OF LINE ; VEOL: MVI C,' ' ;ASSUME A BLANK VEOL1: CALL PTCHR ;PUT IT CALL INRCP ;BUMP IT MOV A,L ;GET THE NEW POSITION ORA A ;IS IT THERE? JNZ VEOL1 ;NO RET ;AND LEAVE ; ; SYSTEM LEVEL DISK OPERATIONS ; ; ; SET THE NEXT TRACK TO ZERO ; SETHOM: LXI B,0 ;SET TRACK FOR ZERO LDA HSTWRT ;CHECK FOR PENDING WRITE ORA A JNZ SETTRK ;WRITE IN PROGRESS STA HSTACT ;CLEAR HOST ACTIVE FLAG ; ; SET THE LOGICAL TRACK NUMBER ; SETTRK: MOV H,B ;SET THE HIGH ORDER MOV L,C ;SET THE LOW ORDER SHLD TRACK ;SET THE TRACK ADDRESS RET ; ; SET DMA ADDRESS ; SETDMA: MOV H,B ;ADDRESS TO HL MOV L,C SHLD DMAAD ;STORE ADDRESS RET ; ; DONT DO THE SECTOR TRANSLATION AT THIS LEVEL ; SCTRN: MVI H,0 ; MOV L,C ; RET ; ; ; SET THE LOGICAL SECTOR NUMBER ; SETSEC: MOV A,C ;SET LOW ORDER STA#âÛÿT IT OVER ; CHKUNA: LDA UNACNT ;ANY UNALLOC REMAIN? ORA A JZ ALLOC ;SKIP IF NOT ; ; MORE UNALLOCATED RECORDS REMAIN ; DCR A ;UNACNT = UNACNT-1 STA UNACNT ; ; MAKE SURE LOGICAL DISK ADDRESS IS THE SAME ; LXI H,CDISK ;POINT AT BEGINNING OFÿ LOGICAL LXI D,UDSK ;AND UNA LXI B,4 ;SET THE COUNT CALL MCMP ; JNZ ALLOC ;NOT THE SAME ; ; MATCH, MOVE TO NEXT SECTOR FOR FUTURE REF ; LXI H,USEC ; INR M ;UNASEC = UNASEC+1 LDA CPMSPT ;GET THE SIZE DCR A ; CMP M ;CHECK FOR END OF TRAÿCK JNC NOOVF ;SKIP IF NO OVERFLOW ; ; OVERFLOW TO NEXT TRACK ; MVI M,0 ;UNASEC = 0 LHLD UTRK ;GET THE UNALLOC TRAK NUMBER INX H SHLD UTRK ;UPDATE IT ; ; MATCH FOUND, MARK AS UNNECESSARY READ ; NOOVF: XRA A ;0 TO ACCUMULATOR STA RSFLAG ;ÆRSFLAG = 0 JMP RWOPER ;TO PERFORM THE WRITE ; ; NOT AN UNALLOCATED RECORD, REQUIRES PRE-READ ; ALLOC: XRA A ;0 TO ACCUM STA UNACNT ;UNACNT = 0 INR A ;1 TO ACCUM STA RSFLAG ;RSFLAG = 1 ;** * ;* #> SECTOR ;SET THE SECTOR ADDRESS RET ;THAT'S ALL PAGE ; ; SET LOGICAL DISK DRIVE ; SETDSK: LXI H,0 ;ASSUME BAD MOV A,C ;GET THE DRIVE NUMBER CPI MXDSK+1 ; JNC STDER STA CDISK ;SET IT CALL GTPNT ; MOV A,D ORA E JZ STDER SHLD DPPNT ;SET THE DISK POINTER PUSH H ;SAVE THIS LDAX D ;GET THE CPM VALUE OF SECTOR/TRAK STA CPMSPT ;SET IT LXI H,OALSZ ;GET THE OFFSET TO ALLOCATION SIZE DAD D ; MOV A,M ;GET IT INR A ;BUMP IT STA ALLSZ ;AND SET IT LXI H,OSCSM ;POINT AT SECTOR MASK DAD D ; MOV A,M ;GET IT STA SECMSK ;SET THE MASK INX H ; MOV A,M ; STA SECSHF ; POP H ;RESTORE POINT RET ;NOW LEAVE ; STDER: XRA A LXI H,0 RET ; ; GET POINTERS ; GTPNT: MOV L,A ;L=DISK NUMBER 0,1,2,3 MVI H,0 ;HIGH ORDER ZERO DAD H ;*2 DAD H ;*4 DAD H ;*8 DAD H ;*16 (SIZE OF EACH HEADER) LXI D,DPBASE DAD D ;HL=.DPBASE(DISKNO*16) PUSH H ;SAVE THIS MOV C,M ;GET THE TRANSLATE TABLE INX H ; MOV B,M ; DCX H ;POINT BACK AT TOP LXI D,10 ;GET THE OFFSET TO DIS$y$Þ… 9 * ;* COMMON CODE FOR READ AND WRITE FOLLOWS * ;*  * ;**ÿ* ; RWOPER: DI ; DW SSPD,SRWSTK LXI SP,RWSTK;USE OUR STACK EI ; XRA A ;ZERO TO ACCUM STA ERFLAG ;NO ERRORS (YET) LDA SECSHF ;GET THE SHIFT FACTOR MOV C,A ;SAVE IT INR C ;BUMP IT LDA SECTOR ;GET THE LOGICAL SECTOR RWOPS: DCR C ;COUNTÿ DOWN JZ RWOPE ; ORA A ;CARRY = 0 RAR ;SHIFT RIGHT JMP RWOPS ;LOOP UNTIL DOWN RWOPE: STA REQSEC ;GET THE REQUIRED PHYSICAL SECTOR ; ; 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? ; LXI H,PDSK ;POINT AT PHYSICAL DISK LXI D,CDISK ;POINT AT REQUEST LXI B,3 ;SET THE SIZE CALL MCMP ;TEST, LEAVING HL => PSEC JNZ NOMATC ;NOT THE SAME ; ; S1AME DISK, SAME TRACK, SAME SECTOR? ; LDA REQSE$ÑVALUE JMP RWCOM ;COMMON ; ; WRITE A SECTOR ; DWRITE: MVI B,5 ;WRITE COMMAND MVI C,69H ; ; ; COMMON ROUTINE FOR READ AND WRITE ; RWCOM: MOV A,C ;GET THE DMA STA DMACM ;SET THE DMA COMMAND MOV A,B ;GET THE CONTROLLER WORD STA RWDCB ;SET IT MVI A,2 ; STA TOTRY ; LXI H,LDSK ;POINT AT THE LAST DISK WE PROCESSED LDA PDSK ;POINT AT THIS ONE CMP M ;IS IT THE SAME? CNZ SELDSK ;NO, SETUP THE PROPER JUNK LXI H,RWTRY ;POINT AT THE RETRY COUNT MVI M,RETRY ;SET IT INX H ;POINT AT THE COMMAND LDA RWDEN ;GET THE CURRENT DENSITY ORA M ;COMBINE IT WITH THE COMMAND MOV M,A ;SET THE COMMAND INX H ;POINT AT THE SELECT INX H ;POINT AT THE TRACK ; ; SET THE PHYSICAL TRACK NUMBER ; MOV B,M ;GET IT LDA PTRK ;GET THE TRACK NUMBER MVI C,0 ;ASSUME HEAD 0 CPI 80 ; JC DOTRK ;SIDE ZERO YET SUI 80 ;ADJUST IT INR C ; DOTRK: MOV M,A ;PUT IT IN SUB B ;TEST FOR A DIFFERENCE IN POSITION STA CHGTK ;SET THE FLAG INX H ;POINT AT THE HEAD BYTE ; ; PROCESS THE HEAD BIT ; MOV A$‹C ;POINT AT THE REQUESTED SECTOR CMP M JZ MATCH ;SKIP IF MATCH ; ; PROPER DISK, BUT NOT CORRECT SECTOR ; NOMATC: LDA HSTWRT ;HOST WRITTEN? ORA A JZ FILHST CALL DWRITE ;WRITE THE CURRENT BUFFER TO DISK XRA A STA HSTWRT ;CLEAR BUFFER WRITTEN FLAG ; ; MAY HAVE TO FILL THE HOST BUFFER ; FILHST: LXI D,PDSK ;POINT AT PHYSICAL DISK LXI H,CDISK ;POINT AT LOGICAL LXI B,3 ;SET THE SIZE DW LDIR ;MOVE IT OVER LDA REQSEC ;GET THE SECTOR STAX D ;PUT IT IN LDA RSFLAG ;NEED TO READ? ORA A CNZ DREAD ;YES, IF 1 ; ; COPY DATA TO OR FROM BUFFER ; MATCH: LDA SECTOR ;GET THE LOGICAL SECTOR NUMBER LXI H,SECMSK ;POINT AT MASK ANA M ;MASK IT OFF MOV L,A ;READY TO SHIFT MVI H,0 ;DOUBLE COUNT DAD H DAD H DAD H DAD H DAD H DAD H DAD H ; ; HL HAS RELATIVE HOST BUFFER ADDRESS ; LXI D,HSTBUF DAD D ;HL = HOST ADDRESS XCHG ;NOW IN DE LHLD DMAAD ;GET THE LOGICAL SECTOR LOCATION XCHG ; LXI B,128 ;SET THE LENGTH LDA READOP ;WHICH WAY? ORA A JNZ RWMOVE ;SKIP I$‡,M ;GET THE CURRENT HEAD MOV M,C ;SET THE HEAD BYTE SUB C ;FORM THE DIFFERENCE STA CHGHD ;SET THE HEAD CHANGED BYTE MOV A,C ;GET THE HEAD BIT BACK ADD A ; ADD A ; MOV C,A ; LDA RWSEL ;GET THE UNIT NUMBER ANI 03H ;MASK OFF ANY OLD HEAD VALUE ORA C ;SET THE HEAD SELECT BIT IN THIS BYTE STA RWSEL ;AND PUT IT BACK INX H ;POINT AT SECTOR BYTE ; ; TRANSLATE AND SET THE PHYISCAL SECTOR NUMBER ; PUSH H ;SAVE THE POINTER TO RWSEC LDA PSEC ;GET THE SECTOR MOV C,A ;SAVE IT MVI B,0 ;CLEAR HIGH ORDER INX B ;ASSUME WE HAVE NO TRANSLATION TABLE LHLD DXLTB ;GET THE TRANSLATE TABLE MOV A,H ;TEST FOR NO TRANSLATION ORA L ; JZ NOXLT ;CONTINUE DCX B ;NORMALIZE DAD B ;POINT AT THE ENTRY MOV C,M ;GET THE PROPER SECTOR NOXLT: POP H ;RESTORE POINTER MOV M,C ;PUT IN THE SECTOR ; ; CHECK MOTOR CONDITION ; CALL CKMTR ;CHECK THE MOTOR CONDITION ; ; CHECK FOR A REQUIRED SEEK ; LXI H,CHGTY ;POINT AT THE CHANGE FLAGS MOV A,M ;GET THE CHANGED DRIVE MVI M,0 ;CLEAR IT FOR N$dF READ ; ; WRITE OPERATION, MARK AND SWITCH DIRECTION ; MVI A,1 STA HSTWRT ;HSTWRT = 1 XCHG ;SOURCE/DEST SWAP ; ; BC INITIALLY 128, DE IS SOURCE, HL IS DEST ; RWMOVE: DW LDIR ;MOVE IT OVER ; ; DATA HAS BEEN MOVED TO/FROM HOST BUFFER ; LDA WRTYPE ;WRITE TYPE CPI WRDIR ;TO DIRECTORY? LDA ERFLAG ;IN CASE OF ERRORS JNZ RWRET ;ALL DONE ; ; CLEAR HOST BUFFER FOR DIRECTORY WRITE ; ORA A ;ERRORS? JNZ RWRET ;USE COMMON RETURN POINT XRA A ;0 TO ACCUM STA HSTWRT ;BUFFER WRITTEN CALL DWRITE ;WRITE THE BUFFER NOW LDA ERFLAG RWRET: DI ; DW LSPD,SRWSTK ; EI ;CONTINUE ORA A ;SET ZERO/NON ZERO FLAG RET ;AND LEAVE ; ; UTILITY COMPARE ROUTINE ; TEST FOR EQUALITY ONLY ; MCMP: LDAX D ;GET A BYTE CMP M ;COMPARE RNZ ;NOT EQUAL - JUST LEAVE INX H ;BUMP THE POINTERS INX D ; DCX B ;COUNT DOWN MOV A,B ;CHECK FOR ZERO ORA C ; JNZ MCMP ;NOT DONE YET RET ;ITS EQUAL ; ; READ A PHYSICAL SECTOR FROM DISK ; DREAD: MVI B,6 ;READ COMMAND MVI C,6DH ;SET THE DMA %ð%þEXT TIME INX H ; ORA M ;GET THE CHANGED HEAD INX H ; ORA M ;GET THE CHANGED TRACK JZ RWCMB ;SEEK NOT REQUIRED ; ; DISK COMMAND BLOCK IS SET UP ; OUTPUT THE DMA CONTROL AND THEN THE DISK CONTROL ; RWCMA: CALL SEEK ;SEEK TO THE CORRECT TRACK JNZ MDERR ;ERROR ; RWCMB: DI ; LXI H,DMACB ;POINT AT THE CONTROL BLOCK MVI B,DMCSZ ;SET THE NUMBER OF BYTES MVI C,DMAC ;SET THE PORT ADDRESS DW OUTIR ;GIVE THE COMMAND TO THE DMA CONTROLLER MVI A,60 ;.6 SEC - 3 REVOLUTIONS STA TMOUT ;SET FOR A 1 SEC TIMEOUT LXI H,RWDCB ;POINT AT THE BLOCK MVI C,9 ;GET THE COMMAND SIZE CALL DSKOT ;PUT IT OUT LXI H,DINTR ;POINT AT THE FLAG MVI M,0 ;CLEAR IT EI ; RWCMC: MOV A,M ;GET INDICATOR ORA A ;IS IT DONE YET? JZ RWCMC ;NO XCHG ;YES, OPERATION COMPLETE LXI H,DMARS ;POINT AT THE RESET COMMAND MVI C,DMAC ;GET THE ADDRESS MVI B,DMRLN ;SET THE LENGTH DW OUTIR ;PUT THE RESET COMMAND OUT XCHG ;PUT THE STATUS BACK IN DE INX H ;POINT AT THE STATUS AREA MOV A,M ;GET THE FIRST BYTE%[XI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; CALL CKMTR ;TURN THE MOTOR BACK ON JMP RWCMH ;TRY AGAIN CNTER: LXI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; JMP IOERT ;HAVE TO LEAVE ; ; GIVE IT UP - ERROR ; IOERT: XRA A ; STA HSTACT MVI A,0FFH ;SET ACC TO NON ZERO ORA A ;SET THE ZERO FLAGS ; ; READ/WRITE OPERATION IS COMPLETE ; RWCMP: PUSH PSW ;SAVE THE RESULT CALL CLMTR ;TURN THE MOTOR OFF POP PSW ;GET THE RESULT BACK LXI H,ERFLAG ;POINT AT THE FLAG ORA M ;COMBINE MOV M,A ;AND PUT IT BACK RET ;NOW LEAVE ; ; CLEAR THE MOTOR ; CLMTR: LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET IT ANI NOT ACTIV AND 0FFH ;CLEAR THE ACTIVE FLAG MOV M,A ;PUT IT BACK OUT SYSCN ;SET RET ; ; CHECK FOR A MOTOR ON AND SET FLAG ; CKMTR: LXI H,220 ;PICK THE RIGHT COUNT SHLD MTRCT ;SET THE TIMEOUT LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET THE FLAG ORI ACTIV ;SET THE ACTIVE FLAG MOV M,A ;PUT IT BACK OUT SYSCN ;SET THE FLOP ANI MTRON ;CHECK FOR MOTOR ON RNZ ;IS %Ò (ST0) ANI 0C0H ;WAS IT OK? JZ RWCMP ;ALL DONE ; ; ERROR HAS OCCURRED ; LDA RWTRY ;POINT AT THE RETRY COUNT DCR A ;COUNT DOWN STA RWTRY ;PUT IT BACK JZ MDERR ;ERROR MOV C,A ;SAVE THE RETRY COUNT ; MOV A,M ;DID THE DRIVE GO NOT READY? ANI 08H ; JNZ NTRDY ;YES INX H ;POINT AT ST1 WORD ; MOV A,M ;GET ST1 ANI 02 ;IS IT WRITE PROTECTED? JNZ WTPRT ;YES ; MOV A,C ;GET THE RETRY COUNT BACK CPI 4 ;ARE WE JUST ABOUT OUT? JZ RWCMK ;YES ; INX H ;POINT AT ST2 WORD MOV A,M ;GET ST2 ANI 10H ;WRONG CYLINDER? JNZ RWCMH ;YES, HOME THE DRIVE AND TRY AGAIN ; MOV A,C ;GET THE RETRY COUNT BACK ANI 03 ; JNZ RWCMB ; ; RWCMR: CALL ROCK ;SHIFT THE HEADS JNZ MDERR JMP RWCMA ;TRY AGAIN ; RWCMK: CALL KICK ;LAST ATTEMPT ; RWCMH: CALL HOME ;RECALIBRATE THE DRIVE JNZ MDERR ;ERROR OCCURRED JMP RWCMA ;TRY AGAIN ; MDSK: DB CR,ESC,'T','Drive ',0 MNRDY: DB ' is not responding',0 MWPRT: DB ' is write protected',0 MDKER: DB ' error detected',0 MQUE: DB '. Please reinse%‡ON MOV A,M ;GET THE CONTROL FLAG ORI MTRON ;SET THE MOTOR ON BIT MOV M,A ;PUT IT BACK OUT SYSCN ;AND SET THE LATCH CALL STINT ;SET THE CLOCK INTERRUPTING LXI H,CLOCK ;SET THE CLOCK FOR .20 MVI M,20 ; EI CKMTR1: MOV A,M ;GET IT ORA A ; JNZ CKMTR1 ;WAIT UNTIL ITS TIME RET ;AND LEAVE ; ; SET THE REAL TIME CLOCK INTERRUPTING ; STINT: DI ;DONT STOP US NOW MVI A,0A5H ; OUT CTC0 ;SET THE CLOCK JOB MVI A,156 ;APPROXIMATLY 1/100 OUT CTC0 ; RET ; ; SELECT THE DISK DRIVE ; SET TO PERFORM A SEEK EACH TIME WE CHANGE DRIVE TYPES ; SELDSK: MOV E,M ;GET THE LAST DISK/TYPE MOV M,A ;SET THE NEW DRIVE/TYPE ANI 1 ;MASK OFF THE PHYSICAL UNIT NUMBER STA RWSEL ;SET THE PROPER SELECT VALUE MOV A,E ;GET THE LAST TYPE USED ANI 0FEH ;STRIP OFF THE UNIT MOV E,A ;AND SAVE IT MOV A,M ;GET THE CURRENT TYPE ANI 0FEH ;DO THE SAME SUB E ;FORM THE TYPE DIFFERENCE STA CHGTY ;SAVE THE TYPE CHANGE FLAG RZ ;TYPE DID NOT CHANGE - JUST LEAVE ; MOV A,M ;GET THIS CURRENT DISK CALL%ært diskette,' DB ' push any key to retry' DB 0 MCAN: DB CR,ESC,'T',0 ; ; MEDIA ERROR ; MDERR: LXI H,MDKER JMP PRCER ; ; DRIVE NOT READY ; NTRDY: LXI H,TOTRY ; DCR M ; JNZ RWCMB ;NOT YET LXI H,MNRDY ;POINT AT THE NOT READY MESSAGE JMP PRCER ; ; ; DISKETTE IS WRITE PROTECTED ; WTPRT: LXI H,MWPRT ;POINT AT THE MESSAGEE JMP PRCER ; ; ; COMMON ERROR PROCESSING ; PRCER: PUSH H ;SAVE THE MESSAGE MVI A,RETRY ; STA RWTRY ;RESET THE RETRY COUNT CALL CLMTR ;CLEAR THE MOTOR LXI H,MDSK ;POINT AT IT CALL PRNMSG ; LDA PDSK ;GET THE DRIVE NUMBER WE ARE USING ADI 'A' ;ADJUST MOV C,A ;SAVE IT CALL CONO ;PRINT IT TOO POP H ; CALL PRNMSG ;PRINT THE MESSAGE LXI H,MQUE ;GET THE QUESTION CALL PRNMSG ;PRINT IT PRCR1: CALL CONS ; ORA A ; JZ PRCR2 ;WASTE ANY EXTRA CHARACTERS CALL CONI ; JMP PRCR1 ; PRCR2: CALL CONI ;GET REPLY CPI 03H ;CONTROL C? JZ WBOOT ; CPI ESC ;ESCAPE? JZ WBOOT ;ERROR ANI 5FH ;MAKE IT UPPER CASE CPI 'C' ;CONTINUE? JZ CNTER RTER: L&k&~ GTPNT ;GET THE CURRENT POINTERS MOV H,B ;GET THE TRANSLATE POINTERS MOV L,C ; SHLD DXLTB ;SET THE TABLE ADDRESS XCHG ; SHLD DVPNT ;GET THE DEVICE PARAMETER POINTER LXI D,OSCSZ ;POINT AT SECTOR SIZE DAD D ;POINT AT THEM MOV E,M ;GET THE SECTOR SIZE INX H ; MOV D,M ; INX H ; ; XCHG SHLD DMASZ ;SET THE SIZE XCHG ; LXI B,DSKPS ;SET THE SIZE LXI D,RWSIZ ;POINT WHERE IT GOES DW LDIR ;MOVE IT OVER RET ;NOW LEAVE ; ; HOME (RECALIBRATE) THE DISK DRIVE ; HOME: MVI B,07H ;SET THE COMMAND MVI C,02H ;SET THE SIZE MVI D,0 ;SET FOR TRACK ZERO JMP SEKCM ;CONTINUE ; ; ROCK THE DRIVE POSITION ; ROCK: LDA SKTRK ;GET THE LAST SEEK TRACK MOV C,A ;SAVE IT LDA RWTRY ;GET THE RETRY COUNT RAR ; RAR ; ANI 1 ;SET THE FLAGS MVI A,1 ;SET +1 JNZ ROCK1 ;ODD OR EVEN? MVI A,0FFH ;MAKE IT -1 ROCK1: ADD C ; JP ROCK2 ; MVI A,5 ;SET FOR TWO ROCK2: CPI 80 ;CHECK FOR MAX JC SEEK1 ;CONTINUE KICK: MVI A,78 ; JMP SEEK1 ;CONTINUE ; ; SEEK TO THE PROPER TRACK ; SEEK&d1: MVI M,0 ;CLEAR INX H ; DCR A ;COUNT DOWN JNZ DSKI1 ;CONTINUE POP H ;RESET TO THE TOP MVI M,80H ;SET FOR INVALID ERROR IN CASE DSKI2: IN DSKS ;GET THE STATUS ADD A ;TEST JNC DSKI2 ;NOT READY RP ;NOT IN INPUT - MUST BE DONE IN DSKD ;GET THE BYTE MOV M,A ;PUT IT IN INX H ;BUMP JMP DSKI2 ;TRY SOME MORE ; ; SERVICE DMA COMPLETE INTERRUPT ; SRVDMA: PUSH PSW ;SAVE IT MVI A,083H ;DISABLE DMA OUT DMAC ; MVI A,8BH ;RESET STATUS OUT DMAC ; MVI A,0A3H ;RESET INTERRUPT COMMAND OUT DMAC ; POP PSW ; EI ; DW RETI ; ; ; DISK CONTROLLER INTERRUPT ; IDSK: DW SSPD,SDKSTK ; LXI SP,DKSTK PUSH PSW ;SAVE PSW PUSH H ;SAVE HL XRA A ; STA TMOUT ;CLEAR THE OPERATION TIMEOUT EI ; IN DSKS ;GET THE CURRENT STATUS ORI 20H ; STA DINTR ; IDSK1: IN DSKS ;GET THE STATUS ADD A ;TEST JNC IDSK1 ;WAIT JM IDSK2 ;CONTINUE MVI A,08H ;GET THE SENSE INTERRUPT COMMAND OUT DSKD ;GIVE THE COMMAND IDSK2: CALL DSKIN ;GET THE CURRENT STATUS DI POP H ;RESTORE POP PSW &l: LDA RWSKP ;GET THE TRACK SKIP FLAG ORA A ;SET ZERO FLAG LDA PTRK ;GET THE TRACK JZ SEEK2 ;SKIP OR NOT ADD A ;IF FLAG IS SET, USE EVERY OTHER ONE SEEK2: CPI 80 ; JC SEEK1 ; SUI 80 ; SEEK1: MOV D,A ;SET THE TRACK TO SEEK ORA A ;IS IT ZERO JZ HOME ;YES - USE THE RECAL COMMAND MVI B,0FH ;SET THE COMMAND MVI C,03H ;AND THE SIZE ; ; COMMON CODE FOR SEEK AND RECALIBRATE ; SEKCM: LXI H,SKTRY ;POINT AT OUR CONTROL BLOCK MVI M,3 ;SET THE SEEK RETRY COUNT INX H ;POINT AT THE SIZE MOV M,C ;SET THE SIZE INX H ; MOV M,B ;SET THE COMMAND INX H ; LDA RWSEL ;GET THE SELECT MOV M,A ;SET IT IN INX H ;POINT AT THE NEXT MOV A,D ;GET THE TRACK MOV M,D ;SET THE TRACK TO SEEK CPI 80 ; JC SKCM1 ;OK MVI M,79 ;SET FOR MAX SKCM1: DI MVI A,100 ;SET FOR 1.0 SEC TIME OUT STA TMOUT ; LXI H,SKSIZ ;POINT AT THE SIZE MOV C,M ;GET IT INX H ;POINT AT THE CONTROL BLOCK CALL DSKOT ;PUT IT OUT LXI H,DINTR ;GET THE INDICATOR MVI M,0 ;CLEAR THE INTERRUPT INDICATOR EI ;ENABLE &E;RESTORE DW LSPD,SDKSTK ;RESTORE STACK EI ;ENABLE AGAIN DW RETI ;NOW LEAVE ; ; CTC INTERRUPT ERROR ; INTER: EI ; DW RETI ;NOW LEAVE ; ; TIMER ROUTINE ; TIME: PUSH PSW ;SAVE ACC PUSH H ;SAVE HL EI ;ENBABLE FOR HIGHER PRIORITY ; ; DO CLOCK ; LXI H,CLOCK ; MOV A,M ;GET IT ORA A ;IS IT ZERO? JZ TIME1 ;YES DCR M ;NO, COUNT DOWN ; ; DO OPERATION TIMEOUT ; TIME1: LXI H,TMOUT ; MOV A,M ;GET IT ORA A ; JZ TIME2 ;ALREADY ZERO DCR M ;COUNT DOWN JNZ TIME2 ;CONTINUE ; ; OPERATION HAS TIMED OUT ; MVI M,100 ;SET FOR ANOTHER SECOND LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET THE FLAG ANI NOT MTRON AND 0FFH ;TURN OFF THE MOTOR BIT OUT SYSCN ;CLEAR THE CONTROL MOV A,M ;GET THE PROPER ONE BACK OUT SYSCN ;RESTORE THE PROPER BIT ; ; PROCESS THE MOTOR ON TIMER ; TIME2: LXI H,MTRFL ;POINT AT THE FLAG MOV A,M ;GET IT ANI ACTIV+MTRON ;DO WE NEED TO CHECK? JZ TIME3 ;NO ANI ACTIV ;ARE WE ACTIVE? JNZ TIME3 ;IN PROGRESS LHLD MTRCT ;GET THE COUNT DC&ùINTERRUPTS SKCM2: MOV A,M ;GET THE FLAG ORA A ;IS IT SET YET JZ SKCM2 ;CONTINUE TO LOOP INX H ;POINT AT THE STATUS WORD MOV A,M ;GET THE ST0 WORD ANI 0D0H ;CHECK FOR ERRORS JZ SKCMP ;YES, DONE LXI H,SKTRY ;ERRORS DCR M ;TRY AGAIN JNZ SKCM1 ; ORA A ;SET NON ZERO RET ;THATS ALL FOLKS ; ; SEEK IS COMPLETE ; SKCMP: LXI H,CLOCK ; MVI M,10 ;SET FOR AROUND A HALF REVOLUTION SKCMP1: MOV A,M ; ORA A ; JNZ SKCMP1 ;WAIT FOR THE HEADS TO SETTLE RET ; ; ; OUTPUT THE COMMAND TO THE FDC ; DSKOT: IN DSKS ;GET THE STATUS ADD A ; JNC DSKOT ;TRY AGAIN JM DSKO1 ;NOT READY FOR OUTPUT RAL ;SHIFT RAL ;CHECK BUSY JC DSKOT ;NOT YET MOV A,M ;GET THE BYTE OUT DSKD ;PUT IT OUT INX H ;BUMP FOR NEXT DCR C ;COUNT DOWN JNZ DSKOT ;NOT DONE YET RET ;ALL DONE DSKO1: PUSH H ;SAVE IT CALL DSKIN ;GET THE INPUT POP H ;GET IT BACK JMP DSKOT ;CONTINUE ; ; GET THE COMPLETED STATUS ; DSKIN: LXI H,WKST0 ;POINT AT THE HOLD AREA PUSH H ;SAVE IT MVI A,7 ;SET THE SIZE DSKI'â'¶¿ÿX H ;COUNT DOWN SHLD MTRCT ;PUT THE COUNT BACK MOV A,H ;CHECK FOR ZERO ORA L ; JNZ TIME3 ;NOT AT ZERO YET LDA MTRFL ;GET THE MOTOR WORD BACK ANI NOT MTRON AND 0FFH ;CLEAR MOTOR ON OUT SYSCN ;TURN IT OFF STA MTRFL ;CLEAR THE MOTOR ON ; ; ÿCHECK THE BEEPER ; TIME3: LXI H,BEEPC ;POINT AT THE COUNTER MOV A,M ;GET IT ORA A ;IS IT SET? JZ CLBEP ;NO DCR M ;COUNT DOWN JNZ TIMEC ;CONTINUE CLBEP: LXI H,MTRFL ;GET THE FLAG MOV A,M ;GET IT ANI NOT BEEPR AND 0FFH ;TURN IT OFF MOV M,ÿA ;MOVE IT BACK OUT SYSCN ;TURN IF OFF NOW ; ; IF ALL TIMED JOBS ARE COMPLETE - TURN OFF THE CLOCK ; TIMEC: LDA CLOCK ;GET THE CLOCK ORA A ;IS IT ZERO? JNZ TIMEX ;NO LDA MTRFL ;GET THE CONTROL FLAG ANI BEEPR+MTRON JNZ TIMEX ;CONTINUE MVI‰ A,3 ;ITS TIME OUT TIME OUT CTC0 ;TURN OFF THE TIMER TIMEX: DI ; POP H ;RESTORE POP PSW ; EI ;ENABLE DW RETI ;ALL DONE ; ;**& ; ; CPM DISK PARAMETER BLOCKS ; ; **'ÇCK SIZE) DB 00 ;NULL MASK DW 394 ;DISK SIZE - 1 DW 191 ;DIRECTORY MAX DB 0E0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 48 ;CHECK SIZE DW 2 ;TRACK OFFSET ; DB 7 ;SECTOR MASK DB 3 ;SECTOR SHIFT FACTOR DW 3FFH ;SECTOR SIZE - 1 DB 3 ;N DB 5 ;EOT DB 35H ;GPL DB 0FFH ;DTL DB 40H ;DENSITY DB 0 ;SKIP FLAG ; XLTB1 EQU $ ;TRANSLATION VECTOR DB 1,3,5,2,4 ; ; DISK TYPE #2 - EAGLE I CPM AND PROCALL TYPE ; ; 128 BYTE SECTORS ; 18 SECTORS PER TRACK ; 35 TRACKS PER DISK ; SINGLE DENSITY ; DPBK EQU $ DPBK2: DW 18 ;SECTORS PER TRACK DB 3 ;BLOCK SHIFT FACTOR ALSZ: DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 71 ;DISK SIZE-1 DW 63 ;DIRECTORY MAX DB 0C0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 3 ;TRACK OFFSET ; SCSM: DB 0 ;SECTOR MASK DB 0 ;SECTOR SHIFT FACTOR SCSZ: DW 7FH ;SECTOR SIZE - 1 DSKP: DB 0 ; N VALUE DB 18 ; EOT VALUE DB 7 ;GPL VALUE DB 80H ;DTL VALUE DB 0 ;DENSITY DB 1 ;TRACK SKIP FLAG DPBE EQU $ ;END OF DISK PARAMETER BLOCK ; XLTB2 EQU 0 ;NO TRANSL'Áå**ÿ ; ; A: = DRIVE 0 - TYPE 1A ; DPBASE: DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBA: DW DPBK1A DW CHK00,ALL00 ; DPSIZ EQU $-DPBASE ;SET THE SIZE OF A BLOCK ; ; B: = DRIVE 1 - TYPE 1A ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBB: DW DÿPBK1A DW CHK01,ALL01 ; ; C: = DRIVE 0 - TYPE 2 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK2 DW CHK00,ALL00 ; ; D: = DRIVE 1 - TYPE 2 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK2 DW CHK01,ALL01 ; ; E: = DRIVE 0 - TYPE 1 - RESEÿRVER FOR LATER ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF,DPBK1A DW CHK00,ALL00 ; ; F: = DRIVE 1 - TYPE 1 - RESERVED FOR LATER ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF,DPBK1A DW CHK01,ALL01 ; ; G: = DRIVE 0 - TYPE 3 ; DW XLTB3,0000HÛ DW 0000H,0000H DW DIRBF,DPBK3 DW CHK00,ALL00 ; ; H: = DRIVE 1 - TYPE 3 ; DW XLTB3,0000H DW 0000H,0000H DW DIRBF,DPBK3 DW CHK01,ALL01 ; ; I: = DRIVE 0 - TYPE 1B ; DW XLTB1,0000H DW 0000H,0000H 'éATION TABLE ; ; DISK TYPE #3 ; ; 512 BYTE SECTORS ; 5 SECTORS PER TRACK ; 35 TRACKS PER DISK ; SINGLE DENSITY ; DPBK3: DW 20 ;SECTORS PER TRACK DB 3 ;SHIFT FACTOR DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 76 ;DISK SIZE - 1 DW 63 ;DIRECTORY MAX DB 80H ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 4 ;TRACK OFFSET ; DB 3 ;SECTOR MASK DB 2 ;SECTOR SHIFT FACTOR ; DW 1FFH ;SECTOR SIZE - 1 DB 2 ;N DB 5 ;EOT DB 10 ;GPL DB 0FFH ;DTL DB 0 ;DENSITY DB 1 ;SKIP FLAG ; XLTB3 EQU $ DB 1,3,5,2,4 ; ; SET OFFSET VALUES FOR ITEMS IN THE DISK ; PARAMETER BLOCK ; OSPT EQU DPBK-DPBK ; OALSZ EQU ALSZ-DPBK ;OFFSET TO ALLOCATION SIZE OSCSM EQU SCSM-DPBK ;OFFSET TO SECTOR MASK OSCSZ EQU SCSZ-DPBK ;OFFSET TO SECTOR SIZE ODSKP EQU DSKP-DPBK ;OFFSET TO DISK PARAMETERS DSKPS EQU DPBE-DPBK ;SIZE OF DISK PARAMETERS ; ; SIO INITALIZATION ; SIOCM: DB 04H ;REG 4 DB 44H ; DB 05H ;REG 5 DB 0EAH ; DB 03H ;REG 3 DB 0C1H ; DB 01H ;REG 1 DB 00H ;NO INTERRUPTS DB 10H ;'òDW DIRBF DPBI: DW DPBK1B ;ASSUME 460 DW CHK00,ALL00 ; ; J: = DRIVE 1 - TYPE 1B ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBJ: DW DPBK1B ;ASSUME 460 DW CHK01,ALL01 ; ; SET THE NUMBER OF DISK DRIVES IN THE SYSTEM ; MXDSK EQU ($-DPBASE)/DPSIZ ; ; DISK TYPE #1A - AVL SA410 ; ; 1024 BYTES PER SECTOR ; 5 SECTORS PER TRACK ; 80 TRACKS PER DRIVE ; DOUBLE DENSITY ; DPBK1A: DW 40 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (2048 BLOCK SIZE) DB 01 ;NULL MASK DW 194 ;DISK SIZE - 1 DW 191 ;DIRECTORY MAX DB 0E0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 48 ;CHECK SIZE DW 2 ;TRACK OFFSET ; DB 7 ;SECTOR MASK DB 3 ;SECTOR SHIFT FACTOR DW 3FFH ;SECTOR SIZE - 1 DB 3 ;N DB 5 ;EOT DB 35H ;GPL DB 0FFH ;DTL DB 40H ;DENSITY DB 00H ;SKIP FLAG ; ; DISK TYPE #1B - AVL SA460 ; ; 1024 BYTES PER SECTOR ; 5 SECTORS PER TRACK ; 160 TRACKS PER DRIVE ; DOUBLE DENSITY ; DPBK1B: DW 40 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (2048 BLO((RESET ERRORS SIOLN EQU $-SIOCM ;LENGTH OF SIO COMMAND ; ; DMA CONTROLLER CONTROL BLOCK ; DMACB: ;DEFINE THE READ/WRITE SETUP COMMAND DMARS: ;DEFINE THE RESET COMMAND DB 83H ;DISABLE DMA DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; ; DMRLN EQU $-DMARS ;LENGTH OF THE RESET COMMAND ; DB 0DH ; DB DSKD ;SET PORT A AS SOURCE DB 2CH ; DB 0CFH ;FORCE A LOAD OF THE PORT ADDRESS ; DMACM: DB 0 ;CONTROL WORD DB DSKD ;DISK PORT NUMBER DMASZ: DW 0 ;SIZE - 1 DB 2CH ;1B BYTE DB 10H ;1B BYTE DB 80H ;2A BYTE - NO STOP ON MATCH DB 9DH ;2B BYTE DMADR: DW HSTBUF ;MEMORY ADDRESS DB 13H ;INTERRUPT CONTROL BYTE DB DMAIV AND 0FFH ;INTERRUPT VECTOR DB 8AH ;2C BYTE - READY IS ACTIVE HIGH DB 0CFH ;LOAD DB 08BH ;RESET STATUS DB 0ABH ;ENABLE INTERRUPT DB 87H ;ENABLE DMA DMCSZ EQU $-DMACB ;NUMBER OF BYTES TO SEND TO CONTROLLER BEGDAT EQU $ ;UNINITIALIZED DATA AREA BEGINS HERE ; ; DEVICE CONTROL BLOCKS ; RWTRY: DS 1 ;RETRY COUNT RWDCB: DS 1 ;REA(A»ÿAM AREA FOR BDOS USE ; DIRBF: DS 128 ;SCRATCH DIRECTORY AREA ; ALL00: DS 50 ;ALLOCATION VECTOR 0 ALL01: DS 50 ;ALLOCATION VECTOR 1 ; CHK00: DS 48 ;CHECK VECTOR 0 CHK01: DS 48 ;CHECK VECTOR 1 ; HSTBUF DS 1024 ;LEAVE ROOM FOR 1K SECTOR SIZE ; ; ­WORK STACK AREAS ; DS 40H DKSTK: DS 40H VDSTK: DS 40H ; RWSTK: ; ; MARK END OF DATA ; ENDDAT EQU $ ;END OF DATA AREA ; DATSIZ EQU $-BEGDAT;SIZE OF DATA AREA ; *ÿK DRIVE PARAMETERS ; PDSK: DS 1 ;DISK NUMBER PTRK: DS 2 ;TRACK PSEC: DS 1 ;SECTOR LDSK: DS 1 ;LAST DRIVE ACCESSED REQSEC: DS 1 ;REQUEST PHYSICAL SECTOR NUMBER ; UDSK: DS 1 ;LAST UNALLOC DISK UTRK: DS 2 ;LAST UNALLOC TRACK USEC: DS 1 ;LAST UNALLOÿC 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 HSTACT: DS 1 ;HOST ACTIVE FLAG HSTWRT: DS 1 ;HOST WRITTEN FLAG UNACNT: DS 1 ;UNALLOC REC CNT ; ; SCRATCH R(‘D/WRITE COMMAND RWSEL: DS 1 ;SELECT BYTE RWTRK: DS 1 ;TRACK NUMBER RWHDR: DS 1 ;HEAD NUMBER RWSEC: DS 1 ;SECTOR (R) RWSIZ: DS 1 ;SIZE (N) RWEOT: DS 1 ;S/TK (EOT) RWGPL: DS 1 ;GAP LENGTH RWDTL: DS 1 ;DATA LENGHT RWDEN: DS 1 ;DENSITY FLAG RWSKP: DS 1 ;TRACK SKIP FLAG ; CHGTY: DS 1 ;CHANGED DRIVE TYPE FLAG CHGHD: DS 1 ;CHANGED HEAD CHGTK: DS 1 ;CHANGED TRACK ; ; SEEK/RECAL CONTROL BLOCK ; SKTRY: DS 1 ;SEEK RETRY SKSIZ: DS 1 ;SIZE OF THE COMMAND SKDCB: DS 1 ;COMMAND SKSEL: DS 1 ;SELECT BYTE SKTRK: DS 1 ;SEEK TRACK NUMBER ; ; COMPLETE STATUS WORK AREA ; DINTR: DS 1 ;DISK INTERRUPT INDICATOR WKST0: DS 7 ;WORKING COPY OF DISK STATUS REGISTERS TMOUT: DS 1 ;TIMEOUT COUNTER CLOCK: DS 1 ;WAIT COUNTER BEEPC: DS 1 ;BEEPER TIME MTRFL: DS 1 ;MOTOR ON FLAG MTRCT: DS 2 ;MOTOR ON COUNTER CPMSPT: DS 1 ;CPM SECTORS PER TRACK ALLSZ: DS 1 ;CPM ALLOCATION SIZE SECSHF: DS 1 ;SECTOR SHIFT FACTOR SECMSK: DS 1 ;SECTOR MASK NBRSC: DS 1 ;NUMBER OF SECTORS TO LOAD SRWSTK: DS 2 ;DISK SAVE STACK SV(a!9"ë1)!\~·Ê=þÒz_Í!]~þ Â4!] ?s# Â.>@2ê¯2è2ç2é!Iƒs# ÂJ!Ë"-!I"Þ:çþÒ�!€"+ͣǷ7Èþ?ØOÀ:gé.!Í{·É:ãÍpÜþM?ØO.Í{·É:âÍ�.'Í{*-ë*+~·Ê¶Ãr:ê=2ê#åÕ] þ?ÊÔ¾ÊÔÑáÃr#ÂÅÑáåÕ ~·ÊB!"Ò*ÒI^#Vë|µÊBë*+Õå#à ȖÀ#à ÍáÑÊ)*Ò"ÒÃí#Ã8x±È~# Ã-Í-áÃrÑáÍ-!é4*-å*Þë!Ñs#r*-"-*Þ"Þ*+ "+È|ºÀ}»ÉÍ‚§!è~<æwÂ\!ç4Ã\!"ÐÃʱ à $ã~#ãþ$ÈÃÄ_Ã;ôÍ©*ÐI^#Vë|µÊÞÍPÍ´ + $*Ði^#Vë|µÊ4ÍPÍ´ + $*Љ^#Vë|µÊ4ÍPÍ´ + $*Щ^#Vë|µÊ4ÍPÍͬ*Ð"Ð Í‚ÊÞÃÍ Åå~;áÁ# ÂR~‡‡‡‡G###~õæ&oñæàÊy#}€oåë!œÿÒ�Í´ $ä!öÿÒ�Í´ $äÍ´ $áåë*Ú"ÚáÃÕÅÕåöÿÿÿ Ú» ë|µÄ²{Æ0_;áÑÁÉͲÍ´K$ÉÍ´Total of $&:éoͲÍ´ file(s) $:êo&ͲÍ´ directory entries and $Ío`óó~‡Ò8ÊDÂ3#Ã0j&ͲÍ´K bytes available on $ÍÆA;Í´:$Í©*ëùÉÍ´?Bad drive id$Ãr:é·ÊÞ=&o)"Ø!"Ö!ÿÿå*Öå*Øåá|þÿÊ "Ò"Øá"Ð"ÖÍì*Ðë*ÖÍ‚ÊØåÕ*Òë*ØÍ‚ÊéÕåðÃ÷¯|g}oÉ*ÐÍïë*Ò(ŒDSTK: DS 2 ;VIDEO SAVE STACK SDKSTK: DS 2 ;DISK INTERRUPT SAVE STACK TOTRY: DS 1 ;TIME OUT RETRY ESCFL: DS 1 ;ESCAPE SEQUENCE IN PROGRESS REVFL: DS 1 ;REVERSE VIDEO FLAG LSTLN: DS 1 ;LAST LINE DISPLAYED YHOLD: DS 1 ;Y VALUE HOLD ; ; CP/M INTERFACE PARAMETERS ; DMAAD: DS 2 ;DIRECT MEMORY ADDRESS DPPNT: DS 2 ;DISK PARAMETER POINTER DVPNT: DS 2 ;DEVICE PARAMETER POINTER DXLTB: DS 2 ;CURRENT TRANSLATE TABLE ; ; LOGICAL DISK DRIVE ; CDISK: DS 1 ; TRACK: DS 2 ; SECTOR: DS 1 ; ; ; PHYSICAL DISK DRIVE PARAMETERS ; PDSK: DS 1 ;DISK NUMBER PTRK: DS 2 ;TRACK PSEC: DS 1 ;SECTOR LDSK: DS 1 ;LAST DRIVE ACCESSED REQSEC: DS 1 ;REQUEST PHYSICAL SECTOR NUMBER ; UDSK: DS 1 ;LAST UNALLOC DISK UTRK: DS 2 ;LAST UNALLOC TRACK USEC: 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 HSTACT: DS 1 ;HOST ACTIVE FLAG HSTWRT: DS 1 ;HOST WRITTEN FLAG UNACNT: DS 1 ;UNALLOC REC CNT ; ; SCRATCH R)œ)„ÁÐÍï}æþo"Ô*ÔI^#Vë"Ú*ÐI^#Vëë*Ú Íò>*Ð"ÐÃ*ÒI^#Vëë*Úë Íòc*Òþÿ"ÒÃ>*Ðë*ÒÍ‚È*ÐI^#Vëå*ÒI^#Vëå*Ðë!IÑs#ráå*Òë!IÑs#rÃ&:çoT))):è_æÿ><Ú·I2â~2ã2äÉ $ $]÷¯|g}oÉ*ÐÍïë*ÒÍï}æþo"Ô*ÔI^#Vë"Ú*ÐI^#Vëë*Ú     ÿˆ|ºÀ}»ÉÍ‚§!è~<æwÂ\!ç4Ã\!"ÐÃʱ à $ã~#ãþ$ÈÃÄ_Ã;ôÍ©*ÐI^#Vë|µÊÞÍPÍ´ + $*Ði^#Vë|µÊ4ÍPÍ´ + $*Љ^#Vë|µÊ4ÍPÍ´ + $*Щ^#Vë|µÊ4ÍPÍͬ*Ð"Ð Í‚ÊÞÃÍ Åå~;áÁ# ÂR~‡‡‡‡G###~õæ&oñæàÊy#}€oåëÿ!œÿÒ�Í´ $ä!öÿÒ�Í´ $äÍ´ $áåë*Ú"ÚáÃÕÅÕåöÿÿÿ Ú» ë|µÄ²{Æ0_;áÑÁÉͲÍ´K$ÉÍ´Total of $&:éoͲÍ´ file(s) $:êo&ͲÍ´ directory entries and $Ío`óó~‡Ò8ÊDÂ3#Ã0j&ͲÍ´K bytes available on $ÍÆA;Í´:$Í©*ëùÉÍ´ƒ?Bad drive id$Ãr:é·ÊÞ=&o)"Ø!"Ö!ÿÿå*Öå*Øåá|þÿÊ "Ò"Øá"Ð"ÖÍì*Ðë*ÖÍ‚ÊØåÕ*Òë*ØÍ‚ÊéÕåðÃ÷¯|g}oÉ*ÐÍïë*Ò)ÿ*( ÍÔ ë*‘ "‘ Í Ã3É*1 #"ž "  "¢ *5 "œ >œ Í# µÊR :œ ÒB *ž +"ž !œ Íò ë+s#rÃ( !¤ 6Í: "š *š ~2¥ *¢ #"˜ *˜ +"˜ >Í µÊ¶ :¥ 2¥ Ò’ *  +"  :¤ <2¤ O>¹Ò³ !¤ 6*š #"š *š ~2¥ Ãp ÍK* DMÍf ¥Í= * ë*% ÍÔ DMÍf ºÍ= *ž ë*% ÍÔ DMÍf ÀÍ= *( #"( Íÿ ÍK*# DMÍf ÑÍ= *  ë*% ÍÔ DMÍf éÍ= Í: ÆAOÍK :ÍK É. æg æ”ÂS -ÂA É>ÿØ>É!  ~þ?Êl W æº>À#Â^ :·À /æÉ!:' ·Â—  ·Ê‘ #‹ É W ²Ê¢ #™ Éi`N#F�oˆgÉDM!>õ)ë—)ë�‘o|˜gÒÎ ñ=¼ ÉDM!>)ë)ëÒã =ÂÛ É^#Vë) Âì É^#Vë|·g}o öÂö É_{•ozœgÉO{‘oz˜gÉi`N#F‘o˜gÉo&•oœgÉ_{–_z#žWëÉà þÈÅOÍK ÁÃ= YÃáã -ÂS Éáã{-Â_ É!¨ s+p+q*¦ å« ͼ 2ª <2© :¨ !© ¾Ú—  ÍK !© 4Ã� !© 6:ª =!© ¾Ú» *© &« NÍK !© 4œ Éáã>õ3ÊÕ Íá Æ0õ3}´ÂÄ Z;ñÂ× {ÉÅ ¯)¹Úî ‘#Âæ ÁÉ ÇÇ ÇÇkÇÇ)W© Ãÿ Hit SPACE"ÿName Ext Bytes UN At ! File(s), occupying K of K total capacity directory entries and K bytes remain on 1 !9" !Ñ ùÍJÍú> Í# µÊ->! Í. Ò*ͪÍe> Í# µÊ<Í×Í * ùÉv ÍK É ÍK  ÍK É!B r+s+p+qA ? Í Úp*A É*? É:]þ$ÂŽ Åÿl]ÍQ !]6 !E 6!C 6 :C Í Ú*C &l ~2D þU¼:E 2 :D þSÂÊ:E 2:D þFÂØ:E 2:D þVÂæ:E 2:D þPÂô:E 2 :D ÖNÆÿŸ2E !C 4Ø:Ò!4Ã:Ò!5É( Í µÖŸ! ¦ÒI3Í= ÿÍ: [Í= ÉÍt:\þÊa:\=_Í: :]þ Ât Å?]Í\ : Òƒ! 6?ÿÃŽÿ Í: 2  Å ]ÍQ  Å?\Í\ ÅÍ: DM, ÍQ !Ñ "= *3 ##)ë*= "; */ &#Íì "! *3 #"#  !! Íò "% >ÿ!1 Í. Ÿ2' É\Í: 2 : þÿÊ©: 懇‡‡‡Æ€o&"* ~þåÊ›*# +"# ** DMÍY Ò›** DMÍ  å*; Áq#p* " . å** #DM*; ëá -Âe**  å*; Ñw* #�" )ë*= å*; ëás#r*; "; Í: 2 ÃÉ!S 6!"V * "n >!S ¾Òd*S &T ) ^#Vë"K O!l ^#Vë"M :S =2S M K Í Òa*K "G *)Ôiles westof the California coastline. Her name was Florence Chadwick, the first womanto successfuly conquer the English Channel in both directions. This particular morning the fog was thick and the water was cold, and asmillions watched on national television, Florence Chadwick bravely challengedthe open sea. Frequently sharks had to be driven away with rifles to protectthe lone figure in the water. Hours passed an Miss Chadwick began to feel thebone-chilling effects of the cold water and after 15 hours asked to be takenout. Her trainer and her mother, in the boat alongside, encouraged her to"stick it out", assuring her that "land was near". Nobody actually knew wherethey were because of the thick fog. Fifteen hours and fifty five minutes laterFlorence Chadwick insisted to be taken out of the water. It wasn't until hourslater that the shock of defeat overcame her. She had been pulled out of thewater only one half (1/2) mile from the shoreline. She said: "I'm not excusing myself, )fM "I ë*K Íö )ë*= ^#Vë"O I G Í ÚÇ*G )ë*= N#F*O ëÍ? þÿÂJ*G #"G Ã(*I )ë*= ^#V*O DMÍ? þÿÂm*I +"I ÃJI G Í ÚÄ*G )ë*= ^#Vë"Q *I )ë*= å*G )ë*= ãN#Fáq#p*I )ë*= å*Q ëás#r*G #"G *I +"I ÃK I Í G M åÍ ÑÍ Ò!M G Í Ò:S <2S O!T å*G ëás#r*S &l ) å*M ëás#r*I "M Ã^I K Í ÒX:S <2S O!T å*K ëás#r*S &l ) å*I ëás#r*G "K ÃíûÉ!"„ "†  † Í Ò#*† #"† )ë*= å*„ #"„ )ë*= ãN#Fáq#p † Í Ÿõ*„ )ë*= å*† ) ë*= ^#VáN#FÍ? ÖÖŸÁH¡Ò *† #"† )ë*= ^#Vë";  *; ^#Vë"ˆ *„ )ë*= ^#Vë"; *; ˆ ͪ  å*; Áq#pÃ�Ãn*„ " É!‹ p+q*Š )ë*= ^#Vë"; !Œ 6> !Œ ¾Úi*Œ &ë*; >¦OÍK :Œ <2Œ ÂE:/ÒÖ *; ^#V*% ÍÔ DMÍf KÍK :ÒÖ *; NÍf ÍE*; ~þ€Ú»WÍK þÍE *; ~þ€ÚÓSÍK ÃÖÍEÉ Í= !— 6:!— ¾Ú'ƒÍ= :/Ò �Í= :Ò –Í= !:— ¾Ò�Í= :— <2— Ââ* "• !"‘ >!• Í. Ò *• ë*&͵ ë"( *• ë*&͵ >Í µÊj*( #"( *DM*( ëÍV"( !"� ( � Í ÒúÍK!"� }2— :— <2— O:¹Úð*� ë*� å*‘ Á "“  “ Í Úâ>!— ¾ÒÓ¡Í= *“ DMÍ**• +"• *( ë*� "� Ø*� #"� Ã*&ë**âñbut if only I could  ÿhave seen land." You see, it was not fatique or even the numbing cold that defeated MissChadwick, it was the fact that she lost sight of her goal. The fog alone haddefeated her because it had obscured her goal. It was the only time FlorenceChadwick ÿhad ever quit. Two months later she swam the same channel, and againthe fog obscured her view, but this time she swam by æáéôè. She knew thatsomewhere behind that dense fog was land. She was not only the first woman toswim the channel but she also bAeat the mens record by two hours. Where does Æáéôè come from?  +So then æáéôè cometh from hearing, hearing  from the word of ÇÏÄ®  (Rom. 10: 17 King James Bible)  )Looking to ÊÅÓÕÓ the author and finisher  of our æáéôè®  .(Heb. 12: 2 King James Bible) .cPAGE 11 .e  *But the æòõéô of the óðéòéô is ìïöå¬ êïù¬  ,ðåáãå¬ ìïîçóõææåòéîç¬ çåîôìåîåóó¬ çïïäîåóó¬  *æáéôè¬ íååëîåóó¬ ôåíðåòáîãåº against such  there is no law*¶ÿÿved by all who knew him, lay dying in a hospital nearby. Oscar hadwritten many of Mary's musical scores and was noted throughout the world forhis great musical talent. Mary couldn't bring herself to go on that night andthe producer, director, and allù those in charge were anxiously awaiting theoutcome of this ordeal. A messenger arrived with a letter for Mary from Oscar.In the letter was one of the most touching and heartwarming passages ofliterature that Oscar ever recorded: .cPAGE 12 .e  +A bell is not a bell, 'till you ring it...  +A song is not a song, 'till you sing it...  .Love in your heart, is not put there to stay,  ÿLove is not Love, 'till you give it away. They say that Mary Martin gave the best performance of her career that night,and after the show reporters asked her what was the most contributing factorfor such a great performance? She said: "Tonight was thee first time in mycareer that I really and truely ÌÏÖÅÄ the audience...and I could feel themreturni*¨å.  ?(Gal. 5: 22,23 King James Bible) Does every man have æáéôè?  )...ÇÏÄ dealt to every man ôèå measure of  æáéôè®  •(Rom. 12: 3 King James Bible) If this was not true...nobody could receive salvation. Salvation is receivedby æáéôè® Can our æáéôè be increased?  .And the apostles said unto the ÌÏÒÄ, increase  /our æáéôè® And the ÌÏÒÄ said, if ye had æáéôè  .as a grain of mustard seed, ye might say unto  .this sycamore tree, be thou plucked up by the  &root, and be thou planted in the sea.  !(Luke 17: 5,6 King James Bible)  .And beside this, giving all diligence, add to  .your æáéôè virtue; and to virture knowledge;  0and to knowledge temperance; and to temperance  &patience; and to patience ÇÏÄÌÉÎÅÓÓ®  Ð(2 Pet. 1: 5,6 Kings James Bible) Now that we know that æáéôè is a gift from ÇÏĬ given to all mankind in thesame measure, where do we go from here? What is the mysterious formula forincreasing this ener*ïÿng my love. I think I've given you enough on faith, because if I try to explain it tofinely it will lose its purpose. I don't know exactly how an electronicwristwatch works, all I know is if I tear it all apart to find out...it won'twork anymore. ÓÅ¹ÌÆ­ÉÍÁÇÅ ÉÉ Let's go back now to the subject of self-image. Here is where the foundationof personal growth begins. Again...: "Therefore if any man be in ÃÈÒÉÓÔ¬ he is a new  /creature: Old things all passed away; Behold,  .all things become new. And all things are of  0ÇÏĬ who hath reconciled us to ÈÉÍÓÅÌÆ by ÊÅÓÕÓ  -ÃÈÒÉÓÔ¬ and hath given to us the ministry of  1reconciliation: To wit, that ÇÏÄ was in ÃÈÒÉÓÔ¬  1reconciling the world unto ÈÉÍÓÅÌÆ, not imputing  /their trespasses unto them; and hath commited  0unto us the word of reconciliation. Now we are  3Ambassadors for ÃÈÒÉÓÔ, as though ÇÏÄ did beseech  /you by us: We pray you in ÃÈÒÉÓÔ stead, be ye  reconciled to ÇÏÄ® *gy force called æáéôè¿ Æáéôè is a virtue...æáéôè is like love; joy; peace; longsuffering; gentleness;goodness; meekness; and temperance. Æáéôè is a fruit of the spirit. Can youincrease it? ÃÁÎ ÙÏÕ ÉÎÃÒÅÁÓÅ ÌÏÖÅ®®®¿ Sure you can. Æáéôè like love isfirst given away, or offered to someone by an act from the heart, believingthat it will be accepted. I don't have to ask my wife if she loves me...after26 years of giving and receiving love from one another, love became a naturalhabit, it became a fully developed virtue. Æáéôè is the same way. If you wantto increase your æáéôè virtue you have to give what measure of æáéôè ÇÏÄ dealtto you away. Giving is one of ÇÏÄ'Ó most powerful spiritual laws. I'mreminded of a true story that is an excellent example of giving. Mary Martin, one of our great stars of the theater, was opening one of hergreatest shows of her career on broadway and yet it was one of the saddest daysof her life. Oscar Hammerstein, a giant of a man in the show business worldand lo+Ž+Øó For ÈÅ hath made ÈÉÍ sin for  ,us, who knew no sin; that we might be made  righteousness to ÇÏÄ in ÈÉÍ®¢  ÿ(II Cor. 5: 17-21 King James Bible) What is righteousness? Let's look at the translator - Old English - King JamesBible. Righteous, translated means "rights"; priviledges. If you are a citizen of the United States Of America, you would have certain¥"rights" (priviledges). If you are a "born-again Christian, you also have"rights" (priviledges). If you are a Christian you are a citizen of ÔÈÅËÉÎÇÄÏÍ ÏÆ ÇÏÄ®  +ÊÅÓÕÓ said: "Fear not little flock, for it  +is your ÆÁÔÈÅÒ§Ó good pleasure to give you  the ËÉÎÇÄÏÍ¢®  :(Luke 12: 32) .cPAGE 13 .e ÁÔÔÉÔÕÄÅ Henely wrote:  I am the master of my fate,  òI am the captain of my ship. Attitude is the basic building block that molds the personality. It is yourattitude that either attracts people to you or repels people against you. Attitudes are a bi-product of how you think...therefore we c+ùoint the most difficultto teach. When this person is finally on the right track, he or she could become a great leader. A good analogy of a reformed "Restrictive Person" comesfrom the word "Gentleman". The word gentle comes from the method of training ahorse...or gentling a horse. This is done by disciplining the animal withoutdestroying its spirit. In the Old West the cowboys had a saying: "There wasnever a horse that couldn't be rode, and there was never a cowboy that couldn'tbe throwed." Cowboys would conquer the will of the horse without destroyingthe the horse's spirit. This is power under control. A gentleman is a highlyspirited, but disciplined person...POWER UNDER CONTROL. ÁÄÁÐÔÉÖÅ ÁÔÔÉÔÕÄÅ This attitude is undoubtably the most dangerous of all attitudes to be in andyet adapting to change is an asset in some cases. In defining an adaptiveattitude you must take into consideration that to totally surrender your willto another person or cause you must also surrender all your right+"÷>an assume that theyare created in the workshop of the mind.  -"For as he thinketh in his heart, so is he."  (King Solomon) Bristol wrote:  .Success or failure in business is caused more  ÿby mental attitude than by mental capacity. In the beggining of this text I referred to mans' inability to communicate withone another. In order to identify this problem I must first catagorize mentalattitudes. In these catagories lies the secret to yeither success or failure. All great leaders were at one time great followers. Everyone has to be taughtby someone.  'What a fool cannot learn he laughs at,  'thinking that by his laughter he shows  &superiority instead of latent idiocy.  ÿ(Marie Corelli, The Life Everlasting) ÒÅÔÒÏÇÒÅÓÓÉÖÅ ÁÔÔÉÔÕÄÅ (moving backwards) A retrogressive attitude directs a person to be constantly on the defensive. This person, usually because of an inferiority complex, is controlled primarilyby the five senses. This person can be i+qs andpriviledges that go with it. Many people are broken in spirit, rather thandisciplined such as "gentling a horse". Adaptive attitudes are generally theoffspring of either physical or mental abuse by other people. This is why itis very important to raise a child in the absense of FEAR. That's not to saythat you should not inform your child of the dangers around them...but don'tenfuse FEAR in them as a deterent. The adaptive person is tagged as a follower and is fair game for any cult orcause that might come along. The danger that lies in the adaptive personalitycan be related to the JIM JONES (Guyana) atrocity where 900 people adaptedthemselves to the rule and lifestyle that led them to the grave. When anotherperson is allowed to enter the privacy of your mind and maninpulate your willand you allow this without restriction, then you are in a very dangerousposition. ÐÒÏÇÒÅÓÓÉÖÅ ÁÔÔÉÔÕÄÅ (moving ahead) This person is by far the most teachable of all persons. He of she is anexcellent lis+‰ý0dentified by the following personalitytraits:  Moody  Cannot accept critisism  Talks without listening  $Blames others for their own failure  .Offers excuses for everything that goes wrong  ÿHas periods of deep depression This person is not necessarily poverty stricken. This person could be aDoctor, Lawyer, Engineer or any person...educated or uneducated. To have aretrogressive attitude is a sign of insecurity. This does not mean that aÿllpeople who are periodically moody are retrogressive...what it does mean is thatif that person continues in that state of attitude that it is dangereouslyretreating in the direction of severe retrogression. .cPAGE 14 .e ÒÅÓÔÒÉÃÔÉÖÅ ÁÔÔÉÔÕÄÅ This peÿrson is resistant to change. Although he or she may be educated in manyareas, this person feels a sense of superiority in all situations. An attitudeof: "I'll do it my way..". This person is usually tagged as a "REBEL"...a"KNOW IT ALL"...high spirited, emotional and at this p,1,<ïÿtener, researching all the information received. You'll find thatthis person hardly ever critisizes another person. This person sets a definitegoal in life and is willing to pay the price to achieve it. This person has awinning attitude, one that atxtracts others to them. This person is a fighterin all that he believe in. .cPAGE 15 .e The apostle Paul wrote:  -In a race, everyone runs but only one person  ,gets first prize. So run your race to ×Éή  *To win the contest you must deny yourself  +many things that would keep you from doing  0your best. An athlete goes to all this trouble  /just to win a blue ribbon or a silver cup, but  *we do it for a heavenly reward that never  0disappears. So I run straight to the goal with  -purpose in every step. É ÆÉÇÈÔ ÔÏ ×Éή I'm  *not just shadow boxing or playing around.  sI Cor. 9:24-26 (The Living Bible) The secret is commitment...É ÆÉÇÈÔ ÔÏ ×Éή Paul was dedicated to hiscommitment,˜reaching his goal was his only thought. In a recenttelevision enterview, I heard him say: "I never intended to be as famous as Iam...I just wanted to be a great pianist." What about his sacrifices? Whatabout the long lonely and cold hours he spent at the train stations waiting forthe next night club stop? What about the meals he missed? Sacrifice alonedoes not make a person great, nor does it make a person unique in some specialway...what it does do, is cause a person to be aware of the power withinthemselves...a force so great that sometimes it takes a tragedy to surface thismagnifcent source of energy. Few people realize that this power is availableto every person. Great people have the quality that sets them aside from otherpeople. This quality is developed through personal sacrifice. .cPAGE 16 .e Ray Charles became a legend in his own time. The State of Georgia proclaimedthe song he made famous, "Georgia On My Mind", as their state anthem. Theyasked him to perform at the Capitol d,Ê. His undying desire was to spred the gospel of ÊÅÓÕÓ ÃÈÒÉÓÔ® Hewould not settle for second best...He was running his race to ×Éή I read a story in the newspaper on July 4, 1980 about a young 37 year oldphysical educational teacher from Tucker, Georgia named Stan Cottrell. StanCottrell had just completed a 3,103.5 mile trek on foot in 48 days. He ran allthe way from New York City to San Francisco to set a new all time record. Why?This is what Stan said: "It's the greatest thing in the world, I had to doit...I just had to." He also made a comment to the crowd that met him at thefinish line: "Don't be satisfied with being average." ÆÉÇÈÔ ÔÏ ×Éή I heard a story of a young lad of only four years old, that in desperationtried to save his older brother from drowning in a small pool. He wasunsuccessful and the years of tragic events that followed were monumental. Atthe age of eight he developed a severe case of glucoma and began rapidly tolose his sight. He soon became permantly blind. At,uring the dedication ceremony and gave hima standing ovation as he was being led down the aisle. What if Ray Charles had not dad a dream? What if he had not set a goal forhimself? What if he had bathed himself in self pity? IN studying the success and failure of people, I've come to a monumentalconclusion that success or failure is caused more by mental attitude, than by mental capacity. "For as he thinketh in his heart, so is he." Prov. 23:7 It is also a well known fact that an individual comes, finally, to believewhatever that individual repeats to themself, whether the statement is true orfalse. In the ealier pages I explained how the sub-conscious brain cannot distinguishbetween true or false? Thoughts are a source of energy and thoughts which aremixed with any of the feelings of emotion constitute a magnetic force whichattracts other similar or related thoughts. Thoughts are what great empiresare built on. Look around you...everything in sight is a product of thought.,R the age of ten he lost hisfather. Left in the care of his impoverished mother and suffering also fromthe racial element of the deep south, this young black man battled the forcesof circumstances and set for himself a personal goal. He wanted to play thepiano and he wanted to play it well. He built inside of him a burning desireand each night as he laid his head on his pillow he would live, in his mind,the dream as if it were already a reality. His mother died when he was only fifteen, and he was forced to earn his ownkeep in a world that was full of prejudice, not only for the black but also forthe handicapped. He left the town he was raised in and headed north to Chicagowhere he would "set-in" and play with small bands in the getto districts. Hewould lie about his age so he could gain the experience in his strugglingcareer. Little is recorded about the long hours of practice and the deeppersonal tragedies he experienced. Failure must not have entered his mind,only the driving force of -¸-¯ßß The building you're in - The telephone - The television - The automobile - Eventhe satilites in outer-space were once a mere thought (idea)...Even you, ÇÏÄcreated you out of thought, and then spoke you into existance.  &If you think you are beaten, you are.  %If you think you darenot, you don't.  -If you like to win, but you think you can't,  it's almost certain you won't.  %If you think you'll lose, your lost.  For out of the world we find,  $success begins with a fellows will,  it's all in a state of mind.  *If you think you are outclassed, you are,  )you've got to be sure of yourself before  you can ever win the prize.  Life's battles don't always go  to the stonger or faster man,  &but sooner or later the man who wins,  Uis the man who ÔÈÉÎËÓ he can. See if you can identify this person: .cPAGE 17 .e  He failed in business in '31  &He ran and lost for Legislator in '32  He failed ag-×óÿ.Y 1 90 110 0 0 1 1 65 2 2 4 0 35 5 ÆÁÉÔÈ In the early 1500 century a swiss physician, Philippus Aureolus Paracelsus wasmurdered at the early age of 48 for his controversial stand on Spirit/Faithbelief. The following is an excerpt from his works: @ .cPAGE 9 .e "The human spirit is so great a thing that  )no man can express it; could we rightly  )comprehend the mind of man nothing would  'be impossible to us on earth. Through  (faith the imagination is ivigorated and  +completed, for it happens that every doubt  ,mars its perfection. Faith must strengthen  +the imagination, for faith establishes the  ÿwill." Yes, by faith, thought becomes literally the Æáôèåò ïæ Æáãô¬ and if we drawupon all the intuitive powers that are ours to excersise, then nothing isimpossible for us to accomplish. On the subject of intuitive power (the quiet voice within), Ralph Waldo Emersonwrote:  (All true wisom of thought and of action  comes of diff-áain in business in '33  His sweetheart died in '35  "He had a nervous breakdown in '36  He ran for State Elector in '40  $He was defeated for Congress in '43  *He was defeated again for Congress in '48  &He was defeated for the Senate in '55  +He waas defeated for Vice President in '56  äAnd yet in 1860 ABRAMAM LINCOLN became President of the United Statesof America. Most people fail in life because they carry with them the ÆÅÁÒ of failure. ÆÅÁÒ®®®(the adversary of faith) Dr. Robert Schuller says ÆÅÁÒ is:  Æalse  Åvidence  Áppearing  ‹Òeal Fear actually should be catagorized for the purpose of discussion, because inour modern-day society we identify fear in many ways:  Phobias, a psycological fear  $Fear of mental abuse (intimidation)  Fear of physical abuse  (Fear of authority (disciplined respect)  ]Fear of ÇÏÄ (reverence) All fears are real when you're looking through the mirror of your mi-éerence to this éîóôéîãô,  &(éîôõéôéïî) patience with its delays.  )To make a practical use of this éîóôéîãô  'in every part of life constitutes true  &wisdom, and we must form the habit of  +preferring in all cases its guidance which  ÿis given as it is used. Let me say this, ÇÏÄ only gives you wisdom and guidance as you use it and ifyou don't use it, you lose it. Let's examine this force called faith - What is it? Where does it come from? Do only Christians have it? Do some peoplNe have more than others? Is it agift...? or does a person have to earn it?  +Now faith is the substance of things hoped  &for, the evidence of things not seen.  !(Heb. 11: 1,2 King James Bible)  -But without faith it is impossible to please  -ÇÏĺ For he that cometh to ÇÏÄ must believe  .that ÈÅ is, and that ÈÅ is a rewarder of them  that diligently seek ÈÉÍ®  O(Heb. 11: 6 King James Bible) In The Living Bible translation it says: -‡›ÿnd. Whatever the mind of man can concieve, fostered with belief, whether real orsynthetic, man will ultimately achieve. If it is fear that he fosters, then itwill be fear that will conquer. Man only inherited two fears at birth: The fear of falling;¢ and the fear ofloud noises. All other fears were creations of the mind. The fear of ÇÏÄ is not classified as an adversary fear, nor is the fear ofauthority. /8dversary of faith) Dr. Robert Schuller says ÆÅÁÒ is:  Æalse  Åvidence  Áppearing  ‹Òeal Fear actually should be catagorized for the purpose of discussion, because inour modern-day society we identify fear in many ways:  Phobias, a psycological fear  $Fear of mental abuse (intimidation)  Fear of physical abuse  (Fear of authority (disciplined respect)  ]Fear of ÇÏÄ (reverence) All fears are real when you're looking through the mirror of your mi.#.2ù1 "What is faith? It is the confident assurance  /that something we want is going to happen. It  2is the certainty that what we hope for is waiting  ÿfor us, even though we cannot see it up ahead." .cPAGE 10 .e Does this mean that all we have to do is wish for something and ÇÏÄ will causeit to materialize? Îï, of course not. Wishing for something to happen nevercauses anything to materialize. TVhere is absolutely no power in wishing. "Fool! When will you ever learn that  (believing is useless without doing what  *ÇÏÄ wants you to do? Faith that does not  )result in good deeds is not real faith."  ÿ(James 2: 20 The living Bible) Remember the "Power Twins"...Åíïôéïî and ×éìì? Here lies the power to putfaith into action. But first, what is faith? Faith is believing that ÇÏÄ willhelp you help yourself. I'm reminded of a story of a 34 year old wogman on the fourth of July, 1952. She dipped into the water off the east shores of Catalina Island 21 m.¨å.  ?(Gal. 5: 22,23 King James Bible) Does every man have æáéôè?  )...ÇÏÄ dealt to every man ôèå measure of  æáéôè®  •(Rom. 12: 3 King James Bible) If this was not true...nobody could receive salvation. Salvation is receivedby æáéôè® Can our æáéôè be increased?  .And the apostles said unto the ÌÏÒÄ, increase  /our æáéôè® And the ÌÏÒÄ said, if ye had æáéôè  .as a grain of mustard seed, ye might say unto  .this sycamore tree, be thou plucked up by the  &root, and be thou planted in the sea.  !(Luke 17: 5,6 King James Bible)  .And beside this, giving all diligence, add to  .your æáéôè virtue; and to virture knowledge;  0and to knowledge temperance; and to temperance  &patience; and to patience ÇÏÄÌÉÎÅÓÓ®  Ð(2 Pet. 1: 5,6 Kings James Bible) Now that we know that æáéôè is a gift from ÇÏĬ given to all mankind in thesame measure, where do we go from here? What is the mysterious formula forincreasing this ener.Ôiles westof the California coastline. Her name was Florence Chadwick, the first womanto successfuly conquer the English Channel in both directions. This particular morning the fog was thick and the water was cold, and asmillions watched on national television, Florence Chadwick bravely challengedthe open sea. Frequently sharks had to be driven away with rifles to protectthe lone figure in the water. Hours passed an Miss Chadwick began to feel thebone-chilling effects of the cold water and after 15 hours asked to be takenout. Her trainer and her mother, in the boat alongside, encouraged her to"stick it out", assuring her that "land was near". Nobody actually knew wherethey were because of the thick fog. Fifteen hours and fifty five minutes laterFlorence Chadwick insisted to be taken out of the water. It wasn't until hourslater that the shock of defeat overcame her. She had been pulled out of thewater only one half (1/2) mile from the shoreline. She said: "I'm not excusing myself, .gy force called æáéôè¿ Æáéôè is a virtue...æáéôè is like love; joy; peace; longsuffering; gentleness;goodness; meekness; and temperance. Æáéôè is a fruit of the spirit. Can youincrease it? ÃÁÎ ÙÏÕ ÉÎÃÒÅÁÓÅ ÌÏÖÅ®®®¿ Sure you can. Æáéôè like love isfirst given away, or offered to someone by an act from the heart, believingthat it will be accepted. I don't have to ask my wife if she loves me...after26 years of giving and receiving love from one another, love became a naturalhabit, it became a fully developed virtue. Æáéôè is the same way. If you wantto increase your æáéôè virtue you have to give what measure of æáéôè ÇÏÄ dealtto you away. Giving is one of ÇÏÄ'Ó most powerful spiritual laws. I'mreminded of a true story that is an excellent example of giving. Mary Martin, one of our great stars of the theater, was opening one of hergreatest shows of her career on broadway and yet it was one of the saddest daysof her life. Oscar Hammerstein, a giant of a man in the show business worldand lo.âñbut if only I could  ÿhave seen land." You see, it was not fatique or even the numbing cold that defeated MissChadwick, it was the fact that she lost sight of her goal. The fog alone haddefeated her because it had obscured her goal. It was the only time FlorenceChadwick ÿhad ever quit. Two months later she swam the same channel, and againthe fog obscured her view, but this time she swam by æáéôè. She knew thatsomewhere behind that dense fog was land. She was not only the first woman toswim the channel but she also bAeat the mens record by two hours. Where does Æáéôè come from?  +So then æáéôè cometh from hearing, hearing  from the word of ÇÏÄ®  (Rom. 10: 17 King James Bible)  )Looking to ÊÅÓÕÓ the author and finisher  of our æáéôè®  .(Heb. 12: 2 King James Bible) .cPAGE 11 .e  *But the æòõéô of the óðéòéô is ìïöå¬ êïù¬  ,ðåáãå¬ ìïîçóõææåòéîç¬ çåîôìåîåóó¬ çïïäîåóó¬  *æáéôè¬ íååëîåóó¬ ôåíðåòáîãåº against such  there is no law/ª/¶ÿÿved by all who knew him, lay dying in a hospital nearby. Oscar hadwritten many of Mary's musical scores and was noted throughout the world forhis great musical talent. Mary couldn't bring herself to go on that night andthe producer, director, and allù those in charge were anxiously awaiting theoutcome of this ordeal. A messenger arrived with a letter for Mary from Oscar.In the letter was one of the most touching and heartwarming passages ofliterature that Oscar ever recorded: .cPAGE 12 .e  +A bell is not a bell, 'till you ring it...  +A song is not a song, 'till you sing it...  .Love in your heart, is not put there to stay,  ÿLove is not Love, 'till you give it away. They say that Mary Martin gave the best performance of her career that night,and after the show reporters asked her what was the most contributing factorfor such a great performance? She said: "Tonight was thee first time in mycareer that I really and truely ÌÏÖÅÄ the audience...and I could feel themreturni/"÷>an assume that theyare created in the workshop of the mind.  -"For as he thinketh in his heart, so is he."  (King Solomon) Bristol wrote:  .Success or failure in business is caused more  ÿby mental attitude than by mental capacity. In the beggining of this text I referred to mans' inability to communicate withone another. In order to identify this problem I must first catagorize mentalattitudes. In these catagories lies the secret to yeither success or failure. All great leaders were at one time great followers. Everyone has to be taughtby someone.  'What a fool cannot learn he laughs at,  'thinking that by his laughter he shows  &superiority instead of latent idiocy.  ÿ(Marie Corelli, The Life Everlasting) ÒÅÔÒÏÇÒÅÓÓÉÖÅ ÁÔÔÉÔÕÄÅ (moving backwards) A retrogressive attitude directs a person to be constantly on the defensive. This person, usually because of an inferiority complex, is controlled primarilyby the five senses. This person can be i/ïÿng my love. I think I've given you enough on faith, because if I try to explain it tofinely it will lose its purpose. I don't know exactly how an electronicwristwatch works, all I know is if I tear it all apart to find out...it won'twork anymore. ÓÅ¹ÌÆ­ÉÍÁÇÅ ÉÉ Let's go back now to the subject of self-image. Here is where the foundationof personal growth begins. Again...: "Therefore if any man be in ÃÈÒÉÓÔ¬ he is a new  /creature: Old things all passed away; Behold,  .all things become new. And all things are of  0ÇÏĬ who hath reconciled us to ÈÉÍÓÅÌÆ by ÊÅÓÕÓ  -ÃÈÒÉÓÔ¬ and hath given to us the ministry of  1reconciliation: To wit, that ÇÏÄ was in ÃÈÒÉÓÔ¬  1reconciling the world unto ÈÉÍÓÅÌÆ, not imputing  /their trespasses unto them; and hath commited  0unto us the word of reconciliation. Now we are  3Ambassadors for ÃÈÒÉÓÔ, as though ÇÏÄ did beseech  /you by us: We pray you in ÃÈÒÉÓÔ stead, be ye  reconciled to ÇÏÄ® /‰ý0dentified by the following personalitytraits:  Moody  Cannot accept critisism  Talks without listening  $Blames others for their own failure  .Offers excuses for everything that goes wrong  ÿHas periods of deep depression This person is not necessarily poverty stricken. This person could be aDoctor, Lawyer, Engineer or any person...educated or uneducated. To have aretrogressive attitude is a sign of insecurity. This does not mean that aÿllpeople who are periodically moody are retrogressive...what it does mean is thatif that person continues in that state of attitude that it is dangereouslyretreating in the direction of severe retrogression. .cPAGE 14 .e ÒÅÓÔÒÉÃÔÉÖÅ ÁÔÔÉÔÕÄÅ This peÿrson is resistant to change. Although he or she may be educated in manyareas, this person feels a sense of superiority in all situations. An attitudeof: "I'll do it my way..". This person is usually tagged as a "REBEL"...a"KNOW IT ALL"...high spirited, emotional and at this p/Øó For ÈÅ hath made ÈÉÍ sin for  ,us, who knew no sin; that we might be made  righteousness to ÇÏÄ in ÈÉÍ®¢  ÿ(II Cor. 5: 17-21 King James Bible) What is righteousness? Let's look at the translator - Old English - King JamesBible. Righteous, translated means "rights"; priviledges. If you are a citizen of the United States Of America, you would have certain¥"rights" (priviledges). If you are a "born-again Christian, you also have"rights" (priviledges). If you are a Christian you are a citizen of ÔÈÅËÉÎÇÄÏÍ ÏÆ ÇÏÄ®  +ÊÅÓÕÓ said: "Fear not little flock, for it  +is your ÆÁÔÈÅÒ§Ó good pleasure to give you  the ËÉÎÇÄÏÍ¢®  :(Luke 12: 32) .cPAGE 13 .e ÁÔÔÉÔÕÄÅ Henely wrote:  I am the master of my fate,  òI am the captain of my ship. Attitude is the basic building block that molds the personality. It is yourattitude that either attracts people to you or repels people against you. Attitudes are a bi-product of how you think...therefore we c0Z0ùoint the most difficultto teach. When this person is finally on the right track, he or she could become a great leader. A good analogy of a reformed "Restrictive Person" comesfrom the word "Gentleman". The word gentle comes from the method of training ahorse...or gentling a horse. This is done by disciplining the animal withoutdestroying its spirit. In the Old West the cowboys had a saying: "There wasnever a horse that couldn't be rode, and there was never a cowboy that couldn'tbe throwed." Cowboys would conquer the will of the horse without destroyingthe the horse's spirit. This is power under control. A gentleman is a highlyspirited, but disciplined person...POWER UNDER CONTROL. ÁÄÁÐÔÉÖÅ ÁÔÔÉÔÕÄÅ This attitude is undoubtably the most dangerous of all attitudes to be in andyet adapting to change is an asset in some cases. In defining an adaptiveattitude you must take into consideration that to totally surrender your willto another person or cause you must also surrender all your right0Ê. His undying desire was to spred the gospel of ÊÅÓÕÓ ÃÈÒÉÓÔ® Hewould not settle for second best...He was running his race to ×Éή I read a story in the newspaper on July 4, 1980 about a young 37 year oldphysical educational teacher from Tucker, Georgia named Stan Cottrell. StanCottrell had just completed a 3,103.5 mile trek on foot in 48 days. He ran allthe way from New York City to San Francisco to set a new all time record. Why?This is what Stan said: "It's the greatest thing in the world, I had to doit...I just had to." He also made a comment to the crowd that met him at thefinish line: "Don't be satisfied with being average." ÆÉÇÈÔ ÔÏ ×Éή I heard a story of a young lad of only four years old, that in desperationtried to save his older brother from drowning in a small pool. He wasunsuccessful and the years of tragic events that followed were monumental. Atthe age of eight he developed a severe case of glucoma and began rapidly tolose his sight. He soon became permantly blind. At0qs andpriviledges that go with it. Many people are broken in spirit, rather thandisciplined such as "gentling a horse". Adaptive attitudes are generally theoffspring of either physical or mental abuse by other people. This is why itis very important to raise a child in the absense of FEAR. That's not to saythat you should not inform your child of the dangers around them...but don'tenfuse FEAR in them as a deterent. The adaptive person is tagged as a follower and is fair game for any cult orcause that might come along. The danger that lies in the adaptive personalitycan be related to the JIM JONES (Guyana) atrocity where 900 people adaptedthemselves to the rule and lifestyle that led them to the grave. When anotherperson is allowed to enter the privacy of your mind and maninpulate your willand you allow this without restriction, then you are in a very dangerousposition. ÐÒÏÇÒÅÓÓÉÖÅ ÁÔÔÉÔÕÄÅ (moving ahead) This person is by far the most teachable of all persons. He of she is anexcellent lis0R the age of ten he lost hisfather. Left in the care of his impoverished mother and suffering also fromthe racial element of the deep south, this young black man battled the forcesof circumstances and set for himself a personal goal. He wanted to play thepiano and he wanted to play it well. He built inside of him a burning desireand each night as he laid his head on his pillow he would live, in his mind,the dream as if it were already a reality. His mother died when he was only fifteen, and he was forced to earn his ownkeep in a world that was full of prejudice, not only for the black but also forthe handicapped. He left the town he was raised in and headed north to Chicagowhere he would "set-in" and play with small bands in the getto districts. Hewould lie about his age so he could gain the experience in his strugglingcareer. Little is recorded about the long hours of practice and the deeppersonal tragedies he experienced. Failure must not have entered his mind,only the driving force of 0<ïÿtener, researching all the information received. You'll find thatthis person hardly ever critisizes another person. This person sets a definitegoal in life and is willing to pay the price to achieve it. This person has awinning attitude, one that atxtracts others to them. This person is a fighterin all that he believe in. .cPAGE 15 .e The apostle Paul wrote:  -In a race, everyone runs but only one person  ,gets first prize. So run your race to ×Éή  *To win the contest you must deny yourself  +many things that would keep you from doing  0your best. An athlete goes to all this trouble  /just to win a blue ribbon or a silver cup, but  *we do it for a heavenly reward that never  0disappears. So I run straight to the goal with  -purpose in every step. É ÆÉÇÈÔ ÔÏ ×Éή I'm  *not just shadow boxing or playing around.  sI Cor. 9:24-26 (The Living Bible) The secret is commitment...É ÆÉÇÈÔ ÔÏ ×Éή Paul was dedicated to hiscommitment1Ó1reaching his goal was his only thought. In a recenttelevision enterview, I heard him say: "I never intended to be as famous as Iam...I just wanted to be a great pianist." What about his sacrifices? Whatabout the long lonely and cold hours he spent at the train stations waiting forthe next night club stop? What about the meals he missed? Sacrifice alonedoes not make a person great, nor does it make a person unique in some specialway...what it does do, is cause a person to be aware of the power withinthemselves...a force so great that sometimes it takes a tragedy to surface thismagnifcent source of energy. .cPAGE 16 .e Few people realize that this power is available to every person. Great peoplehave the quality that sets them aside from other people. This quality isdeveloped through personal sacrifice. Ray Charles became a legend in his own time. The State of Georgia proclaimedthe song he made famous, "Georgia On My Mind", as their state anthem. Theyasked him to perform at the Capitol d1áin in business in '33  His sweetheart died in '35  "He had a nervous breakdown in '36  He ran for State Elector in '40  $He was defeated for Congress in '43  *He was defeated again for Congress in '48  &He was defeated for the Senate in '55  +He waas defeated for Vice President in '56  äAnd yet in 1860 ABRAMAM LINCOLN became President of the United Statesof America. Most people fail in life because they carry with them the ÆÅÁÒ of failure. ÆÅÁÒ®®®(the adversary of faith) Dr. Robert Schuller says ÆÅÁÒ is:  Æalse  Åvidence  Áppearing  ‹Òeal Fear actually should be catagorized for the purpose of discussion, because inour modern-day society we identify fear in many ways:  Phobias, a psycological fear  $Fear of mental abuse (intimidation)  Fear of physical abuse  (Fear of authority (disciplined respect)  ^Fear of ÇÏÄ (reverence) All fears are real when you're looking through the mirror of your min1uring the dedication ceremony and gave hima standing ovation as he was being led down the aisle. What if Ray Charles had not dad a dream? What if he had not set a goal forhimself? What if he had bathed himself in self pity? IN studying the success and failure of people, I've come to a monumentalconclusion that success or failure is caused more by mental attitude, than by mental capacity. "For as he thinketh in his heart, so is he." Prov. 23:7 It is also a well known fact that an individual comes, finally, to believewhatever that individual repeats to themself, whether the statement is true orfalse. In the ealier pages I explained how the sub-conscious brain cannot distinguishbetween true or false? Thoughts are a source of energy and thoughts which aremixed with any of the feelings of emotion constitute a magnetic force whichattracts other similar or related thoughts. Thoughts are what great empiresare built on. Look around you...everything in sight is a product of thought.1+éÿd. Whatever the mind of man can concieve, fostered with belief, whether real orsynthetic, man will ultimately achieve. If it is fear that he fosters, then itwill be fear that will conquer. Man only inherited two fears at birth: The fear of falling; ÿand the fear ofloud noises. All other fears were creations of the mind. The fear of ÇÏÄ is not classified as an adversary fear, nor is the fear ofauthority. It is the adversay fear that will destroy the mind of man and cause him to gothough life an hincomplete and frustrated person. So therefore it is this fearthat we must deal with. .cPAGE 18 .e  zly should be catagorized for the purpose of discussion, because inour modern-day society we identify fear in many ways:  Phobias, a psycological fear  $Fear of mental abuse (intimidation)  Fear of physical abuse  (Fear of authority (disciplined respect)  ^Fear of ÇÏÄ (reverence) All fears are real when you're looking through the mirror of your min1•ßß The building you're in - The telephone - The television - The automobile - Eventhe satilites in outer-space were once a mere thought (idea)...Even you, ÇÏÄcreated you out of thought, and then spoke you into existance.  &If you think you are beaten, you are.  %If you think you darenot, you don't.  -If you like to win, but you think you can't,  it's almost certain you won't.  %If you think you'll lose, your lost.  For out of the world we find,  $success begins with a fellows will,  it's all in a state of mind.  *If you think you are outclassed, you are,  )you've got to be sure of yourself before  you can ever win the prize.  Life's battles don't always go  to the stonger or faster man,  &but sooner or later the man who wins,  Tis the man who ÔÈÉÎËÓ he can. .cPAGE 17 .e See if you can identify this person:  He failed in business in '31  &He ran and lost for Legislator in '32  He failed aga2H2�.Y 1 80 110 2 0 1 0 65 2 2 4 0 35 5 ALLELUIAH ALL HE WANTS IS YOU AMAZING GRACE BE STILL AND KNOW/ IN THEE OH LORD BECAUSE HE LIVES BLESS THAT WONDERFUL NAME OF JESUS CAUSE ME TO COME EVERYBODY OUGHT TO KNOW EVERYBODY SING PRAISE TO THE LORD EVERYDAY WITH JESUS FAMILY OF GOD FATHER GLORIFY YOURSELF FILL MY CUP, LORD (G,EFLAT) FOR THOSE TEARS I DIED GENTLE SHEPHERD GIVE ME OIL IN MY LAMP, KEEP ME BURNING GOD IS MOVING, BY HIS SPIRIT GOD IS SO GOOD GOD IS WORHTY GOD'S WONDERFUL PEOPLE GREAT IS THE LORD AND GREATLY TO BE PRAISED HALLELUJAH HALLELUJAH, " ", " ", " " HALELU, HALLELU HEAVENLY FATHER, I APPRECIATE YOU HE'S ALL I NEED HE IS LORD HE'S THE LOVER/SAVIOUR OF MY SOUL HE TOUCHED ME HIS BANNER OVER ME IS LOVE HIS NAME IS JESUS HIS NAME IS WONDERFUL HOLY, HOLY, HOLY IS THE LORD AND MIGHTY IS HIS NAME HOW GREAT THOU ART I COME TO YOU RIGHT NOW I FEEL LIKE PRAISIN' HIS NAME I GET SO THRILLED WITH JESUS(F,G) I KEEP FALLING IN LOVE WITH HIM I WILL ENTER HIS GATES I WILL PRAISE HIM I WILL SING O2‘DW SBIN ;3 - UR2: ; ; READ INPUT STATUS ROUTINES ; RSTBL: DW KYBST ;0 - TTY: DW KYBST ;1 - PTR: DW SAIST ;2 - UR1: DW SBIST ;3 - UR2: ; ; PUNCH OUTPUT ROUTINES ; PNTBL: DW SAOUT ;0 - TTY: DW SBOUT ;1 - PTP: DW SAOUT ;2 - UP1: DW SBOUT ;3 - UP2: ; ; LIST OUTPUT ROUTINES ; LOTBL: DW SAOUT ;0 - TTY: DW VIDEO ;1 - CRT: DW SBOUT ;2 - LPT: DW PRTOT ;3 - UL1: ; ; LIST OUTPUT STATUS ROUTINES ; LSTBL: DW SAOST ;0 - TTY: DW VDOST ;1 - CRT: DW SBOST ;2 - LPT: DW PRTST ;3 - UL1: ; ; INPUT FROM SIO, PORT A ; SAIN: CALL SAIST ;CHECK THE INPUT STATUS JZ SAIN ;NOT READY YET IN SIOAD ;GET DATA ANI 7FH ;MASK IT OFF MOV C,A ;SAVE IT MVI A,30H ;GET THE RESET ERRORS FLAG OUT SIOAS ;PUT IT OUT MOV A,C ;GET THE CHARACTER BACK IN CASE RET ;NOW LEAVE ; ; INPUT STATUS CHECK FOR SIO, PORT A ; SAIST: MVI A,10H ; OUT SIOAS ;RESET EXTERNAL CONDITIONS OUT SIOAS ; IN SIOAS ;GET THE STATUS ANI SIORB ;CHECK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;2œF THE MERCIES OF THE LORD FOREVER(EFLAT,F) IF YOU WANT JOY(F,G) I'M PRAISIN' THE LORD I'M REACHING OUT TO YOU,DEAR LORD I'M SO GLAD I'M SO HAPPY, HERE'S THE REASON WHY IN HIS PRESENCE, FULLNESS OF JOY IN MY LIFE LORD, BE GLORIFIED(EFLAT,F) ISN'T HE WONDERFUL ISN'T THE LOVE OF JESUS SOMETHING WONDERFUL IT IS A GOOD THING IT IS NO SECRET, WHAT GOD CAN DO I'VE GOT PEACE LIKE A RIVER JESUS IS EVERYTHING JESUS IS THE SWEETEST NAME I KNOW JESUS, NAME ABOVE ALL NAMES JESUS, THERE'S SOMETHING ABOUT THAT NAME JESUS, WE JUST WANT TO THANK YOU KNOW YE NOT, KNOW YE NOT, YOU'RE THE TEMPLE LET'S JUST PRAISE THE LORD/HE HAS DONE GREAT THINGS LORD, I BELIEVE MORE OF YOU NEVER FAILED ME YET OH COME LET US ADORE HIM OH HOW HE LOVES YOU AND ME OH HOW I LOVE JESUS OH I LOVE YOU IN THE LOVE OF THE LORD OH TO BE HIS HAND EXTENDED OUR GOD REIGNS PEACE, PEACE, WONDERFUL PEACE PRAISE HIM PRAISE THE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T2J#ÿ 1. JESUS BREAKS EVERY FETTER 2. THOU ART WORTHY 3. MORE OF YOU 4. PRAISE THE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH 5. GOD IS WORTHY, HIS NAME BE PRAISED 6. TO GOD BE THE GLORY 7. HE'S ALL I NEED 8. ALL HE WANTS IS YOU 9. FILL MY CUP .LORD 10. ISN'T HE WONDERFUL 11. OUR GOD REIGNS   åNAMES MåMMERGE WPMNOåFORMAT TBLPQåH= HÅPCez|}åH5 HEPåBOILER LETåTEST WPMåTESTT WPM åDATA $$$ SYS OÖLåDATA 2åTEMP L:;?F_`abcdåASSIGN WPMSåSB CÏMlfghijklmnopqrståMACROS €RSTUVWXYZ[\]^uvwåMACROS xyåCAPLINE BAKeåCAPLINE BAKzåCAPLINE WPM{åå2ñ¡ÿHE KINGDOM OF GOD SOMETHING BEAUTIFUL SOMETHING GOOD IS GOING TO HAPPEN TO YOU SPIRIT OF THE LIVING GOD, FALL FRESH ON ME SURELY GOODNESS AND MERCY SWEET JESUS, SWEET JESUS, WHAT A WONDER YOU ARE THANK YOU LORD, FOR SAVING MY SOUL THE JOY OF THE LORD THÿE LORD LIVETH THERE IS A RIVER THEY THAT WAIT UPON THE LORD THIS IS THE DAY THOU ART WORTHY THY LOVINGKINDNESS TO BE LIKE JESUS TO BE USED OF GOD TO GOD BE THE GLORY UNTO THEE OH LORD, DO I LIFT UP MY SOUL WE EXALT THEE WE HAVE COME INTO HIS HOUSE(EFLATÿ,F) WE SING HOLY WE WORSHIP AND ADORE THEE WE'RE TOGETHER AGAIN WE'RE ON HOLY GROUND(G,AFLAT) WHERE THE SPIRIT OF THE LORD IS WHY DON'T YOU LIFT UP YOUR HANDS AND PRAISE THE LORD WITH HANDS LIFTED UP(EFLAT,F) WITHOUT HIM WORTHY IS THE LAMB YOU ARE THE SONG THAT I SING 7€HE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T3Á3ORB ;CHECK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;THERE IS A CHARCTER READY RET ; ; ; OUTPUT TO SIO PORT B ; SBOUT: CALL SBOST ;IS THE XMIT BUFFER EMPTY? JZ SBOUT ;NO, WAIT MOV A,C ;GET THE CHARACTER OUT SIOBD ;PUT THE CHARACTER OUT RET ;AND LEAVE ; ; OUTPUT STATUS FOR SIO PORT B ; SBOST: MVI A,10H ; OUT SIOBS ;RESET EXTERNAL CONDITION OUT SIOBS ; IN SIOBS ;GET THE STATUS LXI H,SBOMK ;POINT AT THE MASK ANA M ;MASK OFF THE WANTED BITS INX H ; CMP M ;CHECK TO SEE IF READY JZ SBORD ;YES XRA A ;SET NOT READY RET ;AND LEAVE SBORD: MVI A,0FFH ;SET READY ORA A ; RET ;AND LEAVE ; ; PARALELL PRINTER ROUTINES ; PRTST: IN PO1BD ;GET THE STATUS INFORMATION ANI 30H ;IS THERE A PRINTER THERE? RZ ;NO, JUST LEAVE IN PO1BD ;GET THE STATUS AGAIN CMA ;MAKE THE SIGNAL A HI TRUE READY SIGNL ANI 04H ;IS IT READY FOR A CHARACTER? RZ ;NOT YET MVI A,0FFH ;YES, SET ALL BITS IN CASE RET ;AND LEAVE ; ; OUTPUT THE CHARACTER IN REG C TO THE P3˜ù´ÈÉÓdisciples, I believe that one of ÈÉÓ primary concerns was that you and I wouldbe blessed with the power to take care of ourselves and to occupy this planetuntil ÈÉÓ return.  )I pray not that thou shouldest take them  *out of the world, but that thou shouldest  keep them from the evil.  ?John 17:15 (King James) The Living Bible translates it thus:  +I'm not asking you to take them out of the  *world, but to keep them safe from satan's  ÿpower. .e Socrates lived about 400 years before ÃÈÒÉÓÔ and was considered one of thegreatest of all the Greek philosphers. In a method of uncovering truth in anindividual, Socrates would pretend to know nothing of the subject underdicussion and by aÿ series of carefully directed questions would make the otherperson find out the truth for himself. Thus, the Qoute: "One thing I know forsure, is that I know nothing." Mans' inability to communicate with one another is undoubtably his biggestliability and as proof of this3.Y 1 90 110 0 0 1 1 65 2 2 4 0 35 5 .c¢ÂÅÙÏÎÄ ÃÏÍÍÉÔÍÅÎÔ¢ On Sunday, March 28,1976, the world population reached 4 Billion people, twicethe number just 46 years earlier according to the Population Reference Bureau. The PRB reports that, at present, the world population now stands at over 4.5Billion and increasing at a rate of 250,000 a day. It took from the begining of time until 1850 for the human race to reach the 1Billion mark; 80 years later (1930) the population stood at 2 Billion; Only31 years after that (1961) we vaulted to 3 Billion; The growth from 1961 to1976 only took 16 years to reach a population of 4 Billion the PRB reported. As man explores the far bounderies of this world and reaches desparately toconquer the unknown wonders of outer-space, I'm concerned that the lack ofmeaningful purpose has excaped man in his quest for superiority over the forcesof the universe. ÇÏÄ made the world and all things therein, seeing that ÈÅ is ÌÏÒÄ of heaven and earth, dwelleth no3�ýÿ it has been continually displayed by hisactions: Wars; Killings; lawsuits; Divorces; Etc., etc. I have tried to be careful not to give direction in any doctrinal theology, butonly bring to light spiritual truth. Therefore a person may examine thÉemselfwithout influence or prejudice other than from the spirit within. ÓÅÌÆ ÉÍÁÇÅ In Ralph Waldo Emerson's essay on "Self Reliance", he writes: "Man is his own star, and the soul that can  "render an honest and perfect man,  ,command all light, all influence, all fate,  'nothing to him falls early or to late.  )Our acts our angels are, or good or ill,  ÿour fatal shadows that walk by us still." To establish a good solid foundation of self-image, a person must first learnthat he or she is worthy of a healthy self-image. That is not to say you areperfect. That's not even to imply that you like everythsing about yourself. Ahealthy self-image will allow you to look at yourself and see a finishedproduct of what yo3Šõt in temples made  =with hands; neither is worshiped with man's hands, as though  ?ÈÅ needed any thing, seeing ÈÅ giveth to all life, and breath,  >and all things; and hath made of one blood all nations of men  ?for to dwell on all the face of the earth, and hath determined  @the times before appointed, and the bounds of their habitation;  ?That they should seek the ÌÏÒÄ, if haply they might feel after  >ÈÉͬ and find ÈÉÍ, though ÈÅ be not far from every one of us.  ÿActs 17: 24-27 King James Bible If ÇÏĬ with all ÈÉÓ wisdom, has determined our bounderies and if we, aschildren, are obedient and recognize ÈÉÓ wisdom and follow ÈÉÓ direction andaccept the fact that ÈÅ and ÈÅ alone is the source of all energy and allù powerand ÈÅ dwells in us, who are ÈÉÓ children...Then we can search within ourselvesand discover the true power that lies hidden and untapped in the very depths ofour being. As ÊÅÓÕÓ§Ó was praying to the ÆÁÔÈÅÒ¬ (in John 17) for the welfare of 4~4'ÿDu could become. "Therefore if any man be in ÃÈÒÉÓÔ¬ he is a  +new creature: Old things are passed away;  &Behold, all things are become new..."  x(II Cor. 5:17 King James Bible) The Living Bible translation says: "He has become a brand new person inside.  ÿA new life has begun." I'm not going to elaborate on the subject of self-image at this time, but I'mgoing to be referring back to it throughout this entire text because I stronglybelieve that before any substantial growth can take place in a persons liÿfe,that he or she must have a healthy self-image. .cPAGE 2 .e ÔÈÅ ÔÒÉÎÉÔÙ ÏÆ ÍÁή Then ÇÏÄ said, "Let us make man...someone like ourselves, to be master of alllife upon the earth and in the skies and in the seas." (Gen. 2:26 The Living Bible) This Õis one of the most powerful verses regarding the creation of man in theentire bible. ÇÏÄ said: "...someone like ourselves...to be master of alllife..." ÐÏ×ÅÒÆÕÌ® We were created in the likness of ÇÏÄ - in spi4äõÿs disobedience all mankind was doomed to die. .cPAGE 3 .e Now whether ÇÏÄ knew that man would eat the forbidden fruit is again not asimportant as to the ÍÁÓÔÅÒ§Ó ultimate plan. The apostle Paul writes: "Long ago, even before ÈÅ made the world, ÇÏÄ  /chose us for ÈÉÓ very own, through what ÃÈÒÉÓÔ  -would do for us; ÈÅ decided then to make us  .holy in ÈÉÓ eyes, without a single fault - we  ,who stand before ÈÉÍ covered with ÈÉÓ love.  -ÈÉÓ unchanging plan has always been to adopt  /us into ÈÉÓ own family by sending ÊÅÓÕÓ ÃÈÒÉÓÔ  2to die for us. And ÈÅ did this because ÈÅ wanted  to."  ÿ(Eph. 1:4,5 The Living Bible) Now that we have established what happened; how it happened; and why ithappened...let's examine what we have to look forward to. First, in order to have any knowledge of who you are, you must know first, whoyou were. lThat is, where you came from. ÇÏÄ said: "...someone like ourselves..." ÇÏÄ is a spirit, without limitatio4¾ýÿrit - withvery few limitations - we had power over all living things - we were masters ofall things upon the earth, in the sky and in the seas. What an awesome amountof power and responsibility. ÇÏÄ loved the man ÈÅ created and ÇÏÄ planted agarden fÿor him in ÅÄÅÎ with all sorts of fruit trees and made man the watchmanover ÅÄÅÎ. ÇÏÄ noticed that man was lonely so ÇÏÄ created a woman fron one ofman's ribs. From all the trees of the garden, ÇÏÄ said they could eat, except from the ÔòååÏæ Ãïîóãéåîã€å which was in the center of ÅÄÅÎ with the Ôòåå Ïæ Ìéæå® ÇÏÄwarned: "You may eat any fruit in the garden except fruit  1from the Ôòåå Ïæ Ãïîóãéåîãå¬ for it's fruit will  .open your eyes to make you aware of right and  0wrong, good and bad. If you eat its fruit, you  will be doomed to die."  ³(Gen. 2:16,17 The living Bible) The word says that a serpent (satan) tricked woman into eating from the Ôòåå ÏæÃïîóãéåîãå and that the woman then enticed man into eating the fr4=ûÊn.Therefore if man was created like ÇÏÄ, then man was first created with adominate spirit. Now ÇÏÄ must have made man more limited than ÈÉÍÓÅÌÆ® ¢ÇÏÄ formed a man's body from the dust of the  0ground and breathed into it the breath of life,  !and man became a living person."  ÿ(Gen. 2:7 The Living Bible) So man was basically "spirit with form". He must have been able to see, hear,taste, feel and smell. All the five basic senses. He also had a brain. Manalso had a mind, will and emotion that made up his soul. He also ma?de man andwoman reproductive (even before the disobedience).  .And ÇÏÄ blessed them and told them, "Multiply  &and fill the earth and subdue it;..."  ÿ(Gen. 2:28 The Living Bible) Many believe that man was a spirit exactly like ÇÏÄ and that man would liveforever or should I say..."would have lived forever". I don't want to get intoa theological discussion at this point because it's not that importa$nt...what'simportant is that man wa4}ñÿuit. The factthat they were tricked into eating the fruit is not as important as it is thatthey sacrificed all that priviledged power in an act of disobedience...therefor e with a sentence of death. Then the ÌÏÒÄ said: "Now that the man has become as we are, knowing  0good from bad, what if he eats the fruit of the  4Ôòåå Ïæ Ìéæå and lives forever?" (note: two trees -  2one opening your eyes to good and bad...the other  4giving you eternal life) "So the ÌÏÒÄ ÇÏÄ banished  2him forever from the garden of ÅÄÅÎ, and sent him  5out to farm the ground from which he had been taken.  3Thus ÇÏÄ expelled him, and placed mighty angels at  5the east of the garden of ÅÄÅά with a flaming sword  ,to guard the entrance to the Ôòåå Ïæ Ìéæå®¢  Ô(Gen. 4:22-24 The Living Bible) Tragic. Man had the power to live a good and wholesome life in directcommunion and fellowship with his creator. ÇÏÄ truly loved him and richlyblessed him, but because of man'5÷5…íÎs and still is a very complex person and must be dealtwith in that manner. .cPAGE 4 .e In the two illustrations I will attempt to identify man as he was before theact of disobedience and after the act. ÿAs you can see in the illustration, man has transformed into a dominatephysical person, whereas before man was a dominate spiritual person. The soulhas remained in its freedom area, an area which ÇÏÄ has never taken away fromman. Even after ÇÏÄ creaÿted man ÈÅ allowed him to make choices. Man namedall the animals and all the creatures...he even named woman.(Gen.2:23 TheLiving Bible) This meant that man had a free will, and still does. Let's examine what actually took place and also where we go fÿrom here. First, what Adam and Eve done is history...there's is no turning back. Solet's put that to bed. Next, let's consider what ÊÅÓÕÓ ÃÈÒÉÓÔ did for us. ÈÅ redeemed our lost soulsfrom the penlalty of death. (remember..."You will be doomed to die...") ÈÅgave us 5Jally believe in myself? What causes one person to succeed inlife and another person to fail? Are all things ordained and preordained in mylife? Is it ÇÏÄ who causes all the hunger and poverty over the majority of theworld's population? Who decides who should die and who should live? Does ÇÏÄ? None of these questions (and I'm sure you've asked many more) should beanswered by any other person other than yourself. I don't have the answers toyour questions any more than you have the answers to mine. Each person is anindividual in ÇÏÄ§Ó eyes and ÇÏÄ deals with that person on a personal andindividual basis. What's good for me, could be bad for you. If the starvingpeople of Somalia are a burden on your heart...feed them. If you have a burdenfor people plagued with cancer...donate to the cause for a cure. If you don'tlike the way the government is run...cast your vote to change it. If you don'tunderstand ÇÏÄ§Ó laws...read the Bible. Search out and find the answers. Don'tbe afraid to ask your 5íÿÈÉÓ spirit which is unblemished and with ÈÉÓ spirit we have eternallife. ÓÉÍÐÌÅ®®®by faith you have received ÈÉÓ spirit, living within you,giving you the promise of eternal life. You are ÒÅÂÏÒή Now you have the samespirit control that Adam had. . cPAGE 5 .e  1But you are not in the flesh, but in the spirit,  .if so be that the ÓÐÉÒÉÔ ÏÆ ÇÏÄ dwell in you.  1Now if any man have not the ÓÐÉÒÉÔ ÏÆ ÃÈÒÉÓÔ¬ he  .is none of ÈÉÓ. And if ÃÈÒÉÓÔ be in you, the  0body is dead because of sin; but the ÓÐÉÒÉÔ is  life because of righteousness.  .But if the ÓÐÉÒÉÔ ÏÆ ÈÉÍ that raised up ÊÅÓÕÓ  .from the dead dwell in you, ÈÅ that raised up  -ÃÈÒÉÓÔ from the dead shall also quicken your  -mortal bodies by ÈÉÓ ÓÐÉÒÉÔ that dwelleth in  you.  Í(Rom. 8:9-11 King James Bible) With all the spirit control we now have it is still difficult for man toestablish his power over the forces of the material world. The old personalityor old nature of man5³pastor. Renewing your mind can be a wonderfulexperience. .cPAGE 6 .e In the following pages I will endeavor to lead you and guide you through aseries of truths that will uncover some of the secrets on renewing your mind. Once you have dicovered how ÇÏÄ created your mind and how very powerful it is,you will be able to control the course of your destiny. ÔÈÅ ÐÈÙÓÉÃÁÌ ÍÁÎ The five senses of man are genetic organs that are developed and tuned to therequirements or needs and desires of each individual. Most people are bornwith all five senses in good working condition. However, some develop morequickly than others. It's been recently discovered that child prodigies arenot born with high I.Qs. (that is to say, they were not born geniuses). Theirsenses were developed much faster. It is a well known fact that a child, fromthe age of birth until the age of ten, will develop 80% of their learninghabits and character building attitudes and are more acutely tuned-in tosuggestions (direction) than a5aõi is still an active force in our everyday lives. "And be not conformed to this world: But be ye  0transformed by the renewing of your mind. That  2ye may prove what is that good and acceptable and  perfect will of ÇÏÄ®¢  ÿ(Rom. 12: 2 King James Bible) What the apostle Paul is saying here is that man, in order to please ÇÏÄ andhave the power that is rightly his, (being bought and paid for by the blood ofÊÅÓÕÓ ÃÈÒÉÓÔ) he has to subject his mind to obedience by disciplinin‡g his mindthrough a renewing process. The Living Bible translates it like this: "Don't copy the behavior and customs of this  .world, but be a new and different person with  /a fresh newness in all you do and think. Then  ,you will learn from your own experience how  ÐÈÉÓ ways really satisfy you." How do you renew your mind? How do you get rid of bad habits? How do you burythe "Old Nature"? Why am I good sometime and rotten at other times? Why is ithard for me to re6l6‡ÿBt any other period of time in their entire life. As an example:  %A musician will develop his hearing;  $An engraver will develop his sight;  "A sculptor will develop his feel;  A chef will develop his taste;  ÿA winemaker will develop his smell; In each case the five senses will respond to how they were developed, notaccording to what he was born with. In the makeup of the physical man, another organ plays a very important role. The brain. The brain is notÿ to be confused with the mind. The brain is a verycomplex and sofisticated organ. This tiny grey matter houses over 100 billionmemory cells called "Neurons", with a vast network of channels that couldnumber as high as a quadrillion. The brain is basÿically a chemical organ andthe cells talk to each other through chemical messages known as"Neurotransmitters". It is believed that even if the total square footage ofthe Empire State Building was housed with a computer, it could not match thecapacity of the human b6~ÿÿghts on your mind. Whatever thought you feed the brain through your mind you'll enfuse into amemory cell that can respond upon impulse within 1/400 of a second. Not all conversation or knowledge given to a person is transported to the sub- conscious brzain to be stored. That's why we have a forebrain. If you areforced to listen to a conversation, what happens is this:  (The forebrain receives the information;  The mind evaluates the context;  .The mind makes a decision on the information;  ÿThe mind rejects or accepts the information. If the information received by the mind is on a questionable basis, the mindcan instruct the forebrain to tap into the subconscious brain for further datato evaluate the subject matter. This process allows òthe mind to be in completecontrol of all data fed to the brain. Within the very depths of man lies his/her spirit. Here a born-again Christiancomes into personal communion with ÇÏÄ his creator. When ÃÈÒÉÓÔ comes intoyour life ÈÅ filled 6írain. Every day more and more is being learned aboutthis tiny grey matter of total energy. The brain, in essense, is a verysofisticated computer. It stores information that is fed to it at speeds thatare unmeasurable by our standards. You are not born with a pre-programedbrain, it has to be developed. Some-what like the modern-day computer, thebrain has an operating program to start you off with, and as it is fedinformation it processes it and stores the information into the brain's memorycells. The brain is programed by the mind (soul). This is the free agent that isshown in the illustration. Within the brains chemical make-up is a substanceknown as "Opiate". "Opiate" is a narcotic manufactured by the brain and is 200times more powerful than morphine. When the brain is encouraged to perserve athought, it saturates that memory cell with "Opiate". This is a rewardingprocess and a very natural occurance. .cPAGE 7 .e The brain cannot tell the difference between right and wrong; real or6™ñ{that empty void, where the dead spirit was, with ÈÉÓspirit. "And in the same way - by our faith - the ÈÏÌÙ ÓÐÉÒÉÔ  5helps us with our daily problems and in our praying.  4For we don't even know what we should pray for, nor  5how to pray as we should; But the ÈÏÌÙ ÓÐÉÒÉÔ prays  5for us with such feeling that it cannot be expressed  6in words. And ÔÈÅ ÆÁÔÈÅÒ who knows all hearts knows,  6of course, what the ÓÐÉÒÉÔ is saying as ÈÅ pleads for  5us in harmony with ÇÏÄ§Ó own will. And we know that  5all that happens to us is working for our good if we  )love ÇÏÄ and are fitting into ÈÉÓ plan."  ÿ(Rom. 8: 26-28 The Living Bible) .cPAGE 8 .e Again, man is a very complex person. He has a definite battle going on insideof him. The flesh crying out for worldly desires; The spirit calmly andlovingly trying to win the soul; The soul being temptedd by the fleshly desiresof the world and at the same time being called to come under obedience to Ç6•synthetic; good or evil; The brains only function is to store and retrieveinformation and to instruct the other organs to act on command. If the physical man is only controled and regemented by the brain, then who isthe programer? Unlike other animals or mammals in the animal world, man haswithin him a soul (mind). In the illustration it shows that the soul is made up of: ÍÉÎÄ ­ ÅÍÏÔÉÏÎ ­ ×ÉÌÌ It is here that decisions are made. Let's go back to the brain to illustrate asimple example of coordination between the brain and the mind. The brain hasbasically two departments: The forebrain or conscious brain and the sub- conscious brain. The forebrain is the program operator and the sub-consciousbrain is the computer or storehouse (filing cabinet). Now the forebrain is notthe programer, the mind is the programer, the forebrain is only the operator. The sub-conscious brain never sleeps, it is always alert and ready to perform. This is why it is not good to go to sleep with negative thou7å7>ÏÄ® ÇÏÄ does not tempt man nor does ÈÅ cause man's trials andtribulations...remember, the soul of man is a free agent that lives in the body(flesh) and the soul can either accept or reject the ÓÐÉÒÉÔ ÏÆ ÇÏÄ who hasgiven to each person the opportunity for eternal life through ÊÅÓÕÓ ÃÈÒÉÓÔ byfollowing ÇÏÄ§Ó directions, or the soul can choose the desires of the world andbe doomed to death (with a dead spirit) and spend eternity in the darkness ofhell. Now that might sound a little "harsh", but let's not play games. Idon't think it would be fair to soft-pedal on an issue as important as eternallife in the presence of ÇÏÄ®®®as opposed to eternal death in the darkness ofhell. ÇÏÄ does not send trials and tribulations, the devil does. Satan wants you tobelieve that it is coming from ÇÏÄ...that way you can blame all your misfortuneon ÇÏÄ and not him. This is why you ÍÕÓÔ have control over your thoughts. What you think and what you say are important to how you will act. Words are apowerful source o7.Y 1 90 110 0 0 1 1 65 2 2 4 0 35 5 .c¢ÂÅÙÏÎÄ ÃÏÍÍÉÔÍÅÎÔ¢ On Sunday, March 28,1976, the world population reached 4 Billion people, twicethe number just 46 years earlier according to the Population Reference Bureau. The PRB reports that, at present, the world population now stands at over 4.5Billion and increasing at a rate of 250,000 a day. It took from the begining of time until 1850 for the human race to reach the 1Billion mark; 80 years later (1930) the population stood at 2 Billion; Only31 years after that (1961) we vaulted to 3 Billion; The growth from 1961 to1976 only took 16 years to reach a population of 4 Billion the PRB reported. As man explores the far bounderies of this world and reaches desparately toconquer the unknown wonders of outer-space, I'm concerned that the lack ofmeaningful purpose has excaped man in his quest for superiority over the forcesof the universe. ÇÏÄ made the world and all things therein, seeing that ÈÅ is ÌÏÒÄ of heaven and earth, dwelleth no7„f energy and it is words that will free you or bind you. Wewill discuss this topic, in detail, later on. If the spirit and soul work in harmony with one another they can demand fromthe body organs (flesh) anything they desire. Knowing that the mind (soul) isnot organic, we must assume then that it is a form of high intelligence thatreceives information; reasons with it; calculates its valitiy; evaluates itslogic; and if accepted, transmits the information to the brain for action andfuture reference. Within the soul, two elements play a definite and important role in thebehavior habits of an individual. I call them the "Power Twins": Åíïôéïî; and ×éìì. Both are powerful forces and can easily change the direction of anychallenge brought before them. Åíïôéïî communicates with the mind on a purelyPlatonic level, that is to say, in a demonstrative or emotional atmosphere,whereas, the ×éìì is a calculating and logical decision maker, weighing all thefacts of the information supplied and then7Ÿõt in temples made  =with hands; neither is worshiped with man's hands, as though  ?ÈÅ needed any thing, seeing ÈÅ giveth to all life, and breath,  >and all things; and hath made of one blood all nations of men  ?for to dwell on all the face of the earth, and hath determined  @the times before appointed, and the bounds of their habitation;  ?That they should seek the ÌÏÒÄ, if haply they might feel after  >ÈÉͬ and find ÈÉÍ, though ÈÅ be not far from every one of us.  ÿActs 17: 24-27 King James Bible If ÇÏĬ with all ÈÉÓ wisdom, has determined our bounderies and if we, aschildren, are obedient and recognize ÈÉÓ wisdom and follow ÈÉÓ direction andaccept the fact that ÈÅ and ÈÅ alone is the source of all energy and allù powerand ÈÅ dwells in us, who are ÈÉÓ children...Then we can search within ourselvesand discover the true power that lies hidden and untapped in the very depths ofour being. As ÊÅÓÕÓ§Ó was praying for to the ÆÁÔÈÅÒ¬ (in John 17) for the welfare7«Ñÿ submitting the conclusion to theÍéîä for evaluation. Neither can work effectively without the other. If youlet your Åíïôéïîó rule, you will become a slave to any adverse force in theuniverse, and if, in retrospect, you let the ×éìì dominate in a logCical manner,then it will reject any force of faith that you have. ÿlculates its valitiy; evaluates itslogic; and if accepted, transmits the information to the brain for action andfuture reference. Within the soul, two elements play a definite and important role in thebehavior habits of an individual. I call them tÿhe "Power Twins": Åíïôéïî; and ×éìì. Both are powerful forces and can easily change the direction of anychallenge brought before them. Åíïôéïî communicates with the mind on a purelyPlatonic level, that is to say, in a demonstrative or emotional atmo‚sphere,whereas, the ×éìì is a calculating and logical decision maker, weighing all thefacts of the information supplied and then88:ù¸ of ÈÉÓdisciples, I believe that one of ÈÉÓ primary concerns was that you and I wouldbe blessed with the power to take care of ourselves and to occupy this planetuntil ÈÉÓ return.  )I pray not that thou shouldest take them  *out of the world, but that thou shouldest  keep them from the evil.  ?John 17:15 (King James) The Living Bible translates it thus:  +I'm not asking you to take them out of the  *world, but to keep them safe from satan's  ÿpower. .e Socrates lived about 400 years before ÃÈÒÉÓÔ and was considered one of thegreatest of all the Greek philosphers. In a method of uncovering truth in anindividual, Socrates would pretend to know nothing of the subject underdicussion and by aÿ series of carefully directed questions would make the otherperson find out the truth for himself. Thus, the Qoute: "One thing I know forsure, is that I know nothing." Mans' inability to communicate with one another is undoubtably his biggestliability and as proof of 8—ýÿ spirit - withvery few limitations - we had power over all living things - we were masters ofall things upon the earth, in the sky and in the seas. What an awesome amountof power and responsibility. ÇÏÄ loved the man ÈÅ created and ÇÏÄ planted agardÿen for him in ÅÄÅÎ with all sorts of fruit trees and made man the watchmanover ÅÄÅÎ. ÇÏÄ noticed that man was lonely so ÇÏÄ created a woman fron one ofman's ribs. From all the trees of the garden, ÇÏÄ said they could eat, except from the ÔòååÏæ Ãïîóã„éåîãå which was in the center of ÅÄÅÎ with the Ôòåå Ïæ Ìéæå® ÇÏÄwarned: "You may eat any fruit in the garden except fruit  1from the Ôòåå Ïæ Ãïîóãéåîãå¬ for it's fruit will  .open your eyes to make you aware of right and  0wrong, good and bad. If you eat its fruit, you  will be doomed to die."  ¯(Gen. 2:16,17 The living Bible) The word says that a serpent (satan) tricked woman into eating from the Ôòåå ÏæÃïîóãéåîãå and that the woman then enticed man into eating th8ýÿthis it has been continually displayed by hisactions: Wars; Killings; lawsuits; Divorces; Etc., etc. I have tried to be careful not to give direction in any doctrinal theology, butonly bring to light spiritual truth. Therefore a person may examinÍe themselfwithout influence or prejudice other than from the spirit within. ÓÅÌÆ ÉÍÁÇÅ In Ralph Waldo Emerson's essay on "Self Reliance", he writes: "Man is his own star, and the soul that can  "render an honest and perfect man,  ,command all light, all influence, all fate,  'nothing to him falls early or to late.  )Our acts our angels are, or good or ill,  ÿour fatal shadows that walk by us still." To establish a good solid foundation of self-image, a person must first learnthat he or she is worthy of a healthy self-image. That is not to say you areperfect. That's not even to imply that you like everythoing about yourself. Ahealthy self-image will allow you to look at yourself and see a finishedproduct of wha8nñÿe fruit. The factthat they were tricked into eating the fruit is not as important as it is thatthey sacrificed all that priviledged power in an act of disobedience...therefor e with a sentence of death. Then the ÌÏÒÄ said: "Now that the man has become as we are, knowing  0good from bad, what if he eats the fruit of the  4Ôòåå Ïæ Ìéæå and lives forever?" (note: two trees -  2one opening your eyes to good and bad...the other  4giving you eternal life) "So the ÌÏÒÄ ÇÏÄ banished  2him forever from the garden of ÅÄÅÎ, and sent him  5out to farm the ground from which he had been taken.  3Thus ÇÏÄ expelled him, and placed mighty angels at  5the east of the garden of ÅÄÅά with a flaming sword  ,to guard the entrance to the Ôòåå Ïæ Ìéæå®¢  Ð(Gen. 4:22-24 The Living Bible) Tragic. Man had the power to live a good and wholesome life in directcommunion and fellowship with his creator. ÇÏÄ truly loved him and richlyblessed him, but because of 8%ÿHt you could become. "Therefore if any man be in ÃÈÒÉÓÔ¬ he is a  +new creature: Old things are passed away;  &Behold, all things are become new..."  x(II Cor. 5:17 King James Bible) The Living Bible translation says: "He has become a brand new person inside.  ÿA new life has begun." I'm not going to elaborate on the subject of self-image at this time, but I'mgoing to be referring back to it throughout this entire text because I stronglybelieve that before any substantial growth can take place in a persons liÿfe,that he or she must have a healthy self-image. .cPAGE 2 .e ÔÈÅ ÔÒÉÎÉÔÙ ÏÆ ÍÁή Then ÇÏÄ said, "Let us make man...someone like ourselves, to be master of alllife upon the earth and in the skies and in the seas." (Gen. 2:26 The Living Bible) This Ñis one of the most powerful verses regarding the creation of man in theentire bible. ÇÏÄ said: "...someone like ourselves...to be master of alllife..." ÐÏ×ÅÒÆÕÌ® We were created in the likness of ÇÏÄ - in9›9¾õÿman's disobedience all mankind was doomed to die. .cPAGE 3 .e Now whether ÇÏÄ knew that man would eat the forbidden fruit is again not asimportant as to the ÍÁÓÔÅÒ§Ó ultimate plan. The apostle Paul writes: "Long ago, even before ÈÅ made the wo rld, ÇÏÄ  /chose us for ÈÉÓ very own, through what ÃÈÒÉÓÔ  -would do for us; ÈÅ decided then to make us  .holy in ÈÉÓ eyes, without a single fault - we  ,who stand before ÈÉÍ covered with ÈÉÓ love.  -ÈÉÓ unchanging plan has always been to adopt  /us into ÈÉÓ own family by sending ÊÅÓÕÓ ÃÈÒÉÓÔ  2to die for us. And ÈÅ did this because ÈÅ wanted  to."  ÿ(Eph. 1:4,5 The Living Bible) Now that we have established what happened; how it happened; and why ithappened...let's examine what we have to look forward to. First, in order to have any knowledge of who you are, you must know first, whoyou were. hThat is, where you came from. ÇÏÄ said: "...someone like ourselves..." ÇÏÄ is a spirit, without limit9]íÿ us ÈÉÓ spirit which is unblemished and with ÈÉÓ spirit we have eternallife. ÓÉÍÐÌÅ®®®by faith you have received ÈÉÓ spirit, living within you,giving you the promise of eternal life. You are ÒÅÂÏÒή Now you have the samespirit control that Adam had. .cPAGE 5 .e  1But you are not in the flesh, but in the spirit,  .if so be that the ÓÐÉÒÉÔ ÏÆ ÇÏÄ dwell in you.  1Now if any man have not the ÓÐÉÒÉÔ ÏÆ ÃÈÒÉÓÔ¬ he  .is none of ÈÉÓ. And if ÃÈÒÉÓÔ be in you, the  0body is dead because of sin; but the ÓÐÉÒÉÔ is  life because of righteousness.  .But if the ÓÐÉÒÉÔ ÏÆ ÈÉÍ that raised up ÊÅÓÕÓ  .from the dead dwell in you, ÈÅ that raised up  -ÃÈÒÉÓÔ from the dead shall also quicken your  -mortal bodies by ÈÉÓ ÓÐÉÒÉÔ that dwelleth in  you.  É(Rom. 8:9-11 King James Bible) With all the spirit control we now have it is still difficult for man toestablish his power over the forces of the material world. The old personalityor old nature of9ÿûÎation.Therefore if man was created like ÇÏÄ, then man was first created with adominate spirit. Now ÇÏÄ must have made man more limited than ÈÉÍÓÅÌÆ® ¢ÇÏÄ formed a man's body from the dust of the  0ground and breathed into it the breath of life,  !and man became a living person."  ÿ(Gen. 2:7 The Living Bible) So man was basically "spirit with form". He must have been able to see, hear,taste, feel and smell. All the five basic senses. He also had a brain. Manalso had a mind, will and emotion that made up his soul. He also ma?de man andwoman reproductive (even before the disobedience).  .And ÇÏÄ blessed them and told them, "Multiply  &and fill the earth and subdue it;..."  ÿ(Gen. 2:28 The Living Bible) Many believe that man was a spirit exactly like ÇÏÄ and that man would liveforever or should I say..."would have lived forever". I don't want to get intoa theological discussion at this point because it's not that importa nt...what'simportant is that ma9üõm man is still an active force in our everyday lives. "And be not conformed to this world: But be ye  0transformed by the renewing of your mind. That  2ye may prove what is that good and acceptable and  perfect will of ÇÏÄ®¢  ÿ(Rom. 12: 2 King James Bible) What the apostle Paul is saying here is that man, in order to please ÇÏÄ andhave the power that is rightly his, (being bought and paid for by the blood ofÊÅÓÕÓ ÃÈÒÉÓÔ) he has to subject his mind to obedience by disciplinin‡g his mindthrough a renewing process. The Living Bible translates it like this: "Don't copy the behavior and customs of this  .world, but be a new and different person with  /a fresh newness in all you do and think. Then  ,you will learn from your own experience how  ÌÈÉÓ ways really satisfy you." How do you renew your mind? How do you get rid of bad habits? How do you burythe "Old Nature"? Why am I good sometime and rotten at other times? Why is ithard for me t9RíÒn was and still is a very complex person and must be dealtwith in that manner. .cPAGE 4 .e In the two illustrations I will attempt to identify man as he was before theact of disobedience and after the act. ÿAs you can see in the illustration, man has transformed into a dominatephysical person, whereas before man was a dominate spiritual person. The soulhas remained in its freedom area, an area which ÇÏÄ has never taken away fromman. Even after ÇÏÄ creaÿted man ÈÅ allowed him to make choices. Man namedall the animals and all the creatures...he even named woman.(Gen.2:23 TheLiving Bible) This meant that man had a free will, and still does. Let's examine what actually took place and also where we go fÿrom here. First, what Adam and Eve done is history...there's is no turning back. Solet's put that to bed. Next, let's consider what ÊÅÓÕÓ ÃÈÒÉÓÔ did for us. ÈÅ redeemed our lost soulsfrom the penlalty of death. (remember..."You will be doomed to die...") ÈÅgave::‘o really believe in myself? What causes one person to succeed inlife and another person to fail? Are all things ordained and preordained in mylife? Is it ÇÏÄ who causes all the hunger and poverty over the majority of theworld's population? Who decides who should die and who should live? Does ÇÏÄ? None of these questions (and I'm sure you've asked many more) should beanswered by any other person other than yourself. I don't have the answers toyour questions any more than you have the answers to mine. Each person is anindividual in ÇÏÄ§Ó eyes and ÇÏÄ deals with that person on a personal andindividual basis. What's good for me, could be bad for you. If the starvingpeople of Somalia are a burden on your heart...feed them. If you have a burdenfor people plagued with cancer...donate to the cause for a cure. If you don'tlike the way the government is run...cast your vote to change it. If you don'tunderstand ÇÏÄ§Ó laws...read the Bible. Search out and find the answers. Don'tbe afraid to ask y:an brain. Every day more and more is being learned aboutthis tiny grey matter of total energy. The brain, in essense, is a verysofisticated computer. It stores information that is fed to it at speeds thatare unmeasurable by our standards. You are not born with a pre-programedbrain, it has to be developed. Some-what like the modern-day computer, thebrain has an operating program to start you off with, and as it is fedinformation it processes it and stores the information into the brain's memorycells. The brain is programed by the mind (soul). This is the free agent that isshown in the illustration. Within the brains chemical make-up is a substanceknown as "Opiate". "Opiate" is a narcotic manufactured by the brain and is 200times more powerful than morphine. When the brain is encouraged to perserve athought, it saturates that memory cell with "Opiate". This is a rewardingprocess and a very natural occurance. .cPAGE 7 .e The brain cannot tell the difference between right and wrong; real: our pastor. Renewing your mind can be a wonderfulexperience. .cPAGE 6 .e In the following pages I will endeavor to lead you and guide you through aseries of truths that will uncover some of the secrets on renewing your mind. Once you have dicovered how ÇÏÄ created your mind and how very powerful it is,you will be able to control the course of your destiny. ÔÈÅ ÐÈÙÓÉÃÁÌ ÍÁÎ The five senses of man are genetic organs that are developed and tuned to therequirements or needs and desires of each individual. Most people are bornwith all five senses in good working condition. However, some develop morequickly than others. It's been recently discovered that child prodigies arenot born with high I.Qs. (that is to say, they were not born geniuses). Theirsenses were developed much faster. It is a well known fact that a child, fromthe age of birth until the age of ten, will develop 80% of their learninghabits and character building attitudes and are more acutely tuned-in tosuggestions (direction) th:ç orsynthetic; good or evil; The brains only function is to store and retrieveinformation and to instruct the other organs to act on command. If the physical man is only controled and regemented by the brain, then who isthe programer? Unlike other animals or mammals in the animal world, man haswithin him a soul (mind). In the illustration it shows that the soul is made up of: ÍÉÎÄ ­ ÅÍÏÔÉÏÎ ­ ×ÉÌÌ It is here that decisions are made. Let's go back to the brain to illustrate asimple example of coordination between the brain and the mind. The brain hasbasically two departments: The forebrain or conscious brain and the sub- conscious brain. The forebrain is the program operator and the sub-consciousbrain is the computer or storehouse (filing cabinet). Now the forebrain is notthe programer, the mind is the programer, the forebrain is only the operator. The sub-conscious brain never sleeps, it is always alert and ready to perform. This is why it is not good to go to sleep with negative :vÿFan at any other period of time in their entire life. As an example:  %A musician will develop his hearing;  $An engraver will develop his sight;  "A sculptor will develop his feel;  A chef will develop his taste;  ÿA winemaker will develop his smell; In each case the five senses will respond to how they were developed, notaccording to what he was born with. In the makeup of the physical man, another organ plays a very important role. The brain. The brain is notÿ to be confused with the mind. The brain is a verycomplex and sofisticated organ. This tiny grey matter houses over 100 billionmemory cells called "Neurons", with a vast network of channels that couldnumber as high as a quadrillion. The brain is basÿically a chemical organ andthe cells talk to each other through chemical messages known as"Neurotransmitters". It is believed that even if the total square footage ofthe Empire State Building was housed with a computer, it could not match thecapacity of the hum;‰; ÿÿthoughts on your mind. Whatever thought you feed the brain through your mind you'll enfuse into amemory cell that can respond upon impulse within 1/400 of a second. Not all conversation or knowledge given to a person is transported to the sub- consciou~s brain to be stored. That's why we have a forebrain. If you areforced to listen to a conversation, what happens is this:  (The forebrain receives the information;  The mind evaluates the context;  .The mind makes a decision on the information;  ÿThe mind rejects or accepts the information. If the information received by the mind is on a questionable basis, the mindcan instruct the forebrain to tap into the subconscious brain for further datato evaluate the subject matter. This process allows îthe mind to be in completecontrol of all data fed to the brain. Within the very depths of man lies his/her spirit. Here a born-again Christiancomes into personal communion with ÇÏÄ his creator. When ÃÈÒÉÓÔ comes intoyour life ÈÅ fil;÷ce of energy and it is words that will free you or bind you. Wewill discuss this topic, in detail, later on. If the spirit and soul work in harmony with one another they can demand fromthe body organs (flesh) anything they desire. Knowing that the mind (soul) isnot organic, we must assume then that it is a form of high intelligence thatreceives information; reasons with it; calculates its valitiy; evaluates itslogic; and if accepted, transmits the information to the brain for action andfuture reference. Within the soul, two elements play a definite and important role in thebehavior habits of an individual. I call them the "Power Twins": Åíïôéïî; and ×éìì. Both are powerful forces and can easily change the direction of anychallenge brought before them. Åíïôéïî communicates with the mind on a purelyPlatonic level, that is to say, in a demonstrative or emotional atmosphere,whereas, the ×éìì is a calculating and logical decision maker, weighing all thefacts of the information supplied and ;"ñled that empty void, where the dead spirit was, with ÈÉÓspirit. "And in the same way - by our faith - the ÈÏÌÙ ÓÐÉÒÉÔ  5helps us with our daily problems and in our praying.  4For we don't even know what we should pray for, nor  5how to pray as we should; But the ÈÏÌÙ ÓÐÉÒÉÔ prays  5for us with such feeling that it cannot be expressed  6in words. And ÔÈÅ ÆÁÔÈÅÒ who knows all hearts knows,  6of course, what the ÓÐÉÒÉÔ is saying as ÈÅ pleads for  5us in harmony with ÇÏÄ§Ó own will. And we know that  5all that happens to us is working for our good if we  )love ÇÏÄ and are fitting into ÈÉÓ plan."  ÿ(Rom. 8: 26-28 The Living Bible) .cPAGE 8 .e Again, man is a very complex person. He has a definite battle going on insideof him. The flesh crying out for worldly desires; The spirit calmly andlovingly trying to win the soul; The soul being tempte`d by the fleshly desiresof the world and at the same time being called to come under obedience ;zÕÿthen submitting the conclusion to theÍéîä for evaluation. Neither can work effectively without the other. If youlet your Åíïôéïîó rule, you will become a slave to any adverse force in theuniverse, and if, in retrospect, you let the ×éìì dominate in aG logical manner,then it will reject any force of faith that you have. ÿ calculates its valitiy; evaluates itslogic; and if accepted, transmits the information to the brain for action andfuture reference. Within the soul, two elements play a definite and important role in thebehavior habits of an individual. I call thÿem the "Power Twins": Åíïôéïî; and ×éìì. Both are powerful forces and can easily change the direction of anychallenge brought before them. Åíïôéïî communicates with the mind on a purelyPlatonic level, that is to say, in a demonstrative or emotional ‚atmosphere,whereas, the ×éìì is a calculating and logical decision maker, weighing all thefacts of the information supplied and ;to ÇÏÄ® ÇÏÄ does not tempt man nor does ÈÅ cause man's trials andtribulations...remember, the soul of man is a free agent that lives in the body(flesh) and the soul can either accept or reject the ÓÐÉÒÉÔ ÏÆ ÇÏÄ who hasgiven to each person the opportunity for eternal life through ÊÅÓÕÓ ÃÈÒÉÓÔ byfollowing ÇÏÄ§Ó directions, or the soul can choose the desires of the world andbe doomed to death (with a dead spirit) and spend eternity in the darkness ofhell. Now that might sound a little "harsh", but let's not play games. Idon't think it would be fair to soft-pedal on an issue as important as eternallife in the presence of ÇÏÄ®®®as opposed to eternal death in the darkness ofhell. ÇÏÄ does not send trials and tribulations, the devil does. Satan wants you tobelieve that it is coming from ÇÏÄ...that way you can blame all your misfortuneon ÇÏÄ and not him. This is why you ÍÕÓÔ have control over your thoughts. What you think and what you say are important to how you will act. Words are apowerful sour<6<«£ÿ.Y 1 90 110 0 0 1 1 65 2 2 4 0 35 5 Many sermons have been preached on the misfortunes of JOB (old testament) andyet few fail to explain why JOB went through the trials and tribulations. Somepeople give the excuse that ÇÏÄ caused or allowed the trialsD and tribulationsof JOB. Maybe you can figure out what happened.  6For the thing which I greatly ÆÅÁÒÅÄ is come upon me,  -and that which I was ÁÆÒÁÉÄ of come unto me.  5I was not in safety, neither had I rest, neither was  I quiet: YET TROUBLE CAME.  7Job 3: 25-26 King James Bible The Living Bible says:  )What I always ÆÅÁÒÅÄ has happened to me.  +I was not fat and lazy, yet ÔÒÏÕÂÌÅ ÓÔÒÕÃË  *ÍÅ ÄÏ×ή What/who causes trouble...ÆÅÁÒ®  åASSIGN WPMSåSB CÏMlfghijklmnopqrståMACROS €RSTUVWXYZ[\]^uvwåMACROS xyåCAPLINE BAKeåCAPLINE BAKzåCAPLINE WPM{åå<^ISE THE LORD I WANT JESUS, MORE THAN ANYTHING IN REMEMBRANCE ISAIAH 51:11 I FIND NO FAULT IN HIM I LIVE IT IS FINISHED IT IS WELL WITH MY SOUL JESUS SAVES JOY GREAT JOY JESUS JESUS IS EVERYTHING JOYOUSLY SINGING JOY IN THAT LAND KING JESUS KING JESUS WILL ROLL MY BURDENS AWAY KING OF KINGS LOVE DIVINE LISTEN TO THE SOUND LIVING BY FAITH LORD KEEP MY MIND STAYED ON THEE LET THY MANTLE FALL ON ME LET'S JUST PRAISE THE LORD LET ME TOUCH HIM LOVEST THOU ME? LOOKING THROUGH HIS EYES LEARNING TO LIVE LIKE A CHILD OF THE KING LOVE WAS WHEN MASTER THE TEMPEST IS RAGING MY FAITH STILL HOLDS MY TRIBUTE MORE THAN LIFE MAKE ME AN INSTRUMENT NEARING THE SHORE NOTHING BUT THE BLOOD NO ONE EVER CARED FOR ME LIKE JESUS NEW NO MOUNTAIN HIGH ENOUGH NO MAN CARETH FOR MY SOUL OH, I WANT TO SEE HIM ONWARD CHRISTIAN SOLDIERS OH HAPPY DAY PRAISE THE LORD REACH OUT TO JESUS REVIVE US AGAIN REACH OUT AND TOUCH RISE AND BE HEALED ROOM AT THE CROSS FOR YOU REDEMPTION DRAWETH NIGH SAVIOUR, LIKE A SHEPHERD LEAD US SWEET<Håå<‹çÿ JESUS SWEET, SWEET SPIRIT SEEK AND YE SHALL FIND SOON AND VERY SOON THIS WAS THE SON OF GOD THE BLOOD WILL NEVER LOSE IT'S POWER THE FAMILY OF GOD THE KING IS COMING THE LORD IS BLESSING ME THE LORD'S PRAYER THE CHURCH TRIUMPHANT THE HOLY CITY THE BATÿTLE HYMN OF THE REPUBLIC TELL IT TO JESUS THERE'S A QUIET UNDERSTANDING THE HAPPY JUBILEE TO BE USED OF GOD THE RESURRECTION MORN THE LORD OF MIRACLES THROUGH IT ALL THE BROKEN VESSEL THERE IS A RIVER UNTIL THEN UNTOLD MILLIONS VICTORY AHEAD VICTORY IÿN JESUS WALL OF FIRE WE'VE COME THIS FAR BY FAITH WE'VE GOT A GREAT BIG WONDERFUL GOD WHAT A PRECIOUS FRIEND IS HE WHEN WE ALL GET TOGETHER UP THERE WHY SHOULD I WORRY? WHAT A BLESSING IN JESUS I'VE FOUND WHEN I SURVEY THE WONDROUS CROSS WE SHALL BE CHA[NGED WORK FOR THE NIGHT IS COMING YOU CAN'T BEAT GOD GIVING YESTERDAY, TODAY, FOREVER €EACH OUT AND TOUCH RISE AND BE HEALED ROOM AT THE CROSS FOR YOU REDEMPTION DRAWETH NIGH SAVIOUR, LIKE A SHEPHERD LEAD US SWEET<AMEN CHORUS ALL OF ME AFTER CALVARY A NEW DAY A CHRISTIAN HOME BETHESDA BLESSED ASSURANCE BECAUSE HE LIVES BY MY SPIRIT BLESS THE LORD BOW YOUR HEART BATTLE HYMN OF THE REPUBLIC COME AND DINE COME HOLY SPIRIT DO YOU KNOW HIM? FAMILY OF GOD MEDLEY GET ALL EXITED GOD IS STILL ON THE THRONE GLAD HAPPY DAY GOD IS SO GOOD GREATER IS HE THAT IS IN ME GOD IS WORTHY GRACE HALLELUJAH CHORUS HE KNOWS WHAT I NEED HE LOOKED BEYOND MY FAULTS HE'S THE LORD OF GLORY HIGHER GROUND HIGHWAY TO HEAVEN HIS EYE IS ON THE SPARROW HOW LONG HAS IT BEEN? HE TOUCHED ME HAVE YOU ANY ROOM FOR JESUS? HOLY SPIRIT FILL ME NOW HUMANITY TAKE IT TO JESUS HE DIED FOR US HE'S ALIVE IN HIS PRESENCE, FULLNESS OF JOY I MUST CHOOSE TO SURRENDER I BOWED ON MY KNEES I CAN CALL HIM I FELT THE SPIRIT IF YOU EVER NEEDED THE LORD BEFORE I FOUND THE ANSWER I KNOW PRAYER CHANGES THINGS I'LL NEVER BE LONELY AGAIN I'M TRAVELING ON IN THE GARDEN I SURE DO LOVE THE LORD I MUST TELL JESUS I KNOW, I KNOW I COULD NEVER OUTLOVE THE LORD I CAME TO PRA=¿=‚9ÿNSE BIT ; ; VIDEO CONTROLLER PORTS ; VCBAS EQU 40H ;BASE ADDRESS FOR THE VIDEO CONTROLLER VCIR0 EQU VCBAS ;INIT REG 0 VCIR1 EQU VCIR0+1 ;INIT REG 1 VCIR2 EQU VCIR1+1 ;INTI REG 2 VCIR3 EQU VCIR2+1 ;INIT REG 3 VCIR4 EQU VCIR3+1 ;INIT REG 4 VCIR5 EÿQU VCIR4+1 ;INIT REG 5 VCIR6 EQU VCIR5+1 ;INIT REG 6 VCPSL EQU VCIR6+1 ;FORCE SELF LOAD (NOT USED) VCRCL EQU VCPSL+1 ;READ CURSOR LINE NUMBER VCRCC EQU VCRCL+1 ;READ CURSOR CHARACTER (COLUMN) NUMBER VCRST EQU VCRCC+1 ;RESET CONTROLLER TIMING CHAIN VâCSCR EQU VCRST+1 ;SCROLL UP VCWCC EQU VCSCR+1 ;WRITE CURSOR CHARACTER (COLUMN) NUMBER VCWCL EQU VCWCC+1 ;WRITE CURSOR LINE NUMBER VCSTR EQU VCWCL+1 ;START VIDEO TIMING CHAIN VCSFL EQU VCSTR+1 ;SELF LOAD (NOT USED) ; ; ;*** ;  ; ! BDOS CONSTANTS ON ENTRY TO WRITE  ;  ;**=ñ¡ÿHE KINGDOM OF GOD SOMETHING BEAUTIFUL SOMETHING GOOD IS GOING TO HAPPEN TO YOU SPIRIT OF THE LIVING GOD, FALL FRESH ON ME SURELY GOODNESS AND MERCY SWEET JESUS, SWEET JESUS, WHAT A WONDER YOU ARE THANK YOU LORD, FOR SAVING MY SOUL THE JOY OF THE LORD THÿE LORD LIVETH THERE IS A RIVER THEY THAT WAIT UPON THE LORD THIS IS THE DAY THOU ART WORTHY THY LOVINGKINDNESS TO BE LIKE JESUS TO BE USED OF GOD TO GOD BE THE GLORY UNTO THEE OH LORD, DO I LIFT UP MY SOUL WE EXALT THEE WE HAVE COME INTO HIS HOUSE(EFLATÿ,F) WE SING HOLY WE WORSHIP AND ADORE THEE WE'RE TOGETHER AGAIN WE'RE ON HOLY GROUND(G,AFLAT) WHERE THE SPIRIT OF THE LORD IS WHY DON'T YOU LIFT UP YOUR HANDS AND PRAISE THE LORD WITH HANDS LIFTED UP(EFLAT,F) WITHOUT HIM WORTHY IS THE LAMB YOU ARE THE SONG THAT I SING 7€HE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T=�.Y 1 80 110 2 0 1 0 65 2 2 4 0 35 5 ALLELUIAH ALL HE WANTS IS YOU AMAZING GRACE BE STILL AND KNOW/ IN THEE OH LORD BECAUSE HE LIVES BLESS THAT WONDERFUL NAME OF JESUS CAUSE ME TO COME EVERYBODY OUGHT TO KNOW EVERYBODY SING PRAISE TO THE LORD EVERYDAY WITH JESUS FAMILY OF GOD FATHER GLORIFY YOURSELF FILL MY CUP, LORD (G,EFLAT) FOR THOSE TEARS I DIED GENTLE SHEPHERD GIVE ME OIL IN MY LAMP, KEEP ME BURNING GOD IS MOVING, BY HIS SPIRIT GOD IS SO GOOD GOD IS WORHTY GOD'S WONDERFUL PEOPLE GREAT IS THE LORD AND GREATLY TO BE PRAISED HALLELUJAH HALLELUJAH, " ", " ", " " HALELU, HALLELU HEAVENLY FATHER, I APPRECIATE YOU HE'S ALL I NEED HE IS LORD HE'S THE LOVER/SAVIOUR OF MY SOUL HE TOUCHED ME HIS BANNER OVER ME IS LOVE HIS NAME IS JESUS HIS NAME IS WONDERFUL HOLY, HOLY, HOLY IS THE LORD AND MIGHTY IS HIS NAME HOW GREAT THOU ART I COME TO YOU RIGHT NOW I FEEL LIKE PRAISIN' HIS NAME I GET SO THRILLED WITH JESUS(F,G) I KEEP FALLING IN LOVE WITH HIM I WILL ENTER HIS GATES I WILL PRAISE HIM I WILL SING O=]ey on key pad DB '[' ;1E DB 00H ;1F ; DB '.' ;20 DB 'm' ;21 DB ' ' ;22 DB 'b' ;23 DB 'c' ;24 DB 1BH ;25 - ESCape key DB '0' ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT KEY DB 'o' ;2B DB 'u' ;2C DB 't' ;2D DB 'e' ;2E DB 'q' ;2F ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 27H ;34 - single quote character DB 'l' ;35 DB 'j' ;36 DB 'g' ;37 DB 'd' ;38 DB 'a' ;39 DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB '>' ;3D DB '-' ;3E DB '9' ;3F ; DB '7' ;40 DB '5' ;41 DB '3' ;42 DB '2' ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB '\' ;47 DB '=' ;48 DB '0' ;49 DB '8' ;4A DB '6' ;4B DB '4' ;4C DB '1' ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB '9' ;50 - 9 key on the key pad DB '6' ;5=œF THE MERCIES OF THE LORD FOREVER(EFLAT,F) IF YOU WANT JOY(F,G) I'M PRAISIN' THE LORD I'M REACHING OUT TO YOU,DEAR LORD I'M SO GLAD I'M SO HAPPY, HERE'S THE REASON WHY IN HIS PRESENCE, FULLNESS OF JOY IN MY LIFE LORD, BE GLORIFIED(EFLAT,F) ISN'T HE WONDERFUL ISN'T THE LOVE OF JESUS SOMETHING WONDERFUL IT IS A GOOD THING IT IS NO SECRET, WHAT GOD CAN DO I'VE GOT PEACE LIKE A RIVER JESUS IS EVERYTHING JESUS IS THE SWEETEST NAME I KNOW JESUS, NAME ABOVE ALL NAMES JESUS, THERE'S SOMETHING ABOUT THAT NAME JESUS, WE JUST WANT TO THANK YOU KNOW YE NOT, KNOW YE NOT, YOU'RE THE TEMPLE LET'S JUST PRAISE THE LORD/HE HAS DONE GREAT THINGS LORD, I BELIEVE MORE OF YOU NEVER FAILED ME YET OH COME LET US ADORE HIM OH HOW HE LOVES YOU AND ME OH HOW I LOVE JESUS OH I LOVE YOU IN THE LOVE OF THE LORD OH TO BE HIS HAND EXTENDED OUR GOD REIGNS PEACE, PEACE, WONDERFUL PEACE PRAISE HIM PRAISE THE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T>$>�.Y 1 80 110 2 0 1 0 65 2 2 4 0 35 5 ALLELUIAH ALL HE WANTS IS YOU AMAZING GRACE BE STILL AND KNOW/ IN THEE OH LORD BECAUSE HE LIVES BLESS THAT WONDERFUL NAME OF JESUS CAUSE ME TO COME EVERYBODY OUGHT TO KNOW EVERYBODY SING PRAISE TO THE LORD EVERYDAY WITH JESUS FAMILY OF GOD FATHER GLORIFY YOURSELF FILL MY CUP, LORD (G,EFLAT) FOR THOSE TEARS I DIED GENTLE SHEPHERD GIVE ME OIL IN MY LAMP, KEEP ME BURNING GOD IS MOVING, BY HIS SPIRIT GOD IS SO GOOD GOD IS WORHTY GOD'S WONDERFUL PEOPLE GREAT IS THE LORD AND GREATLY TO BE PRAISED HALLELUJAH HALLELUJAH, " ", " ", " " HALELU, HALLELU HEAVENLY FATHER, I APPRECIATE YOU HE'S ALL I NEED HE IS LORD HE'S THE LOVER/SAVIOUR OF MY SOUL HE TOUCHED ME HIS BANNER OVER ME IS LOVE HIS NAME IS JESUS HIS NAME IS WONDERFUL HOLY, HOLY, HOLY IS THE LORD AND MIGHTY IS HIS NAME HOW GREAT THOU ART I COME TO YOU RIGHT NOW I FEEL LIKE PRAISIN' HIS NAME I GET SO THRILLED WITH JESUS(F,G) I KEEP FALLING IN LOVE WITH HIM I WILL ENTER HIS GATES I WILL PRAISE HIM I WILL SING O>Ød DB 05H ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08H ;0B - BACKSPACE key DB 00H ;0C DB 0BH ;0D - K DB 08H ;0E - H DB 06H ;0F - F ; DB 13H ;10 - S DB 1AH ;11 - Z DB 13H ;12 - 4 key on key pad DB 1EH ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - DELETE key DB 10H ;16 - P DB 09H ;17 - I DB 19H ;18 - Y DB 12H ;19 - R DB 17H ;1A - W DB 09H ;1B DB 1AH ;1C - 1 key on key pad DB 18H ;1D - 2 key on key pad DB 00H ;1E DB 00H ;1F ; DB 00H ;20 DB 0DH ;21 - M DB 00H ;22 DB 02H ;23 - B DB 03H ;24 - C DB 1BH ;25 - ESCape key DB 1FH ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0FH ;2A - INSERT DB 0FH ;2B - O DB 15H ;2C - U DB 14H ;2D - T DB 05H ;2E - E DB 11H ;2F - Q ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 00H ;34 - single quote character DB 0CH ;35 - L DB 0AH ;36 - J DB>œF THE MERCIES OF THE LORD FOREVER(EFLAT,F) IF YOU WANT JOY(F,G) I'M PRAISIN' THE LORD I'M REACHING OUT TO YOU,DEAR LORD I'M SO GLAD I'M SO HAPPY, HERE'S THE REASON WHY IN HIS PRESENCE, FULLNESS OF JOY IN MY LIFE LORD, BE GLORIFIED(EFLAT,F) ISN'T HE WONDERFUL ISN'T THE LOVE OF JESUS SOMETHING WONDERFUL IT IS A GOOD THING IT IS NO SECRET, WHAT GOD CAN DO I'VE GOT PEACE LIKE A RIVER JESUS IS EVERYTHING JESUS IS THE SWEETEST NAME I KNOW JESUS, NAME ABOVE ALL NAMES JESUS, THERE'S SOMETHING ABOUT THAT NAME JESUS, WE JUST WANT TO THANK YOU KNOW YE NOT, KNOW YE NOT, YOU'RE THE TEMPLE LET'S JUST PRAISE THE LORD/HE HAS DONE GREAT THINGS LORD, I BELIEVE MORE OF YOU NEVER FAILED ME YET OH COME LET US ADORE HIM OH HOW HE LOVES YOU AND ME OH HOW I LOVE JESUS OH I LOVE YOU IN THE LOVE OF THE LORD OH TO BE HIS HAND EXTENDED OUR GOD REIGNS PEACE, PEACE, WONDERFUL PEACE PRAISE HIM PRAISE THE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T>êÏÿ 07H ;37 - G DB 04H ;38 - D DB 01H ;39 - A DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB 00H ;3D DB 00H ;3E DB 00H ;3F ; DB 00H ;40 DB 00H ;41 DB 00H ;42 DB 00H ;43 DB 00H ;44 - not assigned ÿDB 00H ;45 - not assigned DB 00H ;46 - not assigned DB 00H ;47 DB 00H ;48 DB 00H ;49 DB 00H ;4A DB 00H ;4B DB 00H ;4C DB 00H ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB 12H ;50 - 9 key on the key pad DB 04H ;51 - ÿ6 key on the key pad DB 03H ;52 - 3 key on the key pad DB 1EH ;53 - . key on the key pad DB 1CH ;54 - F1 key on the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB 1DH ;58 - F2 key on the key pad DBÅ 00H ;59 - not assigned DB 00H ;5A - not assigned DB 00H ;5B - not assigned DB 00H ;5C - not assigned DB 00H ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned ; ;**>ñ¡ÿHE KINGDOM OF GOD SOMETHING BEAUTIFUL SOMETHING GOOD IS GOING TO HAPPEN TO YOU SPIRIT OF THE LIVING GOD, FALL FRESH ON ME SURELY GOODNESS AND MERCY SWEET JESUS, SWEET JESUS, WHAT A WONDER YOU ARE THANK YOU LORD, FOR SAVING MY SOUL THE JOY OF THE LORD THÿE LORD LIVETH THERE IS A RIVER THEY THAT WAIT UPON THE LORD THIS IS THE DAY THOU ART WORTHY THY LOVINGKINDNESS TO BE LIKE JESUS TO BE USED OF GOD TO GOD BE THE GLORY UNTO THEE OH LORD, DO I LIFT UP MY SOUL WE EXALT THEE WE HAVE COME INTO HIS HOUSE(EFLATÿ,F) WE SING HOLY WE WORSHIP AND ADORE THEE WE'RE TOGETHER AGAIN WE'RE ON HOLY GROUND(G,AFLAT) WHERE THE SPIRIT OF THE LORD IS WHY DON'T YOU LIFT UP YOUR HANDS AND PRAISE THE LORD WITH HANDS LIFTED UP(EFLAT,F) WITHOUT HIM WORTHY IS THE LAMB YOU ARE THE SONG THAT I SING 7€HE LORD, PRAISE THE LORD, PRAISE THE LORD HALLELUJAH REACH OUT AND TOUCH THE LORD REJOICE IN THE LORD ALWAYS SEEK YE FIRST T?­?cÑ, ; ; KEY WITH SHIFT AND WITH CONTROL ; ;**ÿ ; CCSTB: DB 00H ;00 - NOT USED DB 0AH ;01 - LINE FEED (CUE) DB 00H ;02 DB 00H ;03 DB 0EH ;04 - N DB 16H ;05 - V DB 18H ;06 - X DB 00H ;07 DB 17H ;08 - 7 key on key pad DB 05H ;09 - 8 key on key pad DB 00H ;0A - not assigned DB 08Hÿ ;0B - BACKSPACE key DB 00H ;0C DB 0BH ;0D - K DB 08H ;0E - H DB 06H ;0F - F ; DB 13H ;10 - S DB 1AH ;11 - Z DB 13H ;12 - 4 key on key pad DB 1EH ;13 - 5 key on key pad DB 00H ;14 - not assigned DB 7FH ;15 - DELETE key DB 10H ;16 - ÿP DB 09H ;17 - I DB 19H ;18 - Y DB 12H ;19 - R DB 17H ;1A - W DB 09H ;1B DB 1AH ;1C - 1 key on key pad DB 18H ;1D - 2 key on key pad DB 00H ;1E DB 00H ;1F ; DB 00H ;20 DB 0DH ;21 - M DB 00H ;22 DB 02H ;23 - B DB 03H ;24 - C ™DB 1BH ;25 - ESCape key DB 1FH ;26 - 0 key on key pad DB 0DH ;27 - ENTER key on key pad DB 00H ;28 - not assigned DB 0DH ;29 - RETURN key DB 0F?IR ; ; ; SET THE PORT FOR HARD DISK OPERATION ; MVI A,0CFH ;SET PORT A AS A STATUS PORT OUT PO2AS ; MVI A,00H ;SET FOR OUTPUT OUT PO2AS ; MVI A,07H ; OUT PO2AS ;NO INTERRUPTS ; MVI A,0CFH ; OUT PO2BS ;SET A CONTROL PORT MVI A,0FH ;UPPER NIBBLE OUT, LOWER IN OUT PO2BS ; MVI A,07H ; OUT PO2BS ; ; MVI A,70H ; OUT PO2BD ;SET THE OUTPUT BITS ; CALL SETIV ;SET THE CTC AND INTERRUPTS ; MVI A,MXDSK ; STA CDISK ;RESET THE DRIVE STA LDSK ;RESET THE LAST DISK ; LXI H,SAINT ;GET THE INIT STRING FOR SIO A MVI C,01 ; CALL LINIT ;DO IT LXI H,SBINT ; MVI C,81H ; CALL LINIT ;DO IT LXI H,PPINT ; MVI C,0C1H ; CALL LINIT ; ; LDA IBYTE ; STA IOBYTE ;SET THE I/O BYTE ; MVI C,CS ; CALL CONO ;CLEAR THE SCREEN AND INIT VIDEO ; LXI H,MSG ;POINT AT THE SIGNON MESSAGE LDA CCP+7 ; ORA A ; JNZ BOOT1 ;AUTO BOOT - NO MESSAGE CALL PRNMSG ;PRINT THE SIGN ON MESSAGE LXI H,MSG1 ; LDA DSKFL ;GET THE SINGLE/DOUBLE FLAG ANI 1 ; CNZ PRNMSG ;PRINT THE DOUBLE ?¢H ;2A - INSERT DB 0FH ;2B - O DB 15H ;2C - U DB 14H ;2D - T DB 05H ;2E - E DB 11H ;2F - Q ; DB 00H ;30 - not assigned DB 00H ;31 - not assigned DB 0BH ;32 - Up Arrow key DB 00H ;33 - not assigned DB 00H ;34 - single quote character DB 0CH ;35 - L DB 0AH ;36 - J DB 07H ;37 - G DB 04H ;38 - D DB 01H ;39 - A DB 00H ;3A - not assigned DB 00H ;3B - not assigned DB 00H ;3C - not assigned DB 00H ;3D DB 00H ;3E DB 00H ;3F ; DB 00H ;40 DB 00H ;41 DB 00H ;42 DB 00H ;43 DB 00H ;44 - not assigned DB 00H ;45 - not assigned DB 00H ;46 - not assigned DB 00H ;47 DB 00H ;48 DB 00H ;49 DB 00H ;4A DB 00H ;4B DB 00H ;4C DB 00H ;4D DB 00H ;4E - not assigned DB 00H ;4F - not assigned ; DB 12H ;50 - 9 key on the key pad DB 04H ;51 - 6 key on the key pad DB 03H ;52 - 3 key on the key pad DB 1EH ;53 - . key on the key pad DB 1CH ;54 - F1 key on the key pad DB 00H ;55 - not assigned DB 00H ;56 - not assigned DB 00H ;57 - not assigned DB 1DH ?SIDED MESSAGE ; BOOT1: CALL SETCPM ;SET THE CPM VECTORS JMP CCP ;CONTINUE ; ; SOME DEVICES REQUIRE AN INIT STRING ; LINIT: MOV A,M ;GET THE FIRST CHARACTER OF THE STRING ORA A ;IS IT ZERO? RZ ;YES MOV A,C ;GET THE IOBYTE VALUE STA IOBYTE ;AND SET IT PUSH H ;SAVE THE POINTER CALL LPTS ;CALL THE STATUS ROUTINE POP H ;GET IT BACK ORA A ;IS IT READY? RZ ;NO LINT1: MOV A,M ;GET THE CHARACTER ORA A ;IS IT THE END RZ ;YES MOV C,A ;NO, SET THE CHARACTER UP INX H ;BUMP PUSH H ;SAVE IT CALL LPTO ;DO IT POP H ;GET IT BACK JMP LINT1 ;CONTINUE ; ; WARM BOOT ENTRY ; WBOOT: DI ;DONT INTERRUPT XRA A ;0 TO ACCUMULATOR STA HSTACT ;HOST BUFFER INACTIVE STA HSTWRT ;CLEAR BUFFER WRITTEN MVI A,MXDSK ; STA LDSK ;RESET THE DISK LXI SP,100H ;SET STACK CALL SETIV ;SET THE INTERRUPT VECTORS EI ; MVI C,0 ; CALL SETDSK ;SET THE DISK DRIVE LXI B,0 ; CALL SETTRK ;SET THE TRACK ADDRESS LXI B,1 ; CALL SETSEC ;SET THE FIRST SECTOR NUMBER LXI B,CCP ;SET THE LOAD?›;58 - F2 key on the key pad DB 00H ;59 - not assigned DB 00H ;5A - not assigned DB 00H ;5B - not assigned DB 00H ;5C - not assigned DB 00H ;5D - not assigned DB 00H ;5E - not assigned DB 00H ;5F - not assigned IOSIZ EQU (($-BIOS)/80H)+1 ; ; ; DEFINE INTERRUPT VECTOR TABLE ; DS 8 - ( $ AND 7 ) ;EVEN BOUNDRY DMAIV: DW SRVDMA ;DMA VECTORS DW SRVDMA ; DW SRVDMA ; DW SRVDMA ; CTCIV: DW TIME ;REAL TIME CLOCK DW INTER ;NOT USED DW INTER ;NOT USED DW IDSK ;FLOPPY DISK INTERRUPT ; DW 0,0,0,0 ; ; SIGNON MESSAGE ; MSG: DB 'CP/M 2.2.' DB VER + 'A' DB ' for AVL Eagle with 20MB Corvus ' DB 0 MSG1: DB '(Double sided version)' DB 0 ; ; COLD BOOT ENTRY ; BOOT: DI ;JUST IN CASE LXI SP,100H ;USE CPM STACK AREA ; ; CLEAR OUR WORK AREA ; LXI H,BEGDAT ;POINT AT BEGINNING MVI M,0 ;CLEAR IT LXI D,BEGDAT+1 ;ONE MORE LXI B,DATSIZ ;GET THE SIZE DW LDIR ;CLEAR THE DATA AREA ; LXI H,0 ;CLEAR THE BOTTOM PART OF RAM LXI D,1 ; LXI B,0FFH ; MVI M,0 ; DW LD@a@„ ADDRES CALL SETDMA ; MVI A,NSECT ;GET THE SIZE STA NBRSC ;SET THE NUMBER OF SECTORS WBOOT1: CALL READ ;DO A SECTOR READ ORA A ;DO A SECTOR READ JNZ WBOOT ;TRY AGAIN FROM THE TOP LXI H,NBRSC ;POINT AT OUR COUNT DCR M ;COUNT DOWN JZ GOCPM ;ALL DONE LXI D,80H ;SET THE SECTOR SIZE LHLD DMAAD ;GET THE CURRENT ADDRESS DAD D ;POINT TO NEXT SHLD DMAAD ;PUT IT BACK LXI H,SECTOR ;POINT AT SECTOR INR M ;BUMP IT LDA CPMSPT ;GET THE SECTORS PER TRACK DCR A ;ADJUST IT CMP M ;COMPARE JNC WBOOT1 ;CONTINUE MVI M,0 ;RESET TO ZERO LHLD TRACK ;GET THE TRACK INX H ;BUMP SHLD TRACK ;PUT IT BACK JMP WBOOT1 ;CONTINUE ; ; ALL DONE - SET TO GO TO CPM ; GOCPM: CALL SETCPM ;SET THE ENTRY POINTS LDA SYSFL ANI 1 JZ CCP ; JMP CCP+3 ;USE THE CLEAR ENTRY POINT ; ; SET UP CP/M ENTRIES ; SETCPM: MVI A,0C3H ;GET JUMP INSTRUCTION STA 0 ;STORE FOR WARM BOOT LXI H,WBOOTE;WARM BOOT ENTRY SHLD 1 ;FINISH JUMP INSTRUCTION STA 5 ;CP/M ENTRY JUMP LXI H,BDOS ;POINT AT BDOS ENTRY @š*********** ; ; ; CONSOLE INPUT ; CONIN: PUSH H ;SAVE H-L LXI H,CITBL ;GET THE INPUT TABLE JMP CCOM ;JOIN COMMON CODE ; ; CONSOLE OUTPUT ROUTINE ; CONOT: PUSH H ;SAVE H-L REG LXI H,COTBL ;GET THE OUTPUT TABLE JMP CCOM ;JOIN COMMON CODE ; ; CONSOLE INPUT STATUS ROUTINE ; CONIS: PUSH H ;SAVE H-L LXI H,CSTBL ;GET THE TABLE JMP CCOM ;JOIN COMMON CODE ; ; READER STATUS ROUTINE ; RDRST: PUSH H ;SAVE H-L LXI H,RSTBL ;GET THE READER STATUS TABLE JMP DORDR ;CONTINUE ; ; READER INPUT ROUTINE ; RDRIN: PUSH H ;SAVE THE HL LXI H,RITBL ;GET THE CORRECT TABLE DORDR: LDA IOBYTE ;GET THE I/O BYTE RRC ;SHIFT IT OVER JMP DCOM ;CONTINUE ; ; PUNCH OUTPUT ROUTINE ; PUNOT: PUSH H ;SAVE H-L LXI H,PNTBL ;GET THE TABLE LDA IOBYTE ;GET THE I/O BYTE RRC ;SHIFT IT OVER RRC RRC JMP DCOM ;CONTINUE ; ; LIST OUTPUT ROUTINE ; LSTOT: PUSH H ; LXI H,LOTBL ;GET THE CORRECT TABLE DOLST: LDA IOBYTE ;GET THE F/O BYTE RLC ;SHIFT IT INTO POSTION RLC ; RLC ; JMP DCOM ;CONT@$SHLD 6 ;FINISH JUMP INSTRUCTION LXI H,80H ;DEFAULT BUFFER ADDRESS SHLD DMAAD ;SET IT LDA BDISK ;GET THE CURRENT BOOT DISK MOV C,A ;LOG IN THE BOOT DISK RET ;ALL DONE ; ; SETUP THE INTERRUPT VECTORS FOR CTC ; SETIV: LXI D,DPBK1B ; LXI H,DPBK1A ; LDA DSKFL ;GET THE DISK FLAG MOV B,A ;SAVE IT ANI 1 ; JZ SETI1 ;CONTINUE XCHG ;DOUBLE SETI1: SHLD DPBA ;SET THE PROPER BLOCK SHLD DPBB ; XCHG SHLD DPBI ; SHLD DPBJ ; MVI A,PROFF ;SET THE PROM OFF STA MTRFL ;CLEAR THE MOTOR FLAG OUT SYSCN ;AND SET IT XRA A ; STA REVFL ;CLEAR ANY REVERSE VIDEO MVI A,03H ; OUT CTC0 ;RESET CLOCK 0 ; LXI H,SIOCM ; MVI C,SIOAS ;SET THE SIO-A PORT ADDR MVI B,SIOLN ;SET THE LENGTH DW OUTIR ;SET THE SIO ; LXI H,SIOCM ; MVI C,SIOBS ;SET THE SIO-B PORT ADDR MVI B,SIOLN ;SET THE LENGTH DW OUTIR ;PUT IT OUT ; LXI H,DMARS ;POINT AT THE RESET COMMAND MVI C,DMAC ;GET THE ADDRESS MVI B,DMRLN ;SET THE LENGTH DW OUTIR ;PUT THE RESET COMMAND OUT ; LHLD SIOA ;GET THE @!INUE ; ; LIST OUTPUT STATUS ROUTINE ; LSTST: PUSH H ;SAVE HL LXI H,LSTBL ;POINT AT THE LIST STATUS TABLE JMP DOLST ;CONTINUE ; ; COMMON CODE TO ROUTE TO ROUTINES ; CCOM: LDA IOBYTE ;GET THE I/O BYTE RLC ;SHIFT IT OVER DCOM: ANI 6 ;MASK IT OFF PUSH D ;SAVE IT MOV E,A ;SET IT MVI D,0 ;CLEAR HIGH ORDER DAD D ;POINT TO ROUTINE MOV E,M ;GET THE LOW BYTE OF ROUTINE INX H ;POINT TO NEXT MOV D,M ;GET IT XCHG ;PUT ROUTINE ADDR IN H-L POP D ;RESTORE XTHL ;RESTORE H-L PUT ADDR ON STACK RET ;GO TO THE ROUTINE ; ; CONSOLE INPUT ROUTINES ; CITBL: DW SAIN ;0 - TTY: DW KYBIN ;1 - CRT: DW RDRIN ;2 - BAT: DW SBIN ;3 - UC1: ; ; CONSOLE INPUT STATUS ROUTINES ; CSTBL: DW SAIST ;0 - TTY: DW KYBST ;1 - CRT: DW RDRST ;2 - BAT: DW SBIST ;3 - UC1: ; ; CONSOLE OUTPUT ROUTINES ; COTBL: DW SAOUT ;0 - TTY: DW VIDEO ;1 - CRT: DW LSTOT ;2 - BAT DW SBOUT ;3 - UC1: ; ; READER INPUT ROUTINES ; RITBL: DW KYBIN ;0 - TTY: DW KYBIN ;1 - PTR: DW SAIN ;2 - UR1: DW SBIN @9«ÿCONTROL FOR SIO PORT A MOV A,L ;GET THE CONTROL BYTE OUT CTC1 ;PUT IT OUT MOV A,H ;GET THE COUNTER OUT CTC1 ; ; LHLD SIOB ;GET THE CONTROL BYTES FOR PORT B MOV A,L ;GET THE CONTRL BYTE OUT CTC2 ;PUT IT OUT MOV A,H ;GET THE COUNTER BYTE ÿOUT CTC2 ; ; MVI A,0D5H ;SET FOR INTERRUPT OUT CTC3 ; MVI A,1 ; OUT CTC3 ; ; LXI H,CTCIV ;POINT AT THE VECTOR TABLE MOV A,L ;GET THE LOW ORDER OUT CTC0 ;SET THE VECTOR FOR THE CTC MOV A,H ;GET THE HIGH ORDER ADDR DW STAI ;SET THE I REÿG DW IM2 ;SET INTERRUPT MODE 2 ; LDA SYSFL ANI 2 RZ ; IN KYBDD ;WASTE ANY CHARACTER STORED UP IN KYBDD ;JUST IN CASE ; RET ;NOW LEAVE ; ; PRINT MESSAGE UTILITY ; PRNMSG: MOV A,M ;GET IT ORA A ;IS IT THE END? RZ ;YES INX H ;BUjMP MOV C,A ;SAVE IT PUSH H ;SAVE CALL CONO ;OUTPUT POP H ;GET IT BACK JMP PRNMSG ;CONTINUE ; ;**.* ; ; CONSOLE AND LINE PRINTER DRIVERS ; ;***AèA‚;3 - UR2: ; ; READ INPUT STATUS ROUTINES ; RSTBL: DW KYBST ;0 - TTY: DW KYBST ;1 - PTR: DW SAIST ;2 - UR1: DW SBIST ;3 - UR2: ; ; PUNCH OUTPUT ROUTINES ; PNTBL: DW SAOUT ;0 - TTY: DW SBOUT ;1 - PTP: DW SAOUT ;2 - UP1: DW SBOUT ;3 - UP2: ; ; LIST OUTPUT ROUTINES ; LOTBL: DW SAOUT ;0 - TTY: DW VIDEO ;1 - CRT: DW SBOUT ;2 - LPT: DW PRTOT ;3 - UL1: ; ; LIST OUTPUT STATUS ROUTINES ; LSTBL: DW SAOST ;0 - TTY: DW VDOST ;1 - CRT: DW SBOST ;2 - LPT: DW PRTST ;3 - UL1: ; ; INPUT FROM SIO, PORT A ; SAIN: CALL SAIST ;CHECK THE INPUT STATUS JZ SAIN ;NOT READY YET IN SIOAD ;GET DATA ANI 7FH ;MASK IT OFF MOV C,A ;SAVE IT MVI A,30H ;GET THE RESET ERRORS FLAG OUT SIOAS ;PUT IT OUT MOV A,C ;GET THE CHARACTER BACK IN CASE RET ;NOW LEAVE ; ; INPUT STATUS CHECK FOR SIO, PORT A ; SAIST: MVI A,10H ; OUT SIOAS ;RESET EXTERNAL CONDITIONS OUT SIOAS ; IN SIOAS ;GET THE STATUS ANI SIORB ;CHECK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;THERE ISAìRTOT: LXI H,PIO1 ;POINT AT THE CONTROL BLOCK MOV A,M ;GET THE CONTROL FLAG ANI 02 ;SOFTWARE FORM FEED? JZ PRTO10 ;NO MOV A,C ;YES, GET THE CHARACTER CPI LF ;IS IT A LINE FEED? JZ PRTF1 ;YES CPI FF ;IS IT A FORM FEED? JZ PRTF2 ; JMP PRTO10 ;NO, CONTINUE ; ; CHARACTER IS A LINE FEED ; PRTF1: INX H ;POINT AT CURRENT LINE INR M ;BUMP MOV A,M ;GET IT INX H ;POINT AT NEXT CMP M ;IS THIS THE END? DCX H ;BACKUP JNZ PRTO10 ;NO MVI M,0 ;RESET TO ZERO JMP PRTO10 ;CONTINUE ; ; PROCESS A FORM FEED ; PRTF2: INX H ;POINT AT CURRENT LINES MOV D,M ;GET THE CURRENT NUMBER OF LINES MVI M,0 ;CLEAR IT INX H ;POINT AT TOTAL MOV E,M ;GET THE TOTAL DCX H ;POINT BACK PRTF3: MOV A,D ;GET THE CURRENT CMP E ;ARE WE DONE YET? RZ ;YES PUSH D ;SAVE MVI C,LF ;OUTPUT A LINE FEED CALL PROUT ;NO, PUT OUT A LINE FEED POP D ;GET IT BACK INR D ;BUMP THE COUNT JMP PRTF3 ;CONTINUE ; ; ACTUAL OUTPUT ROUTINE ; PRTO10: LDA PIO1 ;GET THE FLAGS ANI 1 ;FILTER LINE FEEDS JZ PROA| A CHARCTER READY RET ; ; ; OUTPUT TO SIO PORT A ; SAOUT: CALL SAOST ;CHECK THE OUTPUT STATUS JZ SAOUT ;NOT READY, WAIT MOV A,C ;GET THE CHARACTER OUT SIOAD ;PUT THE CHARACTER OUT RET ;AND LEAVE ; ; OUTPUT STATUS FOR SIO PORT A ; SAOST: MVI A,10H ;GET THE CONDITION RESET OUT SIOAS ;RESET CONDITION OUT SIOAS ; IN SIOAS ;GET THE STATUS LXI H,SAOMK ;POINT AT THE MASK ANA M ;MASK OFF THE BITS INX H ;POINT TO VALUE CMP M ;IS IT THE SAME? JZ SAORD ;YES XRA A ;NO RET ; SAORD: MVI A,0FFH ;YES, SET ACC READY ORA A ; RET ;AND LEAVE ; ; INPUT FROM SIO PORT A ; SBIN: CALL SBIST ;IS THERE A CHARACTER THERE? JZ SBIN ;NOT READY YET IN SIOBD ;GET DATA ANI 7FH ;MASK IT OFF MOV C,A ;SAVE IT MVI A,30H ;GET THE RESET ERRORS FLAG OUT SIOBS ;PUT IT OUT MOV A,C ;GET THE CHARACTER BACK IN CASE RET ;NOW LEAVE ; ; INPUT STATUS CHECK FOR SIO - PORT A ; SBIST: MVI A,10H ; OUT SIOBS ;EXTERNAL CONDITION RESET OUT SIOBS ; IN SIOBS ;GET THE STATUS ANI SIORB ;CHEAgUT ;NO MOV A,C ;YES, GET THE CHARACTER CPI LF ;IS IT LINE FEED? RZ ;YES ; ; AT LAST, THE REAL OUTPUT ROUTINE ; PROUT: CALL PRTST ;CHECK THE STATUS JZ PROUT ;NOT YET MOV A,C ;PRINTER IT READY - GET THE CHARACTER OUT PO1AD ;PUT IT OUT MVI A,00 ;PROVIDE A STROBE OUT PO1BD ; MVI A,02H ; OUT PO1BD ;CLEAR THE STROBE RET ;AND LEAVE ; ; CHECK KEYBOARD INPUT STATUS ; KYBST: IN KYBDS ;GET THE STATUS ANI KYRDY ;CHECK FOR READY RZ ;NOT YET MVI A,0FFH ;SET FOR READY RET ;AND LEAVE ; ; INPUT FROM THE KEYBOARD ROUTINE ; KYBIN: IN KYBDS ; MOV E,A ;GET IT AND SAVE IT ANI KYRDY ;GET STATUS JZ KYBIN ;LOOP IN KYBDD ;GET THE DATA ANI 7FH ;MASK OFF THE UNWANTED BITS CPI CTMAX ;IS IT VALID? JNC KYBIN ;NO, TRY AGAIN MOV C,A ;SAVE IT ; ; E CONTAINS THE STATUS BITS ; C CONTAINS THE DATA (X-Y) BITS ; MOV A,E ; ANI 3 ;SAVE JUST THE SHFIT AND CONTROL BITS MOV E,A ; MVI B,0 ;CLEAR MOV D,B ;HIGH ORDER BYTES LXI H,KYTBL ;POINT AT THE TABLE DAD D ;POINT TO THE A CK FOR A CHARACTER READY RZ ;NO READY YET - LEAVE MVI A,0FFH ;THERE IS A CHARCTER READY RET ; ; ; OUTPUT TO SIO PORT B ; SBOUT: CALL SBOST ;IS THE XMIT BUFFER EMPTY? JZ SBOUT ;NO, WAIT MOV A,C ;GET THE CHARACTER OUT SIOBD ;PUT THE CHARACTER OUT RET ;AND LEAVE ; ; OUTPUT STATUS FOR SIO PORT B ; SBOST: MVI A,10H ; OUT SIOBS ;RESET EXTERNAL CONDITION OUT SIOBS ; IN SIOBS ;GET THE STATUS LXI H,SBOMK ;POINT AT THE MASK ANA M ;MASK OFF THE WANTED BITS INX H ; CMP M ;CHECK TO SEE IF READY JZ SBORD ;YES XRA A ;SET NOT READY RET ;AND LEAVE SBORD: MVI A,0FFH ;SET READY ORA A ; RET ;AND LEAVE ; ; PARALELL PRINTER ROUTINES ; PRTST: IN PO1BD ;GET THE STATUS INFORMATION ANI 30H ;IS THERE A PRINTER THERE? RZ ;NO, JUST LEAVE IN PO1BD ;GET THE STATUS AGAIN CMA ;MAKE THE SIGNAL A HI TRUE READY SIGNL ANI 04H ;IS IT READY FOR A CHARACTER? RZ ;NOT YET MVI A,0FFH ;YES, SET ALL BITS IN CASE RET ;AND LEAVE ; ; OUTPUT THE CHARACTER IN REG C TO THE PRT ; PBsBSPROPER DAD D ;TABLE ADDRESS MOV E,M ;GET THE CORRECT TABLE ADDRESS INX H ; MOV D,M ; XCHG ; DAD B ;INDEX TO THE PROPER CHARACTER MOV A,M ;GET THE CHARACTER MOV C,A ;SAVE IT JUST IN CASE ORA A ;IS IT A NULL (UNDEFINED) JZ KYBIN ;NOT VALID - RESTART THE PROCESS ; ; CHECK FOR ALPHA LOCK PROCESSING ; CPI 'a' ;CHECK THE RANGE RC ;NO CPI 'z'+1 ; RNC ;NOT IN THE ALPHA RANGE IN KYBDS ;GET THE STATUS BACK ANI KYALP ;CHECK FOR ALPHA LOCK DOWN MOV A,C ;GET THE CHARACTER BACK RZ ;NO ALPHA LOCK - LEAVE ANI 5FH ;MAKE THIS UPPER CASE MOV C,A ;SAVE IT RET ;AND LEAVE ; ; VIDEO CONTROLLER STATUS CHECK ; VDOST: IN VSTAT ;GET THE VIDEO STATUS ANI VLRDY ;ARE WE READY FOR A CHARACTER? RZ ;NO MVI A,0FFH ;YES RET ; ; ; VIDEO CONTROLLER OUTPUT ROUTINE ; VIDEO: DI ; DW SSPD,SVDSTK ;SAVE THE OLD STACK LXI SP,VDSTK;GET OUR OWN PUSH H ; PUSH D ; PUSH B ; EI ;ENABLE CALL GTCUR ;GET THE CURSOR POSITION IN HL LDA ESCFL ;GET THE ESCAPE FLAG ORA A ;IS IT B L ; JNZ VCLR1 ;KEEP GOING MVI A,23 ; STA LSTLN ;RESET LAST LINE OUT VCIR6 ;MAKE SURE WE AGREE JMP VRET ;UPDATE AND LEAVE ; ; HOME THE CURSOR TO THE TOP OF THE DISPLAY ; VHOME: LDA LSTLN ;GET THE CURRENT LAST LINE MOV H,A ;SET THIS VALUE MVI L,0 ;ASSUME FIRST POSITION CALL INRLN ;POINT TO THE TOP LINE ON THE DISPLAY JMP VRET ;AND LEAVE ; ; CHARACTER WAS AN ESCAPE - BEGIN THE ESCAPE SEQUENCE ; VESC: STA ESCFL ;SET THE FLAG JMP VCRET ;AND JUST LEAVE ; ; THIS IS THE FIRST CHARACTER FOLLOWING AN ESCAPE ; THIS ROUTINE WILL ANSWER TO SEVERAL DIFFERENT ; ESCAPE CODE SEQUENCES ; ESCPR: CPI ESC ;IS THIS THE FIRST CHARACTER AFTER ESC JNZ ESCNX ;NO, POSITIONING SEQUENCE MOV A,C ;GET THE CHARACTER ANI 7FH ;JUST IN CASE CPI '=' ; JZ POSCR ;CURSOR POSITIONING COMMAND CPI '+' ; JZ ESSCL ;SCREEN CLEAR? CPI '*' ; JZ ESSCL ;SCREEN CLEAR? CPI ')' ; JZ STREV ;SET REVERSE? CPI '(' ; JZ CLREV ;CLEAR REVERSE? CPI 'T' ; JZ ESEOL ;ERASE TO END OF LINE? CPI 'Y' ; JZB,SET? JNZ ESCPR ;YES, PROCESS THE NEXT CHARACTER MOV A,C ;GET THE CHARACTER ANI 7FH ;PARITY BIT MUST NOT BE ON CPI 7FH ;CHECK FOR A RUBOUT JZ VRET ;RUBOUT IS A NO-OPERATION CPI 07H ;BELL? JZ BELL ; CPI 08H ;BACKSPACE? JZ VLEFT ;CURSOR LEFT CPI 0AH ;IS IT LINE FEED? JZ VDOWN ;LINE FEED - CURSOR DOWN CPI 0BH ;UP? JZ VUP ;CURSOR UP CPI 0CH ; JZ VRIGH ;CURSOR RIGHT CPI 0DH ; JZ VCR ;CARRIAGE RETURN CPI 1AH ; JZ VCLR ;CLEAR THE VIDEO CPI 1EH ; JZ VHOME ;HOME THE CURSOR CPI 01BH ; JZ VESC ;ESCAPE - BEGIN SPECIALS CPI ' ' ;IS IT A "NON PRINTING" CHARACTER? JC VRET ;YES, DONT PUT IT IN ; ; THIS IS NOT A SPECIAL CHARACTER ; VINSR: LDA REVFL ;GET THE REVERSE FLAG XRA C ;COMBINE THE CHARACTER MOV C,A ;PUT IT BACK CALL PTCHR ;PUT THE CHARACTER OUT MOV A,L ;GET THE CHARACTER POSITON CPI 79 ;ARE WE NEAR THE END OF THE LINE JNC VNWL ;NEW LINE ; ; ; UDRET: CALL INRCP ;BUMP THE CHARACTER POSITION ; ; COMMON RETURN POINT ; VRET: CALL PTCUR ;PUT THE CURSB� ESEOP ;ERASE TO END OF PAGE? CPI 'Z' ; JZ ESEOP ;ERASE TO END OF PAGE? ; JMP ESCRT ;UNKNOWN SEQUENCE ; ; THIS IT THE SECOND LEVEL ROUTING ; ESCNX: CPI '=' ;IS THIS FOLLOWING A '=' JZ YCOR ;YES, PROCESS CPI 0FFH ;ARE WE WAITING FOR THE Y COR JNZ ESCRT ;NO ; ; THIS IS THE X-AXIS VALUE FOR CURSOR POSITION ; XCOR: MOV A,C ;GET THE VALUE SUI 20H ;ADJUST IT CPI 80 ; JC XCOR2 ;INVALID MVI A,79 ;RESET TO MAC XCOR2: MOV L,A ;SET IT LDA YHOLD ;GET THE Y VALUE MOV H,A ;SET IT JMP ESCLR ;CLEAR AND UPDATE CURSOR ; ; THIS IS THE Y-AXIS (LINE) VALUE FOR THE CURSOR POSITION ; YCOR: MOV A,C ;GET THE INPUT CHARACTER SUI 20H ;ADJUST THE VALUE CPI 24 ; JC YCOR2 ;INVALID MVI A,23 ;TEST YCOR2: MOV B,A ;SAVE IT LDA LSTLN ;GET THE ADJUSTMENT INR A ;MAKE IT THE TOP LINE ADD B ;COMBINE CPI 24 ;DID WE WRAP AROUND? JC YCOR3 ;NO SUI 24 ;YES YCOR3: STA YHOLD ;HOLD THIS VALUE MVI A,0FFH ;SET FOR NEXT TIME ; ; SET FLAG FOR SECONDARY ROUTING ; POSCR: STA ESCFL ;SET FOR X VABßOR OUT VCRET: DI ; POP B ;RESTORE POP D ; POP H ; DW LSPD,SVDSTK ;RESTORE EI ; RET ;LEAVE THE SUBROUTINE ; ; MOVE THE CURSOR UP ONE LINE ; VUP: CALL DCRLN ;BACKUP ONE LINE JMP VRET ;AND LEAVE ; ; NEW LINE ; VNWL: MVI L,0 ; ; ; MOVE CURSOR DOWN ONE LINE ; VDOWN: LDA LSTLN ;GET THE LAST LINE DISPLAYED CMP H ;ARE WE ON THAT ONE? JNZ VDWN1 ;NO CALL SCROL ;YES, SCROLL IT JMP VRET ;AND LEAVE VDWN1: CALL INRLN ;BUMP THE LINE JMP VRET ;AND LEAVE ; ; CURSOR LEFT ONE CHARACTER POSITION ; VLEFT: CALL DCRCP ;BACK UP ONE CHARACTER POSITION JMP VRET ;AND LEAVE ; ; CURSOR RIGHT ONE CHARACTER POSITION ; VRIGH: CALL INRCP ; JMP VRET ; ; ; DO A CARRIAGE RETURN - RETURN THE CURSOR TO THE ; BEGINNING OF THE LINE - DO NOT CLEAR THE LINE ; VCR: MVI L,0 ;CLEAR THE CHARACTER POSITION JMP VRET ;AND LEAVE ; ; CLEAR EVERYTHING ; VCLR: LXI H,0 ;SET FOR THE TOP MVI C,' ' ;SET FOR A BLANK VCLR1: CALL PTCHR ;CLEAR THE LINE CALL INRCP ;BUMP THE LINE MOV A,H ;GET IT ORACúCLUE JMP VCRET ;AND RETRUN ; ; CLEAR THE SCREEN ; ESSCL: XRA A ; STA ESCFL ;CLEAR THE FLAG JMP VCLR ;CLEAR THE SCREEN ; ; SET REVERSE VIDEO ; STREV: MVI A,80H ; STA REVFL ; JMP ESCRT ;CLEAR AND RETURN ; ; CLEAR REVERSE VIDEO ; CLREV: XRA A ; STA REVFL ; JMP ESCRT ; ; ; ERASE TO END OF THE CURRENT LINE ; ESEOL: CALL VEOL ;CLEAR TO THE END OF THE LINE JMP ESCRT ;AND LEAVE ; ; ERASE TO END OF PAGE ; ESEOP: PUSH H ;SAVE CALL VEOL ; POP H ;GET IT BACK LDA LSTLN ;GET THE LAST LINE NUMBER CMP H ;HAVE WE DONE THE LAST LINE JZ ESCRT ;YES MVI L,0 ;NO, START AT THE BEGIN OF NEXT CALL INRLN ;BUMP THE LINE JMP ESEOP ;CONTINUE ; ; COMMON ESCAPE SEQUENCE EXIT ROUTINE ; ESCLR: XRA A ; STA ESCFL JMP VRET ;UPDATE CURSOR AND LEAVE ; ; COMMON ESCAPE SEQUENCE EXIT - NO CURSOR UPDATE ; ESCRT: XRA A ; STA ESCFL ;CLEAR THE FLAG JMP VCRET ;AND LEAVE ; ; PROCESS A BELL CODE ; BELL: LXI H,BEEPC ;POINT AT THE BEEPER MOV A,M ;GET THE COUNT ORA A ;IS IT SET? JNZCVEOL: MVI C,' ' ;ASSUME A BLANK VEOL1: CALL PTCHR ;PUT IT CALL INRCP ;BUMP IT MOV A,L ;GET THE NEW POSITION ORA A ;IS IT THERE? JNZ VEOL1 ;NO RET ;AND LEAVE ; ; SYSTEM LEVEL DISK OPERATIONS ; ; ; SET THE NEXT TRACK TO ZERO ; SETHOM: LXI B,0 ;SET TRACK FOR ZERO LDA HSTWRT ;CHECK FOR PENDING WRITE ORA A JNZ SETTRK ;WRITE IN PROGRESS STA HSTACT ;CLEAR HOST ACTIVE FLAG ; ; SET THE LOGICAL TRACK NUMBER ; SETTRK: MOV H,B ;SET THE HIGH ORDER MOV L,C ;SET THE LOW ORDER SHLD TRACK ;SET THE TRACK ADDRESS RET ; ; SET DMA ADDRESS ; SETDMA: MOV H,B ;ADDRESS TO HL MOV L,C SHLD DMAAD ;STORE ADDRESS RET ; ; DONT DO THE SECTOR TRANSLATION AT THIS LEVEL ; SCTRN: MVI H,0 ; MOV L,C ; RET ; ; ; SET THE LOGICAL SECTOR NUMBER ; SETSEC: MOV A,C ;SET LOW ORDER STA SECTOR ;SET THE SECTOR ADDRESS RET ;THAT'S ALL ; ; SET LOGICAL DISK DRIVE ; SETDSK: LXI H,0 ;ASSUME BAD MOV A,C ;GET THE DRIVE NUMBER CPI MXDSK+1 ; JNC STDER STA CDISK ;SET IT CALL GTPNT ; MOVCÿ VCRET ;YES, LEAVE LDA BPCNT ;GET THE BEEPER CONTROL ORA A ;SET IT SET? JZ VCRET ;NO, NO BEEPER DI ; MOV M,A ;SET THE BEEPER LXI H,MTRFL ;GET THE FLAG MOV A,M ;GET IT ORI BEEPR ;SET THE BIT OUT SYSCN ;SET CONTROL MOV M,A ;PUT IT BACK CALL STINT ;SET OUR INTERRUPTS EI ; JMP VCRET ;NOW LEAVE ; ; CONTROLLER UTILITIES ; GTCUR: IN VCRCC ;GET THE CHARACTER POSITION ANI 07FH ;MASK IT OFF MOV L,A ;SAVE IT IN VCRCL ;GET THE LINE POSITION ANI 1FH ;MASK IT MOV H,A ;SAVE IT RET ;AND LEAVE ; ; SET A NEW CURSOR POSITION ; PTCUR: MOV A,H ;DO LINE FIRST ANI 1FH ;MASK IT OUT VCWCL ;GIVE IT TO THE CONTROLLER MOV A,L ;GET THE CHARACTER POSITION ANI 07FH ;MASK IT OUT VCWCC ;PUT IT OUT RET ;AND LEAVE ; ; PUT THE CHARACTER IN C REG TO THE VIDEO MEMORY ; PTCHR: IN VSTAT ;GET THE MEMORY LATCH STATUS ANI VLRDY ;IS IT EMPTY? JZ PTCHR ;NO, WAIT MOV A,L ;GET THE CHARACTER POSITION OUT VMCHP ; MOV A,H ; OUT VMLIN ; MOV A,C ;GET THE CHARACTER OUT VMDAT ;WRICKÛÿ A,D ORA E JZ STDER SHLD DPPNT ;SET THE DISK POINTER PUSH H ;SAVE THIS LDAX D ;GET THE CPM VALUE OF SECTOR/TRAK STA CPMSPT ;SET IT LXI H,OALSZ ;GET THE OFFSET TO ALLOCATION SIZE DAD D ; MOV A,M ;GET IT INR A ;BUMP IT STA ALLSZ ;AND SÿET IT LXI H,OSCSM ;POINT AT SECTOR MASK DAD D ; MOV A,M ;GET IT STA SECMSK ;SET THE MASK INX H ; MOV A,M ; STA SECSHF ; POP H ;RESTORE POINT RET ;NOW LEAVE ; STDER: XRA A LXI H,0 RET ; ; GET POINTERS ; GTPNT: MOV L,A ;L=DISK NÿUMBER 0,1,2,3 MVI H,0 ;HIGH ORDER ZERO DAD H ;*2 DAD H ;*4 DAD H ;*8 DAD H ;*16 (SIZE OF EACH HEADER) LXI D,DPBASE DAD D ;HL=.DPBASE(DISKNO*16) PUSH H ;SAVE THIS MOV C,M ;GET THE TRANSLATE TABLE INX H ; MOV B,M ; DCX H ;POINT BACK ¯AT TOP LXI D,10 ;GET THE OFFSET TO DISK PARAMTER ADR DAD D ;POINT AT ADDR FOR PARAMETERS MOV E,M ;GET THE TABLE ADDRESS INX H ; MOV D,M ;GET IT POP H ; RET ; ;** * ; ; LOGICAL DISK READ ROUTINCÃTE THE CHARACTER RET ;NOW WE CAN LEAVE ; ; INCREMENT THE CHARACTER POINTER ; INRCP: INR L ;BUMP THE CHARACTER POSITION MOV A,L ;GET IT BACK CPI 80 ;ARE WE AT THE END? RC ;NO MVI L,0 ;CLEAR TO FIRST ; ; INCREMENT THE LINE NUMBER ; INRLN: INR H ;BUMP THE LINE NUMBER MOV A,H ;GET IT CPI 24 ;ARE WE AT THE END? RC ; MVI H,0 ;CLEAR THE FIRST RET ;AND LEAVE ; ; DECREMENT THE CHARACTER POSITION ; DCRCP: DCR L ;BACK UP MOV A,L ;GET IT CPI 80 ;DID WE WRAP AROUND? RC ;NO MVI L,79 ;YES, SET TO END OF LINE ; ; DECREMENT THE LINE NUMBER ; DCRLN: DCR H ;BACK UP MOV A,H ;GET IT CPI 24 ;DID WE WRAP AROUND? RC ;NO MVI H,23 ;YES, RESET RET ; ; SCROLL ; SCROL: LDA LSTLN ;GET THE LAST LINE MOV H,A ;PUT IT IN LINE NUMBER CALL INRLN ;POINT TO THE NEW TOP MOV A,H ;GET IT STA LSTLN ;AND SET PUSH H ;SAVE IT MVI L,0 ;START AT THE BEGINNING CALL VEOL ;ERASE TO END OF LINE IN VCSCR ;SCROLL POP H ;RESTORE HL RET ;AND LEAVE ; ; ERASE TO END OF LINE ; DED‡}E ; ;**Ô* ; READ: XRA A STA UNACNT ;CLEAR THE UNALLOCATED COUNT 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 ; ;**#* ; ; LOGICAL WRITE ROUTINE ; ;**ÿ* ; WRITE: 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 ; ; THIS IS THE FIRST WRITE TO AN UNALLOCATED BLOCK. ; SET THE PARAMETERS ;ÿ LDA ALLSZ ;GET THE ALLOCATION SIZE STA UNACNT LXI D,UDSK ;POINT WHERE LXI H,CDISK ;POINT WHAT LXI B,4 ;SET THE SIZE DW LDIR ;PUT IT OVER ; CHKUNA: LDA UNACNT ;ANY UNALLOC REMAIN? ORA A JZ ALLOC ;SKIP IF NOT ; ; MORE UNALLOCATED RECORhDS REMAIN ; DCR A ;UNACNT = UNACNT-1 STA UNACNT ; ; MAKE SURE LOGICAL DISK ADDRESS IS THE SAME ;D�MAY HAVE TO FILL THE HOST BUFFER ; FILHST: LXI D,PDSK ;POINT AT PHYSICAL DISK LXI H,CDISK ;POINT AT LOGICAL LXI B,3 ;SET THE SIZE DW LDIR ;MOVE IT OVER LDA REQSEC ;GET THE SECTOR STAX D ;PUT IT IN LDA RSFLAG ;NEED TO READ? ORA A CNZ DREAD ;YES, IF 1 MVI A,1 STA HSTACT ;NO PENDING WRITE ; ; COPY DATA TO OR FROM BUFFER ; MATCH: LDA SECTOR ;GET THE LOGICAL SECTOR NUMBER LXI H,SECMSK ;POINT AT MASK ANA M ;MASK IT OFF MOV L,A ;READY TO SHIFT MVI H,0 ;DOUBLE COUNT DAD H ;SHIFT LEFT 7 BITS DAD H DAD H DAD H DAD H DAD H DAD H ; ; HL HAS RELATIVE HOST BUFFER ADDRESS ; LXI D,HSTBUF DAD D ;HL = HOST ADDRESS XCHG ;NOW IN DE LHLD DMAAD ;GET THE LOGICAL SECTOR LOCATION XCHG ; LXI B,128 ;SET THE LENGTH 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 ; ; BC INITIALLY 128, DE IS SOURCE, HL IS DEST ; RWMOVE: DW LDIR ;MOVE IT OVER D“Sÿ LXI H,CDISK ;POINT AT BEGINNING OF LOGICAL LXI D,UDSK ;AND UNA LXI B,4 ;SET THE COUNT CALL MCMP ; JNZ ALLOC ;NOT THE SAME ; ; MATCH, MOVE TO NEXT SECTOR FOR FUTURE REF ; LXI H,USEC ; INR M ;UNASEC = UNASEC+1 LDA CPMSPT ;GET THE SIZE ÿDCR A ; CMP M ;CHECK FOR END OF TRACK JNC NOOVF ;SKIP IF NO OVERFLOW ; ; OVERFLOW TO NEXT TRACK ; MVI M,0 ;UNASEC = 0 LHLD UTRK ;GET THE UNALLOC TRAK NUMBER INX H SHLD UTRK ;UPDATE IT ; ; MATCH FOUND, MARK AS UNNECESSARY READ ; NOOVF: XîRA A ;0 TO ACCUMULATOR STA RSFLAG ;RSFLAG = 0 JMP RWOPER ;TO PERFORM THE WRITE ; ; NOT AN UNALLOCATED RECORD, REQUIRES PRE-READ ; ALLOC: XRA A ;0 TO ACCUM STA UNACNT ;UNACNT = 0 INR A ;1 TO ACCUM STA RSFLAG ;RSFLAG = 1 ; ;*** ;* 9 * ;* COMMON CODE FOR READ AND WRITE FOLLOWS * ;*  * ;*** ; Dù«ÿ; ; DATA HAS BEEN MOVED TO/FROM HOST BUFFER ; LDA WRTYPE ;WRITE TYPE CPI WRDIR ;TO DIRECTORY? LDA ERFLAG ;IN CASE OF ERRORS JNZ RWRET ;ALL DONE ; ; CLEAR HOST BUFFER FOR DIRECTORY WRITE ; ORA A ;ERRORS? JNZ RWRET ;USE COMMON RETURN POINT ÿ XRA A ;0 TO ACCUM STA HSTWRT ;BUFFER WRITTEN CALL DWRITE ;WRITE THE BUFFER NOW LDA ERFLAG RWRET: DI ; DW LSPD,SRWSTK ; EI ;CONTINUE ORA A ;SET ZERO/NON ZERO FLAG RET ;AND LEAVE ; ; UTILITY COMPARE ROUTINE ; TEST FOR EQUALITY ONLY Ù; MCMP: LDAX D ;GET A BYTE CMP M ;COMPARE RNZ ;NOT EQUAL - JUST LEAVE INX H ;BUMP THE POINTERS INX D ; DCX B ;COUNT DOWN MOV A,B ;CHECK FOR ZERO ORA C ; JNZ MCMP ;NOT DONE YET RET ;ITS EQUAL ; ;**:* ; ; ROUTE THE READ REQUEST TO THE PROPER ROUTINE ; ;**‡* ; DREAD: LXI H,ORDAD ;GET THE RIGHT OFFSET JMP COMMN ;CONTINUE ; DWRITE: LXI H,OWRAD ; COMMN: LDA PDSK ;GET THE CURRENT DISK D» RWOPER: DI ; DW SSPD,SRWSTK LXI SP,RWSTK;USE OUR STACK EI ; XRA A ;ZERO TO ACCUM STA ERFLAG ;NO ERRORS (YET) LDA SECSHF ;GET THE SHIFT FACTOR MOV C,A ;SAVE IT INR C ;BUMP IT LDA SECTOR ;GET THE LOGICAL SECTOR RWOPS: DCR C ;COUNT DOWN JZ RWOPE ; ORA A ;CARRY = 0 RAR ;SHIFT RIGHT JMP RWOPS ;LOOP UNTIL DOWN RWOPE: STA REQSEC ;GET THE REQUIRED PHYSICAL SECTOR ; ; ACTIVE HOST SECTOR? ; LDA HSTACT ;HOST ACTIVE FLAG ORA A ;WAS IT ALREADY? JZ FILHST ;FILL HOST IF NOT ; ; HOST BUFFER ACTIVE, SAME AS SEEK BUFFER? ; LXI H,PDSK ;POINT AT PHYSICAL DISK LXI D,CDISK ;POINT AT REQUEST LXI B,3 ;SET THE SIZE CALL MCMP ;TEST, LEAVING HL => PSEC JNZ NOMATC ;NOT THE SAME ; ; SAME DISK, SAME TRACK, SAME SECTOR? ; LDA REQSEC ;POINT AT THE REQUESTED SECTOR CMP M JZ MATCH ;SKIP IF MATCH ; ; PROPER DISK, BUT NOT CORRECT SECTOR ; NOMATC: LDA HSTWRT ;HOST WRITTEN? ORA A JZ FILHST ;WRITE THE CURRENT BUFFER TO DISK CALL DWRITE XRA A STA HSTWRT STA HSTACT ; ; EÌEh PUSH H ; CALL GTPNT ;GET THE PROPER POINTER POP H ; DAD D ;POINT TO THE ROUTINE ADDRESS MOV E,M ;LOAD THE ADDRESS INX H ; MOV D,M XCHG ; PCHL ;GO TO THE ROUTINE ; ; READ A PHYSICAL SECTOR FROM DISK ; FREAD: MVI B,6 ;READ COMMAND MVI C,6DH ;SET THE DMA VALUE JMP RWCOM ;COMMON ; ; WRITE A SECTOR ; FWRIT: MVI B,5 ;WRITE COMMAND MVI C,69H ; ; ; COMMON ROUTINE FOR READ AND WRITE ; RWCOM: MOV A,C ;GET THE DMA STA DMACM ;SET THE DMA COMMAND MOV A,B ;GET THE CONTROLLER WORD STA RWDCB ;SET IT MVI A,2 ; STA TOTRY ; LXI H,LDSK ;POINT AT THE LAST DISK WE PROCESSED LDA PDSK ;POINT AT THIS ONE CMP M ;IS IT THE SAME? CNZ SELDSK ;NO, SETUP THE PROPER JUNK LXI H,RWTRY ;POINT AT THE RETRY COUNT MVI M,RETRY ;SET IT INX H ;POINT AT THE COMMAND LDA RWDEN ;GET THE CURRENT DENSITY ORA M ;COMBINE IT WITH THE COMMAND MOV M,A ;SET THE COMMAND INX H ;POINT AT THE SELECT INX H ;POINT AT THE TRACK ; ; SET THE PHYSICAL TRACK NUMBER ; MOV B,M ;GET IT LDA PTRK ;ERMC ;NO XCHG ;YES, OPERATION COMPLETE LXI H,DMARS ;POINT AT THE RESET COMMAND MVI C,DMAC ;GET THE ADDRESS MVI B,DMRLN ;SET THE LENGTH DW OUTIR ;PUT THE RESET COMMAND OUT XCHG ;PUT THE STATUS BACK IN DE INX H ;POINT AT THE STATUS AREA MOV A,M ;GET THE FIRST BYTE (ST0) ANI 0C0H ;WAS IT OK? JZ RWCMP ;ALL DONE ; ; ERROR HAS OCCURRED ; LDA RWTRY ;POINT AT THE RETRY COUNT DCR A ;COUNT DOWN STA RWTRY ;PUT IT BACK JZ MDERR ;ERROR MOV C,A ;SAVE THE RETRY COUNT ; MOV A,M ;DID THE DRIVE GO NOT READY? ANI 08H ; JNZ NTRDY ;YES INX H ;POINT AT ST1 WORD ; MOV A,M ;GET ST1 ANI 02 ;IS IT WRITE PROTECTED? JNZ WTPRT ;YES ; MOV A,C ;GET THE RETRY COUNT BACK CPI 4 ;ARE WE JUST ABOUT OUT? JZ RWCMK ;YES ; INX H ;POINT AT ST2 WORD MOV A,M ;GET ST2 ANI 10H ;WRONG CYLINDER? JNZ RWCMH ;YES, HOME THE DRIVE AND TRY AGAIN ; MOV A,C ;GET THE RETRY COUNT BACK ANI 03 ; JNZ RWCMB ; ; RWCMR: CALL ROCK ;SHIFT THE HEADS JNZ MDERR JMP RWCMA ;TRY AGAIN ; RWCMK: CALL EëGET THE TRACK NUMBER MVI C,0 ;ASSUME HEAD 0 CPI 80 ; JC DOTRK ;SIDE ZERO YET SUI 80 ;ADJUST IT INR C ; DOTRK: MOV M,A ;PUT IT IN SUB B ;TEST FOR A DIFFERENCE IN POSITION STA CHGTK ;SET THE FLAG INX H ;POINT AT THE HEAD BYTE ; ; PROCESS THE HEAD BIT ; MOV A,M ;GET THE CURRENT HEAD MOV M,C ;SET THE HEAD BYTE SUB C ;FORM THE DIFFERENCE STA CHGHD ;SET THE HEAD CHANGED BYTE MOV A,C ;GET THE HEAD BIT BACK ADD A ; ADD A ; MOV C,A ; LDA RWSEL ;GET THE UNIT NUMBER ANI 03H ;MASK OFF ANY OLD HEAD VALUE ORA C ;SET THE HEAD SELECT BIT IN THIS BYTE STA RWSEL ;AND PUT IT BACK INX H ;POINT AT SECTOR BYTE ; ; TRANSLATE AND SET THE PHYISCAL SECTOR NUMBER ; PUSH H ;SAVE THE POINTER TO RWSEC LDA PSEC ;GET THE SECTOR MOV C,A ;SAVE IT MVI B,0 ;CLEAR HIGH ORDER INX B ;ASSUME WE HAVE NO TRANSLATION TABLE LHLD DXLTB ;GET THE TRANSLATE TABLE MOV A,H ;TEST FOR NO TRANSLATION ORA L ; JZ NOXLT ;CONTINUE DCX B ;NORMALIZE DAD B ;POINT AT THE ENTRY MOV C,M ;GET THE PREFKICK ;LAST ATTEMPT ; RWCMH: CALL HOME ;RECALIBRATE THE DRIVE JNZ MDERR ;ERROR OCCURRED JMP RWCMA ;TRY AGAIN ; MDSK: DB CR,ESC,'T','Drive ',0 MNRDY: DB ' is not responding',0 MWPRT: DB ' is write protected',0 MDKER: DB ' error detected',0 MQUE: DB '. Please reinsert diskette,' DB ' push any key to retry' DB 0 MCAN: DB CR,ESC,'T',0 ; ; MEDIA ERROR ; MDERR: LXI H,MDKER JMP PRCER ; ; DRIVE NOT READY ; NTRDY: LXI H,TOTRY ; DCR M ; JNZ RWCMB ;NOT YET LXI H,MNRDY ;POINT AT THE NOT READY MESSAGE JMP PRCER ; ; ; DISKETTE IS WRITE PROTECTED ; WTPRT: LXI H,MWPRT ;POINT AT THE MESSAGEE JMP PRCER ; ; ; COMMON ERROR PROCESSING ; PRCER: PUSH H ;SAVE THE MESSAGE MVI A,RETRY ; STA RWTRY ;RESET THE RETRY COUNT CALL CLMTR ;CLEAR THE MOTOR LXI H,MDSK ;POINT AT IT CALL PRNMSG ; LDA PDSK ;GET THE DRIVE NUMBER WE ARE USING ADI 'A' ;ADJUST MOV C,A ;SAVE IT CALL CONO ;PRINT IT TOO POP H ; CALL PRNMSG ;PRINT THE MESSAGE LXI H,MQUE ;GET THE QUESTION CALL PRNMSG ;E8OPER SECTOR NOXLT: POP H ;RESTORE POINTER MOV M,C ;PUT IN THE SECTOR ; ; CHECK MOTOR CONDITION ; CALL CKMTR ;CHECK THE MOTOR CONDITION ; ; CHECK FOR A REQUIRED SEEK ; LXI H,CHGTY ;POINT AT THE CHANGE FLAGS MOV A,M ;GET THE CHANGED DRIVE MVI M,0 ;CLEAR IT FOR NEXT TIME INX H ; ORA M ;GET THE CHANGED HEAD INX H ; ORA M ;GET THE CHANGED TRACK JZ RWCMB ;SEEK NOT REQUIRED ; ; DISK COMMAND BLOCK IS SET UP ; OUTPUT THE DMA CONTROL AND THEN THE DISK CONTROL ; RWCMA: CALL SEEK ;SEEK TO THE CORRECT TRACK JNZ MDERR ;ERROR ; RWCMB: DI ; LXI H,DMACB ;POINT AT THE CONTROL BLOCK MVI B,DMCSZ ;SET THE NUMBER OF BYTES MVI C,DMAC ;SET THE PORT ADDRESS DW OUTIR ;GIVE THE COMMAND TO THE DMA CONTROLLER MVI A,60 ;.6 SEC - 3 REVOLUTIONS STA TMOUT ;SET FOR A 1 SEC TIMEOUT LXI H,RWDCB ;POINT AT THE BLOCK MVI C,9 ;GET THE COMMAND SIZE CALL DSKOT ;PUT IT OUT LXI H,DINTR ;POINT AT THE FLAG MVI M,0 ;CLEAR IT EI ; RWCMC: MOV A,M ;GET INDICATOR ORA A ;IS IT DONE YET? JZ RWCFWFLPRINT IT PRCR1: CALL CONS ; ORA A ; JZ PRCR2 ;WASTE ANY EXTRA CHARACTERS CALL CONI ; JMP PRCR1 ; PRCR2: CALL CONI ;GET REPLY CPI 03H ;CONTROL C? JZ WBOOT ; CPI ESC ;ESCAPE? JZ WBOOT ;ERROR ANI 5FH ;MAKE IT UPPER CASE CPI 'C' ;CONTINUE? JZ CNTER RTER: LXI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; CALL CKMTR ;TURN THE MOTOR BACK ON JMP RWCMH ;TRY AGAIN CNTER: LXI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; JMP IOERT ;HAVE TO LEAVE ; ; GIVE IT UP - ERROR ; IOERT: XRA A ; STA HSTACT MVI A,0FFH ;SET ACC TO NON ZERO ORA A ;SET THE ZERO FLAGS ; ; READ/WRITE OPERATION IS COMPLETE ; RWCMP: PUSH PSW ;SAVE THE RESULT CALL CLMTR ;TURN THE MOTOR OFF POP PSW ;GET THE RESULT BACK LXI H,ERFLAG ;POINT AT THE FLAG ORA M ;COMBINE MOV M,A ;AND PUT IT BACK RET ;NOW LEAVE ; ; CLEAR THE MOTOR ; CLMTR: LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET IT ANI NOT ACTIV AND 0FFH ;CLEAR THE ACTIVE FLAG MOV M,A ;PUT IT BACK OUT SYSCN ;SET RET ; ; CHECK FOR A MOTORFx MVI A,1 ;SET +1 JNZ ROCK1 ;ODD OR EVEN? MVI A,0FFH ;MAKE IT -1 ROCK1: ADD C ; JP ROCK2 ; MVI A,5 ;SET FOR TWO ROCK2: CPI 80 ;CHECK FOR MAX JC SEEK1 ;CONTINUE KICK: MVI A,78 ; JMP SEEK1 ;CONTINUE ; ; SEEK TO THE PROPER TRACK ; SEEK: LDA RWSKP ;GET THE TRACK SKIP FLAG ORA A ;SET ZERO FLAG LDA PTRK ;GET THE TRACK JZ SEEK2 ;SKIP OR NOT ADD A ;IF FLAG IS SET, USE EVERY OTHER ONE SEEK2: CPI 80 ; JC SEEK1 ; SUI 80 ; SEEK1: MOV D,A ;SET THE TRACK TO SEEK ORA A ;IS IT ZERO JZ HOME ;YES - USE THE RECAL COMMAND MVI B,0FH ;SET THE COMMAND MVI C,03H ;AND THE SIZE ; ; COMMON CODE FOR SEEK AND RECALIBRATE ; SEKCM: LXI H,SKTRY ;POINT AT OUR CONTROL BLOCK MVI M,3 ;SET THE SEEK RETRY COUNT INX H ;POINT AT THE SIZE MOV M,C ;SET THE SIZE INX H ; MOV M,B ;SET THE COMMAND INX H ; LDA RWSEL ;GET THE SELECT MOV M,A ;SET IT IN INX H ;POINT AT THE NEXT MOV A,D ;GET THE TRACK MOV M,D ;SET THE TRACK TO SEEK CPI 80 ; JC SKCM1 ;OK MVI M,79 ;SET FOR MAX SKCM1: DI F ON AND SET FLAG ; CKMTR: LXI H,220 ;PICK THE RIGHT COUNT SHLD MTRCT ;SET THE TIMEOUT LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET THE FLAG ORI ACTIV ;SET THE ACTIVE FLAG MOV M,A ;PUT IT BACK OUT SYSCN ;SET THE FLOP ANI MTRON ;CHECK FOR MOTOR ON RNZ ;IS ON MOV A,M ;GET THE CONTROL FLAG ORI MTRON ;SET THE MOTOR ON BIT MOV M,A ;PUT IT BACK OUT SYSCN ;AND SET THE LATCH CALL STINT ;SET THE CLOCK INTERRUPTING LXI H,CLOCK ;SET THE CLOCK FOR .20 MVI M,20 ; EI CKMTR1: MOV A,M ;GET IT ORA A ; JNZ CKMTR1 ;WAIT UNTIL ITS TIME RET ;AND LEAVE ; ; SET THE REAL TIME CLOCK INTERRUPTING ; STINT: DI ;DONT STOP US NOW MVI A,0A5H ; OUT CTC0 ;SET THE CLOCK JOB MVI A,156 ;APPROXIMATLY 1/100 OUT CTC0 ; RET ; ; SELECT THE DISK DRIVE ; SET TO PERFORM A SEEK EACH TIME WE CHANGE DRIVE TYPES ; SELDSK: MOV E,M ;GET THE LAST DISK/TYPE MOV M,A ;SET THE NEW DRIVE/TYPE ANI 1 ;MASK OFF THE PHYSICAL UNIT NUMBER STA RWSEL ;SET THE PROPER SELECT VALUE MOV A,E ;GET THE LAF0 MVI A,100 ;SET FOR 1.0 SEC TIME OUT STA TMOUT ; LXI H,SKSIZ ;POINT AT THE SIZE MOV C,M ;GET IT INX H ;POINT AT THE CONTROL BLOCK CALL DSKOT ;PUT IT OUT LXI H,DINTR ;GET THE INDICATOR MVI M,0 ;CLEAR THE INTERRUPT INDICATOR EI ;ENABLE INTERRUPTS SKCM2: MOV A,M ;GET THE FLAG ORA A ;IS IT SET YET JZ SKCM2 ;CONTINUE TO LOOP INX H ;POINT AT THE STATUS WORD MOV A,M ;GET THE ST0 WORD ANI 0D0H ;CHECK FOR ERRORS JZ SKCMP ;YES, DONE LXI H,SKTRY ;ERRORS DCR M ;TRY AGAIN JNZ SKCM1 ; ORA A ;SET NON ZERO RET ;THATS ALL FOLKS ; ; SEEK IS COMPLETE ; SKCMP: LXI H,CLOCK ; MVI M,10 ;SET FOR AROUND A HALF REVOLUTION SKCMP1: MOV A,M ; ORA A ; JNZ SKCMP1 ;WAIT FOR THE HEADS TO SETTLE RET ; ; ; OUTPUT THE COMMAND TO THE FDC ; DSKOT: IN DSKS ;GET THE STATUS ADD A ; JNC DSKOT ;TRY AGAIN JM DSKO1 ;NOT READY FOR OUTPUT RAL ;SHIFT RAL ;CHECK BUSY JC DSKOT ;NOT YET MOV A,M ;GET THE BYTE OUT DSKD ;PUT IT OUT INX H ;BUMP FOR NEXT DCR C ;COUNT DOWN JNZ DSKOT F”ST TYPE USED ANI 0FEH ;STRIP OFF THE UNIT MOV E,A ;AND SAVE IT MOV A,M ;GET THE CURRENT TYPE ANI 0FEH ;DO THE SAME SUB E ;FORM THE TYPE DIFFERENCE STA CHGTY ;SAVE THE TYPE CHANGE FLAG RZ ;TYPE DID NOT CHANGE - JUST LEAVE ; MOV A,M ;GET THE CURRENT DISK BACK CALL GTPNT ;POINT TO THE PROPER ENTRIES MOV H,B ; MOV L,C ; SHLD DXLTB ;SAVE THE TRANSLATE TABLE XCHG ; SHLD DVPNT ;SET THE DEVICE PARAMETER POINTER LXI D,OSCSZ ;POINT AT SECTOR SIZE DAD D ;POINT AT THEM MOV E,M ;GET THE SECTOR SIZE INX H ; MOV D,M ; INX H ; ; DW SDED,DMASZ ;SET THE SIZE ; LXI B,DSKPS ;SET THE SIZE LXI D,RWSIZ ;POINT WHERE IT GOES DW LDIR ;MOVE IT OVER RET ;NOW LEAVE ; ; HOME (RECALIBRATE) THE DISK DRIVE ; HOME: MVI B,07H ;SET THE COMMAND MVI C,02H ;SET THE SIZE MVI D,0 ;SET FOR TRACK ZERO JMP SEKCM ;CONTINUE ; ; ROCK THE DRIVE POSITION ; ROCK: LDA SKTRK ;GET THE LAST SEEK TRACK MOV C,A ;SAVE IT LDA RWTRY ;GET THE RETRY COUNT RAR ; RAR ; ANI 1 ;SET THE FLAGS GÞG^;NOT DONE YET RET ;ALL DONE DSKO1: PUSH H ;SAVE IT CALL DSKIN ;GET THE INPUT POP H ;GET IT BACK JMP DSKOT ;CONTINUE ; ; GET THE COMPLETED STATUS ; DSKIN: LXI H,WKST0 ;POINT AT THE HOLD AREA PUSH H ;SAVE IT MVI A,7 ;SET THE SIZE DSKI1: MVI M,0 ;CLEAR INX H ; DCR A ;COUNT DOWN JNZ DSKI1 ;CONTINUE POP H ;RESET TO THE TOP MVI M,80H ;SET FOR INVALID ERROR IN CASE DSKI2: IN DSKS ;GET THE STATUS ADD A ;TEST JNC DSKI2 ;NOT READY RP ;NOT IN INPUT - MUST BE DONE IN DSKD ;GET THE BYTE MOV M,A ;PUT IT IN INX H ;BUMP JMP DSKI2 ;TRY SOME MORE ; ; SERVICE DMA COMPLETE INTERRUPT ; SRVDMA: PUSH PSW ;SAVE IT MVI A,083H ;DISABLE DMA OUT DMAC ; MVI A,8BH ;RESET STATUS OUT DMAC ; MVI A,0A3H ;RESET INTERRUPT COMMAND OUT DMAC ; POP PSW ; EI ; DW RETI ; ; ; DISK CONTROLLER INTERRUPT ; IDSK: DW SSPD,SDKSTK ; LXI SP,DKSTK PUSH PSW ;SAVE PSW PUSH H ;SAVE HL XRA A ; STA TMOUT ;CLEAR THE OPERATION TIMEOUT EI ; IN DSKS ;GET THE CURRENT STATUS ORI 20HGò§‚;ITS TIME OUT TIME OUT CTC0 ;TURN OFF THE TIMER TIMEX: DI ; POP H ;RESTORE POP PSW ; EI ;ENABLE DW RETI ;ALL DONE ;**0* ; ; Winchester Disk Drivers via PIO #2 ; ;**ÿ* ; DVRDY EQU 1 ;DRIVE READY BDIRC EQU 2 ;DIRECTION (HI = CPU OUTPUT, LOW = INPUT) STRLO EQU 30H ;STROBE LOW STRHI EQU 70H ;STROBE HIGH RDCM EQU 32H ;READ COMMAND WRCM EQU 33H ;WRITE COMMAND HSSIZ EQU 512 ;SECTOR SIZE IN USE ; ; HARD DISK READ ÿROUTINE ; HREAD: MVI A,RDCM ;GET THE READ CODE JMP HDRDW ;JOIN COMMON ; ; HARD DISK WRITE ROUTINE ; HWRIT: MVI A,WRCM ;GET THE WRITE CODE JMP HDRDW ;CONTINUE ; ; COMMON CODE FOR HARD DISK READ/WRITE ; ; FIRST ORDER OF BUSINESS IS TO CONVERT ä ; THE SYSTEM LEVEL DISK, TRACK AND SECTOR ; TO A DRIVE AND LOGICAL SECTOR NUMBER ; HDRDW: STA COMND ;SET THE COMMAND LHLD PTRK ;GET THE REQUESTED PHYSICAL TRACK XRA A ;CLEAR ACC MVI C,3 ;SET SHIFT COUNT HDFRM: DAD HGã ; STA DINTR ; IDSK1: IN DSKS ;GET THE STATUS ADD A ;TEST JNC IDSK1 ;WAIT JM IDSK2 ;CONTINUE MVI A,08H ;GET THE SENSE INTERRUPT COMMAND OUT DSKD ;GIVE THE COMMAND IDSK2: CALL DSKIN ;GET THE CURRENT STATUS DI POP H ;RESTORE POP PSW ;RESTORE DW LSPD,SDKSTK ;RESTORE STACK EI ;ENABLE AGAIN DW RETI ;NOW LEAVE ; ; CTC INTERRUPT ERROR ; INTER: EI ; DW RETI ;NOW LEAVE ; ; TIMER ROUTINE ; TIME: PUSH PSW ;SAVE ACC PUSH H ;SAVE HL EI ;ENBABLE FOR HIGHER PRIORITY ; ; DO CLOCK ; LXI H,CLOCK ; MOV A,M ;GET IT ORA A ;IS IT ZERO? JZ TIME1 ;YES DCR M ;NO, COUNT DOWN ; ; DO OPERATION TIMEOUT ; TIME1: LXI H,TMOUT ; MOV A,M ;GET IT ORA A ; JZ TIME2 ;ALREADY ZERO DCR M ;COUNT DOWN JNZ TIME2 ;CONTINUE ; ; OPERATION HAS TIMED OUT ; MVI M,100 ;SET FOR ANOTHER SECOND LXI H,MTRFL ;POINT AT THE MOTOR FLAG MOV A,M ;GET THE FLAG ANI NOT MTRON AND 0FFH ;TURN OFF THE MOTOR BIT OUT SYSCN ;CLEAR THE CONTROL MOV A,M ;GET THE PROPER ONE BACK OUT SYSCN ;REG ;SHIFT TRACK ADDRESS RAL ;PICK UP HIGH ORDER BITS DCR C ;COUNT DOWN JNZ HDFRM ;CONTINUE STA HDDRV ;SAVE THE HIGH ORDER LDA PSEC ;GET THE SECTOR ADDRESS ADD L ;COMBINE MOV L,A ;PUT IT BACK SHLD HDADD ;SAVE IT ; ; ADJUST THE LINEAR SECTOR NUMBER ; DO THE PROPER SEGMENT ON THE DISK ; LDA PDSK ;GET THE CURRENT DISK ANI 3 ;ADJUST IT FOR TABLE ADD A ; ADD A ;TABLE IT FOUR BYTES MOV L,A ;SET UP MVI H,0 ; LXI D,HDTBL ;POINT AT IT DAD D ;POINT TO THE ENTRY XCHG ;PUT THE POINTER IN DE LXI H,HDADD ;POINT AT OUT SECTOR NUMBER LDAX D ;GET A BYTE ADD M ;COMBINE MOV M,A ;AND PUT IT BACK INX H ; INX D ; LDAX D ;GET THE SECOND BYTE ADC M ; MOV M,A ;PUT IT BACK INX D ;POINT TO HIGHEST ORDER LXI H,HDDRV ; LDAX D ;GET THE NEXT BYTE ADC M ;COMBINE HIGH ORDER INX D ; ADD A ; ADD A ADD A ADD A ;NIBBLE SHIFT LEFT MOV M,A ;SAVE IT LDAX D ;GET THE DRIVE NUMBER ADD M ;COMBINE MOV M,A ;PUT IT BACK ; ; HARD DISK ADDRESS HAS BEEN FORMED - OUTPUT THEGÐSTORE THE PROPER BIT ; ; PROCESS THE MOTOR ON TIMER ; TIME2: LXI H,MTRFL ;POINT AT THE FLAG MOV A,M ;GET IT ANI ACTIV+MTRON ;DO WE NEED TO CHECK? JZ TIME3 ;NO ANI ACTIV ;ARE WE ACTIVE? JNZ TIME3 ;IN PROGRESS LHLD MTRCT ;GET THE COUNT DCX H ;COUNT DOWN SHLD MTRCT ;PUT THE COUNT BACK MOV A,H ;CHECK FOR ZERO ORA L ; JNZ TIME3 ;NOT AT ZERO YET LDA MTRFL ;GET THE MOTOR WORD BACK ANI NOT MTRON AND 0FFH ;CLEAR MOTOR ON OUT SYSCN ;TURN IT OFF STA MTRFL ;CLEAR THE MOTOR ON ; ; CHECK THE BEEPER ; TIME3: LXI H,BEEPC ;POINT AT THE COUNTER MOV A,M ;GET IT ORA A ;IS IT SET? JZ CLBEP ;NO DCR M ;COUNT DOWN JNZ TIMEC ;CONTINUE CLBEP: LXI H,MTRFL ;GET THE FLAG MOV A,M ;GET IT ANI NOT BEEPR AND 0FFH ;TURN IT OFF MOV M,A ;MOVE IT BACK OUT SYSCN ;TURN IF OFF NOW ; ; IF ALL TIMED JOBS ARE COMPLETE - TURN OFF THE CLOCK ; TIMEC: LDA CLOCK ;GET THE CLOCK ORA A ;IS IT ZERO? JNZ TIMEX ;NO LDA MTRFL ;GET THE CONTROL FLAG ANI BEEPR+MTRON JNZ TIMEX ;CONTINUE MVI A,3 H)H COMMAND ; HDTRY: CALL HCKRD ;DO A CHECK FOR READY CALL FLUSH ;FLUSH AND SET FOR OUTPUT LXI H,COMND ;POINT AT COMMAND MVI E,4 ;SET LENGTH HTRY: IN PO2BD ; ANI DVRDY ;CHECK FOR READY JZ HTRY ;WAIT MOV A,M ;GET THE BYTE OUT PO2AD ;WRITE BYTE TO DISC MVI A,STRLO ;GIVE A LOW LEVEL OUT PO2BD ; MVI A,STRHI ;RETURN TO A HIGH LEVEL OUT PO2BD ; INX H ; DCR E ; JNZ HTRY ;KEEP GOINGG LDA COMND ;GET COMMAND AGAIN CPI WRCM ;GET THE WRITE COMMAND JZ WRIT ;YES, SO WRITE A SECTOR ; ; OPERATION IS A READ - CHECK FOR AN ERROR ; CALL HDCHK ;CHECK FOR ERRORS IN THE RETURN CODE RNZ ;ERROR - RETURN LXI D,HSSIZ ;GET THE SECTOR SIZE LXI H,HSTBUF ;GET THE ADDRESS RLP: IN PO2BD ; ANI DVRDY ;CHECK FOR READY JZ RLP ;WAIT IN PO2AD ;GET THE BYTE MOV M,A ;GET THE BYTE MVI A,STRLO ;GIVE A LOW LEVEL OUT PO2BD ; MVI A,STRHI ;RETURN TO A HIGH LEVEL OUT PO2BD ; INX H DCX D MOV A,D ORA E JNZ RLP ;LOOP UNTIL DONE XRA A RET ;NOW LEAVE ; ; OPERATIION IS A WRITE ; WH÷OO POP H ; CALL PRNMSG ;PRINT THE MESSAGE LXI H,MHQUE ;GET THE QUESTION CALL PRNMSG ;PRINT IT HPRC1: CALL CONS ; ORA A ; JZ HPRC2 ;WASTE ANY EXTRA CHARACTERS CALL CONI ; JMP HPRC1 ; HPRC2: CALL CONI ;GET REPLY CPI 03H ;CONTROL C? JZ WBOOT ; CPI ESC ;ESCAPE? JZ WBOOT ;ERROR ANI 5FH ;MAKE IT UPPER CASE CPI 'C' ;CONTINUE? JZ HCTER ; HRTER: LXI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; XRA A ; RET ; ; HCTER: LXI H,MCAN ;CLEAR THE MESSAGE CALL PRNMSG ; MVI A,0FFH ORA A RET ; MHQUE: DB '. Push any key to retry',0 ; ; ; CP/M DISK PARAMETER TABLES ; ; DPBASE EQU $ ; DPSIZ EQU 16 ;THIS IS THE SIZE OF EACH TABLE ENTRY ; IF ABFLP ; ; A: = DRIVE 0 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBA: DW DPBK1A DW CHK00,ALL00 ; ; B: = DRIVE 1 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBB: DW DPBK1A DW CHK01,ALL01 ; ; C: = DRIVE 0 - TYPE 2 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK2 DW CHK00,ALL00 ENDIF IH®RIT: LXI D,HSSIZ LXI H,HSTBUF ;RESET BUFFER ADDRESS (IN CASE) WLP: IN PO2BD ; ANI DVRDY ;CHECK FOR READY JZ WLP ;WAIT MOV A,M ;GET THE BYTE OUT PO2AD ;WRITE BYTE TO DISC MVI A,STRLO ;GIVE A LOW LEVEL OUT PO2BD ; MVI A,STRHI ;RETURN TO A HIGH LEVEL OUT PO2BD ; INX H DCX D MOV A,D ORA E JNZ WLP ;KEEP GOING ; ; CHECK FOR ERRORS ; CALL HDCHK ;CHECK THE RETURN CODE RET ; ; CHECK FOR AN ERROR RETURN CODE FROM THE CONTROLLER ; HDCHK: CALL STCIN ;TURN AROUND BUSS ; HDCK1: IN PO2BD ; ANI DVRDY ;CHECK FOR READY JZ HDCK1 ;WAIT FOR READY IN PO2AD ;GET THE BYTE MOV C,A ;GET THE BYTE MVI A,STRLO ;GIVE A LOW LEVEL OUT PO2BD ; MVI A,STRHI ;RETURN TO A HIGH LEVEL OUT PO2BD ; MOV A,C ;GET THE RETURN CODE STA HDRCD ;SET THE CODE ANI 80H ;LOOK FOR FATAL ERRORS RZ ;OK, SO RETURN ; ; AN ERROR HAS OCCURRED ; LXI H,MDKER ;SET ERROR MESSAGE CALL HPRC ;PUT THE ERROR UP RNZ ; POP H ;CLEAR THE RETURN OFF THE STACK JMP HDTRY ; ; ; SET THE PARALLEL BUSS FOHüF ABHRD ; ; A: = DRIVE 0 - TYPE 3 ; DW XLTB3,0000H DW 0000H,0000H DW DIRBF,DPBK3A DW CHK02,ALL02 ; ; B: = DRIVE 1 - TYPE 3 ; DW XLTB3,0000H DW 0000H,0000H DW DIRBF,DPBK3A DW CHK03,ALL03 ; ; C: = DRIVE 0 - TYPE 3 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK3B DW CHK04,ALL04 ENDIF ; ; D: = DRIVE 1 - TYPE 2 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK2 DW CHK01,ALL01 IF EFHRD ;HARD DISK ON E, F ; ; E: = DRIVE 0 - TYPE 3 ; DW XLTB3,0000H DW 0000H,0000H DW DIRBF,DPBK3A DW CHK02,ALL02 ; ; F: = DRIVE 1 - TYPE 3 ; DW XLTB3,0000H DW 0000H,0000H DW DIRBF,DPBK3A DW CHK03,ALL03 ; ; G: = DRIVE 0 - TYPE 3 ; DW XLTB2,0000H DW 0000H,0000H DW DIRBF,DPBK3B DW CHK04,ALL04 ENDIF IF EFFLP ;FLOPPY ON E, F ; ; E: = DRIVE 0 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBA: DW DPBK1A DW CHK00,ALL00 ; ; F: = DRIVE 1 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBB: DW DPBK1A DW CHK01,ALL01 ; ; G: = DRIVEHR INPUT ; STCIN: IN PO2BD ;GET THE STATUS ANI BDIRC ;CHECK FOR DIRECTION JNZ STCIN ;IS IN OUTPUT MODE MVI A,0CFH ;SET FOR INPUT OUT PO2AS ;SET THE PORT MVI A,0FFH ; OUT PO2AS RET ; ; FLUSH ANY INPUT FROM THE CONTROLLER THEN SET FOR OUTPUT ; FLUSH: IN PO2BD ;GET THE STATUS ANI BDIRC ; JNZ STOUT ;OK MVI A,STRLO OUT PO2BD MVI A,STRHI OUT PO2BD JMP FLUSH ; ; SET FOR OUTPUT ; STOUT: IN PO2BD ;GET THE STATUS ANI BDIRC ;CHECK FOR DIRECTION JZ STOUT ;WAIT MVI A,0FH ; OUT PO2AS ;TURN IT AROUND MVI A,00H OUT PO2AS RET ;AND LEAVE ; ; CHECK FOR DRIVE READY - IF NOT, WAIT UNTIL SO ; HCKRD: MVI C,100 ;NUMBER OF TIMES BEFORE WE ISSUE A MESSAGE ; HCKRD0: IN PO2BD ;GET THE STATUS ANI DVRDY ;CHECK FOR READY RNZ ;ITS OK DCR C ; JNZ HCKRD0 ; LXI H,MNRDY ;POINT AT IT CALL HPRC ; JMP HCKRD ; ; PROCESS MESSAGE ; HPRC: PUSH H ;SAVE THE MESSAGE LXI H,MDSK ;POINT AT IT CALL PRNMSG ; LDA PDSK ADI 'A' ;ADJUST MOV C,A ;SAVE IT CALL CONO ;PRINT IT TI Il 0 - SPARE ; DW 0000H,0000H DW 0000H,0000H DW 0000H,0000H DW 0000H,0000H ENDIF ; ; H: = DRIVE 1 - SPARE ; DW 0000H,0000H DW 0000H,0000H DW 0000H,0000H DW 0000H,0000H ; ; I: = DRIVE 0 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBI: DW DPBK1B DW CHK00,ALL00 ; ; J: = DRIVE 1 - TYPE 1 ; DW XLTB1,0000H DW 0000H,0000H DW DIRBF DPBJ: DW DPBK1B DW CHK01,ALL01 ; ; SET THE NUMBER OF DISK DRIVES IN THE SYSTEM ; MXDSK EQU ($-DPBASE)/DPSIZ ; ; ; ; DISK TYPE #1 - AVL SA410 ; ; 1024 BYTES PER SECTOR ; 5 SECTORS PER TRACK ; 80 TRACKS PER DRIVE ; DOUBLE DENSITY ; DPBK1A: DW 40 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (2048 BLOCK SIZE) DB 01 ;NULL MASK DW 194 ;DISK SIZE - 1 DW 191 ;DIRECTORY MAX DB 0E0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 48 ;CHECK SIZE DW 2 ;TRACK OFFSET ; DB 7 ;SECTOR MASK DB 3 ;SECTOR SHIFT FACTOR ; DW 3FFH ;SECTOR SIZE - 1 DB 3 ;N DB 5 ;EOT DB 35H ;GPL DB 0FFH ;DTL DB 40H ;DENSITY DB 00IŠISK SIZE - 1 DW 255 ;DIRECTORY MAX DB 0F0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 0 ;CHECK SIZE DW 3 ;TRACK OFFSET ; DB 3 ;SECTOR MASK DB 2 ;SECTOR SHIFT ; DW 0,0,0,0 ;FILLER ; DW HREAD ; DW HWRIT ; ; DEFINE PHYSICAL SECTOR NUMBERS ; HDTBL: DW 08 ;LEAVE ROOM AT THE TOP DB 0 DB 1 ;DRIVE NUMBER ; DW 4020H DB 0 DB 1 ;DRIVE NUMBER ; DW 8038H DB 0 DB 1 ;DRIVE NUMBER ; XLTB3 EQU 0 ; ; SET OFFSET VALUES FOR ITEMS IN THE DISK ; PARAMETER BLOCK ; OSPT EQU DPBK-DPBK ; OALSZ EQU ALSZ-DPBK ;OFFSET TO ALLOCATION SIZE OSCSM EQU SCSM-DPBK ;OFFSET TO SECTOR MASK OSCSZ EQU SCSZ-DPBK ;OFFSET TO SECTOR SIZE ODSKP EQU DSKP-DPBK ;OFFSET TO DISK PARAMETERS ORDAD EQU RDAD-DPBK ;OFFSET TO DISK READ ROUTINE ADDRESS OWRAD EQU WRAD-DPBK ;OFFSET TO DISK WRITE ROUTINE ADDRESS DSKPS EQU DPBE-DPBK ;SIZE OF DISK PARAMETERS ; ; SIO INITALIZATION ; SIOCM: DB 04H ;REG 4 DB 44H ; DB 05H ;REG 5 DB 0EAH ; DB 03H ;REG 3 DB 0C1H ; DB 01H ;REG 1 DB 00H ;NO INTERRUPTS DB 10H ;RESET IZH ;SKIP FLAG ; DW FREAD ; DW FWRIT ; ; DISK TYPE #5 - AVL SA460 ; ; 1024 BYTES PER SECTOR ; 5 SECTORS PER TRACK ; 160 TRACKS PER DRIVE ; DOUBLE DENSITY ; DPBK1B: DW 40 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (2048 BLOCK SIZE) DB 0 ;NULL MASK DW 394 ;DISK SIZE - 1 DW 191 ;DIRECTORY MAX DB 0E0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 48 ;CHECK SIZE DW 2 ;TRACK OFFSET ; DB 7 ;SECTOR MASK DB 3 ;SECTOR SHIFT FACTOR ; DW 3FFH ;SECTOR SIZE - 1 DB 3 ;N DB 5 ;EOT DB 35H ;GPL DB 0FFH ;DTL DB 40H ;DENSITY DB 0 ;SKIP FLAG ; DW FREAD ;DISK READ AND WRITE ADDRESSES DW FWRIT ; ; XLTB1 EQU $ ;TRANSLATION VECTOR DB 1,3,5,2,4 ;COMMON TO SA410 AND SA460 ; ; DISK TYPE #2 - EAGLE I CPM AND PROCALL TYPE ; ; 128 BYTE SECTORS ; 18 SECTORS PER TRACK ; 35 TRACKS PER DISK ; SINGLE DENSITY ; DPBK EQU $ DPBK2: DW 18 ;SECTORS PER TRACK DB 3 ;BLOCK SHIFT FACTOR ALSZ: DB 7 ;BLOCK MASK DB 0 ;NULL MASK DW 71 ;DISK SIZE-1 DW 63 ;DIRECTORY MAX DBI#ERRORS SIOLN EQU $-SIOCM ;LENGTH OF SIO COMMAND ; ; DMA CONTROLLER CONTROL BLOCK ; DMACB: ;DEFINE THE READ/WRITE SETUP COMMAND DMARS: ;DEFINE THE RESET COMMAND DB 83H ;DISABLE DMA DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; DB 0C3H ; ; DMRLN EQU $-DMARS ;LENGTH OF THE RESET COMMAND ; DB 0DH ; DB DSKD ;SET PORT A AS SOURCE DB 2CH ; DB 0CFH ;FORCE A LOAD OF THE PORT ADDRESS ; DMACM: DB 0 ;CONTROL WORD DB DSKD ;DISK PORT NUMBER DMASZ: DW 0 ;SIZE - 1 DB 2CH ;1B BYTE DB 10H ;1B BYTE DB 80H ;2A BYTE - NO STOP ON MATCH DB 9DH ;2B BYTE DMADR: DW HSTBUF ;MEMORY ADDRESS DB 13H ;INTERRUPT CONTROL BYTE DB DMAIV AND 0FFH ;INTERRUPT VECTOR DB 8AH ;2C BYTE - READY IS ACTIVE HIGH DB 0CFH ;LOAD DB 08BH ;RESET STATUS DB 0ABH ;ENABLE INTERRUPT DB 87H ;ENABLE DMA DMCSZ EQU $-DMACB ;NUMBER OF BYTES TO SEND TO CONTROLLER BEGDAT EQU $ ;UNINITIALIZED DATA AREA BEGINS HERE ; ; DEVICE CONTROL BLOCKS ; RWTRY: DS 1 ;RETRY COUNT RWDCB: DS 1 ;READ/WRITIÚ 0C0H ;ALLOC 0 DB 0 ;ALLOC 1 DW 16 ;CHECK SIZE DW 3 ;TRACK OFFSET ; SCSM: DB 0 ;SECTOR MASK DB 0 ;SECTOR SHIFT FACTOR ; SCSZ: DW 7FH ;SECTOR SIZE - 1 DSKP: DB 0 ; N VALUE DB 18 ; EOT VALUE DB 7 ;GPL VALUE DB 80H ;DTL VALUE DB 0 ;DENSITY DB 1 ;TRACK SKIP FLAG ; DPBE EQU $ ;END OF DISK PARAMETER BLOCK ; RDAD: DW FREAD ;DISK READ ROUTINE WRAD: DW FWRIT ;DISK WRITE ROUTINE ; XLTB2 EQU 0 ;NO TRANSLATION TABLE ; ; DISK TYPE #3 - CORVUS HARD DISK 9.7 MBYTE ; ; 128 BYTE SECTORS ; 32 SECTORS PER TRACK ; ; FIRST HALF ; DPBK3A: DW 32 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (8K BLOCK) DB 00 ;NULL MASK DW 4095 ;DISK SIZE - 1 DW 1023 ;DIRECTORY MAX DB 0FFH ;ALLOC 0 DB 0FFH ;ALLOC 1 DW 0 ;CHECK SIZE DW 3 ;TRACK OFFSET ; DB 3 ;SECTOR MASK DB 2 ;SECTOR SHIFT ; DW 0,0,0,0 ;FILLER ; DW HREAD ; DW HWRIT ; ; SECOND HALF ; DPBK3B: DW 32 ;SECTORS PER TRACK DB 4 ;SHIFT FACTOR DB 15 ;BLOCK MASK (8K BLOCK) DB 00 ;NULL MASK DW 1402 ;DJ;JëE COMMAND RWSEL: DS 1 ;SELECT BYTE RWTRK: DS 1 ;TRACK NUMBER RWHDR: DS 1 ;HEAD NUMBER RWSEC: DS 1 ;SECTOR (R) RWSIZ: DS 1 ;SIZE (N) RWEOT: DS 1 ;S/TK (EOT) RWGPL: DS 1 ;GAP LENGTH RWDTL: DS 1 ;DATA LENGHT RWDEN: DS 1 ;DENSITY FLAG RWSKP: DS 1 ;TRACK SKIP FLAG ; CHGTY: DS 1 ;CHANGED DRIVE TYPE FLAG CHGHD: DS 1 ;CHANGED HEAD CHGTK: DS 1 ;CHANGED TRACK ; ; SEEK/RECAL CONTROL BLOCK ; SKTRY: DS 1 ;SEEK RETRY SKSIZ: DS 1 ;SIZE OF THE COMMAND SKDCB: DS 1 ;COMMAND SKSEL: DS 1 ;SELECT BYTE SKTRK: DS 1 ;SEEK TRACK NUMBER ; ; COMPLETE STATUS WORK AREA ; DINTR: DS 1 ;DISK INTERRUPT INDICATOR WKST0: DS 7 ;WORKING COPY OF DISK STATUS REGISTERS ; ; HARD DISK WORK AREA ; HDRCD: DS 1 COMND: DS 1 HDDRV: DS 1 HDADD: DS 2 ; ; MISC ; TMOUT: DS 1 ;TIMEOUT COUNTER CLOCK: DS 1 ;WAIT COUNTER BEEPC: DS 1 ;BEEPER TIME MTRFL: DS 1 ;MOTOR ON FLAG MTRCT: DS 2 ;MOTOR ON COUNTER CPMSPT: DS 1 ;CPM SECTORS PER TRACK ALLSZ: DS 1 ;CPM ALLOCATION SIZE SECSHF: DS 1 ;SECTOR SHIFT FACTOR SECMSK: DS JHååJ`1 ;SECTOR MASK NBRSC: DS 1 ;NUMBER OF SECTORS TO LOAD SRWSTK: DS 2 ;DISK SAVE STACK SVDSTK: DS 2 ;VIDEO SAVE STACK SDKSTK: DS 2 ;DISK INTERRUPT SAVE STACK TOTRY: DS 1 ;TIME OUT RETRY ESCFL: DS 1 ;ESCAPE SEQUENCE IN PROGRESS REVFL: DS 1 ;REVERSE VIDEO FLAG LSTLN: DS 1 ;LAST LINE DISPLAYED YHOLD: DS 1 ;Y VALUE HOLD ; ; CP/M INTERFACE PARAMETERS ; DMAAD: DS 2 ;DIRECT MEMORY ADDRESS DPPNT: DS 2 ;DISK PARAMETER POINTER DVPNT: DS 2 ;DEVICE PARAMETER POINTER DXLTB: DS 2 ;CURRENT TRANSLATE TABLE ; ; LOGICAL DISK DRIVE ; CDISK: DS 1 ; TRACK: DS 2 ; SECTOR: DS 1 ; ; ; PHYSICAL DISK DRIVE PARAMETERS ; PDSK: DS 1 ;DISK NUMBER PTRK: DS 2 ;TRACK PSEC: DS 1 ;SECTOR LDSK: DS 1 ;LAST DRIVE ACCESSED REQSEC: DS 1 ;REQUEST PHYSICAL SECTOR NUMBER ; UDSK: DS 1 ;LAST UNALLOC DISK UTRK: DS 2 ;LAST UNALLOC TRACK USEC: 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 HSTACT: DS 1 ;HOST ACJHååJñ¿ÿTIVE FLAG HSTWRT: DS 1 ;HOST WRITTEN FLAG UNACNT: DS 1 ;UNALLOC REC CNT ; ; SCRATCH RAM AREA FOR BDOS USE ; DIRBF: DS 128 ;SCRATCH DIRECTORY AREA ; ALL00: DS 50 ;ALLOCATION VECTOR 0 ALL01: DS 50 ;ALLOCATION VECTOR 1 ALL02: DS 512 ;ALLOCATION VECÿTOR 2 ALL03: DS 512 ;ALLOCATION VECTOR 3 ALL04: DS 512 ;ALLOCATION VECTOR 4 ; CHK00: DS 48 ;CHECK VECTOR 0 CHK01: DS 48 ;CHECK VECTOR 1 CHK02: DS 0 ;CHECK VECTOR 2 CHK03: DS 0 ;CHECK VECTOR 3 CHK04: DS 0 ;CHECK VECTOR 4 ; HSTBUF DS 1024 ;LEAVE RÿOOM FOR 1K SECTOR SIZE ; ; WORK STACK AREAS ; DS 20H DKSTK: DS 30H VDSTK: DS 30H ; RWSTK: ; ; MARK END OF DATA ; ENDDAT EQU $ ;END OF DATA AREA ; DATSIZ EQU $-BEGDAT;SIZE OF DATA AREA ; ; PROTECTION ; IF (NOT ENDDAT) AND 8000H '******* Memory wrap around error **' ENDIF END '€NG RSFLAG: DS 1 ;READ SECTOR FLAG READOP: DS 1 ;1 IF READ OPERATION WRTYPE: DS 1 ;WRITE OPERATION TYPE HSTACT: DS 1 ;HOST ACK²KHååKHååKHååKHååKHååL LHååLHååLHååLHååLHååM„MHååMHååMHååMHååMHååNNHååNHååNHååNHååNHååO–OHååOHååOHååOHååOHååÿO–