CLS : SCREEN 2
KEY(1) ON: ON KEY(1) GOSUB FINIS
KEY(5) ON: ON KEY(5) GOSUB RETIRE
KEY(10) ON: ON KEY(10) GOSUB ALLON
PORT% = &H378
OUT PORT%, 0
LOCATE 8, 10: PRINT "<--- --->"
V$ = STRING$(27, "2")
LOCATE 5, 6: PRINT V$; SPC(1); "CONTROL PANEL"; SPC(2); V$
LINE (40, 31)-(600, 180), 1, B
LINE (40, 40)-(600, 180), 1, B
LINE (40, 100)-(600, 120), 1, BF
LINE (140, 40)-(460, 110), 1, B
LOCATE 8, 65: PRINT "ON-----Q"
LOCATE 12, 65: PRINT "OFF----W"
LOCATE 19, 15: PRINT "F1"; SPC(24); "F5"; SPC(27); "F10"
LOCATE 21, 10: PRINT "EMERGENCY OFF"; SPC(16); "LOGOUT";
SPC(24); "ALLON"
D$ = DATE$
J$ = MID$(D$, 1, 3)
K$ = MID$(D$, 4, 3)
L$ = MID$(D$, 9, 2) LOCATE 5, 7: PRINT SPC(1); K$; J$; L$; SPC(1);
""
STAT:
PSET (145, 85): DRAW "R20U10L20D10"
PSET (185, 85): DRAW "R20U10L20D10"
PSET (225, 85): DRAW "R20U10L20D10"
PSET (265, 85): DRAW "R20U10L20D10"
PSET (305, 85): DRAW "R20U10L20D10"
PSET (345, 85): DRAW "R20U10L20D10"
PSET (385, 85): DRAW "R20U10L20D10"
PSET (425, 85): DRAW "R20U10L20D10"
T$ = TIME$
Y$ = MID$(T$, 1, 2)
Y = VAL(Y$)
IF Y < 12 THEN PP$ = "AM" ELSE PP$ = "PM"
IF Y > 12 THEN Y = Y - 12
U$ = MID$(T$, 3, 3)
LOCATE 5, 64: PRINT SPC(1); Y; U$; PP$; SPC(1); ""
LOCATE 9, 20: PRINT "1"; SPC(4); "2"; SPC(4); "3"; SPC(4); "4"; SPC(4);
"5"; SPC(4); "6"; SPC(4); "7"; SPC(4); "8"
LOCATE 12, 19: PRINT AA; SPC(2); SS; SPC(2); DD; SPC(2); FF; SPC(2);
GG; SPC(1); SPC(1); HH;
SPC(2); JJ; SPC(2); KK
X$ = INKEY$
X$ = RIGHT$(X$, 1)
N = INP(PORT%)
IF X$ = "K" THEN J = J - 40
IF X$ = "M" THEN J = J + 40
PSET (J + 105, 85): DRAW
"R20U10L20D10R2U10R2D10R2U10R2D10R2U10R2D10R2U10R2D10R2
U10R2D10"
FOR T = 1 TO 400: NEXT
PRESET (J + 105, 85): DRAW
"R20U10L20D10R2U10R2D10R2U10R2D10R2U10R2D10R2U10R2D10R2
U10R2D10"
IF J + 105 < 105 THEN J = 0
IF J >= 360 THEN J = 360
IF (J = 40) AND (X$ = "Q" OR X$ = "q") THEN GOSUB APPLE
IF (J = 40) AND (X$ = "W" OR X$ = "w") THEN GOSUB APPLEOF
IF (J = 80) AND (X$ = "Q" OR X$ = "q") THEN GOSUB BAT
IF (J = 80) AND (X$ = "W" OR X$ = "w") THEN GOSUB BATOF
IF (J = 120) AND (X$ = "Q" OR X$ = "q") THEN GOSUB TALE
IF (J = 120) AND (X$ = "W" OR X$ = "w") THEN GOSUB TALEOF
IF (J = 160) AND (X$ = "Q" OR X$ = "q") THEN GOSUB FLAT
IF (J = 160) AND (X$ = "W" OR X$ = "w") THEN GOSUB FLATOF
IF (J = 200) AND (X$ = "Q" OR X$ = "q") THEN GOSUB FAT
IF (J = 200) AND (X$ = "W" OR X$ = "w") THEN GOSUB FATOF
IF (J = 240) AND (X$ = "Q" OR X$ = "q") THEN GOSUB SILK
IF (J = 240) AND (X$ = "W" OR X$ = "w") THEN GOSUB SILKOF
IF (J = 280) AND (X$ = "Q" OR X$ = "q") THEN GOSUB SEVEN
IF (J = 280) AND (X$ = "W" OR X$ = "w") THEN GOSUB SEVENOF
IF (J = 320) AND (X$ = "Q" OR X$ = "q") THEN GOSUB LAST
IF (J = 320) AND (X$ = "W" OR X$ = "w") THEN GOSUB LASTOF
GOTO STAT '------------ALL THE SUBROUTINES ARE BELOW------------
--
APPLE: SOUND 500, 2
AA = 1
LOCATE 6, 50
Q = 1 OR N
OUT PORT%, Q
RETURN
BAT: SOUND 500, 2
SS = 1
W = 2 OR N
OUT PORT%, W
RETURN
TALE: SOUND 500, 2
DD = 1
Q = 4 OR N
OUT PORT%, Q
RETURN
FLAT: SOUND 500, 2
FF = 1
Q = 8 OR N
OUT PORT%, Q
RETURN
FAT: SOUND 500, 2
GG = 1
Q = 16 OR N
OUT PORT%, Q
RETURN
SILK: SOUND 500, 2
HH = 1
Q = 32 OR N
OUT PORT%, Q
RETURN
SEVEN: SOUND 500, 2
JJ = 1
Q = 64 OR N
OUT PORT%, Q
RETURN
LAST: SOUND 500, 2
KK = 1
Q = 128 OR N
OUT PORT%, Q
RETURN
TALEOF: SOUND 400, 1
IF DD = 0 THEN RETURN
DD = 0
IF N = 4 THEN P = 0
IF N < 4 THEN P = N
IF N > 4 THEN P = N - 4
OUT PORT%, P RETURN
APPLEOF: SOUND 400, 1
IF AA = 0 THEN RETURN
AA = 0
IF N = 1 THEN I = 0
IF N > 1 THEN I = N - 1
OUT PORT%, I
RETURN BATOF: SOUND 400, 1
IF SS = 0 THEN RETURN
SS = 0
IF N = 2 THEN U = 0
IF N > 2 THEN U = N - 2
IF N < 2 THEN U = N
OUT PORT%, U RETURN
FLATOF: SOUND 400, 1
IF FF = 0 THEN RETURN FF = 0
IF N = 8 THEN E = 0
IF N < 8 THEN E = N
IF N > 8 THEN E = N - 8
OUT PORT%, E
RETURN
FATOF: SOUND 400, 1
IF GG = 0 THEN RETURN
GG = 0
IF N = 16 THEN Y = 0
IF N < 16 THEN Y = N
IF N > 16 THEN Y = N - 16
OUT PORT%, Y
RETURN
SILKOF: SOUND 400, 1
IF HH = 0 THEN RETURN
HH = 0 IF N = 32 THEN Y = 0
IF N < 32 THEN Y = N
IF N > 32 THEN Y = N - 32
OUT PORT%, Y
RETURN
SEVENOF: SOUND 400, 1
IF JJ = 0 THEN RETURN
JJ = 0
IF N = 64 THEN U = 0
IF N < 64 THEN U = N
IF N > 64 THEN U = N - 64
OUT PORT%, U
RETURN
LASTOF: SOUND 400, 1
IF KK = 0 THEN RETURN
KK = 0
IF N = 128 THEN Z = 0
IF N < 128 THEN Z = N
IF N > 128 THEN Z = N - 128
OUT PORT%, Z
RETURN
ALLON: SOUND 500, 4
OUT PORT%, 255
AA = 1: SS = 1: DD = 1: FF = 1: GG = 1: HH = 1: JJ = 1:
KK = 1
RETURN
FINIS: SOUND 400, 2
OUT PORT%, 0
AA = 0: SS = 0: DD = 0: FF = 0: GG = 0: HH = 0: JJ = 0:
KK = 0
RETURN
RETIRE:
OUT PORT%, 0
END
Комментарии 6