Hacker #07
10 марта 1997

 Вывод оцифрованного звука.                          .BIG BRAIN 
                                                                
                                                                
ZX-SPECTRUM  в Росии имеет несколько устройств для вывода звука.
Это   старый   добрый  бипер,  сопроцессор  АУ-3-8910/12,  целое
семейство C0V0Х'ов (LPT-СОV0X, PROFI C0V0Х, SOUND DRIVE, ...), и
недавно разработанная звуковая плата GENERAL SOUND.             
                                                                
Я  раскажу  как  выводить  звук  на  АУ  и PROFI C0V0Х. Вывод на
C0V0Х'ы не сильно отличаются между собой, ну а GENERAL SOUND'а я
не видел и не слышал вообще.                                    
                                                                
Рассмотрим  распространенные  8-битовые  инструменты от РС-шного
Sceream Trackera:                                               
                                                                
Проще всего выводить их на C0V0Х:                               
                                                                
        LD      А,#80    ; инсталляция KP58OBB55A               
        0UT     (127),А                                         
                                                                
        LD      HL,начало инструмента                           
        LD      DE,длина инструмента                            
                                                                
L1      LD      А,(HL)                                          
                                                                
        LD      В,задержка                                      
        DJNZ    $                                               
                                                                
        0UT     (#3F),А  ; #5F - второй канал                   
                                                                
        INC     HL                                              
        DEC     DE                                              
        LD      А,D                                             
        0R      E                                               
        JP      NZ,L1                                           
                                                                
АУ позволяет выводить только 4 бита звука, что несколько снижает
качество:                                                       
                                                                
        LD      ВС,#FFFD ; инсталляция АУ-3-8910/12             
        LD      А,7                                             
        0UT     (С),А                                           
        LD      ВС,#BFFD                                        
        LD      А,#FF    ; вывод звука и шума                   
        0UT     (С),А                                           
        LD      ВС,#FFFD                                        
        LD      А,8      ; каналЫ : 8 - А, 9 - В, 10 - С        
        0UT     (С),А                                           
                                                                
        LD      HL,начало инструмента                           
        LD      DE,длина инструмента                            
                                                                
        LD      ВС,#BFFD                                        
                                                                
L1      LD      А,(HL)                                          
                                                                
        EXX                                                     
        LD      В,задержка                                      
        DJNZ    $                                               
        EXX                                                     
                                                                
        RRA     ; выделение 4-х старших бит                     
        RRA                                                     
        RRA                                                     
        RRA                                                     
        0UT     (С),А                                           
                                                                
        INC     HL                                              
        DEC     DE                                              
        LD      А,D                                             
        0R      E                                               
        JP      NZ,L1                                           
                                                                
Oписаным выше способом также можно проигрывать WAV-файлы с РС.  
На C0V0Х'е можно получить очень качественные звуки.             
                                                                
Существуют  так же 1-битовые оцифровки, которые можно получать с
помощью  программ:  Instrument  Editor  1.01 и Instrument Editor
2.01.  Звук  записывается в память с порта магнитофона по одному
биту.  Качество  ощутимо  хуже,  чем  при проигрывании 8-битовых
оцифровок.                                                      
                                                                
Самое качественное звучание можно получить на бипере:           
                                                                
        LD      HL,начало инструмента                           
        LD      DE,длина инструмента                            
                                                                
L1                                                              
        LD      А,(HL)                                          
        LD      С,%00010000 ; маска                             
                                                                
        LD      В,задержка                                      
        DJNZ    $                                               
                                                                
        RLA                                                     
        LD      В,А                                             
        SBC     А,А                                             
        AND     С                                               
        0UT     (#FE),А                                         
                                                                
        LD      А,В     ┐                                       
        RLA             │                                       
        LD      В,А     │  повторть 7 раз                       
        SBC     А,А     │                                       
        AND     С       │                                       
        0UT     (#FE),А ┘                                       
                                                                
        INC     HL                                              
        DEC     DE                                              
        LD      А,D                                             
        0R      E                                               
        JP      NZ,L1                                           
                                                                
                                                                
PROFI C0V0Х :                                                   
                                                                
        LD      А,#80   ; инсталляция KP58OBB55A                
        0UT     (127),А                                         
                                                                
        LD      HL,начало инструмента                           
        LD      DE,длина инструмента                            
                                                                
L1                                                              
        LD      А,(HL)                                          
                                                                
        LD      В,задержка                                      
        DJNZ    $                                               
                                                                
        RLA                                                     
        LD      В,А                                             
        SBC     А,А                                             
        0UT     (#3F),А ; #5F - другой канал                    
                                                                
        LD      А,В     ┐                                       
        RLA             │                                       
        LD      В,А     │  повторть 7 раз                       
        SBC     А,А     │                                       
        0UT     (#3F),А ┘                                       
                                                                
        INC     HL                                              
        DEC     DE                                              
        LD      А,D                                             
        0R      E                                               
        JP      NZ,L1                                           
                                                                
АУ-3-8910/12 :                                                  
                                                                
        LD      ВС,#FFFD ; инсталляция АУ-3-8910/12             
        LD      А,7                                             
        0UT     (С),А                                           
        LD      ВС,#BFFD                                        
        LD      А,#FF    ; вывод звука и шума                   
        0UT     (С),А                                           
        LD      ВС,#FFFD                                        
        LD      А,8      ; каналЫ : 8 - А, 9 - В, 10 - С        
        0UT     (С),А                                           
                                                                
        LD      HL,начало инструмента                           
        LD      DE,длина инструмента                            
        LD      ВС,#BFFD                                        
                                                                
L1      PUSH    DE                                              
        LD      А,(HL)                                          
        LD      D,%00001111 ; маска                             
                                                                
        EXX                                                     
        LD      В,задержка                                      
        DJNZ    $                                               
        EXX                                                     
                                                                
        RLA                                                     
        LD      E,А                                             
        SBC     А,А                                             
        AND     D                                               
        0UT     (#FE),А                                         
                                                                
        0UT     (#FE),А                                         
                                                                
        LD      А,E     ┐                                       
        RLA             │                                       
        LD      E,А     │  повторть 7 раз                       
        SBC     А,А     │                                       
        AND     D       │                                       
        0UT     (#FE),А ┘                                       
                                                                
        POP     DE                                              
                                                                
        INC     HL                                              
        DEC     DE                                              
        LD      А,D                                             
        0R      E                                               
        JP      NZ,L1                                           
                                                                
                                                                
────────────────────────────────────────────────────────────────
                     (С) RAINB0W S0FTWARE                       
────────────────────────────────────────────────────────────────
                                                                



Other articles:


Темы: Игры, Программное обеспечение, Пресса, Аппаратное обеспечение, Сеть, Демосцена, Люди, Программирование

Similar articles:
Contest - Results of the contest artists.

В этот день...   3 May