Subversion Repositories tsfmpro

Rev

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

  1. ;--------------------------------------------------------------------
  2. ; Описание: Модуль отображения анализатора
  3. ; портирован  с компьютера Sam Coupe - Fred magazine 34
  4. ; Автор порта: Тарасов М.Н.(Mick),2010
  5. ;--------------------------------------------------------------------
  6.  
  7. ;-------------------------------------------------------------------
  8. ; описание: Обновление параметров анализатора
  9. ; параметры: нет
  10. ; возвращаемое  значение: нет
  11. ;---------------------------------------------------------------------
  12. Analyzer_update:
  13.                 ld      hl,EAmplitude_ch0
  14.  
  15.                 ld      a,(hl)                          ;+00h - Amplitude 0 right/left
  16.                 and     07h
  17.                 inc     a
  18.                 ld      (Analyzer_ch0_left),a           ;Amplitude 0 left
  19.                 ld      a,(hl)                          ;+00h - Amplitude 0 right/left                         
  20.                 and     070h
  21.                 rrca   
  22.                 rrca   
  23.                 rrca
  24.                 rrca   
  25.                 inc     a
  26.                 ld      (Analyzer_ch0_right),a          ;Amplitude 0 right
  27.  
  28.                 inc     hl
  29.                 ld      a,(hl)                          ;+01h - Amplitude 1 right/left
  30.                 and     07h
  31.                 inc     a
  32.                 ld      (Analyzer_ch1_left),a           ;Amplitude 1 left
  33.                 ld      a, (hl)                         ;+01h - Amplitude 1 right/left
  34.                 and     070h
  35.                 rrca   
  36.                 rrca   
  37.                 rrca   
  38.                 rrca   
  39.                 inc     a
  40.                 ld      (Analyzer_ch1_right),a          ;Amplitude 1 right
  41.  
  42.                 inc     hl
  43.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  44.                 and     07h
  45.                 inc     a
  46.                 ld      (Analyzer_ch2_left),a           ;Amplitude 2 left
  47.                 ld      a,(hl)                          ;+02h - Amplitude 2 right/left
  48.                 and     070h
  49.                 rrca   
  50.                 rrca   
  51.                 rrca   
  52.                 rrca   
  53.                 inc     a
  54.                 ld      (Analyzer_ch2_right),a          ;Amplitude 2 right
  55.  
  56.                 inc     hl
  57.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  58.                 and     07h
  59.                 inc     a
  60.                 ld      (Analyzer_ch3_left),a           ;Amplitude 3 left
  61.                 ld      a, (hl)                         ;+03h - Amplitude 3 right/left
  62.                 and     070h
  63.                 rrca   
  64.                 rrca   
  65.                 rrca   
  66.                 rrca   
  67.                 inc     a
  68.                 ld      (Analyzer_ch3_right),a          ;Amplitude 3 right
  69.  
  70.                 inc     hl
  71.                 ld      a, (hl)                         ;+04h - Amplitude 4 right/left
  72.                 and     07h
  73.                 inc     a
  74.                 ld      (Analyzer_ch4_left),a           ;Amplitude 4 left
  75.                 ld      a, (hl)
  76.                 and     070h
  77.                 rrca   
  78.                 rrca   
  79.                 rrca   
  80.                 rrca   
  81.                 inc     a
  82.                 ld      (Analyzer_ch4_right),a          ;Amplitude 4 right
  83.  
  84.                 inc     hl
  85.                 ld      a, (hl)                         ;+05h - Amplitude 5 right/left
  86.                 and     07h
  87.                 inc     a
  88.                 ld      (Analyzer_ch5_left),a           ;Amplitude 5 left
  89.                 ld      a, (hl)
  90.                 and     070h
  91.                 rrca   
  92.                 rrca   
  93.                 rrca   
  94.                 rrca   
  95.                 inc     a
  96.                 ld      (Analyzer_ch5_right),a          ;Amplitude 5 right
  97.                 ret
  98.  
  99. ;-------------------------------------------------------------------
  100. ; описание: Отображение анализатора
  101. ; параметры: нет
  102. ; возвращаемое  значение: нет
  103. ;---------------------------------------------------------------------
  104. Analyzer_view:
  105.                 ld      a,(Analyzer_ch0_left)           ;Amplitude 0 left
  106.                 ld      hl,520Fh
  107.                 call    Analyzer_left_draw
  108.  
  109.                 ld      a, (Analyzer_ch1_left)          ;Amplitude 1 left
  110.                 ld      hl,540Fh
  111.                 call    Analyzer_left_draw
  112.  
  113.                 ld      a,(Analyzer_ch2_left)           ;Amplitude 2 left
  114.                 ld      hl,560Fh
  115.                 call    Analyzer_left_draw
  116.  
  117.                 ld      a,(Analyzer_ch3_left)          ;Amplitude 3 left
  118.                 ld      hl,502Fh
  119.                 call    Analyzer_left_draw
  120.                                                        
  121.                 ld      a,(Analyzer_ch4_left)          ;Amplitude 4 left
  122.                 ld      hl,522Fh
  123.                 call    Analyzer_left_draw
  124.  
  125.                 ld      a,(Analyzer_ch5_left)          ;Amplitude 5 left
  126.                 ld      hl,542Fh
  127.                 call    Analyzer_left_draw
  128.                                                        
  129.                 ld      a,(Analyzer_ch0_right)         ;Amplitude 0 right
  130.                 ld      hl,5210h
  131.                 call    Analyzer_right_draw
  132.  
  133.                 ld      a,(Analyzer_ch1_right)          ;Amplitude 1 right
  134.                 ld      hl,5410h
  135.                 call    Analyzer_right_draw
  136.  
  137.                 ld      a,(Analyzer_ch2_right)          ;Amplitude 2 right
  138.                 ld      hl,5610h
  139.                 call    Analyzer_right_draw
  140.  
  141.                 ld      a,(Analyzer_ch3_right)          ;Amplitude 3 right
  142.                 ld      hl,5030h
  143.                 call    Analyzer_right_draw
  144.  
  145.                 ld      a,(Analyzer_ch4_right)          ;Amplitude 4 right
  146.                 ld      hl,5230h
  147.                 call    Analyzer_right_draw
  148.  
  149.                 ld      a,(Analyzer_ch5_right)          ;Amplitude 5 right
  150.                 ld      hl,5430h
  151.                 call    Analyzer_right_draw
  152.                 ret
  153. ;-------------------------------------------------------------------
  154. ; описание: Отрисовка левого канала анализатора
  155. ; параметры: HL - адрес экрана
  156. ;            A - размерность анализатора
  157. ; возвращаемое  значение: нет
  158. ;---------------------------------------------------------------------
  159. Analyzer_left_draw:
  160.                 ld      b,a
  161.                 ld      a,0FFh
  162.  
  163. Analyzer_left_loop:
  164.                 ld      (hl),a
  165.                 dec     l
  166.                 djnz    Analyzer_left_loop
  167.                 ret    
  168. ;-------------------------------------------------------------------
  169. ; описание: Отрисовка правого канала анализатора
  170. ; параметры: HL - адрес экрана
  171. ;            A - размерность анализатора
  172. ; возвращаемое  значение: нет
  173. ;---------------------------------------------------------------------
  174. Analyzer_right_draw:
  175.                 ld      b,a
  176.                 ld      a,0FFh
  177.  
  178. Analyzer_right_loop:
  179.                 ld      (hl),a
  180.                 inc     l
  181.                 djnz    Analyzer_right_loop
  182.                 ret
  183. ;-------------------------------------------------------------------
  184. ; описание: Обновление параметров анализатора
  185. ; параметры: нет
  186. ; возвращаемое  значение: нет
  187. ;---------------------------------------------------------------------
  188. Analyzer_init:
  189.                 ld      b, 12
  190.                 ld      hl,Analyzer_ch0_left
  191.  
  192. Analyzer_init_loop:
  193.                 ld      (hl),0
  194.                 inc     hl
  195.                 djnz    Analyzer_init_loop
  196.                 call    Analyzer_clear
  197.                 ret
  198.  
  199. ;-------------------------------------------------------------------
  200. ; описание: Очистка экрана анализатора
  201. ; параметры: нет
  202. ; возвращаемое  значение: нет
  203. ;---------------------------------------------------------------------
  204. Analyzer_clear:
  205.                 ld      hl,5208h
  206.                 call    Analyzer_filling                ;Amplitude 0
  207.                 ld      hl,5408h
  208.                 call    Analyzer_filling                ;Amplitude 1
  209.                 ld      hl,5608h
  210.                 call    Analyzer_filling                ;Amplitude 2
  211.                 ld      hl,5028h
  212.                 call    Analyzer_filling                ;Amplitude 3
  213.                 ld      hl,5228h
  214.                 call    Analyzer_filling                ;Amplitude 4
  215.                 ld      hl,5428h
  216.                 call    Analyzer_filling                ;Amplitude 5
  217.                 ret
  218. ;-------------------------------------------------------------------
  219. ; описание: Очистка одной строки анализатора
  220. ; параметры: HL - адрес экрана
  221. ; возвращаемое  значение: нет
  222. ;---------------------------------------------------------------------
  223. Analyzer_filling:
  224.                 ld      (hl),0                          ;позиция -8
  225.                 ld      e,l
  226.                 ld      d,h
  227.                 inc     de
  228.                 ldi                                     ;позиция -7    
  229.                 ldi                                     ;позиция -6
  230.                 ldi                                     ;позиция -5
  231.                 ldi                                     ;позиция -4
  232.                 ldi                                     ;позиция -3
  233.                 ldi                                     ;позиция -2
  234.                 ldi                                     ;позиция -1
  235.                 ldi                                     ;позиция +1
  236.                 ldi                                     ;позиция +2
  237.                 ldi                                     ;позиция +3
  238.                 ldi                                     ;позиция +4
  239.                 ldi                                     ;позиция +5
  240.                 ldi                                     ;позиция +6
  241.                 ldi                                     ;позиция +7
  242.                 ldi                                     ;позиция +8
  243.                 ret    
  244. ;-------------------------------------------------------------------
  245. ; описание:  Переменные правого и левого каналов анализатора
  246. ;---------------------------------------------------------------------
  247. Analyzer_ch0_left:
  248.                 db      0      
  249. Analyzer_ch1_left:
  250.                 db      0      
  251. Analyzer_ch2_left:
  252.                 db      0      
  253. Analyzer_ch3_left:
  254.                 db      0      
  255. Analyzer_ch4_left:
  256.                 db      0      
  257. Analyzer_ch5_left:
  258.                 db      0      
  259. Analyzer_ch0_right:
  260.                 db      0      
  261. Analyzer_ch1_right:
  262.                 db      0      
  263. Analyzer_ch2_right:
  264.                 db      0      
  265. Analyzer_ch3_right:
  266.                 db      0      
  267. Analyzer_ch4_right:
  268.                 db      0      
  269. Analyzer_ch5_right:
  270.                 db      0      
  271. ;               .end