LABEL MAKER MODIFICATION
Dear Misters Duncan:
Thank you for the February/March issue and your renewed commitment to TS Horizons. I have very much enjoyed your magazine and look forward to continuing to receive it even if it’s somewhat less frequently. So keep it coming.
Bill Ferrebee‘s program “Label Maker”, that appeared in your February/March issue and, I think, every other TS magazine I receive, is a handy program. But many printers do not respond to LPRINT TAB and some readers may have difficulty getting the program to work right. The enclosed listing shows my modification that works with the Aerco interface and the Olivette PR 2300 Printer. Maybe it can help some other reader to utilize this fine program.
Thank you again for a very good magazine in the past and in the future.
Sincerely, T. L. McCorkle, Monticello, IL
Thank you for the program modification. It is printed elsewhere in this section. R.D.
10 CLS : INPUT "Program Title:";a$
12 IF LEN a$>32 THEN GO TO 10
14 PRINT TAB 16-(LEN a$/2);a$
20 INPUT "Line #2 Info:";b$
22 IF LEN b$>32 THEN GO TO 20
24 PRINT TAB 16-(LEN b$/2);b$
30 INPUT "Line #3 Info:";c$
32 IF LEN c$>32 THEN GO TO 30
34 PRINT TAB 16-(LEN c$/2);c$
38 PRINT : PRINT : PRINT : PRINT : PRINT
40 INPUT "Bottom Line :";d$
42 IF LEN d$>32 THEN GO TO 40
44 PRINT TAB 16-(LEN d$/2);d$
50 PRINT AT 21,8; FLASH 1;"Correct (y/n)"
52 IF INKEY$="" THEN GO TO 52
54 IF INKEY$="n" THEN GO TO 10
100 PRINT AT 21,8;" ": INPUT "Number of copies :";x
110 FOR i=1 TO x
115 FOR j=1 TO (32-LEN a$) STEP 2: LPRINT " ";: NEXT j
120 LPRINT a$
121 FOR j=1 TO (32-LEN b$) STEP 2: LPRINT " ";: NEXT j
122 LPRINT b$
123 FOR j=1 TO (32-LEN c$) STEP 2: LPRINT " ";: NEXT j
124 LPRINT c$
126 LPRINT : LPRINT : LPRINT : LPRINT : LPRINT
127 FOR j=1 TO (32-LEN d$) STEP 2: LPRINT " ";: NEXT j
128 LPRINT d$
130 LPRINT : LPRINT
132 NEXT i
140 INPUT "More? (y/n):";x$
142 IF x$="y" THEN GO TO 100
150 INPUT "Another title? (y/n):";x$
152 IF x$="y" THEN GO TO 10
160 CLS : PRINT AT 10,8;"[Work Complete]": STOP
9982 REM GOTO here to save BASIC Program and machine code PRINTDRIVER on tape
9983 REM
9984 SAVE "PRINT" LINE 9990: SAVE "PRCODE"CODE 64256,1111
9985 REM
9986 REM Jump to start of your BASIC program
9987 REM
9988 GO TO 1
9989 REM
9990 REM GOTO here to initialize BASIC and load machine code PRINT DRIVER
9991 REM
9992 CLEAR 64255: LET PRINTORG=64261: POKE 26704,INT (PRINTORG/256): POKE 26703,PRINTORG-(INT (PRINTORG/256))*256: LET MODE=64256: LET TRASH=MODE+1: LET POS=TRASH+1: LET WIDTH=POS+1: POKE MODE,1: POKE POS,0: POKE TRASH,0: POKE WIDTH,79: LOAD ""CODE 64256,1111
9993 BORDER 5: PAPER 6: POKE 23609,20
9994 REM Jump to start of your BASIC program
9995 REM
9996 GO TO 1
9998 CLS : PRINT AT 8,0;"Looking for program from tape...",,,,,,,,,"Start Tape Recorder": LOAD ""
LITTLE GOODIES REVISTED
Dear Rick:
I tried some of those goodies by George Mockridge that you printed in the middle of [issue 17] and some of them worked pretty good. Some of them need a little more explanation on how to use them. Some of the things appear to be usable only with the TS 2040 printer. If I entered OPEN#2 as a BASIC line the computer would not enter it. I recalled that I had come across an article of a similar nature. After a search I found it in SYNTAX of April 1984, page #3. That article showed it had to be entered as OPEN#2,”P”. Entering it that way enabled it to work. The computer would allow no other punctuation mark for entry other than the comma. The SYNTAX article showed “P” for printer, “S” for screen, and “K” for the bottom of the screen. The “copy screen without using the COPY” command would work on an 80-column printer but would not limit itself to 32 columns. The way I got around that was to place an LPRINT after the NEXT X. I also found I could indent the whole copy by placing LPRINT TAB 8; after the FOR I=0 TO 21 statement.
James Brezina, Elmhurst, IL
Thank you, James, for that clarification. For more information on OPEN# and CLOSE# see Doug Gangi‘s article in TSH no. 12, page 19. R.D.
Dear Sir,
Your “Little Goodies” for the 2068 was great. I hope we can get more important information like this. I don’t understand the vertical line in #13 and #14. It doesn’t seem to make sense as the variable i.
Keep up the fine work.
Cordially, Byron DeFries, Bonduel, WI
I can certainly understand why #13 and #14 didn’t make sense to you and several other readers. Actually the vertical lines in both instances should have been the upward-pointing arrows that are used to indicate exponents in 2068 BASIC. (This arrow is identical to the double asterisk(**) on the TS 1000 and some other computers.) In Mr. Mockridge’s original article they were correct. Also we made additional mistake in #13, which should read:
(13) LET x = INT ( x * 10↑y + .5 ) / 10↑y
Number 14 is correct if the lines are replaced with arrows. Here is an example which may help to clarify the use of this routine. In conventional algebraic notation, the above equiation would read:

where x(r) is the rounded number. Substituting 3.14159 for x and 3 for y (i.e., three decimal places):

So there you have it. This is a handy routine for many financial programs, for example, to round off to dollars and cents. NOTE: Negative values of y can be used, say -3 to round off to the nearest thousand. R.D.
One more clarification is in order while we are on the subject. In “goodie” #17 (“Gives line feed to print statement”) the punctuation following PRINT is three apostrophes. This command causes the computer to print one blank line for each apostrophe: 3 blank lines in this case. The same technique works for LPRINT – only the blank lines are printed on the 2040 printer. R.D.
USER GROUPS
Dear Rick,
I live in an area that is devoid of a User’s Group. That is it was till last Christmas-New Years holidays and I put an ad in the paper. Now we have a User’s Group, four people including myself. Our third meeting is coming up March 23. Last meeting two members worked on a machine code program for the 2068. Just listening I am picking up a little. It is hard to learn when some simple thing is not clear and it takes months to find an answer. Now I have several friends to call up and ask.
Sincerely, Donald Lambert, Cedar Rapids IA
Dear Donald, as your experience proves even a small group of people can create a very successful user group. Some of the most active TS user groups have only a handful of members.
TS Horizons is starting a couple of new services that perhaps can help user groups like yours. First if you are interested in contacting other Timex users in your area we can provide you with the names and addresses of our subscribers who live within the Zip Codes you request.
Secondly, with this issue TS Horizons is starting a free service to our subscribers. FREE classified ads. The classified section will be a great place to attract interest in your user group. See this issue’s ENTER section for details. R.D.
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.