IMD 1.16: 28/05/2007 17:27:38 -FOG/UTL057   åååååååååå  åååååååååå  åååååååååå  -FOG/UTL057/UTL#057CRC/UTL#057DOC,-CV20 COM CV20 DOCFILTER4 COM*FILTER4 DOC+LBL1&3 DOCåLBL1ACRSBAS LBL3ACRSBAS N20 AQM@&'()N20 COM#$N20 DOC%OKICHAR COM OKICHAR DOC&PK COMåPK DOC,"*REFORMATBAS) REFORMATDOC SAP40 AQMC !SAP40 COM SAP40 DOCååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååååà 1:]þ ʰ!e~þ Â#6O#6K#6I\Í·Ê`! 6# y°Â5! 6#6%#6A#6 ! 6#6%#6A#6!! Ã�  Íw!€ëÂe!! Ã�ÕÅÍ\ÍÁÑ·ÂÇÉ~·Ê¥Ü¾Â•ö€Ã�+++"=Í“= 8OKICHAR 1.0 - (c) E.Meyer 8/84=!8-------------------------------ÍtÍ“=58åUndefined characters in this set:=6.!Ý4~þÚ3> ͆#Â+Í“=73!*~þÚP> ͆#ÂHÍ“=28Enter character, or to save: ÍŸæþÒ˜þ!Ò æþ Ê>͆ÃXO!Ü#~æ¹Â¤~æ€ÊÌ!! ~·Ê˜¹ÊÅõ+";Ãç~ö€w*=6#6%#6A";#q "=Í“=28 Character *;#  ~͆Í“ - to save =58 =6. Use arrow keys to move, spacebar to toggle pixels.=73 ( Other commands: R/L/U/D, A, Z ) %*;~þAʺ'B##ÍtÍ6ÍsÍŸæþ Êêþ ÊUGæ_þAÊÙþRʧþLÊÂþUÊwþDÊ�þZÊ_:¸Ê% shift to next bit of byte */ } } return (sum); /* return CRC */ }  high bit of byte */ if (b) sum ^= 0x1021; /* CCITT polynomial */ c <<= 1; /*:¸Ê?:¸Ê2:¸ÊJ>͆ÃÀ>͆ÃÆ>¹ÊyOÃÆ>@¹ÊyOÃÆ>L»Ê#ÃÆ>B»Ê+ÃÆ~©w¡ÄjÃÆÅ *;##6#ÂgÁ*;##ÃÀÅå*;## ~æ?w#€áÁÃÀÅå*;## ~æ~w#˜áÁÃÀåÕ *;Ñ +~#w+³6áÃÀå*;## #~+w#ÂÊ6áÃÀ*;D~þAÊæApí*;## ~¡Ê#~+¡Ê> OKICHAR.DOC ----------- Documentation for OKICHAR.COM Version 1.0 (c) E.Meyer 8/84 OKICHAR is a utility for designing special character sets f͆íyOþ€Úó#ÂóÃö*=6#62\ͯ2h2|\Í·ÂÇ  ÍV!€ëÂ?\ÍÃlÕÅÍ\ÍÁÑ·ÂÇÉ>͆ÃåÍ“=$A+-----------+=%A| |=&A| |='A| |=(A| |=)A| |=*A| |=+A| |or the Okidata 92/93 printers. Since Okidata provides software for this purpose only for IBM and Apple computers, I have written my own CP/M version. OKICHAR lets you design each character conveniently on screen, and builds up a disk file contain=,A| |=-A| |=.A+-----------+áÉÅÕå%*;~þAÊF'BB##~¡ÄjyOþ€ÚMP#{þMÚMáÑÁÉÍs>*͆É>͆>=͆z͆{͆ÉÅÕå_ÍáÑÁÉ㯆#ãÈ͆ÓÅÕåÍáÑÁþÊlÉÍ“++ file error ++ÃÍ“++ i/o error ++ÃAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqRing all the character definitions. This file can then simply be PIPed to your printer to install the characters. That is, once you have used OKICHAR to create a character file, say "MYCHRS.OKI", you simply need to (1) turn on your Okidata printer rSsTtUuVvWwXxYyZz0123456789!"#$%&'()*+,-./:;<=>?@[\]^_`{|}~ {͆ÉÅÕå_ÍáÑÁÉ㯆#ãÈ͆ÓÅÕåÍáÑÁþÊlÉÍ“++ file error ++ÃÍ“++ i/o error ++ÃAaBbCcDdEeFfGgHhIiJjKkLlMmNnOoPpQqR (2) PIP LST:=MYCHRS.OKI and you will be ready to print with the characters you have designed. SYNTAX: A>OKICHAR filename.typ If you do not specify "typ", it will assume the default "OKI". If the file exists, it   will be read in for modifications. If it does not exist, a new, blank file will be created. You will then be in edit mode. EDIT MODE INSTRUCTIONS: You will see a "box" on the screen, in which the character will appear, dot by dot. This bo" Choose one letter: HÍq§Íq×ÍqÍq]Íq.ÍqÍq»ÍqÍî2_ÍvÇÍ" :_þCʳþWÊPþPÊPþSÊšþTʺþLÊ•þRÊÉþQÊLþÊLÃüÍqÍqÍ}ÍÎ>2jÍ" ÃõÍqHÍqÍ}Í" Does the file contain lower case characters (Y/N)? ÍîþÊüx is eleven dots (or "pixels") wide, and nine high. As you will know from your Okidata manual, the character matrix is eleven by seven. Consequently you can use only seven of the nine ROWS at once. Whether it's the upper or lower seven depends on wheþY >2bÍ"Removing all extra spaces and carriage returns... >2j2kÃõÍq:_þWÂj§ÍqÍ}ÍÎÃ{×ÍqÍ}ÍIþÊüÍ" Removing all inbeddedÃEÍqÍqÍ}Í"Enter print control characters you want to remove from the file (use CTRL key), and pther the character you are working on is an ascender or descender. (The default is ascender.) You will be asked WHICH CHARACTER you want to design: this means, of course, the standard character whose ASCII code corresponds to that of the new charress when done: ÍþÊüÍIþÊüÍ" Removing all selectedÍ" print control codes:jþÊ­Í" and WordStar formatting codes:kþ­Í", including dot commandsÍ"... ÃõÍq.ÍqÍ}ÃõÍ}Í"Removing rubout characters only... !e6ÿ!õ"qacter you wish to create. You may choose any printable character (no control codes or space), for example %, or W. A list of as yet undefined characters is visible below for reference. (If you pick an already defined character, you will be modifying !õ"sõ*q|ºÂ}»ÌÊ~#"q2dþÊO2dþÿÊþÊÿÍþÊð:eþÿÊmÍ):pþÂ÷:mþÂm:eÍ—Í{:pþÊþÂ÷:d2eþÊ]ï2p:_þT¦:eþ Ê¢þ Ê¢Ö ú¦:o<þ£¯2o:eu*sw#"sþ¿2pÃÉ|ºÂÉ}»Ìèɯ2puÍÍ2p!u"qÉÅõÍ>Í2p!õ"1ÍvÍ" FILTER Version 4.0 Copyright 1983, 1984 by Claude Ostyn P.O. Box 2035 Sitka, Alaska 99835 (Enter ESC to exit) Í}ÍQ þÊ•Íì þÿÂéÍ" Can't find that file. Try again. ìÍ� þÊTÍ þÊTÍÍ}ÍsÁÉÍèþÂ÷>ÍÍ" File copied okay. :cþ•Í" One or more ambiguous hyphen was found and replaced by a "#-" pair of characters in the output file. You will need to use your editor to do the necessary correction(s). ÕÍ"Copy stopp  ed... Do you want to save what has been copied so far? ÍîþYÊþNÊLþÂ:>ÍÍ}Í" Terminated at operator's request - file not copied! Í" Copy another file? ÍîþYÊþNÊÓþÊÓÖ ú±Í" ñÍ" ...Program terminated. Ã>ÍÍe! Ã� Íö þÿÊÌ Í" Output file already exists... OK to overwrite (Y/N)? ÍîþYÊŸ þNÂO Í" Use another name for output file (Y/N)? ÍîþYÊ– Ãõ Í� þÈà Í" Deleting old output file... >Í>ÍþÿÀÍ" No room on this disk...Í" Try " Write error on output file... ÃÓ:jþÊ9:eæ2e!m6:_þRÈ:kþÌè:_þLÂeÍ1 :mþÂÉÍ ß:mþÂÉ:_þCÂ{ÍM ßþP†Í ßþT‘ÍÞ ÃŸþWœÍ ßÍ :pþÀ:mþÂÉ:jþÊËÍ! !m~þÂÉ:lþÂË6:e2f:mþÀÍÛÉ:g2h:e2gÉ:eþ. :fþ ÊûþÀ>2lanother disk (Y/N)? ÍîþYÊ# >É:þÊ3 >2>Ã8 >2>Í" This may not work if the new disk does not contain the CP/M system tracks... Insert disk for copy in drive :>Æ@ÍÍ": and press any key, or ESC to exit Íþ >ɯÍÉ Í>>2mÉþ  :lþÀ>2l2m>2eÉþ À:_þCÈ:gþ  É:eþ À!m:dþ ÊE 6É> 2e6ÉÍ !m~þÀ:`þÊŽ :eþ Ê, þ ʲ þ Êx þ Êx >2i:eþ-Êö þÊ$ þÊ$ É:eþ ÊÛ þ ʲ þ ÊÛ þ ÊÛ þ(ʽ ÍCþÌà ʽ :gþ ÄÇ >2`É2bÉ:e2a> 2eÍÛÍ{:pþÀ> 2eÍÛÍ{:pþÀ:a2eÉ:gþ-È:dþÍÉ>ÍÉë"!v6+6ë Í!v~ÆþÈ^#6*ë!w:xþÊ]þ:Â]!y:wÍ.þAÊZþB™Þ@~þÈþʘþ.Ê{Í.#xþÊ{Ã]å*ëá ƒ#~þʘÍ. ˆÉÍ" Bad file name, try again (or just RETURN to exit): ÃÍ" On which drive? ÍîþÈÖ@úþ-Èþ À>#2eÍÛÍ{:pþÀ>-2e>2c2iÉ>2iÃÛ :iþÊÛ :gþ Êm G!ðÍØþÈxþ Â\ :hGÍØþÈxþ Êm :bþÂm :gÍZþÈ!m6>2`É:iþÊÛ :gþÊÛ þ Ê  þ ÊÛ :fþÊÛ þÊÛ É:hþ.Èþ:Èþ?Èþ!ÈÃÛ :iþÊÛ :gþ Èþ ÊÛ :`þÂÛ :gþ ÊÛ > 2eÉ6É:eþ ÀÅ:oþÂî ¯G> 2eÍ—Í{xþÂîÈþÈÍ" That drive does not exist! ÃÙåÕ!> ¾ÂD#Â4>ÿÑáÉ>ÑáÉÍ" Should the copy retain the WordStar formatting codes, such as soft spaces, soft returns and soft hyphens? ÍîþYÂÎ!j6ÉÍ" Do you want to retain any dot commands found Á!m6É!¹Ã !Ï:eGÍØþÀ!mÃÛ !m:eþÊB þÊÛ þ ÊH þÊ< É> 2eÉ>-2eÉ:gþ ÂÛ ÉÍ„Í" Name of file to copy from: Í þÈ:þÀÍÙþÈ2ÉÍŸÍ" Name of file to copy to: >Í þÈ:>þÌÙþÈ2>Í*þÿÀÍ" Input and output files cannot be the sam in the copy? ÍîþYÈ>2kÉ!ÑÅåÿÍþÊlþÊpW!¹~þÊg#ºÂ:Õ^ÍÑzáwÆ@å_ÍáÁxþÊn#Ã#áÁÃ#áÁxÉáÁxþÊ#+6$>ÍÍ> ÍÍ>ÍÍÃ#þ ÈÅõæþ ʹþ ª>.Í:n<2nþ3ÂÕ>2n> ÍÅ3> ÍÂÆÁ> ÍñÁɯ¾Êëxæ¾Êè#ÃØ>É>ÉÅÕå¯ÿÍþÊñGÖ   úxÍ.GþÄxáÑÁÉÅÕåõ_ÍñáÑÁÉ㯆#ãÈÍÃ"þÈÅGÍCþÂ@xæ_ÁÉxÁÉÅG¯xÖaúVxÆ…ÚV>ÁÉ>ÁÉÅG¯xÖAúmxÆ¥Úm>ÁÉ>ÁÉ ÃÍ")ÉÍ"(Éu!6#|ºÂŠ}»ÂŠ! Í­!>6!? Í­É> w#xþ­É $$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$.:?!%|>]*_123456å7890L - Remove line feeds, and pad blank lines with a space. $C - Remove extra carriage returns and spaces (leave only paragraph breaks, "unjustify") $W - Change a WordStar file into an ASCII file $P - Remove all imbedded print commands $åS - Remove selected imbedded print commands $T - Replace tab characters (09h) with spaces $R - Remove any "rubout" characters (7fh) only (done automatically by other options above) $Q - Quit $Option selected: $ Remove all imbedded print commands $åS - Remove selected imbedded characters (7fh) only (done automatically by other options above) $Q - Quit $Option selected: $ Remove all imbedded print commands $ LBL1ACRS.BAS & LBL3ACRS.BAS These are two short programs for printing multiple copies of labels with a single address, you specify the number wanted by responding to prompts. They are set up for four lines ofS - Remove selected imbedded Copyright 1983 by Claude Ostyn input, if you only want 2 or 3 lines press the return key in response to the prompt, a blank line will appear whenever this occurs. USES: Make up a batch of labels for use in filing medical claims with the   insurance company or for rent checks etc. Make your own return address labels. If in business for yourself make reminder labels for your bills. Use to make file fol your local user group meeting, someone will be able to help. To line up the labels in the printer you need to experiment, it will help to run a few off on your regular paper to get some idea of the placement. While doing tder labels. LBL1ACRS: Set up for tractor fed labels 3 1/2" x 15/16", you can specify the number you want to print from 1 to whatever. LBL3ACRS: Set up for friction fed 8 1/2" x 11" sheets of 2 7/8" x 1" labels 33 to his also note the location of the printhead relative to the first line printed. The input lines are not dimensioned, all this means is that you shouldn't try to put a 5 inch line on a 3 1/2 inch label! Seriously, the reasoa sheet, these are the sheets that are normally used with photocopy machines. When prompted for the number of labels the reponse will indicate the number of ROWS of labels, e.g. a response of 1 will result in 3 labels, 2 will produce 6n for this is to permit using 3 1/2", 4" or 5" by 15/16" labels without the need to make changes. 5/24/84 Marje Pattison  labels and so on. On my Epson printer I cannot print more than 10 rows to a sheet although there are 11 available, the friction feed mechanism doesn't feed the last label row on the sheet. NOTES: The vertical såpacing is set up for 6 lines per inch and the horizontal for 10 characters per inch. If you need to make changes and are not sure what to do, load the program, turn your printer on and LList the program; take the listing to å  åarje Pattison : c2:�Û : P.O. Box 787, Sebastopol, CA 95472 :Rc<:�Û : 05/23/84 :—cF:�Û :...............................................:ÜcP:�Û :...å............................................:ícZ:�Û %ddHCL$ðÿ–()òÿ–() :�ÛHOME CURSOR & CLEAR SCREENJdnCLR$ðÿ–() :�ÛCLEAR SCREEN”dx˜ ÓC$(X,Y)ðÿ–()ò"="òÿ–(Xò )òÿ–(Yò ) :�ÛUSER DEFINED-DIRECT CURSORÑd‚‘ CLR$ :‘ ÓC$(,); "å...LBL1ACRS by Marje Pattison...eŒ‘ ÓC$(,); "PROGRAM TO PRODUCE MULTIPLE COPIES OF A LABELAe–‘ ÓC$(,); "WITH USER INPUT FROM KEYBOARDŠe ‘ ÓC$(, ); "The program has been designed for use with 6 lines andØeª‘ ÓC$(, ); "10 char. per inch åspacing and can be used to produce #f´‘ ÓC$( , ); "multiple labels for a single addressee or individual nf¾‘ ÓC$( , ); "single labels. Set up is for 3 1/2 by 1 inch labels,œfÈ‘ ÓC$( , ); "with tractor feed backing.ÝfÒ‘ ÓC$( ,); ÿõa :�Û .................................................;b:�Û : :�b:�Û : ...LBL1ACRS.BAS... :Çb(:�Û : Compliments of M"'Y' OR 'N' PROMPTS REQUIRE UPPERCASE RESPONSEgÜ‘ ÓC$(,) "Do you wish to continue? ( Y or N )4gæC$ ð Ý :‹ C$ ð " " Ï ‰ æigð‹ C$ ñï"Y" ÷ C$ñï"N" Ï ‰ æ :‹ C$ ð "Y" Ï ‰ €gú‹ C$ ð "N" Ï ‰ &‹g‘ HCL$»g�  :‰  :�Û ....LABEL   ROUTINE....Üg± … "LINE 1: ? "; N$çg"‘ HCL$h,± … "LINE 2: ? "; A$h6‘ HCL$4h@± … "LINE 3: ? "; S$?hJ‘ HCL$`hT± … "LINE 4: ? "; Z$kh^‘ HCL$†hh‘ N$ :‘ A$ :‘ S$ :‘ Z$µhr‘ ÓC$( ,) "Is this correct? ( Y åOR N )Òh|B$ ð Ý :‹ B$ ð " " Ï |i†‹ B$ ñï"Y" ÷ B$ñï"N" Ï | :‹ B$ ð "Y" Ï ¤i�‹ B$ ð "N" Ï ‰ %iš‘ HCL$Li¤… "HOW MANY LABELS DO YOU WANT"; NWi®‘ HCL$~i¸‘ ÓC$(,); "PROGRAM IS EXECUTINGŽi‚ I ð  Î N¢iÌ‹ I ï N Ï ‰ êÃiÖž :ž N$ å:ž A$ :ž S$ :ž Z$ :žËiàƒ IÖiê‘ CLR$jô‘ ÓC$( ,) "Do you want to print more labels? ( Y or N ) 5jþF$ ð Ý :‹ F$ ð " " Ï þdj‹ F$ ñï"Y" ÷ F$ñï"N" Ï þ :‹ F$ð"Y" Ï yj‹ F$ð"N" Ï ‰ &jŽ�j&‘ HCL$ :� N ) 5jþF$ ð Ý :‹ F$ ð " "ååååå  ÿõa :�Û .................................................;b:�Û : :�b:�Û : ...LBL3ACRS.BAS... :Çb(:�Û : Compliments of Mted.ôfÒ‘ ÓC$( ,); "'Y' OR 'N' PROMPTS REQUIRE UPPERCASE RESPONSE,gÜ‘ ÓC$(,) "Do you wish to continue? ( Y or N )KgæC$ ð Ý :‹ C$ ð " " Ï ‰ æ�gð‹ C$ ñï"Y" ÷ C$ñï"N" Ï ‰ æ :‹ C$ ð "Y" Ï ‰  ˜gú‹ C$ ð "N" Ï ‰ X£g‘ HCL$Ùg�  :arje Pattison : c2:�Û : P.O. Box 787, Sebastopol, CA 95472 :Rc<:�Û : 05/23/84 :—cF:�Û :...............................................:ÜcP:�Û :...‰  :�Û ....LABEL ROUTINE....úg± … "LINE 1: ? "; N$h"‘ HCL$'h,± … "LINE 2: ? "; A$2h6‘ HCL$Ph@± … "LINE 3: ? "; S$[hJ‘ HCL${hT± … "LINE 4: ? "; Z$†h^‘ HCL$¡hh‘ N$ :‘ A$ :‘ S$ :‘ Z$Ðhr‘ ÓC$( ,............................................:ícZ:�Û %ddHCL$ðÿ–()òÿ–() :�ÛHOME CURSOR & CLEAR SCREENJdnCLR$ðÿ–() :�ÛCLEAR SCREEN”dx˜ ÓC$(X,Y)ðÿ–()ò"="òÿ–(Xò )òÿ–(Yò ) :�ÛUSER DEFINED-DIRECT CURSORÒd‚‘ CLR$ :‘ ÓC$(,); ) "Is this correct? ( Y OR N )íh|B$ ð Ý :‹ B$ ð " " Ï | i†‹ B$ ñï"Y" ÷ B$ñï"N" Ï ‰ | :‹ B$ ð "Y" Ï ¤5i�‹ B$ ð "N" Ï @iš‘ CLR$ki¤… "HOW MANY LABEL ROWS DO YOU WANT"; Nvi®‘ HCL$�i¸‘ ÓC$(,); "PROGRAM IS EXECUTING­i‚ I ð  Î NÁ"...LBL3ACRS by Marje Pattison...eŒ‘ ÓC$(,); "PROGRAM TO PRODUCE THREE-ACROSS LABELS WITH" Ee–‘ ÓC$(,); "USER INPUT FROM THE KEYBOARD�e ‘ ÓC$(, ); "The program has been designed for use with 6 lines and Ýeª‘ ÓC$(, ); "10 char. per iÌ‹ I ï N Ï ‰ ÈiÖž åiàž N$ ; Ð) N$ ; Ð9) N$jêž A$ ; Ð) A$ ; Ð9) A$jôž S$ ; Ð) S$ ; Ð9) S$>jþž Z$ ; Ð) Z$ ; Ð9) Z$ DjžLjƒ IWj‘ CLR$™j&‘ ÓC$( ,) "Do you want to print more labels? ( Y or N ) ¶j0F$ ð Ý :‹ F$ ð " inch spacing and can be used to produce &f´‘ ÓC$( , ); "3-Across labels approximately 2 3/4 x 1 inch whichxf¾‘ ÓC$( , ); "come on 8 1/2 x 11 inch sheets without tractor feed. ³fÈ‘ ÓC$( , ); "Single or multiple ROWS can be prin" Ï 0çj:‹ F$ ñï"Y" ÷ F$ñï"N" Ï 0 :‹ F$ ð "Y" Ï üjD‹ F$ð"N" Ï ‰ XkNŽkX‘ HCL$ :� ) ¶j0F$ ð Ý :‹ F$ ð " Z$ ; Ð9) Z$ DjžLjƒ IWj‘ CLR$™j&‘ ÓC$( ,) "Do you want to print more labels? ( Y or N ) ¶j0F$ ð Ý :‹ F$ ð "   ååå10 CLEAR 20 PRINT CHR$(26) 30 PRINT" REFORMAT.BAS by Gobind Singh Khalsa":PRINT 40 PRINT"Is a program to reformat disk data files 50 PRINT" more to your liking..." 60 PRINT 70 PRINT"It is assumed that:" 80 PRINT" Records are separated by a åCR/LF combination, and" 90 PRINT" fields within each record are delimited by commas" 100 PRINT" and there are the same number of fields in each 110 PRINT" record. " 120 PRINT"Things get done in the following order:" 130 PRINT" Drop preceeåding & trailing" 140 PRINT" Find & Replace" 150 PRINT" Add preceeding & trailing" 160 PRINT" Adjust field length & truncate" 170 PRINT 180 PRINT" Find = will find all characters" 190 PRINT" Replace = DeletE will delete the field" 200å PRINT" Add Preceeding or Trailing = ";CHR$(34);",";CHR$(34);" will add a field" 210 PRINT:PRINT 220 INPUT"Hit to continue ";N 230 PRINT CHR$(26) 240 A$="":B$="":C$="":D$="":E$="":F$="":G$="":H$="":I$="":J$="":Z$="":Q$="" 250 DD$="":FF$="":LL$="  N":L$="":MM$="":OK$="NNN" 260 M=0:MM=0 270 PRINT"What is the full name of the file you wish 280 INPUT"to re-format ";A$:PRINT 290 INPUT"How many fields per record ";NN 300 INPUT"Modify only field # ";M 310 M=ABS(M):IF M>NN THEN GOTO 290 320 IF M<1 T must ":PRINT"be bounded by quotes (i.e. ";CHR$(34);" ";CHR$(34);" )" 520 INPUT"Specify a length for each field (Y/N) ";LL$ 530 IF (LEFT$(LL$,1)="Y") OR (LEFT$(LL$,1)="y") THEN INPUT" Field length = ";L:INPUT" Justified (L)eft or (R)ight ";L$:IF HEN GOTO 370 330 INPUT"Only if field # ";MM 340 MM=ABS(MM):IF MM>M THEN GOTO 290 350 IF MM<1 THEN GOTO 370 360 INPUT"Contains string = ";MM$ 370 PRINT"What name do you wish to give to the resulting 380 INPUT"output file ";B$:PRINT 390 IF B$=A$ THEN (LEFT$(L$,1)<>"R") AND (LEFT$(L$,1)<>"r") THEN L$="L" 540 PRINT 550 INPUT"All entries correct (Y/N) ";J$ 560 PRINT CHR$(26) 570 IF (LEFT$(J$,1)="N") OR (LEFT$(J$,1)="n") THEN GOTO 270 580 PRINT:PRINT:PRINT:PRINT:PRINT" Please don't interrupt untiGOTO 270 400 PRINT"Do you wish to drop:" 410 INPUT"Preceeding (Y/N) ";C$ 420 IF (LEFT$(C$,1)="Y") OR (LEFT$(C$,1)="y") THEN INPUT" Character (blanks are assumed) ";D$:IF D$="" THEN D$=" " 430 INPUT"Trailing (Y/N) ";E$ 440 IF (LEFT$(E$,1)="Y") OR l I'm done..." 590 OPEN "I",#1,A$ 600 OPEN "O",#2,B$ 610 REM INPUT SECTION 620 YY=1:OK$="YYY":M1$="N":M2$="N":M3$="N" 630 INPUT#1,Z$:IF EOF(1) THEN GOTO 790 640 IF M=0 GOTO 660 ' No selective field processing 650 GOSUB 1160 ' See if this is the s(LEFT$(E$,1)="y") THEN INPUT" Character (blanks are assumed) ";F$:IF F$="" THEN F$=" " 450 PRINT"Do you wish to add:" 460 INPUT"Preceeding (Y/N) ";CC$ 470 IF (LEFT$(CC$,1)="Y") OR (LEFT$(CC$,1)="y") THEN INPUT" String = ";DD$ 480 INPUT"Trailingelected field 660 IF OK$<>"YYY" THEN GOTO 740 ' If not, skip 670 REM PROCESSING SECTION 680 IF (LEFT$(C$,1)="Y") OR (LEFT$(C$,1)="y") THEN GOSUB 840 'Preceeding 690 IF (LEFT$(E$,1)="Y") OR (LEFT$(E$,1)="y") THEN GOSUB 870 'Trailing 700 IF (LEFT$(G$ (Y/N) ";EE$ 490 IF (LEFT$(EE$,1)="Y") OR (LEFT$(EE$,1)="y") THEN INPUT" String = ";FF$ 500 INPUT"Find & Replace (Y/N) ";G$ 510 IF (LEFT$(G$,1)="Y") OR (LEFT$(G$,1)="y") THEN INPUT"Find = ";H$:INPUT"Replace = ";I$:PRINT "If a blank is specified, it,1)="Y") OR (LEFT$(E$,1)="y") THEN GOSUB 900 'Find & Replace 710 Z$=DD$+Z$+FF$ ' Add preceeding & trailing 720 IF (LEFT$(LL$,1)="Y") OR (LEFT$(LL$,1)="y") THEN GOSUB 1040 'Adjust field length 730 REM OUTPUT SECTION 740 IF NOT (I$="DeletE" AND OK$="Y  YY") THEN Q$=Q$+","+Z$ ' Connect the fields to form a record 750 YY=YY+1:IF YY<(NN+1) THEN GOTO 630 ' If need more fields 760 Q$=RIGHT$(Q$,LEN(Q$)-1) 770 PRINT#2,Q$:Q$="" 780 GOTO 620 790 CLOSE 800 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT 810 PRINT"150 RETURN 1160 REM Is this the field to change? 1170 IF M=YY THEN M1$="Y" ELSE M1$="N" 1180 IF MM=YY THEN M2$="Y" 1190 IF MM=0 THEN M2$="Y" 1200 FOR X=1 TO LEN(Z$)-LEN(MM$)+1 1210 IF MID$(Z$,X,LEN(MM$))=MM$ THEN M3$="Y" 1220 NEXT X 1230 IF MM$=""  I'm done !" 820 END 830 REM SUBROUTINES 840 REM 'Preceeding' subroutine 850 WHILE LEFT$(Z$,LEN(D$))=D$:Z$=RIGHT$(Z$,LEN(Z$)-LEN(D$)):WEND 860 RETURN 870 REM 'Trailing' subroutine 880 WHILE RIGHT$(Z$,LEN(F$))=F$:Z$=LEFT$(Z$,LEN(Z$)-LEN(F$))THEN M3$="Y" 1240 OK$=M1$+M2$+M3$ 1250 RETURN +1 1210 IF MID$(Z$,X,LEN(MM$))=MM$ THEN M3$="Y" 1220 NEXT X 1230 IF MM$="" M=0 THEN M2$="Y" 1200 FOR X=1 TO LEN(Z$)-LEN(MM$)+1 1210 IF MID$(Z$,X,LEN(MM$))=MM$ THEN M3$="Y" 1220 NEXT X 1230 IF MM$="" :WEND 890 RETURN 900 REM 'Find' subroutine 910 IF I$="DeletE" THEN Z$="":GOTO 970 920 IF H$="" THEN GOTO 960 930 FOR X=1 TO LEN(Z$)-LEN(H$)+1 940 IF MID$(Z$,X,LEN(H$))=H$ THEN GOSUB 980 950 NEXT X:GOTO 970 960 FOR X=1 TO LEN(Z$):GOSUB 980:NEXT X 9å70 RETURN 980 REM 'Replace' subroutine 990 Z1$=LEFT$(Z$,X-1) 1000 Z2$=RIGHT$(Z$,LEN(Z$)-LEN(H$)-X+1) 1010 Z3$=Z1$+I$+Z2$ 1020 IF H$="" THEN Z$=LEFT$(Z3$,LEN(Z$)) ELSE Z$=Z3$ 1030 RETURN 1040 REM Adjust field length subroutine 1050 IF L$="L" THEN GOåSUB 1080 1060 IF L$<>"L" THEN GOSUB 1120 1070 RETURN 1080 REM Justify left subroutine 1090 WHILE LEN(Z$)CV20gh Khalsa uld think of ever wanting to do to a database. REFORMAT.ASC is the result. Instructions are in the listing. -- Gobind Sin d:FILE1.typ d:FILE2.typ in which FILE1 and FILE2 are the filenames of the files to be compared. Amenu of the commands available is displayed and these commands permit scrolling 1, 4 or 7 lines of a file at a time or continuous scrol  ling of one or both files. CV20 is designed for comparing ASCII files. However, files that include control characters may also be compared because non- printing control characters are displayed in the form of "[xx]" in which xx is the  2337 Marbury Road Pittsburgh, PA 15221 Robert J. King Þ£ªÁôôdîU|ê¶1ML^Õa9&ÄÙ•Ô ü)!Ï®,Î0!ïQ³6&\.Þ�™\YœA®8ä1˜÷‡Ïw&ïΈÁ{¼°©3!ô„Ÿ­Ó^XÙœ³Ebh– Ñ%ì;.oaÔEí† Ñ%ìcgÂå-ªš¨Ý0!º„}Û™py £ hexadecimal code for the non-printing character. Normally, CV20 is used in the following way. The first command entered by the user is the "C" command which causes continuous scrolling of both files and continuous comparison of the  ----CHEK--------ver 1.0-------02/02/83---- FILE CRC CHARS RECORDS -FOG/UTL.057 00 00 0 0 /UTL#057.DOC BB 0A 3584 28 CV20 .COM 24 98 1664 13 CV20 .DOC 3C 1C 1920 two. When a difference is found, scrolling stops and the differing lines are displayed. By using the 1, 4 or 7 line scrolling commands, the line pointers for the two files may be repositioned to move them past the code containing the di15 FILTER4 .COM 7E AF 5376 42 FILTER4 .DOC C2 C5 384 3 LBL1&3 .DOC 96 13 2560 20 LBL1ACRS.BAS D3 2E 2304 18 LBL3ACRS.BAS A4 02 2432 19 N20 .AQM E2 37 8192 64 fference. Then the "C" command may again be given to automatically search for the next differnce. In this manner, all of the differences between the two files may be readily found. Continuous scrolling stops when the end of a file is reacN20 .COM D2 F8 3968 31 N20 .DOC A1 39 2048 16 OKICHAR .COM 4F E8 1664 13 OKICHAR .DOC 7E BF 4864 38 PK .COM EF 68 1024 8 PK .DOC 0A 35 5632 44 REFOhed or when a key is held down for a few seconds. CV20 has been updated from CV to permit its use on most CP/M systems including both the Osborne 1 and Osborne Executive computers. Robert J. King RMAT.BAS B5 90 5248 41 REFORMAT.DOC 0E D3 1152 9 SAP40 .AQM 57 A8 8576 67 SAP40 .COM 6F 1A 1152 9 SAP40 .DOC 90 8D 2432 19   ¦0Mð§„1u>¦ ©,Lpê0˜]Â! &\ÞÂ£Ž >u>¦ ZR/Lh&À¨óÑ0¡8&WŒ:¸­ &ø`Ôùh˜°èuLH½ 2!õ‚Ê„Ô *ü)aÌF�gB Þߺe‚?%ŒÙ¨ó©[&´á3Œ:ïLa©&4`Ôùh˜àÔa0¡XÃ41M-õ^Öäí ÓÄÔb©jà¶60˜à‡Ï¨j¼3… ‹±Ì� ©Ÿ0˜Ð†Ï¨j¼3… N¢K8„Á„Ë[¸RÕ0Á瀪ÆGÃ„Ô š ¨j|4L(ŽÉ•ªnkƒ >T5>&,zD�R— F%ÛYÖXŨ Ï„ *¦E‹•f£ÑÒ˜pÙoQrõÓ…m³,Z,SɵX§Ó•5²Æ*NS7¶0!Ç&£âm¿2ƒ ‹æÓ•5âm¿2ƒ 9ž00•¨[7LXôˆe˜š5â••¨[7LÈñ„�ɨx•¨[7LÈñ„�ɨŒ$k¬LÈñ„�ɨØ5Vi&ÄËÅ¡äza,&¯êÄŒ²I¸ ©3ML%×®%#õ&£âm¿2ƒ ‹æÓ•5âm¿2C~é•m¿bÂ)Ž+`ªÛºŠQž !g &,zʦáå7b{]¥nëÊ„E�³gBÛ*"=ÂÏ� ‹/¨LH½ 2!õ‚ÊJsU㙃÷pŧn™àO c®j|ê– møŒªÆ;S˜p*� ÍT5>&8uL(Ö0ML“+©ñ©[qšº±YŒJ½�ág©¿‰ºuÃ41¹âS·Xôˆ0/LˆÁ{˜ g™�ú ƒ 9T&\ö[¸âS·LÈñ„Á„E�ó‚é>4IFüúÀ„èa0¡Ü2a9&„ù�bðæÂY&,Ç„0Â`B ÞÃ\8Ë„b ÓÄ4™ g¥èfR·O"®¤nšü}ØÓ?$­ÒÕˆ+©›P½eš˜Ì…³ˆ.áš —·0Î&Äèy0áòæÂÙd˜]Â! &\æÁ„V+*=bÌÓðòÉÁqšº±… ‹æÓ•5R/ŒeÂ)Ž+`²k¬RC|!Fex&D—p“Õõ� å˜.l›ÅÛp´â4ucKcBŽ'TLÙÆ"Q·n˜�ã S ñ…•/ë…±M¼]Í—LXôˆe®LÈñ„Á„E�X戩-Vjˆ/$êÖ Š5LÓôÕ/þø7¤ž ®¬iÝëE¢ö¦ÞJ3ÁlMBϵ7õ–it3r´ÑhiLSêÉÀŸqÆte�܇²HU5r.Lð§„<ÿ“·ýÊ ÑUÎòååâ¾dB“ÓÔ�•¨½=I3Á0¡ Ÿql&˜gÞÂ\8› ¢KØegÂeDÖaOLˆ.áÓ:˜pa.œM†)ë°'¸­ ¸vÏ„å˜æýï;bðæÂY&8upíž nk®Ý3!ïá{ªLˆÁ{˜ g™àÔÁµ{&Äà=JO• 1xsá,–cB˜÷ìLˆÁ{˜ g™P¬aš˜Ì…³ÉÀmm 2Ámm 3Ámm`0aÑ#옰â|ļGÍÚ˜àÔa0Á©Cf‚S‡Ê„b ÓÄä{ª(¡0¡„„ J(L¥§ŠÐë`BÈ ×‡Á„BLxsLÈ!0¡XÃ41MX‹.b·oŸ|ª?1MLSÉõÂØY†§©›&ä�‘™Ð†Ï8¾°©83¡XÃ41Mѽ^$joê­4ÌÖ䘂äTl4R“6‰Á{¦‰©™`à¶6P™à¶6�™à¶60˜ŽÍƒ¼Çç_}Ž)ä\dÑü$õB¾L=™/™àÔa0Á©Cf‚S‡Ê-� Ŧ‰iŠîõ"Q{So%u·9¦ 9�Ô¤Mbðžibza/R‡ÛÚ@e‚ÛÚ@f‚ÛÚÀ`:¾°©#ïñùWŸc 9Y4?I½�/SOæK&8uLpê�™àÔ¡2¡XÃ41M«z¯÷©_ÉZt‘Ý>nß>ùT÷¯~ñÇ¿1MLÓ¢G;KÔÅ…b¥mµèfR·�ibBZ±¬&FÅžŒíÙfYcý‰ibšp#õÂX©ÛºÚ"!çÂ4áFê…±òe½0¶‰·«ùR~™z2bT¿bšp–za¬Ôm]m‘–n­ü2uqáʶ_1M¸‘za¬¬±JȹØÖä—¿þµÔ cÛ¯˜&¦’ë…±Xô;/LHý„Á„E�Èó‚éʩۺÚ"!ç„ÔOLXôˆ8/LHý„Á„E�¨ó‚©Fù�Ô c›x»&,zD˜+¦+k$êÖ ´D&\ö[”\»–Œ©«2ÓÄ„ÔO˜ŒJÝÖÕiéÖ2aÑ#¼`º²F¢nÝ0!䌀iÙ¼IÎ_H½�&,zD�¦f£Ñ"Q·n$u˜–‹Š=¹Ð[Ò.«WÒ¬y`Zôh ="Ì š 'd&¤~Â`Bê'd&äxBe¢G„¹2AK@dÂe¿Å¢G[˜P¬a‚í9­LÓdOÉÈ}2Cl)Zd±­…+Ë´´+{JöqÃç˜ì)¹ýeê«–%˜¤=ø/eiWL¶œ’�S‡ŒéÊYÚ–cBœ]IÝ0!ïQ³6&øSBž—vufÂrLˆ³+©&Äà=jÖÆ4ÙS2³ÛŒ–Ô¯¤™_HèYŠ5[éLö” üðÍ„ø‚ Í Ï„b 0•ÓÒ®Îȇ<æCóuYBϲjY‚ùIâñæ kòö,kòöfgB®©LHý„�ɨ¬±2Ámm``jáhe�Uœ¦nla¢G„yÁteÍÓR?a`zzZc}zb¢GŒyÁôôr.OOLXô?LOOFex¦‰©äê–cB˜Ïa`º²F¬®G(Lh&œ�1µp´’ºÄЬX]™à¶6�1µp´’— !ç·µ��©…£•5V 9&D· ™¼LÍÉK��sa‚S‡ŒéÊYceBt Š ™ Zœ: LÃÿ&/a–l³ÆÊ„Ë~‹’k±Ó•±º2aÑ#Âì™r·‡�ɨt{2R·ue¢Gø90aÑ#Â<˜bÂ� ‹1æÀ„SWÀ”8ä1˜÷Ïw¦a½ƒ?%äyxÇ„å˜gWR7LˆÁ{Ô¬� 1x�ö"u&k˜†wȇ<æCó�ÒbQ{•5yÛ$4YÕ{½o?íLȇ<æCó!�ùÆ|=ïkòö,q„²Ï×ó¾&oo$ŽPv&äŠëy_·MҾχ<æCóõ|=ïÛ>_Ï×ó~¹Ï×LÈûY|êVZ,êý>ò˜aÌ×óõ¼§}¾ž¯çýÅ΄\q=ïoħn¥Å¢Þïó!�ùÆ|=_Ï»îóõ|=ï~gB®¸ž÷OâS·ÒbQï÷ù�Ç|c¾ž¯çýbŸ¯çëy;rÅõ¼Gí&õM·&-  õ^¾úJ†ú,Í…h¥†";rÅ!�ùÆ|=_Ï×óõ|=_Ï{Öû.F¥uû|Èc>„1ò˜a0!WìQZ,ê}“ªfÈš¼mµ›Ô7Ýš¿˜w&äŠ]¢..”Ô¯Ä +kò¶IèYšQçR¿’ûaû΄\qÈc>„1ï$§uµÅöh%5YuëùiŸẏ0˜�+ẏ0æëy£ÒŒ: =K±f+]ŒJt¯—� ¹â�Ç|c¾ž÷EŒJNÍùp!f¤&‹m-\Ù� ¹â�Ç|cÞƒ<ÈÇ—òîãËßÿðÙ�wïäŸ?¿{+ŸÉ÷Ï_|ñÙÛwòòçÏßýðngB®Øåë;¹{ RET ;..... ; ; ; Good read or write ; MORE: LHLD ADDR ;bump DMA address for next pass LXI D,80H DAD D SHLD ADDR LHLD DIRCNT ;countdown entries DCX H SHLD DIRCNT MOV A,H ;test for zero left ORA L JNZ DIRLOP ;loop till zero ; ûþîÕÝ»§� ¹â�Ç|c>ä1˜¯çݽº{ùR>{û£üéîGyÿ,ß?¿}ÿñíww;rÅ!�ùƼ¾3!7¼9 LÍ„øBB±�©™_ 7Ü0MLFÝ+ò=Œºº­˜ê¶®¶Hȹ0!ßã€)ŽPš¤.u[W[˜�+Îß`ªÛºJK·VR—f£ÑÒ˜�ï±ÆŠi�UBÎ…©ªYcE¾GUS·SÝÖÕ 9&ä{0ÅJ“Ô¥nëj rÅùLu[WiéÖJêÒl4Zò=–‹5VLk¬r.LÓr±ÆŠ\q˜÷Ó/þsqq±Ï&ä†ó5rÅ�ib2ê¼3ùF�; ; Directory I/O done, reset DMA address ; LXI B,80H CALL SETDMA RET ;..... ; ; ; Move utility subroutine ; MOVE: MOV A,M STAX D INX H INX D DCR B JNZ MOVE RET ;..... ; ; PACK: LXI H,0 ;I = 0 ; PACK1: SHLD I CALL INDEX OÝ2U5Þ™‚|�ªÆ§n™Œ: rÅ�©ªñÑ W˜Œ:�\±ŸÂŽ)ª×.&T&£Î§n‘Î7ß2U5¹b¿ù ;¦¨^»˜P™ªŸºEn8ß|ËdÔÕmEn8ó×›Ÿ}ƒéÍ ©ÛºÚÂTÕÔmEn8ó×›Ÿ}ƒéÍ ©ÛºÚÂ41M5k{kÒ&öq Æ6ùåÑ––´Ë·¿bš˜JŽÚa7œ™îKÔû¸á†É•Ô ìã†k¦¨½ØÇ ç3“:Ûa7œÆ½6 û¸áü S+q¬°�Ο˜Z‰£Ã>n8ËdKhöqÃùš©Ø�a7ܘîK2öqÃÍ™i /,ìã;HL = BUF + 16 * I LXI D,9 DAD D ;HL = HL + 9 MOV A,M ;jump if filetype not 'X$$' SUI '0' JC PACK2 CPI 10 JNC PACK2 STA J INX H MOV A,M CPI '$' JNZ PACK2 INX H MOV A,M CPI '$' JNZ PACK2 INX H ;set extent number to x L†›¦b;ì㆛_35“—û¸á榚µÁ>nøÓ+ì㆟Å!Lk¬7°�¾‰ƒi�Õž ìã†5Öç¦5ÖÒöqÃë‡_ß0ý×Â>n¸93-á……}ÜpsÃTl‡}Üpók¦fò`7Ü|ÃT³¶ÿEUÄb ÓÄdÔ�ƒM5k{kÒ&öq Æ6ùåÑ––´Ë·¿bš˜JŽÚa7œ™îKÔû¸á†É•Ô ìã†k¦¨½ØÇ ç3“:Ûa7œÆ½6 û¸áü S+q¬°�Ο˜Z‰£Ã>n8ËdKhöqÃùš©Ø�a7ܘîK2öqÃÍ™i /,ìãDA J MOV M,A DCX H ;set filetype to '$$$' MVI M,'$' DCX H MVI M,'$' DCX H MVI M,'$' ; PACK2: LHLD I ;I = I + 1 INX H XCHG LHLD DRM INX H XCHG PUSH H CALL SUBDE POP H ;loop until I > DRM JC PACK1 RET ;..... ; ; ; R we done? RZ ;yes, return past string PUSH H ;in case CBIOS clobbers it MOV C,A ;character to 'C' for CP/M CALL CO ;print character POP H JMP ILPRT ;continue ;..... ; ; INDEX: DAD H DAD H DAD H DAD H DAD H LXI D,BUF DAD D ead and write directory routines ; RDDIR: CALL ILPRT DB CR,LF,'---> Reading, ',0 JMP DODIR ;zero the write flag for now ;..... ; ; ; divide HL by 2 ; ROTRHL: ORA A ;clear carry MOV A,H RAR MOV H,A MOV A,L RAR MOV L,A RET ;.....  ÍCV.COM AS OF 09/01/84 $Ñ Í!9"~1~Í !lŽ Í0ÅÕå\ÍáÑÁ<ʬÅÕåŽÍáÑÁ<ÊÅÍÍsͼÍî yÍÃ} ?$Í&æ_þYÊWþHÊcþUÊ%þJÊ+þIÊ6þKÊIþOÊ1þLÊDþCÊoþQÊIþMÌsÃnÍžõÍÞñþÂèáÐÃÿ ++END OF FILE1++ $þ ¼ÉÍ¥õÍñþÂá a command should be entered. Press any key to continue $»\»ŽXXXXXXXXYYY¸;1:  ÍÃn ++END OF FILE2++ $þ ÂîÉͼÃnÍîÃnÃ8ÅͼÁÂ8ÃnÃKÅÍîÁÂKÃnͼÍÊWÃnÍîÍÊcÃnÍÂnÍžõÍÞñþÊÊõÍ¥õÍñÁþÊü¸ÊoÍõÍ&Ãn!€ͧÉ!‡ͧÉÍ;++CAN'T OPEN FILE 1++$Í;++CAN'T OPEN FILE 2++$å*¯w#"¯áþ Êõ:³<2³ðå:³G!µ2: »\»ŽXXXXXXXXYYY¸;1: Í@!¸"¯¯2³áÉå*±w#"±áþ Ê&:´<2´ðå:´G!8Í@!;"±¯2´áÉ~ÍY#Â@+~þ È> ÍY> ÍYÉþ Ê�þ Ê�þ Ê�þ ÚrþÚ�õ>[ÍYñõÍšÍYñÍžÍY>]ÍYÉÅÕå_ÍáÑÁÉæÆ�'Î@'É^#V#N#Fx±Âö#~‡G#å~#fo>ÕåÅÕåÍáÑÁÑÅÕåÍáÑÁ·áÂë}Æ€o|Îgë½á+~+w+++ç#~ë„g}‘o|˜ MOV D,A MOV A,L CMA MOV E,A LHLD SSORTV1 DAD D JNC NOSWITCH INX H SHLD SSORTV1 LHLD SSORTV3 XCHG LHLD SSORTV2 MOV A,E SUB L MOV L,A MOV A,D SBB H MOV H,A SHLD SSORTV3 JMP COMPARE ;..... ; ; NOSWITCH: LHLD SSTADg~ëþÈ +p+qÉ*""*ÉÅÕåÍáÑÁ·ÉÅÕåÍáÑÁÉ~# x±Â0ÉÑ ÍN Í*~ùÉ COMMAND FORMAT: CV20 FILE1 FILE2 $ ÍÍ&É CV SCROLLS TWO FILES AS FOLLOWS: FILE1 CHAR FILE2 CHAR FUNCTION U J 1 LINE SCROLL I K 4 LINE SCROLL O L 7 LINE CV2° ió aî updatå oæ CÖ oî FOG/UTL.010® Iô ió useä tï comparå twï � fileó  bù alternatelù displayinç theí oî thå CRT®  Placå thå disë � containinç  CV20.COÍ iî drivå Á anä thå twï fileó tï bå  compareä � iî  eitheò  drivå Á oò B®  Givå thå  commanä  A>CV2°SCROLL Y H CONTINUOUS SCROLL -- HOLD SPACE BAR DOWN TO STOP C SCROLLS BOTH FILES CONTINUOUSLY, COMPARING THE FILES AND STOPPING WHEN A DIFFERENCE IS FOUND. Q TO STOP AND RETURN TO CP/M M TO DISPLAY THIS MESSAGE A ? is displayed when  d:FILE1.tyð � d:FILE2.tyð  iî  whicè FILE± anä FILE² arå thå filenameó  oæ  thå � fileó  tï  bå  compared®  Amenõ  oæ  thå  commandó  availablå  ió � displayeä anä theså commandó permiô scrollinç 1¬  ´ oò · lineó oæ � a file at a time or continuous scrol  ling of one or both files. CV2° ió designeä foò comparinç ASCIÉ files®  However¬  fileó thaô � includå  controì  characteró  maù alsï bå compareä  becauså  non-� printinç  controì characteró arå displayeä iî thå forí oæ  "[xx]¢ � iî  whicè  xø  ió  thå  2337 Marbury Road Pittsburgh, PA 15221 ludinç botè thå � Osborne 1 and Osborne Executive computers. Robert J. King  hexadecimaì  codå  foò  thå  non-printinç � character. Normally¬  CV2° ió useä iî thå followinç way®  Thå firsô  commanä � entereä  bù  thå useò ió thå "C¢ commanä whicè causeó  continuouó � scrollinç  oæ  botè fileó anä continuouó comparisoî oæ  thå  it.) If you are all done editing characters, hit RETURN here, and the file will be saved to disk. Otherwise, type the character you want to design. You may then DESIGN the character. Note that your cursor is now inside the box. You can move ittwo® � Wheî  á differencå ió found¬  scrollinç stopó anä  thå  differinç � lineó  arå  displayed®  Bù  usinç thå 1¬  ´ oò ·  linå  scrollinç � commands¬ thå linå pointeró foò thå twï fileó maù bå repositioneä � tï  movå theí pasô thå codå containinç thå di around with your "arrow keys" (see below). The space bar will toggle the pixel you are pointing to ON and OFF. Thus you can build up the pattern of dots that will form your character, such as: +-----------+ fference®  Theî  thå � "C¢  commanä maù agaiî bå giveî tï automaticallù searcè  foò  thå � nexô  differnce®  Iî thió manner¬  alì oæ thå differenceó betweeî � the two files may be readily found. Continuouó  scrollinç stopó wheî thå enä oæ á filå ió reac |* * * * * | | * * | | * * * | | * | (etc) There are several "special" command keys in this mode;heä  oò � wheî á keù ió helä dowî foò á fe÷ seconds®  CV2° haó beeî updateä � froí CÖ tï permiô itó uså oî mosô CP/Í systemó includinç botè thå � Osborne 1 and Osborne Executive computers. Robert J. King  a reminder of them is visible below for reference. These are: R,L,U,D - move the whole pattern Right, Left, Up, or Down; A - toggles between Ascender and descender character; Z - ZAPS the whole pattern bla  nk to start over. When you have the new character looking the way you want, you may save it by hitting RETURN. This brings you back to the first prompt above. Note: if you hit an illegal key, the bell will sound. This includes using an arrow keyV#ë"$ë~#fo:ÍÕÉ2+*GÍo!"&*A#Í?Í?"!"*&#ë*:ÍGëÒS*(#Ío!Íx*DMÍm:+·Â�Íp·Â„ø"(DMÍgÉ"&DM*$ë ÍyDM:*·ÈÍjÉÍs·Â«øÃã~#ã·ÈåOÍUáß)))))É*€"*+"|µÂ:€ÍmÉ~#ÂÕÉ!"Í® ~Ö0Úþ Ò2#~þ$ to go beyond the bounds of the character. It also includes trying to save a character that violates the peculiar Okidata rule that no two adjacent pixels in any ROW may be ON! If at any time you decide you have messed up, and wish to abort withou#~þ$Â#:w+6$+6$+6$*#ë*A#ëåÍGáÚáÉÍŸ ---> Reading, ÷|g}oÉ:\=òSÍOÍd:*·Ê¹Ãþ¯2#ÍŸSorting, *#"8!".å! ",å*8Í?"8}´Â˜ÁÑÉë*#}“o|šg",!"0".-ÁÅ x±Â²"2ëÁáåÅ"6"4ëëÁÅæÅõ~æGñ�ÁÂæ# x±ÂÌÃ$Ò$>2#ÅFwx#Á x±Âî*8t saving anything to disk, type control-C. Once you have some character files on disk, you may send any of them to your Okidata printer with the CP/M PIP utility: A>PIP LST:=filename.typ In fact, you can later change t|/W}/_*0Ò$#"0*4ë*2{•ozœg"4ÃÊ*.#"."0ë*,}“|šÚ‡*6ÑÕë*2ëÃÁ}“o|šgÉ:#·ÂrÍŸ(Previously sorted) - ÃÍŸWriting, >ÃÍŸ++ READ ERROR - NO CHANGE made ÜÍŸ++ WRITE ERROR - directory left in UNKNOWN condition ÜÍŸ SAP 40 not useable o a new alternate character set by just PIPing it to your printer to take the place of the first. (Note: if the new one has any "undefined" characters in it, the previous character set may "show through" if those characters are printed.) TECHNICALwith M/PM or CP/M 3.0ÜÃÍŸ++ READ ERROR - NO CHANGE made ÜÍŸ++ WRITE ERROR - directory left in UNKNOWN condition ÜÍŸ SAP 40 not useable L*5ÍÕ1þÍŸ SORT AND PACK DIRECTORY v40 09/17/84  Í|·Âè}þ#Òè2*ÍGÍ(ÍlÍaÍÞÍNÍŸDONE Ü!"Í®~þåÊž ~·Â§##~æ_#~³Â§*Í®#~+þ-ʧ 6å#  *A#ë*#åÍGáÚoÉ*.>Ã2yå"zá:^#ë":ë^#ë"Aë~#2<~#2=^#ë"?ë^#ë"Cë^ë"GÉ^#å  åhabetized listing. 2) Eliminates potential problems with "UNERASE" programs by removing programs with a similar name that have been previously deactivated. 3) Speeds up access via 'SD' and other special programs. 4) Assists on working directåly on the disk with 'DU', etc. 5) Removes files from the disk directory that somebody else could recover. (The data is still out there somewhere). TO USE: A>SAP40 B: B: in this case indicate the desired disk to be sorted a SAP v40 -- SORT AND PACK CP/M DISK DIRECTORY -- 09/17/84 This CP/M utility reads the disk directory tracks, sorts the entries alphabetically and then rewrites them them back to the disk. All unused or erased areas on the directory tracks are rnd repacked. If not included, the logged on drive will be sorted. ======================================================================== 09/17/84 Added 'Previously sorted' statement that was included in v37 v40 but got droeformatted with continuous 'E5' characters. This completely removes previous file names from the directory which have been deactivated. All files of zero length are de- leted with the with the exception of files beginning with "-". This supports labpped from v38 when the Shell-Metnzer sort was put in. It still rewrites the directory even if previously sorted, to insure erased programs at end of directory are properly cleared. - Irv Hoff 07/27/84 Corrected sorting of last directoeling disks for the catalog program MCAT.) The program works with CP/M 1.4 and CP/M 2.2 but does not work with CP/M 3.0 or M/PM. Sorting the directory in this manner offers many advantages. Some of them are: 1) Allows 'DIR' to show an alpry entry. v39 10/16/83 Now using a Shell-Metzner sort which speeds the sorting time v38 considerably, especially on large directories. (SFK) 07/27/83 Shows an error flag for MP/M and CP/M+ both. Rewrites the v37 directory even   if previously sorted, to insure erased pro- grams at end of directory are properly cleared. - Irv Hoff 1977 Written by L. E. Hughes. Modified extensively since by Bruce Ratoff, Keith Petersen, James Prest, Ron Fowler, Frank Gaude, Sigiå Kluger, Irv Hoff and likely others. ======================================================================== ten by L. E. Hughes. Modified extensively since by Bruce Ratoff, Keith Petersen, James Prest, Ron Fowler, Frank Gaude, Sigiåååå DETAILS: OKICHAR was developed on my Osborne Executive, and should run on any Osborne, Kaypro or similar computer with no modification. First, your terminal or computer must support two ADM-3 standard control codes: ^Z to clear the screen,å and ESC = to position the cursor. Otherwise you will NOT be able to use OKICHAR, sorry. Second, you need a set of four control codes to function as "arrow keys" to move your cursor up, down, right, and left within the box. The defaults are the C  P/M standard (^K, ^J, ^L, and ^H, respectively). If a different set would be more convenient for your machine, you may change these using DDT or SID. The addresses are 0103 (up), 0104 (down), 0105 (right), and 0106 (left). r machine, you may change ext TrackT Select TrackU Previous TrackX Exit from Superzap6F Exit to File List6K Select Block Current-Track Current-Sector 2Current-Block  # 7 NCPSDTUXFKA ¤ m ˜ F m  kM@ DPSI!ªÍ*nÍx!­Í*pÍx!°Í*rÍxÉUBLKí Sector(C Change SectorP Previous Sector(F Select New FileB First Sector of File(S Select SectorE Last Sector of File(X Exit from Superzap File-Name Access $Current-Sector 5File-Offset d:filename.typ R/s ) 7NCPFBESXÃ^à ÃNÉqÉ:VóÓN>ÓûÉ:VóÓq>Óûɯ2;Íš>PK  !€6'ëÍ!�~·Ê<2€_6> Í“:€Ã 1Íš PK 1.3 - E.Meyer - 07/84 :222"2'2·2%:€·Ê*þÚ€!‚~þ#Êí:ƒþ:ÂîÛ2UÍÎG>‡ÂÁ2V*}´ÂÛ* ÍŒ"S" " Í`!„Íé2k#Íé2j#~þ+Â! x I MTnžk’DRMD:Õ2ë¯/2‡!]^6  í°Íð:‡·(ÍÈ!˜Í!—ÍÍh¯2‡*¯|µ !RÍ(Í(*¯ÍͰ!"¯:ÒÍÔÍuÍŽ!6Íá(Ͱ@Í÷:×þD Ã0É^H Cursor left^L Cursor right^K Cursor up^J Cursor downS Select FileX Exit from S #Íé2W#~þ=Ê·ÊfÀ#Íé2Y>ÿ2X#~·ÊfZÕÍéÑëw#ë:i<2iþÊG#~·Â,:iG=2W¯2X*jë!YN#ëÍ #ëÂZ:VþÿÊ…Íš[Bank :‚͓͚] *jåÍÃÍš: áå}æ·Ê¸õÍš :l<2l:o=2oñ=Ùá:Wÿ2n}æþÌtÁ#ÂÁ:uperzap6C Change Drive6P Select physical sector  SXCP>¥Wq‹Ïk‹a** No records in file ** File not found ÊPSMD:ÖOÍ'Ií°*SYí°í[YíKfÍ å"l:\_íSjíK^Í Ñí[YëíKYÍ+íShÍ$!"n"p¯2¸2¹2ºÍÈ!˜Í!­Íl_}æÊ“2o>ÿ•æ<2mÍt:VþÿÊ5:UÓÍ`! "!" Íš Ã>ÿ2V>2o>2i¯2W2X2l2m2nÃ.*SNwy#ÂhÉå:m·Ê‰õÍš ñ=Ãx2m:l·Êžõ> Í“ñ=Ã�2lÍš >!p:oG~þ Ú»þÚ½>.ÅåÍ“áÁ#°Íš< >2oá:n·Àå#ÍÃÍš: ápÉ#Íé26#~·Êþ=€#͉Í?ÍÿÍÖ¯2¸2¹2º:ËÍ×!ËÍÍuÍŽ2Æ!³Íá(Ͱ¾Í÷:×þP à Éá:7=<2ê;Ä�¯2ê;Ã,!”,Í-!˜,Í-*:|µÊN,>,ÍÖ Enter Hex Track Enter Hex Sector 2Enter Hex Block N Next SectorC Change SectorP Previous SectorS Select SectorD NÍé24#~·Â€>>23>Ó25!<-"/ÍšPort :6ͲÍš -> ÛͲ> Í“!"3>Û25!->"/Ã5ÿÍš ??Ã}“o|šgÉ_ÍÉ㯆#ãÈÍ“ÚÆ0þ:Ú“ÆÓõæðͦñæͦÉå|Ͳá}ͲÉ~æÊ€þAÚÝæ_ÖÖ0ú€þÒ€_ÉÍÎ#õÍÎñƒ_É  ͰÆ Í÷:š·(Í¿Í÷:* · Í! ÍôÉ^H Cursor left(^L Cursor right^K Cursor up(^J Cursor down^I Change Side(CR New Line^Q Cancel changes(^Z Save Changes Ú .Dl‡”LEFT:›· :³=æ2³:š· :›/2›ÍbÍJÉTOGassembler, it takes only 1K of disk space. It allows you to examine or change the contents of any location in RAM. You can also read or send a byte to a hardware port. PK output will echo to the printer with the CP/M ^P toggle. Here is a briL:š/2š>2›ÍbÍJÉDOWN:³·Ææ2³ÍbÍJÉUPWD:³·Öæ2³ÍbÍJÉRGHT:šþ :›/2›:›· :³<æ2³ÍbÍJÉNWLN>2›:³·Ææp2³ÍbÍJÉCHND>ÿ2* 2+ ÉQUIT>ÿ2* ÉSFSN*À"Â!ãÍ!"À"}Í!:òÆ2[:ñ2ZÍJÍuÍŽ!SÍá ë*À))))"À"}¯-þ !"À"}þ !Á¯ígef summary of PK syntax ("[]" = optional): A>pk or A>pk [b:]aaaa[+nn][=vv] or A>pk [b:]aaaa=vvvv.... or A>pk #pp[=vv] Use only valid hex digits 0-f, and specify ALL digits, even leadin!Àíg*À"}þ (Ͱ:Æþ ˜*À"ÄÍ\:¿·(Ͱ*Â"À"Ä"}Í!Í?Í!> 2Æ!¸ÍÉFRFS!"}"À"ÄÍ\Í?Í!ÉLSFS\#Í*}+"ÀÍ\Í?Í!ÉCHDR!Í(!Í>ÿ2‡ÍuÍŽþ NÖAõ!%Í(ñõOÍ'|µ ñͰ5ñ2Ö<æ2ë2Õ Í:Ö_Íí[»Í:Õ2\>2ÒÍðÍM:×þD(�Ég 0's, or you will get a syntax error. The "b:" parameter in the above examples is used only on systems with banked memory; see NOTE below. Typing "PK" alone, with no arguments, invokes interactive mode. You will receive a prompt, ">PEnter Drive Name or press ESC ===>** No files on drive -:Ò=æ?2Ò;þÿ î:ÒÍÔÉ:ÒÖæ?2Ò;þÿ í:ÒÍÔÉ:ÒÆæ?2Ò;þÿ í:ÒÍÔÉ:ÒÆæ<2Ò;þÿ í:ÒÍÔÉ:Ò<æ?2Ò;þÿ î:ÒÍÔÉ!Ï:Ò¾ÚÊ>ÿÉSTFL:Ï· Ͱ!n"¯Z:Õ2\:Ò&o))))í[½] í°¯2hK ", following which you may enter any of the argument forms discussed below. Standard CP/M line editing is in effect. Enter ^C or a null line to exit. I. PEEK: Examine memory locations You can examine anything from a single byte to a  PK.DOC ------ Documentation for PK.COM Version 1.3 (c) 07/84 E.Meyer PK.COM is a handy PeeK and PoKe utility for CP/M. Written in 8080 full page (256 bytes) of memory. There are two different formats: (1) To examine a single byte: A>pk aaaa (2) To examine many bytes: A>pk aaaa+nn Examples: PK 003B shows the value at address 003B. PK 0600+4F shows all bytes   from 0600 to 064F. PK always displays the requested location(s) in hex and ASCII: A>pk 005d+07 PK 1.3 - 07/84 - E.Meyer 005D: 30 30 35 >005< 0060: 44 2B 30 37 20 7Ò4vŽæ:й3ç:Cy•Åž\§u°Ôøü҇ k|ý…(8W»ÊQÞÑMî_êî’Líã´²?RÞQ•Ådj÷B7u•ѹٟ�WéAXãû/D>.ò9vtWÛØÑ�Ï ª²˜Lí^ÈåE¼ÎÍ�[Sšï­!§ù{a�?~!Š}p±£`-ÝÕ6v”ßÑ·Øçdãî²Êè/ñ*�›Šª,w1¹*øªî.…5èþß7u•Ñù—sºË=¥¡ 6¿¤½‹é¦®2*‚«i¨~ÖÂ÷þB]™¨�Þ©Žž(+w;ºùãî.ÖÂú‡ûKa-¬éâO¯g?½þú•(,jAçM¤žÚò4 >D+07 < Of course 005C is the address of CP/M's first FCB, so its contents were simply the argument we gave on the command line with PK. II. POKE: Change memory locations PK also allows you to poke desired values into memory. Thli(£D-ÎiH¦D=«>¡äjJèÝ4PÛo¶§…ZPÛÓÓ矄5=}½ û÷o§„®Ë„Qùð ´‹Êgzúü+½»R=%WŠÜ•Ún¿*éW e”лi ‡S"¬A÷nûQ�Ð�´Û-Eê]Ô&j äJÑ¢�Ô&)£GROª§vG‘zjËÓ°}Ö û?e”¨ÅHIIm?œ"E*šµ ‡¨¼Ž¦ç�¦„T¿ rG‹6R›¤ŒiŠ”°Ýÿù!*T´}¤ÍVM‘Z€/TGO”•»�°ÖtñÓëñ§×_¿¥e©M¢4”QÒö×Tîh; -ÚHm’2z$Õ'ÑãAvÿ½SAP40.ASMYöÿ ßÿõÿòÿšÿÄÿ»ÿ³ÿ¬ÿ­ÿ¾ÿ !"#$%&'�ÿºÿ‹ÿ¼ÿ·ÿ°ÿ²ÿ�ÿ«ÿ¶ÿ¯ÿ–ÿ±ÿ‘ÿŒÿÓÿžÿ©ÿ()*+,-./0123›ÿÅÿ§ÿ½ÿœÿ“ÿ™ÿªÿÑÿÍÿŠÿ456789:;<=>?@ÎÿØÿÏÿ¸ÿ—ÿ˜ÿ¨ÿµÿ¹ÿoÿ�ÿ†ÿ‰ÿ’ÿ´ÿÐÿXÑÓç?îÿü…nr#¬…5�]¼žýñúëg¢®|G§¡í¯i"w¥¶Û/…J~ïUDC%ôîªÝ\Ñð Ôb äJÑPFIÛ_SÒ>+aMDOŸ¥û÷›²Ú…Ц·íãHjxP›vÚn©ìi;E׊m¤6Iµj8Ð_ÜÝË/ÂZXÓÅO¯ÇŸ^ýLä®ÊwM=©(*#Úm§kÚ•ÍkAS¿ ´y->Ò[™\ˆ¼zµ‰(¹Ršˆž>ÿD÷ïm¤6I=’zR=µ;zˆÔS[ž†í# e”¨ÅHIIm?œ"E*šµ ‡¨ü"¬A÷¾Ž¦ç�¦„T¿ rG‹6R›¤Œ�ÿABCDEFGHIˆÿúÿ®ÿÔÿ”ÿÌÿÒÿËÿ¥ÿÊÿJKLMNOPQÂÿ¦ÿÈÿÛÿÖÿÇÿ‡ÿ…ÿÉÿRSTUVWXÆÿûÿ×ÿÝÿ•ÿÕÿÁÿÜÿŽÿùÿåÿÃÿÀÿÿþš\hèéë}ùB.÷…ÎPÒJ›×‚Lí^ÈÔ>N«ÜÿH_¾ÐÅŸ^Ï~zýõ«°ÖTeµ£Æç—>äã`UYL¦v/dj§Uî¤Ê‡ôÅ�är_9ª²¸ `›,¬ãªNƒµ? kª²¸#76¤±£*‹ Ê;ª²˜Lí^DÁZÚw{Ê=Å>¸ØPðqiŠ=D僊¶�´Ùª)R‹ƒ°Æýû/TGO”•»�°Ötö§Ÿ~ÂMÔ&‰êéí‘ì�âe§ë+5ˆŠrÑîZµ õ[¢ú¡}RÛGÚ~£èí‘ÖÑi£„5ü””»ÝH/ªM®¨Q‰ŠÕ�t;=«�šH ÉH¾ìé®|·UÑHwÑÔ¢Ëé´P£°†k¯[zÙž®U4R=QVîv4õ Ú¶ŸÔö‘ÊäJEÃAX ëî/…µ°þ1vKÄö¸¸»Ë„»|‰øÃÂZxmr·Düa�‹‹‹ï™pê—ˆ?ìqa2aÓ¬mÜ-Øãì; ‡öwEåŽÒæµ ãáH‹vøDS4=«DEôp”wTe1™úËaM>N«ÜÿH•é “�ïr_„ªŠ ÝÔUFiÞUu·Ï÷ŽÎãïç”fÁ‡´Š½;ý¥Êj'¬)öÁÅŽÏu¾wtWÛ˜ºPÄŽn²:Í( sLë8îÈÄ!­ê9T±9üBär_ÕÝ%UY,¬ÉÔ>N«ÜÿHuGUV;*B×Åžò»»Ø;*B÷#3‡® —±;¹¼ˆ)¿£*‹ >^ ka�³_ˆ‚µù�£sSûsªrrY~C¡£`›,¬ãªþ²µ«êîRXãø Qlë¢îB;jò*îª:Xj|¾¶qá覮2ú뾋}pñ_©ñù¥…Öøü ‘kâØ8Ú¶-7Ÿ„ïÒõñ‡=¾§™ðe\÷²Düa�ãw@¯Mîè¯×*¡E;|¢þ•v§~“´e/lï–ˆ?ìq2a[ãç%â{œ}ô ¶j“Ð"jŸ”ðû._"þ°ÇÙÐQùÔ.Ô@ióZÐ“Š†¶ì©?=¿©HX kaäþg™°Öšò·dj{Z×¹£'µIÊhÖ—q5ÇévUÃŒ7ë<¯„a3kpqqq– £˜k¬Ç‘kQäs,¬…]|µ„]ÕpÍèª�¾@ŸEå)¢ò]OC2m> # Ö¢¶�¯„aÖHýhïÆs—ûŠBg¨ é ™ÚÇi•ûééë]üé  õì§×_¿ž�©íÝx!Œb®‘Žsì»Л+µùD»2¢´y-èIEt<…‘k±6¹F‘Ïcèì‡3Ú•M!ŒÜaÜvßP4Å�±´ú­M¨ÝQÑ#½S´™úó„Nƒ¢6F‘Ï£tf麸83jw”6¯=©ˆŽ‡£0Ò¦Æñ˜}<ôæJm>Ñ®Œ¨h *#J›×‚>.„qÛ¥(šâÇØZýÖ&Ôî(m^ ú|¸é�¢ÍÔŸ'tTDm" W̱¿³—€’2R”\)zRÑЖ½°ÖÂú‡ûKa-¬SÛÓCT^GÓ3Eå)i{%¬…õ÷—ÂZX »ÐÔÝ ™0Viv) —Yã a¬ÒìRE>#Œ…0ên…L® X»LE>#Œ…0ên…L® XÛBE># aÔÝ ™0Viv) —Yã a¬ÒìRE># aÔÝ ™0Viv) —Yƒ`/„±J³KaùŒx,„±J³Ka¸Ì¸]å_„áãJXîß ka-¬)m^ :Ž•§¤í•°N›âx\¢ÈgÄc!Œº[!F‘Ï0c!Œº[!Æ*Í.…á2kàã´Z[a¬ÒìRvUÃŒ¿ºÜí•PR’iÖô®M®Úž®Ô´P‘0L00€ŽTrŠzµ ·GÔv1|¢¶§´y-èx,‘káâjß# ÖÂS{a¤ÁZ¤6�0Ò`-\î+a¤ÁZ4!}F¬Å�7µF¬Em_ ìqnò.>S?Ú»ñB·EƒxUWÂúpÿ^X kaýÃý¥°ÖÜé-*OIÛ«AX ëî/…µ°Nmº%ìªF6^º¦èBX §¶³y³„ˬA-Œ4X‹º3ñ Й¥h½¿£�töý�jaùŒ0€þÛéù�Ú%Wí@í@-ÔV%jA»v«„‘65.âï™0n¿á®¶öçø»0쪆ÏŽÂ0ÁÀ:³ôe–>ÒÙQE>#Œ 7Wjó‰Ôo‰êÚµj»F8 £Èg„±ôµJhZD‘*wdšµ0ên…LE># aù ;aØU 3šf 臲íJJZ¨!QCÒöSÒ–ý’ÊSD¦Y £˜k¬GÓ¬mÜ # Ö¢ÈçX>®„õáþ½°ÖÂ&7µ_ÂU7þΆKaØÌ¸]å_„‘kaòʇ@*¡äJQM›O°«Ùx! —Y§¹7°™50¾tz~S•;Z´‘Ú$eôHªO¢V ¨»2@Gj;%í“¢¤¤3a¤ÁZø¼ò™ô¢}jŠÞé«0Ò`-|^ùÌúpHJºV EjSF Ú”§>†Ë¬�©}ÚU°î‚0n»oHíz_4€>µÔî¨/R¿%ªOèBu·B臲íJJŠÔ¦Œ´)O}B»Vm¨»2aùŒ0€¾V ¹#½=&Šþ¢~KT¿P òé/Â]�‹» ЇîŒ(m^ :Ž#]ЮŒ(m^ :;|F‘ÏˆÇ Œº[!F‘ÏcèÍ•Ú|¢HmÊhA›òÔ'´kÕv!ŒÜĸí¾!µë}Ñúo§çjwÔ—ý—ßUT ÃfÖ ôf«¦ˆ¦í–>éí1Q•;a¤ÁZÔ�‰W€>m¤6I=’ê“è‘’’â層2aùŒ0€¾V íÚhHhs5«Ù¸Þß ÃeÖ ã½+#2E i±ˆÔ0kaS{›7KØÌø8ͽôµJ(R›2Z ô "J¢ióIu·B&ŒUš] ÃfÖÀ5 7§(R}B‘Ú”ÑBi°n¿61 ‡HmÊhA_È5•0Viv)ŒÛ.E—W>Ÿ…µ°ÖTEÓæ•O*ÚmËw#½�ž()©W¿%ÂZ6³•é‹0ên…Li°&¯|x†]ÕÈÆ3@Gê]Û/(R›2ZPz~S‘°îòÊçói°&÷q èA%´9E‘êŠÔ¦Œ°™5ÆxaùŒõ˜zP �È�¦Å"Rà Œ"Ÿ‘ŽEÓ&Q•;Úµ[ÕOÏJ&]!ôáPWÒPÑfJ¦myMQyMσ0Ò¦Æù—s@WÓ“¢E;|ê§gEåŽ~WQI[Õ_'W¸ý†Ô®÷EèÃ!¹š’)Jè]›\Ñù—ó‘%õeB µU‰ÖÂwµµñ÷%йF:~>º?=¿©ˆÊ½=&j ¤¤ÍVM‘°¾«­Í›%йF1^Äß3@?OŸµ MÛ-ÅßÏ�0ên…L&õH…qÛ}Ã]mmÞkáÔ®÷E³„ͬ�ñ ¯UB›òÔ'Tîh×nU?=«Au·B&ŒUš] ÃfÖ tyŠhsŠ"Õ'´)O}"ŒºVi°.®L„aMÀ�¿³áÐIû¬()i×^Ÿ"Eå)Fî ‡vGïM‘¢HM‹¶¿Æm÷ æÆW€>ʈÞEmÒö×ÂZX kòjZka¤ÁZø8aä> :QCB»ít=PÙS¤¦…0n»oð±÷¹t÷íEe$ŒÛ¢A‘ûÐ×e¹ HM‹‘®KZ”ô\FJXîß ka-¬©Š¦Í'šúEjSF :=,¦DQTž’¶Wƒ°6yåÃË.³•é‹0Š|ÆzÌ„Qä3ÒÑ # ÖÂÅUå_„áãJØä>N—p™5ðqš{#Œ"Ÿ±3aùŒt´Â°™5ðqZ­­[!F³w2a¤ÁZ¸ýÚÄ€NoI4ma4yƒL·)RÛÙ¼ô¶,(i·[š¶[ÚlÕÔ«…0|\ ëÃý{a-¬…5¥ÍkAg‡¯•§¤í•°N›âìë6³k“»�gÂ(æv¼F1×ã_n‹æa¸*ÀÇiå;a4{—!†]Õ0ãÙw@û8­|è¨Üí•Ð.*ŸimrGmOióZÐÙá«0L00Âp™5ðqZùîã™0š¼A& »ªaÆÏ!t¹Û *¡]T>ÓÚ䎒’Î_É4ka˜``„QÌ5Ìx!Œ"Ÿ�…0ên…L«4»†Ë¬�k*a¬ÒìRE># a0Viv) “®°F¬…�ÓÊwÂ(òë1F‘ÏHG+ kæØßÙKaä> ÃF¬…‹+§Âðq%¬÷ï…µ°Ötµ‰ÖÂæÆWKs�t<ô®Œ(m^ :Ž´PoÛró©í¯i]çî|F¬Å�¯«X¹€NÔ�Ðn;]Töô.j%ŒÛînbïsèîÛoÓ‚m¤6I=Ò»¨M”0n‹Eîca}¸/¬…µp¼ª«%n‹÷Î}]Ò»)z¦H½•e"¬÷ï…µ°ÖÔDmŸÐDCµýõ’(,‘j*{JÊ*w4$Óæ“°®mã«%VU  fèk•дXDjh•Ï4$Óæ“0Š|F @_«„6WS4m £îVÈýP¶}BII½ú-¡i±ˆÔ0cUe€ŽÔ�”‘¢¤¤!™6Ÿ„‘û€è)RôNÑ¢ìÕÿ„á¿Ð�j)RÉ)êéa’¨í¯…Ñì]† ÐmO›iP”®ëÜÑf[¾½©h 6F‘ÏHÇèÍÕM›DE””tžžÓ®Œ(m^ a¤ÁZ¤9 ¢¶Ohs5EÓ&Q‘0š¼A&ŒÛ¢Am_zSöIÛŸ”°>Ü¿ÖÂZ¸îL¼ZƒL&dÂ0Á † ™0L0È„aW5̸Þß Ã# WÂ.¶Æ½Ú€9öwöÐíŽÒƾtvø*ŒÜaÜ~CÚg_Ýîèìðu¤äJõ´(©M(¹RtvøJï¦GaÜ Ò¦8ý|zSt<)¹R= m¿QÔ— Ík!¬÷ï…µ°ÖäÊ(¡äJÑ¢�Ô&)£Ga-ìr_-±òA® èrw@ÿ®¢’’+E»ítMmO›iP4m#5-i(£D-„‘kQÛÆWÂ0kœ»2JÚþz¤óñBX kaMîJm·_ •üÞ«ˆ†2J„µ0lf jaÔÝ ™0\f \·/|œÞîjdãz' —Yçª`¼0š½Ë�zê4LOŠúpÿ^X kaM—e¹ HM *#zµ‰ÖÂEîã%lf ‚1Ðo§ç2E i±ˆÔ0ЮŒ¨W¿%ô0 ƒ0쪆½È„a‚�†Ë¬A0Æ ÃfÖÀÔ>í*@oÊSŸ,Êw=©>‰Z5ä+dÂp™50µO»JE>#Œ 5$´+#ú]E%mÕ.Fî¬0n»o0µ·yèmY>PÒn·ô»ŠJa-¬…5™6R›¤Œ©~ÍiQöj¤H *!Sš‹H ƒ°†]ÕX�¿^dÂHƒµpqeŠ WÂúpÿ^X kaMEù¤è”´Û6y¤áô•§¤í•°.ò9^¢Èg„±†ÚDvU#?…á2kà|œÚ¸F³w2@Oý‚†éIQ›ka-¬©/ßÑ¢}jŠþIåŽv­Ú.z{¤£°6õ\›x ›Y×í §7Ð×*¡§i{RÂHƒµðyå3+ —Y×í §7ÐÃô¤(RÃi›£Èg„Ѻݑëö…�Óúï?èB¹È�\©^·Ý7tyeò.t_&´({%¬…µ°¦°ÝÒ®UÛÅ@C%j!¬…Ñä Ö€ÞlÕÔÓé�†dÚ|F“70Âðq%¬÷ï…µ°îòÊä]¼\¥Ù¥0lf jaÔÝ ™0Š|F­0Ü~�XE>ÃŽAE>#Œ™«Â Fu·B&Œº[ÁäkaÜvßPäs, WÂúpÿ^X ká&¤/KØU�l¼tM?Ð…°nBúr¶„ˬA-Œ4X‹º3ñ Й¥h½¿£�töý�jaØU 3þI&@g–~ ÌÒGú“0Š|F @ÿíôü@íŽvíV%�Šú2¡óÕÏ?Ÿ Ãíkœ_œ ã6EÒ—£0Ò¦ÆÙ…0n»MH_ŽÂpUÀ­0ên…LE>#Œ…0Ò¦ÆùÏçÂ¸í¾¡ éËQu·B&Œ"ŸÆBiSãüçsaÜvßЄôå(Œº[!ô R¿%ªO¨?=¿©ˆ’’~†5·Â(ò0Üz #Œ"Ÿ‘�A.³ÎÇ©�;aØU�l<†Ë¬�s¹¯æ3a¸Ì8Wã…aR+Œ&o°F³wÖÂZ¸3yŸ-a‚�†IWX £Èg„q-ŒÜ¤Â¸í¾¡3yŸ ÃeÖÀ¹ÜWóQ«4»F“7X £ÉdÂhö.C&Œfï2¬…µpgò.>.á2kà\î«ù«0\f œË}5Æ*Í.…a‚�Æ*Í.…µpšMðñ²É¬…Ñì]†µ°Nó¢ þliMXÁ#t5~ºË„Ñì]†µ0š½ËиaùŒ0Â]�Ÿî2aùŒõ„Ñä w# ·_c-Œ&o°Å„aÒ2@*¡]»UÉモ¤¤óŸþù\Å\£Ï>†IWÈ„QÌ5Šñüçsa˜t…LÅ\£Ï>ÖÂMH_ŽKØÌÔ€®éªé#� £îVÈ„±J³KaØÌ_£îVÈ„±J³Ka4{—!F¬…Û¯M,Œ&o�z[–tê“vK5ýƒŒ/„q›¢ éË™0|\ ëÃý{a-¬…5y5-hêô.jE‹6R›¤Œ)*OIÛ«AX {cj¿D¬Em_ ì‘úÑÞ�ç_¾|ùy5-Úþz¤óñB·E“›Úúw•”\)zµ‰¢Ývº¦]Q_¾Ö‡Æm÷ ]^Åö¨»2aÔÝ F&]a-Œ"ŸƵ0r� ã¶û†4/šàÏ„q[4èrwSWi&¬…µ°¦êJѦìmÒ–=M uyØÓÕ4PRÒ›¢ÍÕÔ_«íʈjب~Ñö×4”Q"¬…»¼Š?ì—¸íRt¹»©«4F1×ã™0\Ðåî&4ÂZØÝÔUš-Ñì]†µ0Š|Æz,„aMXÁ£ÈgcF‘ÏãZ® +aÔÝ ™0ên#Œ&o°†IWX £Èg„q-ŒÜ¤Â¸í¾ÁÝÔUš ÃfÖÀuûÂÇé�0Š|F3a¤EF‘Ï0cF‘Ï£FZaû÷ÂZX kZ´OíBQfé푎ÂZØç•Ïì¹€ÞlÕÑfŠ¢GaùŒ0fÂðÁ £ÈgdcF‘Ï£†^E>ÃŽA>®„õáþ½°ÖšœJN´+#ÔVm’¶¿¦EÔ>)šúѶœmM‹vøDSôLoÛróIX »¸Ú7KXp—®…aR� ŒÛ.®öÍ ÕomBíŽíð‰Qû¤èYõI[öj!Œb®‘Ž—qeÜ t™\©è];(ºV mNQ¤ú„j7�¶ -¢öI # Öbmr衤�TôHçk“»sÚ•-¢öI kaWûæl‰"Ÿ‘ŽAi°ùŒx °™5p.÷Õ|&  Œ0n»]înê*Í„Qw+dÂp™5p.÷Õ|& ›Yçr_ÍŸ…±J³KaØÌ8—ûj> £Èg„1†Û¯a…Qä3ì„Qä3Âh„áÖkdÂ(òÙ„á2kà\î«ù³0n‹i^4ÁÇÂúpÿ^X ká.w7u•fKaØÌ8Wã…Qw+dÂp™5p® Æ ÃeÖÀ¹ÜWó™0Viv) ›YçãÔÆ�0Š|F­0Ü~�XE>#Œ™0Üz #ŒÛ¦žk ÃfÖÀ¹ÜWóWa4y#Œfï2a˜``„±J³KaØÌ8—ûj> c•f—¸-  t&ï⣰>Ü¿ÖÂZXÓ>i·mòHÃé-‰¦MÒ–= §·¨<%m¯‡CféÊì ka·_›x‰"ŸF+ ·_#F‘ϰcF‘Ïc& ·^ãÈgdc†�+a}¸/¬…µð�7µ_š€.w7¡Fî‚0n»o¸ñ¦ögÂHƒµ¨mã+a˜5ÎÿÒDê©-OÃö‘†2JÔâúBçã…0n‹7ÞÔþ(¬…o¼©ýÙi°µm|% ³ÆùMÔ&m=Òùx!¬…o¼©ýq‰b®Æ3aÜ Lnj/¬÷ï…µ°Ö”–ÏŠ®T¤¨ÝÑ;E×*¡‰"5-HEQ ka{Øãç/Ga-¼Þß-a.„µ°FÜáÿÜŸþG+ kæØßÙKaä> ÃF¬…‹+§Âðq%¬÷ï…µ°Ötµ‰ÖÂæÆWKs�t<ô®Œ(m^ :Ž´PoÛró©í¯i]çî|F¬Å�¯«X¹€NÔ�Ðnáþ½°ÖÂZÆáóÐÏmß>ŸžiH¦Í'Z¨‡äJX káxŽ»%â{üåç�Çïßy=~ÿãïÇï@É%ôvÚíTDeOêIõô0]«‘Þ]µ›+š¶C)Œû?ë¶ßDj É´ùDS¤&ºŽÔ”l…µ0r‰xŽ;a-ìª�¾,Ÿû%Ò`-jÛøJf�ó�ÉÇÁPì}îé u9¥Yè.czžê\f�Ô�ön¼ÆmÑ ^Õ•°>Ü¿ÖÂZXSZ>+ºR‘¢vGï]«„&zµ‰"Ee$¬…obïs¿D¬Em_ ìqþñ#ÝøºŠ)ö>÷ô…Î…aÖ8_´‘Ú$eôH[µK¨íiß½tùMG›²_´I[öçcêG{7^ã¶h¯êJXîß ka-¬©xm Ê=¥ÍkAŸÔ— MÛmùN-è]›\QrÕô•×Ñô,¬…‹¦ø1vK¤ÁZÔ¶ñ•0Ì©íÝxîBC_/¨/: jzÛ*z×&WT¼6å•¥ÍkAŸçã…0n‹ñª®„õáþ½°Öš̔L4EjÖÂÁ¿„q8 ›Ú§]µ„q8 ×K‡£ðíÆá(\„¦©üÆá(Üåî&4K‡3a§ÕÚ.aŽÂ>Nso–0Gáʇôe ãpžcg/—0gÂ7þΆË%ŒÃ™°óqjãniŽÂÎUÁø%ŒÃQعÜWóÙÒ8…�Ë}5—Æá(ì\î«ùóÒ8…�Ë}5]‡£°ëö…�Ó›¥q8 ëÃý{a-¬…5™vøDS4=«DEô¶-7Ÿ–ÂZØ4륰kª%ŒÃQxí²%ŒÃ™ðÚK‡3áxU,aÎå„�+–0Gaã‹%ŒÃQ8Ø‹%ŒÃ™p°gK‡3áôÅ-aŽÂîGWù—%ŒÃQXîß ka-<ÇiåÝÆáûg@GeùL»2¢¿�žèIm’2„µðÍ:Ï«%â{ÌqZy÷ñ3ô¢¤¾Lhs5õ׊’+5(Rÿ:M‰„SW¹%â{ÌqZy÷ñá´^"þ°Ç§•wÿ$œæKÄö˜ã´òîãÙQØæKÄö˜ã´òîãÙwá&_"þ°Ç§•wÏ~öõñ‡=æ8­¼ûx<Îò"^"þ°Ç§•w�_…]l�{Y"þ°Ç§•w�? »¸ªüËñ‡=æ8­¼ûøùBåØÅ•�Ó%â{ÌqZy÷ñógaW¦KÄö˜ã´òîãç?„}Ìñ‡=æ8­¼ûøùOÂ7¾®â%â{ÌqZy÷ñëQغÊ-ØcŽÓÊ»�_¿C—ýö‘ÚžÒæµ ãá(ìã´òÝñ‡=æ8­¼ûøõWè²ß>RÛSÚ¼t<…õáþ½°ÖÂZÆáóÐÏmß>ŸžiH¦Í'Z¨‡äJX káxŽ»%â{üåç�Çïßy=~ÿãïÇï@É%ôvÚíTDeOêIõô0]«‘Þ]µ›+š¶C)Œû?ë¶ßDj É´ùDS¤&ºŽÔ”l…µ0r‰xŽ;a-ìª�¾,å  åer commands. To do this, the argument should begin with a number sign "#" and the port number, "pp". (1) To read a hardware port: A>pk #pp (2) To send a value to it: A>pk #pp=vv Examples: PK #0D reads the byte from port 0D. PåK #0C=E8 sends byte E8 to port 0C. The port and the value read "->" or sent "<-" will be displayed. -------- NOTE ON BANKED MEMORY (CP/M PLUS ONLY) -------- If you do not have banked memory (found in most implementations of CP/M 3.ere are three different formats for doing this. (1) To poke a single byte: A>pk aaaa=vv (2) To poke the same value into many bytes: A>pk aaaa+nn=vv (3) To poke a series of up to 16 different values: A>pk aaaa=vvv0), do not use the "b:" parameter. Furthermore, it may not work on your machine if its bank selection protocol is different from that of an Osborne Executive. Bank "n" must be enabled by sending a byte with bit "n-1" high to the bank control port: forv.... The offset and value series options conflict. If you specify both, as in PK 1800+2F=0D0A00, PK will ignore the offset specified. Examples: PK 309D=E5 pokes value E5 into address 309D. PK 4000+07=00 pokes value 00 into addresses 4000-4 example 01000000 for bank 7. The original configuration is restored on exit. The default bank is "1:", the TPA. Accessing other banks can be hazardous, as they contain the non-resident operating system, its data buffers, and various machine-sp007. PK 0006=43FB pokes 43 into 0006 and FB into 0007. PK then displays a peek of the addresses just poked. III. IN/OUT: Communicate with hardware port PK also allows you to talk to hardware ports using the IN and OUT assemblecific firmware (such as video RAM or boot ROM). Sometimes the same addresses may refer to different entities on reading and writing. If you use an address that doesn't exist in the specified bank, you will be operating on bank 0. Review your manual.  Ã4N.COM Ver. 2.0 (c) Norman H. Strassner 2/20/84!9"¼1º!€~·ÊC^ë!‚~þ^Êþ@Ê !L"vþHÊ�þBʲþhÊ�þbʲ!þ ÊÑÖ0þ ÒÍÃz!$þ ÊãÖ0þ Ô§ÍÔÖAþÒ³Æ É!.þ ÊÚþ0ÊÉþ1Â�Ö0ÍùyþúãÃâyþúãÃâë"x·!L"v*v^#V#"v*tÚâ" ^JÍ*¼ùÉ Õ^#V#å!)Ò$Âë*vs#r#"váÑÉåÕÅöÿÿÿ Ú? ë|µÄ6{Æ0Í ÁÑáÉå|Í_á}õÍhñæþ ÒtÆ0ÃvÆ7Í É·*t|͈> Í }Ú”õ>0×õ>1Í ñÈÊ> Í ÈàÍø---- DECIMAL ---- HEXIDECIMAL -------- BINARY ----- -- ASCII -- É㯆#ãÈÍ t ÂîÃ#~Ã#~ÍxÖ@o&"tͪ> Í *tÍ6Íø *tÍXÍøH ÍzÍøB *t|·Âi}þ ÚVÃcþ€Òi>^Í }Æ@Í à ÍøNo Char.à þaØþ{Ðæ_ÉÍøBinary numbers contain only ones and zeroesà ÍøString contains non-hexadecimal digit(s)à ÍøNumber must be less than 65Ãø> Í > ÅÕå_ÍáÑÁÉ dè' @€536.à ÍøError in input. type N alone for help using N.COM à ÍøN.COM Ver 2.0 By Norman H. Strassner Accepts a decimal, hexadecimal or binary number, as well as ASCII characters, and displays its equivalence in all four forms. Append number with an H if hex, or B if binary. (no appendage required if entry is decimal number) Prefix ASCII control characters (^@ - ^Z) with a carrot "^" Prefix normal ASCII characters (SPACE - TILDE"~") with an "@" Examples: A> N 10 DECIMAL number, no appendage A> N 0A HEX number, append "H" A> N 00001010B BINARY number, append "B" A> N ^J CONTROL CHARACTER, use "^" All would yield the same result: ͪÍø 10 000AH 00000000 00001010B   @€; n20.asm/n.com ; ; ; ;decimal/hexadecimal/binary number conversion program ;by norman h. strassner ;version 1.0 august 29, 1983 ;version 2.0 june 22, 1984 ; a terrible bug in the source code was found. ; some lines of source code must have inadvertently ; been deleted from the file. ; the result -- program did not work. ; this code is complete, and has one improvement ; - displays the ascii equivelent of ; - the number, if valid ascii character ; - exists ; ; instead of just fixing the code, i also ; added routines that would handle the inputing and displaying ; of ascii characters, making this program much more versitile ; ;contributed to the public domain for non-profit use ;as a small thanks to all hackers everywhere ;address comments to: norman h. strassner ; 1950 n. normandie ave. ; los angeles, ca 90027 ; (213-661-5000 voice) ; or ; compuserve ppn 72135,1051 ;this program accepts a decimal or hexadecimal or binary ;number !  from the cp/m command line and converts it to ;the two other forms of that number, and displays all three ;forms on the screen (presently set for 80 column display). ;entry can be in one of three forms: ;(from the command line) ; a>n ddddd ‰]Gpù3"Ž.ßG¥Ä¾3ůZnL)±ïLñkì­ÑG´C7�±³÷¢ƒwçڴ鈣ñ¬Ó�±X?Á ´ ÁŠ&&ŽîEï,ž?Ù¢CPøôeƒç/ßý r> ======> decimal entry ; a>n hhhhh ======> hex entry ; a>n bbbbbbbbbbbbbbbbb ======> binary entry ;where the d's are decimal digits, the h's are hexadecimal digits, ; and the b's are binary 1's or 0's. ;(notŽîEï,>}²Å¿VðéÓÏ_¾ûH�A%Zûq!8è-ªZ0¸AÇ‚±+LÀ�lù„8‚à:ÁÂ[ è6Ü cÁØ•‚ÝÖæ^Ð[SÞ‹VbUq$Ž`,b±”B””¸Ñ®CU n|!Oˆ#Pµ –0 q®ÝA›K_¢u œ~þ„8Uû€±+}ÀØuóB”4hl‰µ 謠ïæÚÝK'VG�Xú0/Ì1 ªMˆ½Gù<ø{)Ä*tâàU-h‡n,ºA¿Á{SøMˆ½Ç¸6ÚÄJ4qðˆrムÄqÞ%¦D·Á¿AáÆßx{@U Æ®”=š"8ice the h and b appendages for hex and binary numbers) ;(decimal inputs are without any appendage) ;regardless of input, n.com will present the following two line display: ;---- decimal ---- hexidecimal -------- binary ----- -- ascii -- ; âLYJ‰Ú Ê[ ¨j£ðÁ E‰µ±e!¨jAoçƒòö€Æ–Xú0/ÌÑÛqnƒ&ÄÞc\mb%:4Ø™çÞPÕ>à\»ƒ6vC\cç´à½èà•/„8"Žbg•öãAI‰Ê¡ªçøð1–®3ÞâÆi´Î>εÛx…CâÈ4:S¨jcŸTMQ`mâç¢ʽèãC-Zˆ‰#S–ZBÀØu�XP¹¢uº3ë'”6!XÑÄ^þqþòíí´NwÆ–^ÐÜËâ/ÿ(\@cRHh06ˆ/·Û§#Žðò�OÏ<¾þøv»Ý"Þ;Ëâ.¿8M xxxxx xxxxh xxxxxxxx xxxxxxxxb character ;++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++  xxxxh xxxxxxxx xxxxxxxxb character ;+++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++àå±ëæC}/8Ÿ[üÛÓóo›óíÛsbâHÕ>à\»ƒ6š8–¹ h°”Øw¦@§±–SJì;S Ó8öÖè#qd‡n,7Úu¨jÁxþ«ÃØu�±%Þ [bìì½hÐ+TŽ8Rµ zpèT-7NwÝUmÚ¡‹nÐØKæ…94E�ªÖ"ÄÑÆé. ³¨jÁk‹æZ‚XU1ˆÂ�Óøn‹±+†Îbéü0Ç7Oˆ‰#±J16ǂޢ³‚nƒªÖ"¸qº 'bâèÃF»U-»®3¶ÄÂ[yCL�ùd±¼ü‰ÿ«DÂKúvù×OXJì;S X¥�ĘvÿgN20.ASMa öÿßÿòÿõÿšÿ‹ÿ�ÿžÿ‘ÿ�ÿ–ÿŒÿ !"#$%&'(Äÿœÿ»ÿ¼ÿ³ÿ¾ÿ“ÿ›ÿºÿ—ÿÓÿ­ÿ’ÿ¯ÿŠÿ)*+,-./01234567·ÿ�ÿ¬ÿ¶ÿØÿ�ÿ²ÿ°ÿ½ÿªÿ™ÿÏÿ±ÿ«ÿ˜ÿ†ÿÅÿ89:;<=>?@ABCD®ÿÎÿÛÿoÿ§ÿµÿ‡ÿ©ÿ¨ÿOëËŸø±Jô'¼¤o—ý„µÜ X¥�ĘOÇ—ÿ�ÿ«DÂo—ý„co�>¢X¥�ÄÄÑC-ZPÕ‚å, Ñ‚¥Ä¾3–þàUhPÕ‚õ, Ñ‚µÜ˜Rbß™Kð*4Ä[¢ªdz€F ޽5úˆç³€NãvžG¬S>Tµ`�Æ–8F3Ÿ‹-ÍAnœÆZnÐØÇÞ}D;tcÑá qô¡”Øw¦@oçƒ h´àƒWµ{D3Ÿ‹-ÍAÞGZF—…„€nƒÞÎÕ }»|Qà\K«PÕ‚WîÁÛª‡…·‚¥óÂOÄÄÑãåÄRbß™"  ññò "ÖrãK‰}g ÄÇË?ÇÞ}D|¼ü‰øøˆ&ÄÞãã#q„—Ü\þÀ›Ë/5àå7—âÍåŸc¼ü×F›X‰&&Žþ÷rDLY÷Р³øàU�ª µ{xrù'11q$Ÿ£$§-TgkØ&#âìTgkØæ#âU²œ@u¶†·Ñ¸tÅ*}ĹóVߥËÝ3¨ÎÖð zÐ^ ƵÑ&V¢Q9Œ� ®â}ŸCu¶†óíve´B·A¥� ^¬Â¹vm:4Z 11,Ûp¾ÝŽˆázÑÃdŸ·{€(<÷st÷¢QyUȯ{ÑÁ;K É f»'ér�x+ú >}²º ¥½=Ãõ+È“d½ˆŽ4e‰vèÆ¢1LÖS˜mgQgž Ú¡‹&†´ŸÂù ò½BƒvèÆ¢ÿBL é.…¬Úï« ²®Á¸–ø9ú Örƒ…(%šÒ<Ë o—i5™Ãõ¢‡Qu•'U:]ä1qô÷¡›c-ZÐopîBðãB°–,D)Ѹqƒ-‰³j¿¯ÚTgk¸ &†,ɯ ˆ¢°¥DÃd=…Y>ˆ:ó\ÐÝX41¤ýÞDZLQÑ`-7XˆR¢ÿB ×»FÕUÕ¶Ë–òd ç[€È”%Örƒco1´Õž˜8úûÐͱ-è78öÖè#jù<�C²‚â‡ø îœîŒÅÑœ(mB°¢Ÿþzºýõî㌘x²ÏÛý ª³5\Cv5…Q³ˆ¢°p±)0(?'†$O`ÒÃd”%°Ì’É>O¿Cv5…IßLöyú•˜·SHš-@b4–Ĉ�]MaÔ¼ÛŽ¢¹óV¡rÏ;›�hbX,o!oÑAbªF·ÁØu�±%1,Ûrb¸~‹j·&†ÅòªfA Iž@¹Í&ˆBåPl‰nƒ…·BŒp•Ž^@t…ªö•ÃRˆ‰!»šÂ¨y÷tÍ�· •Ã�×Aa\mb%Ýc×uƖİXÞBÞ,ˆ!HPÄ‘Üx…^Õã7´C7�nƒvèÆ¢1®�6±ˆWmu¶®&ûTgk¸ &†$½‚ š;o*‡… ÇÞ}ĸ6ÚÄJ41dWS5«énŸ¯² ¢¹óV¡r8öV™q!Ä�]MaÕl¢¸£1vƒU¢ñjºËÛï'¨ÎÖpAL Y’_ADa\mb%šÒ~ 3œDc9xëí݃ÒÞˆáú¬¦»¬ÚDG š²D;tcÑ�Ò~ ³íŒ®_Ájº[~ˆ¼ hð_¢1¤ýfç3b¸Þ½‚UÕ¶Ë–x5Ý-¿ž :[Ã11LÖS˜mgQgž tVÐií§0û=ˆ|@¯Ð`ì¬Ò®À¸6•ÃØÙ{Ñê/Äpý ÒݾÍ.ÒÝm»'†´ŸÂìŸ3b¸~é(o/ÒÝm»'&†ìj £æ®ý:éSˆ¢0(£º >8ý<ÌM,Ä0e ÜMúݾˆ‚rZÐ+4½õÊ›çÎ[%š²$¿‚ :ˆÂÂ…qm´‰•hÜ8�J‚òö@ i?…ÙhÕrƒZ>Ô_ˆáúŒÚêl]Mö%48×.–Ð+bHû)ÌV3€hì­ÑGÔòy� þB ׯ`ÕVgëj²‡è(¡ÁƒÃ�Óè1¤ýfõŒ®_Á¨­ÎÖÕdO i?…ÙxF ׯ`Õ4ø/ÑŽÒ<Ë o—i5™Ãõ¢‡Õt—·ß‰‰£Rbß™ ±Uc\Kü?tæ¿á[Œk£M¬D‡'èŸÈ|ÿöí�·oˆ“*ÍªÝ ª³5\Ãby y“DQ×F›X‰ÆØ V¡rhˆ!í§ð êÌ ÆµÑ&V¢1vƒU¸qK‰}g b¸^@ž$ë@äžÃõ¢‡ýr™åí‹ ¢ÎiAU‹o1®�6±ˆ£±·F±{P5ƵÄωWÓ]VíNP�­á‚˜Ë[È›”Ò~ ç#†ëäI²^Ãõ¢‡ýr™å틊82eÐÚ¡‹è->8ý<ÌM, j CVgëj²'&†ìj £f±Îöù*« š;o*‡A­Ðm° eÆ…Cv5…U³ˆâBŒÆqL —_¢!Ƹqc7X…nƒqm´‰•è@LmLQ ªµ5*‡µhA¿ÁRbß™íÐ�E£–σ%%q$7^áƒW5Æø íÐ�E£Û º±hŒk£M¬Dâ¤J§‹<;Au¶† bbÈ’ü €è ãÚh+ÑÄ�öS˜á ËÁ[oè6”öö@ ׯ ©Ò¬ÚDq-ñsôìœTµQøãÚh+ѽE;tcÑÄ0YOa¶�D�y.h‡n,šÒ~ ç[€Èô Ú¡¡P9œkW±"Γd½8Au¶† bb¸JG/ :ˆÂ¹óV‰Få0ÌM,8–�Ó‚Z>””øÄpù%2¶Äù P9¬ b˜Œ²Úêl]MöQPN zE Ë6‡ Š 1c£õ7…9àå°%±Bw/zS¸‡7Ä�]MaÔܵ_'}J “Q–Àݤßí[€hî¼U¨Žåà­õö€nƒN?s 1qž$ëÅù‰²Q–Àݤßí[bX,o¡jQÆÄ0Ý]ÁˆË[Hš@Ô…11LwW0"†É(KànÒïö-@”Ó‚Vpî¼U¢‰!e ôí2Y§{€(´«p®]9‹þ 1\ïR¨ÚvÙD¢µÓè7h�B;tcÑÄ�æY}»L«É Š�½­ÐØMYÃõ¢‡¤J§‹<ˆ¢ÐX§jÑ×F›X‰&&Žþ>ts¬E ú Örƒ±³÷¢ƒwµ|$()‰#¹ñ ¼ª1Æoh‡n,ÝíÐ�Ec\mb%:�Úêl]Mö'¨ÎÖpAL Iz @4wÞ*T Örƒqm´‰•hbÈ®¦0jFÕÕ>_eDsç­Bå°–eÆ…Cv5…U³ˆâBŒÆØ V‰Ä£ê*OªtºÈ³Tgk¸ &†,ɯ ˆ¢Ð+T 1¤ýf8ˆÆrðÖÛÄŠ’<� 2e‰vèÆ¢‰á:…ýr™åí‹ "¿ÁØh}lP9‡…ÑAƒvèÆ¢‰a2ÊèÛe²N÷QPN j C¡ˆ!I[H‰áz÷ ò$Y/ΉázÑÃt÷l™L'=1q:ÊÛ‹twÛîOÄ0Ý]ÁˆË[È›1\/zHGy{q›gÄénßféî¶ÝŸˆaº»‚@4wÞ*TãÚh+ÑİXÞBÞ,ˆ!ͳ ù×êb�擊&ë)|ÜŽ¢Î<4;«´+0®�&NGy{q›g'bX,o!krbXÜNaÔl‰a2ÊèÛe²N÷ÄÄÓݳe2�ô'bHó,ƒlº«ž-ÛE¾#  ‡h®%ˆUb-bÑÛ�Ó�QÞYbXÜN!o^Cšg¤KbÈFY}»LÖéžÒ<Ë ©Òåz͵· K‰}g ”σ¿7…XE<ª®úv·?Au¶† bbHó,ƒI¿˜¼ †d/›—Í–²Q–@ß.“uº'†4Ï2HFwQéü0G¬åœ.‰!ͳ &ýbò‚’ÌF³æeó²ÙCšg¬¦»¾Ýí‰!ͳ &ýbò‚’ÌV³æe³%†l”%зËd�î‰a±¼…¼òÍ!'†ëÝ+Ø-óI:�Ãby y“CÚOáévD ×)¤»}›¥£¼%†ëEé(o—ë=qºÖl‰!ͳ ²é®z¶lùžÒ<Ë`Ò/&/ˆ!YÁËfv¾Å1$+˜áå¿·Ûm>šC²‚^þ{{ù'n/¿œoÏ·«1$+˜áå__Ïš-ñê{u‚êl ÄÄ�æYi›=ˆJ÷`Ñ`á­C6ÊXfÉdŸ§_!Ò”ÓB “~”@”‰ŸãÜy«D£±%1´Õ¢ƒÃñQÆG!&ŽæÚÅÚ¡‹¨–ûÎ(Ÿo ±*÷í2­&“Tgk¸ &†é®… ò6ÖÒ‰U»Á*bHÒ+H¢¹óV¡rhåFa\mb%šúõd @̽ WİXÞBÕ,¢ƒÛ·Y:ÊÛ1¤ýΟ¾#†ë] »e>I§SbXÜN!of¿gÄ�æYé’Ë[È›Œòd ·#€¨3ÏMˆ½'NGy»\ïOÄ�æYé’®=¬¾WÄ»e>I§Ó1¤y–Á¤_L^C²‚ÙÎaZýdÖl‰ázÑÃê{EL¼È¿Vë4ŸT'bHû)¼?C›CÚOáo«1´»”òÝÞ>C[퉉WUÛ.ÛTgk¸ &†4Ï2˜ô‹É bHV0[ykôíÐ�EŒ�UÆ[t¶8¢³ÐØÿ%ÚI˜5[b¸^ô°ú^�ª«ªm—í ª³5\CšgLúÅä(ì†BùyáccKTK!†éî FİXÞBÒ,¢Î<<�c¯1LwW0ˆæÎ[…Ê¡•…Þ¢2ãBˆ¡_OF0ˆ‚¹ôв«)Œš-@b4ε+‡XÃâv «æ@ôÇ^TKG¼XgûTgk¸ &†$O`D mžÃõ.…t”îöÄ�ä $Äé(ÝíOP�­á‚˜’´…1\ï^Áb�í¢�) TµváF¿Á�·>ÔRÃU:zÑ\»rˆ*‡¥C6ʸ›ô»} Í�· •C+7 ç.xå�EoñÁéçanb!†ÅòMaL ÓÝŒˆa±¼…E1$+˜M”öö€±³ÊxÐ:ûXË�)%ö�)°ô¯>„7³fK ׋Vß+âýr™åí‹êÕÙ.ˆ‰!ͳ &ýbò‚’ÌvC7�ÝŽ Um,¾ûöÇû'³fK ׋Vß+bâªm—í ª³5\CšgLúÅä1$+˜UZ;�Þ¢·óA=ATǹàMá¬àÆi¬¥˜ã¼=àîIº\Ìš´m²gÍ–®=¬¾WÄÄ‹j·>CšgLúÅä1$+˜íž¤Ëâ­h|úd‹ˆ«#îœîŒÅÑœ(mB°¢gMÚ6Ù3bHV0ËãXæ* ÁRbß™¢ÁZnL)±ïL�“D]Ãtw#b˜Œ²î&ýnßDü4Jpî¼U¢‰¡_ö0"†~ÙCi ÊiÁ¹óV‰ÄÐV{bâçÚ[…u�Þb)±ïL�Îbìlp…GÄI•.×ûTgk¸ †~=Á/ÿ+ æ^PîEÇ®<C¿žŒ !†~=Áв«)¬šÇó-^þg;{/:xgQ›ÒßCv5…¤y<'Nª4ëOP�­á‚’<�1LwW�Ãu I•f=1dWSX5ç[bHòVÄp•Ž^Ãby y3"†e›CF éî$Uº\ïñ’#Uû€> –xÐÁß 1,–·�71äÉfÛ1BNãØ[£�h‡n,º™5iÛdψ!YÁÌ|�¢@0Ÿ¤Ó)ƵÑ&V¢C3kÒ¶ÉžC²‚™±%–>Ì s èU@ù<ø{Sˆ�½ES¸qƒÆ�Ó]x2kÒ¶Éž5Ù3bHV0Ëçs±%Ú¡‹Æ¯j4Gè7XËMƒNã ýÇÞ}|2kÒ¶ÉžC²‚ÙëÐÌçbKsÔòyðZJô«ô}ÀRbß™íÐ�E¿™5iÛdψ!YÁ¬×²ñ7˜OÒécg•vƵÑ&V¢~øýO|Ä߯ÞàŒ’Ì¼ªÑ`l´v _ÿ~=kÒ¶ÉžC²‚Y¯eãoÐ:Ý™óI:�b\šg¤Kbè—=¬ˆ¡_ö�C¿ìaD mµ'&ŽÊúñKæ…9¬åœ.‰#±J¬ ü†N—¨ŽKæ…9JILœŒîNP�­á‚úõd#€(˜{AU Ú¡‹&†ÅòòfD iže�ŒVQéü0G¬ý¡ÆñQ 1ôËF‘– œtÚ¼5Ú¡‹&†Åòò&ˆJæ…9¢•…ã£qcŠÂÛªZ»áPÃå—H9,ë1[âXŽÎ–ÄÄQY�ñKæ…94XË Ž�JTk¹ÁÒ¼ Ä‘X¥� ¢Áo8>*Aåp,Xú0/ÌQJbâd´:Aumb%:à‡IŸ§>â~š%Õëÿ{ýgÄ�¬`öàU�Æâ뾞5iÛdψ!YÁ¬º1ݼ�pš5iÛdψ!YÁËf–žoñ’’*�.ò íÐ�E7hšù\li2kÒ¶ÉžC²‚—Í,ÿ„;ÜæxI£ê /Ú¡‹nÐÌçbK|=z=kÒ¶ÉžC²‚—Í,ÿ„;Ü^~9ßžoWxù×Õt—·ßíÐ�E7hæs±%¾^½ž5iÛdψ!YÁËf–Âþ¾ÆKJ—»}»Ì0åmžî«¶Á!¾þýzÖ¤m“=k²gÄ�¬`–>¸¡(ñè¥(QÕ‚Át‚ZÂP¨Ó¬IÛ&{¶† bèדô“;€(˜{ÁñQ *‡±³÷¢*‡µÜCÛ¦Äж)1´mJ m›Cšg$£ *}˜戵Ü`é^C¿ì¡ŸÜGe]â#–>Ì sÄZn°ô¯žGb•>¢i°pøÇ^ü†¥?xELœŒ’Tgk¸ †|7…í³1¤ýηÄp½K!%ç‘ß u ·¨j=àKbÈ“)̶3b¸^ô�¤#âd”œŸ :[Ã1äÉfùìñ| ÅZŒ|mšq7e# :�›×ÄI::Au¶† bHó,ƒtI mµ'&ŽÆÞεUÄÑ\{«޽5úˆ§;t´C7$  �Þâ\»rˆñjºëÛÝþÕÙ.ˆ‰aÙæ�Dq!Fcl´>C6ÊèÛe²N÷ÑAε+‡XÃby y3ˆ¢° cbHó,ƒUN ‹Û)äÍ gÄ�æYé’Ë[È›ŒxÕŸŸ :[Ã11,n§°jÞDc¯*‡QÄ«þé ª³5\C›gDáØ+Tc£õ‘®SXîªÕtO ýz2‚~rs/­�hl‰vèÆ¢‰aq;…¼™mgÄp½èaÕÿ ^îªÕt‚êl ÄÄЯ'#è'wQ0÷‚±ÑúˆÆ–h‡n,š·SÈ›ÙùŒxÕÿ8Au¶† bHtóBðÁéçanbÁ�ÓhìíÐ�E÷í2Y§ûTgk¸ &†dO‰ï&ýnßž :[Ã11$x ŃÖbÎ]ðÊ;‹Þ¢2ãBˆÛêl]Mö'¨ÎÖpAL ÉžDA­Ðm0v]gl‰Z>>žã‡07±¼!&†d·#€((?'žìóôë ª³5\C2�§ÄË,™ìóôë ª³5\C2�§ÄÄPíâÿ¹¤ÿ&ë)|ÜŽ¢Î<4;«´+0®�&NGy{q›g'bX,o!krbXÜNaÔl‰a2ÊèÛe²N÷ÄÄÓݳe2�ô'bHó,ƒlº«ž-ÛE¾ó,ƒtI ý²‡~ri ÊiAS8ö*C’¶°"†ö1\/zXõO‰‰£¹öV¡º±htTfÐY ±±øaŒÿø†ÿ�nƒÊŒ*‡sí­zC¼ÏW'¨ÎÖpAL ‹Û)äÍKbHó,ƒtI IÚŠÚWÄp½èaŸ¯ˆ‰£¹öV ±±èíÆéÎ(ï,q6ÝUÏ–í"ߟ :[Ã11¤y–Á¤_L^C²‚ÙãåĤJ§‹^þÄ1$+˜áã#æ“t:ÅÇÇ1$+HÛ&{Öl‰¡­öÄÄQ'!˜ƒà To use bank selection, you may have to patch one of two values into PK.COM with SID. First, your machine's bank control port number is required at location 0103. The default is 00, for an Osborne Executive. Second, if PK does not run properly Üy«¤Dåp|Ä LüÝ P9Œ� ®âI¿˜¼8Au¶† b¸Ú�2€è _kQƒ¶hÊRK¯Q9¬ b¸jsÈ!Š 17…94¶DÇC7F9M y’À¢ƒ(tV°“ÌA0®�6±M ÓÝŒ š;o*‡Vn1\íG@¤%(§ƒ2ñsÜ8M í+€H‹´E¿ÁÒY!†4Ï2H—IKæ…9b\mb%š®=LúÅäDÆ–X:4Ö©Z4q4×Þ*Œ�ÖÞµ¨A[4¶ÄÂ[Á�HIœ¶Ù³Tgk¸ &†Åíò&m‰!ͳ Ò%1,n§�7Ù3bâ(®�6±with the default of 0000 at location 0104-5, you must install an address in your resident BIOS where PK can temporarily put 26 bytes of code. This can be either an unused BIOS patch area, or if necessary a location in some routine that PK will NOT try�Þ¢–ƒJ4tƒš •ÃØÙà !N—'¨ÎÖpA ýz2‚@̽ –ƒJt †~=AB ýz2‚1,n§�6wér÷ RH¬p3ØXyg‰a±¼…ªÉ¢ …Ä 7ƒ�•öÎCšg¬’å rƒš ÇGŒç¿:bè—=Œ"-A9-¨åàƒˆ¡_ö�C¿ìaE mµ'&Ž”‚nƒJlÀ�ÓXJì;S`ìì½èà�%^¬³}¾ÊªTgk¸ &†äΉ!¹ƒó-1$wp¾ÝCrçÛí–’;8ß^~!†ä¶‘ØÝ•BL)3.Ýk¹Á¹ ^yg to call (for example, disk i/o). The original code will be restored. PK has to use an odd trick to switch banks in order to avoid losing itself, since switching banks disables bank 1, which is where PK is running. The BDOS, though, is usuallynœÆZn0vö^tðÎ�ª«}¾ÊªTgk¸ &†äΉ!¹ƒó툒;8ßnGÄ�ÜÁùv»Cr[€Hl‰nƒÊŒ !&Ž”‚nƒc¯ðÞƒÜ8�co�>bìì½èà�%^Mwû|•U'¨ÎÖpAL ÉœC2�§Ä�ÜÁGbHîà1$wpþž’;øñ”’;xÿ‘’;8úŽ’ <}ûž’;x{þ”’;8ß>ýH Éžn?¾#†ä>n_¾'†äÞ�¿|J Éœ¿ÿñî#1$wðãéßÞ¿#†ä¶‘ØÝ•BL|×~�ôé ª³5\C2��[€È visible under any bank selection, as is a small amount of RAM just below it. PK has to put a small piece of itself (26 bytes) up in this common memory, so that it won't get wiped out by the bank switch. If you have not patched in an address to use (%  at 0104-5) as described above, PK will calculate an address just under the start of the BDOS (plus RSXes if active), and hope that this location will be high enough. This will, for example, work on my Executive unless there are more than two pages of Rd self explanatory. Jim Wack FOG Utility Librarian  file. The program is menu-driven anabs, Wordstar dot commands, stray printer codes and other possible "garbage" in any text file. The program is menu-driven anSXs in memory. If the address you have at 0104-5 does not work, PK will crash when some banks (particularly 0) are accessed. s in memory. If the address you have at 0104-5 does not work, PK will crash when some banks (particularly 0) are accessed. åååååFILTER4 is an updated version of a file filter utility written by Claude Ostyn. You may selectively delete printer codes, tabs, Wordstar dot commands, stray printer codes and other possible "garbage" in any text file. The program is menu-driven anå&  åimal code for the non-printing character. FILTER4: is an updated version of a file filter utility written by Claude Ostyn. You may selectively delete printer codes, tabs, Wordstar dot commands, stray printer codes and other possible "garbageå" in any text file. The program is menu-driven and self explanatory. LBL1ACRS.BAS & LBL3ACRS.BAS: These are two short programs for printing multiple copies of labels with a single address, you specify the number wanted by responding to prom First Osborne Group (FOG) -FOG/UTL#057 Copyright 1984 by First Osborne Group (FOG) to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distributipts. LBL1ACRS: Set up for tractor fed labels 3 1/2" x 15/16". LBL3ACRS: Set up for friction fed 8 1/2" x 11" sheets of 2 7/8" x 1" labels 33 to a sheet, these are the sheets that are normally used with photocopy machines. N20.COM: A decon for profit or personal gain is strictly forbidden. For information, contact FOG, P.O. Box 3474, Daly City, CA 94015. ********** CV20: is an update of CV on FOG/UTL.010. It is used to compare two files by alternately displayinimal/hexadecimal/binary number conversion program by Norman h. Strassner. This program accepts a decimal or hexadecimal or binary number from the CP/M command line and converts it to the two other forms of that number, and displays all three forms g them on the CRT. CV20 is designed for comparing ASCII files. However, files that include control characters may also be compared because non-printing control characters are displayed in the form of "[xx]" in which xx is the hexadec on the screen (presently set for 80 column display). OKICHAR.COM: A utility for designing special character sets for the Okidata 92/93 printers. OKICHAR lets you design each character conveniently on screen, and builds up a disk file containing '  all the character definitions. This file can then simply be PIPed to your printer to install the characters. PK.COM: A handy PeeK and PoKe utility for CP/M. It allows you to examine or change the contents of any location in RAM. You can alsoezed using UNSQUEEZE utilities found on FOG/UTL.003, 004, 014, and 031. First Osborne Group Utility Disk Library Prepared by Jim Wack, November 1984  031. First Osborne Group U read or send a byte to a hardware port. REFORMAT.BAS: Is an Mbasic program to reformat delimited disk data files more to your liking. It is assumed that Records are separated by a CR/LF combination, and fields within each record are delimited åby commas and there are the same number of fields in each record. SAP40: This CP/M utility reads the disk directory tracks, sorts the entries alphabetically and then rewrites them them back to the disk. All unused or erased areas on the diråectory tracks are reformatted with continuous 'E5' characters. This completely removes previous file names from the directory which have been deactivated. All files of zero length are deleted with the with the exception of files beginning with å"-". This supports labeling disks for the catalog program MCAT. The program works with CP/M 1.4 and CP/M 2.2 but does not work with CP/M 3.0 or M/PM. ********** AQM files are squeezed assembly language files. They may be unsqueå