LnSOS BOOT 1.1 SOS.KERNEL SOS KRNLI/O ERRORFILE 'SOS.KERNEL' NOT FOUND%INVALID KERNEL FILE: xةw,@  ȱlmi8#)!) CONPATH: File-to-File Conversion Paths ALLAN M. BLOOM, PhD CDP Institutional Research, Virginia Tech, Blacksburg, VA 24061 2303 San Marcos Str?*SOS.KERNEL ,Vz a,WAP.STANDARDz! Q+DISKNAME.DATy*FLASHNAME.DATzGw *MENU.MAKER | |6*SOS.DRIVER 4z z *SOS.INTERP 4ke%! -READ.ME.FIRST3ؾ.III.BLM.14UFFu3' +CONPATH.AW3 H=?,+CONPATH.LST&uI96 ,CONPATH.TEXTK'LKK*HELLO.TEXTrO&HELLO t/ %SEG.T v >dLԡm#i㰼m#iЕOLԡȱfg hi !dLԡ憦  Ljmkm l y`2 Lԡ8(Je稽)ʈ@Leet, Blacksburg, Virginia 24060 Office: (703) 231-7921 Home: (703) 951-2025 CIS: 76656,1514 BitNet: IRBLOOM @ VTVM1 CONPATH tells about w  :;<=>lumns aligned and watch your spelling and capitalization. CONPATH is picky about such things. If you start "VisiCalc" in column 20, CONPATH will see "isiCalc." CONPATH thinks "DIF" and "dif" are two different entries. Every time you change CONPATH.DATA, yoe any handy editor (Apple Writer, Pascal, etc.) to add or delete table entries. You should delete entries for programs you don't have. You should also add entries for bridges you have that CONPATH.DATA doesn't know about. When adding an entry, keep the co | CONPATH.DATA on the distribution disk contains about 70 entries, 20 separate source file formats with about three target file formats for each. You can us VisiCalc | | KeyStroke KeyStroke-DB ASCII | | KeyStroke KeyStroke-DB Name:Value | | KeyStroke KeyStroke-DB VisiCalc | | | QuickFile 3EZPieces 3EZPieces-DB | | DIF 3EZPieces 3EZPieces-DB | | DIF 3EZPieces 3EZPieces-SS | | DIF VisiCalc FS-File ASCII | | PFS PFS-File Name:Value | | Name:Value NVASCI ASCII | | ASCII GRABIT QuickFile | e | |--------------------------------------------------------------| | Col 1-17 Col 21-37 Col 41-57 | |--------------------------------------------------------------| | PFS Ps per text line. It looks like the following: | | | Source File Bridge Program Target Fil" to "there" may not be obvious, it may be downright devious, and there may be several paths. CONPATH is designed to help you find those pathways. It starts with an ASCII text file named CONPATH.DATA that lists one bridge between one pair of stepping stoneManager to DIF, ASCII, or NAME:VALUE. NVASCI (public domain) converts a NAME:VALUE file to ASCII format and doesn't ignore null fields. There are plenty of "bridges" around. Getting from one file format to another can be easy. However, the path from "hereween file formats. The public domain program GRABIT converts an ASCII file to QuickFile format. REFORMATTER /// (Pair Software) converts a "table file" (say a report printed to disk) to DIF or QuickFile format. MLMASCI (TAU RoyaltyWare) converts Mail List grams can "import" or "export" data in one or more formats. Those files are stepping stones between systems. The most common such intermediate files are ASCII, NAME:VALUE, and DIF. There are also utility programs available specially designed to bridge betays to convert one file format to another. The premise is simple. There are a bunch of "bridges" and a bunch of file formats that can be "stepping stones" between the file format you have the the one you want. Most commercial data base and spread sheet prou should print an "audit list of all paths" to check your work. CONPATH loads up to 99 source file types, with up to 10 transformations for each. It then asks if you want an audit list. Then the program presents you CONPATH January 31, 1987 Page 1 Bloom Conversion Paths with a list of file types. You select the conversion's source and target files from the list. Then, if you're lucky, CONPATH tells in the same directory as CONPATH itself. Press RETURN to accept the default, else edit the pathname (in brackets) as follows: ESC: No file. Pgm ends. RET: Accept bracket contents. L/R Arrows: Move cursor. Openapple-I | | | | | A: CONPATH presents a default of the conversion data file being named CONPATH.DATAthe CONVERSION DATA file [prefix/CONPATH.DATA] | | | B: | Loading Conversion Record nnn | | | | CONPATH: File-to-File Conversion Paths (v.01/87) 01/27/87| | | | | A: | Enter the path of H on a screen-by-screen basis. The first screen is concerned with the conversion data file. It looks like this: | never be obsolete. CONPATH January 31, 1987 Page 2 Bloom Conversion Paths Let's look at CONPATF to 3EZPieces-SS via 3EZPieces CONPATH is a quick and easy way to find all the ways of converting one file format to another with available software. Since it is driven by an external table, it can be customized to any environment. It need Path 5: Convert PFS to ASCII via PFS:File Convert ASCII to 3EZPieces-DB via 3EZPieces Convert 3EZPieces-DB to DIF via 3EZPieces Convert DIa PFS:File Convert ASCII to KeyStroke via KeyStroke-DB Convert KeyStroke to VisiCalc via KeyStroke-DB Convert VisiCalc to 3EZPieces-SS via 3EZPieces a Reformatter Convert DIF to VisiCalc via VisiCalc Convert VisiCalc to 3EZPieces-SS via 3EZPieces Path 4: Convert PFS to ASCII via Reformatter Convert DIF to 3EZPieces-SS via 3EZPieces Path 3: Convert PFS to Table via PFS:Report Convert Table to DIF via KeyStroke-DB Convert VisiCalc to 3EZPieces-SS via 3EZPieces Path 2: Convert PFS to Table via PFS:Report Convert Table to DIF ving five paths: Path 1: Convert PFS to Name:Value via PFS:File Convert Name:Value to KeyStroke via KeyStroke-DB Convert KeyStroke to VisiCalc vi you one or more ways to get from one file to another. If you're not lucky, CONPATH reports that you can't get there from here. Mostly you are overwhelmed with options. For example, converting a PFS file to a 3EZ Pieces spread sheet could yield the followi : Toggle insert. Openapple-L-Arrow: Delete left. Openapple-R-Arrow: Del right. Openapple-ESCAPE: Default reappears. B: An odometer shows the number of conversion data file records that have been read and processed. It takes a while. Sorry about that. The second screen asks where you want the program's output. | | | CONPATH: File-to-File Conv!"#$%&'()*+,-./0123456789?@ABCDEFGHIBlacksburg, VA 24061 2303 San Marcos Street, Blacksburg, Virginia 24060 Office: (703) 231-7921 Home: (703) 951-2025 CIS: 76656,1514 BitNet: IRBLOOM @ VTVM1 CONPATH: File-to-File Conversion Paths ALLAN M. BLOOM, PhD CDP Institutional Research, Virginia Tech, e/target] file --> { } | | | C: | Do you want [name] as the [source/target] file? (Y | N) --> { } | | 13: MultiPlan 14: Great Plains 15: Omnis3 | | | | | B: | Enter the number of the [sourc Conversion Paths | 4: Quickfile 5: DIF 6: Mail List Mgr | | 7: Flat File 8: 3EZPieces-DB 9: 3EZPieces-SS | | 10: KeyStroke 11: Table 12: VisiCalc | | | A: | 1: Name:Value 2: PFS 3: ASCII | CONPATH January 31, 1987 Page 3 Bloom | | | CONPATH: File-to-File Conversion Paths (v.01/87) 01/27/87| | | | thing. Press "Y" if you want to see it, else press "N". Once the preliminary chores are done, CONPATH presents you with the actual file conversion screen. It looks like this: printer) for anything else. Press RETURN to accept the default, or enter a different number. Enter zero for an 80-column printer. C: An audit list is mostly valuable if you have changed the CONPATH.DATA file or to ensure that you haven't missed anyput to any valid SOS device or file. If you choose CONSOLE output, CONPATH pauses as each screen is filled. Edit the pathname (in brackets) as in Screen 1-A. B: The default left margin is zero for console output and 12 spaces (an inch on a 12-cpi | C: | Would you like an audit list of all paths? (Y | N) --> { } | | | A: The default is PRINTER. You may direct the out ] | | | B: | Left margin? (Default = 12) --> { } | | | | ersion Paths (v.01/87) 01/27/87| | | | | A: | Enter the pathname of the print output file: [.PRINTER | A: This is a list of all the types of files that CONPATH knows about (from CONPATH.DATA). Each is numbered. Any may be the source file for your desired conversion, and any other may be the target file. B: Enter the number (from the above li | KeyStroke KeyStroke-DB VisiCalc | |______________________________________________________________| CONPATH.DATA on the distribution dis | DIF VisiCalc VisiCalc | | KeyStroke KeyStroke-DB ASCII | | KeyStroke KeyStroke-DB Name:Value | | QuickFile 3EZPieces 3EZPieces-DB | | DIF 3EZPieces 3EZPieces-DB | | DIF 3EZPieces 3EZPieces-SS | | PFS PFS-File Name:Value | | Name:Value NVASCI ASCII | | ASCII GRABIT QuickFile | | Col 1-17 Col 21-37 Col 41-57 | |--------------------------------------------------------------| | PFS PFS-File ASCII | | | | Source File Bridge Program Target File | |--------------------------------------------------------------| ASCII text file named CONPATH.DATA that lists one bridge between one pair of stepping stones per text line. It looks like the following: ______________________________________________________________ at to another can be easy. However, the path from "here" to "there" may not be obvious, it may be downright devious, and there may be several paths. CONPATH is designed to help you find those pathways. It starts with an l List Manager to DIF, ASCII, or NAME:VALUE. NVASCI (public domain) converts a NAME:VALUE file to ASCII format and doesn't ignore null fields. There are plenty of "bridges" around. Getting from one file form domain program GRABIT converts an ASCII file to QuickFile format. REFORMATTER /// (Pair Software) converts a "table file" (say a report printed to disk) to DIF or QuickFile format. MLMASCI (TAU RoyaltyWare) converts Maitepping stones between systems. The most common such intermediate files are ASCII, NAME:VALUE, and DIF. There are also utility programs available specially designed to bridge between file formats. The publicile formats that can be "stepping stones" between the file format you have the the one you want. Most commercial data base and spread sheet programs can "import" or "export" data in one or more formats. Those files are s CONPATH tells about ways to convert one file format to another. The premise is simple. There are a bunch of "bridges" and a bunch of fst) of the file that you want. C: If you miskeyed the file number, press "N" to get another chance. The "B" and "C" message pair repeats for the source file (the file format you have) and for the target file (the file format you want). Once you have entek contains about 70 entries, 20 separate source file formats with about three target file formats for each. You can use any handy editor (Apple Writer, Pascal, etc.) to add or delete table entries. You should delete entries for programs you don't have. You should also add entries for bridges you have that CONPATH.DATA doesn't know about. CONPATH January 31, 1987 Page 1 Blo be obsolete. CONPATH January 31, 1987 Page 2 Bloom Conversion Paths Let' CONPATH is a quick and easy way to find all the ways of converting one file format to another with available software. Since it is driven by an external table, it can be customized to any environment. It need never Convert ASCII to 3EZPieces-DB via 3EZPieces Convert 3EZPieces-DB to DIF via 3EZPieces Convert DIF to 3EZPieces-SS via 3EZPieces lc via KeyStroke-DB Convert VisiCalc to 3EZPieces-SS via 3EZPieces Path 5: Convert PFS to ASCII via PFS:File Path 4: Convert PFS to ASCII via PFS:File Convert ASCII to KeyStroke via KeyStroke-DB Convert KeyStroke to VisiCa Convert Table to DIF via Reformatter Convert DIF to VisiCalc via VisiCalc Convert VisiCalc to 3EZPieces-SS via 3EZPieces rmatter Convert DIF to 3EZPieces-SS via 3EZPieces Path 3: Convert PFS to Table via PFS:Report c to 3EZPieces-SS via 3EZPieces Path 2: Convert PFS to Table via PFS:Report Convert Table to DIF via Refo to Name:Value via PFS:File Convert Name:Value to KeyStroke via KeyStroke-DB Convert KeyStroke to VisiCalc via KeyStroke-DB Convert VisiCalhere. Mostly you are overwhelmed with options. For example, converting a PFS file to a 3EZ Pieces spread sheet could yield the following five paths: Path 1: Convert PFS urce and target files from the list. Then, if you're lucky, CONPATH tells you one or more ways to get from one file to another. If you're not lucky, CONPATH reports that you can't get there from CONPATH loads up to 99 source file types, with up to 10 transformations for each. It then asks if you want an audit list. Then the program presents you with a list of file types. You select the conversion's sotart "VisiCalc" in column 20, CONPATH will see "isiCalc." CONPATH thinks "DIF" and "dif" are two different entries. Every time you change CONPATH.DATA, you should print an "audit list of all paths" to check your work. om Conversion Paths When adding an entry, keep the columns aligned and watch your spelling and capitalization. CONPATH is picky about such things. If you ss look at CONPATH on a screen-by-screen basis. The first screen is concerned with the conversion data file. It looks like this: ____________________________________________________________________ | | | CONPATH: File-to-File Conversion Paths (v.01/87) 01/27/87| |____________________________________________________________________| Page 3 Bloom Conversion Paths Once the preliminary chores are done, CONPATH presents you with the actual file conversionluable if you have changed the CONPATH.DATA file or to ensure that you haven't missed anything. Press "Y" if you want to see it, else press "N". CONPATH January 31, 1987 output and 12 spaces (an inch on a 12-cpi printer) for anything else. Press RETURN to accept the default, or enter a different number. Enter zero for an 80-column printer. C: An audit list is mostly vato any valid SOS device or file. If you choose CONSOLE output, CONPATH pauses as each screen is filled. Edit the pathname (in brackets) as in Screen 1-A. B: The default left margin is zero for console | C: | Would you like an audit list of all paths? (Y | N) --> { } | |____________________________________________________________________| A: The default is PRINTER. You may direct the output B: | Left margin? (Default = 12) --> { } | |____________________________________________________________________| | | | A: | Enter the pathname of the print output file: [.PRINTER ] | | | | | | CONPATH: File-to-File Conversion Paths (v.01/87) 01/27/87| |____________________________________________________________________| n read and processed. It takes a while. Sorry about that. The second screen asks where you want the program's output. ____________________________________________________________________ : Toggle insert. Openapple-L-Arrow: Delete left. Openapple-R-Arrow: Del right. Openapple-ESCAPE: Default reappears. B: An odometer shows the number of conversion data file records that have beeRETURN to accept the default, else edit the pathname (in brackets) as follows: ESC: No file. Pgm ends. RET: Accept bracket contents. L/R Arrows: Move cursor. Openapple-I |____________________________________________________________________| A: CONPATH presents a default of the conversion data file being named CONPATH.DATA in the same directory as CONPATH itself. Press B: | Loading Conversion Record nnn | |____________________________________________________________________| | | | | A: | Enter the path of the CONVERSION DATA file [prefix/CONPATH.DATA] | | | screen. It looks like this: ____________________________________________________________________ | | | CONPATH: File-to-File Conversion Paths (v.01/87) 01/27/87| |____________________________________________________________________| | | A: | 1: Name:Value you want [name] as the [source/target] file? (Y | N) --> { } | |____________________________________________________________________| A: This is a list of all the types of files that CONPATH knows about (from want the program to precede. 4. Press "A" to add a program entry. 5. Respond to the "Catalyst" queries as follows: | he main menu. CONPATH January 31, 1987 Page 4 Bloom Conversion Paths 2. Enter "1" to "Edit Catalyst Menu." 3. Arrow to highlight the menu entry youARY --> .PROFILE/CONPATH/CONPATH.LIB .D1/CONPATH.DATA --> .PROFILE/CONPATH/= To install the system under "Catalyst," follow the instructions in the section titled "Installing Simple Pascal Programs." Briefly, 1. Select "Catalyst Edit" from t as to what to buy to get where you want to be. . CATALYST INSTALLATION Create a CONPATH sub-directory and then copy the boot disk files .D1/SYSTEM.STARTUP --> .PROFILE/CONPATH/CONPATH.CODE .D1/SYSTEM.LIBRaling or borrowing a key bridge program. I recommend that you keep two conversion data files -- one that lists only what you have and another that lists the known universe. If you clunk out with what you have, the "known universe" file could give you cluest is available to you because an unavailable step was found. Don't lose track of the "extras." You might find that you cannot get from "here to there" with the resources you have. You might, however, be able to make the desired transition by buying or steerror-free. Also ensure that CONPATH.DATA has no "extras," programs that you do not have. CONPATH tries to be no more redundant that necessary. If you are lazy and leave in some bridges that you do not have, CONPATH may very well miss a conversion path thaSOS.DRIVER on the boot disk with one of your favorites. If nothing else, you probably do not have the same PRINTER driver as I do. As with any other program, CONPATH is only as good as the information you give it. Ensure that CONPATH.DATA is complete and erminate the program, or press "Y" to return to Screen 2. Even if you are interested in a single conversion, you might want to do a "first draft" to the console, then do it again to your printer. USAGE NOTES Replace the red the source and target information, CONPATH begins to find ways to "get there from here." The results are "printed" to whatever output device you specified in Screen 2. At the end, CONPATH asks if you would like to do another conversion. Press "N" to t | B: | Enter the number of the [source/target] file --> { } | | | C: | Dooke 11: Table 12: VisiCalc | | 13: MultiPlan 14: Great Plains 15: Omnis3 | |____________________________________________________________________| | 2: PFS 3: ASCII | | 4: Quickfile 5: DIF 6: Mail List Mgr | | 7: Flat File 8: 3EZPieces-DB 9: 3EZPieces-SS | | 10: KeyStr CONPATH.DATA). Each is numbered. Any may be the source file for your desired conversion, and any other may be the target file. B: Enter the number (from the above list) of the file that you want. C: If you miskeyed the file number, press "N" to get another chance. The "B" and "C" message pair repeats for the source file (the file format you have) and for the target file (the file format you wan CATALYST/PASCAL | (A) | | Extra Drivers: Press RETURN | | | Character Set Pathname: Press RETURN | | | Screen: _________________________________________ | | | | Display Name: Conversion Paths | | | Interpreter Pathname: dit Catalyst Menu." 3. Arrow to highlight the menu entry you want the program to precede. 4. Press "A" to add a program entry. 5. Respond to the "Catalyst" queries as follows: ____________________________ To install the system under "Catalyst," follow the instructions in the section titled "Installing Simple Pascal Programs." Briefly, 1. Select "Catalyst Edit" from the main menu. 2. Enter "1" to "Eboot disk files .D1/SYSTEM.STARTUP --> .PROFILE/CONPATH/CONPATH.CODE .D1/SYSTEM.LIBRARY --> .PROFILE/CONPATH/CONPATH.LIB .D1/CONPATH.DATA --> .PROFILE/CONPATH/= e "known universe" file could give you clues as to what to buy to get where you want to be. . CATALYST INSTALLATION Create a CONPATH sub-directory and then copy the g or stealing or borrowing a key bridge program. I recommend that you keep two conversion data files -- one that lists only what you have and another that lists the known universe. If you clunk out with what you have, th Conversion Paths Don't lose track of the "extras." You might find that you cannot get from "here to there" with the resources you have. You might, however, be able to make the desired transition by buyin available to you because an unavailable step was found. CONPATH January 31, 1987 Page 4 Bloom ONPATH.DATA has no "extras," programs that you do not have. CONPATH tries to be no more redundant that necessary. If you are lazy and leave in some bridges that you do not have, CONPATH may very well miss a conversion path that is robably do not have the same PRINTER driver as I do. As with any other program, CONPATH is only as good as the information you give it. Ensure that CONPATH.DATA is complete and error-free. Also ensure that Che console, then do it again to your printer. USAGE NOTES Replace the SOS.DRIVER on the boot disk with one of your favorites. If nothing else, you pt the end, CONPATH asks if you would like to do another conversion. Press "N" to terminate the program, or press "Y" to return to Screen 2. Even if you are interested in a single conversion, you might want to do a "first draft" to tt). Once you have entered the source and target information, CONPATH begins to find ways to "get there from here." The results are "printed" to whatever output device you specified in Screen 2. A Press RETURN | | | Keyboard: Press RETURN | | | Prefix: Press RETURN | | | Max Files Allowed Open: 3 | | | Program Path: .PROFILE/CONPATH/CONPATH.CODE | | |_______________________________________________________________|_____| i: integer; j: integer; *jj: integer; infile: filetp; inpath: string; *inblock: fileblock; incount: integer; outfile: text; o to_program: packed array [1..10] of string [17]; i_link: packed array [1..10] of 0..255; end; fr_max: integer; fr_work: string [17]; fr_file: string [17]; back_i: 0..255; back_j: 0..255; hit: 0..255; 8to_max: 0..255; 8to_file: packed array [1..10] of string [17]; fileblock = record :BUF: buftype; :LEN: integer; :PTR: integer; :EF: boolean; :REC: str255; :end; *filetp = file;  var path: packed array [1..102] of packed record 8rec_no: integer; {$list+}  program CONPATH; (*File-to-File Conversion Paths AMB 01/87*) {$list-} uses *plutil, applestuff, genutil, chainstuff; {$list+}  type *str255 = string [255]; buftype = packed array [1..1025] of char; JLMNOPQRSTUVWXYZ[\]^_`abcdefghijklmnopO^eME "7" CONPATH January 31, 1987 Page 5 7. Enter option "5" to update the INTERPS file. You do not need to re- calculate the minimum load address. ESCAPE twice to return to the edit menu. 7. Enter option "5" to update the INTERPS file. You do not need to re- calculate the minimum load address. 8. Exit to the Catalyst main menu via entering option NOTE (A): If Pascal 1.2 is installed via "Super PMove", the interpreter pathname is "SOS.INTERP". Verify via other Pascal program menu entries. 6. If all entries are correct, enter "Y" to the final question. Pressutpath: string; wk_str: string; wk_str2: string; i_start: integer; answer: char; *wk_int: integer; wk_int2: integer; *source: 0..255; target: 0..255; t_back_i: packed array [1..24] of 0..255; t_back_j: packed array [1..24] of 0..255; t_max: integer; *prev_path: integer; hits: integer; step_i: packed array [1..24] of*ok: boolean; begin rec_lf := ' '; *rec_lf [1] := chr (10); *line_end := false; *with F do begin *rec := ''; *repeat if ((ptr < 1) or (ptr > len)) then begin i := blockread (fl, buf, 2); 0if i = 0 t } procedure READ_ASC (var fl: filetp; var f: fileblock); var i,j,k: integer; line_end: boolean; rec_pos: 0..255; *rec_lf: string [1]; } { ------------------------------------------------------------------ } { } { Modified 07-04-86 AMB: Strip IBM-style line feed & ctrl-z } { | while (not inblock.ef) do begin; } { ...... | ...... } { UNTIL eof (infile); | readasc (infile, inblock); } { | end; (*while*) { To read as an ASCII file, replace "readln" code: } { ------------------------------------------------------------------ } { REPEAT | readasc (infile, inblock); } { readln (infile, inline);{ inblock.ptr := 0; } { inblock.ef := false; } { } } { inline: str255; } { } { After you open "infile" normally, enter the following: } } {TO USE: Declare your ascii input file like this: } { var infile: filetyp; } { inblock: fileblock; *gotoxy (66, 23); *write ('PRESS ANY KEY'); *read (keyboard, wk_char); *unitclear (1); *gotoxy (0, 23); *write (chr (30)); *err_23 := wk_char; end; {ERR_23} {READ_ASC: Include text for high-speed read of ASCII files AMB 01-09-85} { := wk_char; end; {YN_23} function ERR_23 (s:string): char; {Err msg at screen bottom. AMB 10/85} var wk_char: char; begin *unitclear (1); *gotoxy (0,23); *if length (s) > 65 then s := copy (s, 1, 65); *write (chr(30), chr(7), s); e begin 0unitclear (1); 0gotoxy (0, 23); 0write (chr(30), chr (7), 'Please answer "Y" or "N."'); 0gotoxy (66, 23); 0write ('PRESS ANY KEY'); 0read (keyboard, wk_char); 0end; -{endif} *until success; *write (chr (30)); *unitclear (1); *YN_23s := copy (s, 1, 66); -write (chr(30), s); -gotoxy (66, 23); -write ('(Y | N) --> '); -read (keyboard, wk_char); -if wk_char in ['Y','y','N','n'] then begin 0if wk_char > 'Y' then wk_char:= chr (ord (wk_char) - 32); 0success := true; 0end -els*margin: integer; * function YN_23 (s:string): char; {Prompt for Y/N at screen bottom. AMB 01/85} var wk_char: char; *success: boolean; begin *repeat -unitclear (1); -success := false; -gotoxy (0, 23); -if length (s) > 66 then 0..255; step_j: packed array [1..24] of 0..255; step_max: integer; print_date: string; scrn_title: string; ok: boolean; *pagesize: integer; *line_no: integer; hen begin ef := true; 3line_end := true; ptr := 0; end else begin len := i * 512; 3ok := false; 3j := 0; 3repeat 6j := j + 1; 6if j > len 9then ok := true 6else if buf [j] = chr (00) 9then ok := true 6else if buf [j] = chr (26) then begin 9buf [j] := chr (0); 9ok := true; 9end; 6{endif} 3until (ok); if eof (fl) then len := scan (len, =chr(00), buf [1]); 3ptr := 1; blank1 (wk_str); wk_str2 := copy (inblock.rec, 41, 17); blank1 (wk_str2); if ((wk_str > ' ') and (wk_str2 > ' ')) then begin path[i].to_max := path[i].to_max + 1; until (path[i].fr_file = fr_work); if i > fr_max then begin fr_max := i; path[i].to_max := 0; end; (*endif*) 0wk_str := copy (inblock.rec, 21, 17); tr := fr_work; blank1 (wk_str); if wk_str > ' ' then begin if fr_max > 99 then fr_max := 99; path[fr_max + 1].fr_file := fr_work; 0i := 0; repeat i := i + 1; ount := incount + 1; write (incount:5); gotoxy (25, 14); while length (inblock.rec) < 60 do begin 0inblock.rec := concat (inblock.rec, ' '); -end; fr_work := copy (inblock.rec, 1, 17); wk_s {endif} fr_max := 0; gotoxy (0, 14); write ('Loading Conversion Record'); incount := 0; *inblock.ptr := 0; *inblock.ef := false; *readasc (infile, inblock); *while (inblock.ef = false) do begin; -inc writeln; writeln ('Hey, I don''t get these data from air.'); writeln; writeln ('Let me know when you find CONPATH.DATA.'); -writeln; writeln ('Bye-bye!'); exit (program); -end; inpath); *while (inpath [j] <> '/') do j := j - 1; *inpath := copy (inpath, 1, j); inpath := concat (inpath, 'CONPATH.DATA'); open (infile, 'FILE CONVERSION DATA file', 'reset', inpath); if inpath <= ' ' then begin NSOLE' then begin -screenmsg (0, 23, clrline, 'Press any key'); -read (keyboard, answer); -end else begin page (outfile); end; end; procedure load_conv; begin *gotoxy (1, 5); *get_pathname (inpath); *j := length (1for j := 1 to path[i].to_max do begin 5if j > 1 then write (outfile,'':(margin + 30)); 5writeln (outfile, ' via ', path[i].to_program[j], 8' to ', path[i].to_file[j]); 5inc (line_no); 1end; 1end; .{endif} end; if outpath = '.CO4end 1else begin 4page (outfile); 4end; 1(*endif*) 1line_no := 0; 1end; .(*endif*) .write (outfile, '':margin, i:9, path[i].fr_file:21); .if path[i].to_max = 0 then begin 1writeln (outfile); 1end .else begin *line_no := 0; for i := 1 to fr_max do begin .if (line_no + path[i].to_max) > pagesize then begin 1if outpath = '.CONSOLE' then begin 4screenmsg (0, 23, clrline, 'Press any key'); 4read (keyboard, answer); 4screenmsg (0, 0, clrscreen, ''); til (line_end); *if length (rec) > 0 then begin -i := pos (rec_lf, rec); -if i > 0 then delete (rec, i, 1); -end; *{endif} *end; {with F} end; {READ_ASC} procedure print_array; begin *if outpath = '.CONSOLE' then screenmsg (0, 0, clrscreen, ''); 0{endif} 0{$rangecheck-} 0moveleft (buf [ptr], rec [length (rec) + 1], j); 0rec [0] := chr (length (rec) + j); 0{$rangecheck+} 0ptr := ptr + j; 0if ptr <= len then line_end := true; 0ptr := ptr + 1; -until ((line_end) or (ptr > len)); un end; {block read} {endif} end; {check for actual read} {endif} -if ptr > 0 then repeat 0j := scan (len + 1 - ptr, =chr(13), buf [ptr]); 0if (j + length (rec)) > 255 3then j := 255 - length (rec); if path[i].to_max > 10 then path[i].to_max := 10; (*endif*) path[i].to_program [path[i].to_max] := copy (inblock.rec, 21, 17); path[i].to_file [path[i].to_max] := copy (inblock.rec, 41, 17); 3if fr_max > 99 then fr_max := 99; path[fr_max + 1].fr_file := path[i].to_file [path[i].to_max]; j := 0; 3repeat 6j := j + 1t_back_j [t_max] := jj; 1end .else begin 1repeat 4hits := 0; 4for i := 2 to fr_max do begin 8if ((path[i].back_i > 0) 8and (path[i].hit = 0)) then begin ;path[i].hit := 1; ;hits := 1; ;for j := 1 to path[i].to_max do begin ?if path[i].i_link [:= 0; 2path[i].hit := 0; .end; (*for i*) .path[path[1].i_link[jj]].back_i := 1; .path[path[1].i_link[jj]].back_j := jj; .if path[1].i_link[jj] = fr_max then begin 1t_max := t_max + 1; 1if t_max > 25 then t_max := 25; 1t_back_i [t_max] := 1; il (OK); end; (*get_files*) procedure get_paths; begin *for jj := 1 to path[1].to_max do begin .t_max := 0; .path[1].back_i := 255; .path[1].back_j := 255; .path[1].hit := 0; .for i := 2 to fr_max do begin 2path[i].back_i := 0; 2path[i].back_j r := yn_23 (wk_str); if answer = 'N' then OK := false; end else begin wk_str := concat ('"', wk_str, '" is invalid'); answer := err_23 (wk_str); end; unt0and (i <> source)) then begin 3OK := true; 3target := i; 3end; end; if OK then begin wk_str := concat ('Do you want ', path[target].fr_file, ' as the target file?'); answe 'Enter the number of the target file --> '); readln (wk_str); -screenmsg (0, 22, clrline, ''); if length (wk_str) > 0 then begin i := intstr (wk_str); 0if ((i >= 1) and (i <= fr_max) lse begin wk_str := concat ('"', wk_str, '" is invalid'); answer := err_23 (wk_str); end; until (OK); repeat OK := false; screenmsg (0, 22, clrline, OK then begin wk_str := concat ('Do you want ', path[source].fr_file, ' as the source file?'); answer := yn_23 (wk_str); if answer = 'N' then OK := false; end e readln (wk_str); -screenmsg (0, 22, clrline, ''); if length (wk_str) > 0 then begin 0i := intstr (wk_str); 0if ((i >= 1) and (i <= fr_max)) then begin 3OK := true; 3source := i; 3end; end; if write (i:4, ': ', path[i].fr_file); if (i mod 3) = 0 then writeln; end; (*for i*) repeat OK := false; screenmsg (0, 22, clrline, 'Enter the number of the source file --> '); ]; 4end; 1(*endif*) -end; *until (ok); *for i := 1 to fr_max do begin .path[i].rec_no := i; *end; end; (*load_conv*) procedure get_files; begin *stdscreen (scrn_title); gotoxy (0, 2); for i := 1 to fr_max do begin k); *end; (*while not ef*); close (infile); *repeat -ok := true; -for i := 2 to fr_max do begin 1if path[i].fr_file < path[i-1].fr_file then begin 4ok := false; 4path [100] := path [i]; 4path [i] := path [i-1]; 4path [i-1] := path [1009path[j].i_link[jj]:= 0; 9path[j].to_file[jj] := ' '; 9path[j].to_program[jj] := ' '; 6end;{do jj} 6end; 3(*endif*) 3end; (*endif*) end; (*endif*) -readasc (infile, inbloc1; 3until (path[j].fr_file = :path[i].to_file[path[i].to_max]); 3if j > fr_max then begin 6fr_max := j; 6path[j].to_max := 0; 6path[j].back_i := 0; 6path[j].back_j := 0; 6path[j].hit := 0; 6for jj := 1 to 10 do begin j] = fr_max then begin Bt_max := t_max + 1; Bif t_max > 25 then t_max := 25; Bt_back_i [t_max] := i; Bt_back_j [t_max] := j; Bend ?else if path[path[i].i_link[j]].back_i = 0 Bthen begin Bpath[path[i].i_link[j]].back_i := i; Bpath[path[i].i_link[j]].back_j := j; Bend; ?(*endif*) ;end; (*for j*) ;end; 8(*endif*) 4end; (*for i*) 1until (hits = 0); 1end; .(*endif*) .for i := 1 to t_max do begin 2step_max := 1; 2step_i [1] := t_back_i [i]; 2step_j [1] := t_back_j [i]; 2while (step_i [step_ writeln (outfile, '':margin, 'Target = ', path[fr_max].fr_file); *get_paths; *repeat -ok := true; -for i := 2 to fr_max do begin 1if path[i].rec_no < path[i-1].recno then begin 4ok := false; 4path [100] := path [i]; 4path [i] := path [iarray; get_files; prev_path := 0; *resort; *if outpath= '.CONSOLE' then screenmsg (0, 0, clrscreen, ''); *line_no := 2; *writeln (outfile, '':margin, 'Source = ', path[1].fr_file); 0 then begin -wk_int := evalint (wk_str, wk_int2); if wk_int < 0 then wk_int := 0; margin := wk_int; -end; {endif} *answer := yn_23 ('Would you like an audit list of all paths?'); if answer = 'Y' then print_.CONSOLE' then begin -pagesize := 22; -margin := 0; -end; *(*endif*) *gotoxy (0,12); *unitclear (1); write ('Left margin? (Default = ', margin, ') ---> '); readln (wk_str); if length (wk_str) > open (outfile, 'Print Output File', 'rewrite', outpath); if outpath <= ' ' then begin -writeln; writeln ('Bye-bye!'); exit (program); -end; {endif} *pagesize := 55; *margin := 12; *if outpath = 'o-File Conversion Paths (v.01/87)'; stdscreen (scrn_title); *load_conv; REPEAT stdscreen (scrn_title); gotoxy (0, 9); outpath := '.PRINTER'; e path[i].i_link[jj] := j; (*endif*) .end; end; end; (*resort*)  begin date (print_date); *today := concat (copy (print_date, 5, 4), ;copy (print_date, 3, 2)); scrn_title := 'CONPATH: File-tile := path[i].to_file[jj]; repeat j := j + 1; until (path[j].fr_file = path[i].to_file[jj]); if j > fr_max then path[i].i_link[jj] := 0 els.else begin 1j := j + 1; 1path [j] := path [i]; 1end; .(*endif*) *end; *path [fr_max] := path [102]; *for i := 1 to fr_max do begin for jj := 1 to path[i].to_max do begin j := 0; path[fr_max+1].fr_f]; *path [102] := path [target]; *for i := fr_max downto 1 do begin .path [i+1] := path [i]; *end; *path [1] := path [101]; *j := 1; *for i := 2 to (fr_max+1) do begin .if ((path[i].recno = source) /or (path[i].recno = target)) then begin 1end , 6path[step_i[j]].to_file [step_j[j]], 6' via ', 6path[step_i[j]].to_program [step_j[j]]); 2end; (*for j*) .end; (*for i*) .prev_path := prev_path + t_max; *end; (*for jj*) end; (*get_paths*) procedure resort; begin *path [101] := path [sourceo + step_max + 2; 2writeln (outfile); 2writeln (outfile, '':margin, 5'Path Number ', (i + prev_path):2); 2for j := step_max downto 1 do begin 6writeln (outfile, '':margin, 9'Step ', (step_max+1-j):2, 6': Convert ', path[step_i[j]].fr_file, 6' to '5if outpath = '.CONSOLE' then begin 8screenmsg (0, 23, clrline, 'Press any key'); 8read (keyboard, answer); 8screenmsg (0, 0, clrscreen, ''); 8end 5else begin 8page (outfile); 8end; 5(*endif*) 5line_no := 0; 5end; 2(*endif*) 2line_no := line_nmax] <> 1) do begin 5step_max := step_max + 1; 5j := step_i [step_max-1]; 5step_i [step_max] := path[j].back_i; 5step_j [step_max] := path[j].back_j; 2end; (*while*) 2if (line_no + step_max + 2) > pagesize then begin -1]; 4path [i-1] := path [100]; 4end; 1(*endif*) -end; *until (ok); *if prev_path = 0 then begin -answer := err_23 ('Sorry. You can''t get there from here'); -end; (*endif*) if outpath <> '.CONSOLE' then page (outfile); *close (outfile, lock); answer := yn_23 ('Do another conversion?'); UNTIL (answer = 'N'); *screenmsg (0, 0, clrscreen, ''); end. {CONPATH} 60;:=23:=0::"79C";"PRESS ANY KEY TO HALT LISTING": $1020.202 8::Z=1B::=23:=0::"79C";"WOULD YOU LIKE A PRINTED COPY?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1170*C$="N"C$="n"".D1/MENU.MAKER",220uwxLT LISTING"::202 1020#2,B$(I),16,B)ž#242:::1160Z=1#2;A$:"78A";A$Z=Z+1:Z>1842:::Z=1980*:=23:=0::"79C";"CONTINUE...?":1C$:C$<>"Y"C$<>"y"C$<>"N"C$<>"n"1030C$="N"C$="n"11 MENU.MAKER TEXT MODULE890&*X=11000: TEXT SLOW-DOWN LOOP ,X.1,180,22:2,280,21:2,2380,23:z:A$="LISTING "+B$(I),16,B)$=01:=0::"80C";A$;::12)>=23:=0::"79C";"PRESS ANY KEY TO HAHER SUBROUTINEnSLOW=110xFLASH/2=FLASH/2):۴ =11:=07 FLASH$ SLOW FLASH:".d1/Menu.Maker"5 WAP /// SIG HELLO PROGRAM. UPDATED 4/12/89 DGO :#1,".D1/hello.text" ž#170 (#1;ERIN$ 2ERIN$<40F#1/P=23:=25:"PRESS ANY KEY TO CONTINUE.":G$U-Z#2,".D1/FLASHNAME.DAT":#2;FLASH$:#2%dFLASH=110: FLAS "stepping stones" between the file format you have and the one you want." Conpath will help you find the conversion path you need. It's a Pascal program that is self-booting on side two of this disk. We hope you enjoy it! her is a great series of disks from our good friend Dr. Al Bloom. As he describes it: CONPATH tells about ways to convert one file format to another. The premise is simple. There are a bunch of "bridges" and a bunch of file formats that can beqs0 WELCOME! WAP /// SIG Public Domain Library Disk Category/Number :Bloom Disks/3BLM-14 Disk Format: Self-booting (Both Sides) Conpath is anot /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// /// SIG, Washington Apple Pi 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-030 d$="" A$="PRINTING "+B$(I),16,B)=01:=0::"80C";A$;:#3,B$(I),16,B)Z=1#3;b$:"78A";b$Z=Z+1:Z=18:1290 1260 #4,B$(I),16,B)#5,".PRINTER"+ž#4#5;12):::".D1/MENU.MAKER",220(204::"79A";""; 2D=1:F=1 <#4;a$ FD=D+1 P#5;a$ZD=60#5;12)dD=60D=1nF=F+1::d$;::Y=1100:Y x13402  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."01600 =Q:WW=0A=:A=21A=9&oldprefix$=40A=31410: Control C "aborts" program to Basic(:A=13770: Return Selects a file *DA=27:50: Escape to change disks/FA=324000: back out one directory level 3GA=(80+UCA)A=(80+L"BASIC 0":150A$="TEXT 0":150A$="CAT 0":150A$="FONT 0":150A$="FOTO 0":150A$(L),"BLOCKS")510*=27:=19:"FREE MEMORY AVAILABLE: ";=7:=20:"80C";A$(L);$:=5:THPOS=4:I=1:IBOTM=J-1:620Q=:=26:=21:sic; +Q Quits."r12);::"80C";a$;:+w#9,"DISKNAME.DAT":#9;DISKNAME$:#9|d$=DISKNAME$$=23:=0::"80C";d$;::12)201M=3:=14:"This /// SIG Disk is \^ 19";Р,2)", Washington Apple `, Ltd."=4:B$(1)="":B$(2)=""A$=16,B) THEN 240 #1, d$="":=10:"80C";d$ ž#1300I=0"I=I+1:#1;A$(I):290,#1 6L=I-1@j=1:same=0 J:SEG=0 Tœ2030^CT<1CT=1cCT>13000Zha$="{,|,~,}; selects; to new disk; J/2)=4:=+1:ۙ=44B$(J);:J=J+1I:1,180,22:2,280,21:2,2380,23:8A$(1000),B$(1000),C%(511),C$(20),name$(20):=10:=0UCA=128:LCA=UCA+32CT=15 IF PREFIX$= PREFIX$+MID$(B$(I),{}~VOLUME NAME (/DISKNAME) OR DEVICE NAME (.Dx)"P12);::"80C";a$;:Zb$="CHANGING DISKS"$d=23:=0::"80C";b$;::12).n=12:=20:"MAKE A NEW MENU FOR DISK: ";N$xN$)<2110=N$ :210 I=1L(A$(I),A$))200B$0 WAP /// SIG MENU.MAKER PROGRAM (v. 6.2) =".D1"210: Coldstart (320: Warmstart &*X=11000: TEXT SLOW-DOWN LOOP ,X.1 CHANGE DISK SUBROUTINE23œ202:2200<RFa$=" YOU MAY SELECT YOUR DISK BY THE WAP OFFICE LIBRARY HAS A NUMBER OF APPLE /// BOOKS AND MAGAZINES. CONPATH (FILE CONVERSION PATHS) BY BLOOM 4=10:"78C";"ANY KEY RETURNS TO THE MENU."!>G$:::".D1/MENU.MAKER",320CA)"PRINT.ALL": OA+P 3HA=(81+UCA)A=(81+LCA):::: OA+Q Quits 3IA=(83+LCA)A=(83+UCA)"PRINT.SHOW": OA+S 2JA=(68+LCA)A=(68+UCA)/Screen.Savers/HELLON=THPOS:B$(I);XA<8A>11540bA-7640,660,690,720l:=THPOS:B$(I);v:520: 500THPOS=4:I/2=I/2)I=I-1I=IBOTM THPOS=44:I/2<>I/2)I=I+1I2=-1:I=I-2:IBOTM<30THPOS=44I=IBOTM/2)*2:=+IBOTM/2)-1: .CONSOLE"BRD)  D`Ȟhh`̱;` )8 9 :  8  (˥@ i  i:и i( 9И D E˫L <)<2DL8H\0`(d  $,($  ,IAttach.driver - Copyright 1983 by VMS, Inc. distributed by SoftLife, Inc. .ATTACH `e.PRINTER NQ12{ SCREEN DUMP ACTIVE >88  >!SHOLES 1!1!2@23#3#4$4$5%5%6^67&7&8*8*9(9(0)0)-_-=+=+\|QWERTYUI OP[{]}`~`~ASDFGHJ K L ;:;:'"'"ZXCVBNM ,<,<.>.>/?/?d0hp00000>0# #0~$ <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>>>> ""*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>>xrGA7  3  5  >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< SOS DRVR"WAP.STANDARD )((8*,;((*,((+)((9/(p((>3  =9 :9 .(~|L|LNqooGoDDDcc0ccpc]]c"QM"|@@pAATT**| 1600 &:WW=1:0 :SEG=1;".D1/SEG.F" SEG=1".D1/SEG.G"diskname$=3802  CATCH PASCAL TEXT FILES 202 :F*=08:"78C";"SORRY BUT MENU.MAKER CAN'T READ PASCAL TEXT FILES."04=10:"7M$="NOVEMBER":1750M$="DECEMBER":1750826);"-";M$;" ";Ѡ,2));", ";"19";Р,2);" ";/П,2))=>13П,2))-12;џ,6);:1780$П,2))=0"12";џ,6);:ٟ;$П,2))=>12" PM-":" AM-" 1830WW=1530 =26:=211660,1670,1680,1690,1700,1710,1720,1730,1740^M$="JANUARY":1750hM$="FEBRUARY":1750rM$="MARCH":1750|M$="APRIL":1750M$="MAY":1750M$="JUNE":1750M$="JULY":1750M$="AUGUST":1750M$="SEPTEMBER":1750M$="OCTOBER":1750T 0")2070H540R\A$="RUNNING "+B$(I),16,B)f"79C";A$;:=0pB$(I),16,B) z::SEG=1".D1/SEG.T"t=+B$(I),16,B) yCT=CT+1~240:=24:=0:"@ ..... "DATE.TIME.LINE" ....JM=Ҡ,4,2))BTM1630,1640,1650,0=+IBOTM/2-.5):I=IBOTM:I/2=I/2)I=I-1 œ2120B=B$(I),16)," ")-1 B$(I),"BASIC 0")850B$(I),"TEXT 0")890 B$(I),"CAT 0")1140*B$(I),"FONT 0")18504B$(I),"FOTO 0")1930>B$(I),"PASTXDʈ˫Lp;>6 Э7'í<έ'; 6`,HH)Ʉ ) hHhh`  `04:`xL6 67 7>н8 ѠШٕވH)=h#ЭЧȱLЕȱЎІ)= y>н%y?8 Ѯ=Ѝ ȱЍ ЈЈ Щ` D (`  ).49<BGJOUX[bgknqv<<AAA@@8A@q==C)CB)B Crx 00 )ߍ:) J,P,QJ,R,S,T,V( > `,k<,: JI`I`<,:J̰`=m@>,:J}ʅ̽(I I `<Mj,:0pJՐҰةeÅÐн},,P,`,g$ ( $g " x) (,`% (gL,}0, `gé ĩ `:) j:;jN;~j;O,:0'???>>8?>p,}P-X~ F }~L } `,}0 x) `(`hh% ( ΍ ύ逅Ñ}`` " ( ĩ~Íĩϭ & &υΠÑΈ~ F ~8 `)2ȱÍ3`)1`Ɂ" (cefd`Hcefh) `xÙ+(`xÙ&(`)4`)5`)6`)7`)8`)9`,i0!M:0p ȱq L`" (~)y ~JJ* I `x|x|,`6`7`8`9`<ȭ=` * @jI`:ȭpȭqé,i0LÈ`,g HH`LL! l      5  Hdcefh&+si M0  h) `(" ( (È& LuL1upp<`uqq=L> vuL L L <Li Li ,g0L HH`! ( 9EKQWbmz`(" ((è%È`2ȭ3`1`d`c`+È`&È` * IMk`4`5,@`<,m p<L<`<p<`,ms<L=q=L> ,lXL ==L> ,lCL <=L> <,n)LL8 L8 u:L8 ;)ߍ;j`; ;j`uBL8 uCL8 u)u;) u;L8   x) `(,rh,oL`%CYgu #1:CY` 9C<m><=m@=>@?AL8 >m<>@m=@<=L8 <m>?=m@AL8 C9L8 ; ;k`;);k`,5 p  He҅Ґhe…å逅h,23Lhґȥӑ,10 h0  `,g0L ҅ӥĥŰ+,0p 4 Ls Ls i )"|tȌs|st HH` MjH,: <J h̰ <h(ĥŐL i,1HȊ©L,52,9-P" a{)9 Ln90$0%,7 ҥ L$0T,8OK50P;ҥ,8 L%\   8҅¥Ӆé҅L,5,6  * @jIHh`dd,9P"<:J H) +̰ H) +ʭcP h̰ʩd8,h)ec efeede`,5 H h 4 `5!   4(P 4 4 `,g0L,10kH0 ԥ f0)ĭ9)9҅xf`7 I`8 iIi`9A)I@`a{ ~I)_ bJ) b) )ab)a a,h0& &+%a0 +hcefd(c,@cfabdf`cnx  (,4+- ((((PPPPBTVSPLH   5"ʘ HH` (# (=  0`)aI 8p,:Jf׮@$PA F $P@/A'ʤ˅΄ϥ̤ͅЄ F $̑бʑΈ0Ƞ l L> $)טɀIim>ٮ@8pذ `$0"8,:Jک@ׅפ؈۩MjL,:08*Ȅ F ,:J}΅н(I I $0;P̑бʑΈ,:JՐ̑ʈ0 Ցʭr̈A萠L> ֦ڱΑ0Б֤ l L p,:0 JfiΥiώJe΅Хiю@ F $p̑бʑΈ0 Б̱ΑʈeمΐLϦI ] +)J* g I V 8fxL@ ] I)!) g 80 J8}L y L 0yʽ)  =H 'HH N M))Mhh0 ϭPh0 йPL)`)L` L``  `L` H , 8 V ТΕ֭mi` HHGH`  &`LL) @L) L8``Lթ`~L8L,W`,t0L40 ( dȅɥŐ ĐL  }LO}~~Șݻ~`}}~L< L }ީ~` ɠɀ)ӮԮmwӥmxԐ wx LVخ ʊJJJ莟mwwxix 0ޤՐڢ,P<0 )ߍL- J,P,QJ,R,SJ,T,U30. , V  @„ȄL5`ʝ`))ժuvЭ H ʊJyjhz|ֆ׆ح)JfJf$PIJfש ʈ8 @ש 9H` (# ( -l..PcJt`,t$ ( t`tL4`,t0L4 HH`! (`ɖ" (èÈ``,t0L4 HH`L  d!  `ɖ" ( dÈ  ``,t0L4 d0Cսʙ(C) 1980 Apple Computer/((((PPPP @``` @@@@`xp<@ @ :H """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww """"""""33333333DDDDDDDDUUUUUUUUffffffffwwwwwwww    + / @ C H K R Y j o t | ,/DIMV_x}  RU9Copyright (C) 1983 Apple Computer, Inc. Graphics Driver..GRAFIX b             . 3 6 9 < ? B E H N S V \ _ b w      ! ( 0 7 I N S _  . G R Y f {    ! $ 4 9 F I P S V \ a h m p s x |   !%*/369<?BEJMRUX]`h  2;AGMS[fot|  <?BGLQgjox',/25:BGKORY\aelpu !$(+.147<?BFILORUX]`finsw|eمАA萿 > `ʝ"`t  !#%')+;CNU\eh "*-036<BLORX_fj &+38;?DGLTotz0 y L7  Lh `*f*&*)` ` m j`Hآ Hӭԭ h h`8٭028ٍڍ0Z$eٍeڍm٥m8٥08ٍڍ`8٥058ٍڍ0ԭeٍeڍ808٥8٥ 8مڅ H , V Εm٭mڭ))njnjnjfjfjfj𭣞ŭ᭭򭭪𭭠򠭠頭퀠Šӳ頠𠠀𠠠堠젭ӠΠSOS NTRPRHeLZĠР쁭堠堠ՠP򠭠έ魭':{      % , 1 5 : = B K R Z _ b g n s x ~    ) . 6 = J P S X [    $ 3 : = F d  > B H M s `e|&+.QVYcjuy~%(-47=FMUX\_jmz  .169DWfy   % * > A H K Z v z }  $*-06=HLORWcfloruz/47=G\x{~'+.149?CGIKMOQSUWY[]_acegikmoqsuwy{}`JfJfFߪ߆` `JfJfJfF`ߩ`$011̰JJJJ) ܭL FܪJJJJ)`'+9;=?ACEGINR\aejns~  #&).369<ADGJMP^gH` k(h`$0#$E$0p Q%Qʑ`pPIE1p$E$0p Q%Q̑`pPIE1pΦ#$01ʐ1`JJJJ)`%υߥ`1(ȦJJJ`&&*`JJ` **&*&ߥ`J` ***`` ` Jjjߊ`  m`!J8݅ eۅ$  m` , V $צ! LP \LD$7߭$PH8 nߩ nh ߍϭ - k, ϥ- kϱϮEϑʩ`P z  Hτ`Fϐ@ E҅F8ئȢΆѽϽ`/(L%τ`ϩE҅0Ȅ(fL% ('Άѽн`8Hٰ hIiHمh8Iif٤Φݰ>Jj8ۅe݅eޅ $`8٨JJJ ) u˘ vͽʅ̆`8Hi #iϤҐ мφi`Jf`<,&ʰ,i8i#Hiihifʦʆi) v`i,ʐi,iPIIʥ)ifʦʆ̐pLj/Fϐ&Ȅ`'@)Ģ    H Ģ L E% %) L 8`ۅ&ۥeepɀjff&ݥeepɀjffݠ %)  %)`%  0.)      0  ` ` @ `+mӥmԐ8L( Ӣ ,$0F y բӅLx  mӥmԐL] h `  )`%)8`)    H   ʥ̠Ώ h:gpOn[n٧s]ds3issssssss0b>&dsjs|T}|s[:: 悅 lc!)` +b` +b` sL :b#`L,H s h ऊL(,L8f` A KL jLdjOPPKLL h AKL` Ѽ   (`H shLs Aji!S)Lt`SSS`L` z :0.`9::hhgg.%g& $gegަhH逪hhʰ` ҥ [ aLT ҥIJJABB=>>;<<?@@T ě hhhHH  `89$ 0~!L`!sm?iٰcL`S )!a{)Qi ڐ߽S) -ai) -aɢ ɣɍж$HS -ahʥ0SSȩ5%"/װ&hԐɈf0ɔĐ 8,f 8f L_ʅSS=ȄL`ȱi8eiidHddhd) _ ƢLh _L>h jhP _S @a-Qggeg5hih 6i6 "]S" ]$%SSSg a aL^ S S`La8 SiUjjS):,$f 0$ p fHhH_HcH uhch_hhhfhi0hhhB B A` ֥'( )&񦕤LNKM$Lb ě $m wl "m6X6+5 56ɀ56H $mhɀ(Z)& mL k~ wlL ͝dL Nsd# wl^_ ꂅ__hg^`8 悕`gHhHhH5?6@6@*5g5666gҦhhhhhhhhg:e:;e; ;m;`@c@c?be^@e@ _m__^ \Lx] i6g55``BY BSAMHH H] LPL(\)&P ěj9ȑ9ȑ99i=:i: >i>`Ɂ7XWWXjnXWi` ]?@@bgchch )^ ]b ]b^b^L\b8g+H__^8_ABB 9::)ѭ [ I[ aυ婶ZeLLL^$%Lae LGidFddddddd.ddddddddd ɕdˏd`Ls  Apple Business BASIC v1.23 - Copyright Apple Computer, 1980-83 CTERESOURCE UNAVAILABLDIRECTORY FULDUPLICATE VOLUM ERROR Please Press SPACE BAR IN PROGRAM INTERRUPTED%&'(%+.@C$DE FG!H"I'MN#PQRTW(X潭`: 808`:dd@՚H Z#IJJCSTRING TOO LONFORMULA TOO COMPLECAN'T CONTINUUNDEF'D FUNCTIOVARIABLSOS CALFILES BUSNOT SOI/FILE TOO LARGWRITE PROTECDISK SWITCHEBAD PATFILE NOT FOUNPATH NOT FOUNVOLUME NOT FOUNDUPLICATE FILDISK FULFILE LOCKEFILE NOT OPEDEVICE DISCONNECONV&CONV$CONV%LEFT$RIGHT$MID$INSTR>=<^/*-+NEXT WITHOUT FOSYNTARETURN WITHOUT GOSUOUT OF DATILLEGAL QUANTITOVERFLOOUT OF MEMORUNDEF'D STATEMENBAD SUBSCRIPRANGINVOKSTACK OVERFLOREDIM'D ARRADIVISION BY ZERILLEGAL DIRECTYPE MISMATNDEELSCONLISCLEAGENETABTSPCUSINTHEAMOSTEANOEXTENSIODIAFNOAAAAAAAAAAAAAASGNINTABSATYPRECAAAAAAAAAAPDLBUTTONSQRRNDLOGEXPCOSSINTANATNAAAAAAAAAAAASTR$HEX$CHR$LENVALASCTENAACONVOERRLIERKBEOTIMEDATEPREFIXEXFNEXFN%OUTREINDENAAAAAAAPOHOMA SUB$OFTRACNOTRACNORMAINVERSSCALERESUMALEGOTIRESTORSWAGOSURETURRESTOOALOASAVDELETRURENAMLOCUNLOCCREATEXECHAIAAACATALOAADATIMAGCADEAPRIssssssssss\3!z~IssssssssssssIG%ӓ,ssևwn7}|tttUUZ{fzxxˆU膅[L<^ENFONEXINPUOUTPUDIREAWRITOPECLOSATEXABYAAAAAWINDOINVOKPERFORAAFRHPOVPdd A 6 s e 9c()' 9cKHLI jLdj89弅:彬: 悅`H hɝɞɜ)`dd  6芅 e ()'` e'()HKIL 9cL>hL<^) i!Ls j @aLK$L% L<^gHhHhH , - b j$% @ag5h6h6hhhhh8g5h6h 悅`6 "]La ud `L  d.CONSOLE[[ TdSdddddd0 ddddd`?TUJ)TU  ' Lsi imLqLsh E0`H ty ))ELyq  8 $0!PizEn{dUeUi hLqLs `wLr !L2 {}$ 0`QɀX zLs.+"2mXm tL qXXW zzEn{i x }H$ ]kh8 )KLe9e:: }Lgi , p s$8$0p`PL<^Յ H s r ɀ ȱX Hih0 & ?<I?iE W Lq s )L<^ȱQȱȅR dj sLHoUVV$ LhU Lp$ LL<^opL^```?EXTRA IGNORED?REENTER $0pL,`LgXW ׫ k*iXX 4X \\L<^Xii7 { n k$ |WlXVVE$ P% eT{||Hd ̐h p IkLo00$0 L>o "m nV dj$D$ P 膼Lo$0",i [ kLoHSHhp< {}$ p0H 07h ]k ,LmUVV `p F sLn 2 ukLoF вLm jȪЖ LL<^~p l nhhLgOPP` Add# 6d s S SS@Ln A " r ,; s lLn#f  ;П ⭩,SLn "mʆ,S _S% nLh "mL_T ST#L(, U VV ׫$ 0  QpU= d hkddhe##5ddˏdd?Ll ,?#$04dHHd = d hkddˡddhhd`LsL#&F  ; s b 0` L+l$ Nsd#Lzm566ȱ5Ll H# wl m#͉LchL$m QRKLLsh$0LU$^`=8WW>X> 悅XXXL:^ g`L<^ l Jj bx bp,_;Ll  ~q$0P oՅ5R66R l ~ L%l $m0 =k $m#`$L#i)8#Ll  s s( L7bʊ# L-l m hxd5d$0H h`L^bLb$%/%5$ &5 &5e$$5e%%$&%$e$% Lk ׫ sHH ~qLPkHHh$0'ph | ZlWȥmW`L$|hXWXL-hm lmmLkl VYZZ{|| w ᐥlmmYZZ LxWXX ox ExYW# kXX 4=^W^0A, 9:: Ga.ghh 悅` A` \\ɾ,L<^hhZkKhLhhhe9e:: mLg jei `Ls j:,"hhhhLgɜEɝDɞLb Hɾɺдmhɾ Qp aj pi `p j` jLi j,d wlOZL^L^-L(dPL<^OPMNKLhhLg` Ls ҥ?ieCiLa,  aFL s a iLg ]hhh5h689H: H:HLHKHH6H5HHH` ui` pi` Qp j pi `p i` j jK$L%8eȢЅ iLOPP$pX0S&ȱhȱKȱLe潥ɂ逅$L# $mKL x~ m khLgLsLc h5逢)&a TH THLgL6k8:9: STT`)ɀLK$Lb8gLOPPKLMNhhm Vf0 mLf) mWA 0 -a mL8fW;8<< 悕` 6kLU*i kXX 4XLy \\'_ch_chbi^g \ihh ] Qp aj ih `p b iq bqn %jjg56Ly { b bq | XHWHHHֺh$PLh wlȱȱ%$LWH mh x~  m#W", mȱ28eLeji`Lwl mȱ"Ɂɂ ȱ :, iTjj ȱiVjj8逪XW0 Vf0WHW$ 0X: h ,@dd )e dʙdH &eh(dL ddک,ddLd:e``eLeHELLO ue 5eLse6e:7ee8ee:e`EAd j @a(% -, bLs j {ghhi L[ s r$PLsi,L3-hLs L*tɘcɭ_ TTLdd`jk8L|L3L3TL3,L3i LL r$PLLBLsș Ȅ ( qƚƚ` s s),;,=,#,(,,ѼLL<^L<^ llmm$P$`LćHƽ Ƽh`$ lȱlLL{ɝɍLɎСL s HI s shmHmHlHHɦ# shmHmHlHH , hHLt  ,, shTTLui ui,L3$0 |Lu xijk6kxyy xxy6+|] {n LU{HLʁIڢIڢ-(h#5ᆥ](IڢʥnH BiHɁy U{y рhɁ xhLB` vy{| g|S}dpL}Qz}c0~~D:~L̑56gh6hegehh `iɇoȘ戅 aziȅ xdo`Abi$nFn) i  j g g ^ ܇.Laz͠Lć ^ ׄ& ć ׄ ć ͠L- x |z K{ | T}{ x xnH yxn0 I B xh B Lр |  ZuL.y +|z% T}uH }h{ ~|H !z az ~hJ inIn`L~8;)q4X>Vt~w/z*|cYX ~uƀ1rP aziP | |iɈ { T}i8Huiiu x BU 瀩{h z` |] az 뀩]Laz | i8fe.șR0șRmymlylkykjyj00ڊIi i/ȄȪ)Re.șRI)ЪR0.ȩ+f.8f-RER/8 i:RRRRRR`y`'d |Ģ { &{f o0`LB ` H$ge &{h 80 '~L}H |h |zEn{iLxf d$h0Ly ef q80fL}COt#t$JZ mLKjk8 | ~Lm ^|-$nșRnȩ0iL f~ azea~ } \~ } &{e B{e yx %}ei0nihoi8傐IL|`7 z!L|iD8$n yiLyn)FjjjLyiɠ %}nnI*imLyjklm` s e-o+ smo..IE)2s S -+fh r$h8fL}fg s$gPf8ef B{f65m5l5k5n j5i`d,]WXX566 |m5 ^|l5k5n %j5i5` |m l)m |m`znth` |ht`i  y my`i n*` |jkjI*mlinLyFn`nEz0ʢiH xv5ui`uei0,iiL0y{n`nI0hhL,yLy |i{ xi` |={{ {LZ{ zL{ |8ii zivjwk xlym* 蕁24(y&x&w&v0⨥ymyxlxwkwvjvL{@jjj)(L{L<^~jklmL y56y^Vy dv88; 54541r |LiHi z xz U{y xy рz xh '~z zLz z~ zm zl zk zj zL{LyJ eyexew~ev~f~ffffJ`5665y5x5w5zEn{z lkj |yjJkjlkmlmi in`emeymlexlkewkjevjLkyi&m&l&k&j8iIiii9fjfkflfmf`nIngjIjgIm lkj`L<^}i0vvvvvj`L656 wh H5Gh`lmm566 Lx5Hȱ5ȱ5 F665 w56h(` x("LH)&h`( '&'`lmm566LxĠLx znInEz{iLx y? zL||uu`8i$iznIii0ĨV y${Wiuu8Iem_B_B`)&N> ȱI8gJJ hhge ghh f feLH>H= x\L|F )XHABB8 __^hHI8e^ @1 @+?%GHHHIJJih BABGHh`$  ě u Дs IJJ^__Lveȱeȱe 8` `H Jh(L悈`H逨h` Hh8 Hɀjhji` HihJi(`  ~q$L ɺ b$P i pi$ȱLdjɻƟ dj 柰ީ Lihh sLg  s ! b   s "!!!" ऩ थ (! ( ऩ थ (" ( द!LGb8Lऩ@iu +-ELj) e | ^ .' "5 1 p) iIii i)Lm` ?i $0 ׄ $0 $0 ^`Hhth`^Qb ^^ 78ߠȘH yxy hL3 j kqHHHH s H , ,H s s ~qhh 1 lhhXhXhWWȱW7ȱW8 eLNLXZWX ` GGH HlHmHmH khmhmhlh hk8j7k8Lޒ e7788IjJkJk )lmm'&`UR{R||L̐: / cRRȹRRȥ Rл s `Lsh sh5lh6mh6mhxhyhy x x Qȱx7ȱx88 Ƃ 7e7888ł75 楽HHȱȱ6H6H5H s =к bqhhh Lshhhh` ~R/mZlmYZ PujHkki^^`H"h{||kjkȱ{ "ie{||  V{|56|6 w&5L<^i8e` ě u8A?pB@B@ )onL܇jkL| Nsdȩ8 NsdL2Lа,L<^ A s ׫ g iq s= sXHXHWHHHH ajL? b rLiq HHH s iqhhh5ȱ6ȱLI65 g5H6 2|Hgȑgʆ5a g5ȑgȥg <^^^__ɂ逅____<;إy6 hlhm^Ȋ^LL:^ȥ5^H^h ͎el5emȆ6п  ͎e^e__ iLZe *& eegggegȱgehh Ľ ,L<^  8` ^LQ ŠhhL6 $P 訽5 ͎56ۥ 8ee L:^?be^@ce@c __^_ \__^;<<6  $Phihi^Ȋ^6h656H |mHlHkHjHiHl5 8eeghh^__` HHH H bqh hhhn0iɐ1 }L yxL%}\i FHHHHH 6hhhHHlm ,҄ shh)>=>hgh<<;[a{p ;<<ccb? @c@ube.a{bb,\(eb cc`ebcA[8饰 a{8`8\e@@He? ]@@?hbbb0 ea ȑbc8L@ @@h5H ?5^6_6_hhXhXhWLk ? % ?Џ`5566` xe5566ɂ66` s p `  zLseff z.!'$ iߪ$ 0 H8eAi\h$ P8 (Lt$ 0}5}} ,kk} , kklm Lٓ[ 80@ 6 2`  dkH) ojhJJJJ ojL 0:i`L<^ jHHHHHH s jhLyqhhh6h6h555_ȱ5VHHHH %L/5H6H6Ht $mlmkljkij8ihn`L,$0DpA q enHi80 @Lyu \ % @u ćh `&m&l&k&j`2L0 և yxLT}$0pLI oբRLi `u LLi u Lui0 ܆ چ,,% п 擩lm0u 1eL5665`iɀ*iH i  @8 ei $ tutt tj ȡhn` t` 0RN0R 0R$n-RRR`i` p`5665i`$0BP?iH i hLbe55f5f6e}Lme6u5u }`6ʈ`v`jip` ? #  ue }~ %u $ چ 0 u}` L uu  ) }Li <i@L{i$i0 p $ 1`ui` LL Lbb `}i~ei^~0] e e^`}`566i5`_cf_cfi^eub` ?^qbep`L<^ ?8b^e` rp`I` ? ㄩp^|be #^b ebbu|beiee^^iL56^f8 hx57 xLCx8I77JJ8 88` H dhjL YYHH dYZZ oxhhe5566ɂ逅66 wZZY L YIL=m ) s  ʊHYImm shhhhYhZhZHHE` 3YZZ xLCxl5Ym6Zm6Z x` Lj5 3LٓL bq VlmL{} ӓ0566 `sL{ bq Zm*elLmLiɑL %}lm$%`L:^fCDDEFUVFVX L; d  seRթR`yiɀjjn*8miɝ d L .q$uL$)JJ8偅8傪 u Tf$i0Ł!y0GLqL~䁰< 0$H ,GhGթ $u$n 0GЫ-Gv)' $G uJ-$n0+G $G0)`u vphh` Ljk ,hh`Sj9-k L9j ekekk|z)ekk |j[ ٢  L`j 9kkj"j"kеAX"+-&$.ECR/#Z*! DBA0 k$JJJJ) vvyLj L ʟ,-uukv kv@vvyL5Lj ʟA80멀uukeqqtt$uA)*t L; $uЫkЦuuj ysLq,kl$uhuuj XkkNuuj k 4%v. #  1$u tAvʘtDթ q(~th`pvquts~y fp$pp8j/;XAx=|8ez{{ ghh "o `L x  wwghhoؠKkqvj L`$uZuukvN kGv@  pJ LUL-LG -$p0`pog $mkڥrok8o,koLdjAaCcoJ mko 5 $mkk mLw L L HG56H6LExh  (`|||}z,A[ :808Ш`,ޞ@`y Gy`LHq,;' L Pu  pLLwl`|H}HzH{HHH ɶ# xhH s  ~q s,; Ls  ~q$ hxrL iLpnH ~hɀ8(*iR.-:/ RRhhh{hzh}h| Pu p 0|8cJcm J_mm嚍J_AgBhBh \^A_B_B` ^"( zM jF566 x}z{6{LҜ #z{{"} GLsL<^ jHHH i dj ٥z{{ j}hhh ;в| |膆  RRRRH uhA?B@7B@87F8f7877878L:^7 8*JA5gB6B68 悅h圍h?H@H@HI?J@J@ "]h@h@h?gAhBhBJJ8 悅J圍J7ߚ8BܚLs`䚌B L:^`Ib^J sL͙ɚʚ `pAƚЙϚŚњ˚ ̚8 悅DDF͚ Κ8 DiFEC CD)ӚDmӚDԚCBКLěŚAݚ⚠IȌ 8 ꂍ  8 ꂅJJ` !7Ri88 pi UŦLUUU HHHHL 2hh LW iL 2hlhkhn jhimhHɗ8 Ls`LIŚ1CUDVDVU Lŧ 0 7U L`L:^֩ ŚEĚ L| Qp QeeRee8 1 V` 痠U` hh R LsL  z (L[ Rީ  @Y%(&:$LU s և ^|iHn %jHkHlHK s n ZlHmH5 s iH jHH楩e ) ,LsLR eՅ7V8U #   785U6VLΔU7e778ҥU^V_bcF_hcCgDhebbc \^__`U8傅UV` |UȱU` L<^ |UUƜ0ƛ ӗWqeWȱWqei W` |8UUWȥVUX`UeUUVUO / +'L U)łiV VL LI 8U 7ȱ7 UU ЯUVULU7V8 p L LZ U qUU qUH85h688V77U U 5qUWȥ6qUX7qWWȥ8qWW ٥IiV) V LVU?e8V je?e>e8U>e5V?e665e=e@eeehi?e ueL5e qrL,op ɩ`et?ek;e`hZ L<^hZL<^L=ee>e ?e`opqrst !e5ehe?eLje LjeR=89R>:>:iR:RiRRiRL`8(RR(`EeFe  s bq Vml0L dMeL` bՍe :RRRiRȐȰRe9Re: J 2IHJh*=>> 95:6:6R L1 1Lԫ`L:^  aFL^R, ue 5eLڭR7>e?e5e?eJeKeLje֩ u>e?eՍ "] a a$% iLg֢   sLj$%`8f  a e ; ` s ɩ` YLILcopL7 z0xH ׫$0_ ;h8fH`aai shH2 h zJJJJf Ik ɩ` ̬ t os YLA ևLLק jWXX` ׫$`pd8isŠt`dyoopd8ip`J uv`&&&8孪孪宐橈`! @ uA?B@B 悅@=g>h>h ]=i>j>k a=g8i>hj>h 悅ki=5j>6k6k;el)@7Me0u(> ƬƫHH ,hohp` ɩCe0R`ȹR`ee?e@e ue 5e T L=e;e`Lso`n}pm aa`dyo ɃɄ b`" lJJJJYe s ˰L8Ls LԫN l@u=ekPe tMe )llNesOet NeOetMeCOeNeȌ=e>e;eG$:::320H: Error Routine 202:U=11:"79C";"BAD PATH ERROR (NO DISK IN DISK DRIVE OR DESIRED FILE NOT FOUND.)"X=11000:X:::210Z a$="{,|,~,}; selects; back 1 leveYES - Both Sides CONPATH tells about ways to convert one file format to another. The premise is simple. There are a bunch of "bridges" and a bunch of file formats that can be "stepping stones" between the file format you have the the one you want. Most co WAP /// SIG PUBLIC DOMAIN LIBRARY 12022 Parklawn Drive Rockville, MD. 20852 (301)-984-0300 PDS NAME: CONPATH by Bloom DISK ID#: 3BLM-14 BOOTABLE?: January 31, 1987 Page 5 7. Enter option "5" to update the INTERPS file. You do not need to re- calculate the minimum load address. 8. Exit to the Catalyst main menu via entering option "7" CONPATH (A): If Pascal 1.2 is installed via "Super PMove", the interpreter pathname is "SOS.INTERP". Verify via other Pascal program menu entries. 6. If all entries are correct, enter "Y" to the final question. Press ESCAPE twice to return to the edit menu. Press RETURN | | | Max Files Allowed Open: 3 | | | Program Path: .PROFILE/CONPATH/CONPATH.CODE | | | | | NOTE thname: Press RETURN | | | Screen: Press RETURN | | | Keyboard: Press RETURN | | | Prefix: | | | Display Name: Conversion Paths | | | Interpreter Pathname: CATALYST/PASCAL | (A) | | Extra Drivers: Press RETURN | | | Character Set Pah`L)i   HH `TH..TH..TH..THATS ALL, FOLKS!R`RT RT`#RT RRRRR`0R`RR 㵩:RRL㵆  ~ RR`BLOCKS FREE: BLOCKS USED: TOTAL BLOCKS: sj]"]\AjiGa@aI[5x<^sě xCxEx5eҥV{}g}gkj̐kIk~^hT}27uejewsHH st\hh H PASCODPASTXTTEXT PASDTABINARYFONT FOTO BASIC DATA WPTEXTSYSTEMRESERVRESERVCAT RPSDATRPSIDXAFDISCASMOD AFRPT SCNLIBk;eo $'>ed?e,i-i8, ȱ,%,W,pp ڠ %p`l  " ) i SOS KRNLb.D1/SOS.INTERPŠ̠Š.D1/SOS.DRIVERР頞 0 ) (lH'&3&'&#e'#%e'%'&"$"$#%'#%h`$e >>< (&20 *, **>> "2*&" " >>  ">> "8""> """"""< >> " )((8*,;((*,((+)((9/(p((>3  =9 :9 .(~|L|LNqooGoDDDcc0ccpc]]c"QM"|@@pAATT**|GA7  3  5  rom "here" to "there" may not be obvious, it may be downright devious, and there may be several paths. CONPATH is designed to help you find those pathways. Side One: Manual and Source Code Side Two: Conpath Program path Program e Side Two: Coerts Mail List Manager to DIF, ASCII, or NAME:VALUE. NVASCI (3BLM-16) converts a NAME:VALUE file to ASCII format and doesn't ignore null fields. There are plenty of "bridges" around. Getting from one file format to another can be easy. However, the path filable specially designed to bridge between file formats. The public domain program GRABIT converts an ASCII file to QuickFile format. REFORMATTER /// (3UTL-02) converts a "table file" (say a report printed to disk) to DIF or QuickFile format. MLMASCI convmmercial data base and spread sheet programs can "import" or "export" data in one or more formats. Those files are stepping stones between systems. The most common such intermediate files are ASCII, NAME:VALUE, and DIF. There are also utility programs ava<!((g %(r(z(q( %y(i(0z %"#$ %&' $"#$%&'   `%$%ɠ%* " ~#C #p $ %*0"#)#)i $"% * %*  L! {" j% %ƌ(X#%#%"$w"$#%"`荚ٍ荺 荚`荺``` D ( )  * ) 4* * h* ))` L% q ȥ q Hi hi  i" i# #% $ȱ %ȱ &ȱ '`ü 7)?۽۩ W٠Յ<ōōř ռV7 uM78 V榠=ü#)@5 ɐ /ݐE ) .) @L `lqhٯ޿=ϓTXIֲ̛̐~ؠIJK,-NOPQ0vt `` LLɠ8`ΛLL渠`0 `8`HiHiH ihhȱh`86)IH)heuQɸ` ` W` ] %饚0` W` ߰4`)|E8LLLRLLLLL*LLLLLhh`LLL`SOS 1.3 01-NOV-82(C) 1980, 1982 BY APPLE COMPUTER INC. ) `G`î** }*`o^`on 8 JJAj@` *?($`ΠņɠŠ堠РѠ͠஠әƆH v?c,,,,h߈ߢ~))`3PLLP*%(i&`Ѕ񩏍E H pph`X٠ŠҠî!((ͽϠРРSOS NTRPSOS DRVR(.D1(YYYYMMDDWHHMMSSMMM̱忠ΠͽŠ堠Р͠Ю̠Ɔx߭J ʈc(()o/ e/''ʈ((''()(1i / e/''ʈ((''((''((''' ('`ŠDAY, DD-MON-YY HH:MMSUNMONTUEWEDTHUFRISATJANFEBMARAPRMAYJUNJULAUGSEPOCTNOVDECé@L&I/O ERRORINTERPRETER FILE NOT FOUNDINVALID INTERPRETER FILEINCOMPATIBLE INTERPRETERDRIVER FILE NOT FOUNDINVALID DRIVER FILEDRIVER FILE TOO LARGEROM ERROR: PLEASE NOTIFY YOUR DEALERTOO MANY DEVICESTOO MANY BLOCK DEVICESEMPTY DRIVER FILE '(i%%%h}%%`8 ȥ!8 !)"qȥ#q#e$ȱe%L)%`@(((( % %`((((࠰$(ɠH(@(h((((@(`%z %% %~(A{(L%`.8(.Je.&ʈ.s(1 6$P8"ȥ#L1$8"ȥ#(ϸ`"##L]$"qȥ#q0,$p)@"q"ȩq"8`*$% $% 8% $L$* $8%8 $`8 &'$% 8&$'% 8$%%`H   q ȥ q Hi hi 1  % H H ȱ h h % $$ 0 e e H i hi âz %` 1 8`    # &ȱ ' # i" i# # #`8 ȥ H h `8 6$P`8"#/y.i/ ȑ  © $ E7<3W`ȽLֽȄ @8`R ) [)_[AͰ")[)_[A:0/.ЩȑΘ8e * ȩ`Lo` ռ``ߤeI`IiţO`Ȯʆ/ )󘑡`()0zq 滅ѺY Ueۅ5Ѻ Ѻ  Qܐ'`i ҩ *C80`#$"0#`!qȱi 5H5Ƶ ǽ jh5`L2̩ƍv̥Ǎw̩ÎL%ϠƄǥLj̩۬L~̠HHh` ̐`*ѺG0?M`)J"u-- M8`۬` # ː`  = O̰)= I`JJJJѶQi Lˢ  0 ̐ `"L˦ `H8`8$$"$= O̰=`$0`#$"0`$` H hQ)fʅ F jF jF jF &!  eװ*  ̰F湥 ƹ`Z8`@  ʰ泭ۑƳ ʐ` ʐ` ˰ ƹ Wː`ۘ . . .۪8*JۦȱѶ"` ɰ Ȑ`E`Ɔ X̐8`>>5Ѷ Qܩ<`>`\ʊJJJJ ۍ۩  ˰Fȱ X̰6 0 Lɠ 0ۑۑ8ȱ`H8` ɹ $  8JJJJ8 ` ۠ǽi `< Ȱ+<#5 ې'` ɐ /ݐE`W8`R` 5&i ` Ȱ 0i `<8> ȐT eİF cȰB)Hh5 ˭)*ȑƑȥǑ'(ȑ`L)ɭ)Ѷ*e`M) `ۅH)Ѱ%}ʈh Qܐ'``hi ` p6۽ʹZ5 HȐ/i i `гW8`0( ɐ Ȱ ʮ6E`5 խ ɐ ޢ ȰLȍ۱Ǎ X̰% & !J8` *LĢ `8 iۥƍۥǍ`ۅ %  6 )Ѱ Ѱ` 𝭧e ǐ bǰL*ۈ5ȱ۠ƍȱǍ X̐ H h1  /ݐE`ۈۅ ۅ 8ƭ X̐`LLŠǠ  ݭv̅w̅ ðzv̍ŭw̍ŭƭ ­ōō T̰]ŅƮņ X̠8iȱiiȱi ṰŅǭŅ XLōۭ۩ۅ ȱ8D`F`8eYƍťǍŠ)͠ Wٍۭۅ5ۅƭۅ X̰ ìۈۑ T̰ۅƭۅ X̰ۙ%ۍ" T`K8`)` İ ۱ۈ` ưW/ۈęۈЍ۩@` 8 MƐ  5 Q8`LŅ ۅ ۩ۍۅ Lɰ ʰۅۄÍÍۙ'Ù ۍ*ۨ  Ѝ۹ۙ8v- ðJ ¥ ð, ðLO ʰƥLT`'  mې浰``8 8 nʰ0 ̰+泱Ƴ m° x̰ ̐8` m° x̰8 ۢ8 ˰y ` ¥ nʰ泱Ƴ T̰#泪 Ѳ *Ƴ ` L:Ϡ`泑Ƴ` LaĥH8`JȘ I8`  S`ۈۥۥ۩Íۭۍۭۍ հL¢H8`Jj Ȅ ۍۆeۅiۅ Lɰ ʰWۅۄ ¦J> ɩE` eĐL Ȑ 15WL QL5WW{5 ې'`,55 ې'` ݠ B1 ȩȑ Lɦ8`5  @ R㥶i ` İG8`F`X8``éۅĩ >` T֩xxMH]@ Kۅ5H ɐE$ eİ Ȱ h`h`8`W h8`hR`hLҿ i x +ۅ5ۅ6 ǰ `E8<W`­ `0XLۅ5*`)ȥ+8ۍې  ,ѺLTΠ"LΠ5 խ ɐ /ݐE`C8`)@ ϰa)ۥ,8ېu+J,\ ȱLJΠ) ϰ'#,J(] { ΰ ƑȥǑ.8` { ΰ,JѲ ƳL΅ƱƳ ΰҥ,J+jѲ84ƳJJ 2ΐ3泑ƳLTΩ潑ƽ`ƱƳ ΰ( {Π۵*+)e`8`)` J J + ΰ" 0 ΰ 🱼ѼL8`ǩ Ϡ` ϰ ƑȥǑ` ѺDC5 L3ܵ ɐ /ݐ 8`5 ˥JJJJ8 H h ` ܠ825H h5 ɐ /ݐ 8`Hh ܥ5 `ɥܥܥܥܥ5`܅܅܅܅܅5`( ݰ)Ѻ ݰL ݰ泱Ƴ ʰȭۮ ʰͩΪΩۦ eװqȭqLJ  ˰Aۅƭۅ X̰2%&N  ʰƭ X̐`Ӏ堁ӠҠՈ՘̠ƠŠӠ̠ɤӮȪŅ͠Ϊ ܆5 HȰۈ)ۅƭۅ X̰ 3ڰLÍLT̥L㼠  ʰ` İK ХP8` LɐH80)N  հ)@LO ˰)0 ̐` M ­۠泭ۑƳѲƱƳ X̰ RڰäJۑĥ` İo!)N8`WپX0 ĥLä X0 ĥLà !"#$ Đ2@H AڰCŰrP` 3ڰ(` AڰѶ? İG8`Fە1 ռ İ ЩP߭)@N8`1@8` Aڰ񈱴 ˦,+* ʈJj =ؠ yiȩ`y4泱ƳHhz ʠiȱizLA`L;ؠ"  `1` Đ7@8V۩ Lɠ۪8ۊ۠X)JJJƄ X Ġȱ۠ ȍ۱۠ ۭ) ۍ ð*)#  O̰``)(`N8` ) xհۈ ̰آ*գ  Ͱ ݢգ LvL{ؠ;i ڥ(8` ְ( ȱ5 HȦ)`Lxץ: ש ְ⥺i ꥻ(8`Lx Lxש u )۠0)p խ.8`)@ ϰ) ϰۈۅƭۅǭۅ5 X̰ *ƭ۬͵̶L  ΐ` Wհ> H۪ȱHۑhƳh sϰq ` ʰiȱi `)5©éՅĩ5 }JJ+`.`8`ɂ )`@ ש ְO ֤FHۑۑh8`P) հ Wհҥ,J+j泭۪ƳۑȊ ) ~ fPL ͊.>.ʱ+,EP!.E.Lw+,,ӄ*- P*e (` հB հ5 Wհ0,J۪泭ۑƳ sϰ(` L Ͱ2 ~ P kҐ#L8 T 2ΠHHȑhhȑ`Ld )N8` xհ*eȱ+eȱ,i۠Ѻ۹ۑ񥤅- ť.Lcԥ.La Ͱ$)rJ Lɰ )# Ԑ) ͰU..++,,IJ/ ӥ-.?Цե,J+jѲ4Ƴǥ4聠 H hH kh8`8-ȥ.L 8*Ʊ )8 0*-`.G.ʱ*+,EP'.E.LұE0+,,ӄ*p-e  )LBѠٳ )8`i (` )N8`*eȱ+eȱ,i۠Ѻ*ȱ+L - ť.Lkҥ. ՅL ͐Ld ~ pа.J/)@߅4N8`) ))УJ8` ۑȭۑǠۑۑȭۑ($S8`O8` "` / 򑺠+* ͐H h8` ΰi `()  *ǵ յý5Ņ4gȩυɩč5 iψ }.8` iϙLIѠ ˢ L΢ ΰ LϠ ˢ ΰ1` Đ@ АP8`B8`ۑJJJJ -ѥ ݰL`5`i 祻(8`2ޝ51©ޅéąŅƍ >ϩ 1ޠ== f ɰ`ޭ`5=(5= i Х(`=H h=`Insert volume: Τ in device: 蠠ɠ then press the ALPHA LOCK key twicex)_ @,P,R,T,V) )) `)8( ߠ',@ ߠ0  'ȈL` 8`څ  Lk%  Lk8Lu텚8嚅 L L Ld V ``  h` ک V `ۅץ  VLFx) ( :` H ) L  .P'pб0 &L:L5'8+8`0Fܢ` ř,Ř 0 8f)J ӭƅХDžѥL1LUȑ  i ߩLL )  札)  ҩLL` **éL0;` H ) 4 )ߍ) hjjjjۥ0CF = -$(L !LLL&L L-LJ٥eƦ ,L  # ` (L.L…ҥÅ,] Xx,f (I0јIFjFjFji```x@gŽPy+wLwԠ͠ŠԹ.D1 .D2 .D3 .D`HJJJJh)y` (2`]PU]]UPPX0 0 PPXPP  į󠠩ҙ̙ɠΠɊՐӠӢ̢ՠҠŠԠҚРĠ鱃ԠȠࠠLQ  * WHHH>%H H @`)h8`  HШБˆeЅАb >_-%^%p_^^_ab"08^c_L8^c_L8^c_L8^c_ȑcc\] ab^_ ``aV R0M bba dda0h8蘠fȊf` ab 1abo)abaݰb L9c`` a N0Ioa0H ha`pLopna n`  3ɠ/8 L %iLɠ8逨J Hh $` `}wqnkjba_\[ZYXWVURQ$hhhhhh HH H)HHH`20+*)Hhhhhhh HHHH`&$< 詏 )x `a^]NMJGF>=<10/.+* )) y xHHHJJiH 詏 鮀hhhh  HH`420.,*)&#"! Rhhhhhh    HH`DB@><:983.+('&$h J)` `!0 nljhfdcbQNMLJFEDCBA<;6hhhhhh  HH`420.,*)&#"! Rhhhhhh    HH`DB@><:983.+('&$hhh-&#  P  `"hhhhhh  HH`420.,*)&#"! Rhhhhhh  B B HH`yyP`GB HH`)r` @A>~|zxvtslgbWTSRPMED=hhhh   HH`420.-&#  Phhhh   HH`420.h   HH`420.-&#  Phhhhhhhhhh  HH`DB@><:86421.+*)'jhhhhhhhh    X XLJFE>987410/-   `+(%" Bhhh h h h hh hhhhhh  HH`ZXVTRPNLJHFDB@<;85431hhh    `OLIHEDCB?<;8541.+*x  `"hhhhhhhh    HH`XVTRPN.GRAFIX jj# \\JHFD=;9210-,+*)!   v Q )``.`5`=`C`E` `BGRAF (C) APPLE 1980j @@@@ @```~$ <"<"""<< <"""<"><$""< """"  "" 6***""""""""""<""< :< $"""2,"""""**6"""""< >>>>88  >!"*:<"">""""""""""""">>><2"<""">""" ""  ">"6**"""""&*2""""""""""""*,"" "" ">""""""""""""""**6"""""""> >>>xrr|>00000>0# #0  )* i LiHh`PQPQ>P Q,PQ"PɀQ@PAQ`8`nɀ<)nopoLpp` hhhhhh HHHH`&$<D^Z FpHx  )) y xHHHJJiH 詏 鮀RETADDR ISOSDSTATGSCB kSOSOPEN INITCHK READPARM5CREFNUM DWBUFADR ?BMOVCHK RBUFADR 7WRITEPAR=SREFNUM FRREFNUM 6WREFNUM >INITFLG KSOSCLOSE RETADDR % ! INITCHK  ITCHK LINETO LINETO WBUFLEN  UFLEN SOSWRITE SWRITERWBUF     CALCABS x q ABS RETADDR CALCABS  ABS RETADDR  SOSDSTAT SDSTATGSCB INITCHK  ITCHK DOTREL DOTREL WBUFLEN  UFLEN SOSWRITE SWRITERWBUF SWRITERWBUF  RETADDR c _ < 8 INITCHK O ITCHK WBUFLEN Y UFLEN SOSWRITE\ SWRITERWBUF T L H D @ DOTAT DOTAT RWBUF ZRNJFCALCABS BRETADDR SOSDSTATSDSTATGSCB  MOVEREL MOVEREL INITCHK ITCHK WBUFLEN UFLEN SOSWRITEWBUFLEN !UFLEN SOSWRITE$SWRITERWBUF BUF RETADDR ieB>INITCHK UITCHK MOVETO MOVETO  WBUFLEN _UFLEN SOSWRITEbSWRITERETADDR INITCHK ITCHK RANGECHKNGECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  INITCHK ITCHK FILLPORT FILLPORT RETADDR tpINITCHK ITCHK PENCOLOR PENCOLOR RANGECHKNGECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF |x FILLCOLO FILLCOLO TRETADDR  SETCTAB SETCTAB  INITCHK ITCHK RANGECHKHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  'SOSWRITESWRITERWBUF  RETADDR PLINITCHK sITCHK VIEWPORT VIEWPORTWBUFLEN }UFLEN SOSWRITESWRITERWBUF  xplhd`\XUFLEN SOSWRITESWRITERWBUF ~zvrRETADDR $ INITCHK ITCHK XFROPTIO XFROPTIORANGECHKNGECHKWBUFLEN UFLEN #ITCHK WBUFLEN DUFLEN SOSWRITEGSWRITERWBUF ?:72-(SYSFONT SYSFONT RETADDR njDRAWIMAG DRAWIMAGINITCHK ITCHK WBUFLEN RETADDR INITCHK ITCHK RANGECHKECHKWBUFLEN UFLEN SOSWRITESWRITERWBUF  NEWFONT NEWFONT INITCHK =+SOSWRITE@.!RWBUF  83& INITCHK uITCHK GRAFIXON GRAFIXONWBUFLEN UFLEN SOSWRITESWRITERWBUF zBUF GPGSREQDLGRAFIXMO GRAFIXMORBUFLEN 9RANGECHKwWBUFLEN ASOSWRITERWBUF \SOSREAD GBASADR TSOSSMARK$INITCHK ITCHK INITGRAF INITGRAFWBUFLEN  T P SOSDSTATj SDSTATGSCB LINEREL LINEREL INITCHK g ITCHK WBUFLEN  UFLEN SOSWRITE SWRITERWBUF } d ` \ X RELEASE RELEASE