--- title: "Word Processor File Converter" id: 72777 type: "computer_media" slug: "word-processor-file-converter" url: "http://localhost/computer_media/word-processor-file-converter/" markdown_url: "http://localhost/computer_media/word-processor-file-converter.md" published_at: "2026-10-27T12:29:13+00:00" modified_at: "2026-10-27T12:29:13+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/w-1.png" excerpt: "Converts word processor files between Tasword II and MScript in either direction, with an editable table that maps Tasword graphics characters to MScript printer codes." post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - 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: "Steve Gunhouse" slug: "steve-gunhouse" taxonomy: "indiv" url: "http://localhost/indiv/steve-gunhouse/" genre: - name: "Word Processor" slug: "word-processor" taxonomy: "genre" url: "http://localhost/type/word-processor/" media_type: "Program" programmers: - name: "Steve Gunhouse" slug: "steve-gunhouse" taxonomy: "indiv" url: "http://localhost/indiv/steve-gunhouse/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Word%20Processor%20File%20Converter%20%281990%29%28Gunhouse%2C%20Steven%20V.%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Word Processor File Converter (1990)(Gunhouse, Steven V.)(TS2068)(US)(Program)/Word Processor File Converter (1990)(Gunhouse, Steven V.)(TS2068)(US)(Program).tap" mediadate: "1990" images: - url: "http://localhost/wp-content/uploads/2026/10/w-1.png" - url: "http://localhost/wp-content/uploads/2026/10/w-2.png" - url: "http://localhost/wp-content/uploads/2026/10/w-3.png" article_media: - id: 23207 title: "Letter from Steve Gunhouse: Tasword -> MScript" type: "article" url: "http://localhost/article/letter-from-steve-gunhouse-tasword-mscript/" related_content: - id: 50566 title: "MScript (FD68)" type: "computer_media" url: "http://localhost/computer_media/mscript-fd68/" - id: 51793 title: "Tasword II" type: "computer_media" url: "http://localhost/computer_media/tasword-ii/" media_type_tags: "Word Processor" license: false --- # Word Processor File Converter Word Processor File Converter converts text files between Tasword II and MScript, in either direction. Tasword keeps text as fixed 64-character lines, while MScript uses free-running text with carriage returns. The program loads a file as CODE at 46080, converts it with a 300-byte machine code routine, reports the new length and saves the result under a name you give. A third option shows the sixteen Tasword graphics characters next to the MScript printer codes they become, and lets you change any of them; option 4 saves the program with your table. The title screen reads “Word Processor File Converter by Steven V. Gunhouse”. Gunhouse described converting Tasword files for MScript in a letter in *Sinc-Link* (Jul/Aug 1990), linked below. ## Program Analysis The BASIC is a short menu driver. `RANDOMIZE USR 33000` initialises the code, and the conversion entry point is `USR (33016+97*o)`, where `o` is 0 for Tasword to MScript and 1 for the reverse; the function returns the length of the converted text, which is built at 33280. The graphics table sits at 32896–32911 (stock Tasword graphics 128–135 and their shifted forms 136–143), and option 3 pokes new letters into it. ### Notable Techniques - The output file name defaults to the input name, and a missing extension gets `.CT` appended. - `POKE 23617,2` before the graphics prompt puts the INPUT cursor in graphics mode, so you can type the graphics character itself. ### Potential Issues - The file-name check insists on a Larken-style name: a dot followed by a `C` extension, nine characters at most. This copy came from the TTSUC Larken library disk L-51, “MSCRIPT SUPPORT DISK”. For tape, the LKDOS prefixes, the disk catalogues and the disk file-not-found check were removed, and Quit now stops the program instead of returning to the disk menu. Tested in ZEsarUX, converting a Tasword file to MScript. ## Source Code ``` 100 CLS : PRINT AT 3,9;"Word Processor";AT 5,9;"File Converter" 110 PLOT 47,111: DRAW 0,49: DRAW 169,0: DRAW 0,-49: DRAW -169,0 120 PRINT AT 7,6; INVERSE 1;"by Steven V. Gunhouse" 130 PRINT AT 10,0;"Options:" 140 PRINT '"1. Convert Tasword to MScript"'"2. Convert MScript to Tasword"'"3. Change printer codes" 150 PRINT "4. Save this program" 160 PRINT "5. Quit" 170 PRINT ''"Your choice? "+CHR$ 8; 180 LET a$=INKEY$: IF a$<"1" OR a$>"5" THEN GO TO 180 190 PRINT a$ 200 IF a$="3" THEN GO TO 480 210 IF a$="4" THEN GO TO 9900 220 IF a$="5" THEN STOP 230 LET o=VAL a$-1 240 LET o$=("Tasword" AND NOT o)+("MScript" AND o) 250 LET n$=("Tasword" AND o)+("MScript" AND NOT o) 260 RANDOMIZE USR 33000 270 CLS 280 INPUT (o$);" file to LOAD? ", LINE f$ 290 IF f$="" THEN GO TO 280 300 FOR i=1 TO LEN f$: IF f$(i)<>"." THEN NEXT i: LET f$=f$+".CT" 310 IF i<>LEN f$-2 OR LEN f$>9 THEN PRINT AT 10,0;"Invalid file name!": GO TO 280 320 IF f$(i+1)<>"C" THEN PRINT AT 20,0;"Invalid file name!": GO TO 280 330 CLS : PRINT AT 10,0;"Loading ";f$ 340 LOAD f$CODE 46080 350 REM (disk file-not-found check removed for tape) 360 LET len=USR (33016+97*o) 370 PRINT '''n$;" file length:"'len;" bytes" 380 INPUT "Save ";(n$);" file as? ", LINE s$ 390 IF s$="" THEN LET s$=f$ 400 FOR i=1 TO LEN s$: IF s$(i)<>"." THEN NEXT i: LET s$=s$+".CT" 410 IF i<>LEN s$-2 OR LEN s$>9 THEN PRINT "Invalid file name!": GO TO 380 420 IF s$(i+1)<>"C" THEN PRINT "Invalid file name!": GO TO 380 430 PRINT '"Saving ";s$ 440 SAVE s$CODE 33280,len 450 CLS 460 PRINT #1;"Press any key." 470 PAUSE 0: INPUT ;: GO TO 100 480 CLS : PRINT "Change printer codes." 490 PRINT '"Current printer codes:"'"Tasword","MScript" 500 FOR i=0 TO 7: PRINT "GRAPHICS-";i+(8 AND NOT i);" "; PAPER 5;CHR$ (128+i); PAPER 7," @";CHR$ PEEK (32896+i) 510 PRINT " GR Shift-";i+(8 AND NOT i);" "; PAPER 5;CHR$ (143-i); PAPER 7," @";CHR$ PEEK (32911-i): NEXT i 520 PRINT '"Press ENTER to return to menu." 530 POKE 23617,2: INPUT "Graphics code to change? ";g$ 540 POKE 23617,0 550 IF g$="" THEN GO TO 100 560 IF g$CHR$ 143 THEN GO TO 530 570 INPUT "Change "; PAPER 5;(g$); PAPER 7;" to: ";a$ 580 IF LEN a$>1 THEN GO TO 480 590 IF a$="" THEN GO TO 610 600 IF a$<"A" OR a$>"Z" AND a$<"a" OR a$>"z" THEN GO TO 480 610 POKE 32768+CODE g$,CODE a$ 620 GO TO 480 9800 CLEAR 32895 9810 LOAD "WPConv.C2"CODE 9820 GO TO 100 9900 SAVE "WPConv.B2" LINE 9800 9910 SAVE "WPConv.C2"CODE 32896,300 9920 GO TO 100 ```