Difference between revisions of "PROTRACKER372 AYFIX H"

From MSX MUSIC WIKI
Jump to: navigation, search
(Created page with "AYFIX C��m��� г;Эта программа демонстрирует, сколько ;разных звуков можно получить на одной ;и т...")
(Tags: Mobile edit, Mobile web edit)
 
(Tags: Mobile edit, Mobile web edit)
 
Line 1: Line 1:
AYFIX  C��m��� г;Эта программа демонстрирует, сколько
+
AYFIX  C��m��� г
;разных звуков можно получить на одной
+
 
;и той же комбинации tone+env, варьируя
+
;Эта программа демонстрирует, сколько
;фазу тональника
+
;разных звуков можно получить на одной
;крутите фазу кнопками O,P!
+
;и той же комбинации tone+env, варьируя
 +
;фазу тональника
 +
;крутите фазу кнопками O,P!
 
         ORG #6000
 
         ORG #6000
;обнуляем все регистры AY
+
;обнуляем все регистры AY
 
         LD DE,#E00
 
         LD DE,#E00
 
         DEC D
 
         DEC D
 
         CALL OUTAY
 
         CALL OUTAY
 
         JR NZ,$-4
 
         JR NZ,$-4
LLL
+
LLL
 
         HALT  
 
         HALT  
 
         LD DE,#7FF
 
         LD DE,#7FF
Line 16: Line 18:
 
         LD DE,#800
 
         LD DE,#800
 
         CALL OUTAY ;запрещаем огибающую
 
         CALL OUTAY ;запрещаем огибающую
;тишина
+
;тишина
 
         CALL 8020 ;BREAK
 
         CALL 8020 ;BREAK
 
         RET NC
 
         RET NC
;регулируем фазу (см.ниже)
+
  ;регулируем фазу (см.ниже)
 
         LD HL,WAIT
 
         LD HL,WAIT
 
         LD A,#DF
 
         LD A,#DF
Line 29: Line 31:
 
         JR C,$+3
 
         JR C,$+3
 
         DEC (HL)
 
         DEC (HL)
;показываем фазу на экране
+
;показываем фазу на экране
 
         LD B,(HL)
 
         LD B,(HL)
 
         LD HL,#5800
 
         LD HL,#5800
Line 39: Line 41:
 
         INC L
 
         INC L
 
         JR NZ,$-3
 
         JR NZ,$-3
 
+
;обнуляем частоту тональника
+
;обнуляем частоту тональника
 
         LD DE,#000
 
         LD DE,#000
 
         CALL OUTAY
 
         CALL OUTAY
 
         LD DE,#100
 
         LD DE,#100
 
         CALL OUTAY
 
         CALL OUTAY
;теперь счетчик тональника в фиксированном положении
+
;теперь счетчик тональника в фиксированном положении
;флаг тональника в одном из 2 положений: "вкл" или "выкл"
+
;флаг тональника в одном из 2 положений: "вкл" или "выкл"
 
         LD HL,#3C*8 ;период тональника
 
         LD HL,#3C*8 ;период тональника
 
         LD D,#0
 
         LD D,#0
Line 54: Line 56:
 
         LD E,H
 
         LD E,H
 
         CALL OUTAY ;устанавливаем (ст.)
 
         CALL OUTAY ;устанавливаем (ст.)
;делаем задержку для сдвига фазы тональника
+
;делаем задержку для сдвига фазы тональника
WAIT=$+1
+
WAIT=$+1
 
       LD B,1
 
       LD B,1
WAIT0  LD A,8
+
WAIT0  LD A,8
 
       DEC A
 
       DEC A
 
       JR NZ,$-1
 
       JR NZ,$-1
 
       DJNZ WAIT0
 
       DJNZ WAIT0
;теперь тональник в выбранной нами фазе F
+
;теперь тональник в выбранной нами фазе F
;но из-за непредсказуемости флага эта фаза может быть F+180°
+
;но из-за непредсказуемости флага эта фаза может быть F+180°
 
         LD DE,#7FE
 
         LD DE,#7FE
 
         CALL OUTAY ;разрешаем тональник
 
         CALL OUTAY ;разрешаем тональник
Line 71: Line 73:
 
         LD DE,#D0E
 
         LD DE,#D0E
 
         CALL OUTAY ;уст.тип огибающей (E)
 
         CALL OUTAY ;уст.тип огибающей (E)
;теперь огибающая в начальной фазе.
+
;теперь огибающая в начальной фазе.
;слушаем...
+
;слушаем...
 
         LD B,3
 
         LD B,3
 
         HALT  
 
         HALT  
 
         DJNZ $-1
 
         DJNZ $-1
 
+
 
         JR LLL
 
         JR LLL
 
+
OUTAY
+
OUTAY
 
         LD BC,#FFFD
 
         LD BC,#FFFD
 
         OUT (C),D
 
         OUT (C),D
Line 85: Line 87:
 
         OUT (C),E
 
         OUT (C),E
 
         RET  
 
         RET  
 
+
L8df4=$-2
+
L8df4=$-2
module=#C000
+
module=#C000
END
+
END
 
       ELSE  
 
       ELSE  
END
+
END
module
+
module
 
         INCBIN "si*.m"
 
         INCBIN "si*.m"
 
       ENDIF  
 
       ENDIF  

Latest revision as of 02:15, 1 March 2020

AYFIX C��m��� г

;Эта программа демонстрирует, сколько
;разных звуков можно получить на одной
;и той же комбинации tone+env, варьируя
;фазу тональника
;крутите фазу кнопками O,P!
       ORG #6000
;обнуляем все регистры AY
       LD DE,#E00
       DEC D
       CALL OUTAY
       JR NZ,$-4
LLL
       HALT 
       LD DE,#7FF
       CALL OUTAY ;запрещаем тональник
       LD DE,#800
       CALL OUTAY ;запрещаем огибающую
;тишина
       CALL 8020 ;BREAK
       RET NC
 ;регулируем фазу (см.ниже)
       LD HL,WAIT
       LD A,#DF
       IN A,(-2)
       RRA 
       JR C,$+3
       INC (HL)
       RRA 
       JR C,$+3
       DEC (HL)
;показываем фазу на экране
       LD B,(HL)
       LD HL,#5800
       LD (HL),255
       INC L
       DJNZ $-3
       JR Z,$+7
       LD (HL),0
       INC L
       JR NZ,$-3

;обнуляем частоту тональника
       LD DE,#000
       CALL OUTAY
       LD DE,#100
       CALL OUTAY
;теперь счетчик тональника в фиксированном положении
;флаг тональника в одном из 2 положений: "вкл" или "выкл"
       LD HL,#3C*8 ;период тональника
       LD D,#0
       LD E,L
       CALL OUTAY ;устанавливаем (мл.)
       LD D,#1
       LD E,H
       CALL OUTAY ;устанавливаем (ст.)
;делаем задержку для сдвига фазы тональника
WAIT=$+1
      LD B,1
WAIT0  LD A,8
      DEC A
      JR NZ,$-1
      DJNZ WAIT0
;теперь тональник в выбранной нами фазе F
;но из-за непредсказуемости флага эта фаза может быть F+180°
       LD DE,#7FE
       CALL OUTAY ;разрешаем тональник
       LD DE,#810
       CALL OUTAY ;разрешаем огибающую
       LD DE,#B1E
       CALL OUTAY ;устанавливаем период огибающей
       LD DE,#D0E
       CALL OUTAY ;уст.тип огибающей (E)
;теперь огибающая в начальной фазе.
;слушаем...
       LD B,3
       HALT 
       DJNZ $-1

       JR LLL

OUTAY
       LD BC,#FFFD
       OUT (C),D
       LD B,#BF
       OUT (C),E
       RET 

L8df4=$-2
module=#C000
END
      ELSE 
END
module
       INCBIN "si*.m"
      ENDIF 
       ORG tab_frq
      ;INCBIN "tb_ST
       DD F80E10