PROTRACKER372 JP AYFIX H

From MSX MUSIC WIKI
Jump to: navigation, search

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