Simulated Underline Cursor

Developer(s): Richard Bredhoff
Date: 1985
Type: Program
Platform(s): TS 2068
Tags: Utility

Demonstrates a simulated underline cursor routine for the TS2068, submitted to Syncware News as a competition entry by Richard Bredhoff in 1985. The effect prints each character of a string individually, flashing an underscore ahead of each letter using PRINT, CHR$ 8, BEEP, and two PAUSE 1 calls — producing a typewriter-style reveal that avoids text appearing all at once. A multi-paragraph demo string assembled by concatenation illustrates the technique across two screens, with a simple pager subroutine triggered at a calibrated character position to pause and clear between pages. The program is intended as a reusable snippet: the string variable name, BEEP parameters, and PAUSE durations are all designed to be modified for use in games or utilities.

Related Articles

And now, here are a few more words about the last contest. First, we would like to thank all of...

Image Gallery

Source Code

    1 REM Simulated Underlining           Cursor Routine
    2 REM RESET  1985 Richard Bredhoff                962 E 107 St                    Brooklyn, NY                    11236
    3 REM SYNCWARE NEWS                   2068 Screen Utility             Competition Entry
    9 BORDER 1: PAPER 1: CLS : INK 6
   10 LET g$="This is a demontration of the   simulated 'underline' cursor    routine."
   11 LET g$=g$+CHR$ 13+"It can be used to print any     instructions for games, or util-ities and effect of a screen    full of printing appearing      suddenly is avoided."
   12 LET g$=g$+CHR$ 13+"The string to be printed can be of any length, have any legal   'name' and may include any of   the control characters, simply  by concatenating the new charac-ters to the existing string."
   13 LET g$=g$+CHR$ 13+"Of course, the BEEP can be made longer or shorter or eliminated entirely, as can the two PAUSES in line 30.     " 
   14 LET g$=g$+CHR$ 13+"If the text is longer than one  screen, any additional screens  may be displayed on demand, to  allow for variations in reading speed and comprehension, as     shown."
   15 LET g$=g$+CHR$ 13+"The variabe 'pager' is initiallyset to 0, turned on when the    first page is nearly full (PRINTLEN g$) and turned off by the   subroutine."
   19 LET pager=0
   20 FOR t=1 TO LEN g$
   22 IF t>520 AND t<522 THEN LET pager=1
   24 IF pager=1 THEN GO SUB 1010
   30 PRINT "_";: BEEP .001,20: PRINT CHR$ 8;" ";: PAUSE 1: PRINT CHR$ 8;g$(t);: PAUSE 1
   40 NEXT t
   45 PRINT AT 21,0;"Press any key to reread Page 1..": PAUSE 0: CLS : GO TO 20
   50 STOP 
 1010 PRINT AT 21,0;"Press any key to continue...": PAUSE 0
 1020 LET pager=0: CLS : RETURN 
 9990 STOP 
 9995 CLEAR : SAVE "A WINNER !" LINE 1

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