X-Git-Url: http://www2.svjatoslav.eu/gitweb/?p=qbasicapps.git;a=blobdiff_plain;f=misc%2Fpassw.bas;fp=misc%2Fpassw.bas;h=651e73a03b81923b5c9ee55b224095a3bfe1c880;hp=0000000000000000000000000000000000000000;hb=c6aaa433dedff2dd8063983c7716c0cdb296a0f9;hpb=3779e9035f2c67e36111585e10d956a3e9e3c0fa diff --git a/misc/passw.bas b/misc/passw.bas new file mode 100644 index 0000000..651e73a --- /dev/null +++ b/misc/passw.bas @@ -0,0 +1,175 @@ +' Svjatoslav Agejenko svjatoslav@svjatoslav.eu year:2002 +' See or modify "passwd.dat" for password. +' Is useful when compiled into EXE, and put into AUTOEXEC.BAT + +CHDIR ".\qbasicapps\unsorted" + + +DECLARE SUB check (a$) +DECLARE SUB start () +DECLARE SUB mkv (s%, C%) +DECLARE SUB box (x1%, y1%, x2%, y2%) + +DIM SHARED cha +DIM SHARED pwd$ + +start + +x = 25 +x2 = 10 +x3 = 0 +B$ = "" +1 +x = x + xs +IF x > 0 THEN xs = xs - .5 +IF x < 0 THEN xs = xs + .5 +xs = xs - (xs / 8) +IF x2 > 100 THEN x2 = 10 +LINE (x2, 10)-(x2, 60), 0 +PSET (x2, x + 35), 10 +IF x2 < 99 THEN LINE (x2 + 1, 10)-(x2 + 1, 60), 3 +x2 = x2 + 1 +x3 = x3 + 1 +IF x3 > 40 THEN x3 = 0: xs = xs - 5: SOUND 1000, 1 + +SOUND 0, .5 + +a$ = INKEY$ +IF a$ = CHR$(13) THEN +check B$ +B$ = "" +GOTO 2 +END IF +IF a$ <> "" THEN +IF a$ = CHR$(8) THEN +IF LEN(B$) > 0 THEN B$ = LEFT$(B$, LEN(B$) - 1): GOTO 2 +GOTO 2 +END IF +B$ = B$ + a$ +IF LEN(B$) > 10 THEN B$ = LEFT$(B$, 10) +2 +FOR a = 1 TO 10 +IF a <= LEN(B$) THEN C = 5 ELSE C = 1 +CIRCLE (a * 15 + 20, 150), 6, C +PAINT (a * 15 + 20, 150), C +NEXT a +END IF +GOTO 1 + +DEFINT A-Z +SUB box (x1, y1, x2, y2) +LINE (x1 + 1, y1 + 1)-(x2 - 1, y2 - 1), 0, BF +LINE (x1, y1)-(x2, y2), 10, B +LINE (x1, y1)-(x2, y1 - 9), 14, BF +LINE (x1, y1)-(x2, y1 - 9), 10, B + +LINE (x2 - 2, y1 - 2)-(x2 - 7, y1 - 7), 7, BF +LINE (x2 - 9, y1 - 2)-(x2 - 14, y1 - 7), 7, BF + +LINE (x2 - 2, y1 - 2)-(x2 - 7, y1 - 7), 0 +LINE (x2 - 2, y1 - 7)-(x2 - 7, y1 - 2), 0 + +LINE (x2 - 10, y1 - 3)-(x2 - 13, y1 - 3), 0 +END SUB + +DEFSNG A-Z +SUB check (a$) +cha = cha - 1 + +IF a$ = pwd$ THEN CLS : SCREEN 2: SYSTEM + +DIM buf(1 TO 3000) + +GET (79, 80)-(241, 141), buf(1) + +box 80, 90, 240, 140 +LOCATE 14, 14 +COLOR 12 +PRINT "Wrong passworD" +COLOR 5 + +LOCATE 16, 13 +PRINT STR$(cha) + " chanses left" + +FOR a = 1 TO 30 +SOUND 0, 1 +NEXT a + +IF cha = 0 THEN +DIM buf2(1000) +GET (79, 138)-(241, 140), buf2 +FOR a = 1 TO 40 +PUT (79, 138 + a), buf2, PSET +SOUND 0, .5 +NEXT a + +LOCATE 19, 14 +COLOR 12 +PRINT "SYSTEM HALTED" +LOCATE 21, 14 +PRINT "SUCESSFULLY!!" +3 +GOTO 3 +END IF + + +PUT (79, 80), buf(1), PSET + + +END SUB + +DEFINT A-Z +SUB mkv (s, C) +FOR x = 160 TO 319 STEP s +LINE (x, 0)-(x, 199), C +LINE (320 - x, 0)-(320 - x, 199), C +NEXT x + +FOR y = 100 TO 199 STEP s +LINE (0, y)-(319, y), C +LINE (0, 200 - y)-(319, 200 - y), C +NEXT y + +END SUB + +DEFSNG A-Z +SUB start + +OPEN "passw.dat" FOR INPUT AS #1 +LINE INPUT #1, pwd$ +CLOSE #1 + +SCREEN 13 + +cha = 3 + +s = 2 +FOR C = 16 TO 31 +s = s * 1.4 +mkv INT(s), INT(C) +NEXT C +mkv INT(s), 0 + + +box 70, 20, 270, 90 + +COLOR 5 +LOCATE 8, 10 +PRINT " stack dump:" +LOCATE 9, 10 +PRINT "010010010010010010010100" + +LOCATE 10, 10 +PRINT "Running rocket ground" +LOCATE 11, 10 +PRINT "control system..." + +box 9, 9, 101, 61 + +box 20, 130, 300, 190 + +LOCATE 18, 5 +PRINT "ENTER PASSWORD:" + +END SUB +