5 CLS:KEY OFF:SCREEN 0,0,0:WIDTH 80:CLEAR:FOR I=1 TO 10:KEY I,"":NEXT:KEY 2,"GOTO 60"+CHR$(13):KEY 10,"RUN"+CHR$(34)+"BLUEMENU"+CHR$(34)+CHR$(13):LIST 10-57 10 '******************** ZIPCLEAR OF FORMATTED SCREEN ************************ 15 '?????????????????????????????????????????????????????????????????????????? 17 '? IMMEDIATE CLEAR OF DESIGNATED SCREEN AREA ? 19 '? ? 21 '? This simple program is a modification of a program contained in the ? 23 '? Letters to the Editor, PC Magazine. It may not work consistently in a ? 25 '? memory size of 64K or less. It will work in 128K. The program will ? 27 '? demonstate a "slow screen wash" and then ask for coordinate inputs to ? 29 '? clear the screen rapidly. You can extract the routine and use in your ? 31 '? programs. It is very effective. Instead of putting in the corners of ? 33 '? the clear area with an prompt input statement, you can pre-program the ? 35 '? area you want cleared before you go to the ZIPCLEAR subroutine. ? 37 '? See LABELPRO.BAS and BLUEBERY.BAS for examples of routine in use. ? 39 '? This program may be used without license or attribution. ? 41 '? (c) G I N A C O - 1983 Ver 5.2/320/160 ? 43 '?????????????????????????????????????????????????????????????????????????? 55 ' ***** < F2 > to RUN ******* < F10 > For BLUEMENU ***** 57 ' ====== To avoid DOCUMENTATION BOX each time, REM or DELETE line 5 ====== 60 CLS 100 CLS 110 CLEAR 120 SCREEN 0,0,0 130 WIDTH 80 140 LOCATE 1,4 150 PRINT "?" 160 LOCATE 1,5 170 PRINT STRING$(72,"?") 180 LOCATE 1,77 190 PRINT "?"; 200 FOR I! = 2 TO 22 210 LOCATE I!,4 220 PRINT "?" 230 LOCATE I!,77 240 PRINT "?"; 250 NEXT 260 LOCATE 23,4 270 PRINT "?" 280 LOCATE 23,5 290 PRINT STRING$(72,"?") 300 LOCATE 23,77 310 PRINT "?"; 320 KEY OFF 330 GOSUB 550 340 GOSUB 610 350 LOCATE 12,25 360 PRINT "THAT WAS AN EXAMPLE OF "; CHR$(34);"SLOW"; CHR$(34);" CLEAR" 370 FOR I! = 1 TO 3000 380 NEXT 390 LOCATE 12,12 400 PRINT SPC( 60) 410 LOCATE 6,20 420 PRINT "INDICATE CLEAR SPACE FOUR CORNER COORDINATES?" 430 LOCATE 7,23 440 PRINT "(ENTERED IN ROW,COLUMN FORMAT AS SHOWN)" 450 LOCATE 9,28 460 INPUT "UPPER LEFT ROW",UP.LEFT.ROW% 470 LOCATE 11,28 480 INPUT "UPPER LEFT COLUMN ",UP.LEFT.COL% 490 LOCATE 13,28 500 INPUT "LOWER LEFT ROW ",LOW.LEFT.ROW% 510 LOCATE 15,28 520 INPUT "RIGHT COLUMN ",RIGHT.COL% 530 GOSUB 550 540 GOSUB 670 550 REM ***************** FILL SCREEN ROUTINE ******************************* 560 FOR I! = 2 TO 22 570 LOCATE I!,6 580 PRINT STRING$(71,3); 590 NEXT 600 RETURN 610 REM ***************** SLOW CLEAR ROUTINE ******************************* 620 FOR I! = 5 TO 19 630 LOCATE I!,11 640 PRINT SPC( 61); 650 NEXT 660 RETURN 670 REM ************* ZIPCLEAR INPUT PARAMETERS *************************** 680 DIM A%(22) 690 FOR I! = 0 TO 21 700 READ A%(I!) 710 NEXT 720 DATA&h8B55 730 DATA&hB8EC 740 DATA&H0600 750 DATA&H07B7 760 DATA&H768B 770 DATA&H8A0C 780 DATA&H8B2C 790 DATA&HA76 800 DATA&HC8A 810 DATA&H768B 820 DATA&H8A08 830 DATA&H8B34 840 DATA&H676 850 DATA&H148A 860 DATA&HCDFE 870 DATA&HC9FE 880 DATA&HCEFE 890 DATA&HCAFE 900 DATA&H10CD 910 DATA&HCA5D 920 DATA&H8 930 DATA&H0 940 R1% = UP.LEFT.ROW% 950 C1% = UP.LEFT.COL% 960 R2% = LOW.LEFT.ROW% 970 C2% = RIGHT.COL% 980 GOSUB 1010 990 GOTO 1060 1000 END 1010 REM ********** THE ACTUAL ZIPCLEAR SUBROUTINE IS HERE ****************** 1020 DEF SEG 1030 SUBRT% = VARPTR(A%(0)) 1040 CALL SUBRT%(R1%,C1%,R2%,C2%) 1050 RETURN 1060 LOCATE 12,25 1070 PRINT "THAT WAS AN EXAMPLE OF "; CHR$(34);"ZIPCLEAR"; CHR$(34) 1080 LOCATE 16,30 1090 PRINT "PRESS ANY KEY TO RERUN" 1100 A$ = INKEY$ 1110 IF A$ = "" THEN 1080 ELSE 1120 1120 GOTO 100 1130 END 65000 ' ************************ SAVE ROUTINE ******************************* 65100 SAVE "B:ZIPCLEAR.BAS"