--- title: "Profile +5 for the 2068" type: "article" slug: "profile-5-for-the-2068" url: "http://localhost/article/profile-5-for-the-2068/" markdown_url: "http://localhost/article/profile-5-for-the-2068.md" published_at: "2022-10-07T12:23:57+00:00" modified_at: "2025-11-07T17:41:49+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Thomas B. Woods has updated his PROFILE program now to PROFILE +5. All of the features of the earlier versions of PROFILE 2068 and PROFILE +3 are included. The new version allows file merge and dating files. The complete program on cassette is $29.95 plus shipping and handling from RMG ENTERPRISES. The users manual is…" category: - name: "Timex Sinclair Users Group Mile High Chapter Newsletter" slug: "timex-sinclair-users-group-mile-high-chapter-newsletter" taxonomy: "category" url: "http://localhost/category/periodicals/timex-sinclair-users-group-mile-high-chapter-newsletter/" post_tag: - name: "Pro/File 2068" slug: "pro-file-2068" taxonomy: "post_tag" url: "http://localhost/tag/pro-file-2068/" - name: "Thomas B. Woods (company)" slug: "thomas-b-woods" taxonomy: "post_tag" url: "http://localhost/tag/thomas-b-woods/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" publication_r: id: 39264 title: "Timex Sinclair Users Group Mile High Chapter Newsletter" type: "periodical" url: "http://localhost/periodical/timex-sinclair-users-group-mile-high-chapter-newsletter/" issues_articles: - id: 39756 title: "Timex Sinclair Users Group Mile High Chapter Nov 1991" type: "issue" url: "http://localhost/issue/timex-sinclair-users-group-mile-high-chapter-nov-1991/" pages: "2" pubdate: "November 1991" product_reviews: - id: 38472 title: "ProFile +5" type: "product" url: "http://localhost/product/profile-5/" archive_link: false companies_articles: - id: 11390 title: "Thomas B. Woods" type: "company" url: "http://localhost/company/thomas-b-woods/" article_media: - id: 52151 title: "ProFile with Machine Code" type: "computer_media" url: "http://localhost/computer_media/profile-5/" - id: 52182 title: "ProFile +5" type: "computer_media" url: "http://localhost/computer_media/profile-5-2/" --- # Profile +5 for the 2068 [Thomas B. Woods](http://localhost/company/thomas-b-woods/) has updated his PROFILE program now to [PROFILE +5](http://localhost/product/profile-5/). All of the features of the earlier versions of PROFILE 2068 and PROFILE +3 are included. The new version allows file merge and dating files. The complete program on cassette is $29.95 plus shipping and handling from [RMG ENTERPRISES](http://localhost/company/rmg-enterprises/). The users manual is only available from Tom Woods for $10.00 ## Source Code: ProFile with Machine Code ``` 5 BORDER 0: PAPER 0: RANDOMIZE p: POKE 64035,PEEK 23670: POKE 64036,PEEK 23671: LET a=0: LET Y=0: DIM E$(15,32): CLS : RANDOMIZE USR 64268 20 PRINT AT 1,7; PAPER 3; INK 0;" PRO/FILE 2068 ": PRINT INK 6;AT 3,4;"Separate MULTI-WORD";TAB 4;"command words with the";TAB 4;"token ""AND""" 30 INK 7: PLOT 120,175: GO SUB 9830: INK 5 40 INK 3: PRINT AT 7,0;: GO SUB 9850 50 INK 6: PRINT AT 14,0;" Type ""A"" to ADD files";TAB 4;"""SAVE"" or ""LOAD"" for tape";TAB 4;"""AUTO"" for AUTOSEARCH";TAB 4;"""DEFP"" changes PRINT format" 100 INPUT "SEARCH COMMAND? ";X$ 102 IF x$="DEFP" THEN PRINT AT 14,0;: PLOT 120,70: GO SUB 6500: INK 0: GO SUB 9830: INK 7: PRINT AT 10,7;A$; INK 0;E$(1);E$(1);E$(1): GO TO 50 103 IF x$="AUTO" THEN GO TO 5200 105 INK 5: CLS : IF x$="A" THEN GO TO 5000 106 IF x$="LOAD" THEN GO TO 5500 107 IF x$="SAVE" THEN SAVE f$ LINE 1: GO TO 1 110 IF x$="" THEN GO TO 10 115 IF x$(LEN x$)=" AND " OR LEN X$>32 THEN GO TO 10 119 LET X$=X$ 120 RANDOMIZE USR 64040 150 LET b=USR 64101 1000 PRINT AT 0,0;: DIM E$(15,32): LET e$(1)="": IF USR 63575 THEN 1010 IF a=0 AND e$(1, TO 18)=d$(2 TO 19) AND b<>p THEN CLS : GO TO 150 1020 IF y AND B

PEEK 23627+256*PEEK 23628+6 AND (y$="D" OR y$="E") THEN GO TO 4000 1090 IF y$="R" THEN CLS : LET x$=x$: GO TO 119+(A*5121) 1100 IF y$="C" THEN GO TO 7205 1200 IF y$="DEFP" THEN PRINT AT 20,0,,,,: PRINT AT 16,0;: PLOT 120,50: GO SUB 6500: INK 0: GO SUB 9830: LET y$="M": GO TO 1051 1500 IF y$<>"" AND y$<>"E" AND y$<>"D" THEN LET A=0: LET x$=y$: GO TO 105 2000 GO TO 1050 4000 LET p=p-USR 63640: IF y$="D" THEN LET Y$="": GO TO 1 4010 GO TO 5002 5000 DIM e$(15,32): CLS 5002 LET m=0: LET z=23658: LET i=0: LET l=0: LET c=0 5004 INK 1: PLOT 0,48: PAPER 6: DRAW 255,0: INK 0: PRINT AT 16,0; PAPER 1; INK 7;"CURSOR CONTROLS: ARROWS move cursor one position ENTER: Next line SHIFT 1:Alternate Insert/Over SHIFT 0:Delete character SHIFT 9:More commands ";AT l,c;: LET m=0 5005 INK 6: PAPER 0: FLASH 1: PRINT AT l,c;SCREEN$ (l,c) 5007 ON ERR GO TO 5005 5010 IF INKEY$="" THEN GO TO 5010 5016 IF INKEY$=" STOP " THEN ON ERR RESET : FLASH 0: GO TO 6000 5020 LET y$=INKEY$: FLASH 0: PRINT AT l,c;SCREEN$ (l,c): IF CODE y$<16 THEN GO TO 5100+CODE y$ 5025 IF i THEN LET e$(l+1)=e$(l+1, TO c)+" "+e$(l+1,c+1 TO 31): PRINT AT l,0;e$(l+1) 5030 PRINT AT l,c;y$: LET e$(l+1,c+1)=y$: LET c=(c+1)*(c<31): LET l=l+(c=0): LET l=l*(l<15): FLASH 1: PRINT AT l,c;SCREEN$ (l,c) 5040 PRINT INK 6+i;AT l,c; FLASH 1;SCREEN$ (l,c): FOR X=1 TO 5: NEXT X 5103 GO TO 5010 5104 FOR x=l TO 13: LET e$(x+1)=e$(x+2): PRINT AT x,0;e$(x+1): NEXT x: LET e$(15)="": PRINT e$(15): GO TO 5040 5105 LET e$(l+1,c+1 TO )="": PRINT AT l,0;e$(l+1): GO TO 5040 5106 POKE Z,(PEEK z=0)*8: PRINT AT l,c; INK 7; PAPER 1;CHR$ (60+(PEEK z/4)): PAUSE 20: PRINT AT l,c;e$(l+1,c+1): GO TO 5040 5107 LET i=NOT i: GO TO 5040 5108 LET c=c-(c>0): GO TO 5040 5109 LET c=c+(c<31): GO TO 5040 5110 LET l=l+(l<14): GO TO 5040 5111 LET l=l-(l>0): GO TO 5040 5112 LET e$(l+1)=e$(l+1, TO c)+e$(l+1,c+2 TO 31)+" ": PRINT AT l,0;e$(l+1): GO TO 5108 5113 LET c=0: LET l=l+1: LET l=l-(l>14): GO TO 5040 5114 FOR x=15 TO l+2 STEP -1: LET e$(x)=e$(x-1): PRINT AT x-1,0;e$(x): NEXT x: LET e$(l+1)="": PRINT AT l,0;e$(l+1): GO TO 5040 5115 IF m=0 THEN PRINT BRIGHT 1; PAPER 1;AT 16,0;"Press STOP to close file SHIFT-2 for CAPS lock SHIFT-3 for LINE DELETE SHIFT-4 for LINE ERASE SHIFT-SYMBOL SHIFT: line insert ": LET m=-1: GO TO 5040 5116 IF m=-1 THEN PRINT AT 16,0,,: GO SUB 9850: LET m=1: GO TO 5040 5117 GO TO 5004 5200 LET a=1: PRINT AT 14,0; PAPER 0; INK 7;" PRINT OUT? (Y/N)",,,,,,,: INPUT Y$: LET Y=Y$="Y" 5220 LET Z$="0": PRINT AT 14,0;"TYPE LINE NUMBER BY WHICH FILES WILL BE ORDERED. Type ""0"" if ordering is not required": INPUT Z$: IF z$="" THEN GO TO 1 5222 ON ERR GO TO 5220: IF VAL Z$>=0 AND VAL Z$<=15 THEN GO TO 5230 5225 GO TO 5220 5230 ON ERR RESET : IF VAL z$ THEN LET S=VAL Z$: CLS : GO TO 5240 5235 LET a=0: GO TO 100 5240 RANDOMIZE USR 64731: IF s THEN POKE 64602,s 5441 LET x$="*": LET x$=x$: RANDOMIZE USR 64040: GO TO 7000 5500 PLOT 120,50: GO SUB 9830: PRINT AT 16,1;"HAS THIS FILE BEEN SAVED?(Y/N)": INPUT y$: IF y$<>"Y" THEN GO TO 1 5510 PRINT AT 16,1; PAPER 5; INK 0;"WHAT FILE NAME DO YOU WISH ";AT 17,1;"TO LOAD\::";: INPUT F$: PRINT f$: LOAD F$: GO TO 1 6000 FOR x=1 TO 15 6004 LET e$(x)=e$(x) 6005 IF USR 63489 THEN 6010 NEXT x 6020 LET p=USR 63530 6030 GO TO 1 6500 PRINT INK 7;" ENTER DESIRED FORMAT. Type ALL ";" or line numbers separated by"," ""/"". Use ""0"" to print blank"," lines ": GO SUB 9830 6510 LET C$="": LET n=0: INPUT "format?";a$: LET a$=a$+"/": IF a$(1)="/" THEN GO TO 6510 6515 IF A$="ALL/" THEN FOR X=1 TO 15: LET C$=C$+CHR$ X: NEXT X: LET D=3: GO TO 6600 6520 LET D=1: FOR x=1 TO LEN a$: IF a$(x)<"/" OR a$(x)>"9" THEN GO TO 6510 6525 IF X15 THEN GO TO 6510 6540 NEXT x 6600 RETURN 7000 IF VAL z$=0 THEN GO TO 7202 7005 LET b=USR 64523: IF b

"C" THEN CLS : GO TO 7000 7235 IF Y AND A=0 THEN CLS : GO TO 150 7240 GO TO 1050 7310 PRINT AT 0,0;: LET E$(1)="": IF USR 63575 THEN 7311 RETURN 8990 FOR X=64468 TO 64769 8991 INPUT (X;"=";);Y$ 8992 IF Y$="" THEN GO TO 8997 8993 IF LEN Y$=5 THEN LET X=VAL Y$: PRINT X;"=";PEEK X: GO TO 8991 8994 POKE X,VAL Y$ 8997 PRINT X;"=";PEEK X 8998 NEXT X: STOP 8999 REM 9830 DRAW 134,0: DRAW 0,-48: DRAW -254,0: DRAW 0,48: DRAW 120,0: RETURN 9850 PRINT "OPEN: "; INK 7;LEN d$-p;: PRINT " bytes";TAB 0;: PRINT "FILE: "; INK 7;f$;TAB 0;: PRINT "ORDER: "; INK 7;s;TAB 0;: PRINT "FORMAT:"; INK 7;a$;TAB 0;: RETURN 9996 DIM d$(28020): LET p=20: LET d$( TO 20)="*SEARCH IS COMPLETE*": LET a$="ALL": LET c$="": FOR x=1 TO 15: LET c$=c$+CHR$ x: NEXT x: LET s=0 9997 PRINT AT 19,2; INK 7;"Press""C"" to CREATE a new file or ""L"" to LOAD an existing one": INPUT y$: PRINT AT 19,0;D$(100 TO 164): IF y$="L" THEN GO TO 5510 9998 PRINT AT 19,4; INK 7;"ENTER A NAME FOR THIS FILE": INPUT F$: IF f$="" OR LEN f$>10 THEN GO TO 9998 9999 GO TO 1 ``` ## Source Code: ProFile +5 ``` 3 LET D$( TO J+F)="*SEARCH IS COMPLETE": POKE VAL "23609",E: LET J$="": LET a=O: LET x$="": LET t=O: LET t0=O 4 RANDOMIZE p: POKE VAL "64035",PEEK VAL "23670": POKE VAL "64036",PEEK VAL "23671": RANDOMIZE USR VAL "64268" 5 IF INKEY$=" " THEN ON ERR GO TO VAL "9400": PRINT AT VAL "21",O; FLASH U;"BREAK TO EXIT/ENTER TO CONTINUE ": PAUSE O: GO TO F+U 6 BORDER O: PAPER O: LET y=O: DIM e$(J,Q): CLS 9 IF J$="U" THEN LET X$=X$: GO TO CODE "w" 10 IF y$="D" OR y$=" STEP " THEN POKE VAL "64022",PEEK VAL "64026": POKE VAL "64023",PEEK VAL "64027": LET B=(PEEK VAL "64024"+R*PEEK VAL "64025")+B: POKE VAL "64024",B-R*INT (B/R): POKE VAL "64025",INT (B/R): GO TO J*K 20 PRINT AT U,G; PAPER INT PI; INK O;" PRO/FILE PLUS 5 ": PRINT INK G-U;AT INT PI,F;"Separate MULTI-WORD";TAB F;"command words with the";TAB F;"tokens ""AND"", ""NOT"", ""OR""" 30 INK G: PLOT CODE "x",CODE "CODE ": GO SUB VAL "9830": INK F+U 40 INK INT PI: PRINT AT G,O;: GO SUB VAL "9850" 50 INK G-U: PRINT AT G+G,O;"A)dd files","T)ick on/off","AUTO)search","DEFP)rint formatDATE files","EDIT phrase","""SAVE"" ""LOAD"" ""MERGE""" 60 ON ERR RESET : IF x$="TAPE ERROR" THEN PRINT AT K+K,F+U; FLASH U;X$ 100 LET T1=O: INPUT "SEARCH COMMAND? ";X$: IF X$="NN" THEN GO TO VAL "9998" 101 IF X$="EDIT" THEN INPUT "EDIT PHRASE: ";P$: GO TO U 102 IF x$="DEFP" THEN PRINT AT G+G,O;: PLOT CODE "x",G*K: GO SUB VAL "6500": INK O: GO SUB VAL "9830": INK G: PRINT AT G+H,G;A$; INK O;E$(U);E$(U);E$(U): GO TO CODE "2" 103 IF x$="AUTO" THEN GO TO VAL "5200" 104 IF X$="RST" THEN LET P=VAL "29": GO TO U 105 IF X$="DATE" THEN INPUT "NEW DATE: ";D$(VAL "21" TO G*F): GO TO U 106 INK F+U: CLS : IF x$="A" THEN GO TO VAL "5000" 107 IF x$="LOAD" OR X$="MERGE" THEN GO TO VAL "5500" 108 IF X$="SAVE" THEN GO TO VAL "8200" 109 IF X$="T" THEN LET E=ABS (E-K): GO TO U 110 IF x$="" THEN GO TO K 115 IF x$(LEN x$)=" AND " OR LEN X$>VAL "50" THEN GO TO K 119 LET X$=X$ 120 RANDOMIZE USR VAL "64040" 130 LET j$=CHR$ PEEK VAL "23670": IF J$="T" OR J$="S" THEN INPUT "WHICH LINE TO CALCULATE?";RW: IF RWJ THEN GO TO VAL "130" 145 IF A=O THEN IF J$="U" THEN LET Z$="0": LET A=U: LET Y=O: LET Y$=" STEP ": INPUT "WHICH LINE TO CHANGE? ";L: INPUT "WHAT DATA TO CHANGE? ";P$: INPUT "WHAT IS NEW DATA? ";Q$: IF LEN Q$Q OR LJ THEN LET A=O: GO TO VAL "145" 150 LET B=USR VAL "65101": CLS 1000 PRINT AT O,O;: DIM E$(J,Q): LET e$(U)="": IF USR VAL "63575" THEN 1010 IF (A=O OR J$="U") AND e$(U, TO VAL "18")=d$(H TO J+F) AND b

D$(H TO J+F) AND CODE j$>Q THEN GO TO VAL "8500"+CODE J$ 1050 GO SUB VAL "9100": PAPER F+U: INK O: PRINT AT J+U,O;"Press ENTER to continue","C)opy D)elete E)dit A)dd fileG)oto menu R)estart searchM)ore info TYPE SEARCH COMMAND": INPUT "OPTION? ";Y$ 1051 IF Y$="M" THEN PAPER O: INK F+U: PRINT AT J+U,O;: GO SUB VAL "9850": INPUT "OPTION? ";Y$: IF Y$="M" THEN GO TO VAL "1050" 1055 PAPER O: INK F+U 1056 IF Y$=">" OR Y$=">=" THEN LET L=PEEK VAL "64022": LET C=PEEK VAL "64023": INPUT "NEW SEARCH COMMAND? ";X$: IF X$="" THEN GO TO VAL "1056" 1057 IF Y$=">" OR Y$=">=" THEN IF X$(LEN X$)=" AND " OR LEN X$>Q THEN GO TO VAL "1056" 1058 IF Y$=">" OR Y$=">=" THEN LET X$=X$: RANDOMIZE USR VAL "64046": POKE VAL "64022",L: POKE VAL "64023",C: LET Y=Y$=">=": LET Y$="" 1059 IF Y$<"8" AND Y$>"0" THEN IF E$(U, TO F+U)="#DEFP" THEN GO TO VAL "6400" 1060 IF y$="" AND b

PEEK VAL "23627"+R*PEEK VAL "23628"+G-U AND (y$="D" OR y$="E") THEN GO TO VAL "4000" 1090 IF y$="R" THEN LET t=O: LET t1=O: LET t0=O: CLS : LET x$=x$: GO TO CODE "w"+(A*VAL "5121") 1100 IF y$="C" THEN GO TO VAL "7205" 1200 IF y$="DEFP" THEN PRINT AT K+K,O,,,,: PRINT AT J+U,O;: PLOT CODE "x",CODE "2": GO SUB VAL "6500": INK O: GO SUB VAL "9830": LET y$="M": GO TO VAL "1051" 1500 IF y$<>"" AND y$<>"E" AND y$<>"D" THEN LET A=O: LET X$=Y$: GO TO CODE "i" 2000 GO TO VAL "1050" 4000 LET p=p-USR VAL "63640": LET B=P: IF y$="D" THEN LET y$="": GO TO U 4010 GO TO VAL "5002" 5000 DIM e$(J,Q): CLS 5002 LET m=O: LET z=VAL "23658": LET i=O: LET L=O: LET C=O 5003 IF Y$=" AND " THEN BEEP U/K,J+J 5004 INK U: PLOT O,CODE "0": PAPER G-U: DRAW CODE " COPY ",O: INK O: PRINT AT J+U,O; PAPER U; INK G;"ENTER:Next line or use SHIFT and1:Switch Insert/Over 2:Caps lock3:Line Delete 4:Line Erase5-8:Move Cursor 9:More Info";AT L,C;: LET m=O 5005 INK G-U: PAPER O: FLASH U: PRINT AT L,C;SCREEN$ (L,C) 5007 ON ERR GO TO VAL "5005" 5010 LET Y$=INKEY$: IF Y$="" THEN GO TO 5010 5016 IF Y$>=" AND " AND Y$<>" THEN " THEN ON ERR RESET : FLASH 0: GO TO 6000 5020 BEEP E/1000,40: FLASH 0: PRINT AT L,C;SCREEN$ (L,C): IF CODE y$<16 THEN GO TO 5100+CODE y$ 5025 IF i THEN LET e$(L+1)=e$(L+1, TO C)+" "+e$(L+1,C+1 TO 31): PRINT AT L,0;e$(L+1) 5027 IF y$=" THEN " THEN GO TO 7205 5028 IF Y$="AT " AND I THEN LET Q$=E$(L+1,C+2 TO ): LET E$(L+1,C+1 TO )=P$+Q$: PRINT AT L,0;E$(L+1): LET C=(C+LEN P$)*(C+LEN P$<31): GO TO 5035 5029 IF Y$="AT " AND NOT I THEN LET Q$=E$(L+1,C+1+LEN P$ TO ): LET E$(L+1)=E$(L+1, TO C)+P$+Q$: PRINT AT L,0;E$(L+1): LET C=(C+LEN P$)*(C+LEN P$<31): GO TO 5035 5030 PRINT AT L,C;y$: LET e$(L+1,C+1)=y$: LET C=(C+1)*(C<31) 5035 LET L=L+(C=0 AND L<14): FLASH 1: PRINT AT L,C;SCREEN$ (L,C) 5040 PRINT INK 2+i*5;AT L,C; FLASH 1;SCREEN$ (L,C) 5103 GO TO 5010 5104 FOR x=L TO J-H: LET e$(x+U)=e$(x+H): PRINT AT x,O;e$(x+U): NEXT x: LET e$(J)="": PRINT e$(J): GO TO VAL "5040" 5105 LET e$(L+U,C+U TO )="": PRINT AT L,O;e$(L+U): GO TO VAL "5040" 5106 POKE Z,(PEEK z=O)*VAL "8": PRINT AT L,C; INK G; PAPER U;CHR$ (CODE "<"+(PEEK z/F)): PAUSE K+K: PRINT AT L,C;e$(L+U,C+U): GO TO VAL "5040" 5107 LET i=NOT i: GO TO VAL "5040" 5108 LET C=C-U+(Q AND C=O): GO TO VAL "5040" 5109 LET C=(C+U)*(CO) 5113 LET C=O: LET L=L+U: LET L=L-(L>G+G): GO TO VAL "5040" 5114 FOR x=J TO L+H STEP -U: LET e$(x)=e$(x-U): PRINT AT x-U,O;e$(x): NEXT x: LET e$(L+U)="": PRINT AT L,O;e$(L+U): GO TO VAL "5040" 5115 IF m=O THEN PRINT BRIGHT U; PAPER U;AT J+H,O;"SYMBOL SHIFT:Line Insert","STOP:Close File",,: LET m=-U: GO TO VAL "5040" 5116 IF m=-U THEN PRINT AT J+U,O;: GO SUB VAL "9850": LET m=U: GO TO VAL "5040" 5117 GO TO VAL "5004" 5200 LET a=U: PRINT AT G+G,O; PAPER O; INK G;" PRINT OUT? (Y/N)",,,,,,,: INPUT Y$: LET Y=Y$="Y" 5220 LET Z$="0": PRINT AT G+G,O;"TYPE LINE NUMBER BY WHICH FILES WILL BE ORDERED. Type ""0"" if ordering is not required": INPUT Z$: IF z$="" THEN GO TO U 5222 ON ERR GO TO VAL "5220": IF VAL Z$>=O AND VAL Z$<=J THEN GO TO VAL "5230" 5225 GO TO VAL "5220" 5230 ON ERR RESET : IF VAL Z$ THEN LET S=VAL Z$: CLS : GO TO VAL "5240" 5235 LET A=O: GO TO K*K 5240 RANDOMIZE USR VAL "64731": IF S THEN POKE VAL "64602",S 5441 LET X$="*": LET X$=X$: RANDOMIZE USR VAL "64040": GO TO VAL "7000" 5500 PLOT CODE "x",CODE "2": GO SUB VAL "9830": PRINT AT J+U,U;"HAS THIS FILE BEEN SAVED?(Y/N)": PAUSE O: LET y$=INKEY$: IF y$<>"Y" THEN GO TO U 5505 IF X$="LOAD" THEN LET P=U 5506 PRINT AT J+U,U; PAPER F+U; INK O;"WHAT FILE NAME DO YOU WISH ";AT J+H,U;"TO LOAD\::";: INPUT F$: PRINT f$ 5507 LET P=P-U: LOAD F$CODE PEEK VAL "23627"+R*PEEK VAL "23628"+P+G-U: LET F$=D$(P+H TO P+G+F): LET P=P+VAL D$(P+K+H TO P+J+U): BEEP U/H,J+J: GO TO U 6000 IF J$="U" THEN LET D$(P)=CHR$ (VAL "42"-A*VAL "42") 6001 FOR x=U TO J 6004 LET e$(x)=e$(x) 6005 IF USR VAL "63489" THEN 6010 NEXT x 6020 LET p=USR VAL "63530": LET B=P-B 6030 GO TO F-(y$=" STOP ")+(a*(y$=" STEP "))+(VAL "4996"*(Y$=" TO "))+(VAL "4999"*(Y$=" AND ")) 6400 LET C$="": LET N=O: LET A$=E$(VAL Y$*H+U): FOR X=Q TO U STEP -U: IF A$(X)<>" " THEN LET A$=A$( TO X)+"/": GO SUB VAL "6515": LET Y$="G": GO TO VAL "1070" 6410 NEXT X: LET Y$="G": GO TO VAL "1070" 6500 PRINT INK G;" ENTER DESIRED FORMAT. Type ALL ";" or line numbers separated by"," ""/"" or ""."". Use ""0"" to print blank lines",,: GO SUB VAL "9830" 6510 LET C$="": LET n=O: INPUT "format?";a$: LET a$=a$+"/": IF a$(U)="/" OR A$(U)="." THEN GO TO VAL "6510" 6515 IF A$="ALL/" THEN LET C$="": FOR X=U TO J: LET C$=C$+CHR$ X+CHR$ O: NEXT X: LET D=INT PI: GO TO VAL "6555" 6520 LET D=U: FOR x=U TO LEN a$: IF a$(x)<"." OR a$(x)>"9" THEN GO TO VAL "6510" 6525 IF XJ+U THEN GO TO VAL "6510" 6537 IF A$(X)="/" AND N THEN LET C$=C$+CHR$ O 6540 NEXT x 6550 LET C$=C$( TO LEN C$-U) 6555 LET D=U: FOR X=U TO LEN A$: IF A$(X)="." THEN LET D=O 6556 NEXT X 6600 RETURN 7000 IF VAL Z$=O THEN GO TO VAL "7202" 7005 LET B=USR VAL "64523": IF B

H THEN GO TO VAL "7213" 7207 LET L=O: LET C=O: FOR X=H TO Q: IF E$(U,X)=" " THEN LET C=X+U: GO TO VAL "7209" 7208 NEXT X: IF C=O THEN GO TO VAL "7212" 7209 FOR X=C TO Q: IF E$(U,X)=" " THEN LET L=X-U: LET X=Q 7210 NEXT X: IF L=O THEN LET E$(U)=E$(U,C TO )+" "+E$(U, TO C-H): GO TO VAL "7212" 7211 LET E$(U)=E$(U,C TO L)+" "+E$(U, TO C-H) 7212 IF Y$="C" THEN LET Y=O 7213 FOR X=U TO LEN C$: IF CODE C$(X)=O THEN LPRINT : GO TO VAL "7225" 7220 IF D THEN IF CODE C$(X)<=J THEN IF E$(CODE C$(X))>" " THEN LPRINT E$(CODE C$(X));: GO TO VAL "7225" 7221 IF NOT D THEN IF CODE C$(X)<=J THEN LPRINT E$(CODE C$(X));: GO TO VAL "7225" 7222 IF CODE C$(X)=J+U THEN LPRINT "CNT=";T1;" SUM1=";T;" SUM2=";T0;: GO TO VAL "7225" 7223 LET X=X+U: IF XO THEN LET X=X-U 7225 NEXT X: LPRINT 7227 IF y$=" THEN " THEN GO TO VAL "5005" 7229 IF j$="T" OR J$="S" THEN GO TO VAL "1049"+(y$="C") 7230 IF A AND B

"C" THEN CLS : GO TO VAL "7000" 7235 IF Y AND A=O THEN GO TO J*K 7240 GO TO VAL "1047" 7310 PRINT AT O,O;: LET e$(U)="": IF USR VAL "63575" THEN 7311 RETURN 8000 LET X$="TAPE ERROR": GO TO F 8200 CLS : PRINT AT K,O;"PRESS ANY KEY TO SAVE ": PAUSE O 8205 CLS : ON ERR GO TO VAL "8000": LET D$(H TO G+F)=F$: LET D$(K+H TO J+U)=STR$ P: SAVE F$CODE PEEK VAL "23627"+R*PEEK VAL "23628"+G-U,P 8220 BEEP U/H,J+J: PRINT AT K+K,O;" REWIND TO VERIFY/BREAK TO STOP " 8225 VERIFY ""CODE 8230 BEEP U/H,J+J: GO TO U 8548 GO TO U 8567 GO TO U 8568 LET P=P-USR VAL "63640": CLS : LET X$=X$: GO TO CODE "w" 8582 GO TO U 8583 GO TO VAL "9250" 8584 GO TO VAL "9200" 8585 LET P=P-USR VAL "63640": GO TO VAL "9300" 8900 GO TO U 8999 STOP 9000 CLS : PRINT #4: LOAD "p/f"CODE : SAVE "PROFILE" LINE VAL "9991": SAVE "p/f"CODE VAL "63488",VAL "2046": GO TO 9990 9100 IF J$="U" THEN LET T1=T1/H 9105 PRINT AT J,O;"CNT=";T1;: IF J$="T" OR J$="S" THEN PRINT " SUM1=";T;" SUM2=";T0 9110 RETURN 9200 POKE VAL "63798",J+U: LET E$(RW,U)=E$(RW,U): IF USR VAL "63792" THEN LET T=T+VAL E$(RW, TO J+U) 9205 LET e$(RW,J+H)=e$(RW,J+H): IF USR VAL "63792" THEN LET t0=t0+VAL e$(RW,J+H TO ) 9210 IF Y AND (J$="T" OR J$="S") THEN GO TO J*K 9220 GO TO VAL "1050"-(VAL "900"*a*y) 9250 POKE VAL "63798",Q: LET E$(RW,U)=E$(RW,U): IF USR VAL "63792" THEN LET T=T+VAL E$(RW): LET T0=VAL E$(RW) 9260 GO TO VAL "9210" 9300 IF P$=E$(L, TO LEN P$) THEN LET E$(L)=Q$+E$(L,LEN P$+U TO ): PRINT AT L-U,O;E$(L) 9310 GO TO VAL "6000" 9400 PAUSE K+K: LET Y$=" STOP ": ON ERR RESET : GO TO U 9830 DRAW VAL "134",O: DRAW O,-VAL "48": DRAW H-R,O: DRAW O,CODE "0": DRAW CODE "x",O: RETURN 9850 PRINT "FILE: "; INK G;F$; INK INT PI;" ORDER: "; INK G;S, INK INT PI;"OPEN: "; INK G;LEN D$-P;: PRINT " bytes DATE:"; INK G;D$(VAL "21" TO F*G);TAB O;: PRINT "FORMAT:"; INK G;a$,,,TAB O;: RETURN 9990 CLEAR : SAVE "PROFILE" LINE VAL "9991": BEEP VAL ".5",VAL "30": SAVE "p/f"CODE VAL "63488",VAL "2046": BEEP VAL ".5",VAL "30": VERIFY "": VERIFY ""CODE : BEEP VAL ".5",VAL "40": GO TO VAL "9996" 9991 DELETE VAL "8999",VAL "9000": BORDER NOT PI: PAPER NOT PI: INK VAL "7": CLEAR VAL "63487": LOAD ""CODE : CLS : POKE VAL "23658",VAL "8" 9996 DIM d$(VAL "27379"): LET P=VAL "29": LET P$="": LET O=NOT PI: LET B=O: LET U=SGN PI: LET H=U+U: LET F=H+H: LET G=VAL "7": LET K=VAL "10": LET J=VAL "15": LET Q=CODE " ": LET R=VAL "256": LET A$="ALL/": GO SUB VAL "6515": LET S=O: LET D$(K+K TO VAL "29")=CHR$ U+"SET DATE*" 9997 LET Y$="": LET E=K: PRINT AT J+F,U+U; INK G;"Press ""C"" to CREATE a new file or ""L"" to LOAD an existing one": PAUSE O: LET X$=INKEY$: PRINT AT J+F,O;D$(CODE "d" TO VAL "164"): IF X$="L" THEN LET X$="LOAD": GO TO VAL "5505" 9998 PRINT AT J+F,F; INK G;"ENTER A NAME FOR THIS FILE": INPUT F$: IF f$="" OR LEN f$>K THEN GO TO VAL "9998" 9999 GO TO U ```