IMD 1.16: 29/05/2007 12:08:48 FOGCPM.017 ååååååååååååååå--FOGCPM017DZ COM€ DZ COM€ !"DZ COM #$%&-12-00 85 ¬-CPM017 DOC­®DZ-DXERSDOC'()DZINSTALCOMG*+,-./012DZMENU OVR<3456789:DZMSGS OVR€;<=>?@ABCDEFGHIJDZMSGS OVR€KLMNOPQRSTUVWXYZDZMSGS OVR€[\]^_`abcdefghijDZMSGS OVR+klmnopZ80MR COMiqrstuvwxyz{|}~Z80MR DOC€€�‚ƒ„…†‡ˆ‰Š‹Œ�ŽZ80MR DOCL��‘’“”•–—˜Z80MR TXT€™š›œ�žŸ ¡¢£¤¥¦§¨Z80MR TXT©PHASE1 AZM ª«åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååThis is the disk name. ååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååú�€ COPYRIGHT (C) 1985 WASHINGTON ELECTRONICS & SYSTEMS LTDUse your WordStar 3.3 Instal prog for screen, NOT printerPied Piper, Hazletine 1500P~ÿ~~ Íx‘:ÍZ> õÝ~ƒõÍ_x)ÍB{*åÍ�{Ý~ƒõ>õÍv|Í‹{Íá‘3?XW’ç‘Íx‘:¤· !¤62:¤=2¤:¤oŸgqåÝ~ƒáwç‘Íx‘ý >õ>õÍ_xÝw‚·( > õ>õÍ_xÝw‚Ý~‚Ýwƒ·(#:¥oŸgqåÝ~ƒáw:¥<õ>3Í3Ž2¥!¦6Ý~‚þÍÐ�!¶2Ýw„ç‘Íx‘ÿ:o&)§^#Vëå:o&Ñ~Ýw‚ç‘Íx‘ý Ýn…Ýf†~ÝwƒÝ~ƒG>ÍŽÝp‚8'Ýw„Ý~„OÝn…Ýf† ÕåÍ÷zyõÍ(Ý~„<Ý5‚Â>ç‘Íx‘Ý~ƒ0 !gåÍ!nåÍÝ~ƒ2ç‘Íx‘þ :03:o&!åÝ~…áw:! ¾8:<2 :!¾0:<2ÃÅ͘Ýwƒ:o&)§^#Vëå:o&ÑåÝ~…áw:·ÍÐ�!¦¶0p:g·()Ý~…þ€>?Ýw‚Ý~…õ>õÍxxÝw…Ý~‚!¾(Ý~‚õÍhÝ~…õÍ(: 0":o&Ù~!¾ :o&Ùå:<áw:!¾0:<2 I:o&Ù~õ:Á¸0:o&Ùå:áw:o&ò~!¾0:o&òå:áw! 6:!¾0:<2ç‘Íx‘þ Ý~‡G>ÍŽÝp‚8ÝwƒÝ~…õÍŒÝ~ƒ<Ý5‚ÂÛç‘Íx‘þ Ý~…G>ÍŽÝp‚8Ýwƒ> õÍŒÝ~ƒ<Ý5‚Âç‘Íx‘> õÍŒç‘Íx‘Ý~ƒþ 0 Ý~ƒÆ0õÍŒÝ~ƒÆAöÿo& }õÍŒç‘Íx‘Ý~ƒõ>ÍxŽõÍ)Ý~ƒæõÍ)ç‘Íx‘Ýn‚Ýfƒ|õÍTÝn‚Ýfƒ&}õÍTç‘Íx‘Ý~ƒþ 8 Ý~ƒõ> ÍxŽõÍ’Ý~ƒõ> Í,ŽÆ0õÍŒç‘Íx‘ Ýn‚Ýfƒ·íB8Ýn‚Ýfƒå! ͤ‹åͽÝn‚Ýfƒå! ÍJ‹0 }õÍŒç‘Íx‘>™Ý¾ƒ0>0õÍŒ> ݾƒ0Ý~ƒõÍT>hõÍŒÝ~ƒõÍ’ç‘Íx‘ÝN‚ÝFƒ!™™·íB0>0õÍŒÝN‚ÝFƒ! ·íB0Ýn‚ÝfƒåÍr>hõÍŒ Ýn‚Ýfƒåͽç‘Íx‘þ@Ý~„G>ÍŽÝp‚8Ýwƒo&ÝåÑ„ÿ~õÍŒÝ~ƒ<Ý5‚Â… ç‘Íx‘ý :ݾˆ0:Ýwˆ:îõÝ~ˆ·ÍÐ�!¦¶Gñ 0q:g·( :0>õÍh!4åÍ:G· Ý~ˆ!H†Ýw„Ý~†!I†ÝwƒÝ~ˆ!H†ÝwƒÝ~†!I†Ýw„Ý~„õÍ(!=åÍÝ~ƒõÍ(!BåÍÝ~ˆ2 Ý~†2 ͘Ýw‚Ý~ˆ2Ý~†2ç‘Íx‘þ:îÒø :Ýw‚:o&~!¾8n:P· :o&å:Oá~o&·íB}õÍòH:·ÍÐ�!¦¶0!PåÍ:o&:¾0#:o&)§^#Vëå:o&Ñ6 :<2Í:o&åÝ~‚áwç‘Íx‘þ>õÍ(:Ýwƒ:Ýw‚>õýÿ:o& }õÍ¥ >õ>*õÍÈÍU Ý~ƒõÝ~‚õÍ¥ ç‘Íx‘: !¾ÍÕ�õ: !¾ÍÕ�Gñ°0 :õ:õÍ¥ ç‘Íx‘ú :Ýw†:Ýw„Í> Ý6‡:ݾ‡>?!¦¦Ò5 Ýn‡&ÙåÝn‡&òã~áõ~Á¸8yÝ~‡õÝn‡&Ù~õÍ¥ Ýn‡&ÙåÝn‡&ò~Gá~ÍŽÝp‚8.Ýw…Ýn‡&)§^#VëåÝn…&Ñ~õÍ(͘ÝwƒÝ~…<Ý5‚Âã Ýn‡&Ùå:áwÝn‡&ò6Ý~‡<Ýw‡Ã„ ! 6Ý6‡: îõ:ݾ‡>?Gñ 0*Ýn‡&ÙåÝn‡&òã~áõ~Á¸8! 6Ý~‡<Ýw‡ÀÝ~†õÝ~„õÍ¥ ç‘Íx‘Ý~ƒõ>õÍ¥ ç‘Íx‘:õ>õÍ¥ ç‘Íx‘þ:Í0 :<õÍŒ ͘Ýw‚s:04Ý6ƒÝ~ƒ! ¾0"Ýnƒ&!~õÍ(Ýnƒ&!6 Ý~ƒ<ÝwƒÕ! 6ÍO{*åÍ�{Í‹{!6:!¾0:<2!6Íá‘» Ë ) W’ç‘Íx‘ü :G>ÍŽÝpƒ8YÝw…o&Ùå:áwÝn…&ò6:G>ÍŽÝp‚Ú£ Ýw„Ýn…&)§^#VëåÝn„&Ñ6 Ý~„<Ý5‚Â~ Ý~…<Ý5ƒÂT ç‘Íx‘þ:G>ÍŽÝp‚Úß Ýwƒo&å:<áwÝ~ƒ<Ý5‚ÂÄ :o&å:áwç‘Íx‘ü :2=2õ>Á¸Ò !6!6O!6!¦6!ƒÿÝåÑå!‘Ñí°:G>ÍŽÝp‚Ú‹Ýw…:�·ÂYÝn…&)§å!PåÍg”Ã�Ýn…&)§å!ƒÿÝåÑÑí°PÝnƒÝf„ ÝuƒÝt„Ý~…<Ý5‚Â:ÍA ç‘Íx‘ÿ :¤!¥¾Âì>õ>õÍ_xÝw‚·Ê¼> õ>õÍ_xÝw‚ÝnƒÝf„åÝ~‚áwÝ~‚·ÂÜ: ÒÙÍl ÃéÝ~‚þÂé!6ÃÝnƒÝf„å:¤oŸgq~áw:¤<õ>3Í3Ž2¤!¥¾Â!¦6Í> ç‘Íx‘Ýn‚ÝfƒåÍ‘Ýn‚Ýfƒ~·Ê%ç‘Íx‘ç‘dzbbÍx‘!Àå!åÍg”*À"Â*À6#6ͱ‘´åÅ€!Í‚ŠåÅ!Í®ŒÍ#�Í‘E*À##åͱ‘E`iëás#r!"Ä*Àå*ÄDM&låÅ!ͽŒ`iëás#r*À6€#6ç‘Íx‘ú!€Ýu„Ýt…*ÀÝu‚ÝtƒÝn‚ÝfƒN#FÝnˆÝf‰·íB>?õÝ~ƒ·ÍÕ�Gñ 0"Ýn‚ÝfƒÝu„Ýt…Ýn‚Ýfƒ^#VëÝu‚Ýtƒº!†ÿÝåÑå!åÍg”Ý~…· Ýn†Ýf‡"ÀÝn„Ýf…åÝn†Ýf‡ëás#r*Â##åÝnŠÝf‹+ëás#rÝNŠÝF‹*Ä å*ÂÍêŒ^#VëDM&lͽŒ`i"ÄÝn†Ýf‡åÝn‚Ýfƒëás#rÝn†Ýf‡åÝnˆÝf‰ëás#rͱ‘´åÅ€!Í‚ŠÍ#�åÅÝnˆÝf‰DM&lÍ®ŒåÅ*ÄDM&lͽŒÍ‘EÝn†Ýf‡##åͱ‘E`iëás#rÝn†Ýf‡å*ÄDM&låÅÝnˆÝf‰DM&lͽŒ`iëás#rÝn†Ýf‡"Âç‘Íx‘þ*ÀÝu‚ÝtƒÝ~ƒ·(XÝn‚Ýfƒ^#VëåÍrÍÝn‚Ýfƒ##^#VëåÍrÍÝn‚Ýfƒ^#VëåÍrÍÍÍU Ͱ Ýn‚Ýfƒ^#VëÝu‚Ýtƒ¢Ã§‘Íx‘ý *ÀÝu‚ÝtƒÝ6„Ý~ƒ·(eÝn‚Ýfƒ^#Vë"ÆÝN…ÝF†ë`i·íR0NÝn‚ÝfƒÝN…ÝF†##^#Vë·íB>Ýw„Ýn‚ÝfƒN#FÝn…Ýf† "ÄÝn‚Ýfƒ^#VëÝu‚Ýtƒ•!ÿÿ"ÆÝ~„ç‘Íx‘þ*ÆÝu‚ÝtƒÃ§‘Íx‘øÝnŠÝf‹åÍ40Ý6‰Ãa*Äå!€Í¤‹Ýu‡Ýtˆåͱ‘´ÍêŒÍ7�ú Ý6‰ÿÃaÝ6ƒ:³Ýw‚Ý6„:³oŸg)“N#FÝn‡Ýfˆ·íB Ý6„:³oŸg¸6YÝ~ƒþìÈ�úu:³oŸg¸~îÝw„:³oŸg¸åÝ~„áwÝ~„î0$:³ݾ‚ Ý~ƒ<Ýwƒ:³þ !³6:³<2³Ý~„Ò*Ä}æo&Ýu…Ýt†:³oŸg)“N#FÝn‡Ýfˆ·íB(f:³oŸg)“åÝn‡Ýfˆëás#r*‘åÝn‡ÝfˆÕåÍç|*‘åÍu€0>bõÍŒ*Í<{*‘åÍ�{:³oŸg)£^#VëåÍȀрí°ÍÁÍ‹{:³oŸg)£^#VëåÝn…Ýf†Ñ~Ýw‰:³oŸg¸6Ý~‰Ã§‘Íx‘þ Ýn„Ýf…#åÍÎg.åÝn„Ýf…åÍÎOá Ýu‚ÝtƒÃ§‘Íx‘ü >Ý6‚Ýw…oŸg)“6ÿ#6ÿÝ~…oŸg)£å!€åÍg”Ý~…<Ý5‚ž!Iå>$õÍ{:Iõ>Á¸>õ:Jþ ÍÐ�Gñ 0!Iå>õ>õÍ�×!m6:I· Ãþ.Å!IÍàzÍž�|µ°± !IÍàzÍ..COMÍÛzÍç�!I>#ÍH�!IÍàz!m>#ÍH�.Å!mÍàzÍž�yÝwƒ:mõÝ~ƒOño&·íB#}Ýw„!måÝ~ƒõÝ~„õÍ�!IÍàzÍ~î0Ͱ !IÍàz>7Íw�Ír >?õÍŒ!I6Q!‘å!€å!IÍàzÍi~!‘å!€åÍŠ}*‘åͱ‘´åÅÍç|ͱ‘´Í�Í‘´*‘åÍu€0Ûͱ‘´Í#�Í‘´ÍÌç‘DZMSGS.OVRHit space to continue, or ^U if you've seen enoughÍx‘ >Íé�ý¾‡01Íé�ý6‡Í<{Ýn„Ýf…^#VëåÍ�{ÍÈ€å!ˆÿÍ‘Ñë€í°ÍÁÍ‹{Ýn‚ÝfƒåÍé�ýn‡&Í‘ˆÿ~áwÍé�ý~‡<Íé�ýw‡Ã§‘Íx‘w‘Ý~ ͇M!åÅÐÿÝn & DMËíbåÅÍîzÕ!Í´z Í~ÒV! ÝåÑå!€å!Í´z Íi~! ÝåÑå!€åÍŠ}Ý6‡€Ý6…Ý6„Ý6†Ý6‚ >õÍŒ Ý~…Ò:! ÝåÑå!åÝåýáÍ>:æ2þ !6-:þ Ý6…Ý6„p:þ.ÍÐ�õÝ~ƒþ ÍÐ�Gñ 0 Ý6†Ý6„O:þ-ÍÐ�õÝ~ƒþ ÍÐ�Gñ 0Ý6†2Ý~†0 :þ Ý6†:þ :þ ÍU Ͱ :õÍŒÝ6‚ Ý~„0X:!¾0ÍU Ͱ ï! Íÿ:o& }õ> õÍÈ! Í´z2>7Íw�Ír ÍU !‚ÿÝåÑåÍ Ý~‚þÍÕ�Ýw…>õÍŒ Ý6„:ÝwƒÃ#Ýn Ýf åÍ»}Ý~‚þ ÍÕ�æ0ÃÖ&Ͱ !Í´z >7Íw�Ír >?õÍŒÍU !‚ÿÝåÑåÍ >õÍŒ ÍU 1Íá‘···ÖÍÕ{ç‘Íx‘ÿ Ý~„þ 0 Ý~„Æ0Ýw‚Ý~„Æ7Ýw‚Ý~‚ç‘Íx‘ÿ Ý6‚Ý~†þ0>?õ>9ݾ†>?Gñ 0ÝnƒÝf„åÐÿÝn†& }áwÝ6‚>Ý~†õ>ßõÍxxÝw†þA>?õ>Fݾ†>?Gñ 0ÝnƒÝf„å¿ÿÝn†&  }áwÝ6‚Ý~‚ç‘Íx‘ü :Ýw…:Ýw„:?Ýwƒ:?þ 0Ý6ƒ!:>Ýw‚:>þ 0Ý6‚!:>· Ý6‚ >õÍŒ Ý~ƒ·ÍÐ�õÝ~ƒþ ÍÐ�Gñ°0 >õ> õÍÈ> õÍŒÝ~ƒõÍŒÝ~‚õÍŒÝ~…õÝ~„õÍ¥ ç‘Íx‘>õ:EõÍ¥ *BåÍrç‘Íx‘>õ:FõÍ¥ *@åÍrç‘Íx‘>õ:GõÍ¥ Í{`iåͽÍU ç‘Íx‘Æ@>õ>õÍ¥ >õ> õÍÈ:2EÍÎ>.õÍŒ>.õÍŒ:2FÍç>õ> õÍÈ:IG>ÍŽÝp‚8Ýw»o&I~õÍŒÝ~»<Ý5‚Âj:D0Í“ WAITÍÛz!ƒÿÝåÑ>7ÍH�ͯ ÍÛz!ƒÿÝåÑ>7ÍH�!ƒÿÝåÑÍàz>7Íw�Ír Íä Free memory = ÍÛz>7Íw�Ír :2GÍç‘Íx‘Ý~ƒ2 :· !6:=G:¸0:=2:ݾ„8 Ý~„Æ@Ýw‚)Ý~„þa>?õ>zݾ„>?Gñ 0 Ý~„ÆàÝw‚Ý~„Ýw‚Ý~‚ç‘Íx‘: õ:õÍ¥ ç‘Íx‘ø!ÍW‘†:±õ>PÍÏŽDM&lÍW‘‚!>åÍ‘ÍC‘†åÅÍC‘‚Í7� :?õÍJVÍC‘†Í�ÍW‘†:>·(Ò:>õÍ…2>ÍHç‘Íx‘!VåÍ ç‘Íx‘:VõÍŒç‘Íx‘>õÍ(:=2Í>õÍ(:=2ç‘Íx‘þ Ý~…ÆG>ÍŽÝp‚8ÝwƒõÍŒ ÍU Ý~ƒ<Ý5‚”:T!¾0:2T:!ð¾8!ð6>õ>õÍ¥ ç‘Íx‘ñO>õÍ!“ÿÝåÑÍàz>7Íw�Ír Í>[õÍŒÝn‘Ýf’åÍr>]õÍŒÍ>?õÍŒÍ!Ýu‚ÝtƒÝ6„Í<Ýn„&ÝåÑ„ÿå:Váw:Vþ &>ݾ„0ÍZÝ~„=Ýw„Ýn‚Ýfƒå!ͤ‹Ýu‚Ýtƒ[:Võ!WåÍ¿0.Ýn‚Ýfƒå!ÍŒåÅ:WOŸGgoÍ®Œ`iÝu‚ÝtƒÝu�Ýt�ÍK:Vþ Ý~„þ Ýn‘Ýf’Ýu�Ýt�Íû Ý~„<Ýw„:Vþ ÍÐ�õÝ~„þ >?Gñ°!¶Ò ÍU Íž Ýn�Ýf�ç‘Íx‘ÿ>õ÷ÿ:o& }õÍ¥ Í Y/N? ÍÛz>7Íw�Ír ÍU !VåÍ‘:VõÍ¿z@@ÍFy(ÍKÍU :V·(Íû !V6Ív:V·ÍÕ�!¶0Œ:VõÍ¿zÍFyÍÕ�Ýw‚ç‘Íx‘ÿ Ý~„þ >?õ>}ݾ„>?Gñ õÝ~„þ'ÍÕ�Gñ Ýw‚ç‘Íx‘:ÿþD Ý~ƒõÍ’Ý~ƒõÍúç‘Íx‘:ÿþD Ýn‚Ýfƒåͽ Ýn‚ÝfƒåÍ, ç‘Íx‘øÍÍ:Í`$Ý6‰Ý6ˆÍ !DB ÍÛz>7Íw�Ír ÝnŠÝf‹^#VëåÍÎÝw†Ý6‡Ý~†õÍŽ õ:þMÍÐ�Gñ 0$Ý~‰· >'õÍŒÝ6ˆÝ~†õÍŒÝ~†þ$ Ý6‡@>ݾ‰0>,õÍŒÝ~†õÍ» Ý~†· &:þMÍÐ�õÝnŠÝf‹^#Vë+åÍÎõÍŽ Gñ 0Ý6‡Ý~‰<Ýw‰ÝnŠÝf‹åÝnŠÝf‹^#Vë#ëás#rÝnŠÝf‹^#VëåÍÎÝw†Ý~‡î0Ý~†õÍŽ ݾˆÍÕ�õ:þMÍÐ�Gñ Ýw‡Ý~‡îÒž"Ý~†þ ÍÐ�õÝ~‰þ>?Gñ 0Ý6‡iùÿ:o& DM:o&·íBìÈ�úV"Ý6‡HÝnŠÝf‹åͱ‘EãÅ^#VëDM&lÍ7�òy"Ý6‡%:ò·(*ñåÝnŠÝf‹N#Fá^#Vëë`i·íR>?Ýw‡Ý~‡Ò=!ÝnŠÝf‹åÝnŠÝf‹^#Vë+ëás#rÝ~ˆ0>'õÍŒÃm$ÝnŠÝf‹^#VëåÍw:o&¼å:Iáw:o&)Šå*Jëás#r:L· *Í #??? DB ÍÛz>7Íw�Ír ÝnŠÝf‹^#VëåÍÎõÍú ÝnŠÝf‹åÝnŠÝf‹å:LOá^#Vë +ëás#rÃm$ÝnŠÝf‹^#VëåÍgÝu„Ýt…Ý6‚ :õÍ¿z ÍFy( :Ýw‚þR ÝnŠÝf‹N#FÝn„Ýf… Ýu„Ýt…ͨ#DW ÍÛz>7Íw�Ír :þX ,ÝnŠÝf‹^#VëåÍÎg.åÝnŠÝf‹^#Vë#åÍÎOá Ýu„Ýt…Ý~‚þ Ýn„Ýf…åÍÚ Ýn„Ýf…åÝ~‚õÍÚ\:o&¼åÝ~‚áw:o&)ŠåÝn„Ýf…ëás#rÝnŠÝf‹åÝnŠÝf‹^#Vë#ëás#rÝ~‚þR ÍR$-$ÍÛz>7Íw�Ír  Í-’B!IË"P#Ío`ÝnŠÝf‹åÝnŠÝf‹^#Vë#ëás#rç‘Íx‘ô:ïî0)>õÍòÝnŽÝf�^#VëåÍrÍ:Ýwˆ> õÍò:Ýw‰:N0 !N6ÍU ö)ÝnŽÝf�^#VëåÍ4îÝw†*ñ^#VëÝu„Ýt…:ò·ÍÕ�õÝnŽÝf�N#FÝn„Ýf…ë`i·íR>?Gñ Òô':o&)å*ñëás#r*ñ~·Âá&:o&)6€#6:o&)Õå*ñëás#r*ñåÍPg:ïî0Íž *ñåÍéf:õÝ~‰õÍ¥ ÝnŽÝf�N#FÝn„Ýf…·íB0?Í % EQU $-ÍÛz>7Íw�Ír ÝnŽÝf�^#VëDM&låÅÝn„Ýf…DM&lͽŒ`iåͽÃÞ&*ñ##^#VëÝu‚Ýtƒ*ñ~ÍÌ&Í÷% DS ÍÛz>7Íw�Ír Ý~ƒ· ÝnŽÝf�åͱ‘E`iëás#rÝnŽÝf�åÝn‚ÝfƒÑí í ÝnŽÝf�^#VëDM&låÅÝn„Ýf…DM&lͽŒ`iåÍÚ ÃÞ&Íe& .PHASE ÍÛz >7Íw�Ír *ñ^#VëåÍ, \Ý~ƒ·ÍÐ�õÝn‚ÝfƒåÝnŽÝf�N#Fá^#Vë·íBÍÕ�Gñ°õÝn‚Ýfƒ~·ÍÕ�Gñ°0 Ýn‚Ýfƒ"ñÃÑ$OÍá‘X&‚&‚&‚&î%‚&Ãâ'*ñ~þ; 4>;õÍŒ:PÝw‡!P6!å*ñ^#VëåÍÎ^*ñåͤ`Ý~‡2PÃâ'!å*ñ^#VëåÍÎ^:·ÍÕ�!R¦0*ñ~õÍŒÝn„Ýf…åÍrÍ*ñåͤ`Ý~†0YÝnŽÝf�N#FÝn„Ýf…·íB >:õÍŒ;ÍŽ' EQU $-ÍÛz>7Íw�Ír ÝnŽÝf�^#VëDM&låÅÝn„Ýf…DM&lͽŒ`iåͽÍÉ' EQU ÍÛz>7Íw�Ír Ýn„Ýf…åÍÚ Ío`*ñ##^#Vë"ñÍU Ã)Ý~†Ò)ÍÝnŽÝf�^#VëÝuŒÝt�!M6ÝnŽÝf�åÍÿ ÝnŽÝf�^#VëÝuŠÝt‹DM&låÅÝnŒÝf�DM&lͽŒåÅ!ÍW�ò`(ÝnŒÝf� ÝuŠÝt‹ÍU :ïîÒþ(:õÝ~ˆõÍ¥ ÝNŠÝF‹ÝnŒÝf�·íB>õͱ‘EåÅÝnŒÝf�DM&lÍ7�Íß�Gñ 0 ÍÝnŒÝf�åÍÎõÍTÝnŒÝf�#ÝuŒÝt�¯ÝnŽÝf�N#FÝnŠÝf‹·íB( >õ>.õÍÈ:M·(:õÝ~‰=õÍ¥ :MõÍŒÍU Ý~†îÒ¶)*ñ^#VëÝuŒÝt�:ò· 3!ÿÿÝuŒÝt�ÝnŽÝf�åͱ‘EãÅ^#VëDM&lÍW�úR)ÝnŽÝf�6ÿ#6ÿdÝnŽÝf�ÝNŒÝF�^#Vë·íB8MÝnŽÝf�^#VëåÍ4î08ÝnŽÝf�åͽëás#rÝnŽÝf�ÝNŒÝF�^#Vë·íB8ÝnŽÝf�åÝnŒÝf�ëás#rœÃ§‘Íx‘ùÝ~ŠõÍŒ :Ýw…:Ýw„*BÝu†Ýt‡Ý~Š!¾(ÝnŠ&)X^#VëÝu†Ýt‡Ý~Š!¾8 :Ýw…:Ýw„ÝnŠ&)Õ^#Vë"ñ|· ÝnŠ&)^#Vë"ñÝ~ŠÝ¾…ÍÕ�õÝnŠ&)XåÝ~Š=o&)XN#Fá^#Vë·íBÍÐ�Gñ 0OÝ~ŠÝwƒÝ~„ݾƒ>?õ:ò·ÍÐ�Gñ 0/Ýnƒ&)Õ^#Vë"ñ|· Ýnƒ&)^#Vë"ñÝ~ƒ<Ýwƒ¹ Ýn†Ýf‡åÍ£b"ñÝn†Ýf‡åÍ gÝ~„GÝ~ŠÍŽÝp‚8wÝwˆo&)XåÝn†Ýf‡ëás#rÝnˆ&)ŠåÝn†Ýf‡ëás#rÝnˆ&)Õ6€#6Ýnˆ&)6€#6Ýnˆ&¼6 !†ÿÝåÑåÍŠ$:ݾ„ÒI+Ͱ Ý~ˆ<Ý5‚ÂÜ*:o&)X^#Vë"@Íç‘Íx‘ÿ :Ýw‚Ý~„!¾8:Ýw‚Ý~‚ݾ„>õÝ~„=o&)XåÝn„&)XN#Fá^#Vë·íBÍÐ�Gñ 0 Ý~„=Ýw„Â:Tݾ‚8 Ý~‚Ýw„!T6Ý~„õ͹)ç‘Íx‘:õ͹)!ô6ç‘Íx‘ô:!¾Òb.þÿ:o& å:Oá·íBìÈ�Íß�õ:=G:ð¸ÍÕ�Gñ 0i:=2ðõÍŒ >õÍò>Ý6ƒÝw‰Í>Ý6‚Ýwˆæ·ÍÐ�õÝ~‰·ÍÐ�Gñ Òo,ÍÝ~ˆõÍ)Ý~‰·Âƒ,ÍÍÝ~ˆ<Ý5‚ÂT,Ý~‰<Ý5ƒÂH,ÍU *BÝuŒÝt�íKE*GåÅ:O:o&·íB#å!Í݋ͽŒÍ�`iÝu„Ýt…ÝNŒÝF�Ýn„Ýf…·íBÒï,Ýn„Ýf…ÝuŒÝt�ÝnŒÝf�}æOŸGÝnŒÝf�·íBÝuŒÝt�:=õÍŒ :!¾Òb.Ͱ ÝnŒÝf�åÍrÍÝnŒÝf�ÝuŠÝt‹:o&)XåÝnŒÝf�ëás#r:o&)ŠåÝnŒÝf�ëás#r:o&)Õ6€#6:o&)6€#6:o&¼6 >Ý6ƒÝwˆþ¤-ÍÍÝnŒÝf�åÍ4Ò¾-ÍÍÃÌ-ÝnŒÝf�åÍÎõÍTÝnŒÝf�#ÝuŒÝt�Ý~ˆ<Ý5ƒÂ™-ÍÍÝnŠÝf‹ÝuŒÝt�>Ý6ƒÝwˆÝnŒÝf�åÍÎÝw†æÝw‡õ>Á¸>õÝ~‡þ>Gñ Ò?.:“·Â5.Ý~‡Ýw†Ý~†õÍŒÃE.>_õÍŒÝnŒÝf�#ÝuŒÝt�Ý~ˆ<Ý5ƒÂû-ÍU Ã-:o&)X^#Vë"@*õ"÷ç‘Íx‘ù*õÝu‡ÝtˆÝ6‚íK÷Ýn‡Ýfˆ·íBÒ­/:Ýw†:ݾ†ÚÔ.Ýn†&)XN#FÝn‡Ýfˆ·íBÒÊ.ÃÔ.Ý~†<Ýw†Ã¥.Ý~†=Ýw†Ýn†&)XåÝn‡ÝfˆDM&lÑåÅë^#VëDM&lͽŒ`iÝu„Ýt…·íBÒ�/Ýn„Ýf…å!ÍŒåÅ!Í®ŒyÝwƒÝn„Ýf…·íBÚD/Ý~ƒ<Ýwƒ:ݾ†ÍÐ�ݦ‚Òl/:ݾƒÒi/Ý~ŠÆ õÍŒÃT/Ã{/Ý~†õÝ~ƒõÍ¥ Ý6‚Íùõ>õÍxx݆ŠõÍŒÍùõ>õÍxx݆ŠõÍŒÝn‡Ýfˆ#Ýu‡ÝtˆÃ�.ç‘Íx‘þ:=G:¸>?õ:ð·ÍÕ�Gñ õ:“·ÍÕ�õ:g·ÍÕ�Gñ°Gñ ÒP0:Ýwƒ:Ýw‚>õÍ}.Ýnƒ&)X^#Vë"õ#"÷Ý~ƒ!¾Ò+0Ý~ƒ€õÍ}.Ý~ƒõÝ~‚õÍ¥ ç‘Íx‘û :o&)X^#VëÝu‚ÝtƒÝN‚ÝFƒ*B·íB>õ: þÍÐ�Gñ°Ýw†:o&)X^#Vë DM*@·íB>?Ýw…Ýn‚Ýfƒ DM*B·íB>?Ýw„Ý~…ݦ„ݶ†ÒÖ0Íô+ç‘Íx‘:o&)X6ÿ#6ÿ!ð6ç‘Íx‘ôÍ&1Auto-build control table: Start addressÍÛz(>7Íw�!åÍÑÝuŒÝt�Íg1 Finish addressÍÛz(>7Íw�íKE*G`iåÍÑÝu…Ýt†åíKE*GÍêŒÍW�ò£1íKE*G`iÝu…Ýt†!Ýu‰ÝtŠÝnŒÝf�Ýu‡Ýtˆ!D6ÍÝnŒÝf�"BÝN…ÝF†ÝnŒÝf�·íB>õ:îGñ Ò3ÝnŒÝf�å!ÍJ‹|µÂ 2ÝnŒÝf�"@ÍçÍÝnŒÝf�åÍÎÝw‹þÿÍÐ�õÝ~‹õÍ¿z&ýÿÿÿÿÿÿÿÿÿÿ?ÍFyÍÕ�Gñ°ÒQ2Ýn‰ÝfŠ#Ýu‰ÝtŠÃ3Ýn‰ÝfŠ·íBÚì2ÝnŒÝf�+åÍÎþ Ú°2ÝnŒÝf�DM&låÅ!ͽŒ`iåÍÎÝw„·ÍÐ�õÝ~„þ$ÍÐ�Gñ°Ò°2ÝnŒÝf�+ÝuŒÝt�Ýn‡Ýfˆå>BõÝn‡ÝfˆåÍTcåÍ]iÝu‚ÝtƒÝnŒÝf�å>IõÝnŒÝf�åÍTcåÍ]iÝu‚Ýtƒ!Ýu‰ÝtŠÝnŒÝf�#Ýu‡ÝtˆÝnŒÝf�#ÝuŒÝt�ÃÉ1!D6Ívç‘Íx‘û :Ýw‚o&)Õ^#VëÝuƒÝt„:ݾ‚>õÝ~„·ÍÐ�Gñ Ò‡3Ý~‚=Ýw‚o&)^#VëÝuƒÝt„|·Â„3Ýn‚&)Õ^#VëÝuƒÝt„Ã:3Ý~„·Âž3Ýn‡ÝfˆåÍTcÝuƒÝt„ÝnƒÝf„Ýu…Ýt†Ã§‘Íx‘þ Íé�ýn‡ýfˆå>BõÍé�ýn‚ýfƒåÍ]iÝu‚ÝtƒÍé�ýn‡ýfˆåÍÎݾ…Ê4Íé�ýn‡ýfˆ#Íé�ýu‡ýtˆÃÔ3Íé�ýn‡ýfˆ#å>IõÍé�ýn‡ýfˆ#åÍTcåÍ]iÝu‚ÝtƒÃ§‘Íx‘ù :Ýw„:Ýw†Ýw…ÍÝ:o&)X^#VëÝu‡ÝtˆåÍ3Ýu‚Ýtƒ:>Ír5>$õÝåýáÍ­3Ãî5>õÝåýáÍ­3Ãî5:o&)ÕåÝn‡ÝfˆåÍ�4.PHASEÍÛz>7Íw�Ýn‡ÝfˆåÍÑåÝn‚ÝfƒåÍ%mëás#rÃî5:o&)ÕåÝn‡Ýfˆå:>õÝn‚ÝfƒåÍ]iëás#rÃî5:o&)Õ^#VëÝu‚Ýtƒ|·ÍÐ�õÝn‚ÝfƒÝN‡ÝFˆ^#Vëë`i·íR>Gñ°õÝn‚Ýfƒ~·ÍÕ�Gñ°Ò@5Íû Ã`5Ýn‚ÝfƒåÍ:k:Ýw…:o&)Õ6€#6Ãî5Íö0Ãî5Ãî5Íû Ãî5: Íá‘i5l5l5l5g4l5l5l5l5l5l5l5l5l5l5l5t4l5l5l5l5l5l5l5l5l5l5l5l5l5l5l5l5c5Ã4l5Ã4Ã4l5l5Ã4Ã4l5l5Ã4Ã4Ã4�4l5l5Ã4Ã4Ã4l5l5Ã4Ã4ì4l5*BåÍ,lÝ~…õÍk+Ý~†õÝ~„õÍ¥ ç‘Íx‘*BåÍ,lÍà+ÍS0Ívç‘Íx‘ü0Í76Start addressÍÛz >7Íw�!åÍÑÝu„Ýt…Í^6Finish addressÍÛz>7Íw�!ÿÿåÍÑÝu‚ÝtƒÝn„Ýf…"BÝn‚Ýfƒ"@!D6ÍÝ~«2ï!6!å!å!†ÿÝåÑÍàzÍi~!å!åÍŽ}!6Ýn„Ýf…åÍ£b"ñÝn„Ýf…åÍ4õ:ò·ÍÕ�Gñ Òñ6*ñ^#VëÝu„Ýt…Ͱ Íþ6 .Z80 ;ÍÛz>7Íw�Ír !IÍàz>7Íw�Ír ÍÝn„Ýf…åÍr>õ>.õÍÈÝn‚ÝfƒåÍrͰ ÝN‚ÝFƒÝn„Ýf…·íB>õÝN‚ÝFƒÝn„Ýf…·íBÍÐ�õ:ò·ÍÕ�Gñ Gñ°õ:îGñ Òœ7!„ÿÝåÑåÍŠ$Ͱ :!¾Ò™7:2Ã;7ͤ7 ENDÍÛz>7Íw�Ír Ͱ !6!6*åÍ»}!ï6!D6Íç‘Íx‘ü ÍÝ:>͘8!U6:HîÒ8>õÍÍ8Abandon? ÍÛz >7Íw�Ír Íñ2Uô8!D6ÍÍ o!D6*BåÍ,lô8!D6ÍÍVq!D6:>þXÍÐ�2U!H6ô8>õÍ^8LST:ÍÛz>#Íw�Í"6ô8>õ!mÍàzÍ}8.MACÍÛzÍç�>#Íw�Í"6ô8ô8Íû ô8Í-’ �8PT8Qâ7R8S18Wm8X18’8:UîÒÀ8Í 6ç‘Íx‘ú Íò8Auto-build symbol table: Start addressÍÛz'>7Íw�!åÍÑÝu†Ýt‡Í39 Finish addressÍÛz(>7Íw�íKE*G`iåÍÑÝu„Ýt…åíKE*GÍêŒÍW�òo9íKE*G`iÝu„Ýt…!D6Ýn†Ýf‡"B!"@ÍÝn†Ýf‡åÍ£b"ñÝn†Ýf‡åÍ g!"@Íç!Ýu‚Ýtƒ!O6Ív!6ÝN„ÝF…Ýn†Ýf‡·íB>õ:îGñ Ò=:Ýn†Ýf‡DM&låÅÝn‚ÝfƒDM&lͽŒåÅd!Í7�ú,:Ýn†Ýf‡"@Ýn†Ýf‡Ýu‚Ýtƒ!6ÍçÍÍv!6!†ÿÝåÑåÍŠ$Ͱ ü9!O6!D6!6ÍÙ0ÍÍvç‘Íx‘ÿ:uo&)9^#Vë"B:uo&a~Ýw‚:u=õ>Í,Ž2uÍ 6Ý~‚!¾>?õ:ݾ‚>?Gñ Ò±:Ý~‚õÍŒ ç‘Íx‘íKE*GåÅ:O:o&·íBDMËíbͽŒ`i"Bç‘Íx‘ù :éÒ;: o&)X^#Vë"vÃY;: o&)XN#F*v·íBÂG;: !¾Ò:;: Gñ°õ͘Gñ°ÝwˆÃØ;*v"@ÍçÝ~ˆîÒ³<Ý6…Ý6†:çÒr<*våÍ g:þIÍÐ�Ýw†Ý~…!ƒ¾>ݦ†Ò­<Ý~…O*v åÍÎõÝn…&xñ¾ÍÐ�Ýw†Ý~…<Ýw…Ãr<Ý~†Ýw‡Ý~‡Ý¶ˆÒ¸;*våÍ g:þþ ÍÐ�õ:þIÍÐ�Gñ !„¦õ:ƒþÍÐ�Gñ Ò=*v+"v+åÍÎÍ=*v+"vÃ=Ã=Í-’Ëû<Ýû<íû<ýû<=*v"B!D6Í 6Ý~‡Ò…=Ý6ƒ:èî!ë¦ÒG=ÍñÝwƒ:æÒT=>LõÍk:ëݦƒÒ…=:åÍŽÝp‚Ú…=Ýw„o&¼~õÍkÝ~„=Ý5‚Âl=ç‘Íx‘þ: þ¡=!Ýu‚ÝtƒÃª=!Ýu‚ÝtƒÝn‚ÝfƒÃ§‘Íx‘ Ýn†Ýf‡6ç‘Íx‘¹S!†ÿÝåÑåÝ~ÎõÝnËÝfÌåͳ=Í<:Vþ Ò5>:VÍ>Ý~†õ>Á¸Ò>!†ÿÝåÑåÝ~†õ>õÍ�ÍZÃ2>ÃÁ>Ã2>ÃÁ>Ã2>Íá‘ï=>>>>>>ú>:Vþ%ÂG>Ý~ÎõÍkú>:Vþ#•>ÝnËÝfÌÝu„Ýt…>Ý6‚ÝwƒÝn„Ýf…}æõÍ›õÍkÝn„Ýf…å!ͤ‹Ýu„Ýt…Ý~ƒ<Ý5‚Âa>ú>ÍKÝ~†þBÒº>:VGÅ!†ÿÝåÑå>BõÝ~†<õÍE�:ÒÞ=ÍU Íž :îÒô>ÝnËÝfÌåÝ~Îõ!†ÿÝåÑÍàz>BÍw�ÝnÉÝfÊåÍ{fç‘Íx‘ÿE>õÍÝ~ÀõÍŒÝn½Ýf¾åÍrÍ!…ÿÝåÑÍàz>7Íw�Ír Ý~„·Êƒ?Í:? (after ÍÛz>7Íw�Ír ÝnƒÝf„~·Êd?ÝnƒÝf„~õÍŒÝnƒÝf„^#VëåÍrÍw?) ÍÛz>7Íw�Ír Ý~ÀõÝn½Ýf¾åÝnƒÝf„åÍÃ=ç‘Íx‘þ:<õ>õÍ¥ ÍÚ?Options? (Global/Instr/No-verify/Back/Start)ÍÛz,>7Íw�Ír Ý6‚!æ6!ç6!è6!é6!ê6:îݦ‚Ò„@Í<Ý6ƒ:VõÍ…Ía@!æ6Ãw@!ç6Ãw@!è6Ãw@!é6Ãw@!ê6Ãw@Ý6ƒ:Vþ Â[@Ý6‚Ã^@Íû Ãw@Í-’B8@G @I(@N0@S@@H@Ý~ƒÒ�@ÍKÃ@ÍU Íž ç‘Íx‘:ƒo&xåÍé�ýn…ýf†&}áw:ƒþ Ò»@:ƒ<2ƒ!„6>Íé�ý¾‡Òø@:ƒo&xåÍé�ýn…ýf†|áw:ƒþ Òó@:ƒ<2ƒ!„6Íé�ý6‡!Íé�ýu…ýt†Ã§‘Íx‘ú !ƒ6Ý6ƒÝ6‚:>þAÂ.AÝ6‚Ý~‚õÍÍWAValues (in hex) to search for? ÍÛz>7Íw�Ír !Ýu…Ýt†Ý6‡Ý6„:îݦ„Ò_BÍ<Ý~ƒÒÌA:Vþ Ú·AÍK:ƒo&xå:Váw:ƒþ Ò´A:ƒ<2ƒÃÉA:Vþ ÂÆAÝ6„ÃÉAÍû Ã\B:Võ!WåÍ¿Ò BÝ~‡<Ýw‡ÍKÝn…Ýf†å!ÍŒåÅ:WOŸGgoÍ®Œ`iÝu…Ýt†Ã\B:VÍLBÝåýáÍ�@Ý6„Ã\BÍÝåýáÍ�@Ã\BÝ~‡·Â@B>'õÍŒÝ6ƒÃCBÍû Ã\BÍû Ã\BÍ-’ B B',BFBÃtAÍU Íž ç‘Íx‘ý :<õ>õÍ¥ ÍŽBCommand when found?ÍÛz>7Íw�Ír Ý6ƒ!å6:îݦƒÒCÍ<:Vþ ÒëB:VþÂÖB>^õÍŒ>NõÍŒ!V6 ÃîB:Vþ ÂåBÝ6ƒÃèBÍû ÃCÍK:åþ(Ò C:å<2åo&¼å:VáwÃCÍû ãBÍU Íž ç‘Íx‘ù :o&)X^#VëÝu…Ýt†:o&)Õ^#VëÝu‡Ýtˆ|·ÂeC:o&)^#VëÝu‡ÝtˆÝ~ˆ·Â|CÝn…Ýf†åÍ£bÝu‡ÝtˆÝ~ˆ·Ê2DÝn‡Ýfˆ^#VëÝuƒÝt„Ýn‡Ýfˆ~Ýw‚:>Í DÝN…ÝF†ÝnƒÝf„·íBʼCÃ2DÃDÝN…ÝF†ÝnƒÝf„·íBÍÕ�õÝ~‚·ÍÐ�Gñ ÒãCÃ2DÃDÝN…ÝF†ÝnƒÝf„·íBÍÕ�õÝ~‚·ÍÕ�Gñ Ò DÃ2DÃDÍ-’B¿CPæCT§CW’Ýn‡Ýfˆ##^#VëÝu‡ÝtˆÃ|CÝ~ˆ·Â?DÍ´:ÃLDÝn‡Ýfˆ^#Vë"BÍ 6ç‘Íx‘þÍÝ:>ÍEÍCÃ1E!"BÍ 6Ã1EÍ´:Í 6Ã1EÍX:Ã1EÍA!ë6:>þA™D!ë6ÍhBÍ›?Íâ:> õÍJVÍvÃ1E:o&)X^#VëÝu‚ÝtƒÝn‚Ýfƒ&}2xÝn‚Ýfƒ|2y!ƒ6Íâ:Ã1E:õ:õÍ¥ Ã1E:õ:õÍ¥ Ã1EÃ1EÍû Ã1E Í-’ ýDA�DB`DCrDEáDF�DI«DP`DRfDT`DV{DXïDEç‘Íx‘:u<õ>Í,Ž2uo&)9å*Bëás#r:uo&aå:áwç‘Íx‘þ:o&)^#VëÝu‚Ýtƒ|·ÍÐ�õÝn‚Ýfƒ~·ÍÐ�Gñ°õÝn‚Ýfƒå:o&)XN#Fá^#Vëë`i·íR>Gñ°ÒÍEÍû ÃÝEÝn‚ÝfƒåÍ:kÍà+Ívç‘Íx‘ü !åÍ£bÝu„Ýt…Ý~…·ÊeFÝn„Ýf…##^#VëÝu‚ÝtƒÝn„Ýf…~·ÍÕ�õÝn„Ýf…~þ;ÍÕ�Gñ ÒVFÝn„Ýf…^#Vë|µÍÐ�ݶ‡ÒVFÝn„Ýf…åÍ:kÝn‚ÝfƒÝu„Ýt…ÃòEç‘Íx‘ÂDÍF?-Symbol name? ÍÛz!‡ÿÝåÑ>7ÍH�ÍÝ:>ÍRH:>Ýwˆ:o&)X^#VëÝuƒÝt„åÍ3Ýu…Ýt†:>õÝnƒÝf„å!‡ÿÝåÑÍàz>7Íw�Ýn…Ýf†åÍ÷>ÍÊÝ~†·ÂûF!åÍ£bÝu…Ýt†Ã GÝn…Ýf†##^#VëÝu…Ýt†:o&)åÝn…Ýf†ëás#r:õÍk+ÃwH:o&¼~Ýw¿þ ÂEGÝ6¿LÝ~¿Ýwˆ:o&)Š^#VëÝuƒÝt„åÍTcÝu…Ýt†Ý~¿õÝnƒÝf„å!‡ÿÝåÑÍàz>7Íw�Ýn…Ýf†åÍ÷>ÍÊ:Ýw‚íKBÝnƒÝf„·íB>?õíK@ÝnƒÝf„·íB>Gñ ÒÆG:Ýw‚Ý~‚õÍk+ÃwH>õÍÍîGDestroy fake symbols?ÍÛz>7Íw�Ír ÍñÒ4H>õÍÍHDestroy ALL symbols?ÍÛz>7Íw�Ír ÍñõÍàEÍÔmÍà+ÍvÃwHÍÃ8Íà+ÍvÃwHÃwHÍû ÃwH Í-’ IH?˜FA=HB˜FI.GL˜FR˜FT˜FW˜FYÐGLH> õÍJVç‘Íx‘ú :Ýw‚:o&)X^#VëÝu„Ýt…åÍ3Ýu†Ýt‡Íž ÍU :!¾ÒI:<Ýwƒo&)Xå:o&)XÑí í Ýnƒ&)Õå:o&)ÕÑí í Ýnƒ&)å:o&)Ñí í Ý~ƒõ͹): õ>õÍ¥ >;õÍŒ>;õÝn„Ýf…åÝn†Ýf‡åÍÃ=ÍÝ~‚õÍk+ÍÊç‘Íx‘:=2Æ2>õÍùç‘Íx‘õ:>2ôÍv*BåÍdÝu†Ýt‡|·Â’I!åÍ£bÝu†Ýt‡Ý6ŒÝ~ŒÝw‹Ý~‡·ÊsKÝn†Ýf‡Ýu‚Ýtƒ^#VëÝu„Ýt…:·ÂÝIÝn„Ýf…"@:o&)Xå*@ëás#rÝn‚Ýfƒ~·ÂdJ:>þBÍÐ�õ:>þTÍÐ�Gñ°ÒaJ:·Â"J:o&)ÕåÝn†Ýf‡ëás#rÝn†Ýf‡åÍéfÍÍÝn„Ýf…åÍrÝn‚Ýfƒ~þOÂaJÍÝn‚Ýfƒ^#VëåÍrÃãJ:>þPÍÐ�õ:>þTÍÐ�Gñ°ÒãJ:·ÂšJ:o&)åÝn†Ýf‡ëás#r>õÍòÝn‚Ýfƒ~õÍŒÝn„Ýf…åÍrÍ!åÝn‚Ýfƒ^#VëåÍÎ^:·ÊãJÝn†Ýf‡åͤ`Ýn†Ýf‡##^#VëÝu†Ýt‡Ý~‹!¾ÒK:Ýw‹:ݾŒÊpKÍU :!¾Â^KÝ~ŒOÝn‹&·íB}ÝwŠ:ÝwˆÝ~‹ÆÝwŒõöÿ:o& DMño&ë`i·íRìÈ�ò[KÃsKÃeK:<ÝwˆÝ~ˆõÝ~ŒõÍ¥ ÜIÍU Ý~Œ·ÍÐ�õ:!¾>Gñ Ò¥K:!¾ÂœKèKͰ ÍU ÃvKÍÙ0Ívç‘Íx‘:þ ÚÑKûÿ:o& }2Æ2ÃÞK:22=2>õÍùç‘Íx‘ÍÝ:>ͱLÍKIÍ 6ÃßL:22=2>õÍùÍ 6ÃßLÍ®KÍ 6ÃßL:ÆG:¸Ò3LÍKIÃaL:=G:¸ÚMLþÿ:o& }2:2:Æ2>õÍùÍ 6ÃßL:Rî2RÍ 6ÃßL:Qî2QÍ 6ÃßL:Pî2PÍ 6ÃßLÍeIÃßL!ô6Í 6ÃßLÍÅÃßLÃßLÍû ÃßL Í-’ ¨LB‘LCþKFgLI—LO LP‘LRõKSƒLT‘LUuLVLZ¢L«Lç‘Íx‘ÿ: ÍûLÝ6‚ÃMÝ6‚ÃMÍá‘íLôLW’:o&)X^#VëDM&låÅÝ~‚O`hͽŒ`i"BÍà+ÍS0ÍÊç‘Íx‘ÿ:Ýw‚Ý~‚!¾>õÝn‚&)XíKB^#Vë·íBÍÐ�Gñ ÒxMÝ~‚<Ýw‚ÃDMÝn‚&)XíKB^#Vë·íBŸM͈=DM*B "BðMÝn‚&)X^#Vë"BÍà+ÍS0ÍÊç‘Íx‘þ*@Ýu‚ÝtƒíKB·íBÂæM͈=DMÝn‚Ýfƒ Ýu‚ÝtƒÝn‚Ýfƒ"B:ô·ÊN:ô2>ÍeIÃNÍ 6ç‘Íx‘: þÂWN:o&)X^#Vë"Bå:o&)X^#VëDM&låÅ*BDM&lͽŒÍêŒÍ½Œ`i"BÃ¥NíKB!·íBÚmN!"BÃ¥NíKE*GåÅ*BDM&lÍ7�òŠNÍ´:Ã¥N:O:o&·íB#DM*B·íB"BÍ 6ç‘Íx‘ :o&)XåÐÿÝn‡& åÍC‘‚Í܌͂ŠãÅ^#VëDM&lÍ®Œ`i"BÍà+: þÂôNÍô+Ã÷NÍS0Ívç‘Íx‘þ:G>ÍŽÝp‚ÚEOÝwƒo&¼6 Ýnƒ&)Õ6€#6Ýnƒ&)6€#6Ý~ƒ<Ý5‚ÂOç‘ *** DazzleStar *** (July 85)COPYRIGHT (C) 1985 Washington Electronics & Systems Ltd, all rights reservedÍx‘ÅA!HOÍ´z"!…ÿÝåÑ>7ÍH�Ý6ƒ:G>ÍŽÝp‚Ú1PÝw„õÍŒ Ý~ƒõÍò!…ÿÝåÑÍàz>7Íw�Ír ÍU Ý~ƒ<ÝwƒþÚ'PÝ6ƒ!jOÍ´z7!…ÿÝåÑ>7ÍH�Ý~„<Ý5‚ÂáOç‘!:PÃÉ’:2·ÂDPÃóSÍò :2Í®K!Q6!P6ÍýN!?6 !>6 Ͱ Í=ͶO!"B"@Í“:m·Â�P> õͬÃóSàPÍ“sÍáfÍYÍ 6!U6:UîÒóS!N6:2 :2!?6 :óÒÎPÍH!ó6:Ò9Q!6>õÍÍQ*** Interrupted *** Press ESCAPEÍÛz!>7Íw�Ír ÍU !?åÍ‘:?·ÂQ!?åÍ :?þÂ!Q>õÍÍ 6ÍYͰ/!?åÍ‘:?·ÂWQÍÔm!?åÍ !>6:?õÍ…2?õÍ¿z 8ŒÅÍFyÂ…QÍH!ó6:?Í‚SÍÝ:>þ0>?õ>9!>¾>?Gñ Ò»Q:>õÿÿ!ÿÿåÅÍ«NþQÍû ÃðS:?õ!åÅÍ«NÃðS: þÂáQÍhFÃäQÍû ÃðS:!¾ÒR:=õ:õÍ¥ ÃRÍâLÃðS:õ:=õ:<Í,ŽõÍ¥ ÃðS:õ:<õ:<Í,ŽõÍ¥ ÃðS:!¾ÒMR:<õ:õÍ¥ ÃPRÍ9MÃðSÍ9MÃðSÍâLÃðSÃðSÍ4E:?þAÂ�RÍwRAddressÍÛz>7Íw�!åÍÑ"BßR:o&)Š^#Vë"BÍ 6:?þA°R> õÍJVÃðSͼMÃðSÍNÃðS: þÂÍRÍ+4ÃÐRÍû ÃðSÍÔ7ÃðSÍÝ:>õͬÍÙ0> õÍJVÍ 6ÃðSÍRDÃðSÍâ:ÍvÃðSÍçKÃðS:!¾ÒSÍ®K:!¾Ò$SÍû ÃmS:o&)Xå:o&)ŠÑí í :o&)Õ6€#6:o&)6€#6:õÍk+ÍÙ0ÍÊÃðSÍ€HÃðSÍjEÃðSÍû ÃðS3-Íá‘‹Q|S|SÁQÁQÁQÁQÁQÁQÁQÁQÁQÁQ|SpS|S|S|S|S|SbR¿R³RRçQbR|S|S|SÙRÓRøR_R|SSÓQòR¹RR|S|SSYR4RvSSR|S|S|SçQ4R|SàP:õÍŒ ×DZMENU.OVRÍx‘é!6 :Mþ0!6:Mþ>?õ:Mþ>?õÝ~šþ ÍÕ�Gñ Gñ°ÒòX>õÍŒ :TݾšÊEW!T6!@VÍ´z Í~0X!ÿSå!?å!@VÍ´z Íi~!ÿSå!?åÍŠ}Í<{*ÿSåÍ�{ÍÈ€T?í°ÍÁÍ‹{*ÿSåÍu€õ:TݾšÍÐ�Gñ°0Î*ÿSåÍ»}FÝ~š2T>Ý6…Ýw—Ýn—&RͰ�T#å?Å!@VÍ´z Íç�Í\�á>PÍH�Ý~—<Ý5… W!M6ÍKWON ÍÛz!�ÿÝåÑ>ÍH�ÍaWOFFÍÛz!‹ÿÝåÑ>ÍH�:TG>ÍŽÝp…ÚÒXÝw—Ýn—&RͰ�TÝuƒÝt„Ýn—& #}õÍŒ Ý6”Ý6–ÝnƒÝf„#~GÝ~–õxÁ¸ÚÅXÝ~”ÒýWÝ~Š<ÝwŠÝn“&))ÝåÑ‹ÿåÝ~ŠoŸgÑ~õÍŒÝ~ŠþÂúWÝ6”ûXÝnƒÝf„#åÝn–&Ñ~Ýw•þ%¦XÝ6ŠÝ6“>Ý6‚Ýw‡o&ÝåчÿåÝnƒÝf„#åÝ~–݆‡o&Ñ~áwÝ~‡<Ý5‚Â#XÝ~ˆþo£XÝ~‰Í{X:RÝw“ËX:QÝw“ËX:PÝw“ËXÍ-’f`XsrXuiXW’Ýn“&))ÝåÑ‹ÿ#~Ýw•Ý6”ôXÝ~•õ: õÍrxÝw•Ý~•õÍŒÝ~–<Ýw–ïWÍU Ý~—<Ý5…€W:þÂòXͰ :o& }õ>-õÍÈÍU :2<2: õÍù: !¾ÚYÍÊÃYÍv!T6ç‘Íx‘:Tþ ÍÕ�õ>!T¾>Gñ°ÒBY> õÍJVç‘óy8888À80008;_ggss‡ŠŠ�𣫶ÁÉÉÑØìÿNOÐvÿ[HALÔ€Àaò@ÀLD q,òÀÇRET åÆj ñÆÇaîÉÿ[REÔ çJR c,øÿDJNZ øÿ[JR øÇLD q,îÃÿ[JP ìÍÿCALL ì"ïLD (l),è*ïLD h,(l©ÂÇJP e,ìÄÇCALL e,ìÏLD s,ìçfÁ'ÿDAÁ/ÿCPÌ7ÿSCÆ?ÿCCÆãÿEX (SP),HÌéÿ[JP (HL©ëÿEX DE,HÌóÿDÉùÿLD SP,HÌûÿEÉÙÿEXØïLD (t),Á ïLD A,(t©ÁËz õÇi ó ÏADD HL,óÇÇRST ÷ÓÿOUT (p),ÁÛÿIN A,(p©Ëÿ*°Ýÿ*±ýÿ*²íÿ*³ÿEX AF,AF§ADD A¬ADC A¬SUB SBC A¬AND XOR OR CP °±²³´µ¶·NÚÚNÃÃPÏPÅÐÍRLÃRRÃRÌRÒSLÁSRÁ¿SRÌHÌÁINÃDEÿBIÔREÓSEÔLÄCÐIÎOUÔLÄCÐIÎOÔÂÃÄÅÈÌ(HL©ÁÂÃÄÅÈÌ(HL©ÁBÃDÅHÌSÐBÃDÅHÌAÆBÃDÅùSа¸10È18È20È28È30È38ÈPOÐPUSÈÀg òk b,ò#÷i ùáûz ùãÿEX (SP),ùéÿ[JP (y©ùÿLD SP,ù ÏADD y,ö†Çaä4þj ävÿ¿FÇLD q,äpøLD d,ò6ÿLD d,î!ÿLD y,ì"ÿLD (l),ù*ÿLD y,(l©Ëÿ*´DÿNEÇEÿ[RETÎGÿLD I,ÁWÿLD A,ÉMÿ[RETÉOÿLD R,Á_ÿLD A,ÒgÿRRÄoÿRLÄ ümɨümİüoIÒ¸üoDÒFÿIM °VÿIM ±^ÿIM ²@ÇIN q,(C©AÇOUT (C),ñBÏSBC HL,óJÏADC HL,óCÏLD (l),óKÏLD s,(l©Çg äk b,äÍx‘ùÝn‹ÝfŒåÝnŠ&ÅåÍ¿xÍ¿z€Í zÍ�xÍe:E0$:RÝw„:· Ý6„:þ8 :þ Ý6„ Ý6„!M6*Ý~ŠÍË]Ý~‹õÍŽ õÝ~ŠõÍ¿z @ÍFyÍÕ�Gñ õ:þMÍÐ�Gñ 0">'õÍŒÝ~‹õÍŒ͈]' ; ÍÛz>7Íw�Ír  Ý~„0Ý~ŠõÍŒÝ~„0Ý~‹õÍT/Ý~„0Ý~ŠõÍŒÝn‹ÝfŒåÍrÍ-’DB]NB]PB]XB]YB]²]:E!Q¦õ:·ÍÕ�Gñ 0Ý~„0Í*Fåͤ`:Eî!O¦0)!6Ýn‹ÝfŒåÝ~Šõ!Íàz>BÍw�Ýn‹ÝfŒåÍ–dåÍ{fç‘Íx‘ Í>;õÍŒ>$õÍŒ>ݾƒ0>-õÍŒÝ~ƒO!þ·íB}õÍT>+õÍŒÝ~ƒÆõÍTÍç‘Íx‘úÝnˆÝf‰|µ ÝnŠÝf‹6Ãe_ÝnŠÝf‹åÍ„xÝu„Ýt…ÝnˆÝf‰ÕåÍ÷zåÅ!ÍØ‘Í3ŒYPáÁ8KÝs‚ÝrƒÝu†Ýt‡ÝN†ÝF‡Ýn„Ýf… ÕåÝN†ÝF‡ÝnˆÝf‰ ÕåÍ÷zåÅÍîzÝn†Ýf‡#Ý^‚ÝVƒz³Â_ç‘Íx‘ùÝn‹ÝfŒ~· Ýn‰ÝfŠ6#6Ãl`Ýn‹ÝfŒ~<ÝwˆÝ~ˆO*’^·íB0!Ž^å!åÍg”!Ž^�^í°!"’^Ýn‰ÝfŠå*�^ëás#rÝn‹ÝfŒåÍ„xÝu„Ýt…Ý~ˆ=O`håÅ!ÍØ‘Í3ŒYPáÁ8OÝs‚ÝrƒÝu†Ýt‡Ýn‰ÝfŠÝN†ÝF‡^#Vë ÕåÝN†ÝF‡Ýn„Ýf… ÕåÍ÷zåÅÍîzÝn†Ýf‡#Ý^‚ÝVƒz³Âö_Ý~ˆO*�^ "�^*’^DM&låÅÝ~ˆO`hͽŒ`i"’^ç‘Íx‘ÿÝ6‚:”^GÝ~‚õxÁ¸8Ýn‚&”^~õÍŒÝ~‚<Ýw‚Ü!”^6ç‘Íx‘¶R!…ÿÝåÑåÝnÌÝfÍ^#VëåÍÎ^!”^6ÝnÌÝfÍ~Ýw‚Ý~…·Ê‰aÝ6ÊÝ6ËÝ~…GÝ~ËõxÁ¸Ú†aÝ~Ê06ÝnË&ÝåÑ…ÿ~ÝwÉ!”^ÍàzÝnË&ÝåÑ…ÿ~GÅÍç�!”^>7ÍH�MÝnË&ÝåÑ…ÿ~þ ÍÐ�!P¦0!Ý6Ê! ÝuÈÝtÉÍ\a ; ÍÛz!”^>7ÍH�ÝnË&ÝåÑ…ÿ~õÍŒÝ~Ë<ÝwËÃå`Ã[bÝ~‚þ;Ê[bÝ~‚õÍŒÝnÌÝfÍ^#VëÝuƒÝt„Ý~‚õÍ¿z @ÍFyÍÕ�õÝnƒÝf„·íB>Gñ õÝ~‚õÍ¿z ÍFyÍÕ�õ€ÿÝnƒÝf„·íB>?õ€ÝnƒÝf„·íB>Gñ°Gñ Gñ°05€ÿÝnƒÝf„·íB8ÝnƒÝf„DM&låÅÿ!ͽŒ`iÝuƒÝt„Ý~ƒõÍT ÝnƒÝf„åÍrç‘Íx‘ÿ Ý~ˆ·ÍÕ�õÝn‡ÝfˆN#FÝn…Ýf†·íB>Gñ õÝn‡ÝfˆÝNƒÝF„^#Vë·íB>Gñ Ýw‚ç‘Íx‘ü *Š^Ýu‚ÝtƒÝ~ƒ·ÍÕ�õÝn‚ÝfƒÝN†ÝF‡^#Vë·íB>Gñ 0Ýn‚Ýfƒ##^#VëÝu‚ÝtƒÈÝn‚ÝfƒÝu„Ýt…ç‘Íx‘ü Ýn†Ýf‡åÍ£bÝu‚ÝtƒÝ~ƒ·ÍÕ�õÝn‚ÝfƒÝN†ÝF‡^#Vë·íBÍÐ�Gñ 0Ýn‚Ýfƒ##^#VëÝu‚ÝtƒÈÝn‚ÝfƒÝu„Ýt…ç‘Íx‘ü *Š^Ýu‚ÝtƒÝN†ÝF‡^#Vë·íB8 !€Ýu‚ÝtƒÝ~ƒ·("*Œ^å*Š^^#VëåÝn†Ýf‡åÍ^b0 *Œ^Ýu‚ÝtƒÝ~ƒ·ÍÕ�õÝn‚Ýfƒ~·ÍÕ�Gñ õÝn‚Ýfƒ##^#VëÝN†ÝF‡^#Vë·íB>Gñ 0Ýn‚Ýfƒ##^#VëÝu‚Ýtƒ¯Ýn‚ÝfƒÝu„Ýt…ç‘Íx‘ü :‹^·ÍÐ�õ*Š^ÝN†ÝF‡^#Vë·íBÍÐ�Gñ°0 *Š^Ýu„Ýt…ZÝn†Ýf‡åÍTcÝu‚Ýtƒ~·ÍÕ�õÝn‚Ýfƒ##^#VëÝN†ÝF‡^#Vë·íBÍÐ�Gñ 0Ýn‚Ýfƒ##^#VëÝu‚ÝtƒÝn‚ÝfƒÝu„Ýt…Ýn„Ýf…ç‘Íx‘ú*Š^Ýu„Ýt…ÝNˆÝF‰^#Vëë`i·íR0 !€Ýu„Ýt…Ý~…·(@Ýn„Ýf…##^#VëÝu‚Ýtƒ|· (Ýn‚ÝfƒÝNˆÝF‰^#Vëë`i·íR0Ýn‚ÝfƒÝu„Ýt…ºÝn„Ýf…Ýu†Ýt‡Ã§‘Íx‘ùÍe??ÍÛz!>BÍH�*Š^Ýu„Ýt…:�^·(*Œ^ÝN™ÝFš^#Vë·íB0 *Œ^Ýu„Ýt…!E6Ý~…·ÍÕ�ÝwˆÝ~ˆÒfÝn„Ýf…Ýu‚ÝtƒÝN™ÝFš^#Vë·íBÍÐ�õÝn‚Ýfƒ~·ÍÕ�Gñ 0DÝn‚Ýfƒ~õ!‰ÿÝåÑÍ´zÍFy((!E6Ýn„Ýf…"F!åÝn‚Ýfƒ^#VëåÍÎ^Ý6ˆÝn‚ÝfƒÝN™ÝFš^#Vëë`i·íR0Ý6ˆÝn„Ýf…##^#VëÝu„Ýt…|· Ý6ˆÃceç‘Íx‘ Ý~…· Ýn‚Ýfƒ##å*Š^ëás#rÝn‚Ýfƒ"Š^*Ýn‚Ýfƒ##åÝn„Ýf…##Ñí í Ýn„Ýf…##åÝn‚Ýfƒëás#r!H6:H2Í^ç‘Íx‘üS!„ÿÝåÑå!åÍg”Ýn„Ýf…Ýu‚ÝtƒåÝnÍÝfÎëás#rÝn‚ÝfƒåÝ~Ìáw!ˆÿÝåÑåÝn‚ÝfƒåÍh_Ýn†Ýf‡åÝn„Ýf…åÍfç‘Íx‘ç‘Íx‘ÿ ÝnƒÝf„~õÍŒÝnƒÝf„~þO ÍÍÝnƒÝf„~õÍŒÝnƒÝf„~õÍŒç‘Íx‘ Ý~…þ ( Ýn‚ÝfƒåÝ~…áwç‘Íx‘Ýn‚Ýfƒ~þO(9Ýn‚Ýfƒ~õ!åÍ5gÝn‚Ýfƒ~õ!åÍ5gÝn‚Ýfƒ~õ!ÿåÍ5gç‘Íx‘û !6I!6M!ÿ6H!þ6 !ý6 !ü6 *Š^Ýu…Ýt†:�^·(0*Œ^ÝN‡ÝFˆ^#Vëë`i·íR8*Œ^Ýu…Ýt†:‡^2:ˆ^2:‰^2ÿÝ~†·ÍÕ�Ýw„Ý~„ÒiÝn…Ýf†Ýu‚ÝtƒÝN‡ÝFˆ^#Vë·íB8Ý6„Ýn‚Ýfƒ~·ÍÐ�õÝn‚Ýfƒ~þOÍÕ�Gñ ÒähÝn‚ÝfƒÝN‡ÝFˆ^#Vë·íB 3Ýn‚Ýfƒ~2þÝn‚Ýfƒ~2ýÝn‚Ýfƒ~2üÝn…Ýf†"FÝn‚ÝfƒÝN‡ÝFˆ^#Vëë`i·íR8 Ýn…Ýf†åÍPgÝ~„0Ýn…Ýf†"Œ^:2‡^:2ˆ^:ÿ2‰^Ý~„0Ýn…Ýf†##^#VëÝu…Ýt†|· Ý6„à hç‘Íx‘ÿ Ý~†·ÍÕ�õÝn…Ýf†ÝNƒÝF„^#Vë·íBÍÐ�Gñ õÝn…Ýf†~·ÍÐ�Gñ õÝn…Ýf†~þOÍÕ�Gñ Ýw‚ç‘Íx‘ôÝnŽÝf�ÝuˆÝt‰|· *Š^ÝuŠÝt‹4ÝnˆÝf‰åÝn’Ýf“åÍ i0ÝnˆÝf‰ÝuŠÝt‹ÝnˆÝf‰##^#VëÝuŠÝt‹ÝnŠÝf‹åÝn’Ýf“åÍ i0ÝnŠÝf‹Ýu„Ýt…h!„ÿÝåÑå!åÍg”Ýn„Ýf…Ýu‚Ýtƒ6Ýn‚ÝfƒåÝn’Ýf“ëás#rÝn‚Ýfƒ6 Ýn‚Ýfƒ6 Ýn‚Ýfƒ6 ÝnˆÝf‰åÝn„Ýf…åÍfÝn„Ýf…ÝuŒÝt�Ýn„Ýf…Ýu‚ÝtƒÝ~‘õÍ¿z `ÍFy(Ýn‚ÝfƒåÝ~‘áw9Ý~‘õÍ¿z ÍFy(Ýn‚ÝfƒåÝ~‘áwÝn‚ÝfƒåÝ~‘áw!€"Œ^!H6ÝnŒÝf�ç‘Íx‘þ*Š^Ýu‚ÝtƒÍÌÝ~ƒ·(WÝn‚Ýfƒ~·ÍÐ�õÝn‚Ýfƒ~þOÍÐ�Gñ 0Ýn‚Ýfƒ^#VëåÝn‚Ýfƒ^#VëåÍVÝn‚Ýfƒ##^#VëÝu‚Ýtƒ£Ã§‘Íx‘öÝnŒÝf�~·ÍÐ�ÝwƒõÝnŒÝf�~þOÍÐ�Gñ Ýw‚*Š^ÝuŠÝt‹!€ÝuˆÝt‰Ý~‹·ÍÕ�Ýw‡Ý~‡0CÝNŠÝF‹ÝnŒÝf�·íB Ý6‡Ý~‡0&ÝnŠÝf‹ÝuˆÝt‰ÝnŠÝf‹##^#VëÝuŠÝt‹|· Ý6‡·Ý~‹·(VÝ~‰· ÝnŠÝf‹##^#Vë"Š^ÝnˆÝf‰##åÝnŠÝf‹##Ñí í !ŠÿÝåÑå!åÍ*•!Ì^6:Ì^2Í^!€"Œ^Ý~‚0ÍÉjç‘Íx‘ú:õÍŒ *Š^Ýu†Ýt‡Ý~‡·ÍÕ�õ:!¾>?Gñ ÒmÝn†Ýf‡Ýu‚Ýtƒ~·ÂmÝnˆÝf‰Ýu„Ýt…Ýn‚Ýfƒ~·(Ýn‚Ýfƒ##^#Vë^#VëÝu„Ýt…ÝNˆÝF‰Ýn„Ýf…·íB8P>/õÍŒÍÝn‚Ýfƒ^#VëåÍrÍÝn†Ýf‡åÍéfÍöÿ:o& DM:o&ë`i·íRìÈ�òmÍU :<õÍŒ Ýn†Ýf‡##^#VëÝu†Ýt‡ÃAl:!¾8ÍU ç‘Íx‘ôÝnŽÝf�ÝuˆÝt‰|· *Š^ÝuŠÝt‹ÝnˆÝf‰##^#VëÝuŠÝt‹!„ÿÝåÑå!åÍg”Ýn„Ýf…Ýu‚Ýtƒ6Ýn‚ÝfƒåÝn’Ýf“ëás#rÝn‚Ýfƒ6OÝn‚ÝfƒåÝn�Ýf‘ëás#rÝnˆÝf‰åÝn„Ýf…åÍfÍÉj!Í^6Ýn„Ýf…ÝuŒÝt�ç‘Íx‘ö:Í^î0p*Š^ÝuŠÝt‹!€ÝuˆÝt‰!Ýu‚ÝtƒÝ~‹·(D͘0GÝnŠÝf‹^#VëÝu„Ýt…ÝnŠÝf‹ÝuˆÝt‰Ýn„Ýf…Ýu‚ÝtƒÝnŠÝf‹##^#VëÝuŠÝt‹¶!Ì^6:Ì^2Í^ç‘Íx‘û !ÝuƒÝt„*åÍ‹€0ÃûnÍ<{*åÍ�{ÍÈ€~Íé�ýwÉÍÁÍ‹{Íé�ý~Éþ Ë'*åÍ‹€0VÍ<{*åÍ�{ÍÈ€~Íé�ýwÉÍÁÍ‹{Íé�ý~Éõ!‚ÿÝåÑåÍ¿0%ÝnƒÝf„å!ÍŒåÅÝ~‚OŸGgoÍ®Œ`iÝuƒÝt„žÝnƒÝf„Ýu…Ýt†Ã§‘Íx‘�y!mÍàzÍo.DZÍÛzÍç�!ÊÿÝåÑ>(ÍH�Ý6„!ÊÿÝåÑÍàzÍ~Ò2q!å!å!ÊÿÝåÑÍàzÍi~!å!åÍŠ}*åÍu€îÒ)q͘0Ã)qÍ<{*åÍ�{ÍÈ€~Ýw…ÍÁÍ‹{ÝåýáÍTnÝuóÝtôåÍ–dÝu‚ÝtƒÝ~…ÍÝpÃíp±Ãíp*åÍu€îõ*åÍ‹€îGñ ÒOpÍ<{*åÍ�{ÍÈ€~ÝwÉÍÁÍ‹{Ý~Éþ/ ÃcoÝ~ÉþA>?õ>ZݾÉ>?Gñ 0CÝ~ÉþO !ÝnóÝfôåÝåýáÍTnåÝn‚ÝfƒåÍ%mÝu‚ÝtƒÝnóÝfôåÝ~ÉõÝn‚ÝfƒåÍ]iÝu‚ÝtƒÃµoÃípÝ6†*åÍ‹€î0UÍ<{*åÍ�{ÍÈ€~ÝwÉÍÁÍ‹{Ý~†·ÍÕ�õÝ~Éþ ÍÕ�Gñ°õÝ~†þB>Gñ 0Ý~ÉGÅ!†ÿÝåÑå>BõÝ~†<õÍE�ŸÝnóÝfôåÝ~…õ!†ÿÝåÑÍàz>BÍw�Ýn‚ÝfƒåÍ{fÍ-’-µo/°o{­oRpÝ~„· ÝnóÝfô"@ÍçÍÝ6„Ý~„=Ýw„*åÍu€î0 ÍH{*åÍ�{Í‹{Ãco*åÍ»}!ÊÿÝåÑÍàz>7Íw�Ír >?õÍŒÍU !€"Œ^ç‘Íx‘u‘:Ýw !6!mÍàzÍrq.DZÍÛzÍç�!ÉÿÝåÑ>ÍH�!mÍàzÍ’q.DZBÍÛzÍç�!óÿÝåÑ>ÍH�!mÍàzͲq.$$$ÍÛzÍç�!ÞÿÝåÑ>ÍH�!óÿÝåÑÍàzÍ~0!å!å!óÿÝåÑÍàzÍi~*å;}!å!å!ÞÿÝåÑÍàzÍi~!å!åÍŽ}*Š^Ýu Ýt Ý~ ·ÍÕ�õ:îGñ ÒørÝn Ýf Ýu‚Ýtƒ~· G>-õÍŒÝn‚Ýfƒ^#VëåÍr>,õÍŒÝn Ýf åÍéfÝn‚Ýfƒ~þO Ýn‚Ýfƒ^#VëåÍrWÝn‚Ýfƒ~õÍŒÝn‚Ýfƒ^#VëåÍrÍ!„ÿÝåÑåÝn‚Ýfƒ^#VëåÍÎ^ÍB{*åÍ�{!„ÿÝåÑÍàz>õÍ—|Í‹{Ͱ Ýn Ýf ##^#VëÝu Ýt Ãr:îÒƒs!ÉÿÝåÑÍàzÍ~0]!H6*åÍ»}!å!å!ÉÿÝåÑÍàzÍi~!å!å!óÿÝåÑÍàzÍô|*åÍ»}!å!å!ÞÿÝåÑÍàzÍi~!å!åÍŠ}!å!å!ÉÿÝåÑÍàzÍô|*åÍ»}Ý~ 2ç‘Íx‘!€"Š^!H6!€"Œ^ç‘Íx‘Ý~ƒ2¿s*®s#åÍÎ2¾sþ€8ÿ:¾so& }2¾sç‘Íx‘>IõÍŒ:¿sõÍŒç‘Íx‘þ !"ÀsÝn„Ýf…¯Y~æÍ wÝn„Ýf…#¯Y~æ2½s:½s o&)åX^#Vë"Às:½sÍqt>XõÍÓs$>YõÍÓs>!õÍŒ0Íá‘gtWt_tgtgtitÃw>?õÍŒ*¬s"®sÃwÝn„Ýf…¯Y~2¼sæ2½sþ[ÚÀv:½so&ôX~2·s·ÂBv:½sÍ#v!N6Ã?v>(õÍŒÍþs>+õÍŒ:¾so&å:¿sõÍÚ\:¿s2I:¾so&"J>)õÍŒ*®s#"®sÃ?v!ÂsÍ´zÍ¿z|ÍÙyÅÍÇy(9>(õ!ÂsÍ´zÍFy(#:°sÍSu!I6B!I6W Í-’2Eu:EuLu!I6T!I6L*®såÍg"Jå:IõÍÚ\*®s "®sÃ?vàÿ:½so& }2I*®såÍÎo&"Jå:IõÍÚ\*®s#"®sÃ?v*®såÍÎÝw‚íK®so& #"ºs>ݾ‚0*ºsDM&låÅ!ͽŒ`i"ºs!I6R*ºs"Jå:IõÍÚ\*®såÝ~‚õÍ>^*®s#"®s)Íþs$>\õÍŒÍ-’[ÅtdÍtl un�up�uxºuyvvþv:°sõ:·sõÍxx2±s:·sæ· :·sË?2·s:±sË?2±sæ:½so&)¹X^#Vë"¸s:±s·(%:±s=2±s*¸s¯Y~þ€0 *¸s#"¸së*¸s#"¸sÕ:¼sÝwƒ*¸såÍé�ÍtÝ~ƒ2¼s:½sõÍŒ:½sþ :ÒsÆG:¸0ÍïÝn„Ýf…#Ýu„Ýt…:¼sþ€>?õíK¬s*®s·íBÍÐ�Gñ°Ò•t Í-’*.t?†t•tç‘Íx‘ÿ ÝnƒÝf„"®s"¬s!"³s*®såÍÎ2°s*®s#"®síKMY*³s·íB *®såÍÎ2°s*³s"µs!±s6*³s#"³s*³s#"³s*³s¯Y~2¼sþ€8ê*µs#¯Y~õ:°sõÍxxõ*µs¯Yñ¾Â.x*µs#"³s!±s6!ÂsåÅÍVÍo–ÉÍŽz#~#_—W ÍŽz#^#ÍŽz^#V# ÍŽz^#V#~#¶# å{ͪzË:Ëú&i+·íR8 !9¦áá¯ýáùýéx‘õ8A/¦ %®(#ññÈ8 G· ùÉíDG~· #ùÉÉÑÿÉÍšzÍšzëxAOÍŒyáýáùy·ýéÍšzy¸8 ëå¦w#ùá+Ŧw# ÷ýÁ+í¸ë#ÑýáùýéÍšzx¹8ÕëA¶w#ùá+Ŷw# ø# üÁ+í¸ë#ÑýáùýéÍ_zýáÕ^#V#ãx‘0H¯í°·(ëG6#ûáùýéýáÍŽzãF#ãx¹0 y�G¯+¶üýã·( ýå>VÍo–ýáÍŽzýFÿýãýé!9N#T] ÉýáÍŽzÕF#ë&hãýéæ*>ÑíS–Õåõ:,{·(þ(F !/{ ë!ýÿí¸<2,{ñá"-{2/{ÉÍ�Ý"-{ÝáÉ:/{þÌ߀:/{þÌý€!,{5È!0{-{ í°É>F¸{Ío–Read/write nesting too deepá"–åÝåázÿN#FÝåÝ* –ÝnÝfå·írá8íB0 Í5|" –|µ áÝáÉÝnÝf|µ(óåÝãÑÝnÝfå·írá8åíB0áÕÍ5|ÝáÝuÝtÓůÍ;—ÝËn ÝnÝf|µ("Ó{!Ó{åÝf.Ë<ËåÍ*•ÝnÝfåÝnÝfå!HåÍ*•áÁÉáñ·(ÁÅ>õå>WÍo–èáÁÅ>áñÁÅ· yGÍÜ|å!9~·( #~ÍÍ| ø #ÑùëéáñãNG~·ÈÍÜ|#~ÍÍ|ùÉåÅý*-{ýwÍO€ÁáÉy¸Ð> ÍÍ|õáÁÑåÍ�Í�ƒÝáÉá"–>Í6…Íi“åÝã>Í;—ÝËæÝåá$:\·(¾(W~· MÕåÍ–áÑ<º @~2\å\Í–!\l ~ãNw#ãq#ôÑ\Í–<(Ýá*–é:¿’þ(ó>D>Fz}Ío–Error in RENAME>> 2‰}á"–Íi“åÝãÜÛ…>Í;—:‰}ÝwÝn Ýf ͺ}Ýá*–é¯>á"–ãåÝãõ|·( ¾ #}¾ ¯Í;—ñ·( Ýåá$ëÍ–ÝáÉñÝá>F ý}Ío–ÉCLOSE/ERASE error¯>2~á"–>Í6…þ> >:~·(6\Í–< +:¿’þ >8$ ÿÍ–·(!bËþ\Í–<( \Í–>*–éá"–>Í6…2h~Íi“åÝã¯Í;—ÝË®:h~þ(ÍÛ…Ýåá$ë!\ í°ÝËæÝá*–éÝËž:]! ¾(ú>NÈ~Ío–Bad device name:^#¾ Þ:_#¾ ×#ëÝåá ëí°ë{s#rÝËF Ý~Öݶ IÝåáÝuÝtÝá*–éCON”M”lKBD’T{LSTT­{NULT{{PUNT¦{RDR�T{>D` Ío–Device errorÝËFÀ!|ÝuÝtÉÉÍ–ÝwþÊþ À  ÿÍ–ÝwÉÍ–ÝwÉÝ^Ý^Í–ÉÝåá^#Vëé*-{åÝãÍ�ÍèÍ7�ÝËæÝáÉÝ~æ ÊU�ÝËfÈ Ý~ËWÊQ�ËgÈÝËv MÝnÝfÍÀÝ˦ÝËFÈÝ~þ(*þ ( ÝËŽþ ÀÝwÝËN( Ý~þ (ÄÝ6 Ý6 ÝËÎÉÝËöÝËN(íÝ˶ÝËÆÉ*-{åÝãÍ�Í\�ÝnÝf ÍÀÝËŽÝáÉ*åÝãÍ�ÍÙÝ~æÝáÉ*åÝãÍ�ÍÙÝËFÂ@�Ý~æÝáÉ*åÝãÍ�Í\�Ý6 ͶÝ6 ͶÝËÎÝáÉ*-{åÝãÍ�ÍÙÝnÝfÝáÉ*-{åÝãÍèÍ7�ÝËN ÍóòÝËæÝáÉ*-{åÝãÍ\�Ý6 ͶÝ6 ͶÝËÎÝáÉýáá"–ãåÝã|·((¾ %#}¾ ýéÝËFÈÝá>Fo�Ío–>É}� ÝË^À�� >FÝáÃo–At end-of-fileNo reset/rewriteNo rewriteÝåã$ëáÉÝ^ÝVÕýáÉÝnÝNÝFÉÝnGÝNEÝFFÉÝuÝqÝpÉÝuÝqÝpÉyݾÀxݾÀ}ݾÉÝnÝfÝ^ÝuÝtÝ4É}ݾÀxݾÀyݾÉ݈Ý~Í¡�ý¾ØÍ«�  ,Íø�ØÝËÆÉÝ~݆ÝwÐÝ4ÀÝ4É:¿’þ Í—�#Í–͵�ÍÉ�ÉÍ—�Í–Ýf0.Ë<ËÝN3 ÝuÝtÝ6Ý40Í—�Í–<(Ý6DÍ—�Í–·(ÊÝ60Í—�Í–ÉÝnÝf)Ë=ÝuD|Ý–0ÈåÍ—�ÝË^Ä–áÝt0Í—�Í–ÉyÍ«�ÝqEÝpFÝuGÝFOÍ¡�ÕÅÍ–Í—�ÁÅÍ–ÁÑ· !€ëÝ4E Ý4F Ý4GØõ€Í–ñÉÍ¡�ÝsÝrÍ«�Íø�ÝËÆ0݈:¿’!þ0Í›‚<(ÍÆ‚·È>ÉÍ ƒÝ6·ÈÍ¡�Ý~ýw~ý6ÝËžÉ:¿’"þ0Í›‚< Í—�Í–<Êô„ÍÆ‚·Âô„Ý˞͵�Íø�ØÍÉ�ÉÝËN DÝË^Êÿ„ÕÅÍ:‚Ý6j„g„!Ì„ÝËv( q„€„!½„ÝqÝpÝsÝr Ýu Ýt ÁÑÝ6ÿÝËÎËz(Íç„ÕÅÝËv ÝN`hÍ‚Š}æð´Äç„ÍÓ�(cÍ¿�Í ƒ[ÕÅÝN!Í"Š}æð´(ÑÑÍç„ÅÅåÅÍÓ�(ÝË^ÄZƒÁáÍ¿�åÅÍ?ƒ Í¡�ÝsÝrÝ6ÝNh`Í‚ŠÍ½Œy·(Íâ�= úÍ‚Ý˦ÉÍZƒÍ(‚Í ƒÉÍâ�Ý~ݾ(3Í‚ÉÝËÞÍâ�Í¡�Ý~ý¾ú¨„ýwÍ«�Íø�8  ,ÍÉ�Ý~ݾÀÝË^ÄZƒÍ(‚Í?ƒÉÝË~ õÝË^ÄZƒñõÍ—�Í–ñØÝËfÀÍ—�Í–Éé>UÍo–`hÉÝËþ…  …>DÃo–Must be discfileDisc fullýá2$…á|þ }·(=õ3ñå!&…6ë!9Nå #ãy·(Õ#~þ (þ,( ã4~ãþ( éÑáùýåþ(=ÕOÅ!\åÍi‰!h6!$…FÉ·( þ(&Éþ É®…%? (empty string):$…=>È!%…å6?#~6 ÆGÑ>NÍo–Í‘†!† í°ëüÿ ë!½’~Æ'wõ͆ñ#~Î'w͆!¤†Ýu Ýt ÝËÞÉPTEM0000$$$Oæö0yæö0ÉÝnÝf}æÀ´(  )ÝtÉë!~—<·íRòI†=ÝwÝ6ÝËöÉ!¹‡ˆÝËF !ׇ/ˆÝËv !ˆOˆÝuÝtÝsÝr !h‡Ýu Ýt ÉÝåã$ëáɀ͖ÉÝËFÌ/†Ý~ݶ ÝåáåÝFË8ËÅÍd”Í‘†Õ! 6#ûÝË*¾ÝË^ :¿’þ(ÝË*þÝËV(Í–< ÝË^ à ‰Í–ÑÕÍ–<Ê܈áÝ6ÝË^Ä(‡Í]†Ý6¯ÉÝ6ÝnÝfÝËF ÝuÝtÝuÝtÝ~€6#û= öÉÝnÝf Ý~w+Ý~wÉõÝË^()ÝË~ #ÝËv ÝËF(Ý6͈Ý~·( ÝËvÄT‡ÍZˆÍ‘†Í–<ÁʼˆÝË*¾xØÍ‘†ÝËfÌ–ÉÝnÝf#Ý5 ÍVˆÝ6€ÝuÝt~ÝwÉÝnÝfÝN Ý5 "ÍVˆåýáÝËF ý~~æ?ݾ¦ˆý~ÝwÍVˆÝuÝtÉÝËnÄM”ÝnÝfÝ~w#ÝuÝtÝ4ð ÝnÝfÝN ÝuÝtÝ~<ÝwݾÀÍT‡ÍZˆÍ(‡É>>2Ú…Í‘†ÝnÝfåÝ~õÕ åÑÕÍ–áÑÕå:Ú…OÍ–· áÑñ€ = ÞÍ›†áÉáááÍ›†á:Ú…þ(PÝËÆÉ­ˆMWrong file typeÝË–ÝËžˈ/Cannot close fileãˆDirectory full‰ ÝËþ>DÍo–Disc fullÝË–Ñ:È’·>ÈÁÕÕ! ·(Æ@#w#6:ÍK‰#6.ÍK‰ +Ñå!]‰ í°áÑ·íRE¯H#æwø> ¾À+ úÉNot found: áýáÁãëýåá6 #6 ûy·Èþ  ÷—É ýåá# ÊŠþ (zþ:(Lþ.(1þ*(yþ,(uþ;8þ@8mþ`8æ_þ[(cþ](_w#ÌýËv Jý~ þ (CLýËv FýËöýåáÅ Á¦ýË~ /xþ(þ &>Éý~Ö@8þ0Ëÿýwý6 ɉý~æýw>É>É—Ë|(ÍøŒ>€ýáÑãýãÅBKË|(ÆÀÍøŒÑÝåõÅýãÁx±² ³ÊrŠþ ýåÁñË,ËËË ÍêŠñÝåáýåÁÜøŒÝáÉÑÑ>JÍo–!É—Ë|(ÍøŒ>€ýáÑãýãÅBKË|(ÆÀÍøŒÑõÅÕÅýå|µ(Áx±ÂØŠÁDMÍÓ� ÁÑx±( ÍÓ�x怴µÂÙŠ`iÁÑåÍÓ�Ññ·üøŒÉÑÑÑÑ>OÍo–!Éå|µ(> !>ýãÝáåý)Ý)ãíjãíj0Ý#ã·íRãíBò‹ããíJý#= ÚñÉÍ–�ëáÁå&@ ëáÁåz·úx‹&Ëx(Ëüx/Gy/OëáÁå&åz· ³(þ bjËËÍŒñÐ0|µÈëíRÉá>JÍo–!ÉëáÁåxªæ€ox·ò—‹/Gy/Oz·òª‹/W{/_ëáÁå.@åz· ³(þ Ë8ËÍŒÑ`iËsÀË{š�Ë|È>Oá>JÍo–!ÉëáÁåxªox·òï‹/Gy/Oz·òú‹/W{/_åÍÓ�ñðÃøŒëáÁå.ÍÓ�Ë|ÈÃ�!x· yË!ËËËíR0 îGÉýáÑñõÕýåõå`i·íRDMáÑýáÑñõÕýåõë·íBDMáíR7âaŒðø· ÀÀ,À$ÉyÖOxÞGíRÉëáýáýãëãë{¾# z¾# ëãë{¾# z¾#  #ëãë###í¡êŒÑ^#V#ëéýáã DMÑáíZê�ýéýáã·íBDMÑáíRê�ýéOŸGogÉDMËíbÉýáëáåËíbãåëýéýáëãåëýéË|Èë!·íBDM!íRàãÅå>OÍo–áÁãÉýåî ÀÀ,À$àäyÖOxÞGíRê�±µ´Éýáã·íBÑáõíRÑêN� Ë»Õñýé>@úT�·ýéýáë`iÁ·íBÁõëíBÑêN�(ÝýéåÅÑë·íRå·íBDMìš�|áÉë`i·íRT]·íBDMëÉ|öðë!·íRÉýáÑZË{(Õýéë!yKË?0Ë#Ë· ôx·ÈQË?0Ë"· öÉ!x·(·ËA(ËËËñGÉ·ËA(ËËËòEl&ÉOx‘O�GâŽíDy7ø·ÉOx‘O�GyÉ·ò&ŽíDáã@áãoáã·únŽoË|(Ëù—”g}·(%|·È}Ö Ë< —Ë$½8•$öËyÈíDÈËqÀ…É>JÍo–>Éáã@oáã·ò‹ŽËùíDoË|(yî€O—”g}·(*|·È}Ö Ë< —Ë$½8•$ö|ËqÀËy ·ð>OíDÉ>JÍo–>ÉáãoáãO·òߎíDoy¬OË|(—”g}·(|·(—·ËE(„ËõgËyÈ/g}/o#É!ÉýáñÑ_áz·( ~’8<“0 r5>TýåÍo–É(õ~“wñJ ë&Oí°ýér5ýéýáñÑá_ÁÅ·(:~<»85y†81Gz¸8,y·(9~<“(åÕÅYN ë&ëOí¸ÁÑápë!9í°ùýéýå>TÍo–ýááå&9ù3ýéýá!9N#ë&iF#x·(y�8O ¾ åÕÅ(#¾(÷ÁÑá é— ÁÑáÑÕ{�<‘<XùO`hýéýá!9~ë&o9#†ëÜC�ë·(OF¸0&ÿíDoùëx�Oí°!9N#í°wùýéë&ÿxíDo9ùëx�wåHí°ëá+Oí¸ë#ùýé/Ô�ýáë!9¾Ü”�Ní°ùýéýá!9N ^#VÕëbk++í¸áýéýá!9¾Ü”�–(T]O·íBùëNí°ýéÕõåýå>TÍo–ýááñNwå ëáO í¸ëÑÁ#ùÅÉýáÁÅ&i9#ù`hýé>@úÎ�·É>È=É>À=É>ø=É>ð=É·ðíDÉãV#ãÅBÝåýáú‘ýV�ý^€ÕñÁÉãV#ãÅBÝåò‘Ñ ÕýáýV�ý^€õÁÉáÁ^#V#ë9ùýåÝåÅÝ!„Ý9ë^#V#ë9åÕÚ‘ýåÝåÑá~#åë_ŸWø‘ýåÝåÑã~#ãåoŸgÑq#p#s#r#ëÉýáÁÑáí°ýéáÁ^#ÿ{· Wë9ùýåÝåÅÝ!„Ý9ë^#ë9åÕ* –9Ø>SÕÍo–ëáýáÝáùëýéá^#V#åëN#F#^#V#ëÉã^#V#ãëëáãq#p#s#r#ëÉýáÑãÅBKýé�0  �êù‘úñ‘¹Úò‘yo&D)!0öð·íB0 ·íBê(’ú’·íRÚ’!)BKÑýáÕ^#Vá ëé0éáÉáýá¾#(##ø^#V#ëéëáýá{¾# z¾# ê##í¡êB’áÕýå>CÍo–ÑÉ”—í{;ýå"–Ý!€Ý9Ý"»’!@“"–"–"Ã’*Æ’"–Í –!"·’!€"µ’!µ’"¹’!""" –"½’"Á’ÍC“¯2Å’!P"c’ Í–.þ 8,"¿’€Í–É!ÕåÕåÍi“åýáý6Íi“åýáý6 ¯2,{ÉáÁã^#V+åz·((* –åýá|µ(íR(ýnýfíáå}ý¾ |ý¾ ëѯÉáÅåååHÅÍd”á^#Vbkt#u#F6#ûÕýá* –ýuýtíS –Áýqýpý6ý6€Áx±(ýqýpýËÆ!ýuýt6 !ë! ”í°ýåá>É”M”V”a”!d’~·( 5*A“~Ýw#"A“Éc’ Í–!e’"A“!c’F#~¸(Õ4_#6 Ý6 ÍM”ÄÝ^Í–ÉÝËVÈ!d’6ÉÉáá"–Ñãå!·íR8Õýá*¹’åáå^#Vz· µ’!~#foýåÁ·íB8 (=íB06áÕ*¹’·íR ÏáýåÁx· yæÀ *–åÅýå!–åÅÍ*•ýáÁá"–Í –Ã|”!å~#foýåÁ·íBÁ}|å"b”á|µ *¹’·íR !µ’"¹’áåw#wá^#Vë|· !µ’"¹’*b”ëás#rÉáÑãN#F!·íR8Õýá*–·íB88*Æ’+íB00*¹’å·íBá8!µ’å^#Vëå|·(>íB0áÑåÃ\•ýåá ÑÕ·íR8)( áá>PÍo–*¹’·íR !µ’"¹’ ë^#Výáå}| á*–·íBýåÑ·íR *–·íR"–|/g}/o" –á#6Éáå##^#Váå·íB á w# w #^#VýýåÑr+sÉáq#pýåÑ{zÉÝåýåÍýáÝáÉ*– 8"– 8 |/g}/o" –9ØÑ>HÍo–ÅåÍ–áÁÉOæÆ0þ:ú^–Æ_ÍB–yîÉáñåÍo–É·*–Í—0ËËØÃ—õË0ë^#ÍB–ùÅ —Í–ÁñÅ_ÍB– —Í–ÁÑáåÕÅyæ(*–|ÍL–}ÍL– ÍB– ÍB–*–Í—ÁËÒ—%— Í–Í–þY(þy(þNÊ—þnÊ—7—þ 0Ýà ÍB– ÍB–É* –åÍ€—Ãé Error $ at address $Continue ? (Y/N) $ $GÝ~æ ÈË_(*ÝË~ $ÝËF(ÝËN ÅÝnÝf åÝ6 Í—áÝ6 Í—ÁÝn Ýf xÍ—Ý6Ééáã|·ÈåÝá¯Í;—ÝnÝfî!PëN#ë >é» ö>�º ñë~#Fë �½ x¼Â:=.ÿg �þšÚë!ê�×í¸ëù#åÉCorrupt$No room$N#F#Å^#V#¯» º áÕéN#F#ãí¸áã¹�ÿ—ÿ—þ—k¸�“—�–– 7Ž–CÅ’Ä’bôŠb’. 5…4…Æ}#…é ;{:{Ýs+{  uu ÑmuBÒsÑs&�l«sßÍ^Ì^F°W†^ zYyY £RnY0?V>VBsOüSÙ$9#9š4 9³X1W1ç,>1Gø÷ü û5 ÇÆ‚k D '&Ù4PÈÔDZ-DXERS.DOC 25 April 1985 Long distance users of bulletin boards -------------------------------------- Lonç  distancå  calló  mounô uð iæ you'rå transferrinç thå  wholå  oæ  thå � DazzleStaò suite® Anyonå whï woulä prefeò tï senä må á disë ió welcomå tï � dï so® Pleaså takå notå oæ thå following: ª  Senä thå disë iî á re-usablå maileò (I'í noô fussy¬  home-madå ió  ok¬ � buô it'ó nï gooä iæ É havå tï destroù iô tï geô iô open). *   Encloså `µ (fivå poundó UË sterling© tï coveò copyinç costó anä returî � postage®  Overseasº É suggesô yoõ includå papeò money¬ roughlù equivalenô � value¬  iî  anù  reasonablå currency¬  (noô onå that'ó inflatinç  50¥  peò � annum)®  Iæ  yoõ  wanô aiò maiì oò something¬  saù so¬  anä  includå  thå � additionaì cost. *   Makå surå yoõ senä á good-brand¬  little-useä disk® É don'ô intenä tï � havå  á head-crasè oò Bdoó Erò jusô becauså somå cheapskatå pulleä aî  olä � disë  ouô oæ thå garbagå can®  Iæ É don'ô lik å thå looë oæ youò disë I'lì � mail it straight back to you -- fair warning? * FORMAT THE DISK. Formats (in order of preference): a. Pied Piper (DS 96tpi) b. Gemini QDDS (96tpi) c. Epson PX-8 cassettes (sufficient for 150KB) d® Anù otheò 96tpé oò 48tpé 5¢ formaô writablå bù the Westerî Digitaì 179ø serieó chip e. 8" SSSD (may take several months) Iæ  "d¢ theî includå aó mucè infï aó yoõ caî concerninç youò  format¬  anä � puô oî thå disë á filå with¬  foò example¬ thå numberó ± tï 1000° iî ASCIÉ � (separateä bù spacå oò cr/læ oò whateveò yoõ like)®  Thå filå musô bå biç � enougè  tï generatå severaì extentó iî thå directory¬  7° oò 80K woulä bå � nice®  Iæ youò disë ió doublå sided¬ anä goeó uð onå sidå completely¬ anä � then the other, make sure the disk is more than half full. Formató  whicè maù givå må problemsº  anythinç thaô haó singlå densitù oî � track 0, and double elsewhere. Formató É definitelù won'ô botheò witè  includeº  3"¬  3.5"¬  Apple¬  anù � hard-sectoreä formaô (i.e® there'ó morå thaî onå indeø holå iî youò disk)¬ � any 100tpi format. ª  Don'ô forgeô tï includå youò owî namå anä address¡  Iæ yoõ mighô  puô � thå  suitå  oî  á bulletiî boarä theî thå phonå numbeò  oæ  youò  bulletiî � board¬  itó  bauä rate¬  hours¬  namå anä addresó oæ sysop¬  etã woulä  bå � interesting. ª  Iæ yoõ alsï includå á self-addresseä pre-paiä envelopå I'lì trù tï leô � yoõ kno÷ iæ á lateò versioî getó released. Š John Washington Washington Electronics and Systems Ltd 33 Turnoak Avenue, Woking, Surrey GU22 0AJ England tï generatå severaì extentó iî thå directory¬  7° oò 80K woulä bå � nice®  Iæ youò disë ió doublå sided¬ anä goeó uð onå sidå completely¬ anä � then the other, make sure the disk is more than half full. Formató  whicè maù givå må problemsº  anythinç thaô haó singlå densitù oî � track 0, and double elsewhere. Formató É definitelù won'ô botheò witè  includeº  3"¬  3.5"¬  Apê#ÍY/ý^Ý6„Ý~‰GÝ~„õxÁ¸>?õÝ~„OÝn‡Ýfˆ +ÝN…ÝF†ë`i·íR>?Gñ 0.Ýn‡Ýfˆ+åÝ~„Oá £åÝn„&Ýåщÿ~áwÝ~„<Ýw„žÃˆ/ÍY/ÿ Ý~„Ýw‚>Zݾ„0 àÿÝn„& }Ýw‚Ý~‚È/ÍY/W:¥·Í@/õ:¥ݾƒÍ@/Gñ°0Ív!‚ÿÝåÑÍ8>õÍͲÈ/ÍY/:ò·ÍE/õ:óþ Í@/Gñ 0!òå>õ>õÍ).ÛÝn‚Ýfƒ6:ò·(-Ýn‚Ýfƒå:óáwÝn‚ÝfƒåÝn‚Ýfƒ~õÍ�áw!òå>õ>õÍ).È/!IÃz0Ív̓DZINSTAL program for configuring DazzleStar July85Í34>õÍͲÍvͲ!òå>õÍF!¥åÍÛ!¡å! å͸DZ.COMÍ3ÍÌ!¡å! åÍ!*¡å!åÅÍkÍc*¡åͨÍZ"£ í°ÍS!Ͳ!N"Ÿ*Ÿ£~· *Ÿ#"Ÿì*Ÿ£~þÍʽÍvÍ0*** WARNING ***Í3>õÍͲÍvÍi*** Configuration area may be corrupt.Í3&>õÍͲÍvͰ*** You are recommended to type "X" and investigate.Í34>õÍͲ!H6!I6PÍôA Nascom/Gemini 25x80 addressed thru BIOSÍ3*>PÍç.ͦÍ*B Nascom/MAP-80 25x80 with VFC at F800Í3'>PÍç.ͦÍSC Pied Piper 24x80 ADM-3AÍ3>PÍç.ͦÍ„D Pied Piper 24x80 Hazletine 1500Í3">PÍç.ͦÍ­E Epson PX-8 8x80 ADM-3AÍ3>PÍç.ͦÍÏF Newbury Labs VDUÍ3>PÍç.ͦÍëG SuperbrainÍ3 >PÍç.ͦÍH Cifer 2887Í3 >PÍç.ͦÍ I OsborneÍ3 >PÍç.ͦÍ6X exitÍ3>PÍç.ͦÍvͲÍh Type choice, then Í3>PÍç.ͦ:¥· 5ÍiÍ‚? Í3>õÍͲÍcÍZ"~2¥ÍS!Ͳ:¥õÍ�2¥ÍvͲ!£6>!62¤o&J6:¤o&O6:¤o&T6:¤o&]6:¤o&b6:¤o&g6:¤P͸.!H6!\6ÿÃ]ͧNascom/Gemini 25x80 thru VFC at F800Í3$!¦>P͸.!l6ÿ!ø"m!H6!\6ÿÃ]ÍàPied Piper, ADM-3AÍ3!¦>P͸.Ã]Í Pied Piper, Hazletine 1500Í3!¦>P͸.!K6~!L6!Y6ÿ!Z6![6>!62¤o&]å:¤o&J~áw:¤o&bå:¤o&J~áw:¤P͸.!H6!o6Ã]ÍÆNewbury Labs VDUÍ3!¦>P͸.!J6!K6!L6!Y6ÿÃ]ÍöSuperbrainÍ3 !¦>P͸.!L6Y!g6!h6!i6~!j6KÃ]Í+Cifer 2887Í3 !¦>P͸.!L6P!Y6ÿ!g6!h6!i6^!j6$>!62¤o&]å:¤o&J~áw:¤o&bå:¤o&J~áw:¤P͸.!g6!h6!i6T>!62¤o&]å:¤o&J~áw:¤o&bå:¤o&J~áw:¤!62¤4:¤o& £å:¤o&J~áw=:¤o& £å:¤o&O~áwB:¤o& £å:¤o&T~áwP:¤o& £å:¤o&g~áwg:¤o& £å:¤o&]~áwn:¤o& £å:¤o&b~áw:¤Í.!p8*2¤‰:¤o& £å:¤o&¦~áw:¤PÍç.!Šå!¬åÍ:¦‰o& #£6!ï6ÍCOPYRIGHT (C) 1985 WASHINGTON ELECTRONICS & SYSTEMS LTDÍ37>PÍç.!å!LåÍÍnUse your WordStar 3.3 Instal prog for screen, NOT printerÍ39>PÍç.!På!ˆåÍ!¯6 ÍŽrdStÍ3>PÍç.![å!ˆåÍ:o2ð!®6:\·ÍE/õ:b·ÍE/Gñ°ÒV!¥åÍÛ:¥· `ÍiÍDo you want the menus in inverse video? (y/n)Í3->õÍͲÍvͲÍcÍZ"~2¥ÍS!Ͳ:¥õÍ�2¥:¥õÍ @Í ÊÃ:¥þY !®6€:£î0,*¡å!åÅÍkÍi*¡åͨÍZ"å!£Ñ í°Íá!Ͳ*¡åÍxõ4Íæ#~#_—W Íæ#^#Íæ^#V# Íæ^#V#~#¶# å{ÍË:Ëú&i+·íR8 !9¦áá¯ýáùýé!9N#T] ÉýáÍæÕF#ë&hãýéæ*>ÑíS¿3Õåõ:S·(þ(F !V ë!ýÿí¸<2Sñá"T2VÉͱ"Ý"TÝáÉ:VþÌq":VþÌ�"!S5È!WT í°É>FßÍ 4Read/write nesting too deepáñ·(ÁÅ>õå>WÍ 4èáÁÅ>áñÁÅ· yGÍ`å!9~·( #~ÍQ ø #ÑùëéáñãNG~·ÈÍ`#~ÍQùÉåÅý*TýwÍá!ÁáÉy¸Ð> ÍQõáÁÑåͱ"Í%Ýáɯ>á"¿3ãåÝãõ|·( ¾ #}¾ ¯Íì4ñ·( Ýåá$ëÍÅ3ÝáÉñÝá>F ºÍ 4ÉCLOSE/ERASE errorá"¿3>ÍÈ&2ËÍ1åÝã¯Íì4ÝË®:Ëþ(Ím'Ýåá$ë!\ í°ÝËæÝá*¿3éÝËž:]!�  ¾(ú>N+ Í 4Bad device name:^#¾ Þ:_#¾ ×#ëÝåá ëí°ëÞ s#rÝËF Ý~Öݶ IÝåáÝuÝtÝá*¿3éCONÂ1þ1Ï KBDõ · Þ LST· !Þ NUL· Þ Þ PUN· !Þ RDR!· Þ >Dà  Í 4Device errorÝËFÀ!ß ÝuÝtÉÉÍÅ3ÝwþÊþ À  ÿÍÅ3ÝwÉÍÅ3ÝwÉÝ^Ý^ÍÅ3Éá"¿3Í1åÝãÜm'>Íì4Ý6 Ýn Ýf ÍG!Í%Ýá*¿3éÝåá^#Vëé*TåÝãͱ"Íz!ÍÉ"ÝËæÝáÉÝ~æ Êç"ÝËfÈ Ý~ËWÊã"ËgÈÝËv MÝnÝfÍR!Ý˦ÝËFÈÝ~þ(*þ ( ÝËŽþ ÀÝwÝËN( Ý~þ (ÄÝ6 Ý6 ÝËÎÉÝËöÝËN(íÝ˶ÝËÆÉ*TåÝãͱ"Íî"ÝnÝf ÍR!ÝËŽÝáÉ*åÝãͱ"Ík!Ý~æÝáÉ*åÝãͱ"Ík!ÝËFÂÒ"Ý~æÝáÉ*åÝãͱ"Íî"Ý6 ÍH!Ý6 ÍH!ÝËÎÝáÉ*TåÝãͱ"Ík!ÝnÝfÝáÉ*TåÝãÍz!ÍÉ"ÝËN Í…!òÝËæÝáÉ*TåÝãÍî"Ý6 ÍH!Ý6 ÍH!ÝËÎÝáÉýáá"¿3ãåÝã|·((¾ %#}¾ ýéÝËFÈÝá>F#Í 4>É# ÝË^À# >FÝáà 4At end-of-fileNo reset/rewriteNo rewriteÝåã$ëáÉÝ^ÝVÕýáÉÝnÝNÝFÉÝnGÝNEÝFFÉÝuÝqÝpÉÝuÝqÝpÉyݾÀxݾÀ}ݾÉÝnÝfÝ^ÝuÝtÝ4É}ݾÀxݾÀyݾÉ݈Ý~Í3#ý¾ØÍ=#  ,ÍŠ#ØÝËÆÉÝ~݆ÝwÐÝ4ÀÝ4É:p0þ Í)##ÍÅ3ÍG#Í[#ÉÍ)#ÍÅ3Ýf0.Ë<ËÝN3 ÝuÝtÝ6Ý40Í)#ÍÅ3<(Ý6DÍ)#ÍÅ3·(ÊÝ60Í)#ÍÅ3ÉÝnÝf)Ë=ÝuD|Ý–0ÈåÍ)#ÝË^ÄÅ3áÝt0Í)#ÍÅ3ÉyÍ=#ÝqEÝpFÝuGÝFOÍ3#ÕÅÍÅ3Í)#ÁÅÍÅ3ÁÑ· !€ëÝ4E Ý4F Ý4GØõ€ÍÅ3ñÉÍ3#ÝsÝrÍ=#ÍŠ#ÝËÆ0݈:p0!þ0Í-$<(ÍX$·È>ÉÍŸ$Ý6·ÈÍ3#Ý~ýw~ý6ÝËžÉ:p0"þ0Í-$< Í)#ÍÅ3<ʆ&ÍX$·Â†&ÝËžÍG#ÍŠ#ØÍ[#ÉÝËN DÝË^Ê‘&ÕÅÍÌ#Ý6ü%ù%!^&ÝËv( &&!O&ÝqÝpÝsÝr Ýu Ýt ÁÑÝ6ÿÝËÎËz(Íy&ÕÅÝËv ÝN`hÍ,}æð´Äy&Íe#(cÍQ#ÍŸ$[ÕÅÝN!Í´+}æð´(ÑÑÍy&ÅÅåÅÍe#(ÝË^Äì$ÁáÍQ#åÅÍÑ$ Í3#ÝsÝrÝ6ÝNh`Í,ÍÆ,y·(Ít#= úÍ™#Ý˦ÉÍì$ͺ#ÍŸ$ÉÍt#Ý~ݾ(3Í™#ÉÝËÞÍt#Í3#Ý~ý¾ú:&ýwÍ=#ÍŠ#8  ,Í[#Ý~ݾÀÝË^Äì$ͺ#ÍÑ$ÉÝË~ õÝË^Äì$ñõÍ)#ÍÅ3ñØÝËfÀÍ)#ÍÅ3Éé>UÍ 4`hÉÝËþ­& �&>Dà 4Must be discfileDisc fullýá2¶&á|þ }·(=õ3ñå!¸&6ë!9Nå #ãy·(Õ#~þ (þ,( ã4~ãþ( éÑáùýåþ(=ÕOÅ!\åÍû*!h6!¶&FÉ·( þ(&Éþ É@'%? (empty string):¶&=>È!·&å6?#~6 ÆGÑ>NÍ 4Í#(!¢' í°ëüÿ ë!n0~Æ'wõÍ®'ñ#~Î'wÍ®'!6(Ýu Ýt ÝËÞÉPTEM0000$$$Oæö0yæö0ÉÝnÝf}æÀ´(  )ÝtÉë!~—<·íRòÛ'=ÝwÝ6ÝËöÉ!K)£)ÝËF !i)Á)ÝËv !™)á)ÝuÝtÝsÝr !ú(Ýu Ýt ÉÝåã$ëáÉ€ÍÅ3ÉÝËFÌÁ'Ý~ݶ ÝåáåÝFË8ËÅÍ2Í#(Õ! 6#ûÝË*¾ÝË^ :p0þ(ÝË*þÝËV(ÍÅ3< ÝË^ Ü*ÍÅ3ÑÕÍÅ3<Ên*áÝ6ÝË^ĺ(Íï'Ý6¯ÉÝ6ÝnÝfÝËF ÝuÝtÝuÝtÝ~€6#û= öÉÝnÝf Ý~w+Ý~wÉõÝË^()ÝË~ #ÝËv ÝËF(Ý6ͪ)Ý~·( ÝËvÄæ(Íì)Í#(ÍÅ3<ÁÊN*ÝË*¾xØÍ#(ÝËfÌÅ3ÉÝnÝf#Ý5 Íè)Ý6€ÝuÝt~ÝwÉÝnÝfÝN Ý5 "Íè)åýáÝËF ý~~æ?ݾÂ8*ý~ÝwÍè)ÝuÝtÉÝËnÄþ1ÝnÝfÝ~w#ÝuÝtÝ4ð ÝnÝfÝN ÝuÝtÝ~<ÝwݾÀÍæ(Íì)ͺ(É>>2l'Í#(ÝnÝfåÝ~õÕåÑÕÍÅ3áÑÕå:l'OÍÅ3· áÑñ€ = ÞÍ-(áÉáááÍ-(á:l'þ(PÝËÆÉ?*MWrong file typeÝË–ÝËž]*/Cannot close fileu*Directory full“* ÝËþ>DÍ 4Disc fullÝË–Ñ:y0·>ÈÁÕÕ! ·(Æ@#w#6:ÍÝ*#6.ÍÝ* +Ñå!ï* í°áÑ·íRE¯H#æwø> ¾À+ úÉNot found: áýáÁãëýåá6 #6 ûy·Èþ  ÷—É ýåá# ʦ+þ (zþ:(Lþ.(1þ*(yþ,(uþ;8þ@8mþ`8æ_þ[(cþ](_w#ÌýËv Jý~ þ (CLýËv FýËöýåáÅ Á¦ýË~ /xþ(þ &>Éý~Ö@8þ0Ëÿýwý6 Ã+ý~æýw>É>É—Ë|(Í->€ýáÑãýãÅBKË|(ÆÀÍ-ÑÝåõÅýãÁx±² ³Ê,þ ýåÁñË,ËËË Í|,ñÝåáýåÁÜ-ÝáÉÑÑ>JÍ 4!É—Ë|(Í->€ýáÑãýãÅBKË|(ÆÀÍ-ÑõÅÕÅýå|µ(Áx±Âj,ÁDMÍÜ- ÁÑx±( ÍÜ-x怴µÂk,`iÁÑåÍÜ-Ññ·ü-ÉÑÑÑÑ>OÍ 4!Éå|µ(> !>ýãÝáåý)Ý)ãíjãíj0Ý#ã·íRãíBò°,ããíJý#= ÚñÉýáã DMÑáíZê-ýéýáã·íBDMÑáíRê-ýéOŸGogÉDMËíbÉýáëáåËíbãåëýéýáëãåëýéË|Èë!·íBDM!íRàãÅå>OÍ 4áÁãÉýåî ÀÀ,À$àäyÖOxÞGíRê-±µ´Éýáã·íBÑáõíRÑêW- Ë»Õñýé>@ú]-·ýéýáë`iÁ·íBÁõëíBÑêW-(ÝýéåÅÑë·íRå·íBDMì£-|áÉë`i·íRT]·íBDMëÉ|öðë!·íRÉýáÑZË{(Õýéë!yKË?0Ë#Ë· ôx·ÈQË?0Ë"· öÉ!x·(·ËA(ËËËñGÉ·ËA(ËËËòEl&ÉOx‘O�Gâ.íDy7ø·ÉOx‘O�GyÉýáñÑ_áz·( ~’8<“0 r5>TýåÍ 4É(õ~“wñJ ë&Oí°ýér5ýéýáñÑá_ÁÅ·(:~<»85y†81Gz¸8,y·(9~<“(åÕÅYN ë&ëOí¸ÁÑápë!9í°ùýéýå>TÍ 4ýááå&9ù3ýéýáë!9¾Ü/Ní°ùýéýá!9N ^#VÕëbk++í¸áýéýá!9¾Ü/–(T]O·íBùëNí°ýéÕõåýå>TÍ 4ýááñNwå ëáO í¸ëÑÁ#ùÅÉýáÁÅ&i9#ù`hýé>@ú>/·É>È=É>À=É>ø=É>ð=É·ðíDÉáÁ^#ÿ{· Wë9ùýåÝåÅÝ!„Ý9ë^#ë9åÕ*»39Ø>SÕÍ 4ëáýáÝáùëýé�0  �êª/ú¢/¹Ú£/yo&D)!0öð·íB0 ·íBêÙ/úÄ/·íRÚÇ/!)BKÑýáÕ^#Vá ëé0éáÉáýá¾#(##ø^#V#ëéëáýá{¾# z¾# ê##í¡êó/áÕýå>CÍ 4ÑÉE5í{;ýå"¿3Ý!€Ý9Ý"l0!ñ0"Ã3"Á3"t0*w0"¹3ÍÑ3!"h0!€"f0!f0"j0!"""½3"n0"r0Íô0¯2v0!P"0 ÍÅ3.þ 8,"p0€ÍÅ3É!ÕåÕåÍ1åýáý6Í1åýáý6 ¯2SÉáÁã^#V+åz·((*½3åýá|µ(íR(ýnýfíáå}ý¾ |ý¾ ëѯÉáÅåååHÅÍ2á^#Vbkt#u#F6#ûÕýá*½3ýuýtíS½3Áýqýpý6ý6€Áx±(ýqýpýËÆ!ýuýt6 !ë!º1í°ýåá>ÉÂ1þ122!0~·( 5*ò0~Ýw#"ò0É0 ÍÅ3!0"ò0!0F#~¸(Õ4_#6 Ý6 Íþ1ÄÝ^ÍÅ3ÉÝËVÈ!06ÉÉáá"¿3Ñãå!·íR8Õýá*j0åáå^#Vz· f0!~#foýåÁ·íB8 (=íB06áÕ*j0·íR ÏáýåÁx· yæÀ *¹3åÅýå!¹3åÅÍÛ2ýáÁá"¹3ÍÑ3Ã-2! å~#foýåÁ·íBÁ}|å"2á|µ *j0·íR !f0"j0áåw#wá^#Vë|· !f0"j0*2ëás#rÉáÑãN#F!·íR8Õýá*¹3·íB88*w0+íB00*j0å·íBá8!f0å^#Vëå|·(>íB0áÑåà 3ýåá ÑÕ·íR8)( áá>PÍ 4*j0·íR !f0"j0 ë^#Výáå}| á*¹3·íBýåÑ·íR *¹3·íR"¹3|/g}/o"»3á#6Éáå##^#Váå·íB á w# w #^#VýýåÑr+sÉáq#pýåÑ{zÉÝåýåÍýáÝáÉ*¹3 8"¹3 8 |/g}/o"»39ØÑ>HÍ 4ÅåÍÅ3áÁÉOæÆ0þ:ú4Æ_Íó3yîÉáñåÍ 4É·*Ã3Í¿40ËËØÃµ4õË0ë^#Íó3ùÅ À4ÍÅ3ÁñÅ_Íó3 É4ÍÅ3ÁÑáåÕÅyæ(*¿3|Íý3}Íý3 Íó3 Íó3*Á3Í¿4ÁËÒµ4Ö4 ÍÅ3ÍÅ3þY(þy(þNʵ4þnʵ4è4þ 0Ýà Íó3 Íó3É*½3åÍ15Ãé Error $ at address $Continue ? (Y/N) $ $GÝ~æ ÈË_(*ÝË~ $ÝËF(ÝËN ÅÝnÝf åÝ6 Í05áÝ6 Í05ÁÝn Ýf xÍ05Ý6Ééáã|·ÈåÝá¯Íì4ÝnÝfî!ëN#ë >m» ö>$º ñë~#Fë ô#½ x¼Â:=.ÿgü#þ7Úë!n$kí¸ëù#åÉCorrupt$No room$N#F#Å^#V#¯» º áÕéN#F#ãí¸áã©#ÿ5ÿ5þ5º¨#D5�Ä3Ã3 '"¸3Cv0u0bä0M Ç&Æ&—µ&TbaC RA Cd,ÉÉáá"¿3Ñãå!·íR8Õýá*j0åáå^#Vz· f0!~#foýåÁ·íB8 (=íB06áÕ*j0·íR ÏáýåÁx· yæÀ *¹3åÅýå!¹3åÅÍÛ2ýáÁá"¹3ÍÑ3Ã-2! EE --Cursor Movement-- | -Miscellaneous- | -Other Menus-KK^S char left ^D char right |^A Address ^F Follow |^J Help ^K File/exitEE^E line up ^X line down |^L QF/QA again ^V View |^Q Quick/search FF --Scrolling-- |; Comment ^Y Delete |^B Build control@@^W up line ^Z down line |RETURN Comment (equiv ;) |^P Symbols AA^R up screen ^C down screen|^U Stop a command |^O OnscreenKK 0 redisplay from this line| (17 jul 85) |(^J2 suppresses menu)J&&^J menu HELP==================-Other Menus-^S char left ^D char right |^A Address ^F Follow |^J Help ^K File/exitHH^J1 or ^J2 suppresses the display of menus, leaving more space on screen --Scrolling-- |; Comment ^Y Delete |^B Build controlGG^J3 brings back the menus ^J and anything else displays the fileCC DZMSGS.OVR one page at a time 0 redisplay from this line| (17 jul 85) |(^J2 suppresses menu)K55^K menu FILE OPERATIONS & EXIT TO CP/M her Menus-11S Save control table and symbol table to file .DZ |^J Help ^K File/exit--R Read a .DZ file P Printeaving more space on screenW Write a .MAC file ^Y Delete |^B Build controlQ QUIT and return to CP/M ^J and anything else displays the file11X eXit (after saving tables if necessary) to CP/M time 0 redisplay from this line| (17 jul 85) |(^J2 suppresses menu)Q00^Q menu VARIOUS QUICK & SEARCH FUNCTIONS======== her Menus-99R top file F find value(s)Help ^K File/exitJJC end file A find, plus obey command string%%V return to previous position in file ^Y Delete |^B Build controlKKE top of window B display from next control pointDDX bottom of window P display from next symbol LL T display from next sym or ctrl ptO''^O menu ONSCREEN================= her Menus-44R split near top of screen (i.e. all hex dump)ue(s)Help ^K File/exit77C split near bottom of screen (i.e. all disassembly)obey command string""O split at current cursor positionile ^Y Delete |^B Build controlGGV split as at start-up F Fake symbol display now %ofointGGB/P/T display control/symbol table(s) U User symbol display now %ou GG  S Split user symbol now %osrl ptP$$^P menu SYMBOL TABLE==================== her Menus-44I indirect (i.e. symbol in disassembled instruction)ue(s)Help ^K File/exit66B byte A auto-build symbol table)obey command stringL label IIR relative label ? satisfy all types of referencentT table (e.g. LD HL,T1234 ) W word S Split user symbol now %osrl ptB&&^B menu CONTROL TABLE================== her Menus-FFB bytes I instructions L labels | M messages and bytes t@@W words (numbers, not addresses) usual lo/hi | N numeric onlyand stringGGX words, as W, but hi/lo |_________________________ ..R relative offsets (e.g. DW label-$ ) |isfy all types of referencent77Y delete this entry | H hex ;;A auto-build control table | D decimall now %osrl pt-- menu -=============================== her Menus-/-bytes I instructions L labels | M messages and bytes t**- digit go back locations in filehi | N numeric onlyand stringX words, as W, but hi/lo |_________________________ R relative offsets (e.g. DW label-$ ) |isfy all types of referencentY delete this entry | H hex A auto-build control table | D decimall now %osrl pt / menu This is the penultimate menu of the file, and should never appearII(Good luck with your browsing, you're the kind of person who can probably t@@ send me some good ideas -- I look forward to hearing from you!)and stringX words, as W, but hi/lo |_________________________ COPYRIGHT (C) 1985 e.g. DW label-$ ) |isfy all types of referencent44J Washington, 33 Turnoak Ave, Woking, GU22 0AJ, U.K.hex  17 jul 1985 | D decimall now %osrl pt?BB? menu This is the last menu of the file, and should never appear appearBB unless end of file is read (2ndary menu type not defined?)robably t/?end me some good ideas -- I look forward to hearing from you!)and stringX words, as W, but hi/lo |_________________________ COPYRIGHT (C) 1985 e.g. DW label-$ ) |isfy all types of referencentCOPYRIGHT (C) 1985 noak Ave, Woking, GU22 0AJ, U.K.hex 44J Washington, 33 Turnoak Ave, Woking, GU22 0AJ, U.K.decimall now %osrl pt  17 jul 1985nu of the file, and should never appear appear88======================================================== defined?)robably t/?end me some good ideas -- I look forward to hearing from you!)and stringX words, as W, but hi/lo |_________________________ COPYRIGHT (C) 1985 e.g. DW label-$ ) |isfy all types of referencentCOPYRIGHT (C) 1985 noak Ave, Woking, GU22 0AJ, U.K.hex J Washington, 33 Turnoak Ave, Woking, GU22 0AJ, U.K.decimall now %osrl pt 17 jul 1985nu of the file, and should never appear appear======================================================== defined?)robably t/?end me some good ideas -- I look forward to hearing from you!)and stringX words, as W, but hi/lo |_________________________ COPYRIGHT (C) 1985 e.g. DW label-$ ) |isfy all types of referencentCOPYRIGHT (C) 1985 noak Ave, Woking, GU22 0AJ, U.K.hex J Washington, 33 Turnoak Ave, Woking, GU22 0AJ, U.K.decimall now %osrl pt, as W, but hi/lo |_________________________ COPYRIGHT (C) 1985 e.g. DW label-$ ) |isfy all types of referencentCOPYRIGHT (C) 1985 noak Ave, Woking, GU22 0AJ, U.K.hex J Washington, 33 Turnoak Ave, Woking, GU22 0AJ, U.K.decimall now %osrl pt 17 jul 1985nu of the file, and should never appear appear=========================================== Washington Electronics & Systems Ltd 17 July 85 HELP FILE for DazzleStar Disassembler ===================================== Contents Introduction -------- Starting up (the command line) Windows on the screen Moving thru the file Moving further Command groups Control table & ^KS ^KR HELP! Auto-build control points or symbol names "Onscreen" functions (the ^O family) File commands (the ^K family) Symbol table ^OF, ^OS, ^OU: how they affect display /contents contd next screen -------------------------------------------------------------------------- .cð 25 Entering names and phrases into the symbol table Building and destroying the symbol table Comments (adding and deleting them) "Quick" family (^Q) ^QF ^QA improvements Moving forward or back by just a few bytes TYPICAL USE Installatioî Notes Rough notes Self-relocating code Symbol table access Wishes DZINSTAL development plans... Feedback Disclaimeò anä Warning MORE PROGRAMS -------------------------------------------------------------------------- .cð 25 Š Introduction Thió filå ió DZMSGS.OVÒ anä serveó aó aî introductioî tï DazzleStar. DazzleStaò  ió  á  prograí  whicè caî disassemblå  á  CP/M-8°  .COÍ  file¬ � producinç  Z8°  mnemonics®  Thå firsô parô oæ thió documenô serveó  aó  á � compromiså  betweeî  á referencå manuaì anä á tutorial¬  anä  lateò  partó � discusó  sucè thingó aó installation¬  printinç thió manual¬  anä  typicaì � methodó oæ disassembly. Iî thå descriptions¬ itemó markeä {!ý arå noô yeô implemented® -------------------------------------------------------------------------- .cp 25 DazzleStaò  disassembleó á program¬  producinç á listinç (oò  sourcå  texô � filå foò inpuô tï aî assembler© usinç Ziloç Z8° mnemonics®  Mosô programó � havå  data¬  aó welì aó code¬  sï DazzleStaò keepó á controì table¬  whicè � specifieó  ho÷ eacè parô oæ thå prograí ió tï bå disassembled®  Therå  ió � alsï á symboì table¬ sï thaô labeló anä valueó caî bå giveî whateveò nameó � (oò phrases¬ even© thå useò wishes. Thå  controì  anä symboì tableó wilì bå discusseä iî  morå  detaiì  later» � first¬ let'ó takå á looë aô ho÷ tï geô DazzleStaò runninç anä thå waù youò � screeî ió used. -------------------------------------------------------------------------- .cð 25 Starting up (the command line) Thå  filå tï bå disassembleä musô bå specifieä iî thå commanä tail®  Sincå � thå .COÍ extensioî ió thå mosô frequent¬  .COÍ ió addeä iæ nï extensioî ió � explicitlù given®  Foò example¬  tï disassemblå á filå FRED.COM¬ typå "DÚ � FRED¢ ("DÚ FRED.COM¢ alsï works)®  Otheò files¬ foò examplå FRED.OVR¬ caî � bå specifieä bù givinç thå namå iî full® Iæ  yoõ omiô thå namå oæ thå inpuô file¬  DazzleStaò wilì assumå you'rå  á � ne÷ useò anä displaù thió "help¢ file® -------------------------------------------------------------------------- .cp 25 Š Windows on the screen Thå screeî ió arrangeä witè windowó whicè arå independentlù updated. .-------------------------------. | Status Line | |-------------------------------| Experienced users can | | suppress the menu to | Menõ windo÷ | expanä thå otheò windows Info about |-------------------------------| nearby con- | Control window | trol points |-------------------------------| | | Youò cursoò ió normally Sometimes | Disassembly window | within this window these two |-------------------------------| windows are | Hex dump window or | If disassembly window combined | second disassembly window | is very small, your '-------------------------------' cursoò may be iî thió window -------------------------------------------------------------------------- .cð 25 Moving thru the file Thå commanä keyó choseî arå baseä oî WordStar¬  sï yoõ shoulä quicklù finä � á loô oæ olä friendó oî youò keyboard. Cursor ^E Scroll ^R previous page movement up (or thereabouts) ^S left right ^D ^W scroll up line down ^X ^Z scroll down line ^^ (up) also work, which allows use of ^_ (down) cursor arrows on some machines ^C next page Actually¬ jusô thå letteró alonå alsï worë ok¬ nï neeä tï uså . -------------------------------------------------------------------------- .cp 25 Š Moving further Sï  thå screeî giveó á vie÷ oæ youò file¬  usuallù iî twï differenô  ways® � Thå  maiî vie÷ ió á disassemblù oæ thå filå (iî whateveò modå thå  controì � tablå specifieó aô thió point)¬ anä thå seconä vie÷ showó thå samå parô oæ � thå filå aó ra÷ heø anä characters. Tï  movå  á  shorô  distancå througè thå file¬  uså  thå  scrolì  commandó � (especiallù ^à anä ^R)®  Ofteî you'lì wanô tï movå further¬  sï therå arå � handù wayó tï dï this: Go to address ^A hex address and display ^F goes to the address in the 2nd and 3rd bytes of screenful the instruction specified by the cursor (to remember: A for Address, F for Follow) -------------------------------------------------------------------------- .cp 25 Command groups Somå  oæ  thå commanä codeó arå twï characteró lonç (similaò  tï  WordStaò � wherå analogieó arå possible)® Theù arå looselù grouped¬ accordinç tï thå � firsô characteò oæ thå pair. Thå meaningó oæ theså groupó wilì bå explaineä later¬  but¬  jusô foò  thå � record¬ herå theù are: ^K- various file commands ^O- Onscreen: how the screen is arranged ^Q- Quick: move quickly to another part of the file ^P- build symbol table ^B- Build control table (forget WordStar paragraph reform, who ^J- Help needó para- reforí iî á disassembler?) "Quick¢  ió  noô á verù gooä mnemoniã foò thå ^Ñ family¬  buô manù oæ  thå � useó arå similaò tï WordStar¬  foò examplå ^QR¬ ^QC¬ ^QF¬ ^QA¬ ^QÖ arå alì � inspireä bù WordStar. -------------------------------------------------------------------------- .cp 25 Š Control table DazzleStaò  buildó á tablå oæ "controì points¢ (calleä thå controì  table© � whicè  decideó ho÷ eacè parô oæ thå inpuô filå ió displayed®  Thió  tablå � caî bå modifieä witè ^Bø sequences: Control disassembly ^B Byteó (i.e® DB) ^BÄ Decimaì ^BÍ Byteó anä messages ^BI Instructions ^BH Hexadecimal ^BN Numeric bytes only ^BW Words (i.e. DW) ^BL Labels (i.e. DW label) ^BR Relative labels (i.e. DW label-$) ^BY Delete this entry ^BA Auto-build control table ^BO Offset (.PHASE directive) YES! You can save your work: ^KS Write .DZ file (text file containing all symbols, comments, and control points, so disassembly can continue another day) ^KÒ  Reaä .DZ file (produced by ^KS) -------------------------------------------------------------------------- .cp 25 HELP! ^J²  clearó  thå toð oæ thå screeî tï makå morå rooí foò displayinç  code¬ � buô turns ofæ thå menu. ^J3 turns the menu back on again. ^J returns to the main menu ^J followed by anything else displays this file Wheî thå firsô characteò oæ á two-characteò commanä haó beeî typed¬ iæ thå � seconä  characteò ió noô typeä withiî á reasonablå timå theî thå  useò  ió � prompteä bù thå displaù oæ aî appropriatå secondarù menu. -------------------------------------------------------------------------- .cp 25 Auto-build control points or symbol names ^BA searcè foò ascié stringó to auto-builä controì tablå ^PA auto-builä symboì tablå (nameó deriveä froí heø addresses) Botè oæ theså commandó asë foò á starô anä aî enä address® Iæ yoõ specifù � thå  wholå  oæ á largå program¬  yoõ maù havå tï waiô á  significanô  timå � (minutes¬  even)® Morå serious¬ yoõ maù ruî ouô oæ memory¬ witè nï chancå � to save your earlier work -- do use ^KS before trying either ^BA or ^PA. -------------------------------------------------------------------------- .cp 25 Š"Onscreen" functions, which affect the way the display is presented ^OR most of the screen will be used for hex dump (i.e. screen divider moves near the top of the screen) ^OC most of the screen will be used for instructions etc (i.e. screen divider moves near the bottom of the screen) ^OO split the screen at the current cursor position ^OV a few rows at the bottom of the screen for hex dump, with most of the screen used for instructions etc (i.e. back to the type of presentation used initially) ^OF, ^OS, ^OU toggles described later (see symbol table description) ^OB display control table ^OP display symbol table ^OT display both of them (T for "two") ^OI display instructions (i.e. normal display) -------------------------------------------------------------------------- .cp 25 ^KS save control & symbol tables on disk (.DZ file) ^KQ return to CP/M -- nothing is saved ^KX save control & symbol tables (if altered) and return to CP/M ^KP print part or whole disassembly on LST: ^KW write part or whole disassembly to disk (.MAC file) {! ^KF Files (display directory) (These would be nice,  !} {! ^KO copy but space is not yet !} {! ^KL Login drive available to implement !} {! ^KY Delete a file them) !} {! ^KE Rename !} {! ^KD Do ^KS and return to no-file menu (no such menu yet) !} {! (and maybe never will be) !} -------------------------------------------------------------------------- .cp 25 Š Symbol table Thå symboì tablå caî bå thoughô oæ aó severaì independenô symboì tableó -- � wheî  aî instructioî ió decodeä DazzleStaò decideó whaô kinä oæ symboì  ió � involveä (foò example¬  á bytå reference¬  á worä reference¬  á  label¬  á � relativå label¬ etc)® Wheî thå instructioî ió displayed¬ youò symboì namå � ió  onlù useä iæ yoõ askeä foò iô tï bå useä foò thió kinä oæ symbol®  Sï � iô ió easù tï telì DazzleStaò tï turî this:  LD HL,0100 (size of 256 byte block) ... JP 0100 (restart the program) into: LD HL,blocksize ... JP start without any confusion between the two uses of 0100. -------------------------------------------------------------------------- .cp 25 Lateò  thå commandó wilì bå describeä morå formally¬  buô firsô  let'ó  gï � througè thaô examplå iî morå detail: LD HL,0100 ... JP 0100 Movå  thå  cursoò  (bù  usinç  ^Å  oò  ^X©  tï  thå  LÄ  HÌ  line®   Typå � ^PIblocksize®   Movå  thå  cursoò  tï  thå  JР line®  No÷  typå � ^PIstart®  Iô  reallù  ió  thaô simple®  Wheî  yoõ  subsequentlù � displaù  somewherå elså iî thå filå witè á referencå tï 010° iô wilì  sho÷ � 'start§ oò 'blocksize§ aó appropriate. -------------------------------------------------------------------------- .cp 25 ^OF, ^OS, ^OU: how they affect display Aô firsô DazzleStaò displayó thå symbol-nameó yoõ havå specified¬  oò (foò � valueó  foò  whicè  yoõ  havn'ô yeô specifieä á  name©  thå  correspondinç � pseudo-symboì (e.g® L0100)® Sï initiallù yoõ mighô seå 010° JÐ L123´ oî thå screen¬  anä lateò (afteò defininç L123´ aó MAIN© � yoõ  mighô seå 010° JÐ MAIN® Morå informally¬ wå calì theså pseudo-symboló (thaô arå � constructeä froí heø numbers© "fake¢ symbols® Fakå symboló caî bå toggleä � on and off (^OF)¬  buô arå initiallù off®  Iæ yoõ turneä theí oî iî  thió � example yoõ would geô 010°  JРL123´ MAIÎ whicè ió noô á gooä ideá foò youò .MAà filå  buô � somå peoplå prefeò wheî they'rå browsinç (É likå it¬ eveî iæ yoõ don't!). Similarly¬  ^OÕ  toggleó  ofæ  anä  oî thå displaù  oæ  youò  choseî  namå � (otherwiså knowî aó thå "user¢ symbol)®  Noticå thaô nothinç ió destroyeä � iî youò symboì tablå -- á seconä ^OÕ wilì brinç bacë everything® Likå alì � thå ^Ï sequences¬ onlù thå displaù ió affected. -------------------------------------------------------------------------- .cp 25 Š ^OÓ  toggleó  thå "split¢ feature®  Thió onlù haó aî effecô wheî  á  useò � symboì haó spaceó iî it® Foò example¬ definå B000³ aó "IOBYTÅ fouò two-biô fields" With ^OS on, and ^OF off, a typical display would be: probably the LD (IOBYTÅ),A ; fouò two-biô fields most useful when generatinç .MAà file With ^OS off, and ^OF on: most useful when LD (B0003 IOBYTÅ fouò two-biô fields),A browsing Thå otheò combinationó arå allowed¬  buô noô sï useful¬  foò example¬ witè � ^OÓ off¬ anä ^OÆ off: LD (IOBYTÅ fouò two-biô fields),A -------------------------------------------------------------------------- .cp 25 Entering names and phrases into the symbol table ^Px (x is a letter) gives a question, to which you reply symbol name blah blah blah You'vå  probablù guesseä alreadù thaô symboì nameó caî includå spaces¬  iî � facô yoõ caî typå anythinç yoõ fancù uð tï abouô 4° characters. Thå  addresó (oò value© associateä witè thå symboì ió thå addresó  oæ  thå � currenô  linå wheî yoõ presó ^P®  ^PÉ ió á usefuì exceptioî tï this¬  anä � wilì bå describeä oî thå nexô screen. ^PB Byte references to this line will use this symbol, e.g. LD A,(ref) ^PL Label references will use this symbol, e.g. JP label, CALL label ^PR Relative references, e.g. JR label ^PT Table references, e.g. LD HL,table ^PW Word references, e.g. LD HL,(word) ^P¿ Similaò tï ^P etc.¬ buô generateó á symboì whicè wilì satisfù alì referenceó tï sucè á value. -------------------------------------------------------------------------- .cp 25 Š ^PÉ ió á littlå morå complicated®  Yoõ ofteî wisè tï enteò thå namå oæ  á � symbol¬  noô wheî yoõ arå AÔ thå placå wherå thå symboì wilì be¬  buô wheî � yoõ arå aô á linå oæ codå whicè REFERÓ tï thå symbol® Oæ course¬ bù usinç � ^Æ yoõ coulä easilù arrivå aô thå placå wherå thå symboì wilì be®  Buô aî � eveî morå convenienô methoä ió provided... ^PÉ (mnemonicº Indirect) Thå addresó associateä witè thió symboì dependó oî thå contenô oæ thå linå � thå cursoò waó oî wheî yoõ hiô ^PI. E.g. 070B LD (B5200),A ^PI would define B5200. 070E LD A,H ^PI would be illegal (bell sounds, and '***') -------------------------------------------------------------------------- .cp 25 Building and destroying the symbol table ^PÁ  askó yoõ tï specifù thå firsô anä lasô addresseó oæ thå regioî tï  bå � searcheä  (defaulô  ió thå wholå file)®  Á completå disassemblù  ió  donå � behinä  thå sceneó (sï bå patient!)¬  anä whereveò á symboì ió referenced¬ � buô noô founä iî thå symboì table¬ á ne÷ symboì ió created. Thå  namå giveî useó thå letteò appropriatå foò thå uså oæ thå symboì  anä � thå fouò heø digitó oæ itó value®  Foò example¬  decodinç C³ 3´ 1² iî  aî � areá  startinç  witè aî "I¢ controì poinô (Instructions© woulä generatå  á � symboì L1234. ^PÙ  Flusheó  thå symboì table¬  firsô oæ alì fakå symbols¬  theî oæ  alì � symbols®  Sincå  thå  operatioî  ió  ratheò  dangerous¬  confirmatioî  ió � requesteä aô botè stages®  Thå controì pointó arå noô affecteä (anä therå � ió  nï  waù  tï flusè alì controì points¬  excepô bù usinç  ^KØ  anä  theî � editinç  thå .DÚ filå bù hanä oò bù á "littlå utility¢ whicè É hopå you'lì � writå anä makå public!). -------------------------------------------------------------------------- .cp 25 Š Comments Inserting comments on lines: {!} Not yet possible {!} Inserting a comment between lines: Move the cursor to the line following where you want the comment. Presó semicolon® (Thå screeî wilì bå redisplayed¬ witè á gað foò your new comment). Type comment, terminating with Backspacå  ió  implemented¬  buô otherwiså thå commenô cannoô  bå  edited® � However¬  yoõ  caî  lateò retypå iô completely¬  anä deletå thå  olä  one® � Therå  ió nï limiô tï thå numbeò oæ lineó oæ commenô aô anù  poinô  (aparô � froí thå totaì symboì tablå space). -------------------------------------------------------------------------- .cð 25 Symboló  anä  commentó arå storeä iî thå samå waù internally¬  anä caî  bå � quitå lonç (abouô 4° characteró oò more)®  Iæ you'rå tryinç tï understanä � á program¬ ratheò thaî generatinç á sourcå texô thaô wilì assemble¬ iô caî � bå handù tï givå symboló chattù names® Foò example, CALÌ Outpuô chaò iî A LÄ A,(B374¹ ??¿ flaç foò pasó ² ???) OÒ Á JÒ NZ,pasó ² maybe? Thió caî bå á biç help¬  becauså thå resultó oæ youò ideaó arå immediatelù � availablå throughouô thå disassembly¬  anä yoõ caî reviså thå symboì nameó � aó yoõ becomå morå surå oæ ho÷ thingó work®  Oncå you'vå useä thió methoä � yoõ  wilì  rarelù wanô tï gï bacë tï usinç á papeò  listing¬  eveî  thougè � papeò ió sï handù foò drawinç arrowó alì over® -------------------------------------------------------------------------- .cp 25 "Quick" family ^QR go to the start of the program and display ^QC go to thå enä oæ thå program and display ^QV go to address before previous ^F or ^A (the last ten addresses are remembered, so you can follow calls and jumps in the code and then "unwind" to where you were) ^QB find next control point and display from there ^QP find next symbol and display from there ^QT find next symbol or control point and display from there ^QF find the next occurence of a sequence of bytes and/or words ^QA as ^QF plus execute a string of commands when match found ^L repeat the previous ^QF or ^QA -------------------------------------------------------------------------- .cð 25 Š STOP PRESS! ^QF ^QA improvements ^QÆ  improved®  Caî  no÷ typå thingó likå CÄ 123´ anä iô doeó whaô  yoõ � hopå iô would¡  Iî otheò words¬  there'ó aî arraù oæ teî bytes¬  anä eacè � heø numbeò yoõ typå ió puô intï thå nexô byte®  Iæ yoõ typå morå thaî twï � consecutivå  heø digitó theî thió ió obviouslù á word¬  anä sï it'ó  spliô � intï  twï  byteó (iî thå usuaì wierä low/higè fashion© anä storeä  iî  thå � nexô  twï  byteó oæ thå array®  Wheî yoõ typå  ¬  thå  searcè  ió � started¬  matchinç  aó manù byteó aó yoõ gave®  É supposå yoõ wanô  wild-� cards¬ anä maskó even¿ It's on the wish list! ^QÆ wilì alsï takå aî apostrophå followeä bù printablå charó aó á speã  oæ � whaô  tï  searcè for®  Samå limitatioî oæ ten®  Nï  apology®  Ho÷  manù � programmeró  dï  yoõ kno÷ witè á vocabularù widå enougè tï  uså  differenô � wordó  thaô havå morå thaî teî letteró iî common¿  Oò  even..®  Ho÷  manù � programmeró dï yoõ kno÷ thaô caî spelì foò teî consecutivå letteró withouô � aî error? -------------------------------------------------------------------------- .cð 25 ^QÁ  ió á sorô oæ "macro¢ facility®  ^QÁ askó foò whaô tï finä (likå ^QF© � (foò  example¬  CÄ 1234© buô theî askó foò á "commanä string¢  tï  executå � wheî  thå  sequencå  ió found®  Finallù iô askó foò optionó  (likå  ^QF)® � Optionó includå G global, i.e. keep on doing it I instructions, i.e. search only for matches with ^BI areas N no-verify, i.e. do it without demanding Y/N B backward search R restart, i.e. start search from 100 instead of the current line (or end of file, if B option also used) That's a rather terse description of ^QA, let's look at an example... -------------------------------------------------------------------------- .cð 25 Supposå  yoõ  havå á prograí witè frequenô calló tï  somå  routine¬  usinç � inlinå parameters® Foò example, CALL L6789 DB --- DB --- normal code With one command you can go through the whole program ^QA Value(s) to search for? CD 6789 Command? 3BB2BI Options? GN Iæ  yoõ havå á largå program¬  thió commanä maù noô bå particularlù  fast¬ � buô iô caî dï á loô foò yoõ (whilå yoõ havå á cuð oæ coffee). Afterwards, ^QB helps you to browse through checking if you wish. -------------------------------------------------------------------------- .cð 25 Š Moving forward or back by just a few bytes Á digiô (DON'Ô presó thå Gï tï thå starô oæ thå prograí (^QR© anä uså ^QÆ anä ^Ì tï finä referenceó � tï  thå addresó oæ thaô displaù routine®  Probablù jusô beforå eacè  calì � you'lì finä á LÄ DE¬ pickinç uð thå addresó oæ thå strinç tï bå displayed® � Iæ  so¬  follo÷ iô (^F© tï seå whaô iô sayó anä thuó geô á cluå abouô  thå � purposå  oæ thå codå yoõ jusô camå froí (^QV)®  Inserô á commenô iî  thió � code®  Better¬  givå  thå  starô oæ thå strinç á symboì namå sï  yoõ  seå � somethinç like LÄ DE,T738 msç Disë full nexô timå yoõ displaù thió piecå oæ code® Morå important¬ you'lì alsï seå � wheî anotheò piecå oæ codå useó thå samå string. -------------------------------------------------------------------------- .cð 25 Somå  programó havå á generaì routinå tï calì BDOS¬  anä thió  routinå  ió � calleä  bù  thå  routinå tï outpuô á string®  Yeô  otheò  variationó  arå � common¬  foò example¬ CALLó followeä bù in-linå parameters® Wheî yoõ finä � sucè á routine¬ uså ^QÆ tï finä everù CALÌ oæ thaô routinå anä adä controì � pointó  tï  correcô  thå  disassembly®  ^QÁ allowó  yoõ  tï  repeaô  thió � automatically. Á  probleí tï watcè forº  somå programó havå initialisatioî codå whicè  ió � lateò  reuseä  aó  á  buffeò oò something®  Sucè duaì  usagå  (whicè  waó � probablù  donå iî thå originaì sourcå texô bù reORGing© ió  difficulô  foò � anù  disassembleò tï sorô out¬  anä I'í stilì wonderinç ho÷ tï  geô  rounä � thió iî DazzleStar® Ideas? -------------------------------------------------------------------------- .pa Š Installatioî Notes ------------------ Funnù  thinç abouô installatioî directionó -- havå yoõ noticeä ho÷ they'rå � thå  firsô  thinç  yoõ wanô tï locate¬  yeô  they'rå  alwayó  tuckeä  awaù � somewherå near thå bacë oæ thå book? Sorrù  iæ  iô tooë yoõ á whilå tï finä thió section¬  buô É  figureä  thaô � afteò you'vå installeä DZ¬ yoõ wouldn'ô wanô thió infï aô thå starô oæ thå � helð file¬ anä havå tï skið pasô iô everù time. First¬  thå baä news® Iæ yoõ havå onlù 48K oæ memorù iî youò machinå (oò � less)¬  it'ó unlikelù you'lì bå ablå tï ruî DazzleStar® However¬ thå gooä � newó  ió  thaô you'rå noô limiteä tï disassemblinç programó thaô fiô  intï � memorù TOGETHEÒ witè thå disassembler®  Thió freedoí ió duå tï thå waù iî � whicè DÚ readó thå prograí tï bå disassembled¬ usinç á paginç techniquå tï � ensurå thaô mosô oæ thå accesseó dï noô requirå iô tï re-reaä thå disk. -------------------------------------------------------------------------- .cð 25 Thió filå ió calleä DZMSGS.OVR®  Wheî yoõ ruî DZ.COÍ (thå DazzleStaò maiî � program)¬  thió  "help¢  filå DZMSGS.OVÒ shoulä bå locateä oî thå  currenô � drive¬ otherwiså you'lì geô á messagå tï reminä you. DZ.COÍ  caî bå renameä tï anythinç yoõ prefer®  É suggesô yoõ retaiî  thå � conventioî  thaô thå namå starô witè DZ¬  becauså thió makeó iô simplå  tï � copù  alì  thå fileó withouô forgettinç onå (foò  example¬  bù  usinç  thå � commanä PIÐ x:=y:DZ*.*[V]¬ or¬ iæ yoõ prefeò SWEEÐ {anä whï doesn't?}¬ alì � thå  fileó wilì bå adjacenô iî thå displaù oæ thå directory¬  makinç  theí � easù tï tag)®  Ne÷ SWEEÐ eveî giveó yoõ wildcarä tagging¡  Iæ yoõ renamå � DZ.COÍ yoõ won'ô bå ablå tï uså DZINSTAL.COÍ tï modifù it. -------------------------------------------------------------------------- .cð 25 Thió  filå ió iî WordStaò "document¢ format¬  anä thereforå ió mosô easilù � printeä bù usinç WordStar®  Iæ yoõ don'ô havå WordStar¬ yoõ caî stilì geô � á  gooä listinç bù usinç á printeò (oò CP/Í BIOS© whicè ignoreó  thå  higè � biô  oæ characters®  Somå printeró treaô thå higè biô aó á signaì tï  uså � italics¬  iî  whicè caså yoõ caî geô á tolerablù readablå printout¬  oò  á � ratheò  betteò onå bù discoverinç aî escapå sequencå whicè turnó ofæ  thió � feature® Foò aî Epsoî printer¬ trù  PIÐ LST:=TTY: However¬  somå printeró treaô thå higè biô aó graphiã characters¬  withouô � anù meanó oæ suppressinç them¬ iî whicè caså yoõ won'ô havå mucè joy® Try PIÐ DZMSGS.TXT=DZMSGS.OVR[Z] anä prinô thå ne÷ filå DZMSGS.TXÔ thaô PIÐ produces®  I'vå noô trieä thió � myself¬ buô I'í tolä iô works. -------------------------------------------------------------------------- .cð 25 Š You should have the following files on your distribution disk : DZ.COM DZMENU.OVR DZMSGS.OVR DZINSTAL.COM DZ-DXERS.DOC Moreover¬ tï ruî correctly¬ thå .OVÒ fileó musô bå oî thå currentlù loggeä � disë  (noô essentiaì wheî you'rå sï familiaò witè DazzleStaò thaô yoõ  caî � worë withouô menuó anä help). -------------------------------------------------------------------------- .cð 25 Screeî  sizå  ió assumeä tï bå noô morå thaî 2µ rowó oæ 8° columnó (8°  ió � thå onlù widtè supported)®  Iô ió expecteä thaô mosô screenó wilì havå 2´ � rows¬  thougè perhapó 1¶ woulä bå sufficienô (thougè irritatinglù smalì iæ � yoõ  alsï wanô thå menus)®  Aî Epsoî PX-¸ (onlù eighô rows© caî  bå  useä � successfullù buô nï menõ displaù ió possible. DZINSTAL.COÍ ió introduced®  Yoõ caî guesó whaô iô does¬ buô thió versioî � ió  somewhaô limited®  Iô offeró á menõ tï chooså whicè machinå yoõ have¬ � anä  theî modifieó DZ.COÍ appropriately®  Iæ youò machinå ió noô  oî  thå � lisô  (á  highlù likelù situation!© theî yoõ neeä somå otheò  method®  Tï � makå  thió easier¬  somå oæ thå earlù locationó iî DZ.COÍ arå useä iî  thå � samå waù aó WS.COÍ (WordStaò 3.3)®  Yoõ caî eitheò patcè DÚ "bù hand¢  oò � uså thå WordStaò 3.³ installatioî program¬ iæ yoõ havå it® Otheò versionó � oæ  WordStaò  wilì NOÔ worë -- iî particulaò versioî 3.°  definitelù  useó � differenô locations¬ anä therå ió nï poinô iî yoõ tryinç it® -------------------------------------------------------------------------- .cð 25 DÚ  doesn'ô  supporô  manù oæ thå featureó thaô WordStaò  does¬  sï  therå � aren'ô toï manù locationó tï patch. 18A.. A message (e.g. terminal type), ending in null 232 Screen height (only 24 or 25 supported) 233 Screen width (only 80 supported) 234 Lead-in for cursor positioning (no. of bytes, followed by string) 23D Sequence between row and column (nothing for most terminals) 242 Seq after cursor positioning (nothing for most terminals) 247 Non-zero for column before row for cursor positioning 248 Line offset (e.g. 0 or 20h for top row) 249 Column offset 267 Inverse video sequence 26E Inverse video sequence 293 Non-zero if high bit is inverse video 34D Initial help level -------------------------------------------------------------------------- .cð 25 ŠROUGÈ  NOTES..®  Thå  followinç  materiaì ió beinç  integrateä  intï  thå � documentation¬  buô  ió noô yeô completed®  Ratheò thaî leavå yoõ withouô � it, here it is in its temporary form. Type-aheaä  similaò  tï  WordStaò  introduced¬  i.e®  internaì  screeî  ió � updated¬ buô reaì screeî ió noô updateä untiì enä oæ type-ahead® Possiblå � tï typå aheaä durinç initiaì banner. Wheî  typinç  ahead¬  althougè screeî updatå ió suppressed¬  thió  ió  no÷ � modifieä  sï  thaô  thå statuó linå ió  alwayó  showî  immediately®  Typå aheaä accepteä durinç mosô lonç disë operationó (e.g®  ^KR)¬ buô manù � machineó locë ouô interuptó durinç disë accesses®  Iæ youò machinå ió onå � oæ them¬ typå slowlù wheî thå disë ió running¬ becauså thå typå aheaä codå � caî onlù bå calleä iî betweeî thå accesó oæ eacè disë sector. -------------------------------------------------------------------------- .cð 25 ^Õ accepteä iî type-ahead¬  tï aborô currenô operation®  Displayó messagå � '**ª  Interrupteä **ª Presó ESCAPE'¬  anä ignoreó alì inpuô untiì  escapå � key. ^K× anä ^KÐ demanä addresó ranges¬  sï partiaì .MAà fileó anä listingó � may be obtained. Fulì  .MAà fileó anä listingó (obtaineä bù answerinç thå querieó foò firsô � anä lasô addresó bù hittinç © includå "EQU¢ lineó foò anù  symboló � outside the program area. Inverse video introduced. -------------------------------------------------------------------------- .cð 25 Secondarù menuó enhanceä tï displaù variablå information®  Iî particular¬ � ^OF¬  ^OU¬  ^OÓ sho÷ currenô settingó OÎ oò OFF.� Displaù  oæ  heø  dumð  windo÷  rationalised®  Onlù  refresheä  wheî  thå � disassemblù windo÷ haó moveä outsidå thå limitó oæ thå heø dumð window¬ iî � otheò  wordó  timå  isn'ô wasteä redisplayinç thå heø dumð  windo÷  unlesó � doinç sï woulä sho÷ yoõ somethinç new. Visuaì  flaç  (***© puô aô enä oæ statuó linå wheî belì ió soundeä  (helpó � useró whï don'ô havå aî audiblå ctrl-G)®  Flaç ió removeä wheî nexô majoò � commanä ió starteä (i.e® noô removeä whilå simplù movinç thå cursor). -------------------------------------------------------------------------- .cð 25 Š Sizå oæ configurinç areá (DZ.COÍ 103..350© reduced®  Thió ió importanô iæ � yoõ arå usinç WSINSTAÌ tï dï configuring®  Dï noô saù anythinç abouô youò � printer®  Iæ  theså  locationó (beyonä 350© arå modifieä thå resultó  arå � unpredictable and likely to be disastrous. ^Q anä ^QÐ implementeä -- finä (anä displaù from© nexô controì poinô (QB© � oò nexô symboì (QP). -------------------------------------------------------------------------- .cð 25 Heø  displaù  windo÷ waó alwayó aô leasô onå  line®  Fullesô  disassemblù � windo÷  (^OC©  no÷ completelù suppresseó heø windo÷ tï geô maximuí  space¬ � particularlù desirablå oî thå PX-¸ anä otheò smalì screens. Disassemblù  windo÷  waó alwayó aô leasô onå line®  Fullesô  heø  displaù � (^OR© no÷ completelù suppresseó disassemblù windo÷ tï geô maximuí space. Display of control window updated after ^KR completes. ^Ö  commanä  introduced®  Relateä tï ^F¬  buô Viewó insteaä  oæ  Follows® � Useful when choosing names for messages, for example. Try it and see. -------------------------------------------------------------------------- .cð 25 Changeó  madå tï heø dumð iî anticipatioî oæ narroweò heø dumð foò Osbornå � anä otheò screenó lesó thaî 8° charó wide®  However¬  iô ió expecteä thaô � sucè  machineó wilì supporô á virtuaì screeî aô leasô 8°  charó  wide¬  iî � otheò  words¬  machineó whicè cannoô scrolì sidewayó tï vie÷ 8° charó wheî � neeä  bå  wilì noô bå supported®  Changeó noô completeä -- contacô må  iæ � this is of interest to you. ^QÆ  anä ^QÁ commanä strinç no÷ allowó ^N¬  whicè ió puô intï thå  commanä � string as . Nameó (botè symboló anä comments© no÷ treaô ¥ anä £ aó speciaì characters® � £ ió treateä aó á 4-digiô heø strinç deriveä froí thå currenô address¬ anä � ¥ ió treateä aó thå typå oæ thió symboì (i.e® thå firsô letteò oæ thå fakå � symboì  thaô  waó  aô  thió point)®  Thió ió  usefuì  iî  repetitivå  ^QÁ � commands, and in macros {! macros are not yet implemented !}. However¬  £ anä ¥ arå noô recognizeä bù ^KR¬  anä wilì bå lefô iî thå namå � untranslated® -------------------------------------------------------------------------- .cð 25 ŠMultiple comments allowed. ^Y for delete comment or symbol on current line ^KÑ  askó  foò Y/Î verificatioî beforå exiting¬  iæ symboì tablå haó  beeî � changeä sincå iô waó lasô saved®  -------------------------------------------------------------------------- .cð 25 ^KS¬  ^KQ¬ anä ^KØ changeä tï uså thå disë morå safely® Insteaä oæ simplù � overwriting xyz.DZ, the following is done: erase xyz.DZB (if any)           erase xyz.$$$ (if any)           save current symbol table in xyz.$$$           rename xyz.DZ (if any) to xyz.DZB           rename xyz.$$$ to xyz.DZ Thió  sequencå  avoidó problemó iæ yoõ geô á baä sectoò whilå writinç  thå � ne÷ filå (aô leasô yoõ stilì havå youò previouó version¬ whereaó thå oldeò � methoä  haä alreadù destroyeä it)®  Thå disadvantagå ió thaô you'rå  morå � likelù tï bomâ ouô witè á "Disë Full¢ message®  Makå surå thaô therå ió á � reasonablå  amounô oæ rooí oî youò disë beforå enterinç thå  disassembler® � Whaô ió á reasonablå amount¿ Iæ yoõ alreadù havå oî youò disë á savå filå � (.DZ© correspondinç tï thå prograí yoõ arå planninç tï disassemble¬  checë � itó  size®  Ensurå therå ió aô leasô aó mucè spacå again¬  pluó á fe÷  K � extrá  (saù 4KB© tï allo÷ foò ne÷ definitionó thaô yoõ adä tï  thå  symboì � table. -------------------------------------------------------------------------- .cð 25 ^OB¬  ^OP¬  anä ^OÔ introduced®  Displayó controì table¬ symboì table¬ oò � both® ^à stayó iî thå ne÷ mode¬ allowinç scrollinç forward¬ anä reverô tï � normaì oî commanä ^OI. Programó  whicè  builä .DÚ fileó (foò examplå froí thå outpuô  oæ  á  linë � editor©  maù indicatå thå typå oæ symboì aó '?'®  Sucè symboló wilì matcè � alì referenceó tï thå valuå defined® ^KÓ etã wilì writå thå '?§ ouô tï aî � updateä .DÚ file. -------------------------------------------------------------------------- .cð 25 Š Fakå  symboló werå generateä aô thå timå oæ definition¬  anä storeä  iî � thå  symboì  tablå aó fivå characteò names®  Ne÷ versioî saveó  symboì � tablå spacå bù storinç theí aó null¬ anä expandó theí wheî displaying.� Afteò  printinç (^KP© thå screeî ió noô properlù wipeä clean®  Thió ió  á � purelù cosmetiã problem¬  youò symboì tablå etã ió intact®  It'ó probablù � alsï  truå foò ^KW¬  whicè shareó á loô oæ codå witè ^KP¬  buô ^K× haó noô � beeî checkeä recently. Iæ thå codå beinç disassembleä haó tableó oæ labeló oò relativå referenceó � (iî otheò words¬ areaó defineä bù ^BÌ oò ^BÒ aô thå start)¬ thå autosymboì � commanä (^PA© doesn'ô generatå symbols® Fixed now? -------------------------------------------------------------------------- .cð 25 LÄ IX,nnnî ió disassembleä witè 'nnnn§ aó aî T-symbol® I'vå recentlù comå � acrosó  codå wherå á "returî address¢ waó beinç kepô iî IØ ratheò thaî puô � iô oî thå stack®  However¬ É stilì thinë iô ió besô tï makå thaô forí uså � á T-symbol® Defaultó  (iî  squarå brackets© foò questions®  Yoõ caî hiô  , nor by ^PA). -------------------------------------------------------------------------- .cð 25 Further work needed:- Additioî needeä (perhapó iî DZINSTAL© tï allo÷ checkinç eacè  distributioî � filå  foò correcô checksum®  Meanwhilå yoõ arå recommendeä tï uså CRC.COÍ � tï checë thå files. A file DZ-CRC.LST will be included in the suite. Somethinç  likå thå followinç examplå oæ aî indeø woulä bå nicå aô  thå � starô oæ "help"¬ anä randoí accesó intï thå helð file. -------------------------------------------------------------------------- .cð 25 ŠHELP INDEX (not yet implemented) C Cursor movement K File commands O Onscreen: how the screen is arranged Q Quick: move quickly to another part of the file J Help levels (suppressing and restoring help) P Symbol table (how to define names for things) B Control table (control points decide how disassembly is done) I Installation for different terminals U Typical use 3 Symbol display options 4 Automatic building of a disassembly of all or part of the file 9 Complaints Z Exit to CP/M (and what to do to restart again later) -------------------------------------------------------------------------- .cð 25 Iæ  demanä warrantó it¬  perhapó aî extrá filå wilì bå addeä tï  givå  twï � summarieó  oæ commandó (a© iî alphabetiã order¬  (b© groupeä bù  function® � Don't bother, nobody's interested. -------------------------------------------------------------------------- .cð 25 Self-relocating code -------------------- ^BÏ generateó á .PHASÅ directive®  Thuó á numbeò oæ .PHASÅ directiveó caî � bå puô amongsô thå code¬  buô therå ió stilì thå restrictioî thaô thå filå � tï bå disassembleä musô bå iî ascendinç addresó order® ^BÏ allowó disassemblù oæ somethinç whicè haä .PHASÅ directiveó thaô made .---------. into .---------. | | _______ | | .OVR file '---------' |---------| At time ____ | | of exec- .---------. / |---------| ution | | / ___ | | '---------' / '---------' / .---------. / | |/ '---------' -------------------------------------------------------------------------- .cð 25 Š ^BÏ doeó noô copå witè programó thaô shufflå blockó around¬ oò executå twï � blockó  oæ codå (froí differenô partó oæ thå file© aô thå samå addresó (aô � ruî time)®  Sï ^BÏ doeó help¬  buô it'ó noô thå fulì answer®  Again¬ thå � useò  interfacå wilì bå thå key®  Anotheò probleí (perhapó  related?©  ió � programó  thaô  savå spacå bù puttinç initializatioî codå wherå  variableó � wilì lateò bå stored® Ideas¬ anyone? -------------------------------------------------------------------------- .cð 25 Symbol table access ------------------- Searchinç  thå symboì tablå haó beeî á perenniaì probleí iî thå desigî  oæ � DazzleStar®  Somå  oæ  thå  typeó  oæ  accesó  tï  iô  requirå  á  lineaò � arrangement¬  tï answeò questionó likå "É havå á symbol¬  whaô ió thå nexô � symboì (iæ any© aô thió address?¢ oò "Whaô ió thå nexô symboì aô oò  abovå � such-and-sucè  aî  address?"®  Buô somå oæ thå questionó  concerî  randoí � addresseó (oò values© -- imaginå thå accesseó tï thå symboì tablå wheî thå � following is being disassembled: LD C,9 LD DE,(9ABC) CALL 5 LD A,(80) OR A JP NZ,471F -------------------------------------------------------------------------- .cð 25 Aó  lonç  aó thå symboì tablå ió fairlù smalì itó desigî  doesn'ô  matter® � Buô  tryinç  tï finä randoí valueó iî á largå tablå ió á classiã  problem¬ � anä  arranginç thå searcè linearlù ió abouô thå slowesô waù oæ  doinç  it® � Thå  effecô  waó verù evidenô iî prototypeó oæ  DazzleStar¬  resultinç  iî � verù noticablå hesitationó durinç screeî displaù iæ thå symboì tablå  had¬ � say¬ teî thousanä byteó oæ usefuì information. -------------------------------------------------------------------------- .cð 25 ŠThå Feb8µ versioî haä somå limiteä "smarts¢ tï speeä uð whaô waó otherwiså � á  lineaò  search®  Sincå then¬  whilå solvinç thå probleí  oæ  insertinç � symboló consistentlù anä somå otheò problemó iî thå display¬ É removeä thå � "smarts"¬ anä thå onlù thinç whicè no÷ helpó speeä thå searcè ió á pointeò � intï  thå  tablå aô thå addresó wherå thå mosô recenô  controì  poinô  waó � found®  That'ó  ho÷  iô  ió foò Apr85¬  sï ambitiouó useró maù  finä  thå � hesitationó  irritatinç  wheî  theù  disassemblå  somethinç  thå  sizå  oæ � DazzleStaò  itself¡  Takå heart¬  É dï intenä tï improvå thió  situation® � Thå  plaî  ió tï keeð aî indeø oæ thå symboì tablå (perhapó  aî  arraù  oæ � severaì  dozeî  pointeró oò eveî severaì hundred© tï speeä uð thå  search® � Thå  indeø wilì bå updateä "foò free¢ -- scanninç thå symboì  tablå  whilå � waitinç  foò yoõ tï hiô anotheò key®  Onlù wheî usinç type-aheaä wilì thå � searcè sometimeó havå tï regresó towardó thå simplå lineaò scan®  Iî facô � thå codå (foò scanninç thå tablå whilå waiting© ió alreadù iî  Apr85¬  buô � thå indeø itselæ ió noô yeô implemented. -------------------------------------------------------------------------- .cð 25 Wishes The following are fundamental things that I've yet to see any disassembler solve. Anyone disagree? (I hope so!). VALUES (e.g. LD HL,1000 rather than LD HL,TABLE) ------ Iô woulä bå verù nicå tï bå ablå tï saù whetheò somethinç ió á valuå oò aî � address®  Thå maiî probleí (aó haó sï ofteî beeî thå caså witè developinç � DZ© ió tï definå á suitablå waù foò thå useò tï specifù what'ó what® Oncå � yoõ  (deaò  reader!© suggesô á reallù neaô desigî foò thå useò  interface¬ � thå  implementatioî wilì bå thå easù bit®  I'ä reallù likå tï  heaò  somå � ideas®  STOÐ PRESSº  ..®  Responså tï thió sincå firsô publishinç iô many� weekó agï haó beeî ZERO®  Hellï ..® HELLÏ ..® IÓ THERÅ ANYONÅ THERE?¿ ..® � Damn¬ thå line must have gonå dead. -------------------------------------------------------------------------- .cð 25 Š DZINSTAL development plans... Nï  waù É caî hopå tï keeð uð witè everù terminaì type¬  sï DZINSTAÌ  wilì � jusô  havå  á smalì selectioî oæ thå mosô populaò oneó (populaò  witè  me¬ � thaô  is)®  Don'ô  leô thaô puô yoõ ofæ sendinç må thå speã foò youò  owî � SuperWhizzo¬  buô  takå carå tï specifù EXACTLÙ whaô modeì you'rå  talkinç � abouô  (anä ho÷ tï seô thå switcheó iî thå terminal¬  oò whaô  versioî  oæ � BIOÓ yoõ have¬ etc)® Jusô  iî  caså yoõ havå aî unusuaì terminal¬  á lateò versioî oæ  DZINSTAÌ � mighô alsï havå anotheò waù rounä thå problem® Assuminç yoõ havå WordStaò � theî you'lì bå ablå tï sho÷ youò configureä WordStaò tï DZINSTAÌ sï iô caî � patcè DÚ tï geô thå samå effect®  (Iæ yoõ don'ô havå WordStar¬ it'ó quitå � á  neaô  worä  processor¬  whicè anticipateä  DazzleStar'ó  commandó  witè � remarkablå  prescience¬  makinç iô á breezå tï learî oncå you'vå  mastereä � DazzleStar). -------------------------------------------------------------------------- .cð 25 There'ó  á  catch®  Manù configureä WordStaró makå uså oæ patcheó  tï  dï � wondrouó thingó (foò example¬  mappinç iî anä ouô youò videï ram¬  iæ youò � machinå  doeó thoså kinä oæ tricks)®  Alas¬  DÚ doesn'ô supporô  somå  oæ � theså  featureó (yet?© anä sï thingó maù noô gï aó smoothlù aó you'ä wish® � É onlù havå informatioî oî thå configuratioî areá oæ W/Ó versionó 3.°  anä � 3.³ -- iæ yoõ havå á differenô versioî I'ä appreciatå anù infï oî it. Iæ yoõ havå difficultieó configurinç DazzleStaò foò youò machine¬ I'ä likå � tï heaò froí you¬  eitheò tï solvå thå probleí iî á futurå version¬  oò aô � least to warn others.� -------------------------------------------------------------------------- .cð 25 Feedback I'ä reallù likå tï geô youò furtheò ideaó anä comments¬ whetheò generaì oò � detailed¬ positivå oò negative¬ oî anythinç concerninç DazzleStar. Pleaså contact: Johî Washington Washingtoî Electronicó anä Systemó Ltd 3³ Turnoaë Avenue¬ Woking¬ Surrey¬ GU2² 0AJ¬ UK. É  can'ô guaranteå you'lì geô á reply¬  (thougè enclosinç á stampeä  self-� addresseä  envelopå woulä improvå youò chances)¬  buô youò commentó reallù � wilì bå reaä carefullù anä giveî seriouó thought. I'í registereä oî CBBÓ Londoî Wesô (089µ 420164)®  Aô thå momenô É  checë � thå  maiì boø therå mosô weeks®  Anä yoõ maù finä iô interestinç tï checë � therå  anä  seå ho÷ otheò useró oæ DazzleStaò arå  gettinç  on®  However¬ � you'rå  morå  likelù tï geô á replù froí må iæ yoõ uså thå  olä  fashioneä � pen-and-inë postaì system. -------------------------------------------------------------------------- .cð 25 Š Disclaimeò anä Warning Thå  authoò wilì havå nï liabilitù oò responsibilitù iî thå evenô  oæ  anù � losó  oò  damagå causeä oò allegeä tï bå causeä directlù oò indirectlù  bù � thió program. Thió  versioî oæ thå prograí ió iî thå publiã domain¬  howeveò thå  authoò � retainó  alì copyrightó tï thió prograí anä itó  associateä  files®  Thió � prograí maù noô bå solä bù anù partù unlesó specificallù authorizeä bù thå � author¬  Johî Washington¬  iî writinç beforå thå firsô copù ió sold® Thió � prograí  maù noô bå includeä iî anù otheò packagå foò sale¬  eveî iæ  thió � prograí ió indicateä aó beinç iî thå publiã domain®  Alì oæ thió  warninç � applieó  tï  anù deriveä oò modifieä copieó oæ thió program¬  anä  tï  anù � deriveä  oò  modifieä  copieó oæ thå associateä  files®  Anù  deriveä  oò � modifieä  copieó  oæ  thió  prograí musô noô  havå  anù  copyrighô  noticå � violateä changeä oò altered¬ anä thió warninç musô bå included. Pleaså reporô anù violationó tï thå author® Thanë you. -------------------------------------------------------------------------- .cð 25 FURTHEÒ WARNING É woulä bå verù surpriseä iæ DazzleStaò overwrotå youò systeí  tracks¬  oò � arbitrarù  partó oæ thå disë (anä woulä VERÙ mucè wanô tï heaò abouô iô iæ � iô happened)®  Thå mosô likelù causå oæ accidentó ió througè thå lacë  oæ � anù  warninç beforå overwritinç aî existinç file¬  foò example¬  usinç ^K× � wheî á .MAà filå oæ thaô namå alreadù exists® Nï  precautionó  againsô  computeò  oò  disë  erroò  arå   included®   Iî � particular¬  DazzleStaò  wilì  faiì iæ thå disë iô ió writinç  tï  becomeó � full®  Aó witè anù otheò software¬ makå BACK-UÐ COPIEÓ OÆ ANÙ FILEÓ YOU'Ä � REGREÔ LOSING®  Anä dï iô REGULARLY®  Nï softwarå ió prooæ againsô  heaä � crashes® -------------------------------------------------------------------------- .cð 25 Š MORE PROGRAMS Iæ you'ä likå tï seå morå programó froí thå samå stable¬  pleaså encouragå � må  bù SENDING A CONTRIBUTION®  É aí stronglù againsô high-priced¬  copy-� protecteä software® Thå decisioî whetheò tï continuå mù presenô policù oò � tï  publisè  softwarå  aô industry-standarä priceó  wilì  depenä  oî  youò � reaction. -------------------------------------------------------------------------- .cð 25 WHAT ELSE? Otheò disassemblers¬ witè similaò specifications¬ arå undeò development® Iæ  sucè á producô maù bå oæ seriouó interesô tï you¬  writå anä  enquire¬ � statinç  whicè  microprocessor¬  anä witè whicè  operatinç  system(s©  thå � disassembleò ió tï run®  Iô ió noô necessarù foò á disassembleò tï ruî oî � thå  micrï  foò  whicè iô ió disassemblinç code®  Foò  example¬  aî  805± � disassembleò  coulä  ruî  oî CP/M-80®  Á  6800°  disassembleò  might¬  iî � practice¬  bå morå usefuì oî á hosô usinç á 68000¬  but¬  iî principle¬ iô � coulä ruî oî MS-DOS¬ CP/M-86¬ CP/M-80¬ oò eveî youò favouritå mainframe. Foreigî  languagå versionó mighô alsï bå considereä iæ therå ió sufficienô � demanä (Frencè oò Germaî mosô likely)® Correspondencå iî Frencè oò Germaî � ió alsï OK. -------------------------------------------------------------------------- .cð 25 Credits Mù  considerablå thankó tï thoså whï tooë thå timå anä troublå tï telì  må � whaô  theù diä anä didn'ô likå abouô DazzleStar®  Youò owî  commentó  anä � ideaó coulä alsï havå á biç effecô oî futurå improvements¬ BUÔ ONLÙ IÆ YOÕ � SEND THEM TO ME. Thankó  especiallù  tï Rory¬  whoså effortó havå neveò flaggeä  oveò  manù � months, and Roger, John, Phil, Chris, Bob, Steve, William, Gill and Katie. -------------------------------------------------------------------------- .cð 25 Š John Washington Washington Electronics and Systems Ltd 33 Turnoak Avenue, Woking, Surrey, England GU22 0AJ -- End of Help File -- -- NOW PRESS ^U -- -------------------------------------------------------------------------- .cð 25 -------------------------------------------------------------------------- .cð 25 Credits Mù  considerablå thankó tï thoså whï tooë thå timå anä troublå tï telì  må � whaô  theù diä anä didn'ô likå abouô DazzleStar®  Youò owî  commentó  anä � ideaó coulä alsï havå á biç effecô oî futurå improvements¬ BUÔ ONLÙ IÆ YOÕ � SEND THEM TO ME. Thankó  especiallù  tï Rory¬  whoså effortó havå neveò flaggeä  oveò  manù � months, and Roger, John, Phil, Chris, Bob, Steve, William, Gill and Katie. -------------------------------------------------------------------------- .cð 25 Š John Washington1!\ !ÍÇ2*.+"{46ë![5Ù+ ~y°Â!ë"y4Ã!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7Í1!\ !ÍÇ2*.+"{46ë![5Ù+ ~y°Â!ë"y4Ã!4¾Èw_ÍÉ#~þ ʸ ÞAÉ:4É~ÍÞ~#þ ¼ > ÍÞÉ\ þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!)ͼ ÃÃÍþÿÀ!Ðͼ Ã:5Í¡ É:6þÈþÉ:6Í¡ É:7ÍÃ1Í/ÍRÍ£:Z·Ê !H 4~þÂ?! ˆÍÇ2rÍGÍïÍDÍ‘$ÃÍù%*ª."p&:©.æ2r&Íþ%:C·Ä[!Í:A Í' :B Í' ÈÍGï Z80MR VER 1.2 FILE 12345678 þ?Ê» w#ÂÒ É! ͼ Ã? ÍþÿÀ!¹ͼ ÃÍþÿÀ!) 0000 ERROR(S) ASSEMBLY COMPLETE !"þ*y4~·Ä!þ}´ÂïÉë! ~·ÈåÕ¾#ÊÑáÚ Nwy#Â"þà Íj ͆Íæ—go2Z2ñ2C "D "F "A 2ã&"å&"ç&"é&É!+~·ÈÍm~#·ÂdÃ^F#N#"Ÿ>ð¡2>ÿ2¡*y4ë*Ÿ·È!~ ©ÕÅÌ¢ÁÑ! ëÃ:¡<2¡ÂÈÍïÍï*ŸëÍëÕƒÍÑÍïÍï:¡þÌïÍûÂÒ> ÍûÍÍ> ÍûÉ> Íû>2¡> ÕÍÑÉ:·ÊPÃGÍõæþ Ú$ÆÆ0ÍûñɃ€UNDEFINED@@DOUBLE DEFINEDERRORREDEFINEDPUBLICEXTRN#ASEGCSEGDSEG SYMBOLSåÕÍÌ!Z w#·Â”Ñ!I 4áÉÍŒþ*Êø!ÜåÍ�Ín!·Í.:C ·À!èÍ.*_ë:þ Âè:þ Â#'É:C ·ÂôÍãþ;Êôþ ÊôÍð&ÍmÉ:C ·Âô!ÜåÍÝ2Íãë"_!Í.áÃôEJECT AHEADIN:INCLUD“LIST WMACLIS^—2I ÍIÉ:H ·ÈÕrÍPÑÉÍe2BÉÍe2<É—2I ÍÝ2ë"_!|Í.Íû&>ÿÉOFF �ON �>É>ÿÉ:ñ·Â!!—w# !# ÕÍÇ2Ñ: 2!þ:ÂØÍ93ÖAÚþÒ<2Íþ.Âõ!"> w#w#w!"ÍÍãþ Êþ;ÊÍû&ÉÕÍÍÑ!ñ4ÉÍ93Í3Àw#ÂÍ93É LIB¾ÂH# Â4^#Vá*_ëéØ~·È ##Ã.!òÍÀþÊ¡þ ʃw#þ Âo>°GxþPÚWÍÀþÊ¡þ Âv6 #6 #6òÉÍÒ2ÍãÍÝ2Íãë"_ëÉ:ñ=òº!ò6 #6E#6N#6D#Ã2ñÃRÍÙæþÊÀþ Ðþ Èþ ÈþÈÃÀ:ñ·Ê# Æþ Êãþ ÊãÉÍÍãþ Êþ;ÊÍû&ÉÕÍÍÑ!ñ4ÉÍ93Í3Àw#ÂÍ93É LIB¾ÂH# Â4^#Vá*_ëÍÈ : þEÐ: þXÊÈ ÐþEÒÈ Õ·ÊkÍ:Ã_ÑÉJ :I ·È:H ·ÊÌ*¿}´>+ʉ2Y :J þ Ê©:B Æ'2B :A Î'2A ÍGÃÌ:B·ÊÌ:8/*C ¥ÂÌ*¿}´o:</¥ÂÌÍP!J >6 #=ÂÑ2I 6 #6 #6!P " ÉåÕÅõ: þX :0·Ê Í !ñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í' ÑáÉÍ* õæþ Ú8 ÆÆ0w2I #ñÉ: þEÐ: þXÊÈ ÐþEÒÈ Õ·ÊkÍ:Ã_ÑÉJ :I ·È:H ·ÊÌ*¿}´>+ʉ2Y :J þ Ê©:B Æ'2B :A Î'2A ÍGÃÌ:B·ÊÌÍÍÒÃÍÈ ÃÍj ÍD͆ÉÕ·ÄÔ ÂÉ ÑÉåÕÅõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_ÍñÁÑáÉñõÍ' " ñÁÑáÉÍmÍÑ&åÕë!K zÍ' {Í'åÕ*Ô >ô¤Ê\ Å÷ ÕÅÍÖ Í·ÁÑÊO >ÃX !€ëÂ4 Á!å÷ ~á#"Ô ÑáÉ!"Ô ! Ö !ÍÇ2!ß 6A#6Z#6M—2ö : Ö@Úž Êž þÒž 2Ö Ö Í­ þÿÀ¼ ø Õ€ÍÑÃINPUT FILE OPEN ERROR Åõ! þ Âî > ÍÔ ~æÂà Ãü 4þ Âö 6_åÕÅõ>€*ã¥Äñåwá#"ãÁÑáÉÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’Ê’þÒ’2ååÍåÍ!"ãþÿÀ±ø OBJECT FILE CREATE ERROR HEXOBJ>Í÷ÍåÍÉ~æÂà Ãü 4þ Âö 6_åÕÅõ>€*ã¥Äñåwá#"ãÁÑáÉÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITE ERROR >É2D: þZÂZ>É2÷2ÒÉ! å!ÍÇ2!Ì>·Êr!ÏîÍÇ2—2: Ö@Ú’åÕ*>ô¤Ê¿Å:ÕÅÍÍ·ÁÑʲ>û!€ë—Á!å:~á#"ÑáÉ!"—29Í­ þÿÀ!ñÕ ÍÇ2Ñø 12345678ABC INCLUDE FILE OPEN ERROR ÍåÍ!·È/ø OBJECT WRITåÕÅõ>€*¥ÄW7ñåwá#"ÁÑáÉ7ÍÍ!·Èrø PRINT WRITE ERROR >É2†: þEÚœ>É2:2É! !ÍÇ2!6P#6R#6N—26: Ö@ÚÊÊÊþÒÊ2ÍÍ!"þÿÀéø PRINT FILE CREATE ERROR >Í:ÍWÍÉÍåÍ!·È/ø OBJECT WRITåÕÅõ>€*¥ÄW7ñåwá#"ÁÑáÉ7ÍÍ!·Èrø PRINT WRITE ERROR >É2†: þEÚœ>É2:2É! !ÍÇ2!6P#6R#6N—26COND \ELSE ‚END ÆENDC ¢ENDIF ¢IF \ASEG rCSEG wDATA ÙDB ÙDDB DEFB ÙDEFL JDEFM ÙDEFS 5DEFW $DS 5DSEG |DW $EJEC AENDM EQU QEXTRN ÙLIST LOCAL MACRO ¹NAME •NLIST ORG XPUBLIC¥SPAC TITLE X*¿}´Ä÷&À:þ Ì÷&ÈÕ!ÇÍÒÑÌ÷&È!Å�þ# Í93Í3Âûw#Ãêq Ì÷&#þ,Êá6ÍÜÍ2ÍRÕÍŒÍmÑÕÍ�!XÍÒÑÊzÕÇÍÒÑÊs*4þ ÂUxþÚBp#Ã@Ê\p#þ#Ì�w#þ Â@"4̓Ã!Z4Í÷&*46#"4*_ë:þ Äö&Éå!Á~·ʽÕåÍÜ~·áú²Ñ~#·ò©Ôõþ&ʺñ33áÉ$YM€þ Ì÷&ÈÕ!ÇÍÒÑÌ÷&È!Å�þ# Í93Í3Âûw#Ãêq Ì÷&#þ,Êá6ÍÜÍ2ÍRÍ÷&É*¿|µÌ÷&Èþ#Ä÷&ÀÍ93Í3Ä÷&À!ÂÍ*4+6#Í93Í3ÂQw#ÃA6# Í'  Í' 6#"4þ,ÀÃ"Í·È^#V*_ë|µÈÁÁ:C ·Âôãå*¼å*¾å*4>Áq#p#=œ"4á"¾Í#'!ÀÍ*4"¼6€#:ÀÍ' :ÁÍ' �ÍÑ6#"4̓ÍÜ*¿#"¿ò*¾P~#þÊZ·ú{þ ÚÄþ ÊŸþ#Ê ͵ÃêÕë*¼ë·ÊQþÂå¾#ÊþÊ,áÃ+33ãë>?͵͵~#þÚF͵Ã9á~þ&Âê#ÃêÑ>#͵Ãê*¼>+F+NÅ=Â_"4á"¾á"¼*¿+"¿ÉåG*¼~#¸ÊŽ·Â€áÃê~#·úŠþ ÚŠ͵ÃŽ> > —"¾òÍ£Ãâ È ÉG> ͵ÂÅÃêq# þ'ÊðÍ93þ,ÊÑþ!Øþ;Èw#ÃÚþ Üð&Øþ'Êw#Ãðþ'ÂÚw#Ãð#~Æ'w+~Î'wÉ*{4~·ÈÅÍÒÁÈÅ ÁÃåÕÅÍ·Âk*{4åÁ*y4ë!øÿw#xºÂLy»ÂLøÿ*y4 "y4*{4 "{4ë!ÍÇ2*4ës#r̓ÁÑáÉå:€4<*y4¼Ò54!9%áÀœø MACRO OR EXPRESSION NESTED TOO DEEP-STACK OVERRUN åÅÕÍÜÑÁáɾÀ#ÂÜÉ!"¿"À"Â*}4"4*{4~·È 6#6#ÃûÍÐÍR.:J þ Ày·Äï&À|µÂ%!åÕÍÌ!I 4ÍmÑá+}´Â%É—2I Íã2!‘þ Úˆw#ÂHÈÍÐ!‘þ'À2þ Üû&Úˆþ'Ê�wüû&úˆ#Ãfþ'Êu6 #6 # ˆ6É!¥Íç2Í#'ÉÍ#'>2jÍä2:33þ Ìð&ÈÍú3*w4 ~öwüÿ&æ Äõ&Í93þ,ÀíÍ#'>2jÍä2:33þ Ìð&ÈÍú3*w4 ~öòþwÍ93þ,ÀÃáÿÃÍÐÍ93ÖAØþÐÅO!0 ÁqÍ93þ,ÀÃÿÿÿÿÿÍMͳ'ÉÍMÍ0'ÉÍMÍ ':ã&¹Êg Äï&OÍ�&Í#'É>Ã~>Ã~>2ã&·Êˆ2jÍ#'ÍÝ2:þ Èë"_ë!£Í.Íû&ÉINPAGE¹PAGE ´û:ã&·Ìû&È!Í#=ÂÆqÉ:þ Äö&ÉÍ#'þ'ÊðÍM͆$þ,ÀÃÜ—2«.2©.þ'Ê þ Üû&Ø2ª.͆$Ãðþ'ÊÃè!Y$6 åÍ$á6ÉÍ#'ÍMÍÜ#þ,ÀÃ'Í#'ÍMy·Äû&ÕëÍÑ&Í�&ÑÉþ!Üû&þ;Ìû&ÍR.É*D ÍÐ#"D :C ·À"F ÍR.y·Äï&}´ÀÍÜ>2C É*D ÍÐ}´Ìù&ÈåÁ*F }¹À|¸À:C î2C É*D ÍÐ|µÌù&È+"D åÁ*F +x¼Ày½À"F —2C ÉÍ#'ÍR.Í 'y2©.*¿}´Ä÷&*D }´Äí&!Z4ÉÍ#'!®,å¾Â#ÂôÁ~2 #^#V*_ëéþ'ÊÃè!Y$á~·Âîå':ÖAÚQþÒQo&)^#V!ÍbÊ…þ;ÂE·Â<—Í”# ÂTÍù&É~þ`ÚjÖ G¸#Êb+þ/Ê{þ:À~þ;Èþ ЗÉþ/Ê™*_ÍbÂE"_Í©}Í”#þ;™Ã^.Í®þ;ÈÖ0þ Ú¼Ö))))µoÉͪ-:¨.þ&Ê$æ@Â$þ,Âü:¨.Í Ö8Üû&þÔû&懇‡G: æö€2 ͪ-:¨.þ€Äû&: Í”#ÃÜ#þ!À>;Éͪ-þ,Â: :¨.Í Ö8Üû&þÔû&懇‡Æ 2 Íœ-:¨.þ€Äû&:A·ÊS *ª.:©.OÃk ÍÑ&:©.©æÄï&:ª.•o:«.œg++|­üì&yæÄì&|<Ê~ =Äì&}å>€2¨.&"ª.|2©.: Í”#͆$á$È%Äì&ÉÍœ->íÍ”#:¨.þ€Ä':©.·Ä'*ª.|·Ä'}·ü'þÔ'>F-ú”#>VÊ”#>^Ô#Íz-:².Í!Æ@2 :¨.æ Ê!:¨.þaÄû&>íÍ”#: Ô#̓#Üû&þÌû&懇‡É>ÛÍ”#Æ$Íz-:¨.Í!ÆA2 :².æ Ê9!:².Ãô >ÓÍ”#Ã$Íœ-:¨.̓#Òa!:¨.Í["Ú$: Æ*2 Ã5#‡‡‡G: €Ã”#Íœ-:¨.æàî€Ä':©.æÄ'*ª.}æÇ´Ä': …Ô#Íz-:².þ€Äû&:³.æÄû&*´.}æø´Äû&>¥‡‡‡o: …2 ÃÃ!Íœ-:¨.̓#Úß!O: �2 >ËÍ”#: Ô#: õ>Å2 Í5#ñÆÔ#Íz-:¨.æ Êl":².æ ʾ":².̓#Ú2"‡‡‡Æ@2 :¨.̓#Ò±":¨.Í["Ú$: þpÌû&Ã5#:¨.̓#Ú$2 :².Í["Ú$Í”#: ÆpþvÌû&Í”#Í$ÉæþmØþo?Øþm>ÝÈ>ýÉ:¨.æ@!#ÂŒ":².̓#Ò–":².Í["Ò¢"!#:².ÍÓ"ÍÜ#ɇ‡‡ÆÍ”#͆$ÉÍ”#>6Í”#Í$͆$ÉG: €þvÌû&Ô#:².æ@Ìû&!%#:¨.ÍÓ"ÍÕ#ÉGæàî Äû&xæÖÊð"Öüû&<þÔû&æO ~å·Ä”#á#~·Ìû&Ô#:íKí[*í{Ý*ý*!1Ý!ý!2íCíS"ísÝ"ý":¨.Í["Üû&Í”#: ÆÍ”#͆$ÉÍœ-:¨.æ Âd#: ÆFÍ”#͆$É:¨.̓#Ú5#G: €Ã”#Íz-:².þ'ÊP#Ã$þkŠ#>&þ Øþ(?ØæÉå*I-Ì¥#2Ó#!Ò#Ê$þ@Ò´#·ÈõæÌ'ñÉþËØÌ'þÙØÌ'þÝØÌ'þíØÌ'þýÌ'Éå!³.Ãà#å!©.ÕÅõ:Y$O~æ±O#^#V#"}$ÕáÍp$> ¡Ê${ZW>¡Â $Õá>0¡Â$Ä'yæå!Z$…o|ÎgFá>¡Ê0$°ü'æAOÍN%{ÍêÍ„&>0 ÊQ$ly·ÌN%zÍêÍ„&Íf$ñÁÑáÉ€€ ˆ”yæÈÆB2X Éyæ ÈæÂz$ZÉÊPå!³.Ê$å!©.ÕÅõ—Ãæ#*y4:j·È÷ÿ"w4Í©$Í%ÃÉ$Íù%!Ÿ~·Ès&ÍÇ2!o&6#—w#w#6ˆÉ*w4 "w4~·È N> ¡ÂÉ$>¡ÊÉ$y·úÉ$æþÊÉ$#^#Vë:1·Â%>¡Ä.%ÃÉ$Íù%:Î*Í&Í%:Ï*Ï&‡‡�ÆŒ2r&"p&}´Äþ%ÉÍù%"p&>¡Æ€2r&>2o&*w4s&ÍÇ2É:H ·È:>·ÈåÕÅy·Â»%}õ:o&·Ê¡%þÒ¡%_:ã&G:r&¸Â¡%*p&ëÍÑ&z¼Â¡%{½Â¡%s&*o&&ñw!o&4ÁÑáÉÍù%ÍÑ&"p&>2o&y2r&ñ2s&ÁÑáÉÍù%"s&yO:ã&�2r&ÍÑ&"p&>2o&:r&æ þ Âò%>2o&*}$u&ÍÇ2Íù%ÁÑáÉ:o&·ÈåÕÅ*p&U\ë"p&!o&~ÆG>:Í÷:j·Ê6&~Í÷�O#Â&—2o&‘Í÷ÁÑáÉ~ÍW&#�OÂ6&—2o&‘ÍW&> Í÷> Í÷ÁÑáÉÍZ&õæþ Úh&ÆÆ0Í÷ñÉ:ã&G:r&¸Â¡%*p&ëÍÑ&åÅÍÑ&#Í�&ÁáÉAú®&ʲ&"é&:Ð&¼Ú¨&À:Ï&½Ð"Ï&ÃÅ&"å&É"ç&:Î&¼ÚÂ&À:Í&½Ð"Í&:H ·Äú&É*ã&ME*å&ø*ç&È*é&Éãõ:J þ  '++~ÖëæÆA2J 2I ##ñãÉÍ :þ ÈÍ3'ÉÍ�'Í 'ͪ'ÈÕåÅÍó3:H ·Âl'*w4y·ò_'æÁѱw#s#rÑÉÍö&~ö@æwÁáÑÉ>H¡Äî&yæøÄö&yÁÑ©æÄú&z¼Äú&{½Äú&ÑÉåÕÅë!P zÍ' {Í' ÁÑáÉyþØÍö&É:þ Ìö&ÉÍ�'Í 'ͪ'ÈÕåÅÍó3*w4~·òÑ'öOæÊ_'yæ|Áѱw#s#ráëÉ())4)€)Ó)Ó)Ó)Û)@*e*e*++$+L+Ò+Ò+g,ª,ª,ª,ª,ª,ª,ª,ADC:HL,BC/ED4A;ADC:HL,DE/ED5A;ADC:HL,HL/ED6A;ADC:HL,SP/ED7A;ADD:HL,BC/9;ADD:HL,DE/19;ADD:HL,HL/29;ADD:HL,SP/39;ADD:IX,BC/DD09;ADD:IX,DE/DD19;ADD:IX,IX/DD29;ADD:IX,SP/DD39;ADD:IY,BC/FD09;ADD:IY,DE/FD19;ADD:IY,IY/FD29;ADD:IY,SP/FD39;CCF/3F;CPD/EDA9;CPDR/EDB9;CPI/EDA1;CPIR/EDB1;CPL/2F;DAA/27;DEC:BC/B;DEC:DE/1B;DEC:HL/2B;DEC:IX/DD2B;DEC:IY/FD2B;DEC:SP/3B;DI/F3;EI/FB;EX:(SP),HL/E3;EX:(SP),IX/DDE3;EX:(SP),IY/FDE3;EX:AF,AF'/8;EX:DE,HL/EB;EXX/D9;HALT/76;INC:BC/3;INC:DE/13;INC:HL/23;INC:IX/DD23;INC:IY/FD23;INC:SP/33;IND/EDAA;INDR/EDBA;INI/EDA2;INIR/EDB2;JP:(HL)/E9;JP:(IX)/DDE9;JP:(IY)/FDE9;LD:(BC),A/2;LD:(DE),A/12;LD:A,(BC)/A;LD:A,(DE)/1A;LD:A,I/ED57;LD:A,R/ED5F;LD:I,A/ED47;LD:R,A/ED4F;LD:SP,HL/F9;LD:SP,IX/DDF9;LD:SP,IY/FDF9;LDD/EDA8;LDDR/EDB8;LDI/EDA0;LDIR/EDB0;NEG/ED44;NOP/0;OTDR/EDBB;OTIR/EDB3;OUTD/EDAB;OUTI/EDA3;POP:AF/F1;POP:BC/C1;POP:DE/D1;POP:HL/E1;POP:IX/DDE1;POP:IY/FDE1;PUSH:AF/F5;PUSH:BC/C5;PUSH:DE/D5;PUSH:HL/E5;PUSH:IX/DDE5;PUSH:IY/FDE5;RET:C/D8;RET:M/F8;RET:NC/D0;RET:NZ/C0;RET:P/F0;RET:PE/E8;RET:PO/E0;RET:Z/C8;RET/C9;RETI/ED4D;RETN/ED45;RLA/17;RLCA/7;RLD/ED6F;RRA/1F;RRCA/F;RRD/ED67;SBC:HL,BC/ED42;SBC:HL,DE/ED52;SBC:HL,HL/ED62;SBC:HL,SP/ED72;SCF/37;+:;BIT @’!CALLÍÃDJNZ7 IM í¢ IN ÛÛ JP ÃÃJR  OUT Ó!RES €’!SET À’!RLC À!RRC À!RL À!RR À!SLA À!SRA (À!SRL 8À!LD @ñ!ADC ˆu#ADD €u#AND  M#CP ¸M#OR °M#SBC ˜u#SUB �M#XOR ¨M#RST Çl!INC A!DEC A!ͪ-!¨.Õ². ~6#†-Ñþ,Êœ-Íð&ͪ-þ;Èþ!ØÍð&ÉÍê-:¨.þk·->&2¨.æþmÊÔ-þnÊÔ-:¨.æ Ìð&î Ìõ&ÉyæÀ}¬ü'|&"ª.·È<Ä'É!ME"ª."¨.þ(Â.>@2¨.Í.þ)ÈÍð&ÉÕÍä2:33þAÚ..Íú3yæ Ê..:¨.µö 2¨.áÕÑÕÍR.á|ºÂ>.}»ÊF.:¨.ö€2¨.:¨.G*ª.:©.OÉÅ̓xõÍ(2ñGåÅÍÄ.xÁŸÒq.åGÅÃU."Â.2Á.Ááy2©.33"ª.:©.OÉÁ:Á.¸Ê’.Ò.Åå"ª.:©.OÅ*Â.å:Á.GÅÃU.-:¨.þk&2¨.æþ*ÂÚ.þ*ÂÚ.!·0Éþ.Êý.O!C/~¹Âò.#F#~#foÉ·È####Ãä.ÕÍä2:73þ Â?/þ.Â?/!l/Õ33~·Ê>/®±O#Â/ѱÊ6/###Ã/ÁF#~#foÉÑÑÉ\ü0*“1/½1+á0-ê0&1^"1=\0>u0<†0NOT ü0RES 0MOD È1SHR F0SHL .0AND 1OR "1XOR 01EQ \0GT u0LT †0UGT –0ULT ©0HIGHÖ/LOW û/Áy·Äý&Í>1Áx±Äý&:©.±ö2©.Ö‡.2©.lgÇ.Áy·Äý&Í>1Áx±Äý&:©.±ö2©.Ö‡.2©.gÇ.Áy·Äý&Áx±Äý&Ç.ÁÍ…1ÁåÅáÁx·úÛ0x±Ê‡. )Ã<0ÁÍ…1åÁáx±Ê‡. |g}oÃM0ÁÍ…1ÁÍõ0}´Êo0!Ç.!ÿÿÇ.ÁÍ…1ÁÍõ0+|·òo0Ãi0ÁÍ…1ÁÍõ0|·úo0Ãi0ÁÍ…1ÁÍõ0Úi0|µÊi0Ão0ÁÍ…1ÁÍõ0Úo0Ãi0ÁÍ…1Á|·ü'ú‡.Õë!z³Ê×0ÅÍž1ÁÃÉ0ÑÇ.Íý&Ç.ÁÍ>1Á Ç.ÁÍO1ÁÍõ0Ç.y•oxœgÉÁy·Äý&Í…1Áx±Äý&}/o|/gÇ.ÁÍ…1Áx¤gy¥oÇ.ÁÍ…1Áx´gyµoÇ.ÁÍ…1Áx¬gy­oÇ.:©.æÊ|1yæÊ|1Ão1:©.æÊ|1þÊo1:©.©æÂo1:©.±æü2©.É:©.±æü2©.Íï&É:©.±O2©.É:©.±2©.OæÈÃo1ÁÍ…1ÁÍž1Ç.Õë!x·õü@3y°Ê³1 é1ñåÁü@3ÅáÑÉÁÍ…1ÁÍÖ1Ç.ÁÍ…1ÁÍÖ1*¿.Ç.}´Âå1Íý&!"¿.É|õ¨õx·ü@3ÅåÁᯰô@3Õÿÿ —´òû1Í@3 "¿.ÕÁÑñü@3Åá"ª.*¿.åÁñ·ü@3Åá"¿.*ª.ÉÍ93!þ'ÊK2þ(Êg2Í3Àþ:Ò‡2þ0ÒI3Ç2þ Øþ'Ê_2%$Äý&eoÃK2þ'ÊU2É:†2=ú�22†2ÍR.:†2<2†2þ)ÈÍð&É Íä2–2:33þ$ÊÑ&Íú3yæþʲ2yæ Äõ&>€¡Äÿ&>¡OÉåÕÅ!33¬.ÍÇ2ÁÑáÉ~# y°ÂÇ2É!Íç2þ:ÀÉ!Íç2É!93+6 Âé2Í93Í3Àþ:Ò3þ0Ð Ê 3w #Í93Í3ÀÃ3þ_ÐþZÐþ?Ò13þ9Ðþ0Ò13þ%Ðþ$Ðþ!É¿ÉK2þ(Êgþ`ØÖ É>‘O>˜GÉÕͶ3Í93þHʈ3ÑÕÍ¡3Í93þOʈ3þQʈ3ÑÕÍŽ3Í93þBʈ3ÑÕÍÖ3Í93þDʈ3Í3Ìý&33É!Í93Ö0ØþÐ)µoÑ3!Í93Ö0ØþÐ)))µoä3!Í93Ö0Øþ ÚÌ3Öþ ØþÐ))))µoù3!Í93Ö0Øþ Ð Õëo& Âé3ÑÃÙ3!Íý3É!33" 4*y4Õ"w433~·ÊO4¾Â+4#Â4*w4N#~#foÑÉ*w4 Ã4;4ø NOT ENOUGH MEMORY *y4Õ÷ÿÑ"w4"y4:€4<¼Ò54w#Âf46€#p#pÃ4‚4[5�4�4B C D E H L A AF BC DE HL SP IX IY I R NZ Z NC PO PE P M $ O2©.É:©.±2©.OæÈÃo1ÁÍ…1ÁÍž1Ç.Õë!x·õü@3y°Ê³1 é1ñåÁü@3ÅáÑÉÁÍ…1ÁÍÖ1Ç.ÁÍ…1ÁÍÖ1*¿.Ç.}´Âå1Íý&!"¿.É|õ¨õx·ü@3ÅåÁᯰô@3Õÿÿ —´òû1Í@3 "¿.ÕÁÑñü@3Åá"ª.*¿.åÁñ·ü@3Åá"¿.*ª.ÉÍ93!þ'ÊK2þ(Êg2Í3Àþ:Ò‡2þ0ÒI3Ç2þ Øþ'Ê_2%$Äý&eoÃK2þ'ÊU2É:†2=ú�22†2ÍR.:†2<2†2þ)ÈÍð&É Íä2–2:33þ$ÊÑ&Íú3yæþʲ2yæ Äõ&>€¡Äÿ&>¡OÉåÕÅ!33¬.ÍÇ2ÁÑáÉ~# y°ÂÇ2É!Íç2þ:ÀÉ!Íç2É!93+6 Âé2Í93Í3Àþ:Ò3þ0Ð Ê 3w #Í93Í3ÀÃ3þ_ÐþZÐþ?Ò13þ9Ðþ0Ò13þ%Ðþ$Ðþ!É¿ÉK2þ(Êgþ`ØÖ É>‘O>˜GÉÕͶ3Í93þHʈ3ÑÕÍ¡3Í93þOʈ3þQʈ3ÑÕÍŽ3Í93þBʈ3ÑÕÍÖ3Í93þDʈ3Í3Ìý&33É!Í93Ö0ØþÐ)µoÑ3!Í93Ö0ØþÐ)))µoä3!Í93Ö0Øþ ÚÌ3Öþ ØþÐ))))µoù3!Í93Ö0Øþ Ð Õëo& Âé3ÑÃÙ3!Íý3É!33" 4*y4Õ"w433~·ÊO4¾Â+4#Â4*w4N#~#foÑÉ*w4 Ã4;4ø NOT ENOUGH MEMORY *y4Õ÷ÿÑ"w4"y4:€4<¼Ò54w#Âf46€#p#pÃ4‚4[5�4�4B C D E H L A AF BC DE HL SP IX IY  Documentation for Z80MR............................A Z80 Macro Assembler ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Introduction ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Z80MR is a Z80 macro assembler with syntax closely following RMAC and MAC. It assembles standard Z80 mnemonics into an Intel Hex format. The resulting file (which has a .HEX extension) can be translated to a .COM file with LOAD.COM (on your CP/M disk that you received with your Kaypro) if it ORG's at 100 (hex). If it ORG's elsewhere the .HEX file may be read into memory and manipulated with DDT.COM. Why Z80.................................................................... The assembler you received with your Kaypro (ASM.COM) is an 8080 assembler. The Kaypro actually runs a Z80 c.p.u. The reason this is possible is that the Z80 actually runs all of the 8080 instructions but in addition there are more instructions unknown to the 8080. The extra instructions were designed for increased speed, easier programming, and more compact code. For this reason it is to your best advantage to program in Z80 code for the Kaypro. Z80 Mnemonics.............................................................. Z80 mnemonics are a great improvement to 8080. Thought was given to logical, universal mnemonics that are much easier to remember and use. I learned assembly language on the 8080 and resisted the change to Z80 at first. But after using Z80 mnemonics for a short time I became very unwilling to do anything with 8080 code. Now I run almost every 8080 program that comes in through a 8080 to Z80 translating program (XLATE2.COM on Kaypro disk #17). Even if you are writing programs for the 8080 it is still far easier to write in Z80 mnemonics. There is a special listing command that flags Z80- only instructions for this very reason (described later). Macros..................................................................... Macros are a way of writing subroutines in assembly language and then calling the subroutine by entering the 'macro name' into the source. The macro may be called as many times as necessary anywhere in the program. When the assembler is operated, the lines of source code that make up the macro will be inserted into the file by the assembler. Note that using a macro does not reduce the size of the object code that is produced since all the lines of code that make up the macro definition are assembled into the object file at assembly time. This is called expanding the macro. By using the *MACLIST ON option, the lines of code produced by the expansion of a macro are listed in the .PRN file. Then the code can be examined and at times optimized in certain locations. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Assembler Syntax ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Components and General Form of Assembly Language Programs.................. The structure of an assembly language program is more important to an assembler than the actual instructions you write. A program that would run beautifully can fail to assemble if the syntax is not correct. A program with no errors at assembly time is not guaranteed to run correctly ( or as expected ). The assemblers report of 0 errors means that it understood all of the instructions you entered, not that your program is logically correct. Fields..................................................................... Assemblers are almost always field oriented some to a greater degree than others. A field is a flexible position in the line of code with respect to the right margin. This assembler recognizes 4 fields in an assembly language source line. label operation operand comment The assembler knows when it has reached the end of a field when it sees a 'field delimiter'. This can be a space or a tab for this assembler though some require tabs so it is a good habit to always use tab characters as delimiters. Label Field................................................................ A symbol is a word used to represent a number. Symbols that refer to addresses are called labels. The assignment of a number to a label can either be defined as the lines below TEN EQU 10 START EQU 100H or calculated by the assembler as an address for branching instructions. START: JP FINISH NOP NOP FINISH: JP START Also notice that the label is optional and is only for the programmers conveniance. Labels must appear in the label field. Some assemblers allow you to indent labels but this one won't. START EQU 100H START: JP FINISH Will give you a problem. The EQU must be in the operation field and the label in the label field. Most assemblers require that the undefined labels be terminated in a colon but this assembler does not require a colon for symbols in column 1. START JP FINISH will not generate an error but colons are another good habit and also make your code more readable. This assembler only examines the first six characters of any label or symbol so that if the following labels were used in the same program FINISH1 EQU 1000H FINISH2 EQU 2000H A 'D' error (duplicate symbols) would be generated. Operation and Operand Fields............................................... The operation field follows the label field and may either contain a Z80 op code mnemonic, an assembler directive (or pseudo op), or a macro call. Assembler directives and macros are described later in this file. This field will usally contain the mnemonic for a Z80 instruction. Some Z80 instructions only use this field while others contain an operand which will be located in the operand field. GOBACK: OR A RET Z LD A,0FFH RET The way Z80 mnemonics were designed, the number of nmenonics in the operation portion of instructions is kept to a minimum since the operands really distinguish the differences between similar instructions. The first line above is a good example of this. The operation is an 'OR' operation on the number in the accumulator (implied) with another register. It makes sense that the operand should be the register containing the other number in the 'OR' operation. In Z80 assembly language this is the case. The first line OR's the accumulator with the accumualator (used to see if the accumulator contains a 0). Notice that the second line uses the operand field to contain the condition for a conditional jump (in this case the zero flag). The third line uses the operand field to contain both the target register for a load and the number to load. The last line is an unconditional return which uses the same operator (RET) as the conditional return but does not use the operand field because there are no conditons to place there. This structure makes Z80 programs much more readable than 8080 programs as well as making the instructions easier to remember. The following is the same code written with 8080 mnemonics. Notice the different philosophy on the use of the fields. GOBACK: ORA RETZ MVI A,0FFH RET Also the LD command in the Z80 is used for all data moves while 8080 users must remember a different mnemonic for different types of moves. 8080 Z80 MOV H,A LD H,A MVI H,00 LD H,00 LXI H,0000 LD HL,0000 The Comment Field.......................................................... Comments are not limited to the comment field and can actually be the entire line. All assemblers recognize the semicolon as the beginning of a comment and most ignore the rest of the line. For compatability between assemblers it is a good to begin comments with a semicolon. But for this assembler the following methods of inserting comments are good syntax. 1. Beginning a line with an '*' in column one causes the assembler to ignore therest of the line except if one of the assembler commands (described below) immediately follows the asterisk (no embedded spaces). 2. A semicolon will cause the assembler to consider everything following it to be considered a comment. 3. The first blank encountered following the beginning of the operand field will cause the assembler to consider the rest of the line to be considered a comment. ****************************************** ;An adventure in Comments * A short tale START: JP FINISH ; finish this story NOP ASM can't handle this FINISH: RET Thats all folks Would assemble with no errors. Comments do not appear in the object code. Numbers and Bases.......................................................... The assembler will accept numbers in HEX (base 16) BINARY (base 2) or DECIMAL. Hex numbers must end with an H and binary numbers must end in a B. Decimal numbers should have no suffix letter. When a HEX digit begins with a letter, the letter should be preceded with a 0. LD A,0F3H OR 01001000B LD HL,4000H+28 ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Commanding the Assembler ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The primary responsibility of the assembler is to translate Z80 mnemonics into object code. The assembler also recognizes certain commands and directives that the programmer can use to manipulate the assembler's output. These are often referred to as 'pseudo-ops'. This assembler requires these pseudo-ops to be in upper case. A description of these commands follows: ORG ; Sets the origin of the code or section of code. Actually ; it sets the reference number that the assembler uses to ; generate addresses for labels and instructions. ; could be a number or a previously defined symbol. ; e.g. ORG 0 ; ORG START END ; Determines the end of an assembly language program. ; if present describes the first executable instruction of ; the program. DW wordlist DEFW wordlist ; Both of these have identical meanings. In assembly language ; programs, 8 bit values are called bytes and 16 bit ; values are called words. Addresses are assembled with the ; most significant byte (MSB) following the least significant ; byte (LSB) because this is how the microprocessor handles ; these values. The DW pseudo-op allows us to describe these ; values in the way we are used to (MSB first) and still ; assemble correctly for the processor. ; DW 8000H ; will assemble the same as ; DB 00H ; DB 80H ; ; If more than one word is to follow a DW following values ; should be seperated by commas ; e.g. DW 8000H,0F000H,0000H ; The wordlist can also be symbols ; e.g. START: JP FINISH ; DW START,FINISH ; FINISH: JP START DDB wordlist ; This pseudo-op is a way of assembling 16 bit values with ; the MSB first (opposite of DW). ; DDB 8000H ; will assemble the same as ; DB 80H ; DB 00H DB bytelist DEFB bytelist DEFM bytelist DATA bytelist ; These four pseudo-ops have identical meanings. The bytelist ; can be one byte or multiple bytes seperated with commas. ; The bytes can be any mix of symbols, ascii characters in ; quotes, or numbers on the same line. This is familiar ; code in Kaypro programs: ; ;ESC EQU 1BH ;CLRSCR EQU 1AH ;CRLF DDB 0D0AH ; ; ORG 100H ; ; LD DE,MES ; LD C,9 ; CALL 5 ; RET ; ;MES: DB CLRSCR ; DB ESC,'=',12+20H,12+20H ; DB '*Your Message Here *',CRLF ; DB '*Or Here*','$' ; ; END ; ; If you've been waiting for an example to enter assemble ; and run, try this one out. Just enter it (with out the ; semicolons of course) assemble it and run it as described ; in AZM-COM.DOC. ; ; The program clears the screen, positions the cursor at ; row 12 column 12 and prints the message using the BDOS ; function 9 (print string). ; ; The symbol CLRSCR is defined by an EQU to the hex code to ; clear the screen on the Kaypro (^Z). ; ; The cursor positioning sequence on the Kaypro consists of ; the two lead-in characters (escape and an equals sign) and ; then the row+20H and the column+20H. ; ; Since the next bytes are just a carriage return, line feed ; pair the second part of the message will appear at the ; left side of the screen. We could include extra DB's to ; position the cursor anywhere on the screen if we like. ; ; BDOS function 9 (summoned by loading a 9 in the C register ; and calling 0005H) prints the characters it finds at the ; address in the DE registers until it sees a '$'. DS n DEFS n ; Reserve data space ( n bytes ). This is used to position ; allocate or label data storage space in a program. n is ; a number describing the number of bytes reserved. ; DS 16 ; Reserves 16 bytes. The next instruction will be located ; 16 bytes from the location counter when the DS was ; encountered. label EQU ; ; The EQU sets the label equal to the expression. The ; label should not be terminated with a colon when used ; with an EQU pseudo-op. The label can be any symbol ; (byte or word) and the a number in any of the ; following forms: ; SWEET EQU 16 ;decimal ; SWEET EQU 10H ;hex ; SWEET EQU 00010000B ;binary ; ; With this assembler the EQU must be located in the ; operation field. ; A label defined with an EQU cannot be redefined later ; in the program. label DEFL ; ; This assigns the value of the to the label like ; the EQU pseudo-op but a label defined with a DEFL can ; be redefined later in the program. *INCLUDE ; This pseudo-op causes the assembler to stop assembling ; lines in the file it is presently in and read in the ; file . It then begins assembling lines in this ; included file until it reaches the end of the file when ; it returns to the original file and resumes assembling ; lines in it once more. The can be any CPM ; filename.ext though if the extent is left off it looks ; for the given filename with an extent of .LIB. The asterisk ; must appear in column 1 with the word INCLUDE immediately ; following with no embedded spaces. ; ;*INCLUDE DRIVER.AZM ; will begin assembly on ; the file DRIVER.AZM ;*INCLUDE Z80MACRO ; will begin assembly on ; the file Z80MACRO.LIB ; Conditional Assembly Pseudo-Ops............................................ IF ELSE ENDIF Conditional assembly is a way of writing a single program so that it can be assembled different ways or with different options by only changing a couple of lines of codes. When the assembler encounters an IF pseudo-op it evaluates the symbol . IF is non-zero it assembles the following lines until it reaches an ELSE or an ENDIF. If is 0 the lines are ignored until the assembler encounters an ELSE or an ENDIF. If the ELSE is encounter the assembler begins assembling lines again. The ENDIF pseudo-op causes the assembler to resume assembling all lines. You can not have an IF without an ENDIF. Any of these pseudo-ops must appear in the operation field. TRUE EQU 0FFH FALSE EQU 0 KPRO2 EQU TRUE KPRO10 EQU FALSE IF KPRO2 BITPRT EQU 1CH ELSE BITPRT EQU 14H ENDIF Operators.................................................................. Operators allow the programmer to make the assembler do arithmetic and logical operations. They are usually used to manipulate operands or generate symbols. Some of them are used to create tests for conditional assembly. There should be no embedded spaces when using these operators as the first blank encountered terminates the operand field. The operands may be symbols or numbers in any of the bases. The operators supported by this assembler are: Arithmetic Operators + ; arithmetic addition. - ; arithmetic subtraction * ; arithmetic multiplication / ; arithmetic division (truncating the result) Logical Operators (Bit Manipulation) & ( or .AND. ) ; logical AND operation ^ ( or .OR. ) ; logical OR operation .XOR. ; logical exclusive OR operation \ ( or .NOT. ) ; logical inversion .SHR. ; shift left operand to right by right operand .SHL. ; shift left operand to left by right operand .HIGH. ; byte value is assigned the high byte of a ; 16 bit value .LOW. ; byte value is assigned the low byte of a 16 ; bit value Conditional Assembly Operators ( return TRUE or FALSE to IF ) = ( or .EQU. ) ; logical equivalence > ( or .GT. ) ; greater than .UGT. ; unsigned greater than < ( or .LT. ) ; less than .ULT. ; unsigned less than Listing Options Pseudo-Ops................................................. There are a number of listing options. All of these options only effect the print file (.PRN). The options include some for debugging as well as some for the actual format of the file on the page. The .PRN file is the basic tool assembly language programmers have for examining the output of the assembler. The pseudo-ops beginning with an asterisk must begin in column 1. *EJECT ( or EJEC ) ; The next line of the listing should be placed at the top ; of the next page. *HEADING ; Place the text ( following this command ) on the top of ; each page. Usually used to date the listing file. TITLE 'text' ; Place the text in the quotation marks (either double or ; single on the top of each page in the listing file. SPAC n ; Leave n blank lines in the listing. Used to leave white ; space in the file with out using a page break. *LIST ON *LIST OFF ; Turn the listing on or off. This is usually used to omit ; long comments or certain sections from the .PRN file. *MACLIST ON *MACLIST OFF ; Turn the expansion of macros on or off. Seeing how the ; macros are being expanded is handy for optimizing code ; but can waste paper when that is no longer the area of ; interest. LIST options NLIST options ; These pseudo-ops allow you to turn any of the supported ; listing file options on  (LIST) or off (NLIST) without ; changing the other options. Both of these pseudo-ops ; must be followed with one or more of the following option ; letters. If these pseudo-ops is used some options are ; on by default ( marked with (on) in the following list. ; ; A ; List all bytes in DB, DW, DDB, etc. Otherwise ; ; only the bytes that can fit in one line are ; ; included in the listing ( others are implied ). ; B ; Place symbol table into object file. ; G ; Place system generated symbols into object files ; I (on); List lines of conditional code following a false ; ; conditional. If off only the code actually ; ; assembled is listed. ; M (on); Expand macros in listing files ; O (on); Produce an object module. That is show the bytes ; ; being generated by the assembler otherwise just ; ; the source and (optionally) macro expansions. ; R ; use absolute displacement for JR and DJNZ ; S (on); List source code in listing file ; T (on); List symbol table in listing file ; X ; Generate and list cross references in listing file ; Z ; Generate an error for Z80 only opcodes. Allows you ; ; to write in Z80 mnemonics for an 8080 processor. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Error Reporting ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: When the assembler is unable to understand what you are instructing it to do it generates an error message. These are almost always due to typo's or bad form. It displays the error code below and the line the error was found on to the console and also displays the error codes in the listing file. D ; Duplicate symbol definition. You will see this error ; message if you do any of the following: ; Use the same symbol twice. ; FORMATX ; FORMATC ; will generate an error (only 6 significant ; characters). ; Upper and lower case symbols with the same letters ; FORMAT: ; format: ; are identical to the assembler. ; Assigning a different value to a symbol that was ; previously defined with a EQU pseudo-op. ; If you are going to reassign use DEFL. E ; Relocation error. I believe this occurs if the assembler ; cannot reassign an address as expected. F ; Format Error. You will see this if you break any of the ; rules regarding field use and macro format. K ; Keyword error. This means you tried to use one of the ; assemblers reserved words or pseudo-ops as a symbol. ; ORG: JP END ; NOP ; END: JP ORG ; is in very bad taste. L ; Label error. The attempt to assign a value to a lable was ; unsuccessful. Also remember that labels do not end in a ; colon when preceding EQU. ; START: EQU 100H ; is bad news ; START EQU 100H ; is perfect M ; Missing label. The symbol you are using was never defined. N ; Macro nesting error. Macros can be nested (that is a macro ; can call another macro) but if the nesting gets to deep ; the assembler will quit and give you one of these. Also, ; you can only call macros that were previously defined. O ; Op code error. If you see this, look in the operation and ; operand fields. Consult the mnemonic table. People ; switching over from 8080 will see a few of these. P ; Phase error. A 2 pass assembler builds a symbol table on ; the first pass and generates the object code on the second. ; If a number that it calculates for a symbol on the first ; pass does not agree with a number it generates in the ; pass this error is shown check the symbols in the line ; the error appeared. Q ; Questionable operand. Actually theres no question about it ; it is a bad operand. Typo's give you these as well as ; blowing op code format. Usally easy to find your mistake. S ; Syntax error. You broke one of the syntax rules described ; above. T ; Symbol table full. Not much you can do with this except ; pare down the code. U ; Undefined symbol. You used a symbol but forgot to define ; it in with an EQU. V ; Value error. Usually means you are trying to do a 16 ; bit operation with an 8 bit number or the other way ; around. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: Macros ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: The macro is a powerful method of writing assembly language programs. It makes it possible to write assembly language programs in a way that resembles higher level languages. In fact by creating a library of macros you are in essence creating your own language, and your own compiler. Often times in assembly language (particularly writing for CP/M) each program contains source lines that are used again and again in other programs. By using macros the routines only need to be written once and then may be called in any program. The best thing about a macro library is that only the macros that are called produce object code. So there is no penalty in having a mac!ro library that is large and complete even if you are only going to call one macro. Macros have a form that is unique and must be followed closely for correct results. The general form of a macro is name MACRO #parameter1,#parameter2,.... instruction instruction instruction . . . ENDM The name is the symbol that will be used to invoke the macro. MACRO is a keyword that will indicate to the assembler that a macro is being defined. The parameters always must begin with a '#' sign in macros and they are seperated by commas. The instruction can be Z80 instructions, or any of the assembler commands listed above incuding conditionals. The instruction can also be another macro call (called nested macros) but only if the nested macro has been already defined. The ENDM keyword tells the assembler that it has reached the end of the code that must be assembled when this macro is called. Do not use a colon behind the macro name. The previous message program example can be rewritten to look like this with macros. ORG 100H *INCLUDE Z80MACRO BDOS PRNSTR,MES RET MES: DB ESC,'=',12+20H,12+20H DB '*Your message here*' DDB CRLF DB '*Or here*' END With the following macro library called Z80MACRO.LIB ;Call Bdos function #FUNCT using paramater contained in #DE ESC EQU 1BH ; ascii escape CRLF EQU 0D0AH ; ascii carriage return line feed PRNSTR EQU 9 BDOS MACRO #FUNCT,#DE LD C,#FUNCT ; FUNCTION NUMBER GOES TO C LD DE,#DE ; GET PARAMETER CALL 5 ; CALL BDOS ENDM We could also rewrite the cursor positioning sequence into a macro. Note how just this small example can save us time in future programs. Also, the macro library is a great place to keep frequently used symbols like ESC and CRLF. But what about using address symbols in macros? How can we avoid the 'D' error if we call the macro more than once. The other keyword unique to macros is LOCAL. This makes the assembler generate its own unique label every time the macro is expanded in a program. Following the word LOCAL ( which must be on the second line of the macro ) are the symbols we want the compiler to generate unique labels for. These symbols must also be proceded with a '#' sign. AJUMP MACRO LOCAL #ADR_Z,#BACK OR A JR Z,#ADR_Z LD A,40H JR #BACK #ADR_Z: LD A,04H #BACK: LD DE,0 ENDM The macro itself is not really useful but it is correct and shows the use of local labels. :::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::  CALL BDOS ENDM We could also rewrite the cursor positioning sequence into a macro. Note how just this small example can save us time in future programs. Also, the macro library is a great place to keep frequently used symbols like ESC and CRLF. But what about using address symbols in macros? How can we avoid the 'D' error if we call the macro more than once. The other keyword unique to macros is LOCAL. This makes the assembler generate its own unique label every time the macro is expanded in This file contains the 3 .DOC files: AZM-COM.DOC PHASE.DOC MAC-AZM.DOC ****************************************************************************** AZM-COM.DOC The Z80MR creates two output files from an assembly language source file with a .AZM extention. The assembly language file can be any combination of Z80 mnemonics or assembler commands and pseudo-ops in the correct form as described in the file Z80MR.DOC. Each line of the source program is seperated by a carriage return linefeed and can be created on any editor. The object file is the executable machine code represented by ascii characters in a form known as Intel Hex Format. The object file will have the same filename as the source file but will have a .HEX extension. This format must be translated into the actual machine executable binary values in order to be run on a computer. This can be done with LOAD.COM or DDT.COM which came with your CP/M. (described later). Many EPROM burners only accept the program to be burned in Hex format. The listing file is the other ouput by the assembler. It is ascii representation of the code actually produced by the assembler. There are many options available for controlling what is included in the listing file as described in Z80MR.DOC. The listing file will have the same filename as the source file but will have a .PRN extension. Invoking the Assembler..................................................... To assemble the file TEST.AZM the following command can be used: Z80MR TEST The assembler will read in the file TEST.AZM from the current drive and create an object file TEST.HEX and a listing file TEST.PRN. Controlling Output......................................................... Either of the output files (or both) may be omitted. In addition, the files may be located on different drives. Since the source file must always have a .AZM extention we may use the extention to control the output. Z80MR TEST.sol The letter in the 's' positio"n tells the assembler where to find the source file and may be any disk drive letter from A to D. The letter in the 'o' position tells the assembler where to locate the object file and may be A-D as above or Z if the file is not desired. The letter in the 'l' position tells the assembler what to do with the listing file. It can be any drive letter from A-D or Z if the file is not desired. In addition the listing file may be sent to the console if an X is in that position. Loading Hex Files.......................................................... The object file must be translated from Hex format to machine executable values by another program. If the program was written to ORG at 100H the program may be loaded with the CP/M utility LOAD.COM. All of the programs on this disk with a .COM extension are ORGed at 100H. This is where CPM loads its transient programs. To load TEST.HEX with LOAD.COM just enter LOAD TEST The extention of .HEX is assumed. If you have a program that does not ORG at 100H you must use DDT to read in the .HEX file which it does by translating the Hex format to binary as it reads it into memory. Once in memory you may manipulate it with DDT even SAVE an image of the program in memory actually creating a .COM file. If you write a program that ORGs where CP/M resides you can wipe out CP/M and have to reset the computer to recover. See the file PHASE.DOC for some more information on ORGing files at High memory locations. ::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::: PHASE.DOC PHASED code One of the limitations of this assembler is the lack of a .PHASE directive. This directive causes the assembler to generate addresses for a different section of memory for labels than the actual place the code is to be loaded. This is important for the Kaypro since when the ROM is called, the lower 32K of memory is no longer available. Simply ORGing at higher location later in the program and jumping there will cause the entire area of memory between 100H and the end point of the program to be saved resulting in a huge .COM file when loaded with LOAD.COM. There are many ways to phase code and still end up with a reasonable sized .COM file. Here I will present two of the most common methods. Label+OFFSET Method........................................................ In order for code to be assembled in one area to run in another, our only concern is how the addresses are calculated by the assembler. Normally, an assembler sets a location counter when it sees an ORG pseudo-op. As it produces each byte of the it increments the location counter to calculate the next address. If it finds a label, it sets the label's address according to this location counter. The programmer has another method of setting the address of labels, with EQU. If every label in the program takes the form of Label+OFFSET where the offset is a constant, then the assembler will produce the code to run in high memory while creating a file that will load in low memory. The following short program which re-loads your monitor ROM from the ROM to RAM illustrates this. ;************************************************************************** ;** Rom Save Program ** ;** Run and then enter SAVE 16 ROM.COM ** ;** ROM.COM will contain object code of your monitor ROM ** ;************************************************************************** ORG 100h TRUE EQU 0FFH FALSE EQU 0 OLD EQU TRUE ; TRUE IF NOT 10 OR 4-84 IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF OFFSET EQU 8000h ; offset for calculating high addresses LD DE,HISTRT ; the destination of the High memory code LD HL,LODEND+1 ; the source code is just beyond this loader LD BC,HIEND-HISTRT ; the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it LODEND: NOP ; to calculate end of loader/start of high ; memory code segment HISTRT EQU $+OFFSET ; BEGIN USING OFFSET IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT EQU $+OFFSET LD HL,0 ; Source is at 0 (in ROM ) LD DE,OFFSET+1000H ; Load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV EQU $+OFFSET LD HL,OFFSET+1000H ; destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $+OFFSET ; end of code to be relocated END Assemble this program (the source is on the disk as phase1.azm so you don't have to type it in). Examine the listing file. Notice that the assembler generated high memory addresses though the program loads low. Using DDT.COM.............................................................. With this me#thod you would split the above program into two parts, the loader and the code that is to be relocated. You can assemble the loader and pick an arbitrary source address for the code to be relocated (say 200h). Then you can assemble the relocatable portion with an high ORG. (8000H say). Now you can join the two HEX files together with DDT.COM reading in the high portion with an OFFSET. To get the offset use DDT's Hex sum and difference command in the form of: H, The second number will be the OFFSET. The program we wrote above would go together like this. ;************************************************************************** ;** Loader.azm Loads relocating code to its destination *** ;************************************************************************** ORG 100H BYTCNT EQU 100H ; we can either supply a value here that we ; know will load enough code or assemble ; the high code first and let the assembler ; give us this value (examine print file) HISTRT EQU 8000H ; where the relocation code goes HILOAD EQU 200H ; where the other file goes LD DE,HISTRT ; the destination of the High memory code LD HL,HILOAD ;the source code is just beyond this loader LD BC,BYTCNT ;the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it ; memory code segment END ;************************************************************************** ;** Phase2.azm *** ;** Relocate with DDT *** ;************************************************************************** TRUE EQU 0FFH FALSE EQU 0 OLD EQU FALSE IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF BYTCNT EQU HIEND-HISTRT ORG 8000h HISTRT: IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT: LD HL,0 ; Source is at 0 (in ROM ) LD DE,9000H ; load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV: LD HL,9000H ;destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $ END Now we can use DDT to join the two files. DDT LOADER.HEX H200,8000 8200 8200 ; in this case both numbers are the same (we want ; second IPHASE2.HEX ; prepare to load file R8200 ; read in with offset ^C ; exit to CPM SAVE 1 PHASE3.COM ; and the com file is created ORGing High ( CP/M modifications )......................................... DDT.COM can be used to load .HEX files anywhere in memory despite where the load point (ORG) was set. It does this by reading the file in with a negative offset with the R command. Usually CPM is modified by saving the SYSGEN image and then overlaying the image with the modified section and re-SYSGENing. Lets say you wrote a new BIOS for your Kaypro. The BIOS for the old Kaypros ORGed at FA00H. You assemble it with the assembler with the ORG at FA00H. The object file is KBIOS.HEX If you want to overlay the present bios with your new bios immediately to see if it works it is done as follows: Enter DDT by entering DDT IKBIOS.HEX ; this sets up DDT for a file read R ; actually reads the file in and overlays ; your old bios with the binary code ^C ; returns you to CPM and if all is well ; with your new bios you will warm boot Now you want a permanent copy of your new bios on your system tracks. Once done you will be able to copy your new system onto any disk with SYSGEN. SYSGEN copies the system into memory but not at the same place the system runs. The BIOS image actually begins at 1F80H in the SYSGEN image. We must read the file in at 1F80H even though it ORGs at FA00H. We can do this with DDT also. First we must save the SYSGEN image to a file. sysgen KAYPRO SYSGEN V2.2 SOURCE DRIVE (OR RETURN TO SKIP)a ; get the system from A: SOURCE ON A THEN RETURN ; enter a carriage return DESTINATION DRIVE (OR RETURN TO REBOOT) ; enter a carriage return save 40 cpm.com ; save it to a file Now we use DDT to work on it ddt cpm.com h1f80,fa00 ; we ask for the sum and difference ; of desired address - load address ; DDT prints this. The second number is the ; offset ikbios.hex r ^C Now when we return to CP/M we run sysgen to save the new image to system tracks. SYSGEN KAYPPRO SYSGEN V2.2 SOURCE DRIVE (OR RETURN TO SKIP) ;enter return (use the memory image) DESTINATION DRIVE (OR RETURN TO REBOOT) ;we will put it on B DESTINATION ON B THEN RETURN ; another return FUNCTION COMPLETE DESTINATION DRIVE (OR RETURN TO REBOOT) ; one more return Now when when we boot w$ith the disk in drive B the new system will be loaded. ****************************************************************************** MAC-AZM.DOC Most of the assembly language programs released on Micro Cornucopuia disks are set up for the M80 assembler. If you've been wondering what the .MAC extension is for, those are M80 source code programs. Many of the people that got this disk did so to assemble the Kaypro Tinkerkit (source of the rom monitor and bios) without spending $150 for M80. It can be done. For the most part .MAC files can easily be translated to .AZM with very few changes. Unfortunately M80 is as extremely versatile assembler which when used to its full advantage contains some pseudo-ops and directives that Z80MR does not understand. I will reveal the most common of these and provide some help on getting around them in this file. First things first......................................................... Rename the file to have a .AZM extension. Edit the file. Near the beginning of the file you will see the pseudo op that tells M80 what mnemonics you will be using. M80 can handle both Z80 and 8080 mnemonics. You can even switch in the middle of the program. Two pseudo-ops .Z80 and .8080 tell the assembler which mnemonics to recognize. If there is a .Z80 there delete it. If there is a .8080 there you will need to run the program through an 8080 to Z80 translator (like XLATE2.COM). At this point what I usually do is run the program through the assembler. The assembler is very good at finding errors, so I let it tell me what it doesn't like. You can run the program through the assembler without generating any output files (see AZM-COM.DOC) and still get the error report on the console. A ^P before running the assembler will dump to the printer as well. Now you can go back into the file and fix the syntax where the assembler generated errors. Dual mnemonic files........................................................ XLATE2 is a great translator on 8080 only files. It also will only translate the 8080 mnemonics in a file that has both. Unfortunately there are a couple of Z80 mnemonics that are the same as 8080 mnemonics and will be dutifully translated by XLATE2. The problem is that the mnemonics are the same but the instructions they represent are not. So the file will assemble OK but will run with unpredictable results. An example. JP is a valid Z80 mnemonic. It is also widely used since it is an unconditional jump (JMP in 8080) JP is also a valid 8080 mnemonic. It is the jump on parity instruction. So a Z80 JP is translated as if it was the 8080 JP which will make it JP P in the output file. Bad news. This in itself is enough to make it too undependable to use on dual mnemonic files. To avoid the grief you can do one of two things: Translate the 8080 sections by hand if they are small enough. Split the file into smaller files where the mnemonics change. Run the 8080 sections through the translator. You can let the assembler rejoin the files using the *INCLUDE statement or use pip or your editor to rejoin and assemble the whole mess. What I'd really like to see is someone rework XLATE2 so that it would stop translating when it saw .Z80 (and also comment the pseudo-op out) and start again when it saw .8080 (and comment it out as well). Also some of the other minor syntax changes could be fixed as well. Yes XLATE2 can be assembled with Z80MR (it is a .MAC file). After removing the .Z80 at the beginning of the file the only error I got was for the MOD operation on the version number (MOD not supported by this assembler). My solution, just enter the version number there. Having the assembler figure out the ascii just wasn't that important. Macros..................................................................... The M80 macros go through Z80MR pretty well for the most part. There are some syntax changes to be made. Precede the parameters with # signs (including locals). Also there are some macro pseudo-ops that are not supported (also not widely used). If some one writes Z80MR macros to substitute for these (and a MOD operator) please send it in and we'll include it in the macro library that we are developing for this assembler. .phase and .dephase........................................................ These are used to make the assembler generate label addresses for some other part of memory than where the file will be loaded. The file PHASE.DOC offers some alternative ways of doing this. åååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå% ORG 100h OLD EQU 0 IF OLD SYSPRT EQU 1CH ; old kaypro 2's and fours ELSE SYSPRT EQU 14H ; tens, 4-84's, 2-84's ENDIF OFFSET EQU 8000h ; offset for calculating high addresses LD DE,HISTRT ; the destination of the High memory code LD HL,LODEND+1 ; the source code is just beyond this loader LD BC,HIEND-HISTRT ; the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it LODEND: NOP ; to calculate end of loader/start of high ; memory code segment HISTRT EQU $+OFFSET ; BEGIN USING OFFSET IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT EQU $+OFFSET LD HL,0 ; Source is at 0 (in ROM ) LD DE,OFFSET+1000H ; Load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV EQU $+OFFSET LD HL,OFFSET+1000H ; destination becomes source LD DE,100H ; move to TPA start LD BC,1000H ; 4K bytes to move LDIR RET HIEND EQU $+OFFSET END D HL,LODEND+1 ; the source code is just beyond this loader LD BC,HIEND-HISTRT ; the number of bytes to move (end - start) LDIR ; move it up there JP HISTRT ; jump to it LODEND: NOP ; to calculate end of loader/start of high ; memory code segment HISTRT EQU $+OFFSET ; BEGIN USING OFFSET IN A,(SYSPRT) ; get present sysport data SET 7,A ; bank select bit OUT (SYSPRT),A CALL MOVIT ; move the code routine IN A,(SYSPRT) RES 7,A ; back to ram bank OUT (SYSPRT),A CALL TPAMOV ; now move to 100H for save JP 0 ; back to CP/M MOVIT EQU $+OFFSET LD HL,0 ; Source is at 0 (in ROM ) LD DE,OFFSET+1000H ; Load above us LD BC,1000h ; pick up 4K (2732) LDIR RET TPAMOV EQU $+OFFSET LD HL,OFFSET+1000H ; destinat This is the release date of the disk. PHASE1 AZM €ªåååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååå Fog Library Disk FOG-CPM.017 Copyright (1985) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Two popular Z80 disassemblers are on this disk. Filename Description -12-00 .85 This is the release date of the disk. -CPM017 .DOC This is the description of the disk contents. DZ .COM 395E 36K [DazzleStar 1 of 5] A Z80 disassembler with complete on-line help. DZ-DXERS.DOC 2818 3K [DazzleStar 2 of 5] DZINSTAL.COM 97EA 9K [DazzleStar 3 of 5] DZMENU .OVR 7232 8K [DazzleStar 4 of 5] DZMSGS .OVR 9577 54K [DazzleStar 5 of 5] Z80MR .COM 9785 14K [Z80 MacroAssembler 1 of 4] Z80 macroassembler complete with example file. Z80MR .DOC D298 26K [Z80 MacroAssembler 2 of 4] Z80MR .TXT C1CA 17K [Z80 MacroAssembler 3 of 4] PHASE1 .AZM A408 2K [Z80 MacroAssembler 4 of 4] thors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Two popular Z80 disassemblers are on this disk. Filename Description -12-00 .85 This is the release date o&ååååå'ååååå