Subversion Repositories tsfmpro

Rev

Blame | Last modification | View Log | Download | RSS feed | ?url?

  1. ;--------------------------------------------------------------------
  2. ; Описание: Проигрывающий модуль музыкального редактора E-Tracker
  3. ; портирован  с компьютера Sam Coupe
  4. ; Автор порта: Тарасов М.Н.(Mick),2010
  5. ;--------------------------------------------------------------------
  6. ;-------------------------------------------------------------------
  7. ; описание: Инициализация проигрывателя
  8. ; параметры: нет
  9. ; возвращаемое  значение: нет
  10. ;---------------------------------------------------------------------
  11. EPlayer_Init:
  12.                 ld      hl,0                            ;адрес музыки
  13.                 jp      loc_0_83EC                      ;переход на инициализацию проигрывателя
  14. ;-------------------------------------------------------------------
  15. ; описание: Проигрывание текущей ноты
  16. ; параметры: нет
  17. ; возвращаемое  значение: нет
  18. ;---------------------------------------------------------------------
  19. EPlayer_Play:
  20.                 ld      a,1                             ;текущий канал
  21.                 dec     a
  22.                 jr      nz,loc_0_802A                  ;вывели информацию во все каналы?
  23.                 ld      ix,word_0_833A                 ;да,переходим к подготовки новых значений
  24.                 ld      b,6                            ;число каналов
  25.  
  26. loc_0_8011:
  27.                 push    bc
  28.                 call    sub_0_81A4
  29.                 ld      bc,19h                         ;количество байт для одного канала
  30.                 add     ix,bc
  31.                 pop     bc
  32.                 djnz    loc_0_8011
  33.                 ld      hl,(word_0_83EA)
  34.                 ld      a,h
  35.                 call    sub_0_8157
  36.                 or      l
  37.                 ld      (loc_0_80E5+1),a
  38.  
  39. loc_0_8028:
  40.                 ld      a,6                           ;установим текущий канал для обновления
  41.  
  42. loc_0_802A:
  43.                 ld      (EPlayer_Play+1),a              ;установим новое значение текущего канала
  44.                 ld      ix,word_0_833A                
  45.                 call    sub_0_826A
  46.                 ld      (EAmplitude_ch0),a               ;Amplitude 0 right/left
  47.                 ld      (EFrequency_ch0),hl
  48.                 push    hl
  49.                 ld      hl,0
  50.                 call    sub_0_815C
  51.                 ld      (loc_0_8055+1),hl
  52.                 ld      (loc_0_80E3+1),a
  53.                 ld      ix,word_0_8353
  54.                 call    sub_0_826A
  55.                 ld      (EAmplitude_ch1),a               ;Amplitude 1 right/left
  56.                 ld      (EFrequency_ch0+1),hl
  57.                 push    hl
  58.  
  59. loc_0_8055:
  60.                 ld      hl,0
  61.                 call    sub_0_815C
  62.                 ld      (loc_0_8073+1),hl
  63.                 rl      h
  64.                 jr      nc,loc_0_8065
  65.                 ld      (loc_0_80E3+1),a
  66.  
  67. loc_0_8065:
  68.                 ld      ix,word_0_836C
  69.                 call    sub_0_826A
  70.                 ld      (EAmplitude_ch2),a              ;Amplitude 2 right/left
  71.                 ld      (EFrequency_ch2),hl
  72.                 push    hl
  73.  
  74. loc_0_8073:
  75.                 ld      hl,0
  76.                 call    sub_0_815C
  77.                 ld      (loc_0_8091+1),hl
  78.                 rl      h
  79.                 jr      nc,loc_0_8083
  80.                 ld      (loc_0_80E3+1),a
  81.  
  82. loc_0_8083:
  83.                 ld      ix,word_0_8385
  84.                 call    sub_0_826A
  85.                 ld      (EAmplitude_ch3),a              ;Amplitude 3 right/left
  86.                 ld      (EFrequency_ch2+1),hl
  87.                 push    hl
  88.  
  89. loc_0_8091:
  90.                 ld      hl,0
  91.                 call    sub_0_815C
  92.                 ld      (loc_0_80AB+1),hl
  93.                 ld      (loc_0_80DD+1),a
  94.  
  95.                 ld      ix,word_0_839E
  96.                 call    sub_0_826A
  97.                 ld      (EAmplitude_ch4),a              ;Amplitude 4 right/left
  98.                 ld      (EFrequency_ch4),hl
  99.                 push    hl
  100.  
  101. loc_0_80AB:
  102.                 ld      hl,0
  103.                 call    sub_0_815C
  104.                 ld      (loc_0_80C9+1),hl
  105.                 rl      h
  106.                 jr      nc,loc_0_80BB
  107.                 ld      (loc_0_80DD+1),a
  108.  
  109. loc_0_80BB:
  110.                 ld      ix,word_0_83B7
  111.                 call    sub_0_826A
  112.                 ld      (EAmplitude_ch5),a                ;Amplitude 5 right/left
  113.                 ld      (EFrequency_ch4+1),hl
  114.                 push    hl
  115.  
  116. loc_0_80C9:
  117.                 ld      hl,0
  118.                 call    sub_0_815C
  119.                 rr      l
  120.                 rr      l
  121.                 rr      h
  122.                 rr      h
  123.                 ld      (EFrequency_en),hl               ;Freqency and Noise enable
  124.                 rlca   
  125.                 jr      c,loc_0_80E0
  126.  
  127. loc_0_80DD:
  128.                 ld      a,0
  129.                 rlca   
  130.  
  131. loc_0_80E0:
  132.                 rlca   
  133.                 rlca   
  134.                 rlca   
  135.  
  136. loc_0_80E3:
  137.                 or      0
  138.  
  139. loc_0_80E5:
  140.                 or      0
  141.                 ld      (ENoise_gen),a                  ;Noise generator 0 and 1
  142.                 pop     af
  143.                 pop     bc
  144.                 call    sub_0_8157
  145.                 or      b
  146.                 ld      h,a
  147.                 pop     af
  148.                 pop     bc
  149.                 call    sub_0_8157
  150.                 or      b
  151.                 ld      l,a
  152.                 ld      (EOctave_ch2),hl                ;Octave 2 and 3 and 4 and 5
  153.                 pop     af
  154.                 pop     bc
  155.                 call    sub_0_8157
  156.                 or      b
  157.                 ld      (EOctave_ch0),a                ;Octave 1 and 0
  158.                 ld      bc,0xfffd
  159.                 ld      de,1C01h                       ;регистр 1Сh,бит SE=1
  160.                 out     (c),d
  161.                 ld b,0xbf
  162.                 out     (c),e                          ;разрешить все каналы
  163.                 ld      hl,EEnvelope_gen1              ;таблица данных звукового канала
  164.                 ld      d,19h                          ;размер данных для одного канала
  165.  
  166. loc_0_8114:
  167.                 ld b,0xff
  168.                 out     (c),d                          ;загружаем номер регистра
  169.                 ld b,0xbf
  170.                 ld      a,(hl)                         ;читаем значение из таблицы
  171.                 out     (c),a                          ;выводим в порт
  172.                 dec     d                               ;следующий байт
  173.                 ret     m                               ;выход по окончании записи
  174.                 dec     hl                              ;переходим к следующим значениям
  175.                 jr      loc_0_8114                      ;продолжим запись в порт
  176.  
  177.                 db    5  
  178.                 db  21h
  179.                 db  3Ch
  180.                 db  55h
  181.                 db  6Dh
  182.                 db  84h
  183.                 db  99h
  184.                 db 0ADh
  185.                 db 0C0h
  186.                 db 0D2h
  187.                 db 0E3h
  188.                 db 0F3h
  189. unk_0_812C:     db 0FEh
  190.                 db    1  
  191.                 db    0  
  192.                 db    0  
  193.                 db 0FCh
  194. unk_0_8131:     db    0
  195.                 db  96h
  196.                 db  9Eh
  197.                 db  9Ah
  198.                 db  86h
  199.                 db  8Eh
  200.                 db  8Ah
  201.                 db  97h
  202.                 db  9Fh
  203.                 db  9Bh
  204.                 db  87h
  205.                 db  8Fh
  206.                 db  8Bh
  207. unk_0_813E:     db 0FEh
  208.                 db    0  
  209. unk_0_8140:     db 0FFh
  210.                 db 0D2h
  211.                 db  57h
  212.                 db  72h
  213.                 db    0
  214.                 db  52h
  215.                 db 0ABh
  216.                 db  51h
  217.                 db  61h
  218.                 db  50h
  219.                 db  52h
  220.                 db  30h
  221.                 db 0C2h
  222.                 db  2Eh
  223.                 db  35h
  224.                 db  21h
  225.                 db  29h
  226.                 db  11h
  227.                 db  41h
  228.                 db  0Fh
  229.                 db  46h
  230.                 db    0
  231.                 db  3Ah
  232.  
  233.  
  234. sub_0_8157:
  235.                 rlca   
  236.                 rlca   
  237.                 rlca   
  238.                 rlca   
  239.                 ret    
  240.  
  241. sub_0_815C:
  242.                 ex      af,af'
  243.                 rrca   
  244.                 rr      l
  245.                 rrca   
  246.                 rr      h
  247.                 ret    
  248.  
  249. sub_0_8164:
  250.                 sla     c
  251.                 ld      b,0
  252.                 add     hl,bc
  253.  
  254. sub_0_8169:
  255.                 ld      c,(hl)                          ;читаем  младший байт адреса смещения
  256.                 inc     hl
  257.                 ld      b,(hl)                         ;читаем старший байт адреса смещения
  258.                 inc     hl                              ;переходим к следующему адресу
  259.                 push    hl
  260.  
  261. loc_0_816E:
  262.                 ld      hl,0                           ;адрес музыки
  263.                 add     hl,bc                          ;получим адрес таблицы
  264.                 ld      c,l                            ;младший байт адреса
  265.                 ld      b,h                            ;старший байт адреса
  266.                 pop     hl
  267.                 ret    
  268.  
  269. loc_0_8176:
  270.                 ld      hl,0
  271.                 call    sub_0_8164
  272.                 ld      (ix++0Fh),c
  273.                 ld      (ix++10h),b
  274.                 ld      hl,unk_0_812C
  275.                 ld      (ix++4),l
  276.                 ld      (ix++5),h
  277.                 jr      loc_0_81D4
  278. loc_0_818D:
  279.                 ld      hl,0
  280.                 call    sub_0_8164
  281.                 ld      (ix++11h),c
  282.                 ld      (ix++12h),b
  283.                 ld      hl,unk_0_813E
  284.                 ld      (ix++8),l
  285.                 ld      (ix++9),h
  286.                 jr      loc_0_81E0
  287. sub_0_81A4:
  288.                 dec     (ix++13h)
  289.                 ret     p
  290.                 ld      a,b
  291.                 cp      3
  292.                 ld      hl,EEnvelope_gen0
  293.                 jr      nc,loc_0_81B1
  294.                 inc     hl
  295. loc_0_81B1:
  296.                 ld      (loc_0_81FB+1),hl
  297. loc_0_81B4:
  298.                 ld      e,(ix++0)
  299.                 ld      d,(ix++1)
  300. loc_0_81BA:
  301.                 ld      hl,unk_0_8140
  302. loc_0_81BD:
  303.                 ld      a,(de)
  304.                 inc     hl
  305.                 sub     (hl)
  306.                 inc     hl
  307.                 jr      c,loc_0_81BD
  308.                 inc     de
  309.                 ld      c,a
  310.                 ld      a,(hl)
  311.                 ld      (loc_0_81C9+1),a
  312. loc_0_81C9:
  313.                 jr      loc_0_81C9
  314. loc_0_81CB:
  315.                 ld      (ix++0Eh),c
  316.                 ld      c,(ix++0Fh)
  317.                 ld      b,(ix++10h)
  318. loc_0_81D4:
  319.                 ld      (ix++2),c
  320.                 ld      (ix++3),b
  321.                 ld      c,(ix++11h)
  322.                 ld      b,(ix++12h)
  323. loc_0_81E0:
  324.                 ld      (ix++6),c
  325.                 ld      (ix++7),b
  326.                 ld      (ix++14h),1
  327.                 ld      (ix++15h),1
  328.                 ld      (ix++16h),1
  329.                 jr      loc_0_81BA
  330. loc_0_81F4:
  331.                 ld      b,0
  332.                 ld      hl,unk_0_8131
  333.                 add     hl,bc
  334.                 ld      a,(hl)
  335. loc_0_81FB:
  336.                 ld      (0),a
  337.                 jr      loc_0_81BA
  338. loc_0_8200:
  339.                 ld      (ix++17h),c
  340.                 jr      loc_0_81BA
  341. loc_0_8205:
  342.                 ld      a,c
  343.                 inc     a
  344.                 ld      (loc_0_8028+1),a
  345.                 jr      loc_0_81BA
  346. loc_0_820C:
  347.                 ld      (ix++18h),c
  348.                 jr      loc_0_81BA
  349. loc_0_8211:
  350.                 jr      z,loc_0_8215
  351.                 ld      c,3
  352. loc_0_8215:
  353.                 ld      hl,(loc_0_81FB+1)
  354.                 inc     hl
  355.                 inc     hl
  356.                 ld      (hl),c
  357.                 jr      loc_0_81BA
  358. loc_0_821D:
  359.                 ld      bc,unk_0_812C
  360.                 jr      loc_0_81D4
  361. loc_0_8222:
  362.                 ld      (ix++13h),c
  363.                 ld      (ix++0),e
  364.                 ld      (ix++1),d
  365.                 ret    
  366. loc_0_822C:
  367.                 call    sub_0_8461
  368.                 jp      loc_0_81B4
  369. loc_0_8232:
  370.                 cp      7Fh ; ''
  371.                 jr      z,loc_0_823F
  372.                 cp      7Eh ; '~'
  373.                 jr      z,loc_0_8247
  374.                 add     a,2
  375.                 ld      c,a
  376.                 jr      loc_0_827D
  377. loc_0_823F:
  378.                 ld      (ix++4),l
  379.                 ld      (ix++5),h
  380.                 jr      loc_0_827D
  381. loc_0_8247:
  382.                 ld      l,(ix++4)
  383.                 ld      h,(ix++5)
  384.                 jr      loc_0_827D
  385. loc_0_824F:
  386.                 inc     a
  387.                 jr      z,loc_0_825A
  388.                 inc     a
  389.                 jr      z,loc_0_8262
  390.                 sub     60h ; '`'
  391.                 ld      c,a
  392.                 jr      loc_0_829F
  393. loc_0_825A:
  394.                 ld      l,(ix++8)
  395.                 ld      h,(ix++9)
  396.                 jr      loc_0_829F
  397. loc_0_8262:
  398.                 ld      (ix++8),l
  399.                 ld      (ix++9),h
  400.                 jr      loc_0_829F
  401. sub_0_826A:
  402.                 ld      e,(ix++0Ah)
  403.                 ld      d,(ix++0Bh)
  404.                 dec     (ix++15h)
  405.                 ld      l,(ix++2)
  406.                 ld      h,(ix++3)
  407.                 jr      nz,loc_0_828E
  408.                 ld      c,1
  409. loc_0_827D:
  410.                 ld      a,(hl)
  411.                 inc     hl
  412.                 rrca   
  413.                 jr      nc,loc_0_8232
  414.                 ld      (ix++15h),c
  415.                 ld      (ix++0Bh),a
  416.                 ld      e,(hl)
  417.                 ld      d,a
  418.                 ld      (ix++0Ah),e
  419.                 inc     hl
  420. loc_0_828E:
  421.                 push    hl
  422.                 ld      a,(ix++0Dh)
  423.                 dec     (ix++14h)
  424.                 jr      nz,loc_0_82B1
  425.                 ld      c,1
  426.                 ld      l,(ix++6)
  427.                 ld      h,(ix++7)
  428. loc_0_829F:
  429.                 ld      a,(hl)
  430.                 inc     hl
  431.                 cp      60h ; '`'
  432.                 jr      nc,loc_0_824F
  433.                 ld      (ix++14h),c
  434.                 ld      (ix++0Dh),a
  435.                 ld      (ix++6),l
  436.                 ld      (ix++7),h
  437. loc_0_82B1:
  438.                 add     a,(ix++0Eh)
  439.                 cp      5Fh ; '_'
  440.                 ld      hl,7FFh
  441.                 jr      z,loc_0_82D1
  442. loc_0_82BB:
  443.                 add     a,0
  444.                 jr      nc,loc_0_82C1
  445.                 sub     60h ; '`'
  446. loc_0_82C1:
  447.                 ld      hl,0FF0Ch
  448.                 ld      b,h
  449. loc_0_82C5:
  450.                 inc     h
  451.                 sub     l
  452.                 jr      nc,loc_0_82C5
  453.                 ld      c,a
  454.                 ld      a,h
  455.                 ld      hl,unk_0_812C
  456.                 add     hl,bc
  457.                 ld      l,(hl)
  458.                 ld      h,a
  459. loc_0_82D1:
  460.                 add     hl,de
  461.                 ld      a,h
  462.                 and     7
  463.                 ld      h,a
  464.                 ld      a,d
  465.                 rrca   
  466.                 rrca   
  467.                 rrca   
  468.                 and     0Fh
  469.                 ex      af,af'
  470.                 ex      de,hl
  471.                 pop     hl
  472.                 ld      a,(ix++0Ch)
  473.                 dec     (ix++16h)
  474.                 jr      nz,loc_0_82F4
  475.                 ld      a,(hl)
  476.                 inc     hl
  477. loc_0_82E9:
  478.                 cp      0
  479.                 jr      nz,loc_0_8322
  480.                 ld      c,(hl)
  481.                 inc     hl
  482. loc_0_82EF:
  483.                 ld      a,(hl)
  484.                 inc     hl
  485. loc_0_82F1:
  486.                 ld      (ix++16h),c
  487. loc_0_82F4:
  488.                 ld      (ix++2),l
  489.                 ld      (ix++3),h
  490.                 ld      (ix++0Ch),a
  491.                 ex      de,hl
  492.                 ld      b,(ix++18h)
  493.                 ld      c,a
  494.                 and     0Fh
  495.                 sub     b
  496.                 jr      nc,loc_0_8308
  497.                 xor     a
  498. loc_0_8308:
  499.                 ld      e,a
  500.                 ld      a,c
  501.                 and     0F0h ; 'Ё'
  502.                 call    sub_0_8157
  503.                 sub     b
  504.                 jr      nc,loc_0_8313
  505.                 xor     a
  506. loc_0_8313:
  507.                 ld      d,a
  508.                 ld      a,(ix++17h)
  509.                 or      a
  510.                 ld      a,e
  511.                 jr      nz,loc_0_831D
  512.                 ld      a,d
  513.                 ld      d,e
  514. loc_0_831D:
  515.                 call    sub_0_8157
  516.                 or      d
  517.                 ret    
  518. loc_0_8322:
  519.                 push    hl
  520.                 ld      b,a
  521. loc_0_8324:
  522.                 ld      hl,0
  523. loc_0_8327:
  524.                 ld      a,(hl)
  525.                 or      a
  526.                 jr      z,loc_0_8334
  527.                 inc     hl
  528.                 ld      c,(hl)
  529.                 inc     hl
  530.                 cp      b
  531.                 jr      nz,loc_0_8327
  532.                 pop     hl
  533.                 jr      loc_0_82EF
  534. loc_0_8334:
  535.                 pop     hl
  536.                 ld      c,1
  537.                 ld      a,b
  538.                 jr      loc_0_82F1
  539. word_0_833A:   
  540.                 ds      25
  541. word_0_8353:   
  542.                 ds      25
  543. word_0_836C:   
  544.                 ds      25
  545. word_0_8385:   
  546.                 ds      25
  547. word_0_839E:   
  548.                 ds      25
  549. word_0_83B7:   
  550.                 ds      25
  551.  
  552. EAmplitude_ch0: db      0                               ;+00h - Amplitude 0 right/left
  553. EAmplitude_ch1: db      0                               ;+01h - Amplitude 1 right/left
  554. EAmplitude_ch2: db      0                               ;+02h - Amplitude 2 right/left
  555. EAmplitude_ch3: db      0                               ;+03h - Amplitude 3 right/left
  556. EAmplitude_ch4: db      0                               ;+04h - Amplitude 4 right/left
  557. EAmplitude_ch5: db      0                               ;+05h - Amplitude 5 right/left
  558.                 db      0                               ;+06h - XXXX
  559.                 db      0                               ;+07h - XXXX
  560. EFrequency_ch0: db      0                               ;+08h - Frequency of tone 0
  561.                 db      0                               ;+09h - Frequency of tone 1
  562. EFrequency_ch2: db      0                               ;+0Ah - Frequency of tone 2
  563.                 db      0                               ;+0Bh - Frequency of tone 3
  564. EFrequency_ch4: db      0                               ;+0Ch - Frequency of tone 4
  565.                 db      0                               ;+0Dh - Frequency of tone 5
  566.                 db      0                               ;+OEh - XXXX   
  567.                 db      0                               ;+0Fh - XXXX
  568. EOctave_ch0:    db      0                               ;+10h - Octave 1 and 0
  569. EOctave_ch2:    db      0                               ;+11h - Octave 3 and 2
  570.                 db      0                               ;+12h - Octave 5 and 4
  571.                 db      0                               ;+13h - XXXX
  572. EFrequency_en:  db      0                               ;+14h - Frequency enable
  573.                 db      0                               ;+15h - Noise enable
  574. ENoise_gen:     db      0                               ;+16h - Noise generator 0 and 1
  575.                 db      0                               ;+17h - XXXX
  576. EEnvelope_gen0: db      0                               ;+18h - Envelope generator 0
  577. EEnvelope_gen1: db      0                               ;+19h - Envelope generator 1
  578.  
  579. word_0_83EA:    dw      0
  580.        
  581. loc_0_83EC:
  582.                 ld      a,6                             ;добавил инициализацию первого канала
  583.                 ld      (loc_0_8028+1),a                ;иначе некоректно стратуют некоторые модули
  584.  
  585.                 ld      (loc_0_816E+1),hl               ;сохраним адрес музыки
  586.                 call    sub_0_8169                      ;получим адрес 1 таблицы
  587.                 ld      (sub_0_8461+1),bc               ;сохраним адрес
  588.                 call    sub_0_8169                      ;получим адрес 2 таблицы
  589.                 ld      (loc_0_8476+1),bc               ;сохраним адрес
  590.                 call    sub_0_8169                      ;получим адрес 3 таблицы
  591.                 ld      (loc_0_8176+1),bc               ;сохраним адрес
  592.                 call    sub_0_8169                      ;получим адрес 4 таблицы
  593.                 ld      (loc_0_818D+1),bc               ;сохраним адрес
  594.                 call    sub_0_8169                      ;получим адрес 5 таблицы
  595.                 ld      a,(bc)
  596.                 inc     bc
  597.                 ld      (loc_0_82E9+1),a                ;сохраним адрес
  598.                 ld      (loc_0_8324+1),bc
  599.                 ld      hl,word_0_833A                  ;начальный адрес служебных данных
  600.                 ld      b,0B2h                          ;размер области служебных данных
  601.                 xor     a                               ;байт заполнения - 00h
  602. loc_0_841D:
  603.                 ld      (hl),a                          ;очищаем служебную область
  604.                 inc     hl
  605.                 djnz    loc_0_841D
  606.                 inc     a
  607.                 ld      (EPlayer_Play+1),a               ;установим номер текущего канала - 01h
  608.                 ld      ix,word_0_833A                 ;адрес служебных данных 1 канала
  609.                 ld      de,19h                         ;размер данных для одного канала
  610.                 ld      b,6
  611. loc_0_842E:
  612.                 ld      (ix++14h),1
  613.                 ld      (ix++15h),1
  614.                 ld      (ix++16h),1
  615.                 ld      hl,unk_0_812C
  616.                 ld      (ix++0Fh),l
  617.                 ld      (ix++10h),h
  618.                 ld      (ix++2),l
  619.                 ld      (ix++3),h
  620.                 ld      hl,unk_0_813E
  621.                 ld      (ix++11h),l
  622.                 ld      (ix++12h),h
  623.                 add     ix,de                           ;переходим к следующему каналу
  624.                 djnz    loc_0_842E
  625.                 ld      de,1C02h                        ;регистр 1Сh SAA1099 - выключим звук
  626.                 ld      bc,0xfffd
  627.                 out     (c),d
  628.                 ld b,0xbf
  629.                 out     (c),e                          ;иництализация микросхемы
  630. sub_0_8461:
  631.                 ld      hl,0                            ;адрес 1 таблицы
  632. loc_0_8464:
  633.                 ld      c,(hl)
  634.                 ld      a,c
  635.                 inc     hl
  636.                 inc     a
  637.                 jr      z,loc_0_84A4
  638.                 inc     a
  639.                 jr      z,loc_0_84A9
  640.                 sub     62h ; 'b'
  641.                 jr      nc,loc_0_84AE
  642.                 ld      (sub_0_8461+1),hl
  643.                 sla     c
  644. loc_0_8476:
  645.                 ld      hl,0
  646.                 call    sub_0_8164
  647.                 ld      (word_0_833A),bc
  648.                 call    sub_0_8169
  649.                 ld      (word_0_8353),bc
  650.                 call    sub_0_8169
  651.                 ld      (word_0_836C),bc
  652.                 call    sub_0_8169
  653.                 ld      (word_0_8385),bc
  654.                 call    sub_0_8169
  655.                 ld      (word_0_839E),bc
  656.                 call    sub_0_8169
  657.                 ld      (word_0_83B7),bc
  658.                 ret    
  659. loc_0_84A4:
  660.                 ld      hl,0
  661.                 jr      loc_0_8464
  662. loc_0_84A9:
  663.                 ld      (loc_0_84A4+1),hl
  664.                 jr      loc_0_8464
  665. loc_0_84AE:
  666.                 ld      (loc_0_82BB+1),a
  667.                 jr      loc_0_8464
  668. ;               .end
  669.