--- title: "REVIEW: Textwriter 1000" type: "article" slug: "review-textwriter-1000" url: "http://localhost/article/review-textwriter-1000/" markdown_url: "http://localhost/article/review-textwriter-1000.md" published_at: "2026-07-29T05:46:45+00:00" modified_at: "2026-07-29T05:50:58+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "Upon loading the program auto-runs and you are faced choices with the menu. Five choices are subdivided into 2 categories. The first category gives you the choice of beginning a file, displaying the current file, and saving a file. tThe second category gives you two choices of printing in double or single spacing." category: - name: "Quarters" slug: "quarters" taxonomy: "category" url: "http://localhost/category/periodicals/quarters/" post_tag: - name: "Curry Computer" slug: "curry-computer" taxonomy: "post_tag" url: "http://localhost/tag/curry-computer/" - name: "Software review" slug: "software-review" taxonomy: "post_tag" url: "http://localhost/tag/software-review/" - name: "Tesseract Software Development" slug: "tesseract-software-development" taxonomy: "post_tag" url: "http://localhost/tag/tesseract-software-development/" - name: "TS 1000" slug: "ts1000" taxonomy: "post_tag" url: "http://localhost/tag/ts1000/" model: - name: "Timex/Sinclair 1000" slug: "ts-1000" taxonomy: "model" url: "http://localhost/model/ts-1000/" indiv: - name: "Peter Stawasz" slug: "peter-stawasz" taxonomy: "indiv" url: "http://localhost/indiv/peter-stawasz/" publication: "QuarTerS" publication_r: id: 21505 title: "QuarTerS" type: "periodical" url: "http://localhost/periodical/quarters/" authors_r: - name: "Peter Stawasz" slug: "peter-stawasz" taxonomy: "indiv" url: "http://localhost/indiv/peter-stawasz/" issues_articles: - id: 37930 title: "Quarters Fall 1985" type: "issue" url: "http://localhost/issue/quarters-fall-1985/" pages: "13" pubdate: "Fall 1985" product_reviews: - id: 25303 title: "Textwriter 1000" type: "product" url: "http://localhost/product/textwriter-1000/" archive_link: false article_media: - id: 56730 title: "TextWriter 1000" type: "computer_media" url: "http://localhost/computer_media/textwriter-1000/" --- # REVIEW: Textwriter 1000 Upon loading the program auto-runs and you are faced choices with the menu. Five choices are subdivided into 2 categories. The first category gives you the choice of beginning a file, displaying the current file, and saving a file. tThe second category gives you two choices of printing in double or single spacing. ## Source Code: TextWriter 1000 ``` 10 LET LL=-1 20 DIM M$(1) 30 LET Z$="" 35 LET Y=1 40 LET W=0 42 SLOW 45 CLS 47 LET X=1 50 PRINT AT 3,8;"%T%E%X%T%W%R%I%T%E%R% %1%0%0%0";AT 5,15-LEN T$/2;T$ 55 PRINT ,,"%M%E%N%U",,,,"1) DISPLAY CURRENT TEXT FILE","2) START NEW FILE","3) SAVE FILE",,,,"%P%R%I%N%T",,,,"4) SINGLE SPACE",,"5) DOUBLE SPACE" 60 INPUT LN 70 CLS 80 IF LN=2 THEN GOTO 115 85 IF LN=3 THEN GOTO 3000 95 PRINT AT 18,0;"ENTER START LINE","LAST TEXT ON ";M;"(";Z;")" 97 INPUT LB 100 LET W=LB-1 102 IF LN=1 THEN GOTO 112 104 PRINT AT 18,6;"FINAL" 106 INPUT LE 110 GOTO 5500 112 FAST 113 CLS 114 GOTO 610 115 PAUSE 120 117 LET M=0 118 PRINT AT 20,0;"ENTER LINES REQUIRED" 119 INPUT Z 120 DIM B$(Z,32) 122 CLS 125 FAST 130 GOSUB 920 135 DIM E(5) 137 LET ST=0 140 FAST 145 PRINT AT X,Y-1;CHR$ (CODE B$(W+X,Y)+128) 160 PAUSE 50000 170 LET A$=INKEY$ 175 IF Y=33 THEN GOTO 500 180 IF CODE A$>63 THEN GOTO 310 185 IF W+X>M THEN LET M=W+X 190 LET B$(W+X,Y)=A$ 200 PRINT AT X,Y-1;B$(W+X,Y) 210 LET Y=Y+1 211 IF Y=33 THEN GOTO 970 215 GOTO 145 230 IF CODE A$=121 THEN GOSUB 800 240 LET Y=1 250 IF CODE A$=112 THEN LET X=X-2 251 IF W+X=Z THEN GOTO 145 252 LET X=X+1 270 IF X>21 THEN GOTO 1020 280 IF X<1 AND W>0 THEN GOTO 1000 285 IF X>21 THEN LET X=21 287 IF X<1 THEN LET X=1 290 GOTO 145 310 LET A=CODE A$ 315 IF A=117 THEN GOTO 1500 320 IF A<114 THEN GOTO 900 330 IF A=118 THEN GOTO 420 340 IF A=115 THEN GOTO 200 345 IF A=229 THEN GOTO 700 350 IF A=227 THEN GOTO 42 355 IF A=121 AND E(1)>1 THEN GOTO 4062 360 IF A=121 THEN GOTO 230 365 IF A=224 THEN GOTO 4000 370 GOSUB 800 375 IF A=119 THEN GOSUB 940 380 LET Y=Y-1 390 IF Y<1 THEN LET X=X-1 400 IF Y<1 THEN LET Y=32 410 GOTO 280 420 GOSUB 940 440 GOTO 210 500 IF CODE A$>63 THEN GOTO 525 510 LET Z$=Z$+A$ 515 IF X<21 THEN PRINT AT X+1,0;Z$ 520 GOTO 160 525 IF Z$="" THEN GOTO 240 528 LET T=W+X 530 LET D$=B$(T) 540 LET Y=Y-1 550 IF D$(Y)=" " THEN GOTO 565 560 GOTO 540 565 LET YY=LEN (D$(Y+1 TO )+Z$)+2 570 IF T=Z THEN GOTO 610 575 LET B$(T+1, TO YY)=D$(Y+1 TO )+Z$ 580 LET B$(T,Y TO )="" 590 LET Y=YY 592 LET Z$="" 593 PRINT AT X,0;B$(T) 595 IF X=21 THEN GOTO 1020 600 PRINT B$(T+1) 605 GOTO 252 610 LET O=21 613 IF W+O>Z THEN GOSUB 760 617 LET R=1 618 IF A=117 AND W+O<>Z THEN LET R=X 619 GOSUB 920 620 PRINT AT R,0; 621 IF A<>118 AND A<>121 THEN SLOW 622 FOR J=R TO O 625 PRINT B$(W+J) 630 NEXT J 660 GOTO 140 700 IF W+22>Z THEN GOTO 160 710 LET W=W+21 720 LET X=1 730 GOTO 610 760 CLS 770 LET O=Z-W 780 RETURN 800 PRINT AT X,Y-1;B$(W+X,Y) 810 RETURN 900 GOSUB 800 910 GOTO 250 920 PRINT AT 0,29;" " 922 PRINT AT 0,0;"%T%Y%P%E% %M%O%D%E LINE ";W+1;" " 925 IF LL<>-1 THEN PRINT AT 0,19;"M:";D;"-";F 930 RETURN 940 PRINT AT X,Y-1;" " 950 LET B$(W+X,Y)=" " 960 RETURN 970 IF CODE A$=118 OR CODE A$=115 THEN GOTO 230 980 GOTO 160 1000 LET W=W-10 1006 IF W<0 THEN LET W=0 1008 LET X=10 1010 GOTO 610 1020 IF W>Z-21 THEN GOTO 140 1025 LET W=W+10 1030 LET X=12 1050 GOTO 610 1500 PRINT AT 0,0;"%E%D%I%T%:%E%N%T%E%R% %A%C%*%/%A%L%*%/%D%L%*%/%C%/%M%M%*%/%M%P% " 1520 LET Q=Y 1525 LET T=W+X 1530 INPUT C$ 1540 IF C$="" THEN GOTO 610 1545 IF C$="MP" THEN GOTO 2890 1550 IF C$="C" THEN GOTO 2000 1555 LET C=1 1560 IF LEN C$>2 THEN LET C=VAL C$(3 TO ) 1570 IF C$( TO 2)="AL" THEN GOTO 2300 1575 IF C$(1)="A" THEN GOTO 2520 1580 IF C$(1)="D" THEN GOTO 2450 1590 GOTO 2800 2000 FOR L=Y TO 32 2010 IF CODE B$(T,L)>0 THEN GOTO 2030 2020 NEXT L 2030 LET B$(T,Y TO )=B$(T,L TO ) 2040 FOR N=L-Y TO 31 2050 IF CODE B$(T,32-N)>0 THEN GOTO 2070 2060 NEXT N 2065 GOTO 2080 2070 IF B$(T,32-N)="-" THEN LET N=N+2 2080 LET T=T+1 2085 IF T>Z THEN GOTO 2210 2090 IF B$(T,1)=" " THEN GOTO 2210 2100 FOR Y=N TO 1 STEP -1 2110 IF CODE B$(T,Y)=0 THEN GOTO 2150 2120 NEXT Y 2130 GOTO 2210 2150 IF N=32 THEN LET N=33 2160 LET B$(T-1,34-N TO )=B$(T, TO Y-1) 2170 LET L=Y+1 2180 LET Y=1 2190 GOTO 2030 2210 LET Y=Q 2220 IF C$(1)="A" THEN GOTO 2580 2230 GOTO 610 2250 LET C=LL+1 2300 IF Z-M"L" THEN GOTO 2610 2380 GOTO 610 2400 LET B$(T, TO Y-1)=B$(T+C, TO Y-1) 2410 LET B$(T+C, TO Y-1)="" 2420 RETURN 2450 IF T+C>M+1 THEN LET C=M+1-T 2455 FOR K=T TO M-C 2480 LET B$(K)=B$(K+C) 2490 NEXT K 2495 FOR K=K TO M 2500 LET B$(K)="" 2505 NEXT K 2508 LET M=M-C 2510 GOTO 610 2520 LET P=C 2525 LET B=0 2540 IF P>33-Y THEN LET P=33-Y 2550 FOR J=33-P TO 32 2560 IF B$(T,J)<>" " THEN GOTO 2700 2570 NEXT J 2580 LET T=W+X 2583 IF B>0 THEN LET B$(T,Y+P TO )=B$(T,Y TO B-1) 2584 IF B>0 THEN GOTO 2590 2585 LET B$(T,Y+P TO )=B$(T,Y TO 32-P) 2590 LET B$(T,Y TO Y+P-1)="" 2600 GOTO 610 2610 FOR B=33-P TO Y STEP -1 2620 IF B$(T-1,B)=" " THEN GOTO 2640 2630 NEXT B 2640 LET B$(T)=B$(T-1,B+1 TO ) 2645 LET L=Y 2650 GOTO 2040 2700 LET T=T+1 2710 LET C=1 2720 GOTO 2305 2800 LET LL=C-1 2820 DIM M$(C,32) 2825 LET D=T 2827 IF LL<50 THEN SLOW 2828 IF T+LL>Z THEN LET LL=Z-T 2830 FOR J=0 TO LL 2840 LET M$(J+1)=B$(T+J) 2850 IF T+J-W<22 THEN PRINT AT T+J-W,0;CHR$ (CODE B$(T+J,1)+128) 2870 NEXT J 2872 LET F=T+LL 2875 FAST 2878 PRINT AT R,0; 2880 GOTO 610 2890 IF T+LL>Z THEN LET LL=Z-T 2895 IF T<=M THEN GOTO 2250 2898 FOR J=0 TO LL 2900 LET B$(T+J)=M$(J+1) 2920 NEXT J 2925 IF T+LL>M THEN LET M=T+LL 2930 GOTO 610 3000 CLS 3010 PRINT AT 10,5;"ENTER TITLE TO RECORD" 3015 INPUT T$ 3018 CLS 3020 SAVE T$ 3030 GOTO 30 4000 IF Y=1 THEN GOTO 135 4005 LET ST=ST+1 4010 IF ST>5 THEN GOTO 4040 4020 LET E(ST)=Y 4030 GOTO 145 4040 PRINT AT 0,19;"%5% %T%A%B%S% %M%A%X" 4045 PAUSE 60 4050 GOSUB 920 4055 GOTO 160 4062 GOSUB 800 4065 FOR J=1 TO 6 4070 IF J=6 THEN GOTO 230 4080 IF Y