;--------------------------------------------------------------------
 
; Описание: Модуль отображения анализатора
 
; Автор порта: Тарасов М.Н.(Mick),2010
 
;--------------------------------------------------------------------
 
 
 
;-------------------------------------------------------------------
 
; описание: Обновление параметров анализатора
 
; параметры: нет
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_update:
 
                ld      hl,EAmplitude_ch0
 
 
 
                ld      a,(hl)                          ;+00h - Amplitude 0 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch0_left),a           ;Amplitude 0 left 
 
                ld      a,(hl)                          ;+00h - Amplitude 0 right/left                          
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca
 
                rrca    
 
                ld      (Analyzer_ch0_right),a          ;Amplitude 0 right 
 
 
 
                inc     hl
 
                ld      a,(hl)                          ;+01h - Amplitude 1 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch1_left),a           ;Amplitude 1 left 
 
                ld      a, (hl)                         ;+01h - Amplitude 1 right/left
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca    
 
                rrca    
 
                ld      (Analyzer_ch1_right),a          ;Amplitude 1 right 
 
 
 
                inc     hl
 
                ld      a,(hl)                          ;+02h - Amplitude 2 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch2_left),a           ;Amplitude 2 left 
 
                ld      a,(hl)                          ;+02h - Amplitude 2 right/left
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca    
 
                rrca    
 
                ld      (Analyzer_ch2_right),a          ;Amplitude 2 right 
 
 
 
                inc     hl
 
                ld      a, (hl)                         ;+03h - Amplitude 3 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch3_left),a           ;Amplitude 3 left 
 
                ld      a, (hl)                         ;+03h - Amplitude 3 right/left
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca    
 
                rrca    
 
                ld      (Analyzer_ch3_right),a          ;Amplitude 3 right 
 
 
 
                inc     hl
 
                ld      a, (hl)                         ;+04h - Amplitude 4 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch4_left),a           ;Amplitude 4 left 
 
                ld      a, (hl)
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca    
 
                rrca    
 
                ld      (Analyzer_ch4_right),a          ;Amplitude 4 right 
 
 
 
                inc     hl
 
                ld      a, (hl)                         ;+05h - Amplitude 5 right/left
 
                and     0Fh
 
                ld      (Analyzer_ch5_left),a           ;Amplitude 5 left 
 
                ld      a, (hl)
 
                and     0F0h
 
                rrca    
 
                rrca    
 
                rrca    
 
                rrca    
 
                ld      (Analyzer_ch5_right),a          ;Amplitude 5 right 
 
                ret
 
 
 
;-------------------------------------------------------------------
 
; описание: Отображение анализатора
 
; параметры: нет
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_view:
 
                ld      c,15
 
                ld      hl,58E1h
 
                call    Analyzer_draw
 
 
 
                ld      c,13
 
                ld      hl,5901h
 
                call    Analyzer_draw
 
 
 
                ld      c,11
 
                ld      hl,5921h
 
                call    Analyzer_draw
 
 
 
                ld      c,9
 
                ld      hl,5941h
 
                call    Analyzer_draw
 
                                                        
 
                ld      c,7
 
                ld      hl,5961h
 
                call    Analyzer_draw
 
 
 
                ld      c,6
 
                ld      hl,5981h
 
                call    Analyzer_draw
 
                                                        
 
                ld      c,5
 
                ld      hl,59A1h
 
                call    Analyzer_draw
 
 
 
                ld      c,4
 
                ld      hl,59C1h
 
                call    Analyzer_draw
 
 
 
                ld      c,3
 
                ld      hl,59E1h
 
                call    Analyzer_draw
 
 
 
                ld      c,2
 
                ld      hl,5A01h
 
                call    Analyzer_draw
 
 
 
                ld      c,1
 
                ld      hl,5A21h
 
                call    Analyzer_draw
 
 
 
                ret
 
;-------------------------------------------------------------------
 
; описание: Отрисовка левого канала анализатора
 
; параметры: HL - адрес экрана
 
;            C - позиция в индикаторе
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_draw:
 
                ld      b,12
 
                ld      de,Analyzer_ch0_left
 
Analyzer_loop:
 
                ld      (hl),0
 
                inc     l
 
                ld      (hl),0
 
                ld      a,(de)
 
                cp      c
 
                jr      c,Analyzer_skip
 
                ld      a,12
 
                sub     b
 
                push    hl
 
                push    de
 
                ld      d,0
 
                ld      e,a
 
                ld      hl,Analyzer_table
 
                add     hl,de
 
                ld      a,(hl)
 
                pop     de
 
                pop     hl
 
                ld      (hl),a
 
                dec     l
 
                ld      (hl),a
 
                inc     l
 
Analyzer_skip:
 
                inc     l
 
                inc     de
 
                djnz    Analyzer_loop
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Отрисовка левого канала анализатора
 
; параметры: HL - адрес экрана
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_fill:
 
                ld      b,12
 
                ld      a,0Fh
 
Analyzer_fill_loop:
 
                ld      (hl),a
 
                inc     l
 
                djnz    Analyzer_fill_loop
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Обновление параметров анализатора
 
; параметры: нет
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_init:
 
                ld      b, 12
 
                ld      hl,Analyzer_ch0_left
 
 
 
Analyzer_init_loop:
 
                ld      (hl),0
 
                inc     hl
 
                djnz    Analyzer_init_loop
 
                ret
 
 
 
;-------------------------------------------------------------------
 
; описание:  Переменные правого и левого каналов анализатора
 
;---------------------------------------------------------------------
 
Analyzer_table:
 
                db      01,41h,02,42h,03,43h,04,44h,05,45h,06,46h       
 
;-------------------------------------------------------------------
 
; описание:  Переменные правого и левого каналов анализатора
 
;---------------------------------------------------------------------
 
Analyzer_ch0_left:
 
                db      0       
 
Analyzer_ch0_right:
 
                db      0       
 
Analyzer_ch1_left:
 
                db      0       
 
Analyzer_ch1_right:
 
                db      0       
 
Analyzer_ch2_left:
 
                db      0       
 
Analyzer_ch2_right:
 
                db      0       
 
Analyzer_ch3_left:
 
                db      0       
 
Analyzer_ch3_right:
 
                db      0       
 
Analyzer_ch4_left:
 
                db      0       
 
Analyzer_ch4_right:
 
                db      0       
 
Analyzer_ch5_left:
 
                db      0       
 
Analyzer_ch5_right:
 
                db      0       
 
;               .end