Banner

Developer(s): Christopher Raynak
Date: 198x
Type: Program
Platform(s): TS 2068

Prints a message sideways on the 2040 printer. Messages are limited to 32 characters.

Appears on

Capital Area Timex Sinclair User Groupโ€™s Library Tape.

Source Code

    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 ***********************
Scroll to Top