home *** CD-ROM | disk | FTP | other *** search
/ Nibble Magazine / nib40a.dsk / DECEMBER.1990 / GS.BLANKER.bas < prev   
BASIC Source File  |  2023-02-26  |  2KB  |  43 lines

  1. 10  REM  ********************************
  2. 20  REM  * GS.Blanker                   *
  3. 30  REM  * By Gary McFarlane            *
  4. 40  REM  * Copyright(c) 1990            *
  5. 50  REM  * MindCraft Publ. Corp.        *
  6. 60  REM  * Concord, MA 01742            *
  7. 70  REM  ********************************
  8. 80  HOME 
  9. 90  PRINT : PRINT  TAB( 15)"GS.Blanker"
  10. 100  PRINT : PRINT  TAB( 11)"By Gary McFarlane": PRINT  TAB( 1)"Copyright (c) 1990 MindCraft Publ. Corp."
  11. 110  PRINT : PRINT : PRINT "Please enter your name:  ";: GOSUB 50000
  12. 120  PRINT : PRINT "Hello, "IN$".  You are using a"
  13. 130  PRINT "program called GS.Blanker."
  14. 140  PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
  15. 150  PRINT : PRINT "This program uses a subroutine in place"
  16. 160  PRINT "of the INPUT statement."
  17. 170  PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
  18. 180  PRINT : PRINT "If the user does not press any key for"
  19. 190  PRINT "a certain length of time the screen"
  20. 200  PRINT "goes blank until another key is pressed."
  21. 210  PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
  22. 220  PRINT : PRINT "This prevents characters from being"
  23. 230  PRINT "permanently 'burned' into the screen."
  24. 240  PRINT : PRINT : PRINT "Would you like to see this again?  ";: GOSUB 50000
  25. 250  IF  LEFT$(IN$,1) = "Y"  OR  LEFT$(IN$,1) = "y"  THEN 80
  26. 260  HOME : END 
  27. 50000 IN$ = "":KT = 0:TS = 16000
  28. 50010  PRINT "_";: PRINT  CHR$(8);
  29. 50020 KY =  PEEK(49152):KT = KT +1: IF KY <128  AND KT <TS  THEN 50020
  30. 50030  IF KT > = TS  THEN  GOSUB 50140: GOTO 50020
  31. 50040 KT = 0: POKE 49168,0:KY = KY -128: IF KY = 127  THEN KY = 8
  32. 50050 KY$ =  CHR$(KY)
  33. 50060  IF KY = 27  AND  LEN(IN$) >0  THEN  FOR X = 1 TO  LEN(IN$): PRINT  CHR$(8);: NEXT :IN$ = ""
  34. 50070  IF KY = 13  OR KY = 27  THEN : CALL  -868: PRINT : RETURN 
  35. 50080  IF KY = 8  AND  LEN(IN$) = 1  THEN IN$ = "": PRINT KY$;"  ";KY$;KY$;
  36. 50090  IF KY = 8  AND  LEN(IN$) >1  THEN IN$ =  LEFT$(IN$, LEN(IN$) -1): PRINT KY$;"  ";KY$;KY$;
  37. 50100  IF  LEN(IN$) = 255  THEN  PRINT  CHR$(7);: GOTO 50010
  38. 50110  IF KY <32  OR KY >126  THEN 50010
  39. 50120  PRINT KY$;
  40. 50130 IN$ = IN$ +KY$: GOTO 50010
  41. 50140 L =  PEEK(49186):BC = L - INT(L/16) *16: POKE 49186,BC *16 +BC
  42. 50150 KY =  PEEK(49152): IF KY <128  THEN 50150
  43. 50160  POKE 49168,0:KT = 0: POKE 49186,L: RETURN