💾 Archived View for mirrors.apple2.org.za › archive › ground.icaen.uiowa.edu › apple8 › Pgms › color… captured on 2024-07-09 at 04:45:12.
⬅️ Previous capture (2023-01-29)
-=-=-=-=-=-=-
How's _this_ for a painting program? It's freeware and I made it myself. 5 CL = 7 7 QA = 160 20 TEXT : HOME 30 PRINT "Color Hires Drawing with Pix^2 vers. 2": PRINT 50 PRINT : PRINT "Press Any Key To Continue...": GET A$ 51 GOSUB 20000 52 GOSUB 40888 54 GOSUB 50000 55 HTAB 1: VTAB 24: PRINT "Press (?) for a list of commands."; 60 HGR : HTAB 1: VTAB 21: POKE 35,23: GOSUB 10000 70 IF IR = 1 THEN GOSUB 20100 72 IF IR = 2 THEN GOSUB 20200 74 IF IR = 3 THEN GOSUB 20300 76 IF IR = 4 THEN GOSUB 20400 85 B9 = ( PEEK (112) * 256) + PEEK (111): IF B9 < 20480 THEN B9 = FRE(0) 95 K = PEEK ( - 16384) - 128: POKE - 16384,0: POKE - 16368,0:K$ = "": IF K > 0 THEN K$ = CHR$ (K) 100 IF K$ = "N" THEN HGR 101 IF K$ = "O" THEN INPUT "FILE NAME: ";F$: PRINT CHR$ (4);"BLOAD " F$",A8192" 102 IF K$ = "P" THEN INPUT "DIRECTORY NAME: ";F$: PRINT CHR$ (4);"PREFIX "F$ 103 IF K$ = "S" THEN INPUT "FILE NAME: ";F$: PRINT CHR$ (4);"BSAVE " F$",A8192,L8192" 104 IF K$ = "Q" THEN TEXT : END 125 IF K$ = "I" THEN GOSUB 10100 127 IF K$ = "C" THEN GOSUB 10200 129 HCOLOR= CL 130 IF P > 127 THEN XX = H:YY = V:ZZ = CL: GOSUB 63999 135 IF K$ = "D" THEN GOSUB 30000 137 IF K$ = "M" THEN CR = CR + 1: IF CR = 6 THEN CR = 1 138 IF K$ = "?" THEN GOSUB 50100 139 IF K$ = "F" THEN GOSUB 50200 140 IF CR = 1 THEN GOSUB 40100 141 IF CR = 2 THEN GOSUB 40200 142 IF CR = 3 THEN GOSUB 40300 143 IF CR = 4 THEN GOSUB 40400 144 IF CR = 5 THEN GOSUB 40500 150 GOTO 70 10000 L = 16384 10010 PRINT CHR$ (4);"BLOAD COLOR.DRAW.SHP,A"L 10030 POKE 232,0: POKE 233,64 10040 RETURN 10100 ROT= 0: SCALE= 192 10110 FOR X = 0 TO 279: XDRAW 1 AT X,0: NEXT X 10120 RETURN 10200 PCL = CL 10210 PCL = PCL + 1 10220 IF PCL = 8 THEN PCL = 0 10230 CL = PCL 10240 HTAB 38: VTAB 24: PRINT MID$ ("KGPWkobw",CL + 1,1); 10250 HTAB 1: VTAB 21 10260 RETURN 20000 HOME : PRINT "Please select the input device:": PRINT 20005 PRINT " 1) Paddle / Koalapad" 20006 PRINT " 2) Joystick" 20007 PRINT " 3) Apple IIgs ADB Mouse" 20008 PRINT " 4) Keyboard" 20010 PRINT : GET R$ 20015 IR = VAL (R$) 20020 IF IR < 1 OR IR > 4 THEN GOTO 20000 20025 IF IR = 2 OR IR = 4 THEN GOSUB 22000 20030 IF IR = 3 THEN GOSUB 23000 20040 RETURN 20100 H = INT (( PDL (0) / 255) * 139):V = INT (( PDL (1) / 255) * (QA - 1)): P = PEEK (49249): RETURN 20200 TH = PDL (0):TV = PDL (1) 20205 IF TH < 100 THEN H = H - 1 20210 IF TH > 160 THEN H = H + 1 20215 IF TV < 100 THEN V = V - 1 20220 IF TV > 160 THEN V = V + 1 20225 IF H < 0 THEN H = 0 20230 IF V < 0 THEN V = 0 20235 IF H > 139 THEN H = 139 20240 IF V > (QA - 1) THEN V = (QA - 1) 20245 P = PEEK (49249): RETURN 20300 PRINT CHR$ (4);"IN#4": INPUT "";H,V,P: PRINT CHR$ (4);"IN#0" 20305 IF P = 1 THEN P = 255 20310 IF H < 0 THEN H = 0 20315 IF V < 0 THEN V = 0 20320 IF H > 139 THEN H = 139 20325 IF V > (QA - 1) THEN V = (QA - 1) 20330 RETURN 20400 TK = PEEK ( - 16384) - 128 20405 IF TK = 13 THEN V = V + 1 20410 IF TK = 11 THEN H = H + 1 20415 IF TK = 10 THEN H = H - 1 20420 IF TK = 9 THEN V = V - 1 20425 IF H < 0 THEN H = 0 20430 IF H > 139 THEN H = 139 20435 IF V < 0 THEN V = 0 20440 IF V > (QA - 1) THEN V = (QA - 1) 20445 P = PEEK (49249): RETURN 22000 H = 70:V = 80: RETURN 23000 PRINT CHR$ (4);"PR#4": PRINT CHR$ (1): PRINT CHR$ (4);"PR#0": RETURN 30000 PRINT : PRINT "Drawing Commands:" 30010 PRINT "<P>lot <R>ect <L>ine P<o>lygon" 30015 PRINT "<F>illrect <I>nvrect" 30020 INPUT "Choice?";C$ 30030 IF C$ = "" OR MID$ (C$,1,1) = " " THEN RETURN 30040 IF C$ = "P" THEN INPUT "Coordinate? (X,Y)";XX,YY:ZZ = CL: GOSUB 63999 30045 IF C$ = "p" THEN C$ = "P": GOTO 30040 30050 IF C$ = "R" OR C$ = "r" THEN INPUT "Starting Coordinate? (X,Y)"; RX,RY: INPUT "Ending Coordinate? (X,Y)";RH,RW: HPLOT (RX * 2),RY TO (RH * 2),RY TO (RH * 2),RW TO (RX * 2),RW TO (RX * 2),RY 30051 IF C$ = "R" OR C$ = "r" THEN HPLOT (RX * 2) + 1,RY TO (RX * 2) + 1,RW: HPLOT (RW * 2) + 1,RY TO (RW * 2) + 1,RW 30060 IF C$ = "L" OR C$ = "l" THEN INPUT "Starting Coordinate? (X,Y)"; RX,RY: INPUT "Ending Coordinate? (X,Y)";RH,RW: HPLOT (RX * 2),RY TO (RH * 2),RW 30062 IF C$ = "F" OR C$ = "f" THEN INPUT "Starting Coordinate? (X,Y)"; RX,RY: INPUT "Ending Coordinate? (X,Y)";RH,RV: FOR XS = RX * 2 TO RH * 2: HPLOT XS,RY TO XS,RV: NEXT XS 30064 IF C$ = "I" OR C$ = "i" THEN INPUT "Starting Coordinate? (X,Y)"; RX,RY: INPUT "Ending Coordinate? (X,Y)";RH,RV: ROT= 0: SCALE= (RV - RY) + 1: FOR XS = RX * 2 TO RH * 2: XDRAW 1 AT XS,RV: NEXT XS 30070 IF C$ < > "O" AND C$ < > "o" THEN GOTO 30000 30080 INPUT "First Coordinate? (X,Y)";PX,PY: HPLOT (PX * 2),PY 30090 INPUT "Next Coordinate? (X,Y)";PX,PY 30100 IF PX = 0 OR PY = 0 THEN GOTO 30000 30110 HPLOT TO (PX * 2),PY 30120 GOTO 30090 40100 ROT= 0: SCALE= 192: XDRAW 1 AT H * 2,0: XDRAW 1 AT H * 2,0: ROT= 48: SCALE= 140: XDRAW 1 AT 0,V: XDRAW 1 AT 140,V: XDRAW 1 AT 0,V: XDRAW 1 AT 140,V 40150 RETURN 40200 ROT= 0: SCALE= 1: XDRAW 2 AT H * 2,V: FOR X = 1 TO 100: NEXT X: XDRAW 2 AT H * 2,V: RETURN 40300 ROT= 0: SCALE= 1: XDRAW 3 AT H * 2,V: FOR X = 1 TO 100: NEXT X: XDRAW 3 AT H * 2,V: RETURN 40400 ROT= 0: SCALE= 1: XDRAW 4 AT H * 2,V: FOR X = 1 TO 100: NEXT X: XDRAW 4 AT H * 2,V: RETURN 40500 ROT= 0: SCALE= 1: XDRAW 5 AT H * 2,V: FOR X = 1 TO 100: NEXT X: XDRAW 5 AT H * 2,V: RETURN 40888 HOME : PRINT "Please select your mouse cursor:": PRINT 40890 PRINT "1) No Pointer (Use Bars)" 40900 PRINT "2) Arrow" 40910 PRINT "3) Cross" 40920 PRINT "4) Crosshair" 40925 PRINT "5) Pencil" 40930 PRINT : PRINT 40940 GET A$:CR = VAL (A$) 40950 IF CR < 1 OR CR > 5 THEN GOTO 40888 40960 HOME : RETURN 50000 HOME 50005 PRINT "Help:": PRINT 50010 PRINT " N - Clear the screen (New)" 50015 PRINT " O - Load a file (Open)" 50020 PRINT " S - Save a file" 50025 PRINT " P - Change directories (Prefix)" 50030 PRINT " C - Change the color" 50035 PRINT " I - Invert the screen" 50040 PRINT " D - Drawing commands" 50045 PRINT " M - Change the mouse pointer" 50047 PRINT " F - Turn on/off full screen graphics" 50050 PRINT " ? - Bring up this help screen" 50055 PRINT " Q - Exit the program (Quit)" 50060 PRINT : PRINT "Press any key to continue." 50062 POKE 34,20: REM PROTECTS TEXT FROM BEING OVERWRITTEN 50065 RETURN 50100 POKE 49233,0 50110 WAIT - 16384,128 50120 POKE - 16368,0: POKE - 16384,0 50130 POKE 49232,0 50140 RETURN 50200 REM FULL SCREEN TRICK 50210 IF QA = 160 THEN QA = 192: POKE 49234,0: RETURN 50220 QA = 160: POKE 49235,0: RETURN 63999 HCOLOR= ZZ: HPLOT XX * 2,YY TO (XX * 2) + 1,YY: RETURN Here is the hex dump of the COLOR.DRAW.SHP file: 4000:05 00 0C 00 0E 00 35 00 4008:47 00 5C 00 04 00 2E 2E 4010:2E 2E 2E 3E 3F 36 35 35 4018:3F 3C 3C 37 3E 24 24 24 4020:24 24 2C 36 36 36 36 2D 4028:3C 24 24 2E 2F 26 2E 2F 4030:26 3E 2D 05 00 24 24 37 4038:36 3E 3F 7F 49 49 2D ED 4040:DB 13 36 3E 24 24 00 C1 4048:C1 24 2C 36 B6 12 36 3E 4050:24 24 C1 1B 3F 7F 49 49 4058:09 2D 2D 00 2C 2C 2C 24 4060:25 24 25 24 25 E4 C1 3A 4068:3C D7 11 C1 C1 17 76 35 4070:DD 4B E9 DB 03 C1 36 36 4078:36 36 36 06 C1 C1 C1 C1 4080:C1 C1 31 2E 3E 36 00 Feel free to make changes to it or send me suggestions. Here is the manual: When the program starts up, it will ask you to press a key. Press one. Next, select a device for X-Y input. You can select paddles, joystick, mouse card, or keyboard. After that, you can select a cursor which will be used to indicate where drawing will take place. To control X-Y with the keyboard, hold down Control and press I, J, K, M. Open Apple or Command plots a pixel there. At any time you can press ? to bring up a list of commands. After doing that, press another key to continue painting. C will change the color you draw in. The color that is currently selected will be indicated in the lower right corner of the screen. Color Group 1 colors are in uppercase and Color Group 2 colors are in lowercase. K = Black 1 G = Green P = Purple W = White 1 k = Black 2 o = Orange b = Blue w = White 2 The best cursors to use are 1 (bars), 4 (crosshair), and 5 (pencil). On a IIgs, select input #3 (which should be the most obvious choice for a IIgs, since it's listed as Apple IIgs ADB Mouse). Set the Mouse Tracking in the Control Panel to 2 (far left is 1, far right is 5) for best control. The COLOR.DRAW.SHP file contains the cursors and the 1-vector shape which is used for cursor #1, Invert, and the Invrect option in the Drawing Commands. The order of the shapes in the shape table is the same as the order of the list of cursors when the program starts up. Feel free to use COLOR.DRAW.SHP for other purposes. -- /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/ jonrelay@napanet.net jrelay.cjb.net An Apple II fanatic since 1998! S0.5 LIS+++! Suzy+++! M1987 "I can't stand to see you so miserable, Lis. Unless it's from a rubber spider down your dress. Hmm... that gives me an idea. (Pulls out tape recorder) Note for later: put rubber spider down Lisa's dress. He he he he he." *_ Syntax Error: an error on a criminal's tax record. | Bad Subscript: a criminal reading a book on a subway. --- Unimplemented Trap: when a bear trap isn't set up |' ,| properly and thus does not work. --- Overflow: too many ice cubes. <Can't Restart> Please remove capital letters from my e-mail address to respond.