home *** CD-ROM | disk | FTP | other *** search
/ 64'er Special 37 / 64er_Magazin_Sonderheft_37_19xx_Markt__Technik_de_Disk_1_of_2_Side_A.d64 / dreieck.src (.txt) < prev    next >
Commodore BASIC  |  2022-10-26  |  4KB  |  164 lines

  1. 110 opt oo
  2. 120 *= $4000
  3. 130 :
  4. 140 :
  5. 150 zoommoeg = 210 ; flag ob zoom moeglich, muss bei erweiterung 1 sein
  6. 160 :
  7. 170 in1   = 217  ; zwischenspeicher
  8. 180 in2   = 219  ; zum indizieren
  9. 190 :
  10. 200 mrk   = 221  ; zwischenspeicher
  11. 210 in3   = 222  ;
  12. 220 :
  13. 230 posix = 225  ; position des cursors
  14. 240 posiy = 226  ; wird in irq-routine gesetzt
  15. 250 button = 238 ; 1=knopf gedrueckt 0=nicht
  16. 260 korx   = 239 ; x/y koordinate bei
  17. 270 kory   = 240 ; linien/bloecken
  18. 280 :
  19. 290 fire   = 251 ; 1 nachdem knopf gedrueckt (von irq gesetzt)
  20. 300 :
  21. 310 korx2  = 23  ; x/y koordin. bei
  22. 320 kory2  = 24  ; linien ...
  23. 330 :
  24. 340 x1 = 35   ; zwischenspeicher fuer
  25. 350 x2 = 36   ; x/y kootrdinaten bei
  26. 360 x3 = 37   ; verschiedenen befehlen
  27. 370 y1 = 38
  28. 380 y2 = 39
  29. 390 y3 = 40
  30. 400 x4 = 47
  31. 410 y4 = 48
  32. 420 x5 = 49
  33. 430 x6 = 50
  34. 440 y5 = 51
  35. 450 y6 = 52
  36. 460 in4 = 53
  37. 470 in5 = 55
  38. 480 in6 = 57
  39. 490 x7  = 59
  40. 500 y7  = 60
  41. 510 x8  = 61
  42. 520 y8  = 62
  43. 530 :
  44. 540 :
  45. 550 sintab   = $ae00 ; sinuswerte
  46. 560 priofeld = $af00 ; prioritaetentabelle
  47. 570 strimust = $b000 ; linien stricheln muster
  48. 580 stribytes = $b060 ;aktuelles muster (linien str.)
  49. 590 patterns = $b080 ; fuellmuster
  50. 600 fapinsel = $b480 ; farbpinsel
  51. 610 pbrei    = $b05e ; groesse des farbpinsel
  52. 620 phoeh    = $b05f ; hoehe/breite
  53. 630 frottab  = $b700 ; tabelle fuer farbtausch
  54. 640 makromem = $0800 ; makro
  55. 650 xspei    = $0900 ; x/y speicher bei
  56. 660 yspei    = $0a00 ; fill ...
  57. 670 :
  58. 680 menu(NULL)   = $1000+3  ; sprung in's menue (=brk)
  59. 690 plmust     = $9000+30 ; plot routinen
  60. 700 plotpr     = $9000+33 ; fuer muster,prioritaeten
  61. 710 plpins     = $9000+48 ; pinselform
  62. 720 pl(NULL)     = $9000+75 ; linien
  63. 730 :
  64. 740 gettas   = $9000+78 ; taste einlesen und "_"/"^" testen
  65. 750 plot     = $c000+9  ; punkt setzen
  66. 760 clrunten = $c000+36 ; sprites unten loeschen
  67. 770 textpr   = $c000+39 ; text in sprites ausgeben
  68. 780 exorline = $c000+51 ; linie invertieren
  69. 790 waitout  = $c000+120 ; "bitte warten" ausgeben
  70. 800 comsub      = $a900+57 ; statuszeile ausgeben und tastaturabfrage
  71. 810 lflash      = $a900+63 ; linie blinken
  72. 820 ldraw     = $a900+66 ; linie ziehen
  73. 830 befinit     = $a900+87 ; allgemeine initialisierung
  74. 840 mainsub     = $7000+18 ; undo vorbereiten etc...
  75. 850 :
  76. 860 jsr mainsub  ; sollte immer 1. bef. einer erw. sein. schaltet grafik ein usw
  77. 870 inc zoommoeg ; verhindert einschalten des zoom-fensters
  78. 880 :
  79. 890 dreieck ldx #<text1
  80. 900 ldy #>text1
  81. 910 jsr befinit ; textausgabe in sprites und initialisierung
  82. 920 :
  83. 930 loop1 jsr comsub ; comsub gibt statuszeile aus, fragt editortasten ab und
  84. 931 ;prueft auf sprung in untermenues mit f-tasten oder e/f/m/s/o
  85. 940 lda fire  ; wurde feuerknopf inzwischen gedrueckt
  86. 950 beq loop1 ; nein, dann weiter
  87. 960 :
  88. 970 dec fire  ; knopfflag =0
  89. 980 ldx posix
  90. 990 ldy posiy ; aktuelle pfeilposition
  91. 1000 stx x1   ; merken
  92. 1010 sty y1
  93. 1020 :
  94. 1030 ldx #<text2 ; naechten text
  95. 1040 ldy #>text2 ; ausgeben
  96. 1050 jsr textpr
  97. 1060 :
  98. 1070 loop2 jsr comsub
  99. 1080 ldx posix
  100. 1090 ldy posiy ; position merken
  101. 1100 stx x2
  102. 1110 sty y2
  103. 1120 jsr lflash ; linie von x1/y1 zu x2/y2 einmal blinken
  104. 1130 lda fire
  105. 1140 beq loop2
  106. 1150 :
  107. 1160 dec fire
  108. 1170 jsr ldraw   ; linie von x1/y1 zu x2/y2 ziehen
  109. 1180 ldx #<text3
  110. 1190 ldy #>text3
  111. 1200 jsr textpr
  112. 1210 :
  113. 1220 loop3 jsr comsub
  114. 1230 ldx posix
  115. 1240 ldy posiy   ; position merken
  116. 1250 stx x3
  117. 1260 sty y3
  118. 1270 jsr fladrei ; siehe unten
  119. 1280 jsr fladrei
  120. 1290 lda fire
  121. 1300 beq loop3
  122. 1310 :
  123. 1320 dec fire
  124. 1330 ldx x1
  125. 1340 ldy y1      ; x1/y1 merken
  126. 1350 stx x4
  127. 1360 sty y4
  128. 1370 ldx x3
  129. 1380 ldy y3
  130. 1390 stx x1
  131. 1400 sty y1
  132. 1410 jsr ldraw  ; linie ziehen
  133. 1420 ldx x4
  134. 1430 ldy y4
  135. 1440 stx x2      ; zuruekholen
  136. 1450 sty y2
  137. 1460 jsr ldraw  ; und zweite linie ziehen
  138. 1470 jmp dreieck ; weitere dreiecke zeichnen
  139. 1480 :
  140. 1490 fladrei ldx x1 ; zwei linien invertieren
  141. 1500 ldy y1      ;     x1/y1 - x3/y3
  142. 1510 stx korx    ; und x2/y2 - x3/y3
  143. 1520 sty kory
  144. 1530 ldx x3
  145. 1540 ldy y3
  146. 1550 stx korx2
  147. 1560 sty kory2
  148. 1570 jsr exorline
  149. 1580 :
  150. 1590 ldx x2
  151. 1600 ldy y2
  152. 1610 stx korx
  153. 1620 sty kory
  154. 1630 ldx x3
  155. 1640 ldy y3
  156. 1650 stx korx2
  157. 1660 sty kory2
  158. 1670 jsr exorline
  159. 1680 rts
  160. 1690 :
  161. 1700 text1 byt 1,49,3:asc "dreieck punkt a":byt 0
  162. 1710 text2 byt 1,49,3:asc "dreieck punkt b":byt 0
  163. 1720 text3 byt 1,49,3:asc "dreieck punkt c":byt 0
  164.