10 REM ******************************************************* 20 REM * * 30 REM * H I R E S 4 . B A S * 40 REM * * 50 REM * BASICVERSION EINES GRAFIKPROGRAMMES FUER DEN C64 * 60 REM * HEIMO PONNATH HAMBURG 1987 * 70 REM * * 80 REM ******************************************************* 90 REM 100 REM ------- HAUPTPROGRAMM -------------------------------- 110 PRINTCHR$(147) 120 PRINT:PRINT:PRINT"DIESES PROGRAMM TESTET ALLE MODULE":PRINT"VON HIRES4.BAS" 130 ZF=5:HF=0:REM ZEICHEN- UND HINTERGRUNDFARBE 140 GOSUB 2000:REM GRAFIK EINSCHALTEN 150 GOSUB 3000:REM BITMAP LOESCHEN 160 GOSUB 4000:REM FARBGEBUNG 170 L=0:REM LOESCHMARKE AUF PUNKT SETZEN STELLEN 180 FOR X=0 TO 319 190 :Y=50*SIN(X/20)+100 200 :GOSUB 6000:REM PUNKTE SETZEN 210 NEXT X 220 L=1:REM LOESCHMARKE AUF PUNKT LOESCHEN STELLEN 230 FOR X=100 TO 200 240 :Y=50*SIN(X/20)+100 250 :GOSUB 6000:REM PUNKTE LOESCHEN 260 NEXT X 270 GOSUB 5000:REM TEXTMODUS EINSCHALTEN 280 PRINT:PRINT"DIE MODULE 2 BIS 6 SIND OK" 290 FOR I=0 TO 1000:NEXT I 300 GOSUB 2000:REM GRAFIK WIEDER EINSCHALTEN 310 X1=160:Y1=100:R%=90:L=0 320 FOR A=0 TO 6.28 STEP .05 330 :X2=R%*COS(A)+160 340 :Y2=R%*SIN(A)+100 350 :GOSUB 7000:REM LINIEN ZEICHNEN 360 NEXT A 370 GOSUB 5000:REM TEXTMODUS EINSCHALTEN 380 PRINT:PRINT"AUCH DAS MODUL 7 ARBEITET" 390 FOR I=0 TO 1000:NEXT I 400 GOSUB 2000:REM GRAFIK EINSCHALTEN 410 XM=160:YM=100:R=95:L=0 420 GOSUB 8000:REM KREIS ZEICHNEN 430 FOR I=0 TO 1000:NEXT I 440 GOSUB 5000:REM TEXTMODUS 450 PRINT:PRINT"AUCH DAS MODUL 8 FUNKTIONIERT." 460 POKE 52,160:POKE56,160:REM BASICZEIGER ZURUECKSTELLEN 470 CLR 480 END 2000 REM ------- MODUL 2: GRAFIK EINSCHALTEN ----------------- 2010 POKE 56576,198 : REM ABSCHNITT 1 EINSTELLEN 2020 POKE 53272,125 : REM BILDSCHIRM UND BITMAPSTART FESTLEGEN 2030 POKE 648,92 : REM BILDSCHIRM AN BETRIEBSSYSTEM MELDEN 2040 POKE 52,92 : REM BASICSPEICHER BEGRENZEN 2050 POKE 56,92 2060 POKE 53265,PEEK(53265) OR 32:REM BITMAPMODUS EINSCHALTEN 2070 RETURN 3000 REM ------- MODUL 3: BITMAP LOESCHEN -------------------- 3010 BA=24576 : REM BITMAPSTARTADRESSE 3020 FOR I=BA TO BA+7999 : REM DIE LOESCHSCHLEIFE 3030 :POKE I,0 3040 NEXT I 3050 RETURN 4000 REM ------- MODUL 4: FARBGEBUNG ------------------------- 4010 BS=23552 : REM BILDSCHIRMSTARTADRESSE 4020 F=16*ZF+HF:REM BERECHNUNG DES FARBCODES 4030 FOR I=BS TO BS+999 : REM DIE FARBSCHLEIFE 4040 :POKE I,F 4050 NEXT I 4060 RETURN 5000 REM ------- MODUL 5: TEXTMODUS EIN ---------------------- 5010 POKE 53272,21 : REM ALTEN INHALT RESTAURIEREN 5020 POKE 56576,199: REM VIC WIEDER AUF ABSCHNITT 0 5030 POKE 648,4 :REM ALTEN BILDSCHIRM AN BETRIEBSSYSTEM MELDEN 5040 POKE 53265,PEEK(53265) AND 223:REM TEXTMODUS EINSCHALTEN 5050 RETURN 6000 REM ------- MODUL 6: PUNKT SETZEN/LOESCHEN -------------- 6010 IF X<0 OR X>319 OR Y<0 OR Y>199 THEN 6060 6020 BY=(X AND 504)+40*(Y AND 248)+(Y AND 7) 6030 BI=7 - (X AND 7) 6040 IF L=1 THEN POKE BY+BA,PEEK(BY+BA) AND NOT (2^BI):GOTO 6060 6050 POKE BY+BA,PEEK(BY+BA) OR (2^BI) 6060 RETURN 7000 REM ------- MODUL 7: LINIEN ZEICHNEN/LOESCHEN ----------- 7010 X%=X1:Y%=Y1:REM ALLES IN INTEGERS 7020 DX%=ABS(X2-X1):REM BERECHNUNG DER DIFFERENZEN 7030 DY%=ABS(Y2-Y1) 7040 S1%=SGN(X2-X1):REM BESTIMMUNG DER OKTANTEN 7050 S2%=SGN(Y2-Y1) 7060 IF DX%