Subversion Repositories tsfmpro

Rev

Rev 547 | 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      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      b,06h
  116.                 ld      de,Analyzer_ch0_vol
  117.  
  118. Analyzer_loop_channel:
  119.                 push    bc
  120.                 ld      a,(de)
  121.                 inc     de
  122.                 push    de
  123.                 ld      l,a
  124.                 ld      h,0
  125.                 add     hl,hl
  126.                 ld      de,Analyzer_table_addr
  127.                 add     hl,de
  128.                 ld      a,(hl)
  129.                 inc     hl
  130.                 ld      h,(hl)
  131.                 ld      l,a
  132.                 ld      a,6
  133.                 sub     b
  134.                 ld      c,a
  135.                 add     a
  136.                 add     l
  137.                 ld      l,a
  138.                 ld      a,b
  139.                 cp      4
  140.                 jr      nc,Analyzer_get_data
  141.                 inc     l
  142.                 inc     l
  143. Analyzer_get_data:
  144.                 ex      hl,de
  145.                 ld      a,c
  146.                 cp      3
  147.                 jr      c,Analyzer_view_data
  148.                 ld      a,5
  149.                 sub     c
  150. Analyzer_view_data:
  151.                 ld      l,a
  152.                 ld      h,0
  153.                 add     hl,hl
  154.                 ld      bc,Analyzer_table_data
  155.                 add     hl,bc
  156.                 ld      a,(hl)
  157.                 inc     hl
  158.                 ld      h,(hl)
  159.                 ld      l,a
  160.  
  161.                 ld      b,13                            ;размерность по Y
  162. Analyzer_loop_Y:
  163.                 ld      c,10
  164.                 push    de
  165.                 ldi
  166.                 ldi
  167.                 pop     de
  168.                 inc     d
  169.                 ld      a,d
  170.                 and     7
  171.                 jr      nz,Analyzer_next_line
  172.                 ld      a,e
  173.                 add     20h
  174.                 ld      e,a
  175.                 jr      c,Analyzer_next_line
  176.                 ld      a,d
  177.                 sub     8
  178.                 ld      d,a
  179. Analyzer_next_line:
  180.                 djnz    Analyzer_loop_Y
  181.                 pop     de
  182.                 pop     bc
  183.                 djnz    Analyzer_loop_channel
  184.                 ret        
  185. ;-------------------------------------------------------------------
  186. ; описание: Отрисовка левого канала анализатора
  187. ; параметры: HL - адрес экрана
  188. ;            C - позиция в индикаторе
  189. ; возвращаемое  значение: нет
  190. ;---------------------------------------------------------------------
  191. Analyzer_draw_flash:
  192.                 ld      a,(Analyzer_ch0_vol)
  193.                 ld      e,a
  194.                 ld      a,(Analyzer_ch3_vol)
  195.                 add     e
  196.                 and     0Fh
  197.                 ld      hl,Analyzer_table
  198.                 ld      e,a
  199.                 ld      d,0
  200.                 add     hl,de
  201.                 ld      a,(hl)
  202.                 ld      hl,5AC6h
  203.                 ld      (hl),a
  204.                 inc     l
  205.                 ld      (hl),a
  206.  
  207.                 ld      a,(Analyzer_ch1_vol)
  208.                 ld      e,a
  209.                 ld      a,(Analyzer_ch4_vol)
  210.                 add     e
  211.                 and     0Fh
  212.                 ld      hl,Analyzer_table
  213.                 ld      e,a
  214.                 ld      d,0
  215.                 add     hl,de
  216.                 ld      a,(hl)
  217.                 ld      hl,5ADCh
  218.                 ld      (hl),a
  219.                 inc     l
  220.                 inc     l
  221.                 ld      (hl),a
  222.                 inc     l
  223.                 ld      (hl),a
  224.  
  225.                 ld      a,(Analyzer_ch2_vol)
  226.                 ld      e,a
  227.                 ld      a,(Analyzer_ch5_vol)
  228.                 add     e
  229.                 and     0Fh
  230.                 ld      hl,Analyzer_table
  231.                 ld      e,a
  232.                 ld      d,0
  233.                 add     hl,de
  234.                 ld      a,(hl)
  235.                 ld      hl,5AEAh
  236.                 ld      (hl),a
  237.                 inc     l
  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.  
  260.                 ret
  261.  
  262. ;-------------------------------------------------------------------
  263. ; описание: Очистка поля основной строки
  264. ; параметры: нет
  265. ; возвращаемое  значение: нет
  266. ;---------------------------------------------------------------------
  267. Analyzer_clear_scr:    
  268.                 ld      (Analyzer_addr_sp),sp
  269.                 ld      hl,0
  270.  
  271.                 ld      sp,49F7h
  272.                 push    hl
  273.                 push    hl
  274.                 push    hl
  275.                 dec     sp
  276.                 dec     sp
  277.                 push    hl
  278.                 push    hl
  279.                 push    hl
  280.  
  281.                 ld      sp,4AF7h
  282.                 push    hl
  283.                 push    hl
  284.                 push    hl
  285.                 dec     sp
  286.                 dec     sp
  287.                 push    hl
  288.                 push    hl
  289.                 push    hl
  290.  
  291.                 ld      sp,4BF7h
  292.                 push    hl
  293.                 push    hl
  294.                 push    hl
  295.                 dec     sp
  296.                 dec     sp
  297.                 push    hl
  298.                 push    hl
  299.                 push    hl
  300.  
  301.                 ld      sp,4CF7h
  302.                 push    hl
  303.                 push    hl
  304.                 push    hl
  305.                 dec     sp
  306.                 dec     sp
  307.                 push    hl
  308.                 push    hl
  309.                 push    hl
  310.  
  311.                 ld      sp,4DF7h
  312.                 push    hl
  313.                 push    hl
  314.                 push    hl
  315.                 dec     sp
  316.                 dec     sp
  317.                 push    hl
  318.                 push    hl
  319.                 push    hl
  320.  
  321.                 ld      sp,4EF7h
  322.                 push    hl
  323.                 push    hl
  324.                 push    hl
  325.                 dec     sp
  326.                 dec     sp
  327.                 push    hl
  328.                 push    hl
  329.                 push    hl
  330.  
  331.                 ld      sp,4FF7h
  332.                 push    hl
  333.                 push    hl
  334.                 push    hl
  335.                 dec     sp
  336.                 dec     sp
  337.                 push    hl
  338.                 push    hl
  339.                 push    hl
  340.  
  341.                 ld      sp,5017h
  342.                 push    hl
  343.                 push    hl
  344.                 push    hl
  345.                 dec     sp
  346.                 dec     sp
  347.                 push    hl
  348.                 push    hl
  349.                 push    hl
  350.  
  351.                 ld      sp,5117h
  352.                 push    hl
  353.                 push    hl
  354.                 push    hl
  355.                 dec     sp
  356.                 dec     sp
  357.                 push    hl
  358.                 push    hl
  359.                 push    hl
  360.  
  361.                 ld      sp,5217h
  362.                 push    hl
  363.                 push    hl
  364.                 push    hl
  365.                 dec     sp
  366.                 dec     sp
  367.                 push    hl
  368.                 push    hl
  369.                 push    hl
  370.  
  371.                 ld      sp,5317h
  372.                 push    hl
  373.                 push    hl
  374.                 push    hl
  375.                 dec     sp
  376.                 dec     sp
  377.                 push    hl
  378.                 push    hl
  379.                 push    hl
  380.  
  381.                 ld      sp,5417h
  382.                 push    hl
  383.                 push    hl
  384.                 push    hl
  385.                 dec     sp
  386.                 dec     sp
  387.                 push    hl
  388.                 push    hl
  389.                 push    hl
  390.  
  391.                 ld      sp,5517h
  392.                 push    hl
  393.                 push    hl
  394.                 push    hl
  395.                 dec     sp
  396.                 dec     sp
  397.                 push    hl
  398.                 push    hl
  399.                 push    hl
  400.  
  401.                 ld      sp,5617h
  402.                 push    hl
  403.                 push    hl
  404.                 push    hl
  405.                 dec     sp
  406.                 dec     sp
  407.                 push    hl
  408.                 push    hl
  409.                 push    hl
  410.  
  411.                 ld      sp,5717h
  412.                 push    hl
  413.                 push    hl
  414.                 push    hl
  415.                 dec     sp
  416.                 dec     sp
  417.                 push    hl
  418.                 push    hl
  419.                 push    hl
  420.  
  421.                 ld      sp,5037h
  422.                 push    hl
  423.                 push    hl
  424.                 push    hl
  425.                 dec     sp
  426.                 dec     sp
  427.                 push    hl
  428.                 push    hl
  429.                 push    hl
  430.  
  431.                 ld      sp,5137h
  432.                 push    hl
  433.                 push    hl
  434.                 push    hl
  435.                 dec     sp
  436.                 dec     sp
  437.                 push    hl
  438.                 push    hl
  439.                 push    hl
  440.  
  441.                 ld      sp,5237h
  442.                 push    hl
  443.                 push    hl
  444.                 push    hl
  445.                 dec     sp
  446.                 dec     sp
  447.                 push    hl
  448.                 push    hl
  449.                 push    hl
  450.  
  451.                 ld      sp,5337h
  452.                 push    hl
  453.                 push    hl
  454.                 push    hl
  455.                 dec     sp
  456.                 dec     sp
  457.                 push    hl
  458.                 push    hl
  459.                 push    hl
  460.  
  461.                 ld      sp,5437h
  462.                 push    hl
  463.                 push    hl
  464.                 push    hl
  465.                 dec     sp
  466.                 dec     sp
  467.                 push    hl
  468.                 push    hl
  469.                 push    hl
  470.  
  471.                 ld      sp,5537h
  472.                 push    hl
  473.                 push    hl
  474.                 push    hl
  475.                 dec     sp
  476.                 dec     sp
  477.                 push    hl
  478.                 push    hl
  479.                 push    hl
  480.  
  481.                 ld      sp,5637h
  482.                 push    hl
  483.                 push    hl
  484.                 push    hl
  485.                 dec     sp
  486.                 dec     sp
  487.                 push    hl
  488.                 push    hl
  489.                 push    hl
  490.  
  491.                 ld      sp,5737h
  492.                 push    hl
  493.                 push    hl
  494.                 push    hl
  495.                 dec     sp
  496.                 dec     sp
  497.                 push    hl
  498.                 push    hl
  499.                 push    hl
  500.  
  501.                 ld      sp,5057h
  502.                 push    hl
  503.                 push    hl
  504.                 push    hl
  505.                 dec     sp
  506.                 dec     sp
  507.                 push    hl
  508.                 push    hl
  509.                 push    hl
  510.  
  511.                 ld      sp,5157h
  512.                 push    hl
  513.                 push    hl
  514.                 push    hl
  515.                 dec     sp
  516.                 dec     sp
  517.                 push    hl
  518.                 push    hl
  519.                 push    hl
  520.  
  521.                 ld      sp,5257h
  522.                 push    hl
  523.                 push    hl
  524.                 push    hl
  525.                 dec     sp
  526.                 dec     sp
  527.                 push    hl
  528.                 push    hl
  529.                 push    hl
  530.  
  531.                 ld      sp,5357h
  532.                 push    hl
  533.                 push    hl
  534.                 push    hl
  535.                 dec     sp
  536.                 dec     sp
  537.                 push    hl
  538.                 push    hl
  539.                 push    hl
  540.  
  541.                 ld      sp,5457h
  542.                 push    hl
  543.                 push    hl
  544.                 push    hl
  545.                 dec     sp
  546.                 dec     sp
  547.                 push    hl
  548.                 push    hl
  549.                 push    hl
  550.  
  551.                 ld      sp,(Analyzer_addr_sp)
  552.                 ret
  553. ;-------------------------------------------------------------------
  554. ; описание: Обновление параметров анализатора
  555. ; параметры: нет
  556. ; возвращаемое  значение: нет
  557. ;---------------------------------------------------------------------
  558. Analyzer_init:
  559.                 ld      b, 6
  560.                 ld      hl,Analyzer_ch0_vol
  561.  
  562. Analyzer_init_loop:
  563.                 ld      (hl),0
  564.                 inc     hl
  565.                 djnz    Analyzer_init_loop
  566.                 ret
  567. ;-------------------------------------------------------------------
  568. ; описание:  Переменные правого и левого каналов анализатора
  569. ;---------------------------------------------------------------------
  570. Analyzer_table:
  571.                 db      78h,78h,78h,78h,7Dh,7Dh,7Dh,7Ch,7Ch,7Ch,7Bh,7Bh,7Ah,7Ah,79h,79h
  572. ;-------------------------------------------------------------------
  573. ; описание: Таблица адресов на фазы анализатора
  574. ;---------------------------------------------------------------------
  575. Analyzer_table_addr:
  576.                 dw      5029h                           ;0
  577.                 dw      5709h                           ;1
  578.                 dw      5609h                           ;2
  579.                 dw      5509h                           ;3
  580.                 dw      5409h                           ;4
  581.                 dw      5309h                           ;5
  582.                 dw      5209h                           ;6
  583.                 dw      5109h                           ;7
  584.                 dw      5009h                           ;8
  585.                 dw      4FE9h                           ;9
  586.                 dw      4EE9h                           ;10
  587.                 dw      4DE9h                           ;11
  588.                 dw      4CE9h                           ;12
  589.                 dw      4BE9h                           ;13
  590.                 dw      4AE9h                           ;14
  591.                 dw      49E9h                           ;15
  592.  
  593. Analyzer_table_data:
  594.                 dw      Analyzer_snow_data_00           ;0
  595.                 dw      Analyzer_snow_data_01           ;1
  596.                 dw      Analyzer_snow_data_02           ;2
  597.  
  598. Analyzer_snow_data_00:
  599.                 db      14h,50h
  600.                 db      12h,90h
  601.                 db      71h,1Ch
  602.                 db      09h,20h
  603.                 db      45h,44h
  604.                 db      20h,08h
  605.                 db      1Dh,70h
  606.                 db      20h,08h
  607.                 db      45h,44h
  608.                 db      09h,20h
  609.                 db      71h,1Ch
  610.                 db      12h,90h
  611.                 db      14h,50h
  612.  
  613. Analyzer_snow_data_01:
  614.                 db      22h,88h
  615.                 db      61h,0Ch
  616.                 db      12h,90h
  617.                 db      04h,40h
  618.                 db      0Ch,60h
  619.                 db      52h,94h
  620.                 db      21h,08h
  621.                 db      52h,94h
  622.                 db      0Ch,60h
  623.                 db      04h,40h
  624.                 db      12h,90h
  625.                 db      61h,0Ch
  626.                 db      22h,88h
  627.  
  628. Analyzer_snow_data_02:
  629.                 db      22h,88h
  630.                 db      61h,0Ch
  631.                 db      10h,10h
  632.                 db      0Bh,0A0h
  633.                 db      04h,40h
  634.                 db      4Ah,0A4h
  635.                 db      29h,28h
  636.                 db      4Ah,0A4h
  637.                 db      04h,40h
  638.                 db      0Bh,0A0h
  639.                 db      10h,10h
  640.                 db      61h,0Ch
  641.                 db      22h,88h
  642.  
  643. ;-------------------------------------------------------------------
  644. ; описание:  Переменные правого и левого каналов анализатора
  645. ;---------------------------------------------------------------------
  646. Analyzer_ch0_vol:
  647.                 db      0
  648. Analyzer_ch1_vol:
  649.                 db      0
  650. Analyzer_ch2_vol:
  651.                 db      0
  652. Analyzer_ch3_vol:
  653.                 db      0
  654. Analyzer_ch4_vol:
  655.                 db      0
  656. Analyzer_ch5_vol:
  657.                 db      0
  658.  
  659. Analyzer_addr_sp:
  660.                 dw      0
  661.