Subversion Repositories tsfmpro

Rev

Rev 546 | 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.                 inc     hl
  62.                 ld      a, (hl)                         ;+04h - Amplitude 4 right/left
  63.                 and     0Fh
  64.                 ld      (Analyzer_ch4_left),a           ;Amplitude 4 left
  65.                 ld      a, (hl)
  66.                 and     0F0h
  67.                 rrca   
  68.                 rrca   
  69.                 rrca   
  70.                 rrca   
  71.                 ld      (Analyzer_ch4_right),a          ;Amplitude 4 right
  72.  
  73.                 inc     hl
  74.                 ld      a, (hl)                         ;+05h - Amplitude 5 right/left
  75.                 and     0Fh
  76.                 ld      (Analyzer_ch5_left),a           ;Amplitude 5 left
  77.                 ld      a, (hl)
  78.                 and     0F0h
  79.                 rrca   
  80.                 rrca   
  81.                 rrca   
  82.                 rrca   
  83.                 ld      (Analyzer_ch5_right),a          ;Amplitude 5 right
  84.                 ret
  85.  
  86. ;-------------------------------------------------------------------
  87. ; описание: Отображение анализатора
  88. ; параметры: нет
  89. ; возвращаемое  значение: нет
  90. ;---------------------------------------------------------------------
  91. Analyzer_view:
  92.                 ld      c,15
  93.                 ld      hl,5044h
  94.                 call    Analyzer_draw_left
  95.  
  96.                 ld      c,13
  97.                 ld      hl,5144h
  98.                 call    Analyzer_draw_left
  99.  
  100.                 ld      c,11
  101.                 ld      hl,5244h
  102.                 call    Analyzer_draw_left
  103.  
  104.                 ld      c,10
  105.                 ld      hl,5344h
  106.                 call    Analyzer_draw_left
  107.  
  108.                 ld      c,8
  109.                 ld      hl,5444h
  110.                 call    Analyzer_draw_left
  111.  
  112.                 ld      c,7
  113.                 ld      hl,5544h
  114.                 call    Analyzer_draw_left
  115.                                                        
  116.                 ld      c,6
  117.                 ld      hl,5644h
  118.                 call    Analyzer_draw_left
  119.  
  120.                 ld      c,5
  121.                 ld      hl,5744h
  122.                 call    Analyzer_draw_left
  123.                                                        
  124.                 ld      c,4
  125.                 ld      hl,5064h
  126.                 call    Analyzer_draw_left
  127.  
  128.                 ld      c,3
  129.                 ld      hl,5164h
  130.                 call    Analyzer_draw_left
  131.  
  132.                 ld      c,2
  133.                 ld      hl,5264h
  134.                 call    Analyzer_draw_left
  135.  
  136.                 ld      c,1
  137.                 ld      hl,5364h
  138.                 call    Analyzer_draw_left
  139.  
  140.                 ld      c,15
  141.                 ld      hl,5059h
  142.                 call    Analyzer_draw_right
  143.  
  144.                 ld      c,13
  145.                 ld      hl,5159h
  146.                 call    Analyzer_draw_right
  147.  
  148.                 ld      c,11
  149.                 ld      hl,5259h
  150.                 call    Analyzer_draw_right
  151.  
  152.                 ld      c,10
  153.                 ld      hl,5359h
  154.                 call    Analyzer_draw_right
  155.  
  156.                 ld      c,8
  157.                 ld      hl,5459h
  158.                 call    Analyzer_draw_right
  159.  
  160.                 ld      c,7
  161.                 ld      hl,5559h
  162.                 call    Analyzer_draw_right
  163.                                                        
  164.                 ld      c,6
  165.                 ld      hl,5659h
  166.                 call    Analyzer_draw_right
  167.  
  168.                 ld      c,5
  169.                 ld      hl,5759h
  170.                 call    Analyzer_draw_right
  171.                                                        
  172.                 ld      c,4
  173.                 ld      hl,5079h
  174.                 call    Analyzer_draw_right
  175.  
  176.                 ld      c,3
  177.                 ld      hl,5179h
  178.                 call    Analyzer_draw_right
  179.  
  180.                 ld      c,2
  181.                 ld      hl,5279h
  182.                 call    Analyzer_draw_right
  183.  
  184.                 ld      c,1
  185.                 ld      hl,5379h
  186.                 call    Analyzer_draw_right
  187.  
  188.                 ret
  189. ;-------------------------------------------------------------------
  190. ; описание: Отрисовка правого канала анализатора
  191. ; параметры: HL - адрес экрана
  192. ;            C - позиция в индикаторе
  193. ; возвращаемое  значение: нет
  194. ;---------------------------------------------------------------------
  195. Analyzer_draw_right:
  196.                 ld      b,3
  197.                 ld      de,Analyzer_ch0_right
  198. Analyzer_rloop:
  199.                 ld      (hl),0
  200.                 ld      a,(de)
  201.                 cp      c
  202.                 jr      c,Analyzer_rnext
  203.                 ld      (hl),70h
  204.  
  205. Analyzer_rnext:
  206.                 inc     de
  207.                 ld      a,(de)
  208.                 cp      c
  209.                 jr      c,Analyzer_rnext_1
  210.                 ld      a,07h
  211.                 or      (hl)
  212.                 ld      (hl),a
  213.  
  214. Analyzer_rnext_1:
  215.                 inc     l
  216.                 inc     de
  217.                 djnz    Analyzer_rloop
  218.                 ret    
  219. ;-------------------------------------------------------------------
  220. ; описание: Отрисовка левого канала анализатора
  221. ; параметры: HL - адрес экрана
  222. ;            C - позиция в индикаторе
  223. ; возвращаемое  значение: нет
  224. ;---------------------------------------------------------------------
  225. Analyzer_draw_left:
  226.                 ld      b,3
  227.                 ld      de,Analyzer_ch0_left
  228. Analyzer_lloop:
  229.                 ld      (hl),0
  230.                 ld      a,(de)
  231.                 cp      c
  232.                 jr      c,Analyzer_lnext
  233.                 ld      (hl),0E0h
  234.  
  235. Analyzer_lnext:
  236.                 inc     de
  237.                 ld      a,(de)
  238.                 cp      c
  239.                 jr      c,Analyzer_lnext_1
  240.                 ld      a,0Eh
  241.                 or      (hl)
  242.                 ld      (hl),a
  243.  
  244. Analyzer_lnext_1:
  245.                 inc     l
  246.                 inc     de
  247.                 djnz    Analyzer_lloop
  248.                 ret    
  249. ;-------------------------------------------------------------------
  250. ; описание: Отрисовка левого канала анализатора
  251. ; параметры: HL - адрес экрана
  252. ;            C - позиция в индикаторе
  253. ; возвращаемое  значение: нет
  254. ;---------------------------------------------------------------------
  255. Analyzer_draw_flash:
  256.                 ld      a,(Analyzer_ch0_left)
  257.                 ld      e,a
  258.                 ld      a,(Analyzer_ch0_right)
  259.                 add     e
  260.                 ld      e,a
  261.                 ld      a,(Analyzer_ch1_left)
  262.                 add     e
  263.                 ld      e,a
  264.                 ld      a,(Analyzer_ch1_right)
  265.                 add     e
  266.                 ld      e,a
  267.                 ld      a,(Analyzer_ch2_left)
  268.                 add     e
  269.                 ld      e,a
  270.                 ld      a,(Analyzer_ch2_right)
  271.                 add     e
  272.                 and     0Fh
  273.                 ld      hl,Analyzer_table
  274.                 ld      e,a
  275.                 ld      d,0
  276.                 add     hl,de
  277.                 ld      a,(hl)
  278.                 ld      hl,5A9Ah
  279.                 ld      (hl),a
  280.                 inc     l
  281.                 ld      (hl),a
  282.                 ld      l,0BAh
  283.                 ld      (hl),a
  284.                 inc     l
  285.                 ld      (hl),a
  286.  
  287.                 ld      a,(Analyzer_ch3_left)
  288.                 ld      e,a
  289.                 ld      a,(Analyzer_ch3_right)
  290.                 add     e
  291.                 ld      e,a
  292.                 ld      a,(Analyzer_ch4_left)
  293.                 add     e
  294.                 ld      e,a
  295.                 ld      a,(Analyzer_ch4_right)
  296.                 add     e
  297.                 ld      e,a
  298.                 ld      a,(Analyzer_ch5_left)
  299.                 add     e
  300.                 ld      e,a
  301.                 ld      a,(Analyzer_ch5_right)
  302.                 add     e
  303.                 and     0Fh
  304.                 ld      hl,Analyzer_table
  305.                 ld      e,a
  306.                 ld      d,0
  307.                 add     hl,de
  308.                 ld      a,(hl)
  309.                 ld      hl,5A84h
  310.                 ld      (hl),a
  311.                 inc     l
  312.                 ld      (hl),a
  313.                 inc     l
  314.                 ld      (hl),a
  315.                 ld      l,0A4h
  316.                 ld      (hl),a
  317.                 inc     l
  318.                 ld      (hl),a
  319.                 inc     l
  320.                 ld      (hl),a
  321.                 ret
  322.  
  323. ;-------------------------------------------------------------------
  324. ; описание: Обновление параметров анализатора
  325. ; параметры: нет
  326. ; возвращаемое  значение: нет
  327. ;---------------------------------------------------------------------
  328. Analyzer_init:
  329.                 ld      b, 12
  330.                 ld      hl,Analyzer_ch0_left
  331.  
  332. Analyzer_init_loop:
  333.                 ld      (hl),0
  334.                 inc     hl
  335.                 djnz    Analyzer_init_loop
  336.                 ret
  337. ;-------------------------------------------------------------------
  338. ; описание:  Переменные правого и левого каналов анализатора
  339. ;---------------------------------------------------------------------
  340. Analyzer_table:
  341.                 db      78h,78h,78h,78h,7Dh,7Dh,7Dh,7Ch,7Ch,7Ch,7Bh,7Bh,7Ah,7Ah,79h,79h
  342. ;-------------------------------------------------------------------
  343. ; описание:  Переменные правого и левого каналов анализатора
  344. ;---------------------------------------------------------------------
  345. Analyzer_ch0_left:
  346.                 db      0      
  347. Analyzer_ch1_left:
  348.                 db      0      
  349. Analyzer_ch2_left:
  350.                 db      0      
  351. Analyzer_ch3_left:
  352.                 db      0      
  353. Analyzer_ch4_left:
  354.                 db      0      
  355. Analyzer_ch5_left:
  356.                 db      0      
  357. Analyzer_ch0_right:
  358.                 db      0      
  359. Analyzer_ch1_right:
  360.                 db      0      
  361. Analyzer_ch2_right:
  362.                 db      0      
  363. Analyzer_ch3_right:
  364.                 db      0      
  365. Analyzer_ch4_right:
  366.                 db      0      
  367. Analyzer_ch5_right:
  368.                 db      0      
  369. ;               .end