DECLARE SUB SOLIDCIRCLE (X!, Y!, RAD!)
SCREEN 12
' Kaleidoscope doodler -- drag mouse to draw, right click to clear screen
' ESCAPE quits
TYPE REGTYPE
AX AS INTEGER
BX AS INTEGER
CX AS INTEGER
DX AS INTEGER
BP AS INTEGER
SI AS INTEGER
DI AS INTEGER
FLAGS AS INTEGER
END TYPE
DIM REGS AS REGTYPE
DIM SHARED COLOUR
X = 0
Y = 0
Z = 0
D = (640 - 480) / 2
LOOP1:
'SHOW MOUSE
REGS.AX = 1
CALL INTERRUPT(&H33, REGS, REGS)
IF INKEY$ = CHR$(27) THEN END
'LIMIT MOUSE
REGS.AX = 3
CALL INTERRUPT(&H33, REGS, REGS)
X = REGS.CX
Y = REGS.DX
Z = REGS.BX
IF Z = 0 THEN GOTO LOOP1
'HIDE MOUSE
REGS.AX = 2
CALL INTERRUPT(&H33, REGS, REGS)
IF Z = 1 THEN GOTO DRAW1
CLS
DRAW1:
COLOUR = INT(RND(1) * 15) + 1
CALL SOLIDCIRCLE(X, Y, 3)
CALL SOLIDCIRCLE(X, 480 - Y, 3)
CALL SOLIDCIRCLE(640 - X, Y, 3)
CALL SOLIDCIRCLE(640 - X, 480 - Y, 3)
CALL SOLIDCIRCLE(Y + D, X - D, 3)
CALL SOLIDCIRCLE(480 - Y + D, X - D, 3)
CALL SOLIDCIRCLE(Y + D, 480 - X + D, 3)
CALL SOLIDCIRCLE(480 - Y + D, 480 - X + D, 3)
GOTO LOOP1
SUB SOLIDCIRCLE (X, Y, RAD)
CIRCLE (X, Y), RAD, COLOUR
PAINT (X, Y), COLOUR
END SUB
|