IMD 1.16: 1/06/2007 10:01:36 FOGCPM.169 --FOGCPM169VDOO COM+VDOO DOC -04-00 87 VDOO HLP VDOO TQP!VDOO ZQ0 !"#$%&'()*+,-./VDOO ZQ00123456789:;<=>?VDOO ZQ0 @A-CPM169 DOCVIXLABELCOMBCDEFGHIJKLMNOPQVIXLABELCOMRSTUVWXYZ[\]^_`aVIXLABELCOM9bcdefghiVIXLABELDOC!jklmnVIXLABELBASopqrstuvwxyz{|}~VIXLABELBAS3VIXUTIL COMVIXUTIL COMXVIXUTIL BAS7This is the disk name. A447+*BAKVDOO HLP2\!] f :] g*+6 *>Do%"+"">G> #w!w#=!7w22͇Ͱ 21̈́s! _?!^#V:1(>>> UNABLE, PRESS ANY KEY...sT0i E O = ] V ,9 ` ! F    -6I Osͅw   ޠ!K$2%Os:010Vͅ {    f    :!*~ E >2! > 22~#(6V+^S*D !5 #5 ":2::2÷ 0_!!:2!:> 2[s#rOs:010ͅ"    0 2gx h 8@80F#^#V##(##^#V*"!"*"*"1*:]  ͧ: !+3ͅ  VDOO (c)1987DougCox 報젱=>R$!:\(@w#6:#!]> (L!e6.#>(6 #= !#[gćO39 *ͪ(*#SDÊ >21!hw#\ͧ(5\ͧ "!~( (#wz(#2 ~#ʡS!}0Uv( (!(5 (>w# 0@>v>(+~ 0> @*}րs>::_r"8:2rT~# xG)0:Ox2b2!*:=(_:=(G:O͆":!<(vG*:_:(_$: :OG*+B<0 #":o&: ***~wɯ2<22x22ͧ0*# ~# > y z ̼w#Az ( ̶yO: :O> :G:O͆x(H+>  !T]6  :!= !"!kFNy(&B0 ##">B8<; ##NFy>;B> 6#= d *"*+}••*~w*"( !"2*2(#"^#VS2!7!" MACRO: O!"!>!7!T](>Kq#pSBDM*DM**KK*++)[*"S3[*"S&8**> (  ##>(> #7?(#+ɯ708'S> * z 7*+> ##ɯ*+":=*#":!<2:(=_ͧ+ *#"[÷ :!(<*+"rD÷ >!:=:=<:! <: 2*D>2= !"*[:2_ &8 > *  "< rD*~ :~#"*#w"R ù 8GI r= D ÷ ͧ+8 = [*_ ~ ([&*~+"*+w" _ A _ 0*~#"*#w" I R = :_*"ͧ+{ { [= :<_*R#"rf f D= :=ͥ 0*| >2 FIND (from here):  FIND: 222w!OD2: *D*: OGB38**#:w x:=( G~# (x. >21:̺â++[>2:į _ > 2Ê :1 REPLACE WITH: 2!OD:G!:O [S>2(Qv R : !=8:*> *~ (% *~-( i 6 = I &8*> v R s@ >sv I i å 08: > v = 9ڤ*#w"!~( !~(6! !6! ,ɠԠ :2(!/!+!>-Pw#:= 8ͥ !>"w*+"ͧ0 *~ # +*~ #"*#"2*~ :*"K89C*"~ #>2*D~ 8w# x *+[0*0* x~#8>2+˾ x#~0!8>2: 9*+B *"K+K87*>*+*DU[" *+[*"*D:=29* >#+[UD" >2͊ [*#SSD:} [*"ͧ:( *) *) |(*#D*+">2_ Ê  ERASE BLOCK (Y/N)? sYs*â*T"! 0*#"&808 *~_A[?E *> wE E 0E 8E 0TT*~ -0~ (> *! ! 8> *! 0E 0ͧ+*> (rD[R:  /G> *+w"= E 0*~  MARGIN: : ): O: (y 0!)Oy802 08ְ GG:!6: >2 ;*~ : !870*#~  *~( % *6 ! 8D: !8*~ (0( *~(! 8#~(+6 = Bi B"R :8>22 2!->R[!hw#!!\ \ͧ(9BK\ͧ!# ~ ## ~!BK(  VDOO.HLP not found...O(222<2 PAGE BREAKS (Y/N)? sY‚:2 PAUSE BETWEEN PAGES (Y/N)? sY :2 PAGE NUMBERS (Y/N)? sY :2 DOUBLE SPACE (Y/N)? sY :2 ADDITIONAL LEFT MARGIN (0 thru 9 columns): s08:002 PRESS RETURN WHEN PRINTER IS READY (ESC TO CANCEL, SPACE BAR TO HALT) s _1 1f 0*~_ͧ s1ͧ ( # x  1ç:(:_:<(2:( 1:<2> 2:s:B0 DG 1  1:(.:<2o&_1_1 1 1 1# ͧ=>R$:G 1ú>2&*D0*:( *) C[g( *KO3!\ !\  FILE NAME: !] G: :! ~\!]~. e#~a8#3<2V ͧ ͧ_ͧ:(:(-!\ !\!ͧͧ\ͧ2h2j2k2|\ͧ!~#w#G\ͧ 3x! ($| } Ұ(>w\ͧ \ͧ> [e!\ͧ>>> DISK FULL, USE ^KD, OR ANOTHER DISKsO2>> + ABANDON CHANGES (Y/N)? sYCHANGE THIS WITH EDCOM... PRESS RETURN WHEN PRINTER IS READY (ESC TO CANCEL, SPACE BAR TO HALT) s _1 1f 0*~_ͧ s1ͧ ( # x  1ç:(:_:<(2:( 1:<2> 2:s:B0 DG 1  1:(.:<2o&_1_1 1 1 1# ͧ=>R$:G 1ú>2&*D0*:( *) C[g( *KO3!\ !\  FILE NAME: !] G: :! ~\!]~. e#~a8#3<2V ͧ ͧ_ͧ:(:(-!\ !\VDOO.COM is a revision of a version of the public- domain editor VDO, for the Osborne 1 and VIXEN only, as of February, 1987. The first version was called VDOA, and future revisions will be named VDOP, VDOQ, etc. With all its capabilities, it should be considered a word processor instead of just an editor. The two primary differences between VDOO and WordStar: VDOO is only 6k in size, and it's fast! VDO stands for Video Display Oriented, and that's the main reason it's so fast; it makes use of the Osborne's memory-mapped video capability. Other reasons for its speed: it only works with a file in memory, so disk access won't slow it down; and it was written in Z80 assembly language. Type either "VDOO" or "VDOO Filename" at the "A>". THE COMMANDS: (^ means press CTRL along with the key) (the key can be capitilized or not) (the second key doesn't need a ^) ^E Up WORDSTAR ARROW KEY ^X Down " " " ^S Left " " " ^D Right " " " ^A Left a word ^F Right a word ^QR Beginning of file ^QC End of file ^QE Top of screen ^QX Bottom of screen ^QD Right of line ^QS Left of line ^R Previous screen ^C Next screen ^W Screen up a line ^Z Screen down a line ^\ Right to next non-letter (e.g. space at end of word) ^] Left to end of previous word (VIXEN only) ^G Erase character under cursor ^H Erase character to left of cursor (as in CP/M) DEL Ditto (VIXEN only) ^_ Erase previous WORD (^_ and ^- work the same) ^T Erase word from cursor position ^Y Erase line from cursor position ESC Recover erased characters (if you didn't move the cursor) ^KH, ^QH, or ^OH Load help screen (VDOO.HLP) TAB Move cursor right 8 columns (create a macro for other settings) ^V Insert on or off ^N Insert carriage return (cursor remains in place) ^M RETURN ^QF Find string (begins search at beginning of file) ^QQ Find string (begins search at cursor location) ^QA Find and Replace string (from beginning of file) ^L Repeat search (or replacement, if that was the last command) (from cursor location) ^QP Return to line ^QF was initiated on ^OC Center line that cursor is on ^OR Set right margin (15 to 127; default is 52) ^OP Toggle between Line/Page and Line/Column ^B Reformat paragraph to within margins (note 4) ^P If ctrl-char entered next, display as graphic char (For direct entry of printer codes in text) (^M and ^Z can't be entered as graphic chars) (To input ^@ as a printer code, press ^P and then @) OR To enable input of certain ctrl-chars on input line for FIND: or MACRO: ^KP Print file (note 5) ^KQ Quit without saving file ^KS Save file ^KX Quit & Save file (you can change disks before saving a file) ^KD Quit & Save file without creating a .BAK file ^KL Quit & Load another file (pressing RETURN only at the "File Name:" prompt will return you to CP/M) ^KN Rename file (saves current file & makes a copy of it with new name) (note 3) ^KB Mark block beginning ^KK Mark block end or Un-mark block if at beginning of block or before it ^KV Move block marked with ^KB & ^KK to cursor position ^KC Copy " " " " " " " ^KY Erase marked block (^KB needed, ^KK optional) ^KW Write marked block to another file (^KB needed, ^KK optional) ^KR Insert another file at cursor position ^QB Go to beginning of marked block ^K1 thru 9 Mark line cursor is on (9 different markers) ^Q1 thru 9 Go to marked line ^OO Change case of character under cursor ^OW Freeze/Un-freeze bottom 11 lines of screen (they'll stay on screen even after loading another file with ^KL) ^^ Hide screen until next keyboard input (VIXEN only) (notes 1 & 2) ^KJ Define a macro command or string (max length 80 chars) ^KU Ditto (max length 25 chars) ^J Do macro defined with ^KJ ^U Do the macro command embedded in this program (or a macro defined with ^KU) ^QV Insert on only (isn't a toggle like ^V) ^Q@ Exit looping macro if cursor is at following character Note 0. When you press ^K, ^Q, or ^O, that character will appear in place of the column or page number on the top line of the screen. ^KS, ^KX, and ^KD will remain there while the file is being saved to disk. Note 1. A macro is a series of commands or words that is defined once as a macro and repeated later with one keystroke. Press either ^KJ or ^KU to define the macro commands or words. "MACRO:" will be displayed on the top line. Type in your macro definition and press RETURN. Whenever you press ^J or ^U, those macro commands or words will be entered as if you typed them in. The ^U macro command embedded in this version says "CHANGE THIS WITH EDCOM...". It's only a reminder that you can put any permanent macro in this program using EDCOM (or Edfile or DDT). EDCOM.COM should be available wherever VDOO.COM is available. The embedded macro command can be found at the end of VDOO.COM. 0FFH is the end marker of this built-in macro, so if you put in a shorter macro, put another 0FFH at the end of your macro to mark the shorter end. Important: leave that original 0FFH because it also marks the beginning of the next data section. You can make a macro loop by putting ^J or ^U at the end of the macro definition that would be called by that same control character. So far I haven't been able to get stuck in an endless loop or anything bad, but it's probably possible, so be careful. An example of a looping macro would be ^L^J. Pressing ^J would then repeat a previous find-and-replace until all occurences have been replaced. Nothing would seem to happen for a few seconds, and then you would see ">>> UNABLE, PRESS ANY KEY..." at the top of the screen. When you press a key, the replacements will have been made. Another example would be ^B^J. When you press ^J, nothing will happen, but if you wait for several seconds and then press any key (which will be acted upon by the program), the cursor will move to the end of the last paragraph, and all the paragraphs will have been reformatted to the right margin setting. ^Q@ could be used in a looping macro thusly: after pressing ^KJ to define a macro, type in ^D^Q@a^J. Pressing ^J will cause the cursor to move to the right (^D) until it's on an "a", and then ^Q@ will cause an exit to the looping macro. Note that ^Q@ is looking for a single character (or control/graphic character), and that the command that moves the cursor in the macro must cause the cursor to move to the character that ^Q@ is looking for. If that character isn't found, the screen will freeze until you press a key. Note 2. The input line for FIND:, REPLACE WITH:, MACRO:, MARGIN:, and FILE: can be edited using ^H to erase the previous character or ^X to erase the entire input line. A RETURN with no input cancels the request. Almost all inputs can be entered directly. The only exceptions are ^M (carriage return), ^X, ^H, ^P, and ^Z. They can be entered by first pressing ^P and then one of those control characters. Note 3. The block commands, ^KB & ^KK, underline all text (except control/graphic characters) from ^KB to just before ^KK. An underlined block can ALWAYS be UN-underlined by moving the cursor to the first underlined character and pressing ^KK. An underlined block can USUALLY be un-underlined by moving the cursor to anywhere in the file prior to the beginning of the underlined block and pressing ^KK. (I could give you the exact rule if you cared.) If you press ^KK with the cursor within a marked block, the block will be shortened to just before the cursor location, and if you press ^KK when the cursor is beyond the end of a marked block, the block will lengthen to just before the cursor. After moving or copying within a paragraph, you'll usually have to reformat the paragraph. If you move a block from one paragraph to another, you'll have to reformat the original paragraph, too. More than one marked block can exist in a file. Only the most recent one will be acted upon with block commands. This allows you to underline anything in a file. See note 6 on how to enable the reloading of underlined text when reloading a file. If a block is too big to move (VDOO first copies the block at the new location and then erases the original), write it to a temporary file, erase the block, and then read that temporary file in to the desired location in your file. When writing a block to a file, the block end may be defined by either the cursor location or by ^KK (in which case the written file will be underlined). The file being written to can only contain the block being transferred. If you're writing to a file that existed before you began editing the current file, that existing file will be renamed and saved with its original name plus the extension "BAK". When erasing a block with ^KY, the block end may be defined by either the cursor location, or ^KK (which will underline the block). If you used ^KK, the cursor must be past the end of the block. Note 4. ^B reformats a paragraph until a space, Tab or another Carriage Return (CR) is found following a CR. If you press ^B at the end of a paragraph, the following paragraph will be reformatted, so you can reformat a series of paragraph with continual ^B's. If the cursor is at the end of a short line within a paragraph, you'll have to move the cursor to the left, or use ^G or ^H to erase the CR under the cursor to bring the following line up, and then press ^B again. ^B will recognize a hyphen as a break-place when it is reformatting a paragraph. You can reformat an underlined paragraph, but the spaces may get un-underlined. Just re- underline it. Note 5. When you press ^KP to print the file you're editing, you'll see "PAGE BREAKS (Y/N)?" at the top of the screen. Anything but a "Y" will put the following at the top of the screen: "PRESS RETURN WHEN PRINTER IS READY (ESC TO CANCEL, SPACE BAR TO HALT)". You can cancel printing before it starts or during printing by pressing ESC, or halt printing by pressing the space bar. Printing will resume after any key is pressed. If page breaks are desired, the following prompt will be seen at the top of the screen: "PAUSE BETWEEN PAGE BREAKS (Y/N)?". A "Y" will stop the printer to allow you to change paper in your printer after 55 lines have been printed. Press any key to resume printing. You will then be asked: "PAGE NUMBERS (Y/N)?". A "Y" will cause the page number, beginning with page 2, to be printed at the top right of each page. Then you will see: "DOUBLE SPACE (Y/N)?". A "Y" will cause the file to be double-spaced during printing. Next you will see: "ADDITIONAL LEFT MARGIN (0 thru 9 columns):". An input of 0 keeps the left margin at the original location, and 1 thru 9 adds that many spaces at the left of each line. Finally you will see: "PRESS RETURN WHEN PRINTER IS READY (ESC TO CANCEL, SPACE BAR TO HALT)". When using printer codes to begin or end underlining, double width, etc, use either the ASCII control character equivalent of any binary number required, or the character itself, if it's a typeable ASCII character, with no space between multiple printer codes. Don't confuse the ASCII typeable number characters (e.g. "5") with the binary numbers required in some printer codes (e.g. 5). As an example, with a Mannesmann Tally printer, ESC-1 turns underlining on, and ESC-0 turns it off. ^P must be pressed before pressing ESC (^[). The ESC character will appear on the screen as a graphic character. Input the dash (hyphen) directly, without ^P. The 1 actually can be any ASCII character other than binary 0 (^P isn't necessary). The 0 is a binary 0, which is equivalent to ^@, and can only be entered by pressing ^P and then @ (not ^@). Note that binary 1 = ^A, binary 2 = ^B, binary 3 = ^C, etc. You should do any necessary reformatting of paragraphs before you put printer codes in them, since those codes won't take up any space when printed. Note 6. You can make several changes to VDOO.COM, using EDCOM. The older public domain program, Edfile, will also work fine (it wasn't specifically written for the Osborne 1, though). To change the default setting of the screen width and the right margin to 80, change the SCREEN WIDTH setting at location 010CH (H for Hexadecimal) from 34H (52 Decimal) to 50H (80 Decimal), and the RIGHT MARGIN setting at location 010DH from 34H to 50H. Note that horizontal scrolling begins when the cursor reaches the screen width column. To change the cursor blink rate, change location 0110H from 06H (bigger for slower). In Edcom (and Edfile), this number is a hexadecimal number, so 10H doesn't come after 09H, it comes after 0FH (0AH is after 09H). To change the default INSERT setting from ON to OFF, change location 0111H from FFH to 00. To change the top line from showing the default Line and Column to Line and Page, change location 0112H from FFH to 00. To change the default number of lines per page displayed on the top line of VDOO as well as those that will be printed before a page break (if one is desired), change location 0113H from 37H (55 Decimal). Change this to 42H (66D) if you want continuous printing with zero page breaks (you can then specify "PAGE BREAKS" when printing and be able to use any of the printing options following that question). Important: DON'T put a 0 (zero) in location 0113H. To allow loading of underlined characters in a file that might contain them, change location 04DCH from E6H to 00, and location 04DDH from 7FH to 00. (This will make WordStar programs written in the document mode look very strange, though. There are several public domain programs that will change a WordStar document file to a normal-looking file, and vice versa.) To stop the cursor from blinking, change location 078DH from EEH to 00, and location 078EH from 80H to 00. Finally, to change anything that you see on the screen (like "VDOO"), use Edcom. Just be very careful not to change the code (it also incorporates alphabetical characters, but they don't usually form a word). Note 7. ">> UNABLE, PRESS ANY KEY..." will appear due to any of the following: File too big to fit into memory File becomes too big while editing File not found on disk specified Not enough disk space to save file String not found with ^QF or ^QA or ^L Pressing ^L or ^QP without ^QF or ^QA Pressing ^Q1 without marking with ^K1 Trying to set right margin outside limits ^KV or ^KC with no ^KB & ^KK ^KW or ^KY with no ^KB ^KW or ^KY with cursor ahead of ^KK ^KV or ^KC with insufficient memory Note 8. If you see ">> DISK FULL, USE ^KD, OR ANOTHER DISK" when you try to save or exit/save FileName, consider using ^KD if there is a FileName and no FileName.BAK on the disk, and you had originally pressed ^KX. Changes from previous version: Changed ^K ESC to ^KD, and fixed a large bug in ^QA and some other large ones in the block-marking sub- routine. Fritz Schneider wrote the original VDO, based on a program written and copywrited by Richard Forbes. George Peace converted it to work on the Osborne 1 (and Executive), and Frank Muennemann translated it to the more efficient Z80 code from 8080 code, and added several good features (VDO-2C, from which this version is descended). Eric Meyer deserves credit for some ideas from his VDE23, a cousin of VDOO. For use in the Public Domain; not to be used for sale or profit. See previous copyrights on VDO. When used for your own purposes, feel free to change the name, these notes, or the source code (VDOO.Z80, which should assemble with the public domain program Z80MR. I used SLR's Z80ASM, which is by far the fastest assembler, but costs $50). If you have any questions or suggestions, please call or write (so far, I've had almost zero feed- back on this program)... Doug Cox 140 Monroe Dr Palo Alto, Ca 94306 (415) 949-0624e (so far, I've had almost zero feed- back on this program)... Doug Cox 140 Monroe Dr Palo Alto, Ca 94306 (415) 9^S Left ^V Toggle Insert ^KQ Quit ^E Up ^N Insert CR ^KS Save ^X Down ^QF Find (begin) ^KX Exit & Save ^D Right ^QQ Find (here) ^KD Exit no .BAK ^A Word left ^QA Find & Replce ^KL Load a file ^F Word right ^QP Return to ^QF ^KN Rename file ^QR Beginning ^L Repeat ^KP Print file ^QC End ^OP Page/Col ^QE Screen top ^OC Center line ^KB Block begin ^QX Screen bottom ^OR Rt margin ^KK Block end ^QD Right side ^B Reformat ^KV Move block ^QS Left side ^P Graphic char ^KC Copy block ^R Prev screen ^KY Erase block ^C Next screen ^KJ Define macro ^KW Write block ^W Scroll up ^KU Ditto ^KR Insert file ^Z Scroll down ^J Do macro ^KK at beginning ^\ To non-letter ^U Ditto Un-underline ^G Erase char ^QV Insert on ^QB Goto begin ^H Era prev char ^Q@ See VDOO.DOC ^_ Era prev word ^OO Change case ^T Era word ^KH Help Screen ^OW Window ^Y Era line ^QH Help Screen ^K1-9 Mark line ESC Un-erase ^OH Help Screen ^Q1-9 Goto markp Screen ^OW Window ^Y Era line ^QH Help Screen ^K1-9 Mark line ESC Un-erase ^OH Help Screen ^Q1-9 Goto Word right ^QP Return to ^QF ^KN Rename file ^QR Beginning ^L Repeat ^KP Print file ^QC End ^OP Page/Col ^QE Screen top ^OC Center line ^KB Block begin ^QX Screen bottom ^OR Rt margin ^KK Block end ^QD Right side ^B Reformat ^KV Move block ^QS Left side ^P Graphic char ^KC Copy block ^R Prev screen ^KY Erase block ^C Next screen ^KJ Define macro ^KW Write block ^W Scroll up ^KU Ditto ^KR Insert file ^Z Scroll down ^J Do macro ^KK at beginning ^\ To non-letter ^U Ditto Un-underline ^G Erase char ^QV Insert on ^QB Goto begin ^H Era prev char ^Q@ See VDOO.DOC ^_ Era prev word ^OO Change case ^T Era word ^Kv?VDOO.TOPQ  !"#$%&'()*+,-./0123456789:;<=>?@ABCoDEFGHIJKLMNOPWǫ;\q-_oq>^qsu<mڦ: %*:bYq%ㄳ<-{~mgL8E<76m\X$l⸱4j+Ks+nL\8[Ž<%MϙpLxק3쬐ꬋu+XPDLHՉmKs+!; ԭ41t֔,&ńydX`A|E Ma1Aw~ p&Qpc)^Kbit p&Mšmڦ̄L psu%p&Ԏv X0E0 )mo,15SfuLNR@:b*bXel$cW@g ʠյ296198j֘,L(m΄:Wd ,X)TXFgKHm[xnVl'HjV u$KdG6}Z| BgA u$KdG΂Ǜ/,(9I0Ȏ $:QkFJl ˊDŤ3,ڦh_bq6Y]+=yR_t/mz΄:zG'U$Q0;U*jVzgBRHg¤DtBUJHv 5kLKж u&g¤DtBUJXlm6Lf,MnE'Za:-TǘȎpsuFge;` K2(3elНZKGh_hmQnC[JTWXB*{,#39RfhXm`D fA6 (&`E2VVp&̐mzݩut|Lج#XB4wRi׭{p&ѓx m E 4{NPgj~",&΄DUʼB6p&lѡmڦ)PGOⰄ<1QAS@Y^jf #ƯS9iY ΄& 86 'M ח*Q 8,blНZKGh_11tco0Nm/|l1A7&getep&,4Y0 M΄& 8N݊:S0: %P%r*`Bm[3Dt|h7p&ѓ8,a,Z`΄<1: ڃ3av,M#OTe&tep&,4Y0 F,0~ڦӎIU6 X3!۔1 ʼQPGOⰄAvTڦggetGb:(3a",&΄lS@*z.3M_GON&(3a",&ʨ2i:dJRh΄(3AKqJ o]?MIׄY,8 5kerp&ѓ8,Ab΄QUՂ 8o?B Xp 8:Mյ2yLHV3Dt|.3%Nt(A0&*m/,*8jV3ġQ0;L6}Z| d4 ( dg¤Dt>M,A1' '*ؑ'u؜,!pmӟ4\E@FFvHytJxD3:hpHMM#Ȏ#Nj0D,L%Q$:M(Smz΄.` p&"ۇTGE `!M_ŝ*SyٷḾ30;DZJHVJ:b񊅪`b%^3ڦOD*b,1Q6[bDҭ4Q'B: (V0PTrV c0d xQ6=@/a΄er|9p&Tux tdj׭Yc"p&MU£W[W8?}w诶}k= MϮ:e*XV(XȓI@6o6qF%gB6.;(8l~sX'wXV:ר2#wLYcq l;jDNah`*@k+4 "M #ϤmS]'' N[AVhљX 1he6qFNi ,`Q1dWDŽM7VHA ?^bx/ɸf 2+D& |.#[4 9%hVhJ4,96q͉)ѰtmsQ1cvfN`첳BPѓm/.3%B%/q>>vy{G\)+39ܦ m_n;hّ3 ǥ+x\:A-6or bv\<V ShQndQe^ݦ m_<>\d:m/}mo~ƻ-8+%sQer3!ՑmGȚXmo~Sb*g1-A>m_|sO?i,6e ?<Dzl;Yydr<"Y6}1Q&cZăC/2nSfxˊgndm/%P1%,@er0Kg)SE?NFN;q҄3mWVz3dIv xDJi6!Y|]gi+/_xEK+DX +full :Vx3y/UV*@^MamnbPdedp&n⠇SJmӟܘ)P%C6mG80LG;Qڦ :rll ;dM637 jB6wպ/4=ۦ̖#O&KТ3S 8Ώx&ڦH3 Tc0 M?>vy{G\)+39ܦ m_n;hّ3 ǥ+x\:A-6or bv\<V ShQndQe^ݦ m_<>\d:m/}mo~ƻ-8+%sQer3!ՑmGȚXmo~Sb*g1-A>m_|sO?i,6e ?<Dzl;Yydr<"Y6}1Q&cZăC/2nSfxˊgndm/%P1%,@er0Kg)SE?NFN;q҄3mWVz3dIv xDJi6!Y|]gi+/_xEK+DX +full :Vx3y/UV*@^MamnbPdedp&n⠇SJmӟܘ)P%C6mG80LG;Qڦ :rll ;dM637 jB6wպ/4=ۦ̖#O&KТ3S 8Ώx&ڦH3 Tc0 M??@ABCDEFGHIJKLMNOPQRSTUVWXYZ[\]^_`abcdeo?\eYP:_I>|5&߮e2Xg.gb2Rhp)DÄ'&# f̍^$r;+ྲÏ>p_rnJԧ=ɔL(k>!eZkR kV3|̴!fS +;fi5w+;fL}e p_S&YᾲLU}eSnSB\3ڻsH~NI6u.۬fsյIZ}g:9ͷM^業6)˶~a0NçzYԏJJC8`1i8CC$~`ryp5kT4YN7fջ'a}"-]ɻ*=>[<,[eh`^7eUU46%D#a-  3Aq_x+|MjUϯzɮ_0XKo95˶%wUʶN$s&IJQsNj{mTzw*;)?lS?**;SI.ηmMls&n*:d{&|cE]r&+#z& jx`"hc"x }pL0V+.LMRϯJ2i;D#0-lbv0A4T`<D#0NL * q 5lx !2A; 157)۲7O557 ]Ϧ zݖeSRA۲̘ 6T &,D$ T c*SLL}We;oڟ$|u`EFɗn&H%|vT[e;oڟ$[vʛr/`gx+AL1)X&tA*Lnv޴?I|m2u7}>9o+mΛ'20A; k*3uXה Jʟ c*SL2LnU[AsQۻo5٭l 1R,SLL0VXcE0,ye<Ӯpa )XW?R+,KdxvzcECVuL}ٴeLmMԊ ƊM|W_$殘hK<;̈́Rk֨&)oMI[ujWk[ Lď&#vuU>'3W|QEk IGߝϾk5l@ۻMڒ ehp`BߒReMFYn~$ss|H%v5R 1A4\S0A4tS>v!&#T&?^߫2Sۻ&mV1UxvzѰaty?1aL8z<g_/L=0AL ; *zWUT|; ƊM&+|L8z =Snq{.O~*Iɽĉ #5O2f5jJ5/ޭ@ɠ|rʚ׹Tf~iL #}s+O*j{mf߽9O*<7L&E8g]u[6mQe7UN?xUJeܙ?™z)l2Qa'&)If> Gtҩ|~rҙzMWrQoY˃+vL]\BDO's\?3'M/jL?)TWoT3AOZ\c{?;klynTRIU noռU/0AW\CW[Vf+1ADon@WIf^$?BܚRIf> G菋?ɕN6I/rҙzM] O>UyIT[oTYFeGTg|,QU&l$Iٗ5Gcϔξլ6m0Ap?rͼMT6m0ADuEf_KuO6IynL>.^o-SM\[]U'?(U$e4L!5O $9TRUvR_f͝ #N;|IZݨ:AH>][GMR&}|n[eܙW0VL0V>o2X[9&˃_er_0-8}e_0A*O2I]&ڴuLTzMGN"ÚdQy_u G[}dp>?*^^6Ksm?"ڷ.gp~JUi_K:7/m> zG)O>^^6ɤ&I~wYYfyޜTvRk$5GhA\~g&x31zA4! {HR>QJ}`U.C4R &¤{v2A4ѝg6!?_$-խ'ͦ$e4LN2+at˙`|/dMp(Lʃ+vO軓RͪK&S&= IrުYշwIW0VV zW?*Gx+8ᾲ/es0Af癠bOokE1 zOUfjH^ںn԰ɮ_0Aq-􀯢Ĩ2SCV٫Nn&<_|'Zsڴu=?qTWImML/2 zLvfu*M6kRߘ?"u)OIykjUf}|n[u5۬Q:mV3AqL'_Qk[թ^lFm\Y_YB3A8??TWIMRe$9*;M['L!US|[S&MZes&`pzT!+Ue'6IR3AİL_yWᾲ/W]ԛyIꓯ LC{ e`"]}O.J2i;D#i>7LdeFKi>7L0VLJX]LLJh%!ѮML T&&]G&B뇔 (;[}OM['w&+߽9?d_KTSlKuIi䮮sÄ!ZL7}>JTV1whpXה 1vW,D#i>LJX]z3o6]}ٖꓯJ+q0Vo.0A4l8 ce?u>e:>r2A4ƮJe:>h021+ Ra121{NpPm>Q:mV3A4tSA*L T&&]B;%j4;/]11+ 4zHq%/ &fchML0V˧N*TVm6mlթ^ջ䥭~a{OLC"t=ħ=D#p4ˮș}}^&L8z{0A;1 YLp(q%2!.0A4FSH aXO'&,DÆ'&, xdh0E*ΛE`ѯYOg1by&~D |7v˄c岘=݀RHԻU}{}4LZ :$- : .X&F*|&XJSQﳶ.ԧ ߰zbw9>jez3o6]\ Ӄh>Ӂ G/g̛MrW>WkWhmUOӃahv,21A4FHe?eh>ah0~|>1`剩7f՗m>J+Ӄ=e1L_{ 3Ӄ=DcSL hv^bbhL1+ RahLA}5-QyI4$MzySlK&x31]\X*J3X_U2QpypTo & G„/@ߝԬ뻤a': #r3A8'I=&n&(cp>?*6m]SI?"ș)OrkKe[>gRm篵 G|eLO)O|Wm:+FMX&篦?T5-Qv0ADe?uLMS:9u^k1Ar/L?LzȾm[l:7_$wiDe'n]`AS&?>6m.35Y4n&1A8=Eg+T__K?}L?MMy׹"w7b.Lq+;[WLû3{UfjVۻ&m0[=L!ec+Cʄ q}RޚZ'Ug&)ˤa-4k jK5kVMQ繙e0[= п%zu/*;M-]nթ^" f̍M:m&T&KJunuNYxTcnN~U}UfQ>/Ą0Hc֥KuONmS35. .L@o')|7vZiZ]m3:g&tA*L T&&tA*@}-QeNm-զݖ*s&Yh&bLe]ԗV Y[j.UʶN軷4Wm GP]⓱軓z:e΄0HįGW{d5M2AGȲDc>v!&]B;ʬITV$ۭ:e.W&{UsUMv+:aU.qcĘ>m~oVYimʉ'c T&&tA*L T&&=K@gjeUdg5o6d%*˳jڗR1ǿUV'f|K]I[e٨wKweҨA/UPnYeu/Um˹))kT\%ymf%CmmLA/qWH Jybhԝ D#0X|Mԗsܔ˶|V$ۭNjKbhٖY/Um˹) p8O!&+*3gb껺-y$Q5ʤQyQ&{U^*mmΛ'^$s2ߓɻ{%"KJU>'I[S~o QP\WI[|BںL&]"R5Iykj5Mݪw & jx`"hcw9;:SVuj SD=JaW&+*Z@o6ܨ2{6m0A4 aO`T@.նl aUѾ eѣx ѾUH%:7.*7LDw)ڷ0V Ɗ+*s&%®L.gbJ{g5۬Qe$Re'6IR3ſ홠|PeQS^=u:?d?P4Opp. 4!EA:QRgtŞ za8`i8C=`[pp& {H8d)uVEL9 {Hp44|7z=8+>0ǿշ[U[JԶ}y.\&R}̤{i}F^oſ1*JWᾲçZ[zoLf=Wv>|#uVE:Ĥh+;|io3S}s{}Hpp?J}7E!/TEjnMe&>Juj7DUfPm4LaH%*DÆq5Ą2K<MDY&Xa[g&Ƙ, &Ƙ>?0+ Ra.{Ϡ]HJvLTjx`h &| aCqLkSpx %>DwL8FD$ׂħC4R oF&Ϡ]H 120H 3hRah &| ;ѰAWq-q޷>Lvįg.$i-1)TDŽ0H X&= i-KZ!CxzbZbH%|iovGr(L@IiDezn_i_KՖL T#vr&̛MrW>W\<,VecEYaWU>[uj7D}[$/U=&L0V}pL0Vcj&+Etap\Ld]n&YXES@o5j~&k53ayIՙj J݄۲7σ}/[g&++']: G }wRv:+)w&Ϡ]HTި6TQM2U[N&{UUWLLT8&&tA*@o&nUk*3&8즠"R]oMԥcE|%Ի䥭~QI6imL8FeWLZf+&m-UʶNd! 6 )X&x31flJOjkuj7:5٫/T*}Vzu/*;S$Lk5/Zf[M6EMT֨wz&Q[2Q_>'d_Qv|Gv^Wm|GIYzuUs6T>/$;LUWwUTwU0A4R g9Dck5,ƙ -i5=DcLe vQg*3-Ö ]a xjL j& 5e"R>թ$L0uMpx UW,@ߝT;CIW:mV3A;!y͚6 D̈́1nw'Ug5kd+CɺGWt1AG)|7̔,V3qt31fl*3uo75ndR{$Iͤ({+*Z@o6ܨ2{6m0!.OJ5Mݪ6RLTvRv;$DCi}@m*3fd׹lZF==DÆ1 ]a  e_S֨zM%px %35cTc*jmܮeժS)kwĄw=i6mQ}y.U[2A4F`1衫(KJ5mٴ:5٫*Elnjj[fMRջ4j.C̼$ws^]* ۪|NԓzMVuebzsy=DcԮ)h^;ujW(LoJ8~H)i$3[h L0sHp(LxgeR|RNI& 6MLX<~HJJ-ՏTD]o6k vSL0VowV3D)px o)?Ipx o5g8=O>c1U[&px oLoU|SeBWQEk %>U軓RZF] Vk~֙ qW+DÆ|)|N/m[>QmNMV*;dhM2+ cB\"T][C 4NT֨yӾ<- vSL px~*SqcEVyg5oU{ _?L0„cx~;T ѰaLebv1DTDŽGaBu_}w'Ugյ.> 3ЎįU{ UkmseBWheBWhev1A;px~*1C yf&Ji JnbBU)Ra"5LKvL8zHĔ/QܺS?']:R]$dD}m6IR/Y%Y}|.jLg{ U&&, x3uo7L O'&M^d׹lZe^$ .X_F][]줌Um5g"0^LںTT_>ϥzɒKUf&9*;I 1KN!&=L.#R{i aĄj7}6w.QtC4Oϧ` .`5"Rgm]n\wK[mڴu„c %4R{ԩ$L%~U=Dc&YaØĄ0H &"c.{:2A4lxvWERH'Ֆy6vV?bh 2U= qWH qW "gB\"ÄD„Ga,K}wRVT*LL t02+ & Dc4;oeB`p0)X}3좬9D#0KNL O'&hg`px %HG& Ɗ@WRT@ڴuU6kTfڴuT]tC4lw3L8z<#Dc aXT.NL ,L^su5۬QNTf Su_qW~ 7 6;D#.{dBWX&Tc*ğehp`hpfhFf71XJu}?Wsd[줮f5j SuC4l?u> .X& t&&T GP] .X&+]IQn7INjɖRm:Qumu6ξZmML%z.*E 6]훛xX&=P] a(]Q8N}ҨK022A4` t Ra.]G5Ä0L8z&Txf0+ RahTb 0Q]Gahv,21UxC4$X&FL0Vf) ]E & cWE&&, G1Txfh~*]11Q]JKWLL%0Vf) |'& c*>[<~H~Wߓf։ܾ'6R]FY\ͪߩ/͆ΛjK5*Ze5Q&{U_s[Ym=>[<,Laѣx %r& c* &x3Ux~0A4l5 LLEuz׬QY$y&lVI]6eU}Ge'}?_*3uM:Ͷ jPWk$dJWzkY6u.۬VY6mS*](zuUesZ&Y9L  ˄GKi"xsyLL.#w'5**;M['L0`Cuӆ 1vߜx+ynTVI ]a} XJ}SJ qH Ɗָ}j~&[ժINj J}TکV7T혪K|Ҳv0A4]뻤ah`<L<3pL8zAWRTu:+Fm:aw9SoھVeզ*Z{F*N{TEk1CTEkW R& SBqL 혠aw9;$we[>|j~&ԩl L.gb2C4l+\51A4R vۇo|2Y"5 X&=`dY"Df>|뇔 1oR۴mf5j.UWT27Y)][窾K*UfVT}{}4[5J;5M2 FC4B<r;Y[\r~IwU 퀾V}e0 FK|$sNm3+ Rav G1 FK*˙a֏8p>LL5wU[Qnڴ[:_L]׹Q۲iUfꓣF}T[L>o!MOYf5ݦPV˚ 1B*LteH%fm&&hg Daap( ť0aHp( ť0A4o|'& c͉ -_?@^oפ.$_Km2wm~oN2A4R ЗږsS9Q6mfg_*Z0 R\1B*L ~pᰮ)wxX&=O軓3o:5٫"]67wK'bwgh0A4š)uW6a"QU&Ugj,3$kf|bw9O{F*a,I Uަ`xL@oVLU|&~c+.@/Y^_m/5I'u}-&fBWjߛdU2kjk5֤O kR말 La]S8oa]SjLeRS$-՗Vupgw9Gw?hK5~[m*U?SV>oNL T&?q$'&tA*L T&uV>':0A4š)huW6˄ yf&갮-U}lyn]TDd=TXZb'"@_XZ}I[TTyntWpfͼ$we[>O.G&˗=D#`wy?1awrfͼ$we[>O.;&[^TUdwrC4F˗Ra"U&ԃ5~٫cE*L0V+]G_7:5٫zsy{& kmٴ$KNM\^ 1Яf[NYDw J(v" kR말 D#p8|nSҨ6Vo.r.]^Mv|-ofz-F]^*kUdwR9+~'wSr-ۯ%|f79٪]D]פ. x+՘ʤںԨݤ¨wY3j0ԁ aa]S&ƨ,л^kmٴ-a]S&x31VnUZmM,E%Y]F kR'mVmdU[+Z_yVQv~3Z*19JʟЛyI#v/R09JћyI{)Dah &||m2-~Q~) 65zWUvRԶl &v@/D~ۖ-a]S&xxdh &5DcLe TcaMjںԘĄ0H 12 1֤OA;V*˫\eʟT[&~bw9S?}:3UA=J  f̍M9 0&R& „0  ˙7S{F*a[ل>ʭqpog7Ϊ`1ܪqpMJgj0L IL?!qpML8zTAG&B"C4R +tل>ʭ]ϦovnY 7Eh &vnBoVѮM8Vaѣ :21ES{`8&Vnho[nY D#057  Raѣ :21ג>V&nUͻ%Q/o\&jjv횛|dcE ȁ>ʭTqVmrN*35n5 ]횛 chf71A@of7M857iRV.+`Tپ&[&8즐 @;&h즠˙OXxS@oVѮM8Vaw9 w'557IL.[nbBWhH%vnb}j횛4V8I}[uQY Fkehvn 0A; VvL.gb%*INr[&e0VÛ)r&=L.񇲢Nj.ջ䥭~ahf71A4l0 &bLeb1TUYw'5jJm DY=LԞ Lj'+^R:o:S2A;KM*UkJE%c(k΄0H ]a y[*alQ׹i>gw9Țy55Su_uѰpx %HVIesuVƫ2S*Dp(kT]dݣ+ RaBeV&2KZωwu}kTsNm-ynTU2 8&x3U]Y Tcw9A*L1ʺgeBpDYUg~4˙K{Tfew9S5˹ξ2Vz;Ty[*&}a m GKw'5*L W 6H%vnb=L<q %~w軓zJUf꠾lgUgx&hgp('1$ss|r}5F5Iykj=D oI}iyz7_`pL8z Y]T]|hFW Ѱx&`aoR&= &tA*LlLZÆ3˙KlLvL.gbͭfzm۲jdorOϧtԷhv^b3!t Rahf+ DÆS &r<2A;˄,V=D#00A4FSH aH%HW &bLebw9I?C4Oϧ`]ԛyIG꼋{ Lę GǠ.2A;˄,V?d_KzkYړ^$dMrWmf5}m6UVM['LzXe"0w93H Kw'5*j|?7NJ/ Ϙ tĄ0H 1B*Lp}cE|<˧3flz#SubѰa|b3&F*AUL0c*g1vQ/ &te1B?ebE|,  t Rahf+ L0V˧NpX>uI]|sT$s4|ki>2+ ,X2.O O;qbtwSL.gbʗhML0V˧N 6 SL0V)D#pfhf+ ˙%ϗ=D#0BML0V˧3A4l+\51A4Oϧ``|Lf{3X oș څ3&T8,9D qpMLÒaL8zaə1]xapA Dc4;/]1T[>&*;)=0+ ,ЯYbi3:R˙vqcE U?d_KlF$Rm{r@ߝ\wK[m: L.GIͥzu/*;SI> Ɗ@;)g1X<,:aK}-Q[n~L5sLK.Z7U:mV=v۾${L˧ΟTh&& c*LL.#LDn&+ǐۡ˙ 6f"Lr<2 aØĄ0H 157)H%[nbBWSeh[n 0+ &+0)˧Οr;t-)=ְ!g& Gr;Hdh 2XvH]$U™ ƊxYsȾ2SmK5ʤQge$ 0@ߝԼiKINڶ (;TEe'uj7 ycE| - LLzXa83|<^>=DÅ3˙A*L8zP].`dSt3&+02}˧3U=Q<2A4R +tcEN՘.{p| J;F?u>|{+B"gw9 iH%vnbh0 21+ Rahvn 0A4R V0A4T` VB*L0px R&p(CW Ɗ+̧L8FȚLLѾuѰapp2A4t80A4R y銉 Vkchf+ ˁ!Z2Vݳ/k&hg & K/L8FaX|y`"xX>u Y)77!6 ehp`hF˄j0H%hDŽ0H 1B*L0V˚3aBD&#ǐ/ Ɗa )So&wO%V!6:OL2L0VȄGx̛MrW>W|3a+0V6Er&F*apՄ>t|Ѱ!eB L.#^>L8z K^+j<]U]o6k&eW֮{ uM cM2X* j SIL8z]O2]0V=ZBՇp`geh*7˴v~C4Ư_S苬T|Ūf~a"xsy{&+|L.#Dcr/E_M[MRdU څ+t{&F*p!eh` CHѝW-~Qm֮U`a Z)X_FK ar˄GkWh&F*a[cE|rnJMR{ԩ$Lŵ+^4R +tѰar/xX&#y}ږM[0A4LLl@o:VV}[]7ܨ4f~ah 2 R a"șp0XLkWThFf71+ RaZBaøvr?1M~n-~Q_SԷUW*d˄G%_ ̈́R >'/TlKԶl ]XBWƙ aX^\11A;˄cX<1!0A4`$Wh021+ Ra څT`"T&&=ǰr&Ϡ]H ]axjV]G\"RabZ<0eWhNjP/YLT[+}, 6 LX< cXB"3u`b*|-aÙ 1:eh0xX&+p=Ni]vC;TA*L0V˧3A4l8kBO5XL Ư_cEP<'I}cE3A4Oϧ`p0ˮSW,wQX]]GNT[L Fr@ߝT;0AbS<ݫcE*L0V+]G&X^,^՛˫3A4R )DCv.2A4LL!Ly&=DÆʽbB6٫ZB3A4`0VΤ?kmDeږM[0AGx%2A4R kWhL *&& ԩ^>LZ#0&vaknv3Ў w6iJ$75yM ]aDcknvSЎ aa]S&+v _)k'_Y]46j[։:ezZm=SgR8z<5@6٫2QUԙ=AWT>x+y5ʤQVԷU[_8&&x}wRukcE&6kRjL=NL '&F*Y X&1 G>~6}wR[u6ZL5zf2+=DÆ+U&&, (;&M J횛Ѱx&1 xf5*L8F8ZK4_D%ͼMT[w0jknvǏ=DC3Ǐ=D#0n5 aØa<Iՙھɖ &8&=Ǐ'&+qkĄ0LT8&& c*Lćo}`1|m*?>~6~ucEo]ÄǏ'O{Ƙg" )y,i 4cE໷4bGYSWTњ=f GKߩ~+{+|r&!eb?):wqcEo]Äc.21fnv~ITVmV2ua m G:-DÆ+U&&, LjǠ軓jmҔ*;:aL0V]Q 0L0V]a>ealQ׹i>W&{U]a>e1BC4R V0A4T` VB*L.gb|H%tEDÆ1 e1tL8ztR<11u&{F*+Uޘ 6LLX<,˗˗uC4Tp`h,ʄGWT|)TBWT1uRS}=DÆ}s>[<2A4ƮM2aL8zϥڴueRgi$kޚm֨]D%S~C4l?u>e/:??p0!]DW&+]d#]D?1yI(]᪉)]DW=D# ]*& O/:?1 S c*SL.gb]e3&C4R ]sA*LѮM!&x31|IW=DÅ3˙p(L.}5 ( :lbh021Dτ0H G1T䄩ij=3H qWH]}WIm:ahf71A4lST`"gѣx %>9aBWT]ⓓ=DcknvSH}**;M['Zvnbw9SeP|m]u[LL,沇hf71+ Rahn 02A40 yٗˠL΄cărunP6 ipC4R ]s0t9~T&&=0B?Nj4|\{l:}y޴/ergh0^ & ( w'ePuV.&3 O{F*ajvDcS7)H{rWm 0A4y71XTAGR[n[c꼛T[0a®\I}rvRez&Q\&ƨu`KR*;wD#057 1+RAmΛ'rQm^׬ CGaLebѣx r}wRIVߓf}y.;DÆ3Dc S@gj}>\TRIܙwU04NTִ/m=oԻMv JScE|%|BS }jknvjk 1ZaØQEk& &zn_ջTI]flx|'ͦ?/ϛdhL2 e0H  a0Q<Z"D#0+ Ra1ayȾfz7_Pe>\&eLLrycEPhS@o]ϦovnY D#057 G]!ߺٴu&޷eQ[4No]fsN٭1k[։iWT.X9[FW[]sqVmr&F*aknvӮvah00a0L.#DÆ1 ]a L)& L  e"R}rԷ'U} RaBW iWH|û ? c*Ӯ=3 DÆ aw9^gR]l[R%[[v0+ Rah021D|2Q+$>N}yVRm &?0a®U7eynˤIٴurWL.gb?mSAhpXה GAL& -ih*7Ѱa Lę Lj1@ߝTO.ra"xȁ>J557[VuVmH%[׉ „2 R a10mge~H%vnbhy =T[mݖi01A4y71X)'1uMLQw:_F][]VI[>'y5JL8z0InR?SV}_ԻMvB_LLLT˜:&&+ALTh&&hg J D#0λ Ɗa I߽kmFo{l:QYӾQ6 &%"횛3@g]u[Kn]P:mV3X [mݖiO.D#0+>T|۲7O5 Ra"xX>u J m 0A4R c꼛`O0_Pe%/m]NNT6 ɮsf5DÆS X&,,%21 <wUnuNYYL3XES@o횛qjv7Γjk5&F*aLwH% T]sTvR6 .yi뺭_T[T0!0X .gBWyf7}gjZRaB\"RѮM*;wzu/L &+S>Ԙλ Ɗހ~WVߓf։46QYӾQ6 &>ЧqpM83X<,:'Mf5y4R]Ɗ`\>JePsKn]P:mV3A4l83A40 y^2Q\md"0ˮ_, =DC0n5 ]aDw@ow*35n5g&hg癚&nUvRy[2i5{9D#0n5 ]a I[Uf5Zʌ 1n5)hHT[$uf71A4uUf]u[z4erW6 &&.{C4lUnbap(î\~FkٴuyӾ ˅ e1x G=w'UgH%nb"SL8Fpt}wR\u6˭ޚm֨Ve G7bYJ mB?n5Im\YNY>\`9&@ߝlF[5˾O.& )a1AUI[nnpoD#0Ą0H Ɗa ?d_KTO.ɮsfjkfLn|uH%nbv0A4f7T[y7}Z[nbh/, =01U;0V=rVN bL0V>o2XK`-4ǿ?_$}\m]G&%b0@]I[&x31mfɲm^ksNf}/|n<7;S|;W~;rTIO[n5{~QQs}Wulu6d=LTh&&1 (pt"v/LL'P=$e7U_f}bN>zhFf71!0Xk&%"&h즐 ˙OR&dcE n͙]LjƊЦș]LjJ횛Ą0H 157)r&=f GSa*ƊЦșp0!.1&F*aknvDÆ1 8r@PRH}[_$}\m~`w9 w'~`g&L_$ꚽ&Q_QL.Лi>WIL}xqH LL'_Y>aJrĄc {Ks&F*aknvDÆCʄ1 12˄cҜde*>.^a|L0V]%.L8z&=Ҝ Ɗ Gg&x31Me^%zkYLJUg6IY&>.^a|L0V]%.L8z&L.gb?7ɩTe2kZ>>sZ &{+xcE  ѮML T&&]G2ՖvQr\ͥJNj 5SIΤ?.^aIg"* 5DÆ1 cݶ65Nݓmd'w֪$OL0U1Igw9Se{ 3A4R V`"T&&#57UQVx&+qkcEUrτ q}>KU$e4Lqh`<D#0n5 &bLebw9`ĭ9AW= q'TIjjV, ߽9Sb+r0VRu[LmS=a2{+?1Q`\?1X8ZĄqE~f2ȟ L0V.LjڗRm{r@ߝ\N&av})wUT qpML gSpx 6L L0V˚3X<,:zINڶDvnRmc5C4 ]sTP >KRMR*;/,Zm:ah0>X?o_K:7/m̈́j7@>ykUS$j>IÄc G=w'iDm|V?SsLz~' ew9 C@f aCqLTh&&\yS]EԙZ֝Z;q*u 12 VlU[dVS$jknvxqE. 157)>횛Ącykޚm֨2SM\6mLLв"[3X9a;TI}WIMH%vnbh021DτG\ LL'W6)UӾJu>ʪVgk&Xa02=X_]aa8 Gw C[׹yiku.LL8z&?|CNYn=i6mQ4_&= wޣ_F%M5u_?L8z` na8@?~~tRjKs&x31=X#.zr5M2=XƊ _tG=Ӄ+!X&Xae6X&Xa5l@ 1 D%˙O56)k^R/Y}ٖm^業w ƮVywU 2A4R ]QS)*)U[oTYѰas'&]®L 2A4O;q }1]|8\yVKT[_5ښɻUƊZh&V=D#0n5 aØĄw=i6md8C 4Nj~&L8z`R[nRmFf󤾭3jjvapnxfn.=DÆ JH=2DLL8z* }wRM\׹yik5'&&+B""I[Uf]&a1VW<1A4R ]s0A4lS`"z\PQI}WI?3[]`"r;n2c11xB3a!e8C -ˌ Lj H%[nbh021a!e8X'ͦL8z<q.cE0A4R ]s c*S5OokgûU"Sߝԇo}`n.O{+gR56Q3*Ⱦ2S_s[Mr*ܼ5wħ=5gVWh& D#.{dSp0US_d_M}NYkF=9 څٴurWA}[mׄɻUWT8&& c*LL8z<VWhIͥzu/*;M['LX<~H`"4&=wku.D#057 aØĄ뇔 &}~&L8z<=&+qk΄ ޭL8zxJ*SMR&j?Wlɾl}?_m$75Q5Q_2ɻ|o0H aØĄ뇔 &1[A*LޭG{Ƙg"5Opnw'fn.Xt[mҔx&#[%21yV!]sB*L8zxV11yBa¤L O'&'&=LnuDÆ3Dc| ɻO{%®L}eB\"Zm LL')uTB*@!u?0A4l.)kb3X*v9g}pLlL!<  8?1%1)X&tA*LDg&F*!v.f`h & L j& 5e"R1D5e1g=DCpX_?L!h& )(iRhDŽR ]X0 Ɗ`KńD qЎ J8~LD_ݣ+ RageHp(C*QDÆ1 &S&=ǐJ.g&tA*L Ta`"R&=ǐJѰaLebBU)Rah~H`F*A;&Ϡ]H qH 101yq)!X]3˄00L8z%~)X]Ɗ@WQ|PeN*QYN٭;L="LDC4L!DÅúL0Veapx Dc1"_tS%2E- 1F WM2A4hweh`[WL2+ ,DcSL0V=ͩ;{͟ӯՇp`"1| 8r@0Is Lćo~`1x wEѰavW ǿ;諤TR cM2X* *]*7W?/_cEc~&lq>?p(Co.2A4lUnbCUn )70V=ͩb08_?/_cEc~&lq>?p(5 arÏy>&rSLָ=0Aĩ*Z͟ӯՇp`"1| 8r`L8zAgh0FĄ?DcvW)X&y~cE(L>(uwKaE[s`[W~ZoL`ƊM&L8z ?1D|`ѣ0ABߝT[gO?0 !Dzs9Dcߺb )ȟ0V=U.B}L]yU;FW/8 |PUƩz/*OC80E/񼇱"1| &wܙ`TLX<,LyHU LjWvLDqL0VMOMnundMLKv@|BLL*v@md"Ȼ qЎ aǦKuj7j6IR3X z0!.0!.ve0 G ]V&Y`6m]r~eh0F[h~00h\;:SDշwIUd6ɝ a+&&tehѾb }_U^% DC5k`Y &F@KUY6v.Ѿ9ye$VT}{}4[ujW5m Ɗ`0,ЛZҔ][窾KUfVT}{}4L Bch0j71ߒR5]e'U>'}yVRU F`BU)ch``/.gB\"cBWhѰanbg)DcE}w9D`/.gh +AELEoC4\ Ɗ "r&+y /INzVILK`T0}Kdb+iD &ku{| q 1&%b0Le{v7;0L0V^*&#%JW01f6 ! !|w9|f̍^$շkD]o6k=DÆQ늉 ew9wUTwU0A4`z{ U1!a"Ȼ q x.w_X, cDx`bZDaH%fDC 1p~b3%|nnUϯ g}p{F*a5DCLDw LL}p{+]EaA8UW ƊUpx +  kL8`h*ПFfPvz~M$-|ML!XQYUVMRDÆ:o\Y[h?݀~WVߓf Lć&F*&eѣx EQ]"MDkTm}ɝ aØ[hÚE)|5$ ]XehR&hg00A;%MTvR/ןR.q.fXe{ c*lq8wLć|`ѣx EQ]Te'dhhV3ߌL T 6LL L!|(K|D|?0aBQt.2@:Is SQt.!vSL T1AG,Kd"\LX<@_f%)cdj/j7ۄ Lj|LLR{tꩾkse[>|`hho0Ք Ɗ`K:$e] N&ahhR& L0V^*I=&*A-EML}g&=^Ch'{va5dzmM۲_ԩ$L _M`TL`/na jY>W3o[<Лze„GE GP- }wRV?oT`hp)лeehgSLR] j& LL0V^*شeɟnI] eѣx ղDHhhV30A4L8R&+A/ЛMMԩ$L.gbzdC4l GjUjYw"{cEYaDC!fdh{ah &| ;.f`hpjcE0zl2QEM~ۖ$sܙ`t zgJwE;vS\tPWXy!`|/d"XD q 1.W$me1"_tS geh,DÆ^ &=˙g]hp_Og0V=1]?11{+]EaAz)Im*5~k!`|/d-4ǿ?_$}\m~u/5:o6mVur<2/Q+.XL.G]?a8`T3q`b>oNiW]*|C8kdwy?핮CʴvrwHn]+W™:+>vZO'~*]EܷԻDͧ2iTe?u>g2T=t3Z=t3ЯY%_ r{ gO}kNe+\pf{ g"7]&y+™h]+<1CWxb2;_=t'7f5j{mV:mV3λ=t'mzzɮ_kfs}2+,3Wv7wf+4_ 8cX IՙgV30A4L8R&+A/ЛMMԩ$L.gbzdC4l GjUjYw"{cEYaDC!fdh{ah &| ;.f`hpjcE0zl2QEM~ۖ$sܙ`t zgJwE;vS\tPWXy!`|/d"XD q 1.W$me1"_tS geh,DÆ^ &=˙g]hp_Og0V=1]?11{+]EaAz)Im*5~k!`|/d-4ǿ?_$}\m~u/5:o6mVur<2/Q+.XL.G]?a8`T3q`b>oNiW]*|C8kdwy?핮CʴvrwHn]+W™:+>vZO'~*]EܷԻDͧ2iTe?u>g2T=t3Z=t3ЯY%_ r{ gO}kNe+\l!"9?!=:=+H9>!"7>!=:=\H~\H~H SI> SI>SI*9?;?=+I;?=ìH:=E:=H>ͺI*7>9>=+I9>=ìH|}6Iƀ)`iÊI> SI> SI> SI:=E:=|J =ŠI!9>>!=ÊI:=E:=G*7>|=̯I#"7>8>w:===+J!=J!>'J_!= NJ LJ SI~UJfJ7ȷ!JC@@J> G!JCGDISK FULL!J:>gK@Kw#2{=.!ûdPblͬeü!ͳv!=ͳvuqPsͳvuqPsͳvu!"!GPt!ͳv!CPu!ͳvut!ͳv!?Pu!ͳvut͢q{{{!"!"!"!"!"psPsP͆n!+P#opsPsP͆n!P#opsPsP͆n!On!#opsPsP͆n!O#o{psPsP͆nO!u#o{psPsP͆n!O#opsPsP͆n!~O#opsPsP͆n!TO#opsPsP͆n!/O#opsPsP͆n!O#opsPsP͆n!N#opsPsP͆n!N#opsPsP͆n!N#o!"!"!"psPsP͆n!~Nn!"!"{ !9t!zN:w!vN:w|g}o|=!rN:w!nN:w|g}o|o*|/g}/o"{>{!jN:w!fN:w|g}o|0!bN:w!^N:w|g}o|½!!ZN:w!VN:w|g}o|{%!RN:w!NN:w|g}o|„&!JN:w!FN:w|g}o|6!BN:w!>N:w|g}o|k(!:N:w!6N:w|g}o|d+!2N:w!.N:w|g}o|!"{ psPsP͆n! N#opsPsP͆n!M#opsPsP͆n!M#opsPsP͆n!xM#opsPsP͆n!6M#ops|PsP͆n!L#ops|PsP͆n!L#opsPsP͆n!qL#opsPsP͆n!5L#opsPsP͆n!K#opsPsP͆n!K#opsPsP͆n!qL#opsPsxP͆n!eK#opsPsP͆n!K#opsPsP͆n!6M#opsPsP͆n!M#opsPsP͆n!xM#opstPsP͆n!-K#opsPsP͆n!J#o{*"!û p!_ͳvn*#"**z| }|ҫ p!Jn! *#"*| ) *| *|O *"!4 p!ͳv!ͳvun*#"**z|H }| {*"!k p!ͳvn*#"**z| }|[ {{!QP5w!QP5w|g}o|ʴ !QPt{!QP^w !t!QPt*| p*͠s2s*͠s2s͆n!n!t i!CPu>x"*|go*|go|g}o*|go|g}o|o !9>x" *|go*|go|g}o*|go|g}o| !"p!QP#op!J#o p*͠s2s*͠s2s͆n!n!4x*"!QPt!"{!QP:w*|g}o|4 p!ͳvn!QPt!"!QPYwh {*|h p!QP#o!Jw"*|‘ !t!QPtõ *+vt*#!Cvt!4x| !"{*| !t{i!t!4x*"!"{!"!QPt!"!0"!9>x"*|:{*|*|S):*|c)up!ͳvn*ͳvut*#"*#"*|§!0"*|ʻp! ͳvn*|p*ͳvnp*ͳvn*|p!ͳvn!"*|p!n!"*+"*+"*vt*|*|`p!n!"!"!4x"!* !Cv>x" * |ژ)go* |ک)?go|g}o|* ͳv* Hu* #" * *z|}|x{{6Mf!Jt!"! "!"{ !"! "{ !"{  !t!4x|L)go!4x|`)?go|g}o|!QP^w{u{p!ͳv#opspPsP͆n!J#opsxPsP͆n!jJ#o{psPslP͆n!MJ#o!IJ͵;J!݌!jͼk!l!{-qhshP$͑q'Pq!psPsP͆n! J#ops|PsdP͆n!I#o!It!"! "!"{ !"!"{ !"{ !t!QP^w!4x|)go!4x|)?go|g}o|J!It{u!I͵;J!݌|p!͂p!#o!{u{{upsPsP͆n!I#o!It!"! "!"{ !"!"{ !"{ !t!|IYw!"!4x|ڶ)+!QPYw{u!"*|{*|go!|I:w|g}o|¶*|=*|go!|I:w|g}o|¶*|9*|go!|I:w|g}o|¶*|!*|go!|I:w|g}o|¶*|t({!Yw{(5!\It!"! "!"{ ! "! "{ !"{ !t!4x| )Ҷ!QP^w*|({*|go!|I:w|g}o|¬*|9*|go!|I:w|g}o|¬*|ʬ*|go!|I:w|g}o|¬!!9t! ͳv!Yw3!"{u!QPt!QPt!BN:w!>N:w|g}o|ʝ{u{!psPs`P͆n!Gn{>{V{u!QPt!QPtà!GYw!"{+ý!GYw!"{u{ý!GYw!"{u{ý!GYw !"{u{iý!GYw1 !"{u{ý!GYwO !"{u{Mý!GYwm !"{u{ý!GYw !"{u{1ýMf!Ju!<u!Ju!?u!Ju!"u!Ju!%u!Ju!(u!Ju!+u!Ju!.u!Ju!9u3tp!3#oMf<!t?!t!t<!t?!t!Ju!<u!Ju!?u!Ju!"u!Ju!%u!Ju!(u!Ju!+u!Ju!.u!Ju!9u3t{!"+!"{!"!|IYw+"!|I:w!:w|g}o!<:w|g}o!?:w|g}o|>"{q"ý!!^w>"{q"ý!!"!"!"!<t!?t{u{"{$!Gt! "!"{ {>!Ú"*#"*|ڪ")ږ"!÷"*#"*|")ڳ"!"*P#"P*P|")"{psPsP͆n!GnsPs\P͆n!#opsPsP͆n!GnsPs\P͆n!#ops|PsP͆n!|Gns|Ps\P͆n!#opsPsP͆n!nGnsPs\P͆n!"#opsPsP͆n!cGnsPs\P͆n!%#opsPsP͆n!WGnsPs\P͆n!(#opsPsP͆n!MGnsPs\P͆n!+#opsPsP͆n!8GnsPs\P͆n!.#o{psPsP͆n!Gn{>!9t!_H:w![H:w|g}o|$ý!!gH:w!cH:w|g}o|%{u"%å$psPs`P͆n!Fn{>3!Ft!SH͵!݌!hn6!͐n{:{u{ups|PsP͆n!F#opsPsP͆n!YF#o!It!"! "!"{ !"!"{ !"{ !t!4x|&)Һ%!QPYw.&{u!t!tpsPsP͆n!3Fn!n{>!i&*#"*/|y&)e&{u!QPt{upsPsP͆n!F#opsPsP͆n!E#ops|PsP͆n!E#opsPsP͆n!E#opsPsP͆n!wE#opsPsP͆n!FE#o!%Et!"!"!"{ !"!"{ !"{ !t!4x|ڕ')@'!QPYw'{u!GYw'!"p!ͳv#o{_1{{-!"!"{!GYw+(!"p!ͳv#o{_1{{-!"!"{!GYwk(!"p!ͳv#o{_1{{-!"!"{!"+!"{!|IYw(!|I:w!:w|g}o!<:w|g}o!?:w|g}o|({q"k(!^w({q"k({upsPsP͆n!EnsPsdP͆n!#opsPsP͆n!EnsPsdP͆n<!CPu!?u#ops|PsP͆n!Ens|PsdP͆n!"#opsPsP͆n!DnsPsdP͆n%!Du!(u!Du!+u#opsPsP͆n!DnsPsdP͆n!.#opsPsP͆n!DnsPsdP͆n!9#o!Dt!"!"!"{ !"!"{ !"{ !t!4x|ڲ*)]*!QPYw*{u!QPt!"!"!|D:w!xD:w|g}o|+{3{5{ ]*!tD:w!pD:w|g}o|?+{3{R6{ ]*!jN:w!fN:w|g}o|d+k({{upsPsP͆n!UD#ops|PsP͆n!D#opsPsP͆n!C#o!Ct!"!"!"{ !"!"{ !"{ K!t!4x|,)+!QP^w+!"{;p!ͳv#o!"*|T,{t,p!C#op!C#op!QP#o{{-R!QPtU!QPtK!QPt{!Ct<!CPu!?u4x!"}o|g! ͎vRt!4x!#}o|g! ͎vUt*|-{<{p!xCn!<n!CPn!?n!Rn!nCn!.#op!bCn!n!Un!YCn!%#op!QP#o*#"*|„-{s.p!QP#op!QP#o{{p!QP#o*|go*|go|g}o|-p!ͳv#o{*|go*|go|g}o| .p!ͳv#oq!ͳv#o{p!6Cn{>!9t! ͳv!YwG.p!ͳv#o{!].p!ͳvn*#"*|m.)M.Ð-{.*|ʇ.{*|–.y,*X#"X*X*Zzz.{zҵ.{p!QP#o!"p!Cn{>!9\t! ͳv!\Yw._!Gti/\!2N:w\!.N:w|g}o|f/!R!QPtU!QPt!QPt!"!"!"!"!"_!OHti/ä/!/p!ͳvn*#"*|ڏ/)o/p!B#o!"X{!ú/p!ͳvn*#"*|/)ڪ/þ.*|/J2!|IYw0p!n!Bn!<n!CPn!?#o@0!|I^w@0p!#o*#"*|=0{s.{{{*|.3p!#op<!CPu!?u#op!"#op%!Du!(u!Bu!+u#op!QP#o*#"*|¿0{s.{{*|ʢ2p!#op<!CPu!?u#op!"#op%!Du!(u!Bu!+u#opB!.u#opB!9u#op!QP#o*#"*|\1{s.{{p!ͳv#o!Bt!"!"!"{ !"!"{ !"{ !t!4x|1)k1!QP^wk1!gH:w!cH:w|g}o|2!"{3q!QP#oq!wBn! #oq!QP#o!_H:w![H:w|g}o|G2p!ͳv#o{{*|Y2;!|I^ww2q!#o*#"{q!n!Bn!<n!CPn!?#o*#"{*|±2Í4q!#oq<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#oqcB!.u#oqOB!9u#oq!QP#o*#"{*|=3A;q!#oq<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#oq!QP#o*#"{{!$Bt!"!"!"{ !"!"{ !"{ !t!4x|3)ҟ3!QP^w3!SH:w! B:w|g}o|54q!ͳvn{h4{!jN:w!fN:w|g}o|h4{h4q!ͳvn{psPslP͆n!Bn{>{*"q!ͳv#o!"q!#oq<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#oqcB!.u#oqB!9u#oq!QP#o!"*#"{!|IYw=5*#"{!At! "!"{ {>!f5*#"*|v5)b5!Ã5*#"*|ړ5)5!à5*P#"P*P|ڰ5)ڜ5{uq!QP#oq!An!#oq!An<!CPu!?u#oq!An!"#oq!xAn%!Du!(u!Bu!+u#oq!aAn!.#oq!JAn!9#oq!QP#o{{6q<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#o{!|IYw6q!QP#o{q!#o{q!QP#op!ͳv#opsPsXP͆n!/An{>{{upsPsP͆n!A#opsPsP͆n!@#opsPsP͆n!@#o!i@t!"!"!"{ !"{ !t!QPYw7{77V7! ͳv!Yw7{7ú7V7{3q!P@#oq!C@#oq!,@#oq!@#oq!QP#oq!QP#o{{u{9{upsPsP͆n!?#opsPsP͆n!?#opsPsP͆n!?#o!n?t!"!"!"{ !"!"{ !"{ !t!4x|ڳ8)^8!QP^w^8!2N:w!.N:w|g}o|8{u!_H:w![H:w|g}o|9{77!gH:w!cH:w|g}o|19^8!"!"{3{{-!"!"{u{9{u{9q<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#oq!QP#oq!QP#o*#"{!|IYw9q!QP#o{q!#o{psPsTP͆n!Q?n!:{>*#"*/|-:):{!SH͵!݌!hn6!͐n<!t?!t!t<!t?!t!Ju!<u!Ju!?u!Ju!"u!Ju!%u!Ju!(u!Ju!+u!Ju!.u!Ju!9u3t!"1{?*N!{*"q!ͳv#o!"q!#o*#"{*"q!ͳv#o!"q!#oq<!CPu!?u#oq!"#oq%!Du!(u!Bu!+u#o!"q!QP#o*#"{!&?t!"!"!"{ !"!"{ !"{ !t!4x|<)Ҿ;!QP^w;!gH:w!cH:w|g}o|S!?t*|>! ?t{*|>p!ͳvn*|?{Mf?= OFF =?= ON = %?-()?[LIST TO PRINTER INSTEAD OF CRT (Y/N)] [T?[Finished Printing Labels]q?::::: (Y/N/Q) :::::> [?uit and return to MENU.3?o if you desire another sample for alignment, or6?es if aligned properly and ready to begin printing.@ANYWHERE, USA 33333/@854 WEST MAIN STREET F@PAUL SMITHS@ACME EQUIPMENT COMPANY/l@[Press to print sample for alignment] 9@print-out is desired. This option prints ALL the members.;@Be sure that you have run SORT.COM first if an alphabiticalAGENERATE MAILING LABELS2AThankyou, see you again!MADate entered: dABusiness phone: {ACity, St., Zip: AAddress: AName: ACompany: +A[Member already EXISTS - Use to change]B  B[Printing in progress]#Br('B[Print egular or ondensed print] [RBDate entered: fBBusiness phone: zBLISTING MEMBERS as of (B[List to PRINTER instead of CRT (Y/N)] [BDate entered: BBusiness phone: B B - !B CHit for more or uit 9C[End of File - to MENU]\CCity: eCCompany: qCPhone: {C Name: CTESTC--------------------CMAILING LIST ROLADEX$CEnter lastname letter to scan..... [2Cany given beginning letter (A-Z) of the last name.=DThis option will list names, companies, and phone numbers forXDTELEPHONE NUMBER ROLADEXsDgwDG{DpDPEDon't search, enerate label,

rint info, or to MENU [ DDate entered:DBusiness phone:D D, DCity, St., Zip: EAddress:EName:ECompany:(EEnter your choice (c/r=quit) [.IE3. List entire database record of each member.%zE2. List by company, name and address.E1. List by company name only.)ESORT.COM utility on your data file first.-EFor an alphabetically sorted listing, run theFLIST DATABASE MEMBERS#6FNew data drive and filename is --> /\For a leaves data drive/file unchanged.4FEnter new data drive and filename (ie: b:mydata.dat))F************ RECORD DELETED *************F[ Deleting Record ]1Ges = delete o = search for another match ;G8. Business phone:PG7. Zip: ZG6. State:fG5. City: qG4. Address: G3. Last name:G2. First name:G1. Company name:,G[Requested member not found in the database]G8G7G6G5G4G3G2G1H[ Editing Record ]4HEnter field (1-8) to change, ave (or c/r = quit) NH*RH0VHRZH?^HnbHNfHyjHY.nH (Y)es = Add the info (N)o = Re-enter info [HBusiness phone ............ [HZip ....................... [HState ..................... [HCity ...................... [IStreet address ............ [?ILast name ................. [_IEnter first name .......... [IN/AIEnter Company (c/r to quit) [1IEntering N/A means you don't want a company name.IOIB:DATAFILE.DATI[Ior =b:datafile.dat,JEnter the drive and filename of the datafile >JCONTROL.DATLJIPJReading file A:CONTROL.DAT%mJCopyright (c) June 1986 by Eric Shore1JM A I L I N G L I S T D A T A B A S E v 2.5JEnter today's date (DD/MM/YY) [J; JJ].J 50K GhK :K FK 98L ;tL 7L JL  ?9M 2{M %M 1M " N 1Nq5NQ9Nt=NTANsENSINmMNMQNlUNLYNf]NFaNdeNDiNcmNCqNbuNByNa}NANEnter your choice [!N Quit - Exit & return to CP/M.N Telephone number roladex.(N Scan database (print single labels).)O MAIL - Generate labels (ALL members)."2O List current database members.'WO Change current data drive/filename.O Delete a current member. O Change existing member data.O The program BELL is O Add new member to database.PCurrent data file --> P=================.PM A I N M E N UBP/FP JP= ON = TP@`8pPhH `0hp`P@0 (@x x os l ! ' - 3 9 V s    8Ur 1 =v7Vb>zglo0!{%&6S  k( )!d+H"kg"m" 3r"u###$$ $# %@ %] &z ' ( ) * + ,( -E .b . / 0 1 1 1 2 2 4 3O 5 40 4L 4[ 5g 5 5 6 7 8 9 : : : ; ; ; < < < < A = >] >l > @o ? ? ? ? ? C B B D E F( F4 G= GC HN HPS H_ Hh It I| I I I K J J K K L N M Mic M N OQRSSSST+U7U:V^FW:`VXfXrXuYYYYYZZ[[[\\]] ^^_!_(_7_BaNaWa]a`bfbidieifxggihj6Rkll llll#l(m.m3m<mpm{nnpqrtu vwx'z$y-zJ{g{p{v{|{{{{{||||}|~}~~#~(~+0MV\bhmsy~=w59Ae!qt( (5H%(LX|*-9Eirx~  3>JMV\bhmsy~".1:@FLQW]bhmv9????orrrr} %*9BN[di{ (+?O[o7,,!1*Ii/3C0506j9c";k'1MSVVVVVhw'-6?DOq""'03RW!\y>}~     $ ) . 1 < B G L O Z ` e j m x ~ !!!'!0!9!B!!!!!!+"!>"#"("6";"D"J"P"Y"b"g"l"$z"""""""""""!#X####4$k$$$$$$$%%"%?%D%M%_%n%:hs%x%%%%%%%%%%%%%%%&&"&+&.&7&Z&_&e&|&&&&&&&'#'@'I'O'U'['`'f'l'q'w'|'''''''''_17''-#'''''''( ((((#(((+( 6( <( H( M( R( W( ]( c( h( q( z( ( ( ( ( ( ( ( ( (")f)))&*]*f*l*r*x*}***************3B+5I+ ++-+2+R6O7+<+?+a+i++++++++++++++,,#,),.,:,@,L,Q,t,T,],f,o,y, , , , , ,!,!,","d2=m2=t2=2>2>2?4G2?2?2?2?2? 3?3?$3?+3?:3@A;j=3@F3@\3@e3@3@3@3@3A3B3B3B3B3B3B3B3C3C3C3C3C4D!4D-4Dh4F24D54ET4EY4Ee4E4F4F4G4G4G4G4G4G4G5G5G5G5G%5G35H:5H=5HF5HL5HR5HW5H\5Hb5Hy5H5H5H5H5H5H5I5J5K5L(6M76NF6NO6N6PW6Om6Ov6O6O6P6P6P6P6Q6R6R6R6S7T97UV7V_7Ve7Vk7Vq7Vv7V|7V7V7V7V7X7V7Z7W7W7X7X7X7X7Y7Y7Y7Z9e8Z8[$8\A8]^8^g8^m8^s8^y8^~8^8^8^8^8^8^8^8^8_8_8_8`9` 9`9a19b79b=9bB9bG9bL9bR9bX9b]9bb9bg9b9do9c9c9c9c9c9c9c9d9d9d9d:e:e:e0:e3:fE:fT:g]:gf:go:gx:g:g:h;h ;h;h;i(;i.;i7;i>;iG;jS;jY;jb;jx;j;j;j;j;j;j;k;k;k;k;k;k;k;l;l;lw >x9>xi>x>x>y>z>{>{>|>}>~?[[[[ BASLIB #000000 5.30 - OWNED BY MICROSOFT, 1980 dDM*"x*g##"xòe>2d2d*^#V"d##^#V"d 2d!e!!""d!e"e6#6P>2e>2e>2eͿdXedXeOe_æsçs!9"ieg !2fge!2fe!ne2f!R"e!O"eg|f> jf6#s#r#=e>2ce>2fe>2ee2he!\e"ue!$\"ke>&2medÝ{6#}/f|/f| STO=gMfg*ue.. . ........͍z*e|Tf:ef*~e|ffg  s#rg  { hw#6"e*ie*~e>2e!hGf!9N#Fg~#~f~+g~#~f+^#V###f###f| g~#fo!g| Internal Error - No Line Number \eg~#ʩg| at linef\gg>͐g| at address|:|}:|g> ͝> Ý~#*gH~#fol*!9"_e!g*_eg"ae!h*aeg!?h~<;h=;h#~#2h'h#|Syntax Error in DATRETURN without GOSU Type MismatcOut of DatIllegal Function CalOverfloOut of Memor Subscript Out of Rang Division By ZerOut of String SpacString Formula Too CompleRESUME without Erro2Field Overflo3Internal Erro4Bad File Numbe5File Not Foun6Bad File Mod7File Already Ope9Disk I/O Erro:File Already Exist=Disk Ful>Input Past En?Bad Record Numbe@Bad File NamCToo Many FileUnprintable Errog1e!i>j;ew>[z|jfg}Bʑ0jŽ`i"se!Ej"e!j"eʡj ,j|jʋj͙~|*]*[*Y*WÛj͠~~*[Ûj͠~ͭ|*]*[ Ej,Zj~#ªjx[zÛjg!>ufjLz[zuщڼj jj"jG{,xjPXщLk!bmOz"y7k lk 7kO{,yīkщLk 7k{ Fk,> FkFkLkLkͫkщk"Wk kщk Wk,k wkщk k*se( 4:eʥk{,¥k6!bmLzO ʥk+~ ʙk#6!bmɷw#ÀkN#"k!9"k"ky2k*se|k*e!l"eA~#*bn<:ek~lʃll͙~l͠~"bn9lEl|*]*[*Y*WRl~*[Rlͭ|*]*[*bn<vl~#"bn,k l:elk~l!"e~,"Žl#"~ʢlʢl# ‘ll"¨l#"bnx"ʽl ʽl+~ ʲly[zRl|?Redo from Start *k͍z!l?m*k:kOk*k+~+#mmm +w m.m++~#fou"k!k5*k~2>m#~#^#V|++̓zͺ>f:bmg}BʑŽ! ~#fo"dn! "fng|jf*dn}o|gڣ"dn*fn"fn{#s#r++sg,opg7opgBopgopg,o2pg7o2pgBo2pg͗o2pg,oog7oogBoog͗oo[MoWMo"[VoH~# Nox2x|:epo†onLz<>p~o #so-pn~ʂo #Éo>2x|:epF#~#foxo>poo~# ùooÃzo>" G:exoʱ*e+~<p=p###~p*eñ!o*e*e~=p/<>p-p=#p> o>, W*e#^ hpbp+=bp:e=bpͱz{zp{_lp>2eg|¼p}BʛpŽ`i"se++"e!p"e!p"e2eqgjfw}o|gp> +|pñ!e"e!"se2eq!e"e!"se2eq!e~6#wg n&g ^#V͠s|g!Lq$:e^f*eDMg~#~~q~+ʄq~#~~q+^#V###dq2e#|+g:e^f^#V2e^#V#"~e!"~e:e*eg nuf~!q(|Nqgi&uf nr͊r͐rnr͊r͐rnr͊r͐r͜rnr͊r͐r͜rnr͊r͐rnr͊r͐rnr͊r͐r͜rnr͊r͐r͜rͫrr^#V#r"q*qͫrtrͫr^#Asårͫr^#V#rzr"q~2q"qg*q*q:qҒ:q:qrr$%rޖΖȔH~#fo^#V#^#V#^#V#^#V#s&)))g>os>os>os>os>os>^#V#![|sÇs Gtʛs~#foÝs##g2eggÿsgsܒ|jfgsgss t:eCt!hޖ̈́t:eFt!h$:]2]:^btlt:^:t͗t|/g}/oڠt!ڵtG|ʱtèto& Gȯ|g}oøtt>t~+~?~t+#t+ tg5z;u~##++{>M+V+^+.u+r+sM{gu~lz"Fu"Du*Fu|jf}jf jf+[zg"[>vg[>vgW>M2x|>!vn>vܒ~#wx[z>sw!+>`w>`w>`w>`w>`w>swow~#fo##GNʟwyʟw#~#fo~#fo¨w#ʞw Žw yʨwy<.ڲw)ʲw)̓z̓zwxjfűw y<2wF~ x x#~#foyHO #~#fox$xx#x$x!w4 x2w̓z̓z*w&~̓zo&~jf#^#V++̓zo&g~@++*x"xs#r+y*x#~_#~Wv{gpfr+s##6"x###!x~#foʚ{[Š{<*x"x*x}o|g6@#s#r#6"x*{*{"x}w>#w##[{++6+6ɒxx!ne4!9"ie^#V#!ne~wUf!9"ieɧ~͝#= ||~͝#|G~#8|#*|++C|0:N|Ýօ|*[}/o|/g#"[||à|!]~wɯ2^օ|̈́|*[|օ|d>>v~~De#|Deo|!a|>!aW2|# |!aޖ!a}u>>}>|}+!~ͣ}q+6!]>'2V!~Ù!~!a~_#~W#~Oͻ'!Z$ךv}ɇ<o&|*[*]ͦ}"[`i"]![^#V#N#F#!~%ͩx{Ҟ!_6~wg>œ}:x|Gw#}}}!a}[օWօ}*[||<օ*[.~}!V}}ʹ|1~h}:]2]:^ҳ͵}:^R~W~]~|/g}/oq~!:^z~͵}"[>2x|n}ajp~ L}ͨ||>2Q|`hq~~&-~+~+ͼگ.Ue~Eͼl~L~q~Q:x|>~%b#s!tdD4}ͼͼ"4_{_8|օ!}}z~օ 4}~ͼ!}}!~4}ͼ4̭||օ}J}=օD}'}DG"W`i"Y#~+ʕ-l0OxGҕ#~S`xEŠy >>2S|Ú|>Â>"W`i"Y͘}#Wͩ:S|ȁҁցցH60̭}o+~0.ĭ}օ>"w#6+6-/</ :#p#w#6!U|#zҞ;@z{%}=ͧMp#6!T|#:y|~ R*R+fͼ-+_:ke{0–#ͼҖ++wʌSʖ6%Bʺ^ }Ȃn+6%n}}ĩ_x3o,[:_yĚ{_x3'y_OGOo2*y|=PCͻ|ѯH}7ĩyĚOzWOhv/<!a}P} òօCOn}F }͍Ѓ͜օt#n}N }=60#,[60#=({ [/>|Ҙ>|p#=!W͕}˄h}>͵}͘}?[ͣ}/{_#zW#yO++߄V}#͘}p#ф> >[N#F#*[/}o|g "[p#= [w1_cƤ~@zZrN vH Tʚ;@B''d #~: ʼ ʼ ʼ0?<=:x|7-++ͼyOH+q~H#CggfM!/-}0?)))صo/M!US}y0? k? ))))صoUa{ ~օ:^:]b}:Q|2R|2Q|ggfggfg}Bʑʎ!' ~ʰ ʰ#~¥`i͌Æ>O #~goPY!' ůw:d͆ʬ=ʦ=ѯ×<ʬ!% ^#Vr+sg}!"l}B9 PY/!&`i>È!' ~Ļg}Bʑ!&W! ~+ngg}Bʑ! n&*se~ʋʠDM'~̸4N#V pʬzw w+s#r#6#6DM:d׈!" s#r#6! {zVw<<ʬ!! {w:{)͌!! ~!) J͸JÂ~#M*se~Ώ( ~w+~#5O ~+~ʃ͉Y7>*seT]% N#F+q#p###6 ¡:d͆>¹>w+w!(W7?*se' 6#67~ʩ#^#fk_ N#~: ++@ʩy@کҩI #^~.7J7##$2U̓zz ʩک> J>> c>gI<ʠ!9I> M:I!9¯I<š9*j~ʎ#N#F++̓z OIRŽ*l|!"l}_B {Bz "se#I> M66~V<ʬk.ؑ 7:e W:ef> ؑؑՑI'~*6?# ~O!!4ž#4ž#4y"³ʬ><"j>2ye! "ze:we<2we*ue"n!"ueg"l;*e|##n.*ngg2p>"q>g2g2p?"q?ʑ<ʑ=_!e~#fof##{|++R*eͅ"eq#p#s#4#5++###DM !e"s~#foʾ+V+^##*l{zڊBK^#V+*ss#r! DMЍ*l DM\{s#r# 6# xӍ !eT]~#foʑxy~#~+*e"es#r*l|,! s#r#w62}BŽ! ^#V:pa*q{ʔ+s#r! w#w! ~#fo!|‘ώBK>!)Ҥ)#å))ҳ Ҳ#=š}_}la)گʎ#x¯"! "!) "!}o|g|bk:?|\DM**͓"PY[}o|g*#"܎\DM**͓"PY$2{*! ~#fo|s#r‚:{ʏ!!& ó~# x”DMʣ! w!( V6 ɏzwʣ! ~!! ^#V! s#rDM|}BʑŽ`i"se!,"|eYщg!>ufg|jf,S-:yeʑ*ze!;e"|e{yf$%w!p*|eb|}!"se>6>4>?>=>:>7>5>2>3>@>C>go&ufg!"se!bm"bn̐:>mݐ|?ݐp:ԑ>\2ԑܐؑ+ ~ؑ+ؑؑՑ!bm2ԑ"O:ԑ8>\ؑ2ԑyʢۑ7 ɑ ʢ \ݐâۑݐzݐؑ> ؑ>„># 6Ց!bm x<>ʭyq#ؑ > ؑʺ ":>mՑwgÝ>^ؑ@ؑՑ~ > ؑؑ#;e*e #~+<=ܱ ̈̋ 14+~#<`=„ ʏDe :eG]DeP:xey<2xe*ue"!"ue ʏKe*e654> ~=*e!e"e "e> > :e=̒> Ke> Ke*^#V#ܒɷ![!W[Ww#w#w#w#>W$>[ ~#=(! #~ ; ;Ʌo$ɧGw#Q{z6#i͙hʤœOʩ!ʜ!]y#¡+”œ?ʜ͍͒d”͍[p!a͙.:^œ:h/N'A2V:W͎œx/F+N+=­!a!W>q#p#=ĕ!W"͸͓ͧ*͙y:^y!gN#F}q#GUSx Î!]/j0 TeB׳]h!I.k ͍͒dj͍[!aq!^q#~++w+q…œDNn"~`35zr1{r1h!I͙œyO2g͙œ:^p/NsY+3) W~w+HA!]Ed͒!Ww#jœ{}Ͱ̈́öͰq!ZF#^#V#NYͶ}a~#žG++NyʜWÜ![͒>˘qͻͩ!_6~g>|Z!>Řak͒͝œ!^~+>wœ'ͳœ:^ʛ:/O*ÜͳHœȯG}"Dy2FFo_h!D*[:]Oٙ^4Hg.*D:FOzڙg.*[:]x<={_zWxG)yOHGY(ͳʞœ}y+F+F+Fw`h|ugyY:[O|g}oxG-|M}HÛElaOG!^~Gxƀxwqw+ɷHyͩx{Ҟ!_6~wgzº >|k{>2^͛/~՛x8ʛG@G@ú-՛x|ejSXch|${_zW}o|g"9"7x!7~w#4-@aqJ!^qx!^kF#~怩OÛ 4Lgo"["]ͩs#r#q#pûͳ͞ͻ"[`i"]*[*]DM^#V#N#F#xyʜ:^:]7|/G}/O!> 7>{_zW}o|g=|g}oCZQ o-yOzW{_xGÉͳœ>O*ÜͳHœȯG}"Dy2FFo_h!D*[:]Oٙ^4Hg.*D:FOzڙg.*[:]x<={_zWxG)yOHGY(ͳʞœ}y+F+F+Fw`h|ugyY:[O|g}oxG-|M}HÛElaOG!^~Gxƀxwqw+ɷHyͩx{Ҟ!_6~wgzº >|k{>2^͛/~՛x8ʛG@G@ú-՛x|ejSXch|${_zW}o|g"9"7x!7~w#4-@aqJ!^qx!^kF#~怩OÛ 4Lgo"["]ͩs#r#q#pûͳ͞ͻ"[`i"]*[*]DM^#V#N#F#xyʜ:^:]7|/G}/O!> 7>{_zW}o|g=| VIXLABEL v2.5 Name/Address/Phone/Mailin Database by Eric A. Shore Al right reserve (c 15-June-86 ================================================================= Thi softwar i hereb place int th publi b th autho fo al t FREEL use copy o exchange Th autho assume n liabilitie fo an damage cause b th us o misus o thi program Th progra i similia t Steve Sander DB1 howeve ha bee totall writte fro scratc i MBASIC wit DB1 a guide t suppor th Osborn Vixen hav include th basi sourc file Anyon wh want t upgrad it fee fre t d so ================================================================= What is VIXLABEL.COM? VIXLABEL.CO i OSBORN VIXEN-ORIENTED I wa writte ONL٠ fo th OSBORN VIXE scree sinc s fe program ar bein writte for the computer. Yo ca prin singl label wit th SCA optio o label fo al member wit th 'M'ai option. Onc yo hav initiall installe VIXLABEL.CO i wil 'know ho t com u al b itsel th nex time I create fil calle CONTROL.DA whic hold al th nam o th defaul databas fil an th driv wher i i located. I i fas an ver clean jus tak loo a you datafile.da fil an yo wil se th neat easy-to-understan structur i uses Al field ar seperate b "; mark an al alph character ar alway converte t UPPE CAS automatically. T us an o VIXLABEL' label-generatin option yo nee stoc o standar 1-u label (3-1/2 15/16 continuous) VIXLABEL does not support any other label sizes! The mailing labels are generated to look like so: _______________________________ | | | Company name | | First name, last name | | Street Address | | City, State, Zip | | | ------------------------------- The format of the data record is: FIRM;FIRST;LAST;ADDRESS;CITY;STATE;ZIP;PHONE;DATE ENTERED Thi i fixe recor wit lengt o 128 I usin Wordsta i non-documen mod yo wil fin th lin goe ou t colum 12 an the drop t th nex line Th CR/L pai actuall count a 12 bu i invisibl bu ABSOLUTEL NECESSARY I yo d alte yo database.da fil - B CAREFUL yo mus maintai th lengt o 12 o eac an ever line Bes t jus us D t ente an delet membe records I yo hav delete larg numbe o member the us Wordstar' CTRL- t delet th whol line of the file containing the nulls. Example: This is what a deleted entry looks like  ;;;;;;;;; Al th field hav bee replace wit nul ("" strin chrs Afte runnin SORT al o thes entrie wil b brough t th very top of the file for easy removal. Th ROLADE optio key i o th firs lette o th lastnam entry I wil sho th followin fo eac matchin entry: LASTNAME, FIRSTNAME FIRMNAME PHONE NUMBER Ther i n rea nee fo an furthe documentatio a VIXLABE is simpl t operat an i completel menu-driven PRINTING -------- Th progra wa writte t prin CONDENSE typ o a EPSO MX-8 printe i th optio i selected migh o migh no wor o othe printers. Specia Note O course muc thank muc g t Steve Sander o th Tamp Ba Bandi Boar fo th initia for an ide fo th program Bu fo u Osborn Vixe owners th onl wa t ge th same sort of program was to write it from scratch. Any suggestions, or if anyone re-works the program, let me know: Eric A. Shore 8015 S.W. 107th Ave, #303 Miami, FL. 33173 (305) 595-5506  al o thes entrie wil b brough t th very top of the file for easy removal. Th ROLADE optio key i o th firs lette o th lastnam entry I wil sho th followin fo eac matchin entry: LASTNAME, FIRSTNAME FIRMNAME PHONE NUMBER Ther i n rea nee fo an furthe documentatio a VIXLABE is simpl t operat an i completel menu-driven PRINTING -------- Th progra wa writte t prin CONDENSE typ o a EPSO MX-8 printe i th optio i selected migh o migh no wor o othe printers. Specia Note O course muc thank muc g t Steve Sander o th Tamp Ba Bandi Boar fo th initia for an ide fo th program Bu fo u Osborn Vixe owners th onl wa t ge th same sort of program was to write it from scratch. Any suggestions, or if anyone re-works the program, le1 DIM CO$(30),S01$(30),S02$(18),S03$(24),S04$(35),S05$(15),S06$(2),S07$(10),S08$(12),S09$(8),Z(20) 2 DEF FNAT$(I,J)=CHR$(27)+CHR$(61)+CHR$(I+32)+CHR$(J+32) 3 DEFINT A-Z 4 BEL=-1:BELL$="= ON = " 5 ERS$=CHR$(8)+" "+CHR$(8):BSL$=CHR$(8)+"/"+CHR$(8) 6 ON ERROR GOTO 120 7 GOSUB 111 8 GOSUB 115 9 GOSUB 108 10 DE=0:SK=0:ED=0:PR=0:SE=0:PRINT FNAT$(5,31);"M A I N M E N U" 11 PRINT FNAT$(6,31);"=================" 12 PRINT FNAT$(8,21);"Current data file --> ";FIL$ 13 PRINT FNAT$(10,21);" Add new member to database.":GOSUB 14:GOTO 15 14 PRINT FNAT$(11,21);" The program BELL is "+BELL$:RETURN 15 PRINT FNAT$(12,21);" Change existing member data." 16 PRINT FNAT$(13,21);" Delete a current member." 17 PRINT FNAT$(14,21);" Change current data drive/filename." 18 PRINT FNAT$(15,21);" List current database members." 19 PRINT FNAT$(16,21);" MAIL - Generate labels (ALL members)." 20 PRINT FNAT$(17,21);" Scan database (print single labels)." 21 PRINT FNAT$(18,21);" Telephone number roladex." 22 PRINT FNAT$(19,21);" Quit - Exit & return to CP/M." 23 PR=0:LP=0:CO=0:PRINT FNAT$(21,29);"Enter your choice [";:XX=1:XXX=2:GOSUB 49 24 CHAR$=INPUT$(1) 25 IF CHAR$="A" OR CHAR$="a" THEN 374 26 IF CHAR$="B" OR CHAR$="b" THEN BEL=NOT BEL:GOSUB 378:GOSUB 14:GOTO 23 27 IF CHAR$="C" OR CHAR$="c" THEN 208 28 IF CHAR$="D" OR CHAR$="d" THEN 230 29 IF CHAR$="F" OR CHAR$="f" THEN 251 30 IF CHAR$="L" OR CHAR$="l" THEN 255 31 IF CHAR$="M" OR CHAR$="m" THEN 339 32 IF CHAR$="S" OR CHAR$="s" THEN 266 33 IF CHAR$="T" OR CHAR$="t" THEN 280 34 IF CHAR$="Q" OR CHAR$="q" THEN 107 ELSE CHAR=0:GOSUB 51:GOTO 23 35 PRINT FNAT$(5,22);" ":PRINT FNAT$(6,4);" ":PRINT FNAT$(8,4);" " 36 PRINT FNAT$(7,4);" ":PRINT FNAT$(8,4);" ":PRINT FNAT$(9,4);"  " 37 PRINT FNAT$(9,4);" ":PRINT FNAT$(10,4);" " 38 PRINT FNAT$(11,4);" " 39 PRINT FNAT$(12,4);" " 40 PRINT FNAT$(13,4);" " 41 PRINT FNAT$(14,4);" " 42 PRINT FNAT$(15,2);" " 43 PRINT FNAT$(16,4);" " 44 PRINT FNAT$(17,4);" " 45 PRINT FNAT$(18,4);" " 46 PRINT FNAT$(19,4);" ":PRINT FNAT$(20,4);"  " 47 PRINT FNAT$(21,4);" " 48 RETURN 49 FOR I=1 TO XX:PRINT CHR$(95);:NEXT I:PRINT "]"; 50 FOR Z=1 TO 350:NEXT Z 51 IF BEL=-1 THEN 52 ELSE IF BEL=0 THEN 53 52 FOR I=1 TO XXX:PRINT CHR$(8)+CHR$(7);:NEXT I:RETURN 53 FOR I=1 TO XXX:PRINT CHR$(8);:NEXT I:RETURN 54 RETURN 55 REM 56 REM ***PRINT STRING FROM A$ ON CONSOLE*** 57 REM 58 IF SAV$<>"" AND A1$<>"" THEN A1$="":RETURN 59 IF A1$<>"" THEN A$=A1$:A1$="" 60 IF N=1 THEN PRINT FNAT$(E,F);A$;:PP$=A$:GOTO 65 61 BI=ASC(INKEY$+" ") 62 IF BI=&H13 OR BI=&H53 OR BI=&H73 THEN BI=ASC(INPUT$(1)):GOTO 64 63 IF BI=&HB OR BI=&H4B OR BI=&H6B THEN BK=-1:PRINT:PRINT "":GOTO 67 64 PRINT FNAT$(E,F);A$; 65 A=A+LEN(A$) 66 A$="":N=0 67 RETURN 68 REM 69 REM ***ACCEPT STRING INTO B$ FROM CONSOLE*** 70 IF BEL AND SAV$="" THEN PRINT CHR$(7); 71 B$="":BK=0 72 IF SAV$="" THEN GOSUB 80:IF C<>3 THEN PRINT 73 SP=INSTR(SAV$,";"):IF SP=0 THEN B$=SAV$:SAV$="":GOTO 75 74 B$=LEFT$(SAV$,SP-1):SAV$=MID$(SAV$,SP+1) 75 IF LEN(B$)=0 THEN C=0:RETURN 76 IF C=0 THEN 78 77 CY$=B$:GOSUB 99:B$=CY$ 78 D=D+LEN(B$):C=0 79 RETURN 80 REM 81 REM CHARACTER-AT-A-TIME LINE INPUT WITH EDITING (IF C=2, NO ECHO) 82 REM 83 CHC=0: SAV$="":DC=0:IC=&H30 84 NCH=ASC(INPUT$(1)) 85 IF NCH=13 THEN RETURN 'CR 86 IF NCH=127 THEN 94 87 IF NCH<32 THEN 96 88 IF CHC>=63 THEN PRINT CHR$(7);:GOTO 84 89 SAV$=SAV$+CHR$(NCH): CHC=CHC+1 :IC=IC+1:IF IC=&H3A THEN IC=&H30 90 IF DC THEN PRINT CHR$(10); 91 IF C<>2 THEN PRINT CHR$(NCH); ELSE PRINT CHR$(IC); 92 IF CHC=55 THEN PRINT CHR$(7); 93 DC=0:GOTO 84 94 IF CHC=0 THEN 84 ELSE PRINT BSL$;:DC=-1 95 CHC=CHC-1:IC=IC-1: SAV$=LEFT$(SAV$,CHC): GOTO 84 96 IF CHC=0 THEN 84 97 IF NCH=8 THEN PRINT ERS$;:DC=0:GOTO 95 'BS 98 DC=0:GOTO 84 99 REM 100 REM UPPERCASE STRING CY$ (e.g., frank -> FRANK) 101 REM 102 FOR ZZ=1 TO LEN(CY$) 103 ZA=ASC(MID$(CY$,ZZ,1)):IF ZA<&H61 OR ZA>&H7A THEN 105 104 MID$(CY$,ZZ,1)=CHR$(ZA-&H20) 105 NEXT ZZ 106 RETURN 107 GOSUB 338:SYSTEM 108 A$="Enter today's date (DD/MM/YY) [":N=1:E=9:F=18:GOSUB 55:XX=8:XXX=9:GOSUB 49 109 C=1:GOSUB 68:DAT$=B$:IF LEN(B$)<8 OR LEN(B$)>8 THEN 108 ELSE IF B$="" THEN 108 110 GOSUB 35:RETURN 111 PRINT CHR$(26) 112 PRINT FNAT$(0,15);"M A I L I N G L I S T D A T A B A S E v 2.5" 113 PRINT FNAT$(2,21);"Copyright (c) June 1986 by Eric Shore" 114 RETURN 115 PRINT FNAT$(6,25);"Reading file A:CONTROL.DAT" 116 OPEN "I",1,"CONTROL.DAT" 117 INPUT #1,FIL$ 118 CLOSE #1 119 RETURN 120 IF ERL=116 THEN RESUME 122 121 RESUME NEXT 122 CLOSE#1:PRINT FNAT$(8,18);"Enter the drive and filename of the datafile" 123 PRINT FNAT$(9,26);"or =b:datafile.dat":A$="[":N=1:E=11:F=30:GOSUB 55:XX=14:XXX=15:GOSUB 49 124 C=1:GOSUB 68:FIL$=B$:IF B$="" THEN 125 ELSE IF LEN(B$)<14 OR LEN(B$)>14 THEN 123 ELSE 126 125 FIL$="B:DATAFILE.DAT":GOSUB 35 126 OPEN "O",1,"CONTROL.DAT":WRITE #1,FIL$:CLOSE#1:GOSUB 35:RETURN 127 GOSUB 35:PRINT FNAT$(7,5);"Entering N/A means you don't want a company name.":A$="Enter Company (c/r to quit) [":N=1:E=9:F=5:GOSUB 55:XX=26:XXX=27:GOSUB 49 128 C=1:GOSUB 68:CO$=B$:IF B$="N/A" THEN QQ=1 ELSE IF LEN(B$)>26 THEN 127 ELSE IF B$="" THEN GOSUB 35:GOTO 10 ELSE OK=0 129 IF ST=1 THEN RETURN ELSE IF ED=1 AND CO$="N/A" THEN 131 ELSE IF ED=1 THEN 375 ELSE IF SK=1 AND CO$="N/A" THEN 131 ELSE IF SK=1 THEN 209 ELSE IF DE=1 AND CO$="N/A" THEN 131 ELSE IF DE=1 THEN 231 130 IF SE=1 AND CO$="N/A" THEN 131 ELSE IF SE=1 THEN 267 ELSE GOSUB 173:IF CO$=S01$ THEN GOSUB 328 131 A$="Enter first name .......... [":N=1:E=10:F=5:GOSUB 55:XX=10:XXX=11:GOSUB 49 132 C=1:GOSUB 68:FI$=B$:IF LEN(B$)>10 THEN 131 ELSE IF B$="" THEN 131 ELSE IF ST=1 THEN RETURN ELSE IF SK=1 AND CO$="N/A" THEN 133 ELSE IF SK=1 THEN 209 ELSE IF DE=1 AND CO$="N/A" THEN 133 ELSE IF ED=1 THEN 133 ELSE IF SE=1 AND CO$="N/A" THEN 133 133 A$="Last name ................. [":N=1:E=11:F=5:GOSUB 55:XX=14:XXX=15:GOSUB 49 134 C=1:GOSUB 68:LA$=B$:IF LEN(B$)>14 THEN 133 ELSE IF B$="" THEN 133 ELSE IF ST=1 THEN RETURN ELSE IF ED=1 THEN RETURN ELSE IF SK=1 THEN 209 ELSE IF DE=1 THEN 231 ELSE IF SE=1 AND CO$="N/A" THEN 267 135 A$="Street address ............ [":N=1:E=12:F=5:GOSUB 55:XX=24:XXX=25:GOSUB 49 136 C=1:GOSUB 68:S04$=B$:IF LEN(B$)>24 THEN 135 ELSE IF B$="" THEN 135 ELSE IF ST=1 THEN RETURN 137 A$="City ...................... [":N=1:E=13:F=5:GOSUB 55:XX=14:XXX=15:GOSUB 49 138 C=1:GOSUB 68:S05$=B$:IF LEN(B$)>14 THEN 137 ELSE IF B$="" THEN 137 ELSE IF ST=1 THEN RETURN 139 A$="State ..................... [":N=1:E=14:F=5:GOSUB 55:XX=2:XXX=3:GOSUB 49 140 C=1:GOSUB 68:S06$=B$:IF LEN(B$)>2 THEN 139 ELSE IF B$="" THEN 139 ELSE IF ST=1 THEN RETURN 141 A$="Zip ....................... [":N=1:E=15:F=5:GOSUB 55:XX=10:XXX=11:GOSUB 49 142 C=1:GOSUB 68:S07$=B$:IF LEN(B$)>10 THEN 141 ELSE IF B$="" THEN 141 ELSE IF ST=1 THEN RETURN 143 A$="Business phone ............ [":N=1:E=16:F=5:GOSUB 55:XX=12:XXX=13:GOSUB 49 144 C=1:GOSUB 68:S08$=B$:IF LEN(B$)>12 THEN 143 ELSE IF B$="" THEN 143 ELSE IF ST=1 THEN RETURN 145 A$=" (Y)es = Add the info (N)o = Re-enter info [":N=1:E=20:F=5:GOSUB 55:XX=1:XXX=2:GOSUB 49 146 C=1:GOSUB 68:A$=B$:IF B$="" THEN 145 147 IF B$="Y" OR B$="y" THEN GOSUB 164:GOTO 374 148 IF B$="N" OR B$="n" THEN GOTO 374 ELSE 145 149 REM 150 REM FILL AND STORE DISK RECORD 151 REM 152 LSET RR$=LEFT$(S$+SPACE$(RL-2),RL-2)+CHR$(13)+CHR$(10) 153 RETURN 154 REM 155 REM UNPACK DISK RECORD 156 REM 157 ZZ=LEN(RR$)-2 158 WHILE MID$(RR$,ZZ,1)=" " 159 ZZ=ZZ-1:IF ZZ=1 THEN 161 160 WEND 161 S$=LEFT$(RR$,ZZ) 162 IF MID$(S$,ZZ,1)="?" THEN S$=S$+" " 163 RETURN 164 REM 165 OPEN "R",1,FIL$,128:FIELD#1,128 AS RR$ 166 S09$=DAT$:S01$=CO$:S02$=FI$:S03$=LA$:S$=S01$+";"+S02$+";"+S03$+";"+S04$+";"+S05$+";"+S06$+";"+S07$+";"+S08$+";"+S09$ 167 RL=128:GOSUB 168:NU=NU+1:PUT#1,NU+1:S$=STR$(NU):GOSUB 168:PUT#1,1:CLOSE:CO$="":RETURN 168 REM 169 REM FILL AND STORE DISK RECORD 170 REM 171 LSET RR$=LEFT$(S$+SPACE$(RL-2),RL-2)+CHR$(13)+CHR$(10) 172 RETURN 173 REM 174 REM CHECK USERS FILE 175 REM 176 OPEN "R",1,FIL$,128:FIELD#1,128 AS RR$:GET#1,1:NU=VAL(RR$) 177 FOR J=2 TO NU+1:GET#1,J:GOSUB 154:S00$=MID$(S$,1) 178 I=INSTR(S00$,";"): S01$=LEFT$(S00$,I-1):S02$=MID$(S00$,I+1) 179 I=INSTR(S02$,";"): S03$=MID$(S02$,I+1):S02$=LEFT$(S02$,I-1) 180 I=INSTR(S03$,";"): S04$=MID$(S03$,I+1):S03$=LEFT$(S03$,I-1) 181 I=INSTR(S04$,";"): IF I=0 THEN S05$="0":GOTO 187 182 S05$=MID$(S04$,I+1):S04$=LEFT$(S04$,I-1) 183 I=INSTR(S05$,";"):S06$=MID$(S05$,I+1):S05$=LEFT$(S05$,I-1) 184 I=INSTR(S06$,";"):S07$=MID$(S06$,I+1):S06$=LEFT$(S06$,I-1) 185 I=INSTR(S07$,";"):S08$=MID$(S07$,I+1):S07$=LEFT$(S07$,I-1) 186 I=INSTR(S08$,";"):S09$=MID$(S08$,I+1):S08$=LEFT$(S08$,I-1) 187 REM 188 IF LAST$="" THEN 189 ELSE IF LAST$=LEFT$(S03$,1) THEN GOSUB 289:GOTO 189 ELSE 189 189 IF LEFT$(S$,1)="*" THEN 199 190 IF QQ=0 AND CO$<>S01$ THEN 194 191 IF QQ=1 AND FI$<>S02$ THEN 194 192 IF QQ=1 AND LA$<>S03$ THEN 194 193 UJ=J:OK=-1:CLOSE:RETURN 194 IF CO=1 THEN GOSUB 307:GOTO 199 195 IF CO=2 THEN GOSUB 309:GOTO 199 196 IF CO=3 THEN GOSUB 310:GOTO 199 197 IF CO=4 THEN GOSUB 355:GOTO 199 198 IF CO=5 THEN GOSUB 363:GOTO 199 199 LP=LP+1:NEXT J 200 CLOSE:RETURN 201 REM 202 REM UPDATE USERS FILE 203 REM 204 REM 205 OPEN "R",1,FIL$,128:FIELD#1,128 AS RR$ 206 S02$=FI$:S03$=LA$:S09$=DAT$:S01$=CO$:S$=S01$+";"+S02$+";"+S03$+";"+S04$+";"+S05$+";"+S06$+";"+S07$+";"+S08$+";"+S09$ 207 RL=128:GOSUB 149:PUT#1,UJ:CLOSE:RETURN 208 SK=1:GOTO 127 209 OK=0:GOSUB 173:IF CO$<>"N/A" THEN 210 ELSE IF CO$="N/A" AND CO$=S01$ AND FI$=S02$ AND LA$=S03$ THEN 211 ELSE GOSUB 234:GOTO 208 210 IF CO$=S01$ THEN 211 ELSE GOSUB 234:GOTO 208 211 FI$=S02$:LA$=S03$ 212 SK=0:ST=0 213 GOSUB 35:GOSUB 235 214 PRINT FNAT$(17,4)"Enter field (1-8) to change, ave (or c/r = quit) ";:GOSUB 378 215 CHAR$=INPUT$(1) 216 IF CHAR$=CHR$(13) THEN CHAR=0:GOSUB 35:FI$="":LA$="":GOTO 10 ELSE IF CHAR$="S" OR CHAR$="s" THEN GOSUB 35:GOSUB 228:PRINT FNAT$(18,30);"[ Editing Record ]";:GOSUB 381:GOSUB 205:GOSUB 35:FI$="":LA$="":GOTO 10 ELSE 217 217 IF CHAR$="1" THEN ST=1:GOSUB 127:GOTO 212 218 IF CHAR$="2" THEN ST=1:GOSUB 35:GOSUB 131:GOTO 212 219 IF CHAR$="3" THEN ST=1:GOSUB 35:GOSUB 133:GOTO 212 220 IF CHAR$="4" THEN ST=1:GOSUB 35:GOSUB 135:GOTO 212 221 IF CHAR$="5" THEN ST=1:GOSUB 35:GOSUB 137:GOTO 212 222 IF CHAR$="6" THEN ST=1:GOSUB 35:GOSUB 139:GOTO 212 223 IF CHAR$="7" THEN ST=1:GOSUB 35:GOSUB 141:GOTO 212 224 IF CHAR$="8" THEN ST=1:GOSUB 35:GOSUB 143:GOTO 212 ELSE 214 225 END 226 S$=S01$+";"+S02$+";"+S03$+";"+S04$+";"+S05$+";"+S06$+";"+S07$+";"+S08$+";"+S09$ 227 PRINT S$:END 228 S02$=FI$:S03$=LA$:S01$=CO$:S02$=FI$:S03$=LA$:S$=S01$+";"+S02$+";"+S03$+";"+S04$+";"+S05$+";"+S06$+";"+S07$+";"+S08$+";"+S09$ 229 RETURN 230 DE=1:GOTO 127 231 OK=0:GOSUB 173:QQ=0:IF CO$<>"N/A" THEN 232 ELSE IF CO$="N/A" AND CO$=S01$ AND FI$=S02$ AND LA$=S03$ THEN 233 ELSE GOSUB 234:GOTO 230 232 IF CO$=S01$ THEN 233 ELSE GOSUB 234:GOTO 230 233 SK=0:ED=0:DE=0:FI$=S02$:LA$=S03$:GOSUB 35:GOSUB 235:GOSUB 244 234 A$="[Requested member not found in the database]":E=13:F=17:GOSUB 55:GOSUB 381:FOR Z=1 TO 32000:NEXT:FOR N=1 TO 32000:NEXT:FOR L=1 TO 32000:NEXT:RETURN 235 PRINT FNAT$(7,4);"1. Company name:";FNAT$(7,23);CO$ 236 PRINT FNAT$(8,4);"2. First name:";FNAT$(8,23);FI$ 237 PRINT FNAT$(9,4);"3. Last name:";FNAT$(9,23);LA$ 238 PRINT FNAT$(10,4);"4. Address:";FNAT$(10,23);S04$ 239 PRINT FNAT$(11,4);"5. City:";FNAT$(11,23);S05$ 240 PRINT FNAT$(12,4);"6. State:";FNAT$(12,23);S06$ 241 PRINT FNAT$(13,4);"7. Zip:";FNAT$(13,23);S07$ 242 PRINT FNAT$(14,4);"8. Business phone:";FNAT$(14,23);S08$ 243 RETURN 244 PRINT FNAT$(17,4);"es = delete o = search for another match ";:GOSUB 381 245 CHAR$=INPUT$(1) 246 IF CHAR$="N" OR CHAR$="n" THEN GOTO 230 247 IF CHAR$="Y" OR CHAR$="y" THEN GOSUB 35:GOTO 248 ELSE 244 248 PRINT FNAT$(18,30);"[ Deleting Record ]";:GOSUB 381 249 S$="************ RECORD DELETED *************" 250 OPEN "R",1,FIL$,128:FIELD#1,128 AS RR$:GOSUB 360:GOSUB 35:GOTO 10 251 GOSUB 35:PRINT FNAT$(9,12);"Enter new data drive and filename (ie: b:mydata.dat)" 252 PRINT FNAT$(10,12);"or a leaves data drive/file unchanged." 253 A$="[":N=1:E=12:F=29:GOSUB 55:XX=14:XXX=15:GOSUB 49 254 C=1:GOSUB 68:FI$=B$:IF LEN(B$)>14 THEN 253 ELSE IF B$="" THEN GOSUB 35:FIL$=FIL$:GOTO 10 ELSE FIL$=FI$:PRINT FNAT$(14,14);"New data drive and filename is --> ";FIL$;:GOSUB 381::FOR Z=1 TO 2000:NEXT Z:GOSUB 35:GOTO 10 255 CO$="":GOSUB 35:PRINT FNAT$(6,4);"LIST DATABASE MEMBERS" 256 PRINT FNAT$(8,4);"For an alphabetically sorted listing, run the" 257 PRINT FNAT$(9,4);"SORT.COM utility on your data file first." 258 PRINT FNAT$(12,4);"1. List by company name only." 259 PRINT FNAT$(13,4);"2. List by company, name and address." 260 PRINT FNAT$(14,4);"3. List entire database record of each member." 261 A$="Enter your choice (c/r=quit) [":N=1:E=16:F=8:GOSUB 55:XX=1:XXX=2:GOSUB 49 262 C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 261 ELSE IF B$="" THEN GOSUB 35:GOTO 10 263 IF B$="1" THEN CO=1:PRINT CHR$(26):GOSUB 311:GOSUB 173:GOSUB 291:CO=0:PR=0:GOSUB 111:GOTO 10 264 IF B$="2" THEN CO=2:PRINT CHR$(26):GOSUB 311:GOSUB 173:GOSUB 291:CO=0:PR=0:GOSUB 111:GOTO 10 265 IF B$="3" THEN CO=3:PRINT CHR$(26):GOSUB 311:GOSUB 173:GOSUB 291:CO=0:PR=0:GOSUB 111:GOTO 10 266 SE=1:GOTO 127 267 OK=0:GOSUB 173:IF CO$<>"N/A" THEN 268 ELSE IF CO$="N/A" AND CO$=S01$ AND FI$=S02$ AND LA$=S03$ THEN 269 ELSE GOSUB 234:GOTO 266 268 IF CO$=S01$ THEN 269 ELSE GOSUB 234:GOTO 266 269 GOSUB 35 270 PRINT FNAT$(7,4);"Company:";FNAT$(7,26);S01$ 271 PRINT FNAT$(8,4);"Name:";FNAT$(8,26);S02$+" "+S03$ 272 PRINT FNAT$(9,4);"Address:";FNAT$(9,26);S04$ 273 PRINT FNAT$(10,4);"City, St., Zip:";FNAT$(10,26);S05$+", "+S06$+" "+S07$ 274 PRINT FNAT$(11,4);"Business phone:";FNAT$(11,26);S08$ 275 PRINT FNAT$(12,4);"Date entered:";FNAT$(12,26);S09$ 276 A$="on't search, enerate label,

rint info, or to MENU [":N=1:E=15:F=2:GOSUB 55:XX=1:XXX=2:GOSUB 49 277 C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 276 ELSE IF B$="" THEN GOSUB 35:CO$="":PR=0:CO=0:GOTO 10 278 IF B$="P" OR B$="p" THEN GOSUB 322:GOSUB 329:GOSUB 43:GOTO 276 ELSE IF B$="G" OR B$="g" THEN GOSUB 322:GOSUB 335:GOSUB 43:GOTO 276 279 IF B$="C" OR B$="c" THEN 266:RETURN 280 GOSUB 35:PRINT FNAT$(6,4);"TELEPHONE NUMBER ROLADEX" 281 PRINT FNAT$(9,4);"This option will list names, companies, and phone numbers for" 282 PRINT FNAT$(10,4);"any given beginning letter (A-Z) of the last name." 283 A$="Enter lastname letter to scan..... [":N=1:E=14:F=17:GOSUB 55:XX=1:XXX=2:GOSUB 49 284 C=1:GOSUB 68:LAST$=B$:IF LEN(B$)>1 THEN 283 ELSE IF B$="" THEN 283 285 OK=0 286 GOSUB 363:PRINT CHR$(26):N=0:IF PR=1 THEN GOSUB 173:GOTO 287 ELSE PRINT "MAILING LIST ROLADEX":PRINT "--------------------":PRINT:GOSUB 173 287 GOSUB 291 288 SMID$="":CMID$="":LAST$="":GOSUB 111:GOTO 10 289 CO$="TEST":SMID$=STRING$(34-LEN(S02$+" "+S03$),32):CMID$=STRING$(35-LEN(S01$),32) 290 IF PR=1 THEN GOSUB 367:RETURN ELSE PRINT " Name: ";S02$;" ";S03$;SMID$;"Phone: ";S08$:PRINT "Company: ";S01$;CMID$;"City: ";S05$:PRINT:N=N+1:IF N=6 THEN GOSUB 294:PRINT:PRINT:RETURN ELSE RETURN 291 PRINT 292 IF PR=1 AND CO=4 THEN PRINT CHR$(26):RETURN ELSE IF PR=1 AND CO<>4 THEN PRINT CHR$(26):LPRINT CHR$(140):RETURN ELSE PRINT "[End of File - to MENU]";:GOSUB 381:CHAR$=INPUT$(1) 293 IF CHAR$=CHR$(13) THEN PRINT CHR$(26):RETURN ELSE FOR I=1 TO 33:PRINT CHR$(8);:NEXT I:GOTO 292 294 GOSUB 296 295 IF BK<>-1 THEN RETURN ELSE IF BK=-1 THEN GOTO 288 296 REM PAUSE 297 ZZZ=ZZZ+1 298 IF ZZZ for more or uit ";:GOSUB 381 301 XX$=INPUT$(1):IF XX$=CHR$(13) THEN BK$="1":GOTO 302 ELSE IF XX$="Q" OR XX$="q" THEN CLOSE:SMID$="":CMID$="":CO$="":PR=0:CO=0:SK=0:ED=0:BK=-1:BK$="0" ELSE 306 302 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I 303 PRINT " " 304 ZZZ=0 305 RETURN 306 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I:GOTO 300 307 IF PR=1 THEN GOTO 317 ELSE IF S01$="N/A" THEN PRINT S01$;" - ";S02$;" ";S03$ ELSE IF S01$<>"N/A" THEN PRINT S01$:N=N+1:IF N=18 THEN GOSUB 294:RETURN ELSE RETURN 308 RETURN 309 IF PR=1 THEN 320 ELSE PRINT S01$:PRINT S02$+" "+S03$:PRINT S04$:PRINT S05$+", "+S06$+" "+S07$:PRINT:N=N+1:IF N=4 THEN GOSUB 294:RETURN ELSE RETURN 310 IF PR=1 THEN 319 ELSE PRINT S01$:PRINT S02$+" "+S03$:PRINT S04$:PRINT S05$+", "+S06$+" "+S07$:PRINT "Business phone: "+S08$:PRINT "Date entered: "+S09$:PRINT:N=N+1:IF N=3 THEN GOSUB 294:RETURN ELSE RETURN 311 PRINT CHR$(26) 312 A$="[List to PRINTER instead of CRT (Y/N)] [":N=1:E=16:F=15:GOSUB 55:XX=1:XXX=2:GOSUB 49 313 C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 312 ELSE IF B$="" THEN 312 314 IF B$="Y" OR B$="y" THEN PR=1:GOSUB 322:LPRINT:LPRINT "LISTING MEMBERS as of ";DAT$:LPRINT 315 IF B$="N" OR B$="n" THEN PRINT CHR$(26):RETURN 316 RETURN 317 IF LP=56 THEN GOTO 361 ELSE IF S01$="N/A" THEN 318 ELSE LPRINT S01$:N=N+1:RETURN 318 LPRINT S01$;" - ";S02$;" ";S03$:N=N+1:RETURN 319 IF LP=8 THEN GOTO 327 ELSE LPRINT S01$:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:LPRINT "Business phone: "+S08$:LPRINT "Date entered: "+S09$:LPRINT:N=N+1:RETURN 320 IF LP=11 THEN GOTO 362 ELSE LPRINT S01$:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:LPRINT:N=N+1:RETURN 321 RETURN 322 A$="[Print egular or ondensed print] [":N=1:E=17:F=15:GOSUB 55:XX=1:XXX=2:GOSUB 49 323 C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 322 ELSE IF B$="" THEN 322 324 IF B$="R" OR B$="r" THEN LPRINT CHR$(146);:GOSUB 326:RETURN 325 IF B$="C" OR B$="c" THEN GOSUB 326:LPRINT CHR$(143);:RETURN 326 PRINT FNAT$(19,25);"[Printing in progress]";:GOSUB 381:RETURN 327 CO=CO:LPRINT CHR$(140):LP=0:LPRINT S01$:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:LPRINT "Business phone: "+S08$:LPRINT "Date entered: "+S09$:LPRINT:LP=0:N=N+1:RETURN 328 IF B$="N/A" THEN N=N+1:RETURN ELSE A$="[Member already EXISTS - Use to change]":E=13:F=15:GOSUB 55:GOSUB 381:FOR Z=1 TO 32000:NEXT:FOR N=1 TO 32000:NEXT:FOR L=1 TO 32000:NEXT L:GOSUB 35:GOTO 10 329 LPRINT:LPRINT "Company: ";S01$ 330 LPRINT "Name: ";S02$+" "+S03$ 331 LPRINT "Address: ";S04$ 332 LPRINT "City, St., Zip: ";S05$+", "+S06$+" "+S07$ 333 LPRINT "Business phone: ";S08$ 334 LPRINT "Date entered: ";S09$:LPRINT:RETURN 335 GOSUB 336:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:RETURN 336 IF S01$="N/A" THEN LPRINT:RETURN ELSE LPRINT S01$:RETURN 337 LPRINT " 338 PRINT CHR$(26):PRINT FNAT$(15,28);"Thankyou, see you again!";:GOSUB 381:RETURN 339 GOSUB 35:PRINT FNAT$(8,4);"GENERATE MAILING LABELS" 340 PRINT FNAT$(10,4);"Be sure that you have run SORT.COM first if an alphabitical" 341 PRINT FNAT$(11,4);"print-out is desired. This option prints ALL the members." 342 A$="[Press to print sample for alignment] ":N=1:E=14:F=14:GOSUB 55:C=1:GOSUB 68:A$=B$:IF B$="" THEN GOSUB 344:GOTO 346 ELSE 342 343 IF CHAR$=CHR$(13) THEN GOSUB 344 ELSE 342 344 GOSUB 322:LPRINT "ACME EQUIPMENT COMPANY":LPRINT "PAUL SMITH":LPRINT "854 WEST MAIN STREET":LPRINT "ANYWHERE, USA 33333" 345 LPRINT:LPRINT:RETURN 346 GOSUB 35:GOSUB 357:GOSUB 35 347 PRINT FNAT$(11,4)"es if aligned properly and ready to begin printing." 348 PRINT FNAT$(12,4)"o if you desire another sample for alignment, or" 349 PRINT FNAT$(13,4)"uit and return to MENU." 350 A$="::::: (Y/N/Q) :::::> [":N=1:E=15:F=22:GOSUB 55:XX=1:XXX=2:GOSUB 49:C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 350 ELSE IF B$="" THEN 350 351 IF B$="Q" OR B$="q" THEN GOSUB 35:GOTO 10 352 IF B$="N" OR B$="n" THEN GOSUB 344:GOTO 346 353 IF B$="Y" OR B$="y" THEN 354 ELSE 350 354 CO=4:PR=1:GOSUB 322:GOSUB 174:GOSUB 291:CO=0:PR=0:GOSUB 35:GOSUB 357:GOSUB 35:GOTO 10 355 GOSUB 356:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:LPRINT:LPRINT:N=N+1:RETURN 356 IF S01$="N/A" THEN LPRINT:RETURN ELSE LPRINT S01$:RETURN 357 PRINT FNAT$(15,24);"[Finished Printing Labels]";:FOR Z=1 TO 2000:GOSUB 381:NEXT Z:RETURN 358 OPEN "R",1,FIL$,128:FIELD#1,128 AS RR$ 359 S02$=FI$:S03$=LA$:S01$=CO$:S02$=FI$:S03$=LA$:S$=S01$+";"+S02$+";"+S03$+";"+S04$+";"+S05$+";"+S06$+";"+S07$+";"+S08$+";"+S09$ 360 RL=128:GOSUB 149:PUT#1,UJ:CLOSE:RETURN 361 CO=CO:LPRINT CHR$(140):LP=0:LPRINT S01$:N=N+1:RETURN 362 CO=CO:LPRINT CHR$(140):LP=0:LPRINT S01$:LPRINT S02$+" "+S03$:LPRINT S04$:LPRINT S05$+", "+S06$+" "+S07$:LP=0:LPRINT:N=N+1:RETURN 363 A$="[LIST TO PRINTER INSTEAD OF CRT (Y/N)] [":N=1:E=16:F=15:GOSUB 55:XX=1:XXX=2:GOSUB 49 364 C=1:GOSUB 68:A$=B$:IF LEN(B$)>1 THEN 363 ELSE IF B$="" THEN 363 365 IF B$="Y" OR B$="y" THEN PR=1:GOSUB 322:GOSUB 369:RETURN 366 IF B$="N" OR B$="n" THEN PRINT CHR$(26):RETURN 367 IF LP=20 THEN GOTO 368 ELSE LPRINT " Name: ";S02$;" ";S03$;SMID$;"Phone: ";S08$:LPRINT "Company: ";S01$;CMID$;"City: ";S05$:LPRINT:N=N+1:RETURN 368 CO=CO:LPRINT CHR$(140):LP=0:N=N+1:LP=0:RETURN 369 LPRINT "MAILING LIST ROLADEX":LPRINT STRING$(20,"-")::LPRINT:RETURN 370 SMID$=STRING$(34-LEN(S02$+" "+S03$),32) 371 CMID$=STRING$(35-LEN(S01$),32) 372 PRINT " Name: ";S02$;" ";S03$;SMID$;"Phone: ";S08$:PRINT "Company: ";S01$;CMID$;"City: ";S05$:PRINT 373 RETURN 374 ED=1:GOSUB 127 375 OK=0:GOSUB 173:QQ=0:ED=0:B$="" 376 IF CO$="N/A" AND FI$<>S02$ AND LA$<>S03$ THEN 135 ELSE IF CO$="N/A" AND FI$<>S02$ AND LA$=S03$ THEN 135 ELSE IF CO$="N/A" AND FI$=S02$ AND LA$=S03$ THEN 328 ELSE IF CO$<>"N/A" AND CO$=S01$ THEN 328 ELSE 131 377 GOTO 374 378 IF BEL=-1 THEN BELL$="= ON = " 379 IF BEL=0 THEN BELL$="= OFF =" 380 RETURN 381 IF BEL=-1 THEN PRINT CHR$(7); 382 IF BEL=0 THEN 383 383 RETURN  ON = " 379 IF BEL=0 THEN BELL$="= OFF =" 380 RETURN 381 IF BEL=-1 THEN PRINT CHR$(7); 382 IF BEL=0 THEN 383 IF LP=20 THEN GOTO 368 ELSE LPRINT " Name: ";S02$;" ";S03$;SMID$;"Phone: ";S08$:LPRINT "Company: ";S01$;CMID$;"City: ";S05$:LPRINT:N=N+1:RETURN 368 CO=CO:LPRINT CHR$(140):LP=0:N=N+1:LP=0:RETURN 369 LPRINT "MAILING LIST ROLADEX":LPRINT STRING$(20,"-")::LPRINT:RETURN 370 SMID$=STRING$(34-LEN(S02$+" "+S03$),32) 371 CMID$=STRING$(35-LEN(S01$),32) 372 PRINT " Name: ";S02$;" ";S03$;SMID$;"Phone: ";S08$:PRINT "Company: ";S01$;CMID$;"City: ";S05$:PRINT 373 RETURN 374 ED=1:GOSUB 127 375 OK=0:GOSUB 173:QQ=0:ED=0:B$="" 376 IF CO$="N/A" AND FI$<>S02$ AND LA$<>S03$ THEN 135 ELSE IF CO$="N/A" AND FI$<>S02$ AND LA$=S03$ THEN 135 ELSE%+"6# x+:`i* ">"/##~>;+> 6*s#r w+͊1>2 u+#w+>36*s#rw+6*xDM"+ڍ+s#r#À+! æ+>2:*ã+6*x+Á*~#ʽ+#~+ҽ+~+x 6*s#rw+ɯ2,x_O:*+2,x_O6*9w#w+x,+r+s=,w>#w+Á*~7^#VE,E,!~ѧ7x1P*x1~7!~#fo~ʁ,7,#~+~w}D#wx#1]*LÄ,!9*?>":u,2g>2u:u, QPJ-,6P:u,-!lͿPs",Q!-ͫQH-*fx-Q>Q'-Q!l͂PPH-@]T}_|H-)>-x1P*I&>4ͺ-K3y=d-e#x2#~+Œ-x-xGe#>.xʛ-e#>.xG ʩ->.x#~+>.>X6*s#r+}*W!-L^#V#~.    !> .!> .! > .!> .!> .O*yL !.LF͊1q-x2.H.u+w.#N+͊1q-ڱ.xn.#~+j..n.y. u+w!~#fo#~#w:.ʏ.6~+ž.~ ž.6 «.~«.63ó.ɀ @ PPPPPP #..~.+u+w#w+e#*#~6+/]*6#s#r>6###s#r#6@"=#w:uGf?/b!/####~#B/F#N#~#fo~#fox/dLU/##~>O͖,6#p#6 ####yLͶ,+w~39;5!/#L~2>"@&0:/3-3>".͊1P*/ 00`i)9^#V!~`-y0#~#fo##A:x03x>". U0^#V#ͩ+3> ".10#~͸/o&"f>2u./ͩ+3> "."0xGO>$6*H"0s#r# ‹0H +V+^ͩ+s#r#  0͸/w*0w+3yO0e#0e#0**}_|W0}LZM Bytes Free 201:#x1:>"~>"###^#V"*:Z1VL>f1j1#{z+j1>""K3>?ú-:#*#Ͱ2#"#*O*QVL{#+V+^"QP*ʴ1ʺ1e#ͩ+þ1++~=w21~#foP*~#!1#L~"X[ P*#~+>>2#x1>2#P*|/2!~#@2~#fo32W2##~#~#3232.x1-P*@&b&e#> 2q" 3y2323O]*#s#r+++++++~ʩ2 }|x2!^#Vz< 3z3ͻL 3DM!35©2x3~͸/! 3=2DM++++r+s:3Op-e#!e#*Qs#r#"Q{z#~+e#*Q++"Q:!9"d3!c3"#̓3\1*"!"""#!"2*"!~#fo3"v=##~#fo]=i=ʷ3͈4͍4͒4å3~Yʿ3=3͋;: >*ĪM#r+s++Ï3*>$4!~#fo~~Z= ' 6* >L>L!N#F*v=~#fo##^#VX!~#fo"4++~+ng##^#V~4#####~#~*v=w#w#~#fo>wq#p>Ô4>Ô4>*323ͤ423~4]=i=ʼ4ͤ4ð44x¬4:3=444{8E55t654{8t6~5<5^#V><5><5H=5><5#~55####^#V<5>###w~2=H=G5N#^#V#~#fo ^,5^,|5F͙9Fx 5~5O!~#fo^,ڿ5"5"5~#F!5w#p+͙9! s#r`iF~ !N#F# 55! F+N+p+q ͈4s#r ~ 6 2k6^#V#~#fo7^,h6"p6!N#F#~#fo^,h6"r6!q#p!l6w+͙9͈4DM!q#p#q#pF ~0![L~O6:3y ʭ6##~++!~#fo!,WyJ!IL66717?7L77678~#fo~ 98y>!O8y98D8~#fo~98=wG-3##~#fo3> ".͊1͈46  s#ryP98D8~#fo~4Fy`98@`##~#fo ~#fo ~#foy\L}zC5###pywG##^#V~ʧ77!,7@`7! ~<7#~7"7!7͙9! s#r`i4F##~#fo"828!8͙9s#r6F >͈4>6*s#rw+F##~#fo6 F5G2x8!5###yw> 6*s#r6+~H=O88ʚ8~ڱ8N#F#^#V ڵ8 +++p+q+r+s8##>w++F~!'#L~wFFH 8yO^#V#~#fo:3 9~n9n999Í8:309x i9 H9DM!~#fo### i9i9! ~#~! {8r+sÖ9 Ns#Fr^q#Vp++xw{8r+sFF~2M:##~2N:##~#N#F#^#V=´9PY! N#F!^#V6: !:#L~2u!lL!f9!bL:N:m;:M:!:!O:5L^#Vs"!uw> "~./! s#r`i#w+! N#F!yw#xw:::: : : : : :::; ;;#;3;C;{#EQ>Q>Q>EQ:g> ">2u6P@U];N V];4OU;-SU;ÄST:U; S];ÿMS:U;S];üMU;S*f:mg:loøQ*f\L+øQ*f:mg:loøQ*f:mg:loøQ*l:g/g:f/oøQ*f*lP*l"f*n"h:uGl!f;!bNwy#;U=i=ʨ;ͷ;yʏ;;Ï; µ;;~4{####6+~++;]=i=;ͷ;;@<~#fo~;~#fo#~+~^#V2#<2=~#foG3##~#fo~0<#####~#~<<^#Vs#r<i<i"*##s#rq#p !#'()+,-.06#~6+E5#w+~=w!%=#L~go A= *L![oR=$~##~O++###^#VBâ,r+sx##^#V66VIXUTIL RELLacehiLVIXUTIL PRNH`bdfgHVIXUTIL BAS7 7VIXUTIL BASRELCRFPRN)1Q*HHdh1:H )0 H( H! i)ȑ!*H]ȩHqH*h1*H! *1a*H h*hQ@H`k)Qa:H`* 1Hf Ɉ1H1H')$N@dHh1 H 12C1 160A 14002 XX$=INPUT$(1):IF XX$=CHR$(13) THEN BK$="1":GOTO 14003 ELSE 14003 12EE 1610 14003 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I 1317 1612 14004 PRINT " " 1320 1612 14005 ZZZ=0 1326 1614 14006 NJ=0:RETURN 132F 1614 14007 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I:NJ=0:GOTO 14001 1361 1614 1D60 1622 00000 Fatal Error(s) 15071 Bytes Free ot available...";CHR$(7);:SYSTEM 12A0 160A 14000 !9û4.%ͬ5$A~)z!MF!=MFzÈA .xCMFzÈA.xCMFzE!-O\-!w\!9͟;!6!"͂@!MF)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?͂@!-)?!"!,O\!,zE*w\!n>*͖>!"!\!G͐A.́C"*"!Ù*\|K>&*(C D*#"**z|}|u*++"!͏W*\|K>&!,F!͏W*"*(C D*#"*#"*iFDM!E͘D*|1)b-!zE͘D*|P)b-!zE͘D͂@!-)?͂@!?!,?|K&!-F*+"͂@!-)?!͘D*(C !,zED!"! MF,zE! MFzE!,zE͘D|K#!"|KY$!"!,F|K#!l,͘D!"|K#|KY$!G͐A.́C"|K#*"*Û|K#*iFDM!E!f,zE*(C zE͘D|K#*#"*|*#"**z|}|O|K#!b,F͂@!-)?!P,͘D|K#ò!L,F!-F!!H,F!D,F#!@,FN"͂@!-)?|K#!6,͘D!"|K#|KY$!ǴC"!-͘D*|go**z|r}|go|g}o|ʎ͂@!-)?͂@!-)?͂@!-,?*(C ͘D|K#͂@! ,)?͂@!+)?͂@!+?|K&!͘D!G|͂@!-)?*(C G"!G"!"*"!f*!E!+Fb*)*s#r*#"*|_)~*#"**z|z}|$*|ʨ͂@!-)?͂@!+)?͂@!-)?V!"*|go*|)?go|g}o!E!EzE!EF|g}o|V*|.*(C DV*#**}o|g+E͘D*#**}o|g+E͘D!G"!G"!"**}o|g##*}o|V*|go*(C DM**E!F|g}o|0*(C " ***}o|g*EzE*D*(C G"V*|=)?go*(C DM**E!F|g}o|*(C " *+ͫE!zE"! ***}o|g*E*!zE*D*(C G"V*#"Æ͂@!-)?|K#!6,͘D!"|K#|KY$!ǴC"*|go**z|6 }|go|g}o|[ ͂@!+)?͂@!-)?͂@!+?*>!+?͂@*(C )?͂@!+?!"|KY$!"!+F ͂@!+)?͂@!-)?*"*+ *(C " *D*#"**z| }| *+"͂@!+)?͂@!-)?͂@!-)?!r+͘D!"|K#|KY$!ǴC"*|go**z|g!}|go|g}o|ʌ!͂@!+)?͂@!-)?*iF!n+zE͘D*|ڬ!)Ҿ!,!zE͘D!"|K#|K&!G|!͂@!-)?*"*"*(C " *D*+"**zz%"{z!*#"*(C D͂@!-)?͂@!Y+)?!,zE!R+zEZ!,O\!,zE*w\!n>*͖>*iF͘D|K &!ͬ\*#"!"*(C ͘D|K &*#ͬ\*#"**z|"}|ҽ"!͏Wò*|#|K)!-F!-F|g}o|?#!-͘D͏K!-F\#!͘D!-͘D!E!N+F*|go|g}o|ʢ#͂@!?!,?!͘D7$o&}o|g"ہo&}o|g"!"!"*|#o&}o|g"*|#ۀo&}o|g"*|$!_G"*|.$!"G$͂@!)?!G*"!-͘D!"͏K!-F*|g}o|}$͂@!MF?!-͘D!"!-F$|K&!J+\G"*|$!͘D!-͘D$*+ͫE͘D*#!E͘D!G|$͏K*|l%!G"!T%*!EG!EG|5%)?go)))))MF*D*#"**z|h%}|%!G||%)%!+͘D|K#!?ͫE͘D͂@!)?!+"=!E=!ͫE͘D!+F!+F|g}o|%͂@!?!-͘DY$!G*"͏K͏K*++FzEͫE! MFzE! MFzEJE͏K!G++"*!E!,Fu&*+"*|u&I&*ͫE͘D*!E!N+F&!,zE͘D͏K!"!-͘D!MF!,zE!MFzE͘D!_G"*|&)go*|go|g}o|œ'*| ')2'͂@!MF?&*MFzE͘D*#"͂@*MF?*|o'͂@!MF?&*|&͂@!?*+"*ͫE͘D&*|go*|go|g}o|r'*|ʫ(*|'͂@! MF?!?&*| (͂@!-)?͏K*|"(͂@!*)?ì&*|go*|/g}/o|g}o|R(͂@!*)?ì&*|go*|go|g}o|&*"!Ð(͂@!?*#"**z|(}|҃(ì&*}o|g"*"**}o|g"͂@*F?*FzE͘D**"&M6*++FzEͫE! MFzE! MFzEJE͏K!G++"*!E!,Fl)*+"*|l)@)*ͫE ͘D͏Kͯ@B-)A)@͂@!MF)?͂@͂B .͂B.D?!*?!MF?M6͂@!-)?!"͂@!*?!MF?!_ ͘D! MF! F*!*͘D**!)*͂@!MF?*#"*|9*)*͂@!*)?!"!"͏K!j*͂@!MF?*#"*|z*)Z*!")M6!* *1*Hit for more **Sorry! file not available...*^X*^U+y+Retype line (Y/N): ,+Input line too long - would be truncated to:M+;Q+?U+.BAK\+Saving Datafile...q+> u+At line #:+Killed +Not deleted+Y+Confirm (Y/N): +:+Line # +No such line+Incorrect editing entry+\+Edit: + CR = No Change,Enter '\Old string\New string\'0,Was: 9,Line #:C,SG,EK,CO,DS,*** Aborted ***e,Ai,-- o,Line # (c/r=ALL):,L!,(I)nsert, (L)ist, (S)ave; Select?',(A)bort, (C)ontinue, (D)elete, (E)dit, , ,> , 9999,.DAT,R ,Thankyou...,q -Q-or enter uit editor !-Hit to continue$<-make any corrections or deletions...-c-This will allow you to edit the datafile, and&- Copyright 1986 Eric A. Shore.-M A I L L I S T D A T A B A S E E D I T O R -CONTROL.DAT-I-@p <~).Az   5G<Rq}<<<<<<<<<< <<!:IOXiu~>&0 $4CSbkz&"&&&0:#::Y$:DvNNN#N(N-N>XCXOXTXbbbbllvvvvH!z# N" (17<AMV $:KR~b   + .Nnw ***-*04m444>>RRRR R R R RF RO RX R[ \p \ f f f f f f f f p p p!p!p!p!p!&!/!5!:!?!K!w!!!!!!!!!!!!!! ")"0"B"K"N"W"n"""" &"""""""##$#$)6#.3#.<#.?#8J#8S#8\#B#B#B#B7$~#L#L#L#L#V#V#`#`#j $j$t%$t+$tG$.$tP$V$Y$Y$Y$q$}$$$$$$$$$$$$$$l% $%P%%<%%%%%(%(%2%2%2%2&<&F & & &;&>&>&>&I&_&f&u&r&&&&&"&"&,&6'|'@#'@/'@2'JD'JK'JW'Tc'To'^r'hz'h'r'r'r'('''''( ((("(F(O(R(w((((((((((())))2)5) 5) @) V) ]) l) i) {) ).)2).)2)2)6)6)6)6*6 *6*6*6%*6<*6E*6K*6Q*6T*6Z*6f*6}*6*6[[[[ BASLIB #000000 5.30 - OWNED BY MICROSOFT, 1980 4ʘ^>?\DM*"(H*7##"&Hò5>2424*^#V"4##^#V"4 24!5!!""4!5"56#6P>25>25>25Ϳ4X54X5O5_\L>{f !mw>e&Q_&Q_& 2m2m|e͆f>͑f>2{f!m4 2m2m o@CAC!9"i57 !2675!265!n526!R"5!O"57|6> j66#s#r#=5>2c5>2f5>2e52h5!\5"u5!$\"k5>&2m547K6#}/6|/6ͰK STO=7M67*u5.. . ........'J*5|T6:56*~5|667  s#r7  { 8w#6"5*i5*~5>25!8G6!9N#F7~#~6~+7~#~6+^#V###6###6| 7~#fo!7ͰK Internal Error - No Line Number \57~#ʩ7ͰK at line6\77>͐7ͰK at address|K}K7> 7b> 7b~#*7b~#fo%l!9"_5!7*_57"a5!8*a57!?8~<;8=;8#~#28'8#öKSyntax Error in DATRETURN without GOSU Type MismatcOut of DatIllegal Function CalOverfloOut of Memor Subscript Out of Rang Division By ZerOut of String SpacString Formula Too CompleRESUME without Erro2Field Overflo3Internal Erro4Bad File Numbe5File Not Foun6Bad File Mod7File Already Ope9Disk I/O Erro:File Already Exist=Disk Ful>Input Past En?Bad Record Numbe@Bad File NamCToo Many FileUnprintable Erro|j67}\+`:(``i"s5!(:"5!:"5ʄ: ,ͼ:_:n:3N^L*c*c*c*c~::NͬM*c~::NGL*c*c (:,Zͼ:~#:xI~:7!>u6ͼ:II͛DkYڟ: :¼:":G{,x:PXkY/;!h=Oz"y; O; ;O{,yĎ;kY/; ;{ );,> ););/;/;͎;kY:":; b;kYb; :;,b; Z;kYb; b;*s5( 4:5ʈ;{,ˆ;6!h=IO ʈ;+~ |;#6!h=ɷw#c;~0#~#N#";!9";";y2;*s5|;*5!<"5A~#*h>b:5;~ʫ<f<;3N;:N"h><(<^L*c*c*c*c5<ͬM*c5bY<~#"h>,; «<:5ʫ<;~«x"ʠ< ʠ<+~ ʕ6:h=7*s5|d=!h=II͛D*5Bg##͆f>2{f"fy!h~#fo###~=¯gy!h6#6x^iBKDMPY`i bkT]*m*m"m"m|g##6|g##6͆f^,^#V!~#foh&*m~#foɇ!mL*m~#fo~>L~#7}\+`(`! ~#fo"j>! "l>7|j6*j>}o|g=`"j>*l>"l>͝J#s#r++s72?@7=?@7H?@7?@72?8@7=?8@7H?8@7͝?8@72??7=??7H??7͝??cS?cS?"c\?H~# T?x2L:5 @?Œ?PI<D@~ʅ?ͣa#y?3@P~ʈ? ģa#Ï?>2L:5 @F#~#fox?D@??~#ͣaÿ??J?>"ãaG:5x?Kb*5+~< @= @###~ @*5Kb!?*5*5~=@/<D@3@=)@> ãa?>,ͣaW*5#^ n@h@+=h@:5=h@Kbz{ڀ@{_r@!5"5!"s525͘@!5~6#w7 n&7 ^#V"C|7!@þh:5^6*5DM7~#~A~+A~#~A+^#V!###@25#|+7:5^6^#V25^#V#"~5!"~5:5*57 nu6~!fAKN]A7i&u6 A BBA BBA BBBA BBBA BBA BBA BBBA BBB-BKB^#V#WB"|A*|A-BA-B^#B'B-B^#V#QBA"~A~2{A"|A7*~A*|A:{Alb:{Aëb:{AiBvBh ii3ivBxfhfebdb~#fo^#V#^#V#͎b^#V#͎b̓b^#V#̓bÒB&)))7>B>B>B>B>B>^#V#!cB C G^DC~#foC##7ßj^#V#8C k2577YC7ͫb͐Cvb|j67ÇC7͐CmCC:5C!8xfhôC:5C!8;h:c2c:cCD:cCC|/g}/oh:cD!cD^DC!7g6:cgoW*c|7g"D:c"D+>1D|/g}/o:D!ODG|KDBDo& Gȯ|g}oRDhD>uD~+~?~€D+#ҍD+ D7ID~##++ĝJ>b+V+^+D+r+sJ7͛D~Jɔ"D"D*D|j6}j6 j6+<E{*DE~#^#V`i#N#F b*DJJE#N#fiqE~#N#fibJFOXEG#~#fo#~#foxbyqEJ6 #qE7j6͍I͛E͛EJJ~#~#fob7|j6BKEPY7|j6BK E o_ùE7zj6zE E_Eo}`iJJDM7 +F~j6#~#fon&J7zGF}͍I~DFs#:F7j67|j6!9>I$)zz7"c>ÐF7c>ÊF7c>b2L>!aF̓bP>aFvb~#¬FxI>F>F>F>F>F> G!+>F>F>F>F>F> G G~#fo##GN9Gy9G#~#fo~#foBG#8G (G yBGy<.LG)LG)JJɛeGxj6űpG y<2[GF~ںGںG#~#foybO #~#foxʾG®G#GþG![G4 šG2[GJJ*[G&~Jo&~j6#^#V++Jo&7~HEAHDHGHJHMHEPHSHVHE_!#H4iH5*$H"$H~#N#F#کHH blHyxҎH lH+++6@#yw#xw+++6###!#H~6ںHHiHI*$H#~#~iH7a6!*&H"$H~#^#V#IHbH|IH++~_w#~Ww#HH*&HDM~#^#V#sI3I"I+zPJ+{PJ##{z~#q#p_"IyhIxhIDM"I~#hI"IYP+++"$H6@###{_zW+r+sɷI**H| I7d6YH^#V+"*Hw#s#r+++r+s##!II*xK{z*zK?I}|~# IyG͍IxbG͍Ix#N#F& II͝JJ*xK*zKbLJ KFJ͝JJ###-JrJͰK during G.C. \5rJͰK \5ͰK Internal Error - String Space Corrup#N#F*&HyxJ*(HyxJ++`i+V+^bgJ##6+6+~6  >@++**H"*Hs#r+I*$H#~_#~WK7p6r+s##6"(H###!*H~#fo4Kb$K<*&H"$H*(H}o|g6@#s#r#6"(H*zK*xK"*H}w>#w##b_K++6+6,HYH!n54!9"i5^#V#!n5~wU6!9"i5ɧ~7b#=¤KͶK~7b#öKG~#K#K++K0:K7b:uÛ~:GILAvu vv> ~:bru͈~rpU:L*c}/o|/g#"c|kL͟j:L!c~wɯ2cpUULhkL*ckLßjpUULg>>N~D5#pLD5 L!cÎL>!cc2L# ”L!cxf!cuMd>>ڷL>|}+!+NÀe=M&k+6!c>g2c!'N3i!#NÀe!cÀe~_#~W#~Oplh!TþhqjMɇ<o&kLßj*c*c@M"c`i"c!c^#V#N#F#!'Nÿi^lx{Sl!c63kwg>ͻlwlyM:LGw#yMtMÎM!cuMcpUcpUlM*c||2LMaj N L}BLhL8V>2K`h N~&ʋU-bN+bN+VUIO.NetNEžNVUlʌNLʌNqʌNQʝN:LʷN>÷N~%N# O!OdʷNDNOVÚUVUڼON_{_&O6ONLpU!MNpU NObNVU!M!MNOVUNGL^LpUIML=pULLDG·P"c`i"c#~+/Q-Q0OxG/Q#~P`xE$Qy P>2K4Q|PQP"c`i"c2M#WCS:KbQlQpQpQS60GM T+~0Q.GMʱQpU>"w#6+Q6-/</ ҤQ:#p#w#6!K#z8RRSzS͡T{̿L=SAPQp#6!K#:L~ Q*Q+RVU-+_:k5{00R#VU0R++w&RQ0R6%RTRTͤLbRP+6%MKRlMCSR_xSS TSSQ_y4OR6OR{_xRSSRͶSySOͶSGO TR*L=SPQULѯRlM7CSy4OOzWO6OSS/< S/>͋L2T>͋Lp#=)T!c/MeTM>OM2MFU?S=M/{_#zW#yO++yTL#2Mp#kT>çTLU>SN#F#*c/}o|gҺT"cp#=§TSw1_c"Ƥ~@zZrN vH Tʚ;@B''d #~: VU VU VU0?<=:L}U7-++VUVOʜUHʜU+ͨUڱU NH#U÷U7g6M!UU}0?)))صoUM!UU}V0? V? ))))صoUa{ MpU:c:cL:K2K2K7g67g6*z|z}|$*|ʨ!-͋!+͔͑!-͚V!"*|go*|)?go|g}o!/!{!c|g}o|V*|.* 7}\+`(`!' ~JW JW#~?W`i&Y W>O #~goPY!' ůwZY:4 \F`=@`=~Wѯ1`"X!' ~UWZYz]7}\+`!&W! ~+ng7}\+`! n&*s5~%`:_DM'~RW4N#V pFXzw w+s#r#6#6DM:4qX!" s#r#6öX! {zVʮXSVw<¬X*s5T]% N#F+q#p###6 ;YZY:4 \>SY>w+w!(X7?*s5' 6#67~C`#^#fk_ڣYN#~:ʧY++@C`y@C`C`V #Y~.YY7ýY#¾Y2VJz C`C`> YY> YY7͆YSVV<:`!VV> b͆Y:V!VI`V<4`V*W~(`#N#F++J OʑZIʑZR(`*W|‘Z!"W}_\¤Zz]{\7`z͆Y Ͷ]"s5#V> b66ZY~Z.ra [:5 W:5\> raraoaV[~*6?# \O!!48\#48\#4y"M\F`><"W>2y5!_"z5:w5<2w5*u5"W!\"u57"WXZ*5|ʙ\##n͗WÈ\.͒W*W7ð\72 W]" W]7\72 W]" W]+`<+`=_!5~#fo]##{]++\*5]"5q#p#s#4#5++###DM !5" W~#foX]+V+^##*W{z$]BK^#V+* Ws#r! DMj]*W DMJs#r# 6# xm] !5T]~#fo+`x…]y…]~#~+*5"5s#r+͊*W|]! s#r#w]2]}\(`! ^#V: W]* W{.`+s#r! w#w! ~#fo!`+^i^BK>!)>^)#?^))M^ L^#=4^}_}la)I`d^#xI`"]! "]!) "]!}o|g`ړ^bk:]^`Ҩ^^DM*]*]-_"]PY^}o|g*]#"]v^^DM*]*]-_"]PYþ^2`*]! ~#fo`s#r_:`)_!)_!& MX~# x._DM͖_=`͋_! w!( V6 c_zw͔_=`͋_! ~!Æ_! ^#V! s#rDM̓_}_`}\+`ʶ_(``i"s5!_"|5_kY7!>u67|j6,_-:y5+`*z5!;5"|5{͍If$%`! `*|5_|}!"s5>6>4>?>=>:>7>5>2>3>@>C>7o&u67!"s5!h="h>f`:!=w`ͰK?w`p͝aë`:na>\2na‘`v`ra+ʥ`~raù`+ra¹`raoa!h=2naü`͝aO}`:na`>\ra2nay ra>Þ`a>#å`7a6oa!h=͇aù` ڹ`x<>Gayq#ra ¹`> ra͝aTa ʹ`ü`:!=oaw77b>^ra@raoa~ –a> rara#Ça;5*5 ʺa#~+<ʹa=Kb "b%b a4+~# ͣa~=)b*5!5"5ͣa"5> ͣa> ãa:5=fb> K5> K5*a^#V#vbɷ!cb!cÍbcbcbw#w#w#w#b>cþb>cb ~#=b!b#~ b bɅo$ɧGw#b{z6#d3hd>dwlOCd!l!cy#;d+.dwl?l'eGlg\d'eg e!c3hd:cwl:d/Ngf2c:c(gwlx/F+N+=Ge!c[e!c>q#p#=^e!cÀe")cReAe-e*)c3h.l:c.l!dN#FjͪgqʽeGfgx ¦ee(g!cgõej0 TeB׳]h!I.k 'eGlgf'eg!cÀeOA!cq#~++w+qfwlDNn"~`35zr1{r1h!I3hwlyO2d~f3hwl:c eҐf/< e9wl:dO&kG2c!dg:c2cx!ccgff4g:cf!c~++wwl!c4#f4 f+6!cc# fɯ# gg(g/!cOyw# gG:cQg!cVwz# 6gx)g.l!cdgIgxf!cw.lf~w# fg'eGlgÅg'eg!cxf'eGlgág'eg e!chfy2d!c0c~q+·gqgNsY+gg W~w+gg!cg͟jgGl!cw#hwlh}JhhPhJh&k!cF#^#V#NlPh}c~#8hG++Nylc6h!cGl>ʍhehOApl͛h^lʉh!c63kg>ͻl|j!>_hakGlh7jhwl!c~+>wwlͱjhhlwl:cPlh/<kwl&kgͻl!ci~_#~W#~Ol#4k.#llG~_#~W#~OjPkͱj#ihlwl>Ohͱj6ihljwlȯGj"cy2cFojk!D*c:cOsic4kËi͛ig.*c:cOzti͛ig.*c:cÁix<=i{_zWxG)yOHGlͱjihlSlwljy+F+F+Fw`h|jgyi:cO|g}oxG-|i}iPkElaOi!c~Gx/jƀ-lw&kw+ɷk.l^lx{Sl!c63kwgUjzTj >ͻl| l{>2cPk/))!k =k!c~7w?##wy7O*c*c"c"cajSX͗k.lJS\E!c.l/âl ҡl7>{_zW}o|g=˜l|g}olCZQýl o-yOzW{_xGlc*cDM^#V#N#F#xyl:c:c1 ON ERROR GOTO 12000 2 DEF FNAT$(I,J)=CHR$(27)+CHR$(61)+CHR$(I+32)+CHR$(J+32) 3 OPEN "I",1,"CONTROL.DAT":INPUT #1,FIL$:CLOSE 4 FIL$=LEFT$(FIL$,10) 5 DIM M(200,2),A(6),Y(10),A$(1000) 10 PRINT CHR$(26):PRINT "M A I L L I S T D A T A B A S E E D I T O R":PRINT " Copyright 1986 Eric A. Shore" 15 PRINT:PRINT:PRINT:PRINT "This will allow you to edit the datafile, and" 16 PRINT "make any corrections or deletions..." 20 PRINT:PRINT "Hit to continue" 21 PRINT FNAT$(10,0);"or enter uit editor ";CHR$(7);:INPUT B$:IF B$="" THEN 60 22 IF B$="Q" OR B$="q" THEN PRINT CHR$(26):PRINT FNAT$(15,33);"Thankyou...";CHR$(7);:SYSTEM ELSE 21 30 STOP 60 DEFINT A-Z:BEL=-1:PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT:PRINT 440 RL=128 460 OPEN "R",1,FIL$+".DAT",RL:FIELD #1,RL AS RR$:RE=1 480 GET#1,1:QQ=VAL(RR$)+1:FOR RE=2 TO QQ 490 GET#1,RE:GOSUB 1470:A$(RE-1)=S$:NEXT:F=RE-2:CLOSE:GOTO 560 500 GET#1,RE:GOSUB 1470:IF S$=" 9999" THEN CLOSE:F=RE:GOTO 560 510 A$(RE+1)=S$:RE=RE+1:GOTO 500 520 REM 530 F=F+1:A$=MID$(STR$(F),2):IF F<100 THEN A$=""+A$: IF F<10 THEN A$=""+A$ 540 PRINT:PRINT A$;"> ";:GOSUB 1570:IF SAV$="" THEN F=F-1:PRINT:GOTO 560 550 B$=SAV$:A$(F)=B$+" ":GOTO 520 560 NJ=0:A1$="(A)bort, (C)ontinue, (D)elete, (E)dit, "+ CHR$(13)+CHR$(10)+"(I)nsert, (L)ist, (S)ave; Select?" 570 GOSUB 1050:C=1:GOSUB 1180:C=0 580 IF B$<>"L" THEN 630 590 GOSUB 1050:A1$="Line # (c/r=ALL):":N=1:GOSUB 1050:GOSUB 1180:LQ=VAL(B$)+1 600 GOSUB 1050:FOR L=LQ TO F:GOSUB 1050:A$=MID$(STR$(L),2)+"-- "+A$(L) 610 GOSUB 1050:NJ=NJ+1:IF BK THEN 560 ELSE NEXT L 620 GOSUB 1050:GOTO 560 630 IF B$="A" THEN PRINT:A$="*** Aborted ***":GOSUB 1050:GOTO 10 640 IF B$="D" THEN 840 650 IF B$="I" THEN 890 660 IF B$="C" THEN 530 670 IF B$="E" THEN 700 680 IF B$="S" THEN 950 690 PRINT:GOTO 560 700 GOSUB 1050:A1$="Line #:":N=1:GOSUB 1050:GOSUB 1180:L=VAL(B$):PP$="" 710 IF L=0 OR L>F THEN PRINT:GOTO 560 ELSE PRINT:PRINT "Was: ";:A$=A$(L):GOSUB 1050:PRINT "Enter '\Old string\New string\'" 711 PRINT " CR = No Change" 720 PRINT "Edit: ";:GOSUB 1570:B$=SAV$ 730 IF LEN(B$)=0 THEN PRINT:GOTO 560:ELSE A=LEN(A$(L)):B=LEN(B$):Y=1 740 FOR X=1 TO B:IF MID$(B$,X,1)="\" THEN A(Y)=X:Y=Y+1 :IF Y>4 THEN 760 750 NEXT X 760 IF Y<>4 THEN PRINT:PRINT "Incorrect editing entry":PRINT: GOTO 710 770 X1=0:IF A(2)=3 AND A(3)>5 AND MID$(B$,2,1)+MID$(B$,2,1)= MID$(B$,4,2) THEN 710 780 IF Y<>4 THEN A$(L)=B$:GOTO 710 790 B1$=MID$(B$,A(1)+1,A(2)-A(1)-1): B2$=MID$(B$,A(2)+1,A(3)-A(2)-1): B1=LEN(B1$):B2=LEN(B2$):X=1 800 IF X=A-B1+2 THEN 710 810 IF X=1 AND B1$=MID$(A$(L),X,B1) THEN A$(L)= B2$+MID$(A$(L),X+B1,A-X+B1): A=LEN(A$(L)):GOTO 710 820 IF X>1 AND B1$=MID$(A$(L),X,B1) THEN A$(L)= LEFT$(A$(L),X-1)+B2$+MID$(A$(L),X+B1,A-X+B1): A=LEN(A$(L)):GOTO 710 830 X=X+1:GOTO 800 840 REM DELETE A LINE 850 PRINT:GOSUB 1050:A1$="Line #:":N=1:GOSUB 1050:GOSUB 1180:D=VAL(B$): IF D=0 OR D>F THEN PRINT "No such line":PRINT: GOTO 560 860 PRINT"Line #";D;":";:PRINT A$(D) 870 PRINT"Confirm (Y/N): ";:C=1:GOSUB 1180:C=0: IF B$<>"Y" THEN PRINT "Not deleted":PRINT:GOTO 560 880 FOR X= D-1 TO F:A$(X)= A$(X+1):NEXT:F=F-1: PRINT "Killed":PRINT:GOTO 560 890 REM INSERT A LINE 900 PRINT:A1$="At line #:":N=1:GOSUB 1050:GOSUB 1180:LN=VAL(B$): IF LN=0 OR LN>F THEN PRINT "No such line":PRINT:GOTO 560 910 A$=STR$(LN)+">":IF LN<10 THEN A$=" "+A$ 920 N=1:GOSUB 1050:GOSUB 1570:IF LEN(SAV$)=0 THEN PRINT:GOTO 560 930 FOR X= F TO LN STEP -1:A$(X+1)=A$(X):NEXT X:F=F+1 940 A$(LN)=SAV$:PRINT:GOTO 560 950 REM 960 PRINT "Saving Datafile..." 970 NAME FIL$+".DAT" AS FIL$+".BAK" 980 OPEN "R",1,FIL$+".DAT",RL 990 FIELD#1,RL AS RR$:S$=STR$(F):GOSUB 1420:PUT#1,1 1000 FOR RE=1 TO F+1:S$=A$(RE):GOSUB 1420:PUT#1,RE+1:NEXT RE: CLOSE:GOTO 10 1050 REM ***PRINT STRING FROM A$ ON CONSOLE*** 1060 IF NJ=3 THEN GOSUB 14000 1070 IF SAV$<>"" AND A1$<>"" THEN A1$="":RETURN 1080 IF A1$<>"" THEN A$=A1$:A1$="" 1090 IF RIGHT$(A$,1)="?" OR N=1 THEN PRINT A$;" ";:PP$=A$:GOTO 1150 1100 CON=(INP(&H1) AND 1):DCH=(INP(&H81) AND 1):BI=0:BK$=0 1110 IF CON THEN BI=(INP(&H0) AND 127) 1120 IF DCH THEN BI=(INP(&H80) AND 127) 1130 IF BI=19 THEN BI=ASC(INPUT$(1)) 1140 IF BI=11 THEN BK=-1:GOTO 1160 ELSE PRINT A$ 1150 A=A+LEN(A$) 1160 A$="":N=0 1170 RETURN 1180 REM 1190 REM ***ACCEPT STRING INTO B$ FROM CONSOLE*** 1200 REM 1210 IF BEL AND SAV$="" THEN PRINT CHR$(7); 1220 B$="":BK=0 1230 IF SAV$="" THEN GOSUB 1570 1240 SP=INSTR(SAV$,";"):IF SP=0 THEN B$=SAV$:SAV$="":GOTO 1260 1250 B$=LEFT$(SAV$,SP-1):SAV$=MID$(SAV$,SP+1) 1260 IF LEN(B$)=0 THEN RETURN 1270 IF C=0 THEN 1290 1280 FOR ZZ=1 TO LEN(B$): MID$(B$,ZZ,1)=CHR$(ASC(MID$(B$,ZZ,1))+32*(ASC(MID$(B$,ZZ,1))>96)):NEXT ZZ 1290 IF LEN(B$)<64 THEN 1340 1300 A$="Input line too long - would be truncated to:":GOSUB 1050 1310 B$=LEFT$(B$,63):PRINT B$ 1320 LINE INPUT "Retype line (Y/N): ",QQ$:QQ$=LEFT$(QQ$,1) 1330 IF QQ$="Y" OR QQ$="y" THEN PRINT PP$;:SAV$="":GOTO 1180 1340 D=D+LEN(B$):RETURN 1350 RETURN 1420 REM 1430 REM FILL AND STORE DISK RECORD 1440 REM 1450 LSET RR$=LEFT$(S$+SPACE$(RL-2),RL-2)+CHR$(13)+CHR$(10) 1460 RETURN 1470 REM 1480 REM UNPACK DISK RECORD 1490 REM 1500 ZZ=LEN(RR$)-2 1510 WHILE MID$(RR$,ZZ,1)=" " 1520 ZZ=ZZ-1:IF ZZ=1 THEN 1540 1530 WEND 1540 S$=LEFT$(RR$,ZZ) 1550 IF MID$(S$,ZZ,1)="?" THEN S$=S$+" " 1560 RETURN 1570 CHC=0: SAV$="":ERS$=CHR$(8)+" "+CHR$(8) 1580 NCH=ASC(INPUT$(1)) 1590 IF NCH<32 OR NCH=127 THEN 1660 1600 IF CHC>=128 THEN PRINT CHR$(7);:GOTO 1580 1610 SAV$=SAV$+CHR$(NCH): CHC=CHC+1:PRINT CHR$(NCH); 1620 IF CHC=128 THEN PRINT CHR$(7); 1630 GOTO 1580 1640 IF CHC=0 THEN 1580 ELSE PRINT ERS$; 1650 CHC=CHC-1:SAV$=LEFT$(SAV$,CHC):GOTO 1580 1660 IF NCH=127 OR NCH=8 THEN 1640 1670 IF NCH=9 THEN 1740 1680 IF NCH=18 THEN PRINT CHR$(13);SAV$;:GOTO 1580 1690 IF NCH=13 THEN PRINT: RETURN 1700 IF NCH=21 THEN PRINT "^U": GOTO 1570 1710 IF NCH=24 AND NOT BKS THEN PRINT "^X":GOTO 1570 1720 IF NCH<>24 OR CHC=0 THEN 1580 1730 FOR BCC=1 TO CHC: PRINT ERS$;: NEXT BCC: GOTO 1570 1740 TP=(CHC AND 248):TP=TP+8:TP=TP-CHC 1750 PRINT SPACE$(TP);:SAV$=SAV$+SPACE$(TP):CHC=CHC+TP:GOTO 1580 1760 END 2260 REM 2270 REM FILL AND STORE DISK RECORD 2280 REM 2290 LSET RR$=LEFT$(S$+SPACE$(RL-2),RL-2)+CHR$(13)+CHR$(10) 2300 RETURN 3200 REM unpack record 3210 ZZ=LEN(R1$)-2 3220 WHILE MID$(R1$,ZZ,1)=" " 3230 ZZ=ZZ-1:IF ZZ=1 THEN 3250 3240 WEND 3250 KL$=LEFT$(R1$,ZZ) 3260 RETURN 12000 IF ERL=3 THEN RESUME 13000 12001 RESUME NEXT 13000 PRINT CHR$(26):PRINT FNAT$(15,15);"Sorry! file not available...";CHR$(7);:SYSTEM 14000 PRINT 14001 N=0:PRINT "Hit for more ";CHR$(7); 14002 XX$=INPUT$(1):IF XX$=CHR$(13) THEN BK$="1":GOTO 14003 ELSE 14003 14003 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I 14004 PRINT " " 14005 ZZZ=0 14006 NJ=0:RETURN 14007 FOR I=1 TO 32:PRINT CHR$(8);:NEXT I:NJ=0:GOTO 14001  " 14005 ZZZ=0 14006 NJ=0:RETURN 14007 FOR THEN 1580 1730 FOR BCC=1 TO CHC: PRINT ERS$;: NEXT BCC: GOTO 1570 1740 TP=(CHC AND 248):TP=TP+8:TP=TP-CHC 1750 PRINT SPACE$(T This is the release date of the disk. VIXUTIL BAS VIXUTIL .BAS 25 32 7040 55  Fog Library Disk FOG-CPM.169 Copyright (1987) by Fog International Computer Users Group to the extent not copyrighted by the original author for the exclusive use and enjoyment of its members. Any reproduction or distribution for profit or personal gain is strictly forbidden. For information, contact FOG, P. O. Box 3474, Daly City, CA. 94015-0474. as part of the description of a file indicates that the program is distributed on a "try first, pay if you like it" basis. If you find the program(s) meet your need, please refer to the author's documentation for information on becoming a registered user. Only by registering and paying for the programs you like and use will the authors of such programs continue development. Often, more complete documentation, additional modules, and new releases are available only to registered users. Osborne 1 and Vixen programs. Filename Description -04-00 .87 This is the release date of the disk. -CPM1%69 .DOC This is the description of the disk contents. VDOO .COM CCB2 6K [VideoDisplayEditor 1 of 5] Text editor for the Osborne 1 and Vixen only. Uses memory mapped video. Squeezed Z80 assembler source is also included. VDOO .DOC 397B 16K [VideoDisplayEditor 2 of 5] VDOO .HLP 7688 2K [VideoDisplayEditor 3 of 5] VDOO .TQP 1865 5K [VideoDisplayEditor 4 of 5] VDOO .ZQ0 E1AF 34K [VideoDisplayEditor 5 of 5] VIXLABEL.COM 637F 40K [Vixen Labels 1 of 5] Name/address/mailing database for producing labels for memory mapped Osborne Vixen graphics only. Basic source is included. VIXLABEL.DOC 4036 5K [Vixen Labels 2 of 5] VIXLABEL.BAS CF31 23K [Vixen Labels 3 of 5] VIXUTIL .COM DC7D 27K [Vixen Labels 4 of 5] VIXUTIL .BAS 2532 7K [Vixen Labels 5 of 5] e release date of the disk. -CPM1&'