home *** CD-ROM | disk | FTP | other *** search
/ 64'er / 64ER_CD.iso / 91xx / 9105.d64 / s.-pixel-fld.src < prev    next >
Text File  |  1995-03-30  |  6KB  |  390 lines

  1.  
  2.  
  3. ;┴NWENDUNG DES $D011-┼FFEKTES:
  4.  
  5. ; ╙INGLE-╨IXEL-╞╠─
  6.  
  7. ;(C)├OPYRIGHT 1991 BY ╠╒┬┬┼╥ OF ╨┴─╒┴
  8.  
  9.  
  10. ;─ER ╧RIGINAL-┌EICHENSATZ MUSS AB
  11. ; $3000 LIEGEN
  12.  
  13. ;^^^^ ╫╔├╚╘╔╟! ^^^^
  14.  
  15. ;─IE ERSTEN 5 NORMALEN UND DIE ERSTEN
  16. ;5 REVERSEN ┌EICHEN DUERFEN ╬╔├╚╘
  17. ;BENUTZT SEIN ! ╙ONST WERDEN SIE FUER
  18. ;DEN ┼FFEKT ZERSTOERT !
  19.  
  20. ;(─A DORT DIE ╙CREENZEILEN ABGELEGT
  21. ; WERDEN)
  22.  
  23.  
  24. ;─IE ╧RIGINAL-╙CREENTABELLE MUSS AB
  25. ;$2C00 LIEGEN (═AXIMAL 16 ┌EILEN HOCH!)
  26.  
  27.  
  28. ORG $1000  ;├ODE NACH $1000
  29.  
  30. LDA #8     ;┴KTUELLE ╞ARBE AUF
  31. STA 646    ;ORANGE=SCHWARZ IN ═ULTICOLOR
  32.            ;SETZEN
  33. JSR $E544  ;┬ILDSCHIRM LOESCHEN
  34.            ;UND ├OLOR-RAM MIT
  35.            ;AKTUELLER ╞ARBE FUELLEN
  36.  
  37. LDA #$40
  38. STA HIBYTE1+2
  39. LDA #$48
  40. STA HIBYTE2+2
  41. LDA #$50
  42. STA HIBYTE3+2
  43. LDA #$58           ;╚IGHBYTES FUER
  44. STA HIBYTE4+2      ;╒MRECHNUNGSROUTINE
  45. LDA #$60           ;ERNEUERN
  46. STA HIBYTE5+2
  47. LDA #$68           ;╬UR WICHTIG,WENN
  48. STA HIBYTE6+2      ;DIE ╥OUTINE OEFTERS
  49. LDA #$70           ;VON NEUEM GESTARTET
  50. STA HIBYTE7+2      ;WERDEN SOLL,OHNE
  51. LDA #$78           ;DASS MAN DEN ├ODE
  52. STA HIBYTE8+2      ;NEU REINLADEN MUSS.
  53.  
  54.  
  55. LDA #$FF
  56. TAX
  57. :FILLFF1
  58. STA $37F8,X
  59. INX            ;─AS 255.┌EICHEN DES
  60. CPX #8         ;┌EICHENSATZES WIRD MIT
  61. BNE FILLFF1    ;$FF-┬YTES GEFUELLT
  62.  
  63. LDA #$FF
  64. LDX #0
  65. :FILLFF2
  66. STA $2C00+600,X ;─IE LETZTE ├URSOR-┌EILE
  67. INX             ;DES ╧RIGINAL-┬ILDES
  68. CPX #40         ;WIRD MIT $FF-┬YTES
  69. BNE FILLFF2     ;GEFUELLT
  70.  
  71. LDA #0
  72. STA $FB
  73. LDA #$30   ;┴DRESSE DES ┌EICHENSATZES
  74. STA $FC    ;IN DIE ╥EGISTER ($FB)
  75.  
  76.  
  77. ;┌UERST WIRD DER ╧RIGINAL-┌EICHENSATZ
  78. ;FUER DEN ┼FFECT 'ZURECHTGESCHOBEN'.
  79.  
  80. LDX #0
  81. LDY #0
  82. :CHARBEGIN
  83. LDA ($FB),Y
  84.  
  85. :HIBYTE1
  86. STA $4000,X   ;─IESER ┌EICHENS. ENTHAELT
  87. INY           ;AM ┼NDE ALLE 1.┬YTES
  88. LDA ($FB),Y   ;EINES  EINZELNEN ┌EICHENS
  89.  
  90. :HIBYTE2
  91. STA $4800,X    ;─IESER ALLE ZWEITEN
  92. INY            ;┬YTES
  93. LDA ($FB),Y
  94.  
  95. :HIBYTE3
  96. STA $5000,X    ;─IESER ALLE DRITTEN
  97. INY
  98. LDA ($FB),Y
  99.  
  100. :HIBYTE4       ; . ..
  101. STA $5800,X
  102. INY
  103. LDA ($FB),Y
  104.  
  105. :HIBYTE5
  106. STA $6000,X   ;....
  107. INY
  108. LDA ($FB),Y
  109.  
  110. :HIBYTE6
  111. STA $6800,X
  112. INY
  113. LDA ($FB),Y
  114.  
  115. :HIBYTE7
  116. STA $7000,X
  117. INY
  118. LDA ($FB),Y
  119.  
  120. :HIBYTE8
  121. STA $7800,X   ;... UND DIESER ALLE
  122.               ;8.┬YTES
  123.  
  124. INY           ;SCHON 256 ┬YTES (= 32
  125.               ;KOMPLETTE ┌EICHEN)
  126.  
  127. BNE KEINUEBERTRAG1
  128.          ;NEIN ? DANN KEINUEBERTRAG1
  129.          ;╧RIGINAL-
  130. INC $FC  ;┌EICHENSATZ-┴DRESSENHIGH-BYTE
  131.          ;UM 1 ERHOEHEN
  132.  
  133. :KEINUEBERTRAG1
  134. TXA
  135. CLC         ;┌EIGER DER NEUEN ┌EICHENS.
  136. ADC #8      ; UM 8
  137. TAX         ;ERHOEHEN
  138. BNE NOTRAG  ;DA NUR DAS 1.┬YTE DER NEUEN
  139.             ;┌EICHENSAETZE BENUTZT
  140.             ;WERDEN
  141.  
  142. INC HIBYTE1+2  ;WENN X-REG. WIEDER AUF 0
  143. INC HIBYTE2+2  ;DANN HIGH-BYTES ERHOEHEN.
  144. INC HIBYTE3+2
  145. INC HIBYTE4+2
  146. INC HIBYTE5+2
  147. INC HIBYTE6+2
  148. INC HIBYTE7+2
  149. INC HIBYTE8+2
  150.  
  151. :NOTRAG
  152. LDA $FC
  153. CMP #$38     ;SCHON GANZER ╧RIGINAL-
  154.              ;┌EICHENSATZ BEARBEITET ???
  155.  
  156. BNE CHARBEGIN  ;NEIN ?? DANN  CHARBEGIN
  157.  
  158.  
  159. ;╩ETZT ALLE ┌EILEN DER ╧RIGINAL-
  160. ;TABELLE IN DIE VERSCHIEDENEN
  161. ;╙CREENS VERSCHIEBEN
  162.  
  163. LDX #0
  164. :TRANSFER
  165. LDA $2C00,X
  166. STA $4000,X
  167. LDA $2C00+40,X
  168. STA $4400,X
  169. LDA $2C00+80,X
  170. STA $4800,X
  171. LDA $2C00+120,X
  172. STA $4C00,X
  173. LDA $2C00+160,X
  174. STA $5000,X
  175. LDA $2C00+200,X
  176. STA $5400,X
  177. LDA $2C00+240,X
  178. STA $5800,X
  179. LDA $2C00+280,X
  180. STA $5C00,X
  181. LDA $2C00+320,X
  182. STA $6000,X
  183. LDA $2C00+360,X
  184. STA $6400,X
  185. LDA $2C00+400,X
  186. STA $6800,X
  187. LDA $2C00+440,X
  188. STA $6C00,X
  189. LDA $2C00+480,X
  190. STA $7000,X
  191. LDA $2C00+520,X
  192. STA $7400,X
  193. LDA $2C00+560,X
  194. STA $7800,X
  195. LDA $2C00+600,X      ;16 ZEILEN
  196. STA $7C00,X          ;WURDEN VERSCHOBEN
  197. INX
  198. CPX #40
  199. BNE TRANSFER
  200.  
  201. SEI
  202. LDA  #$7F
  203. STA  $DC0D
  204. LDA  #$00
  205. STA  $DC0E
  206. LDA  #$F1    ;╔NTERRUPT-╥EGISTER
  207. STA  $D01A
  208. LDA  #50     ;AUF ╥ASTERINTERRUPT
  209. STA  $D012
  210. LDA  #$1B    ;VORBEREITEN
  211. STA  $D011   ;BEI ╥ASTERZEILE 50
  212. LDA  #<IRQNEU
  213. STA  $0314    ;╔╥╤-╨OINTER SETZEN
  214. LDA  #>IRQNEU
  215. STA  $0315
  216.  
  217. LDA #24
  218. STA $D016   ;═ULTICOLOR EINSCHALTEN
  219.  
  220. LDA #0
  221. STA $D020   ;╥AHMENFARBE
  222.             ;AUF ╙CHWARZ
  223. LDA #6
  224. STA $D021   ;╚INTERGRUNDFARBE
  225.             ;AUF ┬LAU
  226. LDA #14
  227. STA $D022   ;═UTLICOLORFARBEN
  228. LDA #15     ;AUF HELLBLAU UND HELL-
  229. STA $D023   ;GRAU SETZEN
  230.  
  231.  
  232. CLI
  233.  
  234. :BACK
  235.  
  236.     JMP BACK  ;┼NDLOSSCHLEIFE
  237.  
  238. :IRQNEU
  239. BIT 0
  240. BIT 0    ;╫ARTEZEIT
  241.  
  242. LDA  #150
  243. STA  $DD00     ;┴UF DIE ┬ANK AB $4000
  244.                ;UMSCHALTEN
  245.  
  246. LDY  #0
  247. :LOOP
  248. LDA  #$12         ;NACHEINANDER
  249. STA  $D011        ;DIE WERTE
  250. LDA  CHARTAB,Y    ;$12,$13,$14,$15
  251.                   ;$16,$17,$10,$11
  252. STA  $D018        ;SETZEN UM DEN ╞╠─-
  253.                   ;EFFEKT ZU ERZIELEN
  254. INY
  255. NOP               ;╥ASTERZEILE AUSTIMEN
  256. NOP
  257. LDA  #$13
  258. STA  $D011
  259. LDA  CHARTAB,Y   ;NACHEINANDER DIE $D018
  260. STA  $D018       ;WERTE AUS DER ╘ABELLE
  261. INY              ;HOLEN
  262. NOP
  263. NOP
  264. LDA  #$14
  265. STA  $D011
  266. LDA  CHARTAB,Y
  267. STA  $D018
  268. INY
  269. NOP
  270. NOP
  271. LDA  #$15
  272. STA  $D011
  273. LDA  CHARTAB,Y
  274. STA  $D018
  275. INY
  276. NOP
  277. NOP
  278. LDA  #$16
  279. STA  $D011
  280. LDA  CHARTAB,Y
  281. STA  $D018
  282. INY
  283. NOP
  284. NOP
  285. LDA  #$17
  286. STA  $D011
  287. LDA  CHARTAB,Y
  288. STA  $D018
  289. INY
  290. NOP
  291. NOP
  292. LDA  #$10
  293. STA  $D011
  294. LDA  CHARTAB,Y
  295. STA  $D018
  296. INY
  297. BIT 0
  298. LDA  #$11
  299. STA  $D011
  300. LDA  CHARTAB,Y
  301. STA  $D018
  302.  
  303. INY
  304. CPY  #136   ;╙CHON DER 136.WERT AUS DER
  305.             ;╘ABELLE GELESEN ???
  306.            ;(─ER ╞╠─-┬EREICH IST DANN
  307.            ;136/8=17 ├URSOR-ZEILEN HOCH)
  308.  
  309. BNE  LOOP   ;NEIN ?? DANN LOOP
  310.  
  311. LDA #$72   ;╒NTEREN ╘EIL DES ┬ILDSCHIRMS
  312. STA $D011  ;UNSICHTBAR MACHEN
  313.  
  314. LDA #$FE
  315. LDX #0
  316. :LOESCHTAB      ;$D018-╘ABELLE MIT
  317. STA CHARTAB,X   ;$FE-BYTES FUELLEN.
  318. INX             ;╙IE SIMULIEREN
  319. CPX #136        ;EIN ╞╠─ MIT GE-
  320. BNE LOESCHTAB   ;LOESCHTEM $3FFF
  321.  
  322. :SINZEIGER
  323. LDX #0
  324.  
  325. LDY #0
  326. :SETPIXELS
  327. LDA #0         ;PIXELNUMMER
  328. ASL            ;MAL 2
  329. STA CHARTAB,Y  ;IN TABELLE SETZEN
  330. CMP #$90       ;SCHON 72 PIXEL ???
  331.                ;72/8=9 ├URSOR-┌EILEN
  332.                ;(╚OEHE DES ╧RIGINAL
  333.                ; ┬ILDES)
  334. BEQ FERTIG     ;JA ?? DANN FERTIG
  335.  
  336. INY            ;ZEIGER ZUM SETZEN
  337. TYA            ;DER CHARTAB ERHOEHEN
  338. CLC            ;UND MIT SINUSWERT
  339. ADC SINUS,X    ;ADDIEREN
  340. TAY
  341. INX
  342. INC SETPIXELS+1  ;PIXELNUMMER ERHOEHN
  343.  
  344. JMP SETPIXELS  ;WIEDERHOLEN
  345.  
  346. :FERTIG
  347. LDA #0
  348. STA SETPIXELS+1  ;ANFANGSPIXEL WIEDER
  349.                  ;AUF 0
  350.  
  351. INC SINZEIGER+1  ;SINUSZEIGER ERHOEHEN
  352. LDA SINZEIGER+1
  353. CMP #100         ;SCHON TABELLE DURCHGE-
  354. BNE KEINSINEND   ;LAUFEN ????
  355.  
  356. LDA #0           ;JA ??
  357. STA SINZEIGER+1  ;DANN SINUSZEIGER AUF 0
  358.  
  359. :KEINSINEND
  360. LDA #1
  361. STA $D019
  362. JMP $FEBC     ;┼NDE DER ╔╥╤-╥OUTINE
  363.  
  364.  
  365. :CHARTAB
  366. S 136    ;╙PEICHER MIT 136 $00-BYTES
  367.          ;FUELLEN
  368.  
  369. :SINUS   ;╙INUSTABELLE FUER
  370.          ;DEN 'KUENSTLICHEN' ╞╠─
  371.  
  372. S 70    ;70 $00-┬YTES
  373.  
  374. ; JETZT KOMMEN DIE ┴BSTAENDE ZWISCHEN
  375. ; DEN ╨IXELZEILEN
  376.  
  377. B 1,1,2,2,3,3,4,4,4,4,4,4,4,4,4,3,3,2,2,1,1
  378.  
  379. S 80   ;80 $00-┬YTES
  380.  
  381.  
  382.  
  383.  
  384.  
  385.  
  386.  
  387.  
  388.  
  389.  
  390.