2Col LLIST

Developer(s): Lloyd Painter
Date: 198x
Type: Program
Platform(s): TS 2068

This program displays a description and usage instructions for a companion machine code program called “2col-llist,” which LLISTs BASIC programs in two columns on a full-size printer. The machine code routine resides at the top of memory from address 61209 to 65535, occupying 484 bytes. It is designed for use with an AERCO parallel printer interface and an Epson RX-80 printer. The program demonstrates the common ZX81/TS1000 practice of storing machine code at the top of RAM and invoking it via RANDOMIZE USR. Save and load instructions for the CODE block are provided directly in the output.


Program Analysis

Program Structure

The program is a pure display utility — a self-contained help screen for a separate machine code program. It consists of eight lines: two REM lines for authorship metadata (lines 123) and six PRINT statements (lines 1035) that together output formatted usage instructions.

PRINT Formatting Idiom

Each PRINT statement uses leading ' (newline) characters to insert blank lines before the text, producing a visually separated, menu-style layout without any PRINT lines dedicated solely to blank lines. This is a standard Sinclair BASIC space-saving idiom: PRINT '' produces two newlines before the string that follows on the same statement.

Machine Code Details Described

The instructions document the companion CODE block precisely:

  • Load address: 61209
  • End address: 65535 (top of a 64 KB address space)
  • Length: 484 bytes (65535 − 61209 + 1 = 4327 — note the SAVE command quotes 484 bytes, which is the actual code size, not the full range to 65535; the range figure in the description line is approximate)
  • Entry point: RANDOMIZE USR 61209
  • Hardware requirement: AERCO parallel printer interface + Epson RX-80

Notable Techniques

Placing machine code at the top of RAM (near 65535) is a well-known technique to keep it safe from BASIC’s memory management, which grows the program area upward from low memory. The SAVE syntax shown — SAVE "2col-llist" CODE 61209,484 — is the correct two-argument form giving start address and byte count, confirming the routine is exactly 484 bytes long.

Anomalies and Observations

Line 1 uses REM "2col-instr" as a filename label, and lines 23 carry author and location credits. There is a minor inconsistency between the stated memory range (61209 to 65535, which is 4327 bytes) and the SAVE byte count of 484; the range given in line 25 is likely a loose description of where in memory the code sits rather than an exact byte count. No logic, loops, or variables are used — the program is entirely static text output.

Line Summary

LinePurpose
1REM: program name label
2REM: author name
3REM: author location
10Prints header/title of the companion program
15Prints functional description of the machine code routine
20Prints hardware requirements
25Prints memory usage information
30Prints LOAD and RUN instructions
35Prints SAVE instruction with address and byte count

Content

Related Products

Related Articles

Related Content

Image Gallery

2Col LLIST

Source Code

    1 REM "2col-instr"
    2 REM Lloyd Painter
    3 REM Quakertown, PA
   10 PRINT ''" Description / Instructions for          ""2col-llist"""
   15 PRINT ''"-A machine code program to LLISTyour BASIC programs in 2 columnsusing a full-size printer"
   20 PRINT '"-For use with an AERCO parallel printer interface and an EPSON  RX-80 printer"
   25 PRINT '"-Occupies/uses top of memory    from 61209 to 65535"
   30 PRINT '"-To use, LOAD ""2col-llist""CODE  and RANDOMIZE USR 61209"
   35 PRINT '"-To SAVE after LOADing:         SAVE ""2col-llist""CODE 61209,484"

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

Scroll to Top