This program prints a decorative banner for the Timex/Sinclair Users Group of Fort Worth, Texas, using the ZX81/TS1000 LPRINT statement to send output to a thermal or line printer. The banner (line 10) is constructed entirely from block graphics characters, forming a bordered logo with the group name rendered in a large pixel-font style using the 2×2 block graphic character set. The entire print sequence is looped 50 times via a FOR/NEXT loop, producing a long continuous strip of banners on paper — useful for cutting into individual flyers or handouts. The FAST command at line 1 suppresses the display update during execution, which speeds up program operation on the ZX81/TS1000.
Program Analysis
Program Structure
The program is straightforward and linear:
- Line 1:
FAST— disables the display driver to speed up execution. - Line 2:
FOR X=1 TO 50— outer loop to print the banner 50 times. - Line 3:
LPRINT ,,,,"--------------------------------",,,,— prints a separator line with leading and trailing tab spacing. - Line 10:
LPRINT— the main banner, a single long string containing the entire block-graphic logo. - Line 20:
LPRINT— prints a blank line as a spacer. - Line 30:
LPRINT— prints a plain-text description of the users group, contact details, and meeting information. - Line 40:
NEXT X— closes the loop. - Line 50:
STOP— halts execution cleanly. - Lines 60–70:
SAVEandLIST— utility lines for saving and reviewing the program, not part of normal execution.
Block Graphics Banner (Line 10)
The entire logo is encoded as a single long string literal passed to a single LPRINT statement. This is notable because the ZX81/TS1000 BASIC interpreter stores the entire string as one tokenised line in memory. The logo uses the 2×2 block graphic characters (characters 128–143 in the character set) to draw a bordered rectangle containing the text “TIMEX/SINCLAIR USERS GROUP OF FORT WORTH TEXAS” rendered in a large block-pixel font. The left and right edges of the banner use \: (▌) and \ : (▐) characters to form vertical borders, while \'' (▀) and \:: (█) and \:. (▟) etc. are used to construct the letterforms.
LPRINT Tab Usage (Line 3)
Line 3 uses multiple comma separators (,,,,"---...",,,,) to position the dashed line using the printer’s tab-stop mechanism. On the ZX81/TS1000, a comma in a LPRINT statement advances to the next 16-character tab column, so the four leading commas advance 64 characters before printing the dashes, and the trailing commas add further spacing. This was a common technique to centre or offset text on the narrow thermal printer without string manipulation.
Loop Count and Intended Use
The 50-iteration loop produces 50 copies of the banner on a continuous roll of thermal printer paper. This is consistent with the program’s purpose as a handout or flyer generator for a user group meeting — the output could be torn into individual strips and distributed.
Notable Techniques
- All graphical output is encoded in a single
LPRINTstring, avoiding the need for multiple DATA/READ or repeated LPRINT statements. FASTat line 1 is used correctly to suppress the display, preventing the characteristic screen flicker and improving throughput during the print loop.- The contact information in line 30 includes a real phone number (244-9408) and the name “Tim Ward,” giving the program historical and community documentation value.
- The text in line 30 uses fixed-width padding with spaces to achieve line-wrapping at 32 characters, matching the ZX printer’s output width.
Potential Anomalies
Lines 60 and 70 (SAVE and LIST) are present after the STOP statement and would only be reached if the user manually ran them or edited the program. This is a common pattern in distributed ZX81 programs where the author appended utility lines for their own convenience without removing them before distribution.
Content
Source Code
1 FAST
2 FOR X=1 TO 50
3 LPRINT ,,,,"--------------------------------",,,,
10 LPRINT "\:'\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\':\: \''\:'\' \''\:'\' \:.\ .\: \:'\''\' \'.\ .\' \ :\: \: \: \: \' \: \:'\'' \ .\'. \ :\: \' \''\''\' \' \' \''\''\' \' \' \ :\: \:'\''\' \''\:'\' \:. \: \:'\''\' \: \:'\''\: \''\:'\' \:'\''\: \ :\: \''\''\: \: \: \'.\: \: \: \:'\''\: \: \:'\:'\' \ :\: \''\''\' \''\''\' \' \' \''\''\' \''\''\' \' \' \''\''\' \' \ ' \ :\: USERS GROUP OF \ :\: FORT WORTH TEXAS \ :\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''\''"
20 LPRINT
30 LPRINT "THE GOAL OF THE TIMEX/SINCLAIR USERS GROUP OF FORT WORTH TEXAS IS TO HELP ANYONE WHO OWNS A TIMEX/SINCLAIR COMPUTER. THE GROUP MEETS ONCE A MONTH, WE ALSO PRINT A NEWSLETTER. IF YOU HAVE ANY QUESTIONS ABOUT YOUR COMPUTER OR THE USERS GROUP PLEASE CALL TIM WARD AT 244-9408"
40 NEXT X
50 STOP
60 SAVE "1008%1"
70 LIST
Note: Type-in program listings on this website use ZMAKEBAS notation for graphics characters.
