'
'   TTTTT H   H EEEEE      PPPP   AAA   SSSS  SSSS W W W  OOO  RRRR  DDDD
'     T   H   H E          P   P A   A S     S     W W W O   O R   R D   D
'     T   HHHHH EEEE       PPPP  AAAAA  SSS   SSS  W W W O   O RRRR  D   D
'     T   H   H E          P     A   A     S     S W W W O   O R   R D   D
'     T   H   H EEEEE      P     A   A SSSS  SSSS   W W   OOO  R   R DDDD
'
'                PPPP  RRRR   OOO    GGGG  RRRR    AAA   M M
'                P   P R   R O   O  G      R   R  A   A M M M
'                PPPP  RRRR  O   O  G  GG  RRRR   AAAAA M M M
'                P     R   R O   O  G   G  R   R  A   A M M M
'                P     R   R  OOO    GGGG  R   R  A   A M M M
'
'                           BY DAVID WILLIAMSON
'
'
' THIS PROGRAM SIMPLY PRINTS A STAR FOR EVERY KEY YOU PUSH.
' I'VE HEARD THAT MANY PEOPLE HAVE BEEN TRYING TO FIGURE OUT HOW TO DO THIS.
' WELL, I'VE FINALLY FIGURED OUT HOW!
'
'
'
'      P.S.   wipe all lines that have LOCATE Y + 2, ...  and the following
'             PRINT statement if you want to get rid of the line of what
'             you are typing below the stars
'
DECLARE SUB SparklePause ()

Y = 20   'Y co-ordinate of password
X = 34   'X co-ordinate of password

correct.password$ = "the password program" 'what else?
                                           'it's the correct password

CLS
PLAY "MBT160O1L8CDEDCDL4ECC"        'an intro i decided to put in
COLOR 15, 1                         'just for the hell of it
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "     TTTTT H   H EEEEE      PPPP   AAA   SSSS  SSSS W W W  OOO  RRRR  DDDD      "
PRINT "       T   H   H E          P   P A   A S     S     W W W O   O R   R D   D     "
PRINT "       T   HHHHH EEEE       PPPP  AAAAA  SSS   SSS  W W W O   O RRRR  D   D     "
PRINT "       T   H   H E          P     A   A     S     S W W W O   O R   R D   D     "
PRINT "       T   H   H EEEEE      P     A   A SSSS  SSSS   W W   OOO  R   R DDDD      "
PRINT "                                                                                "
PRINT "                  PPPP  RRRR   OOO    GGGG  RRRR    AAA   M M                   "
PRINT "                  P   P R   R O   O  G      R   R  A   A M M M                  "
PRINT "                  PPPP  RRRR  O   O  G  GG  RRRR   AAAAA M M M                  "
PRINT "                  P     R   R O   O  G   G  R   R  A   A M M M                  "
PRINT "                  P     R   R  OOO    GGGG  R   R  A   A M M M                  "
PRINT "                                                                                "
PRINT "                             BY DAVID WILLIAMSON                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "   THIS PROGRAM SIMPLY PRINTS A STAR FOR EVERY KEY YOU PUSH.                    "
PRINT "   I'VE HEARD THAT MANY PEOPLE HAVE BEEN TRYING TO FIGURE OUT HOW TO DO THIS.   "
PRINT "   WELL, I'VE FINALLY FIGURED OUT HOW!                                          "
PRINT "                                                                                "
PRINT "                                                                                "
SparklePause


password:
COLOR 1, 1
SCREEN 0
CLS

GOSUB display

password$ = "" 'the letters that the person types in for the password
star$ = ""     'the stars that always appear when you type in a password

DO

key.press$ = INPUT$(1)      'gets one key press at a time

IF key.press$ = CHR$(13) THEN GOTO check.password 'if you press Enter it
                                                  'checks to see if you have
                                                  'done the correct password

IF key.press$ = CHR$(8) THEN
star2$ = ""
password2$ = ""
FOR q = 1 TO LEN(star$)
star2$ = star2$ + " "
NEXT q
FOR q = 1 TO LEN(password$)
password2$ = password2$ + " "
NEXT q                                           'a whole heap of junk
IF LEN(password$) > 0 THEN                       '
password$ = LEFT$(password$, LEN(password$) - 1) '
star$ = LEFT$(star$, LEN(star$) - 1)             '
LOCATE Y + 2, X                                  '
PRINT password2$                                 'basically, all it does is
LOCATE Y, X                                      'when you press Backspace,
PRINT star2$                                     'it wipes out the last
LOCATE Y + 2, 34                                 'letter on the line you
PRINT password$                                  'typed in
LOCATE Y, X
PRINT star$
ELSE BEEP
END IF
END IF


IF key.press$ <> CHR$(13) THEN
IF key.press$ <> CHR$(8) THEN
IF LEN(password$) < 20 THEN
password$ = password$ + key.press$
LOCATE Y + 2, X
PRINT password$
star$ = ""                      'a whole heap of stuff
V = LEN(password$)              'i can't be bothered
FOR c = 1 TO V                  'to describe
star$ = star$ + "*"
NEXT c
LOCATE Y, X
PRINT star$
ELSE BEEP
END IF
END IF
END IF

LOOP



check.password:

correct.password$ = UCASE$(correct.password$) 'delete these lines if you want
password$ = UCASE$(password$)                 'want your password to be
                                              'case sensitive
IF password$ = correct.password$ THEN
LOCATE 19, 22
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE 20, 22                                    'exactly what it says
PRINT "º       Correct password!        º"
LOCATE 21, 22
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"
BEEP: FOR m = 1 TO 1000: NEXT m: BEEP: FOR m = 1 TO 1000: NEXT m: BEEP
ELSE
LOCATE 19, 22
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE 20, 22                                    'exactly what it says
PRINT "º      Incorrect password!       º"
LOCATE 21, 22
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"
BEEP
DO: LOOP WHILE INKEY$ = ""
GOTO password
END IF
END

display:
COLOR 0, 7
PRINT "                       The Password Program Version 1.0a                        "
COLOR 15, 1
PRINT "                                                                                "
PRINT "     TTTTT H   H EEEEE      PPPP   AAA   SSSS  SSSS W W W  OOO  RRRR  DDDD      "
PRINT "       T   H   H E          P   P A   A S     S     W W W O   O R   R D   D     "
PRINT "       T   HHHHH EEEE       PPPP  AAAAA  SSS   SSS  W W W O   O RRRR  D   D     "
PRINT "       T   H   H E          P     A   A     S     S W W W O   O R   R D   D     "
PRINT "       T   H   H EEEEE      P     A   A SSSS  SSSS   W W   OOO  R   R DDDD      "
PRINT "                                                                                "
PRINT "                  PPPP  RRRR   OOO    GGGG  RRRR    AAA   M M                   "
PRINT "                  P   P R   R O   O  G      R   R  A   A M M M                  "
PRINT "                  PPPP  RRRR  O   O  G  GG  RRRR   AAAAA M M M                  "
PRINT "                  P     R   R O   O  G   G  R   R  A   A M M M                  "
PRINT "                  P     R   R  OOO    GGGG  R   R  A   A M M M                  "
PRINT "                                                                                "
PRINT "                             BY DAVID WILLIAMSON                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "                                                                                "
PRINT "                                                                                "
LOCATE 19, 22
PRINT "ÉÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ»"
LOCATE 20, 22                                   'password box and the other
PRINT "º Password:                      º"      'stuff on the screen
LOCATE 21, 22
PRINT "ÈÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍÍ¼"


COLOR 23, 1
LOCATE Y - 3, X - 10
PRINT "Password: "; correct.password$         'wipe these lines to get rid
COLOR 7, 1                                    'of that extra password stuff
LOCATE Y + 2, X - 10
PRINT "Password:"
COLOR 7, 1
RETURN

'
'
'
'
'                        SEEN THIS SUB SOMEWHERE BEFORE?
'                        *******************************
'
'
'
'
SUB SparklePause
 
 
  SCREEN 0
  COLOR 0, 1
  a$ = "*    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    *    "
  WHILE INKEY$ <> "": WEND 'Clear keyboard buffer

  WHILE INKEY$ = ""
    FOR Z = 1 TO 200
    NEXT Z
  
    FOR a = 1 TO 5
      LOCATE 1, 1                             'print horizontal sparkles
      PRINT MID$(a$, a, 80);
      LOCATE 22, 1
      PRINT MID$(a$, 6 - a, 80);
    
      FOR Z = 1 TO 200
      NEXT Z

      FOR B = 2 TO 21                         'Print Vertical sparkles
        c = (a + B) MOD 5
        IF c = 1 THEN
          LOCATE B, 80
          PRINT "*";
          LOCATE 23 - B, 1
          PRINT "*";
        ELSE
          LOCATE B, 80
          PRINT " ";
          LOCATE 23 - B, 1
          PRINT " ";
        END IF
      NEXT B
    NEXT a

  WEND

END SUB

