Логотип.
 Разделы сайта Cтатьи.
Сайт в разработке!

Статистика сайта.

Посещений за день: 59
Посещений за месяц: 616
Посещений за год: 27788


Баннеры.

DMconnect
Maksy's PWS


Статистика в картинках.

likes counter


  • Главная.
  • Новости.
  • Программы.
  • Файлы.
  • Контакты.
  • Чат "Пиво".
  • Статьи.
  • Ссылки.
  • Гостевая.
  • Супер-быстрый MCC player.

     Без вступлений и окончаний приведу самый распоследний вариант плейера для MCC метода! Теперь им можно воспроизводить ВСЁ - теорема Котельникова играет на нас!

                                                                    
    	        EI      ;до запуска в порт AY n7 записать #FF!          
    	        HALT                                                    
    	        LD SP,START-SAMPLE-ADRESS                               
    	        LD IX,LOOP                                              
    	        LD DE,#08+256*('MCC_TBL+1)                              
    	        LD BC,#FFFD                                             
    	        OUT (C),E       ;вкл. 8 AY_порт (крайний канал)         
    	                                                                
    	LOOP:   POP HL                                                  
    	        LD E,L                                                  
    	        LD A,(DE)
    	        DEC D                                                   
    	        EX AF,AF'                                               
    	        LD A,(DE)                                               
    	        LD E,9                                                  
    	        OUT (253),A                                             
    	        EX AF,AF'                                               
    	        OUT (C),E                                               
    	        OUT (253),A                                             
    	        LD E,H                                                  
    	        LD A,(DE)                                               
    	        INC D                                                   
    	        EX AF,AF'                                               
    	        LD A,(DE)                                               
    	        LD E,8                                                  
    	        OUT (253),A                                             
    	        EX AF,AF'                                               
    	        OUT (C),E                                               
    	        OUT (253),A                                             
    	        JP (IX)                                                 
    

     Обработчик INT'а:

                                                                    
    	INT:    POP IY  ;взяли адр. возврата                            
    	        PUSH HL ;восстановили испорченный SAMPL                 
    	        LD HL,0                                                 
    	        ADD HL,SP                                               
    	        LD BC,END_SAMPLE_ADDRESS                                
    	        OR A                                                    
    	        SBC HL,BC                                               
    	        JR NC,END_INT                                           
    	        LD BC,#FFFD                                             
    	        POP HL                                                  
    	        JP (IY)                                                 
    	END_INT: выход из player'а                                      
    


     160 тактов на две выборки сэмпла. 80 тактов на выборку. Fдискрет.=3,5 МГц/80=43,75 кГц.

     Плеер использует только один крайний канал AY, можно и два для двойной громкости (на качество в принципе почти не влияет кол-во крайних каналов...)

     Единственный недостаток, можно слегка проскочить конец сэмпла, т.к. проверка раз в INT, но недостаток легко исправляется: в конце сэмпла (а он обязательно беззнаковый 0..#FF, а не -128 до +127) заполнен 896 байт "тишиной" - байтом #80 и всё. Почему 896 - т.к. в INT'е 71680 тактов (maximum на нетурбированной машине), а 71680/80=896!

    >>

    BitByByte, 2000 г. (2025).