|
DECLARE SUB menu ()
DECLARE SUB pausa (fr AS STRING, x AS INTEGER, y AS INTEGER, colore AS INTEGER)
DECLARE SUB scala (y0 AS INTEGER)
DECLARE SUB nonio (x0 AS INTEGER, y0 AS INTEGER, stato AS INTEGER)
DECLARE FUNCTION tasto$ ()
DECLARE SUB IndicaPasso (fr AS STRING, p AS SINGLE, x AS INTEGER, y AS INTEGER, c AS INTEGER)
SCREEN 12
CLS
CONST t = 360: REM costante terra
DIM x AS INTEGER
DIM p AS INTEGER
CALL scala(t)
p = 1
x = 50
CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 7)
CALL nonio(x, t, 1)
CALL IndicaPasso("Passo -> ", .1, 15, 12, 7)
CALL menu
WHILE 1
SELECT CASE UCASE$(tasto$)
CASE "+"
CALL nonio(x, t, 0)
x = ABS(x + p) MOD 449
CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 7)
CALL nonio(x, t, 1)
CASE "-"
CALL nonio(x, t, 0)
x = ABS(x - p) MOD 449
CALL IndicaPasso("Quota -> ", x / 10!, 15, 14, 5)
CALL nonio(x, t, 1)
CASE "Z"
p = 1
CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
CASE "X"
p = 10
CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
CASE "C"
p = 100
CALL IndicaPasso("Passo -> ", p / 10!, 15, 12, 7)
CASE "Q"
CALL pausa("Fine del programma... ", 1, 26, 4)
END
END SELECT
WEND
SUB IndicaPasso (fr AS STRING, p AS SINGLE, x AS INTEGER, y AS INTEGER, c AS INTEGER)
LOCATE y, x
COLOR (c)
PRINT " "
LOCATE y, x
PRINT fr; p
END SUB
SUB menu
LOCATE 2, 45
COLOR 8
PRINT "Menu"
COLOR 7
LOCATE 4, 45
PRINT "+ -> Avanzamento del cursore"
LOCATE 5, 45
PRINT "- -> Arretramento del cursore"
LOCATE 6, 45
PRINT "z -> Imposta il passo a 0,1"
LOCATE 7, 45
PRINT "x -> Imposta il passo a 1"
LOCATE 8, 45
PRINT "c -> Imposta il passo a 10"
LOCATE 9, 45
PRINT "q -> Uscita"
END SUB
SUB nonio (x0 AS INTEGER, y0 AS INTEGER, stato AS INTEGER)
DIM x, i, l, colore AS INTEGER
i = 0
k! = 190! / 10!
WHILE i <= 10
x = x0 + i * k!
IF i MOD 5 THEN
l = 8
colore = stato * 7
ELSE
l = 15
colore = stato * 3
END IF
LINE (x, t)-(x, t - l), colore
i = i + 1
WEND
END SUB
SUB pausa (fr AS STRING, x AS INTEGER, y AS INTEGER, colore AS INTEGER)
LOCATE y, x
COLOR colore
PRINT fr;
SLEEP
COLOR 7
END SUB
SUB scala (y0 AS INTEGER)
DIM x, l, colore AS INTEGER
x = 0
l = 0
colore = 0
WHILE x < 640
IF x MOD 100 = 0 THEN
l = 15
colore = 3
ELSE
colore = 7
l = 8
END IF
LINE (x, t)-(x, t + l), colore
x = x + 10
WEND
END SUB
FUNCTION tasto$
DIM s AS STRING
s = ""
DO
SLEEP
s = INKEY$
LOOP WHILE s = ""
tasto$ = s
END FUNCTION
|
|