;--------------------------------------------------------------------
 
; Описание: Модуль отображения анализатора
 
; Автор порта: Тарасов М.Н.(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,5044h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,13
 
                ld      hl,5144h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,11
 
                ld      hl,5244h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,10
 
                ld      hl,5344h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,8
 
                ld      hl,5444h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,7
 
                ld      hl,5544h
 
                call    Analyzer_draw_left
 
                                                        
 
                ld      c,6
 
                ld      hl,5644h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,5
 
                ld      hl,5744h
 
                call    Analyzer_draw_left
 
                                                        
 
                ld      c,4
 
                ld      hl,5064h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,3
 
                ld      hl,5164h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,2
 
                ld      hl,5264h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,1
 
                ld      hl,5364h
 
                call    Analyzer_draw_left
 
 
 
                ld      c,15
 
                ld      hl,5059h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,13
 
                ld      hl,5159h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,11
 
                ld      hl,5259h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,10
 
                ld      hl,5359h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,8
 
                ld      hl,5459h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,7
 
                ld      hl,5559h
 
                call    Analyzer_draw_right
 
                                                        
 
                ld      c,6
 
                ld      hl,5659h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,5
 
                ld      hl,5759h
 
                call    Analyzer_draw_right
 
                                                        
 
                ld      c,4
 
                ld      hl,5079h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,3
 
                ld      hl,5179h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,2
 
                ld      hl,5279h
 
                call    Analyzer_draw_right
 
 
 
                ld      c,1
 
                ld      hl,5379h
 
                call    Analyzer_draw_right
 
 
 
                ret
 
;-------------------------------------------------------------------
 
; описание: Отрисовка правого канала анализатора
 
; параметры: HL - адрес экрана
 
;            C - позиция в индикаторе
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_draw_right:
 
                ld      b,3
 
                ld      de,Analyzer_ch0_right
 
Analyzer_rloop:
 
                ld      (hl),0
 
                ld      a,(de)
 
                cp      c
 
                jr      c,Analyzer_rnext
 
                ld      (hl),70h
 
 
 
Analyzer_rnext:
 
                inc     de
 
                ld      a,(de)
 
                cp      c
 
                jr      c,Analyzer_rnext_1
 
                ld      a,07h
 
                or      (hl)
 
                ld      (hl),a
 
 
 
Analyzer_rnext_1:
 
                inc     l
 
                inc     de
 
                djnz    Analyzer_rloop
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Отрисовка левого канала анализатора
 
; параметры: HL - адрес экрана
 
;            C - позиция в индикаторе
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_draw_left:
 
                ld      b,3
 
                ld      de,Analyzer_ch0_left
 
Analyzer_lloop:
 
                ld      (hl),0
 
                ld      a,(de)
 
                cp      c
 
                jr      c,Analyzer_lnext
 
                ld      (hl),0E0h
 
 
 
Analyzer_lnext:
 
                inc     de
 
                ld      a,(de)
 
                cp      c
 
                jr      c,Analyzer_lnext_1
 
                ld      a,0Eh
 
                or      (hl)
 
                ld      (hl),a
 
 
 
Analyzer_lnext_1:
 
                inc     l
 
                inc     de
 
                djnz    Analyzer_lloop
 
                ret     
 
;-------------------------------------------------------------------
 
; описание: Отрисовка левого канала анализатора
 
; параметры: HL - адрес экрана
 
;            C - позиция в индикаторе
 
; возвращаемое  значение: нет
 
;---------------------------------------------------------------------
 
Analyzer_draw_flash:
 
                ld      a,(Analyzer_ch0_left)
 
                ld      e,a
 
                ld      a,(Analyzer_ch0_right)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch1_left)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch1_right)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch2_left)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch2_right)
 
                add     e
 
                and     0Fh
 
                ld      hl,Analyzer_table
 
                ld      e,a
 
                ld      d,0
 
                add     hl,de
 
                ld      a,(hl)
 
                ld      hl,5A9Ah
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
                ld      l,0BAh
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
 
 
                ld      a,(Analyzer_ch3_left)
 
                ld      e,a
 
                ld      a,(Analyzer_ch3_right)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch4_left)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch4_right)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch5_left)
 
                add     e
 
                ld      e,a
 
                ld      a,(Analyzer_ch5_right)
 
                add     e
 
                and     0Fh
 
                ld      hl,Analyzer_table
 
                ld      e,a
 
                ld      d,0
 
                add     hl,de
 
                ld      a,(hl)
 
                ld      hl,5A84h
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
                ld      l,0A4h
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
                inc     l
 
                ld      (hl),a
 
                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      78h,78h,78h,78h,7Dh,7Dh,7Dh,7Ch,7Ch,7Ch,7Bh,7Bh,7Ah,7Ah,79h,79h 
 
;-------------------------------------------------------------------
 
; описание:  Переменные правого и левого каналов анализатора
 
;---------------------------------------------------------------------
 
Analyzer_ch0_left:
 
                db      0       
 
Analyzer_ch1_left:
 
                db      0       
 
Analyzer_ch2_left:
 
                db      0       
 
Analyzer_ch3_left:
 
                db      0       
 
Analyzer_ch4_left:
 
                db      0       
 
Analyzer_ch5_left:
 
                db      0       
 
Analyzer_ch0_right:
 
                db      0       
 
Analyzer_ch1_right:
 
                db      0       
 
Analyzer_ch2_right:
 
                db      0       
 
Analyzer_ch3_right:
 
                db      0       
 
Analyzer_ch4_right:
 
                db      0       
 
Analyzer_ch5_right:
 
                db      0       
 
;               .end