280 IF PEEK(49249) > = 128 OR PEEK(49250) > = 128 THEN IF S <3 THEN C = 0: COLOR= 0: GOTO 330: REM IF MOUSE BUTTON DOWN AND OPEN/CLOSED APPLE PRESSED, CLEAR POINT ON SCREEN (SET COLOR TO BLACK)
290 IF OX < >X OR OY < >Y THEN IF S > = 2 THEN COLOR= C: PLOT OX,OY:C = SCRN( X,Y): REM IF MOUSE POSITION HAS CHANGED, CLEAR PRIOR CURSOR AND READ NEW SCREEN COORDINATE
300 IF S <0 THEN 460: REM PROCESS KEYPRESS
310 IF S < = 2 THEN COLOR= 15:C = 15: GOTO 330: REM IF MOUSE BUTTON DOWN, SET COLOR TO WHITE
320 COLOR= 1: REM CURSOR COLOR IS MAGENTA (HATCHED BOX)
330 PLOT X,Y: REM PUT COLOR ON SCREEN
340 OX = X:OY = Y: REM CURRENT COORDINATES NOW OLD HAT
350 GOTO 270: REM LOOP BACK FOR MORE INPUT
360 REM ===================
370 REM OBTAIN MOUSE INPUT:
380 REM ===================
390 INPUT "";X,Y,S: REM READ MOUSE DATA
400 X = INT(X/25.575): REM CONVERT MOUSE POSITION HORIZONTAL COORDINATES (0-1023) TO LORES COORDINATES (0-40)
410 Y = INT(Y/25.575): REM SAME FOR VERTICAL COORDINATES
420 RETURN
430 REM =====================
440 REM CHECK KEYBOARD INPUT:
450 REM =====================
460 POKE -16368,0: REM CLEAR KEYBOARD STROBE
470 PRINT D$"IN#0": REM ACCEPT INPUT FROM KEYBOARD
480 VTAB 22: PRINT "PRESS RETURN TO CONTINUE, ESC TO QUIT OR CTL-C TO CLEAR SCREEN ";: GET A$: REM PROMPT TO CONTINUE, QUIT OR CLEAR SCREEN
490 PRINT : IF A$ = CHR$(3) THEN 220: REM CLEAR SCREEN IF CTL-C PRESSED
500 IF A$ = CHR$(13) THEN HOME : PRINT D$"IN#"N: GOTO 270: REM CONTINUE IF RETURN PRESSED
510 IF A$ < > CHR$(27) THEN PRINT CHR$(7): GOTO 480: REM TRAP ERRONEOUS KEYPRESS
520 REM =====
530 REM QUIT:
540 REM =====
550 TEXT : HOME
560 PRINT D$"PR#"N: PRINT CHR$(0): REM DEACTIVATE MOUSE
570 PRINT D$"PR#0": REM SEND OUTPUT TO SCREEN
580 PRINT "THE MOUSE IS SLEEPING...": END
590 REM ============================
600 REM INITIALIZE SCREEN AND MOUSE:
610 REM ============================
620 HOME : GR : REM CLEAR SCREEN AND SET LORES
630 D$ = CHR$(4): REM DEFINE DOS STRING. FOR DOS 3.3 USE D$=CHR$(13)+CHR$(4)
640 C = 0: REM STARTING POINT BLANK
650 PRINT D$"PR#"N: PRINT CHR$(1): REM ACTIVATE MOUSE
660 PRINT D$"PR#0": REM SEND OUTPUT TO SCREEN
670 RETURN
680 REM ==========================
690 REM SEARCH FOR MOUSE FIRMWARE:
700 REM ==========================
710 L1 = 49420:L2 = 49659: REM START WITH SLOT 1 MOUSE FIRMWARE ID BYTES (L1=$C10C, L2=$C1FB)
720 FOR I = 1 TO 7: REM TEST SLOTS 1-7
730 IF PEEK(L1) = 32 AND PEEK(L2) = 214 THEN N = I:I = 9: REM IF MOUSE FIRMWARE LOCATED, N=SLOT # AND I > 8 FLAGS THE MATCH
740 L1 = L1 +256:L2 = L2 +256: REM SET FOR NEXT HIGHER SLOT
750 NEXT I
760 IF I >8 THEN RETURN : REM MOUSE FIRMWARE FOUND
770 POP : PRINT CHR$(7);: PRINT "MOUSE FIRMWARE NOT FOUND...": REM MOUSE FIRMWARE NOT LOCATED