Subversion Repositories tsfmpro

Rev

Rev 544 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

  1. ;--------------------------------------------------------------------
  2. ; Описание: Модуль отображения анализатора
  3. ; Автор порта: Тарасов М.Н.(Mick),2010
  4. ;--------------------------------------------------------------------
  5.  
  6. ;-------------------------------------------------------------------
  7. ; описание: Обновление параметров анализатора
  8. ; параметры: нет
  9. ; возвращаемое  значение: нет
  10. ;---------------------------------------------------------------------
  11. Analyzer_update:
  12.                 ld      hl,EAmplitude_ch0
  13.  
  14.                 ld      a,(hl)                          ;+00h - Amplitude 0 right/left
  15.                 and     0Fh
  16.                 ld      (Analyzer_ch0_left),a           ;Amplitude 0 left
  17.                 ld      a,(hl)                          ;+00h - Amplitude 0 right/left                         
  18.                 and     0F0h
  19.                 rrca   
  20.                 rrca   
  21.                 rrca
  22.                 rrca   
  23.                 ld      (Analyzer_ch0_right),a          ;Amplitude 0 right
  24.  
  25.                 inc     hl
  26.                 ld      a,(hl)                          ;+01h - Amplitude 1 right/left
  27.                 and     0Fh
  28.                 ld      (Analyzer_ch1_left),a           ;Amplitude 1 left
  29.                 ld      a, (hl)                         ;+01h - Amplitude 1 right/left
  30.                 and     0F0h
  31.                 rrca   
  32.                 rrca   
  33.                 rrca   
  34.                 rrca   
  35.                 ld      (Analyzer_ch1_right),a          ;Amplitude 1 right
  36.  
  37.                 inc     hl
  38.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  39.                 and     0Fh
  40.                 ld      (Analyzer_ch2_left),a           ;Amplitude 2 left
  41.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  42.                 and     0F0h
  43.                 rrca   
  44.                 rrca   
  45.                 rrca   
  46.                 rrca   
  47.                 ld      (Analyzer_ch2_right),a          ;Amplitude 2 right
  48.  
  49.                 inc     hl
  50.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  51.                 and     0Fh
  52.                 ld      (Analyzer_ch3_left),a           ;Amplitude 3 left
  53.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  54.                 and     0F0h
  55.                 rrca   
  56.                 rrca   
  57.                 rrca   
  58.                 rrca   
  59.                 ld      (Analyzer_ch3_right),a          ;Amplitude 3 right
  60.  
  61.                 ret
  62.  
  63. ;-------------------------------------------------------------------
  64. ; описание: Отображение анализатора
  65. ; параметры: нет
  66. ; возвращаемое  значение: нет
  67. ;---------------------------------------------------------------------
  68. Analyzer_view:
  69.                 ld      a,(Analyzer_ch0_left)
  70.                 ld      hl,5243h
  71.                 ld      de,5343h
  72.                 call    Analyzer_draw
  73.  
  74.                 ld      a,(Analyzer_ch0_right)
  75.                 ld      hl,5543h
  76.                 ld      de,5643h
  77.                 call    Analyzer_draw
  78.  
  79.                 ld      a,(Analyzer_ch1_left)
  80.                 ld      hl,5163h
  81.                 ld      de,5263h
  82.                 call    Analyzer_draw
  83.  
  84.                 ld      a,(Analyzer_ch1_right)
  85.                 ld      hl,5463h
  86.                 ld      de,5563h
  87.                 call    Analyzer_draw
  88.                                                        
  89.                 ld      a,(Analyzer_ch2_left)
  90.                 ld      hl,5183h
  91.                 ld      de,5283h
  92.                 call    Analyzer_draw
  93.  
  94.                 ld      a,(Analyzer_ch2_right)
  95.                 ld      hl,5483h
  96.                 ld      de,5583h
  97.                 call    Analyzer_draw
  98.  
  99.                 ld      a,(Analyzer_ch3_left)
  100.                 ld      hl,50A3h
  101.                 ld      de,51A3h
  102.                 call    Analyzer_draw
  103.  
  104.                 ld      a,(Analyzer_ch3_right)
  105.                 ld      hl,53A3h
  106.                 ld      de,54A3h
  107.                 call    Analyzer_draw
  108.  
  109.                 ld      a,(Analyzer_ch0_left)
  110.                 ld      e,a
  111.                 ld      a,(Analyzer_ch0_right)
  112.                 add     e
  113.                 ld      e,a
  114.                 ld      a,(Analyzer_ch1_left)
  115.                 add     e
  116.                 ld      e,a
  117.                 ld      a,(Analyzer_ch1_right)
  118.                 add     e
  119.                 ld      e,a
  120.                 ld      a,(Analyzer_ch2_left)
  121.                 add     e
  122.                 ld      e,a
  123.                 ld      a,(Analyzer_ch2_right)
  124.                 add     e
  125.                 and     0Fh
  126.                 ld      hl,Analyzer_table
  127.                 ld      e,a
  128.                 ld      d,0
  129.                 add     hl,de
  130.                 ld      a,(hl)
  131.                 ld      hl,5926h
  132.                 ld      (hl),a
  133.                 inc     l
  134.                 ld      (hl),a
  135.                 inc     l
  136.                 ld      (hl),a
  137.                 ld      hl,5946h
  138.                 ld      (hl),a
  139.                 inc     l
  140.                 ld      (hl),a
  141.                 inc     l
  142.                 ld      (hl),a
  143.                 ld      hl,5966h
  144.                 ld      (hl),a
  145.                 inc     l
  146.                 ld      (hl),a
  147.                 inc     l
  148.                 ld      (hl),a
  149.                 ld      hl,5986h
  150.                 ld      (hl),a
  151.                 inc     l
  152.                 ld      (hl),a
  153.                 inc     l
  154.                 ld      (hl),a
  155.                 ld      hl,59A6h
  156.                 ld      (hl),a
  157.                 inc     l
  158.                 ld      (hl),a
  159.                 inc     l
  160.                 ld      (hl),a
  161.                 ret
  162. ;-------------------------------------------------------------------
  163. ; описание: Отрисовка левого канала анализатора
  164. ; параметры: HL - адрес экрана
  165. ;            C - позиция в индикаторе
  166. ; возвращаемое  значение: нет
  167. ;---------------------------------------------------------------------
  168. Analyzer_draw:
  169.                 ld      c,a
  170.                 ld      b,a
  171.                 and     a
  172.                 jr      z,Analyzer_clear
  173.                 ld      a,0FEh
  174. Analyzer_loop:
  175.                 ld      (hl),a
  176.                 ld      (de),a
  177.                 inc     l
  178.                 inc     e
  179.                 djnz    Analyzer_loop
  180.  
  181. Analyzer_clear:
  182.                 ld      b,c
  183.                 ld      a,15
  184.                 sub     b
  185.                 ret     z
  186.                 ld      b,a
  187.                 ld      a,0
  188.  
  189. Analyzer_clear_loop:
  190.                 ld      (hl),a
  191.                 ld      (de),a
  192.                 inc     l
  193.                 inc     e
  194.                 djnz    Analyzer_clear_loop
  195.                 ret    
  196. ;-------------------------------------------------------------------
  197. ; описание: Обновление параметров анализатора
  198. ; параметры: нет
  199. ; возвращаемое  значение: нет
  200. ;---------------------------------------------------------------------
  201. Analyzer_init:
  202.                 ld      b, 8
  203.                 ld      hl,Analyzer_ch0_left
  204.  
  205. Analyzer_init_loop:
  206.                 ld      (hl),0
  207.                 inc     hl
  208.                 djnz    Analyzer_init_loop
  209.                 ret
  210.  
  211. ;-------------------------------------------------------------------
  212. ; описание:  Переменные правого и левого каналов анализатора
  213. ;---------------------------------------------------------------------
  214. Analyzer_table:
  215.                 db      47h,47h,47h,47h,46h,46h,45h,45h,44h,44h,43h,43h,42h,42h,41h,41h
  216. ;-------------------------------------------------------------------
  217. ; описание:  Переменные правого и левого каналов анализатора
  218. ;---------------------------------------------------------------------
  219. Analyzer_ch0_left:
  220.                 db      0      
  221. Analyzer_ch0_right:
  222.                 db      0      
  223. Analyzer_ch1_left:
  224.                 db      0      
  225. Analyzer_ch1_right:
  226.                 db      0      
  227. Analyzer_ch2_left:
  228.                 db      0      
  229. Analyzer_ch2_right:
  230.                 db      0      
  231. Analyzer_ch3_left:
  232.                 db      0      
  233. Analyzer_ch3_right:
  234.                 db      0      
  235. ;               .end