Subversion Repositories tsfmpro

Rev

Rev 546 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

  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      c,a
  17.                 ld      a,(hl)                          ;+00h - Amplitude 0 right/left                         
  18.                 and     0F0h
  19.                 rrca   
  20.                 rrca   
  21.                 rrca
  22.                 rrca   
  23.                 cp      c
  24.                 jr      nc,Analyzer_up_ch0
  25.                 ld      a,c    
  26. Analyzer_up_ch0:
  27.                 ld      (Analyzer_ch0_vol),a            ;Amplitude 0
  28.  
  29.                 inc     hl
  30.                 ld      a,(hl)                          ;+01h - Amplitude 1 right/left
  31.                 and     0Fh
  32.                 ld      c,a
  33.                 ld      a, (hl)                         ;+01h - Amplitude 1 right/left
  34.                 and     0F0h
  35.                 rrca   
  36.                 rrca   
  37.                 rrca   
  38.                 rrca   
  39.                 cp      c
  40.                 jr      nc,Analyzer_up_ch1
  41.                 ld      a,c    
  42. Analyzer_up_ch1:
  43.                 ld      (Analyzer_ch1_vol),a            ;Amplitude 1
  44.  
  45.                 inc     hl
  46.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  47.                 and     0Fh
  48.                 ld      c,a
  49.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  50.                 and     0F0h
  51.                 rrca   
  52.                 rrca   
  53.                 rrca   
  54.                 rrca   
  55.                 cp      c
  56.                 jr      nc,Analyzer_up_ch2
  57.                 ld      a,c    
  58. Analyzer_up_ch2:
  59.                 ld      (Analyzer_ch2_vol),a            ;Amplitude 2  
  60.  
  61.                 inc     hl
  62.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  63.                 and     0Fh
  64.                 ld      c,a
  65.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  66.                 and     0F0h
  67.                 rrca   
  68.                 rrca   
  69.                 rrca   
  70.                 rrca   
  71.                 cp      c
  72.                 jr      nc,Analyzer_up_ch3
  73.                 ld      a,c    
  74. Analyzer_up_ch3:
  75.                 ld      (Analyzer_ch3_vol),a            ;Amplitude 3  
  76.  
  77.                 inc     hl
  78.                 ld      a, (hl)                         ;+04h - Amplitude 4 right/left
  79.                 and     0Fh
  80.                 ld      c,a
  81.                 ld      a, (hl)
  82.                 and     0F0h
  83.                 rrca   
  84.                 rrca   
  85.                 rrca   
  86.                 rrca   
  87.                 cp      c
  88.                 jr      nc,Analyzer_up_ch4
  89.                 ld      a,c    
  90. Analyzer_up_ch4:
  91.                 ld      (Analyzer_ch4_vol),a          ;Amplitude 4  
  92.  
  93.                 inc     hl
  94.                 ld      a, (hl)                         ;+05h - Amplitude 5 right/left
  95.                 and     0Fh
  96.                 ld      c,a
  97.                 ld      a, (hl)
  98.                 and     0F0h
  99.                 rrca   
  100.                 rrca   
  101.                 rrca   
  102.                 rrca   
  103.                 cp      c
  104.                 jr      nc,Analyzer_up_ch5
  105.                 ld      a,c    
  106. Analyzer_up_ch5:
  107.                 ld      (Analyzer_ch5_vol),a            ;Amplitude 5  
  108.                 ret
  109. ;-------------------------------------------------------------------
  110. ; описание: Отображение анализатора
  111. ; параметры: нет
  112. ; возвращаемое  значение: нет
  113. ;---------------------------------------------------------------------
  114. Analyzer_view:
  115.                 ld      a,(Analyzer_ch0_vol)
  116.                 ld      de,4042h
  117.                 call    Analyzer_draw
  118.  
  119.                 ld      a,(Analyzer_ch1_vol)
  120.                 ld      de,4042h + 17h
  121.                 call    Analyzer_draw
  122.  
  123.                 ld      a,(Analyzer_ch2_vol)
  124.                 ld      de,4842h
  125.                 call    Analyzer_draw
  126.  
  127.                 ld      a,(Analyzer_ch3_vol)
  128.                 ld      de,4842h + 17h
  129.                 call    Analyzer_draw
  130.  
  131.                 ld      a,(Analyzer_ch4_vol)
  132.                 ld      de,5042h
  133.                 call    Analyzer_draw
  134.  
  135.                 ld      a,(Analyzer_ch5_vol)
  136.                 ld      de,5042h + 17h
  137. ;-------------------------------------------------------------------
  138. ; описание: Отрисовка левого канала анализатора
  139. ; параметры: HL - адрес экрана
  140. ;            C - позиция в индикаторе
  141. ; возвращаемое  значение: нет
  142. ;---------------------------------------------------------------------
  143. Analyzer_draw:
  144.  
  145.                 ld      l,a
  146.                 ld      h,0
  147.                 add     hl,hl
  148.                 ld      bc,Animation_table_phase
  149.                 add     hl,bc
  150.                 ld      a,(hl)
  151.                 inc     hl
  152.                 ld      h,(hl)
  153.                 ld      l,a
  154.                 ex      de,hl
  155.  
  156.                 ld      b,16                            ;размерность по Y
  157. Analyzer_loop_Y:
  158.                 push    hl
  159.                 ex      hl,de
  160.                 ldi
  161.                 ldi
  162.                 ldi
  163.                 ldi
  164.                 ldi
  165.                 ex      hl,de
  166.                 pop     hl
  167.                 inc     h
  168.                 ld      a,h
  169.                 and     7
  170.                 jr      nz,Analyzer_next_line
  171.                 ld      a,l
  172.                 add     20h
  173.                 ld      l,a
  174.                 jr      c,Analyzer_next_line
  175.                 ld      a,h
  176.                 sub     8
  177.                 ld      h,a
  178. Analyzer_next_line:
  179.                 djnz    Analyzer_loop_Y
  180.                 ret        
  181. ;-------------------------------------------------------------------
  182. ; описание: Отрисовка левого канала анализатора
  183. ; параметры: HL - адрес экрана
  184. ;            C - позиция в индикаторе
  185. ; возвращаемое  значение: нет
  186. ;---------------------------------------------------------------------
  187. ;-------------------------------------------------------------------
  188. ; описание: Отрисовка левого канала анализатора
  189. ; параметры: HL - адрес экрана
  190. ;            C - позиция в индикаторе
  191. ; возвращаемое  значение: нет
  192. ;---------------------------------------------------------------------
  193. Analyzer_draw_flash:
  194.                 ld      a,(Analyzer_ch0_vol)
  195.                 ld      e,a
  196.                 ld      a,(Analyzer_ch3_vol)
  197.                 add     e
  198.                 and     0Fh
  199.                 ld      hl,Analyzer_table
  200.                 ld      e,a
  201.                 ld      d,0
  202.                 add     hl,de
  203.                 ld      a,(hl)
  204.                 ld      hl,580Eh
  205.                 ld      (hl),a
  206.                 inc     l
  207.                 ld      (hl),a
  208.  
  209.                 ld      a,(Analyzer_ch1_vol)
  210.                 ld      e,a
  211.                 ld      a,(Analyzer_ch4_vol)
  212.                 add     e
  213.                 and     0Fh
  214.                 ld      hl,Analyzer_table
  215.                 ld      e,a
  216.                 ld      d,0
  217.                 add     hl,de
  218.                 ld      a,(hl)
  219.                 ld      hl,5814h
  220.                 ld      (hl),a
  221.                 inc     l
  222.                 inc     l
  223.                 ld      (hl),a
  224.                 inc     l
  225.                 ld      (hl),a
  226.  
  227.                 ld      a,(Analyzer_ch2_vol)
  228.                 ld      e,a
  229.                 ld      a,(Analyzer_ch5_vol)
  230.                 add     e
  231.                 and     0Fh
  232.                 ld      hl,Analyzer_table
  233.                 ld      e,a
  234.                 ld      d,0
  235.                 add     hl,de
  236.                 ld      a,(hl)
  237.                 ld      hl,5ACAh
  238.                 ld      (hl),a
  239.                 inc     l
  240.                 ld      (hl),a
  241.                 inc     l
  242.                 ld      (hl),a
  243.                 inc     l
  244.                 ld      (hl),a
  245.                 inc     l
  246.                 ld      (hl),a
  247.                 inc     l
  248.                 ld      (hl),a
  249.                 inc     l
  250.                 ld      (hl),a
  251.                 inc     l
  252.                 ld      (hl),a
  253.                 inc     l
  254.                 ld      (hl),a
  255.                 inc     l
  256.                 ld      (hl),a
  257.                 inc     l
  258.                 ld      (hl),a
  259.                 inc     l
  260.                 ld      (hl),a
  261.                 ld      l,0EAh
  262.                 ld      (hl),a
  263.                 inc     l
  264.                 ld      (hl),a
  265.                 inc     l
  266.                 ld      (hl),a
  267.                 inc     l
  268.                 ld      (hl),a
  269.                 inc     l
  270.                 ld      (hl),a
  271.                 inc     l
  272.                 ld      (hl),a
  273.                 inc     l
  274.                 ld      (hl),a
  275.                 inc     l
  276.                 ld      (hl),a
  277.                 inc     l
  278.                 ld      (hl),a
  279.                 inc     l
  280.                 ld      (hl),a
  281.                 inc     l
  282.                 ld      (hl),a
  283.                 inc     l
  284.                 ld      (hl),a
  285.  
  286.                 ret
  287.  
  288. ;-------------------------------------------------------------------
  289. ; описание: Обновление параметров анализатора
  290. ; параметры: нет
  291. ; возвращаемое  значение: нет
  292. ;---------------------------------------------------------------------
  293. Analyzer_init:
  294.                 ld      b, 6
  295.                 ld      hl,Analyzer_ch0_vol
  296.  
  297. Analyzer_init_loop:
  298.                 ld      (hl),0
  299.                 inc     hl
  300.                 djnz    Analyzer_init_loop
  301.                 ret
  302. ;-------------------------------------------------------------------
  303. ; описание:  Переменные правого и левого каналов анализатора
  304. ;---------------------------------------------------------------------
  305. Analyzer_table:
  306.                 db      47h,47h,47h,47h,46h,46h,45h,45h,44h,44h,43h,43h,42h,42h,41h,41h
  307. ;-------------------------------------------------------------------
  308. ; описание: Таблица адресов на фазы анализатора
  309. ;---------------------------------------------------------------------
  310. Animation_table_phase:
  311.                 dw      Analyzer_phase_00               ;0
  312.                 dw      Analyzer_phase_01               ;1
  313.                 dw      Analyzer_phase_01               ;2
  314.                 dw      Analyzer_phase_02               ;3
  315.                 dw      Analyzer_phase_02               ;4
  316.                 dw      Analyzer_phase_03               ;5
  317.                 dw      Analyzer_phase_04               ;6
  318.                 dw      Analyzer_phase_05               ;7
  319.                 dw      Analyzer_phase_06               ;8
  320.                 dw      Analyzer_phase_07               ;9
  321.                 dw      Analyzer_phase_08               ;10
  322.                 dw      Analyzer_phase_09               ;11
  323.                 dw      Analyzer_phase_09               ;12
  324.                 dw      Analyzer_phase_10               ;13
  325.                 dw      Analyzer_phase_10               ;14
  326.                 dw      Analyzer_phase_11               ;15
  327.  
  328.  
  329. Analyzer_phase_00:
  330.                 db      0AAh,01h,0FFh,80h,55h
  331.                 db      0F4h,07h,00h,0E0h,2Fh
  332.                 db      0E8h,1Ch,42h,38h,17h
  333.                 db      50h,70h,42h,0Eh,0Ah
  334.                 db      0A1h,0C8h,00h,13h,85h
  335.                 db      45h,08h,00h,10h,0C2h
  336.                 db      82h,00h,00h,00h,41h
  337.                 db      01h,00h,00h,00h,82h
  338.                 db      80h,80h,00h,01h,01h
  339.                 db      00h,40h,00h,00h,00h
  340.                 db      00h,20h,00h,00h,01h
  341.                 db      00h,10h,00h,00h,00h
  342.                 db      00h,08h,00h,00h,01h
  343.                 db      00h,04h,00h,00h,00h
  344.                 db      00h,02h,00h,00h,01h
  345.                 db      00h,01h,00h,00h,00h
  346. Analyzer_phase_01:
  347.                 db      0AAh,01h,0FFh,80h,55h
  348.                 db      0F4h,07h,00h,0E0h,2Fh
  349.                 db      0E8h,1Ch,42h,38h,17h
  350.                 db      50h,90h,42h,0Eh,0Ah
  351.                 db      0A1h,48h,00h,13h,85h
  352.                 db      43h,48h,00h,10h,0C2h
  353.                 db      82h,20h,00h,00h,41h
  354.                 db      01h,10h,00h,00h,82h
  355.                 db      80h,90h,00h,01h,01h
  356.                 db      00h,08h,00h,00h,00h
  357.                 db      00h,04h,00h,00h,01h
  358.                 db      00h,04h,00h,00h,00h
  359.                 db      00h,02h,00h,00h,01h
  360.                 db      00h,01h,00h,00h,00h
  361.                 db      00h,01h,00h,00h,01h
  362.                 db      00h,00h,80h,00h,00h
  363. Analyzer_phase_02:
  364.                 db      0AAh,01h,0FFh,80h,55h
  365.                 db      0F4h,07h,00h,0E0h,2Fh
  366.                 db      0E8h,2Ch,42h,38h,17h
  367.                 db      50h,50h,42h,0Eh,0Ah
  368.                 db      0A1h,0D0h,00h,13h,85h
  369.                 db      43h,08h,00h,10h,0C2h
  370.                 db      82h,08h,00h,00h,41h
  371.                 db      01h,04h,00h,00h,82h
  372.                 db      80h,84h,00h,01h,01h
  373.                 db      00h,02h,00h,00h,00h
  374.                 db      00h,02h,00h,00h,01h
  375.                 db      00h,01h,00h,00h,00h
  376.                 db      00h,01h,00h,00h,01h
  377.                 db      00h,00h,80h,00h,00h
  378.                 db      00h,00h,80h,00h,01h
  379.                 db      00h,00h,40h,00h,00h
  380. Analyzer_phase_03:
  381.                 db      0AAh,01h,0FFh,80h,55h
  382.                 db      0F4h,05h,00h,0E0h,2Fh
  383.                 db      0E8h,14h,42h,38h,17h
  384.                 db      50h,72h,42h,0Eh,0Ah
  385.                 db      0A1h,0CAh,00h,13h,85h
  386.                 db      43h,0Ah,00h,10h,0C2h
  387.                 db      82h,01h,00h,00h,41h
  388.                 db      01h,01h,00h,00h,82h
  389.                 db      80h,81h,00h,01h,01h
  390.                 db      00h,00h,80h,00h,00h
  391.                 db      00h,00h,80h,00h,01h
  392.                 db      00h,00h,40h,00h,00h
  393.                 db      00h,00h,40h,00h,01h
  394.                 db      00h,00h,40h,00h,00h
  395.                 db      00h,00h,20h,00h,01h
  396.                 db      00h,00h,20h,00h,00h
  397. Analyzer_phase_04:
  398.                 db      0AAh,00h,0BFh,80h,55h
  399.                 db      0F4h,06h,80h,0E0h,2Fh
  400.                 db      0E8h,1Ch,82h,38h,17h
  401.                 db      50h,70h,42h,0Eh,0Ah
  402.                 db      0A1h,0C8h,40h,13h,85h
  403.                 db      43h,08h,40h,10h,0C2h
  404.                 db      82h,00h,40h,00h,41h
  405.                 db      01h,00h,40h,00h,82h
  406.                 db      80h,80h,20h,01h,01h
  407.                 db      00h,00h,20h,00h,00h
  408.                 db      00h,00h,20h,00h,01h
  409.                 db      00h,00h,20h,00h,00h
  410.                 db      00h,00h,20h,00h,01h
  411.                 db      00h,00h,10h,00h,00h
  412.                 db      00h,00h,10h,00h,01h
  413.                 db      00h,00h,10h,00h,00h
  414. Analyzer_phase_05:
  415.                 db      0AAh,01h,0AFh,80h,55h
  416.                 db      0F4h,07h,20h,0E0h,2Fh
  417.                 db      0E8h,1Ch,62h,38h,17h
  418.                 db      50h,70h,62h,0Eh,0Ah
  419.                 db      0A1h,0C8h,20h,13h,85h
  420.                 db      43h,08h,20h,10h,0C2h
  421.                 db      82h,00h,20h,00h,41h
  422.                 db      01h,00h,20h,00h,82h
  423.                 db      80h,80h,10h,01h,01h
  424.                 db      00h,00h,10h,00h,00h
  425.                 db      00h,00h,10h,00h,01h
  426.                 db      00h,00h,10h,00h,00h
  427.                 db      00h,00h,10h,00h,01h
  428.                 db      00h,00h,10h,00h,00h
  429.                 db      00h,00h,10h,00h,01h
  430.                 db      00h,00h,10h,00h,00h
  431. Analyzer_phase_06:
  432.                 db      0AAh,01h,0F5h,80h,55h
  433.                 db      0F4h,07h,04h,0E0h,2Fh
  434.                 db      0E8h,1Ch,46h,38h,17h
  435.                 db      50h,70h,46h,0Eh,0Ah
  436.                 db      0A1h,0C8h,04h,13h,85h
  437.                 db      43h,08h,04h,10h,0C2h
  438.                 db      82h,00h,04h,00h,41h
  439.                 db      01h,00h,04h,00h,82h
  440.                 db      80h,80h,08h,01h,01h
  441.                 db      00h,00h,08h,00h,00h
  442.                 db      00h,00h,08h,00h,01h
  443.                 db      00h,00h,08h,00h,00h
  444.                 db      00h,00h,08h,00h,01h
  445.                 db      00h,00h,08h,00h,00h
  446.                 db      00h,00h,08h,00h,01h
  447.                 db      00h,00h,08h,00h,00h
  448. Analyzer_phase_07:
  449.                 db      0AAh,01h,0FDh,00h,55h
  450.                 db      0F4h,07h,01h,60h,2Fh
  451.                 db      0E8h,1Ch,41h,38h,17h
  452.                 db      50h,70h,42h,0Eh,0Ah
  453.                 db      0A1h,0C8h,02h,13h,85h
  454.                 db      43h,08h,02h,10h,0C2h
  455.                 db      82h,00h,02h,00h,41h
  456.                 db      01h,00h,02h,00h,82h
  457.                 db      80h,80h,04h,01h,01h
  458.                 db      00h,00h,04h,00h,00h
  459.                 db      00h,00h,04h,00h,01h
  460.                 db      00h,00h,04h,00h,00h
  461.                 db      00h,00h,04h,00h,01h
  462.                 db      00h,00h,08h,00h,00h
  463.                 db      00h,00h,08h,00h,01h
  464.                 db      00h,00h,08h,00h,00h
  465. Analyzer_phase_08:
  466.                 db      0AAh,01h,0FFh,80h,55h
  467.                 db      0F4h,07h,00h,0A0h,2Fh
  468.                 db      0E8h,1Ch,42h,28h,17h
  469.                 db      50h,70h,42h,4Eh,0Ah
  470.                 db      0A1h,0C8h,00h,53h,85h
  471.                 db      43h,08h,00h,50h,0C2h
  472.                 db      82h,00h,00h,80h,41h
  473.                 db      01h,00h,00h,80h,82h
  474.                 db      80h,80h,00h,81h,01h
  475.                 db      00h,00h,01h,00h,00h
  476.                 db      00h,00h,01h,00h,01h
  477.                 db      00h,00h,02h,00h,00h
  478.                 db      00h,00h,02h,00h,01h
  479.                 db      00h,00h,02h,00h,00h
  480.                 db      00h,00h,04h,00h,01h
  481.                 db      00h,00h,04h,00h,00h
  482. Analyzer_phase_09:
  483.                 db      0AAh,01h,0FFh,80h,55h
  484.                 db      0F4h,07h,00h,0E0h,2Fh
  485.                 db      0E8h,1Ch,42h,34h,17h
  486.                 db      50h,70h,42h,0Ah,0Ah
  487.                 db      0A1h,0C8h,00h,0Bh,85h
  488.                 db      43h,08h,00h,10h,0C2h
  489.                 db      82h,00h,00h,10h,41h
  490.                 db      01h,00h,00h,20h,82h
  491.                 db      80h,80h,00h,21h,01h
  492.                 db      00h,00h,00h,40h,00h
  493.                 db      00h,00h,00h,40h,01h
  494.                 db      00h,00h,00h,80h,00h
  495.                 db      00h,00h,00h,80h,01h
  496.                 db      00h,00h,01h,00h,00h
  497.                 db      00h,00h,01h,00h,01h
  498.                 db      00h,00h,02h,00h,00h
  499. Analyzer_phase_10:
  500.                 db      0AAh,01h,0FFh,80h,55h
  501.                 db      0F4h,07h,00h,0E0h,2Fh
  502.                 db      0E8h,1Ch,42h,38h,17h
  503.                 db      50h,70h,42h,0Dh,0Ah
  504.                 db      0A1h,0C8h,00h,12h,85h
  505.                 db      43h,08h,00h,12h,0C2h
  506.                 db      82h,00h,00h,04h,41h
  507.                 db      01h,00h,00h,08h,82h
  508.                 db      80h,80h,00h,09h,01h
  509.                 db      00h,00h,00h,10h,00h
  510.                 db      00h,00h,00h,20h,01h
  511.                 db      00h,00h,00h,20h,00h
  512.                 db      00h,00h,00h,40h,01h
  513.                 db      00h,00h,00h,80h,00h
  514.                 db      00h,00h,00h,80h,01h
  515.                 db      00h,00h,01h,00h,00h
  516. Analyzer_phase_11:
  517.                 db      0AAh,01h,0FFh,80h,55h
  518.                 db      0F4h,07h,00h,0E0h,2Fh
  519.                 db      0E8h,1Ch,42h,38h,17h
  520.                 db      50h,70h,42h,0Eh,0Ah
  521.                 db      0A1h,0C8h,00h,13h,85h
  522.                 db      43h,08h,00h,10h,0A2h
  523.                 db      82h,00h,00h,00h,41h
  524.                 db      01h,00h,00h,00h,82h
  525.                 db      80h,80h,00h,01h,01h
  526.                 db      00h,00h,00h,02h,00h
  527.                 db      00h,00h,00h,04h,01h
  528.                 db      00h,00h,00h,08h,00h
  529.                 db      00h,00h,00h,10h,01h
  530.                 db      00h,00h,00h,20h,00h
  531.                 db      00h,00h,00h,40h,01h
  532.                 db      00h,00h,00h,80h,00h
  533.  
  534. ;-------------------------------------------------------------------
  535. ; описание:  Переменные правого и левого каналов анализатора
  536. ;---------------------------------------------------------------------
  537. Analyzer_ch0_vol:
  538.                 db      0
  539. Analyzer_ch1_vol:
  540.                 db      0
  541. Analyzer_ch2_vol:
  542.                 db      0
  543. Analyzer_ch3_vol:
  544.                 db      0
  545. Analyzer_ch4_vol:
  546.                 db      0
  547. Analyzer_ch5_vol:
  548.                 db      0
  549.