--- title: "Billboard" id: 72280 type: "computer_media" slug: "billboard" url: "http://localhost/computer_media/billboard/" markdown_url: "http://localhost/computer_media/billboard.md" published_at: "2026-10-23T07:47:21+00:00" modified_at: "2026-10-23T07:47:21+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/10/billboard-2-1.png" excerpt: "Scrolls a message of up to 32 characters endlessly across a framed white billboard on a blue screen." category: - name: "Archived Media" slug: "archived-media" taxonomy: "category" url: "http://localhost/category/archived-media/" post_tag: - name: "Downloadable" slug: "downloadable" taxonomy: "post_tag" url: "http://localhost/tag/downloadable/" - name: "TS 2068" slug: "ts2068" taxonomy: "post_tag" url: "http://localhost/tag/ts2068/" model: - name: "Timex/Sinclair 2068" slug: "ts-2068" taxonomy: "model" url: "http://localhost/model/ts-2068/" indiv: - name: "John Colonna" slug: "john-colonna" taxonomy: "indiv" url: "http://localhost/indiv/john-colonna/" - name: "Ken Duda" slug: "ken-duda" taxonomy: "indiv" url: "http://localhost/indiv/ken-duda/" genre: - name: "Banner" slug: "banner" taxonomy: "genre" url: "http://localhost/type/banner/" media_contents: - id: 72439 title: "SINCUS Exchange Tape 104" type: "computer_media" url: "http://localhost/computer_media/sincus-exchange-tape-104/" media_type: "Program" programmers: - name: "John Colonna" slug: "john-colonna" taxonomy: "indiv" url: "http://localhost/indiv/john-colonna/" - name: "Ken Duda" slug: "ken-duda" taxonomy: "indiv" url: "http://localhost/indiv/ken-duda/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Billboard%20%28198x%29%28Colonna%2C%20John%3B%20Duda%2C%20Ken%29%28TS2068%29%28US%29%28Program%29.zip" tsrun_member: "Billboard (198x)(Colonna, John; Duda, Ken)(TS2068)(US)(Program)/Billboard (198x)(Colonna, John; Duda, Ken)(TS2068)(US)(Program).tap" mediadate: "198x" images: - url: "http://localhost/wp-content/uploads/2026/10/billboard-2-1.png" article_media: - id: 47322 title: "Billboard" type: "article" url: "http://localhost/article/billboard/" related_content: - id: 24807 title: "Sinclair Computer Users Society (SINCUS)" type: "usergroup" url: "http://localhost/usergroup/sinclair-computer-users-society-sincus/" media_type_tags: "Banner" license: false --- # Billboard 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. ## 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 ```