TrueBASIC as programmable graphics calculator for parametric equations

I have been using GWBASIC (1988) and QBASIC (1992) as programmable graphing calculators, primarily. I find the graphics capability of TrueBASIC to be far superior from an environment standpoint, as well a graphics command-set perspective.
The TB graphics work well within Wine-3.0 on Linux (mint|ubuntu|debian) even on the NVidia graphics card(s) using the nouveau driver(s).
The following code snippets are the port of my Lissajous Lab from QBASIC for TrueBASIC; LISCURVE.TRU and LISSFUNC.TRU
The formatting is lost on this site for the LISSFUNC.TRU file; however, can be easily restored with the format button in TBEditor.


! LISCURVE.TRU Lissajous Lab
!
! Mark H. Harris
! Jan 18, 2019
!
LIBRARY "lissfunc.tru"

SET MODE "color256"
LET pastel_yellow = 5
SET WINDOW -2.2, 2.2, -1.2, 1.2
SET COLOR pastel_yellow
FLOOD 0,0
SET BACK pastel_yellow
LET xlate_right = 1.07
LET xlate_left = - 1.07

CALL output_pause(-2.15, 1.12, "Resize window if desired, then press ESC to start.", "BLUE")
!output_pause waits for the ESC key (27)

CALL plot_lissajous(380, 7, 5, 1.21, xlate_right, "BLUE", 1)
CALL plot_lissajous(380, 7, 5, 1.30, xlate_right, "GREEN", 1)

CALL plot_lissajous(290, 4, 5, 0.25, xlate_left, "MAGENTA", 1)
CALL plot_lissajous(290, 4, 5, 0.33, xlate_left, "RED", 1)

CALL output_pause(-2.15, -1.14, "Press ESC to exit graphics.", "BLUE")
END


! LISSFUNC.TRU Lissajous Lab Graph Lib
!
! Mark H. Harris
! Jan 18, 2019
!
EXTERNAL

SUB output_pause(x, y, msgString$, tcolor$)
SET COLOR tcolor$
PLOT TEXT, at x, y : msgString$
DO
GET KEY value
LOOP UNTIL value = 27 !waits for ESC key
END SUB

SUB timer_delay(time_value)
LET base_t = time
DO WHILE (time - base_t) <= time_value
LOOP
END SUB

SUB plot_lissajous(points,YY, XX, phase, xlate, gcolor$, glines)
SET COLOR gcolor$
LET rscale = 2 * PI / points
FOR pt = 0 to points step 1
LET ptrad = pt * rscale
LET y = sin(YY * ptrad)
LET x = sin(XX * ptrad + phase) + xlate
IF glines = 1 THEN
PLOT LINES: x, y;
ELSE
PLOT POINTS: x, y
END IF
CALL timer_delay(0.035)
NEXT pt
PLOT x, y
END SUB