PROTRACKER372 AYFIX H

From MSX MUSIC WIKI
Revision as of 22:08, 14 February 2020 by Kumokosi (talk | contribs) (Created page with "AYFIX C��m��� г;Эта программа демонстрирует, сколько ;разных звуков можно получить на одной ;и т...")
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
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