home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / sh4x / sh45a.d64 / hires4.bas (.txt) < prev    next >
Commodore BASIC  |  1995-03-30  |  4KB  |  124 lines

  1. 10 REM ********************************
  2. 20 REM *                              *
  3. 30 REM *     H I R E S 4 . B A S      *
  4. 40 REM *  BASICVERSION EINES GRAFIK-  *
  5. 50 REM *  PROGRAMMES FUER DEN C64     *
  6. 60 REM *   HEIMO PONNATH  HAMBURG     *
  7. 70 REM *                              *
  8. 80 REM ********************************
  9. 90 REM
  10. 100 REM ------- HAUPTPROGRAMM ---------
  11. 110 PRINTCHR$(147)
  12. 120 PRINT:PRINT:PRINT"DIESES PROGRAMM TESTET ALLE MODULE":PRINT"VON HIRES4.BAS"
  13. 130 ZF=5:HF=0:REM ZEICHEN- UND HINTERGRUNDFARBE
  14. 140 GOSUB 2000:REM GRAFIK EINSCHALTEN
  15. 150 GOSUB 3000:REM BITMAP LOESCHEN
  16. 160 GOSUB 4000:REM FARBGEBUNG
  17. 170 L=0:REM LOESCHMARKE AUF PUNKT SETZEN STELLEN
  18. 180 FOR X=0 TO 319
  19. 190 :Y=50*SIN(X/20)+100
  20. 200 :GOSUB 6000:REM PUNKTE SETZEN
  21. 210 NEXT X
  22. 220 L=1:REM LOESCHMARKE AUF PUNKT LOESCHEN STELLEN
  23. 230 FOR X=100 TO 200
  24. 240 :Y=50*SIN(X/20)+100
  25. 250 :GOSUB 6000:REM PUNKTE LOESCHEN
  26. 260 NEXT X
  27. 270 GOSUB 5000:REM TEXTMODUS EINSCHALTEN
  28. 280 PRINT:PRINT"DIE MODULE 2 BIS 6 SIND OK"
  29. 290 FOR I=0 TO 1000:NEXT I
  30. 300 GOSUB 2000:REM GRAFIK WIEDER EINSCHALTEN
  31. 310 X1=160:Y1=100:R%=90:L=0
  32. 320 FOR A=0 TO 6.28 STEP .05
  33. 330 :X2=R%*COS(A)+160
  34. 340 :Y2=R%*SIN(A)+100
  35. 350 :GOSUB 7000:REM LINIEN ZEICHNEN
  36. 360 NEXT A
  37. 370 GOSUB 5000:REM TEXTMODUS EINSCHALTEN
  38. 380 PRINT:PRINT"AUCH DAS MODUL 7 ARBEITET"
  39. 390 FOR I=0 TO 1000:NEXT I
  40. 400 GOSUB 2000:REM GRAFIK EINSCHALTEN
  41. 410 XM=160:YM=100:R=95:L=0
  42. 420 GOSUB 8000:REM KREIS ZEICHNEN
  43. 430 FOR I=0 TO 1000:NEXT I
  44. 440 GOSUB 5000:REM TEXTMODUS
  45. 450 PRINT:PRINT"AUCH DAS MODUL 8 FUNKTIONIERT."
  46. 460 POKE 52,160:POKE56,160:REM BASICZEIGER ZURUECKSTELLEN
  47. 470 CLR
  48. 480 END
  49. 2000 REM - MODUL 2:GRAFIK EINSCHALTEN -
  50. 2010 POKE 56576,198 : REM ABSCHNITT 1 EINSTELLEN
  51. 2020 POKE 53272,125 : REM BILDSCHIRM UND BITMAPSTART FESTLEGEN
  52. 2030 POKE 648,92    : REM BILDSCHIRM AN BETRIEBSSYSTEM MELDEN
  53. 2040 POKE 52,92     : REM BASICSPEICHER BEGRENZEN
  54. 2050 POKE 56,92
  55. 2060 POKE 53265,PEEK(53265) OR 32:REM BITMAPMODUS EINSCHALTEN
  56. 2070 RETURN
  57. 3000 REM - MODUL 3: BITMAP LOESCHEN ---
  58. 3010 BA=24576 : REM BITMAPSTARTADRESSE
  59. 3020 FOR I=BA TO BA+7999 : REM DIE LOESCHSCHLEIFE
  60. 3030 :POKE I,0
  61. 3040 NEXT I
  62. 3050 RETURN
  63. 4000 REM - MODUL 4: FARBGEBUNG --------
  64. 4010 BS=23552 : REM BILDSCHIRMSTARTADRESSE
  65. 4020 F=16*ZF+HF:REM BERECHNUNG DES FARBCODES
  66. 4030 FOR I=BS TO BS+999 : REM DIE FARBSCHLEIFE
  67. 4040 :POKE I,F
  68. 4050 NEXT I
  69. 4060 RETURN
  70. 5000 REM - MODUL 5: TEXTMODUS EIN -----
  71. 5010 POKE 53272,21 : REM ALTEN INHALT RESTAURIEREN
  72. 5020 POKE 56576,199: REM VIC WIEDER AUF ABSCHNITT 0
  73. 5030 POKE 648,4 :REM ALTEN BILDSCHIRM AN BETRIEBSSYSTEM MELDEN
  74. 5040 POKE 53265,PEEK(53265) AND 223:REM TEXTMODUS EINSCHALTEN
  75. 5050 RETURN
  76. 6000 REM - MODUL 6:PUNKT SETZEN/LOESCHEN
  77. 6010 IF X<0 OR X>319 OR Y<0 OR Y>199 THEN 6060
  78. 6020 BY=(X AND 504)+40*(Y AND 248)+(Y AND 7)
  79. 6030 BI=7 - (X AND 7)
  80. 6040 IF L=1 THEN POKE BY+BA,PEEK(BY+BA) AND NOT (2^BI):GOTO 6060
  81. 6050 POKE BY+BA,PEEK(BY+BA) OR (2^BI)
  82. 6060 RETURN
  83. 7000 REM - MODUL 7: LINIEN ZEICHNEN/LOESCHEN -
  84. 7010 X%=X1:Y%=Y1:REM ALLES IN INTEGERS
  85. 7020 DX%=ABS(X2-X1):REM BERECHNUNG DER DIFFERENZEN
  86. 7030 DY%=ABS(Y2-Y1)
  87. 7040 S1%=SGN(X2-X1):REM BESTIMMUNG DER OKTANTEN
  88. 7050 S2%=SGN(Y2-Y1)
  89. 7060 IF DX%<DY% THEN D%=DX%:DX%=DY%:DY%=D%:T%=1:GOTO 7080
  90. 7070 T%=0 : REM UMDREHEN WENN DX < DY UND MARKE SETZEN
  91. 7080 D%=2*DY% - DX%:REM STARTWERT D(1) ERMITTELN
  92. 7090 I1%=2*DY% : REM INKREMENTE BERECHNEN
  93. 7100 I2%=2*DX%
  94. 7110 FOR I=1 TO DX% : REM HAUPTSCHLEIFE
  95. 7120 :X=X%:Y=Y%:GOSUB 6000:REM PUNKT ZEICHNEN
  96. 7130 :IF D%<0 THEN GOTO 7170
  97. 7140 :IF T%=1 THEN X%=X%+S1%:GOTO 7160
  98. 7150 :Y%=Y%+S2%
  99. 7160 :D%=D%-I2%
  100. 7170 :IF T%=1 THEN Y%=Y%+S2%:GOTO 7190
  101. 7180 :X%=X%+S1%
  102. 7190 :D%=D%+I1%
  103. 7200 NEXT I
  104. 7210 RETURN
  105. 8000 REM - MODUL 8: KREIS ZEICHNEN/LOESCHEN -
  106. 8010 X%=0:Y%=R:REM STARTWERTE
  107. 8020 D%=R-1:REM ENTSCHEIDUNGSGROESSE
  108. 8030 IF D%<0 THEN Y%=Y%-1:D%=D%+Y%+Y%
  109. 8040 GOSUB 8100:REM ZEICHNEN VON 8 KREISPUNKTEN
  110. 8050 D%=D%-X%-X%-1
  111. 8060 X%=X%+1
  112. 8070 IF X%<=Y% THEN 8030
  113. 8080 RETURN
  114. 8100 REM - UP 8 KREISPUNKTE ZEICHNEN -
  115. 8110 X=XM+X%:Y=YM+Y%:GOSUB 6000
  116. 8120 X=XM-X%:Y=YM+Y%:GOSUB 6000
  117. 8130 X=XM+X%:Y=YM-Y%:GOSUB 6000
  118. 8140 X=XM-X%:Y=YM-Y%:GOSUB 6000
  119. 8150 X=XM+Y%:Y=YM+X%:GOSUB 6000
  120. 8160 X=XM-Y%:Y=YM+X%:GOSUB 6000
  121. 8170 X=XM+Y%:Y=YM-X%:GOSUB 6000
  122. 8180 X=XM-Y%:Y=YM-X%:GOSUB 6000
  123. 8190 RETURN
  124.