;--------------------------------------------------------------------
; Описание: Модуль отображения анализатора
; Автор порта: Тарасов М.Н.(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
ret
;-------------------------------------------------------------------
; описание: Отображение анализатора
; параметры: нет
; возвращаемое значение: нет
;---------------------------------------------------------------------
Analyzer_view:
ld a,(Analyzer_ch0_left)
ld hl,5243h
ld de,5343h
call Analyzer_draw
ld a,(Analyzer_ch0_right)
ld hl,5543h
ld de,5643h
call Analyzer_draw
ld a,(Analyzer_ch1_left)
ld hl,5163h
ld de,5263h
call Analyzer_draw
ld a,(Analyzer_ch1_right)
ld hl,5463h
ld de,5563h
call Analyzer_draw
ld a,(Analyzer_ch2_left)
ld hl,5183h
ld de,5283h
call Analyzer_draw
ld a,(Analyzer_ch2_right)
ld hl,5483h
ld de,5583h
call Analyzer_draw
ld a,(Analyzer_ch3_left)
ld hl,50A3h
ld de,51A3h
call Analyzer_draw
ld a,(Analyzer_ch3_right)
ld hl,53A3h
ld de,54A3h
call Analyzer_draw
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,5926h
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ld hl,5946h
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ld hl,5966h
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ld hl,5986h
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ld hl,59A6h
ld (hl),a
inc l
ld (hl),a
inc l
ld (hl),a
ret
;-------------------------------------------------------------------
; описание: Отрисовка левого канала анализатора
; параметры: HL - адрес экрана
; C - позиция в индикаторе
; возвращаемое значение: нет
;---------------------------------------------------------------------
Analyzer_draw:
ld c,a
ld b,a
and a
jr z,Analyzer_clear
ld a,0FEh
Analyzer_loop:
ld (hl),a
ld (de),a
inc l
inc e
djnz Analyzer_loop
Analyzer_clear:
ld b,c
ld a,15
sub b
ret z
ld b,a
ld a,0
Analyzer_clear_loop:
ld (hl),a
ld (de),a
inc l
inc e
djnz Analyzer_clear_loop
ret
;-------------------------------------------------------------------
; описание: Обновление параметров анализатора
; параметры: нет
; возвращаемое значение: нет
;---------------------------------------------------------------------
Analyzer_init:
ld b, 8
ld hl,Analyzer_ch0_left
Analyzer_init_loop:
ld (hl),0
inc hl
djnz Analyzer_init_loop
ret
;-------------------------------------------------------------------
; описание: Переменные правого и левого каналов анализатора
;---------------------------------------------------------------------
Analyzer_table:
db 47h,47h,47h,47h,46h,46h,45h,45h,44h,44h,43h,43h,42h,42h,41h,41h
;-------------------------------------------------------------------
; описание: Переменные правого и левого каналов анализатора
;---------------------------------------------------------------------
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
; .end