Billboard

Developer(s): John Colonna, Ken Duda
Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Banner

Asks for a message of up to 32 characters and then scrolls it round and round across a billboard: a white panel with block-graphic edges and rows of asterisks above and below, on a blue screen. The message moves one character to the left every few frames and the first character reappears at the end, so the text runs continuously until you press BREAK. The prompt suggests ending each word with a space so that the message wraps cleanly.

A REM credits John Colonna of SINCUS, who enhanced it from a program by Kenneth B. Duda; Duda’s original appeared in the Basic Computer Newsletter.

Program Analysis

  • Line 20 reads the message; lines 100–140 draw the frame once, row by row, in a single FOR loop across the 32 columns.
  • Lines 35–45 rotate the string with a$=a$(2 TO )+a$(1), print it centred at row 10 with (32-LEN a$)/2, and wait 8 frames.

Notable Techniques

  • The scrolling is done entirely by string slicing; nothing on screen is moved, the whole message is reprinted each step.
  • The frame uses the block graphics '' (top half) and .. (bottom half) for the panel edges.

Potential Issues

  • A message longer than 32 characters is accepted but wraps onto the next line and breaks the display, and an empty message stops with a subscript error.

This program came from an Oliger (JLO SAFE) disk and was converted to load from tape. The disk copy’s saved message was cleared, and the SAVE / in line 9999 became a plain SAVE. It was tested in ZEsarUX.

Appears On

Music with pictures, printer utilities, drawing tools, games and home programs: over fifty programs from the SINCUS library tape that followed tape 103, rescued from disk.

Related Articles

Related Content

Image Gallery

Source Code

    5 REM billboard
   10 REM John Colonna,SINCUS, enhanced from a program by Kenneth B. Duda
   15 CLS 
   20 INPUT "Enter your message (up to 32 characters). Space after each word.";a$
   25 CLS 
   30 GO SUB 100
   35 LET a$=a$(2 TO )+a$(1)
   40 PRINT AT 10,(32-LEN A$)/2; PAPER 7; INK 0;a$
   45 PAUSE 8: GO TO 35
  100 BORDER 1: PAPER 1: CLS 
  105 FOR i=0 TO 31
  110 PRINT AT 7,i; PAPER 7; INK 0;"''"
  115 PRINT AT 8,i; PAPER 7; INK 0;"*"
  120 PRINT AT 9,i; PAPER 7;" ";AT 10,i;" ";AT 11,i;" "
  125 PRINT AT 12,i; PAPER 7; INK 0;"*"
  130 PRINT AT 13,i; PAPER 7; INK 0;".."
  135 NEXT i
  140 RETURN 
 9999 SAVE "billboard" LINE 1: BEEP 1,32

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