Advertisement
Guest User

Untitled

a guest
Jul 6th, 2017
57
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
MPASM 1.47 KB | None | 0 0
  1.     ;Flanger
  2.     opt cex,mex
  3. bufferN equ 4096
  4. delaytime   equ 220
  5. depth   equ 7 ;potega do, które
  6. modspeed equ 40
  7. mix equ 0.5
  8.     org P:$100
  9.    
  10.     init
  11.    
  12.     ;M0 - rejestr modulo dla probek sygnalu wejsciowego
  13.     ;R0 - rejestr adresowy
  14.    
  15.     ;M1 - rejestr modulo dla probek dileja
  16.     ;R1 - rejestr adresowy
  17.    
  18.     ;M4 - rejestr modulo dla probek sygnalu modulujacego
  19.     ;R4 - rejestr adresowy
  20.     ;N4 - rejestr przesuniecia
  21.    
  22.    
  23.     move #(bufferN-1),m0
  24.     move #(bufferN-1),m1
  25.     move #$0,r1 ;stad czytamy
  26.     move #delaytime,r0  ;tu piszemy
  27.    
  28.     move #$FF,m4
  29.     move #$13F00,r4
  30.    
  31.     move #modspeed,r5
  32.     move #-1,m5
  33.    
  34.     repeat  ;glowna petla programu
  35.         in a
  36.         move a,x:(r0);z a do pamieci
  37.         move #1-mix,x1
  38.         move a,y1
  39.         mpy y1,x1,a ; w akumulatorze jest aktualna probka przeskalowana
  40.        
  41.         move y:(r5)-,b
  42.         ; NIE WSTAWIAJ NIC MIEDZY TYMI INSRUKCJAMI, bo zniszczysz świat
  43.         .IF <EQ>
  44.             move #modspeed,r5
  45.             move y:(r4)+,b
  46.         .ENDI
  47.        
  48.         move y:(r4),b ;wczytujemy do y1 probke sinusa
  49.         asr #24-depth,b,b ;teraz mamy calkowitaliczbowa wartosc sinusa w B. NIE KASUJ TEJ LINIJKI NAWET JAK NIE OGARNIASZ
  50.         add #delaytime,b
  51.         neg b
  52.         move r0,x1  ; wczytuje do x adres aktualnie przetwarzanej probki
  53.         add x1,b    ; teraz mamy aktualny dilej w B :D
  54.         ; NIE WSTAWIAJ NIC MIEDZY TYMI INSRUKCJAMI, bo zniszczysz świat
  55.         .IF <MI>
  56.             add #bufferN,b
  57.         .ENDI
  58.        
  59.         move b,r1
  60.        
  61.         ; wczytaj próbkę i pomnóż ją przez wsp. mix
  62.         move x:(r1)+,x1 ; poprosze kanapke
  63.         move #mix,y1
  64.         mac x1,y1,a
  65.         out a
  66.     forever
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement