DECLARE FUNCTION PickCol% () 
'DECLARE FUNCTION PickCol% () 
DECLARE FUNCTION InputFile$ (Spec$) 
DECLARE SUB delay (DelTime%) 
 ' Compiled by Jim MacDonalds 'COMPILER.BAS' 
    DEFINT A-Z 
    DECLARE SUB Mouse (cx, dx, bx) 
    DECLARE SUB MousePointer (SW) 
    DIM SHARED A(9)                 'Set up array for code 
    Max = 1000 
    DIM SHARED LSx(Max) 
    DIM SHARED LSy(Max) 
    DIM SHARED LEx(Max) 
    DIM SHARED LEy(Max) 
    DIM SHARED BSx(Max) 
    DIM SHARED BSy(Max) 
    DIM SHARED BEx(Max) 
    DIM SHARED BEy(Max) 
    DIM SHARED Crx(Max) 
    DIM SHARED Cry(Max) 
    DIM SHARED Ty(Max) 
    DIM SHARED Tx(Max) 
    DIM SHARED Text$(Max) 
    DIM SHARED Radius(Max) 
    DIM SHARED BType(Max) 
    DIM SHARED LType(Max) 
 
    UpArr$ = CHR$(0) + "H"
    DownArr$ = CHR$(0) + "P"
    RightArr$ = CHR$(0) + "M"
    LeftArr$ = CHR$(0) + "K"
                                                           
 
 
 
    DEF SEG = VARSEG(A(0))          'Get array segment (nnnn:
                                    '    (two 8 bit) 
    FOR i = 0 TO 17                 'length of DATA to 
       READ r                       'read 
       POKE VARPTR(A(0)) + i, r     'into array/2 (nnnn:
    NEXT i                          'until 17 
SCREEN 12 
'ON 65 GOSUB DrawScreen 
DATA &HB8,&H00,&H00   :
DATA &H55             :
DATA &H8B,&HEC        :
DATA &HCD,&H33        :
DATA &H92             :
DATA &H8B,&H5E,&H06   :
DATA &H89,&H07        :
DATA &H5D             :
DATA &HCA,&H02,&H00   :
     CLS 
            
                CALL MousePointer(0)      'Reset mouse and 
                CALL MousePointer(1)      'turn pointer on 
                CALL MousePointer(3)      'Get coordinates 
CONST TRUE = -1 
Rad = 10 
mode = 1 
sex = 269 
sey = 417 
grid = 8 
Snap = 8 
cross = 1 
Style = 381 
BGC = 0' Back Ground Color 
GridCol = 8 
LineCol = 15 
 
Yoffset = 0 
Xoffset = 0 
 
'ON ERROR GOTO NotFound 
 
'Ortho = TRUE 
SWAP Arg, Style 
GOSUB DrawUndos 
GOSUB DrawOptions 
Start:
GOSUB DrawScreen 
'LINE (sex, sey)-(sex + 12, sey + 12), 1, B 
 
DO WHILE k$ <> CHR$(27) 
   IF bx = 3 THEN GOSUB DrawScreen 
   'GOSUB CrossHair 
   GOSUB Coordinates 
 
  oldrad = Rad 
  px = dx:
  k$ = INKEY$ 
  CALL Mouse(cx, dx, bx) 
  IF bx = 1 THEN 
    DO 
      CALL Mouse(cx, dx, bx) 
    LOOP WHILE bx = 1 
    bx = 1 
  END IF 
  SELECT CASE UCASE$(k$) 
     CASE CHR$(27):
     CASE "-" 
     CASE "R" 
     CASE UpArr$:
     CASE DownArr$:
     CASE "F" 
     CASE "A" 
     'CASE "S" 
     'CASE "L" 
     CASE "I" 
     CASE "C" 
     CASE "M" 
     CASE "H" 
     CASE "P" 
     CASE "D" 
     CASE "Q" 
         
         NL = 0:
         NB = 0:
         NC = 0:
         NT = 0 
         GOSUB DrawScreen 
     CASE "V" 
        GOSUB GetVertex 
     CASE "T" 
        GOSUB Center 
     CASE "G" 
