DECLARE SUB dispt () ' Svjatoslav Agejenko ' E-mail: svjatoslav@svjatoslav.eu ' Homepage: www.hot.ee/n0/ DECLARE SUB dispp () DECLARE SUB displukk () DECLARE SUB kola (a%) DECLARE SUB rese () DECLARE SUB start () DECLARE SUB getnad (g%, n%, d%, k%) DECLARE SUB initp (b$) DECLARE SUB getmd (a$, m%, d%) DECLARE SUB son (a$) DECLARE SUB inita () DECLARE SUB chm () DECLARE SUB chd () DECLARE SUB kell (a%) DECLARE SUB sync2 () DECLARE SUB sync () DECLARE SUB mnmain () DECLARE SUB heli (a%) DECLARE SUB disp () DEFINT A-Z DIM SHARED ap$(1 TO 500) DIM SHARED apl DIM SHARED pp$(1 TO 500) DIM SHARED ppl DIM SHARED prt, prt2 DIM SHARED timo$ DIM SHARED dato$ DIM SHARED sona$(1 TO 50) DIM SHARED mitus DIM SHARED lp$ DIM SHARED ndlp DIM SHARED pn$(1 TO 7) DIM SHARED lk$ DIM SHARED ssave DIM SHARED ssavel DIM SHARED timero AS LONG DIM SHARED kblukk DIM SHARED tunnidara start disp mnmain SUB chd b$ = "tuhi" IF apl = 0 THEN inita a$ = DATE$ n1 = VAL(RIGHT$(a$, 4)) n2 = VAL(LEFT$(a$, 2)) a$ = LEFT$(a$, 5) n3 = VAL(RIGHT$(a$, 2)) getnad n1, n2, n3, ndlp FOR a = 1 TO apl son ap$(a) SELECT CASE sona$(1) CASE "v" getmd sona$(2), m1, d1 getmd sona$(3), m2, d2 getmd DATE$, m3, d3 IF m3 < m1 THEN GOTO 9 IF m3 > m2 THEN GOTO 9 IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9 IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9 b$ = sona$(4) CASE "n" getmd sona$(2), m1, d1 getmd sona$(3), m2, d2 getmd DATE$, m3, d3 IF m3 < m1 THEN GOTO 9 IF m3 > m2 THEN GOTO 9 IF m3 = m1 THEN IF d3 < d1 THEN GOTO 9 IF m3 = m2 THEN IF d3 > d2 THEN GOTO 9 IF ndlp <> VAL(sona$(4)) THEN GOTO 9 b$ = sona$(5) CASE "e" getmd sona$(2), m1, d1 getmd DATE$, m2, d2 IF (m1 = m2) AND (d1 = d2) THEN b$ = sona$(3) END SELECT 9 NEXT a IF b$ <> lp$ THEN initp b$ lp$ = b$ tunnidara = 0 dispp disp END SUB SUB chm a$ = DATE$ IF a$ <> dato$ THEN chd dato$ = a$ b = 0 FOR a = 1 TO ppl son pp$(a) SELECT CASE sona$(1) CASE "#" getmd sona$(2), h1, m1 getmd TIME$, h2, m2 ' PRINT h1, m1, h2, m2 IF (h2 = h1) AND (m2 = m1) THEN IF sona$(3) = "sis" THEN b = 1 IF sona$(3) = "val" THEN b = 2 END IF END SELECT NEXT a IF (tunnidara = 0) AND (b > 0) THEN kell b ssave = ssave + 1 END SUB SUB disp CLS PRINT "Kooli Kell (mini) v 1.1 2003.3" PRINT "Programmi autor Svjatoslav Agejenko E-mail: n0@hot.ee" PRINT "" PRINT "s - kell tundi sisse v - kell tunnist v�lja" PRINT "a - sisesta uus aeg d - sisesta uus daatum" PRINT "u - �mardab aja t�istunnini l - laeb aja failist SYNC.TXT" PRINT "7 - 1 minut tagasi 8 - 1 minut edasi" PRINT "4 - 1 tund tagasi 5 - 1 tund edasi" PRINT "r - programmi restart q - programmist v�lja" PRINT " j - j�tab k�ik tunnid t�na �ra" dispp LOCATE 12, 15 PRINT "Kuu-P�ev-Aasta (USA standard)" LOCATE 17 FOR a = 1 TO ppl IF pp$(a) <> SPACE$(LEN(pp$(a))) THEN PRINT pp$(a); PRINT SPACE$(15 - LEN(pp$(a))); END IF NEXT a displukk dispt END SUB SUB displukk LOCATE 1, 40 IF kblukk = 1 THEN COLOR 0, 7 PRINT "Klaviatuur lukus! Vajuta CTRL+L" COLOR 7, 0 ELSE PRINT " " END IF END SUB SUB dispp IF ndlp = 0 THEN GOTO 14 LOCATE 14, 1 PRINT "n�dalap�ev:", pn$(ndlp) LOCATE 15, 1 PRINT "p�evaplaan:", lp$ 14 END SUB SUB dispt LOCATE 16, 20 COLOR 12 + 15, 0 IF tunnidara = 1 THEN PRINT "T�na on k�ik tunnid �ra j�etud" ELSE PRINT " " END IF COLOR 7, 0 END SUB SUB getmd (a$, m, d) b$ = LEFT$(a$, 5) m = VAL(LEFT$(b$, 2)) d = VAL(RIGHT$(b$, 2)) END SUB SUB getnad (g, n, d, k) 'LOCATE 11, 1 'PRINT g, n, d p = g m = n - 2 IF n > 2 GOTO 120 p = p - 1: m = m + 12 120 c = INT(p / 100) y = p - c * 100 w = d + INT((13 * m - 1) / 5) + y + INT(y / 4) + INT(c / 4) - 2 * c k = w - 7 * INT(w / 7) IF k = 0 THEN k = 7 END SUB SUB heli (a) 'GOTO 10 SELECT CASE a CASE 1 FOR c = 1 TO 5 SOUND 3000, 1 SOUND 0, 1 NEXT c CASE 2 FOR c = 1 TO 5 SOUND 2500, 1 SOUND 0, 2 NEXT c SOUND 2500, 10 CASE 3 FOR a = 1 TO 10 SOUND 500, .5 SOUND 1500, .5 SOUND 2000, .5 SOUND 1520, .5 NEXT a CASE 4 FOR a = 800 TO 1000 STEP 10 SOUND a, .1 SOUND a * 3, .1 SOUND 0, 1 NEXT a 10 END SELECT END SUB SUB inita apl = 0 OPEN "aasta.ap" FOR INPUT AS #1 5 IF EOF(1) <> 0 THEN GOTO 3 LINE INPUT #1, a$ apl = apl + 1 ap$(apl) = a$ GOTO 5 3 CLOSE #1 END SUB SUB initp (b$) ppl = 0 OPEN b$ + ".pp" FOR INPUT AS #1 6 IF EOF(1) <> 0 THEN GOTO 7 LINE INPUT #1, a$ ppl = ppl + 1 pp$(ppl) = a$ GOTO 6 7 CLOSE #1 END SUB SUB kell (a) b$ = TIME$ + DATE$ IF b$ <> lk$ THEN lk$ = b$ ELSE GOTO 2 heli 3 SELECT CASE a CASE 1 kola 4 FOR b = 1 TO 15 SOUND 0, 1 NEXT b kola 1 CASE 2 kola 5 END SELECT 2 END SUB SUB kola (a) timero = TIMER 11 FOR b = 1 TO 100 OUT prt, 0 OUT prt, 255 NEXT b IF ABS(timero - TIMER) < a THEN GOTO 11 END SUB SUB mnmain 1 b$ = LEFT$(TIME$, 5) IF b$ <> timo$ THEN chm timo$ = b$ a$ = INKEY$ IF a$ <> "" THEN IF ssave > ssavel THEN disp ssave = 0 END IF IF a$ = CHR$(12) THEN IF kblukk = 1 THEN kblukk = 0 ELSE kblukk = 1 displukk END IF IF kblukk = 1 THEN a$ = "" IF a$ = "s" THEN kell 1 IF a$ = "v" THEN kell 2 IF a$ = "a" THEN CLS PRINT " vana aeg: " + TIME$ INPUT "sisesta uus aeg (TT:MM:SS): ", b$ IF LEN(b$) <> 8 THEN GOTO 12 TIME$ = b$ timo$ = "" 12 disp END IF IF a$ = "d" THEN CLS PRINT " vana daatum: " + DATE$ INPUT "sisesta uus daatum (KK-PP-AAAA): ", b$ IF LEN(b$) <> 10 THEN GOTO 13 DATE$ = b$ timo$ = "" 13 disp END IF IF a$ = "7" OR a$ = "8" THEN b = VAL(RIGHT$(LEFT$(TIME$, 5), 2)) IF a$ = "7" THEN b = b - 1 IF a$ = "8" THEN b = b + 1 IF b < 0 THEN b = 0 IF b > 59 THEN b = 59 d$ = STR$(b) IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1) IF LEN(d$) < 2 THEN d$ = "0" + d$ e$ = LEFT$(TIME$, 3) + d$ + RIGHT$(TIME$, 3) TIME$ = e$ END IF IF a$ = "4" OR a$ = "5" THEN b = VAL(LEFT$(TIME$, 2)) IF a$ = "4" THEN b = b - 1 IF a$ = "5" THEN b = b + 1 IF b < 0 THEN b = 0 IF b > 23 THEN b = 23 d$ = STR$(b) IF LEFT$(d$, 1) = " " THEN d$ = RIGHT$(d$, LEN(d$) - 1) IF LEN(d$) < 2 THEN d$ = "0" + d$ e$ = d$ + RIGHT$(TIME$, 6) TIME$ = e$ END IF IF a$ = "u" THEN sync2 IF a$ = "l" THEN sync IF a$ = "r" THEN rese IF a$ = "q" THEN SYSTEM IF a$ = "j" THEN IF tunnidara = 0 THEN tunnidara = 1 ELSE tunnidara = 0 dispt END IF IF ssave <= ssavel THEN LOCATE 11, 1 PRINT TIME$ LOCATE 12, 1 PRINT DATE$ ELSE IF ABS(TIMER - timero) > 10 THEN CLS kblukk = 1 FOR b = 1 TO 20 LOCATE RND * 22 + 1, RND * 79 + 1 IF RND * 100 < 50 THEN PRINT "*" ELSE PRINT "." NEXT b LOCATE RND * 22 + 1, RND * 50 + 1 COLOR 0, 7 PRINT "< " + LEFT$(TIME$, 2); COLOR 16, 7 PRINT ":"; COLOR 0, 7 PRINT RIGHT$(LEFT$(TIME$, 5), 2) + " >" COLOR 7, 0 timero = TIMER END IF END IF GOTO 1 END SUB SUB rese heli 4 timo$ = "" dato$ = "" apl = 0 END SUB SUB son (a$) FOR b = 1 TO 50 sona$(b) = "" NEXT b mitus = 0 b = 1 FOR c = 1 TO LEN(a$) d$ = RIGHT$(LEFT$(a$, c), 1) IF d$ = " " OR d$ = CHR$(9) THEN b = 1 ELSE IF b = 1 THEN b = 0: mitus = mitus + 1 sona$(mitus) = sona$(mitus) + d$ END IF NEXT c END SUB SUB start pn$(1) = "esmasp�ev" pn$(2) = "teisip�ev" pn$(3) = "kolmap�ev" pn$(4) = "neljap�ev" pn$(5) = "reede" pn$(6) = "laup�ev" pn$(7) = "p�hap�ev" prt = &H378 ssavel = 2 kblukk = 1 tunnidara = 0 END SUB SUB sync OPEN "sync.txt" FOR INPUT AS #1 LINE INPUT #1, a$ DATE$ = a$ LINE INPUT #1, a$ TIME$ = a$ CLOSE #1 heli 2 END SUB SUB sync2 a$ = TIME$ a$ = LEFT$(a$, 5) b = VAL(RIGHT$(a$, 2)) c = VAL(LEFT$(a$, 2)) IF b >= 30 THEN c = c + 1 b = 0 IF c > 23 THEN c = c - 24 a$ = RIGHT$(STR$(c), LEN(STR$(c)) - 1) b$ = RIGHT$(STR$(b), LEN(STR$(b)) - 1) IF LEN(a$) < 2 THEN a$ = "0" + a$ IF LEN(b$) < 2 THEN b$ = "0" + b$ a$ = a$ + ":" + b$ 'LOCATE 10, 1 'PRINT a$ TIME$ = a$ heli 1 END SUB