IMD 1.16: 28/05/2007 16:18:44 -FOG/UTL004   Ã\ÒÃXÒ COPYRIGHT (C) 1979, DIGITAL RESEARCH Ï_ÃÅÍŒÏÁÉ> Í’Ï> Ã’Ï> Ã’ÏÅ͘Ïá~·È#åÍŒÏáìÏ Ã_ÃÍ2îÖ<ÉÃÃϯ2íÖÍÖÃËÏÃÃÏÃÃÏÃÃÏÍÖÃßÏÃÍ·ÉÃôÏÍÖÃùÏÃôÏÃÃÏÃÿ ÃÍЇ‡‡‡!ïÖ¶2É:ïÖ2ÉþaØþ{Ðæ_É:«Ö·Ê–Ð:ïÖ·>ĽÏ¬ÖÍËÏÊ–Ð:»Ö=2ÌÖ¬ÖÍùÏ–ÐÏ!€€ÍBÓ!ºÖ6#5¬ÖÍÚÏÊ–Ð:ïַĽÏ!ÏͬÏÍÂÐʧÐÍÝÐÂÒÍÝÐÍÐ ÏÍÍ)Ð!ÏF#x·ÊºÐ~Í0ÐwëÐw!Ï"ˆÏÉ Í·ÈÍ·ÉÀÃ!«Ö~·È6¯Í½Ï¬ÖÍïÏ:ïÖýÏ(Ò!×¾ÂÏÒ#ÂýÐÉ͘Ï*ŠÏ~þ Ê"Ñ·Ê"ÑåÍŒÏá#ÃÑ>?ÍŒÏ͘ÏÍÝÐÂÒ·Èþ Ú ÑÈþ=Èþ_Èþ.Èþ:Èþ;Èþ<Èþ>ÈÉ·Èþ ÀÃOÑ…oÐ$É>!ÍÖÍYÑåå¯2ðÖ*ˆÏëÍOÑë"ŠÏëá·Ê‰ÑÞ@Gþ:Ê�Ñ:ïÖwÖÑx2ðÖpÍ0ÑʹÑ#þ*©Ñ6?ëÑw˜ÑÍ0ÑÊÀÑïÑ#6 ¹Ñþ.ÂéÑÍ0ÑÊéÑ#þ*ÂÙÑ6?ÃÛÑwÂÈÑÍ0ÑÊðÑÃßÑ#6 ÂéÑ#6ÂòÑë"ˆÏá #~þ? Ò ÂÒx·ÉDIR ERA TYPESAVEREN USERóSÄ!ÒyþÐÎÖ¾ÂOÒ#Â<Òþ ÂTÒyÉ#ÂOÒ Ã3Ò¯2Ï1«ÖÅyæ_ÍÐ͸Ï2«ÖÁyæ2ïÖͽÏ:Ϸ˜Ò1«Ö͘ÏÍÐÐÆAÍŒÏ>>ÍŒÏÍ9Ð€ÍØÐÍÐÐ2ïÖÍ^ÑÄ Ñ:ðÖ·Â¥ÕÍ.Ò!ÁÒ_~#foéwÓÔ]Ô­ÔÕŽÕ¥Õ!óv"Ï!ÏéßÒçÏREAD ERRORðÒçÏNO FILEÍ^Ñ:ðÖ·Â Ñ!ÎÖ ~þ Ê3Ó#Ö0þ Ò ÑWxæà Ñx€Ú Ñ€Ú Ñ‚Ú ÑG ÂÓÉ~þ  Ñ# Â3ÓxÉ~#ÂBÓÉ!€�ÍYÑ~ɯ2ÍÖ:ðÖ·È=!ïÖ¾ÈýÏ:ðÖ·È=!ïÖ¾È:ïÖýÏÍ^ÑÍTÓ!ÎÖ~þ Â�Ó 6?#ˆÓÕÍéÏÌêÒÊÔ:îÖæ`O> ÍKÓÚÔÑ{ÕæõÂÌÓ͘ÏÅÍÐÐÁÆAÍ’Ï>:Í’ÏÃÔÓÍ¢Ï>:Í’ÏÍ¢ÏxÍKÓæþ ÂùÓñõþÂ÷Ó> ÍKÓæþ ÊÔ> Í’Ïxþ ÒÔþ ÂÙÓÍ¢ÏÃÙÓñÍÂÐÂÔÍäÏØÓÑÆÖÍ^Ñþ ÂBÔRÔͧÏÍ9Ð!Ï5‚Ò#~þY‚Ò#"ˆÏÍTÓÍÖÍïÏ<ÌêÒÆÖALL (Y/N)?Í^Ñ ÑÍTÓÍÐÏʧÔ͘Ï!ñÖ6ÿ!ñÖ~þ€Ú‡ÔåÍþÏá ԯw4!€ÍYÑ~þʆÖÍŒÏÍÂІÖÃtÔ=ʆÖÍÙÒÍfÓà ÑÍøÒõÍ^Ñ ÑÍTÓÍÖÕÍïÏÑÍ ÐÊûÔ¯2íÖño&)|µÊñÔ+å!€åÍØÐÍÖÍÐÑáÂûÔÃÔÔÍÖÍÚÏ<ÂÕÕͧÏÍÕÐÆÖNO SPACEÍ^Ñ Ñ:ðÖõÍTÓÍéÏÂyÕ!ÍÖÝÖÍBÓ*ˆÏëÍOÑþ=Ê?Õþ_ÂsÕë#"ˆÏÍ^ÑÂsÕñG!ðÖ~·ÊYÕ¸pÂsÕp¯2ÍÖÍéÏÊmÕÍÖÍÐÆÖÍêÒÆÖÍfÓà Ñ‚ÕͧÏÆÖFILE EXISTSÍøÒþÒ Ñ_:ÎÖþ Ê ÑÍÐÉÖÍõÐ:ÎÖþ ÂÄÕ:ðַʉÖ=2ïÖÍ)ÐͽÏÉÖÖÖþ  ÑÕÍTÓÑ!ƒÖÍ@ÓÍÐÏÊkÖ!åëÍØÐÍÖÍùÏÂÖá€Ï}“|šÒqÖÃáÕá=ÂqÖÍfÓÍ^Ñ!ðÖå~2ÍÖ>Í`Ñá~2ÝÖ¯2íÖ\!ÍÖ!ÍBÓ!Ï~·Ê>Öþ Ê>Ö#Ã0Ö�~·ÊOÖ#ÃCÖx2€Í˜ÏÍÕÐÍÐÍ1«ÖÍ)ÐͽÏÂÒÍfÓà ÑzÖͧÏÆÖBAD LOADCOMÍfÓÍ^Ñ:ÎÖÖ !ðÖ¶Â ÑÂÒ$$$ SUBóSÄÃיץ׫ױ×ë"CÚë{2Öä!"EÚ9"Ú1AÚ¯2àä2Þä!täåyþ)ÐK!G×_^#V*CÚëéåÈÙ�ØÎÙååÔÙíÙóÙøÙáØþÙ~ãƒãEãœã¥ã«ãÈã×ãàãæãìãõãþãä ää,Üää&ä-äAäGäMäãSäÚÚ›ä!Ê×Íå×þÊÉ!Õ×ô×!á×ô×!Ü×Íå×ÃBdos Err On : $Bad Sector$Select$File R/O$åÍÉØ:BÚÆA2Æ×º×ÍÓØÁÍÓØ!Ú~6·Àà åÍû×ÍØØõOÍ�ØñÉþ Èþ Èþ ÈþÈþ É:Ú·ÂEØÍåæÈÍ åþÂBØÍ åþʯÉ2Ú>É: Ú·ÂbØÅÍ#ØÁÅÍ åÁÅ: Ú·ÄåÁy! ÚþÈ4þ Ð5~·ÈyþÂyØ5Éþ À6ÉyÍØÒ�Øõ^ÍHØñö@Oyþ ÂHØ ÍHØ: Úæ–ØÉͬØ Í åà å#ÍHØÍÉØ: Ú! ھРÍHØÃ¹Ø ÍHØ ÃHØ þ$ÈÅOÍ�ØÁÃÓØ: Ú2 Ú*CÚN#åÅåÍû׿áÁþ ÊÁÙþ Ê  ÁÙþÂÙx·ÊïØ: Ú2 ÚÃpÙþÂ&Ùx·ÊïØ~+éÙþÂ7ÙÅåÍÉØ¯2 ÚÃñØþÂHÙå! Ú>–wáÃïØþÂ_Ùá: Ú! Ú¾ÒáØ5ͤØÃNÙþÂkÙͱØáÃáØþ¦ÙÅͱØÁáåÅx·ÊŠÙ#NÅåÍØáÁÃxÙå: Ú·ÊñØ! Ú–2 ÚͤØ! Ú5™ÙÃñØ#wÅåOÍØáÁ~þx½ÙþʹÚïØáp ÃHØÍØÃÚÍåÃÚy<ÊàÙ<Êåà åÍå·Ê‘äÍ åÃÚ:ÃÚ!qÉëMDÃÓØÍ#Ø2EÚÉ>ÃÚ! ×^#Vëé Èw#ÃPÚ:BÚOÍå|µÈ^#V#"³ä##"µä##"·ä##ë"Ðä!¹äÍOÚ*»äë!ÁäÍOÚ*Æä|!Ýä6ÿ·Ê�Ú6>ÿ·ÉÍå¯*µäw#w*·äw#wÉÍ'åûÚÍ*å·È! ×ÃJÚ*êäÍêÛ"åä"ìä!åäN#F*·ä^#V*µä~#foy“xšÒúÚå*Áä{•_zœWá+ÃäÚå*ÁäÚÛy•xœÚÛëá#ÃúÚáÅÕåë*ÎäDMÍåÑ*µäs#rÑ*·äs#rÁy“OxšG*ÐäëÍ0åMDÃ!å!ÃäN:ãä· ÂEÛG>–O:âä Ê\Û·ÃSÛ€É*CÚ :Ýä·ÊqÛn&É ^#VëÉÍ>ÛOÍ^Û"åäÉ*åä}´É:Ãä*åä)=Â�Û"çä:ÄäO:ã䡵o"åäÉ*CÚ É*CÚë!ÉÍ®Û~2ãäë~2áäͦÛ:Åä¦2âäÉÍ®Û:ÕäþÂÞÛ¯O:ãä�wë:áäwÉ È|·g}oÃëÛ€*¹ä¯†# ÂýÛÉ È)ÃÜÅ:BÚO!ÍÜÁyµox´gÉ*­ä:BÚOÍêÛ}æÉ!­äN#FÍ Ü"­ä*Èä#ë*³äs#rÉÍ^Ü ~Ð!×ÃJÚÍÜÈ! ×ÃJÚ*¹ä:éä…oÐ$É*CÚ~ÉÍiÜ6ÉÍiÜö€wÉ*êäë*³ä{–#zžÉÍÜØr+sÉ{•ozœgÉÿ*ìäë*ÌäÍ•ÜÐÅÍ÷Û*½äë*ìäÁ ÊÄܾÈÍÜÐÍ,ÜÉwÉÍœÜÍàÜ͸ÚÃÚÜÍàÜͲÚ!±äÃãÜ!¹äN#FÃ$å*¹äë*±ä€ÃOÚ!êä~#¾À<É!ÿÿ"êäÉ*Èäë*êä#"êäÍ•ÜÒÝÃþÜ:ê俇 Ý2éä·ÀÅÍÃÚÍÔÜÁÞÜyæ<_WyæOx‡‡‡‡‡±OxæG*¿ä ~ÂVÝÉÕÍ5ÝæþÁ±ÂdÝwÉÍ^ÜÅÑ ÈÕ:Ýä·ÊˆÝÅåNÃŽÝ ÅN#Fåy°Ê�Ý*Æä}‘|˜Ô\Ýá#ÁÃuÝ*ÆäÍêÛ#DM*¿ä6# x±Â±Ý*Êäë*¿äs#rÍ¡Ú*³ä6#6ÍþÜÿÍÝÍõÜÈÍ^Ü>å¾ÊÒÝ:AÚ¾ÂöÝ#~Ö$ÂöÝ=2EÚÍkÝÍŒÜÃÒÝ:ÔäÃÚÅõ:Åä/Gy Oñ ‘æÁÉ>ÿ2Ôä!Øäq*CÚ"ÙäÍþÜÍ¡ÚÍÝÍõÜÊ”Þ*ÙäëþåÊJÞÕÍÜÑÒ”ÞÍ^Ü:ØäOy·ÊƒÞþ?Ê|Þxþ Ê|Þþ ÊsÞ–æÂ-ÞÃ|ÞÅNÍÞÁÂ-Þ# ÃSÞ:êäæ2EÚ!Ôä~ЯwÉÍþÜ>ÿÃÚÍTÜ ÍÞÍõÜÈÍDÜÍ^Ü6åÍkÝÍÆÜÍ-ÞäÞPYy°ÊÑÞ ÕÅÍ5ÝÒìÞÁÑ*Æä{•zœÒôÞÅÕBKÍ5ÝÒìÞÑÁÃÀÞ<ÍdÝáÑÉy°ÂÀÞ!É Õ*CÚ ëÍ^ÜÁÍOÚÍÃÚÃÆÜÍTÜ ÍÞ*CÚ~wÍõÜÈÍDÜ ÍßÍ-ÞÃ'ß ÍÞÍõÜÈ ÍßÍ-ÞÃ@ßÍÞÍõÜÈͦÛ~õåÍ^Üë*CÚ ÕÍOÚÍxÜÑ! N!Fáñwy¾xÊ‹ß>Ú‹ß>€*CÚwÉ~#¶+Àw#w+ɯ2EÚ2êä2ëäÍÜÀÍiÜæ€ÀÍÞÍõÜÈÍ^Ü ë*CÚ :Ýä·Êèß~·ÂÛßw·Âáß~¾ÂàÃýßÍ”ßëÍ”ßë¾Âà#¾Âà # ÂÍßìÿ ë ¾Úàw ë ~>ÿ2ÒäÃß!EÚ5ÉÍTÜ*CÚå!¬ä"CÚÍÞÍõÜá"CÚÈë!¯w# ÂFà! wÍŒÜÍýÞÃxܯ2ÒäÍ¢ßÍõÜÈ*CÚ ~<æwʃàG:Åä !Òä¦ÊŽàìà 4~æʶàÍÞÍõܬà:Óä<ʶàÍ$àÍõÜʶàïàÍZßͻۯÃÚÍÚÃxÜ>2Õä>ÿ2ÓäÍ»Û:ãä!áä¾Úæàþ€ÂûàÍZà¯2ãä:EÚ·ÂûàÍwÛÍ„ÛÊûàÍŠÛÍÑÚͲÚÃÒÛÃÚ>2Õä>2ÓäÍTÜ*CÚÍGÜÍ»Û:ãäþ€ÒÚÍwÛÍ„ÛÂnáÍ>Û2×ä·Ê;áO Í^ÛDM;Þ}´ÂHá>ÃÚ"åäë*CÚ :Ýä·:×äÊdáÍdÜsÃláO s#r:EÚ·ÀÅÍŠÛ:Õä==»áÁÅy==»áå*¹äWw#òŒáÍàÜ*çä"åäÅÍÑÚÁ͸Ú*åä:ÄäG¥¸#šáá"åäÍÚÜÍÑÚÁÅ͸ÚÁ:ãä!áä¾ÚÒáw4 ÂßáõÍiÜæwñþÂâ:ÕäþÂâÍÒÛÍZà!EÚ~·Âþá=2ãä6ÃÒÛ¯2ÕäÅ*CÚë!!~æõ~#~æO~æGñ#n,-.‹â! w! y–ÂGâ!x–æÊâÅÕÍ¢ßÑÁ.:EÚ<Ê„â! q!pÍQß:EÚ<ÂâÁÅ. Ê„âÍ$à.:EÚ<Ê„âÁ¯ÃÚåÍiÜ6ÀáÁ}2EÚÃxÜÿÍâÌÁàÉÍâÌáÉëN! ~æ€�O>ˆG~æ€G!~‡‡‡‡õ€Gõá}áµæÉ ÍÞ*CÚ!år#r#rÍõÜÊ ãÍ^ÜÍ¥âáå_y–#xž#{žÚ  ãs+p+qÍ-ÞÃäâáÉ*CÚ Í¥â!!q#p#wÉ*¯ä:BÚOÍêÛåëÍYÚáÌGÚ}Ø*¯äMDÍ Ü"¯äãÝ:Öä!BÚ¾ÈwÃ!ã>ÿ2Þä*CÚ~æ=2ÖäþÒuã:BÚ2ßä~2àäæàwÍEã:AÚ*CÚ¶wÉ>"ÃÚ!"­ä"¯ä¯2BÚ!€"±äÍÚÜÃ!ãÍrÜÍQãÃQßÍQãâßë~þ?ÊÂãͦÛ~þ?ÄrÜÍQãÍÞÃéÜ*Ùä"CÚÍQãÍ-ÞÃéÜÍQãÍœÞÃÞÍQãüàÍQãÃþàÍrÜÍQãÃ$àÍQãÍßÃÞ*¯äÃ)ä:BÚÃÚë"±äÃÚÜ*¿äÃ)ä*­äÃ)äÍQãÍ;ßÃÞ*»ä"EÚÉ:ÖäþÿÂ;ä:AÚÃÚæ2AÚÉÍQãÓâÍQãÜâÍQãÃÒâ*CÚ}/_|/*¯ä¤W}£_*­äë"¯ä}£o|¢g"­äÉ:Þä·Ê‘ä*CÚ6:àä·Ê‘äw:ßä2ÖäÍEã*Úù*EÚ}DÉÍQã>2ÕäÍâÌáÉå€à çÃ4çà éÃéÃéÃéÃ%éÃ-éßæÃ°æÃÝæÃðæÃõæÃÓçÃðçÃ5éÃúæÃOæÃjæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÍcæÃ„êÃŽê@ÿU€’å•åœå£å¨åªå¬å¯å°å±å²å³å´åµå¶åAUTOST [v]pip a:=pip b:=xdir a:b:*.*789   æ€î5æ0ï$ïæ€î5æ@ï*ï-?€óÅOíy2ïÁûÉ:ïOíyýáÝááÑÁñí{oïûÉÑ{Ö_"�æó!91Áïå*�æóÓ>2ïûÕýáÍšæóõóÓ>2ïûñýáýùûÉûýéͪè¯2Pï2Rï2ï2ïÉyþÒÑæ2ïi&))))CæåxæÌjæáÉ!:‘À2ÉíCï*Sï}©O|¨±È¯2RïÉy2 ïÉíCïÉ:Uï¹Äëæy2Vïi`n&ÉGóÓ>2ïûx21Ï:få2:iåOÍ<å:jå2lï>1ÏÍŸæÏÍjæ· ô>õ€Íõæ!€í"ï¯2`ï<2²Ó>Ã22!å"!×"!cï"@!ŠåÁ:‰å (;~·(7ÏOí°8Osborne Computer System 60K CP/M 2.2A >¸(!’çÍýè!Ï:OéÍòè¯2RïÍKèáÑ€í°:"ï·È¯2PïöÉÍòèy2#ïþ >2Rï*ï"Sï:Vï<!Rï~·Ê*è5:Uï<þ *Sï#"Sï¯2Uï>ÿÍKèÑá€í°>2Qï:"ï·À:#ïþ̪è:"ï·É2!ï€í!€:ïë0ë)æ2ï*ïãÕå!Pï~6·(!ïï¾ #øÉͪè:ï2ï2ï*ï"ï"ï:ï2ï2ï:!ï·À>!Qï~·È6:ï2ï*ï"ï:ï2ï>_!'" é!ï4>2ï* éëÍjæ2"ïÈ:ï= êö2"ïɯ2"ï: ï2ïÉ~·#ÈåOÍ åáô!Né!Vé!^éÃ=é!néÃ=é!^éÃ=é!VéÃ=é!féÃ=é:ýæ_^#fkévé@êë£ê‡éIê›ëÚêËéNê¯ëæêÈé7êlëÈéËéTê¯ëæê:—é· :^ïîÈöÿÉÍäé!—é~·( Ý*…éÝ~4É Íhæþ€ØþŽÐË'_Ý!kåÝÝnÝfÝ^ÝVíS…éíR}2—é¿öÿÉ:`ïæ yþ :hå/2håÉ Ãhæ:hå·È*Zï)>d½8 :aïÖêȯ:aïÖêÆd½ÚêÖZ½Ø}Ö È}ÖdÆ !6êw:bïæÆ +w++ÅåNÍßéáÁ#õÉSÍŽêæÈöÿÉÍŽêæÈöÿÉÃhæÍhæÉÍNê:gå·Èæ > ¹ÀÍNêÍIêþ ùÉÍ@ê·ÈÍIêþÀÍIêþ ùÉÍÉëy2*Ã×ëÍÉë:,æ O:*æß±Ã×ë:¢ê·Ê­êöÿÉ:¡êÆ@OKÍhæ· òQÍhæË}(¯2¢ê_KÍhæ· ö:¢ê·ÈöÿÉÍ£ê(û!¢ê~6ÉÅ:¡êÆ OKÍhæ· òÁÅNÍhæÁ· ö?KÍhæ· öÉ: ëþÈ>*2)>ÿ2)>.2)>2)>¿2)>2)>2)>2 ëÉ: ëþÈ>*2)>2)>.2)>2)>¿2)>2)> 2)>2 ëÉÍÉëÍë:)æ@(öÿÃ×ëÍÉëÍ=ë:~ëæ€ :)2~ëæ€(öÿÃ×ëÍë(ûÍÉë¯2~ë:)/OÃ×ëÍlë(ûÍÉëy/2)>"2)>2)Ã×ëóõóÓ>2ïûñûÉóõóÓ>2ïûñûÉÏ  -FOG/UTL004FLS-11 COMASQ-15 COMj SQ/USQ15DOC TYPESQ14COMKUSQ-15 COMOSUPERSUBASM !SUPERSUBCOM"åSUPERSUBDOC"#$%SUPRSUB2COM&'DISK DOC +COMPARE ASM()COMPARE COM *åWASH COMåUNERA COM åRECOVER COMåååå*ùÍKÍžÃ+p!žp!…)Ã'Ã+ÃFÃŽÃrÃÃû Í– þ8Ê{ æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë ~#foÉá^#åë& ~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìzå·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕå͉ÑÍk|/g}/o#Ñɯ2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )ÖëxõÍÝÚ·Õz/W{/_ѯzW{_ñ=ÈõyOxGæ¯2qÍZëÍZë͉ÃM|ºØÀ}»Éëȯ|g}oÃæëÈ)Ãô|/g}/o  #Éz/W{/_É!9~#foÉ!à !à ! à ! à !à !à Ÿ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"�!"“!@"‘!"• ÍæÊžÍ!€ßF#x·Â±Ã~#±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2r! ~#foåÍ�)Ñ~#foåÍ­Ñ`i^#Vr+sÃðÍ�ÍùÒÖ!› å!åͪÑÑ!Þ å!åͪÑÑ!? å!åͪÑÑ`i¯w#wÍ�Íùҹ͡ë! s#rz³Â†! 6 #6Í�ë! åÍ�ëás{þ ­Í�ë! 6ù`i^#Vr+sÃ_! n}·ÊÌ! åÍ­Ñ! n}·ÂLͰë!9ùëÁÉ1.1 06/16/81Parameter list +w#þ Âæ+6#ÃÈÕ!×6#¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍ åþ:>ªÍÖ@w#ÍGþ.¶ÍƯww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7Èbuilder - Version %s by Richard Greenlaw 251 Colony Ct. Gahanna, Ohio 43230 Accepts redirection and pipes. Omit other parameters for help and prompt Parameters are from command line or (singly) from console input. Drive names and -options are passeþ!ÉþaØþ{ÐÖ Éþ Ê þ Ê ÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$Ñ Â-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉ¿!>Í15:Ì<Í15>{Í15Y/Íe5Ã6!Í'Â":Ê<æÀÂÝ!>}Í15Y/ÃÂ!:Ê<æÀÄc+ÍÀ&Â">&Í15¯Í15\0ÃÂ!:Ê<æÊ/"Íž)ÃÐ :¿<æÂ@"ͧ*Íž)ÃZ!:Ê<æÀ>åÊL">ÕÍ15Íd thru. Ambiguous file names are expanded. CR or EOF to stop. *ÃQ ìÃ^ÃuÃ~Å!Åÿ9ùDMÍ�?n}þ-Ê| Í�?#n}þ:Â� Í�?##n}·Â� Í�?å!G åÍE ÑÑÃ> Í�?å`iåÍH ÑÑ#|µÂ¶ Í�?å!K å!åÍK ÑÑÑÃ> !* ¯w#w!€å!åÍN ÑÑÍ�*|µÊã `iå!åÍN ÑÑÃï `iå!åÍN ÑÑë!) s!) n}þÿ ž)>ÑÍ15>@2Ê<ÃZ!å*Á<"¢<áÚ/Íe5:¿<æþö2¿<É"¢<|·Â›"}·ÂŒ"Q0Íe5Éõñõ·Ê¢"Â�"ñQ1Íe5Éñ>�GÈ>)Í15ç"#ÍÆ(Íl'ñõÍ·*ÍÞÍ÷*Íž)Í!2þÊÊÙ"Í«'-ÍL3ÑÉ#Í·&Âæ"x0Íe5ñÍG)õÍ�'Í«'Í·*ñÍÞÍ÷*Íž)Íb)É~þùÄF9#^#V#Í#Í!2ÉÅåë)))äU~õæþÂ,ÌL3ñæ‡G~õæ`°2Ä<ñæ2É<#~æ2Ã<~æ?>Ã" !, ë!$ s#rÍ�?#n}þ:Â? !$ ^#Vr+sÕÍ�?nëás!$ ^#Vr+së6:!) n&ëÍ Í?€ë!& s#r!( 6!( n}·Ê¨ Í�$å!& ^#Vr+sën¯g|¢g}£oëás{þ Ê  !$ ^#Vr+s!( 5Ãe !$ ^#Vr+së6.!( 6!( n}·Ê Í�$å!& ^#Vr+sën¯g|¢g}£oëás{þ Êø !$ ^#Vr+s!( 5ý ÊT#=2½<#^#V#Õ^#V#ë"Å<ë^#Vë"Ç<Ñ:É<·Ê~#*°<ë!:Ä<æ@Ê�#"Ç<áÁÉå*Û<#w"Û<áÉå*Û<~þÿÊ«#·Â¶#,ÍL3ÍÄ;áÉ+"Û<áÉå*Û<+"Û<áÉå!l@"Û<6ÿ!”@"Ý<áÉå*Û<~·áÈþÿÉåõ*Ã<ë*Ý Í�?å!^ å!åÍK ÑÑÑë!;9ùëÁÉ%s %s is bad afn %s %s not found - ignored  ÃÚÃ~ÑÅ!ÿÿ9ùDMÍw}·Ê¼ * åÍy Ñë`is{þ ¹ * åÍy Ñë`isÃÑ !åÍ| Ñë`is{þÂÑ Í `in}þÂà !ÿÿà `in}þ  `i6 Íw}·Â ! å!åÍ|   ÑÑ`in&à ë!9ùëÁÉÃ# ÃÈÃuÑÃ~Å!9ùDMÍw}·Ê‘ ! n}þ ÂP *å! åÍ ÑÑ*å! n&åÍ ÑÑ#|µÂ{ !Ü å!åÍ ÑÑÍ Íw&|¢g}£o|µÂ‘ ÁÉ! åÍ Ñ|µÊ± !åÍ Ñ+++|µÂ± Í ! n}þ ÂÉ ! å!åÍ ÑÑ! n&å!åÍ ÑÑÁÉFile output error; disk full? ÃÃåÍ©Ñ!Rå!]å͵ÑÑÍw}·ÊEÍ\å!iëás#rÍ\¯w#wÍ\åÍ\å͸ÑÑÁÉtempin.$$$tempin.$$$tempout.$$$ÊãÃ.! ~#foåÍ�)Ñ~#fo#n}·ÂÈÃþ* å! ~#foåÍ�)Ñ~#fo#åÍþ ÑÑ#|µÂ! ~#foåÍ�)Ñ+++|µÂ!åÍàÑÿÍ�##^#Vr+sz³Ê>Í�^#Vr+sën&ÿ!åÍ�åÍ�~#foåÍãÑÑÑë`is#r!ÍÚ{Í�##^#Vr+sëÿÍ�##åÍ�€Í?+ëás#rÍ�åÍ�ëás#rÍ�^#Vr+sën&ÿë!9ùëÁÉÃÔà Ã~ÃÉÅ!9ùDMÍ�+|µÂô! n&åÍËÑÁÉÍ�++|µÂ!~#fo#å!Nå!åÍÑÑÑÍ*6!]å! ~#foåÍ�)Ñ~#foåÍÑÑ|µÂS*ån&|²g}³oëásÃ}*##4! ~#foåÍ�)Ñ~#fo#å*###Ñs#r! ~#foåÍ�)Ñ~#fo#n}·ÊÌ! ~#foåÍ�)Ñå!iëás#r! ~#foåÍ�)Ñå*Ñs#rÃã*#ån&|²g}³oëás! ~#foåÍ�)Ñ~#fo#n}·Â!v n&å!åÍÎÑÑÁÉÍ�+++|µÂ1! n&å!åÍÎÑÑÁÉÍ�++++|µÂi! n}þ ÂV! å!åÍÎÑÑ! n&å!åÍÎÑÑÁÉÍ�##^#Vr+sz³ÊšÍ�^#Vr+sÕ! nëásë&ÁÉ!åÍ�åÍ�~#foåÍÑÑÑÑÍåÊÄ!ÿÿÁÉÍ�##6ÿ#6Í�åÍ�ëás#rÍ�^#Vr+sÕ! nëásë&å!åÍÑÑÍ! ~#foåÍ�)Ñ~#fo#åÍ Ñ*å! ~#foåÍ�)Ñ~#fo#åÍ ÑÑ#|µÂx! ~#foåÍ�)Ñ~#fo#å!•å!åÍÑÑÑÍ*#4Íw}·ÂÍ�ë! s#rÍ�åÍ� ~#foÑÍúÒß! ~#foåÍ�)Ñå! ~#foåÍ�#)Ñ~#foëás#r! ^#Vr+sÃ’Í� ^#Vr+s`i^#Vr+s*^#VrÁÉÁÉà Ã1Å!9ùDMÍ�å!åÍ�åÍÑÑëás#rz·ò5!ÿÿÁÉÍ�##¯w#wÍ�~#foÁÉÁÉÅ!þÿ9ùDM`i¯w#w! ~#foåÍ�Ñnå! ~#foåÍ�ÑnÑ}»Â¥! ~#foå`i^#Vr+sëÑn}·Â¢!ÃÑÃY! ~#foåÍ�Ñnå! ~#foåÍ�ÑnѯgWÍúÃÑë!9ùëÁÉÃàÃuÅ!9ùDMÍ�åÍ�åÍÝÑëás#rz·ò+sÃ+Í� åÍ�ëás#r! ~#foåÍ� ~#fo)ѯw#wÃ9! ^#Vr+s`i^#Vr+sÃ]ë!9ùëÁÉCan't open %s <êÌí°ÁÉ~# x±ÂÌÁÉ ë ë><êèí¸ÁÉ~+ x±ÂèÁÉ|ºÀ}»Éà ÃJ!Vr+sÕ`inëásÃîÍ�œ6ë!˜9ùëÁÉÃ%ÃÈÅ!ÿÿ9ùDM! ^#Vr+sënë`is{·Êz`in}þ Â[Í�å! åÍ"ÑÑÍ�å`in&åÍ"ÑÑ#|µÂw!ÿÿÀÃ-!Àë!9ùëÁÉÃ�à Å!9ùDMÍ�n}·Ê¹! ^#Vr+sën&åÍŒÑ×ÁÉÃÁûÅ!ÿÿ9ùDMÍ�åÍ� ÑÍìÒÍ�^#Vr+sÕÍ� ÍëÒþÍ�0ÃÍ�Í7:ŸÍ,ÚÅå*ŸåÍýÑë:£*¡·Ê" }|æ2qã å¾ÊS ãëÕÍÑáþÿÂI ÑÁÃ:qwÕÍÑþÿÊD ! Ñ{æwëÁÉÍ7Å*Ÿë!Äÿ9åååÍ&á 6C#6O#6MÑÍþÿ” áÁÃ*¡|µÂª ¡Õ!\Í&áü ë!\Í&*£|µÂ¼ !£ë!lÍ&�¯!¡å~#fo´Êô > +Íë #~·ÂÙ á##ÃÍ þaØþ{ÐÖ Éá!€p !!Ö  *w#Â!Á:þ**Ê!*ù!åÃÖÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ Í,ÚÅ FN¯xg>G�oy òn!$ÁÉO#6MÑÍþÿ” áÁÃ*¡|µÂª ¡Õ!\Í&áü ë!\Í&*£|µÂ¼ !£ë!lÍ&�¯!¡å~#fo´Êô > +Íë #~·ÂÙ á##ÃÍ þaØþ{ÐÖ Éá!€p !!Öå6 ÅÕå ÍáÑÁ·ÂÂ!rîå·ÊAN¾#ÊGyþaÚ6þ{Ò6æ_¸Êá#~þ ÂÃÈáÍe !r~_ÅÕåÍáÑÁ~#þ ÂNÃÈã^ÅÕåÍáÑÁ#~·ÂfãÉÍÜ++BAD STRING++$~# x±ÂŒÉ^#V#N#Fx±Âæ#~‡G#å~#fo>ÕåÅÕåÍáÑÁÑÅÕåÍáÑÁ·áÂÛ}Æ€o|Îgë­á+~+w+++×#~ë„g}‘o|˜g~ëþÈ +p+qÉÅÕåå€ÍáÑÁ¯2h2|:©·ÂL>2©!\ª ÍŒ:\2¶!ª\ ÍŒÅÕå\ÍáÑÁÀ!¶\ ÍŒÅÕå\ÍáÑÁ!ª\ ÍŒÅÕå\ÍáÑÁ<7È=懇‡‡‡Æ�o&å· ÍŒá] ÍŒ¯2hÉ#fo>ÕåÅÕåÍáÑÁÑÅÕåÅÕåÍáÑÁÍÜ ++ABORT++$Ñ Í*pùÉ÷\åå*ùÍKÍžÃ+6žÂ55OÃ'Ã+ÃFÃŽÃrÃÃû Í– þ8Ê{ æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë ~#foÉá^#åë& ~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìzå·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕå͉ÑÍk|/g}/o#Ñɯ2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )ÖëxõÍÝÚ·Õz/W{/_ѯzW{_ñ=ÈõyOxGæ¯2qÍZëÍZë͉ÃM|ºØÀ}»Éëȯ|g}oÃæëÈ)Ãô|/g}/o  #Éz/W{/_É!9~#foÉ!à !à ! à ! à !à !à Ÿ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"�!"“!@"‘!"• ÍæÊžÍ!€ßF#x·Â±Ã~#±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2r6#6`i~#foå! ~#foÑÍúÒB! ~#foå`i~#fo)Ñ~#foåͪÑ`i^#Vr+sÃ! ~#foÍùÒô!­ å!åͧÑÑ!/ å!åͧÑÑ`i¯w#w`i~#foÍùÒ×Í¡ë! s#rz³Âœ! 6 #6`i~#foë! å! ~#foëás{þ ÂË`i~#foë! 6Ã×`i^#Vr+sÃs! n}·Êê! åͪÑ! n}·Â`Í­ë!9ùëÁÉ+w#þ Âæ+6#ÃÈÕ!×6#¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍ åþ:>ªÍÖ@w#ÍGþ.¶ÍƯww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7È1.5 08/29/81File squeezer version %s Richard Greenlaw 251 Colony Ct. Gahanna, Ohio 43230 Accepts redirection and pipes. Omit other parameters for help and prompt Parameters are from command line or one-at-a-time from standard input and are outpuþ!ÉþaØþ{ÐÖ Éþ Ê þ Ê ÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$Ñ Â-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉ¿!>Í15:Ì<Í15>{Í15Y/Íe5Ã6!Í'Â":Ê<æÀÂÝ!>}Í15Y/ÃÂ!:Ê<æÀÄc+ÍÀ&Â">&Í15¯Í15\0ÃÂ!:Ê<æÊ/"Íž)ÃÐ :¿<æÂ@"ͧ*Íž)ÃZ!:Ê<æÀ>åÊL">ÕÍ15Ít drives and input file names. Empty to quit. *ÃD ÃÒ%à &Û%Ã:&ã Å!îÿ9ùDM! ~#fon}þ-Âj *>}·Í�}2>Ã2 ! ~#fo#n}þ:ÂÞ ! ~#fon&åÍ5 Ñ|µÊÄ ! ~#fo##n}·ÂÁ ! ~#foå!; åÍ8 ÑÑ! ~#fon}2>Ã2 ÃÞ ! ~#foå!M å!åÍ; ÑÑÑÃ2 ! ~#foë`is#r`i~#fon}·Ê8 `i~#fon}ž)>ÑÍ15>@2Ê<ÃZ!å*Á<"¢<áÚ/Íe5:¿<æþö2¿<É"¢<|·Â›"}·ÂŒ"Q0Íe5Éõñõ·Ê¢"Â�"ñQ1Íe5Éñ>�GÈ>)Í15ç"#ÍÆ(Íl'ñõÍ·*ÍÞÍ÷*Íž)Í!2þÊÊÙ"Í«'-ÍL3ÑÉ#Í·&Âæ"x0Íe5ñÍG)õÍ�'Í«'Í·*ñÍÞÍ÷*Íž)Íb)É~þùÄF9#^#V#Í#Í!2ÉÅåë)))äU~õæþÂ,ÌL3ñæ‡G~õæ`°2Ä<ñæ2É<#~æ2Ã<~æ?>þ*Ê `i~#fon}þ?Â, ! ~#foå!b å!åÍ; ÑÑÑÃ2 `i^#Vr+sÃì ! 6!>å! åÍ> ÑÑ! ~#fo#n}þ:Âi ! ~#fo##Ãq ! ~#foå! åÍ> ÑÑ! ë`is#r`i~#fon}·Ê `i~#fon}þ. `i~#fo#n}·Â· `i~#fo6à `i~#fo##n}þqÊÓ þQÊÓ þÊí Ãø ! ~#foå!} å!åÍ; ÑÑÑÃ2 `i~#fo###6`i~#fo##ÊT#=2½<#^#V#Õ^#V#ë"Å<ë^#Vë"Ç<Ñ:É<·Ê~#*°<ë!:Ä<æ@Ê�#"Ç<áÁÉå*Û<#w"Û<áÉå*Û<~þÿÊ«#·Â¶#,ÍL3ÍÄ;áÉ+"Û<áÉå*Û<+"Û<áÉå!l@"Û<6ÿ!”@"Ý<áÉå*Û<~·áÈþÿÉåõ*Ã<ë*Ý2>! å! å!åͧÑÑÑ!c å!åͧÑÑ>2>>:2>>2>`i6Qà `i^#Vr+sÆ !ž å! åÍ> ÑÑ! å! ~#foåÍA ÑÑë!9ùëÁÉ Output drive =%s ERROR - Ignoring %s Ambiguous name %s ignored %s ignored ( already squeezed?).QQQÃÇ Ã &Ü&Û%Ãâ&Ã:'Ã!ßÃcÃNÃk'è(Å!ð÷9ùDM! ~#foå! ~#foå!Gåͦ ÑÑÑ! å! ~#foåÍ© ÑÑ#|  µÂ ! ~#foå!Så!åͬ ÑÑÑÃ>!  å! ~#foåͯ ÑÑ#|µÂZ ! ~#foå!så!åͬ ÑÑÑ! åͲ ÑÃ>!">!„åͦ Ñ͵ ! å͸ Ñ! åͲ Ñ! ~#foå!  åÍ» ÑÑ!�åͦ Ñ! å! ~#foåÍ© ÑÑ#|µÂË ! ~#foå!œå!åͬ ÑÑÑÃ,͵ ! å; Ñë! s#rz³Ê!  å! ~#foåÍÁ ÑÑ#|µÂ! ~#foåÍ�#)Ñ~#foëás#r! ^#Vr+sÃÚÍ� ^#Vr+s`i^#Vr+s*6++"6ÃlÍ� åÍ�ëás#r! ~#foåÍ� ~#fo)ѯw#wÃz! ^#Vr+s`i^#Vr+sÃÆë!9ùëÁÉCan't open %s %s: Can't open %s for input pass 1 Can't create %s analyzing, squeezing, Can't open %s for input pass 2 ERROR - write failure in %s done.ÃìÃõ)à1ó1Å!ÿÿ9ùDM*6}·Ê! 6å}·Ê ! 6åÍêÑ!qåÍíÑ*6}·Êo!:å!åÍðÑÑ!:åÍóÑ!:åÍêÑ!|å!‡åÍöÑÑ*6}·Êo*6å!“ëás#r*6¯w#w*6å*6åÍùÑÑÁÉtempin.$$$tempin.$$$tempout.$$$ÍãÑë`is{þ Â! 6åÍãÑë`isÃ2!åÍæÑë`is{þÂ2Íé`in}þÂA!ÿÿÃk`in}þ Âc`i6 *6}·Âc! å!åÍæÑÑ`in&Ãkë!9ùëÁÉÉÜ&Û%ó1Ãã*ö1Ãâ&Å!úÿ9ùDM{26{26{26! ~#foåÍ� ~#fo)Ñ"6! 6#6`i6#6Í�åÍ� ~#foÑÍúÒ†*6}·ÊåÆ! ~#foåÍ�)Ñ~#fon}þ<Êë! s#rë~#fo#|µÊ#! ~#fo^#Vr+s`i~#foÍåÂËͨ!  6ÿ#6ÿ!  ~#fo#|µÊT!OåÍ«Ñ!  ~#foåÍ®Ñ!  å~#foë͉ëás#rͨ! s#r! s#r! ~#foÍùÒü! ~#foÍk">~#fo|µÊî! ~#foÍk">##6! ^#Vr+së)ë! å! ~#foëás#r! ^#Vr+sÊ! þ|ʹþ+Êþ>Ê1Ão! ~#foåÍ�)Ñ~#fo#n}·Â0ÃL! 6å! ~#foåÍ�)Ñ~#fo#åÍwÑÑ#|µÂ|! ~#foåÍ�)Ñ~#fo#å!�å!åÍzÑÑÑÍ}>26!žå! ~#foåÍ�)Ñ~#foåÍ€ÑÑ|µÂ¶*6&|²g}³o}26ÃÆ!64! ~#foåÍ�)Ñ~#fo#"6! ~#foåÍ�)Ñ~#fo#n}·Ê! ~#foåÍ�)Ñ~#foå! åͱÑÑ! ~#foå! åÍ´ÑÑÍ·*)Lå!åͺÑÑ#|µÊ>ͽ>22O!"0Oë! 9ùëÁÉ*** rescaling ***, ÃlÃ*"Ó"Å!öÿ9ùDM! ~#foå!vÿåÍfÑÑ! ~#foå*>åÍfÑÑ! ~#fo#n}þ:¸! å~#fo##ëás#r! ~#foå! ~#fon&åÍiÑÑ! ^#Vr+sën}·Â¸*)LÍùÍ©Òú!Ã*)Lÿå!ªëás#r! ~#foåÍ�)Ñ"6Ã1*6&|²g}³o}26! ~#foåÍ�)Ñ~#fo#n}·Â\!·å!åÍzÑÑÍ}! ~#foåÍ�)Ñ~#fo#å̓Ñ!:å! ~#foåÍ�)Ñ~#fo#å͆ÑÑ#|µÂÂ! ~#foåÍ�)Ñ~#fo#å!Öå!åÍzÑÑÑÍ}!64*6}·ÂFÍ�ë! s#rÍ�åÍ� ~#foÑÍúÒ'! ~#foåÍ�)Ñå!ë! s#r! ~#foå! ~#foåÍfÑÑ! ¯w#w*)Lë`is#r! ~#foå! ~#foÑÍúÒE`i~#foÍk">###~#foë! s#r`i~#foÍk">~#foë! s#r! ~#foÍùͩҫ! ~#fo#Íúü*)Lå! ~#foÑÍúë! s#r! ~#foÍùÍ©Òç! ~#fo#ÍúÃø*)Lå! ~#foÑÍúë! s#r  ! ~#foå! ~#foåÍfÑÑ! ~#foå! ~#foåÍfÑÑ! ^#Vr+s`i^#Vr+sÃ1ë! 9ùëÁÉÃTà !Å!ýÿ9ùDM`i6! 6*2Oå! nѯgWÍúÚá! n}·Â‹`in&Ã�`iånå*3Oå! n¯gÍúÑÍòÑ|²g}³oëás*3Oå! nѯgÍä"3O*2Oå! nѯgWÍú}22O`in&Ã�*2O&ÍÒ+`iånå*3Oå! n¯gå`i^#Vr+sás#r! ~#fo###å! ~#foëás#r! ~#foå! ~#foëás#r! ~#foå! ~#foÍk">~#foå! ~#foÍk">~#foÑëás#r! ~#fo##å! ~#foÍk">##n&å! ~#foÍk">##n&åÍNÑÑëás! ~#fo+å!å! ~#foåÍKÑÑÑÃ`! ~#fo~#fo")Lë! 9ùëÁÉÅ!ÍúÑÍòÑ|²g}³oëás! ånå*2OѯgWÍúëás*0OÍåÂU>22O! n}þÂM!ÿÿÃR`in&Ã�! ~#foåÍQÑ"0O#|µÂq!"0O*0O),M~#fo"3O*0O+Ln}22OÃfë!9ùëÁÉÅ!þÿ9ùDM`i¯w#w`i~#foÍùÒ`i~#foÍk">¯w#w`i~#foÍk">##6`i~#foÍk">###6ÿ#6ÿ`i~#foÍkþÿ9ùDM`i¯w#w`i~#foÍùÒ3`i~#fo+L6`i^#Vr+sà ë!9ùëÁÉÃBÃ<Å!üÿ9ùDM! ~#foÍk">###~#foë`is#r! ~#foÍk">~#foë! s#r`i~#fo#|µÂ! ~#fo#|µÂ! ~#fo+Lå! ~#foëás! ~#fo),Må*.Oå! ~#foÍúÿÿÍäÑ|¢g}£oëás#r! ~#foÍÒ">6ÿ#6ÿ`i^#Vr+sæë!9ùëÁÉÅ!óÿ9ùDM! s#r! s#r! s#r! ~#foÍùÒÈ! ~#foÍk">~#foå! ~#foå! ~#foÑÍúÑÍóÒ“! ^#Vr+s! å~#foå! ~#foÍk">~#foÑëás#r! ^#Vr+sÃC! ~#fo#ë! s#r! 6! ¯w#w! ~#foÍùÒo! ~#fo!ÿÿà !ôî`i~#fo#|µÊ`*.Oå! ~#foÍò}/o|/gÑ|¢g}£o".O`i~#foå! ~#fo#åÍ?ÑÑ#|µÂ`!ÿÿô! ~#fo#|µÊ®*.Oå! ~#foÍòÑ|²g}³o".O! ~#foå! ~#fo#åÍ?ÑÑ#|µÂ®!ÿÿô!ôë!9ùëÁÉÃÆÃH ýÅ!üÿ9ùDM! ~#foÍ?#ë`is#r! ~#foå! ~#fo)Ñ~#foë! Ík">~#foë! s#r! ~#foå! ~#foÑÍìÒa! ~#fo|µÊa! ~#foÍk">å! ~#foëás#r! 6! ^#Vr+sÃç! n}·Â+! ~#foÍÒÚ! ¯w#w! ~#foÍùÒÚ! ~#foÍk">å~#foå! ~#foÑ͉ëás#r! ^#Vr+sÃ’ë! 9ùëÁÉÃéýÅ!þÿ9ùDM! ~#fo++ëÍs#r`i~#foå! ~#foÑÍÚ `i~#foå! ~#foÑÍúÒq! ~#foå`i~#fo#)Ñ~#foå! ~#foå`i~#fo)Ñ~#foåÍÀÑÑ|µÊq`i^#Vr+s! ~#foå`i~#fo)Ñ~#foå! ~#foåÍÀÑÑ|µÊ ! ~#foå! ~#fo)Ñå! ~#foå`i~#fo)Ñ~#foëás#r! ~#foå`i~#fo)Ñå! ~#foëás#r! ~#foå`i~#foå! ~Ëë`is#r`i~#fo|·ú?! ~#fo+å`i~#foå! ~#foåÍæÑÑÑ`i^#Vr+sÃë!9ùëÁÉÃQýà Å!öÿ9ùDM`i6#6! ~#foÍÒæ! ~#fo~#foë! s#r! ~#foå! ~#foå! ^#Vr+së)Ñ~#foëás#r! ~#fo+å!å! ~#foåÍKÑÑÑ! ~#fo~#foë! s#r`i~#foÍk">ë! s#r! ~#fo#foåÍÃÑÑÑë!9ùëÁÉÅ!9ùDM! nå! nѯgWÍÍ©Ò= ! n&ÃB ! n&ÁÉÁÉÅ!9ùDM! ~#foÍk">~#foå! ~#foÍk">~#foÑÍóÒ‹ !&ÁÉ! ~#foÍk">~#foå! ~#foÍk">~#foÑÍåÂû ! ~#foÍk">##nå! ~#foÍk">##nѯgWÍÒû !&ÁÉ!&  ÁÉÁÉÅ>2!>ÁÉÃ!Ãò"Ãr+ó1Å!9ùDM*!>}þÊ;!þÊR!þÊð!þÊý!Ã">2!>! ~#foåÍ!Ñ">ÁÉ*>>�½Âa!>¼Êp!>ÿ½Âm!>ÿ¼Êz!Ã!>2!>!ÁÉ!ÿÿÁÉ!">! ~#foåÍ!Ñ">å*>ÑÍå¶!*>ÿÍùÒ¶!*>#">Ã…!*>>½ÂÅ!>¼ÊÔ!>½ÂÑ!>¼ÊÜ!Ãæ!*>">ÁÉ>2!>*>ÁÉ>2!>!�ÁÉ>2!>*>">ÁÉ>2Ø%Ñ|µÍ£ÁÉÁÉÃ&Ãõ+Ãr+Å!yÿ9ùDM!‹ å`iåÍ&ÑÑ`iåÍ&Ñë!‡9ùëÁÉÅ!þÿ9ùDMÍ�ë`is#rÍ�n}·Êd&! ^#Vr+sÃL&! ^#Vr+sÕÍ�nëás! ^#Vr+sën}·Âd&Í�Ó&ë!9ùëÁÉâ&Ãu2Å!9ùDMÍ�å!åÍ�åÍŸ&ÑÑëás#rz·òÌ&!ÿÿÁÉÍ�##¯w#wÍ�~#foÁÉÁÉÃè&ù2Å!9ùDMÍ�åÍ�åÍå&Ñëá!>*>ÁÉ!"åÍ!Ñ!åÍ!ÑÁÉBug - bad state Ã6"ä+Û%ó1Å!9ùDM! ~#foå! ~#foåÍ-"ÑÑå! ~#foÑÍåÊz"!|"å!åÍ0"ÑÑ!åÍ3"ÑÁÉWrite error in putw() ß"Ãk'Û%ó1Å!9ùDM! ~#foå! ~#foåÍ–"ÑÑ#|µÂÙ"!Û"å!åÍ™"ÑÑ!åÍœ"ÑÁÉWrite error in putc() Ãø"Ãõ)Å!þÿ9ùDMs#rz·ò '!ÿÿÁÉÍ�åÍ�ëás#rÍ�##6#6Í�~#foÁÉÁÉÃ@'Ãê2Å!9ùDMÍ�ÍëÒZ'!ÁÉÍ�~#foåÍ='ÑÁÉÁÉÃw'Ãí2à1Ã3Å!9ùDMÍ�+|µÂ—'! n&åÍn'ÑÁÉÍ�++|µÂµ'! n&å!åÍq'ÑÑÁÉÍ�+++|µÂÔ'! n&å!åÍq'ÑÑÁÉÍ�++++|µÂ (! n}þ Âù'! å!åÍq'ÑÑ! n&! ~#foåÍõ"Ñë`is#r`i~#fo#|µÊ.#*>å`i~#foÑ">`i~#foÃ7#ë!9ùëÁÉÃI#Ãr+à &Å!þÿ9ùDM*>}·ÊÂ#!Ë#åÍC#Ñ`i¯w#wÍ�ÍùÒº#Í�ëÍ|µÂ’#Í�å!ù#åÍF#ÑÑÍ�Ík">~#foå!$åÍF#ÑÑ`i^#Vr+sÃg#!$åÍC#Ñë!9ùëÁÉ Counts after 1st algorithm and maybe scaling %4X å!åÍq'ÑÑÁÉÍ�##^#Vr+sz³Ê=(Í�^#Vr+sÕ! nëásë&ÁÉ!åÍ�åÍ�~#foåÍt'ÑÑÑÍåÊg(!ÿÿÁÉÍ�##6ÿ#6Í�åÍ�ëás#rÍ�^#Vr+sÕ! nëásë&ÁÉÁÉô(Ã3Ã…3ÃÖ3Å!þÿ9ùDMÍ�ÍëÒÏ(!Ãì)Í�##~#foÍåÂè(!Ãì)Í�##~#fo€ëÍËÍú%5u Ã$à &Å!þÿ9ùDM*>}·Ê3%*)Lå!<%åÍ $ÑÑ`i¯w#wÍ�ÍùÒÈ$Í�Ík">~#fo|µÊ¼$Í�Ík">~#foåÍ�Ík">###~#foåÍ�Ík">##n&åÍ�Ík">~#foåÍ�å!W%åÍ $ÑÑÑÑÑÑ`i^#Vr+sÃ2$!u%åÍ $Ñ`i¯w#wÍ�ÍùÒ3%Í�+Ln&ÍÒ'%Í�),Më`is#rÍ�åÍ�åÍ�~#foåÍ«(ÑÑÑåÍ�ÑÍåÊ5)!ÿÿÃì)Í�+€Í?ë`is#rÍ�##~#fo|µÊÅ)!€åÍ�åÍ�åÍ�ÑåÍ®(ÑÑÑÍ�##å~#foåÍ�Ñëás#rÍ�å~#foåÍ�ÑÍúëás#r!å!ÿÿåÍ�~#foåͱ(ÑÑÑÃì)Í�##6#6Í�åÍ�ëás#r!Ãì)ë!9ùëÁÉÃ*Ãàà1ÃA~#foåÍ�+Ln&åÍ�åÍ�å!…%åÍ $ÑÑÑÑÑ`i^#Vr+sÃÖ$ë!9ùëÁÉ Encoding tree - root=%3d %3d w=%5u d=%3d l=%3d r=%3d Huffman codes %3d %4X l=%2d c=%4x ä%Ãõ+Ãd/Å!yÿ9ùDM!� å`iåÍž%ÑÑÍ�‹å`iåÍ¡%ÑÑÃÉ%ë!‡9ùëÁÉÃÛ%ÃÎ/Ãý/Å!9ùDM! n&åÍÕ%Ñ|µÍ£Â&! n&åÍ4Å!þÿ9ùDMÍ�|µÂ*Íø)ÃÚ*Í�+++|µÂ/*!åÍû)ÑÃÚ*Í�##^#Vr+sz³ÊY*Í�^#Vr+sën&ÃÚ*!åÍ�åÍ�~#foåÍþ)ÑÑÑë`is#r!ÍÚ–*Í�##^#Vr+sëÃÚ*Í�##åÍ�€Í?+ëás#rÍ�åÍ�ëás#rÍ�^#Vr+sën&ÃÚ*ë!9ùëÁÉÅ!þÿ9ùDM`i¯w#w! ~#foåÍ�Ñ  nå! ~#foåÍ�ÑnÑ}»Â=+! ~#foå`i^#Vr+sëÑn}·Â:+!Ãi+Ãñ*! ~#foåÍ�Ñnå! ~#foåÍ�ÑnѯgWÍúÃi+ë!9ùëÁÉÃx+Ãí2Å!9ùDMÍ�n}·Ê¢+! ^#Vr+sën&åÍu+ÑÀ+ÁÉê+Ãk'Å!9ùDMÍ�åÍ�ëÍ)åͧ+ÑÑ|·úî+Í�åÍ�ë͉åͧ+ÑÑ|·úî+Í�ÁÉ!ÿÿÁÉÁÉÃ,Ã,0ÃÖ0Ã9ùDM! n&aÍùͯÚ(0! n&zÍͯÁÉÁÉÃ20Ã,0Å!ÿÿ9ùDMÍ�åÍ� ÑÍìÒ‚0Í�^#Vr+sÕÍ� ÍëÒo0Í�0Ãw0Í�7ëás!&ÃÍ0Í� åÍ�åÍ� Ñ͉åÍ�åÍ/0ÑÑÑë`isÍ� åÍ�åÍ� ÑÍ)åÍ�åÍ/0ÑÑÑ`in&#&ÃÍ0ë!9ùëÁÉÅ!9ùDM! n&0ÍùͯÚ1! n&9Íͯ1Ãh1Å!hÿ9ùDM!ž ^#Vr+së~#foë! s#rÍ�žë!– s#r! ^#Vr+sënë`is{·ÊU/`in}þ%Â?/! ë!� s#r!” 6#6!‘ s!� s!� sÍ�n}þ-”,! ^#Vr+s!� 4Í�n}þ0¤,!‘ 4Í�n&åÍû+Ñ}·ÊÁ,! åÍþ+ÑÃÄ,!ë!’ s#r! ^#Vr+sënë`is{þ. -! åÍþ+Ñë!” s#r!� 4! ^#ÁÉÁÉà 1ÃÖ0Å!þÿ9ùDM`i¯w#wÍ�~#fon&åÍ1Ñ}·ÊX1Í� Í?åÍ�^#Vr+sënѯgÐÿë`is#rÃ1Í�Ã_1ë!9ùëÁÉÃn1Ãý/Å!9ùDM! n&åÍk1Ñ|µÊ•1! n&àÿÚ1! n&ÁÉÁÉÍ7Å:ŸO*¡ëÍo`ÁÉà Í Åë!\Í&Í!ÁÉÍ7Å*Ÿë!õ1Í&*¡ë!2Í&õ1ÍÁþÿÊ!ÉÑÑÉ,Vr+sënë`is`in&åÍ,Ñ}þDÊ8-þUÊt-þXÊ}-þOʆ-þCÊÌ-þSÊý-Ã)/Í�–~#fo|·òt-!� ^#Vr+së6-Í�–åÍ�–~#foÍúëás#r!’ ^#Vr+s! 6 ÃŒ-! 6ÃŒ-! 6!’ å~#foå! n&å!– ^#Vr+së~#foå!� åÍø+ÑÑÑѯgÍúëás#rÃu.!� ^#Vr+sÕ!– ^#Vr+së~#foëás!’ ^#Vr+sÃu.!�Í Åë!\Í&Í!ÁÉTELÌkÃÃÍ7Ã62÷4Û%ó1Í7*¡^#V#z³Â>2+V+^+ÕÂI2*ŸåÍ-2!g2å!åÍ02Ã32Broken pipe Í7¯Í,Ú2që*ŸëÅÍ&ÍþÿÁÊ:qÍ):¡·ʱ2=ʱ2=Âr:qo&ÉÃÂ2ö1Ãu2Í7*ŸÅåͼ2Ñ\ÍþÿÁÊ!å*ŸåÍ¿2ÑÑÉÃ#Í Åþ Â3 Í> n}·Â.!” 6È#6!– ^#Vr+së~#foë! s#rÍ�n}·Êu.Í�”|µÊu.!� ^#Vr+sÕ! ^#Vr+sënëás!” ^#Vr+s!’ ^#Vr+sÃ+.Í��6! ë!� s#r!� n}·ÂÌ.!’ ^#Vr+s!ÍÒÌ.!œ ^#Vr+sÕ!‘ n}·ÊÃ.!0ÃÆ.! ëásÑ.Í�œå!� ^#Vr+sënëás{·Êõ.!œ ^#Vr+sÃÌ.!� n}·Ê&/! _Í ÍæÂ3ÁÉÍþÊÁÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u€Í*£|µ*uʃ3*¡€€~#ÂZ3"¡*sëÍ·*uƒ3#"u*£+"£ÃG3ÁÉÍ7*£|µÈÅDM*¡ë*ŸÍÐ3Ú´3><ê¨3í°ÁÉ~# x±Â¨3ÁÉ ë ë><êÄ3í¸ÁÉ~+ x±ÂÄ3ÁÉ|ºÀ}»ÉÃÜ3Ü5Í7:ŸÍ,ÚÅå*ŸåÍÙ3Ñë:£*¡·Êþ3}’ ^#Vr+s!ÍÒ&/!œ ^#Vr+së6 Ãÿ.à +Í=5#~·Â+5á##Ã5þaØþ{ÐÖ Éá!€pr5!Ö*w#ÂS5Á:þ**Êj5*ù!åÃÖÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ Í,ÚÅ FN¯xg>G�oy òÀ5$ÁÉ characters would cause it to try to generate code longer than 16 bits, which made the files involved non-unsqueezable. Steve Bogolub here in Chicago discovered the bug, sent files that proved its existence to Richard Greenlaw, and got a disk with a dåebugged SQ last week. It now checks to see whether a >16 bit code is being generated and if so prints "rescaling" and goes around again to gene- rate a safer table. --> FILE: FLS-11 .COM CRC = 0C 99 --> FILE: SQ-15 .COM CRC = 95 B0 --> åFILE: USQ-15 .COM CRC = FE 42 ound again to gene- rate a safer table. --> FILE: FLS-11 .COM CRC = 0C 99 --> FILE: SQ-15 .COM CRC = 95 B0 --> å ÊÉÍÞÊ>ÍÑþÀ*üùÃÍÞÄõÉ ' 2-HALF SLOW $ADDRESS BIT $ROUTINE 4-SCRAMBLE $ROUTINE 8-SPIRAL $$ãÕÅõéáñÁÑãÉãåÕÅOÍÁÑáãÉ:%<2%> ÍÑæÉõ>ÍÑñÉÍæþÌþDate: 9/7/81 From: Ben Bronson To: All Re: New SQ USQ and FLS Greenlaw's latest SQUEEZER programs are FLS-11, USQ-15 and SQ-15. The main change is to SQ, which turned out to have a bug in it--in previous versions, an occasional combination ofå  å+w#þ Âæ+6#ÃÈÕ!×6#¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍ åþ:>ªÍÖ@w#ÍGþ.¶ÍƯww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7Èåþ!ÉþaØþ{ÐÖ Éþ Ê þ Ê ÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$Ñ Â-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉV5ñÉå:=æÂb#:=æÂù#:$=æÊ2#Ív+:à<·Âò"Íê(ÂÃ">6Í‹5:&=Í‹5Ã#*&=|µÂÔ"M1Í¿5Ã#>6Í‹5:&=Í‹5>#Í‹5>6Í‹5:'=Í‹5Ã#*&="ü<Íê(Â#>Í‹5:&=Í‹*ùÍKÍžÃ+)že&25Ã'Ã+ÃFÃŽÃrÃÃû Í– þ8Ê{ æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë ~#foÉá^#åë& ~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìz5>sÍ‹5>@2=Ã#R1Í¿5Ã#ÍÑ(Â,#:==2=áñÍ)ÉÍê(Â@#>sÍ‹5Ã#͘(ÂY#X1:à<·ÊS#]1Í¿5Ã#ˆ2Í¿5Ã#*="ü<*&="þ<:$=æÊÃ#:à<·Â¤#Íê(—#>>Í‹5:&=Í‹5c1Í¿5Ã#f1Í¿5¯2=Ã#Íê(—#>Í‹5:&=Í‹5>{Í‹5c1Í¿5Ã#Íê(ÂÜ#:$=æÀµ#>}Í‹5c1Ú#:$=æÀÄ;-͘(Âó#>&Í‹5¯Í‹5f2Ú#:$=æÊ$Ív+è":·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕå͉ÑÍk|/g}/o#Ñɯ2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )ÖëxõÍÝÚ·Õz/W{/_ѯzW{_ñ=ÈõyOxGæ¯2qÍZëÍZë͉ÃM|ºØÀ}»Éëȯ|g}oÃæëÈ)Ãô|/g}/o=æÂ$Í,Ív+Ã2#:$=æÀ>åÊ$$>ÕÍ‹5Ív+>ÑÍ‹5>@2$=Ã2#å*="ü<áä1Í¿5:=æþö2=É"ü<|·Âs$}·Âd$[2Í¿5Éõñõ·Êz$Âg$ñ[3Í¿5Éñ>�GÈ>)Í‹5Ã$#Íž*ÍD)ñõÍ�,ͶÍÏ,Ív+Í+4þÊʱ$ðÃÄÃXñÃ@ÃÅ!ìÿ9ùDM! ~#foå! åͤÑÑ>21>:21>21`i6#6`i~#foå! ~#foÑÍúÒ! ~#foå#Éz/W{/_É!9~#foÉ!à !à ! à ! à !à !à Ÿ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"�!"“!@"‘!"• ÍæÊžÍ!€ßF#x·Â±Ã~#±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2r`i~#fo)Ñ~#foåͧÑ`i^#Vr+sÃá! ~#foÍùÒB!NåͪÑ!‚åͪÑÃEÍ­ë!9ùëÁÉ TYPESQ is used to print files squeezed by SQ.COM. To run this program, type 'TYPESQ ' ýÃnÃ@Ãë Å!þÿ9ùDM! ~#fo#n}þ:Â4 ! ~#fon&åÍ´Ñ|µÊ ! ~#fo##n}·Â ! ~#  foå!¤ åÍ·ÑÑ! ~#fon}21Û Ã4 ! ~#foå!¶ åÍ·ÑÑÛ ! ~#foë`is#r`i~#fon}·Ê‰ `i~#fon}þ*Êh `i~#fon}þ?Â} ! ~#foå!Ë åÍ·ÑÑÛ `i^#Vr+sÃB >2)! ~#foåͺÑë!9ùëÁÉ Output drive =%s ERROR - Ignoring %s Can't accept ambiguous name %sà Ã@èæïÃîÃIå!åͱ ÑÑÿÍåÊÃÿ !å!åͱ ÑÑë! s! n}þ Ây*05+|¢g}£oÍúë`is#r`i^#Vr+sz³Êv! å!åͱ ÑÑ*05#"05ÃPû! n&å!åͱ ÑÑ! n}þ Ê ! n}þ ©!"05û! n}þ Ê»*05#"05ë!9ùëÁÉÃÐÃIÃv"Ãs"Å!ÿÿ9ùDM*)}·Ê! )åÍÇÑë`is{þ Âþ! )åÍÇÑë`isÃÃ7øî ÃÉÙÅ!Ö÷9ùDM! åÍî Ñ! å!. ~#foåÍñ ÑÑ#|µÂM !. ~#foå! åÍî ÑÑà !"1Íô Í÷ ! åÍú ÑvÿÍåÊ€ !. ~#foå!+ åÍî ÑÑà ! åÍú Ñë! s#r"5! s#r! ~#foå! åÍý Ñëás! ^#Vr+sën}·Â› ! 6!1å! åÍ ÑÑ!"5å! åÍ ÑÑ! å!. ~#foå!F åÍî ÑÑÑ!R !åÍÊÑë`is{þÂÍÍ`in}þÂ%!ÿÿÃO`in}þ ÂG`i6 *)}·ÂG! å!åÍÊÑÑ`in&ÃOë!9ùëÁÉÃmèÃÊÃs"ÃÉ"Ã�Å!úÿ9ùDM{2){2){2)! ~#foå! ~#fo~#fo)Ñ")! 6#6`i6#6`i~#foå! ~#fo~#foÑÍúÒ°*)}·ÊÓð! ~#foå`i~#fo)Ñ~#fon}þ<Êþ|ʱþ+Êþ>Ê1ÃåÍî Ñ! åÍú Ñë! s#r! ~#fo|·ú4 ! ~#foÍùÚI !. ~#foå!U åÍî ÑÑà !ÿþ"1!ÿþ"1! ¯w#w! ~#foå! ~#foÑÍúÒ¿ ! ~#fo))1å! åÍú Ñëás#r! ~#fo))1##å! åÍú Ñëás#r! ^#Vr+sÃ] `i¯w#w! ¯w#w!"05! åÍ Ñë! s#rz³Ê ! ~#fo|µÂ *1å! ~™! ~#foå`i~#fo)Ñ~#fo#n}·Â"ÃN! )å! ~#foå`i~#fo)Ñ~#fo#åÍ[ÑÑ#|µÂr! ~#foå`i~#fo)Ñ~#fo#å!¹å!åÍ^ÑÑÑÍa>2)!Èå! ~#foå`i~#fo)Ñ~#foåÍdÑÑ|µÂ®*)&|²g}³o}2)ÃÎ!)4! ~#foå`i~#fo)Ñ~#fo#")! ~#foå`i~#fo)Ñ~#fo#n}·Ê! ~#foå`i~#fo)Ñå!#foÑ"1! ~#fo|¢g}£oë! s#r! ~#foÍÒC ! ~#foÍùÚ‡ ! ~#fo Íåʇ ! ~#fo Íåʇ ! ~#fo Íåʇ ! ~#fo Íå¤ ! ~#foåÍ Ñä ! ~#foåÍ Ñ! ~#foÍåÂÁ ! 6#6à à ! ~#fo Íå `i^#Vr+sz·ú !v åÍî Ñ!‰ åÍî Ñ!« åÍî Ñ! 6Ôëás#r! ~#foå`i~#fo)Ñ")Ã1*)&|²g}³o}2)! ~#foå`i~#fo)Ñ~#fo#n}·Â^!áå!åÍ^ÑÑÍa! ~#foå`i~#fo)Ñ~#fo#åÍgÑ!-å! ~#foå`i~#fo)Ñ~#fo#åÍjÑÑ#|µÂÊ! ~#foå`i~#fo)Ñ~#fo#å!å!åÍ^ÑÑÑÍa!)4*)}·Âd`i~#foë! s#r! ~#foå! ~#fo~#foÑÍúÒA#6ÃÓ ! åÍ Ñë!*9ùëÁÉ Can't open %s %s is not a squeezed file %s -> %s: %s has invalid decode tree size TYPESQ ABORTED: Maximum number of lines exceeded ÷ ÃO"Ãs"Å!ýÿ9ùDM!å!åͱ ÑÑÿÍåÂ+!å!åͱ ÑÑë! s{þÂô Í´ Ã+! n}þÂ+!! ~#foå! ~#fo)Ñå! ~#foå! ~#fo#)Ñ~#foëás#r! ^#Vr+sÃä! ~#fo^#Vr+s`i^#Vr+s*)++")Ö! ~#foå! ~#foëás#r! ~#foå! ~#fo~#fo)ѯw#wä! ^#Vr+s`i^#Vr+sîë!9ùëÁÉCan't open %s ! åÍ{ÑÃA!ë!’ s#r! ^#Vr+sënë`is{þ.‰! åÍ{Ñë!” s#r!� 4! ^#Vr+sënë`is`in&åÍ~Ñ}þDʵþUÊñþXÊúþOÊþCÊIþSÊzæÍ�–~#fo|·òñ!� ^#Vr+së6-Í�–åÍ�–~#foÍúëás#r!’ ^#Vr+s! 6 à ! 6is#rÃÈ!Í�Ã"ë!9ùëÁÉÃ"ÃB Å!9ùDM! n&åÍ"Ñ|µÊD"! n&àÿÃI"! n&ÁÉÁÉÍ7Å*+++:ŸG‡€_å*¡DM!n"ãéo&ÁÉà Í7Å:ŸO*¡ëÍo`ÁÉÍ Åë!\Í&Í!ÁÉÍ7Å*Ÿë!È"Í&*¡ë!Ø"Í&È"ÍÁþÿÊ!ÉÑÑÉ,Í Åë!\Í&Í!ÁÉTELÌkÃÃÍ7à #à ! 6!’ å~#foå! n&å!– ^#Vr+së~#foå!� åÍuÑÑÑѯgÍúëás#rÃò!� ^#Vr+sÕ!– ^#Vr+së~#foëás!’ ^#Vr+sÃò!� n}·Â�!” 6È#6!– ^#Vr+së~#foë! s#rÍ�n}·ÊòÍ�”|µÊò!� ^#Vr+sÕ! ^#Vr+sënëás!” ^#Vr+s!’ ^#Vr+sèÍ��6! ë!�ÃZ%ÃÊÃs"Í7*¡^#V#z³Â#+V+^+ÕÂ#*ŸåÍ#!:#å!åÍ#Ã#Broken pipe Í7¯Í,Ú2që*ŸëÅÍ&ÍþÿÁÊ:qÍ):¡·Ê„#=Ê„#=Âr:qo&ÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u*£|µÊâ#*¡ëÍ*sëÕÍÑþÁÊÅþÂç#! ~þ€Ââ#6*uÁÉ*£+"£*¡€"¡*u#"uà s#r!� n}·ÂI!’ ^#Vr+s!ÍÒI!œ ^#Vr+sÕ!‘ n}·Ê@!0ÃC! ëásÃÍ�œå!� ^#Vr+sënëás{·Êr!œ ^#Vr+sÃI!� n}·Ê£!’ ^#Vr+s!ÍÒ£!œ ^#Vr+së6 Ã|ù!œ ^#Vr+sÕ`inëásÃÏ!œ ^#Vr+sÕ`inëásðÍ�œ6ë!˜9ùëÁÉÃçÃÉÅ!9ùDMÍ�n}·Ê ! ^#V®#Ã#Ã$É"ÃH#Í7*ŸÅåÍ$Ñ\ÍþÿÁÊ!å*ŸåÍ $ÑÑÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u€Í*£|µ*uÊœ$*¡€€~#Âs$"¡*sëÍ·*uœ$#"u*£+"£Ã`$ÁÉÍ7*£|µÈÅDM*¡ë*ŸÍé$ÚÍ$><êÁ$í°ÁÉ~# x±ÂÁ$ÁÉ ë ë><êÝ$í¸ÁÉ~+ x±ÂÝ$ÁÉ|ºÀ}»ÉÃõ$Ã?&Í7:ŸÍ,Úr+sën&åÍäÑÃïÁÉÅ!9ùDM! n&AÍùͯÚ> ! n&ZÍͯÁÉÁÉÅ!9ùDM! n&aÍùͯÚm ! n&zÍͯÁÉÁÉÃw ÃèÅ!ÿÿ9ùDM! ^#Vr+sënë`is{·ÊÌ `in}þ ­ Í�å! åÍt ÑÑÍ�å`in&åÍt ÑÑ#|µÂÉ !ÿÿÃÒ Ã !ÃÒ ë!9ùëÁÉÃá ÃÛ Å!ÿÿ9ùDMÍ�åÍ� ÑÍìÒ1!Í�^#VÅå*ŸåÍò$Ñë:£*¡·Ê%}|æ2qã å¾ÊH%ãëÕÍÑáþÿÂ>%ÑÁÃ:qwÕÍÑþÿÊ9%! Ñ{æwëÁÉÍ7Å*Ÿë!Äÿ9åååÍ&á 6C#6O#6MÑÍþÿ‰%áÁÃ*¡|µÂŸ%¡Õ!\Í&áñ%ë!\Í&*£|µÂ±%!£ë!lÍ&�¯!¡å~#fo´Êé%> +Íà%#~·ÂÎ%á##ÃÂ%þaØþ{ÐÖ Éá!€p&!Ö*w#Âö%Á:r+sÕÍ� ÍëÒ!Í�0Ã&!Í�7ëás!&Ã|!Í� åÍ�åÍ� Ñ͉åÍ�åÍÞ ÑÑÑë`isÍ� åÍ�åÍ� ÑÍ)åÍ�åÍÞ ÑÑÑ`in&#&Ã|!ë!9ùëÁÉÅ!9ùDM! n&0ÍùͯÚ°!! n&9ÍͯÁÉÁÉú!Ã…!Å!þÿ9ùDM`i¯w#wÍ�~#fon&åÍ·!Ñ}·Ê"Í� Í?åÍ�^#Vr+sënѯgÐÿë`þ**Ê &*ù!åÃÖÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ Í,ÚÅ FN¯xg>G�oy òc&$ÁÉ:ÿ‰%áÁÃ*¡|µÂŸ%¡Õ!\Í&áñ%ë!\Í&*£|µÂ±%!£ë!lÍ&�¯!¡å~#fo´Êé%> +Íà%#~·ÂÎ%á##ÃÂ%þaØþ{ÐÖ Éá!€p&!Ö*w#Âö%Á:  å+w#þ Âæ+6#ÃÈÕ!×6#¯2w2x*sé!ÿÿÉ>õÍrÚ<o&åÍFáñ=þÂ-ÃÍ`Í ÍrÚ'~æÊhåÍÅÍëÍÁá6þÿ!À+ÉÍ`WÖØþ?ØÕ_!×~æ7ÑzÈ?ÉÍ`ÅÍ åþ:>ªÍÖ@w#ÍGþ.¶ÍƯww#Ã?Åþ*>?ÊéÍñÚçw#ÂÇÁÍñØÃÞ> w#ÂéÁÉÍþ.7Èþ:7Èþ7Èåþ!ÉþaØþ{ÐÖ Éþ Ê þ Ê ÉÅÍ`·OÂE×!·æyÂ6ÁÉÕ$Ñ Â-7ÁÉÍrÚBÖo&))T])))ë!·yÁÉÕÅõå€ÍáñÁÑÉ¿!>Í15:Ì<Í15>{Í15Y/Íe5Ã6!Í'Â":Ê<æÀÂÝ!>}Í15Y/ÃÂ!:Ê<æÀÄc+ÍÀ&Â">&Í15¯Í15\0ÃÂ!:Ê<æÊ/"Íž)ÃÐ :¿<æÂ@"ͧ*Íž)ÃZ!:Ê<æÀ>åÊL">ÕÍ15Í*ùÍKÍžÃ+)ž (35Ã'Ã+ÃFÃŽÃrÃÃû Í– þ8Ê{ æÄ‚w#w#wÑÁÉÍÆÃÞá^#V#å*~#foÉá^#å*~#foÉá^#V#å*nÉá^#å*nÉá^#V#åë ~#foÉá^#åë& ~#foÉ!È+É!È#É!Ø+É!Ø#É!ð+É!ø+ÉÈÉÈÉØÉØÉðÉøÉ}»À|ºÉëz¼À{½Éë|ºÀ}»Éë|ªòìzž)>ÑÍ15>@2Ê<ÃZ!å*Á<"¢<áÚ/Íe5:¿<æþö2¿<É"¢<|·Â›"}·ÂŒ"Q0Íe5Éõñõ·Ê¢"Â�"ñQ1Íe5Éñ>�GÈ>)Í15ç"#ÍÆ(Íl'ñõÍ·*ÍÞÍ÷*Íž)Í!2þÊÊÙ"Í«'-ÍL3ÑÉ#Í·&Âæ"x0Íe5ñÍG)õÍ�'Í«'Í·*ñÍÞÍ÷*Íž)Íb)É~þùÄF9#^#V#Í#Í!2ÉÅåë)))äU~õæþÂ,ÌL3ñæ‡G~õæ`°2Ä<ñæ2É<#~æ2Ã<~æ?>·ð7Éë|ªòó|·ð7ÉzõÍZëÍZëÍ)ñ·ð|/g}/o#É|µÈÕå͉ÑÍk|/g}/o#Ñɯ2qÍZëÍZÍk:qÐ|/g}/o#É|·ð/g}/o#:q<2qÉÅÍqÁÉDM!x±ÈxGyOÒƒë)ëÃv|µÈÅÍ”`iÁÉ|·ú )ÖëxõÍÝÚ·Õz/W{/_ѯzW{_ñ=ÈõyOxGæ¯2qÍZëÍZë͉ÃM|ºØÀ}»Éëȯ|g}oÃæëÈ)Ãô|/g}/oÊT#=2½<#^#V#Õ^#V#ë"Å<ë^#Vë"Ç<Ñ:É<·Ê~#*°<ë!:Ä<æ@Ê�#"Ç<áÁÉå*Û<#w"Û<áÉå*Û<~þÿÊ«#·Â¶#,ÍL3ÍÄ;áÉ+"Û<áÉå*Û<+"Û<áÉå!l@"Û<6ÿ!”@"Ý<áÉå*Û<~·áÈþÿÉåõ*Ã<ë*Ý21>:21>21`#Éz/W{/_É!9~#foÉ!à !à ! à ! à !à !à Ÿ!9Å~#ÂAÁÉá"s!`å*"³!è"µ!ÜY"—>Û2­>Ó2°>É2¯2²!Ì"�!"“!@"‘!"• ÍæÊžÍ!€ßF#x·Â±Ã~#±¯!ßb¯2r~#þ ÊÈ·Êþ"ÂÞ2rÃß+}|~#·ÊÅG:r·xÁÊþ"Âæ¯2ri6#6`i~#foå! ~#foÑÍúÒC! ~#foå`i~#fo)Ñ~#foåͪÑ`i^#Vr+sÃ! ~#foÍùÒõ!° å!åͧÑÑ!2 å!åͧÑÑ`i¯w#w`i~#foÍùÒØÍ¡ë! s#rz³Â�! 6 #6`i~#foë! å! ~#foëás{þ ÂÌ`i~#foë! 6ÃØ`i^#Vr+sÃt! n}·Êë! åͪÑ! n}·ÂaÍ­ë!9ùëÁ  É1.5 08/02/81File unsqueezer version %s Richard Greenlaw 251 Colony Ct. Gahanna, Ohio 43230 Accepts redirection and pipes. Omit other parameters for help and prompt Parameters are from command line or one-at-a-time from standard input and are ouÑë! s#rz³Êœ!' ~#foå*05ÑÍìÒœ! ~#fo|¢g}£oë! s! n& ÍùÚY! n&~ÍÒ�! n}þ Êvþ Êyþ Ê„þ Ê„ÇÙ!' ^#Vr+sÃ�! 6.! n&åÍ/ ÑÃú *25}·Ê¬! åÍ/ ÑÃj! å! åÍ5 ÑÑ#|µÂÚ! å!Ñå!åÍ ÑÑÑÃX`iåÍ2 Ñë! s#rz³Ê2*1å! ~#foÑ"1tput drives and input file names. Empty to quit. *ÃJ ÀøÃIÃxòà Å!þÿ9ùDM! ~#fon}þ-ÂÕ ! ~#fo#n&åÍ8 ÑFÍåÍ�}225}·Ê� ! ^#Vr+s!ÿÿ"05! ~#fo#n}·ÊÒ ! ~#fo#åÍ; Ñ"05|µÂÒ ! ~#fo#å!¿ å!åÍ> ÑÑÑö ! ~#fo#n}þ:ÂO ! ~#fon&åÍA Ñ|µÊ5 ! ~#! å! ~#foåÍ8 ÑÑ#|µÂ/! å!âå!åÍ ÑÑÑÃXÃÚ! ~#foå*1ÑÍåÊX! å!õå!åÍ ÑÑÑ! åÍ; Ñ! åÍ> Ñ`iåÍ> Ñë!)9ùëÁÉCan't open %s %s is not a squeezed file %s -> %s: %s has invalid decode tree size Can't create %s Write error in %s ERROR - chefo##n}·Â2 !"05! ~#foå!Í åÍD ÑÑ! ~#fon}21ö ÃO ! ~#foå!ß å!åÍ> ÑÑÑö ! ~#foë`is#r`i~#fon}·Ê© `i~#fon}þ*ʃ `i~#fon}þ?Â� ! ~#foå!ô å!åÍ> ÑÑÑö `i^#Vr+sÃ] ! ~#foåÍG Ñë!9ùëÁÉ BAD COUNT %s Output drive =%s ERROR - Ignoring %s Can't accepcksum error in %s ÃÃ�Ã$Ã+$Å!ÿÿ9ùDM*)}·ÊP! )åÍÑë`is{þ ÂM! )åÍÑë`isÃe!åÍÑë`is{þÂeÍ`in}þÂt!ÿÿÞ`in}þ –`i6 *)}·Â–! å!åÍÑÑ`in&Þë!9ùëÁÉüÃàÃIÃ+$ÃäÃ.$ÃÑÅ!úÿ9ùDM{2){2){2)! ~#foåÍ� ~#fo)Ñ")! 6#6`i6#6Í�åÍ�t ambiguous name %sÃA ÃàÃIïøÃ&Ã�ÃoòÃÒÃÁÃÑÃ)ÃfóÅ!×÷9ùDM`iå!- ~#foåÍ ÑÑ#|µÂz !- ~#foå!zå!åÍ ÑÑÑÃq!' ¯w#w!"1Í Í `iåÍ# ÑvÿÍåʸ !- ~#foå!‰å!åÍ ÑÑÑÃj`iåÍ# Ñë! s#r"5! s#r! ~#foå`iåÍ& Ñëás! ^#Vr+sën}·ÂÑ ! 6!1 ~#foÑÍúÒ¹*)}·Êù! ~#foåÍ�)Ñ~#fon}þ<ÊEþ|Êìþ+ÊRþ>Êdâ! ~#foåÍ�)Ñ~#fo#n}·ÂcÃ! )å! ~#foåÍ�)Ñ~#fo#åͪÑÑ#|µÂ¯! ~#foåÍ�)Ñ~#fo#å!Âå!åÍ­ÑÑÑͰ>2)!Ñå! ~#foåÍ�)Ñ~#foåͳÑÑ|µÂé*)&|²g}³o}2)Ãù!)4! ~#foåÍ�)Ñå! åÍ) ÑÑ!"5å! åÍ) ÑÑ! å!- ~#foå!¤åÍ, ÑÑÑ`iåÍ# Ñë! s#r! ~#fo|·ú^ ! ~#foÍùÚx !- ~#foå!°å!åÍ ÑÑÑÃj!ÿþ"1!ÿþ"1!  ¯w#w!  ~#foå! ~#foÑÍúÒê !  ~#fo))1å`iåÍ# Ñëás#r!  ~#fo))1##å`iåÍ# Ñëás#r!  ^#Vr+sÃŒ *05|µÊ¯! åÍ/ Ñ`iåÍ2 ~#fo#")! ~#foåÍ�)Ñ~#fo#n}·ÊO! ~#foåÍ�)Ñå!Ýëás#r! ~#foåÍ�)Ñ")Ãd*)&|²g}³o}2)! ~#foåÍ�)Ñ~#fo#n}·Â�!êå!åÍ­ÑÑͰ! ~#foåÍ�)Ñ~#fo#åͶÑ!-å! ~#foåÍ�)Ñ~#fo#å͹ÑÑ#|µÂõ! ~#foåÍ�)Ñ~#fo#å! å!åÍ­ÑÑÑͰ!)4*)}·Ây  Í�ë! s#rÍ�åÍ� ~#foÑÍúÒZ! ~#foåÍ�)Ñå! ~#foåÍ�#)Ñ~#foëás#r! ^#Vr+sà Í� ^#Vr+s`i^#Vr+s*)++")ßÍ� åÍ�ëás#r! ~#foåÍ� ~#fo)ѯw#wí! ^#Vr+s`i^#Vr+sÃùë!9ùëÁÉCan't open %s ! ~#foå`i^#Vr+sëÑn}·Â;!ÃjÃò! ~#foåÍ�Ñnå! ~#foåÍ�ÑnѯgWÍúÃjë!9ùëÁÉÂà #Ã{"õ#ÀÅ!hÿ9ùDM!ž ^#Vr+së~#foë! s#rÍ�žë!– s#r! ^#Vr+sënë`is{·ÊÓ!`in}þ%½!! ë!� s#r!” 6#6!‘ s!� s!� sÍ�n}þ-ÂåÍÜ"ÑÃç"ÁÉÃ#à #Å!ÿÿ9ùDMÍ�åÍ� ÑÍìÒa#Í�^#Vr+sÕÍ� ÍëÒN#Í�0ÃV#Í�7ëás!&ì#Í� åÍ�åÍ� Ñ͉åÍ�åÍ#ÑÑÑë`isÍ� åÍ�åÍ� ÑÍ)åÍ�åÍ#ÑÑÑ`in&#&ì#ë!9ùëÁÉû#Ã{"Å!þÿ9ùDM`i¯w#wÍ�~#fon&å͸#Ñ}·Ê$Í� Í?åÍ�^#Vr+sënѯgÐÿë! ^#Vr+s!� 4Í�n}þ0Â"!‘ 4Í�n&åÍyÑ}·Ê?! åÍ|ÑÃB!ë!’ s#r! ^#Vr+sënë`is{þ.Š! åÍ|Ñë!” s#r!� 4! ^#Vr+sënë`is`in&åÍÑ}þDʶþUÊòþXÊûþOÊ þCÊJ þSÊ{ ç!Í�–~#fo|·òò!� ^#Vr+së6-Í�–åÍ�–~#foÍúëás#r!’ ^#Vr+s! 6 à ! 6`is#rÃÉ#Í�Ã$ë!9ùëÁÉÍ7Å:ŸO*¡ëÍo`ÁÉà Í Åë!\Í&Í!ÁÉÍ7Å*Ÿë!m$Í&*¡ë!}$Í&m$ÍÁþÿÊ!ÉÑÑÉ,Í Åë!\Í&Í!ÁÉTELÌkÃÃÍ7î$Ãÿ&ÃIÃ+$Í7*¡^#V#z³Â¶$+V+^+ÕÂÁ$*ŸåÍ¥$!ß$å!åͨ$ë$Broken pipe Í7¯Í,Ú2që*ŸëÅà ! 6!’ å~#foå! n&å!– ^#Vr+së~#foå!� åÍvÑÑÑѯgÍúëás#rÃó !� ^#Vr+sÕ!– ^#Vr+së~#foëás!’ ^#Vr+sÃó !� n}·ÂŽ !” 6È#6!– ^#Vr+së~#foë! s#rÍ�n}·Êó Í�”|µÊó !� ^#Vr+sÕ! ^#Vr+sënëás!” ^#Vr+s!’ ^#Vr+sé Í��6! ë!�Í&ÍþÿÁÊ:qÍ):¡·Ê)%=Ê)%=Âr:qo&ÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u*£|µÊ‡%*¡ëÍ*sëÕÍÑþÁÊÅþÂŒ%! ~þ€Â‡%6*uÁÉ*£+"£*¡€"¡*u#"uÃS%ð%Ã.$Ãí$Í7*ŸÅåͪ%Ñ\ÍþÿÁÊ!å*ŸåÍ­%ÑÑÉÍ7:ŸÍ)Ú~æÊÅ:ŸÍ,"s!"u€Í s#r!� n}·ÂJ!!’ ^#Vr+s!ÍÒJ!!œ ^#Vr+sÕ!‘ n}·ÊA!!0ÃD!! ëásÃ!Í�œå!� ^#Vr+sënëás{·Ês!!œ ^#Vr+sÃJ!!� n}·Ê¤!!’ ^#Vr+s!ÍÒ¤!!œ ^#Vr+së6 Ã}!ú!!œ ^#Vr+sÕ`inëásÃÐ!!œ ^#Vr+sÕ`inëásñÍ�œ6ë!˜9ùëÁÉÃè!Ã)Å!ÿÿ9ùDM! ^#Vr+sënë`*£|µ*uÊ>&*¡€€~#Â&"¡*sëÍ·*uÂ>&#"u*£+"£Ã&ÁÉÍ7*£|µÈÅDM*¡ë*ŸÍ‹&Úo&><êc&í°ÁÉ~# x±Âc&ÁÉ ë ë><ê&í¸ÁÉ~+ x±Â&ÁÉ|ºÀ}»É×&Ãä'Í7:ŸÍ,ÚÅå*ŸåÍ”&Ñë:£*¡·Ê¹&}|æ2qã å¾Êê&ãëÕÍÑáþÿÂà&ÑÁÃ:qwÕÍÑþÿÊÛ&! Ñ{æwëÁÉÃ#Í  7Å*Ÿë!Äÿ9åååÍ&á 6C#6O#6MÑÍþÿÂ.'áÁÃ*¡|µÂD'¡Õ!\Í&áÃV'ë!\Í&*£|µÂV'!£ë!lÍ&�¯!¡å~#fo´ÊŽ'> +Í…'#~·Âs'á##Ãg'þaØþ{ÐÖ Éá!€pº'!Ö*w#›'Á:þ**ʲ'*ù!åÃÖÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ Í,ÚÅ FN¯xg>GB to ; ; For full details along with examples, see the ac- ; companying documentation file. ; --Ron Fowler ; ; ; DEFINE BOOLEANS ; FALSE EQU 0 TRUE EQU NOT FALSE ; ;************************************************************ ; ; -- User �oy ò($ÁÉG##Ãg'þaØþ{ÐÖ Éá!€pº'!Ö*w#›'Á:þ**ʲ'*ù!åÃÖÕÅÍÑÕÍÁÑ·Êø€ÍÃ!€ëÃÙÍ Í,ÚÅ FN¯xg>Gcustomizable options -- ; NPAR EQU 10 ;NUMBER OF ALLOWABLE PARAMETERS SUBDRV EQU 0 ;MAKE 0 FOR DFLT, 1,2,3,ETC FOR A,B,C QUIET EQU FALSE ;SET TO TRUE TO ELIMATE SIGN-ON MSG CPBASE EQU 0 ;SET TO 4200H FOR HEATH CP/M ; ; ; ;*************************TITLE 'SuperSUB - an Extended Submit replacement for CP/M' ; ;************************************************ ;* EXTENDED SUBMIT FOR * ;* CP/M * ;************************************************ ; ; REVISED 09/05/81 (RGF) ; ; VERSION 1.*********************************** ; ; CP/M DEFINITIONS ; FPCHAR EQU 2 ;PRINT CHAR FUNCTION PRINTF EQU 9 ;PRINT STRING FUNCTION RDBUF EQU 10 ;READ CONSOLE BUFFER OPENF EQU 15 ;OPEN FILE FUNCTION CLOSEF EQU 16 ;CLOSE FILE FUNCTION DELETF EQU 19 ;D0 2/18/81 (first written) ; BY RON FOWLER WESTLAND, MICH. ; ; ; This program is intended as a replacement for the ; SUBMIT program provided with CP/M. It provides sev- ; eral new facilities: ; 1) Nestable SUBMIT runs ; 2) Interactive entry of SUELETE FILE FUNCTION READF EQU 20 ;READ RECORD FUNCTION WRITEF EQU 21 ;WRITE RECORD FUNCTION MAKEF EQU 22 ;MAKE (CREATE) FILE FUNCTION ; BDOS EQU CPBASE+5 ; FCB EQU 5CH ;DEFAULT FILE CONTROL BLOCK FCBRC EQU 15 ;FCB OFFSET TO RECORD COUNT FCBNR EQU BMIT job (no need ; to use an editor for simple SUBMIT runs) ; 3) Command line entry of small SUBMIT jobs ; 4) Ability to enter blank lines in an edited ; SUBMIT file ; 5) User customization of number of parameters ; and drive to send $$$.SU32 ;FCB OFFSET TO NEXT RECORD FN EQU 1 ;FCB OFFSET TO FILE NAME FT EQU 9 ;FCB OFFSET TO FILE TYPE TBUF EQU CPBASE+80H ;DEFAULT BUFFER TPA EQU CPBASE+100H ;TRANSIENT PROGRAM AREA ; PUTCNT EQU TBUF ;COUNTER FOR OUTPUT CHARS ; ; DEFINE SOME TEXT CHAR  ACTERS ; CR EQU 13 ;CARRIAGE RETURN LF EQU 10 ;LINE FEED TAB EQU 9 ; ; START OF PROGRAM CODE ; ORG TPA ; ; GET THE BALL ROLLING ; SUBMIT: LXI H,0 ;SAVE STACK IN CASE DAD SP ; ONLY HELP REQUESTED SHLD SPSAVE ;(NOT OTHERWISE USED) LXI SP,YP ; @HL TO @DE MVI B,3 CALL MOVE RET ; ; MOVE # BYTES IN B REGISTER FROM @HL TO @DE ; MOVE: MOV A,M ;PICK UP STAX D ;PUT DOWN INX H ;I'M SURE INX D ; YOU'VE SEEN THIS DCR B ; BEFORE... JNZ MOVE ;100 TIMES AT LEAST RET ;I KNOW I HAVESTACK CALL START ; ; SIGN ON MESSAGE ; IF NOT QUIET DB 'SuperSUB V1.0' ENDIF ; DB CR,LF,'$' ;NEWLINE EVEN IF QUIET ; START: POP D ;RETRIEVE STRING POINTER MVI C,PRINTF LDA FCB+1 ;ANYTHING ON CMD LINE? CPI ' ' JZ HELP ;NO, GO PRINT H! ; ; GETPAR MOVES THE SUBSTITUTION PARAMETERS SPECIFIED ; IN THE COMMAND LINE INTO MEMORY, AND STORES THEIR ; ADDRESSES IN THE PARAMETER TABLE. THIS ALLOWS ; SUBSTITUTION OF $1, $2, ETC., IN THE SUBMIT COMMANDS ; WITH THEIR ACTUAL VALUES SPECIFED IELP CALL BDOS ;PRINT THE SIGN-ON CALL INITVAR ;INITIALIZE THE VARIABLE AREA CALL GETPAR ;GET COMMAND LINE PARAMETERS CALL SETUP ;SET UP READ OF SUBMIT FILE CALL RDFILE ;READ THE SUBMIT FILE CALL WRSET ;SET UP WRITE OF "$$$.SUB" CALL WRSUB ;WRN THE COMMAND ; LINE. ; GETPAR: LXI H,TBUF+1 ;WHERE WE FIND THE COMMAND TAIL CALL SCANTO ;SKIP SUBMIT FILE NAME STA OPTION ;FIRST CHAR OF CMD LINE IS OPTION RC ;LINE ENDED? CPI '/' ;NO, CHECK OPTION JNZ GLP0 ;NOT KEYBOARD INP, READ FILE ITE "$$$.SUB" JMP CPBASE ;GO START THE SUBMIT ; ; ; SETUP SETS UP THE FILE CONTROL BLOCK ; FOR READING IN THE .SUB TEXT FILE ; SETUP: LXI H,FCB+FT ;LOOK AT FIRST CHAR OF MOV A,M ; FILE TYPE. IF IT IS CPI ' ' ; BLANK, THEN GO MOVE JZ PUTSU INX H ;POINT PAST '/' SLSCAN: SHLD CLPTR ;SAVE CMD LINE PTR MOV A,M ;KBD IS SOURCE, GET EOL FLAG STA CLFLAG ;SAVE AS EOL FLAG CPI ' ' ;ALLOW SPACES AFTER '/' RNZ ;GOT NON-BLANK, DONE INX H ;ELSE CONTINUE SCAN JMP SLSCAN GLP0: MOV A,B ; "SUB" INTO FT FIELD LXI D,SUBTYP ;IT'S NOT BLANK SO MAKE MVI B,3 ; SURE IT'S ALREADY CALL COMPAR ; "SUB" JNZ NOTFND ;IF NOT, IT'S AN ERROR RET ; ; MOVE "SUB" INTO THE FILE TYPE ; PUTSUB: XCHG ;BY CONVENTION, MOVE FROM LXI H,SUBTM ;INPUT IS FROM A .SUB FILE..THIS INX H ; CODE SKIPS OVER THE NAME OF ORA A ; THE SUB FILE TO GET TO THE RZ ; COMMAND LINE PARAMETERS CPI ' ' JZ GLP CPI TAB JNZ GLP0 GLP: CALL SCANTO ;PASS UP THE BLANKS RC ;CY RETURNED IF END OF   CMD LINE CALL PUTPAR ;NOW PUT THE PARAMETER INTO MEM RC ;CY RETURNED IF END OF CMD LINE JMP GLP ;GET THEM ALL ; ; SCANTO SCANS PAST BLANKS TO THE FIRST NON-BLANK. IF ; END OF COMMAND LINE FOUND, RETURNS CARRY SET. ; SCANTO: MOV A,M INX H ORYTE OF PARM INX H ORA A ;TEST FOR END OF CMD LINE JZ PP2 ;JUMP IF END CPI ' ' ;TEST FOR END OF COMMAND JZ PP2 CPI TAB ;TAB ALSO ENDS COMMAND JZ PP2 STAX D ;PUT PARAMETER BYTE-BY-BYTE INX D ;INTO FREE MEMORY INR B ;BUMP LENGTH JMP PPLPA A ;SET FLAGS ON ZERO STC ;IN CASE ZERO FOUND (END OF CMD LIN) RZ CPI ' ' JZ SCANTO ;SCAN PAST BLANKS CPI TAB ;DO TABS TOO, JUST FOR JZ SCANTO ; GOOD MEASURE DCX H ;FOUND CHAR, POINT BACK TO IT ORA A ;INSURE CARRY CLEAR RET ; ; PUTPA PP2: XCHG SHLD TXTPTR ;NEW FREE MEMORY POINTER POP H ;REMEMBER OUR LENGTH POINTER? MOV M,B ;STORE THE LENGTH XCHG ;HAVE TO RETN HL > CMD LINE ORA A ;NOW RETURN END OF LINE FLAG STC RZ ;RETURN CY IF ZERO (EOL MARK) CMC RET ; ; RDFILER PUTS THE PARAMETER POINTED TO BY HL INTO ; MEMORY POINTED TO BY "TXTPTR". ALSO STORES THE ; ADDRESS OF THE PARAMETER INTO THE PARAMETER TABLE ; FOR EASY ACCESS LATER, WHEN WE WRITE $$$.SUB ; PUTPAR: PUSH H ;SAVE POINTER TO PARM LHLD TXTPTR ;NEXT  READS THE .SUB FILE SPECIFIED ; IN THE SUBMIT COMMAND INTO MEMORY ; RDFILE: LDA OPTION ;USING A FILE? CPI '/' ;'/' OPTION TELLS JZ LINE ;JUMP IF NOT LXI D,FCB ;WE ARE, OPEN IT MVI C,OPENF CALL BDOS INR A ;IF 0FFH RETURNED, JZ NOTFND ; THFREE MEMORY XCHG ; INTO DE LHLD TBLPTR ;NEXT FREE AREA OF TABLE MOV A,M ;NON-ZERO IN TABLE ORA A ; INDICATES TABLE JNZ PAROVF ; TABLE OVERFLOW (TOO MANY PARMS) MOV M,E ;STORE THE PARM ADRS INX H MOV M,D INX H SHLD TBLPTR ;SAVE TABLE PEN FILE NOT FOUND LINE: LHLD LINNUM ;INCREMENT THE LINE NUMBER INX H SHLD LINNUM LHLD PREV ;GET PREV PREVIOUS LINE POINTER XCHG LHLD TXTPTR ;GET CURRENT FREE MEM POINTER SHLD PREV ;MAKE IT THE PREV LINE (FOR NXT PASS) MOV M,E ;STORE AT BEGINNTR FOR NEXT TIME POP H ;GET BACK PARM POINTER PUSH D ;SAVE FREE MEM POINTER BECAUSE ; WE WILL HAVE TO HAVE IT BACK ; LATER TO STORE THE LENGTH INX D ;POINT PAST LENGTH STORAGE MVI B,0 ;INITIALIZE LENGTH OF PARM PPLP: MOV A,M ;GET NEXT B OF CURRENT LINE, INX H ; A POINTER TO THE PREVIOUS MOV M,D INX H PUSH H ;LATER WE WILL PUT LENGTH HERE INX H ;SKIP PAST LENGTH MVI C,0 ;INITIALIZE LENGTH TO ZERO LLP: CALL GNB ;GET NEXT BYTE FROM INPUT FILE JC EOF ;CY SET IF END OF FILE FO  UND CALL UCASE ;CONVERT TO UPPER CASE CPI 1AH ;SEE IF CPM END OF FILE INDICATOR JZ EOF CPI LF ;IGNORE LINEFEEDS JZ LLP CPI CR ;IF IT'S A CARRIAGE RETURN, JZ EOL ; THEN DO END OF LINE MOV M,A ;STORE ALL OTHERS INTO MEMORY INX H CALL SIZP B ;RESTORE EVERYBODY POP D POP H ORA A ;TURN ON CARRY RET ; ; FILL INPUT BUFFER ; FILL: MVI C,READF LXI D,FCB CALL BDOS ORA A ;GOT GOOD READ? MVI A,0 ;(NEW BUF PTR) STC RNZ ;RETN CY=EOF CMC ;NO EOF, NO CY RET ; ; COME HEREE ;MAKE SURE NO MEMORY OVERFLOW INR C ;BUMP CHAR COUNT JM LENERR ;MAX OF 128 CHARS PER LINE JMP LLP ;GO DO NEXT CHAR ; ; DO END OF LINE SEQUENCE ; EOL: SHLD TXTPTR ;SAVE FREE MEMORY POINTER POP H ;CURRENT LINE'S LENGTH POINTER MOV M,C ;STORE  TO GET A .SUB CHARACTER WHEN ; WE'RE NOT USING A .SUB FILE ("/" OPTION) ; GNBKBD: LDA CLFLAG ;USE CP/M CMD LINE? ORA A JNZ GNBCL ;THEN GO DO IT LDA CLCNT ;NOT, CHECK LOCAL ORA A ; CMD LINE CHAR COUNT CM CLFILL ;REFILL WHEN IT WRAPS BACK JCLENGTH AWAY JMP LINE ;GO DO NEXT LINE ; ; END OF TEXT FILE ; EOF: SHLD TXTPTR ;SAVE FREE MEMORY POINTER POP H ;CURRENT LINE'S LENGTH POINTER MOV M,C ;STORE LENGTH AWAY RET ;ALL DONE READING SUB FILE ; ; GET NEXT BYTE FROM INPUT FILE ; GNB: GKEND ;GOT CARRY (FROM CLFILL), RETURN EOF DCR A ;COUNT DOWN STA CLCNT JP GNBCL ;IF PLUS, BUFFER NOT EMPTY MVI A,CR ;OUT OF CHARS, RETURN A CR RET GKEND: MVI A,1AH ;RETURN EOF RET ; ; GET NEXT BYTE OF INPUT FROM CMD LINE @CLPTR ; GNBCL: L PUSH H ;DON'T ALTER ANYBODY PUSH D PUSH B LDA OPTION ;INPUT FROM .SUB FILE? CPI '/' ;TOLD BY ORIG CMD LINE OPTION JNZ NSLASH ;JUMP IF WE ARE CALL GNBKBD ;NO, GET A BYTE FROM KBD INPUT JMP GNBXIT ;THEN LEAVE NSLASH: LDA IBP ;GET BUFFER POINTHLD CLPTR ;LOAD THE POINTER MOV A,M ;GET THE CHAR INX H ;BUMP POINTER FOR NEXT TIME SHLD CLPTR CPI ';' ;LOGICAL END-OF-LINE? JNZ NSEMI ;JUMP IF NOT MVI A,CR ;YES, TRANSLATE IT RET NSEMI: ORA A ;PHYSICAL END-OF-LINE RNZ ;THIS ONLY NEEDED WER ORA A ;PAST END? CM FILL ;WRAPPED AROUND JNC GNB1 ;NO END OF FILE MVI A,1AH ;FAKE EOF GNB1: MOV E,A ;PUT IN DE MVI D,0 INR A ;POINT TO NEXT STA IBP ;PUT AWAY LXI H,TBUF ;NOW OFFSET INTO BUFR DAD D MOV A,M ;GET CHAR THERE GNBXIT: POHEN INPUT ; SOURCE IS ORIG CPM CMD LINE MVI A,1AH ;TRANSLATE THAT TO END OF FILE RET ; ; SUBROUTINE TO RE-FILL THE LOCAL COMMAND LINE ; CLFILL: LXI D,PROMPT ;PRINT A PROMPT MVI C,PRINTF ;USE CP/M FUNCT 9 CALL BDOS LXI D,CLBUF ;NOW FILL   THE BUFFER MVI C,RDBUF CALL BDOS LDA CLCNT ;RETURN WITH COUNT IN A LXI H,CLTEXT ;RESET THE CMD LINE POINTER SHLD CLPTR ORA A ;SET CY ON LEN NZ STC RZ CMC RET ; ; MAKE SURE NO MEMORY OVERFLOW ; SIZE: LDA BDOS+2 ;HIGHEST PAGE POINTEUNTIL A LINE IS FOUND JMP WRNTRY ;GOT ONE. NOW JOIN LOOP IN PROGRESS... WRLOP: LHLD PREV ;GET PREV LINE POINTER MOV A,H ORA L ;IF THERE IS NO PREV LINE JZ CLOSE ; THEN WE ARE DONE MOV E,M ;ELSE SET UP PREV FOR NEXT INX H ; PASS THRU HERE R DCR A ;MAKE IT BE UNDER BDOS CMP H ;CHECK IT AGAINST CURRENT PAGE RNC ;NC=ALL OKAY JMP MEMERR ;OTHERWISE ABORT ; ; SET UP THE $$$.SUB FILE ; FOR WRITING ; WRSET: LXI D,SUBFCB MVI C,OPENF CALL BDOS ;OPEN THE FILE INR A ;CHECK CPM RETURMOV D,M INX H XCHG ;NOW STORE IT AWAY SHLD PREV XCHG WRNTRY: CALL PUTLIN ;WRITE THE LINE TO THE FILE JMP WRLOP ; ; $$$.SUB IS WRITTEN, CLOSE THE FILE ; CLOSE: LXI D,SUBFCB MVI C,CLOSEF JMP BDOS ; ; THIS SUBROUTINE WRITES A LINE ; TO N JZ NONE1 ;NONE EXISTS ALREADY ; ; $$$.SUB EXISTS, SO SET ; FCB TO APPEND TO IT ; LDA SUBFCB+FCBRC ;GET RECORD COUNT STA SUBFCB+FCBNR ;MAKE NEXT RECORD RET ; ; COME HERE WHEN NO $$$.SUB EXISTS ; NONE1: LXI D,SUBFCB MVI C,MAKEF CALL BDOTHE $$$.SUB FILE BUFFER, ; AND FLUSHES THE BUFFER AFTER ; THE LINE IS WRITTEN. ; PUTLIN: MOV A,M ;PICK UP LENGTH BYTE INX H ;POINT PAST IT STA GETCNT ;MAKE A COUNT FOR "GET" SHLD GETPTR ;MAKE A POINTER FOR "GET" LXI H,TBUF+1;TEXT GOES AFTER LENS INR A JZ NOMAKE ;0FFH=CAN'T CREATE FILE RET ; ; WRITE THE "$$$.SUB" FILE ; WRSUB: LHLD PREV ;THIS CODE SCANS BACKWARD MOV A,H ; THRU THE FILE STORED IN ORA L ; MEMORY TO THE FIRST NON- JZ NOTEXT ; NULL LINE. IF NONE IS MOV E,M ; ISGTH SHLD PUTPTR ;MAKE POINTER FOR "PUT" XRA A ;INITIALIZE PUT COUNT STA PUTCNT MOV B,L ;COUNT FOR CLEAR LOOP CLR: MOV M,A ;ZERO OUT BUFFER LOC INX H INR B ;COUNT JNZ CLR ; ; THIS LOOP COLLECTS CHARACTERS ; FROM THE LINE STORED IN MEMORY  FOUND, ABORTS INX H MOV D,M ;HERE, WE PICK UP PNTR TO PREV LINE INX H ;NOW WE POINT TO LENGTH XCHG ;WE NEED TO STORE AWAY SHLD PREV ; POINTER TO PREV LINE XCHG MOV A,M ;NOW PICK UP THE LENGTH ORA A ;SET Z FLAG ON LENGTH JZ WRSUB ;LOOP ; AND WRITES THEM TO THE FILE. ; IF THE "$" PARAMETER SPECIFIER ; IS ENCOUNTERED, PARAMETER SUB- ; STITUTION IS DONE ; PUTLP: CALL GETCHR ;PICK UP A CHARACTER JC FLUSH ;CY = NO MORE CHAR IN LINE CPI '$' ;PARAMETER SPECIFIER? JNZ STOBYT ;IF NOT,   JUST WRITE CHAR LDA OPTION ;CHECK OPTION: '$' DOESN'T CPI '/' ; COUNT IN '/' MODE MVI A,'$' ;(RESTORE THE '$') JZ STOBYT CALL LKAHED ;PEEK AT NEXT CHAR JC PARERR ;LINE ENDING MEANS PARAM ERR CPI '$' ;ANOTHER "$"? JNZ SUBS ;IF NOT THEN GO DZERO DCR B JZ PUTLP ;DONE MOV A,M ;GET CHAR OF REAL PARAMETER INX H ;POINT PAST FOR NEXT TIME PUSH H ;SAVE REAL PARM POINTER CALL PUTCHR ;PUT IT IN THE FILE POP H ;GET BACK REAL PARM POINTER DCR B ;COUNTDOWN JMP SUBLP1 ; ; COME HERE WHEO SUBSTITUTION CALL GETCHR ;GET THE 2ND "$" (WE ONLY LOOKED ; AHEAD BEFORE) STOBYT: CALL PUTCHR ;WRITE CHAR TO FILE JMP PUTLP ; ; PARAMETER SUBSTITUTION...LOOKS UP THE ; PARAMETER # AFTER THE "$" AND PLUGS IT ; IN IF IT EXISTS. ; SUBS: CALLN A LINE IS FINISHED, ; AND WE NEED TO WRITE THE BUFFER TO DISK ; FLUSH: LHLD PUTPTR ;PAD SECTOR WITH NULLS FLPAD: MVI M,0 INX H MOV A,L ;CHECK BUFF BOUND ORA A JNZ FLPAD LXI D,SUBFCB MVI C,WRITEF CALL BDOS ORA A JNZ WRERR ;CPM RETURN NUMTST ;IT BETTER BE A NUMBER JC PARERR ; OTHERWISE PARAM ERROR MVI B,0 ;INITIALIZE PARM # JMP LPNTRY ;WE JOIN LOOP IN PROGRESS... SUBLP: CALL LKAHED ;LOOK AT NEXT CHAR JC DOSUBS ;IF LINE EMPTY, THEN PLUG IN PARM CALL NUMTST ;CHECK FOR NUMERICED A WRITE ERROR RET ; ; GETCHR GETS ONE CHAR FROM ; LINE STORED IN MEMORY ; GETCHR: LXI H,GETCNT MOV A,M ;PICK UP COUNT DCR A ;REMOVE THIS CHAR STC ;PRESET ERROR RM ;RETURN CY IF OUT OF CHARS MOV M,A ;UPDATE COUNT LHLD GETPTR ;CURRENT JC DOSUBS ;DONE IF NOT LPNTRY: CALL GETCHR ;NOW REMOVE THE CHAR FROM INPUT STREAM SUI '0' ;REMOVE ASCII BIAS MOV C,A ;SAVE IT MOV A,B ;OUR ACCUMULATED COUNT ADD A ;MULTIPLY BY TEN ADD A ADD B ADD A ADD C ;THEN ADD IN NEW DIGIT MOV B, CHAR POINTER MOV A,M ;PICK UP CHAR INX H ;BUMP POINTER SHLD GETPTR ;PUT IT BACK CMC ;TURN CARRY OFF RET ; ; PUTCHR PUTS ONE CHAR TO ; THE OUTPUT BUFFER ; PUTCHR: LXI H,PUTCNT INR M ;INCREMENT COUNT JM LENERR ;LINE WENT TO > 128 CHARS A ;RESTORE COUNT JMP SUBLP ; ; PERFORM THE SUBSTITUTION ; DOSUBS: MOV A,B ;GET PARM # DCR A ;MAKE ZERO RELATIVE JM PARERR ;OOPS CALL LOOKUP ;LOOK IT UP IN PARM TABLE JC PARERR ;IT'S NOT THERE MOV B,A ;LENGTH IN B SUBLP1: INR B ;TEST B FOR  LHLD PUTPTR ;GET BUFFER POINTER MOV M,A ;PUT CHAR THERE INX H ;BUMP POINTER SHLD PUTPTR ;PUT IT BACK RET ;ALL DONE ; ; LOOK AHEAD ONE CHAR IN ; THE INPUT STREAM. SET ; CARRY IF NONE LEFT. ; LKAHED: LDA GETCNT ORA A ;SEE IF COUNT IS DOWN   TO ZERO STC ;PRE SET INDICATOR RZ MOV A,M ;PICK UP CHAR CMC ;TURN OFF CARRY FLAG RET ; ; LOOK UP PARAMETER WITH NUMBER IN ; A REG. RETURN A=LENGTH OF PARM, ; AND HL => PARAMETER ; LOOKUP: CPI NPAR JNC PAROVF ;PARM # TOO HIGH MOV L,A NVERT CHAR IN A TO UPPER CASE ; UCASE: CPI 'a' ;VALIDATE CASE RC CPI 'z'+1 RNC ANI 5FH ;GOT LC, CONV TO UC RET ; ; ERROR HANDLERS ; WRERR: CALL ERRXIT DB 'Disk full$' NOMAKE: CALL ERRXIT DB 'Directory full$' MEMERR: CALL ERRXIT DB ' MVI H,0 ;NOW HAVE 16 BIT NUMBER DAD H ;DOUBLE FOR WORD OFFSET LXI D,TABLE DAD D ;DO THE OFFSET MOV E,M ;GET ADDRESS OF PARM INX H MOV D,M MOV A,D ;ANYTHING THERE? ORA E JNZ LKUPOK XRA A ;NO, ZERO LENGTH RET LKUPOK: XCHG ;NOW IN DE Memory full$' NOTFND: CALL ERRXIT DB 'Submit file not found$' PARERR: CALL ERRXIT DB 'Parameter$' PAROVF: CALL ERRXIT DB 'Too many parameters:$' LENERR: CALL ERRXIT DB 'Line too long:$' NOTEXT: CALL ERRXIT DB 'Submit file empty.$' ERRXIT: P MOV A,M ;PICK UP LENGTH INX H ;POINT PAST LENGTH RET ; ; UTILITY COMPARE SUBROUTINE ; COMPAR: LDAX D CMP M RNZ INX H INX D DCR B JNZ COMPAR RET ; ; NUMERIC TEST UTILITY SUBROUTINE ; NUMTST: CPI '0' RC CPI '9'+1 CMC RET OP D MVI C,PRINTF CALL BDOS LXI D,ERRMSG ;PRINT 2ND HALF MSG MVI C,PRINTF CALL BDOS LHLD LINNUM ;TELL LINE NUMBER CALL DECOUT CALL CRLF LXI D,SUBFCB ;DELETE THE $$$.SUB FILE MVI C,DELETF CALL BDOS JMP CPBASE ; ERRMSG: DB ' error ; ;DECIMAL OUTPUT ROUTINE ; DECOUT: PUSH B PUSH D PUSH H LXI B,-10 LXI D,-1 ; DECOU2: DAD B INX D JC DECOU2 LXI B,10 DAD B XCHG MOV A,H ORA L CNZ DECOUT MOV A,E ADI '0' CALL TYPE POP H POP D POP B RET ; ; PRINT on line number: $' ; ; PROMPT FOR COMMAND LINE INPUT ; PROMPT: DB CR,LF,'*$' ; ; INITIALIZE ALL VARIABLES ; INITVAR: LXI H,VAR LXI B,ENDVAR-VAR INITLP: MVI M,0 INX H DCX B MOV A,B ORA C JNZ INITLP LXI H,TABLE SHLD TBLPTR LXI H,CR, LF ON CONSOLE ; CRLF: MVI A,CR CALL TYPE MVI A,LF ; ; PRINT CHAR IN A ON CONSOLE ; TYPE: PUSH H ;SAVE REGS PUSH D PUSH B MOV E,A ;PUT IN E FOR CP/M MVI C,FPCHAR CALL BDOS ;PRINT IT POP B ;RESTORE ALL POP D POP H RET ; ; CO0FFFFH SHLD ENDTBL LXI H,FREMEM SHLD TXTPTR MVI A,80H ;FORCE READ STA IBP STA CLCNT ;FORCE CONSOLE READ RET ; ; PRINT HELP WITH PROGRAM OPTIONS ; HELP: LXI D,HLPMSG ;PRINT THE HELP STUFF MVI C,PRINTF CALL BDOS LHLD SPSAVE ;THEN RET  URN W/NO WARM-BOOT SPHL RET ; HLPMSG: DB CR,LF,'How to use SUPERSUB:',CR,LF DB CR,LF,'SUPERSUB :print this HELP message' DB CR,LF,'SUPERSUB / :go into interactive mode' DB CR,LF,'SUPERSUB / :use SUMMARY AMETER TABLE ENDTBL: DW 0FFFFH ;END OF PARAMETER TABLE ; ENDVAR EQU $ ; ; COMMAND LINE BUFFER...NOT INITIALIZED ; CLBUF: DB 128 ;BUFFER LENGTH CLCNT: DB 0 ;CHARACTER COUNTER CLTEXT: DS 128 ;THE BUFFER ITSELF ; SPSAVE: DW 0 ;STACK POINTER SAVE ;mode' DB CR,LF,'SUPERSUB :as in standard SUBMIT.COM' DB CR,LF DB CR,LF,'In "/" (interactive) mode, SUPERSUB will prompt you' DB CR,LF,'a line at a time for the SUBMIT job input...logical' DB CR,LF,'lines may be combined on the same ; ; FCB FOR $$$.SUB ; SUBFCB: DB SUBDRV ;DRIVE SPECIFIER DB '$$$ ' SUBTYP: DB 'SUB' DW 0,0,0,0 ;INITIALIZE REST OF FCB DW 0,0,0,0 DW 0,0 ; ; STACK AREA ; DS 200 ;WHY NOT? STACK EQU $ FREMEM EQU $ ; END SUBMIT  input line by sep-' DB CR,LF,'erating them with semicolons. Example:' DB CR,LF,' A>SUPERSUB /STAT;DIR' DB CR,LF,'specifies two commands on the same input line.',CR,LF DB CR,LF,'Submitted jobs may be nested...SUPERSUB does not erase' DB CR,LF,'åany existing submit job (appends to them instead).' DB CR,LF,'$' ; ; VARIABLE STORAGE ; VAR EQU $ ; TXTPTR: DW 0 ;FREE MEMORY POINTER TBLPTR: DW 0 ;POINTER TO PARM TABLE LINNUM: DW 0 ;CURRENT LINE NUMBER PREV: DW 0 ;POINTER TO PREV LINE GETCNT:å DB 0 ;COUNTER FOR 'GET' GETPTR: DW 0 ;POINTER FOR 'GET' PUTPTR: DW 0 ;POINTER FOR 'PUT' IBP: DB 0 ;INPUT BUFFER POINTER CLPTR: DW 0 ;COMMAND LINE POINTER CLFLAG: DB 0 ;USE CP/M CMD LINE FLAG OPTION: DB 0 ;'/' OPTION FLAG STORE TABLE: DS NPAR*3 ;PARå  å?Éþ ÒÁo&)è^#Vz³Â¯Éë~#ɾÀ#ÂÉþ0Øþ:?ÉÅÕåöÿÿÿ Ú7 ë|µÄ.{Æ0ÍWáÑÁÉ> ÍW> åÕÅ_ÍÁÑáÉþaØþ{Ðæ_ÉÍDisk full$ÍDirectory full$ÍMemory full$ÍSubmit file not found$ÍParameter$ÍToo many parameters:$ÍLine too long:$ÍSubmit file empty.å$Ñ Í# Í*ÚÍ.ÍPŒÍà error on line number: $ *$!Ö26# x±ÂE!è"Ø!ÿÿ"!t "Ö>€2ã2 Év Í*ŠùÉ How to use SUPERSUB: SUPERSUB :print this HELP message SUPERSUB / :go into interactive mode SUPERSUB /<!9"Š1t ÍSuperSUB V1.0 $Ñ :]þ ÊiÍÍ?ÍhÍ@ÍìÍâÍÃ!e~þ ÊU•Í›Éë!•Í_É~#Â_É!�ÍŸ2çØþ/†#"ä~2æþ À#Ãx~#·Èþ Ê”þ †ÍŸØÍ±ØÃ”~#·7Èþ ÊŸþ ÊŸ+·Éå*Öë*Ø~·ÂÁs#r#"ØáÕ~#·Êàþ Êàþ ÊàÃÊë"Öápë·7È?É:çþ/Ê\Í<Ê›cmd lines> :use SUMMARY mode SUPERSUB :as in standard SUBMIT.COM In "/" (interactive) mode, SUPERSUB will prompt you a line at a time for the SUBMIT job input...logical lines may be combined on the same input line by sep- erating th*Ú#"Ú*Üë*Ö"Üs#r#å#ÍKÚEÍdþÊEþ Êþ Ê=w#ÍÙ úÙÃ"ÖáqÃ"ÖáqÉåÕÅ:çþ/Â\͈Ãt:ã·üyÒh>_<2ã!€~ÁÑá·É\Í·>7À?É:æ·Â¦: ·ü»Ú£=2 ò¦> É>É*ä~#"äþ;¶> É·À>É; Í Í: ! "ä·7È?É:=¼ÐÃŒŒÍ<Êõ:›2¬ÉŒÍ<Êzem with semicolons. Example: A>SUPERSUB /STAT;DIR specifies two commands on the same input line. Submitted jobs may be nested...SUPERSUB does not erase any existing submit job (appends to them instead). $line by sep- erating thÉ*Ü|µÊë^#V#ë"Üë~·ÊÃ,*Ü|µÊ2^#V#ë"ÜëÍ:ÃŒÃ~#2Þ"ß!�"á¯2€Ew#ÂMÍ×Ú¿þ$Âv:çþ/>$ÊvÍùÚ´þ$Â|Í×ÍéÃSÍ'Ú´ÓÍùÚ£Í'Ú£Í×Ö0Ox‡‡€‡�GÇx=ú´ÍÚ´GÊS~#åÍéáï*á6#}·ÂŒͷÂmÉ!Þ~=7øw*ß~#"ß?É!€4úÙ*áw#"áÉ:Þ·7È~em witÿÿ€micolons. Example: A>SUPERSUB /STAT;DIR specifies two commands on the same input line. Submitted jobs may be nested...SU$$$ SUB   SUPERSUB DOCUMENTATION 09/05/81 Ron Fowler Westland, MI SUPERSU  ió  intendeä aó á replacemenô  prograí  foò  SUBMIT.COÍ � provideä witOMPILE.SUB®  Foò � example¬ yoõ caî creatå á filå calleä COMPALL.SU consistinç oæ : SUPERSU COMPILÅ MYPROG SUPERSU COMPILÅ RBBS.ASC SUPERSU COMPILÅ PRIMES.BAS Thió  ió especiallù usefuì wheî usinç thå INTERACTIVÅ oò  SUMMARÙ � modes®  Wheè CP/Í bù Digitaì Research® Thió documenô assumeó yoõ � arå familiaò witè thaô utilitù anä itó use. -------------------------- SUPERSUB provides the following new capabilities : * Nulì  inpuô lineó arå properlù interpreted»  tî useä iî conjunctioî witè otheò CPMUÇ utilities¬ somå � very powerful command structures may be built. .pa ŠSUMMARY Mode : SUMMARÙ modå allowó thå entirå SUBMIÔ joâ tï bå specifieä iî  thå � CP/Í commanä line®  Thió modå ió enableä bù usinç thå slasheù  causå  thå �     creatioî oæ á zero-lengtè linå iî $$$.SUB. * SUBMIT jobs may be nested. * Foò smalì SUBMIÔ jobs¬  thå commanä lineó maù bå specifieä oî �     thå SUPERSU commanä line¬ seperateä bù semicolons. * Aî  interactivå  modå aè ("/"© � characteò  oæ thå commanä line®  Thå individuaì submiô lineó musô � be seperated with a semicolon. For example : A>SUPERSUB / CRCK *.* F;CRCK B:*.* F;COMPARE CRCKFILE.CRC B: | ------> (this space is optional) llowó commanä lineó tï bå entereä  di�     rectlù intï SUPERSU withouô neeä oæ á texô editor. * A built-in help function is provided. * Thå  outpuô drivå anä numbeò oæ allowablå parameteró  maù  bå �     specifieä aô assemblù time. SUBMIÔ  j wilì  creatå á filå oæ CRC'ó oæ alì fileó oî A:®  theî  creatå  á � similaò  filå  oî  B:¬  thå comparå  thå  two®  (CRCK¬  bù  Keitè � Petersen¬  anä COMPARE¬  bù Warä Christensen¬  arå availablå froí � the CP/M Users Group). INTERACTIVE Mode : Yobó maù bå nesteä undeò SUPERSUB®  Foò example¬  supposå � yoõ havå á submiô filå tï compilå á prograí named COMPILE.SUB : BASCOM = $1 L80 $1,$1/N/E PIP B:=A:$1.COM ERA $1.REL ERA $1.COM Yoõ  maù  theî compilå severaì programó  usinç  Cou may enter the INTERACTIVE entry mode by typing : A>SUPERSUB / (i.e.¬  "SUPERSU /¢ witè nï arguments)® SUPERSU wilì prompô foò � inpuô  witè aî asterisë anä yoõ maù theî enteò SUBMIÔ lineó  froí � thå  keyboard®  Yoõ  maù enteò morå thaî onå lo  gicaì  linå  oî  á � physicaì  linå usinç semicoloî seperation®  Aî emptù linå termin� ateó thå input®  Thå followinç examplå haó thå samå effecô aó thå � SUMMARY mode example above. A>SUPERSUB / *CRCK *.* F *CRCK B:*.* F *COMPARE CRCKFILE.Cilì bå passeä througè literallù tï thå outpuô file. 4>  Zero-lengtè  outpuô  lineó  maù  bå createä  iî  SUMMARÙ  anä �     INTERACTIVÅ modeó bù usinç twï consecutivå  semicolons®  Thió �     is, in effect, a blank logical lien. 5> INTERACTIVÅ  modåRC B: * (empty line here) A>CRCK *.* F (submit file begins execution) HELP Function : Typinç  SUPERSU witè nï argumentó wilì prinô thå  built-iî  helð � file. NOTES :PB 1>  Nesteä  SUBMIÔ   maù bå aborteä bù typinç ^à (control-C©  aó �     thå firsô characteò oæ á line®  Also¬ alì normaì CP/Í editinç �     characters are available. runó arå onlù usablå uð tï á maximuí  oæ  12¸ �     nesteä commandó aô anù onå time®  Thió ió á limitatioî oæ thå �     CP/M Console Command Processor. .pa Š2>  Iæ  yoõ  changå thå drivå specificatioî foò thå outpuô  file¬ �     yoõ  maù  wanô  tï  dï thåå  samå  thinç  witè  XSU  (Digitaì �     Research'ó BDOÓ Functioî ¹ extender)®  Withiî XSUB¬  finä thå �     submiô  Filå  Controì Blocë (searcè foò "$$¤ SUB¢  withiî �     XSUB.COM©  anä  changå thå firsô FC  bytå  (i.e.¬  thå  bytå �     before theå first "$") to : 0 - Use the default drive 1 - Use drive A: 2 - Use drive B: etc. 3>  Iî SUMMARÙ anä INTERACTIVÅ modes¬  passeä parameteró havå  nï �     meaning®  Wheî theså modeó arå used¬ thå parameteò flag¬ "$"¬ �     wå!  å<ʼ*�#"�*Ÿë*™"Ÿs#r#å#ÍQÚKÍ…þÊKþ Êþ ÊCw#Íß úúÃ"™áqÃ"™áqÉåÕÅ:ªþ/ÂbÍŽÃz:¦·üÒn>_<2¦!€~ÁÑá·É\Í·>7À?É:©·Â¬:Ì·üÁÚ©=2Ìò¬> É>É*§~#"§þ;¼> É·À>Ép ÍË Í:Ì!Í"§·7È?É:=¼ÐíÍžO Í<Êþ:^ 2o ÉOå Í<Ê›É*Ÿ|µÊ ^#V#ë"Ÿë~·Â<*�+"�à *Ÿ|µÊI^#V#ë"ŸëÍQ*�+"�Ã+O Ã~#2¡"¢!�"¤¯2€Ew#ÂdÍøÚëþ^Â…ÍøÚ!Ö@Ú!þ Ò!þ$¢:ªþ/>$Ê¢ÍÚÕþ$¨ÍøÍ ÃjÍHÚÕÿÍÚÏÍHÚÏÍøÖ0Ox‡‡€‡�Góx=úÕÍ#ÚÕGÊj~#åÍ áÃÛO Í·ÂŽÉ!¡~=7øwå*¢~#"¢?É!€4úú*¤w#"¤É:¡·7È~?Éþ Òâo&)«^#Vz³Â:¯Éë~#ɾÀ#Â>Éþ0Øþ:?ÉÅÕåöÿÿÿ ÚX ë|µÄO{Æ0ÍxáÑÁÉ> Íx> åÕÅ_ÍÁÑáÉþaØþ{Ðæ_ÉÍ6Disk full$Í6Directory full$Í6Memory full$Í6Submit file not found$Í6Parameter$Í6Too many parameters:$Í6Linåe too long:$Í6Submit file empty$Í6Control character$Ñ ÍX Í*�ÍOÍqO Íà error on line number: $ *$!™26# x±Âz!«"›!ÿÿ"É!7 "™>€2¦2ÌÉõÅÕå ͯ¼ÊȚ̀å™Í_Æ0!Q wá6ÿáÑÁñÉÚ Í*M ùÉ How to use SUPERSUB: SUPERSUB!9"M 17 ÍSuperSUB V1.1 $Ñ :]þ ÊÍÍÍtÍhÍ@ÍìÍèÍ Ã!e~þ ÊUX Í>¼Éë!X Í_É~#Â_É!�ÍŸ2ªØþ/†#"§~2©þ À#Ãx~#·Èþ Ê”þ †ÍŸØÍ±ØÃ”~#·7Èþ ÊŸþ ÊŸ+·Éå*™ë*›~·Ââs#r#"›áÕ~#·Êàþ Êàþ ÊàÃÊë"™ápë·7È?É!"�:ªþ/Ê\Í :print this HELP message SUPERSUB / :go into interactive mode SUPERSUB / :use SUMMARY mode SUPERSUB :as in standard SUBMIT.COM In "/" (interactive) mode, SUPERSUB will prompt you a line at a time "  for the SUBMIT job input...logical lines may be combined on the same input line by sep- erating them with semicolons. Example: A>SUPERSUB /STAT;DIR specifies two commands on the same input line. Submitted jobs may be nested...SUPERSUB does not eråase any existing submit job (appends to them instead). To insert a control character into the output, pre- fix it with a "^" (works in any mode). $mmands on the same input line.ÿÿ€Submitted jobs may be nested...SUPERSUB does not eråase any existing submit job (appends to them instead). To insert a contro$$$ SUB" (works in any mode). $mmands on the same input line.ÿÿ€Submitted jobs may be nested...SUPERSUB does not eråped in previous user's group disks worked only for CP/M 1.3, since the manner in which data was passed back from the "inquire allocation vector" changed (or at least my usage of it changed) from 1.3 to 1.4. ååå#  ;COMPARE.ASM ;11/??/77 ORIGINALLY WRITTEN BY WARD CHRISTENSEN ;12/31/77 ADD PICKUP OF SECOND FILENAME IF BLANK ;01/08/77 ADD SEQIO MACLIB TO READ BIG BLOCKS BSIZE EQU 4096 ;DISK BUFFER SIZE (TIMES 2) ORG 100H MACLIB SEQIO MOVE MACRO ?F,?T,?L MVIUNEQUAL AFTER ' PRBYTES LXI D,BYTES MVI C,@MSG CALL @BDOS PRINT <'LAST DATA READ FROM FILE 1:',0DH,0AH> LHLD PRTPTR DCR L MVI B,0 PRTLP INR L MOV A,M CPI 0DH JZ GOTCR CPI 0AH JZ TYPEIT CPI 9 ;TAB JZ TYPEIT CPI ' ' JC HEX C B,?L LXI D,?F LXI H,?T CALL MOVER ENDM ;TYPE SINGLE CHAR OR CHAR IN A TYPE MACRO ?C IF NOT NUL ?C MVI A,?C ENDIF PUSH B PUSH D PUSH H PUT CON POP H POP D POP B ENDM PRINT MACRO ?L LOCAL Z CALL Z IRP ?M, DB ?M PI 7FH JNC HEX TYPEIT TYPE LDA COL INR A STA COL CPI 60 JC NEXT XRA A STA COL PUSH B PUSH H PRINT <0DH,0AH> POP H POP B JMP NEXT GOTCR XRA A STA COL MVI A,0DH JMP TYPEIT HEX PUSH PSW ;SAVE CHAR TYPE '(' POP PSW PU ENDM DB '$' Z POP D MVI C,@MSG CALL @BDOS ENDM ; ;COMPARE.ASM - COMPARES 2 FILES ; ;COMMAND FORMAT: COMPARE NAME1 NAME2 ; IF NAME2 = NAME1 BUT IS ON B DISK, ; JUST TYPE: COMPARE NAME1 B: ; PRINT <'COMPARE.COM 1/8/78',0DH,0AH> ; ;INIT SSH PSW RAR RAR RAR RAR CALL NIBBL POP PSW CALL NIBBL LDA COL ADI 3 STA COL MVI A,')' JMP TYPEIT NEXT DCR B JNZ PRTLP JMP EXIT ; ;READ BYTE FROM FILE 1 ; READ1 GET FILE1 JZ EOF1 ;GOT EOF? LHLD PRTPTR MOV M,A INR L TACK ; POP H ;GET CP/M RET ADDR SHLD EXIT+1 ;MODIFY RETURN ADDR LXI SP,STACK ;GET MY STACK ; ;IF THE SECOND FCB IS BLANK, ;MOVE IN THE NAME FROM THE FIRST ; LDA @TFCB+17 CPI ' ' JNZ MOVE2 ;NOT BLANK MOVE @TFCB+1,@TFCB+17,11 ; ;'DECLARESHLD PRTPTR PUSH PSW ;SAVE CHAR LXI H,BYTES+5 READI MOV A,M ORI '0' ;IN CASE IT WAS BLANK INR A MOV M,A CPI '9'+1 ;TIME TO CARRY? JNZ READNC MVI M,'0' DCX H JMP READI READNC POP PSW RET ; ;EOF ON FILE 1 - SET FLAG, READ 2 ; EOF1' BOTH FCB'S ; MOVE2 FILE INFILE,FILE1,,1,,BSIZE FILE INFILE,FILE2,,2,,BSIZE ; ;COMPARE THE 2 FILES 1 BYTE AT A TIME ; COMP CALL READ1 MOV B,A ;SAVE CHAR PUSH B CALL READ2 POP B CMP B JZ COMP ; ;FILES UNEQUAL ; UNEQUAL PRINT 'FILES  MVI A,'Y' STA EOFLG CALL READ2 PRINT <'EOF FILE 1, NOT FILE 2',0DH,0AH> JMP UNEQUAL ; READ2 GET FILE2 RNZ ;NO EOF ; ;GOT EOF ON FILE 2, MUST HAVE GOTTEN IT ON FILE 1 ; EOF2 LDA EOFLG CPI 'Y' JZ AOK PRINT <'EOF FILE 2 BEFORE FILE 1$  ',0DH,0AH> JMP UNEQUAL ; ;A-OK - FILES MATCH ; AOK PRINT 'FILES MATCH, LENGTH IS ' LXI D,BYTES MVI C,@MSG CALL @BDOS ;NOTE THE FOLLOWING DOES NOT RESTORE CP/M'S ;STACK POINTER, BUT THAT IS 'OK' BECAUSE THE ;FIRST INSTRUCTION IN CP/M IS A LXIå SP EXIT JMP $-$ ;CP/M RET ADDR (MODIFIED) ERXIT POP D ;GET MESSAGE MVI C,@MSG CALL @BDOS JMP EXIT NIBBL ANI 0FH CPI 10 JC NUM ADI 7 NUM ADI '0' TYPE RET ;MOVE FROM (DE) TO (HL) LENGTH IN B MOVER LDAX D MOV M,A INX D INX H DCRÍCOMPARE.COM 1/8/78 $Ñ Íá"‘1ñ:mþ Â8 ]!mͶÃD~# Â;É!\R Í;ÃyáÑÁÉ!úͼ ÃÅG:6þÊQþxÂJÍÞÃÍSÃé*uë*w}“|šÚÒ!"wë*u{•zœÒÄ*sëÍRͷ¾€*w"wÃ�*w"u€Í!"wë*së*u}´>È*w#"wɯ2^2r!"u"wRÍ B JNZ MOVER RET EOFLG DB 'N' COL DB 0 BYTES DB ' BYTES',0DH,0AH,'$' PRTPTR DW BUFF DS 30 ;STACK STACK EQU $ ;ORG TO PAGE BECAUSE 'INR L' USED TO LOOP THRU IT ORG ($+255) AND 0FF00H ;TO PAGE BUFF EQU $ REPT 16 DB ' <  Íà NO FILE1 FILE$!l. Í;ÃU ]!mͶÃD~# Â;É!\R Í;ÑÁÃÅ*Që*S}“|šÚ®!"Së*Q{•zœÒ *OëÍ.ͷš€*S"SÃl*S"Q€Í!"Së*Oë*Q}´>È*S#"Sɯ2:2N!"Q"S.Í<Âü ìÍà NO FILE2 FILE$ÍãG' ENDM BUFFERS EQU $ MEMSIZE EQU BUFFERS+@NXTB END ;ORG TO PAGE BECAUSE 'INR L' USED TO LOOP THRU IT ORG ($+255) AND 0FF00H ;TO PAGE BUFF EQU $ REPT 16 DB ' ÅÍ4Á¸ÊüÍ!FILES UNEQUAL AFTER $Ñ ÍÁ ÍÍPLAST DATA READ FROM FILE 1: $Ñ Í*Ñ-,~þ ʨþ Êwþ Êwþ Ú±þÒ±ÅÕåõ_ÍñáÑÁ:À<2Àþ<Úܯ2ÀÅåÍ� $Ñ ÍáÁÃܯ2À> Ãwõ>(ÅÕåõ_ÍñáÑÁñõÍœñÍœ:ÀÆ2À>)ÃwÂ\Ã�Í|Ê*Ñw,"Ñõ!Æ~ö0Y2¿Í4Í+EOF FILE 1, NOT FILE 2 $Ñ Íà ÍXÀ:¿þYÊgÍ^EOF FILE 2 BEFORE FILE 1 $Ñ Íà Í‚FILES MATCH, LENGTH IS $Ñ ÍÁ ÍÃÑ ÍÃ�æþ 򴮮0ÅÕåõ_ÍñáÑÁÉw#¶ÉN BYTES $2À>)ÃwÂ\Ã�Í|Ê*Ñw,"Ñõ!Æ~ö0 prompt, type COMPARE fildescr1 fildescr2 where fildescr is of the form d:filename.typ. If the two files have the same name but are on separate drives, at the A> pårompt, type COMPARE filename.typ B: SUPERSUB is a super SUBMIT utility received from the Northwest Osborne Users Club in the Washington/ Oregon area. Refer to SUPERSUB.DOC for information. For brief instructions, place SUPERSUB.COM in driveå A. At the A> prompt, type SUPERSUB SUPRSUB2, from OUG, is an update of SUPERSUB allowing entry of control characters. I haven't quite determined the use of this feature, however. Place SUPRSUB2.COM in drive A. At the A> prompt, type DISK.DOC -FOG/UTL.004 First Osborne Group (FOG) Utilities Disk This disk contains updated squeeze/unsqueeze utilities SQ-15, USQ-15, TYPESQ14, and FLS-11 received from the Osborne Users Group (OU SUPRSUB2 and note the comparison with SUPERSUB. Jim Woolley FOG Disk Librarian August, 1982 &  åååååååååå'  åååååååååå