Listing of file='EDIT.BAS;01' on disk='vmedia/chip_23-sector.ccvf'
100 GOTO 7580 110 REM ** SCREEN EDITOR V1.2 MARCH 21,1981 120 REM ** 130 REM ** JOHN R. BELL 140 REM ** 12 KIMBALL DRIVE 150 REM ** ROCHESTER,NEW YORK 14623 160 REM ** PHONE (716)-475-1412 170 REM ** 180 POKE 33247,31 190 SL= 28672 200 SS= 28672:REM START OF SCREEN MEMORY 210 LK= 33252:REM LAST KEY CODE 220 KC= 33278:REM KEYBOARD CHARACTER 230 DIM LL(136) 240 REM X IS CURRENT CURSOR POSITION,X1 IS PREVIOUS POSTION, AND 250 REM XX IS CURSOR X POSITION OF CORNER WORKSPACE,X9 IS AMOUNT 260 REM ADDED TO XX TO PLOT NUMBERS IN CORNER WORKSPACE. 270 REM Y VALUES ARE SAME AS FOR X AS ABOVE. 280 BG= 16:FG= 18 290 DEF FN A(A)= 28672+ 128* Y+ X+ X:REM CHARACTER AT CURSOR POSITION. 300 DEF FN B(B)= 28673+ 128* Y+ X+ X:REM COLOR STATUS FOR ABOVE. 310 POKE 33289,255 320 B$= "":D$= "" 330 PLOT 6,6,12,14 340 PLOT 27,24 350 PLOT 3,19,0 360 PRINT "S C R E E N E D I T O R" 370 PLOT 6,2,15 380 PLOT 3,0,4 390 PLOT 3,24,4 400 PRINT "BY JOHN R. BELL" 410 PLOT 3,16,6 420 PRINT "ENTER (ESC) TO CORRECT MISTAKES" 430 M= 15 440 PLOT 14,6,4 450 PLOT 3,28,10 460 PRINT "OPTIONS" 470 PLOT 15,6,1 480 PLOT 3,0,M 490 PRINT "WOULD YOU LIKE TO SAVE THE SCREEN IMAGE? (Y/N)" 500 FOR J= 1 TO 30:NEXT J 510 K= PEEK (LK):IF K= 0 THEN 510 520 IF K= 57 THEN PLOT 3,47,M:PRINT "Y":A$= "Y":GOTO 560 530 IF K= 46 THEN PLOT 3,47,M:PRINT "N":A$= "N":GOTO 710 540 IF K= 107 THEN 320 550 GOTO 500 560 PLOT 6,2 570 M= M+ 2 580 PLOT 3,0,M 590 PRINT "WHAT WOULD YOU LIKE TO NAME IT? (6 CHARACTERS)." 600 FOR J= 1 TO 30:NEXT J 610 K= PEEK (LK):IF K= 0 THEN 610 620 IF K= 93 THEN 710 630 IF K= 107 THEN 320 640 IF K< 16 OR K> 58 THEN 600 650 IF K> 25 AND K< 33 THEN 600 660 B$= B$+ CHR$ (K+ 32) 670 PLOT 3,48,M 680 PRINT B$ 690 IF LEN (B$)= 6 THEN 710 700 GOTO 600 710 M= M+ 2 720 PLOT 3,0,M 730 PLOT 6,3 740 PRINT "WOULD YOU LIKE TO UPDATE A PREVIOUS IMAGE? (Y/N)" 750 FOR J= 1 TO 30:NEXT J 760 K= PEEK (LK):IF K= 0 THEN 760 770 IF K= 107 THEN 320 780 IF K= 57 THEN PLOT 3,49,M:PRINT "Y":GOTO 1020 790 IF K= 46 THEN PLOT 3,49,M:PRINT "N":GOTO 810 800 GOTO 750 810 M= M+ 2 820 PLOT 3,0,M 830 PLOT 6,4 840 PRINT "WOULD YOU LIKE TO MAKE THE BACKGROUND ONE COLOR? (Y/N)" 850 FOR J= 1 TO 30:NEXT J 860 K= PEEK (LK):IF K= 0 THEN 860 870 IF K= 107 THEN 320 880 IF K= 57 THEN PLOT 3,55,M:PRINT "Y":GOTO 910 890 IF K= 46 THEN PLOT 3,55,M:PRINT "N":GOTO 990 900 GOTO 850 910 M= M+ 2 920 PLOT 3,0,M 930 PLOT 6,5 940 PRINT "HIT THE CORRESPONDING COLORED KEY TO MAKE YOUR CHOICE." 950 FOR J= 1 TO 30:NEXT J 960 K= PEEK (LK):IF K= 0 THEN 960 970 IF K= 107 THEN 320 980 IF K< 48 OR K> 55 THEN 950 990 PLOT 30,K- 32 1000 PLOT 12 1010 GOTO 1290 1020 M= M+ 2 1030 PLOT 3,0,M 1040 PLOT 6,6 1050 PRINT "WHAT IS THE NAME OF THIS IMAGE? (ASSUMES .DSP TYPE)" 1060 FOR J= 1 TO 30:NEXT J 1070 K= PEEK (LK):IF K= 0 THEN 1070 1080 IF K= 93 THEN 1170 1090 IF K= 107 THEN 320 1100 IF K< 16 OR K> 58 THEN 1060 1110 IF K> 25 AND K< 33 THEN 1060 1120 D$= D$+ CHR$ (K+ 32) 1130 PLOT 3,52,M 1140 PRINT D$ 1150 IF LEN (D$)= 6 THEN 1170 1160 GOTO 1060 1170 M= M+ 2 1180 PLOT 3,0,M 1190 PLOT 6,7 1200 PRINT "WHAT IS THE VERSION NUMBER?" 1210 FOR J= 1 TO 30:NEXT J 1220 K= PEEK (LK):IF K= 0 THEN 1220 1230 IF K= 107 THEN 320 1240 IF K< 16 OR K> 25 THEN 1210 1250 PLOT 30,16,12 1260 PLOT 27,4 1270 PRINT "LOAD ";D$;".DSP;";K- 16 1280 PLOT 27,27 1290 M= 0 1300 POKE 33247,31 1310 PLOT 15 1320 IF AA= 0 THEN 1350 1330 AA= 1 1340 X1= X:X= X+ 1:IF X> 63 THEN X= 0 1350 PLOT 3,X,Y 1360 FOR J= 1 TO 30:NEXT J 1370 K= PEEK (LK):IF K= 0 THEN 1370 1380 PLOT 13:PLOT 3,X,Y 1390 IF K= 106 THEN 1640:REM LEFT CURSOR ROUTINE 1400 IF K= 105 THEN 1710:REM RIGHT CURSOR ROUTINE 1410 IF K= 108 THEN 1760:REM UP CURSOR ROUTINE 1420 IF K= 90 THEN 1800:REM DOWN CURSOR ROUTINE 1430 IF K= 88 THEN 1840:REM HOME CURSOR ROUTINE 1440 IF K= 93 THEN 1870:REM RETURN CURSOR ROUTINE 1450 IF K= 89 AND A(0)= 0 THEN 1920:REM UPPER CORNER WORKSPACE ROUTINE 1460 IF K= 89 AND A(0)> 0 THEN 2260:REM REPLACE CORNER ROUTINE 1470 IF K= 110 THEN 2120:REM BACKGROUND COLOR SET 1480 IF K= 109 THEN 2190:REM FOREGROUND COLOR SET 1490 IF K= 85 AND AA= 0 THEN AA= 2:GOTO 1320:REM TURN ON AUTO ADVANCE MODE 1500 IF K= 85 AND AA= 1 THEN AA= 0:GOTO 1320:REM TURN OFF AUTO ADVANCE MODE 1510 IF K= 94 THEN PLOT 14:GOTO 1350:REM TURN ON LARGE CHARACTERS 1520 IF K= 95 THEN PLOT 15:GOTO 1350:REM TURN OFF BLINK AND LARGE CHARACTERS 1530 IF K= 111THEN PLOT 31:GOTO 1350:REM TURN BLINK ON 1540 IF K= 91 THEN 2400:REM CHARACTER PLOT ROUTINE 1550 IF K= 92 THEN 2800:REM VECTOR PLOT ROUTINE 1560 IF K= 107 THEN 7490:REM STOP PROGRAM 1570 IF K= 63 AND PEEK (KC)= 31 THEN 5460:REM DISPLAY CURSOR LOC. 1580 IF K= 59 AND PEEK (KC)= 27 THEN 6120:REM STORE CC&CS 1590 IF K= 61 AND PEEK (KC)= 29 THEN 6170:REM DISPLAY CC&CS 1600 IF K= 62 AND PEEK (KC)= 30 THEN 6210:REM FILL MODE 1610 IF PEEK (KC)< 32 THEN 1320 1620 IF PEEK (KC)> 0 THEN PRINT CHR$ (PEEK (KC)); 1630 GOTO 1320 1640 X1= X 1650 IF X= 0 THEN X= 64 1660 X= X- 1 1670 IF AA= 0 THEN 1320 1680 X1= X:X= X- 1 1690 IF X< 0 THEN X= 63:X1= 0 1700 GOTO 1320 1710 IF AA= 1 THEN 1320 1720 X1= X 1730 IF X= 63 THEN X= - 1 1740 X= X+ 1 1750 GOTO 1320 1760 Y1= Y 1770 IF Y= 0 THEN Y= 32 1780 Y= Y- 1 1790 GOTO 1320 1800 Y1= Y 1810 IF Y= 31 THEN Y= - 1 1820 Y= Y+ 1 1830 GOTO 1320 1840 X1= X:Y1= Y 1850 X= 0:Y= 0 1860 GOTO 1350 1870 X= X1:Y= Y1 1880 GOTO 1350 1890 REM DECIDE WHICH CORNER TO CLEAR. 1900 IF X> 17 OR Y> 4 THEN K= 17:GOTO 1930 1910 K= 18:GOTO 1940 1920 K= PEEK (LK):IF K= 0 THEN 1920 1930 IF K= 17 THEN A(0)= 1:SL= 28672:XX= 0:YY= 0:GOTO 1980 1940 IF K= 18 THEN A(0)= 2:SL= 28766:XX= 47:YY= 0:GOTO 1980 1950 IF K= 19 THEN A(0)= 3:SL= 32256:XX= 0:YY= 28:GOTO 1980 1960 IF K= 20 THEN A(0)= 4:SL= 32350:XX= 47:YY= 28:GOTO 1980 1970 GOTO 1920 1980 M= 0:REM SL IS START LOCATION OF CORNER WORKSPACE 1990 FOR I= 1 TO 4 2000 FOR Q= SL TO SL+ 33 2010 M= M+ 1 2020 LL(M)= PEEK (Q) 2030 POKE Q,0 2040 NEXT Q 2050 SL= SL+ 128 2060 NEXT I 2070 M= 0 2080 IF EL= 1 THEN 2450 2090 IF EP= 1 THEN 2850 2100 IF CA= 1 THEN 5500 2110 GOTO 1320 2120 FOR J= 1 TO 20:NEXT J 2130 K= PEEK (KC):IF K= 0 THEN 2130 2140 IF K= 32 THEN PLOT 30:GOTO 1350 2150 IF K< 80 OR K> 87 THEN 2130 2160 BG= K- 64 2170 PLOT 30,BG 2180 GOTO 1350 2190 FOR J= 1 TO 20:NEXT J 2200 K= PEEK (KC):IF K= 0 THEN 2200 2210 IF K= 32 THEN PLOT 29:GOTO 1350 2220 IF K< 80 OR K> 87 THEN 2200 2230 FG= K- 64 2240 PLOT 29,FG 2250 GOTO 1350 2260 IF A(0)= 1 THEN SL= 28672 2270 IF A(0)= 2 THEN SL= 28766 2280 IF A(0)= 3 THEN SL= 32256 2290 IF A(0)= 4 THEN SL= 32350 2300 M= 0 2310 FOR I= 1 TO 4 2320 FOR H= SL TO SL+ 33 2330 M= M+ 1 2340 POKE H,LL(M) 2350 NEXT H 2360 SL= SL+ 128 2370 NEXT I 2380 M= 0:A(0)= 0 2390 GOTO 1350 2400 REM CHARACTER PLOT MODE 2410 PLOT 15 2420 EL= 1:REM ERASE LINE KEY (CHAR.PLOT MODE) ON. 2430 FG= 17:BG= 16 2440 IF A(0)= 0 THEN 1890:REM CHECK IF CORNER IS CLEAR 2450 GOSUB 5000 2460 GOSUB 5090 2470 GOSUB 5000 2480 PLOT 29,19 2490 PLOT 3,XX,YY 2500 PRINT "CHAR. PLOT AF" 2510 PLOT 29,20 2520 PLOT 3,XX,YY+ 1 2530 PRINT "SELECT BLOCKS BG" 2540 PLOT 3,XX,YY+ 2 2550 PRINT "OR ENTER VALUE CH" 2560 PLOT 3,XX+ 15,YY+ 3 2570 PRINT "DI" 2580 X9= 0:Y9= 3 2590 GOSUB 5810 2600 IF N< 0 OR N> 254 THEN N= 0:GOTO 2470 2610 PLOT 3,XX,YY+ 3 2620 PRINT SPC( 14) 2630 PLOT 3,XX+ 1,YY+ 3 2640 PLOT 30,BG,29,FG,RR 2650 PLOT 2,254,N,255 2660 PLOT 3,XX+ 3,YY+ 3 2670 PLOT 30,16,29,21,15 2680 PRINT "O.K.? (Y/N)" 2690 K= PEEK (LK):IF K= 0 THEN 2690 2700 IF K= 37 THEN 4950 2710 IF K= 46 THEN 2470 2720 IF K= 57 THEN 2760 2730 PLOT 3,XX,YY+ 3 2740 PRINT SPC( 17) 2750 GOTO 2630 2760 PLOT 3,X,Y 2770 PLOT 30,BG,29,FG,RR 2780 PLOT 2,254,N,255 2790 GOTO 2450 2800 REM VECTOR PLOT ROUTINE 2810 PLOT 15 2820 EP= 1:REM ERASE PAGE (VEC. PLOT MODE) ON. 2830 IF A(0)= 0 THEN 1890 2840 GOSUB 5000 2850 GOSUB 5090 2860 GOSUB 5000 2870 PLOT 3,XX,YY 2880 PLOT 29,19,15 2890 PRINT "VECTOR PLOT MODE" 2900 PLOT 3,XX,YY+ 1 2910 PLOT 29,21 2920 PRINT "ENTER IN X ORIGIN" 2930 PLOT 3,XX,YY+ 2 2940 PRINT "XO=" 2950 X9= 4:Y9= 2 2960 GOSUB 5810 2970 XO= N 2980 IF XO> - 1 AND XO< 128 THEN 3070 2990 PLOT 3,XX,YY+ 1 3000 PLOT 29,17,31 3010 PRINT "INVALID ENTRY " 3020 FOR J= 1 TO 450:NEXT J 3030 PLOT 15 3040 PLOT 3,XX+ 4,YY+ 2 3050 PRINT SPC( 4) 3060 GOTO 2900 3070 FOR J= 1 TO 30:NEXT J 3080 PLOT 3,XX,YY+ 1 3090 PLOT 29,22,15 3100 PRINT "ENTER IN Y ORIGIN" 3110 PLOT 3,XX+ 9,YY+ 2 3120 PRINT "YO=" 3130 X9= 12:Y9= 2 3140 GOSUB 5810 3150 YO= N 3160 IF YO> - 1 AND YO< 128 THEN 3250 3170 PLOT 3,XX,YY+ 1 3180 PLOT 29,17,31 3190 PRINT "INVALID ENTRY " 3200 FOR J= 1 TO 450:NEXT J 3210 PLOT 15 3220 PLOT 3,XX+ 12,YY+ 2 3230 PRINT SPC( 4) 3240 GOTO 3080 3250 FOR J= 1 TO 30:NEXT J 3260 PLOT 3,XX,YY+ 1 3270 PLOT 29,18,15 3280 PRINT "ENTER IN X DEST. " 3290 PLOT 3,XX,YY+ 3 3300 PRINT "XD=" 3310 X9= 4:Y9= 3 3320 GOSUB 5810 3330 XD= N 3340 IF XD> - 1 AND XD< 128 THEN 3430 3350 PLOT 3,XX,YY+ 1 3360 PLOT 29,17,31 3370 PRINT "INVALID ENTRY " 3380 FOR J= 1 TO 450:NEXT J 3390 PLOT 15 3400 PLOT 3,XX+ 4,YY+ 3 3410 PRINT SPC( 4) 3420 GOTO 3260 3430 FOR J= 1 TO 30:NEXT J 3440 PLOT 3,XX,YY+ 1 3450 PLOT 29,19,15 3460 PRINT "ENTER IN Y DEST." 3470 PLOT 3,XX+ 9,YY+ 3 3480 PRINT "YD=" 3490 X9= 12:Y9= 3 3500 GOSUB 5810 3510 YD= N 3520 IF YD> - 1 AND YD< 128 THEN 3610 3530 PLOT 3,XX,YY+ 1 3540 PLOT 29,17,31 3550 PRINT "INVALID ENTRY " 3560 FOR J= 1 TO 450:NEXT J 3570 PLOT 15 3580 PLOT 3,XX+ 12,YY+ 3 3590 PRINT SPC( 4) 3600 GOTO 3440 3610 PLOT 29,FG,30,BG,RR 3620 PLOT 2,XO,YO,242,XD,YD,255 3630 GOSUB 5000 3640 PLOT 6,7 3650 PLOT 3,XX,YY 3660 PRINT "VECTOR OK? (Y/N)" 3670 FOR J= 1 TO 30:NEXT J 3680 K= PEEK (LK):IF K= 0 THEN 3680 3690 IF K= 37 THEN 4950 3700 IF K= 57 THEN 2840 3710 IF K= 46 THEN 3730 3720 GOTO 3670 3730 GOSUB 5000 3740 PLOT 6,1,29 3750 PLOT 3,XX,YY 3760 PRINT "WHICH ALTERATION?" 3770 PLOT 3,XX,YY+ 1 3780 PRINT "DELETE LINE, FG," 3790 PLOT 3,XX,YY+ 2 3800 PRINT "BG, COORDINATES" 3810 PLOT 30 3820 FOR J= 1 TO 30:NEXT J 3830 K= PEEK (LK):IF K= 0 THEN 3830 3840 IF K< 34 AND K> 38 THEN 3820 3850 IF K= 37 THEN 4950 3860 IF K= 35 THEN 4110 3870 PLOT 2,XO,YO,242,XD,YD,255 3880 IF K= 34 THEN 3910 3890 IF K= 38 THEN 4010 3900 GOTO 2840 3910 PLOT 6,3 3920 PLOT 3,XX,YY+ 3 3930 PRINT "HIT COLORED KEY" 3940 FOR J= 1 TO 30:NEXT J 3950 K= PEEK (LK):IF K= 0 THEN 3950 3960 IF K= E THEN 4950 3970 IF K> 47 AND K< 56 THEN 3990 3980 GOTO 3940 3990 BG= K- 32 4000 GOTO 3610 4010 PLOT 6,4 4020 PLOT 3,XX,YY+ 3 4030 PRINT "HIT COLORED KEY" 4040 FOR J= 1 TO 30:NEXT J 4050 K= PEEK (LK):IF K= 0 THEN 4050 4060 IF K= 37 THEN 4950 4070 IF K> 47 AND K< 56 THEN 4090 4080 GOTO 4040 4090 FG= K- 32 4100 GOTO 3610 4110 REM COORDINATE CHANGING ROUTINE 4120 GOSUB 5000 4130 PLOT 6,4 4140 PLOT 3,XX,YY 4150 PRINT "COORDINATE CHANGE" 4160 PLOT 6,2 4170 PLOT 3,XX,YY+ 1 4180 PRINT "INPUT NEW VALUE" 4190 PLOT 3,XX,YY+ 2 4200 PRINT "OR HIT RETURN." 4210 PLOT 6,5 4220 PLOT 3,XX,YY+ 3 4230 PRINT SPC( 17) 4240 PLOT 3,XX,YY+ 3 4250 PRINT "XO=";XO 4260 PLOT 6,6 4270 PLOT 3,XX+ 8,YY+ 3 4280 PRINT "XO=" 4290 X9= 11:Y9= 3 4300 GOSUB 5810 4310 IF N$= "0" THEN XP= XO:GOTO 4390 4320 IF N> - 1 AND N< 128 THEN 4380 4330 PLOT 6,65 4340 PLOT 3,XX,YY+ 3 4350 PRINT "INVALID ENTRY " 4360 FOR J= 1 TO 700:NEXT J 4370 GOTO 4210 4380 XP= N 4390 PLOT 6,5 4400 PLOT 3,XX,YY+ 3 4410 PRINT SPC( 17):PLOT 3,XX,YY+ 3 4420 PRINT "YO=";YO 4430 PLOT 6,6 4440 PLOT 3,XX+ 8,YY+ 3 4450 PRINT "YO=" 4460 GOSUB 5810 4470 IF N$= "0" THEN YP= YO:GOTO 4550 4480 IF N> - 1 AND N< 128 THEN 4540 4490 PLOT 6,65 4500 PLOT 3,XX,YY+ 3 4510 PRINT "INVALID ENTRY " 4520 FOR J= 1 TO 700:NEXT J 4530 GOTO 4390 4540 YP= N 4550 PLOT 6,5 4560 PLOT 3,XX,YY+ 3 4570 PRINT SPC( 17):PLOT 3,XX,YY+ 3 4580 PRINT "XD=";XD 4590 PLOT 6,6 4600 PLOT 3,XX+ 8,YY+ 3 4610 PRINT "XD=" 4620 GOSUB 5810 4630 IF N$= "0" THEN XE= XD:GOTO 4710 4640 IF N> - 1 AND N< 128 THEN 4700 4650 PLOT 6,65 4660 PLOT 3,XX,YY+ 3 4670 PRINT "INVALID ENTRY " 4680 FOR J= 1 TO 700:NEXT J 4690 GOTO 4540 4700 XE= N 4710 PLOT 6,5 4720 PLOT 3,XX,YY+ 3 4730 PRINT SPC( 17) 4740 PLOT 3,XX,YY+ 3 4750 PRINT "YD=";YD 4760 PLOT 6,6 4770 PLOT 3,XX+ 8,YY+ 3 4780 PRINT "YD=" 4790 GOSUB 5810 4800 IF N$= "0" THEN YE= YD:GOTO 4880 4810 IF N> - 1 AND N< 128 THEN 4870 4820 PLOT 6,65 4830 PLOT 3,XX,YY+ 3 4840 PRINT "INVALID ENTRY " 4850 FOR J= 1 TO 700:NEXT J 4860 GOTO 4700 4870 YE= N 4880 PLOT 30 4890 PLOT 2,XO,YO,242,XD,YD,255 4900 XO= XP 4910 YO= YP 4920 XD= XE 4930 YD= YE 4940 GOTO 3610 4950 REM END PLOT MODE ROUTINE 4960 GOSUB 5000 4970 EL= 0:REM CHARACTER PLOT TURNED OFF 4980 EP= 0:REM VECTOR PLOT TURNED OFF 4990 GOTO 1320 5000 REM CLEAR CORNER WITH BLANK SPACES ROUTINE 5010 PLOT 30,16 5020 PLOT 3,XX,YY 5030 FOR I= 1 TO 4 5040 PRINT SPC( 17) 5050 PLOT 3,XX,YY+ I 5060 NEXT I 5070 PLOT 3,XX,YY 5080 RETURN 5090 REM PLOT MODES COLOR SETTING ROUTINE 5100 PLOT 15 5110 PLOT 3,XX,YY 5120 PLOT 30,16,29,23 5130 PRINT "V&C PLOT MODES" 5140 PLOT 3,XX,YY+ 1 5150 PRINT "ENTER 'E' TO END 5160 PLOT 29,17 5170 PLOT 3,XX,YY+ 2 5180 PRINT "BLINK ON? (Y/N)" 5190 FOR J= 1 TO 30:NEXT J 5200 K= PEEK (LK):IF K= 0 THEN 5200 5210 IF K= 37 THEN 4950 5220 IF K= 46 THEN RR= 15 :GOTO 5250 5230 IF K= 57 THEN RR= 31:GOTO 5250 5240 GOTO 5190 5250 PLOT 29,22,15 5260 PLOT 3,XX,YY+ 2 5270 PRINT "SET F/G COLOR " 5280 FOR J= 1 TO 30:NEXT J 5290 K= PEEK (LK):IF K= 0 THEN 5290 5300 IF K= 37 THEN 4950 5310 IF K= 93 THEN 5350 5320 IF K> 47 OR K< 56 THEN 5340 5330 GOTO 5280 5340 FG= K- 32 5350 PLOT 3,XX,YY+ 3 5360 PLOT 29,18 5370 PRINT "SET B/G COLOR" 5380 FOR J= 1 TO 50:NEXT J 5390 K= PEEK (LK):IF K= 0 THEN 5390 5400 IF K= 37 THEN 4950 5410 IF K= 93 THEN RETURN 5420 IF K> 47 OR K< 56 THEN 5440 5430 GOTO 5380 5440 BG= K- 32 5450 RETURN 5460 REM GIVE CURSOR X,Y ADDRESS 5470 PLOT 15 5480 CA= 1:REM CURSOR ADDRESS MODE ON. 5490 IF A(0)= 0 THEN 1890:REM CHECK IF CORNER IS CLEAR 5500 GOSUB 5000 5510 PLOT 6,4 5520 PLOT 3,XX,YY 5530 PRINT "X=" X 5540 PLOT 6,1 5550 PLOT 3,XX+ 8,YY 5560 PRINT X* 2;- 2* X- 1 5570 PLOT 3,XX+ 6,YY 5580 PRINT "VX=" 5590 PLOT 6,5 5600 PLOT 3,XX,YY+ 1 5610 PRINT "Y=" Y 5620 PLOT 6,6:PLOT 3,XX,YY+ 2 5630 PLOT 6,3 5640 PLOT 3,XX+ 8,YY+ 1 5650 VY= 127- Y* 4 5660 PRINT VY- 3;- VY 5670 PLOT 3,XX+ 6,YY+ 1 5680 PRINT "VY=" 5690 PLOT 6,6 5700 PLOT 3,XX,YY+ 2 5710 PRINT "ASCII CHAR.="; 5720 PRINT PEEK (FN A(0)) 5730 PLOT 6,2 5740 PLOT 3,XX,YY+ 3 5750 P= PEEK (FN B(0)) 5760 PRINT "COLOR CODE =" P 5770 IF P> 127 THEN P= P- 128 5780 PLOT 6,P 5790 CA= 0:REM TURN OFF CURSOR ADDRESS MODE 5800 GOTO 1350 5810 REM PLOT MODE NUMBER ENTERING SUBROUTINE 5820 N= 0:M= 0:N$= "":T$= "" 5830 FOR J= 1 TO 30:NEXT J 5840 K= PEEK (LK):IF K= 0 THEN 5840 5850 IF K= 37 THEN 4950 5860 IF EL< > 1 THEN 5880 5870 IF K> 32 AND K< 42 THEN T$= "Y":GOTO 5930 5880 IF K= 93 THEN 5990 5890 IF T$= "Y" THEN 5830 5900 IF K> 15 AND K< 26 THEN 5920 5910 GOTO 5830 5920 M= M+ 1 5930 N$= N$+ CHR$ (K+ 32) 5940 PLOT 3,XX+ X9,YY+ Y9 5950 PRINT N$ 5960 IF T$= "Y" THEN 6030 5970 FOR J= 1 TO 20:NEXT J 5980 IF M< 3 THEN 5830 5990 IF LEN (N$)< 1 THEN N$= "0" 6000 IF T$= "Y" THEN RETURN 6010 N= VAL (N$) 6020 RETURN 6030 IF K= 33 THEN N= N+ 1 6040 IF K= 34 THEN N= N+ 2 6050 IF K= 35 THEN N= N+ 4 6060 IF K= 36 THEN N= N+ 8 6070 IF K= 38 THEN N= N+ 16 6080 IF K= 39 THEN N= N+ 32 6090 IF K= 40 THEN N= N+ 64 6100 IF K= 41 THEN N= N+ 128 6110 GOTO 5830 6120 REM PICKUP CHARACTER AND COLOR STATUS OF CURRENT CURSOR POSITION 6130 REM AND STORE IT FOR USE LATER. 6140 CC= PEEK (FN A(0)) 6150 CS= PEEK (FN B(0)) 6160 GOTO 1320 6170 REM PLACE STORED CHARACTER AND COLOR AT CURRENT CURSOR POSITION. 6180 POKE FN A(0),CC 6190 POKE SS+ 1+ 128* Y+ X+ X,CS 6200 GOTO 1320 6210 REM FILL ROUTINES 6220 CH= PEEK (FN A(0)) 6230 CS= PEEK (FN B(0)) 6240 FOR J= 1 TO 30:NEXT J 6250 K= PEEK (LK):IF K= 0 THEN 6250 6260 IF K= 37 THEN 1320 6270 IF K= 34 THEN M$= "B":GOTO 6310 6280 IF K= 35 THEN M$= "C":GOTO 6310 6290 IF K= 51 THEN M$= "S":GOTO 6310 6300 GOTO 6240 6310 FOR J= 1 TO 30:NEXT J 6320 K= PEEK (LK):IF K= 0 THEN 6320 6330 IF K= 37 THEN 1320 6340 IF K= 88 THEN 7040 6350 IF K= 90 THEN 6890 6360 IF K= 105 THEN 6400 6370 IF K= 106 THEN 6560 6380 IF K= 108 THEN 6720 6390 GOTO 6310 6400 REM RIGHT FILL 6410 IF M$= "S" THEN 6500 6420 REM RIGHT CHARACTER FILL 6430 SE= SS+ (128* (Y+ 1))- 2 6440 FOR H= FN A(0) TO SE STEP 2 6450 POKE H,CH 6460 IF PEEK (H+ 2)= CH THEN 6480 6470 NEXT H 6480 IF M$< > "B" THEN 1320 6490 REM RIGHT COLOR STATUS FILL 6500 SE= SS+ (128* (Y+ 1))- 1 6510 FOR H= FN B(0) TO SE STEP 2 6520 POKE H,CS 6530 IF PEEK (H+ 2)= CS THEN 1320 6540 NEXT H 6550 GOTO 1320 6560 REM LEFT FILL 6570 IF M$= "S" THEN 6650 6580 REM FILL CHARACTER LEFT 6590 SB= SS+ 128* Y 6600 FOR H= FN A(0) TO SB STEP - 2 6610 POKE H,CH 6620 IF PEEK (H- 2)= CH THEN 6640 6630 NEXT H 6640 IF M$< > "B" THEN 1320 6650 REM FILL COLOR STATUS LEFT 6660 SB= SS+ 128* Y+ 1 6670 FOR H= FN B(0) TO SB STEP - 2 6680 POKE H,CS 6690 IF PEEK (H- 2)= CS THEN 1320 6700 NEXT H 6710 GOTO 1320 6720 REM FILL UP 6730 IF M$= "S" THEN 6810 6740 REM UP CHARACTER FILL 6750 SB= SS+ X+ X 6760 FOR H= FN A(0) TO SB STEP - 128 6770 POKE H,CH 6780 IF PEEK (H- 128)= CH THEN 6800 6790 NEXT H 6800 IF M$< > "B" THEN 1320 6810 REM FILL UP COLOR STATUS 6820 SB= SS+ X+ X+ 1 6830 FOR H= FN B(0) TO SB STEP - 128 6840 POKE H,CS 6850 IF PEEK (H- 128)= CS THEN 1320 6860 NEXT H 6870 GOTO 1320 6880 REM FILL DOWN MODE 6890 IF M$= "S" THEN 6970 6900 REM DOWN CHARACTER FILL 6910 SE= 32640+ X+ X 6920 FOR H= FN A(0) TO SE STEP 128 6930 POKE H,CH 6940 IF PEEK (H+ 128)= CH THEN 6960 6950 NEXT H 6960 IF M$< > "B" THEN 1320 6970 REM DOWN COLOR STATUS FILL 6980 SE= 32640+ X+ X+ 1 6990 FOR H= FN B(0) TO SE STEP 128 7000 POKE H,CS 7010 IF PEEK (H+ 128)= CS THEN 1320 7020 NEXT H 7030 GOTO 1320 7040 REM HOME FILL MODE 7050 ZA= 0:ZB= 0:ZC= 0:ZD= 0:ZE= 0:ZF= 0 7060 ZZ= FN A(0) 7070 ZZ= ZZ- 128 7080 ZA= ZA+ 1 7090 IF ZZ< 28800 THEN 7120 7100 IF PEEK (ZZ)= CH AND PEEK (ZZ+ 1)= CS THEN 7120 7110 GOTO 7070 7120 ZZ= FN A(0) 7130 ZZ= ZZ+ 128 7140 ZC= ZC+ 1 7150 IF ZZ> 32637 THEN 7180 7160 IF PEEK (ZZ)= CH AND PEEK (ZZ+ 1)= CS THEN 7180 7170 GOTO 7130 7180 ZZ= FN A(0) 7190 ZZ= ZZ- 2 7200 ZB= ZB+ 1 7210 IF ZZ/ 128= INT (ZZ/ 128) THEN 7240 7220 IF PEEK (ZZ)= CH AND PEEK (ZZ+ 1)= CS THEN 7240 7230 GOTO 7190 7240 ZZ= FN A(0) 7250 ZZ= ZZ+ 2 7260 ZD= ZD+ 1 7270 IF (ZZ+ 2)/ 128= INT ((ZZ+ 2)/ 128) THEN 7300 7280 IF PEEK (ZZ)= CH AND PEEK (ZZ+ 1)= CS THEN 7300 7290 GOTO 7250 7300 ZE= FN A(0)- (2* ZB)- (128* ZA) 7310 ZF= FN A(0)- (128* ZA)+ (2* ZD) 7320 IF M$= "S" THEN 7420 7330 FOR I= 1 TO ZA+ ZC+ 1 7340 FOR W= ZE TO ZF STEP 2 7350 POKE W,CH 7360 NEXT W 7370 ZE= ZE+ 128:ZF= ZF+ 128 7380 NEXT I 7390 IF M$< > "B" THEN 1320 7400 ZE= FN A(0)- (2* ZB)- (128* ZA) 7410 ZF= FN A(0)- (128* ZA)+ (2* ZD) 7420 FOR I= 1 TO ZA+ ZC+ 1 7430 FOR W= ZE TO ZF STEP 2 7440 POKE W+ 1,CS 7450 NEXT W 7460 ZE= ZE+ 128:ZF= ZF+ 128 7470 NEXT I 7480 GOTO 1320 7490 REM ****** PUT TOP OF MEMORY BACK 7500 GOSUB 7700:Z= TM+ 7:AD= ER:GOSUB 7690 7510 PLOT 2,255 7520 IF A$= "N" THEN 7560 7530 PLOT 27,4 7540 PRINT "SAVE ";B$;".DSP 7000 1000" 7550 PLOT 27,27 7560 PLOT 27,11:END 7570 REM NO-ECHO PATCH 7580 DATA 245,175,50,255,129,241,201 7590 GOSUB 7700:RESTORE 7580 7600 IF TM> 65528 THEN TM= TM- 7:GOTO 7640 7610 FOR J= 1 TO 7 :READ D 7620 IF D< > PEEK (TM+ J) THEN J= 7:TM= TM- 7 7630 NEXT 7640 RESTORE 7580 7650 FOR J= 1 TO 7:READ D:POKE TM+ J,D:NEXT 7660 Z= TM+ 1:AD= 33222:GOSUB 7690:POKE 33221,195 7670 Z= TM:AD= ER:GOSUB 7690 7680 CLEAR 50:GOTO 180 7690 ZZ= INT (Z/ 256):POKE AD,Z- 256* ZZ:POKE AD+ 1,ZZ:RETURN 7700 ER= 32940:TM= 256* PEEK (ER+ 1)+ PEEK (ER):RETURN