IMD 1.16: 31/05/2007 20:09:51 FOGCPM.120 --FOGCPM120ARTICLESD ARTICLESDD  DDOC ASC DHELP ASC DHELP DOC0FIELDFORDWS FORMFORMDWS5LONGADDRD LONGADDRDD  MEMBERS D !MEMBERS DD "MEMBERS DFO#MEMBERS DOC$%SHORT DFO&SHORT1 DFO'SHORTADDD (SHORTADDDD )STANDADDD *STANDADDDD +STANDADDDFO,-./PCFILE COM0123456789:;<=>?PCFILE COM@ABCDEFGHIJKLMNOPCFILE COMP-07-00 86 -CPM120 DOCPCFILE DOCQRSTUVWXYZ[\]^_`PCFILE DOCabcdefghijklmnopPCFILE DOCFqrstuvwxyPCEXPORTCOM|z{|}~PCSORT COMPCSORT COMNREFORMATBAS)REFORMATDOC This is the disk name. KEYS,a~TITL,a~AUTH,a~SOUR,a~stop0~ 31~ comprog Basic data-base management system~An Operator-Oriented Data Base Management System~Shapiro~Micro Jan'80 p84 1st of 3~ comprog Basic data-base management DBMS~An Operator-Oriented Data Base Management System part 2~Shapiro~Micro Feb80 p36~ Basic sort pointer linked list data-base management~IMPLEMENTING DYNAMIC DATA STRUCTURES WITH BASIC FILES~Carter~Byte Feb'80p92~comp prog Basic data-base management system~An Operator-Oriented Data Base Management System~Shapiro part III~Micro Mar80 p84~ comp prog Basic data-base management system~SCREEN~Myers~Micro Apr80 p88~ data-base management Basic comp prog~FILEIT~Myers~Micro May80 p180~ hashing data-base management storage~Hashing Revisited~Vizzone~Micro May80 p78~ comp prog ISAM data-base management~Understanding ISAM~Gates~Byte Jun80 p108~ comp prog data-base management sort~A File Sorting Program And Its Diary~Prentice~Micro Jun80 p34 Apple~ SCREEN FILEIT data-base management sort Basic comp prog~SORTIT: A Sort Program~Myers~Micro Jul80 p120~ mailing list data base management magazine~OSI In the Sky (Sky and Telescope)~Shawcross~Micro Oct80 p102 65K subs to micro~ comp prog CP/M data-base management DBMS text~INFORMATION MASTER~Machrone (review)~S-100 Nov/Dec80 p14~ comp prog data-base management binary tree FABS~Fast Access Btree Structure~Computer Control Systems~Life Feb81 p13~ comp PET data-base management prog~Your Data Is In Good Hands (review of Jinsam)~Baker~Micro Feb81 p12~ data-base management DBMS comp prog CBS~Configurable Business System (review)~Paulette~Life Mar81 p9 ISAM~ database management system comp prog relational~Condor~Paulette et al~Life Apr81 p6 (review)~ relational data-base management DBMS~Relational data bases do it more easily~Hamilton et al~Elec Mar24'81 p102~ data compression~An Introduction to Data Compression~Corbin~Byte Apr81 p218~ comp prog data-base management Micro-Ap~SELECTOR IV~Berla+~Life Jun81 p10~ comp network data bases Lockheed~Information Unlimited - Dialog Information Retrieval Service~Miastkowski~Byte Jun81 p88~ comp prog review Aston-Tate dBASE II relational database management~Software Evaluation Group~Patchen et al~Life Aug81 p16~ comp knowledge-based expert systems data-base~Knowledge-Based Expert Systems Come of Age~Duda+~Byte Sept81 p238 Basic prog~ comp database Lockheed DIALOG~The DIALOG Information Retrieval System~Rhodes~DataC 2~ Apple II data-base management comparison review~...File-Management Systems~Blochowiak~Byte Nov81 p274~ Basic comprog data-base management key file~PDQ: A Data Manager for Beginners~Swanson~Byte Nov81 p236~ data-base management comparison review~A Survey of DBMS for Microcomputers~Barley+~Byte Nov81 p208~ comp DBMS data-base management~D.B.M.S.: Powerful Newcomers to Microcomputers~Gagle+~Byte Nov81 p97~ DBMS relational data-base management rules~Fundamentals of Relational Data Organization~Neely+~Byte Nov81 p48~ DBMS comp data-base MDBS ISAM CODASYL many-to-many~D.B.M. fits microsystems, avoids application dependency~Gagle+~ElecNov17'81~ data-base management DBMS screen forms inquiry Basic comprog~A Time-Saver For Your Database~Bailey~Micro Oct81 p206~ comprog DBMS data base management~Ashton-Tate dBase II Computer Software~Warren~PE Jan82 p31~ KEYS,a~TITL,a~AUTH,a~SOUR,a~stop0~ 31~ comprog Basic data-base management system~An Operator-Oriented Data Base Management System~Shapiro~Micro Jan'80 p84 1st of 3~ comprog Basic data-base management DBMS~An Operator-Oriented Data Base Management System part 2~Shapiro~Micro Feb80 p36~ Basic sort pointer linked list data-base management~IMPLEMENTING DYNAMIC DATA STRUCTURES WITH BASIC FILES~Carter~Byte Feb'80p92~comp prog Basic data-base management system~An Operator-Oriented Data Base Management System~Shapiro part III~Micro Mar80 p84~ comp prog Basic data-base management system~SCREEN~Myers~Micro Apr80 p88~ data-base management Basic comp prog~FILEIT~Myers~Micro May80 p180~ hashing data-base management storage~Hashing Revisited~Vizzone~Micro May80 p78~ comp prog ISAM data-base management~Understanding ISAM~Gates~Byte Jun80 p108~ comp prog data-base management sort~A File Sorting Program And Its Diary~Prentice~Micro Jun80 p34 Apple~ SCREEN FILEIT data-base management sort Basic comp prog~SORTIT: A Sort Program~Myers~Micro Jul80 p120~ mailing list data base management magazine~OSI In the Sky (Sky and Telescope)~Shawcross~Micro Oct80 p102 65K subs to micro~ comp prog CP/M data-base management DBMS text~INFORMATION MASTER~Machrone (review)~S-100 Nov/Dec80 p14~ comp prog data-base management binary tree FABS~Fast Access Btree Structure~Computer Control Systems~Life Feb81 p13~ comp PET data-base management prog~Your Data Is In Good Hands (review of Jinsam)~Baker~Micro Feb81 p12~ data-base management DBMS comp prog CBS~Configurable Business System (review)~Paulette~Life Mar81 p9 ISAM~ database management system comp prog relational~Condor~Paulette et al~Life Apr81 p6 (review)~ relational data-base management DBMS~Relational data bases do it more easily~Hamilton et al~Elec Mar24'81 p102~ data compression~An Introduction to Data Compression~Corbin~Byte Apr81 p218~ comp prog data-base management Micro-Ap~SELECTOR IV~Berla+~Life Jun81 p10~ comp network data bases Lockheed~Information Unlimited - Dialog Information Retrieval Service~Miastkowski~Byte Jun81 p88~ comp prog review Aston-Tate dBASE II relational database management~Software Evaluation Group~Patchen et al~Life Aug81 p16~ comp knowledge-based expert systems data-base~Knowledge-Based Expert Systems Come of Age~Duda+~Byte Sept81 p238 Basic prog~ comp database Lockheed DIALOG~The DIALOG Information Retrieval System~Rhodes~DataC 2~ Apple II data-base management comparison review~...File-Management Systems~Blochowiak~Byte Nov81 p274~ Basic comprog data-base management key file~PDQ: A Data Manager for Beginners~Swanson~Byte Nov81 p236~ data-base management comparison review~A Survey of DBMS for Microcomputers~Barley+~Byte Nov81 p208~ comp DBMS data-base management~D.B.M.S.: Powerful Newcomers to Microcomputers~Gagle+~Byte Nov81 p97~ DBMS relational data-base management rules~Fundamentals of Relational Data Organization~Neely+~Byte Nov81 p48~ DBMS comp data-base MDBS ISAM CODASYL many-to-many~D.B.M. fits microsystems, avoids application dependency~Gagle+~ElecNov17'81~ data-base management DBMS screen forms inquiry Basic comprog~A Time-Saver For Your Database~Bailey~Micro Oct81 p206~ comprog DBMS data base management~Ashton-Tate dBase II Computer Software~Warren~PE Jan82 p31~ 1000 E$="DIMS doc command March 20, 1982 1005 'by Dan Dugan -- public domain 1010 DEFINT A-Z 1020 COMMON I,J,K,X,Y,T$,R$,S$,T1$,SKIPPARSE,FT,SEARCH, C,N,NC,P6,P7,P8,P9,PI,S,T,T1,T2,C(),B$(),N$(), SEARCHWORD$(),SEARCHFIELD(),SKIPWORD$(),LOOKFIELD(),DD$(),F$,FT$ 1030 CLOSE 2 'N.B. DOC USES TWO FILES, #2 AND #3. IT RE-OPENS 2 AT END. 1040 GOTO 1080 1050 ' (SUB) CLEAR SCREEN (TERM DEP) 1060 PRINT CHR$(12); 1065 PRINT E$ 1070 RETURN 1080 ' DOCUMENT COMMAND 1090 GOSUB 1050 'cs 1100 PRINT"'" F$"' document file 1110 PRINT:PRINT"Do you want to write (1) read (2) or finish (3) "; 1120 A$=INPUT$(1): IF A$=CHR$(13) THEN A$="1" 1130 PRINT A$ 1140 A=VAL(A$): IF A<1 OR A>3 THEN 1110 1150 ON A GOTO 1170,1430,1640 1160 GOTO 1110 1170 ' DOC WRITE 1180 GOSUB 1050 'cs 1190 ON ERROR GOTO 1230 1200 OPEN"I",3,DD$(5)+F$+".DOC" 1210 ON ERROR GOTO 1610 1220 GOTO 1250 1230 IF ERR=53 AND ERL=1200 THEN OPEN"O",2,DD$(5)+"DOC.$$$": ON ERROR GOTO 1610:RESUME 1320 ' fix 1240 ON ERROR GOTO 0 1250 OPEN"O",2,DD$(5)+"DOC.$$$" 1260 IF EOF(3) THEN 1300 1270 LINE INPUT#3,L$ 1280 PRINT#2,L$ 1290 GOTO 1260 1300 CLOSE 3 1310 KILL DD$(5)+F$+".DOC" 1320 PRINT"Writing on "F$" document file 1330 PRINT 1340 PRINT"Type 'stop' to finish 1350 PRINT 1360 LINE INPUT L$ 1370 IF L$="stop" THEN 1400 1380 PRINT #2,L$ 1390 GOTO 1360 1400 CLOSE 2,3 1410 NAME DD$(5)+"DOC.$$$" AS DD$(5)+F$+".DOC" 1420 GOTO 1110 1430 ' DOC READ 1440 ON ERROR GOTO 1470 1450 OPEN"I",3,DD$(5)+F$+".DOC" 1460 ON ERROR GOTO 1610: GOTO 1490 1470 IF ERR=53 THEN CLOSE 3: PRINT:PRINT"No document file present": ON ERROR GOTO 1610:RESUME 1110 1480 ON ERROR GOTO 1610 1490 GOSUB 1050 'cs 1500 PRINT: PRINT "'"F$"' document file 1510 PRINT 1520 FOR I=1 TO 20 1530 IF EOF(3) THEN CLOSE 3: GOTO 1110 1540 LINE INPUT #3, L$ 1550 PRINT L$ 1560 NEXT I 1570 PRINT"(more)"; 1580 ' PAUSE 1582 X$=INPUT$(1) 1584 IF X$=CHR$(27) THEN 1640 'exit 1590 PRINT 1600 GOTO 1520 1610 ' GENERAL ERROR  1620 IF ERR=61 THEN PRINT:PRINT"Out of disk space.":PRINT:RESUME 1110 1630 ON ERROR GOTO 0 1640 ' FINISH 1645 CLOSE 2,3 'make sure 1650 OPEN"R",2,DD$(4)+F$+".DD"+FT$ 1660 FIELD #2,128 AS S$ 1670 PRINT:PRINT"Re-loading DIMS file editor (DEDIT).":CHAIN"DEDIT",1000 N"R",2,DD$(4)+F$+".DD"+FT$ 1660 FIELD #2,128 AS S$ 1670 PRINT:PRINT"Re-loading DIMS file editor (D5)+"DOC.$$$" AS DD$(5)+F$+".DOC" 1420 GOTO 1110 1430 ' DOC READ 1440 ON ERROR GOTO 1470 1450 OPEN"I",3,DD$(5)+F$+".DOC" 1460 ON ERROR GOTO 1610: GOTO 1490 1470 IF ERR=53 THEN CLOSE 3: PRINT:PRINT"No document file present": ON ERROR GOTO 1610:RESUME 1110 1480 ON ERROR GOTO 1610 1490 GOSUB 1050 'cs 1500 PRINT: PRINT "'"F$"' document file 1510 PRINT 1520 FOR I=1 TO 20 1530 IF EOF(3) THEN CLOSE 3: GOTO 1110 1540 LINE INPUT #3, L$ 1550 PRINT L$ 1560 NEXT I 1570 PRINT"(more)"; 1580 ' PAUSE 1582 X$=INPUT$(1) 1584 IF X$=CHR$(27) THEN 1640 'exit 1590 PRINT 1600 GOTO 1520 1610 ' GENERAL ERROR 10 PRINT"This program must be entered from DIMS. 20 STOP 1000 ' HELP Command March 20, 1982 1005 ' by Dan Dugan -- public domain 1010 DEFINT A-Z 1020 COMMON I,J,K,X,Y,T$,R$,S$,T1$,SKIPPARSE,FT,SEARCH, C,N,NC,P6,P7,P8,P9,PI,S,T,T1,T2,C(),B$(),N$(), SEARCHWORD$(),SEARCHFIELD(),SKIPWORD$(),LOOKFIELD(),DD$(),F$,FT$ 1030 GOTO 1070 1040 ' (SUB) CLEAR SCREEN (TERM DEP) 1050 PRINT CHR$(12); 1060 RETURN 1070 ' HELP COMMAND 1080 GOSUB 1040 'cs 1090 ' TEST FOR PRESENCE OF FILE 1100 ON ERROR GOTO 1130 1110 OPEN"I",3,DD$(5)+"DHELP.DOC" 1120 ON ERROR GOTO 0: GOTO 1160 ' if OK then go on 1130 IF ERR=53 THEN PRINT:PRINT"No help text file present": RESUME 1260 1140 ON ERROR GOTO 0 1150 ' READ 23 LINES AT A TIME 1160 GOSUB 1040 'cs 1170 FOR I=1 TO 23 1180 IF EOF(3) THEN CLOSE 3: GOTO 1290 'last 1190 LINE INPUT #3, L$ 1200 PRINT L$ 1210 NEXT I 1220 PRINT"For next page, hit SPACE; use '\' to go back, ESC to return to editor."; 1225 A$=INPUT$(1) 1226 GOSUB 1040 1230 IF A$=CHR$(27) THEN 1260 'done 1240 IF A$="\" THEN CLOSE 3:GOTO 1070 1250 GOTO 1170 1260 ' FINISH 1270 CLOSE 3 1280 PRINT"Re-loading DIMS file editor (DEDIT).":CHAIN DD$(1)+"DEDIT",1000 1290 ' LAST PAGE 1300 PRINT"Last help page. Hit SPACE to return to editor, or '\' to read again."; 1310 A$=INPUT$(1) 1312 GOSUB 1040 1314 IF A$=CHR$(27) THEN 1260 1320 IF A$="\" THEN CLOSE 3:GOTO 1070 1330 GOTO 1260 ."; 1310 A$=INPUT$(1) 1312 GOSUB 1040 1314 IF A$=CHR$(27) TILE 1100 ON ERROR GOTO 1130 1110 OPEN"I",3,DD$(5)+"DHELP.DOC" 1120 ON ERROR GOTO 0: GOTO 1160 ' if OK then go on 1130 IF ERR=53 THEN PRINT:PRINT"No help text file present": RESUME 1260 1140 ON ERROR GOTO 0 1150 ' READ 23 LINES AT A TIME 1160 GOSUB 1040 'cs 1170 FOR I=1 TO 23 1180 IF EOF(3) THEN CLOSE 3: GOTO 1290 'last 1190 LINE INPUT #3, L$ 1200 PRINT L$ 1210 NEXT I 1220 PRINT"For next page, hit SPACE; use '\' to go back, ESC to return to editor."; 1225 A$=INPUT$(1) 1226 GODIMS editor help file - January 13, 1984 If there's a record number or a pair of record numbers anywhere in the command line, the command will be done on the specified range of records. The words "from" "to" "all" "end" or "last" may be used when talking about record numbers. "." instead of a number means use the most recently dis- played record. All the built-in commands may be shortened to three letters. For example, all the following are valid commands: add delete from 10 to 20 delete 10 20 print to 75 print select labels find Wombat from . to 500 change 57 change . (means change last record shown) 10 20 list from 10 to 20 (same result as "10 20" select copy delete DIMS editor help screen 2 ---> Final commands <--- These commands are normally the last word in the command sentence, any fol- lowing words except record numbers will be ignored. add Appends records to the end of the file, prompting field by  field. In this mode the following commands take effect: "stop" alone in any field quits adding. "\" (backslash) at end of any field skips back 1 field. ";" alone in the field copies data from last record shown. done Closes file and returns to no-file menu fields Allows "hiding" fields you don't want to show. You may un-hide them with the same command. Controls output of 'put.' format 0 Installs default display and print formats. formats Shows available format definition files. format Installs named format definition for screen and printer. backup Makes complete new backup file from main file. Rarely used since backup file is maintained automatically. DIMS editor help screen 3 renumber Renumbers all records sequentially from the top in both main and backup files, closing up holes from deleted records. The following commands may be given freely anywhere in the command line: change <#> Shows record or records field by field, new data may be entered for each field or the old data may be kept by just hittin RETURN T eras fiel, ente jus on space then RETURN. Backslash '\' and RETURN backs up to previous field. delete <#> Shows record or records and asks approval to erase. list Shows records. Assumed if no final command is given. find Finds records containing the exact word string. A phrase can be found if underlines_are_used_instead_of_spaces. select Finds records containing up to 10 different words or phrases, (you will be asked for them) in all fields or in specific fields. You also can specify up to 10 words or phrases that will cause the record to be skipped. DIMS editor help screen 4 -- more free-form command words print Prints on list device rather than screen in current format. copy Copies data records and adds them on to the end of another DIMS file. You will be asked for the name. You may create a new file this way or add to an existing one, but the field definitions must be the same. New records have no auto backup. and Permitted, ignored. page Sets page number to start printout with. margin Sets printer margin if you don't want the default setting. flag In combination with an add or a change to a range of records, asks you for a string to be added to any (one) field in the record. programs Shows a directory of available "transient commands," i.e. various batch processes than can work on the file. DIMS editor help screen 5 --> TRANSIENT COMMANDS <-- Transient commands are sub-programs which do a batch of work and then return you to DEDIT. Where appropriate, they will take a range of records and selec- tion criteria from the command line. Example: print select labels 100 to 150 cform Process for creating format definition files. Complicated. doc A "notepad" where you can read or write notes associated with the data file. The doc file can be edited later with WordStar. Useful for remembering codes you invent for your file. labels Prints a batch of labels (use "print labels") with blank fields closed up. Works only with three standard address file formats that will do for most jobs, not hard to modify if necessary. letters Merges an address file with a form letter. A personal salutation line or other data lines may be included if desired. DLETTERS.BAS must be modified for each job. sort Sorts the records into a new sequence in the whole file or a range of the file. Asks questions for set-up. Sorts alphabetically unless all fields specified for keys are numeric. May overlay or make a new file. DIMS editor help screen 6 -- more transient commands stat Computes descriptive statistics for a selected field. put Makes an output file in standard Basic sequential form for further processing with other programs. You may use a range of records in the invoking command line, selection specifications, and omit fields by using the "fields" command first. get Stuffs a conventional Basic sequential data file into the DIMS file from which it is called, adding records to the end. Allows skipping and re-ordering of fields. nadin Inputs from a NAD-like data file to a DIMS "standard" form mailing list. cheshir Prints 4-up labels on wide paper for Cheshire automatic labelling process. Can also be used w/o DIMS, reading a standard comma-delimited data file. .. --------------------------------------------------------------------- .. FIELD ________ (put name here for clarity) .. The FIELD NAME MODE may be 0, 1 or 2. 0 means no field name, 1 means .. the 4-char. default name, and 2 indicates a name will be entered .. FM(): LFM(): 1 2 .. F2$(): Screen field name (whole line - used in mode 2 only). .. LF2$(): Printer field name (whole line - used in mode 2 only). - .. NLL(): Field name loc. ln. LNLL(): Field name location line 0 0 .. NLC(): Name location col. LNLC(): Field name location column 0 0 .. The number of CR/LF's after the field name: .. FMB(): LFMB(): 0 0 .. The location line to print the field data: .. DLL(): LDLL(): 0 0 .. The column at which to print the field data: .. DLC(): LDLC(): 8 0 .. If the field is a numeric field and the following lines are not blank, .. the line will be used as a PRINT USING string. .. PU$(): Numeric PRINT USING string for screen. .. LPU$(): Numeric PRINT USING string for printer. .. Field length: Fields may be truncated to any number of characters to fit .. into the space designed. 0 means that whatever random length the field is .. will be printed in full. -1 means that the field will be skipped (so you .. can show a field on the screen but skip it on the printer). Any other .. number will truncate the field above that maximum number of characters. .. FL(): LFL(): 0 0 .. Number of CR/LF's after this field (use 1 at end of line if necess.) .. FB(): LFB(): 1 0 .. (end field) eld name: .. FMB(): LFMB(): 0 0 .. The location line to print the field data: .. DLL(): LDLL(): 0 0 .. The column at which to print the field data: .. DLC(): LDLC(): 8 0 .. If the field is a numeric field and the following lines are not blank, .. the line will be used as a PRINT USING string. .. PU$(): Numeric PRINT USING string for scre.. FORMFORM.DWS January 15, 1984 .op .mt 0 .hm 0 .fm 0 .mb 0 .po 0 .. DIMS has a built-in facility for designing a form for the display and .. printing of a file. To make DIMS use your form design, you must create .. a format control file with all the detailed specifications in it. There .. are two ways to make this ".DFO" file. One is to use the transient com- .. mand "cform" which can type a form for you to fill out and then accept the .. specifications. Another way is to use that form but skip entering the .. data and instead edit this file with WordStar, changing the numbers to .. fit your design. Once a ".DFO" file has been created, you can switch .. the dislay to that form by typing "format " as a DEDIT command. .. DEDIT will respond with "Format loaded." .. .. To make a format control file for the DIMS file , start Word- .. Star, select the N mode and make your file name .DWS. As soon .. as you're in the file, do ^KR, and give the name FORMFORM.DWS.  This will .. read in this file into your workfile. This file contains all the .. values which produce the default format (format 0). You will want to .. edit these values to design your forms. You may then delete these instruc- .. tions to save space, but the single "." commands at the top are essential. .. .. A single format specification controls both screen display and the form .. on the printer. These forms may be the same or as different as you .. like. Only the sequence of fields must be the same for both. Note in .. the form below that many items have two values on the line. The second .. value is for the printer. The DEDIT variable names into which the .. the parameters are read are given for debugging. THE LINES WITH NO DOTS .. BECOME THE FORM CONTROL FILE, THEY MUST KEEP EXACTLY THE SAME NUMBER OF .. LINES AND THE SAME NUMBER ITEMS IN EACH LINE. .. .. After you have made all the changes you need, save and print it to a .. disk file .DFO, which will make all the .. lines disappear. .. Then edit the .DFO file in N mode and delete the extra blank lines .. which appear at the end. Try out the format on the DIMS file. To make .. corrections edit .DWS again, and "re-assemble" the .DFO file by .. printing to disk again. .. .. Words and numbers will be read as data input items by a Basic INPUT# .. statement. Therefore there must be the expected number of words on .. each line, or everything after the error will be loaded into DEDIT .. wrong, and you will get the message "Error in loading format." and/or .. DEDIT will crash. Some of the items (i.e. headings) are input by DEDIT .. as whole lines with LINE INPUT#, and these can have commas or anything .. you want. .. .. Code begins here. Don't delete any lines with no dots! ..-------------------------------------------------------------------------- .. FO$ Name of this format DEFAULT .. FFD$ Who wrote it, date of last update Dan Dugan 1/15/84 ..-------------------------------------------------------------------------- .. PARAMETERS FOR THE WHOLE SCREEN AND PAGE .. .. TM: Top margin lines LTM: Top margin lines (printer) 0 4 .. (not used for screen) LLM: Left margin 0 3 .. SW: Screen width LW: Printing width 80 95 .. .. The following parameters, if not 0, will position a form on the screen .. and not use scrolling. This type of form may have bugs in DEDIT. .. RS: Records/screen RP: Records/page 0 0 .. .. If the printer is at or past the conditional page line, it will ad- .. vance to the next page. Set to the number of lines on the page minus .. the top plus bottom margins, minus the normal number of lines used by .. a record. This deals with the fact that extra-long data items in for- .. mats that don't limit the length of the field may overflow into extra .. lines on the printer. Dims keeps track of this. .. (not used for screen) LLP: Conditional page line 0 52 .. .. These parameters apply to printers with variable character and line .. spacing, DEDIT is set up for Diablo 1610/1620. .. HMI: 120th of an inch per character (use 10 for 12 per inch) 10 .. VMI: 48ths of an inch per line (use 8 for 6 per inch) 8 .. FSC$: Reserved for future enhancement. 0 .. .. The next three lines are heading lines for the screen display. They .. will be printed only if something is entered on the line. You must .. keep three lines here whether you enter anything on them or not. .. HL1$: If this line ends on a space, "PAGE" and the page number will .. be added automatically. .. HL2$: .. HL3$: .. .. The next three lines are heading lines for each printed page. Same .. as above. .. LHL1$: If this line ends on a space, the page number will print after. .. LHL2$: .. LHL3$: .. .. HB: Blank lines after head. LHB: Blank lines after heading. 0 1 ..-------------------------------------------------------------------------- .. PARAMETERS FOR EACH RECORD OF THE FILE .. .. The record number mode can be 0 (don't show number) or 1 (on). .. RM: LRM: 1 1 .. .. Location line parameters are used for forms which don't scroll. They .. display fields at fixed positions on the screen or page. Make all .. location line parameters 0 in a scrolling format. The top line of the .. screen is line 1. The first location line parameter is the line to print .. the record number on: .. RLL: LRLL: 0 0 .. .. Location column parameters position the printhead or cursor. If there .. is no CR/LF after the previous item and the location column is 0, the .. item will be printed after the previous item, wherever that may have .. left the printhead. To print "Lastname, Firstname" define the field .. name for the Firstname field as ", ". Use Column 1 to position at the .. left margin; 0 means put it wherever it is. .. .. Record number location column: .. RLC: LRLC: 0 0 .. The number of CR/LF's after the record number: .. RNB: LRNB: 1 0 .. . . The following sequence of numbers determines the order in which the .. fields of the file will be printed, on both the screen and the prin- .. ter. MAKE IT THE NUMBERS AND ORDER YOU WANT. THERE MUST BE A ZERO .. TO TERMINATE THE SEQUENCE. .. SQ(): 1 2 3 4 5 6 7 8 0 .. .. Number of CR/LF's or blank lines after the whole record: .. EB: LEB: 0 1 .. .. PARAMETERS FOR EACH FIELD IN RECORD. USE ^KR TO READ IN "FIELDFOR.DWS" .. AS MANY TIMES AS THERE ARE FIELDS TO BE SHOWN IN THE FORMAT. .. FIELDS ARE DESCRIBED IN THE ORDER THAT THEY APPEAR IN THE FORMAT. , wherever that may have .. left the printhead. To print "Lastname, Firstname" define the field .. name for the Firstname field as ", ". Use Column 1 to position at the .. left margin; 0 means put it wherever it is. .. .. Record number location column: .. RLC: LRLC: 0 0 .. The number of CR/LF's after the record number: .. RNB: LRNB: 1 0 .. .LNAM,a~FNAM,a~TITL,a~ORG ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~Proprietor~Dan Dugan Sound Design~290 Napoleon Street, Studio E~San Francisco, California~94124~(415) 821-9776~~DIMS~ LONGADDR$$$LNAM,a~FNAM,a~TITL,a~ORG ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~Proprietor~Dan Dugan Sound Design~290 Napoleon Street, Studio E~San Francisco, California~94124~(415) 821-9776~~DIMS~ LONGADDRD LONGADDR$$$LNAM,a~FNAM,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~ST ,a~BLK ,a~o/v ,a~MEMB,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~~290 Napoleon St., Studio E~San Francisco, CA~94124~821-9776~nap~2~v~79-83~mdto1n1f2~treas. 80,81, president 82, 83~ LONGADDRD LONGADDRDD  MEMBERS $$$LNAM,a~FNAM,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~ST ,a~BLK ,a~o/v ,a~MEMB,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~~290 Napoleon St., Studio E~San Francisco, CA~94124~821-9776~nap~2~v~79-83~mdto1n1f2~treas. 80,81, president 82, 83~ LONGADDRD LONGADDRDD  MEMBERS D !MEMBERS $$$ MEMBERS Dan 11/14/80 0 4 0 6 79 90 0 0 0 60 10 8 0 DUBOCE TRIANGLE NEIGHBORHOOD ASSOCIATION 0 2 1 1 0 0 0 0 1 0 1 2 3 4 5 6 7 11 12 0 0 0 1 0 0 0 0 0 0 0 0 0 8 6 0 0 1 0 1 2 , 0 0 0 0 0 0 0 0 8 0 0 0 1 0 1 2 0 0 0 0 0 0 0 0 8 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 8 35 0 20 1 0 1 0 0 0 0 0 0 0 0 0 8 56 0 6 1 0 1 0 0 0 0 0 0 0 0 0 8 63 0 5 1 0 1 0 0 0 0 0 0 0 0 0 8 69 0 0 1 1 1 0 0 0 0 0 0 0 0 0 8 15 0 0 1 0 1 2 0 0 0 0 0 0 0 0 8 0 0 0 1 1  .op .he Duboce Triangle Neighborhood Association page # .po 13 ..adj margin .. ----!----!----!---------------!-------------------------------------------- DUBOCE TRIANGLE NEIGHBORHOOD ASSOCIATION Notes on file format and codes, February 9, 1981 ST field: Enter only these standard abbreviations: dub, 14, hen, 15, bea, 16, cas, noe, wal, san, bel, chu; FOR OUT-OF-TRIANGLE addresses, enter "[" plus 3 lets. of st. FOR OUT-OF-TOWN addresses, enter "[[" (These codes cause these addresses to be sorted to the end) BLK field: Enter the number of hundreds or 0 for the first block. Example: for 833, enter 8. For 83, enter 0. o/v field: Enter only "o" for the odd side of the street, "e" for even. MEMB field: Enter each year as dues are paid, example "7980." Enter "*" to show year of new member, "-" for inclusive range, example: "*8081" means new in 80, paid in 81 also. "79-81" means 79 thru 81. CODE field: b = business  b1 = donated goods or services to street fair b2 = donated cash to street fair d = member dues class d2 = $2 or granted d5 = $5 d10 = $10 d25 = $25 or more (don't use in-between figures in these codes) m = mail newsletter n = newsletter volunteer n0 = distributor, see details in N2 field n1 = news production n2 = ad sales person o = officers o0 = emeritus o1 = officer o2 = board member o3 = activist o9 = burnout, emergency only f = street fair f0 = organizer f1 = food f2 = stage f3 = donor of $ v = volunteer (other than distribution or fair) v0 = phone c = contact; where we got the name into the list c0 = regular meeting sign-in c1 = safety meeting sign-in c2 = earthquake meeting sign-in Sort keys for block/side canvassing order listing: 8, ST (3), 9, BLK (2), 10, o/v (1), 4, ADDR (6). SHORT Dan, 7-4-80 0 3 0 6 79 255 0 0 0 60 10 8 0 NUMB NAME COMPANY ADDRESS CITY ZIP PHONE 0 2 1 1 0 0 1 1 0 0 1 2 3 4 5 6 7 8 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 7 7 33 0 0 0 0 2 0 0 0 0 0 0 0 0 0 40 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 20 35 0 20 1 0 0 0 0 0 0 0 0 0 0 0 0 0 20 56 41 6 0 0 2 0 ZIP: 0 0 0 60 0 0 0 0 0 66 63 0 5 1 0 0 0 0 0 0 0 0 0 0 0 0 0 25 69 0 0 1 1 2 0 CODE: 0 0 0 30 0 0 0 0 0 37 0 0 -1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 30 0 0 -1 1 0  0 0 0 0MAILING Dan 2/10/81 0 4 0 13 79 95 0 0 0 58 10 8 0 HEARTS OF SPACE MAILING LIST 0 2 1 1 0 0 0 0 1 0 1 6 2 7 3 4 5 0 0 1 0 0 0 0 0 0 0 0 0 0 1 6 39 39 0 0 0 0 0 0 0 0 0 0 0 0 45 50 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 6 39 39 0 0 0 0 0 0 0 0 0 0 0 0 45 50 0 0 1 1 0 0 0 0 0 0 0 0 0 0 1 6 39 39 1 1 0 0 0 0 0 0 0 0 0 0 1 6 0 0 0 0 2 2 0 0 0 0 0 0 0 0 0 0 ##### ##### 0 0 1 1 0 0  NAME,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dan Dugan~Dan Dugan Sound Design~290 Napoleon St., Studio E~San Francisco, CA~94124~(415) 821-9776~~DIMS~ LONGADDRD LONGADDRDD  MEMBERS D !MEMBERS DD "MEMBERS DFO#MEMBERS DOC$%SHORT DFO&SHORT1 DFO'SHORTADD$$$NAME,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dan Dugan~Dan Dugan Sound Design~290 Napoleon St., Studio E~San Francisco, CA~94124~(415) 821-9776~~DIMS~ LONGADDRD LONGADDRDD  MEMBERS D !MEMBERS DD "MEMBERS DFO#MEMBERS DOC$%SHORT DFO&SHORT1 DFO'SHORTADDD (SHORTADD$$$LNAM,a~FNAM,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~Dan Dugan Sound Design~290 Napoleon St., Studio E~San Francisco, CA~94124~(415) 821-9776~~DIMS~ Fudd~Elmer~Fudd International~833 14th Street~San Francisco, CA~94114~(415) 621-0781~~DIMS~ MEMBERS DFO#MEMBERS DOC$%SHORT DFO&SHORT1 DFO'SHORTADDD (SHORTADDDD )STANDADD$$$LNAM,a~FNAM,a~N2 ,a~ADDR,a~C-ST,a~ZIP ,n~PHON,a~CODE,a~NOTE,a~stop0~ 1~ Dugan~Dan~Dan Dugan Sound Design~290 Napoleon St., Studio E~San Francisco, CA~94124~(415) 821-9776~~DIMS~ Fudd~Elmer~Fudd International~833 14th Street~San Francisco, CA~94114~(415) 621-0781~~DIMS~ MEMBERS DFO#MEMBERS DOC$%SHORT DFO&SHORT1 DFO'SHORTADDD (SHORTADDDD )STANDADDD *STANDADD$$$ STANDADD for standard address file: LNAM, FNAM, N2, ADDR, C-ST, ZIP, PHON, CODE, NOTE - Dan 9/23/82 0 2 0 13 80 84 0 0 0 54 10 8 0 0 1 1 1 0 0 0 0 0 0 1 2 3 4 7 5 6 8 9 0 0 0 0 0 0 0 0 0 0 0 0 0 6 6 0 0 0 0 2 2 , , 0   0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 54 50 0 0 1 1 0 0 0 0 0 0 0 0 0 0 11 11 0 0 0 0 0 0 0 0 0 0 0 0 0 0 59  55 0 0 1 1 0 0 0 0 0 0 0 0 0 0 11 11 0 0 0 0 2 2 ZIP: 0 0 64 0 0 0 0 0 0 0 ##### ##### 0 0 1 1 0 0 0 0 0 0 0 0 0 0 16 16 0 0 0 0  2 2 , , 0 0 0 0 0 0 0 0 0 0 0 0 1 1  0 2 2 ZIP: 0 0 64 0 0 0 0 0 0 0 ##### ##### 0 0 1 1 0 0 0 0 0 0 0 0 0 0 16 16 0 0 0 0 +"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~+ž.~ ž.!:EB1F'b%'b)*|'b58'bG*|!nB]:b'bQ!jB]3'b|D*""'b8 *|ʳ*"*Û*͓s!͚Z!ͭ[!fB]![ ^"*"*#"**z|}|[*#"*"!bBL[*#ws*"'b58A|[!Bs!"'b58! "'bU8!m|<T!ZnÊ*#"!:KL*)"N*^#V|„* +" A|[!Bs*"!l!Q*)^#VcP*#"**z|}|S!Zn*|/g}/o|* " !@͚Z!"!@͚Z!e"'b(!@]* "!q@͚Z!"!b@͚Z!e"'b(!:" !^@]!"*""!W@͚Z!S@]A!"* "!" !L@͚Z!"!H@]!"!,@͚Z!!@͚Z!"!e"'b(!@]!"Õ*""'b4*|¸!@s!Bs**"}o|go*$|/g}/o|g}o|!]b**"}o|R*|/g}/o|R!"'bU8:b!]![!2A]!]+ͭ[2A|[͚Z*+"*|)ҝ*L)^#V))bVeWV!M^͘UuWͮV:b!i?͚Z!"!^?͚Z!e"'b('b58!Z?]a!"13!?͚Z!O\:͚Z:b'b58*"e!{'bz3*#"**ez|}|rQ*)^#V?P*#"**gz|}|ң!A͚Z! "!nB](ü(T !>|[ZrT58ʹT T'bu"!@]( :b!"'b58'b !nB]` *|O •!!>͚Z'b]/( *#"*W Z*)*is#r*"*k++*zz {zҹ !>͚Z'b]/C 3 *| HPHP!A͚Z! "'bk,!͚Z'b99!͚Z!nB]!:bHP!>͚Z!f"'bk,m!͚Z!mM^WX"i*i|N!)`!͚Z͚Z!"'b}!ͭ[!@]!!"!"( !Zn!@s!>|[!Bs*"p!#"!Q*W lP!Q*)^#VcP*#"**pz|7"}|!!Zn!@s!g>|[!Bs!Q!bB\lP!Zn:b'b58! "!"'bU8lP!9>͚Z.'b58'b"!nB]":b*r|":b'bP#!nB]":b'b/$æ"*"t!"'bz3*#"**tz| #}|"!&>͚Z'bo/!nB]-#:b'b7*"r|D#D#:b!A͚Z]/!"'bU8HP!=͚Z!A͚Z*r)^#V!d"'b(v!͚Z!"y!ͭ[!6A]#![v͚Z!"yv!nB]#:b{!v͚Z!v]|#)#v!ͭ[{͚Z*r)^#V!v]zz${z,$vͭ[v͚Z:b!"~'bs$*|E$:b*"'bH%*|5$'b9 'b%!S@]p$:b5$*rT]+"*~*z|$}|8%*"*~ %*͓s!͚Z!{]|$*![!{]$![ ^">%*![!{\*y|g}o|%![ ^">%*#"**z|4%}|Ҟ$!"*#"~:b'b !"*y|t%*rW!vx]":b*rW!v]ͭ[!v]%*"":b!=͚Z!"!=͚Z!"í('b58!4"!Zn!Mb!""!"!&"k!"""""""ZT?&!EAs=!Bs`i:KL!N!N!Zn!=rD&ʹTD&T*)&'b/*|q3!=͚Z'b4!=|[͚ZT&'b58!"'bU8|[!Bs!m|/g}/o|ʠ'!:K!͈N*#"*W Z!:KL!N*)*s#r*">'!Zn*T]##"!@s!g>|[*Bs`iͱO*O!͋s!ͭ[͚Z!bB](*#"!fB](*|(*"'!@s!g=|[*#Bs`iͱOO*|Q(*"!":b!A=͚Z!e"!2=͚Z!"'b(!.=](!@](:b!":b!Zn'b58sG!=|[͚Z'b('bO8|[!Bs*"!+!Q*W lP!Q*)^#VcP*#"**z|,}|+!Zn:b!U,! >,*"*"'bU83C3 "","You are encouraged to copy and"f3k3 "share this program with others."q3B "/*"!F;rsG*̓W##"*WW(#"'bU8͚Z!f"'b(!M^WX"*)p*s#re5!:͚Z'b4!=|[͚Z!:͚Z'b/!|[͚Z!g=͚Z*|/g}/o|P6!:͚Z!|[͚Z*|m6!":b'bZ"!@s!g>|[!Bs'bZ"!@s!>|[!Bs*"!17*N)^#V"*|-7*)7!Q*ogk\6A|[lP!QcP-7!Q*W lP!Q*)p^#VcP*N#"N*N*z|E7}|Ҹ6!Zn'b58!"'bU8:<-C:you must sort it.#W:Remember: The first time you use it}:: Database created.:.LST:Name for output file:!:WHICH DRIVE FOR OUTPUT (A,B,C,D): :. New length: :Old length=:Which field to change:# ;Change any field lengths? (Y or N)?3;ADad:;@>;09-.++ I;PC-FILE.COMW;/*\;azAZ09e;BAj;YYyyNNnnu;9y;0};_; ;ENTER THE NEW NAME:;Which name to change:;END;NAM;LAY;PCSORT;LOADING PCSORT...;SOR;LIS;FIN;DIS;DEL'>xxx' scans full field. (slow))>FIELD TO SEARCH:<>Do you want to define it? Y> IS A NEW FILEj>.INXq>Is this all correct:>Record too Long>09> FIELD LENGTH: >FIELD NAME:>KEY >No more fields.>AT LEAST 1 ITEM IS REQUIRED.>.HDR>###?THE RECORD LAYOUT?Compared to value:,?Compare how? >,<,=,<> G?Field to Select on:]?Aa?AAaaSSss&l?List All records or Selected (A or S):?Page?press (ESC) to stop ? records.? of the?Printed ? ?TOTALS:?<>?=?X?Prepare for output. @Title of Report: @C$@CCccRRrr/@Clone or Report (C or R):K@DO@CON:V@SZ@LST:a@P e@PPppSSssDDdd)t@List on Printer, Screen, or Disk (P,S,D):@R@LLllRRrr@Labels or Report (L or R):@O@Name for this format:@N@Save this report format?AFIELD UNKNOWN.A. Field to List:+AColumn=5A 9A>=A<AA.RPTHAILAAZaz09UAWhich format, orhA*.RPT pAOld Value:}AField to Modify: AMODIFYING #ANO. It's Deleted.ARECORD #ARECORD NOT FOUND.A*A-A#A+A ~AKEY or #n,*,+,-,\ ADELETE BDEdeLLllTTttBType 'DELETE', or'B ,BIs this right? >BTHIS DATA WAS ENTERED: WBADDING AT #eB\iB/mBYqB (2<% F)PZ58dGnQ|8 Rz33^ .}^|'  9 ((  v =  U88 X f] po/L7  8 U|]/$p6M,0R%j$ Px/tT4@fpL !b0:XXDM?88X7 .l\?+. 8    t< }F   u" ( 3 J ` , C  !| k,N99 !^ Z" " ": P#v /$ 5$ s$ H%R %z 8%> >%H ?& D&&~/q3_&.4&`&j'( Z(F(n(d(O8.8**+*/++,..5//045J9e5D-77,88b8l8v8 99$909[[[[ BASLIB #000000 5.30 - OWNED BY MICROSOFT, 1980 GE (&DM*"^*I##"^F>2>E2AE*^#V"?E##^#V"BE 2DE!ʒE!!""EE!F"F6#6P>2F>2F>2F>EEAEEE_ IQpE!m6C#6O#6M!\>!zm!\> ͲyRsm\<w!9%.DF>AͲy.@F/ *OUT OF MEMORY* $N6=3!?u6=3!:A͉6=3!6A͝6=!!XX!9"FH !XGHF!XGF!FXG!R"F!O"FH|,G> G6#s#r#=!G>2F>2F>2F2F!E"F!$\"F>&2F`EÕa6#}UG|UG{b STOcHsGH*F.. . ........ͅ`*F|zG:FG*F|GGH  s#rH  {FIw#6"F*F*F>2FGImG!9N#FH~#~ H~+&H~#~ H+^#V###G###G|2H~#fo!:H{b Internal Error - No Line Number EH~#H{b at lineG͂HH>ͶH<ڛHͯH…HͶH<ڛH0yͯHҗH}_|W!Hͭy~#fo>{b at address|͟b}͟bH> y> y~#*Iͭy~#fo!9"F!I*FI"F!5I*FH!eI~Input Past En?Bad Record Numbe@Bad File NamCToo Many FileUnprintable Erro IͰE!K>4KͺEw>S`|G I}ͧsvVKv`i"F!kK"F!K"FK ,KʢKʱKd)c*z*z*z*zKewd*zKec*z*z kK,ZK~#KxS`KI!>ÛGKD`S`͝Z6pK LK"$LG{,x$LPX6prL!NOz"y]L ʒL ]LO{,yL6prL ]L{ lL,> lLlLrLrLL6p)L"}L ¥L6pڥL }L,ʥL L6pڥL ʥL*F( 4:FL{,L6!ND`O L+~ ʿL#6!Nɷw#æL͡!N#"L!9"L"Ly2L*F|M*F!M"FA~#*O͡y:F$M~MʩM6Md9Me"O_MkM)c*z*z*z*zxMwd*zxMc*z*z*O͡yʜM~#"O, M M:FM M~M!"F~,"´M#"~MM# ·MM"M#"Ox"M M+~ MyS`xM{b?Redo from Start *Lͅ`!NeN*L:LO M*L+~+IN;N;N +w =NTN++~#fo͝Z"L!L5*L~2dN#~#^#Vmb++{`wdG:N I*F|§N!ND`S`͝Z*F\8*N)*Nog#T͛͘8*N| *N)^#V!?|!2A2Tͺͽ8*L#"L*L*az|}|s8*P#"P*!!"*"c!y*L*L)^#V*"= **"*L#"L*L*cz|}|>!! I}ͧsvv! ~#fo"O! "O I|G*O}o|gw"O*O"O`#s#r++s IuPYQ ÌPYQ I͋PYQ IKPYQ IuP{Q ÌP{Q I͋P{Q IP{Q IuP)Q ÌP)Q I͋P)Q IP)QzÖPzÖP"zßPH~# —Px2b:FPQ QPfD`<͇Q~Pnx#üPvQf~P nx#P>2b:FPQF#~#fox Q̇QQQ~#nxQQ{` Q>"nxG:Fx Qy*F+~ nx Q>,nxW*F#^ ̱QʫQ+=ګQ:F=ʫQyz{Q{_õQ>2F I nx+|+Ry!F"F!"F2FͫT!F"F!"F2FͫT4 ]/ I͇RIÐGI~GF͝Z>2F!R"F:F{R2iR2hR2jR:iRG:F*F_x`S:hR{RØR:jRR:iR̘R*lRDM*jR}R:bʁR|f~3Snx#R:bR*lREN#^#V` /S "SnxS$/S> nx(S{`:iR©R2jRX:F~#ʋT US BSC:F͡Tnx_W͡TW~#!ʆT#S:F+~#ʁTsT+>cS+~#.S_bT:F+~#>SZS:F~S*ZSx#ڼS:F~> SS#W$T~#.S#S,Tz@WS~#>.ZS# $T~##S"TT]^###xG#$Tz+DTxDT~-?TDT>Wx2iRCx{Rzg."jR`i"lR2hR͡T~#nxx`SyT͡Tnxx2iR2jRÌTÌT͡Tx2iRy2lR>2jR2hRz>+nx!F~6#w:FʄG^#V2F^#V#"F!"F:F*FH nÛG~!U͍bNTIi&ÛG +iU*F{<0Uy{?U=> nx0U|G}*F?U<0UiU}0U|G}0U|qU!*F#n&͖W!AUVVUVVUVV"VUVV"VUVVUVVUVV"VUVV"V1VOV^#V#[V"U*U1VU1V^#V+V1V^#V#UVV"U~2U"U I*U*U:U7y:Uvy:UmVzVzVC}3}K|-{ͭy~#fo^#V#^#V#Yy^#V#YyNy^#V#NyÖVAy7y^#VAy^#VNyV&)))H>,W>,W>,W>,W>,W>^#V#^#V#;WFW G4YZW~#fo\W##%Ij%I~Ay~%I~Ay~^#V# IͣW IͣW IzʽW|ʽW|͊^#VËW^#V# IW I͊ IW^#VW^#V#Xց2F I I/X IvyfXAy|ÐG I]X IfXCX}X:FʳX!>IC}~ÊX:FʶX!BI͉:z2z:zXX:zªXìX|/g}/o~:zX!zX4YX!IÍG:zgoW*z|7gX:zX+>Y|/g}/oY!%YG|!YYo& Gȯ|g}o(Y>Y>KY~+~?~VY+#cY+ cY ITZcz>íY I]ZdsZ)cz>íY ITZwdz>Ͳy I]Z~,"Y#"~YY# YIÐG"Y#sZx"Zyͭy+~ Z YyS`͝ZH^#V#{ Z!F"F"F>2FZN#F#*F~=OZ}|OZͅZ:Z]ZesZ:FZ*F͡y~=IÓG͡y~,Z#"Fɧ”Z*F"F+V+^"FIÙG I-`Z~##++`>Ͳy+V+^+Z+r+sEa I͝Z~d`(k,"Z"Z*Z|G}ʐG ڐG+< [{*Z[~#^#V`i#N#F Ͳy*Z{`L[#N#fis[~#N#fiͲy{`FOZ[G#~#fo#~#foxͲyys[{`6 #s[ IڐG_͝[͝[{`{`~#~#foͲy I|GBK[PY I|GBK [ o_û[ IzGz[ [_[o}`id`{`DM I -\~ʐG#~#fon&{` IzI\}_~F\s#<\IÐG I|G!9>S` *t*+! I"z>Ò\ Iz>Ì\ Iz>Ͳy2b>!c\Nyf>c\Ay~#®\xS`!>"\!\\>\> IS`>\>\>\>\>\>)]!+>]>]>]>]>]>)]%]~#fo##GNU]yU]#~#fo~#fo^]#T] D] y^]y<.h])h]){`{`/́]xGűʌ] y<2w]F~]]#~#foyͭyO #~#fox]]#¹]]!w]4 ¶]2w]{`{`*w]&~{`o&~ʐG#^#V++{`o&~ڐG#~#fo~#fo{`z>0^z>=G^#~#foͲy{`ÐG I~<ʐG_~#~#foͲy6+!ld)c{`{`"*^^d^*^}^|^"^͟^!^ͥ^^^,^^5^n_!^4^5*^"^~#N#F#_^ ͭy^yx^ ^+++6@#yw#xw+++6###!^~6_-_^w_*^#~#~^IÇG!*^"^~#^#V#t_S_ͭy:_|__:_++~_w#~Ww#:_-_*^DM~#^#V#__À_+zĮ`+{Į`##{z~#q#p_ʀ_y_x_DMÀ_~#_À_YP+++"^6@###{_zW+r+sɷ `*^|_IÊGͷ^^#V+"^w#s#r+++r+s##!'`,`*a{z*a?B`}|~# H`yG_xͲyG_x#N#F& \`-``Ea*a*ayʪ`~aʤ``Ea###Ë``{b during G.C. E`{b E{b Internal Error - String Space Corrup#N#F*^yx@a*^yx@a++`i+V+^y`##6+6+~6  >@++*^"^s#r+w_*^#~_#~WnaIÖGr+s##6"^###!^~#foʒay‚a<*^"^*^}o|g6@#s#r#6"^*a*a"^}w>#w##y½a++6+6Ɋ^^ïa>2a|b+})N#b~#fo :a b!9"F!F4 ~ͭy#ÐG!F4!9"F^#V#!F~w{G!9"F|G}ڐG!Fw|G}ڐG!Fwɧ~y#=ob́b~y#ÁbG~#ʝb#b++ͨb0:ڳbyr0!|00!Gͬ0.!T;/0[/*|/g}/o|;lc*z}/o|/g#"z|6cjc!z~wɯ2z;l c~6c*z6cj;l c~>>d~E#;cEb!zYc>!zz2`c# _c!zC}!z@dz>>ڂc>|}+!dK|d+6!z>͌~2z!d!dK|!zK|~_#~W#~O;Ì!kÉ͆BDd:bGw#Dd?dYd!z@dz;lz;l7d*z||<;l*zdSd!kMdiccÖdc:z2z:zmd:z·düdd|/g}/od!m:zdd"z>2bcajd L} c3cm>2b`hd~&Vl--e+-e+!lf.ʺee?eEie!llWeLWeqWeQhe:bʂe>Âe~%e#e!edʂeD™ee!lLl!lڇf™e_{_efeb;l!cd;l ™ee-e!l!c!wdÙee!lÙec)c;ldc=;lccDG‚g"z`i"z#~+g-g0OxGg#~¸g`xEgy ңg>2bg|ңggãg"z`i"zc#Wj:b-h7h;h;hͭj60dj+~0Jh.d|h;l>"w#6+mh6-/</ oh:#p#w#6!b#ziڠiͥjzjlk{̊c=j gʲhp#6!b#:b~ ʷh*ʷh+h!l-+_:F{0h#!lh++whøhh6%ڧiikoc-if+6%ci7djRi_xj͘jjđjjßh_ye]if_i{_x{ij͘jÌíjyjÓjGOj—i*b=jPèh cѯʭi7d7jyeOzWOfii/< j/>Vcj>Vcp#=j!zc0kc>dcl?jd/{_#zW#yO++Dkͻc#cp#6k>rkl>jN#F#*z/}o|g҅k"zp#=rkjw1_cƤ~@zZrN vH Tʚ;@B''d #~: !l !l !l0?<=:bHl7-++!llOglHgl+sl|ldH#ʨlÂlIÍGM!͔lڒl}0?)))صoÔlM!ͺlڸl}l0? l? ))))صoúla{ wd;l:z:zc:b2b2bIÍGIÍG I}ͧsvv!' ~n n#~ n`iom>O #~goPY!' ůw%p:FErw= w=Inѯv<w!% ^#Vr+s I}Rs!"m}ͧsʞn PY”n!n`i>n!' ~ n%pEt I}ͧsv!&¼n! ~+ng I}ͧsv! n&*F~vvDM'~n4N#V pozw w+s#r#6#6DM:DE*FT]% N#F+q#p###6 p%p:EEr>p>w+w!(ͼo7?*F' 6#67~w#^#fk_npN#~:rp++@wy@wwm #p~.œpͯp7Èp#‰p2m{`z ww> ïpʣp> pãp IQpmm<w!mm> ͲyQp:m!mwm Ͳy66%p~»q<wq.=x œr:F W:Fr> =x=x:xmŒr~*6?# rO!!4s#4s#4y"sw><"m>2F!nv"F:F<2F*F"m!fs"F I"m#q*F|ds##nbnSs.]n*m I{s I2m£t"mãt I×s I2m¤t"mätv!) u)# u))u u#=t}_}la)w/u#xw"zt! "|t!) "~t!}o|gv^ubk:tʤuvsuuDM*~t*|tu"|tPYu}o|g*zt#"ztAuuDM*|t*~tu"|tPYÉu2v*zt! ~#fovs#ru:vu!u!& o~# xuDMavwVv! w!( V6 .vzw_vwVv! ~!Qv! ^#V! s#rDMNvHvv}ͧsvʁvv`i"F!v"Fþv6pI!>ÛG I|G,ʸv-:Fv*F!E"F{_f$%v!v*Fv|}!"F>6>4>?>=>:>7>5>2>3>@>C>Io&ÛG%I!"F!N"O1w:dNBw{b?Bwphxvw:9x>\29x\wAw=x+pw~=xÄw+=x„w=x:x!N29xÇwhxOHw:9xʝw>\=x29xyx@x7 .x x wBwx@xBwwBw=x> =x>iww>#pwx6:x!NRxÄw ڄwx<>xyq#=x „w> =xhxx ʄwÇw:dN:xwHy>^=x@=x:x~ ax> =x=x#RxͺE*F ʅx#~+<ʄx=y xx ږx4+~# nx~=x*F!F"Fnx"F> nx> nx:F=1y> E> E*lx^#V#Ayɷ!z]y!zXyz]yz]yw#w#w#w#y>zÉy>zny ~#=y!ny#~ ʠy ʠyɅo$ɧGw#¶y{z6#z~z {BO{!J!zy#{+zB?J{~'{{~{!z~ʓ{:zB:z/N͌~}2z:z}Bx/F+N+=|!z&|!z>q#p#=)|!zK|"y| |{*y~:z!zN#Fu~qʈ|Gܺ}͸~x q|h|}!z͔~À|j0 TeB׳]h!I.k {~|{~!zK|T!zq#~++w+q|BDNn"~`35zr1{r1h!I~ByO2zI}~B:z{[}/<{9B:zOG2z!z͌~:z2zx!zz}}Ғ}4͸~:z}!z~++wB!z4#«}4|+6!zz# }ɯ# }}}/!zOyw#}G:z~!zVwz# ~x}!z/~~xʒ}!zwÒ}~w# 1~{~P~{~!zC}{~l~{~{!z3}y2z!zy~q+‚~qڣ~NsY+˜~Î~ W~w+­~æ~!zê~j~!zw#~B~}~!zF#^#V#Nق}z~#G++NyJz!z>X0T;f)T!z6g>͆|Կ!>*akuuB!z~+>wB|Ì3B:zҟ/<́Bg͆!z~_#~W#~Oق#4Ȃ.͜قG~_#~W#~Oܹ|3B>OÏ|3ʭBȯG"zy2zFoā́!D*z:zO>z4ȂVfg.*z:zOz?fg.*z:zLx<=}{_zWxG)yOHGق|Í3By+F+F+Fw`h|ڀgyҾ:zO|g}oxG-|²}­ElaOì!z~Gxƀww+ɷȂ)x{!z6wg z >͆|{>2z/)) =!z~7w?##wy7O*z*z"z"zajSXbJS\E!z/m l7>{_zW}o|g=c|g}oڕCZQÈ o-yOzW{_xGØz*zDM^#V#N#F#xyJ:z:z7|/G}/O!>m l7>{_zW}o|g=c| (tm) PC-FILE A Database Manager Program For the Osborne Computer Copyright(c) 1983 by Jim Button Version 8.6 Jim Button P.O. Box 5786, Dept.OZ Bellevue, WA 98006 Source ID: CL2925 Compuserve: 71435,2012 .pa PC-FILE Table of Contents General Information...............................3 Some "DO NOT"s....................................3 Getting started...................................3 Use of the "Esc" key..............................4 Defining your file................................4 The Master Menu screen............................5 Adding Records to your Database...................6 Modifying a Record................................7 Deleting a Record.................................7 Displaying a Record (by using the 'key')..........8 Finding a Record..................................8 Listing the Records...............................9 Cloning: outputting a redefined database.........11 Sorting the Database Index.......................12 Seeing the Record Layout.........................13 Altering a Field Name............................13 Ending the program / changing to a new database..13 Backing up the Database..........................13 Using PC-File Data with Mailmerge................14 Using PC-File Data With Other Programs...........14 Importing Other Files into PC-File...............14 Some Maximums and Minimums.......................15 Calculating the Size of Database Disk Storage....15 PC-File Release Numbers/Enhancements.............16 Some Frequently Asked Questions..................16 Disclaimer.......................................16 Permission to Copy...............................16 The User Supported concept.......................17 .pa GENERAL INFORMATION: PC-File is a general purpose "Data Base Manager" program. It was written with one overriding goal in mind: Ease of use. With PC-File, it's very easy for the casual or professional user to create and maintain data files on the computer, and to create simple printed reports based on that data. You can use PC-File for all kinds of tasks: Maintain mailing lists and print labels, Maintain price lists, Maintain telephone directories, Keep various types of inventory records, Build personnel files, Keep customer lists, Build and maintain files to be used by other programs, like Mailmerge, and many other tasks which only you can dream up. PC-File will allow you to sort your data into almost any sequence. It allows rapid access to any record in the file, with a sophisticated search technique allowing comparison searches on any field in the record. For example, you can display all employees over a certain age, or all clients in a certain state, or all items that are not in a certain category. You can print out reports from your database, listing all or some of the fields, from all or some of the records, in many different sequences, with totals on the numeric fields. Reports can be sent directly to your video screen, to a printers, or they can also be sent to disk for later use with your word processing programs. You can create entire new databases from existing databases. The new database can be in a different format, and can be a subset of the database from which it was "cloned". You can export your database files for use with "MailMerge" files. But above all else, PC-File is EASY! Most people can use it with no training or instructions. You need read the documentation only to pick up some extra 'fine points' of the program. The author has steadfastly refused to make any additions to PC- File which would make it harder to use. Any suggestions which you have for improving this program will be greatly appreciated. SOME "DO NOT"S. 1. DO NOT put a "write-protect" tab on the program diskette. PC-File needs to use this disk for a small amount of "scratch" workspace. 2. DO NOT remove the data diskette until you have completely ended the program through the normal "end" sequence: (0) followed by a "Q" for Quit. GETTING STARTED. To start the program, put the PC-File disk in the "A:" drive and press the "Reset" button. When prompted with the question "Which drive (A,B,C,D) for the Data:", enter the letter corresponding to the disk drive where your files will be stored. USE OF THE "Esc" KEY. Sometimes you will get into a part of the program which you have decided you wish you weren't in! (You may have pushed the wrong function key, for example). At these times, you may push the "Esc" key to get back to the master menu screen. You should not in general rely heavily on the "Esc" key, because overuse of it will gradually nibble away at your available main memory. Use this key only when you can figure no other convenient way out of a situation. DEFINING YOUR FILE. PC-File will show you a screen with the message "These files are already defined:", and will then ask "FILE NAME:". If this is the first time you have run the program, there will be no file names displayed. Type in the name of the file you will want to define. This should be a one to eight character name, starting with the characters A to Z. The only other characters allowed in the name are the numerals 0 to 9, but do not include a numeral as the first character in the file name. Do not include a file suffix (a period followed by three more characters), because PC-File will supply standard suffixes for your files. Your next prompt will be "KEY FIELD NAME:". The first data field in your record is known as the "Key" field. This is the data which most uniquely defines the data contained in the record. For example, 'employee number' in an employee file, or 'part number' in an inventory. It is not necessary for each key in your file to be unique. The only significance of this field is that, by specifying it correctly, you will be allowed somewhat quicker access to the data records in your file. You will still be able to get at all the data in the file if you specify this incorrectly, so don't fret too much about it. In choosing a field name, any valid character can be used. However, you will find it convenient to choose relatively short names, just long enough so you understand and can remember what the name stands for each time you see it. It is best to choose a name that's not longer than the number of characters actually in the field itself, because the name will be truncated to the data length when printing titles  for the printed reports. For example, if an employee number is six digits long and you name the field "EMPLOYEE", the title for that field on your output reports will be "EMPLOY". Sometimes you have to choose longer names, so let your own judgment and taste be your guide. Just be careful not to use this same name for any other field in the record. If the field will contain numeric data, such as price, or quantity, give the name a "#" at the end. Example: "PRICE#". This will cause PC-File to keep totals for that data when printing reports, and will also cause the data to be printed "right-justified" on the output reports. Don't worry if you select an inappropriate name for a field. You will be allowed to change the field names any time you wish after the file has been completely defined. You'll be prompted for "FIELD LENGTH:". Enter the number of characters which are required to contain the data for that field. Field lengths should be 99 characters or less. If your database has more than 19 fields, then field length should be kept to 25 characters or less if it is one of the first 19 fields. You will continue to be prompted for "FIELD NAME:", followed each time by "FIELD LENGTH:". Continue to supply the data until you have defined all the fields in your data record. Then, when prompted again with "FIELD NAME:", simply press the (enter) key. Since no data was entered, PC-File will know that you have finished with record definition. The maximum number of fields which you will be allowed to define is 37. The minimum is one. The total of all field lengths may not exceed 254. After you have finished with record definition, PC-File will take you to the Master Menu screen. THE MASTER MENU SCREEN. It looks like this: FILE:xxxxxxx (1) ADD a record (2) MODify a record (3) DELete a record (4) DISplay a record (5) FINd a record (6) LISt or clone (7) SORt the index (8) see the record LAYout (9) alter a field NAMe (0) END or change database Your Command:___ You may perform any of the functions on the master menu screen by pushing the appropriate number key at the top of the keyboard. You can accomplish the same thing by typing the three-character function code (indicated by the three capitalized letters in each command). For example, to alter a field name, you could either push (9),or you could type NAM followed by the (return) key. Some people like number keys, some learn the names of the commands more easily and so prefer to type the three characters. PC-file lets you suit yourself! Now that you have defined your database, the first thing that you will want to do is put some data into it. ADDING RECORDS TO YOUR DATABASE. To add records to your file, push (1) or type ADD when viewing the master menu screen. PC-file will then find an empty spot for your new record to go into. If there has been a record deleted previously from the file, that location will be reused for the added record. If there are no deleted records in the file, the new record will be added to the end of the file. In either case, PC- File will tell you at the top of the screen which location it has found for adding your record. You will then be prompted to enter your data, one field at a time. PC-File will print out the name of the field and will prompt you to fill in the data. On data entry, if you enter a single quote or a single apostrophe, PC-File will duplicate the data from the previously added record into this field. After you have entered all the data for one record, it will be added to the file. PC-File will then prompt you to add another record. If there are no further records to add at this time, just press (return) when asked for the data for the first field of the record. You will be returned to the master menu screen. There is a maximum of 1500 records allowed in this version of PC-File. Depending on the layout of the record you've defined, you may not be able to sort the entire maximum number of records. You will be able to enter as many records as can fit on one diskette (even exceeding the 1500 limit), and to print reports and do all the other functions provided by PC-File; but the number of records that can be sorted is dependent on main memory available, and cannot exceed 1500. See the section titled "Sorting The Database" for more information on this topic. MODIFYING A RECORD. To modify a record in your file, push (2) or type "MOD" while viewing the master menu screen. You will be asked "KEY or #n,*,+,-,\ ". If you know the key (the data in the first field) of the record to be modified, enter it at this time. Alternatively, you can enter the record number of the record in the file. The first record is number 1, the second is 2, and so on. To modify record number 120, you would enter "#120". Entering an "*" will allow you to modify the most recently retrieved record. This is handy when you have just used "FINd" to locate a record, and now you are using "MODify" to change it. Instead of having to enter the record # of the found record, just enter an "*". It's also handy for making another modification to the same record that you just finished modifying. A fourth way to specify the record to be modified is to enter "+", meaning to modify the next record after the one which you just modified. You can also enter a "-", meaning to modify the record just prior to the one you just modified. If you enter a "\", you will be presented with the last record in the file and allowed to modify it. PC-File will retrieve the record to be modified and ask you which field to modify. Enter as much of the field name as required to uniquely identify the field. You will then be prompted to enter the new data. After you have modified the record, you will be prompted to enter the KEY value for another record to be modified. If you have no other modifications to make at this time, just press (enter) and you will be returned to the master menu screen. DELETING A RECORD. To delete a record, press (3) or type "DEL" while viewing the master menu screen. You will be asked "KEY or #n,*,+,-,\ ". You should then enter the Key value of the first field in the record to be modified, or the record number in the file (preceded by a #), or an "*" to delete the most recently retrieved record, or a "+" to delete the next record in sequence, or a "-" to delete the previous record in sequence, or a "\" to delete the last record in the file. (Read the above section "Modifying A Record" for a longer explanation of this prompt.) PC-File will retrieve the record and display it for you and then ask you to "Type 'DELETE', or press (enter)". If you decide that you really do wish to delete the record, type "DELETE" and press (return). If you decide not to delete this record, just press (return). You will then be prompted for the next record KEY to be deleted. When you have finished with all your deletions, just press (return) when asked for the next record KEY. You will be returned to the master menu. DISPLAYING A RECORD (by using the 'KEY'). To display a record, press (4) or type "DIS" while viewing the master menu screen. You will be asked "KEY, or #n,+,-,\ ". You should then enter the Key value of the first field in the record to be displayed, or the record number in the file (preceded by a #), or a "+" to display the next record in sequence, or a "-" to display the previous record in sequence, or a "\" to display the last record in the file. PC-File will retrieve and display the record for you, and then prompt you for the next record to be displayed. When you are through displaying records, just press (return) and you will be returned to the master menu screen. FINDING A RECORD. To find a record, press (5) or type "FIN" while viewing the master menu screen. You will be shown a list of all the field names in the database, and asked "FIELD TO SEARCH". You should type in the name of the field which you wish to search on. (You only need to enter as much of the field name as required to uniquely identify the field. PC-File will next prompt you with: '>xxx' scans full field. (slow) Look for:__________ You should now type in the data which you would like to search for. If you precede the data with a ">" character, PC-File will look for an occurrence of that data anywhere in the field. For example, if you type ">mit", records will be returned which have "Smith", or "transmit", or "miter", etc. If you type "mit" (without the ">" in front) records will be retrieved which start out "mit" in the field, such as "miter", "mitten", etc. The second type of search will proceed much faster than the first type, because to do a "full field scan", PC-File must look at every record in the file. To do the second type of search, PC-File can take advantage of its index file for very rapid retrieval. Note that the search is fully "generic": that is, all records will be retrieved when the data field "begins with" the search data. You can, for example, find all records with last names that start with "S", or find all records with zip codes starting with "980". Each record found will be displayed in its entirety, followed by this prompt: "S to stop, or press (enter)". If you want to find more records which match this search criterion, just press (return). The next record will be found and displayed. If you wish to stop searching for this data, type "S" and then push (return). LISTING THE RECORDS. The listing capabilities of PC-File are very powerful indeed. You will be allowed to search for data based on "equal", "unequal", "greater than", or "less than" relationships. The data can be displayed in any format which you specify. And you can list the report on your printer, on your screen, or to disk. To list the records, press (6) or type "LIS" while viewing the master menu. You will be shown the names of all the report formats which you have previously defined and asked "Which format, or press (enter)". If this is the first time you've ever created this particular report format, just press (return). You will be shown all of the field names in this database, and prompted with: "Column=0. Field to List:". You should type in the name of the field which you would like to see first on your report (at the far left). You don't need to type in the whole field name; only enough so that PC-File can uniquely identify it. As you continue to be prompted to enter field names, PC-File will keep you informed, at the bottom of the screen, about the number of print columns which you have used up. If the report will go to your screen, you should not let this number go beyond 132. If the report will go to your printer, you should not let the number go beyond the maximum width of a print line. PC-File will list your fields side by side on the output report, with one space inserted between each field. If you would like some extra spaces to print between each field, you can specify this by responding ">nn" (where nn is the number of spaces to be inserted) when asked for the "Field to list". For example, to cause a field five blanks wide to appear in the output list, reply: >5 . This is also handy for creating new (empty) fields in cloned databases. See the section entitled "Cloning (outputting a new database)". If you would like to have a backspace printed, which will result in printing the two adjacent fields side by side with no space between, enter a "<" when asked for the field to list. Note that some printers can't handle the backspace character. You can enter a "/" instead of a field name at the times when you want a carriage-return/line feed to occur. For mailing-labels, you must cause at least one blank line to appear between each label (a "/" as the only field defined on the last line of the report). When you have entered all of the fields to appear on the listing, just push (return). You will be asked "Save this report format?". Reply "Y" if you will ever want to print this report again, or "N" if this is a one-time-only report. If you replied "Y", you will then be asked "Name for this format:". Just type in a 1 to 8 character name by which you would like to remember this report format. You will next be asked: "List on Printer, Screen, or disk(P,S,D)". Type "P" to get a printed list, or "S" to get the listing on your video screen. If you are "cloning" (creating a new database) or printing to disk, reply "D". See the section on Cloning a new database. If this is not a mailing labels list, you will be asked "Title of Report:". Enter any title up to 99 characters long. You will then be asked "List All records or Selected records (A or S):". If you want to see all the records in your report, answer "A". If you only want to list some of the records, answer "S". In this case, you will be shown all of the field names and asked "Field to Select on:". PC- File wants to know which field will determine whether or not the record will be printed. Enter enough of the field name to uniquely identify it (watching out for upper and lower case). You will then be asked "Compare how? >,<,=,<> ". The field which you have selected will later be compared to some value which you will also later enter. PC-File is asking how it should compare the field to the value. If you will want them to be equal, enter "=". If you will want to see records which have the field less than some value, enter "<". For a "greater than" comparison, enter ">". For "unequal", enter "<>". Now you will be asked for the value which your field will be compared to. PC-File asks: "Compared to value:". Enter the value. Example: To list all records with zip codes greater than "980", you would respond as follows: "Field to select on:" ZIPCODE "Compare how? " > "Compared to value: " 980 If you are using a printer for output, PC-File will now pause with a message to allow you to set up the printer. Now is when PC-File really goes to work for you. Here's a peek at what's going on behind the scene: PC-File will select or reject each record based on your selection criteria. It will automatically print your titles, column headings, and page numbers for a report, or omit them for labels. It will automatically format your output list, sending it to the screen or printer, pausing the screen at the right moments. For labels, it automatically compresses the output lines and data to make nice looking labels. It accumulates final totals for all field names ending with a "#". To stop the listing and abort it early, you may press (Esc) at any point in time. CLONING: (OUTPUTTING A NEW DATABASE). You can create an entirely new database from an existing database. You may want to do this to create a subset of the original database (with less records), or to change the way your database was defined. To do this, press (6) or type "LIS" while viewing the master menu. You will be asked "Which format, or press (enter)". Press (return). You will be shown all the field names in your database and asked "Field to list:". Specify the name of the first field for your new database. You can specify these field names in any sequence you desire, and you do not have to specify all of them. In this manner, you can create a new database with the fields in a different order from their original, and possibly leave some of the data out of the new database. You can also insert blank fields in your new database by replying ">nn" (where nn is the size of the blank field which you would like to insert). This is like specifying an output report format, except that PC-File will not put a blank between each column as it would if it were printing a report. See the section on "Listing The Records". When asked: "List on Printer,Screen,or Disk (P,D,S):", reply "D". When asked "Clone or Report", reply "C". You'll then be asked "Change any field lengths?". If you wish to increase or decrease any field lengths, reply "Y" and follow the prompts. At this time, you will be allowed to specify which disk drive will contain the newly created database. You can put it onto a different drive than the one you are currently using for data, or on the same drive. You will also be asked to specify the name for the new database. Be careful not to give it the same name as some other database already on the output drive. If you do the old one will be deleted. When asked: "List All records or Selected records", reply appropriately. If you reply "A", the new database will contain the same number of records as the original from which it was cloned. If you reply "S", you'll be allowed to specify a selection sequence which will give you a subset of the records in the original database. After your new database has been created, you will be reminded that it must still be sorted before you do anything else with it. This is so that an index can be created for it. You will be returned to the master menu screen, still working with your original database. If you wish to change over to the new database at this time, see the section entitled: "Ending The Program / Changing to a new Database". Don't forget to sort the new database as your first activity with it. SORTING THE DATABASE INDEX. You can cause your records to be placed in a different sequence by using the sort feature. To sort the records, press (7) or type "SOR" while viewing the master menu screen. PC-File will load a special sort program into the computer, print out all the field names, and ask: "Sort field #1:". You should enter the name of the field which you would like to use to sequence the file. (Just enter enough of the name to uniquely identify it.). If the sequence will depend on multiple fields, you should give the name of the most primary field in the sort sequence. You will be allowed to enter up to ten field names in the sort sequence. After each field name, you will be shown the length of the field and asked "Length?". Sometimes you don't have to sort on the full length of the field, and the sort would run more efficiently in these cases. For example, to sort on a last-name field that is 15 characters long, it may be sufficient to sort on only the first 6 characters. You be the judge. Enter any number from 1 to the full length of the field. If you enter nothing, it will default to the number shown. When you have finished identifying all the sequence fields, just push (return). You will then be asked "Ascending or Descending (A or D):". This is your chance to tell whether you want the file to be sorted into ascending or descending sequence based on the sort fields that you specified. The sort will now proceed and keep you informed of its status as it progresses. During the main part of the sort, you will see the message "Sorting xxx Records" and a number appearing centered under that line. The number will decrease by 1 each time it changes. This is an attempt to give you a feeling for how long the sort will take. When the number reaches zero, the sort phase is complete. During the index rebuild, the countdown to 1 may appear several times, because the rebuild phase reinvokes the sort routine once for each 350 records in the file. The sort is quite fast, sorting the full 1500 records in under one minute. However, the index rebuild phase is much slower. You can plan on a total sort/rebuild time of 200 records per minute, average. When the sort is finished, it will reload the main program and take you back to the starting point of PC-File. A technical note for those who are so inclined: The sort is a "Shell" sort and takes place entirely in main memory. The data file itself is not sorted. The Index file, which contains pointers to the data records, is sorted. This permits very large files to be sorted at high speed. The sort program has been defined with a maximum of 1500 records to be sorted. This number is somewhat arbitrary and may be changed in future releases of PC-File as more experience is gained. If you ever run out of memory during the sort, try sorting with a smaller number and size of sort fields. SEEING THE RECORD LAYOUT. To see the record layout as it was originally defined, press (8) or type "LAY" while viewing the master menu. You will be shown a list of all the field names defined for the record, along with the corresponding length defined for each field. Pressing (return) will return you to the menu. ALTERING A FIELD NAME. You can change the name of any field defined in your database. You might want to do this, for example, to change a field from numeric to character, or to shorten the field name. Press (9) or type "NAM" while viewing the master menu screen. You will be shown a list of all the field names and asked "Which Name to Change:". Type the name of the field you wish to change. You will then be asked to "Enter the New Name:". Type the name that you would like to use for the new name of the field. You will then be allowed to change the name of another field, or just press (return) to return to the master menu screen. ENDING THE PROGRAM / CHANGING TO A NEW DATABASE. To end the program and return to the CPM operating system, or to change to a different database, press (0) or type "END" while viewing the master menu. PC-File will ask: "Quit, Change file, or Resume?(Q,C,R)". Answer "Q" if you have completed processing with PC-File. Answer "C" if you would like to keep using PC-File, but wish to process a different database. Answer "R" if you didn't really mean to push (0), in which case you'll be returned to the master menu screen. BACKING UP THE DATABASE. From time to time, it's a good idea to make a backup copy of an important database. In order to back up your PC-File database, use  the "COPY" program provided on your CPM disk. USING PC-FILE DATA WITH MAILMERGE. You can export your files into a format which can be used with Mailmerge or other types of programs which require your fields to be separated by commas. This is handy for keeping a mailing labels database and then printing customized letters to each person on your mailing list. To do this, you must run (from CPM) the program "PCEXPORT". Answer the questions about the input and output drive and the database name. When the program is finished, your new file will have the name "filename.WS". USING PC-FILE DATA WITH OTHER PROGRAMS. PC-File makes an excellent "Front End" program for other systems which you might develop. You can use PC-File to handle the file maintenance functions and concentrate your efforts on the rest of the system. The file "filename.DTA" (where "filename" is the name you gave the database), is the data file which you will want to use. The file is laid out with each field of the record being fixed length (the length that you defined for it) and padded on the right if necessary with blanks. The fields are in the record in the same order in which you defined them. Deleted records which have not been re-used will be totally filled with the "/" (slash) character. There is a carriage return character (HEX 0D) added to the end of each record. The end of the file is marked with a "\" (backslash) in the far left position (Byte 1). All records in the file will be the same length. The sequence of the records in the file is the same sequence in which they were originally entered (ADDed), except that deleted records are re-used when another ADD takes place. The sort program does not resequence the data portion of the database, only the index. You might also consider using PCEXPORT to output your database into Wordstar format before you try to use it. This way, it will be in the most recent sort sequence. IMPORTING OTHER FILES INTO PC-FILE. This section is not for the novice. Please skip it if you don't think of yourself as a programmer. It is possible to use files created by other systems, defining them to PC-File as your own database. To do this: 1. Start up PC-File and define the file as a new file on your system, so that the "filename.HDR" file will be established. If your file contains more than just a carriage-return at the end of each record, you must either remove the extra characters, or account for them in your file definition. Example: text editor programs commonly put a line-feed and a carriage return after each record. You can account for this extra character by giving it a name and a length of 1. 2. Erase "filename.DTA" from your PC-File data disk (it should be empty anyway at this point.) 3. Copy the file to be converted, onto your PC-File  data disk, giving it the name "filename.DTA". 4. Your file must be in fixed-length record format, and contain a "\" (backslash) as the first character in the last record of the file. You may have to use a special program, or an editor program to get your file into this format. 5. Now you have everything that you need except "filename.INX". Create an empty file for this, with a "\" as the only record. Start up PC-File again, specifying your filename as the file you'll be working with. Select the "SORT" option, and sort your file in whatever sequence you desire. Since the sort program builds a fresh index from scratch, you'll have a complete database going for you after you finish the sort. SOME MAXIMUMS AND MINIMUMS. Minimum RAM Memory required.................64K Minimum Disk Drives required..................1 Maximum Disk Drives supported.................2 (Drives A through B, but all the programs must be on one drive, and all the data must be on one drive.) Maximum Field length.........................99 (25 if greater than 18 fields in the record) Minimum Field length..........................1 Maximum Field Name length....................12 Minimum Field Name length.....................1 Maximum Fields per Database..................37 Maximum Record Length.......................254 Maximum Records per Database...............1500 (More, if you don't need to sort.) Maximum Number of Sort Control Fields........10 CALCULATING THE SIZE OF DATABASE DISK STORAGE. You can calculate the amount of disk space your database will consume. The filename.HDR file for each database takes 2K. For the filename.INX file, take the number of fields defined and multiply this by 2. To that answer, add 4. The answer is the number of characters in an index record. Multiply this by the number of records in the file, and round up to the nearest 2048 bytes. For the filename.DTA file, add together the length of each field defined. To that answer, add 1. This gives the number of characters in a data record. Multiply this by the number of records in the file and round up to the nearest 2048 bytes. For each ".RPT" (report specification) file, use 2048 bytes. Adding all these numbers together gives the total disk space required for your database. PC-FILE RELEASE NUMBERS / major ENHANCEMENTS. 8.4 - The first release for the OSBORNE-1. 8.5 - Allow changing field lengths when cloning. 8.6 - Allow a record to be printed on multiple report lines. - Allow ">xxx" (scan full field) on report record selection. SOME FREQUENTLY ASKED QUESTIONS. 1. "How do I delete a database?". Answer: While running under CP/M, type the command "ERA filename.*" (where filename is the name you gave your database when you created it.) 2. "In what language was PC-File written?". Answer: It was written in MBASIC, then compiled using the Microsoft Basic compiler. 3. "Can I obtain the source code?". Answer: No. 4. "What is your update policy?" Answer: I now have too many users to be able to notify you of updates (please accept my apologies). You can mail me a diskette with postage and mailer, or a check for $6, every 6 to 9 months or so, and I will send you the then-current version. If you are not a "contributing" user, please don't do this. Get a copy from a friend. 5. "Are you distributing any other programs?" Answer: Not at this time. 6. "Is there a version of PC-File for the Apple?". Answer: No. It has been adapted to run on the OSBORNE-1, the IBM-PC, and the NORTH STAR ADVANTAGE with CP/M. You must have the appropriate version for these machines. .cp 7 DISCLAIMER. In no event will the Author be liable to you for any damages, including any lost profits, lost savings or other incidental or consequential damages arising out of the use of or inability to use these programs, even if the Author has been advised of the possibility of such damages, or for any claim by any other party. PERMISSION TO COPY. Clubs and other non-profit organizations are granted permission by the author to freely copy this program and share it with their members, so long as: (1) No price is charged for the software or documentation. However, a distribution cost may be charged for the cost of the materials, so long as it is not more than $5 total. (2) Club members are informed of the user-supported concept and encouraged to support it with their donations. (3) The program and documentation are not modified in any way, and are distributed together. THE USER-SUPPORTED CONCEPT. "User-Supported Software" If you are using this program and find it to be of value, your contribution ($35 is suggested) will be appreciated. Jim Button P.O. Box 5786, Dept.OZ Bellevue, WA 98006 Regardless of whether you make a contribution, you are encouraged to copy & share this program. User-supported software is an experiment in distributing computer programs, based on three beliefs: 1. That the quality and utility of software is best assessed by the user on his/her own system. 2. That the creation of personal computer software can and should be supported by the computing community. 3. That copying of programs should be encouraged rather than restricted. Anyone may request a copy of a user-supported program by sending a blank, formatted disk to the author of the program. An addressed, postage-paid return mailer must accompany the disk (no exceptions, please). A copy of the program, with documentation, will be sent by return mail. The program will carry a notice suggesting a contribution to the program's author. Making a contribution is completely voluntary on the part of the user. Free distribution of software and voluntary payment for its use eliminates advertising costs and copy protection schemes. Users can obtain quality software at reduced cost. They can try it out before buying, and do so at their own pace and in the comfort of their own home or office. The best programs will survive, based purely on their quality and usefulness. Please join the experiment. If you believe in these ideals your contribution is solicited to help make them work. For those of you who need an invoice for tax purposes, or to initiate payment from your company accounting system, the invoice on the next page may serve the purpose. .pa ----------------------- INVOICE ----------------------- Purchased from: JIM BUTTON P.O. Box 5786, Dept.OZ Bellevue, WA 98006 PRICE PRICE PRODUCT QTY EACH EXTENDED ------------------- --- ----- -------- "PC-FILE" Database program and documentation 1 $35 $35 -------- TOTAL $35 --------------- PAY THIS AMOUNT --------------- Make check payable to: JIM BUTTON You may retain this Invoice for your tax records. ing system, the invoice on the next page may serve the purpose. .pa ----------------------- INVOICE ----------------------- Purchased from: JIM BUTTON P.O. Box 5786, De+"6# x+:`i* ">"/##~>;+> 6*s#r w+͊1>2 u+#w+>36*s#rw+6*xDM"+ڍ+s#r#À+! æ+>2:*ã+6*x+Á*~#ʽ+#~+ҽ+~+x 6*s#r!Å v ʹ!u!"u W !W ! W!"*|/g}/o"!i!ͥ!W|!W!-ʹ!!i!ͥ!W|!W!`"*|)*+W!͕.!!!z!ͽ.!Ui!ͥ!W|!W!Q͕.!!!! !ͽ.!!U)|!!!i!ͥ!-!M*)*s#r!W**"*)i*s#r*#"*#"*|)o!)*+"*T]##"!I͕.!!!B*ͽ.!8*`!I͕.!!!;*#ͽ.!8*#`!/!W!7y!3!-"*/!W!"*"!Y*)i^#V*JW*)i^#V*"*)^#V|G!5!+6ͩDM!JW8U!W*#"**z|m}|mÄ!)ʹ!+!!!!! ! !*!J!*+"*|)Ҹ*W!L! !! **zz%{z5!L! !L!**zzZ{zj!L! !L!!"!*!J"*|ګ)?go*|ڽ)go|g}o|*u*͡*#"**z|}|ҋ!" ,  SUCCESSFULLY CREATED.FILE 6/:\>.DTAE.INXLRP#TO"XWhich drive for output file (A,B):}.HDR:I.Database name::*.HDR#Which drive has the database (A,B):WS ".#7(F2F<XAXxj}|l$;iiiiohz@JOTr |<Ktyb&0:8UDqNmvXyv$.58=II jmyy|v[[[[ BASLIB #000000 5.30 - OWNED BY MICROSOFT, 1980 Ò "#̓3\DM*"n* ##"l| >2 2 *^#V" ##^#V"  2 ! !!"" !h "e 6#6P>2l >2k >2j ͉ " ͌ "  _~Z= ' 6* >L>L!N#F*v=~#fo##^#VX!~#fo"!9"3 ͛ ! ͛ ʟ ! v !8 !R"q !O"s ͛ | > 4 6#s#r#= >2- >20 >2/ 22 !& "? !$\"5 >&27 ͫ }6#} |  STO  ͑ *? .. . ........m*M | :J Œ *H |ʌ ͒ ͛  s#r͛  { w#6"K *3 *H >2J  !9N#F͛ ~#~ ~+ ~#~ +^#V###â ###â | ~#fo!  Internal Error - No Line Number & ͛ ~#s  at line͒ & Ñ >Z  at address|}Ñ > }4> }4~#* 5~#fo>!9") !ò *) ͸ "+ ! *+ ͑ ! ~< = #~# #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 Erro|4 ͮ }"/q2n2`i"= !"U !r"W N ,͆)8y ͤ*16*/6*-6*+6H̀ */6H̀ ͍*16*/6 ,Z͆~#Wx;HͿ !>? ͆,;Zͱ+i –†"«G{,x«PXͱ+!2Oz"y  O{,yXͱ+ { ,> Xͱ+Ұ" ,ͱ+, ,, $ͱ+, ,*= ( 4:u R{,R6!2,O R+~ F#6!2ɷw#-w+! N#"g!9"b"dy2f*= |ʋ*U !u"M A~#*25:u «~u0½y ̀ "2ͤ*16*/6*-6*+6*/6͍*16*/6*25#~#"2,ʓ u:u uÓ~u!"M ~,";#"~OO# >u"U#"2x"j j+~ _y;?Redo from Start *bm!*g:fOÒ*d+~+ +w ++~#foZ"d!f5*b~2#~#^#V++c͚2 :2ͮ *= |.!2,;Z*W ^#V2#<2=~#foG3##~#fo~0<#####~#~<<^#Vs#r<i<i"*##s#rq#p !#'()+,-.06#~6+ͮ }"/q2n2! ~#fo"4! "6ͮ |4 *4}o|gڃ2"4*6"6#s#r++sͮ ͮ ͮ ͮ ͮ ͮ ͮ ͮ gͮ ðͮ ðͮ ðͮ gð/6+6"/6&H~# x2X:` ͧVN",<~O3#CN"~R 3#Y>2X:` F#~#foxͧ͞ʕ~#3É͞cͧ>"3G:d xͧʑ4*e +~<=###~*[ Ñ4!R*a *e ~=/<=> 3ͧ>,3W*e #^ 82+=2:h =2͑4z{J{_<ͮ |†}"/en2`i"= ++"e !"[ !"Y 2` Ϳ 4 W*1}o|gҮ> 3+|£Ñ4!h "e !"= 2` !c ~6#w~!NͿ i&?  2u ͮ ͮ ͮ 4OͰ4|4 ͮ Fͮ O,f:u ʜ! Ͳ8X:s:u ʟ! ::16216:26һ:26“Õ|/g}/oX::26!26»!Ϳ 1 :26goW*06|7g:/6+>|/g}/o!G| o& Gȯ|g}o'>4~+~?~?+#L+ Lͮ Ԕ~##++>!5+V+^+ʇ+r+s-ͮ Z~L,"; ""*|4 }4 4 +<{*~#^#V`i#N#F !5*cͮ 4 cc~#~#fo!5ͮ |4 BKRPYͮ |4 BK C o_&ͮ z4 zZ `_fo}`iLcDMͮ |4 !9>;R$,NN,1)ͮ "/6>øͮ /6>òͮ +6>!52X>!ͽ4N">Ͱ4~#x;>>>>>> ~#fo##GN=y=#~#fo~#foF#< , yFy<.P)P)ccUix4 űt y<2_F~ھھ#~#foy5O #~#fox²#¡!_4 ž2_cc*_&~co&~4 #^#V++co&~4 #~#fo~#foc/6>+6>=/#~#fo!5c4 ͮ ~<4 ~#~#fo!56+͜'y ͤcc2!rux{~>*++=>œ2*_!i4¯5*j"j~#N#F# 5òyx ò+++6@#yw#xw+++6###!i~6ï_*j#~#~үͿ + !*l"j~#^#V#\;5"|G"++~_w#~Ww#"*lDM~#^#V#ڹyh+zĖ+{Ė##{z~#q#p_hy®x®DMh~#®hYP+++"j6@###{_zW+r+sɷ*p|Ϳ . ͟^#V+"pw#s#r+++r+s##!*{z*?*}|~# 0yGx!5Gx#N#F& D-**/5ʒfʌ-###s͸ during G.C. & ͸ &  Internal Error - String Space Corrup#N#F*lyx(*nyx(++`i+V+^/5­##6+6+~6  >@++*p"ps#r+_*j#~_#~WVͿ : r+s##6"n###!p~#foz/5j<*l"j*n}o|g6@#s#r#6"n**"p}w>#w##/5¥++6+6r!8 4!9"3 ^#V#!8 ~w !9"3 ɧ~}4#=~}4#G~## ++#0:.}4;?!"9?!=:=+H9>!"7>!=:=\HͶ'*/6}/o|/g#"/6|ͱ<À!16~wɯ226Ͷ'X:ͱ*/6ͱ<Ͷ'8:>>V ~ #ö O!56>!56+62# !56ò8!56ͻI6>>>|}+!q ú7̓E=+6!16>92*6!m m;!i ú7!56ú7~_#~W#~O͏>:!:':ͫx{r>!366R=wg>>Ö>ÿ:XGw#¿!56/6Ͷ'+6Ͷ'*/6||<Ͷ'*/6 !6'͔ H:16216:26ғ(͕:262 7 = |/g}/oQ !(:26Z ͕"/6>2XNajP L}͈ͮ~(>21`hQ ~&'-ʨ +ʨ +͜'ڏ!.5!eʺ E ͜'l L q Q :X > ~%B!#S!!T!d D!]!͜''͜'"!_{_l!|!!_Ͷ'!]Z Ͷ' !]!è ͜'!]!!]!͜'!̍ĤͶ'*=Ͷ'$DG""+6`i"-6#~+u#-L#0OxGu##~3#`xEj#y #>23z#|#b##"+6`i"-6x#W͉%:3#ò##Ҷ#(&60̍O&+~0#.č#Ͷ'>"w#6+#6-/</ #:#p#w#6!5#z~$% &z%&{=%͇"-$p#6!4#:Y~ 2$*2$+F$͜'-+_:5 {0v$#͜'v$++wl$3$v$6%"%ʚ$>'$N"+6%N$Ͳĉ%$_x%&O& &;&$_yz!$|!${_x$%&%%y?&O%GOO&%*Y=%P#$͛ѯ(%Ͳ7ĉ%yz!OzWO|!H%V%/< ;&/>x&>p#=o&!+6uë&H>͕x'?;&̓/{_#zW#yO++ҿ&6#xp#ڱ&>&'>;&N#F#*/6/}o|g'"/6p#=&;&w1_cƤ~@zZrN vH Tʚ;@B''d #~: ʜ' ʜ' ʜ'0?<=:X'7-++͜'Y(O'H'+''Q H##('Ϳ 1 M!( (}0?)))صo(M!5(3(}Y(0? K(? ))))صo5(a{ Ͷ':26:16B:12221Ϳ 1 Ϳ 1 i~:f~R6{yN!i~¦RO+~+’R!¥R͸QQyP͡P+6+qR:hO!h>UT2amT!b~5#R!xR>)w)R w=R|GSyS|GzQQdPͮ }"/q2n2!' ~ʐ) ʐ)#~…)`il+f)>O #~goPY!' ůw͠+: f.ʌ2=ʆ2=)ѯw2<ʌ2!% ^#Vr+sͮ }.!"L)}"/* PY*!*`i>h*!' ~ě)͠+/ͮ }"/q2!&7*! ~+ngͮ }"/q2! n&*= ~k2ʀ1DM'~̘)4N#V pʌ*zw w+s#r#6#6DM: ʷ*!" s#r#6*! {zV*(w<*<ʌ2!! {w:[2 +l+!! ~(!) *+͘)*+b2~#-+*= ~ʮ1( ~W++~#5O ~+~c+i+9+7>*= T]% N#F+q#p###6 +͠+: f.>™+>w+w!(7+7?*= ' 6#67~ʉ2#^#fk_+N#~:+++@ʉ2y@ډ2҉2)) #>,~.,*,7,#,25)cz ʉ2ډ2> *,,> C,,ͮ +())<ʀ2!)))> !5+:))!)2)) !566͠+~6-<ʌ2K-.͸3 .:h W:i F.> ͸3͸3ܵ3)).~*6?# ^.O!!4~.#4~.#4y"“.ʌ2><"J)>2C !1"D :A <2A *? "N)!."? ͮ "L)͞,*Q |.##n)..)*N)ͮ .ͮ 2P)0"Q)0ͮ /ͮ 2P)0"Q)0q2!)҄0)#Å0))ғ0 Ғ0#=z0}_}la)ڏ2Ҫ0#x2"/! "/!) "/!}o|g\20bk:/1\20<1DM*/*/s1"/PY;1}o|g*/#"/¼0<1DM*/*/s1"/PY12[2*/! ~#fo\2s#rb1:[2o1!o1!& Ó*~# xt1DM1ʃ21! w!( V6 ʩ1zw1ʃ21! ~!1! ^#V! s#rDM11\2}"/q21n2`i"= ! 2"F 92ͱ+Ϳ !>? ͮ |4 ,32-:C q2*D ! "F {f$%W2!P2*F B2<|}!"= >6>4>?>=>:>7>5>2>3>@>C>Ϳ o&? !"= !2"2ì2:½2?ý2p32:3>\232ʼ2͸3+2~͸32+͸32͸3͵3!22333O2:33>\͸323yʂ3̻37 ʩ3 ʂ3 <3ʽ2Â3̻3ʽ2Z3ʽ2͸3> ͸3>2d3>#2}36͵3!232 2x<>ʍ3yq#͸3 2> ͸33ʚ3 23:̵3w8Ñ }4>^͸3@͸3͵3~ 3> ͸3͸3#3 b*e 4#~+<3=ܑ4 h4k4 44+~#<@4=d4 o4 :m G=4 04:B Y4<2B *? "3!4"? o4 *Y 654> 3~=o4*e !h "e 3"e > 3> 3:k =ʬ4>  >  *3!/64!+64/64+64w#w#w#w#g º^4>+64>/64 ~#=4!4#~ 5 5Ʌo$ɧGw#%5{z_!m4g>{f>?͗f*_!m4g\L>{f !mw>e&Q_&Q_& 2m2m|e͆f>͑f>2{f!m4 2m2m og DM  o g DM  o g ++!_5>"{#*_q#p#"__ t!_4*_+F+N"_*_|_*"_ >_>"!_"f!"_*mV#͑e6#=6m:<6x6͖>O}6!>!16y#u6+h6͖>?Þ>a7f>8:Ö6a7/:D7!56m:7:26ʖ>:<6/N992*6:+6b9͖>x/+6p:!+6m:!56Ä::!:!<6~7!26>F+N+=7!56Õ7!+6>q#p#=˜7!+6ú7"c5͌7{7g7*c5m:M>:26M>!;6N#FQ<9q7G)9':x 77b9!16:7j0 TeB׳]h!I.k a7f>8:>8a7/:!56ú7!26q#~++w+qY8Ö>DNn"~`35zr1{r1h!Im:ʖ>yO2;6ø8m:ʖ>:26D78/:;6OE=G246!;69:462*6x!56+6I92994'::*69!36~++wÖ>!+64#94D8+6!56+6# 29ɯ# ?9?9b9/!*6Oyw#Z9G:16‹9!*6Vwz# p9xc9M>!*6͞99x9!26wM>9~w#  9a7f>8:ÿ9a7/:!56ò8a7f>8:9a7/:D7!56â8y2;6!16j5~q+9q:NsY+:9 W~w+::!16:<8:f>!+6w#>:Ö>O:}̈́:X:Ê:̈́:E=!.6F#^#V#N->͊:}56~#r:G++NyÞ>+6p:!/6f>>:ҟ:͏>:}>:!366R=g>>|.=!>™:akf>:q<:Ö>!26~+>wÖ><:͇>ʖ>:26o>;/<<=Җ>E=g>!/6@;~_#~W#~O->#4>.>->G~_#~W#~O(=o=<];͇>ʖ>>O:=͖>ȯGQ<"6y26Fo3=<=!D*/6:16Oҭ;264>;;g.*6:6OzҮ;;g.*/6:16û;x<=;{_zWxG)yOHG-><;͇>r>͖>QwE=w+ɷ>M>}>x{r>!366R=wg>|?>{>226o=/!>͖>y/!16~<#~+~+~+~LUX)!"26(=o=Z=<<=z=zB =|G|| =ͦ> =O_yW!36~/woG}_}W}OZ=r>!16~7w?##wy7O*/6*16"16"/6ajSXͶ=M>JS\E!26M>/!6~©=x8ž=G@G>Î==>=x|====ejSX==ch|={_zW}o|g=" 6" 6x! 6~w#>>>5>J!26qx!26?>F#~怩Oo> 4 >go"/6"16}>s#r#q#pÏ>͇>r>͏>"/6`i"16*/6*16DM^#V#N#F#xyÞ>:26:167|/G}/O!>> >7>{_zW}o|g=·>|g}o>CZQ> o-yOzW{_xG>/66o>;/<<=Җ>E=g>!/6@;~_#~W#~O->#4>.>->G~_#~W#~O(=o=<];͇>ʖ>>O:=͖>ȯGQ<"6y26Fo3=<=!D*/6:16Oҭ;264>;;g.*6:6OzҮ;;g.*/6:16û;x<=;{_zWxG)yOHG-><;͇>r>͖>QwE=w+ɷ>M>}>x{r>!366R=wg>|?>{>226o=/!>͖>y/!16~<#~+~+~+~LUX)!"26(=o=Z=<<=z=zK +"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 H#..~.+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:3Oý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>wlq#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##^#VOPCSORT REL((PCSORT PRNPCSORT BAS//PCSORT BASRELCRFPRN1HF )`zHɪq Hi)qzHxHH h1H>1Hv *1 H0 h*hQJH`  F1JH`* 1ZHɈ1H 1@Hd(pzbJ 1PHHWLSET XN$=MID$(X$,3) 1940 PUT#2,CVI(LEFT$(X$,2)) 1950 NEXT N 1960 BP=0 1970 RETURN 2099 '............... 2100 ' 2110 RETURN 6100 '............. CLEAR SCREEN ................ 6110 PRINT CHR$(26); 6120 RETURN 6200 '............. LOCATE(RR,CC) ............... 6210 PRINT CHR$(27)+"="+CHR$(RR+31)+CHR$(CC+31); 6220 CC=1 6230 RETURN  6200 '............. LOCATE(RR,CC) .....Y THE BUFFER *************** 1900 M=BP:GOSUB 190 'SORT THE BUFFER 1910 FOR N=1 TO BP 'WRITE ALL BUFFER 1920 X$=KY$(N) 1930 P =PCSORT/O JC?Command error?File not found?Can't enter file~G#C!CC!CC!CCoDCOMSCNC"">C2D:DG:DO*.(D# D2D (DD2C>2!~6~>2*+++"y=*">:=2|=*y=*G:?C oD2=2=2=2=2=2=2=<2=2=Ců2x=E.>E#> »D>2x=!=E> 2#>2+>2">y,2=D:x=2=E4>:=D1>E#>:">2~= 2}=E:x=@2x=!=Ey=7E 7`"E">7E 7!=E:x=!=ܬE!=:=gE=1>> =]EܬE:=|E:}=|E:~=2= _2aHHH*y=##:=2|=G"> ~EEw# ¼E #üE w#E:{=!+>~ Ew#E G:7>FxEͶGOx=y:F[A@2"> Gx 'F #>ʃFͶG.FTSFͶGT7ͶGY7FLmFͶGS7ͶGT7>FR7ͶGD7R7>F> ڔF6 #=Fy.2{= G+>xڬFʹFͶGíFy/yͶGLF2=ͶGOú FFF!F#LF7~~!F#wE@4BX`ZNDSCT"OͶG['G0'GA#G:'G GO!~6GYG#~ BG4G>Cx+#SG~HG2=yG2=:|=lGG>*G =C> G:>C!?C"Co>g6 #> w:|=µG!?C~ ʴGaڰGҰGAw#ÝG~# ʶG ʶG G#"C_*C+~ #*G#"C+~7ȷ> G> G;?!"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:===+!_ á.i.7 K 90!^"c!"e!"g͑$} ;"! *)^#V))#"G *G s#r*)^#Vw==*w=0*)s#r!"*"! "!",͚;*9*)^#V"*"*!*=i͇?*og"**}o|gø!*=i!A!**=i*=iͺ?**"*)!*)x!!*|x!x!**=iͺ?*#"**z|"}|J!*+"*|")!! "! ",͚;!V.9,! ",͚;!E.9*"!æ"*|m"*"~"**}o|g#"*=i!ͯ@ͅB)*s#r*#"**z|"}|\"!>.i@ V*"*c"*=iZ.ͺ?*#"**z|#}|"!:.W!>.i@*9W!9*@9*"!$*͊W*)^#V"!Z.͇?*"!×#*) ^#V!@!V.i@!͚@i@͇?*#"**z|#}|e#*ͬAi@͇?* #" * =i*ͬA!i@ͺ?* *czz#{z#x,*#"**z|$}|8#* |*$*$x,!6.9@*#nW!QR!2.W'.!9W,;!2;!ͯ9* ogͦ9*ͦ9* 9!QR͚;!.9! .E/!QR!.W'.!9W`i͡4I6!ͅ7! ͅ7!ͅ7! ͅ7!QR* |/g}/o" !.W!-i@!9W!Q|/g}/o|k%!͡4! 7*#"*=6 ͺ?* #*) s#r!͡4I6*)ͅ7*)^#V* " $!QR!TF,*" !ý%*}=##"*==#",͚;*=69*#"** z|%}|҆%!'* XA-i@!-i@ ͇? !-͇?! " ) !Z.B'* "e*" !Z&*="G 6! dB͚@! AV&*G 6 ͇?Í&*#"** z|n&}|#& !-͇?͚;!XA!-i@ ͇?! Bp>" !-͇?!" ) !Z.Bn'! Bp>"*|{')go* ) ^#V>*zz'{zgo|g}o|'* ) ^#V>*>s#r* #" * |')%* +" * |')%, !-͇? !-͇?!e" )* " !-A+(* "!:.W!-i@* #9W!9* @9,! ",͚;!q-9*g" !Á)*͊W !Z.͇?!͚@!6.B)* "# !G)*) ^#V"G  ^#V>*G @ ͇?*) ^#V|(4)! dB!) !ͯ@!V.A4)! dB+ ͚@V.i@ ͇?*+"*|1))( ! i@ ͇?*#"**# z|[)}|Ҧ(*=i*ͬA i@ͺ?*#"** z|)}|v( !]-͇?)=$*+",! ",͚;!S-ͯ9*ͦ9!I-9*" !7-i@ ͇?*!",͚;! ͯ91* !% ͇?!",͚;!2.2.*^#V".##^#V". 2.!.!!"".!+0"(06#6P>2/0>2.0>2-0ͥ.>/ͨ.>/5/_q2HTY/!Q6C#6O#6M!\>!^Q!\> ͩ]IWQ\Aͩ]./ʣ/otØ/!#&\ѷ!>/ *OUT OF MEMORY* $E`NĉQLSŠRRO҂RRDIԖRASŕXOOҊIELfILEӎIRŧOSUWOTXEυE/>0>!9"/^2 !Ϳ0^2b0!Ϳ090!/Ϳ0!R"40!O"60^2|ʓ0> 06#s#r#=ˆ0>2/>2/>2/2/!B/"0!$\"/>&2/.F6#}¼0|¼0rF STO10T2*0.. . .......!.D*0|0: 0O1* 0|O1U1^2  s#r^2  {ͭ2w#6"0*/* 0>2 0ͮ20!9N#F^2~#~҇1~+ʍ1~#~ڇ1+^#V###e1###e1|ʙ1~#fo!1rF Internal Error - No Line Number B/^2~#62rF at lineU11T2>2<2212<20\21}_|W!,2ͤ]~#fo>rF at address|͖F}͖FT2> \> \~#*m2ͤ]~#foK g!9"/!u2*/{2"/!2*/T2!2~<2=2#~#2ô2#xFSyntax 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 Erroq2/!4>ʛ4!/w>D|0q2}͞WZʽ4Z`i"0!4"0!R5"0.5 ,f5 55H G*^*^*^*^(5HnH*^(5H G*^*^ 4,Zf5~#75xD(5͂2!>1f5;DD͊?-TI5 v5f5"‹5G{,x‹5PX-T5!8Oz"y5 5 5O{,y86-T5 5{ 5,> 555586-TҐ5"5 6-T 6 5, 6 6-T 6 6*0( 4:8026{,266!8;DO 26+~ &6#6!8ɷw# 6##`N#"G6!9"B6"D6y2F6*0|k6*0!U7"0A~#*9͘]:80‹6~U776Hà6H"966 G*^*^*^*^6nH*^6 G*^*^*9͘]7~#"9,s6 U7:80U7s6~U7!"0~,"7#"~/7/7# 7U7"57#"9x"J7 J7+~ ?7yD6rF?Redo from Start *B6D!77*G6:F6Or6*D6+~+ʰ7ʢ7ʢ7 +w ¤7û7++~#fo͊?"D6!F65*B6a~27#~#^#VdF++D[0:8q2*0|8!8;DD͊?*0!#~+2b!p`*b~]T##b\b6p`W}Gz!bwObAd"bb*bs`b{#>!mmN#F#xʆb {#{#{#=db *m^i~ڨb66|©b>nc:ҏ_x_:ʏ_x_: ʏ_x_:@ʏ_x_*m#~xq2}͞WZZ! ~#fo"9! "9q2|0*9}o|gZ"9*9"9uE#s#r++sq29:q29:q29:q2Ͳ9:q29:q29:q29:q2G::q29Ð:q29Ð:q29Ð:q2G:Ð:^9^9"^:H~# 9x2F:#0·:͇:6:J;D<:~/:e\##::J~2: e\#9:>2F:#0·:F#~#fox͇::~:u:~#e\i:~:D͇:>"e\G:'0x͇: ]*(0+~<ʳ:=ʳ:###~³:*0 ]!2:*$0*(0~=:/<::=:> e\͇:>,e\W*(0#^ ;;+=;:+0=; ]z{*;{_;>2&0q2|l;}͞WK;Z`i"0++"(0!w;"0!r;"02#0Ͱ;͂20RVZ}o|gҔ;> e\+|‰; ]!+0"(0!"02#0Ͱ;!&0~6#w~!;̈́FN;͂2i&1 ͌2 gdd<̀<͆<d<̀<͆E=>E=>E=>E=>E=>^#=^S=^= GM?r=~#fot=##͌2ae^#V#q2͝=q2͝=q2zʷ=|ʷ=|́ee^#VÅ=^#V#q2=q2́eq2=^#V=^#V#>e|!>|)gq2m]>8]|0q2v>q2>\>>:80>!2:abã>:80>!2̀c:^2^:^>>:^>>|/g}/ob:^>!^>M?>!͂20:^goW*^|7g?:^?+> ?|/g}/o)?!>?G|:?1?o& Gȯ|g}oA?W?>d?~+~?~o?+#|?+ |?q2ͧD?~##++uE>ͩ]+V+^+ʷ?+r+sͿEq2͊?~Djj"?"?*?|0}0 0+DV q2"^>Aq2^>yAq2^>ͩ]2F>!PAE]J>PA8]~#›AxD>"A!AþA>þA>q2D>A>A>A>A>A>B!+>B>B>B>B>B>BB~#fo##GNBByBB#~#fo~#foKB#AB 1B yKBy<.UB)UB)DD~Do&~0#^#V++Do&~0#~#fo~#foD^>êB^>=B#~#foͩ]D0q2~<0eD~#~#foͩ]6+PH GDDGTJCC C CCCCJCCC"C%C(C+CE.C_!B4AC5*B"B~#N#F#ځC[C ͤ]DCyxfC DC+++6@#yw#xw+++6###!B~6ڒCͧCACC*B#~#~AC͂20!*B"B~#^#V#CCͤ]ôC|CôC++~_w#~Ww#ôCͧC*BDM~#^#V#KD DC+z(E+{(E##{z~#q#p_Cy@Dx@DDMC~#@DCYP+++"B6@###{_zW+r+sɷʚD*C|xD͂201C^#V+"Cw#s#r+++r+s##!DD*PF{z*RF?ҼD}|~# DyGeDxͩ]GeDx#N#F& DͧDuEÿE"*PF*RFͷ]$EEEuEͿE###EJErF during G.C. B/JErF B/rF Internal Error - String Space Corrup#N#F*ByxںE*CyxҺE++`i+V+^ͷ]?E##6+6+~6  >@++*C"Cs#r+C*B#~_#~WE͂20r+s##6"C###!C~#fo Fͷ]E<*B"B*C}o|g6@#s#r#6"C*RF*PF"C}w>#w##ͷ]7F++6+6C1C|0}0!,0wɧ~\#=fFxF~\#xFG~#ʔF#†F++͟F0:ڪF\{?)Ӏgoz ?2PF*^}/o|/g#"^|-GaeF!^~wɯ2^2PGb-G*^-Gae2PGb>>H~*/#2G*/F!^PG>!^^2WG# VG!^:a!^7H^>>yG>|}+!HB`Ge+6!^>̓b2^!Hc!HB`!^B`~_#~W#~O2gÃc!OÀc3eGɇ<o&-Gae*^*^H"^`i"^!^^#V#N#F#!HÁd gx{g!^6ewg>}g9g;H:FGw#;H6HPH!^7H^2P^2P.H*^||<2P*^HJH!ODH`GGÍHG:^2^:^QH:^®HóHH|/g}/oH!Q:^HH"^>2FGajH L}G*GP>2F`hH~&MP-$I+$I+P J.ʱIe6IE`IPlNILNIqNIQ_I:FyI>yI~%ʾI#I!IdyIDIIPCPP~JI_{_II”IF2P!GH2P II$IP!G!nHÐIIPÐI G G2P HG=2PGGJ"^$IyG7`Jt$G]J HsJ8J'GͦGJHG'G`G8JGGþG{ ҍJ0_ÃIJ!^2PJ:^èJyJ:^J:^J:^/JQUKJ6+\HJ6-F#60:FW:FzLrL^KcO!FF :F_ Kx* K{ KAqP@KE@KD@K0 K, K.CK+60{NK+:/w{+p2F!F6 G*^*^2F LE~ʪK:ҊK0ڊK #~{K>DGyK"^`i"^#~+K-K0OxGK#~¯K`xEKy ҚK>2FK|ҚKKÚK"^`i"^G#WN:F$L.L2L2LͤN60 HN+~0AL. HsL2P>"w#6+dL6-/</ fL:#p#w#6!F#zLڗM͜NzxNcO{́G=xNKʩLp#6!F#:F~ ʮL*ʮL+LP-+_:/{0L#PL++wLïLL6%ڞMMOfG$MJ+6%G M.HNIM_xxN͏NNĈNķNÖL_yITMIVM{_xrMxN͏NÃMxNyͻNOxNGONŽM*F=xNPßLGѯʤM.H7NyIOzWOIMM/<NCOGDNOfGWNI,NI[N2PmNt#GsNOfGON=60#yNˆNͷN60#=ÄN{ ͷN/>MGN>MGp#=N!^G'OG>HGP?ͷNG/{_#zW#yO++;OͲG#Gp#-O>iOP>ͷNN#F#*^/}o|g|O"^p#=iOͷNw1_cƤ~@zZrN vH Tʚ;@B''d #~: P P P0?<=:F?P7-++PPO^PH^P+jPsPHH#ʟPyP͂20M!͋PډP}0?)))صoËPM!ͱPگP}P0? P? ))))صoñPa{ nH2P:^:^þG:F2F2F͂20͂20+#z{~*++"t2v|:{~E"#{>È~ ͩ~ ||:z{5|2v!t{"tͩ~ͩ~:ao{>2aͩ~o{/OBSLI*c|ʏ{>"{f>Yfti}]} |*F|q2}͞WZZ!' ~ R  R#~R`iSQ>O #~goPY!' ůwT:.V[=[=@RѯZ<[!% ^#Vr+sq2}IW!"Q}͞WʕR PY‹R!R`i>R!' ~RT*0T]% N#F+q#p###6 ST:.V>T>w+w!(ͳS7?*0' 6#67~[#^#fk_eTN#~:iT++@[y@[[Q #T~.“TͦT7T#€T2QDz [[> æTʚT> ¿TÚTq2HTQQ ͩ]HT:Q!Q [Q ͩ]66T~²U<[U.4\ “V:+0 W:,0V> 4\4\1\QƒV~*6?# VO!!4V#4V#4y"W[><"Q>20!eZ"0:0<20*0"Q!]W"0q2"QU*0|[W##nYRJW.TR*Qq2rWq22QšX"QÚXq2ÎWq22Q›X"QÛXZ!)Y)#Y#))Y Y#=X}_}la) [&Y#x ["qX! "sX!) "uX!}o|gZUYbk:wXʛYZjY͸YDM*uX*sXY"sXPYͷY}o|g*qX#"qX8Y͸YDM*sX*uXY"sXPYÀY2Z*qX! ~#foZs#rY:ZY!Y!& S~# xYDMXZZMZ! w!( V6 %ZzwVZZMZ! ~!HZ! ^#V! s#rDMEZ?ZZ}͞WZxZZ`i"0!Z" 0õZ-T͂2!>1q2|0,ʯZ-:0Z*0!!/" 0{eDf$%Z!Z* 0þZ|}!"0>6>4>?>=>:>7>5>2>3>@>C>͂2o&1͌2!"0!8"9([:79[rF?9[p_\m[:0\>\20\S[8[4\+g[~4\{[+4\{[4\1\!820\~[_\O?[:0\ʔ[>\4\20\y[7\7 %\ [ ¸[9[[7\9[[9[4\> 4\>`[[>#g[[61\!8I\{[ {[x<> \yq#4\ {[> 4\_\\ {[~[:71\wT2\>^4\@4\1\~ X\> 4\4\#I\!/*(0 |\#~+<{\= ] \\ ڍ\4+~#<ʼ\=\ \*/ :00Gʹ\*/ì\:0\<20*0"c\!]"0 \1/*0654> e\~=\*(0!+0"(0e\"(0> e\> e\:.0=(]> 1/> 1/*c\^#V#8]ɷ!^T]!^O]^T]^T]w#w#w#w#z]>^À]>^e] ~#=„]!e]#~ ʗ] ʗ]Ʌo$ɧGw#­]{z6#^b^_9gO_!Ag!^y#^+^9g?Ag_ gb__ͷb_!^bʊ_:^9g:^/N̓ba2^:^a9gx/F+N+= `!^`!^>q#p#= `!^B`"]``_*]bf:^f!^N#Fdlbq`Gܱaͯbx h`_`a!^͋bw`j0 TeB׳]h!I.k _ gb`_ͷb!^B`͹;!^q#~++w+q`9gDNn"~`35zr1{r1h!Ib9gyO2^@ab9g:^_Ra/<_99g:^OeG2^!^̓b:^2^x!^^aͺa҉a4ͯb:^a!^~++w9g!^4#¢a4`+6!^^# ºaɯ# aaa/!^Oyw#aG:^b!^Vwz# axaf!^&b bxʉa!^wfÉa~w# (b_ gbGb_ͷb!^:a_ gbcb_ͷb_!^*ay2^!^]~q+ybqښbNsY+bÅb W~w+¤bÝb!^ábaeb g!^w#b9gb} cbc ce!^F#^#V#Nfc}^~#bG++NyAg^b!^ g>Oc'c͹;2g]c gKc!^6eg>}g|Զe!>!cak glcdlc9g!^~+>w9gseÃc*g9g:^gҖc/OÆcsec*gʤe9gȯGd"^y2^Foͻee!D*^:^O5d^4ʿfMd]dg.*^:^Oz6d]dg.*^:^Cdx<=td{_zWxG)yOHGfseÄd*gg9gdy+F+F+Fw`h|dgyҵd:^O|g}oxG-|©d}¤dfElaOãd!^~Gxdƀfwew+ɷff gx{g!^6ewgeze >}g|f{>2^f/))e =e!^~7w?##wy7O*^*^"^"^ajSXYffJS\E!^f/dg cg7>{_zW}o|g=Zg|g}oڌgCZQg o-yOzW{_xGÏg^*^DM^#V#N#F#xyAg:^:^7|/G}/O!>dg cg7>{_zW}o|g=Zg|g}o֐Gd"^y2^Foͻee!D*^:^O5d^4ʿfMd]dg.*^:^Oz6d]dg.*^:^Cdx<=td{_zWxG)yOHGfseÄd*gg9gdy+F+F+Fw`h|dgyҵd:^O|g}oxG-|©d}¤dfElaOãd!^~Gxdƀfwew+ɷff gx{10 CLEAR 20 PRINT CHR$(26) 30 PRINT" REFORMAT.BAS by Gobind Singh Khalsa":PRINT 40 PRINT"Is a program to reformat disk data files 50 PRINT" more to your liking..." 60 PRINT 70 PRINT"It is assumed that:" 80 PRINT" Records are separated by a CR/LF combination, and" 90 PRINT" fields within each record are delimited by commas" 100 PRINT" and there are the same number of fields in each 110 PRINT" record. " 120 PRINT"Things get done in the following order:" 130 PRINT" Drop preceeding & trailing" 140 PRINT" Find & Replace" 150 PRINT" Add preceeding & trailing" 160 PRINT" Adjust field length & truncate" 170 PRINT 180 PRINT" Find = will find all characters" 190 PRINT" Replace = DeletE will delete the field" 200 PRINT" Add Preceeding or Trailing = ";CHR$(34);",";CHR$(34);" will add a field" 210 PRINT:PRINT 220 INPUT"Hit to continue ";N 230 PRINT CHR$(26) 240 A$="":B$="":C$="":D$="":E$="":F$="":G$="":H$="":I$="":J$="":Z$="":Q$="" 250 DD$="":FF$="":LL$="$N":L$="":MM$="":OK$="NNN" 260 M=0:MM=0 270 PRINT"What is the full name of the file you wish 280 INPUT"to re-format ";A$:PRINT 290 INPUT"How many fields per record ";NN 300 INPUT"Modify only field # ";M 310 M=ABS(M):IF M>NN THEN GOTO 290 320 IF M<1 THEN GOTO 370 330 INPUT"Only if field # ";MM 340 MM=ABS(MM):IF MM>M THEN GOTO 290 350 IF MM<1 THEN GOTO 370 360 INPUT"Contains string = ";MM$ 370 PRINT"What name do you wish to give to the resulting 380 INPUT"output file ";B$:PRINT 390 IF B$=A$ THEN GOTO 270 400 PRINT"Do you wish to drop:" 410 INPUT"Preceeding (Y/N) ";C$ 420 IF (LEFT$(C$,1)="Y") OR (LEFT$(C$,1)="y") THEN INPUT" Character (blanks are assumed) ";D$:IF D$="" THEN D$=" " 430 INPUT"Trailing (Y/N) ";E$ 440 IF (LEFT$(E$,1)="Y") OR (LEFT$(E$,1)="y") THEN INPUT" Character (blanks are assumed) ";F$:IF F$="" THEN F$=" " 450 PRINT"Do you wish to add:" 460 INPUT"Preceeding (Y/N) ";CC$ 470 IF (LEFT$(CC$,1)="Y") OR (LEFT$(CC$,1)="y") THEN INPUT" String = ";DD$ 480 INPUT"Trailing (Y/N) ";EE$ 490 IF (LEFT$(EE$,1)="Y") OR (LEFT$(EE$,1)="y") THEN INPUT" String = ";FF$ 500 INPUT"Find & Replace (Y/N) ";G$ 510 IF (LEFT$(G$,1)="Y") OR (LEFT$(G$,1)="y") THEN INPUT"Find = ";H$:INPUT"Replace = ";I$:PRINT "If a blank is specified, it must ":PRINT"be bounded by quotes (i.e. ";CHR$(34);" ";CHR$(34);" )" 520 INPUT"Specify a length for each field (Y/N) ";LL$ 530 IF (LEFT$(LL$,1)="Y") OR (LEFT$(LL$,1)="y") THEN INPUT" Field length = ";L:INPUT" Justified (L)eft or (R)ight ";L$:IF (LEFT$(L$,1)<>"R") AND (LEFT$(L$,1)<>"r") THEN L$="L" 540 PRINT 550 INPUT"All entries correct (Y/N) ";J$ 560 PRINT CHR$(26) 570 IF (LEFT$(J$,1)="N") OR (LEFT$(J$,1)="n") THEN GOTO 270 580 PRINT:PRINT:PRINT:PRINT:PRINT" Please don't interrupt until I'm done..." 590 OPEN "I",#1,A$ 600 OPEN "O",#2,B$ 610 REM INPUT SECTION 620 YY=1:OK$="YYY":M1$="N":M2$="N":M3$="N" 630 INPUT#1,Z$:IF EOF(1) THEN GOTO 790 640 IF M=0 GOTO 660 ' No selective field processing 650 GOSUB 1160 ' See if this is the selected field 660 IF OK$<>"YYY" THEN GOTO 740 ' If not, skip 670 REM PROCESSING SECTION 680 IF (LEFT$(C$,1)="Y") OR (LEFT$(C$,1)="y") THEN GOSUB 840 'Preceeding 690 IF (LEFT$(E$,1)="Y") OR (LEFT$(E$,1)="y") THEN GOSUB 870 'Trailing 700 IF (LEFT$(G$,1)="Y") OR (LEFT$(E$,1)="y") THEN GOSUB 900 'Find & Replace 710 Z$=DD$+Z$+FF$ ' Add preceeding & trailing 720 IF (LEFT$(LL$,1)="Y") OR (LEFT$(LL$,1)="y") THEN GOSUB 1040 'Adjust field length 730 REM OUTPUT SECTION 740 IF NOT (I$="DeletE" AND OK$="YYY") THEN Q$=Q$+","+Z$ ' Connect the fields to form a record 750 YY=YY+1:IF YY<(NN+1) THEN GOTO 630 ' If need more fields 760 Q$=RIGHT$(Q$,LEN(Q$)-1) 770 PRINT#2,Q$:Q$="" 780 GOTO 620 790 CLOSE 800 PRINT CHR$(26):PRINT:PRINT:PRINT:PRINT 810 PRINT" I'm done !" 820 END 830 REM SUBROUTINES 840 REM 'Preceeding' subroutine 850 WHILE LEFT$(Z$,LEN(D$))=D$:Z$=RIGHT$(Z$,LEN(Z$)-LEN(D$)):WEND 860 RETURN 870 REM 'Trailing' subroutine 880 WHILE RIGHT$(Z$,LEN(F$))=F$:Z$=LEFT$(Z$,LEN(Z$)-LEN(F$)):WEND 890 RETURN 900 REM 'Find' subroutine 910 IF I$="DeletE" THEN Z$="":GOTO 970 920 IF H$="" THEN GOTO 960 930 FOR X=1 TO LEN(Z$)-LEN(H$)+1 940 IF MID$(Z$,X,LEN(H$))=H$ THEN GOSUB 980 950 NEXT X:GOTO 970 960 FOR X=1 TO LEN(Z$):GOSUB 980:NEXT X 970 RETURN 980 REM 'Replace' subroutine 990 Z1$=LEFT$(Z$,X-1) 1000 Z2$=RIGHT$(Z$,LEN(Z$)-LEN(H$)-X+1) 1010 Z3$=Z1$+I$+Z2$ 1020 IF H$="" THEN Z$=LEFT$(Z3$,LEN(Z$)) ELSE Z$=Z3$ 1030 RETURN 1040 REM Adjust field length subroutine 1050 IF L$="L" THEN GOSUB 1080 1060 IF L$<>"L" THEN GOSUB 1120 1070 RETURN 1080 REM Justify left subroutine 1090 WHILE LEN(Z$)"L" THEN GOSUB 1120 1070 RETURN 1080 REM Justify left subroutine 1090 WHILE LEN(Z$) 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. DISK 2 of 2. Dan's Information Management System. Also on this disk is PCFILE and a program to alter file structure. Filename Description -07-00 .86 This is the release date of the disk. -CPM120 .DOC This is the description of the disk contents. ARTICLES.D A934 4K ver. 1.03 [Dan's Info System 18 of 37] ARTICLES.DD A934 4K ver. 1.03 [Dan's Info System 19 of 37] DDOC .ASC 8065 3K ver. 1.03 [Dan's Info System 20 of 37] DHELP .ASC 9DE7 2K ver. 1.03 [Dan's Info System 21 of 37] DHELP .DOC 1A4E 6K ver. 1.03 [Dan's Info System 22 of 37] FIELDFOR.DWS 41DC 2K ver. 1.03 [Dan's Info System 23 of 37] FORMFORM.DWS AE5C 7K ver. 1.03 [Dan's Info System 24 of 37] LONGADDR.D 3DE6 1K ver. 1.03 [Dan's Info System 25 of 37] LONGADDR.DD 3DE6 1K ver. 1.03 [Dan's Info System 26 of 37] MEMBERS .D 61B8 1K ver. 1.03 [Dan's Info System 27 of 37] MEMBERS .DD 61B8 1K ver. 1.03 [Dan's Info System 28 of 37] MEMBERS .DFO AD78 1K ver. 1.03 [Dan's Info System 29 of 37] MEMBERS .DOC 2375 2K ver. 1.03 [Dan's Info System 30 of 37] SHORT .DFO D0B0 1K &ver. 1.03 [Dan's Info System 31 of 37] SHORT1 .DFO AEE4 1K ver. 1.03 [Dan's Info System 32 of 37] SHORTADD.D DE65 1K ver. 1.03 [Dan's Info System 33 of 37] SHORTADD.DD DE65 1K ver. 1.03 [Dan's Info System 34 of 37] STANDADD.D 0B3A 1K ver. 1.03 [Dan's Info System 35 of 37] STANDADD.DD 0B3A 1K ver. 1.03 [Dan's Info System 36 of 37] STANDADD.DFO CDDB 4K ver. 1.03 [Dan's Info System 37 of 37] PCFILE .COM 5ECE 33K ver. 8.6 [PC-FILE 1 of 4] Menu-driven data management program which is very easy to use. Maintains lists, prints labels, etc. Has module for outputting to comma delimited files. PCFILE .DOC 4847 41K ver. 8.6 [PC-FILE 2 of 4] PCEXPORT.COM C2CB 16K ver. 8.6 [PC-FILE 3 of 4] PCSORT .COM 133A 26K ver. 8.6 [PC-FILE 4 of 4] REFORMAT.BAS B590 6K [REFORMAT 1 of 2] MBasic program which allows you to change the structure of comma delimited files with CR/LF delimiters. REFORMAT.DOC 0ED3 2K [REFORMAT 2 of 2] e. Maintains lists, prints labels, etc. Has module for outputting to comma delimited files. PCFILE .DOC 4847 41K ver. 8.6 [PC-FILE 2 of 4] PCEXPORT.COM C2CB 16K ver. 8.6 [PC-FILE 3 of 4] PCSORT .COM 133A 26K ver. 8.6 [PC-FILE 4 of 4] REFORMAT.BAS B590 6K [REFORMAT 1 of 2] MBasic program which allows you to change the structure of comma delimited files with CR/LF d'