Multi-Draw 2068

Products: Multi-Draw 2068
Developer(s): Gary Ward
Date: 1985
Type: Program
Platform(s): TS 2068

Multi-Draw 2068 is a screen design program with joystick control of dual multi-function screen cursors which draw, print, define characters, change colors, flash, save/load or print out your creations. The documentation (“1984 GARY E. WARD”) suggests it for screen pictures, charts, game backgrounds and schematics. Everything except typing text is done with the joystick: the stick moves a normal cursor around the screen with wrap-around, the fire button places a character, and diagonal moves work a second “select” cursor along the bottom of the screen and two control functions whose effect depends on which column the select cursor is in.

The bottom line offers nine shade blocks (0% to 100% ink) for shading and colour mixing, two sets of 14 user-definable characters, and paper, ink and bright controls. An 8× magnified view lets you set or clear individual pixels over twelve character cells at once, and a character-define mode edits the user-defined characters the same way. Text typed at the keyboard is printed at the cursor in normal, INVERSE or OVER form. In colour mode the attribute of a cell can be changed without overprinting it.

Column 0 of the select line steps through a menu of DRAW and COLOR modes, the print routines (SM PRT, BIG PRT and GRY PRT), COPY, SAVE PG and LOAD PG for the program, SAVE and LOAD for screens, CLR, and BASIC. COPY uses the TS2040 printer. The three print routines (dot for dot, double size, and a 2×2 grey-scale print in which each colour has its own dot pattern) were written for an Epson-compatible printer on an AERCO Centronics interface; the notes give POKEs for other printer codes, the Tasman interface, and Spirit 80 and Legend 880 printers, and an addendum shows how to add one or two extra screen memories.

Program Analysis

Structure

The tape holds a short BASIC program, MULTI-DRAW (auto-run at line 9100), and the 16,386-byte MD CODE block at 49150. That block includes the screen store at 49150 and the machine code at 59500–62719. The BASIC is only a dispatcher:

  • Line 9100 does CLEAR 49149, loads the code and goes to 8998, which starts the machine code with RANDOMIZE USR 59500.
  • Line 9000 calls the joystick editor (RANDOMIZE USR 60416); when a menu item needs BASIC, the code leaves a number at 62212 and line 9005 jumps with GO TO (9000+PEEK 62212).
  • Lines 9012–9017 handle text entry, reading the print position from 60382/60383; an empty entry moves on from normal to INVERSE to OVER.
  • Lines 9047–9089 do COPY, SAVE PG, LOAD PG (a MERGE), screen save and load (CODE 49150,6912) and clearing the screen.

Notable Techniques

  • The machine code returns a line offset to BASIC through one memory location, so BASIC commands such as COPY, MERGE and INPUT can be used from a machine code editor.
  • A copy of the screen is kept above RAMTOP, so you can return to BASIC, add to the picture with DRAW or CIRCLE and go back with GO TO 9000.
  • The printer routines can be called directly from BASIC (RANDOMIZE USR 59904, 59927 and 59941), and RANDOMIZE USR 59934 copies a 64-column screen.

Potential Issues

  • The notes warn that the print options can lock up the computer when the AERCO interface and printer are not connected, unless out-of-range offsets are POKEd first.
  • LOAD PG merges another program; a program with lines above 8996 will overwrite Multi-Draw’s own lines.

Related Products

Screen design program with joystick control of dual-multi-function screen cursors which draw, print, define characters, change colors, flash, save/load or print our your creations.

Related Articles

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