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      de,0FF0h
  93.  
  94.                 ld      a,(Analyzer_ch0_left)           ;Amplitude 0 left
  95.                 ld      hl,4200h
  96.                 call    Analyzer_left_draw
  97.  
  98.                 ld      a, (Analyzer_ch1_left)          ;Amplitude 1 left
  99.                 ld      hl,4220h
  100.                 call    Analyzer_left_draw
  101.  
  102.                 ld      a,(Analyzer_ch2_left)           ;Amplitude 2 left
  103.                 ld      hl,4240h
  104.                 call    Analyzer_left_draw
  105.  
  106.                 ld      a,(Analyzer_ch3_left)          ;Amplitude 3 left
  107.                 ld      hl,4260h
  108.                 call    Analyzer_left_draw
  109.                                                        
  110.                 ld      a,(Analyzer_ch4_left)          ;Amplitude 4 left
  111.                 ld      hl,4280h
  112.                 call    Analyzer_left_draw
  113.  
  114.                 ld      a,(Analyzer_ch5_left)          ;Amplitude 5 left
  115.                 ld      hl,42A0h
  116.                 call    Analyzer_left_draw
  117.                                                        
  118.                 ld      a,(Analyzer_ch0_right)         ;Amplitude 0 right
  119.                 ld      hl,421Fh
  120.                 call    Analyzer_right_draw
  121.  
  122.                 ld      a,(Analyzer_ch1_right)          ;Amplitude 1 right
  123.                 ld      hl,423Fh
  124.                 call    Analyzer_right_draw
  125.  
  126.                 ld      a,(Analyzer_ch2_right)          ;Amplitude 2 right
  127.                 ld      hl,425Fh
  128.                 call    Analyzer_right_draw
  129.  
  130.                 ld      a,(Analyzer_ch3_right)          ;Amplitude 3 right
  131.                 ld      hl,427Fh
  132.                 call    Analyzer_right_draw
  133.  
  134.                 ld      a,(Analyzer_ch4_right)          ;Amplitude 4 right
  135.                 ld      hl,429Fh
  136.                 call    Analyzer_right_draw
  137.  
  138.                 ld      a,(Analyzer_ch5_right)          ;Amplitude 5 right
  139.                 ld      hl,42BFh
  140.                 call    Analyzer_right_draw
  141.                 ret
  142. ;-------------------------------------------------------------------
  143. ; описание: Отрисовка левого канала анализатора
  144. ; параметры: HL - адрес экрана
  145. ;            A - размерность анализатора
  146. ; возвращаемое  значение: нет
  147. ;---------------------------------------------------------------------
  148. Analyzer_left_draw:
  149.                 ld      c,a
  150.                 ld      b,1
  151.  
  152. Analyzer_left_loop:
  153.                 push    hl
  154.                 ld      a,c
  155.                 cp      b
  156.                 ld      a,(hl)
  157.                 jr      c,Analyzer_left_clr0
  158.                 and     d
  159.                 or      0C0h
  160.                 ld      (hl),a
  161.                 inc     h
  162.                 ld      a,(hl)
  163.                 and     d
  164.                 or      0E0h
  165.                 ld      (hl),a
  166.                 inc     h
  167.                 ld      (hl),a
  168.                 inc     h
  169.                 ld      a,(hl)
  170.                 and     d
  171.                 or      0C0h
  172.                 ld      (hl),a
  173.  
  174. Analyzer_left_next:
  175.                 pop     hl
  176.                 inc     b
  177.                 push    hl
  178.                 ld      a,c
  179.                 cp      b
  180.                 ld      a,(hl)
  181.                 jr      c,Analyzer_left_clr1
  182.                 and     e
  183.                 or      0Ch
  184.                 ld      (hl),a
  185.                 inc     h
  186.                 ld      a,(hl)
  187.                 and     e
  188.                 or      0Eh
  189.                 ld      (hl),a
  190.                 inc     h
  191.                 ld      (hl),a
  192.                 inc     h
  193.                 ld      a,(hl)
  194.                 and     e
  195.                 or      0Ch
  196.                 ld      (hl),a
  197.  
  198. Analyzer_left_inc:             
  199.                 pop     hl
  200.                 inc     l
  201.                 inc     b
  202.                 ld      a,b
  203.                 cp      17
  204.                 ret     z      
  205.                 jr      Analyzer_left_loop
  206.                
  207. Analyzer_left_clr0:
  208.                 and     d
  209.                 ld      (hl),a
  210.                 inc     h
  211.                 ld      a,(hl)
  212.                 and     d
  213.                 ld      (hl),a
  214.                 inc     h
  215.                 ld      (hl),a
  216.                 inc     h
  217.                 ld      a,(hl)
  218.                 and     d
  219.                 ld      (hl),a
  220.                 nop
  221.                 jr      Analyzer_left_next
  222.  
  223. Analyzer_left_clr1:
  224.                 and     e
  225.                 ld      (hl),a
  226.                 inc     h
  227.                 ld      a,(hl)
  228.                 and     e
  229.                 ld      (hl),a
  230.                 inc     h
  231.                 ld      (hl),a
  232.                 inc     h
  233.                 ld      a,(hl)
  234.                 and     e
  235.                 ld      (hl),a
  236.                 nop
  237.                 jr      Analyzer_left_inc
  238. ;-------------------------------------------------------------------
  239. ; описание: Отрисовка правого канала анализатора
  240. ; параметры: HL - адрес экрана
  241. ;            A - размерность анализатора
  242. ; возвращаемое  значение: нет
  243. ;---------------------------------------------------------------------
  244. Analyzer_right_draw:
  245.                 ld      c,a
  246.                 ld      b,1
  247.  
  248. Analyzer_right_loop:
  249.                 push    hl
  250.                 ld      a,c
  251.                 cp      b
  252.                 ld      a,(hl)
  253.                 jr      c,Analyzer_right_clr0
  254.                 and     e
  255.                 or      03h
  256.                 ld      (hl),a
  257.                 inc     h
  258.                 ld      a,(hl)
  259.                 and     e
  260.                 or      07h
  261.                 ld      (hl),a
  262.                 inc     h
  263.                 ld      (hl),a
  264.                 inc     h
  265.                 ld      a,(hl)
  266.                 and     e
  267.                 or      03h
  268.                 ld      (hl),a
  269.  
  270. Analyzer_right_next:
  271.                 pop     hl
  272.                 inc     b
  273.                 push    hl
  274.                 ld      a,c
  275.                 cp      b
  276.                 ld      a,(hl)
  277.                 jr      c,Analyzer_right_clr1
  278.                 and     d
  279.                 or      30h
  280.                 ld      (hl),a
  281.                 inc     h
  282.                 ld      a,(hl)
  283.                 and     d
  284.                 or      70h
  285.                 ld      (hl),a
  286.                 inc     h
  287.                 ld      (hl),a
  288.                 inc     h
  289.                 ld      a,(hl)
  290.                 and     d
  291.                 or      30h
  292.                 ld      (hl),a
  293.  
  294. Analyzer_right_inc:            
  295.                 pop     hl
  296.                 dec     l
  297.                 inc     b
  298.                 ld      a,b
  299.                 cp      17
  300.                 ret     z      
  301.                 jr      Analyzer_right_loop
  302.                
  303. Analyzer_right_clr0:
  304.                 and     e
  305.                 ld      (hl),a
  306.                 inc     h
  307.                 ld      a,(hl)
  308.                 and     e
  309.                 ld      (hl),a
  310.                 inc     h
  311.                 ld      (hl),a
  312.                 inc     h
  313.                 ld      a,(hl)
  314.                 and     e
  315.                 ld      (hl),a
  316.                 nop
  317.                 jr      Analyzer_right_next
  318.  
  319. Analyzer_right_clr1:
  320.                 and     d
  321.                 ld      (hl),a
  322.                 inc     h
  323.                 ld      a,(hl)
  324.                 and     d
  325.                 ld      (hl),a
  326.                 inc     h
  327.                 ld      (hl),a
  328.                 inc     h
  329.                 ld      a,(hl)
  330.                 and     d
  331.                 ld      (hl),a
  332.                 nop
  333.                 jr      Analyzer_right_inc
  334. ;-------------------------------------------------------------------
  335. ; описание: Отрисовка левого канала анализатора
  336. ; параметры: HL - адрес экрана
  337. ;            C - позиция в индикаторе
  338. ; возвращаемое  значение: нет
  339. ;---------------------------------------------------------------------
  340. Analyzer_draw_flash:
  341.                 ld      hl,Analyzer_ch0_left
  342.                 ld      a,(hl)                          ;Analyzer_ch0_left
  343.                 inc     hl
  344.                 add     a,(hl)                          ;Analyzer_ch0_right
  345.                 inc     hl
  346.                 add     a,(hl)                          ;Analyzer_ch1_left
  347.                 inc     hl
  348.                 add     a,(hl)                          ;Analyzer_ch1_right
  349.                 inc     hl
  350.                 add     a,(hl)                          ;Analyzer_ch2_left
  351.                 inc     hl
  352.                 add     a,(hl)                          ;Analyzer_ch2_right
  353.                 and     0Fh
  354.                 ld      hl,Analyzer_table
  355.                 ld      e,a
  356.                 ld      d,0
  357.                 add     hl,de
  358.                 ld      a,(hl)
  359.                 ld      hl,5A92h
  360.                 ld      (hl),a
  361.                 inc     l
  362.                 ld      (hl),a
  363.                 ld      hl,Analyzer_ch3_left
  364.                 ld      a,(hl)                          ;Analyzer_ch3_left
  365.                 inc     hl
  366.                 add     a,(hl)                          ;Analyzer_ch3_right
  367.                 inc     hl
  368.                 add     a,(hl)                          ;Analyzer_ch4_left
  369.                 inc     hl
  370.                 add     a,(hl)                          ;Analyzer_ch4_right
  371.                 inc     hl
  372.                 add     a,(hl)                          ;Analyzer_ch5_left
  373.                 inc     hl
  374.                 add     a,(hl)                          ;Analyzer_ch5_right
  375.                 and     0Fh
  376.                 ld      hl,Analyzer_table
  377.                 ld      e,a
  378.                 ld      d,0
  379.                 add     hl,de
  380.                 ld      e,(hl)
  381.                 ld      d,e
  382.                 ld      hl,5AD6h
  383.                 ld      (Analyzer_adr_sp),sp
  384.                 ld      sp,hl
  385.                 push    de
  386.                 push    de
  387.                 push    de
  388.                 push    de
  389.                 push    de
  390.                 push    de
  391.                 ld      hl,5AF6h
  392.                 ld      sp,hl
  393.                 push    de
  394.                 push    de
  395.                 push    de
  396.                 push    de
  397.                 push    de
  398.                 push    de
  399.                 ld      sp,(Analyzer_adr_sp)
  400.                 ret
  401.  
  402. ;-------------------------------------------------------------------
  403. ; описание: Обновление параметров анализатора
  404. ; параметры: нет
  405. ; возвращаемое  значение: нет
  406. ;---------------------------------------------------------------------
  407. Analyzer_init:
  408.                 ld      b, 12
  409.                 ld      hl,Analyzer_ch0_left
  410.  
  411. Analyzer_init_loop:
  412.                 ld      (hl),0
  413.                 inc     hl
  414.                 djnz    Analyzer_init_loop
  415.                 ret
  416. ;-------------------------------------------------------------------
  417. ; описание:  Переменные правого и левого каналов анализатора
  418. ;---------------------------------------------------------------------
  419. Analyzer_table:
  420.                 db      47h,47h,47h,47h,46h,46h,45h,45h,44h,44h,43h,43h,42h,42h,41h,41h
  421. ;-------------------------------------------------------------------
  422. ; описание:  Переменные правого и левого каналов анализатора
  423. ;---------------------------------------------------------------------
  424. Analyzer_adr_sp:
  425.                 dw      0
  426. Analyzer_ch0_left:
  427.                 db      0      
  428. Analyzer_ch0_right:
  429.                 db      0      
  430. Analyzer_ch1_left:
  431.                 db      0      
  432. Analyzer_ch1_right:
  433.                 db      0      
  434. Analyzer_ch2_left:
  435.                 db      0      
  436. Analyzer_ch2_right:
  437.                 db      0      
  438. Analyzer_ch3_left:
  439.                 db      0      
  440. Analyzer_ch3_right:
  441.                 db      0      
  442. Analyzer_ch4_left:
  443.                 db      0      
  444. Analyzer_ch4_right:
  445.                 db      0      
  446. Analyzer_ch5_left:
  447.                 db      0      
  448. Analyzer_ch5_right:
  449.                 db      0      
  450. ;               .end