ETAMITLU – The Simplest Word Processor

Publication: SyncWare News
Pub Details: SyncWare News v5 n4 (Volume 5, Issue 4)
Date: March/April 1988
Pages: 18-19

Don’t ask me how to pronounce that word. Don’t ask what it means, either. If you know how my mind works, you won’t have to ask. If you don’t–well, you remember what Louie Armstrong said about jazz: “If you have to ask what it is, you wouldn’t understand the answer.”

Be that as it may, this is the simplest word processor of all. Don’t be afraid to use it, if you have an article that is just begging to be written but you don’t have MEMOTEXT or MSCRIPT.

The program is simplicity itself. Figure 1 LISTs the 2068 program, with an abridged version of this article in it. Figure 2 is the “empty” TS1000 version.

As you can see, the text is stored as successive lines of string variable, designated as a$. The operation of the SAVE, PRINTOUT, and DISPLAY sections should be apparent. The DISPLAY routine lists the line numbers, as well as the text, to make it easy to locate any errors that are detected.

Line 9160 determines which lines will be printed or displayed.

Just a word about the machine code section. This is a simple line renumbering sequence, established by DATA/READ statements in the 2068, and residing in the first REM line in the TS1000 version. It serves the two functions of POKEing zero as the number of the first line, to protect it from inadvertent erasure, (actually, this is done by Line 9510 of the TS1000 version) and of letting you tidy things up if you want to insert or DELETE lines as your article takes shape. Just RUN the program after you make the insertion or deletion, and everything “neatens up” as pretty as my granddaughter in her Sunday clothes.

If you use this processor to prepare an article for SyncWare News, remember that our format is 52 characters per line. For your information, a 52-character line looks like this in the LISTing:

xxxx LET a$="1234567890123456789012345678901234567890123456789012"

The program does not renumber Line 2 (Line 5 in the TS1000 version). Also it leaves lines numbered higher than 8959 (=256*35-1) unchanged.

   1 REM ▒▒ 5▒RNDY?W7▒4 UNPLOT 7▒COS YS▒ SAVE ?7? FAST 5▒ ▒?? LPRINT ?▒RND
5 GOTO 9000
10 LET A$="THE WORLD KNOWS THAT"
15 RETURN
20 LET A$="BASIL"
25 RETURN
30 LET A$="LOVES"
35 RETURN
40 LET A$="JOCELYN"
45 RETURN
8999 STOP
9010 RAND USR 16514
9020 CLS
9030 PRINT ,,,"DO YOU WANT"
9040 PRINT ,," DISPLAY?"
9050 PRINT ,," PRINTOUT?"
9070 PRINT ,,,,,,"(PRESS INITIAL LETTER)"
9080 SLOW
9100 IF INKEY$="" THEN GOTO 9100
9110 FAST
9120 LET C=CODE INKEY$
9130 IF C<>41 AND C<>53 THEN GOTO 9080
9135 CLS
9140 FOR F=10 TO 50 STEP 10
9150 GOSUB F
9160 IF C=41 THEN GOTO 9200
9170 LPRINT A$
9180 GOTO 9210
9200 PRINT F;" ";A$
9210 NEXT F
9300 STOP
9500 SAVE "ETAMITL▒"
9510 POKE 16510,0
9520 LIST

TS1000 ETAMITLU LISTING

16514 1
16515 5
16516 0
16517 33
16518 129
16519 64
16520 62
16521 117
16522 60
16523 35
16524 190
16525 32
16526 252
16527 35
16528 190
16529 200
16530 62
16531 33
16532 190
16533 248
16534 112
16535 35
16536 113
16537 229
16538 33
16539 5
16540 0
16541 9
16542 68
16543 77
16544 225
16545 195
16546 136
16547 64

MACHINE CODE FOR TS1000 ETAMITLU

(SEE BASIL/S COMPENDIUM CHAPT. 2 IN SYNCWARE NEWS, VOL. 2, NO.2

   1 GO TO 9000
2 LET a$="": RETURN
10 LET a$="": RETURN
20 LET a$="": RETURN
30 LET a$="": RETURN
40 REM lines 40 to....
620 REM ...620
630 LET a$="": RETURN
640 LET a$="The program does not renumber Line 2 (Line 5 in the ": RETURN
650 LET a$="TS1000 version). Also it leaves lines numbered higher": RETURN
660 LET a$="than 8959 (=256*35-1) unchanged.": RETURN
670 LET a$=CHR$ 12: RETURN
680 LET a$="": RETURN
8998 RETURN
8999 STOP
9000 REM LPRINT and PROOFREAD
9010 RANDOMIZE USR 65000
9020 CLS
9030 PRINT ''"Do you want"
9040 PRINT ''" Display?"
9050 PRINT '" Printout?"
9060 PRINT '" Edit or Enter text?"
9070 PRINT ''"(Press initial letter)"
9080 IF INKEY$<>"" THEN GO TO 9080
9090 IF INKEY$="" THEN GO TO 9090
9100 LET C=CODE INKEY$
9110 LET C=C*((C=68)+(C=69)+(C=80)+(C=100)+(C=101)+(C=112))
9120 IF C=0 THEN GO TO 9080
9130 CLS
9140 LET C=C-32*(C>80)
9150 IF C=69 THEN LIST
9160 LET P=(C=80)
9170 FOR F=20 TO 670 STEP 10
9180 GO SUB F
9190 IF P THEN LPRINT a$: GO TO 9210
9200 PRINT F;" ";a$
9210 NEXT F
9550 BEEP .3,12: BEEP 1,12
9799 STOP
9800 REM SAVE
9805 POKE 23636,104
9810 SAVE "ETAMITLU" LINE 9860
9820 BEEP .3,12: BEEP 1,12
9830 VERIFY ""
9840 BEEP .3,16: BEEP 1,16
9850 STOP
9860 CLEAR 65000: REM if varied, change lines 9010 and 9875 accordingly
9865 POKE 23636,105: POKE 26802,251: RANDOMIZE USR 26921
9870 RESTORE
9875 FOR f=65000 TO 65036
9880 READ a
9890 POKE f,a
9900 NEXT f
9910 BEEP .3,12: BEEP 1,12
9920 DATA 42,83,92,35,54,0,1,25,0
9930 DATA 9,17,10,0,1,10,0,62,13
9940 DATA 35,190,32,252,35,62,35
9950 DATA 190,200,190,216,114,35,115,235,9
9960 DATA 235,24,235

2068 LISTing for ETAMITLU

Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.