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 "
lot ect ine Plygon"
30015 PRINT "illrect 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.
Please remove capital letters from my e-mail address to respond.