home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
64'er
/
64ER_CD.iso
/
sh4x
/
sh45a.d64
/
hires4.bas
(
.txt
)
< prev
next >
Wrap
Commodore BASIC
|
1995-03-30
|
4KB
|
124 lines
10 REM ********************************
20 REM * *
30 REM * H I R E S 4 . B A S *
40 REM * BASICVERSION EINES GRAFIK- *
50 REM * PROGRAMMES FUER DEN C64 *
60 REM * HEIMO PONNATH HAMBURG *
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%<DY% THEN D%=DX%:DX%=DY%:DY%=D%:T%=1:GOTO 7080
7070 T%=0 : REM UMDREHEN WENN DX < DY UND MARKE SETZEN
7080 D%=2*DY% - DX%:REM STARTWERT D(1) ERMITTELN
7090 I1%=2*DY% : REM INKREMENTE BERECHNEN
7100 I2%=2*DX%
7110 FOR I=1 TO DX% : REM HAUPTSCHLEIFE
7120 :X=X%:Y=Y%:GOSUB 6000:REM PUNKT ZEICHNEN
7130 :IF D%<0 THEN GOTO 7170
7140 :IF T%=1 THEN X%=X%+S1%:GOTO 7160
7150 :Y%=Y%+S2%
7160 :D%=D%-I2%
7170 :IF T%=1 THEN Y%=Y%+S2%:GOTO 7190
7180 :X%=X%+S1%
7190 :D%=D%+I1%
7200 NEXT I
7210 RETURN
8000 REM - MODUL 8: KREIS ZEICHNEN/LOESCHEN -
8010 X%=0:Y%=R:REM STARTWERTE
8020 D%=R-1:REM ENTSCHEIDUNGSGROESSE
8030 IF D%<0 THEN Y%=Y%-1:D%=D%+Y%+Y%
8040 GOSUB 8100:REM ZEICHNEN VON 8 KREISPUNKTEN
8050 D%=D%-X%-X%-1
8060 X%=X%+1
8070 IF X%<=Y% THEN 8030
8080 RETURN
8100 REM - UP 8 KREISPUNKTE ZEICHNEN -
8110 X=XM+X%:Y=YM+Y%:GOSUB 6000
8120 X=XM-X%:Y=YM+Y%:GOSUB 6000
8130 X=XM+X%:Y=YM-Y%:GOSUB 6000
8140 X=XM-X%:Y=YM-Y%:GOSUB 6000
8150 X=XM+Y%:Y=YM+X%:GOSUB 6000
8160 X=XM-Y%:Y=YM+X%:GOSUB 6000
8170 X=XM+Y%:Y=YM-X%:GOSUB 6000
8180 X=XM-Y%:Y=YM-X%:GOSUB 6000
8190 RETURN