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 >
BASIC Source File  |  1988-05-22  |  8KB  |  190 lines

  1. 10    SCREEN 0,4,0
  2. 20    ?" ":? "-- PAINT --":?"(C) Eckwell Inc.  1986":?"By Andrew Eckert":?"Version 1.1"
  3. 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"
  4. 35    ?"6)  SHADES OF YELLOW":?"7)  SHADES OF PURPLE":?"8)  SHADES OF AQUA"
  5. 40    ?:?"ENTER CHOICE: ";: GETKEY SET$: SET=VAL(SET$)
  6. 45    IF SET=0 THEN 10
  7. 50    IF SET=1 THEN 100
  8. 55    IF SET>8 THEN 10
  9. 60    FOR Q=1 TO 16*(SET-1):READ R,G,B:NEXT Q
  10. 100   FOR Q=0 TO 15: READ R,G,B: RGB Q,R,G,B: NEXT Q
  11. 200   REM  - PRINT OUT SCREEN -
  12. 201   REM
  13. 205   SCNCLR: DIM S%(6912): DIM P(4): REM ALL PURPOSE POINT
  14. 208   PENO 2: PENA 2: BOX (0,0 ; 279,165),1: MODE=5: PENA 4: DRAW (105,186 TO 115,186): BKGD=2
  15. 210   PENO 2: PENA 2
  16. 220   BOX (280,0 ; 300,186),1: BOX (0,166 ; 300,186),1
  17. 230   FOR Q=1 TO 15
  18. 240   PENO 1:PENA Q
  19. 250   BOX (284,(Q-1)*12+5 ; 296,((Q-1)*12)+15),1
  20. 255   NEXT Q
  21. 260   PENA 1: BOX (2,168 ; 18,184): BOX (5,171 ; 15,181),1
  22. 270   PENO 1: BOX (22,170 ; 38,182): PENA 15: BOX (42,170 ; 58,182),1
  23. 280   COLOR=1:CIRCLE(70,176),7: CIRCLE (90,176),7: PAINT(90,176)
  24. 290   DRAW (102,182 TO 104,184 TO 118,170 TO 118,168 TO 116,168 TO 102,182),1
  25. 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
  26. 310   PENA 3: BOX (144,170 ; 156,180),1
  27. 320   PENA 13: PAINT (103,182),1: PENA 14: PAINT (130,180),1: PAINT (130,172),1
  28. 330   BOX (166,172 ; 174,184): DRAW (166,172 TO 170,168 TO 172,168),1: DRAW (170,168 TO 174,172),1
  29. 340   PENA 8: PAINT (167,173),1: PENA 15: PAINT (170,169),1
  30. 350   BRUSH=3:CIRCLE (190,176),3: PENA 1: PAINT (190,176)
  31. 360   PENA 15:DRAW (220,166 TO 220,186): DRAW (180,166 TO 180,186): DRAW (279,166 TO 279,186)
  32. 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)
  33. 380   DRAW (210,178 TO 210,183 TO 208,181): DRAW (210,183 TO 212,181)
  34. 400   PENA 0: DRAW (0,165 TO 279,165 TO 279,0)
  35. 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)
  36. 420   BOX (242,170 ; 258,182): DRAW (247,172 TO 247,180 TO 253,180)
  37. 430   BOX (262,170 ; 277,182): BOX (273,172 ; 267,180): DRAW (271,176 TO 275,180)
  38. 497   REM
  39. 498   REM - MAIN PROGRAM -
  40. 499   REM
  41. 500   ASK MOUSE X% ,Y% ,B%
  42. 510   IF X%>278 THEN GOSUB 1000:GOTO 500
  43. 520   IF Y%>164 THEN GOSUB 2000: GOTO 500
  44. 525   PENA 0: DRAW (0,165 TO 279.,165 TO 279,0)
  45. 530   IF B%=4 AND MODE=5 THEN GOSUB 3000
  46. 540   IF B%=4 AND MODE=8 THEN GOSUB 3100
  47. 550   IF B%=4 AND MODE=7 THEN GOSUB 3200
  48. 560   IF B%=4 AND (MODE=1 OR MODE=2) THEN GOSUB 3300
  49. 570   IF B%=4 AND (MODE=3 OR MODE=4) THEN GOSUB 3500
  50. 580   IF B%=4 AND MODE=6 THEN GOSUB 3700
  51. 990   GOTO 500
  52. 1000  REM
  53. 1010  REM - SET COLOR -
  54. 1020  REM
  55. 1030  ASK MOUSE X%, Y%, B%
  56. 1035  IF X%>300 THEN RETURN
  57. 1040  IF X%<280 THEN RETURN
  58. 1050  IF B%=4 THEN 1070
  59. 1060  GOTO 1030
  60. 1070  COLOR = PIXEL(X%,Y%)
  61. 1080  PENA COLOR: PENO 1: BOX (5,171 ; 15,181),1
  62. 1090  GOTO 1000
  63. 2000  REM
  64. 2010  REM - SET MODE -
  65. 2020  REM
  66. 2030  ASK MOUSE X%, Y%, B%
  67. 2040  IF Y%<166 THEN RETURN
  68. 2050  IF B%<>4 THEN 2030
  69. 2060  X=INT(X%/20)
  70. 2070  IF X>13 THEN 2030
  71. 2075  IF X=11 AND MODE=11 THEN 4000
  72. 2080  IF X=9 THEN 2030
  73. 2085  IF X=12 AND MODE=12 THEN 4200
  74. 2090  IF X=10 THEN 2150
  75. 2093  IF X=13 AND MODE=13 THEN ERASE S%, P: RESTORE: GOTO 6000
  76. 2095  IF X=0 THEN BKGD=COLOR: PENO BKGD: PENA BKGD: BOX (0,0 ; 278,164),1: RETURN
  77. 2100  PENA 2: DRAW ((20*MODE)+5,186 TO (20*MODE)+15,186)
  78. 2110  MODE=X: PENA 4: DRAW ((20*MODE)+5,186 TO (20*MODE)+15,186)
  79. 2115  IF MODE>10 THEN 2130
  80. 2120  GOTO 2030
  81. 2130  ASK MOUSE X%, Y%, B%: IF B%=0 THEN RETURN ELSE 2130
  82. 2150  REM = SET BRUSH SIZE =
  83. 2160  IF X%>206 AND X%<214 AND Y%>167 AND Y%<175 THEN BRUSH=BRUSH+1: GOTO 2200
  84. 2170  IF X%>206 AND X%<214 AND Y%>177 AND Y%<185 THEN BRUSH=BRUSH-1: GOTO 2200
  85. 2180  GOTO 2030
  86. 2200  IF BRUSH>9 THEN BRUSH=9
  87. 2210  IF BRUSH<1 THEN BRUSH=1
  88. 2220  PENO 2: PENA 2:BOX (181,166 ; 199,186),1
  89. 2230  PENA 1: PENO 1: CIRCLE (190,176),BRUSH: PAINT (190,176)
  90. 2240  GOTO 2030
  91. 3000  REM
  92. 3010  REM - PENCIL -
  93. 3020  REM
  94. 3030  PENA COLOR: DRAW (X%,Y%)
  95. 3040  ASK MOUSE X%, Y%, B%
  96. 3050  IF B%<>4 THEN RETURN
  97. 3060  IF Y%>165 OR X%>279 THEN RETURN
  98. 3070  DRAW (TO X%,Y%)
  99. 3080  GOTO 3040
  100. 3100  REM
  101. 3110  REM - PAINT CAN -
  102. 3120  REM
  103. 3130  PENA COLOR: PAINT (X%,Y%),1
  104. 3140  RETURN
  105. 3200  REM
  106. 3210  REM - ERASER -
  107. 3220  REM
  108. 3230  ASK MOUSE X%, Y%, B%
  109. 3240  IF Y%>160 OR X%>274 THEN RETURN
  110. 3245  IF B%=0 THEN RETURN
  111. 3250  PENO 3: PENA 3: BOX (X%-4,Y%-4 ; X%+4,Y%+4),1
  112. 3260  PENO BKGD:PENA BKGD: BOX (X%-4,Y%-4 ; X%+4,Y%+4),1
  113. 3270  GOTO 3230
  114. 3300  REM
  115. 3310  REM - SQUARE -
  116. 3315  REM
  117. 3320  QQ=0
  118. 3330  P(1)=X%: P(2)=Y%: P(3)=PIXEL (X%,Y%)
  119. 3340  ASK MOUSE X%, Y%, B%
  120. 3345  IF B%=0 THEN QQ=1
  121. 3350  FOR Q=1 TO 15: PENA Q: DRAW (P(1),P(2)):NEXT Q
  122. 3360  IF B%=4 AND QQ=1 THEN 3370 ELSE 3340
  123. 3370  PENO COLOR:PENA COLOR
  124. 3375  IF X%>278 OR Y%>165 THEN PENA P(3): DRAW (P(1),P(2)): RETURN
  125. 3380  IF MODE=1 THEN BOX (X%,Y% ; P(1),P(2)): GOTO 3400
  126. 3390  BOX (X%,Y% ; P(1),P(2)),1
  127. 3400  ASK MOUSE X%, Y%, B%
  128. 3410  IF B%=0 THEN RETURN
  129. 3420  GOTO 3400
  130. 3500  REM
  131. 3510  REM - CIRCLE -
  132. 3520  REM
  133. 3530  QQ=0: P(1)=X%: P(2)=Y%: P(3)=PIXEL (P(1),P(2))
  134. 3540  ASK MOUSE X%, Y%, B%
  135. 3545  IF B%=0 THEN QQ=1
  136. 3550  FOR Q=1 TO 15: PENA Q: DRAW (P(1),P(2)): NEXT Q
  137. 3560  IF B%=4 AND QQ=1 THEN 3570 ELSE 3540
  138. 3570  PENO 0: PENA COLOR: R=SQR((P(1)-X%)^2 + (P(2)-Y%)^2)
  139. 3575  IF P(1)+R>278 OR P(2)+R>165 THEN PENA P(3): DRAW (P(1),P(2)): GOTO 3600
  140. 3580  CIRCLE (P(1),P(2)),R,.9: IF MODE=4 THEN PAINT (P(1),P(2)),0
  141. 3590  PENO COLOR: CIRCLE (P(1),P(2)),R,.9
  142. 3600  ASK MOUSE X%, Y%, B%
  143. 3610  IF B%=0 AND MODE=3 THEN PENA P(3): DRAW (P(1),P(2)): RETURN
  144. 3615  IF B%=0 THEN RETURN
  145. 3620  GOTO 3600
  146. 3700  REM
  147. 3710  REM - PAINT BRUSH -
  148. 3720  REM
  149. 3730  ASK MOUSE X%, Y%, B%
  150. 3740  IF B%=0 THEN RETURN
  151. 3750  IF X%+BRUSH>278 OR Y%+BRUSH>165 THEN RETURN
  152. 3760  PENO 0:PENA COLOR:CIRCLE (X%,Y%),BRUSH: PAINT (X%,Y%): PENO COLOR: CIRCLE (X%,Y%),BRUSH: GOTO 3730
  153. 4000  REM
  154. 4010  REM - SAVE SCREEN -
  155. 4020  REM
  156. 4030  SSHAPE (0,0 ; 280,166),S%()
  157. 4040  SCNCLR: INPUT "TITLE TO SAVE AS: ",T$
  158. 4050  BSAVE T$, VARPTR(S%(0)), 32+6912*4
  159. 4100  ?:?:?"FINISHED.  HIT ANY KEY:",:GETKEY A$
  160. 4110  GSHAPE (0,0), S%(): GOTO 210
  161. 4200  REM
  162. 4210  REM - LOAD SCREEN -
  163. 4220  REM
  164. 4230  SCNCLR:INPUT "TITLE TO LOAD: ",T$:?:?"LOADING.  PLEASE WAIT..."
  165. 4240  BLOAD T$, VARPTR(S%(0))
  166. 4280  GSHAPE (0,0), S%()
  167. 4290  GOTO 210
  168. 5000  REM - SHADES DATA -
  169. 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
  170. 5015  REM ^ NORMAL
  171. 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
  172. 5025  REM ^ SHADES OF GRAY
  173. 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
  174. 5035  REM ^ SHADES OF RED
  175. 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
  176. 5045  REM ^ SHADES OF GREEN
  177. 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
  178. 5055  REM ^ SHADES OF BLUE
  179. 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
  180. 5065  REM ^ SHADES OF YELLOW
  181. 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
  182. 5075  REM ^ SHADES OF PURPLE
  183. 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
  184. 5085  REM ^ SHADES OF AQUA
  185. 6000  REM - RESET COLORS -
  186. 6010  RESTORE: FOR Q=0 TO 15
  187. 6020  READ R,G,B
  188. 6030  RGB Q,R,G,B: NEXT Q
  189. 6040  RESTORE: GOTO 10
  190.