Minuteman

Date: 198x
Type: Program
Platform(s): TS 2068
Tags: Demo

This program simulates a missile launch countdown and liftoff sequence. It counts down from 10 to 0 using a FOR loop, displaying each number centered on screen with a BEEP tone whose pitch rises proportionally with the countdown value. After reaching zero, it prints “IGNITION” and “LIFT OFF” messages before transitioning to an animation loop that draws a simple ASCII-art rocket shape using asterisks and slash characters. The rocket animation uses POKE 23692,255 to suppress the automatic scroll prompt, combined with repeated PRINT with trailing commas to scroll the rocket upward through the display.


Program Analysis

Program Structure

The program is divided into two main phases, connected by a GO TO at line 30 that jumps into the countdown sequence rather than falling through to the rocket animation:

  1. Countdown phase (lines 230–310): A FOR M=10 TO 0 STEP -1 loop counts down with a centered screen display, a pitched BEEP, and a short PAUSE before clearing the screen. After the loop, “IGNITION” and “LIFT OFF” messages are displayed, then control jumps back to line 40.
  2. Rocket animation phase (lines 40–220): An ASCII-art rocket is printed line by line, with trailing double commas (,,) advancing the print position. A FOR N=1 TO 22 loop at lines 210–220 prints blank lines to scroll the rocket upward, ending with STOP.

Countdown Mechanics

The countdown loop at lines 230–260 uses PRINT AT 11,16;M to place each digit near the center of the screen. The BEEP .5,M*2 call produces a tone whose pitch increases with M, giving a rising-pitch effect as the countdown progresses from 10 down to 0 — which means pitch actually falls during the countdown, since M decreases. This is an inverted pitch sweep: highest pitch at 10, silence (pitch 0) at liftoff.

Scroll Suppression with POKE 23692,255

Line 40 uses POKE 23692,255 to write to the system variable SCRCT (scroll count). This resets the scroll prompt counter, preventing the “scroll?” message from halting execution during the rocket’s upward scroll animation. Without this POKE, the interpreter would pause and wait for a keypress after a certain number of lines have scrolled.

Rocket ASCII Art and Scroll Technique

The rocket shape spans lines 40–200 and is constructed from standard ASCII characters. The trailing ,, after each PRINT statement moves to the next line without a newline gap, keeping the rocket image compact. The legs of the rocket use / \ / \ (escaped backslashes) and ! characters for the exhaust nozzles.

After the rocket body is drawn, lines 210–220 loop 22 times printing empty lines (PRINT ,,) to scroll the rocket up and off the top of the screen, simulating liftoff. The program then hits STOP, ending execution.

Key Variables

VariableUsage
MCountdown loop counter (10 down to 0); also used as BEEP pitch multiplier
NScroll loop counter (1 to 22) for rocket animation

Notable Techniques and Anomalies

  • The initial GO TO 230 at line 30 skips the rocket drawing code so the countdown always runs first on program start.
  • The screen setup at line 20 sets PAPER blue (1), INK white (7), and BORDER blue, giving a sky-like color scheme throughout.
  • Because BEEP .5,M*2 ties pitch to the loop counter M, the sound descends from a high note to silence across the countdown rather than ascending — a subtle inversion of the expected dramatic rising pitch.
  • The STOP at line 220 means the program is not a loop; it must be re-run manually to repeat the sequence.
  • The PRINT AT 21,16;" ",, at the start of line 40 clears a position at the bottom of the screen, likely a remnant or precaution before drawing begins — its effect is minor but positions the cursor before the rocket body PRINTs follow.

Content

Appears On

Library tape of the Indiana Sinclair Timex User’s Group.

Related Products

Related Articles

Related Content

Image Gallery

Source Code

   10 REM *** MUF'S "MINUTEMAN"
   20 PAPER 1: INK 7: CLS : BORDER 1
   30 GO TO 230
   40 POKE 23692,255: PRINT AT 21,16;" ",,
   50 PRINT "   *   ",,
   60 PRINT "  ***  ",,
   70 PRINT " ***** ",,
   80 PRINT "*******",,
   90 PRINT "*     *",,
  100 PRINT "*     *",,
  110 PRINT "*     *",,
  120 PRINT "*     *",,
  130 PRINT "*     *",,
  140 PRINT "*     *",,
  150 PRINT "*     *",,
  160 PRINT "*******",,
  170 PRINT "/ \ / \",,
  180 PRINT "!!! !!!",,
  190 PRINT "!!! !!!",,
  200 PRINT "!!! !!!",,
  210 FOR N=1 TO 22
  220 PRINT ,,: NEXT n: STOP 
  230 FOR M=10 TO 0 STEP -1
  240 PRINT AT 11,16;M
  250 BEEP .5,M*2
  260 PAUSE 30: CLS : NEXT m
  270 PRINT AT 11,13;"IGNITION"
  280 BEEP .5,5: PAUSE 30
  290 PRINT AT 11,13;"LIFT OFF"
  300 BEEP .5,10: PAUSE 30: CLS 
  310 GO TO 40

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

People

No people associated with this content.

Scroll to Top