Subversion Repositories tsfmpro

Rev

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

  1. ;--------------------------------------------------------------------
  2. ; Описание: Проигрывающий модуль от группы ESI
  3. ; портирован  с компьютера Sam Coupe
  4. ; Автор порта: Тарасов М.Н.(Mick),2010
  5. ;--------------------------------------------------------------------
  6. ;-------------------------------------------------------------------
  7. ; описание: Инициализация проигрывателя
  8. ; параметры: нет
  9. ; возвращаемое  значение: нет
  10. ;---------------------------------------------------------------------
  11. ESIPlayer_Init:
  12.                 ld      hl,0
  13.                 ld      (loc_0_800D+1), hl
  14. ESIPlayer_InitS:
  15.                 ld      hl,0
  16.                 ld      (loc_0_8128+1), hl
  17.                 ld      (loc_0_8184+1), hl
  18.                 ld      (loc_0_81E3+1), hl
  19.                 ld      (loc_0_823D+1), hl
  20.                 ld      (loc_0_829A+1), hl
  21.                 ld      (loc_0_82F4+1), hl
  22.                 ld      (ESIPlayer_loc0+1),hl
  23.                 ld      (ESIPlayer_loc1+1),hl
  24.                 ld      (ESIPlayer_loc2+1),hl
  25.                 ld      (ESIPlayer_loc3+1),hl
  26.                 ld      (ESIPlayer_loc4+1),hl
  27.                 ld      (ESIPlayer_loc5+1),hl
  28.                 ld      hl,ESIPlayer_Play + 1
  29.                 ld      (hl),1
  30.                 ld      (loc_0_8006+1), hl
  31.                 ; ld    bc, 1FFh
  32.                 ; ld    (hl), b
  33.                 ld      bc,0xfffd
  34.                 ld      de, 1C02h
  35.                 jp outdesaa
  36.                
  37. ;-------------------------------------------------------------------
  38. ; описание: Проигрывание текущей ноты
  39. ; параметры: нет
  40. ; возвращаемое  значение: нет
  41. ;---------------------------------------------------------------------
  42. ESIPlayer_Play:
  43.                 ld      a,1
  44.                 dec     a
  45.                 jp      nz, loc_0_8123
  46.  
  47. loc_0_8006:
  48.                 ld      hl,0
  49.                 ld      a, (hl)
  50.                 rrca   
  51.                 jr      nc, loc_0_8022
  52. loc_0_800D:
  53.                 ld      hl,0
  54.                 ld      e, (hl)
  55.                 inc     l
  56.                 ld      d, (hl)
  57.                 ld      (loc_0_800D+1), de
  58.                 inc     l
  59.                 ld      a, (hl)
  60.                 ld      (loc_0_8126+1), a
  61.                 inc     l
  62.                 ld      e, (hl)
  63.                 inc     l
  64.                 ld      d, (hl)
  65.                 ex      de, hl
  66.                 ld      a, (hl)
  67. loc_0_8022:
  68.                 ld      c, a
  69.                 inc     hl
  70.                 ld      a, (hl)
  71.                 ld      (loc_0_851E+1), a
  72.                 and     40h
  73.                 ld      a, 3
  74.                 jr      nz, loc_0_802F
  75.                 xor     a
  76. loc_0_802F:
  77.                 ld      (loc_0_8517+1), a
  78.                 inc     hl
  79.                 ld      a, (hl)
  80.                 ld      (loc_0_8527+1), a
  81.                 and     40h
  82.                 ld      a, 30h
  83.                 jr      nz, loc_0_803E
  84.                 xor     a
  85. loc_0_803E:
  86.                 ld      (loc_0_8519+1), a
  87.                 inc     hl
  88.                 rrc     c
  89.                 jr      nc, loc_0_8067
  90.                 ld      a, (hl)
  91.                 ld      (loc_0_8150+1), a
  92.                 inc     hl
  93.                 ld      e, (hl)
  94.                 inc     hl
  95.                 ex      de, hl
  96.                 ld      a, c
  97. ESIPlayer_loc0:
  98.                 ld      bc,0
  99.                 ld      h, c
  100.                 add     hl, hl
  101.                 add     hl, hl
  102.                 add     hl, bc
  103.                 ld      c, (hl)
  104.                 inc     l
  105.                 ld      b, (hl)
  106.                 inc     l
  107.                 ld      (loc_0_8128+1), bc
  108.                 ld      c, (hl)
  109.                 inc     l
  110.                 ld      b, (hl)
  111.                 ld      (loc_0_813F+1), bc
  112.                 ld      c, a
  113.                 ex      de, hl
  114. loc_0_8067:
  115.                 rrc     c
  116.                 jr      nc, loc_0_808C
  117.                 ld      a, (hl)
  118.                 ld      (loc_0_81AC+1), a
  119.                 inc     hl
  120.                 ld      e, (hl)
  121.                 inc     hl
  122.                 ex      de, hl
  123.                 ld      a, c
  124. ESIPlayer_loc1:
  125.                 ld      bc,0
  126.                 ld      h, c
  127.                 add     hl, hl
  128.                 add     hl, hl
  129.                 add     hl, bc
  130.                 ld      c, (hl)
  131.                 inc     l
  132.                 ld      b, (hl)
  133.                 inc     l
  134.                 ld      (loc_0_8184+1), bc
  135.                 ld      c, (hl)
  136.                 inc     l
  137.                 ld      b, (hl)
  138.                 ld      (loc_0_819B+1), bc
  139.                 ld      c, a
  140.                 ex      de, hl
  141. loc_0_808C:
  142.                 rrc     c
  143.                 jr      nc, loc_0_80B1
  144.                 ld      a, (hl)
  145.                 ld      (loc_0_820B+1), a
  146.                 inc     hl
  147.                 ld      e, (hl)
  148.                 inc     hl
  149.                 ex      de, hl
  150.                 ld      a, c
  151. ESIPlayer_loc2:
  152.                 ld      bc,0
  153.                 ld      h,c
  154.                 add     hl,hl
  155.                 add     hl,hl
  156.                 add     hl,bc
  157.                 ld      c,(hl)
  158.                 inc     l
  159.                 ld      b, (hl)
  160.                 inc     l
  161.                 ld      (loc_0_81E3+1), bc
  162.                 ld      c, (hl)
  163.                 inc     l
  164.                 ld      b, (hl)
  165.                 ld      (loc_0_81FA+1), bc
  166.                 ld      c, a
  167.                 ex      de, hl
  168. loc_0_80B1:
  169.                 rrc     c
  170.                 jr      nc, loc_0_80D6
  171.                 ld      a, (hl)
  172.                 ld      (loc_0_8265+1), a
  173.                 inc     hl
  174.                 ld      e, (hl)
  175.                 inc     hl
  176.                 ex      de, hl
  177.                 ld      a, c
  178. ESIPlayer_loc3:
  179.                 ld      bc,0
  180.                 ld      h, c
  181.                 add     hl, hl
  182.                 add     hl, hl
  183.                 add     hl, bc
  184.                 ld      c, (hl)
  185.                 inc     l
  186.                 ld      b, (hl)
  187.                 inc     l
  188.                 ld      (loc_0_823D+1), bc
  189.                 ld      c, (hl)
  190.                 inc     l
  191.                 ld      b, (hl)
  192.                 ld      (loc_0_8254+1), bc
  193.                 ld      c, a
  194.                 ex      de, hl
  195. loc_0_80D6:
  196.                 rrc     c
  197.                 jr      nc, loc_0_80FB
  198.                 ld      a, (hl)
  199.                 ld      (loc_0_82C2+1), a
  200.                 inc     hl
  201.                 ld      e, (hl)
  202.                 inc     hl
  203.                 ex      de, hl
  204.                 ld      a, c
  205. ESIPlayer_loc4:
  206.                 ld      bc,0
  207.                 ld      h, c
  208.                 add     hl, hl
  209.                 add     hl, hl
  210.                 add     hl, bc
  211.                 ld      c, (hl)
  212.                 inc     l
  213.                 ld      b, (hl)
  214.                 inc     l
  215.                 ld      (loc_0_829A+1), bc
  216.                 ld      c, (hl)
  217.                 inc     l
  218.                 ld      b, (hl)
  219.                 ld      (loc_0_82B1+1), bc
  220.                 ld      c, a
  221.                 ex      de, hl
  222. loc_0_80FB:
  223.                 rrc     c
  224.                 jr      nc, loc_0_811E
  225.                 ld      a, (hl)
  226.                 ld      (loc_0_831C+1), a
  227.                 inc     hl
  228.                 ld      e, (hl)
  229.                 inc     hl
  230.                 ex      de, hl
  231. ESIPlayer_loc5:
  232.                 ld      bc,0
  233.                 ld      h, c
  234.                 add     hl, hl
  235.                 add     hl, hl
  236.                 add     hl, bc
  237.                 ld      c, (hl)
  238.                 inc     l
  239.                 ld      b, (hl)
  240.                 inc     l
  241.                 ld      (loc_0_82F4+1),bc
  242.                 ld      c, (hl)
  243.                 inc     l
  244.                 ld      b, (hl)
  245.                 ld      (loc_0_830B+1),bc
  246.                 ex      de, hl
  247. loc_0_811E:
  248.                 ld      a, (hl)
  249.                 inc     hl
  250.                 ld      (loc_0_8006+1),hl
  251. loc_0_8123:
  252.                 ld      (ESIPlayer_Play+1),a
  253. loc_0_8126:
  254.                 ld      c,0
  255. loc_0_8128:
  256.                 ld      hl,0
  257.                 ld      e,(hl)
  258.                 inc     hl
  259.                 ld      d,(hl)
  260.                 bit     7,d
  261.                 jr      z,loc_0_8136
  262.                 ex      de,hl
  263.                 ld      e, (hl)
  264.                 inc     hl
  265.                 ld      d, (hl)
  266. loc_0_8136:
  267.                 inc     hl
  268.                 ld      a, (hl)
  269.                 inc     hl
  270.                 ld      (loc_0_8356+1), a
  271.                 ld      (ESIAmplitude_ch0),a
  272.                 ld      (loc_0_8128+1), hl
  273. loc_0_813F:
  274.                 ld      hl, 0
  275.                 ld      a, (hl)
  276.                 cp      80h ; 'А'
  277.                 jr      c, loc_0_814B
  278.                 inc     hl
  279.                 ld      l, (hl)
  280.                 ld      h, a
  281.                 ld      a, (hl)
  282. loc_0_814B:
  283.                 inc     hl
  284.                 ld      (loc_0_813F+1), hl
  285.                 add     a, c
  286. loc_0_8150:
  287.                 add     a, 0
  288.                 add     a, a
  289.                 jr      nc, loc_0_8157
  290.                 sub     0C0h ; '└'
  291. loc_0_8157:
  292.                 push    de
  293.                 ld      d,0
  294.                 ld      e,a
  295.                 ld      hl,ESIPlayer_table
  296.                 add     hl,de
  297.                 pop     de             
  298.  
  299.                 ld      a,(hl)
  300.                 inc     l
  301.                 ld      h,(hl)
  302.                 ld      l,a
  303.                 add     hl,de
  304.                 ld      a,l
  305.                 ld      (loc_0_838C+1), a
  306.                 ld      (ESIFrequency_ch0),a
  307.                 ld      a,h
  308.                 and     7
  309.                 ld      (loc_0_83C7+1), a
  310.                 ld      a, d
  311.                 and     8
  312.                 rrca   
  313.                 rrca   
  314.                 rrca   
  315.                 ld      (loc_0_83E9+1), a
  316.                 xor     a
  317.                 bit     4, d
  318.                 jr      z, loc_0_8181
  319.                 ld      a, d
  320.                 and     3
  321.                 rlca   
  322.                 rlca   
  323.                 ld      (loc_0_8513+1), a
  324.                 ld      a, 1
  325. loc_0_8181:
  326.                 ld      (loc_0_8500+1), a
  327. loc_0_8184:
  328.                 ld      hl, 0
  329.                 ld      e, (hl)
  330.                 inc     hl
  331.                 ld      d, (hl)
  332.                 bit     7, d
  333.                 jr      z, loc_0_8192
  334.                 ex      de, hl
  335.                 ld      e, (hl)
  336.                 inc     hl
  337.                 ld      d, (hl)
  338. loc_0_8192:
  339.                 inc     hl
  340.                 ld      a, (hl)
  341.                 inc     hl
  342.                 ld      (loc_0_835F+1), a
  343.                 ld      (ESIAmplitude_ch1),a
  344.                 ld      (loc_0_8184+1), hl
  345. loc_0_819B:
  346.                 ld      hl, 0
  347.                 ld      a, (hl)
  348.                 cp      80h
  349.                 jr      c, loc_0_81A7
  350.                 inc     hl
  351.                 ld      l, (hl)
  352.                 ld      h, a
  353.                 ld      a, (hl)
  354. loc_0_81A7:
  355.                 inc     hl
  356.                 ld      (loc_0_819B+1), hl
  357.                 add     a, c
  358. loc_0_81AC:
  359.                 add     a, 0
  360.                 add     a, a
  361.                 jr      nc, loc_0_81B3
  362.                 sub     0C0h
  363. loc_0_81B3:
  364.                 push    de
  365.                 ld      d,0
  366.                 ld      e,a
  367.                 ld      hl,ESIPlayer_table
  368.                 add     hl,de
  369.                 pop     de             
  370.  
  371.                 ld      a, (hl)
  372.                 inc     l
  373.                 ld      h, (hl)
  374.                 ld      l, a
  375.                 add     hl, de
  376.                 ld      a, l
  377.                 ld      (loc_0_8395+1), a
  378.                 ld      (ESIFrequency_ch1),a
  379.                 ld      a, h
  380.                 and     7
  381.                 add     a, a
  382.                 add     a, a
  383.                 add     a, a
  384.                 add     a, a
  385.                 ld      (loc_0_83C9+1), a
  386.                 ld      a, d
  387.                 and     8
  388.                 rrca   
  389.                 rrca   
  390.                 ld      (loc_0_83EB+1), a
  391.                 xor     a
  392.                 bit     4, d
  393.                 jr      z, loc_0_81E0
  394.                 ld      a, d
  395.                 and     60h ; '`'
  396.                 rlca   
  397.                 rlca   
  398.                 ld      (loc_0_8513+1), a
  399.                 ld      a, 2
  400. loc_0_81E0:
  401.                 ld      (loc_0_8502+1), a
  402. loc_0_81E3:
  403.                 ld      hl,0
  404.                 ld      e,(hl)
  405.                 inc     hl
  406.                 ld      d,(hl)
  407.                 bit     7,d
  408.                 jr      z,loc_0_81F1
  409.                 ex      de,hl
  410.                 ld      e,(hl)
  411.                 inc     hl
  412.                 ld      d,(hl)
  413. loc_0_81F1:
  414.                 inc     hl
  415.                 ld      a,(hl)
  416.                 inc     hl
  417.                 ld      (loc_0_8368+1), a
  418.                 ld      (ESIAmplitude_ch2),a
  419.                 ld      (loc_0_81E3+1), hl
  420. loc_0_81FA:
  421.                 ld      hl,0
  422.                 ld      a, (hl)
  423.                 cp      80h
  424.                 jr      c,loc_0_8206
  425.                 inc     hl
  426.                 ld      l,(hl)
  427.                 ld      h,a
  428.                 ld      a,(hl)
  429. loc_0_8206:
  430.                 inc     hl
  431.                 ld      (loc_0_81FA+1), hl
  432.                 add     a,c
  433. loc_0_820B:
  434.                 add     a,0
  435.                 add     a,a
  436.                 jr      nc,loc_0_8212
  437.                 sub     0C0h
  438. loc_0_8212:
  439.                 push    de
  440.                 ld      d,0
  441.                 ld      e,a
  442.                 ld      hl,ESIPlayer_table
  443.                 add     hl,de
  444.                 pop     de             
  445.  
  446.                 ld      a,(hl)
  447.                 inc     l
  448.                 ld      h,(hl)
  449.                 ld      l,a
  450.                 add     hl,de
  451.                 ld      a,l
  452.                 ld      (loc_0_839E+1),a
  453.                 ld      (ESIFrequency_ch2),a
  454.                 ld      a,h
  455.                 and     7
  456.                 ld      (loc_0_83D2+1), a
  457.                 ld      a, d
  458.                 and     8
  459.                 rrca   
  460.                 ld      (loc_0_83ED+1), a
  461.                 xor     a
  462.                 bit     4, d
  463.                 jr      z, loc_0_823A
  464.                 ld      a, d
  465.                 and     60h ; '`'
  466.                 rlca   
  467.                 rlca   
  468.                 ld      (loc_0_8513+1), a
  469.                 ld      a, 4
  470. loc_0_823A:
  471.                 ld      (loc_0_8504+1), a
  472. loc_0_823D:
  473.                 ld      hl,0
  474.                 ld      e,(hl)
  475.                 inc     hl
  476.                 ld      d,(hl)
  477.                 bit     7,d
  478.                 jr      z,loc_0_824B
  479.                 ex      de,hl
  480.                 ld      e,(hl)
  481.                 inc     hl
  482.                 ld      d,(hl)
  483. loc_0_824B:
  484.                 inc     hl
  485.                 ld      a,(hl)
  486.                 inc     hl
  487.                 ld      (loc_0_8371+1),a
  488.                 ld      (ESIAmplitude_ch3),a
  489.                 ld      (loc_0_823D+1),hl
  490. loc_0_8254:
  491.                 ld      hl,0
  492.                 ld      a, (hl)
  493.                 cp      80h
  494.                 jr      c, loc_0_8260
  495.                 inc     hl
  496.                 ld      l, (hl)
  497.                 ld      h, a
  498.                 ld      a, (hl)
  499. loc_0_8260:
  500.                 inc     hl
  501.                 ld      (loc_0_8254+1), hl
  502.                 add     a, c
  503. loc_0_8265:
  504.                 add     a, 0
  505.                 add     a, a
  506.                 jr      nc, loc_0_826C
  507.                 sub     0C0h
  508. loc_0_826C:
  509.                 push    de
  510.                 ld      d,0
  511.                 ld      e,a
  512.                 ld      hl,ESIPlayer_table
  513.                 add     hl,de
  514.                 pop     de             
  515.  
  516.                 ld      a,(hl)
  517.                 inc     l
  518.                 ld      h,(hl)
  519.                 ld      l,a
  520.                 add     hl,de
  521.                 ld      a,l
  522.                 ld      (loc_0_83A7+1), a
  523.                 ld      (ESIFrequency_ch3),a
  524.                 ld      a,h
  525.                 and     7
  526.                 add     a,a
  527.                 add     a,a
  528.                 add     a,a
  529.                 add     a,a
  530.                 ld      (loc_0_83D4+1), a
  531.                 ld      a,d
  532.                 and     8
  533.                 ld      (loc_0_83EF+1), a
  534.                 xor     a
  535.                 bit     4,d
  536.                 jr      z,loc_0_8297
  537.                 ld      a,d
  538.                 and     60h
  539.                 rrca   
  540.                 rrca   
  541.                 ld      (loc_0_8515+1), a
  542.                 ld      a, 8
  543. loc_0_8297:
  544.                 ld      (loc_0_8506+1), a
  545. loc_0_829A:
  546.                 ld      hl,0
  547.                 ld      e,(hl)
  548.                 inc     hl
  549.                 ld      d,(hl)
  550.                 bit     7,d
  551.                 jr      z,loc_0_82A8
  552.                 ex      de,hl
  553.                 ld      e,(hl)
  554.                 inc     hl
  555.                 ld      d,(hl)
  556. loc_0_82A8:
  557.                 inc     hl
  558.                 ld      a, (hl)
  559.                 inc     hl
  560.                 ld      (loc_0_837A+1), a
  561.                 ld      (ESIAmplitude_ch4),a
  562.                 ld      (loc_0_829A+1), hl
  563. loc_0_82B1:
  564.                 ld      hl,0
  565.                 ld      a,(hl)
  566.                 cp      80h
  567.                 jr      c,loc_0_82BD
  568.                 inc     hl
  569.                 ld      l,(hl)
  570.                 ld      h,a
  571.                 ld      a,(hl)
  572. loc_0_82BD:
  573.                 inc     hl
  574.                 ld      (loc_0_82B1+1), hl
  575.                 add     a,c
  576. loc_0_82C2:
  577.                 add     a,0
  578.                 add     a,a
  579.                 jr      nc,loc_0_82C9
  580.                 sub     0C0h ; '└'
  581. loc_0_82C9:
  582.                 push    de
  583.                 ld      d,0
  584.                 ld      e,a
  585.                 ld      hl,ESIPlayer_table
  586.                 add     hl,de
  587.                 pop     de             
  588.  
  589.                 ld      a,(hl)
  590.                 inc     l
  591.                 ld      h,(hl)
  592.                 ld      l,a
  593.                 add     hl,de
  594.                 ld      a,l
  595.                 ld      (loc_0_83B0+1),a
  596.                 ld      (ESIFrequency_ch4),a
  597.                 ld      a,h
  598.                 and     7
  599.                 ld      (loc_0_83DD+1),a
  600.                 ld      a,d
  601.                 and     8
  602.                 rlca   
  603.                 ld      (loc_0_83F1+1), a
  604.                 xor     a
  605.                 bit     4,d
  606.                 jr      z,loc_0_82F1
  607.                 ld      a,d
  608.                 and     60h
  609.                 rrca   
  610.                 rrca   
  611.                 ld      (loc_0_8515+1), a
  612.                 ld      a, 10h
  613. loc_0_82F1:
  614.                 ld      (loc_0_8508+1), a
  615. loc_0_82F4:
  616.                 ld      hl,0
  617.                 ld      e,(hl)
  618.                 inc     hl
  619.                 ld      d,(hl)
  620.                 bit     7,d
  621.                 jr      z,loc_0_8302
  622.                 ex      de,hl
  623.                 ld      e,(hl)
  624.                 inc     hl
  625.                 ld      d,(hl)
  626. loc_0_8302:
  627.                 inc     hl
  628.                 ld      a,(hl)
  629.                 inc     hl
  630.                 ld      (loc_0_8383+1),a
  631.                 ld      (ESIAmplitude_ch5),a
  632.                 ld      (loc_0_82F4+1),hl
  633. loc_0_830B:
  634.                 ld      hl,0
  635.                 ld      a, (hl)
  636.                 cp      80h
  637.                 jr      c, loc_0_8317
  638.                 inc     hl
  639.                 ld      l, (hl)
  640.                 ld      h, a
  641.                 ld      a, (hl)
  642. loc_0_8317:
  643.                 inc     hl
  644.                 ld      (loc_0_830B+1), hl
  645.                 add     a, c
  646. loc_0_831C:
  647.                 add     a,0
  648.                 add     a,a
  649.                 jr      nc,loc_0_8323
  650.                 sub     0C0h
  651. loc_0_8323:
  652.                 push    de
  653.                 ld      d,0
  654.                 ld      e,a
  655.                 ld      hl,ESIPlayer_table
  656.                 add     hl,de
  657.                 pop     de             
  658.  
  659.                 ld      a,(hl)
  660.                 inc     l
  661.                 ld      h,(hl)
  662.                 ld      l,a
  663.                 add     hl,de
  664.                 ld      a,l
  665.                 ld      (loc_0_83B9+1), a
  666.                 ld      (ESIFrequency_ch5),a
  667.                 ld      a,h
  668.                 and     7
  669.                 add     a,a
  670.                 add     a,a
  671.                 add     a,a
  672.                 add     a,a
  673.                 ld      (loc_0_83DF+1), a
  674.                 ld      a,d
  675.                 and     8
  676.                 rlca   
  677.                 rlca   
  678.                 ld      (loc_0_83F3+1), a
  679.                 xor     a
  680.                 bit     4,d
  681.                 jr      z,loc_0_8350
  682.                 ld      a,d
  683.                 and     60h
  684.                 rrca   
  685.                 rrca   
  686.                 ld      (loc_0_8515+1), a
  687.                 ld      a,20h ; ' '
  688. loc_0_8350:
  689.                 ld      (loc_0_850A+1), a
  690.                 ld      bc,0xfffd
  691. loc_0_8356:
  692.                 ld      de,0
  693.                 call outdesaa
  694. loc_0_835F:
  695.                 ld      de,100h
  696.                 call outdesaa
  697. loc_0_8368:
  698.                 ld      de,200h
  699.                 call outdesaa
  700. loc_0_8371:
  701.                 ld      de,300h
  702.                 call outdesaa
  703. loc_0_837A:
  704.                 ld      de,400h
  705.                 call outdesaa
  706. loc_0_8383:
  707.                 ld      de,500h
  708.                 call outdesaa
  709. loc_0_838C:
  710.                 ld      de,800h
  711.                 call outdesaa
  712. loc_0_8395:
  713.                 ld      de,900h
  714.                 call outdesaa
  715. loc_0_839E:
  716.                 ld      de,0A00h
  717.                 call outdesaa
  718. loc_0_83A7:
  719.                 ld      de,0B00h
  720.                 call outdesaa
  721. loc_0_83B0:
  722.                 ld      de,0C00h
  723.                 call outdesaa
  724. loc_0_83B9:
  725.                 ld      de,0D00h
  726.                 call outdesaa
  727.                 ld      d,10h
  728.                 out     (c),d
  729.                 ld b,0xbf
  730. loc_0_83C7:
  731.                 ld      a,0
  732. loc_0_83C9:
  733.                 or      0
  734.                 ld      (ESIOctave_ch0),a
  735.                 out     (c),a
  736.                 ld b,0xff
  737.                 inc     d
  738.                 out     (c),d
  739.                 ld b,0xbf
  740. loc_0_83D2:
  741.                 ld      a,0
  742. loc_0_83D4:
  743.                 or      0
  744.                 ld      (ESIOctave_ch2),a
  745.                 out     (c),a
  746.                 ld b,0xff
  747.                 inc     d
  748.                 out     (c),d
  749.                 ld b,0xbf
  750. loc_0_83DD:
  751.                 ld      a,0
  752. loc_0_83DF:
  753.                 or      0
  754.                 ld      (ESIOctave_ch4),a
  755.                 out     (c),a
  756.                 ld b,0xff
  757.                 ld      d, 14h
  758.                 out     (c),d
  759.                 ld b,0xbf
  760. loc_0_83E9:
  761.                 ld      a,0
  762. loc_0_83EB:
  763.                 or      0
  764. loc_0_83ED:
  765.                 or      0
  766. loc_0_83EF:
  767.                 or      0
  768. loc_0_83F1:
  769.                 or      0
  770. loc_0_83F3:
  771.                 or      0
  772.                 out     (c),a
  773.                 ld b,0xff
  774.                 inc     d
  775.                 out     (c),d
  776.                 ld b,0xbf
  777.                 jp      loc_0_8500
  778.  
  779. ESIPlayer_table:
  780.                 dw      21h
  781.                 dw      3Ch
  782.                 dw      55h
  783.                 dw      6Dh
  784.                 dw      84h
  785.                 dw      99h
  786.                 dw      0ADh
  787.                 dw      0C0h
  788.                 dw      0D2h
  789.                 dw      0E3h
  790.                 dw      0F3h
  791.                 dw      105h
  792.                 dw      121h
  793.                 dw      13Ch
  794.                 dw      155h
  795.                 dw      16Dh
  796.                 dw      184h
  797.                 dw      199h
  798.                 dw      1ADh
  799.                 dw      1C0h
  800.                 dw      1D2h
  801.                 dw      1E3h
  802.                 dw      1F3h
  803.                 dw      205h
  804.                 dw      221h
  805.                 dw      23Ch
  806.                 dw      255h
  807.                 dw      26Dh
  808.                 dw      284h
  809.                 dw      299h
  810.                 dw      2ADh
  811.                 dw      2C0h
  812.                 dw      2D2h
  813.                 dw      2E3h
  814.                 dw      2F3h
  815.                 dw      305h
  816.                 dw      321h
  817.                 dw      33Ch
  818.                 dw      355h
  819.                 dw      36Dh
  820.                 dw      384h
  821.                 dw      399h
  822.                 dw      3ADh
  823.                 dw      3C0h
  824.                 dw      3D2h
  825.                 dw      3E3h
  826.                 dw      3F3h
  827.                 dw      405h
  828.                 dw      421h
  829.                 dw      43Ch
  830.                 dw      455h
  831.                 dw      46Dh
  832.                 dw      484h
  833.                 dw      499h
  834.                 dw      4ADh
  835.                 dw      4C0h
  836.                 dw      4D2h
  837.                 dw      4E3h
  838.                 dw      4F3h
  839.                 dw      505h
  840.                 dw      521h
  841.                 dw      53Ch
  842.                 dw      555h
  843.                 dw      56Dh
  844.                 dw      584h
  845.                 dw      599h
  846.                 dw      5ADh
  847.                 dw      5C0h
  848.                 dw      5D2h
  849.                 dw      5E3h
  850.                 dw      5F3h
  851.                 dw      605h
  852.                 dw      621h
  853.                 dw      63Ch
  854.                 dw      655h
  855.                 dw      66Dh
  856.                 dw      684h
  857.                 dw      699h
  858.                 dw      6ADh
  859.                 dw      6C0h
  860.                 dw      6D2h
  861.                 dw      6E3h
  862.                 dw      6F3h
  863.                 dw      705h
  864.                 dw      721h
  865.                 dw      73Ch
  866.                 dw      755h
  867.                 dw      76Dh
  868.                 dw      784h
  869.                 dw      799h
  870.                 dw      7ADh
  871.                 dw      7C0h
  872.                 dw      7D2h
  873.                 dw      7E3h
  874.                 dw      7F3h
  875.                 dw      7FFh
  876.  
  877. loc_0_8500:
  878.                 ld      a, 0
  879. loc_0_8502:
  880.                 or      0
  881. loc_0_8504:
  882.                 or      0
  883. loc_0_8506:
  884.                 or      0
  885. loc_0_8508:
  886.                 or      0
  887. loc_0_850A:
  888.                 or      0
  889.                 ld      (ESINoise_enable),a
  890.                 out     (c), a
  891.                 ld b,0xff
  892.                 inc     d
  893.                 out     (c), d
  894.                 ld b,0xbf
  895. loc_0_8513:
  896.                 ld      a, 0
  897. loc_0_8515:
  898.                 or      0
  899. loc_0_8517:
  900.                 or      0
  901. loc_0_8519:
  902.                 or      0
  903.                 out     (c), a
  904.                 ld b,0xff
  905. loc_0_851E:
  906.                 ld      de, 1800h
  907.                 call outdesaa
  908. loc_0_8527:
  909.                 ld      de, 1900h
  910.                 call outdesaa
  911.                 ld      de, 1C01h
  912. outdesaa:
  913.                 out     (c), d
  914.                 ld b,0xbf
  915.                 out     (c), e
  916.                 ld b,0xff
  917.                 ret
  918. ESIAmplitude_ch0:
  919.                 db      0                               ;+00h - Amplitude 0 right/left
  920. ESIAmplitude_ch1:
  921.                 db      0                               ;+01h - Amplitude 1 right/left
  922. ESIAmplitude_ch2:
  923.                 db      0                               ;+02h - Amplitude 2 right/left
  924. ESIAmplitude_ch3:
  925.                 db      0                               ;+03h - Amplitude 3 right/left
  926. ESIAmplitude_ch4:
  927.                 db      0                               ;+04h - Amplitude 4 right/left
  928. ESIAmplitude_ch5:
  929.                 db      0                               ;+05h - Amplitude 5 right/left
  930. ESINoise_enable:
  931.                 db      0
  932. ESIFrequency_ch0:
  933.                 db      0                               ;+08h - Frequency of tone 0
  934. ESIFrequency_ch1:
  935.                 db      0                               ;+09h - Frequency of tone 1
  936. ESIFrequency_ch2:
  937.                 db      0                               ;+0Ah - Frequency of tone 2
  938. ESIFrequency_ch3:
  939.                 db      0                               ;+0Bh - Frequency of tone 3
  940. ESIFrequency_ch4:
  941.                 db      0                               ;+0Ch - Frequency of tone 4
  942. ESIFrequency_ch5:
  943.                 db      0                               ;+0Dh - Frequency of tone 5
  944. ESIOctave_ch0:
  945.                 db      0                               ;+10h - Octave 1 and 0
  946. ESIOctave_ch2:
  947.                 db      0                               ;+11h - Octave 3 and 2
  948. ESIOctave_ch4:
  949.                 db      0                               ;+12h - Octave 5 and 4
  950.