home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Nibble Magazine
/
nib27b.dsk
/
LIGHT.PEN.DEMO.bas
< prev
next >
Wrap
BASIC Source File
|
2023-02-26
|
2KB
|
51 lines
1 REM **********************
2 REM * LIGHT PEN DEMO *
3 REM * BY DAVID GAUGER II *
4 REM * COPYRIGHT (C) 1986 *
5 REM * BY MICROSPARC, INC *
6 REM * CONCORD, MA 01742 *
7 REM **********************
100 REM *** INITIALIZE ***
110 GOSUB 190
120 PRINT CHR$(4);"BLOAD PEN.DRIVER"
130 PEN = 770: REM LOCATION OF MACHINE LANGUAGE DRIVER
140 V = 768:H = 769: REM VERTICAL (COLUMN) AND HORIZONTAL (ROW) COORDINATE LOCATIONS
150 GOTO 210
160 REM *** SUBROUTINES ***
170 INVERSE : PRINT " ";: NORMAL : RETURN : REM SUBROUTINE TO PRINT AN INVERSE SPACE (BLOCK) ON THE SCREEN
180 PRINT " ";: RETURN : REM SUBROUTINE TO PRINT A SPACE
190 TEXT : HOME : RETURN
200 REM *** MAIN PROGRAM ***
210 HOME : HTAB 5: PRINT "NIBBLE LIGHT PEN DEMONSTRATION": PRINT "** COPYRIGHT 1986 BY MICROSPARC, INC.**"
220 VTAB 8
230 PRINT "THIS PROGRAM IS MEANT TO DEMONSTRATE"
240 PRINT "ONE POSSIBLE USE FOR THE NIBBLE LIGHT"
250 PRINT "PEN IN YOUR OWN PROGRAMS."
260 PRINT : PRINT
270 PRINT
280 PRINT "PLEASE NOTE THAT THE PROGRAM IS NOW"
290 PRINT "WAITING FOR YOU TO TOUCH THE INVERSE"
300 PRINT "SPACE WITH THE LIGHT PEN."
310 VTAB 23: HTAB 5
320 PRINT "TOUCH PEN HERE TO CONTINUE ==>";
330 GOSUB 170: REM PRINT INVERSE SPACE
340 CALL PEN: REM PROGRAM CONTROL PASSED TO LIGHT PEN DRIVER WHICH RETURNS ONLY WHEN IT FINDS PEN
350 REM *** MENU SCREEN ***
360 GOSUB 190: HTAB 5: PRINT "NIBBLE LIGHT PEN DEMONSTRATION"
370 VTAB 8: HTAB 12: GOSUB 170: GOSUB 180
380 PRINT "CATALOG DISK"
390 VTAB 11: HTAB 12: GOSUB 170: GOSUB 180
400 PRINT "RING BELL"
410 VTAB 14: HTAB 12: GOSUB 170: GOSUB 180
420 PRINT "LIST PROGRAM"
430 VTAB 17: HTAB 12: GOSUB 170: GOSUB 180
440 PRINT "END"
450 CALL PEN
460 REM * LIGHT PEN DECODING *
470 IF PEEK(V) = 7 THEN PRINT CHR$(4);"CATALOG": FOR X = 1 TO 2000: NEXT X: GOTO 360
480 REM NOTE THAT THE DRIVER RETURNS (V) ONE LESS THAN THE VTAB VALUE OF THE SAME SPOT
490 REM NOTE ALSO THAT WE DONT HAVE TO DECODE THE HORIZ. VALUE IN THIS CASE BECAUSE THE VERTICAL VALUE ALONE IS ENOUGH
500 IF PEEK(V) = 10 THEN PRINT CHR$(7) + CHR$(7) + CHR$(7) + CHR$(7) + CHR$(7);: GOTO 360: REM 5 BELLS
510 IF PEEK(V) = 13 THEN HOME : LIST : HOME : GOTO 360
520 REM IF (V)=16 THEN THE PROGRAM WILL FALL THROUGH TO THIS POINT
530 END