--- title: "EASYtype" type: "article" slug: "easytype" url: "http://localhost/article/easytype/" markdown_url: "http://localhost/article/easytype.md" published_at: "2025-02-24T01:44:09+00:00" modified_at: "2026-06-21T23:24:10+00:00" featured_image: url: "http://localhost/wp-content/uploads/2022/04/20230809-041332.jpg" excerpt: "This program is a word-processor, not as complex as expensive ones, but it does have a lot of features worth using, and it loads so fast it's a snap to use it! The features are CENTER TEXT, NORMAL TEXT, PARAGRAPH, TABULATION and automatic WORDWRAP. It prints sideways on the TS2040 printer at up to 128…" category: - name: "Byte Power" slug: "byte-power" taxonomy: "category" url: "http://localhost/category/periodicals/byte-power/" 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/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "Eric Boisvert" slug: "boisvert-eric" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-eric/" publication_r: id: 38570 title: "Byte Power 1st Class Magazine" type: "periodical" url: "http://localhost/periodical/byte-power-1st-class/" authors_r: - name: "Eric Boisvert" slug: "boisvert-eric" taxonomy: "indiv" url: "http://localhost/indiv/boisvert-eric/" issues_articles: - id: 38571 title: "Byte Power Aug 1986" type: "issue" url: "http://localhost/issue/byte-power/" pubdate: "August 1986" archive_link: false article_media: - id: 59109 title: "EASYtype" type: "computer_media" url: "http://localhost/computer_media/easytype/" --- # EASYtype This program is a word-processor, not as complex as expensive ones, but it does have a lot of features worth using, and it loads so fast it’s a snap to use it! The features are CENTER TEXT, NORMAL TEXT, PARAGRAPH, TABULATION and automatic WORDWRAP. It prints sideways on the TS2040 printer at up to 128 columns! Up to 1012 lines are possible, about 5400 words. The keyboard functions are cursor control as BASIC, and INSERT SPACE [SHIFT 1], and DELETE SPACE [SHIFT 9]. By pressing [EXTENDED] then [SPACE], you will obtain the function character, which is used before using any function. To go into MENU MODE, just press [EXTENDED] then [m]. To use a TEXT FUNCTION you must use the FUNCTION CHARACTER then the first letter of the function, then, if needed a number and at the end, always a space. EXAMPLE: CENTER text…(function char)c , remember always a space at the end! The TEXT FUNCTIONS NORMAL default option, the text will be printed with left justification and wordwrap. TABULATION and PARAGRAPH functions will work, in opposite to the CENTER fonction. CENTER will center the text until a NORMAL function is used. TABULATION and PARAGRAPH will not work. TABULATION, I guess you already know that function. The way to use it is a bit different than NORMAL or CENTER. The way you should write it is (function char)T,or (function char)Txx, xx being the TAB value if there is no number after “T”, the last value of “T” will be used, if TAB has not been used the default number is 1/3rd of the width. PARAGRAPH is used at the begining of each paragraph, this function is written like the TAB function but xx is the ident instead, and the default number is 1/8th of the width. In MENU MODE you will be asked to choose PRINT, SAVE, LOAD, CLEAR or QUIT. Remember that at any time you can abort a question by pressing [STOP]. The PRINT option will print the formated text on the TS2040 or compatible all you have to input is the text width (20 to 128) and the N# of copy. You can stop the printing by pressing [STOP]. NOTE that when entering the WIDTH or the N# of COPY you can press ENTER without entering a number,the computer will then take 64 columns or/and 1 copy as the default numbers. P.S. a very special file has been provided with this program it is found just after [EASYtype] and its name is [EASYtype F]. WARNING: do not look at the text, it does not quite make sense. Print it at 50 of text width. When the 4 pages are printed look at all of them one above the other. NOTE, when printing any text at all the computer should not take more than a few seconds to start printing if it takes longer than that you can stop it by pressing [STOP]. The only possible ERROR in that case is that a word has more letters than the text width. Loading Name EASYtype Loading Time 45 seconds Program Type Word-Processor Written by Eric Boisvert ## Source Code: EASYtype ```` 0 REM STEP SIN ▝USR STEP FLASH !<>^$FREE $$FREE $\\T RETURN TtF&db TJT PFREE @FREE @@@@@FREE FREE FREE FREE @@@@> @@ >@ @>B$$BpBbRJFBFREE BB@BBFREE FREE HSTICKJJBD TTTxFREE HHH08DDD0HHHFREE 8TTTHSTICK PLAY PLAY PLAY STICKFREE pHz@@ zFREE $@>@@xxxSTICKx8DDD8 DRAW $$$$$$ DRAW xHTTT >D@<@@@<0@0<@@<@@ LPRINT m▝bk# GO SUB VAL <> RANDOMIZE bk+ GO SUB LN <>©▝©▝▝L©▝ CONTINUE ▜ LOAD ▝▝ FORMAT SAVE __ c \aPrint,Save,Load,Clear,Quit:_Are you sure:_ _ Width:No. of Copy: PRINTING RESTORE FOR FOR LLIST s#r+<> RESTORE ATN FOR GO SUB B PAUSE RESTORE >bkLN CLS EXP SAVE STOP ATN RESTORE FOR B0 CLS MERGE !ON ERR\\>kw!STICK\\>kw!k\\>w!\rk STEP Kl STEP ON ERRk! SPECTRUM k▝ STEP Kl!RNDk GO SUB [ SPECTRUM k STEP Kl!PIk STEP Kl!POINT k STEP Kl!bh: SPECTRUM kw!ATTR k GO SUB [ SPECTRUM k STEP ll!ch:ATTR kw STEP [h!\b\\>w:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h! STEP DIM 0 STEP FOR !TAB k:\\w#6:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!!\b\\>w!CODE k GO SUB [PIk STEP \\l GO SUB KPOINT k STEP Kl GO SUB K SPECTRUM k STEP Kl*TAB k GO SUB R IF nm*TAB kATN GO SUB R PAUSE nmNOT o*TAB kATN GO SUB RCHR$ BEEP mNOT ;p*TAB kATN GO SUB RCHR$ ▄mNOT VAL$ p*TAB kATN GO SUB RCHR$ \lmNOT Wo*TAB kATN GO SUB RCHR$ SCREEN$ mNOT ©o*TAB kATN GO SUB RCHR$ EXP mNOT Rq*TAB kATN GO SUB RCHR$ >=mNOT STEP p*TAB kATN GO SUB RCHR$ BEEP mNOT $q*TAB kATN GO SUB RCHR$ NEW mNOT zq*TAB kATN GO SUB RCHR$ PRINT mNOT CONTINUE q*TAB kATN GO SUB R LINE nNOT REM l!\b\\>w:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h! STEP DIM 0 STEP FOR !TAB k:\\w#6:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!!\b\\>w*TAB kATN GO SUB RCHR$ in!TAB k STEP Kl*TAB kATN GO SUB RCHR$ ▝n!TAB k STEP Kl*TAB kATN GO SUB RCHR$ \jn!TAB k STEP Kl*TAB kATN GO SUB RCHR$ LEN n!TAB k STEP Kl*TAB kATN GO SUB RCHR$ <>n!TAB k STEP Kl*TAB kATN GO SUB RCHR$ LLIST n!TAB k STEP Kl*TAB kATN GO SUB RCHR$ RANDOMIZE n!TAB k STEP Kl*TAB kATN GO SUB RCHR$ oNOT VrNOT 7m*CODE k:TAB kw! FLASH k:TAB kw:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!*TAB kATN GO SUB R LINE Wo*CODE k GO SUB [RNDk GO SUB R IF Wo!RNDk GO SUB [CODE k STEP Kl!POINT k GO SUB [POINT k STEP Kl*POINT kATN GO SUB R LINE soNOT REM l!POINT k STEP Kl!PIk GO SUB [PIk STEP Kl*PIkATN GO SUB RCHR$ \loNOT \ooNOT REM l* SPECTRUM k GO TO ATN GO SUB RCHR$ EXP o!PIk STEP KlNOT REM l! SPECTRUM k GO SUB [ SPECTRUM kUSR STEP Kl!PIk STEP KlNOT TO l* SPECTRUM k▝ATN GO SUB RCHR$ LIST o!PIk STEP KlNOT REM l! SPECTRUM k GO SUB [ SPECTRUM kUSR STEP Ul!PIk STEP Kl*\rkATN GO SUB RCHR$ 8p!\rk STEP Kl:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!NOT TO l!POINT k GO SUB [POINT k STEP Ul*POINT kATN GO SUB R PAUSE STICKp!POINT k STEP Kl!PIk GO SUB [PIk STEP Ul*PIkATN GO SUB R PAUSE STICKpNOT MERGE o*\rkATN GO SUB RCHR$ ATTR p:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!!\rk STEP KlNOT REM l!PIk GO SUB [PIk STEP Ul*PIkATN GO SUB R PAUSE LINE pNOT MERGE oNOT REM l*CODE k GO SUB [RNDk GO SUB R IF CONTINUE p!RNDk GO SUB [CODE k STEP Kl!LEN k GO SUB [CODE k FOR GO SUB \q FOR 6*LEN kATN GO SUB R LINE qNOT so*CODE k>\aw:PIkG:POINT kO STEP SIN k STEP FLASH ! STEP \h!NOT so!\rk STEP Kl*CODE k▝ATN GO SUB R LINE Oq!COS k GO SUB [CODE k STEP Ul*COS k> wNOT ;p!ATTR k:j\\w#6*ATTR kATN GO SUB RCHR$ qq!j\\>wNOT REM l!j\\>wNOT REM l*CODE k GO SUB [RNDk GO SUB R IF ▛qNOT REM l!ASN k GO SUB [CODE k STEP ll!▟k:CODE kw!▙k:ASN kw!ASN k GO SUB [RNDk GO SUB KCODE k STEP Ul STEP Kl!▌k:ASN kw!ASN k GO SUB [ASN k STEP ll!▛k:ASN kw STEP ▞k!RNDk GO SUB [RNDk STEP UlNOT BORDER l*CODE k GO SUB [RNDk GO SUB R IF RANDOMIZE qNOT REM l!RNDk GO SUB [RNDk STEP Kl!ASN k GO SUB [RNDk STEP ll!\jk:RNDkw!\kk:ASN kw!ASN k GO SUB [RNDk GO SUB KCODE k STEP Ul!\gk:ASN kw!ASN k GO SUB [ASN k STEP ll!\hk:ASN kw STEP \fk*CODE k> wNOT BORDER l STEP SIN k STEP FLASH ! STEP \h! STEP DIM 0 STEP FOR !TAB k:\\w#6 STEP ,s*TAB kATN GO SUB RCHR$ ▙rNOT `t*TAB kATN GO SUB RCHR$ AT r STEP s*TAB kATN GO SUB RCHR$ AT rNOT \il*TAB kATN GO SUB RCHR$ LINE r STEP s*TAB kATN GO SUB RCHR$ LINE r STEP *TAB kATN GO SUB RCHR$ READ r!COS k FORMAT STEP Kl<>*TAB kATN GO SUB RCHR$ COPY r STEP ON ERRk!COS k CONTINUE STEP Kl<>NOT REM l STEP SIN k\h! STEP DIM 0 STEP FOR !TAB k:\\w#6 STEP ,s<> STEP SIN l STEP FLASH ! STEP \h!<>!ATN k STEP KlkO STEP SIN l STEP FLASH ! STEP \h! STEP DIM 0 STEP FOR !TAB k:\\w#6*TAB kATN GO SUB RCHR$ ▀sNOT t*TAB kATN GO SUB RCHR$ \as<>!TAB k GO SUB [TAB k0 STEP Ul*TAB k GO SUB R IF TAB sNOT Ls*TAB kATN GO SUB R PAUSE SGN sNOT Ls*TAB kATN GO SUB RCHR$ BEEP s*ATN kATN GO SUB RCHR$ BEEP sNOT LskO STEP SIN GO SUB KTAB k STEP DIM 0 STEP \r1 STEP \h!!ATN k GO SUB [ATN k STEP \\l GO SUB KTAB k STEP Kl!COS k GO SUB [COS k STEP Kl*ATN k GO SUB R IF t<>NOT Ls*ATN kATN GO SUB RCHR$ .tNOT LskO STEP SIN l STEP FLASH ! STEP \h!!ATN k GO SUB [ATN k STEP ll!COS k GO SUB [COS k STEP UlNOT Ls!COS k STEP Kl!EXP k STEP Kl STEP SIN l STEP FLASH ! STEP \h! STEP @s*ATN k GO SUB R IF \rt STEP ,sNOT `t*ATN kATN GO SUB R LINE INT t!EXP k GO SUB [ATN k STEP Ul!SQR k STEP Kl STEP SIN l\h!!COS k STEP Kl STEP @s STEP ,s*ATN kATN GO SUB R LINE u!SQR k GO SUB [ATN k STEP Kl!\\>w STEP SIN l STEP FLASH ! STEP \h!!ABS k STEP Kl!IN k▝ STEP Kl!STR$ k GO SUB [EXP k STEP ll!NOT k GO SUB [EXP k STEP ll! OR k STEP Kl!<=k STEP Kl!COS k LOAD STEP Kl*COS k> w*COS k COPY ATN GO SUB R LINE \fu!COS k GO SUB [COS k STEP KlNOT su!<>k GO SUB [IN k FOR GO SUB \q FOR 6!IN k GO SUB [IN k STEP Kl!ATTR k GO SUB [IN k FOR GO SUB \q FOR 6*<>kATN GO SUB RCHR$ THEN uNOT ▗x*<>kATN GO SUB R LINE PAPER uNOT Aw*ATTR k GO SUB R IF POKE u!ATTR k GO SUB [ATTR k STEP Ul*ABS kATN GO SUB RCHR$ vNOT sv*ATTR kATN GO SUB R LINE NOT ;v STEP BRIGHT v*ATN kATN GO SUB R LINE .v!STR$ k GO SUB [ATN k STEP Kl!<=k GO SUB [STR$ k STEP Ul*ATTR kATN GO SUB R LINE JvNOT sv STEP BRIGHT v*ATN kATN GO SUB R LINE fv!NOT k GO SUB [ATN k STEP Kl!<=k GO SUB [NOT k STEP Ul*ATTR kATN GO SUB RCHR$ ▛v!ABS k STEP Kl*ATTR kATN GO SUB RCHR$ SPECTRUM v!ABS k STEP Kl!<>k GO SUB [IN k FOR GO SUB \q FOR 6*<>kATN GO SUB R LINE TO v!IN k GO SUB [IN k STEP KlNOT SPECTRUM v!IN k GO SUB [IN k STEP KlNOT \fu!ATN k STEP Kl!IN k GO SUB [IN k STEP Kl!COS k GO SUB [IN k FOR GO SUB \q FOR 6!COS k GO SUB [COS k0 STEP Ul*COS kATN GO SUB R PAUSE w<>*COS k GO SUB R IF *w<>!ATN k GO SUB [ATN k STEP \\l GO SUB KCOS k STEP KlNOT CONTINUE v!TAB k:\\w#6*TAB kATN GO SUB RCHR$ ZwNOT ON ERRON ERR!CODE k GO SUB [ OR k▗ STEP \\l GO SUB K<=k STEP Kl© LOAD STEP Kl*CODE k:<>kw*<=k GO SUB [EXP kATN GO SUB R PAUSE \iw!<=k GO SUB [<=k STEP KlNOT \fu*ATTR kATN GO SUB RCHR$ PIwNOT ▗x! THEN k GO SUB [CODE k STEP Kl!LEN k GO SUB [ THEN k FOR GO SUB \q FOR 6*LEN kATN GO SUB R LINE x*LEN kATN GO SUB R LINE x*LEN kATN GO SUB R LINE x*LEN kATN GO SUB R LINE x*LEN kATN GO SUB R LINE x! THEN k GO SUB [ THEN k STEP Ul!IN k GO SUB [IN k STEP UlNOT TAN w* THEN k GO SUB [CODE kATN GO SUB R LINE =x! THEN k GO SUB [ THEN k STEP Kl* THEN k> wNOT x*ABS kATN GO SUB RCHR$ Lx STEP ABS x!<=k STEP Kl! OR k GO SUB [ OR k STEP Kl* OR kATN GO SUB R LINE ▝x*IN k GO SUB [RNDkATN GO SUB R PAUSE ▝xNOT \fuNOT PEEK y!<>k GO SUB [IN k FOR GO SUB \q FOR 6*<>kATN GO SUB RCHR$ INT x!IN k GO SUB [IN k STEP Kl*IN k GO SUB [RNDkATN GO SUB R PAUSE INT xNOT ▗xNOT =x! STEP k STEP Kl!ASN k GO SUB [ OR k▗ STEP \\lFREE LOAD STEP Kl GO SUB KEXP k STEP Kl!<>k GO SUB [ASN k STEP Kl!COS k GO SUB [ASN k GO SUB KEXP k STEP Ul STEP Kl!ATTR k GO SUB [<>k FOR GO SUB \q FOR 6*ATTR kATN GO SUB RCHR$ Hy! STEP k GO SUB [ STEP k STEP Kl*<>k GO SUB [COS k GO SUB R IF Hy!<>k GO SUB [<>k STEP UlNOT y*<>k GO SUB [COS kATN GO SUB RCHR$ Vy<>! STEP k GO SUB [ STEP k STEP ll!\jk:ASN kw!ASN k GO SUB [ASN k STEP ll!\kk:ASN kw!ASN k GO SUB [EXP k STEP Ul!\gk:ASN kw!\hk>w* STEP kATN GO SUB RCHR$ RNDy<> STEP \fk*COS k> w! STEP k GO SUB [ STEP k STEP UlNOT \iy!COS k LOAD STEP Kl!ATTR k GO SUB [COS k FOR GO SUB \q FOR 6*ATTR kATN GO SUB R LINE NEW yNOT z*COS k COPY ATN GO SUB R LINE z!COS k GO SUB [COS k STEP KlNOT LINE yNOT NON ERR! OR k STEP Kl!TAB k:\\w#6*TAB kATN GO SUB RCHR$ *zNOT ON ERRON ERR!<=k STEP Kl!LEN k GO SUB [<=k▗ STEP \\l GO SUB K OR k STEP Kl© LOAD STEP Kl!LEN k GO SUB [LEN k FOR GO SUB \q FOR 6!LEN k GO SUB [LEN k STEP \\lkg STEP Kl! CAT k STEP Kl! MOVE k GO SUB [LEN k GO SUB K CAT k STEP Kl! MOVE k GO SUB [ MOVE k FOR GO SUB \q FOR 6!ATTR k GO SUB [ CAT k STEP \\l!COS k[ GO SUB K<=k STEP Ul GO SUB KATTR k STEP Kl*COS k: MOVE kw! CAT k GO SUB [ CAT k STEP Kl* CAT kATN GO SUB R LINE FLASH zNOT STICKz!<=k GO SUB [<=k STEP Kl*<=kATN GO SUB R LINE RUN zNOT 6z STEP #* OR k GO SUB [EXP kATN GO SUB R LINE OR k GO SUB [ OR k STEP KlNOT STEP #! OR k[ STEP Kl* OR k>▖w! OR k GO SUB [ OR k STEP Kl* OR k[ATN GO SUB R PAUSE HON ERRNOT &ON ERR STEP # STEP #*IN k GO SUB [RNDkATN GO SUB R PAUSE ^ON ERRNOT Ou!SQR k GO SUB [SQR k STEP Ul*SQR k GO SUB R IF ON ERRON ERRNOT u STEP ,sNOT REM l 1 REM Written by E BOISVERT 2 GO TO VAL "1020" 3 CLEAR VAL "33148": PRINT AT VAL "8",VAL "5";"EASYtype, version 1.0"''TAB VAL "7";"© 1986 BYTE POWER"''TAB VAL "3";"Written by Eric Boisvert": IF VAL "PEEK 23681<>0" THEN PAUSE VAL "180": CLS : PRINT AT BIN ,BIN ;: GO TO USR VAL "27770" 4 PRINT AT 18,0;: LIST VAL "9999": STOP 1000 REM LOAD TEXT FILE 1005 GO SUB VAL "3e3" 1010 LOAD n$CODE VAL "33149": LET lc=VAL "PEEK 33149+PEEK 33150*256+33149": POKE VAL "27557",VAL "lc-256*INT (lc/256)": POKE VAL "27558",INT (lc/VAL "256") 1020 POKE VAL "23659",VAL "1": PRINT AT NOT PI,NOT PI: GO TO VAL "USR 27879" 2000 REM SAVE TEXT FILE 2005 GO SUB VAL "3e3": IF n$="" THEN GO TO VAL "2e3" 2010 LET a=VAL "PEEK 27557+256*PEEK 27558-33148": POKE VAL "33149",VAL "a-256*INT (a/256)": POKE VAL "33150",INT (a/VAL "256"): SAVE n$CODE VAL "33149",a 2020 CLS : PRINT "VERIFY:";n$ 2030 VERIFY n$CODE : GO TO VAL "1020" 3000 POKE VAL "23659",VAL "2": CLS : INPUT "NAME:"; LINE n$ 3010 IF LEN n$>VAL "10" THEN GO TO VAL "3e3" 3020 RETURN 9999 SAVE "EASYtype" LINE VAL "3": VERIFY "EASYtype" ````