home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib40a.dsk
/
DECEMBER.1990
/
GS.BLANKER.bas
< prev
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
43 lines
10 REM ********************************
20 REM * GS.Blanker *
30 REM * By Gary McFarlane *
40 REM * Copyright(c) 1990 *
50 REM * MindCraft Publ. Corp. *
60 REM * Concord, MA 01742 *
70 REM ********************************
80 HOME
90 PRINT : PRINT TAB( 15)"GS.Blanker"
100 PRINT : PRINT TAB( 11)"By Gary McFarlane": PRINT TAB( 1)"Copyright (c) 1990 MindCraft Publ. Corp."
110 PRINT : PRINT : PRINT "Please enter your name: ";: GOSUB 50000
120 PRINT : PRINT "Hello, "IN$". You are using a"
130 PRINT "program called GS.Blanker."
140 PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
150 PRINT : PRINT "This program uses a subroutine in place"
160 PRINT "of the INPUT statement."
170 PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
180 PRINT : PRINT "If the user does not press any key for"
190 PRINT "a certain length of time the screen"
200 PRINT "goes blank until another key is pressed."
210 PRINT : PRINT "Press <RETURN> please.";: GOSUB 50000
220 PRINT : PRINT "This prevents characters from being"
230 PRINT "permanently 'burned' into the screen."
240 PRINT : PRINT : PRINT "Would you like to see this again? ";: GOSUB 50000
250 IF LEFT$(IN$,1) = "Y" OR LEFT$(IN$,1) = "y" THEN 80
260 HOME : END
50000 IN$ = "":KT = 0:TS = 16000
50010 PRINT "_";: PRINT CHR$(8);
50020 KY = PEEK(49152):KT = KT +1: IF KY <128 AND KT <TS THEN 50020
50030 IF KT > = TS THEN GOSUB 50140: GOTO 50020
50040 KT = 0: POKE 49168,0:KY = KY -128: IF KY = 127 THEN KY = 8
50050 KY$ = CHR$(KY)
50060 IF KY = 27 AND LEN(IN$) >0 THEN FOR X = 1 TO LEN(IN$): PRINT CHR$(8);: NEXT :IN$ = ""
50070 IF KY = 13 OR KY = 27 THEN : CALL -868: PRINT : RETURN
50080 IF KY = 8 AND LEN(IN$) = 1 THEN IN$ = "": PRINT KY$;" ";KY$;KY$;
50090 IF KY = 8 AND LEN(IN$) >1 THEN IN$ = LEFT$(IN$, LEN(IN$) -1): PRINT KY$;" ";KY$;KY$;
50100 IF LEN(IN$) = 255 THEN PRINT CHR$(7);: GOTO 50010
50110 IF KY <32 OR KY >126 THEN 50010
50120 PRINT KY$;
50130 IN$ = IN$ +KY$: GOTO 50010
50140 L = PEEK(49186):BC = L - INT(L/16) *16: POKE 49186,BC *16 +BC
50150 KY = PEEK(49152): IF KY <128 THEN 50150
50160 POKE 49168,0:KT = 0: POKE 49186,L: RETURN