10 SCREEN 7:DIM C(4,4),D(8),E(8000),F(222,7,7),G(7,7):COLOR 15:LINE(0,2)-(4,2):LINE(2,0)-(2,4):PSET(2,2),0:FOR I=0 TO 4:FOR J=0 TO 4:C(I,J)=POINT(I,J):NEXT J,I 12 PRINT"±Ū":FOR I=0 TO 7:FOR J=0 TO 7:G(I,J)=POINT(I,J):F(0,I,J)=POINT(I+8,J):NEXT J,I:FOR A=1 TO 222:LOCATE 1,1:PRINT CHR$(A+32):FOR I=0 TO 7:FOR J=0 TO 7:F(A,I,J)=POINT(I,J):NEXT J,I,A:CLS:B=15:ON ERROR GOTO 260 20 SCREEN 7,,1:CLS:A=9:K=C:COLOR 7:PRINT TAB(15)"> PAINTING <":PRINT TAB(6)"(C)opyright C.E.Software 2010":PRINT TAB(4)"programmiert von Carsten Engelmann":LOCATE 21,18:PRINT"oder Bild laden=F2":LOCATE 23,18:PRINT"Anleitung=F1" 25 LOCATE 5,15:PRINT"Hintergrund":GOSUB 155 40 A=0:X=157:Y=97:K=X:L=Y:GOTO 95 50 Y$=INKEY$:ON-(Y$="" AND A=0 OR Y$="" AND A>3)GOTO 50:S$=MID$(Y$,2):IF Y$=CHR$(27) THEN A=0 ELSE IF S$="-" THEN CLS:END ELSE IF S$="†" AND D THEN PUT(0,0),E,PSET:D=0:GOTO 95 67 PUT(K,L),D,PSET:ON-(S$="…")GOTO 350:ON-(S$=">")GOTO 150:ON-(S$=";")GOTO 290:IF S$="<" THEN GET(0,0)-(319,199),E:GOTO 210 ELSE IF S$="=" THEN GET(0,0)-(319,199),E:GOTO 200 ELSE IF S$="G" THEN GET(0,0)-(319,199),E:D=1:GOTO 20 70 R=X+2:S=Y+2:ON-(Y$=CHR$(13))GOTO 110:ON-(S$="B")GOTO 325:IF S$="C" THEN GET(0,0)-(319,199),E:PAINT(R,S):D=1 ELSE IF S$="?" THEN GET(0,0)-(319,199),E:A=3:M=R:N=S 71 IF S$="@" THEN GET(0,0)-(319,199),E:A=2:M=R:N=S ELSE IF S$="A" THEN GET(0,0)-(319,199),E:A=1:D=1:M=R:N=S ELSE IF S$="D" THEN GET(0,0)-(319,199),E:A=4:W=0 ELSE IF S$="S" THEN GET(0,0)-(319,199),E:A=5:W=2 72 ON-(A=6)GOTO 353:IF Y$="8" AND Y>0 THEN Y=Y-1 ELSE IF Y$="2" AND Y<195 THEN Y=Y+1 ELSE IF Y$="4" AND X>0 THEN X=X-1 ELSE IF Y$="6" AND X<315 THEN X=X+1 73 IF Y$="7" AND Y>0 AND X>0 THEN Y=Y-1:X=X-1 ELSE IF Y$="9" AND Y>0 AND X<315 THEN Y=Y-1:X=X+1 ELSE IF Y$="3" AND Y<195 AND X<315 THEN Y=Y+1:X=X+1 ELSE IF Y$="1" AND Y<195 AND X>0 THEN Y=Y+1:X=X-1 74 IF A=1 THEN GOSUB 141:PUT(0,0),E,PSET:GOTO 95 75 IF A=2 THEN LINE(M,N)-(R,S),,B:PUT(0,0),E,PSET:GOTO 95 80 IF A=3 THEN LINE(M,N)-(R,S):PUT(0,0),E,PSET:GOTO 95 81 IF A=4 THEN GOSUB 315:LINE(R-W,S-W)-(R+W,S+W),,BF:D=1:GOTO 95 85 IF A=5 THEN GOSUB 315:LINE(R-W,S-W)-(R+W,S+W),C,BF:D=1 95 ON-(A=6)GOTO 370:GET(X,Y)-(X+4,Y+4),D:FOR I=0 TO 4:FOR J=0 TO 4:IF C(I,J) THEN IF POINT(X+I,Y+J)=0 THEN PSET(X+I,Y+J),15 ELSE PSET(X+I,Y+J),0 100 NEXT J,I:K=X:L=Y:GOTO 50 110 ON-(A=4 OR A=5)GOTO 95:ON-(A=6)GOTO 367:IF A=1 THEN GOSUB 141:A=0:D=1:GOTO 95 120 IF A=2 THEN LINE(M,N)-(R,S),,B:A=0:D=1:GOTO 95 130 IF A=3 THEN LINE(M,N)-(R,S):A=0:D=1:GOTO 95 140 GET(0,0)-(319,199),E:PSET(R,S):D=1:GOTO 95 141 K=R-M:IF K<0 THEN K=-K 142 L=S-N:IF L<0 THEN L=-L 143 IF K=0 THEN K=1 144 IF L=0 THEN L=1 145 V=K:IF K"9")GOTO 160:ON-(T$="" AND Y$>"1")GOTO 160:ON-(LEFT$(T$,1)="1" AND Y$>"5")GOTO 160:T$=T$+Y$:LOCATE 16,27:PRINT T$:IF LEN(T$)=1 GOTO 160 165 K=VAL(T$):DELAY .5:SCREEN,,0:IF A<9 THEN COLOR K:B=K:GOTO 95 ELSE CLS:PAINT(0,0),K:C=K:COLOR B:RETURN 200 GOSUB 220:PUT(0,0),E,PSET:OPEN"o",1,Z$+".PNT":FOR I=0 TO 319:FOR J=0 TO 199:PRINT#1,CHR$(POINT(I,J)+32):NEXT J,I:CLOSE:GOTO 95 210 GOSUB 220:OPEN"i",1,Z$+".PNT":D=1:FOR I=0 TO 319:FOR J=0 TO 199:LINE INPUT#1,Y$:PSET(I,J),ASC(Y$)-32:NEXT J,I:CLOSE:GOTO 40 220 SCREEN 0:CLS:IF S$="=" THEN PRINT TAB(16)"Speichern" ELSE PRINT TAB(18)"Laden" 221 Z$=EXTRACT$(Z$,"."):Y$="Verzeichnis: "+CURDIR$:LOCATE 12,INT((42-LEN(Y$))/2):PRINT Y$:LOCATE 14,3:PRINT"Dateiname: "Z$+MID$(REPEAT$(24,"ś"),1+LEN(Z$)):O=24:P=14:Q=14:GOSUB 230:IF MID$(Z$,2,1)=":" THEN CHDRIVE LEFT$(Z$,1):Z$=MID$(Z$,3) 225 FOR I=O TO 1 STEP-1:IF MID$(Z$,I,1)="\" THEN CHDIR LEFT$(Z$,I)+".":Z$=MID$(Z$,I+1):RETURN ELSE NEXT:RETURN 230 LOCATE Q,P,1,6,7:U=1:Q=1 235 Y$=INKEY$:IF Y$=CHR$(8) AND U>1 THEN Z$=LEFT$(Z$,U-2)+MID$(Z$,U):LOCATE,P:PRINT Z$"ś";:U=U-1:LOCATE,U-1+P ELSE T$=MID$(Y$,2):IF T$="S" AND UU-1 THEN LOCATE,P+U:U=U+1 ELSE IF T$="K" AND U>1 THEN LOCATE,P+U-2:U=U-1 ELSE IF T$="R" THEN Q=1-Q:LOCATE,,,Q*6,7 ELSE IF T$="O" THEN U=LEN(Z$)+1:LOCATE,P+U-1 ELSE IF T$="G" THEN LOCATE,P:U=1 245 IF Y$=CHR$(13) THEN LOCATE,,0:SCREEN 7,,0:COLOR B:RETURN ELSE IF Y$=CHR$(27) THEN LOCATE,,0:IF A=9 THEN RETURN 20 ELSE SCREEN 7,,0:PUT(0,0),E,PSET:COLOR B:RETURN 95 250 ON-(Y$<" " OR Y$>"ž" OR U>O)GOTO 235:Z$=LEFT$(Z$,U-1)+Y$+MID$(Z$,U+Q,O-U):LOCATE,P:PRINT Z$;:LOCATE,P+U:U=U+1:GOTO 235 260 SCREEN 7,,1:CLS:E=ERR:IF E=75 THEN M$="Datei geschtzt" ELSE IF E=71 THEN M$="Laufwerk nicht bereit" ELSE IF E=76 OR E=53 OR E=64 THEN M$="Datei nicht gefunden" ELSE IF E=61 THEN M$="Datentr„ger ist voll" 270 SOUND 1200,2:COLOR 7:LOCATE 1,18:PRINT"Fehler":LOCATE 13,INT((42-LEN(M$))/2):PRINT M$:LOCATE 25,4:PRINT"Neue Eingabe <1> Wiederholen <2>"; 280 Y$=INKEY$:IF Y$=CHR$(27) THEN IF A=9 THEN RESUME 20 ELSE SCREEN 7,,0:PUT(0,0),E,PSET:COLOR B:RESUME 95 285 ON-(Y$<"1" OR Y$>"2")GOTO 280:IF Y$="2" THEN RESUME ELSE IF S$="=" THEN RESUME 200 ELSE RESUME 210 290 GET(0,0)-(319,199),E 295 SCREEN 12:V=0:FOR I=1 TO 27:READ Y$:FOR J=1 TO LEN(Y$):COLOR 14:PRINT MID$(Y$,J,1);:COLOR 15:PRINT"Ū":LOCATE I,J+1:ON-(V=1)GOTO 300:SOUND 50,.2:DELAY .03:IF INKEY$=" " THEN V=1 300 NEXT:PRINT" ":NEXT:RESTORE 310 ON-(INKEY$<>CHR$(27))GOTO 310:ON-(A=9)GOTO 20:SCREEN 7,,0:PUT(0,0),E:COLOR B:GOTO 95 315 IF Y$>"`" AND Y$<"d" THEN W=ASC(Y$)-97 320 RETURN 325 GET(0,0)-(319,199),E:R=POINT(R,S):FOR I=0 TO 319:FOR J=0 TO 199:IF R=POINT(I,J) THEN PSET(I,J) 330 NEXT J,I:D=1:GOTO 95 350 GET(0,0)-(319,199),E:A=6:IF X>312 THEN X=312 351 IF Y>192 THEN Y=192 353 IF S$="H" AND Y>7 THEN Y=Y-8 ELSE IF S$="P" AND Y<185 THEN Y=Y+8 ELSE IF S$="K" AND X>7 THEN X=X-8 ELSE IF S$="M" AND X<305 THEN X=X+8 360 ON-(Y$<" " OR Y$>"ž")GOTO 370:FOR I=0 TO 7:FOR J=0 TO 7:IF F(ASC(Y$)-32,I,J)>0 THEN PSET(X+I,Y+J) 365 NEXT J,I:D=1:IF X<305 THEN X=X+8:GOTO 370 367 IF Y<185 THEN Y=Y+8:X=(X/8-INT(X/8))*8 370 GET(X,Y)-(X+7,Y+7),D:FOR I=0 TO 7:FOR J=0 TO 7:IF G(I,J) THEN IF POINT(X+I,Y+J)=0 THEN PSET(X+I,Y+J),15 ELSE PSET(X+I,Y+J),0 375 NEXT J,I:K=X:L=Y:GOTO 50 380 DATA"A N L E I T U N G","","CURSOR........ Cursor mit Zahl-Tasten bewegen","LADEN......... Bild laden, Verzeichnis/Dateinamen eingeben","SPEICHERN..... Bild speichern, Verzeichnis/Dateinamen eingeben" 382 DATA"FARBE......... startet Farbauswahl,"," Nummer aus Farbpalette fr Vordergrund eingeben","PUNKT......... im Standardmodus","LINIE......... startet Linienmodus und setzt Startpunkt," 390 DATA" mit Cursor L„nge/Richtung betimmen, mit best„tigen","RECHTECK...... startet Rechteckmodus und setzt 1. Eckpunkt,"," mit Cursor Gr”sse/Form bestimmen, mit best„tigen" 395 DATA"KREIS......... startet Kreismodus und setzt Mittelpunkt,"," mit Cursor Gr”sse/Form bestimmen, mit best„tigen","FARBWECHSEL... ersetzt Farbe unter Cursor im ganzen Bild" 400 DATA" durch Vordergrundfarbe","AUSFšLLEN..... fllt mit gleicher Farbe umrandeten Bereich aus","PINSEL........ startet Pinselmodus und setzt 1. Punkt," 405 DATA" mit Cursor weiterzeichnen, mit - Pinselst„rke w„hlen","TEXT.......... startet Textmodus","RšCKGŽNGIG.... macht letzte Aktion rckg„ngig" 410 DATA"RADIERGUMMIE.. startet Radiergummiemodus und l”scht 1. Punkt,"," mit Cursor weiterl”schen, mit - Radiergummiest„rke w„hlen","NEU........... setzt Editor zurck," 420 DATA" Hintergrundfarbe w„hlen oder geppeichertes Bild laden","ABBRECHEN..... Rckkehr in den Standardmodus/vorigen Bildschirm","PROGRAMMENDE..+ beendet im Malmodus das Programm"