home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
17 Bit Software 1: Collection A
/
17Bit_Collection_A.iso
/
files
/
36.dms
/
36.adf
/
PAINT.bas
< prev
next >
Wrap
BASIC Source File
|
1988-05-22
|
8KB
|
190 lines
10 SCREEN 0,4,0
20 ?" ":? "-- PAINT --":?"(C) Eckwell Inc. 1986":?"By Andrew Eckert":?"Version 1.1"
30 ? AT(1,8);"CHOOSE A COLOR SET:":?:?"1) NORMAL":?"2) SHADES OF GRAY":?"3) SHADES OF RED":?"4) SHADES OF GREEN":?"5) SHADES OF BLUE"
35 ?"6) SHADES OF YELLOW":?"7) SHADES OF PURPLE":?"8) SHADES OF AQUA"
40 ?:?"ENTER CHOICE: ";: GETKEY SET$: SET=VAL(SET$)
45 IF SET=0 THEN 10
50 IF SET=1 THEN 100
55 IF SET>8 THEN 10
60 FOR Q=1 TO 16*(SET-1):READ R,G,B:NEXT Q
100 FOR Q=0 TO 15: READ R,G,B: RGB Q,R,G,B: NEXT Q
200 REM - PRINT OUT SCREEN -
201 REM
205 SCNCLR: DIM S%(6912): DIM P(4): REM ALL PURPOSE POINT
208 PENO 2: PENA 2: BOX (0,0 ; 279,165),1: MODE=5: PENA 4: DRAW (105,186 TO 115,186): BKGD=2
210 PENO 2: PENA 2
220 BOX (280,0 ; 300,186),1: BOX (0,166 ; 300,186),1
230 FOR Q=1 TO 15
240 PENO 1:PENA Q
250 BOX (284,(Q-1)*12+5 ; 296,((Q-1)*12)+15),1
255 NEXT Q
260 PENA 1: BOX (2,168 ; 18,184): BOX (5,171 ; 15,181),1
270 PENO 1: BOX (22,170 ; 38,182): PENA 15: BOX (42,170 ; 58,182),1
280 COLOR=1:CIRCLE(70,176),7: CIRCLE (90,176),7: PAINT(90,176)
290 DRAW (102,182 TO 104,184 TO 118,170 TO 118,168 TO 116,168 TO 102,182),1
300 PENO 1:BOX (129,184 ; 131,174): BOX (125,171 ; 135,174): FOR Q=125 TO 135 STEP 2: DRAW (Q,168 TO Q,171),1: NEXT Q
310 PENA 3: BOX (144,170 ; 156,180),1
320 PENA 13: PAINT (103,182),1: PENA 14: PAINT (130,180),1: PAINT (130,172),1
330 BOX (166,172 ; 174,184): DRAW (166,172 TO 170,168 TO 172,168),1: DRAW (170,168 TO 174,172),1
340 PENA 8: PAINT (167,173),1: PENA 15: PAINT (170,169),1
350 BRUSH=3:CIRCLE (190,176),3: PENA 1: PAINT (190,176)
360 PENA 15:DRAW (220,166 TO 220,186): DRAW (180,166 TO 180,186): DRAW (279,166 TO 279,186)
370 PENO 1: BOX (207,174 ; 213,168): BOX (207,178 ; 213,184): PENA 1: DRAW (210,174 TO 210,169 TO 208,171): DRAW (210,169 TO 212,171)
380 DRAW (210,178 TO 210,183 TO 208,181): DRAW (210,183 TO 212,181)
400 PENA 0: DRAW (0,165 TO 279,165 TO 279,0)
410 PENO 1: PENA 1: BOX (222,170 ; 238,182): DRAW (233,172 TO 227,172 TO 227,176 TO 233,176 TO 233,180 TO 227,180)
420 BOX (242,170 ; 258,182): DRAW (247,172 TO 247,180 TO 253,180)
430 BOX (262,170 ; 277,182): BOX (273,172 ; 267,180): DRAW (271,176 TO 275,180)
497 REM
498 REM - MAIN PROGRAM -
499 REM
500 ASK MOUSE X% ,Y% ,B%
510 IF X%>278 THEN GOSUB 1000:GOTO 500
520 IF Y%>164 THEN GOSUB 2000: GOTO 500
525 PENA 0: DRAW (0,165 TO 279.,165 TO 279,0)
530 IF B%=4 AND MODE=5 THEN GOSUB 3000
540 IF B%=4 AND MODE=8 THEN GOSUB 3100
550 IF B%=4 AND MODE=7 THEN GOSUB 3200
560 IF B%=4 AND (MODE=1 OR MODE=2) THEN GOSUB 3300
570 IF B%=4 AND (MODE=3 OR MODE=4) THEN GOSUB 3500
580 IF B%=4 AND MODE=6 THEN GOSUB 3700
990 GOTO 500
1000 REM
1010 REM - SET COLOR -
1020 REM
1030 ASK MOUSE X%, Y%, B%
1035 IF X%>300 THEN RETURN
1040 IF X%<280 THEN RETURN
1050 IF B%=4 THEN 1070
1060 GOTO 1030
1070 COLOR = PIXEL(X%,Y%)
1080 PENA COLOR: PENO 1: BOX (5,171 ; 15,181),1
1090 GOTO 1000
2000 REM
2010 REM - SET MODE -
2020 REM
2030 ASK MOUSE X%, Y%, B%
2040 IF Y%<166 THEN RETURN
2050 IF B%<>4 THEN 2030
2060 X=INT(X%/20)
2070 IF X>13 THEN 2030
2075 IF X=11 AND MODE=11 THEN 4000
2080 IF X=9 THEN 2030
2085 IF X=12 AND MODE=12 THEN 4200
2090 IF X=10 THEN 2150
2093 IF X=13 AND MODE=13 THEN ERASE S%, P: RESTORE: GOTO 6000
2095 IF X=0 THEN BKGD=COLOR: PENO BKGD: PENA BKGD: BOX (0,0 ; 278,164),1: RETURN
2100 PENA 2: DRAW ((20*MODE)+5,186 TO (20*MODE)+15,186)
2110 MODE=X: PENA 4: DRAW ((20*MODE)+5,186 TO (20*MODE)+15,186)
2115 IF MODE>10 THEN 2130
2120 GOTO 2030
2130 ASK MOUSE X%, Y%, B%: IF B%=0 THEN RETURN ELSE 2130
2150 REM = SET BRUSH SIZE =
2160 IF X%>206 AND X%<214 AND Y%>167 AND Y%<175 THEN BRUSH=BRUSH+1: GOTO 2200
2170 IF X%>206 AND X%<214 AND Y%>177 AND Y%<185 THEN BRUSH=BRUSH-1: GOTO 2200
2180 GOTO 2030
2200 IF BRUSH>9 THEN BRUSH=9
2210 IF BRUSH<1 THEN BRUSH=1
2220 PENO 2: PENA 2:BOX (181,166 ; 199,186),1
2230 PENA 1: PENO 1: CIRCLE (190,176),BRUSH: PAINT (190,176)
2240 GOTO 2030
3000 REM
3010 REM - PENCIL -
3020 REM
3030 PENA COLOR: DRAW (X%,Y%)
3040 ASK MOUSE X%, Y%, B%
3050 IF B%<>4 THEN RETURN
3060 IF Y%>165 OR X%>279 THEN RETURN
3070 DRAW (TO X%,Y%)
3080 GOTO 3040
3100 REM
3110 REM - PAINT CAN -
3120 REM
3130 PENA COLOR: PAINT (X%,Y%),1
3140 RETURN
3200 REM
3210 REM - ERASER -
3220 REM
3230 ASK MOUSE X%, Y%, B%
3240 IF Y%>160 OR X%>274 THEN RETURN
3245 IF B%=0 THEN RETURN
3250 PENO 3: PENA 3: BOX (X%-4,Y%-4 ; X%+4,Y%+4),1
3260 PENO BKGD:PENA BKGD: BOX (X%-4,Y%-4 ; X%+4,Y%+4),1
3270 GOTO 3230
3300 REM
3310 REM - SQUARE -
3315 REM
3320 QQ=0
3330 P(1)=X%: P(2)=Y%: P(3)=PIXEL (X%,Y%)
3340 ASK MOUSE X%, Y%, B%
3345 IF B%=0 THEN QQ=1
3350 FOR Q=1 TO 15: PENA Q: DRAW (P(1),P(2)):NEXT Q
3360 IF B%=4 AND QQ=1 THEN 3370 ELSE 3340
3370 PENO COLOR:PENA COLOR
3375 IF X%>278 OR Y%>165 THEN PENA P(3): DRAW (P(1),P(2)): RETURN
3380 IF MODE=1 THEN BOX (X%,Y% ; P(1),P(2)): GOTO 3400
3390 BOX (X%,Y% ; P(1),P(2)),1
3400 ASK MOUSE X%, Y%, B%
3410 IF B%=0 THEN RETURN
3420 GOTO 3400
3500 REM
3510 REM - CIRCLE -
3520 REM
3530 QQ=0: P(1)=X%: P(2)=Y%: P(3)=PIXEL (P(1),P(2))
3540 ASK MOUSE X%, Y%, B%
3545 IF B%=0 THEN QQ=1
3550 FOR Q=1 TO 15: PENA Q: DRAW (P(1),P(2)): NEXT Q
3560 IF B%=4 AND QQ=1 THEN 3570 ELSE 3540
3570 PENO 0: PENA COLOR: R=SQR((P(1)-X%)^2 + (P(2)-Y%)^2)
3575 IF P(1)+R>278 OR P(2)+R>165 THEN PENA P(3): DRAW (P(1),P(2)): GOTO 3600
3580 CIRCLE (P(1),P(2)),R,.9: IF MODE=4 THEN PAINT (P(1),P(2)),0
3590 PENO COLOR: CIRCLE (P(1),P(2)),R,.9
3600 ASK MOUSE X%, Y%, B%
3610 IF B%=0 AND MODE=3 THEN PENA P(3): DRAW (P(1),P(2)): RETURN
3615 IF B%=0 THEN RETURN
3620 GOTO 3600
3700 REM
3710 REM - PAINT BRUSH -
3720 REM
3730 ASK MOUSE X%, Y%, B%
3740 IF B%=0 THEN RETURN
3750 IF X%+BRUSH>278 OR Y%+BRUSH>165 THEN RETURN
3760 PENO 0:PENA COLOR:CIRCLE (X%,Y%),BRUSH: PAINT (X%,Y%): PENO COLOR: CIRCLE (X%,Y%),BRUSH: GOTO 3730
4000 REM
4010 REM - SAVE SCREEN -
4020 REM
4030 SSHAPE (0,0 ; 280,166),S%()
4040 SCNCLR: INPUT "TITLE TO SAVE AS: ",T$
4050 BSAVE T$, VARPTR(S%(0)), 32+6912*4
4100 ?:?:?"FINISHED. HIT ANY KEY:",:GETKEY A$
4110 GSHAPE (0,0), S%(): GOTO 210
4200 REM
4210 REM - LOAD SCREEN -
4220 REM
4230 SCNCLR:INPUT "TITLE TO LOAD: ",T$:?:?"LOADING. PLEASE WAIT..."
4240 BLOAD T$, VARPTR(S%(0))
4280 GSHAPE (0,0), S%()
4290 GOTO 210
5000 REM - SHADES DATA -
5010 DATA 6,9,15,0,0,0,15,15,15,15,9,10,14,3,0,15,11,0,15,15,2,11,15,0,5,13,0,0,14,13,7,13,15,12,0,14,15,2,14,15,13,11,12,9,8,11,11,11
5015 REM ^ NORMAL
5020 DATA 6,9,15,0,0,0,15,15,15,14,14,14,13,13,13,12,12,12,11,11,11,10,10,10,9,9,9,8,8,8,7,7,7,6,6,6,5,5,5,4,4,4,3,3,3,2,2,2
5025 REM ^ SHADES OF GRAY
5030 DATA 6,9,15,0,0,0,15,15,15,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3,0,0
5035 REM ^ SHADES OF RED
5040 DATA 6,9,15,0,0,0,15,15,15,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3,0
5045 REM ^ SHADES OF GREEN
5050 DATA 6,9,15,0,0,0,15,15,15,0,0,15,0,0,14,0,0,13,0,0,12,0,0,11,0,0,10,0,0,9,0,0,8,0,0,7,0,0,6,0,0,5,0,0,4,0,0,3
5055 REM ^ SHADES OF BLUE
5060 DATA 6,9,15,0,0,0,15,15,15,15,15,0,14,14,0,13,13,0,12,12,0,11,11,0,10,10,1,9,9,0,8,8,0,7,7,0,6,6,0,5,5,0,4,4,0,3,3,0
5065 REM ^ SHADES OF YELLOW
5070 DATA 6,9,15,0,0,0,15,15,15,15,0,15,14,0,14,13,0,13,12,0,12,11,0,11,10,0,10,9,0,9,8,0,8,7,0,7,6,0,6,5,0,5,4,0,4,3,0,3
5075 REM ^ SHADES OF PURPLE
5080 DATA 6,9,15,0,0,0,15,15,15,0,15,15,0,14,14,0,13,13,0,12,12,0,11,11,0,10,10,0,9,9,0,8,8,0,7,7,0,6,6,0,5,5,0,4,4,0,3,3
5085 REM ^ SHADES OF AQUA
6000 REM - RESET COLORS -
6010 RESTORE: FOR Q=0 TO 15
6020 READ R,G,B
6030 RGB Q,R,G,B: NEXT Q
6040 RESTORE: GOTO 10