;--------------------------------------------------------------------
; Описание: Модуль отображения анализатора
; Автор порта: Тарасов М.Н.(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,504Dh
call Analyzer_draw
ld c,13
ld hl,514Dh
call Analyzer_draw
ld c,11
ld hl,524Dh
call Analyzer_draw
ld c,10
ld hl,534Dh
call Analyzer_draw
ld c,8
ld hl,544Dh
call Analyzer_draw
ld c,7
ld hl,554Dh
call Analyzer_draw
ld c,6
ld hl,564Dh
call Analyzer_draw
ld c,5
ld hl,574Dh
call Analyzer_draw
ld c,4
ld hl,506Dh
call Analyzer_draw
ld c,3
ld hl,516Dh
call Analyzer_draw
ld c,2
ld hl,526Dh
call Analyzer_draw
ld c,1
ld hl,536Dh
call Analyzer_draw
ret
;-------------------------------------------------------------------
; описание: Отрисовка левого канала анализатора
; параметры: HL - адрес экрана
; C - позиция в индикаторе
; возвращаемое значение: нет
;---------------------------------------------------------------------
Analyzer_draw:
ld b,6
ld de,Analyzer_ch0_left
Analyzer_loop:
ld (hl),0
ld a,(de)
cp c
jr c,Analyzer_next
ld (hl),0E0h
Analyzer_next:
inc de
ld a,(de)
cp c
jr c,Analyzer_next_1
ld a,0Eh
or (hl)
ld (hl),a
Analyzer_next_1:
inc l
inc de
djnz Analyzer_loop
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,5A8Dh
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ld l,0ADh
ld (hl),a
inc l
ld (hl),a
inc l
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,5A91h
ld (hl),a
inc l
ld (hl),a
ld l,0B1h
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_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