--- title: "TEXT EDITOR 2000" type: "article" slug: "text-editor-2000" url: "http://localhost/article/text-editor-2000/" markdown_url: "http://localhost/article/text-editor-2000.md" published_at: "2025-11-05T10:33:46+00:00" modified_at: "2026-06-21T23:21:10+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Text Editor 2000 is my attempt to make a full featured text editor using only Spectrum compatible BASIC. To begin with, this text editor is an expansion of a very simple concept. Try this: 10 INPUT AT 21,0; AT 0,0; LINE a$ 20 LPRINT a$ 30 GOTO 10 This is a very simple way to…" category: - name: "T-S Horizons" slug: "t-s-horizons" taxonomy: "category" url: "http://localhost/category/periodicals/t-s-horizons/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "Full Text" slug: "fulltext" taxonomy: "post_tag" url: "http://localhost/tag/fulltext/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" - name: "Type-in program" slug: "type-in-program" taxonomy: "post_tag" url: "http://localhost/tag/type-in-program/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Christopher Nystrom" slug: "christopher-nystrom" taxonomy: "indiv" url: "http://localhost/indiv/christopher-nystrom/" publication_r: id: 10247 title: "T-S Horizons" type: "periodical" url: "http://localhost/periodical/t-s-horizons/" authors_r: - name: "Christopher Nystrom" slug: "christopher-nystrom" taxonomy: "indiv" url: "http://localhost/indiv/christopher-nystrom/" issue: "13" issues_articles: - id: 50950 title: "T-S Horizons n13" type: "issue" url: "http://localhost/issue/t-s-horizons-n13/" pages: "18-23" pubdate: "Apri 1985" product_reviews: - id: 22435 title: "Text Editor 2000" type: "product" url: "http://localhost/product/text-editor-2000/" archive_link: false article_media: - id: 55074 title: "Text Editor 2000 2.2" type: "computer_media" url: "http://localhost/computer_media/text-editor-2000-2-2/" --- # TEXT EDITOR 2000 Text Editor 2000 is my attempt to make a full featured text editor using only Spectrum compatible BASIC. To begin with, this text editor is an expansion of a very simple concept. Try this: ``` 10 INPUT AT 21,0; AT 0,0; LINE a$ 20 LPRINT a$ 30 GOTO 10 ``` This is a very simple way to use the editing system built into your TS 2068 (or Spectrum), and Text Editor 2000 is merely an expansion of this concept. Text Editor 2000 is menu driven, which means that a list of choices is presented, and whenever the prompt ‘Selection?’ appears, all you need to do is push the key corresponding to the numbered option you wish. For example, option 9 (Quick Note) is the short program described above. A cursor will appear at the top left of the screen. I am assuming that you are already familiar with the TIMEX Sinclair editing system described in the USER’S MANUAL (chapter 2). Using the Quick Note option allows typing text on the screen and upon hitting the ENTER key, the text will be printed. When entering text, be especially careful never to press SHIFT 6, because all of the text on the screen will be lost. If this should happen to you do not RUN the program. Type GOTO 800. It is best to type in text a paragraph at a time, and you should not use multi-character tokens. To get back to the menu from Quick Note, hit the ENTER key without typing in any text. If you wish to use the various other editing and storage options of Text Editor 2000, the text will need to be stored in the computer’s memory, by choosing selection 0, INI TEXT, This option works exactly like the Quick Note option, except that the text is not immediately printed. Also, the last two lines that were entered are displayed, so that you can keep track of where you are. To Input Text type in a line of 32 characters or less and press ENTER. This will place the cursor at the first space of the next line. If the last word you are adding to a line will make that line more than 32 characters, hyphenate the word and press ENTER. Adding blank spaces at the end of a line until the cursor appears in the line below has the same result. Choose selection 7 to OUIPUT TEXT either to the screen for review, or to the printer. You will be prompted on whether or not the text is to be printed. Answer by pushing the Y or N keys. If your answer is N, the text will be displayed on the screen. If your answer is Y, then you will be prompted on whether or not the text is to be doubles spaced, and whether or not a 64 colum printout is desired (more on this later). If a 64 column printout is not desired, then you will be asked whether or not there are any acrecns to be loaded in (more on this later, also). To CLEAR the text, choose selection 8. Options 1 and 2 allow SAVEing and LOADing text files. Each file should have a name of no more than 10 characters. When you save a file, you will be prompted on whether or not you would like to verify the save. To INSERT TEXT, choose selection 3. This takes you to the full screen editor. In this mode you use the regular Shift 5 through shift 8 keys to move the cursor around the text. In addition, Shift 3 will move the cursor down a page, and Shift 4 will move the cursor up a page. Also, any time you are in the full screen editor mode, you can get back to the main menu by pushing Symbol Shift A (the STOP token). What you want to do is place the cursor on the first character that you want to appear AFTER the insertion, and then hit the ENTER key. You will be prompted on whether or not to be inserted needs to be loaded in. If not you will be given a cursor to type in the text. If at this point you decide that you do not want to insert any text, then just hit ENTER without typing in text. After the text is inserted it, it will be displayed a page at a time. Selection 4, DELETE TEXT, works very similarly to INSERT TEXT, except that you move the cursor to the first character that you want to delete. When you press ENTER, the character will be marked with an asterisk, and then the cursor will move one space to the right. Now you move the cursor to the last character that you want to delete and press ENTER again. If you only want to delete one character that you want to delete and press ENTER again. If you only want to delete one character, then move the cursor, back to the marked character. After you press ENTER the second time, you will be prompted on whether or not you to insert text at the same place as the deleted text. Selection 5 will JUSTIFY the right hand margin. It only searches back 10 character, screen, without unwanted justification. This prevents: ``` Dear John, ``` from becoming: ``` Dear John, ``` The last line of a paragraph is not justified. In fact, any line that precedes a line that starts with a space, will not justify. The last line is never justified. SEARCH AND REPLACE, selection 6, is useful for correcting misspelled words. You will be prompted for the string of characters to be searched for. This would be the word that is incorrectly spelled. You can get back to the menu from here by pushing ENTER without typing in any text. You will then be prompted for the string of characters to be inserted in place of the old string. This would be the correctly spelled word. The new text will be displayed one character at a time as it is finished. To CENTER a line of text, choose selection A. You will then be in the full screen editor mode, but only use the 6 and 7 keys, and place the cursor on the first character of the line you want to he centered, and hit ENTER. The line will be centered and the text will be displayed on the screen. Selection 8, TYPE OVER, sends you to the full screen editor and allows you to just type over the text that you want to change. Selection C allows you to change the PAPER and BORDER colors, INK is always set to maximum contrast. A 64 column printout is possible by printing out one side and then the other, and then taping the two together. To justify and center the text 64 columns, you must change the width by pushing ‘W’ at the selection prompt and then entering ’64’. Be sure to change the width back to 32, before you print out the text. There is also a simple cut and paste routine, that allows you to place a screen of graphics into your text. After you have finished editing your text, but before you imbed control characters, insert the characters ‘SCRS’ where you want the graphics to go. When you print out your text answer yes to the screen$ prompt. The screens will be loaded in and copied in their proper place in the text. You should also be aware of characters not found on the keyboard. As explained on page 25 of the USERS GUIDE, there are some extra characters in the extended mode. To get in to the extended mode, press the caps shift and symbol shift at the same time. Also there are some defined characters in the graphics mode. To get in to graphics mode type Shift 9. ## Source Code: Text Editor 2000 2.2 ``` 1 REM TEXT EDITOR 2000 version 2.2 by C.Nystrom 1985 with SETYPE by RRRuegg all public domain. 2 REM Meld by M Quintero 1985 10 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\'' EDITOR 20 LET d1=0 25 LET a=1 30 GO SUB 9600 35 LET x1=0 40 LET x2=0 45 LET s=1 50 PRINT AT x1,x2;t$(s) 55 LET a$=INKEY$ 60 IF a$="" THEN GO TO 55 65 IF a$=CHR$ 4 THEN GO TO 320 70 IF a$=CHR$ 5 THEN GO TO 350 75 IF a$=CHR$ 8 THEN GO TO 125 80 IF a$=CHR$ 9 THEN GO TO 275 85 IF a$=CHR$ 10 THEN GO TO 170 90 IF a$=CHR$ 11 THEN GO TO 220 95 IF a$=CHR$ 13 THEN GO TO 380 100 IF a$=CHR$ 226 THEN GO TO 720 105 IF s$<>"b" AND s$<>"B" THEN GO TO 55 110 LET t$(s)=a$ 115 GO TO 275 120 REM \''\''\''\''\''\''\''\''\''\''\''\'' Cursor Left 125 PRINT AT x1,x2;t$(s) 130 IF s=1 THEN GO TO 50 135 IF x2>0 THEN GO TO 150 140 LET s=s+32 145 LET x2=32 150 LET x2=x2-1 155 LET s=s-1 160 GO TO 50 165 REM \''\''\''\''\''\''\''\''\''\''\'' Cursor Down 170 PRINT AT x1,x2;t$(s) 175 IF s+32>LEN t$ THEN GO TO 50 180 IF x1<21 THEN GO TO 200 185 LET a=b+1 190 GO SUB 9600 195 LET x1=-1 200 LET x1=x1+1 205 LET s=s+32 210 GO TO 50 215 REM \''\''\''\''\''\''\''\''\''\'' Cursor Up 220 PRINT AT x1,x2;t$(s) 225 IF s<32 THEN GO TO 50 230 IF x1>0 THEN GO TO 255 235 LET a=a-704 240 IF a<1 THEN LET a=1 245 GO SUB 9600 250 LET x1=22 255 LET x1=x1-1 260 LET s=s-32 265 GO TO 50 270 REM \''\''\''\''\''\''\''\''\''\'' Cursor Right 275 PRINT AT x1,x2;t$(s) 280 IF s=LEN t$ THEN GO TO 50 285 IF x2<31 THEN GO TO 300 290 LET s=s-32 295 LET x2=x2-32 300 LET x2=x2+1 305 LET s=s+1 310 GO TO 50 315 REM \''\''\''\''\''\''\''\''\''\''\''\'' Page Down 320 IF s+704>LEN t$ THEN GO TO 50 325 LET a=b+1 330 GO SUB 9600 335 LET s=s+704 340 GO TO 50 345 REM \''\''\''\''\''\''\''\''\''\''\''\'' Page Up 350 IF s-704<1 THEN GO TO 50 355 LET a=a-704 360 GO SUB 9600 365 LET s=s-704 370 GO TO 50 375 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\'' Enter 380 IF s$="B" OR s$="b" THEN GO TO 720 385 PRINT AT x1,x2; INVERSE 1; "*" 390 IF d1>0 THEN GO TO 410 395 LET d1=s 400 IF s$<>"4" THEN RETURN 405 GO TO 280 410 IF sCHR$ 58 THEN GO TO 720 870 BEEP .08,5 880 IF s$="0" THEN GO TO 900 890 GO TO VAL s$*1000 895 REM \''\''\''\''\''\''\''\''\''\''\''\'' INPUT TEXT 900 IF LEN t$>11040 THEN GO TO 1500 905 LET b$="" 910 IF LEN t$<64 THEN GO TO 920 915 LET b$=t$(LEN t$-63 TO LEN t$) 920 INPUT AT 21,0;"------------------------------- INPUT TEXT";AT 0,0;(b$); LINE a$ 925 IF a$="" THEN GO TO 800 930 IF t$=" " THEN GO TO 965 935 GO SUB 9200 940 LET d1=LEN u$+1 945 GO SUB 9300 950 LET t$(d1 TO d1+LEN a$-1)=a$ 955 DIM u$(1) 960 GO TO 985 965 LET d=INT (LEN a$/32-.01)+1 970 DIM t$(d*32) 975 LET t$=a$ 985 BEEP .1,7 990 GO TO 900 995 REM \''\''\''\''\''\''\''\''\''\''\''\''\'' SAVE TEXT 1000 INPUT "-------------------------------- Name of Text: ";n$ 1010 IF n$=CHR$ 226 OR n$="" THEN GO TO 800 1020 IF LEN n$>10 THEN LET n$=n$( TO 10) 1030 GO SUB 9100 1040 PRINT #1;AT 1,5;"SAVING AS: ";n$ 1050 SAVE n$ DATA t$() 1060 BEEP .1,10 1070 GO SUB 9100 1080 PRINT #1;AT 1,7;"VERIFY SAVE Y/N)"; FLASH 1;"?" 1090 PAUSE 0 1100 LET a$=INKEY$ 1110 IF a$="N" OR a$="n" THEN GO TO 1150 1120 GO SUB 9100 1130 PRINT #1;AT 1,5;"VERIFYING : ";n$ 1140 VERIFY n$ DATA t$() 1150 BEEP .1,7 1160 GO TO 800 1490 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\'' Full File 1500 PRINT AT 7,9;"TEXT FILE FULL" 1510 PRINT AT 9,10;"SAVE TO TAPE" 1520 GO TO 800 1990 REM \''\''\''\''\''\''\''\''\''\''\''\''\'' LOAD TEXT 2000 INPUT "------------------------------ Name of Text; ";n$ 2010 IF n$=CHR$ 226 THEN GO TO 800 2020 IF LEN n$>10 THEN LET n$=n$( TO 10) 2030 GO SUB 9100 2040 PRINT #1;AT 1,0;" LOADING: ";n$ 2050 DIM t$(1) 2060 LOAD n$ DATA t$() 2070 BEEP .1,7 2080 GO TO 800 2990 REM \''\''\''\''\''\''\''\''\''\''\'' INSERT TEXT 3000 LET b$="INSERT TEXT" 3010 GO SUB 20 3020 CLS 3030 GO SUB 9100 3040 PRINT #1;AT 1,2;"TEXT NEED TO BE LOADED (Y/N)";"?" 3050 PAUSE 0 3060 LET a$=INKEY$ 3070 IF a$="Y" OR a$="y" THEN GO TO 3200 3080 INPUT AT 21,0;"------------------------------ INSERT TEXT";AT 0,0; LINE a$ 3100 IF a$="" THEN GO TO 800 3110 GO SUB 9200 3120 GO SUB 9300 3130 LET t$(d1 TO d1+LEN a$-1)=a$ 3140 GO SUB 9500 3150 GO TO 7030 3190 REM \''\''\''\''\''\''\''\''\''\''\''\'' Load Insert 3200 INPUT "------------------------------- Name of Text: ";n$ 3210 IF n$=CHR$ 226 THEN GO TO 800 3220 IF LEN n$>10 THEN LET n$=n$( TO 10) 3230 GO SUB 9100 3240 PRINT #1;AT 1,6;"LOADING: ";n$ 3250 LOAD n$ DATA v$() 3260 BEEP .1,10 3270 LET d=INT (LEN v$/32-.01)+1 3280 GO SUB 9210 3290 GO SUB 9300 3300 GO SUB 9400 3310 LET n=d1-1+LEN v$ 3320 GO SUB 9510 3330 GO TO 7030 3490 REM \''\''\''\''\''\''\''\''\''\''\''\''\'' TYPE OVER 3500 LET b$="TYPE OVER" 3510 GO TO 25 3990 REM \''\''\''\''\''\''\''\''\''\'' DELETE TEXT 4000 LET b$="DELETE TEXT" 4010 GO SUB 20 4020 CLS 4030 IF d1=1 AND d2=LEN t$ THEN GO TO 8050 4040 LET d=-(INT ((d2-d1+1)/32)) 4050 GO SUB 9210 4060 GO SUB 9300 4070 LET n=d1-1 4075 LET d=d1 4080 LET d1=d2+1 4090 GO SUB 9510 4100 GO SUB 9100 4105 LET d1=d 4110 PRINT #1;AT 1,0;" INSERT AT SAME PLACE (Y/N) ";"?" 4120 PAUSE 0 4130 LET a$=INKEY$ 4140 CLS 4150 IF a$="Y" OR a$="y" THEN GO TO 3030 4160 DIM u$(1) 4170 GO TO 7030 4490 REM \''\''\''\''\''\''\''\''\''\''\'' Change Width 4500 INPUT "------------------------------- NUMBER OF COLUMNS:";w 4510 GO TO 800 4990 REM \''\''\''\''\''\''\''\''\''\''\'' JUSTIFICATION 5000 IF t$="" THEN RETURN 5010 FOR i=1 TO INT (LEN t$/w-.01) 5020 IF t$(i*w)<>" " THEN GO TO 5190 5030 IF t$(i*w+1)=" " THEN GO TO 5190 5040 FOR j=0 TO 10 5050 IF t$(i*w-j)<>" " THEN GO TO 5080 5060 NEXT j 5070 GO TO 5190 5080 LET d=2 5090 FOR j=3 TO w 5100 IF t$((i-1)*w+j)<>" " THEN GO TO 5160 5110 FOR k=0 TO w-j-1 5120 LET t$(i*w-k)=t$(i*w-k-1) 5130 NEXT k 5140 IF t$(i*w)<>" " THEN GO TO 5190 5150 LET j=j+d 5160 NEXT j 5170 LET d=d+1 5180 GO TO 5090 5190 IF PEEK 23689=2 THEN CLS 5200 PRINT t$((i-1)*w+1 TO i*w) 5210 NEXT i 5220 IF PEEK 23689=2 THEN CLS 5230 PRINT t$((i-1)*w+1 TO ) 5240 BEEP .1,7 5250 GO TO 800 5490 REM \''\''\''\''\''\''\''\''\''CENTER TEXT 5500 LET b$="CENTER TEXT" 5510 GO SUB 20 5520 CLS 5530 LET s1=0 5540 FOR i=d1 TO d1+w-1 5550 IF t$(i)<>" " THEN GO TO 5590 5560 LET s1=s1+1 5570 NEXT i 5590 IF s1=w THEN GO TO 800 5600 LET s2=0 5610 FOR i=d1+w-1 TO d1 STEP -1 5620 IF t$(i)<>" " THEN GO TO 5650 5630 LET s2=s2+1 5640 NEXT i 5650 IF s1=s2 THEN GO TO 800 5660 LET s2=w-s2-1 5670 LET b$=t$(d1+s1 TO d1+s2) 5680 FOR i=d1 TO d1+w-1 5690 LET t$(i)=" " 5700 NEXT i 5710 LET s=(w/2)-(LEN b$/2) 5720 LET t$(d1+s TO d1+s+LEN b$)=b$ 5730 GO TO 7030 5990 REM \''\''\''\''\'' SEARCH AND REPLACE 6000 INPUT AT 21,0;"-------------------------------- INPUT FIRST STRING";AT 0,0; LINE b$ 6010 IF b$="" THEN GO TO 800 6020 INPUT AT 21,0;"-------------------------------- INPUT SECOND STRING";AT 0,0; LINE a$ 6030 LET d=0 6040 LET s2=0 6050 GO SUB 6500 6060 IF d=1 THEN GO TO 6200 6070 LET d=INT ((LEN a$-LEN b$)/32-.01)+1 6080 GO SUB 9210 6090 LET d1=s2 6100 GO SUB 9300 6110 LET t$(d1 TO d1+LEN a$-1)=a$ 6120 LET n=d1-1+LEN a$ 6130 LET d1=d1+LEN b$ 6140 GO SUB 9510 6150 GO TO 6050 6200 IF PEEK 23688=2 AND PEEK 23689=3 THEN CLS 6210 PRINT t$(s2 TO ) 6220 BEEP .1,7 6230 GO TO 800 6490 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\'' SEARCH 6500 LET s2=s2+1 6510 IF s2=1 THEN GO TO 6540 6520 IF PEEK 23688=2 AND PEEK 23689=3 THEN CLS 6530 PRINT t$(s2-1); 6540 IF s2+LEN b$-1>LEN t$ THEN GO TO 6570 6550 IF t$(s2 TO s2+LEN b$-1)=b$ THEN RETURN 6560 GO TO 6500 6570 LET d=1 6580 RETURN 6990 REM \''\''\''\''\''\''\''\''\''\''\'' TEXT OUTPUT 7000 GO SUB 9100 7005 PRINT #1;AT 1,5;"TO THE PRINTER Y/N)";"?" 7010 PAUSE 0 7015 LET a$=INKEY$ 7020 CLS 7025 IF a$="Y" OR a$="y" THEN GO TO 7100 7030 FOR i=1 TO LEN t$ STEP 704 7035 CLS 7040 IF i+703<=LEN t$ THEN GO TO 7055 7045 PRINT t$(i TO ) 7050 GO TO 800 7055 PRINT t$(i TO i+703) 7060 GO SUB 9100 7065 PRINT #1;AT 1,8;"NEXT PAGE (Y/N)";"?" 7070 PAUSE 0 7075 LET a$=INKEY$ 7080 BEEP .1,7 7085 IF a$="N" OR a$="n" THEN GO TO 800 7090 NEXT i 7095 GO TO 800 7100 GO SUB 9100 7110 PRINT #1;AT 1,7;"DOUBLE SPACE (Y/N)";"?" 7120 LET ds=0 7130 PAUSE 0 7140 LET a$=INKEY$ 7150 IF a$="Y" OR a$="y" THEN LET ds=1 7160 GO SUB 9100 7170 PRINT #1;AT 1,7;"DOUBLE WIDTH (Y/N)";"?" 7180 PAUSE 0 7190 LET a$=INKEY$ 7195 CLS 7200 IF a$="Y" OR a$="y" THEN GO TO 7600 7210 GO SUB 9100 7220 PRINT #1;AT 1,4;"ARE THERE SCREENS (Y/N)";"?" 7230 PAUSE 0 7240 LET a$=INKEY$ 7245 CLS 7250 IF a$="Y" OR a$="y" THEN GO TO 7330 7260 IF w<>32 OR ds=1 THEN GO TO 7290 7270 PRINT #3;t$ 7275 BEEP .1,7 7280 GO TO 800 7290 LET s1=1 7300 LET s2=LEN t$ 7305 GO SUB 7500 7310 BEEP .1,7 7315 GO TO 800 7320 REM \''\''\''\''\''\''\''\''\'' SCREEN$ Output 7330 LET b$="SCR$" 7340 LET s2=0 7350 LET d=0 7355 LET s1=s2 7360 IF s1=0 THEN LET s1=1 7365 GO SUB 6500 7370 IF d=1 THEN LET s2=LEN t$ 7375 IF d<>1 THEN LET s2=s2-1 7377 IF s2<=0 THEN GO TO 7400 7380 IF w=32 AND ds=0 THEN LPRINT t$(s1 TO s2) 7390 IF w<>32 OR ds=1 THEN GO SUB 7500 7400 IF d=1 THEN GO TO 7310 7405 GO SUB 9100 7410 PRINT #1;AT 1,8;"START THE TAPE" 7430 LOAD ""SCREEN$ 7450 PRINT #1;AT 1,7;"STOP THE TAPE" 7460 COPY 7470 CLS 7480 LET s2=s2+5 7490 GO TO 7355 7495 REM \''\''\''\''\''\''\''\''\'' Measured Output 7500 IF s1+w-1>=s2 THEN GO TO 7550 7505 OUT 127,15: OUT 127,27: OUT 127,87: OUT 127,1 7510 LPRINT t$(s1 TO s1+w-1) 7520 IF ds=1 THEN LPRINT 7530 LET s1=s1+w 7540 GO TO 7500 7550 LPRINT t$(s1 TO s2) 7560 IF ds=1 THEN LPRINT 7570 RETURN 7590 REM \''\''\''\''\''\''\''\''\''\'' Double Width 7600 LET f=0 7610 LET s1=1 7620 IF s1+w-1=LEN t$ THEN GO TO 7680 7630 LPRINT t$(s1 TO s1+w-1) 7640 IF ds=1 THEN LPRINT 7650 LET s1=s1+(w*2) 7660 IF s1>LEN t$ THEN GO TO 7700 7670 GO TO 7620 7680 LPRINT t$(s1 TO LEN t$) 7690 IF ds=1 THEN LPRINT 7700 IF f=1 THEN GO TO 7310 7710 LET f=1 7720 LPRINT 7730 LPRINT 7740 LET s1=w+1 7750 GO TO 7620 7990 REM \''\''\''\''\''\''\''\''\''\''\''\'' CLEAR TEXT 8000 PRINT #1;AT 0,0;"--------------------------------" 8010 PRINT #1;AT 1,6;"ARE YOU SURE (Y/N)"; "?" 8020 PAUSE 0 8030 LET a$=INKEY$ 8040 IF a$<>"Y" AND a$<>"y" THEN GO TO 800 8050 DIM t$(1) 8060 PRINT AT 9,10;"TEXT CLEARED" 8070 GO TO 800 8490 REM \''\''\''\''\''\''\''\''\'' CHANGE COLORS 8500 GO SUB 9100 8560 PRINT #1;AT 1,5;"PAPER COLOR (0-7)";"?" 8570 PAUSE 0 8580 LET b$=INKEY$ 8590 IF b$CHR$ 56 THEN GO TO 8550 8600 BORDER VAL a$: PAPER VAL b$: INK 9: CLS 8610 BEEP .1,7 8620 GO TO 800 8990 REM \''\''\''\''\''\''\''\''\''\''\''\'' QUICK NOTE 9000 INPUT AT 21,0;"-------------------------------- QUICK NOTE";AT 0,0; LINE a$ 9010 IF a$="" THEN GO TO 800 9020 PRINT #3;a$ 9030 BEEP .1,7 9040 GO TO 9000 9090 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\'' CLS BOTTOM 9100 PRINT #1;AT 0,0;"--------------------------------" 9110 PRINT #1;AT 1,0;" " 9120 RETURN 9190 REM \''\''\''\''\''\''\''\''\''\''\''\''\''\'' CLEAR t$ 9200 LET d=INT (LEN a$/32-.01)+1 9210 DIM u$(LEN t$) 9220 FOR i=1 TO LEN u$ STEP 704 9230 IF i+703>LEN u$ THEN GO TO 9260 9240 LET u$(i TO i+703)=t$(i TO i+703) 9250 GO TO 9270 9260 LET u$(i TO )=t$(i TO ) 9270 NEXT i 9280 DIM t$(LEN u$+d*32) 9290 RETURN 9295 REM \''\''\''\''\''\''\''\''\''\''\'' ADD TEXT #1 9300 FOR i=1 TO d1-1 STEP 704 9310 IF i+703>d1-1 THEN GO TO 9340 9320 LET t$(i TO i+703)=u$(i TO i+703) 9330 GO TO 9350 9340 LET t$(i TO d1-1)=u$(i TO d1-1) 9350 NEXT i 9360 RETURN 9390 REM \''\''\''\''\''\''\''\'' ADD TEXT #2 9400 FOR i=i TO LEN v$ STEP 704 9410 IF i+703>LEN v$ THEN GO TO 9440 9420 LET t$(i+d1-1 TO i+d1+702)=v$(i TO i+703) 9430 GO TO 9450 9440 LET t$(i+d1-1 TO d1-1+LEN v$)=v$(i TO ) 9450 NEXT i 9460 RETURN 9490 REM \''\''\''\''\''\''\''\''\''\'' ADD TEXT #3 9500 LET n=d1-1+LEN a$ 9510 FOR i=1 TO LEN u$-d1 STEP 704 9520 IF i+703>LEN u$-d1 THEN GO TO 9550 9530 LET t$(i+n TO i+n+703)=u$(i+d1-1 TO i+d1-1+703) 9540 GO TO 9560 9550 LET t$(i+n TO )=u$(i+d1-1 TO ) 9560 NEXT i 9570 DIM u$(1) 9580 RETURN 9590 REM \''\''\''\''\''\''\''\''\''PRINT SCREEN 9600 CLS 9605 GO SUB 9100 9610 PRINT #1;AT 1,16-(LEN b$/2) ;b$ 9620 LET b=a+703 9630 IF b>LEN t$ THEN LET b=LEN t$ 9640 PRINT t$(a TO b) 9650 RETURN 9820 REM \''\''\''\''\''\''\''\''\''\''\''\'' START HERE 9830 BEEP .5,10 9840 BORDER 0: PAPER 0: INK 9: CLS 9850 PRINT AT 3,12;"Textype" 9875 DIM t$(1) 9880 LET w=32 9890 POKE 23609,5 9920 GO TO 735 9930 REM \''\''\''\''\''\''\''\''\'' SAVE PROGRAM 9940 CLEAR 9950 SAVE "Textype" LINE 9830 9960 BEEP .1,7 9970 VERIFY "Textype" 9980 BEEP .1,7 9990 STOP ```