--- title: "Entry" id: 64709 type: "computer_media" slug: "entry" url: "http://localhost/computer_media/entry/" markdown_url: "http://localhost/computer_media/entry.md" published_at: "2026-03-07T00:00:56+00:00" modified_at: "2026-03-30T21:41:49+00:00" author: "David Anderson" featured_image: url: "http://localhost/wp-content/uploads/2026/03/2_DEMO.png" excerpt: "A trippy colour-cycling demo sweeps block graphics across the screen and scatters random text to mimic the strange sights of a heavy loading session." 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: "William Pollock" slug: "william-pollock" taxonomy: "indiv" url: "http://localhost/indiv/william-pollock/" genre: - name: "Demo" slug: "demo" taxonomy: "genre" url: "http://localhost/type/demo/" media_type: "Program" programmers: - name: "William Pollock" slug: "william-pollock" taxonomy: "indiv" url: "http://localhost/indiv/william-pollock/" download_url: "https://archive.org/download/timex-sinclair-software-archive/Entry%28198x%29%28Wm.%20L.%20Pollock%29%28TS2068%29%28US%29%28Programs%29.zip" mediadate: "198x" images: - url: "http://localhost/wp-content/uploads/2026/03/2_DEMO.png" - url: "http://localhost/wp-content/uploads/2026/03/1_ENTRY.png" - url: "http://localhost/wp-content/uploads/2026/03/3_demo.png" article_media: - id: 64184 title: "The Fame and Glory" type: "article" url: "http://localhost/article/the-fame-and-glory/" media_type_tags: "Demo" --- This program is a self-described psychedelic visual effects demo that cycles through coloured block-graphic sweeps, random-position text messages, and flashing attributes to simulate the disorienting experience of being “loaded.” It uses a double-loop structure (lines 10–95) to draw solid magenta block-graphic bars scrolling down the screen with alternating BORDER colours, toggling BRIGHT between passes. A second section (lines 100–130) iterates through all eight BORDER and PAPER colour combinations, printing two text fragments at randomised screen positions with PAUSE 10 between each frame. The program concludes with a FLASH 1 message, then clears all attributes and halts with PAUSE 0. *** ## Program Structure The program divides into four distinct phases: 1. **Initialisation (line 5):** Clears screen and sets loop counter `I=1`. 2. **Block-graphic sweep (lines 10–95):** Outer loop over `c` (1–8) with an even/odd branch; odd values of `c` scroll a row of solid blocks downward (lines 20–50), even values are handled by lines 70–90 which scroll upward. After one full pass, `I` is incremented and BRIGHT is toggled before repeating from line 10. 3. **Colour-chaos phase (lines 100–130):** Nested loops over `c` (BORDER, 0–7) and `b` (PAPER, 7–0) call `CLS` then print two text strings at randomised `AT` positions with `PAUSE 10` per frame. 4. **Finale (lines 140–150):** A `FLASH 1` message is displayed for 3 seconds, then all attributes are zeroed and the program halts with `PAUSE 0`. ## Loop Logic and Flow Control The even/odd test at line 15 (`IF c/2-INT(c/2)=0 THEN GO TO 70`) is the standard Sinclair BASIC idiom for checking divisibility by 2, routing even values of `c` directly to the upward-scroll loop at line 70. Odd values fall through to the downward-scroll loop (lines 20–50) and then continue to line 60 (`NEXT c`), while even values execute lines 70–90 and then also reach `NEXT c` at line 90. This means both paths share the same `NEXT c` for the outer loop, which is valid Sinclair BASIC behaviour. Lines 95 and 10 implement a two-pass repeat: after the first complete run of the `c` loop, `I` becomes 2, `BRIGHT 1` is set, and `GO TO 10` restarts the sweep with BRIGHT highlighting active. On the second pass `I` would become 3 but the condition `IF I=2` is no longer true, so execution falls through to line 100 — the program naturally continues without an explicit branch. ## Display Techniques - Line 40 uses `INK C` (note the uppercase `C` matching the loop variable `c` — Sinclair BASIC is case-insensitive for variables) to tint the block row with the current loop colour, giving a rainbow progression. - `BORDER 8-c` at line 30 maps `c` values 1–8 to BORDER colours 7–0, cycling the border in reverse through the spectrum palette. - Line 35 uses `PRINT #0` (stream 0, the lower message area) to display a status string without disturbing the main screen scroll, keeping the animated area clean. - The solid block characters (`████████████████`, 16 × character 143 / `\::`) fill a full half-screen width, creating a bar-wipe effect. - In the chaos phase (line 120), `INK 9` is used; colour 9 is interpreted as TRANSPARENT on the TS2068 but as a roll-over of colour 1 (blue) on a standard Spectrum, giving a subtle platform-dependent difference. ## Notable Techniques and Anomalies | Line | Observation | | --- | --- | | `15` | Even/odd test via `c/2-INT(c/2)=0`; equivalent to `c MOD 2 = 0` in other dialects. | | `35` | `PRINT #0` writes to the lower display stream, avoiding scroll interference on the main canvas. | | `40` | Variable name collision risk: loop variable is `c` (lowercase) but `INK C` (uppercase) — harmless in Sinclair BASIC since variable names are case-folded. | | `95` | `BRIGHT 0` is set unconditionally, then overridden by `BRIGHT 1` only on the second pass — a compact conditional attribute toggle in one line. | | `110` | `PAPER b: CLS` clears the entire screen to the current PAPER colour each iteration, producing rapid full-screen colour flashes. | | `150` | Setting `INK 0: PAPER 0: BORDER 0` before `CLS` then `PAUSE 0` leaves the machine in a black-on-black state, effectively blanking the display on halt. | ## Source Code ``` 5 CLS : LET I=1 10 FOR c=1 TO 8: REM By Wm. L. Pollock, 2318 Meadowlark Lane, Jefferson City, MO 65101 15 IF c/2-INT (c/2)=0 THEN GO TO 70 20 FOR x=0 TO 21 30 BORDER 8-c 35 PRINT #0;AT 0,0; PAPER 2; INK 7;" WHEN I GET LOADED I SOMETIMES SEE STRANGE SIGHTS " 40 PRINT AT x,16; INK C;"████████████████" 50 NEXT x 60 NEXT c 70 FOR y=21 TO 0 STEP -1 80 PRINT AT y,0; INK C;"████████████████" 90 NEXT y: NEXT c 95 LET I=I+1: BRIGHT 0: IF I=2 THEN BRIGHT 1: GO TO 10 100 FOR c=0 TO 7: FOR b=7 TO 0 STEP -1 110 BORDER c: PAPER b: CLS 120 PRINT AT INT (RND*11),0; INK 9;"Sometimes it makes my poor head";AT 21-INT (RND*11),12; PAPER 2;"HURT!": PAUSE 10 130 NEXT b: NEXT c: BORDER 0: CLS 140 PRINT AT 10,0; PAPER 7; INK 2; FLASH 1;"Sometimes I just take an aspirin";AT 12,6;"and disappear!" 150 PAUSE 180: FLASH 0: INK 0: PAPER 0: BORDER 0: CLS : PAUSE 0 ```