Authors
Christopher Raynak; John Marion
Publication
Publication Details
Date
April 1994
Pages
9
See all articles from LISTing Newsletter April 1994
This is a short program to print long banners featuring large characters on the 2040 printer. Unlike some other banner programs, you do not have to type DATA statements that contain each character’s dot makeup. This program looks directly into the ROM for the dot patterns. The 2068 stores each scan line of dots as a single decimal number. This is unlike the TS 1000 which its dot patterns as binary 1s and 0s. In the 2068 ROM they start at address 15359. This program works with all characters except inverse and user defined and regular graphics.
1 DIM B$(8,8)
2 PAPER 0: BORDER 0: INK 7: CLS
3 PRINT AT 10,4;"BANNER BY CHRIS RAYNAK"
4 PAUSE 250
5 PAPER 1: BORDER 1: CLS
6 PRINT "WHEN ENTERING YOUR MESSAGES YOU MUST REMEMBER THAT YOU ARE LIMITED TO 32 CHARACTERS."
7 PRINT "ALSO, YOU CANNOT USE USER DEFINED GRAPHICS OR REGULAR GRAPHICS FOR BANNERS. PLEASE SELECT ONE OF THE LETTER SIZES FROM BELOW."
8 PAPER 2: PRINT " ": PAPER 1
9 PRINT "1) 8X8"'"2) 16X16"'"3) 32X32": INPUT "YOUR SELECTION?";S: CLS
10 PRINT "PLEASE ENTER YOUR MESSAGE."
11 INPUT C$: IF LEN C$>32 THEN LET C$=C$(1 TO 32)
12 PAPER 3: PRINT AT 8,0;"YOUR MESSAGE IS BEING PROCESSED": PAPER 1
13 FOR Z=1 TO LEN C$: PRINT AT 10,Z-1;C$(Z): LET L=15359+(CODE C$(Z)*8): IF L>16383 THEN LET L=65367+8*(CODE C$(Z)-144)
14 REM ^FINDS ADDRESS OF FIRST SCAN LINE.
15 REM *************************
16 REM CONVERTS DECIMAL #
17 REM OF THE SCAN LINE OF
18 REM CORRESPONDING CHARACTER
19 REM IN THE ROM TO BINARY.
20 REM *************************
200 FOR X=1 TO 8
210 LET L=L+1: LET D=PEEK L
360 FOR A=1 TO 8
370 LET B$(X,9-A)=CHR$ (CODE "0"+D-2*INT (D/2))
380 LET D=INT (D/2)
390 NEXT A
400 NEXT X
451 LET A$=""
452 REM ************************ ROTATES LETTER 90 DEGREES TO THE RIGHT. ************************
460 FOR X=1 TO 8
470 FOR Y=8 TO 1 STEP -1
480 IF B$(Y,X)="1" THEN GO TO 486
481 IF S=1 THEN LET A$=A$+" "
482 IF S=2 THEN LET A$=A$+" "
483 IF S=3 THEN LET A$=A$+" "
484 GO TO 490
486 IF S=1 THEN LET A$=A$+"\ "
487 IF S=2 THEN LET A$=A$+"\ \ "
488 IF S=3 THEN LET A$=A$+"\ \ \ \ "
490 NEXT Y
491 FLASH 1: INK 0: PAPER 7: PRINT AT 12,3;"**PRINTER IN OPERATION**": FLASH 0
492 IF S=1 THEN LPRINT A$
493 IF S=2 THEN LPRINT A$'A$
500 IF S=3 THEN LPRINT A$'A$'A$'A$
501 INK 7: PAPER 1: PRINT AT 12,3;" "
502 LET A$=""
510 NEXT X
520 NEXT Z
530 PRINT AT 13,0;"WOULD YOU LIKE TO PRINT ANOTHER MESSAGE?": INPUT A$: IF A$(1)="N" OR A$(1)="n" THEN GO TO 1000
540 INPUT "SAME LETTER SIZE?";A$: IF A$(1)="N" OR A$(1)="n" THEN CLS : GO TO 8
550 CLS : GO TO 10
1000 REM ***********************
1010 REM MEMORY USED=2040 BYTES*
1020 REM ***********************