home *** CD-ROM | disk | FTP | other *** search
/ Mixer / Mixer_1995_12_08_Quasimodos_pl_Side_B_a.atr / cir.asm < prev    next >
Assembly Source File  |  2023-02-26  |  8KB  |  1 lines

  1.  opt 21¢¢q     equ $9000¢¢tab1  equ $b800¢tab2  equ $b900¢tab3  equ $ba00¢tab4  equ $bb00¢* tablice dla plota¢* tab1 - maski¢* tab2 - numery bajtu w lini¢* tab3 - mlodsze bajty z y*32+mem1¢* tab4 - starsze bajty z y*32+mem1¢¢mem1  equ $a000¢mem2  equ $b000¢* pamiec obrazu¢* mem1 - pierwszy 4kb fragment¢* mem2 - drugi 2kb fragment¢¢x     equ $c0¢y     equ $c1¢y1    equ $c5¢y2    equ $c6¢half  equ $c7¢zero  equ $c8¢r     equ $cc¢x0    equ $cd¢y0    equ $ce¢while    equ $db¢* bajty pomocnicze¢¢pom1  equ $80¢pom2  equ $82¢* slowa pomocnicze¢¢ org $8800¢¢ jsr clear¢* czyszczenie ekranu¢¢ jsr tabs¢* tworzenie tablic dla plota¢¢ jsr mksq¢* tworzenie tablicy pierwiastkow¢¢ jsr dlist¢* przygotowanie ekranu do pracy¢¢ lda #128¢ sta x0¢ lda #96¢ sta y0¢ lda #38¢ sta r¢ jsr kolo¢* wywolanie¢¢ jmp *¢* zanudzanie procesora¢¢* ---¢¢dlist equ *¢ lda <dl¢ sta $230¢ lda >dl¢ sta $231¢ lda #33¢ sta 559¢ lda #0¢ sta zero¢¢ rts¢¢dl equ *¢ dta b(112),b(112),b(112)¢ dta b(79),a(mem1)¢ dta d'////////////////////////////////'¢ dta d'////////////////////////////////'¢ dta d'////////////////////////////////'¢ dta d'///////////////////////////////'¢ dta b(79),a(mem2)¢ dta d'////////////////////////////////'¢ dta d'///////////////////////////////'¢ dta b(65),a(dl)¢¢* ---¢¢tabs equ *¢ clc¢ ldx #0¢tp1 lda cos¢ sta tab1,x¢ lsr cos¢ lda cos¢ bne tp2¢ lda #$80¢ sta cos¢tp2 inx¢ bne tp1¢¢¢ lda #0¢ sta cos¢ tax¢ tay¢tp3 sta tab2,x¢ inx¢ iny¢ cpy #8¢ bne tp3¢¢ clc¢ adc #1¢ ldy #0¢ cpx #0¢ bne tp3¢¢¢ ldx #0¢tp4 stx cus+1¢ jsr mul¢ clc¢ lda cus¢ adc <mem1¢ sta cus¢ lda cus+1¢ adc >mem1¢ sta cus+1¢¢ lda cus¢ sta tab3,x¢ lda cus+1¢ sta tab4,x¢¢ inx¢ cpx #128¢ bne tp4¢¢ ldy #0¢tp5 sty cus+1¢ jsr mul¢ clc¢ lda cus¢ adc <mem2¢ sta cus¢ lda cus+1¢ adc >mem2¢ sta cus+1¢¢ lda cus¢ sta tab3,x¢ lda cus+1¢ sta tab4,x¢¢ inx¢ iny¢ cpy #64¢ bne tp5¢¢¢ rts¢¢¢mul equ *¢ lda #0¢ lsr cus+1¢ ror @¢ lsr cus+1¢ ror @¢ lsr cus+1¢ ror @¢ sta cus¢ rts¢¢cos dta b(%10000000)¢cus dta a(0000)¢¢* ---¢¢* mlodsze bajty z kolejnych liczb¢* (z zakresu 0-63) podniesionych do¢* kwadratu¢lkw equ *¢ dta l(0),l(1),l(4),l(9)¢ dta l(16),l(25),l(36),l(49)¢ dta l(64),l(81),l(100),l(121)¢ dta l(144),l(169),l(196),l(225)¢ dta l(256),l(289),l(324),l(361)¢ dta l(400),l(441),l(484),l(529)¢ dta l(576),l(625),l(676),l(729)¢ dta l(784),l(841),l(900),l(961)¢ dta l(1024),l(1089),l(1156),l(1225)¢ dta l(1296),l(1369),l(1444),l(1521)¢ dta l(1600),l(1681),l(1764),l(1849)¢ dta l(1936),l(2025),l(2116),l(2209)¢ dta l(2304),l(2401),l(2500),l(2601)¢ dta l(2704),l(2809),l(2916),l(3025)¢ dta l(3136),l(3249),l(3364),l(3481)¢ dta l(3600),l(3721),l(3844),l(3969)¢¢* starsze bajty z kolejnych liczb¢* (z zakresu 0-63) podniesionych do¢* kwadratu¢hkw1 equ *¢ dta h(0),h(1),h(4),h(9)¢ dta h(16),h(25),h(36),h(49)¢ dta h(64),h(81),h(100),h(121)¢ dta h(144),h(169),h(196),h(225)¢ dta h(256),h(289),h(324),h(361)¢ dta h(400),h(441),h(484),h(529)¢ dta h(576),h(625),h(676),h(729)¢ dta h(784),h(841),h(900),h(961)¢ dta h(1024),h(1089),h(1156),h(1225)¢ dta h(1296),h(1369),h(1444),h(1521)¢ dta h(1600),h(1681),h(1764),h(1849)¢ dta h(1936),h(2025),h(2116),h(2209)¢ dta h(2304),h(2401),h(2500),h(2601)¢ dta h(2704),h(2809),h(2916),h(3025)¢ dta h(3136),h(3249),h(3364),h(3481)¢ dta h(3600),h(3721),h(3844),h(3969)¢¢* starsze bajty z sumy kolejnych liczb¢* (z zakresu 0-63) podniesionych do¢* kwadratu i poczatku tablicy¢* pierwiastkow¢hkw2 equ *¢ dta h(q+0),h(q+1),h(q+4),h(q+9)¢ dta h(q+16),h(q+25),h(q+36),h(q+49)¢ dta h(q+64),h(q+81),h(q+100),h(q+121)¢ dta h(q+144),h(q+169),h(q+196),h(q+225)¢ dta h(q+256),h(q+289),h(q+324),h(q+361)¢ dta h(q+400),h(q+441),h(q+484),h(q+529)¢ dta h(q+576),h(q+625),h(q+676),h(q+729)¢ dta h(q+784),h(q+841),h(q+900),h(q+961)¢ dta h(q+1024),h(q+1089),h(q+1156),h(q+1225)¢ dta h(q+1296),h(q+1369),h(q+1444),h(q+1521)¢ dta h(q+1600),h(q+1681),h(q+1764),h(q+1849)¢ dta h(q+1936),h(q+2025),h(q+2116),h(q+2209)¢ dta h(q+2304),h(q+2401),h(q+2500),h(q+2601)¢ dta h(q+2704),h(q+2809),h(q+2916),h(q+3025)¢ dta h(q+3136),h(q+3249),h(q+3364),h(q+3481)¢ dta h(q+3600),h(q+3721),h(q+3844),h(q+3969)¢¢¢* -----¢* procedurka rysujaca kolo¢¢kolo equ *¢ lda r¢ bne kl0¢ rts¢kl0 equ *¢ lsr @¢ bne kl1¢ lda #0¢kl1 equ *¢ clc¢ adc #1¢ sta half¢* r/2¢¢¢* obliczanie¢*   ¢* y=⇩r*r-x*x¢¢ lda #0¢ sta x¢kl2 equ *¢ ldx x¢ ldy r¢¢ sec¢ lda lkw,y¢ sbc lkw,x¢ sta pom1¢ lda hkw2,y¢ sbc hkw1,x¢ sta pom1+1¢* obliczenie r*r-x*x+poczatek tablicy¢* pierwiastkow¢¢ ldy #0¢ lda (pom1),y¢ sta y¢* obliczenie pierwiastka(pobranie wy-¢* niku z tablicy)¢¢¢ clc¢ lda x0¢ adc x¢ tax¢ sec¢ lda y0¢ sbc y¢ tay¢ sta y1¢* przesuniecie o wektor x0,-y0¢* (I cwiartka)¢* wynik zapamietywany w y1 dla¢* II cwiartki¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢* plot¢¢ clc¢ lda y0¢ adc y¢ tay¢ sta y2¢* przesuniecie o wektor x0,y0¢* (IV cwiartka)¢* wartosc x pozostaje niezmieniona¢* z poprzedniej cwiartki¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢* plot¢¢* -¢¢ sec¢ lda x0¢ sbc x¢ tax¢ ldy y1¢* przesuniecie o wektor -x0,-y0¢* (II cwiartka)¢* pobierany wynik z y1 byl obliczony¢* w I cwiartce¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢* plot¢¢ ldy y2¢* przesuniecie o wektor -x0,y0¢* (III cwiartka)¢* wartosc x pozostaje niezmieniona¢* z poprzedniej cwiartki¢* pobierany wynik z y2 byl obliczany¢* w IV cwiartce¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢* plot¢¢ inc x¢ lda x¢ cmp half¢ beq kl3¢ jmp kl2¢* obliczanie w ten sposob az do¢* polowy promienia¢¢¢* -----¢* obliczanie¢*   ¢* x=⇩r*r-y*y¢*¢* wszystko jest analogiczne do poprzed-¢* niej polowki,z zamiana z x do y oraz¢* y do x¢¢kl3 equ *¢ ldx y¢ ldy r¢¢ sec¢ lda lkw,y¢ sbc lkw,x¢ sta pom1¢ lda hkw2,y¢ sbc hkw1,x¢ sta pom1+1¢¢ ldy #0¢ lda (pom1),y¢ sta x¢¢* -----¢¢ clc¢ lda x0¢ adc x¢ tax¢ sec¢ lda y0¢ sbc y¢ tay¢ sta y1¢¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢¢ clc¢ lda y0¢ adc y¢ tay¢ sta y2¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢¢ sec¢ lda x0¢ sbc x¢ tax¢ ldy y1¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢¢ ldy y2¢¢ LDA TAB4,Y¢ STA ZERO+1¢ LDA TAB3,Y¢ ORA TAB2,X¢ TAY¢ LDA (ZERO),Y¢ ORA TAB1,X¢ STA (ZERO),Y¢¢ dec y¢ lda y¢ bmi kl4¢ jmp kl3¢¢kl4 equ *¢ rts¢* powrot z procedury¢¢* ---¢¢¢mksq equ *¢ lda <q¢ sta pom1¢ lda >q¢ sta pom1+1¢¢ ldx #0¢ ldy #0¢mq0 equ *¢ lda rqs,x¢ sta while¢ txa¢ pha¢¢ ldx #0¢mq1 equ *¢ sta (pom1),y¢ inx¢ cpx while¢ beq mq2¢¢ iny¢ bne mq1¢ inc pom1+1¢ jmp mq1¢¢mq2 equ *¢ iny¢ bne mq3¢ inc pom1+1¢¢mq3 equ *¢ pla¢ tax¢¢ inx¢ cpx #64¢ bne mq0¢¢ rts¢¢rqs equ *¢ dta b($1),b($2),b($4),b($6),b($8),b($a),b($c),b($e)¢ dta b($10),b($12),b($14),b($16),b($18),b($1a),b($1c),b($1e)¢ dta b($20),b($22),b($24),b($26),b($28),b($2a),b($2c),b($2e)¢ dta b($30),b($32),b($34),b($36),b($38),b($3a),b($3c),b($3e)¢ dta b($40),b($42),b($44),b($46),b($48),b($4a),b($4c),b($4e)¢ dta b($50),b($52),b($54),b($56),b($58),b($5a),b($5c),b($5e)¢ dta b($60),b($62),b($64),b($66),b($68),b($6a),b($6c),b($6e)¢ dta b($70),b($72),b($74),b($76),b($78),b($7a),b($7c),b($7e)¢¢* ---¢¢clear equ *¢ lda #0¢ tax¢cl0 sta mem1,x¢ sta mem1+$100,x¢ sta mem1+$200,x¢ sta mem1+$300,x¢ sta mem1+$400,x¢ sta mem1+$500,x¢ sta mem1+$600,x¢ sta mem1+$700,x¢ sta mem1+$800,x¢ sta mem1+$900,x¢ sta mem1+$a00,x¢ sta mem1+$b00,x¢ sta mem1+$c00,x¢ sta mem1+$d00,x¢ sta mem1+$e00,x¢ sta mem1+$f00,x¢ sta mem2,x¢ sta mem2+$100,x¢ sta mem2+$200,x¢ sta mem2+$300,x¢ sta mem2+$400,x¢ sta mem2+$500,x¢ sta mem2+$600,x¢ sta mem2+$700,x¢¢ inx¢ bne cl0¢¢ rts¢¢ end¢¢