'=========================================================================== ' Subject: EDWARD BLAKE'S GRAPHICS LIBRARY Date: 06-28-00 (19:51) ' Author: Edward L. Blake Code: QB, QBasic, PDS ' Origin: blakee@cyanwerks.com Packet: GRAPHICS.ABC '=========================================================================== ' 1995-1997 Edward L. Blake (blakee@cyanwerks.com) ' Edward L. Blake's Graphics Library ' This Module contains routines for: ' Primitive Scalable Vector Font Drawing ' Window Drawing ' Mouse Handling ' ' See LETTERS.BAS (done by the same author) for a demonstration of the ' font drawing. ' DECLARE SUB TITLE (X1!, Y1!, X2!, Y2!, A$) DECLARE SUB WORD (A$, C!, X!, Y!, A!, SZ!) DECLARE SUB LETTER (A$, C!, X!, Y!, SZ!) DECLARE SUB WIN (X1!, Y1!, X2!, Y2!, A$) DECLARE SUB MOUSE (A!) DECLARE SUB TDSTUFF (X1!, Y1!, X2!, Y2!) DECLARE SUB PBUTTON (X1!, Y1!, X2!, Y2!) ' $INCLUDE: 'QB.BI' SUB LETTER (A$, C, X, Y, SZ) A$ = UCASE$(A$) PA = X PB = Y SELECT CASE A$ CASE "A" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 10 * SZ, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA, PB + 10 * SZ), C CASE "B" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 5 * SZ, PB), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "C" LINE (PA, PB + 5 * SZ)-(PA, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "D" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 5 * SZ, PB), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "E" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 10 * SZ, PB), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA, PB + 10 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "F" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 10 * SZ, PB), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA, PB + 10 * SZ), C CASE "G" LINE (PA, PB + 5 * SZ)-(PA, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 15 * SZ), C CASE "H" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA, PB + 10 * SZ)-(PA + 10 * SZ, PB + 10 * SZ), C CASE "I" LINE (PA + 5 * SZ, PB)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "J" LINE (PA + 10 * SZ, PB + 1 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA, PB + 15 * SZ)-(PA, PB + 10 * SZ), C CASE "K" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB + 10 * SZ)-(PA + 10 * SZ, PB), C LINE (PA, PB + 10 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "L" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "M" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA, PB)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB)-(PA + 5 * SZ, PB + 10 * SZ), C CASE "N" LINE (PA, PB)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "O" LINE (PA, PB + 5 * SZ)-(PA, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C CASE "P" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 5 * SZ, PB), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA, PB + 10 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C CASE "Q" LINE (PA, PB + 5 * SZ)-(PA, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "R" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB)-(PA + 5 * SZ, PB), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA, PB + 10 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA, PB + 10 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "S" LINE (PA, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "T" LINE (PA + 5 * SZ, PB)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA, PB)-(PA + 10 * SZ, PB), C CASE "U" LINE (PA, PB)-(PA, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "V" LINE (PA, PB)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB), C CASE "W" LINE (PA, PB)-(PA + 3 * SZ, PB + 20 * SZ), C LINE (PA + 3 * SZ, PB + 20 * SZ)-(PA + 5 * SZ, PB), C LINE (PA + 5 * SZ, PB)-(PA + 8 * SZ, PB + 20 * SZ), C LINE (PA + 8 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB), C CASE "X" LINE (PA, PB)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB)-(PA, PB + 20 * SZ), C CASE "Y" LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA + 5, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA, PB), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB), C CASE "Z" LINE (PA, PB)-(PA + 10 * SZ, PB), C LINE (PA + 10 * SZ, PB)-(PA, PB + 20 * SZ), C LINE (PA, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "'" LINE (PA + 9 * SZ, PB)-(PA + 5 * SZ, PB + 5 * SZ), C CASE "1" LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 0 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "2" LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 7 * SZ, PB + 0 * SZ), C LINE (PA + 7 * SZ, PB + 0 * SZ)-(PA + 3 * SZ, PB + 0 * SZ), C LINE (PA + 0 * SZ, PB + 3 * SZ)-(PA + 3 * SZ, PB + 0 * SZ), C CASE "3" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 2 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 0 * SZ, PB + 18 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "4" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 10 * SZ), C LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 10 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "5" LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 0 * SZ), C LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 10 * SZ), C LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 0 * SZ, PB + 17 * SZ), C CASE "6" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C CASE "7" LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 0 * SZ), C LINE (PA + 10 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 20 * SZ), C CASE "8" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 5 * SZ), C LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "9" LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 0 * SZ), C LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 0 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 10 * SZ), C CASE "0" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 10 * SZ, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 0 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 0 * SZ, PB + 15 * SZ)-(PA + 0 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 5 * SZ), C LINE (PA + 0 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C CASE "," LINE (PA + 4 * SZ, PB + 20 * SZ)-(PA + 6 * SZ, PB + 15 * SZ), C CASE "-" LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 10 * SZ), C CASE "." LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "[" LINE (PA + 2 * SZ, PB + 0 * SZ)-(PA + 2 * SZ, PB + 20 * SZ), C LINE (PA + 2 * SZ, PB + 0 * SZ)-(PA + 6 * SZ, PB + 0 * SZ), C LINE (PA + 2 * SZ, PB + 20 * SZ)-(PA + 6 * SZ, PB + 20 * SZ), C CASE "]" LINE (PA + 6 * SZ, PB + 0 * SZ)-(PA + 6 * SZ, PB + 20 * SZ), C LINE (PA + 6 * SZ, PB + 0 * SZ)-(PA + 2 * SZ, PB + 0 * SZ), C LINE (PA + 6 * SZ, PB + 20 * SZ)-(PA + 2 * SZ, PB + 20 * SZ), C CASE "{" LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 3 * SZ, PB + 8 * SZ), C LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 3 * SZ, PB + 12 * SZ), C LINE (PA + 2 * SZ, PB + 3 * SZ)-(PA + 3 * SZ, PB + 8 * SZ), C LINE (PA + 2 * SZ, PB + 17 * SZ)-(PA + 3 * SZ, PB + 12 * SZ), C LINE (PA + 2 * SZ, PB + 3 * SZ)-(PA + 4 * SZ, PB + 0 * SZ), C LINE (PA + 2 * SZ, PB + 17 * SZ)-(PA + 4 * SZ, PB + 20 * SZ), C CASE "}" LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA + 7 * SZ, PB + 12 * SZ), C LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA + 7 * SZ, PB + 8 * SZ), C LINE (PA + 8 * SZ, PB + 17 * SZ)-(PA + 7 * SZ, PB + 12 * SZ), C LINE (PA + 8 * SZ, PB + 3 * SZ)-(PA + 7 * SZ, PB + 8 * SZ), C LINE (PA + 8 * SZ, PB + 17 * SZ)-(PA + 6 * SZ, PB + 20 * SZ), C LINE (PA + 8 * SZ, PB + 3 * SZ)-(PA + 6 * SZ, PB + 0 * SZ), C CASE "<" LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 0 * SZ), C LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE ">" LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA + 0 * SZ, PB + 0 * SZ), C LINE (PA + 10 * SZ, PB + 10 * SZ)-(PA + 0 * SZ, PB + 20 * SZ), C CASE "|" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 5 * SZ, PB + 24 * SZ), C CASE "`" LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 5 * SZ, PB + 5 * SZ), C CASE "!" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 5 * SZ, PB + 12 * SZ), C CIRCLE (PA + 5 * SZ, PB + 17 * SZ), 2, C CASE "=" LINE (PA + 0 * SZ, PB + 7 * SZ)-(PA + 9 * SZ, PB + 7 * SZ), C LINE (PA + 0 * SZ, PB + 13 * SZ)-(PA + 9 * SZ, PB + 13 * SZ), C CASE "~" LINE (PA + 0 * SZ, PB + 3 * SZ)-(PA + 3 * SZ, PB + 0 * SZ), C LINE (PA + 3 * SZ, PB + 0 * SZ)-(PA + 6 * SZ, PB + 3 * SZ), C LINE (PA + 6 * SZ, PB + 3 * SZ)-(PA + 9 * SZ, PB + 0 * SZ), C CASE "/" LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 0 * SZ), C CASE "^" LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C CASE "\" LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE "+" LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 10 * SZ), C LINE (PA + 5 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 15 * SZ), C CASE "_" LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 20 * SZ), C CASE ":" CIRCLE (PA + 5 * SZ, PB + 3 * SZ), 2, C CIRCLE (PA + 5 * SZ, PB + 17 * SZ), 2, C CASE ";" CIRCLE (PA + 5 * SZ, PB + 3 * SZ), 2, C LINE (PA + 4 * SZ, PB + 20 * SZ)-(PA + 6 * SZ, PB + 15 * SZ), C CASE "?" CIRCLE (PA + 5 * SZ, PB + 3 * SZ), 5, C, 3 + 1.5, 3 LINE (PA + 5 * SZ, PB + 8 * SZ)-(PA + 5 * SZ, PB + 12 * SZ), C CIRCLE (PA + 5 * SZ, PB + 17 * SZ), 2, C CASE "#" LINE (PA + 3 * SZ, PB + 0 * SZ)-(PA + 3 * SZ, PB + 20 * SZ), C LINE (PA + 6 * SZ, PB + 20 * SZ)-(PA + 6 * SZ, PB + 0 * SZ), C LINE (PA + 10 * SZ, PB + 6 * SZ)-(PA + 0 * SZ, PB + 6 * SZ), C LINE (PA + 0 * SZ, PB + 12 * SZ)-(PA + 10 * SZ, PB + 12 * SZ), C CASE "%" CIRCLE (PA + 3 * SZ, PB + 3 * SZ), 2, C LINE (PA + 0 * SZ, PB + 20 * SZ)-(PA + 10 * SZ, PB + 0 * SZ), C CIRCLE (PA + 7 * SZ, PB + 17 * SZ), 2, C CASE "(" LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 5 * SZ, PB + 0 * SZ), C LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C LINE (PA + 5 * SZ, PB + 20 * SZ)-(PA + 0 * SZ, PB + 15 * SZ), C CASE ")" LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA + 5 * SZ, PB + 0 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C CASE "$" LINE (PA, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA, PB + 15 * SZ)-(PA + 5 * SZ, PB + 17 * SZ), C LINE (PA + 5 * SZ, PB + 3 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C LINE (PA, PB + 5 * SZ)-(PA + 5 * SZ, PB + 3 * SZ), C LINE (PA + 10 * SZ, PB + 15 * SZ)-(PA + 5 * SZ, PB + 17 * SZ), C LINE (PA + 5 * SZ, PB + 3 * SZ)-(PA + 5 * SZ, PB + 0 * SZ), C LINE (PA + 5 * SZ, PB + 17 * SZ)-(PA + 5 * SZ, PB + 20 * SZ), C CASE "*" LINE (PA + 0 * SZ, PB + 10 * SZ)-(PA + 10 * SZ, PB + 10 * SZ), C LINE (PA + 0 * SZ, PB + 5 * SZ)-(PA + 10 * SZ, PB + 15 * SZ), C LINE (PA + 0 * SZ, PB + 15 * SZ)-(PA + 10 * SZ, PB + 5 * SZ), C CASE CHR$(34) LINE (PA + 3 * SZ, PB + 0 * SZ)-(PA + 3 * SZ, PB + 4 * SZ), C LINE (PA + 7 * SZ, PB + 4 * SZ)-(PA + 7 * SZ, PB + 0 * SZ), C END SELECT 'LINE (PA + 0 * SZ, PB + 0 * SZ)-(PA + 0 * SZ, PB + 0 * SZ), C END SUB SUB WORD (Message$, TextColor, X, Y, LtrSep, Size) FOR i = 1 TO LEN(Message$) B$ = MID$(Message$, i, 1) LETTER B$, TextColor, (LtrSep * i) + X - LtrSep, Y, Size NEXT i END SUB SUB MOUSE (A) DIM REGS AS RegType REGS.ax = A INTERRUPT 51, REGS, REGS END SUB SUB PBUTTON (X1, Y1, X2, Y2) LINE (X1, Y1)-(X2, Y1), 0 LINE (X1, Y1)-(X1, Y2), 0 LINE (X1 + 1, Y1 + 1)-(X2 - 1, Y1 + 1), 8 LINE (X1 + 1, Y1 + 1)-(X1 + 1, Y2 - 1), 8 LINE (X2, Y1)-(X2, Y2), 15 LINE (X1, Y2)-(X2, Y2), 15 LINE (X2 - 1, Y1 + 1)-(X2 - 1, Y2 - 1), 15 LINE (X1 + 1, Y2 - 1)-(X2 - 1, Y2 - 1), 15 LINE (X1 + 2, Y1 + 2)-(X2 - 2, Y2 - 2), 7, BF END SUB SUB TDSTUFF (X1, Y1, X2, Y2) LINE (X1, Y1)-(X2, Y1), 15 LINE (X1, Y1)-(X1, Y2), 15 LINE (X1 + 1, Y1 + 1)-(X2 - 1, Y1 + 1), 15 LINE (X1 + 1, Y1 + 1)-(X1 + 1, Y2 - 1), 15 LINE (X2, Y1)-(X2, Y2), 0 LINE (X1, Y2)-(X2, Y2), 0 LINE (X2 - 1, Y1 + 1)-(X2 - 1, Y2 - 1), 8 LINE (X1 + 1, Y2 - 1)-(X2 - 1, Y2 - 1), 8 LINE (X1 + 2, Y1 + 2)-(X2 - 2, Y2 - 2), 7, BF END SUB SUB TITLE (X1, Y1, X2, Y2, A$) LINE (X1, Y1)-(X2, Y1), 15 LINE (X1, Y1)-(X1, Y2), 15 LINE (X1 + 1, Y1 + 1)-(X2 - 1, Y1 + 1), 15 LINE (X1 + 1, Y1 + 1)-(X1 + 1, Y2 - 1), 15 LINE (X2, Y1)-(X2, Y2), 0 LINE (X1, Y2)-(X2, Y2), 0 LINE (X2 - 1, Y1 + 1)-(X2 - 1, Y2 - 1), 8 LINE (X1 + 1, Y2 - 1)-(X2 - 1, Y2 - 1), 8 LINE (X1 + 2, Y1 + 2)-(X2 - 2, Y2 - 2), 1, BF WORD A$, 0, X1 + 6, Y1 + 7, 7, .5 WORD A$, 15, X1 + 4, Y1 + 5, 7, .5 END SUB SUB WIN (X1, Y1, X2, Y2, A$) LINE (X1 + 10, Y1 + 10)-(X2 + 10, Y2 + 10), 0, BF TDSTUFF X1, Y1, X2, Y2 TITLE X1 + 4, Y1 + 4, X2 - 4, Y1 + 26, A$ PBUTTON X1 + 4, Y1 + 28, X2 - 4, Y2 - 4 END SUB