Rip-Off

This file is part of and Synchro-Sette October 1982. Download the collection to get this file.
Developer(s): Gene G. Buza
Date: October 1982
Type: Program
Platform(s): TS 1000

This program is an animated title-screen routine that displays the text “SYNCHRO-SETTE PRESENTS” using two distinct scroll effects before segueing into a short comedic “NOTHING AT ALL.” animation. The first animation scrolls the string “%S%Y%N%C%H%R%O%-%S%E%T%T%E” character by character from the right side of the screen toward the centre using a FOR/NEXT loop with a decreasing column index. The second animation slides ” PRESENTS” in from the right by progressively revealing more characters via a substring slice (B$(10-B TO 9)), creating a wipe-on effect.


Program Analysis

Program Structure

The program is divided into five functional phases:

  1. Lines 5–70: Animate the string A$ (“SYNCHRO-SETTE “) scrolling in from the right at row 10.
  2. Lines 80–130: Wipe ” PRESENTS” onto the screen at row 12 from the right.
  3. Lines 140–189: Display the punchline — “NOTHING” slides down and “AT ALL.” slides up — separated by CLS calls.
  4. Line 190: PAUSE 100 holds the blank screen before the loop.
  5. Lines 200–220: RUN restarts the whole sequence; lines 210–220 are dead code providing a SAVE statement that is never reached.

First Animation — Character Reveal Scroll (Lines 5–70)

The column counter N runs from 31 down to 8, moving the print position leftward each iteration. Simultaneously, A counts up so that A$(1 TO A+1) reveals one additional character per step. The guard at line 40 (IF A>=LEN A$ THEN LET A=A-1) clamps A so the substring expression never exceeds the string length, preventing a “Subscript out of range” error once the full string is exposed. A trailing space after the slice erases the previous rightmost character as the block moves left.

Second Animation — Right-Wipe Reveal (Lines 80–130)

This phase uses a different approach: the column offset A is incremented (line 100) only after N has passed LEN B$, nudging the print position one column right once the string is fully visible. The reveal itself is achieved by the slice B$(10-B TO 9), where B starts at 1 and increases, so the printed portion grows from the right-hand end of the nine-character string. Line 95 clamps B at 9 to avoid an out-of-range subscript once the full string is showing.

NB (clamped)Slice printed
01B$(9 TO 9) → “S”
12B$(8 TO 9) → “TS”
89B$(1 TO 9) → ” PRESENTS”

Punchline Animation (Lines 150–189)

Two simple vertical scroll effects deliver the joke. “NOTHING” is printed at successively lower rows (line 160, AT N,11) while a blank overwrite one row above clears the trail (line 158). After a CLS, the process is reversed for “AT ALL.”: N counts down from 20 to 0 so the word appears to rise up the screen, again with a one-row-ahead blank.

Notable Techniques

  • Substring clamping: Both animations use explicit guards to keep slice indices in range rather than relying on error handling, which was necessary given the lack of structured exception handling in standard BASIC.
  • Single-space erasure: Printing a literal " " immediately after each moving string clears the trailing edge without needing CLS, preserving the rest of the display.
  • Dead-code SAVE: Lines 210–220 are unreachable because RUN at line 200 resets execution to line 5. The SAVE "RIP-OF%F" filename is a self-referential joke about the cassette distribution medium (“Synchro-Sette”).

Content

Appears On

Cassette to accompany the October 1982 issue of Synchro-Sette.

Related Products

Related Articles

Related Content

Image Gallery

Rip-Off

Source Code

   5 LET A=0
  10 LET A$="%S%Y%N%C%H%R%O%-%S%E%T%T%E "
  20 LET B$=" PRESENTS"
  30 FOR N=31 TO 8 STEP -1
  40 IF A>=LEN A$ THEN LET A=A-1
  50 PRINT AT 10,N;A$(1 TO A+1);" "
  60 LET A=A+1
  70 NEXT N
  80 LET A=0
  85 LET B=1
  90 FOR N=0 TO 16
  95 IF B>=9 THEN LET B=9
 100 IF N>=LEN B$ THEN LET A=A+1
 110 PRINT AT 12,A;" ";B$(10-B TO 9)
 120 LET B=B+1
 130 NEXT N
 140 PAUSE 100
 150 CLS 
 152 FOR N=1 TO 21
 158 PRINT AT N-1,11;"       "
 160 PRINT AT N,11;"NOTHING"
 167 NEXT N
 180 CLS 
 182 FOR N=20 TO 0 STEP -1
 183 PRINT AT N+1,12;"       "
 184 PRINT AT N,12;"AT ALL."
 188 NEXT N
 189 CLS 
 190 PAUSE 100
 200 RUN 
 210 SAVE "RIP-OF%F"
 220 RUN 

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

Scroll to Top