Subversion Repositories ngs

Rev

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

  1.  
  2. ; LAST UPDATE: 24.11.2024 savelij
  3.  
  4.                 include macros.a80
  5.                 include ports_ngs.a80
  6.                 include equ_ngs.a80
  7.                 include version.a80
  8.  
  9. ;GSRomBaseL equ 0X0000
  10. ;GSRomBaseH equ 0Xc000
  11.  
  12. ;               ORG GSRomBaseL                  ;clear low ROM
  13. ;               DEFS 0X4000,0XFF
  14.  
  15. ;               ORG GSRomBaseH                  ;clear high ROM
  16. ;               DEFS 0X4000,0XFF
  17.  
  18.                 ORG GSRomBaseL
  19.                 DI
  20.                 JP INIT
  21.  
  22. ;---patched
  23. ;               DEFB 0X0A                       ;LOW    (in BCD!)
  24. ;               DEFB 0X01                       ;HIGH   (in BCD!)
  25.                 DW VERS_BIN
  26. ;---
  27.  
  28. ROMCRC          DW 0XE428                       ;CRC from original rom, corrupted!?
  29.  
  30.                 ORG GSRomBaseL+0X0030
  31.                 JP SGEN                         ;0X2030
  32.  
  33.                 ORG GSRomBaseL+0X0038
  34.  
  35. INT8            EX AF,AF'
  36.                 PUSH DE
  37.                 LD E,A
  38.                 LD D,IXH
  39.                 LD A,(DE)
  40.                 INC D
  41.                 LD A,(DE)
  42.                 INC D
  43.                 LD A,(DE)
  44.                 INC D
  45.                 LD A,(DE)
  46.                 INC E
  47.                 JR Z,INT8_
  48.                 LD A,E
  49.                 POP DE
  50.                 EX AF,AF'
  51.                 EI
  52.                 RET
  53.  
  54. INT8_           JP QTDONE
  55.  
  56.                 ORG GSRomBaseL+0X0066
  57. NMILP           POP HL
  58.                 LD A,L
  59.                 OUT (ZXDATWR),A
  60. NMILP2          IN A,(ZXSTAT)
  61.                 RLCA
  62.                 JR C,NMILP2
  63.                 LD A,H
  64.                 OUT (ZXDATWR),A
  65. NMILP3          IN A,(ZXSTAT)
  66.                 RLCA
  67.                 JR C,NMILP3
  68.                 JP NMILP
  69.  
  70.                 ORG GSRomBaseL+0X0080
  71.                 DB "This is improved ROM Version 1.04 Beta. "
  72.                 DB "Bugfixes by psb & Evgeny Muchkin, 2007.",0
  73.  
  74.                 ORG GSRomBaseL+0X0100
  75.                 DB "General  Sound (tm)  ROM"
  76.                 DB "Copyright   1997 Stinger"
  77.                 DB "Version ",VERS_TXT,"            "
  78.  
  79. ; LOW ROM INCLUDES
  80.  
  81. ;INCLUDE "INIT_L.a80"
  82. INIT            DI
  83.                 OUT (CLRCBIT),A
  84. INIT_           XOR A
  85.                 OUT (ZXDATWR),A
  86. ;               LD L,A
  87. ;               LD H,A
  88. ;               LD BC,0X0004
  89. ;               LD SP,0X0008
  90. ;               JR INIT02
  91.  
  92. ;INIT00        
  93.                 OUT (MPAG),A
  94. ;               LD SP,0XC000
  95. ;               LD C,0X04
  96. ;               DEC A
  97. ;INIT01         POP DE
  98. ;               ADD HL,DE
  99. ;               POP DE
  100. ;               ADD HL,DE
  101. ;               POP DE
  102. ;               ADD HL,DE
  103. ;               POP DE
  104. ;               ADD HL,DE
  105. ;INIT02         POP DE
  106. ;               ADD HL,DE
  107. ;               POP DE
  108. ;               ADD HL,DE
  109. ;               POP DE
  110. ;               ADD HL,DE
  111. ;               POP DE
  112. ;               ADD HL,DE
  113. ;               DJNZ INIT01
  114. ;               DEC C
  115. ;               JR NZ,INIT01
  116. ;               OR A
  117. ;               JR Z,INIT00
  118. ;               LD DE,(ROMCRC)
  119. ;               SBC HL,DE
  120. ;               LD HL,RAMPG
  121. ;---patched
  122. ;               LD A,2
  123. ;CREATE_LIST_PAGE
  124. ;               LD (HL),A
  125. ;               INC HL
  126. ;               INC A
  127. ;               CP 0X40
  128. ;               JR NZ,CREATE_LIST_PAGE
  129. ;               LD (HL),1
  130. ;               INC HL
  131. ;               LD (HL),0
  132.                 LD HL,0X8000
  133.                 LD A,0X7F
  134.                 OUT (MPAG),A
  135.                 LD (HL),0XAA
  136.                 LD A,0X3F
  137.                 OUT (MPAG),A
  138.                 LD (HL),0X55
  139.                 LD A,0X7F
  140.                 OUT (MPAG),A
  141.                 LD A,(HL)
  142.                 CP 0XAA
  143.                 LD A,0X7E                       ;КОЛИЧЕСТВО СТРАНИЦ ДЛЯ 4 МЕГАБАЙТНОЙ NEOGS
  144.                 JR Z,CP_RAMPAGES
  145.                 LD A,0X3E                       ;КОЛИЧЕСТВО СТРАНИЦ ДЛЯ 2 МЕГАБАЙТНОЙ NEOGS
  146. CP_RAMPAGES     LD (NUMPG),A
  147.                 OUT (ZXDATWR),A
  148.                 ADD A,2
  149.                 LD B,A
  150.                 LD HL,RAMPG
  151.                 LD A,2
  152. CREATE_TABL     LD (HL),A
  153.                 INC HL
  154.                 INC A
  155.                 CP B
  156.                 JR C,CREATE_TABL
  157.                 LD (HL),1
  158.                 INC HL
  159.                 LD (HL),0
  160.                 LD SP,0X8000
  161.                 XOR A
  162.                 OUT (MPAG),A
  163.                 JP Patch5i3
  164.  
  165.                 DUPL GSRomBaseL+0X269-$,0
  166. ;               ORG GSRomBaseL+0X269
  167.  
  168. ;INCLUDE "COM_L.a80"
  169. COMHZ           OUT (CLRCBIT),A
  170. COMINT          LD SP,ISTACK            ;0X026B
  171. COMINT_         IN A,(ZXSTAT)
  172.                 RRCA
  173.                 JR C,COMINT1
  174.                 LD A,(PROCESS)          ;0X0273
  175.                 OR A
  176.                 JR Z,COMINT_
  177.                 LD A,(BUSY)
  178.                 OR A
  179.                 JR NZ,COMINT_
  180.                 IN A,(ZXSTAT)
  181.                 RRCA
  182.                 JR C,COMINT1
  183.                 LD A,0XFF
  184.                 LD (INGEN),A
  185.                 PUSH DE
  186.                 CALL ENGINE
  187.                 POP DE
  188.                 XOR A
  189.                 LD (INGEN),A
  190.                 JP COMINT_
  191.  
  192. COMINT1         IN A,(ZXCMD)
  193.                 CP 0X20
  194.                 JR C,COMLOW
  195. COMINT2         CP 0XF0
  196.                 JR C,COMHIGH
  197.                 SUB 0XD0
  198. COMLOW          ADD A,A
  199.                 LD H,HIGH (COMTAB)
  200.                 LD L,A
  201.                 LD A,(HL)
  202.                 INC L
  203.                 LD H,(HL)
  204.                 LD L,A
  205.                 JP (HL)
  206.  
  207. COMHIGH         LD HL,COMINT_
  208.                 PUSH HL
  209.                 LD L,A
  210.                 LD H,HIGH (COMTABH)
  211.                 XOR A
  212.                 LD (CPAGE),A
  213.                 OUT (MPAG),A
  214.                 LD A,(HL)
  215.                 INC H
  216.                 LD H,(HL)
  217.                 LD L,A
  218.                 JP (HL)
  219.  
  220. WTDTL           IN A,(ZXSTAT)
  221.                 AND 0X81
  222.                 JR Z,WTDTL
  223.                 IN A,(ZXDATRD)
  224.                 JP P,COMINT1
  225.                 JP (IY)
  226.  
  227. WTDTG           IN A,(ZXSTAT)
  228.                 OR A
  229.                 JP P,WTDTG
  230.                 IN A,(ZXDATRD)
  231.                 JP (IY)
  232.  
  233.                 DB LOW (-$) DUP 0xFF
  234. COMTAB          DEFW COM00,COM01,COM02,COM03,COM04,COM05,COM06,COM07    ;0365,036C,0381,0390,039E,03A8,03B8,03D0
  235.                 DEFW COM08,COM09,COM0A,COM0B,COM0C,COM0D,COM0E,COM0F    ;0360,03F3,0407,041F,0444,046E,0497,04AE
  236.                 DEFW COM10,COM11,COM12,COM13,COM14,COM15,COM16,COM17    ;0511,0522,052E,0537,0545,0594,05FE,0617
  237.                 DEFW COM18,COM19,COM1A,COM1B,COM1C,COM1D,COM1E,COM1F    ;062A,063A,0642,064A,0650,0662,0360,0360
  238.                 DEFW COMF0,COMF1,COMF2,COMF3,COMF4,COMF5,COMF6,COMF7    ;066F,0360,0360,0679,067E,0683,069B,06B0
  239.                 DEFW COMF8,COMF9,COMFA,COMFB,COMFC,COMFD,COMFE,COMFF    ;0360,0360,06B9,0360,0360,0360,0360,0360
  240.  
  241. COMZ            OUT (CLRCBIT),A
  242.                 JP COMINT_
  243.  
  244. COM1E           EQU COMZ
  245. COM1F           EQU COMZ
  246.  
  247. COMF1           EQU COMZ
  248. COMF2           EQU COMZ
  249.  
  250. COMF8           EQU COMZ
  251. COMF9           EQU COMZ
  252.  
  253. COMFB           EQU COMZ
  254. COMFC           EQU COMZ
  255. COMFD           EQU COMZ
  256. COMFE           EQU COMZ
  257. COMFF           EQU COMZ
  258.  
  259. ;Reset flags
  260. ;Сбрасывает флаги Data bit и Command bit.
  261. COM00           IN A,(ZXDATRD)
  262.                 OUT (CLRCBIT),A
  263.                 JP COMINT_
  264.  
  265. ;Set silence (*)
  266. ;Выводит в ЦАПы всех каналов 0X80. По сути устанавливает тишину.
  267. COM01           OUT (CLRCBIT),A
  268.                 LD A,0X80
  269.                 LD HL,DAC0
  270.                 LD (HL),A
  271.                 LD B,(HL)
  272.                 INC H
  273.                 LD (HL),A
  274.                 LD B,(HL)
  275.                 INC H
  276.                 LD (HL),A
  277.                 LD B,(HL)
  278.                 INC H
  279.                 LD (HL),A
  280.                 LD B,(HL)
  281.                 JP COMINT_
  282.  
  283. ;Set low volume (*)
  284. ;Устанавливает громкостx ЦАПов всех каналов в ноль.
  285. COM02   OUT (CLRCBIT),A
  286.         LD A,0X3F
  287.         OUT (VOL1),A
  288.         OUT (VOL2),A
  289.         OUT (VOL3),A
  290.         OUT (VOL4),A
  291.         JP COMINT_
  292.  
  293. ;Set high volume (*)
  294. ;Устанавливает громкость ЦАПов всех каналов в максимум.
  295. COM03   OUT (CLRCBIT),A
  296.         XOR A
  297.         OUT (VOL1),A
  298.         OUT (VOL2),A
  299.         OUT (VOL3),A
  300.         OUT (VOL4),A
  301.         JP COMINT_
  302.  
  303. ;Set 'E' 3bits (*)
  304. ;Устанавливает в 'E' регистре GS 3 младших бита в соответствии с  задан-
  305. ;ным значением (2  младших  бита  в  сущности  являются  номером  канала
  306. ;0X00-0X03).
  307. COM04   IN A,(ZXDATRD)
  308.         OUT (CLRCBIT),A
  309.         AND 0X07
  310.         LD E,A
  311.         JP COMINT_
  312.  
  313. ;Out volume port (*)
  314. ;Устанавливает громкость канала, номер которого содержится в 'E', в ука-
  315. ;занное значение. (Команда срабатывает при условии,  что 'E' находится в
  316. ;пределах 0X00-0X03)
  317. COM05   IN A,(ZXDATRD)
  318.         OUT (CLRCBIT),A
  319.         LD B,A
  320.         LD A,E
  321.         CP 0X04
  322.         JP NC,COMINT_
  323.         ADD A,VOL1
  324.         LD C,A
  325.         OUT (C),B
  326.         JP COMINT_
  327.  
  328. ;Send to DAC (*)
  329. ;Выводит байт в ЦАП канала, указываемого по 'E'.
  330. COM06   IN A,(ZXDATRD)
  331.         OUT (CLRCBIT),A
  332.         LD B,A
  333.         LD A,E
  334.         CP 0X04
  335.         JP NC,COMINT_
  336.         ADD A,HIGH (DAC0)
  337.         LD H,A
  338.         LD L,0X00
  339.         LD (HL),B
  340.         LD A,(HL)
  341.         JP COMINT_
  342.  
  343. ;Send to DAC and to volume port (*)
  344. ;Выводит байт в ЦАП ('E') с заданной громкостью.
  345. COM07   IN A,(ZXDATRD)
  346.         OUT (CLRCBIT),A
  347.         LD B,A
  348.         LD A,E
  349.         CP 0X04
  350.         JP NC,COMINT_
  351.         ADD A,HIGH (DAC0)
  352.         LD H,A
  353.         LD L,0X00
  354.         LD (HL),B
  355.         SUB HIGH (DAC0)
  356.         ADD A,VOL1
  357.         LD C,A
  358.         LD IY,COM07_1
  359.         JP WTDTL
  360.  
  361. COM07_1 OUT (C),A
  362.         LD A,(HL)
  363.         JP COMINT_
  364.  
  365. ;то же что и команда 0X00
  366. ;Reset flags
  367. ;Сбрасывает флаги Data bit и Command bit.
  368. COM08   EQU COMZ
  369.  
  370. ;Sets one's byte volume. (*)
  371. ;Установка громкости канала, номер которого задан в 2х старших битах.
  372. COM09   IN A,(ZXDATRD)
  373.         OUT (CLRCBIT),A
  374.         LD B,A
  375.         RLCA
  376.         RLCA
  377.         AND 0X03
  378.         ADD A,VOL1
  379.         LD C,A
  380.         LD A,B
  381.         AND 0X3F
  382.         OUT (C),A
  383.         JP COMINT_
  384.  
  385. ;DAC output (*)
  386. ;Еще один непосредственный вывод в ЦАП.
  387. COM0A   IN A,(ZXDATRD)
  388.         OUT (CLRCBIT),A
  389.         LD B,A
  390.         LD IY,COM0A_1
  391.         JP WTDTL
  392.        
  393. COM0A_1 AND 0X03
  394.         ADD A,HIGH (DAC0)
  395.         LD H,A
  396.         LD L,0X00
  397.         LD (HL),B
  398.         LD A,(HL)
  399.         JP COMINT_
  400.  
  401. ;DAC and Volume output (*)
  402. ;И наконец последний вывод в ЦАП с установкой громкости.
  403. COM0B   IN A,(ZXDATRD)
  404.         OUT (CLRCBIT),A
  405.         LD C,A
  406.         LD IY,COM0B_1
  407.         JP WTDTL
  408.        
  409. COM0B_1 LD B,A
  410.         RLCA
  411.         RLCA
  412.         AND 0X03
  413.         ADD A,HIGH (DAC0)
  414.         LD H,A
  415.         LD L,0X00
  416.         LD (HL),C
  417.         SUB HIGH (DAC0)
  418.         ADD A,VOL1
  419.         LD C,A
  420.         LD A,B
  421.         AND 0X3F
  422.         OUT (C),A
  423.         LD A,(HL)
  424.         JP COMINT_
  425.  
  426. ;Call SounDrive Covox mode (*)
  427. ;Вызывает режим четырехканального Ковокса,  последовательно копирует ре-
  428. ;гистр данных по каналам.  Выход из режима  автоматически  после  вывода
  429. ;четвертого байта.
  430. COM0C   IN A,(ZXDATRD)
  431.         OUT (CLRCBIT),A
  432.         LD HL,DAC0
  433.         LD (HL),A
  434.         LD A,(HL)
  435.         INC H
  436.         LD IY,COM0C_1
  437.         JP WTDTL
  438.        
  439. COM0C_1 LD (HL),A
  440.         LD A,(HL)
  441.         INC H
  442.         LD IY,COM0C_2
  443.         JP WTDTL
  444.        
  445. COM0C_2 LD (HL),A
  446.         LD A,(HL)
  447.         INC H
  448.         LD IY,COM0C_3
  449.         JP WTDTL
  450.        
  451. COM0C_3 LD (HL),A
  452.         LD A,(HL)
  453.         JP COMINT_
  454.  
  455. ;Call Ultravox mode (*)
  456. ;Вызывает режим универсального Ковокса,   последовательно  копирует  ре-
  457. ;гистр данных по каналам,  число которых регулируется (1-4).В отличие от
  458. ;предыдущего варианта синхронизация не производится.  Выход также произ-
  459. ;водится автоматически по записи последнего байта.
  460. COM0D   IN A,(ZXDATRD)
  461.         OUT (CLRCBIT),A
  462.         AND 0X0F
  463.         JP Z,COMINT_
  464.         RLCA
  465.         RLCA
  466.         RLCA
  467.         RLCA
  468.         LD B,A
  469.         LD HL,DAC0
  470.         LD IY,COM0D_3
  471.         JP COM0D_2
  472.        
  473. COM0D_3 LD (HL),A
  474.         LD A,(HL)
  475.         INC H
  476.         JP COM0D_2
  477.        
  478. COM0D_1 JP Z,COMINT_
  479.         INC H
  480. COM0D_2 SLA B
  481.         JR NC,COM0D_1
  482.         JP WTDTL
  483.  
  484. ;Go to LPT Covox mode
  485. ;Переходит в режим одноканального Ковокса,   напрямую  копирует  регистр
  486. ;данных в ЦАПы двух (правого и левого) каналов.  Выход из этого режима -
  487. ;запись 0X00 в регистр команд.
  488. COM0E   OUT (CLRCBIT),A
  489.         LD HL,DAC0
  490.         LD BC,DAC2
  491. COM0E_1 IN A,(ZXDATRD)
  492.         LD (HL),A
  493.         LD (BC),A
  494.         LD A,(HL)
  495.         LD A,(BC)
  496.         IN A,(ZXSTAT)
  497.         RRCA
  498.         JP NC,COM0E_1
  499.         JP COMINT_
  500.  
  501. ;Go in Profi Covox mode (*)
  502. ;Переходит в режим двухканального Ковокса,   напрямую  копирует  регистр
  503. ;данных в ЦАПы одного канала,  а регистр каманд в ЦАПы  второго  канала.
  504. ;Выход из этого режима - запись 0X4Е в регистр данных,  затем  последова-
  505. ;тельно 0X0F и 0XAA в регистр команд.
  506. COM0F   IN A,(ZXDATRD)
  507.         OUT (CLRCBIT),A
  508.         CP "Y"
  509.         JP NZ,COMINT_
  510.         LD HL,DAC0
  511.         LD DE,DAC2
  512. COM0F_1 IN A,(ZXDATRD)
  513.         LD (HL),A
  514.         IN A,(ZXCMD)
  515.         LD (DE),A
  516.         LD A,(HL)
  517.         LD A,(DE)
  518.         IN A,(ZXSTAT)
  519.         OR A
  520.         JP M,COM0F_1
  521.         LD B,0X00
  522.         OUT (CLRCBIT),A
  523. COM0F_2 IN A,(ZXSTAT)
  524.         AND 0X81
  525.         JR NZ,COM0F_1
  526.         DJNZ COM0F_2
  527. COM0F_3 IN A,(ZXSTAT)
  528.         AND 0X81
  529.         JR Z,COM0F_3
  530.         CP 0X80
  531.         JR NZ,COM0F_1
  532.         IN A,(ZXDATRD)
  533.         CP "N"
  534.         JP NZ,COM0F_1
  535. COM0F_4 IN A,(ZXSTAT)
  536.         AND 0X81
  537.         JR Z,COM0F_4
  538.         CP 0X01
  539.         JR NZ,COM0F_1
  540.         IN A,(ZXCMD)
  541.         CP 0X0F
  542.         JP NZ,COM0F_1
  543.         OUT (CLRCBIT),A
  544. COM0F_5 IN A,(ZXSTAT)
  545.         AND 0X81
  546.         JR Z,COM0F_5
  547.         CP 0X01
  548.         JR NZ,COM0F_1
  549.         IN A,(ZXCMD)
  550.         CP 0XAA
  551.         JP NZ,COM0F_1
  552.         OUT (CLRCBIT),A
  553.         JP COMINT_
  554.  
  555. ;Out to any port (*)
  556. ;Выводит байт вo внутренний порт GS (0X00-0X09).
  557. COM10   IN A,(ZXDATRD)
  558.         OUT (CLRCBIT),A
  559.         LD C,A
  560.         LD IY,COM10_1
  561.         JP WTDTL
  562.        
  563. COM10_1 OUT (C),A
  564.         JP COMINT_
  565.  
  566. ;In from any port (*)
  567. ;читает байт из внутреннего порта GS (0X00-0X09).
  568. COM11   IN A,(ZXDATRD)
  569.         LD C,A
  570.         IN A,(C)
  571.         OUT (ZXDATWR),A
  572.         OUT (CLRCBIT),A
  573.         JP COMINT_
  574.  
  575. ;OUT to 0 port (*)
  576. ;Выводит байт в порт кофигурации GS (0X00).
  577. COM12   IN A,(ZXDATRD)
  578.         OUT (CLRCBIT),A
  579.         OUT (MPAG),A
  580.         JP COMINT_
  581.  
  582. ;Jump to Address (*)
  583. ;Передает управление по заданному адресу.
  584. COM13   IN A,(ZXDATRD)
  585.         OUT (CLRCBIT),A
  586.         LD L,A
  587.         LD IY,COM13_1
  588.         JP WTDTL
  589.        
  590. COM13_1 LD H,A
  591.         JP (HL)
  592.  
  593. ;Load memory block (*)
  594. ;Загрузка блока кодов по указанному адресу с заданной длиной.
  595. ; 70+27*WAIT PER LOOP : 171K,123K,96K PER SECOND MAX
  596. COM14   IN A,(ZXDATRD)
  597.         OUT (CLRCBIT),A
  598.         CPL
  599.         LD C,A
  600.         LD HL,WTDTL
  601.         LD IY,COM14_1
  602.         JP (HL)
  603.        
  604. COM14_1 CPL
  605.         LD B,A
  606.         INC BC
  607.         LD IY,COM14_2
  608.         JP (HL)
  609.        
  610. COM14_2 LD E,A
  611.         LD IY,COM14_3
  612.         JP (HL)
  613.        
  614. COM14_3 LD D,A
  615.         LD A,B
  616.         OR C
  617.         JP Z,COMINT_
  618.         LD IXL,B
  619.         LD B,0X81
  620.         BIT 0,C
  621.         JR NZ,COM14_7
  622. COM14_6 IN A,(ZXSTAT)
  623.         AND B
  624.         JR Z,COM14_6
  625.         IN A,(ZXDATRD)
  626.         JP P,COMINT1
  627.         LD (DE),A
  628.         INC DE
  629.         INC C
  630. COM14_7 IN A,(ZXSTAT)
  631.         AND B
  632.         JR Z,COM14_7
  633.         IN A,(ZXDATRD)
  634.         JP P,COMINT1
  635.         LD (DE),A
  636.         INC DE
  637.         INC C
  638.         JP NZ,COM14_6
  639.         INC IXL
  640.         JP NZ,COM14_6
  641.         JP COMINT_
  642.  
  643. ;Get memory block (*)
  644. ;Выгрузка блока кодов по указанному адресу с заданной длиной.
  645. COM15   IN A,(ZXDATRD)  ;ошибка-не сбрасывается команд бит
  646.         CPL
  647.         LD C,A
  648.         LD IY,COM15_1
  649.         JP WTDTG
  650.        
  651. COM15_1 CPL
  652.         LD B,A
  653.         INC BC
  654.         LD IY,COM15_2
  655.         JP WTDTG
  656.        
  657. COM15_2 LD E,A
  658.         LD IY,COM15_3
  659.         JP WTDTG
  660.        
  661. COM15_3 LD D,A
  662.         LD A,B
  663.         OR C
  664.         JP Z,COMINT_
  665.         LD IXL,B
  666.         LD B,0X81
  667.         LD A,(DE)
  668.         INC DE
  669.         OUT (ZXDATWR),A
  670.         OUT (CLRCBIT),A
  671.         LD HL,COM15_4
  672.         INC C
  673.         JP NZ,COM15_4
  674.         INC IXL
  675.         JP Z,COMINT_
  676. COM15_4 IN A,(ZXSTAT)
  677.         AND B
  678.         JR Z,COM15_5
  679.         JP P,COMINT1
  680.         IN A,(ZXSTAT)
  681.         AND B
  682.         JR Z,COM15_5
  683.         JP P,COMINT1
  684.         IN A,(ZXSTAT)
  685.         AND B
  686.         JR Z,COM15_5
  687.         JP P,COMINT1
  688.         IN A,(ZXSTAT)
  689.         AND B
  690.         JR Z,COM15_5
  691.         JP P,COMINT1
  692.         JP (HL)
  693.  
  694. COM15_5 LD A,(DE)
  695.         OUT (ZXDATWR),A
  696.         INC DE
  697.         INC C
  698.         JP NZ,COM15_4
  699. COM15_7 INC IXL
  700.         JP NZ,COM15_4
  701.         JP COMINT_
  702.  
  703. ;Poke to address (*)
  704. ;Записывает единичный байт по указанному адресу.
  705. COM16   IN A,(ZXDATRD)
  706.         OUT (CLRCBIT),A
  707.         LD B,A
  708.         LD IY,COM16_1
  709.         JP WTDTL
  710.        
  711. COM16_1 LD L,A
  712.         LD IY,COM16_2
  713.         JP WTDTL
  714.        
  715. COM16_2 LD H,A
  716.         LD (HL),B
  717.         JP COMINT_
  718.  
  719. ;Peek from address (*)
  720. ;Считывает единичный байт из указанного адреса.
  721. COM17   IN A,(ZXDATRD)
  722.         LD L,A
  723.         LD IY,COM17_1
  724.         JP WTDTL
  725.        
  726. COM17_1 LD H,A
  727.         LD A,(HL)
  728.         OUT (ZXDATWR),A
  729.         OUT (CLRCBIT),A
  730.         JP COMINT_
  731.  
  732. ;Load DE Pair (*)
  733. ;Загружает регистовую пару DE (относящуюся к GS,  не путать с  одноимен-
  734. ;ной парой Main CPU) указанным словом.
  735. COM18   IN A,(ZXDATRD)
  736.         OUT (CLRCBIT),A
  737.         LD E,A
  738.         LD IY,COM18_1
  739.         JP WTDTL
  740.        
  741. COM18_1 LD D,A
  742.         JP COMINT_
  743.  
  744. ;Poke to (DE) address (*)
  745. ;Записывает байт по адресу указанному в DE.
  746. COM19   IN A,(ZXDATRD)
  747.         OUT (CLRCBIT),A
  748.         LD (DE),A
  749.         JP COMINT_
  750.  
  751. ;Peek from (DE) address (*)
  752. ;Считывает содержимое адреса, указываемого по DE.
  753. COM1A   LD A,(DE)
  754.         OUT (ZXDATWR),A
  755.         OUT (CLRCBIT),A
  756.         JP COMINT_
  757.  
  758. ;Increment of DE Pair (*)
  759. ;Увеличивает пару DE на единичку.
  760. COM1B   OUT (CLRCBIT),A
  761.         INC DE
  762.         JP COMINT_
  763.  
  764. ;Poke to (0X20XX) address (*)
  765. ;Записывает байт по адресу, старший байт которого равен 0X20.
  766. COM1C   IN A,(ZXDATRD)
  767.         OUT (CLRCBIT),A
  768.         LD L,A
  769.         LD IY,COM1C_1
  770.         JP WTDTL
  771.        
  772. COM1C_1 LD H,0X20
  773.         LD (HL),A
  774.         JP COMINT_
  775.  
  776. ;Peek from (0X20XX) address (*)
  777. ;читает байт с адреса, старший байт которого равен 0X20.
  778. COM1D   IN A,(ZXDATRD)
  779.         LD L,A
  780.         LD H,0X20
  781.         LD A,(HL)
  782.         OUT (ZXDATWR),A
  783.         OUT (CLRCBIT),A
  784.         JP COMINT_
  785.  
  786. COMF0   LD A,(ERRCODE)  ; GET STATUS
  787.         OUT (ZXDATWR),A
  788.         OUT (CLRCBIT),A
  789.         JP COMINT_
  790.  
  791. ;Warm restart
  792. ;Сбрасывает полностью GS,  но пропускает  этапы  определения  количества
  793. ;страниц памяти и их провеки,  что очень сильно ускоряет процесс инициа-
  794. ;лизации.
  795. COMF3   OUT (CLRCBIT),A
  796.         JP INITVAR
  797.  
  798. ;Cold restart
  799. ;Полный перезапуск GS со всеми проверками. По сути, JP 0X0000.
  800. COMF4   OUT (CLRCBIT),A
  801.         JP 0X0000
  802.  
  803. ;Busy on
  804. ;Устанавливает флаг занятости в 0XFF
  805. COMF5   OUT (CLRCBIT),A
  806.         LD A,IXH
  807.         AND 0X80
  808.         JP NZ,COMF5_1
  809.         LD A,0XFF
  810.         LD (BUSY),A
  811.         JP COMINT_
  812.        
  813. COMF5_1 OR 0X40
  814.         LD IXH,A
  815.         JP COMINT_
  816.  
  817. ;Busy off
  818. ;Устанавливает флаг занятости в 0X00
  819. COMF6   OUT (CLRCBIT),A
  820.         LD A,IXH
  821.         AND 0X80
  822.         JP NZ,COMF6_1
  823.         XOR A
  824.         LD (BUSY),A
  825.         JP COMINT_
  826.        
  827. COMF6_1 LD IXH,A
  828.         JP COMINT_
  829.  
  830. ;Get IXH Register (*)
  831. ;Получить содержимое регистра IXH (GS)
  832. ;IXH участвует в обработке флага Busy.
  833. COMF7   LD A,IXH
  834.         OUT (ZXDATWR),A
  835.         OUT (CLRCBIT),A
  836.         JP COMINT_
  837.  
  838. ;Out zero_to_zero
  839. ;Вывод нуля в нулевой (конфигурационный) порт GS.   Делает  приостановку
  840. ;звучания музыки до следующего чтения из к.л. порта.
  841. COMFA   OUT (CLRCBIT),A
  842.         XOR A
  843.         LD (CPAGE),A
  844.         OUT (MPAG),A
  845.         JP TCOM
  846.  
  847. ;INCLUDE "MEM_L.a80"
  848. ;MEMORY MOVEMENT MODULE - LOW PART
  849.  
  850.         align 256
  851.  
  852. LDITAB  REPT 0X100
  853.         DB 0XED,0XA0
  854.         ENDM
  855.         RET C
  856.         LD A,(SYSTEM)
  857.         LD (CPAGE),A
  858.         OUT (MPAG),A
  859.         RET
  860.  
  861. MLDI    NEG
  862.         ADD A,A
  863.         LD IYL,A
  864.         LD A,HIGH (LDITAB)
  865.         ADC A,0X00
  866.         LD IYH,A
  867.         LD A,(SDPAGE)
  868.         LD (CPAGE),A
  869.         OUT (MPAG),A
  870.         JP (IY)
  871.  
  872. TLDI    NEG
  873.         ADD A,A
  874.         LD IYL,A
  875.         LD A,HIGH (LDITAB)
  876.         ADC A,0X00
  877.         LD IYH,A
  878.         SCF
  879.         JP (IY)
  880.  
  881. MLDD    NEG
  882.         ADD A,A
  883.         LD IYL,A
  884.         LD A,HIGH (LDDTAB)
  885.         ADC A,0X00
  886.         LD IYH,A
  887.         LD A,(SDPAGE)
  888.         LD (CPAGE),A
  889.         OUT (MPAG),A
  890.         JP (IY)
  891.  
  892.         align 256
  893.  
  894. LDDTAB  REPT 0X100
  895.         DB 0XED,0XA8
  896.         ENDM
  897.         LD A,(SYSTEM)
  898.         LD (CPAGE),A
  899.         OUT (MPAG),A
  900.         RET
  901.  
  902. ;INCLUDE "LOAD_L.a80"
  903.  
  904. ; RET B,DE - OLD CURADR
  905. ;0X0C09
  906.  
  907. LOAD    LD B,0X81
  908.         LD HL,(CURADR)
  909.         LD A,(CURADR+2)
  910.         SCF
  911.         RL H
  912.         RLA
  913.         RRC H
  914.         LD E,A
  915.         LD D,HIGH (RAMPG)
  916. LOAD_   LD A,(DE)
  917.         OR A
  918.         JP Z,LOADWT3
  919.         LD (CPAGE),A
  920.         OUT (MPAG),A
  921.         LD A,(NUMPG)
  922.         CP E
  923.         JR NZ,LOADWT
  924.         LD A,H
  925.         CP 0XC0
  926.         JR C,LOADWT2
  927.         JP LOADWT3
  928.  
  929. LOADWT  IN A,(ZXSTAT)
  930.         AND B
  931.         JR Z,LOADWT
  932.         RRCA
  933.         IN A,(ZXDATRD)
  934.         JR C,LOADCM
  935.         ADD A,C
  936.         LD (HL),A
  937.         INC L
  938.         JP NZ,LOADWT
  939.         INC H
  940.         JP NZ,LOADWT
  941.         INC E
  942.         LD HL,0X8000
  943.         JP LOAD_
  944.  
  945. LOADCM  IN A,(ZXCMD)
  946.         CP 0XF3
  947.         JP Z,COMF3
  948.         CP 0XF4
  949.         JP Z,COMF4
  950.         OUT (CLRCBIT),A
  951.         CP 0XD2
  952.         JP Z,LOAD3
  953.         JP LOADWT
  954.  
  955. LOADWT2 IN A,(ZXSTAT)
  956.         AND B
  957.         JR Z,LOADWT2
  958.         RRCA
  959.         IN A,(ZXDATRD)
  960.         JR C,LOADCM2
  961.         LD (HL),A
  962.         INC L
  963.         JP NZ,LOADWT2
  964.         INC H
  965.         BIT 6,H
  966.         JP Z,LOADWT2
  967. LOADWT3 IN A,(ZXSTAT)
  968.         AND B
  969.         JR Z,LOADWT3
  970.         RRCA
  971.         IN A,(ZXDATRD)
  972.         JP NC,LOADWT3
  973.         IN A,(ZXCMD)
  974.         CP 0XF3
  975.         JP Z,COMF3
  976.         CP 0XF4
  977.         JP Z,COMF4
  978.         OUT (CLRCBIT),A
  979.         CP 0XD2
  980.         JR Z,LOAD3
  981.         JP LOADWT3
  982.  
  983. LOADCM2 IN A,(ZXCMD)
  984.         CP 0XF3
  985.         JP Z,COMF3
  986.         CP 0XF4
  987.         JP Z,COMF4
  988.         OUT (CLRCBIT),A
  989.         CP 0XD2
  990.         JR Z,LOAD3
  991.         JP LOADWT2
  992.  
  993. LOAD3   LD A,E
  994.         RL H
  995.         SRL A
  996.         RR H
  997.         LD (CURADR),HL
  998.         LD (CURADR+2),A
  999.         LD (MEMBOT),HL
  1000.         LD (MEMBOT+2),A
  1001.         LD E,A
  1002.         XOR A
  1003.         LD (CPAGE),A
  1004.         OUT (MPAG),A
  1005.         LD A,E
  1006.         RET
  1007.  
  1008. ;INCLUDE "PLAY.a80"
  1009. PLAYMD  LD A,(RAMPG)            ;0X0CC9
  1010.         OUT (MPAG),A
  1011.         LD IY,CHANS
  1012.         LD DE,CHANLEN
  1013.         LD B,0X04
  1014. RDLP1
  1015. ;   LD (IY+CHCNTL),0x00
  1016. ;---patched
  1017.         CALL Patch4
  1018.         NOP
  1019. ;---
  1020.         LD (IY+CHCNTH),0x00
  1021.         LD (IY+CHOLDV),0x80
  1022.         LD (IY+CHSTAT),0x01
  1023.         LD (IY+CHLPCNT),0x00
  1024.         LD (IY+CHPATPS),0x00
  1025.         LD (IY+CHTRMPS),0x00
  1026.         LD (IY+CHVIBPS),0x00
  1027.         LD (IY+CHVOL),0x40
  1028.         LD (IY+CHMVOL),0x40
  1029.         LD (IY+CHINS),0x00
  1030.         LD (IY+CHSMP),0x00
  1031.         LD (IY+CHPAN),0x80
  1032.         LD (IY+CHEPAN),0x20
  1033.         LD (IY+CHEVOL),0x40
  1034.         LD (IY+CHFADVL),0xFF
  1035.         LD (IY+CHFADVH),0xFF
  1036.  
  1037.         ADD IY,DE
  1038.         DJNZ RDLP1
  1039.         LD IXL,0XFF
  1040.         LD A,(0X8000+1080)      ;определение сигнатуры заголовка
  1041.         CP "M"
  1042.         JR Z,TTY1
  1043.         CP "4"
  1044.         JR Z,TTY1
  1045.         CP "F"
  1046.         JR Z,TTY1
  1047.         LD IXL,0X00
  1048.         JP TTY0
  1049. TTY1    LD A,(0X8000+1081)
  1050.         CP "."
  1051.         JR Z,TTY2
  1052.         CP "L"
  1053.         JR Z,TTY2
  1054.         CP "!"
  1055.         JR Z,TTY2
  1056.         CP "C"
  1057.         JR Z,TTY2
  1058.         LD IXL,0X00
  1059.         JP TTY0
  1060. TTY2    LD A,(0X8000+1082)
  1061.         CP "K"
  1062.         JR Z,TTY0
  1063.         CP "T"
  1064.         JR Z,TTY0
  1065.         CP "H"
  1066.         JR Z,TTY0
  1067.         LD IXL,0X00
  1068. TTY0    LD A,IXL
  1069.         LD (MODTP),A
  1070.         LD HL,0X8000+952
  1071.         OR A
  1072. ;        JR NZ,TTT10
  1073. ;        LD HL,0x8000+472
  1074. ;TTT10   LD B,0x80
  1075. ;        XOR A
  1076. ;FDF2    CP (HL)
  1077. ;        JR NC,FDF
  1078. ;        LD A,(HL)
  1079. ;FDF     INC HL
  1080. ;        DJNZ FDF2
  1081. ;        INC A
  1082. ;        LD (PATTS),A
  1083. ;        ADD A,A
  1084. ;        ADD A,A
  1085. ;        INC IXL
  1086. ;        DEC IXL
  1087. ;        LD HL,0x8000+1084
  1088. ;        JR NZ,TTT12
  1089. ;        LD HL,0x8000+600
  1090. ;TTT12   LD D,A
  1091. ;        LD E,0
  1092. ;        ADD HL,DE
  1093. ;        SET 7,H
  1094. ;        LD A,E
  1095. ;        ADC A,0x00
  1096. ;        LD E,A
  1097. ;        LD (SMPS),HL
  1098. ;        LD (SMPS+2),A
  1099. ;---patched
  1100.         LD DE,0X0000+1084
  1101.         JR NZ,TTY10
  1102.         LD DE,0X0000+600                ;размер заголовка файла
  1103.         LD HL,0X8000+472                ;смещение до таблицы патернов
  1104. TTY10   LD B,0X80               ;сканирование таблицы патернов
  1105.         SUB A
  1106. FDF2    CP (HL)
  1107.         JR NC,FDF
  1108.         LD A,(HL)
  1109. FDF     INC HL
  1110.         DJNZ FDF2
  1111.         INC A
  1112.         LD (PATTS),A            ;количество патернов
  1113.         LD L,A
  1114.         LD H,B
  1115.         ADD HL,HL
  1116.         ADD HL,HL               ;HL=кол-во патернов*4
  1117.         LD A,H
  1118.         LD H,L
  1119.         LD L,B
  1120.         ADD HL,DE
  1121.         ADC A,B
  1122.         DB 0XCB,0X34;SLI H
  1123.         RLA
  1124.         RRC H
  1125.         LD E,A
  1126.         LD (SMPS),HL
  1127.         LD (SMPS+2),A
  1128.         DUPL 3,0
  1129. ;---
  1130.         LD A,IXL
  1131.         OR A
  1132.         LD BC,0X8000+950
  1133.         JR NZ,TTT11
  1134.         LD BC,0X8000+470
  1135. TTT11   LD A,(BC)
  1136.         DEC A
  1137.         LD (MTSNGSZ),A
  1138.         INC BC
  1139.         LD A,(BC)
  1140.         LD (MTSNGLP),A
  1141.         LD IX,0X5400
  1142.         LD IY,0X8000+20         ;начало сэмплов
  1143.         LD B,31
  1144.         LD C,E
  1145. RDLP3   PUSH BC
  1146.         LD (IX+SMPBEG),C
  1147.         LD (IX+SMPBEG+1),L
  1148.         LD (IX+SMPBEG+2),H
  1149.         LD A,(IY+28)
  1150.         OR A
  1151.         JR NZ,LPL
  1152.         LD A,(IY+29)
  1153.         CP 0X02
  1154.         JP C,NLPL
  1155. LPL     PUSH HL
  1156.         PUSH BC
  1157.         LD L,(IY+27)
  1158.         LD H,(IY+26)
  1159.         LD E,(IY+23)
  1160.         LD D,(IY+22)
  1161.         SBC HL,DE
  1162.         POP BC
  1163.         POP HL
  1164.         JP NC,NLPL
  1165.         PUSH HL
  1166.         PUSH BC
  1167.         LD E,(IY+27)
  1168.         LD D,(IY+26)
  1169.         EX DE,HL
  1170.         ADD HL,HL
  1171.         EX DE,HL
  1172.         LD B,0
  1173.         RL B
  1174.         SRL C
  1175.         RL H
  1176.         RRC H
  1177.         ADD HL,DE
  1178.         LD A,C
  1179.         ADC A,B
  1180.         LD C,A
  1181.         DB 0XCB,0X34;SLI H
  1182.         RL C
  1183.         RRC H
  1184.         LD (IX+SMPLPB),C
  1185.         LD (IX+SMPLPB+1),L
  1186.         LD (IX+SMPLPB+2),H
  1187.         SRL C
  1188.         RL H
  1189.         RRC H
  1190.         LD E,(IY+29)
  1191.         LD D,(IY+28)
  1192.         EX DE,HL
  1193.         ADD HL,HL
  1194.         EX DE,HL
  1195.         LD B,0
  1196.         RL B
  1197.         ADD HL,DE
  1198.         LD A,C
  1199.         ADC A,B
  1200.         LD C,A
  1201.         DB 0XCB,0X34;SLI H
  1202.         RL C
  1203.         RRC H
  1204.         LD (IX+SMPLPE),C
  1205.         LD (IX+SMPLPE+1),L
  1206.         LD (IX+SMPLPE+2),H
  1207.         POP BC
  1208.         POP HL
  1209.         LD E,(IY+23)
  1210.         LD D,(IY+22)
  1211.         EX DE,HL
  1212.         ADD HL,HL
  1213.         EX DE,HL
  1214.         LD B,0X00
  1215.         RL B
  1216.         SRL C
  1217.         RL H
  1218.         RRC H
  1219.         ADD HL,DE
  1220.         LD A,C
  1221.         ADC A,B
  1222.         LD C,A
  1223.         DB 0XCB,0X34;SLI H
  1224.         RL C
  1225.         RRC H
  1226.         JP LPL2
  1227.        
  1228.         LD A,(IX+SMPLPE)
  1229.         CP C
  1230.         JR C,LPL2
  1231.         JR NZ,LPL1
  1232.         LD A,(IX+SMPLPE+2)
  1233.         CP H
  1234.         JR C,LPL2
  1235.         JR NZ,LPL1
  1236.         LD A,(IX+SMPLPE+1)
  1237.         CP L
  1238.         JR C,LPL2
  1239. LPL1    LD A,(IX+SMPEND)
  1240.         LD (IX+SMPLPE),A
  1241.         LD A,(IX+SMPEND+1)
  1242.         LD (IX+SMPLPE+1),A
  1243.         LD A,(IX+SMPEND+2)
  1244.         LD (IX+SMPLPE+2),A
  1245.         JP LPCNT
  1246.  
  1247. LPL2    LD A,(IX+SMPLPE)
  1248.         LD (IX+SMPEND),A
  1249.         LD A,(IX+SMPLPE+1)
  1250.         LD (IX+SMPEND+1),A
  1251.         LD A,(IX+SMPLPE+2)
  1252.         LD (IX+SMPEND+2),A
  1253.         JP LPCNT
  1254.  
  1255. NLPL    LD (IX+SMPLPB),0XFF
  1256.         LD E,(IY+23)
  1257.         LD D,(IY+22)
  1258.         EX DE,HL
  1259.         ADD HL,HL
  1260.         EX DE,HL
  1261.         LD B,0X00
  1262.         RL B
  1263.         SRL C
  1264.         RL H
  1265.         RRC H
  1266.         ADD HL,DE
  1267.         LD A,C
  1268.         ADC A,B
  1269.         LD C,A
  1270.         DB 0XCB,0X34;SLI H
  1271.         RL C
  1272.         RRC H
  1273. RDLP2   LD (IX+SMPEND+1),L
  1274.         LD (IX+SMPEND+2),H
  1275.         LD (IX+SMPEND),C
  1276. LPCNT   LD A,(IY+24)
  1277.         ADD A,A
  1278.         LD (IX+SMPFT),A
  1279.         LD A,(IY+25)
  1280.         LD (IX+SMPVOL),A
  1281.         LD DE,0X0010
  1282.         ADD IX,DE
  1283.         LD DE,30
  1284.         ADD IY,DE
  1285.         LD A,C
  1286.         POP BC
  1287.         LD C,A
  1288.         DEC B
  1289.         JP NZ,RDLP3
  1290.         LD HL,CONVERT
  1291.         LD A,(HL)
  1292.         OR A
  1293.         JR NZ,NOCONV
  1294.         LD (HL),0XFF
  1295.         LD HL,(SMPS)
  1296.         LD A,(SMPS+2)
  1297.         LD E,A
  1298.         LD D,HIGH (RAMPG)
  1299.         LD A,(MEMBOT+2);(NUMPG)
  1300. ;        SUB E
  1301.         INC A
  1302.         ADD A,A
  1303.         LD B,A
  1304. SMPMD2  LD A,(DE)
  1305.         OUT (MPAG),A
  1306. SMPMD1  LD A,(HL)               ;начало ADD A,0X80
  1307.         ADD A,0X80
  1308.         LD (HL),A
  1309.         INC L
  1310.         JP NZ,SMPMD1
  1311.         INC H
  1312.         JP NZ,SMPMD1
  1313.         LD H,0X80
  1314.         INC E
  1315.         DJNZ SMPMD2
  1316.         LD A,(DE)
  1317.         OUT (MPAG),A
  1318.         OR A
  1319.         JR Z,SMPMD4
  1320. SMPMD3  LD A,(HL)
  1321.         ADD A,0X80
  1322.         LD (HL),A
  1323.         INC L
  1324.         JP NZ,SMPMD3
  1325.         INC H
  1326.         BIT 6,H
  1327.         JP Z,SMPMD3
  1328. SMPMD4
  1329. NOCONV  XOR A
  1330.         LD (CPAGE),A
  1331.         OUT (MPAG),A
  1332.         RET
  1333.  
  1334. INITPAT LD A,(MTSNGPS)
  1335.         LD E,A
  1336.         LD D,0
  1337.         LD A,(MODTP)
  1338.         INC A
  1339.         LD HL,0X8000+952
  1340.         JR Z,TTT13
  1341.         LD HL,0X8000+472
  1342. TTT13   ADD HL,DE
  1343.         LD A,(RAMPG)
  1344.         OUT (MPAG),A
  1345. ;        LD A,(HL)
  1346. ;        ADD A,A
  1347. ;        ADD A,A
  1348. ;---patched
  1349.         JP Patch11
  1350. ;---
  1351.         LD E,D
  1352.         LD D,A
  1353.         LD A,(MODTP)
  1354.         INC A
  1355.         LD HL,0X0000+1084
  1356.         JR Z,TTT15
  1357.         LD HL,0X0000+600
  1358. TTT15   XOR A
  1359.         LD (CPAGE),A
  1360.         OUT (MPAG),A
  1361.         ADD HL,DE
  1362.         LD DE,0X5000
  1363.         LD BC,0X400
  1364.         CALL LDMEM
  1365.         XOR A
  1366.         OUT (MPAG),A
  1367.         RET
  1368.  
  1369. ;INCLUDE "QUANTUM.a80"
  1370.  
  1371. ;**************************************************************
  1372. ;* QUANTUM PROCEDURE                                          *
  1373. ;**************************************************************
  1374.  
  1375. QUANTUM LD A,(FXCHNS)
  1376.         CPL
  1377.         LD C,A
  1378.         LD A,(GSCHNS)
  1379.         AND C
  1380.         LD C,A
  1381.         LD IY,CHANS     ;CHANNELS
  1382.         LD A,(MTSTAT)
  1383.         AND 0XC0
  1384.         JR NZ,L221
  1385. L204    LD A,C
  1386.         AND (IY+CHRDR)
  1387.         JR Z,L205
  1388.         BIT 7,(IY+CHSTAT)
  1389.         JR Z,L205
  1390.         PUSH BC
  1391.         CALL GEN
  1392.         POP BC
  1393. L205    LD A,IYL
  1394.         ADD A,0X40
  1395.         LD IYL,A
  1396.         JP NC,L204
  1397.         JP L221
  1398.  
  1399. L221    XOR A
  1400.         LD (CPAGE),A
  1401.         OUT (MPAG),A
  1402.         LD HL,VOLRQTB
  1403.         LD A,(QTFREE)
  1404.         ADD A,LOW (VOLTAB)
  1405.         LD E,A
  1406.         LD D,HIGH (VOLTAB)
  1407.         LDI
  1408.         LDI
  1409.         LDI
  1410.         LDI
  1411.         LD HL,(QTFREE)
  1412.         LD B,L
  1413.         INC L
  1414.         PUSH BC
  1415.         PUSH HL
  1416.         LD A,(CHANNEL)
  1417.         AND 0X0F
  1418.         LD HL,INTTB
  1419.         ADD A,A
  1420.         ADD A,L
  1421.         LD L,A
  1422.         LD A,H
  1423.         ADC A,0X00
  1424.         LD H,A
  1425.         LD C,(HL)
  1426.         INC HL
  1427.         LD B,(HL)
  1428.         LD A,(CHANNEL)
  1429.         AND 0X0F
  1430.         LD HL,INTOFF
  1431.         ADD A,L
  1432.         LD L,A
  1433.         LD A,H
  1434.         ADC A,0X00
  1435.         LD H,A
  1436.         LD A,(QTFREE)
  1437.         ADD A,0X60
  1438.         ADD A,(HL)
  1439.         POP HL
  1440.         LD (HL),A
  1441.         INC L
  1442.         LD (HL),C
  1443.         INC L
  1444.         LD (HL),B
  1445.         POP BC
  1446.         INC L
  1447.         RES 5,L
  1448.         LD (QTFREE),HL
  1449.         LD L,B
  1450.         LD A,(SGENOFF)
  1451.         LD (HL),A
  1452.         LD A,(PLAYING)
  1453.         OR A
  1454.         JP NZ,L224
  1455.         LD (QTBUSY),HL
  1456.         CALL QTPLAY
  1457. L224    LD A,(SGENOFF)
  1458.         NEG
  1459.         LD C,A
  1460.         LD B,0
  1461.         LD A,(MTSTAT)
  1462.         AND 0XC0
  1463.         RET NZ
  1464.         LD HL,(TCKLEFT)
  1465.         OR A
  1466.         SBC HL,BC
  1467.         JR Z,EFXINT
  1468.         LD (TCKLEFT),HL
  1469.         RET
  1470.  
  1471. EFXINT  LD A,(MODULE)
  1472.         OR A
  1473.         RET Z
  1474.         LD HL,(TICKLEN)
  1475.         LD (TCKLEFT),HL
  1476.         XOR A
  1477.         LD (CPAGE),A
  1478.         OUT (MPAG),A
  1479.         LD IY,CHANS
  1480.         LD B,0X04
  1481.         LD A,(MTCOUNT)
  1482.         INC A
  1483.         LD (MTCOUNT),A
  1484.         LD HL,MTSPEED
  1485.         CP (HL)
  1486.         JR C,EFXNONT    ;NO NEW NOTE
  1487.         XOR A
  1488.         LD (MTCOUNT),A
  1489.         LD A,(MTPDT2)
  1490.         OR A
  1491.         JR Z,EFXGTNT    ;GET NEW NOTE
  1492.         CALL EFXNONT
  1493.         JP EFXSKIP
  1494.  
  1495. EFXNONT LD IY,CHANS
  1496.         LD B,0X04
  1497. EFXNON1 PUSH BC
  1498.         LD A,(IY+CHCOM)
  1499.         OR (IY+CHPARM)
  1500.         JR NZ,EFXNON2
  1501.         CALL FXNOP
  1502.         JP EFXNON3
  1503.        
  1504. EFXNON2 CALL FXCHK_
  1505. EFXNON3 LD BC,CHANLEN
  1506.         ADD IY,BC
  1507.         POP BC
  1508.         DJNZ EFXNON1
  1509.         RET
  1510.  
  1511. EFXNOP  LD L,(IY+CHPERL)        ;;not used!
  1512.         LD H,(IY+CHPERL)        ;;bug!
  1513.         CALL EFXCNV
  1514.         LD (IY+CHFRQL),L
  1515.         LD (IY+CHFRQH),H
  1516.         RET
  1517.  
  1518. EFXGTNT
  1519. ;       LD IY,CHANS
  1520. ;---patched
  1521.         JP Patch3
  1522.         DB 0X46
  1523. ;---
  1524.         XOR A
  1525.         LD (CPAGE),A
  1526.         OUT (MPAG),A
  1527.         LD (CURCHN),A
  1528. COMM1   XOR A
  1529.         LD (CPAGE),A
  1530.         OUT (MPAG),A
  1531.         CALL GETROWS
  1532.         LD (IY+CHCOM),B
  1533.         LD (IY+CHPARM),C
  1534.         LD A,E
  1535.         OR A
  1536.         JR Z,COMM2
  1537.         LD (IY+CHINS),E
  1538.         PUSH DE
  1539.         PUSH BC
  1540.         CALL EFXNEWI
  1541.         POP BC
  1542.         POP DE
  1543. COMM2   LD A,D
  1544.         CP 0X7F
  1545.         JP Z,COMM5
  1546.         LD A,B
  1547.         CP 0X03
  1548.         JP Z,COMM4
  1549.         CP 0X05
  1550.         JP Z,COMM4
  1551.         CP 0X0E
  1552.         JR NZ,COMM3
  1553.         LD A,C
  1554.         AND 0XF0
  1555.         CP 0X50
  1556.         JR Z,COMM5_
  1557.         LD (IY+CHNOTE),D
  1558.         LD (IY+CHREAL),D
  1559.         CP 0XD0
  1560.         JR Z,COMM3__
  1561.         JP COMM3
  1562.        
  1563. COMM5_  LD A,C
  1564.         AND 0X0F
  1565.         SLA A
  1566.         LD (IY+CHFINE),A
  1567. COMM3   LD (IY+CHNOTE),D
  1568.         LD (IY+CHREAL),D
  1569.         CALL GETSMP
  1570. COMM3__ LD E,(IY+CHNOTE)
  1571.         CALL GETPER
  1572.         LD (IY+CHPERL),L
  1573.         LD (IY+CHPERH),H
  1574.         LD E,(IY+CHNOTE)
  1575.         CALL GETFRQ
  1576.         LD (IY+CHFRQL),L
  1577.         LD (IY+CHFRQH),H
  1578.         LD A,(IY+CHCOM)
  1579.         CP 0X09
  1580.         JP NZ,COMM5
  1581.         LD A,(IY+CHPARM)
  1582.         OR A
  1583.         JR NZ,FX9_
  1584.         LD A,(IY+CHOFFST)
  1585. FX9_    LD (IY+CHOFFST),A
  1586.         LD H,A
  1587.         LD L,0X00
  1588.         XOR A
  1589.         ADC A,A
  1590.         EX DE,HL
  1591.         LD L,(IY+CHCURL)
  1592.         LD H,(IY+CHCURH)
  1593.         LD B,(IY+CHCURP)
  1594.         RL H
  1595.         SRL B
  1596.         RR H
  1597.         ADD HL,DE
  1598.         ADC A,B
  1599.         DB 0XCB,0X34;SLI H
  1600.         RLA
  1601.         RRC H
  1602.         LD (IY+CHCURL),L
  1603.         LD (IY+CHCURH),H
  1604.         LD (IY+CHCURP),A
  1605.         CP (IY+CHENDP)
  1606.         JP C,COMM5
  1607.         JR NZ,COMM3_
  1608.         LD A,H
  1609.         CP (IY+CHENDH)
  1610.         JP C,COMM5
  1611.         JR NZ,COMM3_
  1612.         LD A,L
  1613.         CP (IY+CHENDL)
  1614.         JP C,COMM5
  1615. COMM3_
  1616.                 LD A,(IY+CHLPBP)
  1617.                 INC A
  1618.                 JP Z,.L1
  1619.                 DEC A
  1620.                 LD L,(IY+CHLPBL)
  1621.                 LD H,(IY+CHLPBH)
  1622.                 LD (IY+CHCURL),L
  1623.                 LD (IY+CHCURH),H
  1624.                 LD (IY+CHCURP),A
  1625.                 JP COMM5
  1626.  
  1627. .L1     RES 7,(IY+CHSTAT)
  1628.         JP COMM5
  1629.  
  1630. COMM4   LD (IY+CHWNT),D
  1631. COMM5   XOR A
  1632.         LD (CPAGE),A
  1633.         OUT (MPAG),A
  1634.         CALL FXCHK
  1635. COMM6   LD BC,CHANLEN
  1636.         ADD IY,BC
  1637.         LD A,(CURCHN)
  1638.         INC A
  1639.         LD (CURCHN),A
  1640.         CP 0X04
  1641.         JP NZ,COMM1
  1642. EFXSKIP LD HL,MTPATPS
  1643.         INC (HL)
  1644.         LD A,(MTPDT)
  1645.         OR A
  1646.         JR Z,EFXSKP2
  1647.         LD (MTPDT2),A
  1648.         XOR A
  1649.         LD (MTPDT),A
  1650. EFXSKP2 LD A,(MTPDT2)
  1651.         OR A
  1652.         JR Z,EFXSKP3
  1653.         DEC A
  1654.         LD (MTPDT2),A
  1655.         JR Z,EFXSKP3
  1656.         DEC (HL)
  1657. EFXSKP3 LD A,(MTBRKFL)
  1658.         OR A
  1659.         JR Z,EFXSKP4
  1660.         LD A,(MTBRKPS)
  1661.         LD (HL),A
  1662.         XOR A
  1663.         LD (MTBRKPS),A
  1664.         LD (MTBRKFL),A
  1665.         JP EFXSKP5
  1666.        
  1667. EFXSKP4 LD A,(HL)
  1668.         OR A
  1669.         JR NZ,EFXSKP5
  1670.         LD A,(MTPDT2)
  1671.         OR A
  1672.         JR Z,EFXSKP6
  1673. EFXSKP5 LD A,(MTROWS)
  1674.         CP (HL)
  1675.         JR NC,EFXSKPX
  1676. EFXSKP6 LD A,(MTBRKPS)
  1677.         LD (MTPATPS),A
  1678.         XOR A
  1679.         LD (MTBRKPS),A
  1680.         LD (MTJMPFL),A
  1681.         LD HL,MTSNGPS
  1682.         INC (HL)
  1683.         JR Z,EFXSKP7
  1684.         LD A,(MTSNGSZ)
  1685.         CP (HL)
  1686.         JP NC,INITPAT
  1687. EFXSKP7 LD A,(MTSNGSZ)
  1688.         LD HL,MTSNGLP
  1689.         CP (HL)
  1690.         LD A,0X00
  1691.         JR C,EFXSKP8
  1692.         LD A,(HL)
  1693. EFXSKP8 LD (MTSNGPS),A
  1694.         LD A,6
  1695.         DB 3 DUP 0;LD (MTSPEED),A
  1696.         LD HL,750
  1697.         DB 3 DUP 0;LD (TICKLEN),HL
  1698.         DB 3 DUP 0;LD (TCKLEFT),HL
  1699.         XOR A
  1700.         LD (MTBRKPS),A
  1701.         LD (MTJMPFL),A
  1702.         LD (MTBRKFL),A
  1703.         LD (MTPDT),A
  1704.         LD (MTPDT2),A
  1705.         JP INITPAT
  1706.  
  1707. EFXSKPX LD A,(MTJMPFL)
  1708.         OR A
  1709.         JP NZ,EFXSKP6
  1710.         RET
  1711.  
  1712. GETSMP  SET 7,(IY+CHSTAT)
  1713.         LD A,(IY+CHINS)
  1714.         OR A
  1715.         JR Z,GETSMP2
  1716.         DEC A
  1717.         ADD A,A
  1718.         ADD A,A
  1719.         ADD A,A
  1720.         ADD A,A
  1721.         LD E,A
  1722.         LD A,0X54
  1723.         ADC A,0X00
  1724.         LD D,A
  1725.         LD A,(DE)
  1726.         LD (IY+CHCURP),A
  1727.         INC DE
  1728.         LD A,(DE)
  1729.         LD (IY+CHCURL),A
  1730.         INC DE
  1731.         LD A,(DE)
  1732.         LD (IY+CHCURH),A
  1733.         INC (IY+CHCURL)
  1734.         CALL Z,GETSMP3
  1735.         INC (IY+CHCURL)
  1736.         CALL Z,GETSMP3
  1737.         INC DE
  1738.         LD A,(DE)
  1739.         LD (IY+CHENDP),A
  1740.         INC DE
  1741.         LD A,(DE)
  1742.         LD (IY+CHENDL),A
  1743.         INC DE
  1744.         LD A,(DE)
  1745.         LD (IY+CHENDH),A
  1746.         INC DE
  1747.         INC DE
  1748.         INC DE
  1749.         LD A,(DE)
  1750.         LD (IY+CHLPBP),A
  1751.         INC DE
  1752.         LD A,(DE)
  1753.         LD (IY+CHLPBL),A
  1754.         INC DE
  1755.         LD A,(DE)
  1756.         LD (IY+CHLPBH),A
  1757.         INC DE
  1758.         LD A,(DE)
  1759.         LD (IY+CHLPEP),A
  1760.         INC DE
  1761.         LD A,(DE)
  1762.         LD (IY+CHLPEL),A
  1763.         INC DE
  1764.         LD A,(DE)
  1765.         LD (IY+CHLPEH),A
  1766.         LD (IY+CHCNTL),0X00
  1767.         LD (IY+CHCNTH),0X07
  1768.         LD A,(IY+CHCURP)
  1769.         CP (IY+CHENDP)
  1770.         RET C
  1771.         JP NZ,GETSMP2
  1772.         LD A,(IY+CHCURH)
  1773.         CP (IY+CHENDH)
  1774.         RET C
  1775.         JP NZ,GETSMP2
  1776.         LD A,(IY+CHCURL)
  1777.         CP (IY+CHENDL)
  1778.         RET C
  1779. GETSMP2 RES 7,(IY+CHSTAT)
  1780.         RET
  1781. GETSMP3 INC (IY+CHCURH)
  1782.         RET NZ
  1783.         LD (IY+CHCURH),0X80
  1784.         INC (IY+CHCURP)
  1785.         RET
  1786.  
  1787. EFXNEWI LD A,(IY+CHINS)
  1788.         DEC A
  1789.         ADD A,A
  1790.         ADD A,A
  1791.         ADD A,A
  1792.         ADD A,A
  1793.         LD E,A
  1794.         LD A,0X54
  1795.         ADC A,0X00
  1796.         LD D,A
  1797.         INC DE
  1798.         INC DE
  1799.         INC DE
  1800.         INC DE
  1801.         INC DE
  1802.         INC DE
  1803.         LD A,(DE)
  1804.         LD (IY+CHFINE),A
  1805.         INC DE
  1806.         LD A,(DE)
  1807.         CP 0X40
  1808.         JR C,GETSMP1
  1809.         LD A,0X40
  1810. GETSMP1 LD (IY+CHVOL),A
  1811.         CP (IY+CHMVOL)
  1812.         LD (IY+CHMVOL),A
  1813.         RET Z
  1814.         SET 0,(IY+CHSTAT)
  1815.         RET
  1816.  
  1817. GETROWS LD A,(MTPATPS)
  1818.         AND 0X3F
  1819.         ADD A,A
  1820.         ADD A,A
  1821.         LD L,A
  1822.         LD H,0X00
  1823.         ADD HL,HL
  1824.         ADD HL,HL
  1825.         LD A,(CURCHN)
  1826.         ADD A,A
  1827.         ADD A,A
  1828.         ADD A,L
  1829.         LD L,A
  1830.         LD A,H
  1831.         ADC A,0X50
  1832.         LD H,A
  1833.         LD A,(HL)
  1834.         AND 0X10
  1835.         PUSH AF
  1836.         LD A,(HL)
  1837.         AND 0X0F
  1838.         LD D,A
  1839.         INC HL
  1840.         LD E,(HL)
  1841.         OR E
  1842.         LD A,0X7F
  1843.         JR Z,GETRWS2
  1844.         PUSH HL
  1845.         CALL NOTEID
  1846.         POP HL
  1847. GETRWS2 INC HL
  1848.         POP BC
  1849.         LD D,A
  1850.         LD A,(HL)
  1851.         AND 0XF0
  1852.         RRCA
  1853.         RRCA
  1854.         RRCA
  1855.         RRCA
  1856.         OR B
  1857.         LD E,A
  1858.         LD A,(HL)
  1859.         AND 0X0F
  1860.         LD B,A
  1861.         INC HL
  1862.         LD C,(HL)
  1863.         RET
  1864.  
  1865. ;INCLUDE "INTTST.a80"
  1866. ;***********************************************************
  1867. ;* INTERRUPT HANDLING PROCEDURES                           *
  1868. ;***********************************************************
  1869.  
  1870.         align 256
  1871.  
  1872. INTZ    RET
  1873.  
  1874. INT0    EX AF,AF'
  1875.        INC A
  1876.        JR Z,INT0_
  1877.        EX AF,AF'
  1878.         EI
  1879.         RET
  1880.         DUPL 11,0
  1881.         RET
  1882.        
  1883. INT0_   PUSH DE
  1884.         JP QTDONE
  1885.  
  1886. INT1    EX AF,AF'
  1887.        PUSH DE
  1888.        LD E,A
  1889.        LD D,IXH
  1890.        LD A,(DE)
  1891.        INC E
  1892.        JR Z,INT1_
  1893.        LD A,E
  1894.        POP DE
  1895.        EX AF,AF'
  1896.         EI
  1897.         RET
  1898.         DUPL 4,0
  1899.         RET
  1900.        
  1901.         PUSH DE
  1902. INT1_   JP QTDONE
  1903.  
  1904. INT2    EX AF,AF'
  1905.        PUSH DE
  1906.        LD E,A
  1907.        LD D,IXH
  1908.        LD A,(DE)
  1909.        INC D
  1910.        LD A,(DE)
  1911.        INC E
  1912.        JR Z,INT2_
  1913.        LD A,E
  1914.        POP DE
  1915.        EX AF,AF'
  1916.         EI
  1917.         RET
  1918.        
  1919.         DUPL 2,0
  1920.         RET
  1921.        
  1922.         PUSH DE
  1923. INT2_   JP QTDONE
  1924.  
  1925. INT3    EX AF,AF'
  1926.        PUSH DE
  1927.        LD E,A
  1928.        LD D,IXH
  1929.        LD A,(DE)
  1930.        INC D
  1931.        INC D
  1932.        LD A,(DE)
  1933.        INC E
  1934.        JR Z,INT3_
  1935.        LD A,E
  1936.        POP DE
  1937.        EX AF,AF'
  1938.         EI
  1939.         RET
  1940.        
  1941.         DUPL 1,0
  1942.         RET
  1943.        
  1944.         PUSH DE
  1945. INT3_   JP QTDONE
  1946.  
  1947. INT4    EX AF,AF'
  1948.        PUSH DE
  1949.        LD E,A
  1950.        LD D,IXH
  1951.        LD A,(DE)
  1952.        INC D
  1953.        LD A,(DE)
  1954.        INC D
  1955.        LD A,(DE)
  1956.        INC E
  1957.        JR Z,INT4_
  1958.        LD A,E
  1959.        POP DE
  1960.        EX AF,AF'
  1961.         EI
  1962.         RET
  1963.        
  1964.         RET
  1965.        
  1966.         PUSH DE
  1967. INT4_   JP QTDONE
  1968.  
  1969. INT5    EX AF,AF'
  1970.        PUSH DE
  1971.        LD E,A
  1972.        LD D,IXH
  1973.        LD A,(DE)
  1974.        INC D
  1975.        INC D
  1976.        INC D
  1977.        LD A,(DE)
  1978.        INC E
  1979.        JR Z,INT5_
  1980.        LD A,E
  1981.        POP DE
  1982.        EX AF,AF'
  1983.         EI
  1984.         RET
  1985.        
  1986.         RET
  1987.        
  1988.         PUSH DE
  1989. INT5_   JP QTDONE
  1990.  
  1991. INT6    EX AF,AF'
  1992.        PUSH DE
  1993.        LD E,A
  1994.        LD D,IXH
  1995.        LD A,(DE)
  1996.        INC D
  1997.        LD A,(DE)
  1998.        INC D
  1999.        INC D
  2000.        LD A,(DE)
  2001.        INC E
  2002.        JR Z,INT6_
  2003.        LD A,E
  2004.        POP DE
  2005.        EX AF,AF'
  2006.         EI
  2007.         RET
  2008.        
  2009.         PUSH DE
  2010. INT6_   JP QTDONE
  2011.  
  2012. INT7    EX AF,AF'
  2013.        PUSH DE
  2014.        LD E,A
  2015.        LD D,IXH
  2016.        LD A,(DE)
  2017.        INC D
  2018.        INC D
  2019.        LD A,(DE)
  2020.        INC D
  2021.        LD A,(DE)
  2022.        INC E
  2023.        JR Z,INT7_
  2024.        LD A,E
  2025.        POP DE
  2026.        EX AF,AF'
  2027.         EI
  2028.         RET
  2029.        
  2030.         PUSH DE
  2031. INT7_   JP QTDONE
  2032.  
  2033. QTFAULT LD DE,(QTBUSY)
  2034.         LD (DE),A
  2035.         LD (PLAYING),A
  2036.         POP DE
  2037.         EX AF,AF'
  2038.        RET
  2039.  
  2040. INT_IM1 IM 1
  2041.        EI
  2042.        EX DE,HL
  2043.        LD HL,(QTBUSY)
  2044.        LD (HL),A
  2045.        LD A,L
  2046.        ADD A,0X04
  2047.        AND 0X1C
  2048.        LD L,A
  2049.        LD (QTBUSY),HL
  2050.        SET 5,L
  2051.        LD A,(HL)
  2052.        OUT (VOL1),A
  2053.        INC L
  2054.        LD A,(HL)
  2055.        OUT (VOL2),A
  2056.        INC L
  2057.        LD A,(HL)
  2058.        OUT (VOL3),A
  2059.        INC L
  2060.        LD A,(HL)
  2061.        OUT (VOL4),A
  2062.        POP AF
  2063.        POP HL
  2064.        EX DE,HL
  2065.        RET
  2066.  
  2067. QTDONE  LD A,(QTBUSY)
  2068.        ADD A,0X04
  2069.        AND 0X1C
  2070.        LD E,A
  2071.        LD D,HIGH (QTMAP)
  2072.        LD A,(DE)
  2073.        OR A
  2074.        JR Z,QTFAULT
  2075.        EX AF,AF'
  2076.         PUSH AF
  2077.         INC E
  2078.         LD A,(DE)
  2079.         LD IXH,A
  2080.         INC E
  2081.         LD A,(DE)
  2082.         OR A
  2083.         JR Z,INT_IM1
  2084.         IM 2
  2085.         EX DE,HL
  2086.         LD HL,INTAREA+0X18
  2087.         CP (HL)
  2088.         JR Z,INT_I1
  2089.         LD (HL),A
  2090.         LD HL,0X1518
  2091.         LD (INTAREA),HL
  2092.         EI
  2093.         DEC A
  2094.         JR Z,INT_I0
  2095.         ADD A,0X03
  2096.         LD L,A
  2097.         LD H,HIGH (INT0)
  2098.         PUSH DE
  2099.         PUSH BC
  2100.         LD DE,INTAREA+2
  2101.         LDI
  2102.         LDI
  2103.         LDI
  2104.         LDI
  2105.         LDI
  2106.         LDI
  2107.         LDI
  2108.         LDI
  2109.         LDI
  2110.         LDI
  2111.         LDI
  2112.         LDI
  2113.         LDI
  2114.         LDI
  2115.         LDI
  2116.         LDI
  2117.         LD HL,0XD508
  2118.         LD (INTAREA),HL
  2119.         POP BC
  2120.         POP DE
  2121.         LD HL,(QTBUSY)
  2122.         LD (HL),0X00
  2123.         LD A,L
  2124.         ADD A,0X04
  2125.         AND 0X1C
  2126.         LD L,A
  2127.         LD (QTBUSY),HL
  2128.         SET 5,L
  2129.         LD A,(HL)
  2130.         OUT (VOL1),A
  2131.         INC L
  2132.         LD A,(HL)
  2133.         OUT (VOL2),A
  2134.         INC L
  2135.         LD A,(HL)
  2136.         OUT (VOL3),A
  2137.         INC L
  2138.         LD A,(HL)
  2139.         OUT (VOL4),A
  2140.         POP AF
  2141.         POP HL
  2142.         EX DE,HL
  2143.         RET
  2144.  
  2145. INT_I1  EI
  2146.         LD A,0X04
  2147.         LD HL,(QTBUSY)
  2148.         LD (HL),0X00
  2149.         ADD A,L
  2150.         AND 0X1C
  2151.         LD L,A
  2152.         LD (QTBUSY),HL
  2153.         SET 5,L
  2154.         LD A,(HL)
  2155.         OUT (VOL1),A
  2156.         INC L
  2157.         LD A,(HL)
  2158.         OUT (VOL2),A
  2159.         INC L
  2160.         LD A,(HL)
  2161.         OUT (VOL3),A
  2162.         INC L
  2163.         LD A,(HL)
  2164.         OUT (VOL4),A
  2165.         POP AF
  2166.         POP HL
  2167.         EX DE,HL
  2168.         RET
  2169.  
  2170. INT_I0  LD HL,INT0+2
  2171.         PUSH DE
  2172.         PUSH BC
  2173.         LD DE,INTAREA+2
  2174.         LDI
  2175.         LDI
  2176.         LDI
  2177.         LDI
  2178.         LDI
  2179.         LD HL,0X3C08
  2180.         LD (INTAREA),HL
  2181.         POP BC
  2182.         POP DE
  2183.         LD HL,(QTBUSY)
  2184.         LD (HL),A
  2185.         LD A,L
  2186.         ADD A,0X04
  2187.         AND 0X1C
  2188.         LD L,A
  2189.         LD (QTBUSY),HL
  2190.         SET 5,L
  2191.         LD A,(HL)
  2192.         OUT (VOL1),A
  2193.         INC L
  2194.         LD A,(HL)
  2195.         OUT (VOL2),A
  2196.         INC L
  2197.         LD A,(HL)
  2198.         OUT (VOL3),A
  2199.         INC L
  2200.         LD A,(HL)
  2201.         OUT (VOL4),A
  2202.         POP AF
  2203.         POP HL
  2204.         EX DE,HL
  2205.         RET
  2206.  
  2207. QTPLAY  DI
  2208.         LD A,0XFF
  2209.         LD (PLAYING),A
  2210.         LD HL,(QTBUSY)
  2211.         LD A,(HL)
  2212.         EX AF,AF'
  2213.        INC L
  2214.        LD A,(HL)
  2215.        LD IXH,A
  2216.        INC L
  2217.        LD A,(HL)
  2218.        IM 1
  2219.        OR A
  2220.        JR Z,QTPLAY_
  2221.        IM 2
  2222.        LD HL,INTAREA+0X18
  2223.        CP (HL)
  2224.        JR Z,QTPLAY_
  2225.        LD (HL),A
  2226.        LD L,A
  2227.        LD H,HIGH (INT0)
  2228.        LD DE,INTAREA
  2229.        LD BC,0X0012
  2230.        LDIR
  2231. QTPLAY_ LD HL,(QTBUSY)
  2232.        SET 5,L
  2233.        LD A,(HL)
  2234.        OUT (VOL1),A
  2235.        INC L
  2236.        LD A,(HL)
  2237.        OUT (VOL2),A
  2238.        INC L
  2239.        LD A,(HL)
  2240.        OUT (VOL3),A
  2241.        INC L
  2242.        LD A,(HL)
  2243.        OUT (VOL4),A
  2244.        EI
  2245.        RET
  2246.  
  2247. ;INCLUDE "COMM.a80"
  2248. WTCM    IN A,(ZXSTAT)
  2249.        RRCA
  2250.        JR NC,WTCM
  2251.        IN A,(ZXCMD)
  2252.        CP 0X12
  2253.        JR Z,CM12
  2254.        CP 0X18
  2255.        JR Z,CM18
  2256.        CP 0X1A
  2257.        JR Z,CM1A
  2258.        CP 0X1B
  2259.        JR Z,CM1B
  2260.        CP 0X20
  2261.        JR Z,CM20
  2262.        OUT (CLRCBIT),A
  2263.        JP WTCM
  2264.        
  2265. CM12    IN A,(ZXDATRD)
  2266.        OUT (CLRCBIT),A
  2267.        OUT (MPAG),A
  2268.        JP WTCM
  2269.        
  2270. CM18    IN A,(ZXDATRD)
  2271.        LD E,A
  2272.        OUT (CLRCBIT),A
  2273. CM18_1  IN A,(ZXSTAT)
  2274.        OR A
  2275.        JP P,CM18_1
  2276.        IN A,(ZXDATRD)
  2277.        LD D,A
  2278.        JP WTCM
  2279.        
  2280. CM1A    LD A,(DE)
  2281.        OUT (ZXDATWR),A
  2282.        OUT (CLRCBIT),A
  2283.        JP WTCM
  2284.        
  2285. CM1B    INC DE
  2286.        OUT (CLRCBIT),A
  2287.        JP WTCM
  2288.        
  2289. CM20    OUT (CLRCBIT),A
  2290.        RET
  2291.  
  2292. ;INCLUDE "GEN_L.a80"
  2293. GEN     LD A,(QTFREE)
  2294.        ADD A,HIGH (DAC0)
  2295.        ADD A,(IY+CHRDN)
  2296.        LD D,A
  2297.        LD A,(SGENOFF)
  2298.        LD E,A
  2299.        LD A,(CHANNEL)
  2300.        OR (IY+CHRDR)
  2301.        LD (CHANNEL),A
  2302. GEN_    LD L,(IY+CHCURL)
  2303.        LD H,(IY+CHCURH)
  2304.        LD B,(IY+CHCNTL)
  2305. GENLP   EXX
  2306.        LD H,HIGH (RAMPG)
  2307.        LD L,(IY+CHCURP)
  2308.        LD D,(IY+CHCNTH)
  2309.        LD E,(IY+CHFRQH)
  2310.        LD B,(HL)
  2311.        LD A,B
  2312.        LD (CPAGE),A
  2313.        OUT (MPAG),A
  2314.        LD A,L
  2315.        EXX
  2316.        CP (IY+CHENDP)
  2317.        JP C,GENTP
  2318.        PUSH DE
  2319.        EX DE,HL
  2320.        LD L,(IY+CHENDL)
  2321.        LD H,(IY+CHENDH)
  2322.        DEC HL
  2323.        SBC HL,DE
  2324.        INC HL
  2325.        EX DE,HL
  2326.        LD IXL,E
  2327.        LD A,D
  2328.        POP DE
  2329.        JR C,GENCHK
  2330.        OR A
  2331.        JR Z,GENENT
  2332.        LD IXL,0XFF
  2333.        JP GENENT
  2334.  
  2335. GENCHK  RES 7,(IY+CHSTAT)
  2336.        LD A,(IY+CHLPBP)
  2337.        INC A
  2338.        JP Z,GENCHK2
  2339.        DEC A
  2340.        LD (IY+CHCURP),A
  2341.        LD L,(IY+CHLPBL)
  2342.        LD H,(IY+CHLPBH)
  2343.        LD A,(IY+CHLPEP)
  2344.        LD (IY+CHENDP),A
  2345.        LD A,(IY+CHLPEL)
  2346.        LD (IY+CHENDL),A
  2347.        LD A,(IY+CHLPEH)
  2348.        LD (IY+CHENDH),A
  2349.        SET 7,(IY+CHSTAT)
  2350.        JP GENLP
  2351.  
  2352. GENCHK2 LD (IY+CHREAL),0X7F
  2353.        BIT 6,(IY+CHSTAT)
  2354.        JP Z,GENZERO
  2355.        PUSH IY
  2356.        PUSH DE
  2357.        LD IY,CHANS
  2358.        LD B,0X08
  2359.        LD DE,CHANLEN
  2360. GENCHK3 SET 0,(IY+CHSTAT)
  2361.        ADD IY,DE
  2362.        DJNZ GENCHK3
  2363.        POP DE
  2364.        POP IY
  2365.        JP GENZERO
  2366.  
  2367. GENTP   LD IXL,0XFF
  2368.        LD A,H
  2369.        INC A
  2370.        JP M,GENENT
  2371.        OR L
  2372.        JR Z,GENENT
  2373.        NEG
  2374.        LD IXL,A
  2375. GENENT  LD C,(IY+CHFRQL)
  2376.        LD A,(IY+CHOLDV)
  2377.        PUSH IY
  2378.        CALL 0X2030
  2379.        POP  IY
  2380.        LD (IY+CHOLDV),A
  2381.        LD (IY+CHCNTH),C
  2382.        LD A,H
  2383.        OR A
  2384.        JP M,GENJ2
  2385.        LD H,0X80
  2386.        INC (IY+CHCURP)
  2387. GENJ2   LD A,E
  2388.        OR A
  2389.        JP Z,GENRET
  2390.        BIT 7,(IY+CHSTAT)
  2391.        JP NZ,GENLP
  2392.        JP GENZERO
  2393.  
  2394. GENRET  LD (IY+CHCURL),L
  2395.        LD (IY+CHCURH),H
  2396.        LD (IY+CHCNTL),B
  2397.        JP  GENEXT
  2398.  
  2399. GENZERO LD A,E
  2400.        CP 0XFF
  2401.        JR NC,GENZENT
  2402.        LD B,(IY+CHOLDV)
  2403.        LD C,0X80
  2404.        CP 0XFD
  2405.        JR NC,GENZ_1
  2406.        CP 0XF9
  2407.        JR NC,GENZ_2
  2408.        LD A,C
  2409.        ADD A,B
  2410.        RRA
  2411.        LD H,A
  2412.        ADD A,B
  2413.        RRA
  2414.        LD L,A
  2415.        ADD A,B
  2416.        RRA
  2417.        LD (DE),A
  2418.        INC E
  2419.        LD A,L
  2420.        LD (DE),A
  2421.        INC E
  2422.        ADD A,H
  2423.        RRA
  2424.        LD (DE),A
  2425.        INC E
  2426.        LD A,H
  2427.        LD (DE),A
  2428.        INC E
  2429.        ADD A,C
  2430.        RRA
  2431.        LD L,A
  2432.        ADD A,H
  2433.        RRA
  2434.        LD (DE),A
  2435.        INC E
  2436.        LD A,L
  2437.        LD (DE),A
  2438.        INC E
  2439.        ADD A,C
  2440.        RRA
  2441.        LD (DE),A
  2442.        INC E
  2443.        JP GENZENT
  2444.  
  2445. GENZ_2  LD A,C
  2446.        ADD A,B
  2447.        RRA
  2448.        LD H,A
  2449.        ADD A,B
  2450.        RRA
  2451.        LD (DE),A
  2452.        INC E
  2453.        LD A,H
  2454.        LD (DE),A
  2455.        INC E
  2456.        ADD A,C
  2457.        RRA
  2458.        LD (DE),A
  2459.        INC E
  2460.        JP GENZENT
  2461.  
  2462. GENZ_1  LD A,B
  2463.        ADD A,C
  2464.        RRA
  2465.        LD (DE),A
  2466.        INC E
  2467. GENZENT LD A,0X80
  2468.        BIT 0,E
  2469.        JR Z,GENZJP1
  2470.        LD (DE),A
  2471.        INC E
  2472.        JR Z,GENZEXT
  2473. GENZJP1 BIT 1,E
  2474.        JR Z,GENZJP2
  2475.        LD (DE),A
  2476.        INC E
  2477.        LD (DE),A
  2478.        INC E
  2479.        JR Z,GENZEXT
  2480. GENZJP2 BIT 2,E
  2481.        JR Z,GENZLP
  2482.        LD (DE),A
  2483.        INC E
  2484.        LD (DE),A
  2485.        INC E
  2486.        LD (DE),A
  2487.        INC E
  2488.        LD (DE),A
  2489.        INC E
  2490.        JR Z,GENZEXT
  2491. GENZLP  LD (DE),A
  2492.        INC E
  2493.        LD (DE),A
  2494.        INC E
  2495.        LD (DE),A
  2496.        INC E
  2497.        LD (DE),A
  2498.        INC E
  2499.        LD (DE),A
  2500.        INC E
  2501.        LD (DE),A
  2502.        INC E
  2503.        LD (DE),A
  2504.        INC E
  2505.        LD (DE),A
  2506.        INC E
  2507.        JP NZ,GENZLP
  2508. GENZEXT LD A,(QTFREE)
  2509.        ADD A,HIGH (DAC0)
  2510.        ADD A,(IY+CHRDN)
  2511.        LD D,A
  2512.        LD E,0XFF
  2513.        LD A,0X80
  2514.        LD (DE),A
  2515. GENEXT  XOR A
  2516.        LD (CPAGE),A
  2517.        OUT (MPAG),A
  2518.        BIT 0,(IY+CHSTAT)
  2519.        RET Z
  2520.        JP CALCVOL
  2521.  
  2522. ;INCLUDE "TABLES_L.a80"
  2523.  
  2524.         align 256
  2525.  
  2526. INTTAB  DUPL 0X101,HIGH (INTAREA)
  2527.  
  2528. INTTB   DW INT0,INT1,INT1,INT2,INT1,INT3,INT2,INT4,INT1,INT5
  2529.        DW INT3,INT6,INT2,INT7,INT4,0X0000
  2530. INTOFF  DB 0,0,1,0,2,0,1,0,3,0,1,0,2,0,1,0
  2531.  
  2532. ;INCLUDE "_BPM.a80"
  2533. BPMTAB
  2534.         dw 0X0B72,0X0B19,0X0AC5,0X0A77,0X0A2C,0X09E6,0X09A3,0X0964
  2535.         dw 0X0928,0X08EF,0X08B8,0X0884,0X0853,0X0823,0X07F6,0X07CB
  2536.         dw 0X07A1,0X0779,0X0753,0X072E,0X070B,0X06E9,0X06C8,0X06A9
  2537.         dw 0X068A,0X066D,0X0650,0X0635,0X061B,0X0601,0X05E8,0X05D0
  2538.         dw 0X05B9,0X05A2,0X058C,0X0577,0X0563,0X054F,0X053B,0X0528
  2539.         dw 0X0516,0X0504,0X04F3,0X04E2,0X04D2,0X04C2,0X04B2,0X04A3
  2540.         dw 0X0494,0X0485,0X0477,0X046A,0X045C,0X044F,0X0442,0X0436
  2541.         dw 0X0429,0X041D,0X0412,0X0406,0X03FB,0X03F0,0X03E5,0X03DB
  2542.         dw 0X03D1,0X03C6,0X03BD,0X03B3,0X03AA,0X03A0,0X0397,0X038E
  2543.         dw 0X0385,0X037D,0X0374,0X036C,0X0364,0X035C,0X0354,0X034D
  2544.         dw 0X0345,0X033E,0X0336,0X032F,0X0328,0X0321,0X031A,0X0314
  2545.         dw 0X030D,0X0307,0X0300,0X02FA,0X02F4,0X02EE,0X02E8,0X02E2
  2546.         dw 0X02DC,0X02D7,0X02D1,0X02CC,0X02C6,0X02C1,0X02BC,0X02B6
  2547.         dw 0X02B1,0X02AC,0X02A7,0X02A2,0X029E,0X0299,0X0294,0X0290
  2548.         dw 0X028B,0X0287,0X0282,0X027E,0X0279,0X0275,0X0271,0X026D
  2549.         dw 0X0269,0X0265,0X0261,0X025D,0X0259,0X0255,0X0251,0X024E
  2550.         dw 0X024A,0X0246,0X0243,0X023F,0X023C,0X0238,0X0235,0X0231
  2551.         dw 0X022E,0X022B,0X0227,0X0224,0X0221,0X021E,0X021B,0X0218
  2552.         dw 0X0215,0X0212,0X020F,0X020C,0X0209,0X0206,0X0203,0X0200
  2553.         dw 0X01FE,0X01FB,0X01F8,0X01F5,0X01F3,0X01F0,0X01ED,0X01EB
  2554.         dw 0X01E8,0X01E6,0X01E3,0X01E1,0X01DE,0X01DC,0X01D9,0X01D7
  2555.         dw 0X01D5,0X01D2,0X01D0,0X01CE,0X01CC,0X01C9,0X01C7,0X01C5
  2556.         dw 0X01C3,0X01C1,0X01BE,0X01BC,0X01BA,0X01B8,0X01B6,0X01B4
  2557.         dw 0X01B2,0X01B0,0X01AE,0X01AC,0X01AA,0X01A8,0X01A6,0X01A4
  2558.         dw 0X01A3,0X01A1,0X019F,0X019D,0X019B,0X0199,0X0198,0X0196
  2559.         dw 0X0194,0X0192,0X0191,0X018F,0X018D,0X018C,0X018A,0X0188
  2560.         dw 0X0187,0X0185,0X0183,0X0182,0X0180,0X017F,0X017D,0X017C
  2561.         dw 0X017A,0X0179,0X0177,0X0176,0X0174,0X0173,0X0171,0X0170
  2562.  
  2563. ;INCLUDE "_trash.a80"   ;comes from original ROM!
  2564. ;strange block, comes from original ROM.
  2565. ;real garbage;)
  2566.  
  2567.         DB 0X56,0X43,0X56,0X49,0X45,0X57,0X20,0X20,0X45,0X58,0X54,0X20,0X00,0X00,0X00,0X00
  2568.         DB 0X00,0X00,0X00,0X00,0X00,0X00,0XC4,0X08,0X43,0X21,0X28,0X09,0XDA,0X02,0X00,0X00
  2569.         DB 0X00,0X43,0X56,0X49,0X45,0X57,0X20,0X20,0X45,0X58,0X54,0X20,0X00,0X00,0X00,0X00
  2570.         DB 0X00,0X00,0X00,0X00,0X00,0X00,0XC4,0X08,0X43,0X21,0X28,0X09,0XDA,0X02,0X00,0X00
  2571.  
  2572. Free1
  2573. ;---patched
  2574. Patch11
  2575.         LD H,(HL)
  2576.        LD L,D
  2577.        ADD HL,HL
  2578.        ADD HL,HL
  2579.         JR NC,$+3
  2580.         INC D
  2581.        LD A,(MODTP)
  2582.        INC A
  2583.        LD BC,0X0000+1084
  2584.        JR Z,TTT15x
  2585.        LD BC,0X0000+600
  2586. TTT15x  ADD HL,BC
  2587.         JR NC,$+3
  2588.         INC D
  2589.         XOR A
  2590.        LD (CPAGE),A
  2591.        OUT (MPAG),A
  2592.         LD A,D
  2593.        LD DE,0X5000
  2594.        LD BC,0X400
  2595.        CALL LDMEM
  2596.        XOR A
  2597.        OUT (0X00),A
  2598.        RET
  2599.        
  2600. ; new cmd 0X6A - Set player mode
  2601. COM6A   LD A,(PlMode)   ;command
  2602.         OUT (ZXDATWR),A
  2603.         IN A,(ZXDATRD)
  2604.         OUT (CLRCBIT),A
  2605.         LD (PlMode),A
  2606.         RET
  2607.  
  2608. Patch2x LD A,(PlMode)
  2609.         OR A
  2610.         RET NZ
  2611.         LD HL,MTSTAT
  2612.        SET 7,(HL)
  2613.        RET
  2614.  
  2615. ; last note speed
  2616. Patch3  LD A,(MTSNGPS)
  2617.                 OR A
  2618.                 JR NZ,Patch3e   ;1st pattern
  2619.         LD A,(MTPATPS)
  2620.                 OR A
  2621.                 JR NZ,Patch3e   ;1st row
  2622.         LD A,6          ;init speed at start of MOD
  2623.        LD (MTSPEED),A
  2624.        LD HL,750
  2625.        LD (TICKLEN),HL
  2626.        LD (TCKLEFT),HL
  2627. Patch3e LD IY,CHANS
  2628.         JP EFXGTNT+4
  2629.        
  2630. ; initial note
  2631. Patch4  LD (IY+CHCNTL),0X00
  2632.         LD (IY+CHREAL),0X7F
  2633.         RET
  2634.        
  2635. ;MOD relooper
  2636. ; new cmd 0X6B - Set minimal loop length (turn on relooper)
  2637.  
  2638. COM6B   IN A,(ZXDATRD)
  2639.                 LD L,A
  2640.         OUT (CLRCBIT),A
  2641.         IN A,(ZXSTAT)
  2642.         AND 0X81
  2643.         JR Z,$-4
  2644.         JP P,Patch5s
  2645.         IN A,(ZXDATRD)
  2646.         LD H,A
  2647.         LD DE,16385
  2648.         OR A
  2649.         SBC HL,DE
  2650.         ADD HL,DE
  2651.         JR C,Patch5s+3
  2652. Patch5s LD HL,0X0200
  2653.         LD (MODLLEN),HL
  2654.         RET
  2655.  
  2656. ;reconstruct MOD after load
  2657. Patch5x CALL PLAYMD             ;init MOD
  2658.         LD HL,(MODLLEN)
  2659.         LD A,H
  2660.         OR L
  2661.         RET Z   ;relooper off
  2662.         LD A,(MODTP)
  2663.         OR A
  2664.         LD A,31
  2665.         LD HL,1084
  2666.         JR NZ,$+7
  2667.         LD A,15
  2668.         LD HL,600
  2669.         LD (MODSMPS),A
  2670.         LD (MODPTST),HL
  2671.         CALL CHIP
  2672.         JP PLAYMD               ;init MOD again
  2673.  
  2674. ;INCLUDE "reloop.a80"
  2675.  
  2676. ;-----(c)Evgeny Muchkin
  2677.  
  2678. ;MODSMPS        equ 0X5000
  2679. ;MODPTST        equ 0X5001
  2680. ;ChipSP_        equ 0X5005
  2681. ;CHIP246 equ 0X5007
  2682. ;TOcip_ equ 0X5009
  2683. ;CHIPLN  equ 0X5010     ; НА4АЛО СЕМПЛОВ (pointer)
  2684. ;CHIPPP  equ 0X5013     ; ДЛИНА МОДУЛЯ
  2685. ;CIP1    equ 0X5016     ; ОТКУДА ПЕРЕНОСИТЬ
  2686. ;CIP2    equ 0X5019     ; КУДА ПЕРЕНОСИТЬ
  2687. ;CIP3    equ 0X501c     ; КОНЕЦ БЛОКА
  2688.  
  2689. CHIP    DI
  2690.        LD A,(RAMPG)
  2691.        OUT (MPAG),A
  2692.         LD DE,(MODPTST) ;patts data!
  2693.        LD A,(PATTS)
  2694.        LD L,A
  2695.        LD H,B
  2696.        ADD HL,HL
  2697.        ADD HL,HL
  2698.        LD A,H
  2699.        LD H,L
  2700.        LD L,B
  2701.        ADD HL,DE
  2702.        ADC A,B
  2703.        LD (CHIPLN),HL
  2704.        LD (CHIPLN+2),A
  2705.        LD (ChipSP_),SP
  2706.        LD HL,CHIPLN
  2707.        LD DE,CHIPPP
  2708.        PUSH DE
  2709.        LDI
  2710.        LDI
  2711.        LDI
  2712.        POP IY
  2713.         LD A,(MODSMPS)
  2714.         LD B,A          ;smps!
  2715.        LD DE,30
  2716.        LD IX,0X8014
  2717. ChIp    LD H,(IX+22)    ;len
  2718.        LD L,(IX+23)
  2719.        CALL TOCip
  2720.        ADD IX,DE
  2721.        DJNZ ChIp
  2722.        LD IX,0X802A
  2723.         LD A,(MODSMPS)
  2724.         LD B,A          ;smps!
  2725. CHIP1   LD A,(RAMPG)
  2726.        OUT (MPAG),A
  2727.        LD H,(IX+6)     ;loop len
  2728.        LD L,(IX+7)
  2729.        LD (CHIP246),HL
  2730.         LD A,(IX)       ;len
  2731.        OR (IX+1)
  2732.         JP Z,CHIP2      ;skip if no smp
  2733.        LD DE,2
  2734.        CALL CP_DDE
  2735.         JP C,CHIP2      ;skip if loop len <2
  2736. LUP_LEN LD DE,(MODLLEN)
  2737.        CALL CP_DDE
  2738.         JP NC,CHIP2     ;skip if loop len>=LUP_LEN
  2739.        PUSH BC
  2740.        LD B,H
  2741.        LD C,L
  2742.        EXX
  2743.         LD BC,0         ;reloop counter
  2744. CHIP3   EXX
  2745.        ADD HL,BC
  2746.        CALL CP_DDE
  2747.        EXX
  2748.        INC BC
  2749.        JR C,CHIP3
  2750.        PUSH BC
  2751.        EXX
  2752. ;!!!!!!!!!!!!!!!!!!!!!!!!!!
  2753.         PUSH HL         ;new loop len
  2754.         LD B,(IX+6)     ;loop len
  2755.        LD C,(IX+7)
  2756.        AND A
  2757.        SBC HL,BC
  2758.        LD DE,CHIPPP
  2759.        LD (TOcip_),DE
  2760.        LD IY,CIP1
  2761.        CALL TOCIP
  2762.        LD DE,CHIPLN
  2763.        LD (TOcip_),DE
  2764.         LD B,3          ;check if free mem
  2765.        LD DE,CIP1+2
  2766.        LD HL,RAMTOP+2
  2767. ChipLP  LD A,(DE)
  2768.        CP (HL)
  2769.        DEC HL
  2770.        DEC DE
  2771.        JR C,ChipOK
  2772.        JP NZ,ChipSP
  2773.        DJNZ ChipLP
  2774. ChipOK  POP HL
  2775.         EX DE,HL        ;DE=new loop len
  2776.         LD H,(IX)       ;len
  2777.        LD L,(IX+1)
  2778.         LD B,(IX+6)     ;loop len
  2779.        LD C,(IX+7)
  2780.        AND A
  2781.        SBC HL,BC
  2782.        ADD HL,DE
  2783.         LD (IX),H       ;new smp len
  2784.        LD (IX+1),L
  2785.         LD (IX+6),D     ;new loop len
  2786.        LD (IX+7),E
  2787.        LD IY,CIP1
  2788.         LD H,(IX+4)     ;loop start
  2789.        LD L,(IX+5)
  2790.        PUSH HL
  2791.        PUSH HL
  2792.        PUSH HL
  2793.        ADD HL,BC
  2794.        CALL TOCIP
  2795.        LD IY,CIP2
  2796.        POP HL
  2797.        ADD HL,DE
  2798.        CALL TOCIP
  2799.        LD HL,CHIPPP
  2800.        LD DE,CIP3
  2801.        LDI
  2802.        LDI
  2803.        LDI
  2804.        CALL DIRER
  2805.        LD IY,CIP1
  2806.        POP HL
  2807.        CALL TOCIP
  2808.        POP HL
  2809. CHIP4   LD DE,(CHIP246) ;orig loop len
  2810.        ADD HL,DE
  2811.        LD IY,CIP2
  2812.        CALL TOCIP
  2813.        LD HL,CIP2
  2814.        LD DE,CIP3
  2815.        LDI
  2816.        LDI
  2817.        LDI
  2818.        POP BC
  2819. CHIP5   PUSH BC
  2820.        CALL DIRER
  2821. CHIP6   LD HL,(CHIP246) ;orig loop len
  2822.        LD IY,CIP2
  2823.        CALL TOCip
  2824.        POP BC
  2825.        DEC BC
  2826.        LD A,B
  2827.        OR C
  2828.        JR NZ,CHIP5
  2829.        POP BC
  2830. CHIP2   LD DE,(CHIP246) ;orig loop len
  2831.        LD A,(RAMPG)
  2832.        OUT (MPAG),A
  2833.         LD H,(IX+6)     ;new loop len
  2834.        LD L,(IX+7)
  2835.        AND A
  2836.        SBC HL,DE
  2837.         LD IY,CHIPPP    ;corr mod len
  2838.        CALL TOCip
  2839.        LD H,(IX)
  2840.        LD L,(IX+1)
  2841.         LD IY,CHIPLN    ;add pointer
  2842.        CALL TOCip
  2843.        LD DE,30
  2844.        ADD IX,DE
  2845.        DEC B
  2846.        JP NZ,CHIP1
  2847. ChipSP  LD SP,(ChipSP_)
  2848.        EI
  2849.         RET
  2850.  
  2851. DIRER   LD IY,CIP1
  2852.        LD L,(IY+3)
  2853.        LD H,(IY+4)
  2854.        LD B,(IY+5)
  2855.        EXX
  2856.        LD L,(IY)
  2857.        LD H,(IY+1)
  2858.        LD B,(IY+2)
  2859.        LD E,(IY+6)
  2860.        LD D,(IY+7)
  2861.        LD C,(IY+8)
  2862.        PUSH IX
  2863.        CALL RESI10_
  2864.        POP IX
  2865.        RET
  2866.  
  2867. TOCIP   PUSH HL
  2868.         PUSH DE
  2869.        PUSH IY
  2870.        POP DE
  2871. TOcip   LD HL,(TOcip_)  ;CHIPLN
  2872.        LDI
  2873.        LDI
  2874.        LDI
  2875.        POP DE
  2876.        POP HL
  2877. TOCip   CALL ADD_IY
  2878. ADD_IY  LD A,(IY)
  2879.        ADD A,L
  2880.        LD (IY),A
  2881.        LD A,(IY+1)
  2882.        ADC A,H
  2883.        LD (IY+1),A
  2884.        LD A,(IY+2)
  2885.        ADC A,0
  2886.        LD (IY+2),A
  2887.        RET
  2888.  
  2889. CP_DDE  PUSH HL
  2890.        AND A
  2891.        SBC HL,DE
  2892.        POP HL
  2893.        RET
  2894.  
  2895. ;RESID10 ; MOVE BLOCK IN GS
  2896. ;          BHL - FROM
  2897. ;          CDE - END
  2898. ;         'BHL - TO
  2899.  
  2900. RESI10_         SUB A
  2901.                 OUT (MPAG),A
  2902.                 LD (SYSTEM),A
  2903.                 LD A,B
  2904.                 PUSH HL
  2905.                 EXX
  2906.                 POP DE
  2907.                 PUSH HL
  2908.                 PUSH BC
  2909.                 LD C,A
  2910.                 OR A
  2911.                 SBC HL,DE
  2912.                 LD A,B
  2913.                 SBC A,C
  2914.                 EX DE,HL
  2915.                 POP BC
  2916.                 POP HL
  2917.                 LD C,A
  2918.                 OR E
  2919.                 OR D
  2920.                 RET Z
  2921.                 EXX
  2922.                 EX DE,HL
  2923.                 SBC HL,DE
  2924.                 LD A,C
  2925.                 SBC A,B
  2926.                 LD IXL,A
  2927.                 OR L
  2928.                 OR H
  2929.                 EXX
  2930.                 RET Z
  2931.                 PUSH DE
  2932.                 PUSH BC
  2933.                 BIT 7,C
  2934.                 EXX
  2935.                 JP NZ,MOVL
  2936.                 JP MOVH
  2937. ;-----
  2938.  
  2939. ;store settings
  2940. Patch5i1        LD A,(PlMode)
  2941.                 LD C,A
  2942.                 LD DE,(MODLLEN)
  2943.                 LD A,(ERRCODE)
  2944.                 RET
  2945.  
  2946. ;restore settings
  2947. Patch5i2        LD (ERRCODE),A
  2948.                 LD A,C
  2949.                 LD (PlMode),A
  2950.                 LD (MODLLEN),DE
  2951.                 RET
  2952.  
  2953. ;clear vars after full reset!
  2954. Patch5i3        XOR A
  2955.                 LD H,A
  2956.                 LD L,A
  2957.                 LD (PlMode),A
  2958.                 LD (MODLLEN),HL
  2959.                 JP INITVAR
  2960.  
  2961. CP_END_MOD
  2962.  
  2963.         ;LD HL,MTSNGPS
  2964.         ;INC (HL)
  2965.         ;CP (HL)
  2966.         ;CALL C,STOPMOD
  2967.         ;LD (MTSNGPS),A
  2968.         ;RET
  2969.        
  2970. ;       display $
  2971. ;---
  2972. ;emptyobl1
  2973.  
  2974. ;       ORG GSRomBaseL+0X1D00
  2975.  
  2976. ;       IN A,(ZXDATRD)
  2977. ;       OUT (CLRCBIT),A
  2978. ;       LD A,0X7F
  2979. ;       OUT (ZXDATWR),A
  2980. ;       JP COMINT_
  2981.        
  2982. ;WDY    IN A,(ZXSTAT)
  2983. ;       RLA
  2984. ;       JR NC,$-3
  2985. ;       RET
  2986.        
  2987. ;WDN    IN A,(ZXSTAT)
  2988. ;       RLA
  2989. ;       JR C,$-3
  2990. ;       RET
  2991.  
  2992.         ORG GSRomBaseL+0X2000
  2993. ;SGEN    
  2994. ;INCLUDE "SGEN_ASM.a80"
  2995. ;       MODULE SGEN
  2996. ;INCLUDE "SGEN.a80"
  2997.  
  2998. SGENTBE DW S0,S1,S2,S3,S4,S5,S6,S7,S8
  2999.  
  3000. SGENTBF DW SGEN1,SGEN2,SGEN3,SGEN4,SGEN5,SGEN6,SGEN7,SGEN8,SGEN9
  3001.  
  3002.         DUPL 12,0
  3003.  
  3004. SGEN    EXX
  3005.         INC D
  3006.         DEC D
  3007.         JP Z,SGEN_
  3008.         LD C,A
  3009.         LD A,D
  3010.         DEC A
  3011.         CP 0X09
  3012.         JP NC,SGEN__
  3013.         ADD A,A
  3014.         ADD A,LOW (SGENTBF)
  3015.         LD L,A
  3016.         LD H,HIGH (SGENTBF)
  3017.         LD A,(HL)
  3018.         INC L
  3019.         LD H,(HL)
  3020.         LD L,A
  3021.         LD A,C
  3022.         JP (HL)
  3023.  
  3024. SGEN1   EXX
  3025.         ADD A,(HL)
  3026.         RRA
  3027.         LD (DE),A
  3028.         INC E
  3029.         EXX
  3030.         JP SGEN_
  3031.  
  3032. SGEN2   EXX
  3033.         SUB (HL)
  3034.         EXX
  3035.         LD H,HIGH (DIVTAB3)
  3036.         JP NC,SGEN2_2
  3037.         INC H
  3038. SGEN2_2 LD L,A
  3039.         LD A,(HL)
  3040.         EXX
  3041.         ADD A,(HL)
  3042.         LD (DE),A
  3043.         INC E
  3044.         ADD A,(HL)
  3045.         RRA
  3046.         LD (DE),A
  3047.         INC E
  3048.         EXX
  3049.         JP SGEN_
  3050.  
  3051. SGEN3   EXX
  3052.         ADD A,(HL)
  3053.         RRA
  3054.         EXX
  3055.         LD L,A
  3056.         ADD A,C
  3057.         RRA
  3058.         EXX
  3059.         LD (DE),A
  3060.         INC E
  3061.         EXX
  3062.         LD A,L
  3063.         EXX
  3064.         LD (DE),A
  3065.         INC E
  3066.         ADD A,(HL)
  3067.         RRA
  3068.         LD (DE),A
  3069.         INC E
  3070.         EXX
  3071.         JP SGEN_
  3072.  
  3073. SGEN4   EXX
  3074.         ADD A,(HL)
  3075.         RRA
  3076.         EXX
  3077.         LD L,A
  3078.         ADD A,C
  3079.         RRA
  3080.         EXX
  3081.         LD (DE),A
  3082.         INC E
  3083.         EXX
  3084.         LD A,L
  3085.         EXX
  3086.         LD (DE),A
  3087.         INC E
  3088.         LD (DE),A
  3089.         INC E
  3090.         ADD A,(HL)
  3091.         RRA
  3092.         LD (DE),A
  3093.         INC E
  3094.         EXX
  3095.         JP SGEN_
  3096.  
  3097. SGEN5   EXX
  3098.         ADD A,(HL)
  3099.         RRA
  3100.         EXX
  3101.         LD L,A
  3102.         ADD A,C
  3103.         RRA
  3104.         EXX
  3105.         LD (DE),A
  3106.         INC E
  3107.         LD (DE),A
  3108.         INC E
  3109.         EXX
  3110.         LD A,L
  3111.         EXX
  3112.         LD (DE),A
  3113.         INC E
  3114.         ADD A,(HL)
  3115.         RRA
  3116.         LD (DE),A
  3117.         INC E
  3118.         LD (DE),A
  3119.         INC E
  3120.         EXX
  3121.         JP SGEN_
  3122.  
  3123. SGEN6   EXX
  3124.         ADD A,(HL)
  3125.         RRA
  3126.         EXX
  3127.         LD L,A
  3128.         ADD A,C
  3129.         RRA
  3130.         EXX
  3131.         LD (DE),A
  3132.         INC E
  3133.         LD (DE),A
  3134.         INC E
  3135.         EXX
  3136.         LD A,L
  3137.         EXX
  3138.         LD (DE),A
  3139.         INC E
  3140.         LD (DE),A
  3141.         INC E
  3142.         ADD A,(HL)
  3143.         RRA
  3144.         LD (DE),A
  3145.         INC E
  3146.         LD (DE),A
  3147.         INC E
  3148.         EXX
  3149.         JP SGEN_
  3150.  
  3151. SGEN7   EXX
  3152.         ADD A,(HL)
  3153.         RRA
  3154.         EXX
  3155.         LD L,A
  3156.         ADD A,C
  3157.         RRA
  3158.         LD H,A
  3159.         ADD A,C
  3160.         RRA
  3161.         EXX
  3162.         LD (DE),A
  3163.         INC E
  3164.         EXX
  3165.         LD A,H
  3166.         EXX
  3167.         LD (DE),A
  3168.         INC E
  3169.         EXX
  3170.         ADD A,L
  3171.         RRA
  3172.         EXX
  3173.         LD (DE),A
  3174.         INC E
  3175.         EXX
  3176.         LD A,L
  3177.         EXX
  3178.         LD (DE),A
  3179.         INC E
  3180.         ADD A,(HL)
  3181.         RRA
  3182.         EXX
  3183.         LD H,A
  3184.         ADD A,L
  3185.         RRA
  3186.         EXX
  3187.         LD (DE),A
  3188.         INC E
  3189.         EXX
  3190.         LD A,H
  3191.         EXX
  3192.         LD (DE),A
  3193.         INC E
  3194.         ADD A,(HL)
  3195.         RRA
  3196.         LD (DE),A
  3197.         INC E
  3198.         EXX
  3199.         JP SGEN_
  3200.  
  3201. SGEN8   EXX
  3202.         ADD A,(HL)
  3203.         RRA
  3204.         EXX
  3205.         LD L,A
  3206.         ADD A,C
  3207.         RRA
  3208.         LD H,A
  3209.         ADD A,C
  3210.         RRA
  3211.         EXX
  3212.         LD (DE),A
  3213.         INC E
  3214.         EXX
  3215.         LD A,H
  3216.         EXX
  3217.         LD (DE),A
  3218.         INC E
  3219.         EXX
  3220.         ADD A,L
  3221.         RRA
  3222.         EXX
  3223.         LD (DE),A
  3224.         INC E
  3225.         EXX
  3226.         LD A,L
  3227.         EXX
  3228.         LD (DE),A
  3229.         INC E
  3230.         LD (DE),A
  3231.         INC E
  3232.         ADD A,(HL)
  3233.         RRA
  3234.         EXX
  3235.         LD H,A
  3236.         ADD A,L
  3237.         RRA
  3238.         EXX
  3239.         LD (DE),A
  3240.         INC E
  3241.         EXX
  3242.         LD A,H
  3243.         EXX
  3244.         LD (DE),A
  3245.         INC E
  3246.         ADD A,(HL)
  3247.         RRA
  3248.         LD (DE),A
  3249.         INC E
  3250.         EXX
  3251.         JP SGEN_
  3252.  
  3253. SGEN9   EXX
  3254.         ADD A,(HL)
  3255.         RRA
  3256.         EXX
  3257.         LD L,A
  3258.         ADD A,C
  3259.         RRA
  3260.         LD H,A
  3261.         ADD A,C
  3262.         RRA
  3263.         EXX
  3264.         LD (DE),A
  3265.         INC E
  3266.         EXX
  3267.         LD A,H
  3268.         EXX
  3269.         LD (DE),A
  3270.         INC E
  3271.         LD (DE),A
  3272.         INC E
  3273.         EXX
  3274.         ADD A,L
  3275.         RRA
  3276.         EXX
  3277.         LD (DE),A
  3278.         INC E
  3279.         EXX
  3280.         LD A,L
  3281.         EXX
  3282.         LD (DE),A
  3283.         INC E
  3284.         ADD A,(HL)
  3285.         RRA
  3286.         EXX
  3287.         LD H,A
  3288.         ADD A,L
  3289.         RRA
  3290.         EXX
  3291.         LD (DE),A
  3292.         INC E
  3293.         EXX
  3294.         LD A,H
  3295.         EXX
  3296.         LD (DE),A
  3297.         INC E
  3298.         LD (DE),A
  3299.         INC E
  3300.         ADD A,(HL)
  3301.         RRA
  3302.         LD (DE),A
  3303.         INC E
  3304.         EXX
  3305.         JP SGEN_
  3306.  
  3307. SGEN__  JP SGEN_
  3308.  
  3309. SGEN_   LD A,E
  3310.         CP 0X09
  3311.         JR NC,S9
  3312.         ADD A,A
  3313.         LD L,A
  3314.         LD H,HIGH (SGENTBE)
  3315.         LD A,(HL)
  3316.         INC L
  3317.         LD H,(HL)
  3318.         LD L,A
  3319.         JP (HL)
  3320.  
  3321. S9      EXX
  3322.         LD C,0XFF
  3323.         EXX
  3324.         LD D,0X08
  3325.         JP S8
  3326.  
  3327. S0      EXX
  3328.         LD C,0X00
  3329.         EXX
  3330.         LD D,0X01
  3331.         JP S1
  3332.  
  3333. S3      EXX
  3334.         PUSH BC
  3335.         EXX
  3336.         POP HL
  3337.         LD B,E
  3338.         LD E,H
  3339.         LD C,L
  3340.         CALL S3_
  3341. S_RET   LD IYL,E
  3342.         LD E,D
  3343.         LD D,IYL
  3344.         PUSH DE
  3345.         EXX
  3346.         POP BC
  3347.         RET
  3348.  
  3349. S4      EXX
  3350.         PUSH BC
  3351.         EXX
  3352.         POP HL
  3353.         LD B,E
  3354.         LD E,H
  3355.         LD C,L
  3356.         CALL S4_
  3357.         JP S_RET
  3358.  
  3359. S5      EXX
  3360.         PUSH BC
  3361.         EXX
  3362.         POP HL
  3363.         LD B,E
  3364.         LD E,H
  3365.         LD C,L
  3366.         CALL S5_
  3367.         JP S_RET
  3368.  
  3369. S6      EXX
  3370.         PUSH BC
  3371.         EXX
  3372.         POP HL
  3373.         LD B,E
  3374.         LD E,H
  3375.         LD C,L
  3376.         CALL S6_
  3377.         JP S_RET
  3378.  
  3379. S7      EXX
  3380.         PUSH BC
  3381.         EXX
  3382.         POP HL
  3383.         LD B,E
  3384.         LD E,H
  3385.         LD C,L
  3386.         CALL S7_
  3387.         JP S_RET
  3388.  
  3389. S8      EXX
  3390.         PUSH BC
  3391.         EXX
  3392.         POP HL
  3393.         LD B,E
  3394.         LD E,H
  3395.         LD C,L
  3396.         CALL S8_
  3397.         JP S_RET
  3398.  
  3399. ;INCLUDE "SGEN1_L.a80"
  3400. S1      EXX
  3401.         SLA C
  3402.         JR C,S1_6
  3403.         LD A,IXL
  3404.         INC A
  3405.         JR Z,S1_2
  3406.         DEC A
  3407.         ADD A,E
  3408.         JR Z,S1_4
  3409.         JR C,S1_2
  3410.         BIT 7,C
  3411.         JR Z,S1_4
  3412.         LD IYL,A
  3413.         LD A,IXL
  3414.         SRL A
  3415.         SRL A
  3416.         ADD A,IYL
  3417.         JR Z,S1_4
  3418.         JR NC,S1_4
  3419. S1_2    DB 0XCB,0X30;SLI B
  3420.         JR NC,S1_3
  3421.         LD A,E
  3422.         AND 0X03
  3423.         JP Z,S11L0_1
  3424.         DEC A
  3425.         JP Z,S11L1_1
  3426.         DEC A
  3427.         JP Z,S11L2_1
  3428.         JP S11L3
  3429. S1_3    LD A,E
  3430.         AND 0X03
  3431.         JP Z,S11H0_1
  3432.         DEC A
  3433.         JP Z,S11H1_1
  3434.         DEC A
  3435.         JP Z,S11H2_1
  3436.         JP S11H3
  3437. S1_4    DB 0XCB,0X30;SLI B
  3438.         JR NC,S1_5
  3439.         LD A,E
  3440.         AND 0X03
  3441.         JP Z,S12L0_1
  3442.         DEC A
  3443.         JP Z,S12L1_1
  3444.         DEC A
  3445.         JP Z,S12L2_1
  3446.         JP S12L3
  3447. S1_5    LD A,E
  3448.         AND 0X03
  3449.         JP Z,S12H0_1
  3450.         DEC A
  3451.         JP Z,S12H1_1
  3452.         DEC A
  3453.         JP Z,S12H2_1
  3454.         JP S12H3
  3455.  
  3456. S1_6    LD A,IXL
  3457.         INC A
  3458.         JR Z,S1_7
  3459.         DEC A
  3460.         SRL A
  3461.         ADD A,IXL
  3462.         JR Z,S1_9
  3463.         JR C,S1_7
  3464.         ADD A,E
  3465.         JR C,S1_7
  3466.         BIT 7,C
  3467.         JR Z,S1_9
  3468.         LD IYL,A
  3469.         LD A,IXL
  3470.         SRL A
  3471.         SRL A
  3472.         ADD A,IYL
  3473.         JR Z,S1_9
  3474.         JR NC,S1_9
  3475. S1_7    DB 0XCB,0X30;SLI B
  3476.         JR C,S1_8
  3477.         LD A,E
  3478.         AND 0X03
  3479.         JP Z,S13L0
  3480.         DEC A
  3481.         JP Z,S13L1
  3482.         DEC A
  3483.         JP Z,S13L2
  3484.         JP S13L3
  3485. S1_8    LD A,E
  3486.         AND 0X03
  3487.         JP Z,S13H0
  3488.         DEC A
  3489.         JP Z,S13H1
  3490.         DEC A
  3491.         JP Z,S13H2
  3492.         JP S13H3
  3493. S1_9    DB 0XCB,0X30;SLI B
  3494.         JR C,S1_A
  3495.         LD A,E
  3496.         AND 0X03
  3497.         JP Z,S14L0
  3498.         DEC A
  3499.         JP Z,S14L1
  3500.         DEC A
  3501.         JP Z,S14L2
  3502.         JP S14L3
  3503. S1_A    LD A,E
  3504.         AND 0X03
  3505.         JP Z,S14H0
  3506.         DEC A
  3507.         JP Z,S14H1
  3508.         DEC A
  3509.         JP Z,S14H2
  3510.         JP S14H3
  3511.  
  3512. S11M0   LD B,A
  3513.         DEC HL
  3514.         LD A,(HL)
  3515.         INC HL
  3516.         ADD A,(HL)
  3517.         RRA
  3518.         LD (DE),A
  3519.         INC E
  3520.         LDI
  3521.         INC C
  3522. S11L2_1 LD A,B
  3523. S11L2_2 LDI
  3524.         INC C
  3525.         ADD A,C
  3526.         LD B,A
  3527.         JP NC,S11L3
  3528.         ADD A,C
  3529.         JP C,S11M3
  3530. S11G3   LD B,A
  3531.         DEC HL
  3532.         LD A,(HL)
  3533.         INC HL
  3534.         ADD A,(HL)
  3535.         RRA
  3536.         LD (DE),A
  3537.         INC E
  3538.         JR Z,S11R1
  3539.         LDI
  3540.         INC C
  3541. S11H1_1 LD A,B
  3542. S11H1_2 LDI
  3543.         INC C
  3544.         ADD A,C
  3545.         JP NC,S11H2_2
  3546.         LDI
  3547.         INC C
  3548.         ADD A,C
  3549.         LD B,A
  3550.         JP NC,S11L3
  3551.         ADD A,C
  3552.         JP C,S11M3
  3553.         JP S11G3
  3554.  
  3555. S11R1   LD IYL,A
  3556.         LD A,B
  3557.         SUB C
  3558.         LD B,A
  3559.         SRL B
  3560.         LD C,0X00
  3561.         LD A,IYL
  3562.         RET
  3563.  
  3564. S11M1   LD B,A
  3565.         DEC HL
  3566.         LD A,(HL)
  3567.         INC HL
  3568.         ADD A,(HL)
  3569.         RRA
  3570.         LD (DE),A
  3571.         INC E
  3572.         LDI
  3573.         INC C
  3574. S11L3   LD A,(HL)
  3575.         INC HL
  3576.         LD (DE),A
  3577.         INC E
  3578.         JR Z,S11R2
  3579.         LD A,B
  3580.         ADD A,C
  3581.         JP NC,S11L0_2
  3582.         ADD A,C
  3583.         JR C,S11M0
  3584. S11G0   LD B,A
  3585.         DEC HL
  3586.         LD A,(HL)
  3587.         INC HL
  3588.         ADD A,(HL)
  3589.         RRA
  3590.         LD (DE),A
  3591.         INC E
  3592.         LDI
  3593.         INC C
  3594. S11H2_1 LD A,B
  3595. S11H2_2 LDI
  3596.         INC C
  3597.         ADD A,C
  3598.         LD B,A
  3599.         JP NC,S11H3
  3600.         LD A,(HL)
  3601.         INC HL
  3602.         LD (DE),A
  3603.         INC E
  3604.         JR Z,S11R2
  3605.         LD A,B
  3606.         ADD A,C
  3607.         JP NC,S11L0_2
  3608.         ADD A,C
  3609.         JP C,S11M0
  3610.         JP S11G0
  3611.  
  3612. S11R2   LD IYL,A
  3613.         LD A,B
  3614.         ADD A,C
  3615.         LD B,A
  3616.         JR NC,S11R2_2
  3617.         LD C,0X01
  3618.         SRL B
  3619.         LD A,IYL
  3620.         RET
  3621. S11R2_2 LD C,0X00
  3622.         RRC B
  3623.         LD A,IYL
  3624.         RET
  3625.  
  3626. S11M2   LD B,A
  3627.         DEC HL
  3628.         LD A,(HL)
  3629.         INC HL
  3630.         ADD A,(HL)
  3631.         RRA
  3632.         LD (DE),A
  3633.         INC E
  3634.         LD A,(HL)
  3635.         INC HL
  3636.         LD (DE),A
  3637.         INC E
  3638.         JR Z,S11R3
  3639. S11L0_1 LD A,B
  3640. S11L0_2 LDI
  3641.         INC C
  3642.         ADD A,C
  3643.         JP NC,S11L1_2
  3644.         ADD A,C
  3645.         JR C,S11M1
  3646. S11G1   LD B,A
  3647.         DEC HL
  3648.         LD A,(HL)
  3649.         INC HL
  3650.         ADD A,(HL)
  3651.         RRA
  3652.         LD (DE),A
  3653.         INC E
  3654.         LDI
  3655.         INC C
  3656. S11H3   LD A,(HL)
  3657.         INC HL
  3658.         LD (DE),A
  3659.         INC E
  3660.         JR Z,S11R4
  3661.         LD A,B
  3662.         ADD A,C
  3663.         JP NC,S11H0_2
  3664.         LDI
  3665.         INC C
  3666.         ADD A,C
  3667.         JP NC,S11L1_2
  3668.         ADD A,C
  3669.         JP C,S11M1
  3670.         JP S11G1
  3671.  
  3672. S11R3   LD C,0X00
  3673.         RRC B
  3674.         RET
  3675.  
  3676. S11R4   LD IYL,A
  3677.         LD A,B
  3678.         ADD A,C
  3679.         LD B,A
  3680.         JR NC,S11R4_2
  3681.         LD C,0X00
  3682.         RRC B
  3683.         LD A,IYL
  3684.         RET
  3685. S11R4_2 LD C,0X00
  3686.         SRL B
  3687.         LD A,IYL
  3688.         RET
  3689.  
  3690. S11R5   LD IYL,A
  3691.         LD A,B
  3692.         SUB C
  3693.         LD B,A
  3694.         LD C,0X00
  3695.         SRL B
  3696.         LD A,IYL
  3697.         RET
  3698.  
  3699. S11M3   LD B,A
  3700.         DEC HL
  3701.         LD A,(HL)
  3702.         INC HL
  3703.         ADD A,(HL)
  3704.         RRA
  3705.         LD (DE),A
  3706.         INC E
  3707.         JR Z,S11R5
  3708.         LDI
  3709.         INC C
  3710. S11L1_1 LD A,B
  3711. S11L1_2 LDI
  3712.         INC C
  3713.         ADD A,C
  3714.         JP NC,S11L2_2
  3715.         ADD A,C
  3716.         JR C,S11M2
  3717. S11G2   LD B,A
  3718.         DEC HL
  3719.         LD A,(HL)
  3720.         INC HL
  3721.         ADD A,(HL)
  3722.         RRA
  3723.         LD (DE),A
  3724.         INC E
  3725.         LD A,(HL)
  3726.         INC HL
  3727.         LD (DE),A
  3728.         INC E
  3729.         JR Z,S11R6
  3730. S11H0_1 LD A,B
  3731. S11H0_2 LDI
  3732.         INC C
  3733.         ADD A,C
  3734.         JP NC,S11H1_2
  3735.         LDI
  3736.         INC C
  3737.         ADD A,C
  3738.         JP NC,S11L2_2
  3739.         ADD A,C
  3740.         JP C,S11M2
  3741.         JP S11G2
  3742.  
  3743. S11R6   LD C,0X00
  3744.         SRL B
  3745.         RET
  3746.  
  3747. S12M0   LD B,A
  3748.         DEC HL
  3749.         LD A,(HL)
  3750.         INC HL
  3751.         ADD A,(HL)
  3752.         RRA
  3753.         LD (DE),A
  3754.         INC E
  3755.         LDI
  3756.         INC C
  3757.         DEC IXL
  3758.         JR Z,S12R3_3
  3759. S12L2_1 LD A,B
  3760. S12L2_2 LDI
  3761.         INC C
  3762.         DEC IXL
  3763.         JR Z,S12R2_5
  3764.         ADD A,C
  3765.         LD B,A
  3766.         JP NC,S12L3
  3767.         ADD A,C
  3768.         JP C,S12M3
  3769. S12G3   LD B,A
  3770.         DEC HL
  3771.         LD A,(HL)
  3772.         INC HL
  3773.         ADD A,(HL)
  3774.         RRA
  3775.         LD (DE),A
  3776.         INC E
  3777.         JR Z,S12R1
  3778.         LDI
  3779.         INC C
  3780.         DEC IXL
  3781.         JR Z,S12R6_3
  3782. S12H1_1 LD A,B
  3783. S12H1_2 LDI
  3784.         INC C
  3785.         DEC IXL
  3786.         JR Z,S12R4_4
  3787.         ADD A,C
  3788.         JP NC,S12H2_2
  3789.         LDI
  3790.         INC C
  3791.         DEC IXL
  3792.         JR Z,S12R2_5
  3793.         ADD A,C
  3794.         LD B,A
  3795.         JP NC,S12L3
  3796.         ADD A,C
  3797.         JP C,S12M3
  3798.         JP S12G3
  3799.  
  3800. S12R2_5 JR S12R2_3
  3801. S12R6_3 JP S12R6_2
  3802.  
  3803. S12R1   LD IYL,A
  3804.         LD A,B
  3805.         SUB C
  3806.         LD B,A
  3807.         SRL B
  3808.         LD C,0X00
  3809.         LD A,IYL
  3810.         RET
  3811.  
  3812. S12R3_3 DEC HL
  3813.         LD A,(HL)
  3814.         INC HL
  3815.         LD C,0X00
  3816.         RRC B
  3817.         RET
  3818.        
  3819. S12R4_4 JP S12R4_3
  3820.  
  3821. S12M1   LD B,A
  3822.         DEC HL
  3823.         LD A,(HL)
  3824.         INC HL
  3825.         ADD A,(HL)
  3826.         RRA
  3827.         LD (DE),A
  3828.         INC E
  3829.         LDI
  3830.         INC C
  3831.         DEC IXL
  3832.         JR Z,S12R3_3
  3833. S12L3   LD A,(HL)
  3834.         INC HL
  3835.         LD (DE),A
  3836.         INC E
  3837.         JR Z,S12R2
  3838.         DEC IXL
  3839.         JR Z,S12R2
  3840.         LD A,B
  3841.         ADD A,C
  3842.         JP NC,S12L0_2
  3843.         ADD A,C
  3844.         JP C,S12M0
  3845. S12G0   LD B,A
  3846.         DEC HL
  3847.         LD A,(HL)
  3848.         INC HL
  3849.         ADD A,(HL)
  3850.         RRA
  3851.         LD (DE),A
  3852.         INC E
  3853.         LDI
  3854.         INC C
  3855.         DEC IXL
  3856.         JR Z,S12R6_3
  3857. S12H2_1 LD A,B
  3858. S12H2_2 LDI
  3859.         INC C
  3860.         DEC IXL
  3861.         JR Z,S12R4_4
  3862.         ADD A,C
  3863.         LD B,A
  3864.         JP NC,S12H3
  3865.         LD A,(HL)
  3866.         INC HL
  3867.         LD (DE),A
  3868.         INC E
  3869.         JR Z,S12R2
  3870.         DEC IXL
  3871.         JR Z,S12R2
  3872.         LD A,B
  3873.         ADD A,C
  3874.         JP NC,S12L0_2
  3875.         ADD A,C
  3876.         JP C,S12M0
  3877.         JP S12G0
  3878.  
  3879. S12R2_3 DEC HL
  3880.         LD A,(HL)
  3881.         INC HL
  3882. S12R2   LD IYL,A
  3883.         LD A,B
  3884.         ADD A,C
  3885.         LD B,A
  3886.         JR NC,S12R2_2
  3887.         LD C,0X01
  3888.         SRL B
  3889.         LD A,IYL
  3890.         RET
  3891. S12R2_2 LD C,0X00
  3892.         RRC B
  3893.         LD A,IYL
  3894.         RET
  3895.  
  3896. S12M2   LD B,A
  3897.         DEC HL
  3898.         LD A,(HL)
  3899.         INC HL
  3900.         ADD A,(HL)
  3901.         RRA
  3902.         LD (DE),A
  3903.         INC E
  3904.         LD A,(HL)
  3905.         INC HL
  3906.         LD (DE),A
  3907.         INC E
  3908.         JR Z,S12R3
  3909.         DEC IXL
  3910.         JR Z,S12R3
  3911. S12L0_1 LD A,B
  3912. S12L0_2 LDI
  3913.         INC C
  3914.         DEC IXL
  3915.         JR Z,S12R2_3
  3916.         ADD A,C
  3917.         JP NC,S12L1_2
  3918.         ADD A,C
  3919.         JP C,S12M1
  3920. S12G1   LD B,A
  3921.         DEC HL
  3922.         LD A,(HL)
  3923.         INC HL
  3924.         ADD A,(HL)
  3925.         RRA
  3926.         LD (DE),A
  3927.         INC E
  3928.         LDI
  3929.         INC C
  3930.         DEC IXL
  3931.         JR Z,S12R6_5
  3932. S12H3   LD A,(HL)
  3933.         INC HL
  3934.         LD (DE),A
  3935.         INC E
  3936.         JR Z,S12R4
  3937.         DEC IXL
  3938.         JR Z,S12R4
  3939.         LD A,B
  3940.         ADD A,C
  3941.         JP NC,S12H0_2
  3942.         LDI
  3943.         INC C
  3944.         DEC IXL
  3945.         JR Z,S12R2_3
  3946.         ADD A,C
  3947.         JP NC,S12L1_2
  3948.         ADD A,C
  3949.         JP C,S12M1
  3950.         JP S12G1
  3951.  
  3952. S12R6_5 JP S12R6_2
  3953.  
  3954. S12R3_2 DEC HL
  3955.         LD A,(HL)
  3956.         INC HL
  3957. S12R3   LD C,0X00
  3958.         RRC B
  3959.         RET
  3960.  
  3961. S12R4_3 DEC HL
  3962.         LD A,(HL)
  3963.         INC HL
  3964. S12R4   LD IYL,A
  3965.         LD A,B
  3966.         ADD A,C
  3967.         LD B,A
  3968.         JR NC,S12R4_2
  3969.         LD C,0X00
  3970.         RRC B
  3971.         LD A,IYL
  3972.         RET
  3973. S12R4_2 LD C,0X00
  3974.         SRL B
  3975.         LD A,IYL
  3976.         RET
  3977.  
  3978. S12R5   LD IYL,A
  3979.         LD A,B
  3980.         SUB C
  3981.         LD B,A
  3982.         LD C,0X00
  3983.         SRL B
  3984.         LD A,IYL
  3985.         RET
  3986.  
  3987. S12M3   LD B,A
  3988.         DEC HL
  3989.         LD A,(HL)
  3990.         INC HL
  3991.         ADD A,(HL)
  3992.         RRA
  3993.         LD (DE),A
  3994.         INC E
  3995.         JR Z,S12R5
  3996.         LDI
  3997.         INC C
  3998.         DEC IXL
  3999.         JR Z,S12R3_2
  4000. S12L1_1 LD A,B
  4001. S12L1_2 LDI
  4002.         INC C
  4003.         DEC IXL
  4004.         JR Z,S12R2_4
  4005.         ADD A,C
  4006.         JP NC,S12L2_2
  4007.         ADD A,C
  4008.         JP C,S12M2
  4009. S12G2   LD B,A
  4010.         DEC HL
  4011.         LD A,(HL)
  4012.         INC HL
  4013.         ADD A,(HL)
  4014.         RRA
  4015.         LD (DE),A
  4016.         INC E
  4017.         LD A,(HL)
  4018.         INC HL
  4019.         LD (DE),A
  4020.         INC E
  4021.         JR Z,S12R6
  4022.         DEC IXL
  4023.         JR Z,S12R6
  4024. S12H0_1 LD A,B
  4025. S12H0_2 LDI
  4026.         INC C
  4027.         DEC IXL
  4028.         JR Z,S12R4_3
  4029.         ADD A,C
  4030.         JP NC,S12H1_2
  4031.         LDI
  4032.         INC C
  4033.         DEC IXL
  4034.         JR Z,S12R2_4
  4035.         ADD A,C
  4036.         JP NC,S12L2_2
  4037.         ADD A,C
  4038.         JP C,S12M2
  4039.         JP S12G2
  4040.  
  4041. S12R6_2 DEC HL
  4042.         LD A,(HL)
  4043.         INC HL
  4044. S12R6   LD C,0X00
  4045.         SRL B
  4046.         RET
  4047.  
  4048. S12R2_4 JP S12R2_3
  4049.  
  4050. S13R1   JR NC,S13R1_2
  4051.         SRL B
  4052.         LD C,0X01
  4053.         RET
  4054. S13R1_2 RRC B
  4055.         LD C,0X00
  4056.         RET
  4057. S13R2   SRL B
  4058.         LD C,0X00
  4059.         RET
  4060.  
  4061. S13J0   ADD A,(HL)
  4062.         RRA
  4063.         LD (DE),A
  4064.         INC E
  4065. S13H1   LD A,B
  4066.         ADD A,C
  4067.         LD B,A
  4068.         LD A,(HL)
  4069.         INC HL
  4070.         LD (DE),A
  4071.         INC E
  4072.         JP C,S13J2
  4073. S13K2   ADD A,(HL)
  4074.         RRA
  4075.         LD (DE),A
  4076.         INC E
  4077. S13L3   LD A,B
  4078.         ADD A,C
  4079.         LD B,A
  4080.         LD A,(HL)
  4081.         INC HL
  4082.         LD (DE),A
  4083.         INC E
  4084.         JR Z,S13R1
  4085.         JP C,S13K0
  4086.         LD A,B
  4087.         ADD A,C
  4088.         LD B,A
  4089.         LD A,(HL)
  4090.         INC HL
  4091.         LD (DE),A
  4092.         INC E
  4093.         JP NC,S13K1
  4094. S13J1   ADD A,(HL)
  4095.         RRA
  4096.         LD (DE),A
  4097.         INC E
  4098. S13H2   LD A,B
  4099.         ADD A,C
  4100.         LD B,A
  4101.         LD A,(HL)
  4102.         INC HL
  4103.         LD (DE),A
  4104.         INC E
  4105.         JP C,S13J3
  4106. S13K3   ADD A,(HL)
  4107.         RRA
  4108.         LD (DE),A
  4109.         INC E
  4110.         JR Z,S13R2
  4111. S13L0   LD A,B
  4112.         ADD A,C
  4113.         LD B,A
  4114.         LD A,(HL)
  4115.         INC HL
  4116.         LD (DE),A
  4117.         INC E
  4118.         JP C,S13K1
  4119.         LD A,B
  4120.         ADD A,C
  4121.         LD B,A
  4122.         LD A,(HL)
  4123.         INC HL
  4124.         LD (DE),A
  4125.         INC E
  4126.         JP NC,S13K2
  4127. S13J2   ADD A,(HL)
  4128.         RRA
  4129.         LD (DE),A
  4130.         INC E
  4131. S13H3   LD A,B
  4132.         ADD A,C
  4133.         LD B,A
  4134.         LD A,(HL)
  4135.         INC HL
  4136.         LD (DE),A
  4137.         INC E
  4138.         JR Z,S13R3
  4139.         JP C,S13J0
  4140. S13K0   ADD A,(HL)
  4141.         RRA
  4142.         LD (DE),A
  4143.         INC E
  4144. S13L1   LD A,B
  4145.         ADD A,C
  4146.         LD B,A
  4147.         LD A,(HL)
  4148.         INC HL
  4149.         LD (DE),A
  4150.         INC E
  4151.         JP C,S13K2
  4152.         LD A,B
  4153.         ADD A,C
  4154.         LD B,A
  4155.         LD A,(HL)
  4156.         INC HL
  4157.         LD (DE),A
  4158.         INC E
  4159.         JP NC,S13K3
  4160. S13J3   ADD A,(HL)
  4161.         RRA
  4162.         LD (DE),A
  4163.         INC E
  4164.         JR Z,S13R4
  4165. S13H0   LD A,B
  4166.         ADD A,C
  4167.         LD B,A
  4168.         LD A,(HL)
  4169.         INC HL
  4170.         LD (DE),A
  4171.         INC E
  4172.         JP C,S13J1
  4173. S13K1   ADD A,(HL)
  4174.         RRA
  4175.         LD (DE),A
  4176.         INC E
  4177. S13L2   LD A,B
  4178.         ADD A,C
  4179.         LD B,A
  4180.         LD A,(HL)
  4181.         INC HL
  4182.         LD (DE),A
  4183.         INC E
  4184.         JP C,S13K3
  4185.         LD A,B
  4186.         ADD A,C
  4187.         LD B,A
  4188.         LD A,(HL)
  4189.         INC HL
  4190.         LD (DE),A
  4191.         INC E
  4192.         JR Z,S13R5
  4193.         JP NC,S13K0
  4194.         JP S13J0
  4195.        
  4196. S13R3   LD C,0X01
  4197.         JR NC,S13R3_2
  4198.         RRC B
  4199.         RET
  4200.        
  4201. S13R3_2 SRL B
  4202.         RET
  4203.        
  4204. S13R4   RRC B
  4205.         LD C,0X00
  4206.         RET
  4207.  
  4208. S13R5   LD C,0X01
  4209.         JR NC,S13R5_2
  4210.         RRC B
  4211.         RET
  4212.        
  4213. S13R5_2 SRL B
  4214.         RET
  4215.  
  4216. S14R5_3 JP S14R5
  4217.  
  4218. S14R1   JR NC,S14R1_2
  4219.         SRL B
  4220.         LD C,0X01
  4221.         RET
  4222.        
  4223. S14R1_2 RRC B
  4224.         LD C,0X00
  4225.         RET
  4226.        
  4227. S14R2   SRL B
  4228.         LD C,0X00
  4229.         RET
  4230.  
  4231. S14J0   ADD A,(HL)
  4232.         RRA
  4233.         LD (DE),A
  4234.         INC E
  4235. S14H1   LD A,B
  4236.         ADD A,C
  4237.         LD B,A
  4238.         LD A,(HL)
  4239.         INC HL
  4240.         LD (DE),A
  4241.         INC E
  4242.         DEC IXL
  4243.         JR Z,S14R5_3
  4244.         JP C,S14J2
  4245. S14K2   ADD A,(HL)
  4246.         RRA
  4247.         LD (DE),A
  4248.         INC E
  4249. S14L3   LD A,B
  4250.         ADD A,C
  4251.         LD B,A
  4252.         LD A,(HL)
  4253.         INC HL
  4254.         LD (DE),A
  4255.         INC E
  4256.         JR Z,S14R1
  4257.         DEC IXL
  4258.         JR Z,S14R1
  4259.         JP C,S14K0
  4260.         LD A,B
  4261.         ADD A,C
  4262.         LD B,A
  4263.         LD A,(HL)
  4264.         INC HL
  4265.         LD (DE),A
  4266.         INC E
  4267.         DEC IXL
  4268.         JR Z,S14R5_3
  4269.         JP NC,S14K1
  4270. S14J1   ADD A,(HL)
  4271.         RRA
  4272.         LD (DE),A
  4273.         INC E
  4274. S14H2   LD A,B
  4275.         ADD A,C
  4276.         LD B,A
  4277.         LD A,(HL)
  4278.         INC HL
  4279.         LD (DE),A
  4280.         INC E
  4281.         DEC IXL
  4282.         JR Z,S14R5_3
  4283.         JP C,S14J3
  4284. S14K3   ADD A,(HL)
  4285.         RRA
  4286.         LD (DE),A
  4287.         INC E
  4288.         JR Z,S14R2
  4289. S14L0   LD A,B
  4290.         ADD A,C
  4291.         LD B,A
  4292.         LD A,(HL)
  4293.         INC HL
  4294.         LD (DE),A
  4295.         INC E
  4296.         DEC IXL
  4297.         JR Z,S14R1
  4298.         JP C,S14K1
  4299.         LD A,B
  4300.         ADD A,C
  4301.         LD B,A
  4302.         LD A,(HL)
  4303.         INC HL
  4304.         LD (DE),A
  4305.         INC E
  4306.         DEC IXL
  4307.         JR Z,S14R5
  4308.         JP NC,S14K2
  4309. S14J2   ADD A,(HL)
  4310.         RRA
  4311.         LD (DE),A
  4312.         INC E
  4313. S14H3   LD A,B
  4314.         ADD A,C
  4315.         LD B,A
  4316.         LD A,(HL)
  4317.         INC HL
  4318.         LD (DE),A
  4319.         INC E
  4320.         JR Z,S14R5
  4321.         DEC IXL
  4322.         JR Z,S14R5
  4323.         JP C,S14J0
  4324. S14K0   ADD A,(HL)
  4325.         RRA
  4326.         LD (DE),A
  4327.         INC E
  4328. S14L1   LD A,B
  4329.         ADD A,C
  4330.         LD B,A
  4331.         LD A,(HL)
  4332.         INC HL
  4333.         LD (DE),A
  4334.         INC E
  4335.         DEC IXL
  4336.         JR Z,S14R1_3
  4337.         JP C,S14K2
  4338.         LD A,B
  4339.         ADD A,C
  4340.         LD B,A
  4341.         LD A,(HL)
  4342.         INC HL
  4343.         LD (DE),A
  4344.         INC E
  4345.         DEC IXL
  4346.         JR Z,S14R5
  4347.         JP NC,S14K3
  4348. S14J3   ADD A,(HL)
  4349.         RRA
  4350.         LD (DE),A
  4351.         INC E
  4352.         JR Z,S14R4
  4353. S14H0   LD A,B
  4354.         ADD A,C
  4355.         LD B,A
  4356.         LD A,(HL)
  4357.         INC HL
  4358.         LD (DE),A
  4359.         INC E
  4360.         DEC IXL
  4361.         JR Z,S14R5
  4362.         JP C,S14J1
  4363. S14K1   ADD A,(HL)
  4364.         RRA
  4365.         LD (DE),A
  4366.         INC E
  4367. S14L2   LD A,B
  4368.         ADD A,C
  4369.         LD B,A
  4370.         LD A,(HL)
  4371.         INC HL
  4372.         LD (DE),A
  4373.         INC E
  4374.         DEC IXL
  4375.         JR Z,S14R1_3
  4376.         JP C,S14K3
  4377.         LD A,B
  4378.         ADD A,C
  4379.         LD B,A
  4380.         LD A,(HL)
  4381.         INC HL
  4382.         LD (DE),A
  4383.         INC E
  4384.         JR Z,S14R5
  4385.         DEC IXL
  4386.         JR Z,S14R5
  4387.         JP NC,S14K0
  4388.         JP S14J0
  4389.  
  4390. S14R5   LD C,0X01
  4391.         JR NC,S14R5_2
  4392.         RRC B
  4393.         RET
  4394.        
  4395. S14R5_2 SRL B
  4396.         RET
  4397.        
  4398. S14R4   RRC B
  4399.         LD C,0X00
  4400.         RET
  4401.        
  4402. S14R1_3 JP S14R1
  4403.  
  4404. ;INCLUDE "SGEN2_L.a80"
  4405. S2      LD H,HIGH (DIVTAB3)
  4406.         LD D,H
  4407.         INC D
  4408.         EXX
  4409.         SLA C
  4410.         JR C,S2_6
  4411.         LD A,IXL
  4412.         ADD A,A
  4413.         JR C,S2_2
  4414.         ADD A,E
  4415.         JR Z,S2_4
  4416.         JR C,S2_2
  4417.         BIT 7,C
  4418.         JR Z,S2_4
  4419.         LD IYL,A
  4420.         LD A,IXL
  4421.         SRL A
  4422.         SRL A
  4423.         ADD A,IYL
  4424.         JR Z,S2_4
  4425.         JR NC,S2_4
  4426. S2_2    DB 0XCB,0X30;SLI B
  4427.         JR NC,S2_3
  4428.         LD A,E
  4429.         AND 0X03
  4430.         JP Z,S21L0
  4431.         DEC A
  4432.         JP Z,S21L1
  4433.         DEC A
  4434.         JP Z,S21L2
  4435.         JP S21L3
  4436. S2_3    LD A,E
  4437.         AND 0X03
  4438.         JP Z,S21H0
  4439.         DEC A
  4440.         JP Z,S21H1
  4441.         DEC A
  4442.         JP Z,S21H2
  4443.         JP S21H3
  4444. S2_4    DB 0XCB,0X30;SLI B
  4445.         JR NC,S2_5
  4446.         LD A,E
  4447.         AND 0X03
  4448.         JP Z,S22L0
  4449.         DEC A
  4450.         JP Z,S22L1
  4451.         DEC A
  4452.         JP Z,S22L2
  4453.         JP S22L3
  4454. S2_5    LD A,E
  4455.         AND 0X03
  4456.         JP Z,S22H0
  4457.         DEC A
  4458.         JP Z,S22H1
  4459.         DEC A
  4460.         JP Z,S22H2
  4461.         JP S22H3
  4462.  
  4463. S2_6    LD A,IXL
  4464.         ADD A,A
  4465.         JR C,S2_7
  4466.         LD IYL,A
  4467.         LD A,IXL
  4468.         SRL A
  4469.         ADD A,IYL
  4470.         JR C,S2_7
  4471.         ADD A,E
  4472.         JR Z,S2_9
  4473.         JR C,S2_7
  4474.         BIT 7,C
  4475.         JR Z,S2_9
  4476.         LD IYL,A
  4477.         LD A,IXL
  4478.         SRL A
  4479.         SRL A
  4480.         ADD A,IYL
  4481.         JR Z,S2_9
  4482.         JR NC,S2_9
  4483. S2_7    DB 0XCB,0X30;SLI B
  4484.         JR C,S2_8
  4485.         LD A,E
  4486.         AND 0X03
  4487.         JP Z,S23L0
  4488.         DEC A
  4489.         JP Z,S23L1
  4490.         DEC A
  4491.         JP Z,S23L2
  4492.         JP S23L3
  4493. S2_8    LD A,E
  4494.         AND 0X03
  4495.         JP Z,S23H0
  4496.         DEC A
  4497.         JP Z,S23H1
  4498.         DEC A
  4499.         JP Z,S23H2
  4500.         JP S23H3
  4501. S2_9    DB 0XCB,0X30;SLI B
  4502.         JR C,S2_A
  4503.         LD A,E
  4504.         AND 0X03
  4505.         JP Z,S24L0
  4506.         DEC A
  4507.         JP Z,S24L1
  4508.         DEC A
  4509.         JP Z,S24L2
  4510.         JP S24L3
  4511. S2_A    LD A,E
  4512.         AND 0X03
  4513.         JP Z,S24H0
  4514.         DEC A
  4515.         JP Z,S24H1
  4516.         DEC A
  4517.         JP Z,S24H2
  4518.         JP S24H3
  4519.  
  4520. S21G0   LD E,A
  4521.         LD A,(DE)
  4522.         EXX
  4523.         ADD A,(HL)
  4524.         LD (DE),A
  4525.         INC E
  4526. S21J1   ADD A,(HL)
  4527.         RRA
  4528.         LD (DE),A
  4529.         INC E
  4530. S21H2   LD A,B
  4531.         ADD A,C
  4532.         LD B,A
  4533.         LD A,(HL)
  4534.         INC HL
  4535.         LD (DE),A
  4536.         INC E
  4537.         JP NC,S21J3
  4538. S21K3   ADD A,(HL)
  4539.         RRA
  4540.         LD (DE),A
  4541.         INC E
  4542.         JR Z,S21R1
  4543. S21L0   LD A,B
  4544.         ADD A,C
  4545.         LD B,A
  4546.         LD A,(HL)
  4547.         INC HL
  4548.         LD (DE),A
  4549.         INC E
  4550.         JP NC,S21K1
  4551.         SUB (HL)
  4552.         EXX
  4553.         JP C,S21G1
  4554.         LD L,A
  4555.         LD A,(HL)
  4556.         EXX
  4557.         ADD A,(HL)
  4558.         LD (DE),A
  4559.         INC E
  4560.         ADD A,(HL)
  4561.         RRA
  4562.         LD (DE),A
  4563.         INC E
  4564.         LD A,B
  4565.         ADD A,C
  4566.         LD B,A
  4567.         LD A,(HL)
  4568.         INC HL
  4569.         LD (DE),A
  4570.         INC E
  4571.         JR Z,S21R2
  4572.         JP C,S21K0
  4573.         JP S21J0
  4574.  
  4575. S21R1   LD C,0X00
  4576.         RRC B
  4577.         RET
  4578.  
  4579. S21R2   LD C,0X01
  4580.         JR NC,S21R2_2
  4581.         RRC B
  4582.         RET
  4583.        
  4584. S21R2_2 SRL B
  4585.         RET
  4586.  
  4587. S21G1   LD E,A
  4588.         LD A,(DE)
  4589.         EXX
  4590.         ADD A,(HL)
  4591.         LD (DE),A
  4592.         INC E
  4593. S21J2   ADD A,(HL)
  4594.         RRA
  4595.         LD (DE),A
  4596.         INC E
  4597. S21H3   LD A,B
  4598.         ADD A,C
  4599.         LD B,A
  4600.         LD A,(HL)
  4601.         INC HL
  4602.         LD (DE),A
  4603.         INC E
  4604.         JR Z,S21R2
  4605.         JP NC,S21J0
  4606. S21K0   ADD A,(HL)
  4607.         RRA
  4608.         LD (DE),A
  4609.         INC E
  4610. S21L1   LD A,B
  4611.         ADD A,C
  4612.         LD B,A
  4613.         LD A,(HL)
  4614.         INC HL
  4615.         LD (DE),A
  4616.         INC E
  4617.         JP NC,S21K2
  4618.         SUB (HL)
  4619.         EXX
  4620.         JP C,S21G2
  4621.         LD L,A
  4622.         LD A,(HL)
  4623.         EXX
  4624.         ADD A,(HL)
  4625.         LD (DE),A
  4626.         INC E
  4627.         ADD A,(HL)
  4628.         RRA
  4629.         LD (DE),A
  4630.         INC E
  4631.         JR Z,S21R3
  4632.         LD A,B
  4633.         ADD A,C
  4634.         LD B,A
  4635.         LD A,(HL)
  4636.         INC HL
  4637.         LD (DE),A
  4638.         INC E
  4639.         JP C,S21K1
  4640.         JP S21J1
  4641.  
  4642. S21R3   LD C,0X00
  4643.         SRL B
  4644.         RET
  4645.  
  4646. S21G2   LD E,A
  4647.         LD A,(DE)
  4648.         EXX
  4649.         ADD A,(HL)
  4650.         LD (DE),A
  4651.         INC E
  4652. S21J3   ADD A,(HL)
  4653.         RRA
  4654.         LD (DE),A
  4655.         INC E
  4656.         JR Z,S21R3
  4657. S21H0   LD A,B
  4658.         ADD A,C
  4659.         LD B,A
  4660.         LD A,(HL)
  4661.         INC HL
  4662.         LD (DE),A
  4663.         INC E
  4664.         JP NC,S21J1
  4665. S21K1   ADD A,(HL)
  4666.         RRA
  4667.         LD (DE),A
  4668.         INC E
  4669. S21L2   LD A,B
  4670.         ADD A,C
  4671.         LD B,A
  4672.         LD A,(HL)
  4673.         INC HL
  4674.         LD (DE),A
  4675.         INC E
  4676.         JP NC,S21K3
  4677.         SUB (HL)
  4678.         EXX
  4679.         JP C,S21G3
  4680.         LD L,A
  4681.         LD A,(HL)
  4682.         EXX
  4683.         ADD A,(HL)
  4684.         LD (DE),A
  4685.         INC E
  4686.         JR Z,S21R4
  4687.         ADD A,(HL)
  4688.         RRA
  4689.         LD (DE),A
  4690.         INC E
  4691.         LD A,B
  4692.         ADD A,C
  4693.         LD B,A
  4694.         LD A,(HL)
  4695.         INC HL
  4696.         LD (DE),A
  4697.         INC E
  4698.         JP C,S21K2
  4699.         JP S21J2
  4700.  
  4701. S21R4   LD C,0X01
  4702.         SRL B
  4703.         RET
  4704.  
  4705. S21G3   LD E,A
  4706.         LD A,(DE)
  4707.         EXX
  4708.         ADD A,(HL)
  4709.         LD (DE),A
  4710.         INC E
  4711.         JR Z,S21R4
  4712. S21J0   ADD A,(HL)
  4713.         RRA
  4714.         LD (DE),A
  4715.         INC E
  4716. S21H1   LD A,B
  4717.         ADD A,C
  4718.         LD B,A
  4719.         LD A,(HL)
  4720.         INC HL
  4721.         LD (DE),A
  4722.         INC E
  4723.         JP NC,S21J2
  4724. S21K2   ADD A,(HL)
  4725.         RRA
  4726.         LD (DE),A
  4727.         INC E
  4728. S21L3   LD A,B
  4729.         ADD A,C
  4730.         LD B,A
  4731.         LD A,(HL)
  4732.         INC HL
  4733.         LD (DE),A
  4734.         INC E
  4735.         JR Z,S21R5
  4736.         JP NC,S21K0
  4737.         SUB (HL)
  4738.         EXX
  4739.         JP C,S21G0
  4740.         LD L,A
  4741.         LD A,(HL)
  4742.         EXX
  4743.         ADD A,(HL)
  4744.         LD (DE),A
  4745.         INC E
  4746.         ADD A,(HL)
  4747.         RRA
  4748.         LD (DE),A
  4749.         INC E
  4750.         LD A,B
  4751.         ADD A,C
  4752.         LD B,A
  4753.         LD A,(HL)
  4754.         INC HL
  4755.         LD (DE),A
  4756.         INC E
  4757.         JP C,S21K3
  4758.         JP S21J3
  4759.  
  4760. S21R5   JR NC,S21R5_2
  4761.         LD C,0X02
  4762.         SRL B
  4763.         RET
  4764.        
  4765. S21R5_2 LD C,0X01
  4766.         RRC B
  4767.         RET
  4768.  
  4769. S22G0   LD E,A
  4770.         LD A,(DE)
  4771.         EXX
  4772.         ADD A,(HL)
  4773.         LD (DE),A
  4774.         INC E
  4775. S22J1   ADD A,(HL)
  4776.         RRA
  4777.         LD (DE),A
  4778.         INC E
  4779. S22H2   LD A,B
  4780.         ADD A,C
  4781.         LD B,A
  4782.         LD A,(HL)
  4783.         INC HL
  4784.         LD (DE),A
  4785.         INC E
  4786.         DEC IXL
  4787.         JR Z,S22R2
  4788.         JP NC,S22J3
  4789. S22K3   ADD A,(HL)
  4790.         RRA
  4791.         LD (DE),A
  4792.         INC E
  4793.         JR Z,S22R1
  4794. S22L0   LD A,B
  4795.         ADD A,C
  4796.         LD B,A
  4797.         LD A,(HL)
  4798.         INC HL
  4799.         LD (DE),A
  4800.         INC E
  4801.         DEC IXL
  4802.         JR Z,S22R5_3
  4803.         JP NC,S22K1
  4804.         SUB (HL)
  4805.         EXX
  4806.         JP C,S22G1
  4807.         LD L,A
  4808.         LD A,(HL)
  4809.         EXX
  4810.         ADD A,(HL)
  4811.         LD (DE),A
  4812.         INC E
  4813.         ADD A,(HL)
  4814.         RRA
  4815.         LD (DE),A
  4816.         INC E
  4817.         LD A,B
  4818.         ADD A,C
  4819.         LD B,A
  4820.         LD A,(HL)
  4821.         INC HL
  4822.         LD (DE),A
  4823.         INC E
  4824.         JR Z,S22R2
  4825.         DEC IXL
  4826.         JR Z,S22R2
  4827.         JP C,S22K0
  4828.         JP S22J0
  4829.  
  4830. S22R1   LD C,0X00
  4831.         RRC B
  4832.         RET
  4833.  
  4834. S22R2   LD C,0X01
  4835.         JR NC,S22R2_2
  4836.         RRC B
  4837.         RET
  4838.        
  4839. S22R2_2 SRL B
  4840.         RET
  4841.  
  4842. S22R5_3 JP S22R5
  4843.  
  4844. S22G1   LD E,A
  4845.         LD A,(DE)
  4846.         EXX
  4847.         ADD A,(HL)
  4848.         LD (DE),A
  4849.         INC E
  4850.  
  4851. S22J2   ADD A,(HL)
  4852.         RRA
  4853.         LD (DE),A
  4854.         INC E
  4855. S22H3   LD A,B
  4856.         ADD A,C
  4857.         LD B,A
  4858.         LD A,(HL)
  4859.         INC HL
  4860.         LD (DE),A
  4861.         INC E
  4862.         JR Z,S22R2
  4863.         DEC IXL
  4864.         JR Z,S22R2
  4865.         JP NC,S22J0
  4866. S22K0   ADD A,(HL)
  4867.         RRA
  4868.         LD (DE),A
  4869.         INC E
  4870. S22L1   LD A,B
  4871.         ADD A,C
  4872.         LD B,A
  4873.         LD A,(HL)
  4874.         INC HL
  4875.         LD (DE),A
  4876.         INC E
  4877.         DEC IXL
  4878.         JR Z,S22R5_3
  4879.         JP NC,S22K2
  4880.         SUB (HL)
  4881.         EXX
  4882.         JP C,S22G2
  4883.         LD L,A
  4884.         LD A,(HL)
  4885.         EXX
  4886.         ADD A,(HL)
  4887.         LD (DE),A
  4888.         INC E
  4889.         ADD A,(HL)
  4890.         RRA
  4891.         LD (DE),A
  4892.         INC E
  4893.         JR Z,S22R3
  4894.         LD A,B
  4895.         ADD A,C
  4896.         LD B,A
  4897.         LD A,(HL)
  4898.         INC HL
  4899.         LD (DE),A
  4900.         INC E
  4901.         DEC IXL
  4902.         JR Z,S22R2
  4903.         JP C,S22K1
  4904.         JP S22J1
  4905.  
  4906. S22R3   LD C,0X00
  4907.         SRL B
  4908.         RET
  4909.  
  4910. S22G2   LD E,A
  4911.         LD A,(DE)
  4912.         EXX
  4913.         ADD A,(HL)
  4914.         LD (DE),A
  4915.         INC E
  4916. S22J3   ADD A,(HL)
  4917.         RRA
  4918.         LD (DE),A
  4919.         INC E
  4920.         JR Z,S22R3
  4921. S22H0   LD A,B
  4922.         ADD A,C
  4923.         LD B,A
  4924.         LD A,(HL)
  4925.         INC HL
  4926.         LD (DE),A
  4927.         INC E
  4928.         DEC IXL
  4929.         JR Z,S22R2
  4930.         JP NC,S22J1
  4931. S22K1   ADD A,(HL)
  4932.         RRA
  4933.         LD (DE),A
  4934.         INC E
  4935. S22L2   LD A,B
  4936.         ADD A,C
  4937.         LD B,A
  4938.         LD A,(HL)
  4939.         INC HL
  4940.         LD (DE),A
  4941.         INC E
  4942.         DEC IXL
  4943.         JR Z,S22R5
  4944.         JP NC,S22K3
  4945.         SUB (HL)
  4946.         EXX
  4947.         JP C,S22G3
  4948.         LD L,A
  4949.         LD A,(HL)
  4950.         EXX
  4951.         ADD A,(HL)
  4952.         LD (DE),A
  4953.         INC E
  4954.         JR Z,S22R4
  4955.         ADD A,(HL)
  4956.         RRA
  4957.         LD (DE),A
  4958.         INC E
  4959.         LD A,B
  4960.         ADD A,C
  4961.         LD B,A
  4962.         LD A,(HL)
  4963.         INC HL
  4964.         LD (DE),A
  4965.         INC E
  4966.         DEC IXL
  4967.         JR Z,S22R2_3
  4968.         JP C,S22K2
  4969.         JP S22J2
  4970.  
  4971. S22G3   LD E,A
  4972.         LD A,(DE)
  4973.         EXX
  4974.         ADD A,(HL)
  4975.         LD (DE),A
  4976.         INC E
  4977.         JR Z,S22R4
  4978. S22J0   ADD A,(HL)
  4979.         RRA
  4980.         LD (DE),A
  4981.         INC E
  4982. S22H1   LD A,B
  4983.         ADD A,C
  4984.         LD B,A
  4985.         LD A,(HL)
  4986.         INC HL
  4987.         LD (DE),A
  4988.         INC E
  4989.         DEC IXL
  4990.         JR Z,S22R2_3
  4991.         JP NC,S22J2
  4992. S22K2   ADD A,(HL)
  4993.         RRA
  4994.         LD (DE),A
  4995.         INC E
  4996. S22L3   LD A,B
  4997.         ADD A,C
  4998.         LD B,A
  4999.         LD A,(HL)
  5000.         INC HL
  5001.         LD (DE),A
  5002.         INC E
  5003.         JR Z,S22R5
  5004.         DEC IXL
  5005.         JR Z,S22R5
  5006.         JP NC,S22K0
  5007.         SUB (HL)
  5008.         EXX
  5009.         JP C,S22G0
  5010.         LD L,A
  5011.         LD A,(HL)
  5012.         EXX
  5013.         ADD A,(HL)
  5014.         LD (DE),A
  5015.         INC E
  5016.         ADD A,(HL)
  5017.         RRA
  5018.         LD (DE),A
  5019.         INC E
  5020.         LD A,B
  5021.         ADD A,C
  5022.         LD B,A
  5023.         LD A,(HL)
  5024.         INC HL
  5025.         LD (DE),A
  5026.         INC E
  5027.         DEC IXL
  5028.         JR Z,S22R2_3
  5029.         JP C,S22K3
  5030.         JP S22J3
  5031.  
  5032. S22R2_3 JP S22R2
  5033.  
  5034. S22R5   JR NC,S22R5_2
  5035.         LD C,0X02
  5036.         SRL B
  5037.         RET
  5038.        
  5039. S22R5_2 LD C,0X01
  5040.         RRC B
  5041.         RET
  5042.  
  5043. S22R4   LD C,0X01
  5044.         SRL B
  5045.         RET
  5046.  
  5047. S23J0   SUB (HL)
  5048.         EXX
  5049.         JP C,S23P0
  5050.         LD L,A
  5051.         LD A,(HL)
  5052.         EXX
  5053.         ADD A,(HL)
  5054.         LD (DE),A
  5055.         INC E
  5056.         ADD A,(HL)
  5057.         RRA
  5058.         LD (DE),A
  5059.         INC E
  5060.         LD A,B
  5061.         ADD A,C
  5062.         LD B,A
  5063.         LD A,(HL)
  5064.         INC HL
  5065.         LD (DE),A
  5066.         INC E
  5067.         JP C,S23J3
  5068.         JP S23K3
  5069.  
  5070. S23P0   LD E,A
  5071.         LD A,(DE)
  5072.         EXX
  5073.         ADD A,(HL)
  5074.         LD (DE),A
  5075.         INC E
  5076.         ADD A,(HL)
  5077.         RRA
  5078.         LD (DE),A
  5079.         INC E
  5080. S23H2   LD A,B
  5081.         ADD A,C
  5082.         LD B,A
  5083.         LD A,(HL)
  5084.         INC HL
  5085.         LD (DE),A
  5086.         INC E
  5087.         JP C,S23J3
  5088. S23K3   SUB (HL)
  5089.         EXX
  5090.         JP C,S23I3
  5091.         LD L,A
  5092.         LD A,(HL)
  5093.         EXX
  5094.         ADD A,(HL)
  5095.         LD (DE),A
  5096.         INC E
  5097.         JR Z,S23R1
  5098.         ADD A,(HL)
  5099.         RRA
  5100.         LD (DE),A
  5101.         INC E
  5102.         LD A,B
  5103.         ADD A,C
  5104.         LD B,A
  5105.         LD A,(HL)
  5106.         INC HL
  5107.         LD (DE),A
  5108.         INC E
  5109.         JP C,S23K2
  5110.         JP S23G2
  5111.  
  5112. S23I3   LD E,A
  5113.         LD A,(DE)
  5114.         EXX
  5115.         ADD A,(HL)
  5116.         LD (DE),A
  5117.         INC E
  5118.         JR Z,S23R1
  5119.         ADD A,(HL)
  5120.         RRA
  5121.         LD (DE),A
  5122.         INC E
  5123. S23L1   LD A,B
  5124.         ADD A,C
  5125.         LD B,A
  5126.         LD A,(HL)
  5127.         INC HL
  5128.         LD (DE),A
  5129.         INC E
  5130.         JP C,S23K2
  5131. S23G2   ADD A,(HL)
  5132.         RRA
  5133.         LD (DE),A
  5134.         INC E
  5135.         LD A,B
  5136.         ADD A,C
  5137.         LD B,A
  5138.         LD A,(HL)
  5139.         INC HL
  5140.         LD (DE),A
  5141.         INC E
  5142.         JR Z,S23R2
  5143.         JP NC,S23K0
  5144.         JP S23J0
  5145.  
  5146. S23R1   LD C,0X01
  5147.         SRL B
  5148.         RET
  5149.        
  5150. S23R2   LD C,0X02
  5151.         JR NC,S23R2_2
  5152.         RRC B
  5153.         RET
  5154.        
  5155. S23R2_2 SRL B
  5156.         RET
  5157.  
  5158. S23J1   SUB (HL)
  5159.         EXX
  5160.         JP C,S23P1
  5161.         LD L,A
  5162.         LD A,(HL)
  5163.         EXX
  5164.         ADD A,(HL)
  5165.         LD (DE),A
  5166.         INC E
  5167.         ADD A,(HL)
  5168.         RRA
  5169.         LD (DE),A
  5170.         INC E
  5171.         LD A,B
  5172.         ADD A,C
  5173.         LD B,A
  5174.         LD A,(HL)
  5175.         INC HL
  5176.         LD (DE),A
  5177.         INC E
  5178.         JR Z,S23R2
  5179.         JP C,S23J0
  5180.         JP S23K0
  5181.  
  5182. S23P1   LD E,A
  5183.         LD A,(DE)
  5184.         EXX
  5185.         ADD A,(HL)
  5186.         LD (DE),A
  5187.         INC E
  5188.         ADD A,(HL)
  5189.         RRA
  5190.         LD (DE),A
  5191.         INC E
  5192. S23H3   LD A,B
  5193.         ADD A,C
  5194.         LD B,A
  5195.         LD A,(HL)
  5196.         INC HL
  5197.         LD (DE),A
  5198.         INC E
  5199.         JR Z,S23R2
  5200.         JP C,S23J0
  5201. S23K0   SUB (HL)
  5202.         EXX
  5203.         JP C,S23I0
  5204.         LD L,A
  5205.         LD A,(HL)
  5206.         EXX
  5207.         ADD A,(HL)
  5208.         LD (DE),A
  5209.         INC E
  5210.         ADD A,(HL)
  5211.         RRA
  5212.         LD (DE),A
  5213.         INC E
  5214.         LD A,B
  5215.         ADD A,C
  5216.         LD B,A
  5217.         LD A,(HL)
  5218.         INC HL
  5219.         LD (DE),A
  5220.         INC E
  5221.         JP C,S23K3
  5222.         JP S23G3
  5223.  
  5224. S23I0   LD E,A
  5225.         LD A,(DE)
  5226.         EXX
  5227.         ADD A,(HL)
  5228.         LD (DE),A
  5229.         INC E
  5230.         ADD A,(HL)
  5231.         RRA
  5232.         LD (DE),A
  5233.         INC E
  5234. S23L2   LD A,B
  5235.         ADD A,C
  5236.         LD B,A
  5237.         LD A,(HL)
  5238.         INC HL
  5239.         LD (DE),A
  5240.         INC E
  5241.         JP C,S23K3
  5242. S23G3   ADD A,(HL)
  5243.         RRA
  5244.         LD (DE),A
  5245.         INC E
  5246.         JR Z,S23R3
  5247.         LD A,B
  5248.         ADD A,C
  5249.         LD B,A
  5250.         LD A,(HL)
  5251.         INC HL
  5252.         LD (DE),A
  5253.         INC E
  5254.         JP NC,S23K1
  5255.         JP S23J1
  5256.  
  5257. S23R3   LD C,0X00
  5258.         RRC B
  5259.         RET
  5260.  
  5261. S23J2   SUB (HL)
  5262.         EXX
  5263.         JP C,S23P2
  5264.         LD L,A
  5265.         LD A,(HL)
  5266.         EXX
  5267.         ADD A,(HL)
  5268.         LD (DE),A
  5269.         INC E
  5270.         ADD A,(HL)
  5271.         RRA
  5272.         LD (DE),A
  5273.         INC E
  5274.         JR Z,S23R3
  5275.         LD A,B
  5276.         ADD A,C
  5277.         LD B,A
  5278.         LD A,(HL)
  5279.         INC HL
  5280.         LD (DE),A
  5281.         INC E
  5282.         JP C,S23J1
  5283.         JP S23K1
  5284.  
  5285. S23P2   LD E,A
  5286.         LD A,(DE)
  5287.         EXX
  5288.         ADD A,(HL)
  5289.         LD (DE),A
  5290.         INC E
  5291.         ADD A,(HL)
  5292.         RRA
  5293.         LD (DE),A
  5294.         INC E
  5295.         JR Z,S23R3
  5296. S23H0   LD A,B
  5297.         ADD A,C
  5298.         LD B,A
  5299.         LD A,(HL)
  5300.         INC HL
  5301.         LD (DE),A
  5302.         INC E
  5303.         JP C,S23J1
  5304. S23K1   SUB (HL)
  5305.         EXX
  5306.         JP C,S23I1
  5307.         LD L,A
  5308.         LD A,(HL)
  5309.         EXX
  5310.         ADD A,(HL)
  5311.         LD (DE),A
  5312.         INC E
  5313.         ADD A,(HL)
  5314.         RRA
  5315.         LD (DE),A
  5316.         INC E
  5317.         LD A,B
  5318.         ADD A,C
  5319.         LD B,A
  5320.         LD A,(HL)
  5321.         INC HL
  5322.         LD (DE),A
  5323.         INC E
  5324.         JR Z,S23R4
  5325.         JP C,S23K0
  5326.         JP S23G0
  5327.  
  5328. S23I1   LD E,A
  5329.         LD A,(DE)
  5330.         EXX
  5331.         ADD A,(HL)
  5332.         LD (DE),A
  5333.         INC E
  5334.         ADD A,(HL)
  5335.         RRA
  5336.         LD (DE),A
  5337.         INC E
  5338. S23L3   LD A,B
  5339.         ADD A,C
  5340.         LD B,A
  5341.         LD A,(HL)
  5342.         INC HL
  5343.         LD (DE),A
  5344.         INC E
  5345.         JR Z,S23R4
  5346.         JP C,S23K0
  5347.  
  5348. S23G0   ADD A,(HL)
  5349.         RRA
  5350.         LD (DE),A
  5351.         INC E
  5352.         LD A,B
  5353.         ADD A,C
  5354.         LD B,A
  5355.         LD A,(HL)
  5356.         INC HL
  5357.         LD (DE),A
  5358.         INC E
  5359.         JP NC,S23K2
  5360.         JP S23J2
  5361.  
  5362. S23R4   JR C,S23R4_2
  5363.         LD C,0X01
  5364.         RRC B
  5365.         RET
  5366.        
  5367. S23R4_2 LD C,0X02
  5368.         SRL B
  5369.         RET
  5370.  
  5371. S23R5   LD C,0X01
  5372.         RRC B
  5373.         RET
  5374.  
  5375. S23J3   SUB (HL)
  5376.         EXX
  5377.         JP C,S23P3
  5378.         LD L,A
  5379.         LD A,(HL)
  5380.         EXX
  5381.         ADD A,(HL)
  5382.         LD (DE),A
  5383.         INC E
  5384.         JR Z,S23R5
  5385.         ADD A,(HL)
  5386.         RRA
  5387.         LD (DE),A
  5388.         INC E
  5389.         LD A,B
  5390.         ADD A,C
  5391.         LD B,A
  5392.         LD A,(HL)
  5393.         INC HL
  5394.         LD (DE),A
  5395.         INC E
  5396.         JP C,S23J2
  5397.         JP S23K2
  5398.  
  5399. S23P3   LD E,A
  5400.         LD A,(DE)
  5401.         EXX
  5402.         ADD A,(HL)
  5403.         LD (DE),A
  5404.         INC E
  5405.         JR Z,S23R5
  5406.         ADD A,(HL)
  5407.         RRA
  5408.         LD (DE),A
  5409.         INC E
  5410. S23H1   LD A,B
  5411.         ADD A,C
  5412.         LD B,A
  5413.         LD A,(HL)
  5414.         INC HL
  5415.         LD (DE),A
  5416.         INC E
  5417.         JP C,S23J2
  5418. S23K2   SUB (HL)
  5419.         EXX
  5420.         JP C,S23I2
  5421.         LD L,A
  5422.         LD A,(HL)
  5423.         EXX
  5424.         ADD A,(HL)
  5425.         LD (DE),A
  5426.         INC E
  5427.         ADD A,(HL)
  5428.         RRA
  5429.         LD (DE),A
  5430.         INC E
  5431.         JR Z,S23R6
  5432.         LD A,B
  5433.         ADD A,C
  5434.         LD B,A
  5435.         LD A,(HL)
  5436.         INC HL
  5437.         LD (DE),A
  5438.         INC E
  5439.         JP C,S23K1
  5440.         JP S23G1
  5441.  
  5442. S23I2   LD E,A
  5443.         LD A,(DE)
  5444.         EXX
  5445.         ADD A,(HL)
  5446.         LD (DE),A
  5447.         INC E
  5448.         ADD A,(HL)
  5449.         RRA
  5450.         LD (DE),A
  5451.         INC E
  5452.         JR Z,S23R6
  5453. S23L0   LD A,B
  5454.         ADD A,C
  5455.         LD B,A
  5456.         LD A,(HL)
  5457.         INC HL
  5458.         LD (DE),A
  5459.         INC E
  5460.         JP C,S23K1
  5461. S23G1   ADD A,(HL)
  5462.         RRA
  5463.         LD (DE),A
  5464.         INC E
  5465.         LD A,B
  5466.         ADD A,C
  5467.         LD B,A
  5468.         LD A,(HL)
  5469.         INC HL
  5470.         LD (DE),A
  5471.         INC E
  5472.         JP NC,S23K3
  5473.         JP S23J3
  5474.  
  5475. S23R6   LD C,0X00
  5476.         SRL B
  5477.         RET
  5478.  
  5479. S24J0   SUB (HL)
  5480.         EXX
  5481.         JP C,S24P0
  5482.         LD L,A
  5483.         LD A,(HL)
  5484.         EXX
  5485.         ADD A,(HL)
  5486.         LD (DE),A
  5487.         INC E
  5488.         ADD A,(HL)
  5489.         RRA
  5490.         LD (DE),A
  5491.         INC E
  5492.         LD A,B
  5493.         ADD A,C
  5494.         LD B,A
  5495.         LD A,(HL)
  5496.         INC HL
  5497.         LD (DE),A
  5498.         INC E
  5499.         DEC IXL
  5500.         JR Z,S24R2
  5501.         JP C,S24J3
  5502.         JP S24K3
  5503.  
  5504. S24P0   LD E,A
  5505.         LD A,(DE)
  5506.         EXX
  5507.         ADD A,(HL)
  5508.         LD (DE),A
  5509.         INC E
  5510.         ADD A,(HL)
  5511.         RRA
  5512.         LD (DE),A
  5513.         INC E
  5514. S24H2   LD A,B
  5515.         ADD A,C
  5516.         LD B,A
  5517.         LD A,(HL)
  5518.         INC HL
  5519.         LD (DE),A
  5520.         INC E
  5521.         DEC IXL
  5522.         JR Z,S24R2
  5523.         JP C,S24J3
  5524. S24K3   SUB (HL)
  5525.         EXX
  5526.         JP C,S24I3
  5527.         LD L,A
  5528.         LD A,(HL)
  5529.         EXX
  5530.         ADD A,(HL)
  5531.         LD (DE),A
  5532.         INC E
  5533.         JR Z,S24R1
  5534.         ADD A,(HL)
  5535.         RRA
  5536.         LD (DE),A
  5537.         INC E
  5538.         LD A,B
  5539.         ADD A,C
  5540.         LD B,A
  5541.         LD A,(HL)
  5542.         INC HL
  5543.         LD (DE),A
  5544.         INC E
  5545.         DEC IXL
  5546.         JR Z,S24R4_3
  5547.         JP C,S24K2
  5548.         JP S24G2
  5549.  
  5550. S24I3   LD E,A
  5551.         LD A,(DE)
  5552.         EXX
  5553.         ADD A,(HL)
  5554.         LD (DE),A
  5555.         INC E
  5556.         JR Z,S24R1
  5557.         ADD A,(HL)
  5558.         RRA
  5559.         LD (DE),A
  5560.         INC E
  5561. S24L1   LD A,B
  5562.         ADD A,C
  5563.         LD B,A
  5564.         LD A,(HL)
  5565.         INC HL
  5566.         LD (DE),A
  5567.         INC E
  5568.         DEC IXL
  5569.         JR Z,S24R4_3
  5570.         JP C,S24K2
  5571.  
  5572. S24G2   ADD A,(HL)
  5573.         RRA
  5574.         LD (DE),A
  5575.         INC E
  5576.         LD A,B
  5577.         ADD A,C
  5578.         LD B,A
  5579.         LD A,(HL)
  5580.         INC HL
  5581.         LD (DE),A
  5582.         INC E
  5583.         JR Z,S24R2
  5584.         DEC IXL
  5585.         JR Z,S24R2
  5586.         JP NC,S24K0
  5587.         JP S24J0
  5588.  
  5589. S24R1   LD C,0X01
  5590.         SRL B
  5591.         RET
  5592.        
  5593. S24R2   LD C,0X02
  5594.         JR NC,S24R2_2
  5595.         RRC B
  5596.         RET
  5597.        
  5598. S24R2_2 SRL B
  5599.         RET
  5600.  
  5601. S24R4_3 JP S24R4
  5602.  
  5603. S24J1   SUB (HL)
  5604.         EXX
  5605.         JP C,S24P1
  5606.         LD L,A
  5607.         LD A,(HL)
  5608.         EXX
  5609.         ADD A,(HL)
  5610.         LD (DE),A
  5611.         INC E
  5612.         ADD A,(HL)
  5613.         RRA
  5614.         LD (DE),A
  5615.         INC E
  5616.         LD A,B
  5617.         ADD A,C
  5618.         LD B,A
  5619.         LD A,(HL)
  5620.         INC HL
  5621.         LD (DE),A
  5622.         INC E
  5623.         JR Z,S24R2
  5624.         DEC IXL
  5625.         JR Z,S24R2
  5626.         JP C,S24J0
  5627.         JP S24K0
  5628.  
  5629. S24P1   LD E,A
  5630.         LD A,(DE)
  5631.         EXX
  5632.         ADD A,(HL)
  5633.         LD (DE),A
  5634.         INC E
  5635.         ADD A,(HL)
  5636.         RRA
  5637.         LD (DE),A
  5638.         INC E
  5639. S24H3   LD A,B
  5640.         ADD A,C
  5641.         LD B,A
  5642.         LD A,(HL)
  5643.         INC HL
  5644.         LD (DE),A
  5645.         INC E
  5646.         JR Z,S24R2
  5647.         DEC IXL
  5648.         JR Z,S24R2
  5649.         JP C,S24J0
  5650. S24K0   SUB (HL)
  5651.         EXX
  5652.         JP C,S24I0
  5653.         LD L,A
  5654.         LD A,(HL)
  5655.         EXX
  5656.         ADD A,(HL)
  5657.         LD (DE),A
  5658.         INC E
  5659.         ADD A,(HL)
  5660.         RRA
  5661.         LD (DE),A
  5662.         INC E
  5663.         LD A,B
  5664.         ADD A,C
  5665.         LD B,A
  5666.         LD A,(HL)
  5667.         INC HL
  5668.         LD (DE),A
  5669.         INC E
  5670.         DEC IXL
  5671.         JR Z,S24R4_3
  5672.         JP C,S24K3
  5673.         JP S24G3
  5674.  
  5675. S24I0   LD E,A
  5676.         LD A,(DE)
  5677.         EXX
  5678.         ADD A,(HL)
  5679.         LD (DE),A
  5680.         INC E
  5681.         ADD A,(HL)
  5682.         RRA
  5683.         LD (DE),A
  5684.         INC E
  5685. S24L2   LD A,B
  5686.         ADD A,C
  5687.         LD B,A
  5688.         LD A,(HL)
  5689.         INC HL
  5690.         LD (DE),A
  5691.         INC E
  5692.         DEC IXL
  5693.         JR Z,S24R4_3
  5694.         JP C,S24K3
  5695. S24G3   ADD A,(HL)
  5696.         RRA
  5697.         LD (DE),A
  5698.         INC E
  5699.         JR Z,S24R3
  5700.         LD A,B
  5701.         ADD A,C
  5702.         LD B,A
  5703.         LD A,(HL)
  5704.         INC HL
  5705.         LD (DE),A
  5706.         INC E
  5707.         DEC IXL
  5708.         JR Z,S24R2_5
  5709.         JP NC,S24K1
  5710.         JP S24J1
  5711.        
  5712. S24R2_5 JP S24R2
  5713.  
  5714. S24R3   LD C,0X00
  5715.         RRC B
  5716.         RET
  5717.  
  5718. S24J2   SUB (HL)
  5719.         EXX
  5720.         JP C,S24P2
  5721.         LD L,A
  5722.         LD A,(HL)
  5723.         EXX
  5724.         ADD A,(HL)
  5725.         LD (DE),A
  5726.         INC E
  5727.         ADD A,(HL)
  5728.         RRA
  5729.         LD (DE),A
  5730.         INC E
  5731.         JR Z,S24R3
  5732.         LD A,B
  5733.         ADD A,C
  5734.         LD B,A
  5735.         LD A,(HL)
  5736.         INC HL
  5737.         LD (DE),A
  5738.         INC E
  5739.         DEC IXL
  5740.         JR Z,S24R2_3
  5741.         JP C,S24J1
  5742.         JP S24K1
  5743.  
  5744. S24P2   LD E,A
  5745.         LD A,(DE)
  5746.         EXX
  5747.         ADD A,(HL)
  5748.         LD (DE),A
  5749.         INC E
  5750.         ADD A,(HL)
  5751.         RRA
  5752.         LD (DE),A
  5753.         INC E
  5754.         JR Z,S24R3
  5755. S24H0   LD A,B
  5756.         ADD A,C
  5757.         LD B,A
  5758.         LD A,(HL)
  5759.         INC HL
  5760.         LD (DE),A
  5761.         INC E
  5762.         DEC IXL
  5763.         JR Z,S24R2_3
  5764.         JP C,S24J1
  5765. S24K1   SUB (HL)
  5766.         EXX
  5767.         JP C,S24I1
  5768.         LD L,A
  5769.         LD A,(HL)
  5770.         EXX
  5771.         ADD A,(HL)
  5772.         LD (DE),A
  5773.         INC E
  5774.         ADD A,(HL)
  5775.         RRA
  5776.         LD (DE),A
  5777.         INC E
  5778.         LD A,B
  5779.         ADD A,C
  5780.         LD B,A
  5781.         LD A,(HL)
  5782.         INC HL
  5783.         LD (DE),A
  5784.         INC E
  5785.         JR Z,S24R4
  5786.         DEC IXL
  5787.         JR Z,S24R4
  5788.         JP C,S24K0
  5789.         JP S24G0
  5790.  
  5791. S24I1   LD E,A
  5792.         LD A,(DE)
  5793.         EXX
  5794.         ADD A,(HL)
  5795.         LD (DE),A
  5796.         INC E
  5797.         ADD A,(HL)
  5798.         RRA
  5799.         LD (DE),A
  5800.         INC E
  5801. S24L3   LD A,B
  5802.         ADD A,C
  5803.         LD B,A
  5804.         LD A,(HL)
  5805.         INC HL
  5806.         LD (DE),A
  5807.         INC E
  5808.         JR Z,S24R4
  5809.         DEC IXL
  5810.         JR Z,S24R4
  5811.         JP C,S24K0
  5812.  
  5813. S24G0   ADD A,(HL)
  5814.         RRA
  5815.         LD (DE),A
  5816.         INC E
  5817.         LD A,B
  5818.         ADD A,C
  5819.         LD B,A
  5820.         LD A,(HL)
  5821.         INC HL
  5822.         LD (DE),A
  5823.         INC E
  5824.         DEC IXL
  5825.         JR Z,S24R2_3
  5826.         JP NC,S24K2
  5827.         JP S24J2
  5828.  
  5829. S24R4   JR C,S24R4_2
  5830.         LD C,0X01
  5831.         RRC B
  5832.         RET
  5833.        
  5834. S24R4_2 LD C,0X02
  5835.         SRL B
  5836.         RET
  5837.        
  5838. S24R2_3 JP S24R2
  5839.  
  5840. S24R5   LD C,0X01
  5841.         RRC B
  5842.         RET
  5843.  
  5844. S24J3   SUB (HL)
  5845.         EXX
  5846.         JP C,S24P3
  5847.         LD L,A
  5848.         LD A,(HL)
  5849.         EXX
  5850.         ADD A,(HL)
  5851.         LD (DE),A
  5852.         INC E
  5853.         JR Z,S24R5
  5854.         ADD A,(HL)
  5855.         RRA
  5856.         LD (DE),A
  5857.         INC E
  5858.         LD A,B
  5859.         ADD A,C
  5860.         LD B,A
  5861.         LD A,(HL)
  5862.         INC HL
  5863.         LD (DE),A
  5864.         INC E
  5865.         DEC IXL
  5866.         JR Z,S24R2_3
  5867.         JP C,S24J2
  5868.         JP S24K2
  5869.  
  5870. S24P3   LD E,A
  5871.         LD A,(DE)
  5872.         EXX
  5873.         ADD A,(HL)
  5874.         LD (DE),A
  5875.         INC E
  5876.         JR Z,S24R5
  5877.         ADD A,(HL)
  5878.         RRA
  5879.         LD (DE),A
  5880.         INC E
  5881. S24H1   LD A,B
  5882.         ADD A,C
  5883.         LD B,A
  5884.         LD A,(HL)
  5885.         INC HL
  5886.         LD (DE),A
  5887.         INC E
  5888.         DEC IXL
  5889.         JR Z,S24R2_3
  5890.         JP C,S24J2
  5891. S24K2   SUB (HL)
  5892.         EXX
  5893.         JP C,S24I2
  5894.         LD L,A
  5895.         LD A,(HL)
  5896.         EXX
  5897.         ADD A,(HL)
  5898.         LD (DE),A
  5899.         INC E
  5900.         ADD A,(HL)
  5901.         RRA
  5902.         LD (DE),A
  5903.         INC E
  5904.         JR Z,S24R6
  5905.         LD A,B
  5906.         ADD A,C
  5907.         LD B,A
  5908.         LD A,(HL)
  5909.         INC HL
  5910.         LD (DE),A
  5911.         INC E
  5912.         DEC IXL
  5913.         JR Z,S24R4
  5914.         JP C,S24K1
  5915.         JP S24G1
  5916.  
  5917. S24I2   LD E,A
  5918.         LD A,(DE)
  5919.         EXX
  5920.         ADD A,(HL)
  5921.         LD (DE),A
  5922.         INC E
  5923.         ADD A,(HL)
  5924.         RRA
  5925.         LD (DE),A
  5926.         INC E
  5927.         JR Z,S24R6
  5928. S24L0   LD A,B
  5929.         ADD A,C
  5930.         LD B,A
  5931.         LD A,(HL)
  5932.         INC HL
  5933.         LD (DE),A
  5934.         INC E
  5935.         DEC IXL
  5936.         JR Z,S24R4_4
  5937.         JP C,S24K1
  5938. S24G1   ADD A,(HL)
  5939.         RRA
  5940.         LD (DE),A
  5941.         INC E
  5942.         LD A,B
  5943.         ADD A,C
  5944.         LD B,A
  5945.         LD A,(HL)
  5946.         INC HL
  5947.         LD (DE),A
  5948.         INC E
  5949.         DEC IXL
  5950.         JR Z,S24R2_4
  5951.         JP NC,S24K3
  5952.         JP S24J3
  5953.        
  5954. S24R2_4 JP S24R2
  5955.  
  5956. S24R4_4 JP S24R4
  5957.  
  5958. S24R6   LD C,0X00
  5959.         SRL B
  5960.         RET
  5961.  
  5962. ;INCLUDE "SGEN3.a80"
  5963. S3_     LD D,C
  5964.         PUSH DE
  5965.         LD D,B
  5966.         EXX
  5967.         POP BC
  5968. S31     SLA B
  5969.         JP C,S318
  5970.  
  5971. S310    LD A,IXL
  5972.         ADD A,A
  5973.         JP C,S311
  5974.         ADD A,IXL
  5975.         JP C,S311
  5976.         ADD A,E
  5977.         JR Z,S310_
  5978.         JP C,S311
  5979.         BIT 7,B
  5980.         JR Z,S310_
  5981.         LD IYL,A
  5982.         LD A,IXL
  5983.         SRL A
  5984.         SRL A
  5985.         ADD A,IYL
  5986.         JR Z,S310_
  5987.         JP C,S311
  5988. S310_   DB 0XCB,0X31;SLI C
  5989.         JP C,S3101
  5990.         JP S3100
  5991.  
  5992. S3102   JR Z,S3104
  5993. S310A   INC E
  5994.         JR Z,S3105
  5995.         ADD A,(HL)
  5996.         RRA
  5997.         LD (DE),A
  5998.         INC E
  5999.         JR Z,S31052
  6000.         LD (DE),A
  6001.         INC E
  6002.         JR Z,S31053
  6003. S3100   LD A,C
  6004.         ADD A,B
  6005.         LD C,A
  6006.         LD A,(HL)
  6007.         INC HL
  6008.         DEC IXL
  6009.         LD (DE),A
  6010.         JP NC,S3102
  6011.         JR Z,S3106
  6012.         INC E
  6013.         JR Z,S3107
  6014.         LD IYL,A
  6015.         ADD A,(HL)
  6016.         RRA
  6017.         LD IYH,A
  6018.         ADD A,IYL
  6019.         RRA
  6020.         LD (DE),A
  6021.         INC E
  6022.         JR Z,S3109
  6023.         LD A,IYH
  6024.         LD (DE),A
  6025.         INC E
  6026.         JR Z,S31092
  6027.         ADD A,(HL)
  6028.         RRA
  6029.         LD (DE),A
  6030.         INC E
  6031.         JP NZ,S3101
  6032.         JP S31093
  6033.  
  6034. S3103   JR Z,S3108
  6035.         INC E
  6036.         JR Z,S3109
  6037.         ADD A,(HL)
  6038.         RRA
  6039.         LD (DE),A
  6040.         INC E
  6041.         JR Z,S31092
  6042.         LD (DE),A
  6043.         INC E
  6044.         JR Z,S31093
  6045. S3101   LD A,C
  6046.         ADD A,B
  6047.         LD C,A
  6048.         LD A,(HL)
  6049.         INC HL
  6050.         DEC IXL
  6051.         LD (DE),A
  6052.         JP NC,S3103
  6053.         JP NZ,S310A
  6054. S3104   INC E
  6055. S3105   SRL C
  6056.         LD IYL,C
  6057.         EXX
  6058.         LD E,IYL
  6059.         LD D,2
  6060.         RET
  6061.        
  6062. S31052  SRL C
  6063.         LD IYL,C
  6064.         EXX
  6065.         LD E,IYL
  6066.         LD D,1
  6067.         RET
  6068.        
  6069. S31053  SRL C
  6070.         LD IYL,C
  6071.         EXX
  6072.         LD E,IYL
  6073.         LD D,0
  6074.         RET
  6075.        
  6076. S3106   INC E
  6077. S3107   RRC C
  6078.         LD IYL,C
  6079.         EXX
  6080.         LD E,IYL
  6081.         RET
  6082.        
  6083. S3108   INC E
  6084. S3109   RRC C
  6085.         LD IYL,C
  6086.         EXX
  6087.         LD E,IYL
  6088.         DEC D
  6089.         RET
  6090.        
  6091. S31092  RRC C
  6092.         LD IYL,C
  6093.         EXX
  6094.         LD E,IYL
  6095.         LD D,1
  6096.         RET
  6097.        
  6098. S31093  RRC C
  6099.         LD IYL,C
  6100.         EXX
  6101.         LD E,IYL
  6102.         LD D,0
  6103.         RET
  6104.  
  6105. S311    DB 0XCB,0X31;SLI C
  6106.         JP C,S3111
  6107.         JR S3110
  6108.  
  6109. S3112   JR Z,S3114
  6110.         ADD A,(HL)
  6111.         RRA
  6112.         LD (DE),A
  6113.         INC E
  6114.         JR Z,S31141
  6115.         LD (DE),A
  6116.         INC E
  6117.         JR Z,S31142
  6118. S3110   LD A,C
  6119.         ADD A,B
  6120.         LD C,A
  6121.         LD A,(HL)
  6122.         INC HL
  6123.         LD (DE),A
  6124.         INC E
  6125.         JP NC,S3112
  6126.         JR Z,S3115
  6127.         LD IYL,A
  6128.         ADD A,(HL)
  6129.         RRA
  6130.         LD IYH,A
  6131.         ADD A,IYL
  6132.         RRA
  6133.         LD (DE),A
  6134.         INC E
  6135.         JR Z,S31151
  6136.         LD A,IYH
  6137.         LD (DE),A
  6138.         INC E
  6139.         JR Z,S3116
  6140.         ADD A,(HL)
  6141.         RRA
  6142.         LD (DE),A
  6143.         INC E
  6144.         JP NZ,S3111
  6145.         JP S31162
  6146.  
  6147. S3113   JR Z,S31151
  6148.         ADD A,(HL)
  6149.         RRA
  6150.         LD (DE),A
  6151.         INC E
  6152.         JR Z,S3116
  6153.         LD (DE),A
  6154.         INC E
  6155.         JR Z,S31162
  6156. S3111   LD A,C
  6157.         ADD A,B
  6158.         LD C,A
  6159.         LD A,(HL)
  6160.         INC HL
  6161.         LD (DE),A
  6162.         INC E
  6163.         JP NC,S3113
  6164.         JP NZ,S3112
  6165.         SRL C
  6166.         LD IYL,C
  6167.         EXX
  6168.         LD E,IYL
  6169.         LD D,2
  6170.         RET
  6171.        
  6172. S31141  SRL C
  6173.         LD IYL,C
  6174.         EXX
  6175.         LD E,IYL
  6176.         LD D,1
  6177.         RET
  6178.        
  6179. S31142  SRL C
  6180.         LD IYL,C
  6181.         EXX
  6182.         LD E,IYL
  6183.         LD D,0
  6184.         RET
  6185.        
  6186. S3114   SRL C
  6187.         LD IYL,C
  6188.         EXX
  6189.         LD E,IYL
  6190.         LD D,2
  6191.         RET
  6192.        
  6193. S3115   RRC C
  6194.         LD IYL,C
  6195.         EXX
  6196.         LD E,IYL
  6197.         RET
  6198.        
  6199. S31151  RRC C
  6200.         LD IYL,C
  6201.         EXX
  6202.         LD E,IYL
  6203.         DEC D
  6204.         RET
  6205.        
  6206. S3116   RRC C
  6207.         LD IYL,C
  6208.         EXX
  6209.         LD E,IYL
  6210.         LD D,1
  6211.         RET
  6212.        
  6213. S31162  RRC C
  6214.         LD IYL,C
  6215.         EXX
  6216.         LD E,IYL
  6217.         LD D,0
  6218.         RET
  6219.  
  6220. S318    LD A,IXL
  6221.         ADD A,A
  6222.         JP C,S319
  6223.         ADD A,IXL
  6224.         JP C,S319
  6225.         LD IYL,A
  6226.         LD A,IXL
  6227.         SRL A
  6228.         ADD A,IYL
  6229.         JP C,S319
  6230.         ADD A,E
  6231.         JR Z,S318_
  6232.         JP C,S319
  6233.         BIT 7,B
  6234.         JR Z,S318_
  6235.         LD IYL,A
  6236.         LD A,IXL
  6237.         SRL A
  6238.         SRL A
  6239.         ADD A,IYL
  6240.         JR Z,S318_
  6241.         JP C,S319
  6242. S318_   DB 0XCB,0X31;SLI C
  6243.         JP NC,S3180
  6244.         JP S3181
  6245.  
  6246. S3184   INC E
  6247. S3185   RRC C
  6248.         LD IYL,C
  6249.         EXX
  6250.         LD E,IYL
  6251.         RET
  6252.  
  6253. S3182   JR Z,S3184
  6254.         INC E
  6255. S31822  JR Z,S3185
  6256. S318222 LD IYL,A
  6257.         ADD A,(HL)
  6258.         RRA
  6259.         LD IYH,A
  6260.         ADD A,IYL
  6261.         RRA
  6262.         LD (DE),A
  6263.         INC E
  6264.         JR Z,S3186
  6265.         LD A,IYH
  6266.         LD (DE),A
  6267.         INC E
  6268.         JR Z,S31866
  6269.         ADD A,(HL)
  6270.         RRA
  6271.         LD (DE),A
  6272.         INC E
  6273.         JR Z,S31867
  6274. S3181   LD A,C
  6275.         ADD A,B
  6276.         LD C,A
  6277.         LD A,(HL)
  6278.         INC HL
  6279.         DEC IXL
  6280.         LD (DE),A
  6281.         JP C,S3182
  6282.         JR Z,S31871
  6283.         INC E
  6284.         JR Z,S31891
  6285.         ADD A,(HL)
  6286.         RRA
  6287.         LD (DE),A
  6288.         INC E
  6289.         JR Z,S3189
  6290.         LD (DE),A
  6291.         INC E
  6292.         JP NZ,S3180
  6293.         JP S31892
  6294.        
  6295. S31871  INC E
  6296. S31891  SRL C
  6297.         LD IYL,C
  6298.         EXX
  6299.         LD E,IYL
  6300.         DEC D
  6301.         RET
  6302.  
  6303. S3183   JR Z,S3187
  6304.         INC E
  6305.         JR Z,S3188
  6306.         LD IYL,A
  6307.         ADD A,(HL)
  6308.         RRA
  6309.         LD IYH,A
  6310.         ADD A,IYL
  6311.         RRA
  6312.         LD (DE),A
  6313.         INC E
  6314.         JR Z,S31891
  6315.         LD A,IYH
  6316.         LD (DE),A
  6317.         INC E
  6318.         JR Z,S3189
  6319.         ADD A,(HL)
  6320.         RRA
  6321.         LD (DE),A
  6322.         INC E
  6323.         JR Z,S31892
  6324. S3180   LD A,C
  6325.         ADD A,B
  6326.         LD C,A
  6327.         LD A,(HL)
  6328.         INC HL
  6329.         DEC IXL
  6330.         LD (DE),A
  6331.         JP C,S3183
  6332.         JR Z,S31844
  6333.         INC E
  6334.         JP NZ,S318222
  6335.         RRC C
  6336.         LD IYL,C
  6337.         EXX
  6338.         LD E,IYL
  6339.         RET
  6340.        
  6341. S3186   RRC C
  6342.         LD IYL,C
  6343.         EXX
  6344.         LD E,IYL
  6345.         DEC D
  6346.         RET
  6347.        
  6348. S31866  RRC C
  6349.         LD IYL,C
  6350.         EXX
  6351.         LD E,IYL
  6352.         DEC D
  6353.         DEC D
  6354.         RET
  6355.        
  6356. S31867  RRC C
  6357.         LD IYL,C
  6358.         EXX
  6359.         LD E,IYL
  6360.         DEC D
  6361.         DEC D
  6362.         DEC D
  6363.         RET
  6364.  
  6365. S31844  INC E
  6366.         RRC C
  6367.         LD IYL,C
  6368.         EXX
  6369.         LD E,IYL
  6370.         RET
  6371.  
  6372. S3187   INC E
  6373. S3188   SRL C
  6374.         LD IYL,C
  6375.         EXX
  6376.         LD E,IYL
  6377.         RET
  6378.        
  6379. S3189   SRL C
  6380.         LD IYL,C
  6381.         EXX
  6382.         LD E,IYL
  6383.         DEC D
  6384.         DEC D
  6385.         RET
  6386.        
  6387. S31892  SRL C
  6388.         LD IYL,C
  6389.         EXX
  6390.         LD E,IYL
  6391.         DEC D
  6392.         DEC D
  6393.         DEC D
  6394.         RET
  6395.  
  6396. S319    DB 0XCB,0X31;SLI C
  6397.         JP NC,S3190
  6398.         JP S3191
  6399.  
  6400. S3195   RRC C
  6401.         LD IYL,C
  6402.         EXX
  6403.         LD E,IYL
  6404.         RET
  6405.  
  6406. S3192   JR Z,S3195
  6407.         LD IYL,A
  6408.         ADD A,(HL)
  6409.         RRA
  6410.         LD IYH,A
  6411.         ADD A,IYL
  6412.         RRA
  6413.         LD (DE),A
  6414.         INC E
  6415.         JR Z,S3196
  6416.         LD A,IYH
  6417.         LD (DE),A
  6418.         INC E
  6419.         JR Z,S31966
  6420.         ADD A,(HL)
  6421.         RRA
  6422.         LD (DE),A
  6423.         INC E
  6424.         JR Z,S31967
  6425. S3191   LD A,C
  6426.         ADD A,B
  6427.         LD C,A
  6428.         LD A,(HL)
  6429.         INC HL
  6430.         LD (DE),A
  6431.         INC E
  6432.         JP C,S3192
  6433.         JR Z,S3199
  6434.         ADD A,(HL)
  6435.         RRA
  6436.         LD (DE),A
  6437.         INC E
  6438.         JR Z,S31993
  6439.         LD (DE),A
  6440.         INC E
  6441.         JP NZ,S3190
  6442.         JP S31994
  6443.  
  6444. S3193   JR Z,S3198
  6445.         LD IYL,A
  6446.         ADD A,(HL)
  6447.         RRA
  6448.         LD IYH,A
  6449.         ADD A,IYL
  6450.         RRA
  6451.         LD (DE),A
  6452.         INC E
  6453.         JR Z,S3199
  6454. S31933  LD A,IYH
  6455.         LD (DE),A
  6456.         INC E
  6457.         JR Z,S31993
  6458.         ADD A,(HL)
  6459.         RRA
  6460.         LD (DE),A
  6461.         INC E
  6462.         JR Z,S31994
  6463. S3190   LD A,C
  6464.         ADD A,B
  6465.         LD C,A
  6466.         LD A,(HL)
  6467.         INC HL
  6468.         LD (DE),A
  6469.         INC E
  6470.         JP C,S3193
  6471.         JP NZ,S3192
  6472.         RRC C
  6473.         LD IYL,C
  6474.         EXX
  6475.         LD E,IYL
  6476.         RET
  6477.        
  6478. S3196   RRC C
  6479.         LD IYL,C
  6480.         EXX
  6481.         LD E,IYL
  6482.         DEC D
  6483.         RET
  6484.        
  6485. S31966  RRC C
  6486.         LD IYL,C
  6487.         EXX
  6488.         LD E,IYL
  6489.         DEC D
  6490.         DEC D
  6491.         RET
  6492.        
  6493. S31967  RRC C
  6494.         LD IYL,C
  6495.         EXX
  6496.         LD E,IYL
  6497.         DEC D
  6498.         DEC D
  6499.         DEC D
  6500.         RET
  6501.  
  6502. S3198   SRL C
  6503.         LD IYL,C
  6504.         EXX
  6505.         LD E,IYL
  6506.         RET
  6507.        
  6508. S3199   SRL C
  6509.         LD IYL,C
  6510.         EXX
  6511.         LD E,IYL
  6512.         DEC D
  6513.         RET
  6514.        
  6515. S31993  SRL C
  6516.         LD IYL,C
  6517.         EXX
  6518.         LD E,IYL
  6519.         DEC D
  6520.         DEC D
  6521.         RET
  6522.        
  6523. S31994  SRL C
  6524.         LD IYL,C
  6525.         EXX
  6526.         LD E,IYL
  6527.         DEC D
  6528.         DEC D
  6529.         DEC D
  6530.         RET
  6531.  
  6532. ;INCLUDE "SGEN4.a80"
  6533. S4_     LD D,C
  6534.         PUSH DE
  6535.         LD D,B
  6536.         EXX
  6537.         POP BC
  6538. S41     SLA B
  6539.         JP C,S418
  6540.         DB 0XCB,0X31;SLI C
  6541.         LD IYH,B
  6542.         JP C,S4101
  6543.         JP S4100
  6544.  
  6545. S4102   JR Z,S4104
  6546. S410A   INC E
  6547.         JR Z,S4105
  6548.         LD B,A
  6549.         ADD A,(HL)
  6550.         RRA
  6551.         LD IYL,A
  6552.         ADD A,B
  6553.         RRA
  6554.         LD (DE),A
  6555.         INC E
  6556.         JR Z,S41052
  6557.         LD A,IYL
  6558.         LD (DE),A
  6559.         INC E
  6560.         JR Z,S41053
  6561.         ADD A,(HL)
  6562.         RRA
  6563.         LD (DE),A
  6564.         INC E
  6565.         JR Z,S41054
  6566. S4100   LD A,C
  6567.         ADD A,IYH
  6568.         LD C,A
  6569.         LD A,(HL)
  6570.         INC HL
  6571.         DEC IXL
  6572.         LD (DE),A
  6573.         JP NC,S4102
  6574.         JR Z,S4106
  6575.         INC E
  6576.         JR Z,S4107
  6577.         LD (DE),A
  6578.         INC E
  6579.         JP NZ,S41033
  6580.         JP S4109
  6581. S4103   JR Z,S4108
  6582.         INC E
  6583.         JR Z,S4109
  6584. S41033  LD B,A
  6585.         ADD A,(HL)
  6586.         RRA
  6587.         LD IYL,A
  6588.         ADD A,B
  6589.         RRA
  6590.         LD (DE),A
  6591.         INC E
  6592.         JR Z,S41092
  6593.         LD A,IYL
  6594.         LD (DE),A
  6595.         INC E
  6596.         JR Z,S41093
  6597.         ADD A,(HL)
  6598.         RRA
  6599.         LD (DE),A
  6600.         INC E
  6601.         JR Z,S41094
  6602. S4101   LD A,C
  6603.         ADD A,IYH
  6604.         LD C,A
  6605.         LD A,(HL)
  6606.         INC HL
  6607.         DEC IXL
  6608.         LD (DE),A
  6609.         JP NC,S4103
  6610.         JP NZ,S410A
  6611. S4104   INC E
  6612. S4105   SRL C
  6613.         LD IYL,C
  6614.         EXX
  6615.         LD E,IYL
  6616.         LD D,3
  6617.         RET
  6618.        
  6619. S41052  SRL C
  6620.         LD IYL,C
  6621.         EXX
  6622.         LD E,IYL
  6623.         LD D,2
  6624.         RET
  6625.        
  6626. S41053  SRL C
  6627.         LD IYL,C
  6628.         EXX
  6629.         LD E,IYL
  6630.         LD D,1
  6631.         RET
  6632.        
  6633. S41054  SRL C
  6634.         LD IYL,C
  6635.         EXX
  6636.         LD E,IYL
  6637.         LD D,0
  6638.         RET
  6639.        
  6640. S4106   INC E
  6641. S4107   RRC C
  6642.         LD IYL,C
  6643.         EXX
  6644.         LD E,IYL
  6645.         RET
  6646.        
  6647. S4108   INC E
  6648. S4109   RRC C
  6649.         LD IYL,C
  6650.         EXX
  6651.         LD E,IYL
  6652.         LD D,3
  6653.         RET
  6654.        
  6655. S41092  RRC C
  6656.         LD IYL,C
  6657.         EXX
  6658.         LD E,IYL
  6659.         LD D,2
  6660.         RET
  6661.        
  6662. S41093  RRC C
  6663.         LD IYL,C
  6664.         EXX
  6665.         LD E,IYL
  6666.         LD D,1
  6667.         RET
  6668.        
  6669. S41094  RRC C
  6670.         LD IYL,C
  6671.         EXX
  6672.         LD E,IYL
  6673.         LD D,0
  6674.         RET
  6675.  
  6676. S418    DB 0XCB,0X31;SLI C
  6677.         JP NC,S4180
  6678.         JP S4181
  6679.  
  6680. S4184   INC E
  6681. S4185   RRC C
  6682.         LD IYL,C
  6683.         EXX
  6684.         LD E,IYL
  6685.         RET
  6686.        
  6687. S41844  INC E
  6688.         RRC C
  6689.         LD IYL,C
  6690.         EXX
  6691.         LD E,IYL
  6692.         RET
  6693.  
  6694. S4182   JR Z,S4184
  6695.         INC E
  6696. S41822  JR Z,S4185
  6697. S418222 LD (DE),A
  6698.         INC E
  6699.         JR Z,S4186
  6700.         ADD A,(HL)
  6701.         RRA
  6702.         LD (DE),A
  6703.         INC E
  6704.         JR Z,S41866
  6705.         LD (DE),A
  6706.         INC E
  6707.         JR Z,S41867
  6708.         ADD A,(HL)
  6709.         RRA
  6710.         LD (DE),A
  6711.         INC E
  6712.         JR Z,S41868
  6713. S4181   LD A,C
  6714.         ADD A,B
  6715.         LD C,A
  6716.         LD A,(HL)
  6717.         INC HL
  6718.         DEC IXL
  6719.         LD (DE),A
  6720.         JP C,S4182
  6721.         JR Z,S41871
  6722.         JP S41831
  6723. S4183   JR Z,S4187
  6724.         INC E
  6725.         JR Z,S4188
  6726.         LD (DE),A
  6727. S41831  INC E
  6728.         JR Z,S4189
  6729.         ADD A,(HL)
  6730.         RRA
  6731.         LD (DE),A
  6732.         INC E
  6733.         JR Z,S41891
  6734.         LD (DE),A
  6735.         INC E
  6736.         JR Z,S41892
  6737.         ADD A,(HL)
  6738.         RRA
  6739.         LD (DE),A
  6740.         INC E
  6741.         JR Z,S41893
  6742. S4180   LD A,C
  6743.         ADD A,B
  6744.         LD C,A
  6745.         LD A,(HL)
  6746.         INC HL
  6747.         DEC IXL
  6748.         LD (DE),A
  6749.         JP C,S4183
  6750.         JR Z,S41844
  6751.         INC E
  6752.         JP NZ,S418222
  6753.         RRC C
  6754.         LD IYL,C
  6755.         EXX
  6756.         LD E,IYL
  6757.         RET
  6758.        
  6759. S4186   RRC C
  6760.         LD IYL,C
  6761.         EXX
  6762.         LD E,IYL
  6763.         LD D,3
  6764.         RET
  6765.        
  6766. S41866  RRC C
  6767.         LD IYL,C
  6768.         EXX
  6769.         LD E,IYL
  6770.         LD D,2
  6771.         RET
  6772.        
  6773. S41867  RRC C
  6774.         LD IYL,C
  6775.         EXX
  6776.         LD E,IYL
  6777.         LD D,1
  6778.         RET
  6779.        
  6780. S41868  RRC C
  6781.         LD IYL,C
  6782.         EXX
  6783.         LD E,IYL
  6784.         LD D,0
  6785.         RET
  6786.  
  6787. S4187   INC E
  6788. S4188   SRL C
  6789.         LD IYL,C
  6790.         EXX
  6791.         LD E,IYL
  6792.         RET
  6793.        
  6794. S4189   SRL C
  6795.         LD IYL,C
  6796.         EXX
  6797.         LD E,IYL
  6798.         LD D,3
  6799.         RET
  6800.        
  6801. S41871  INC E
  6802. S41891  SRL C
  6803.         LD IYL,C
  6804.         EXX
  6805.         LD E,IYL
  6806.         LD D,2
  6807.         RET
  6808.        
  6809. S41892  SRL C
  6810.         LD IYL,C
  6811.         EXX
  6812.         LD E,IYL
  6813.         LD D,1
  6814.         RET
  6815.        
  6816. S41893  SRL C
  6817.         LD IYL,C
  6818.         EXX
  6819.         LD E,IYL
  6820.         LD D,0
  6821.         RET
  6822.  
  6823. ;INCLUDE "SGEN5.a80"
  6824. S5_     LD D,C
  6825.         PUSH DE
  6826.         LD D,B
  6827.         EXX
  6828.         POP BC
  6829. S51     SLA B
  6830.         JP C,S518
  6831.         DB 0XCB,0X31;SLI C
  6832.         JP C,S5101
  6833.         JP S5100
  6834.  
  6835. S5102   JR Z,S5104
  6836. S510A   INC E
  6837.         JR Z,S5105
  6838.         LD IYL,A
  6839.         ADD A,(HL)
  6840.         RRA
  6841.         LD IYH,A
  6842.         ADD A,IYL
  6843.         RRA
  6844.         LD (DE),A
  6845.         INC E
  6846.         JR Z,S51052
  6847.         LD A,IYH
  6848.         LD (DE),A
  6849.         INC E
  6850.         JR Z,S51053
  6851.         ADD A,(HL)
  6852.         RRA
  6853.         LD (DE),A
  6854.         INC E
  6855.         JR Z,S51054
  6856.         ADD A,(HL)
  6857.         RRA
  6858.         LD (DE),A
  6859.         INC E
  6860.         JR Z,S51055
  6861. S5100   LD A,C
  6862.         ADD A,B
  6863.         LD C,A
  6864.         LD A,(HL)
  6865.         INC HL
  6866.         DEC IXL
  6867.         LD (DE),A
  6868.         JP NC,S5102
  6869.         JR Z,S5106
  6870.         INC E
  6871.         JR Z,S5107
  6872.         LD (DE),A
  6873.         DEC E
  6874.         INC E
  6875. S5103   JR Z,S5108
  6876.         INC E
  6877.         JR Z,S5109
  6878.         LD IYL,A
  6879.         ADD A,(HL)
  6880.         RRA
  6881.         LD IYH,A
  6882.         ADD A,IYL
  6883.         RRA
  6884.         LD (DE),A
  6885.         INC E
  6886.         JR Z,S51092
  6887.         LD A,IYH
  6888.         LD (DE),A
  6889.         INC E
  6890.         JR Z,S51093
  6891.         ADD A,(HL)
  6892.         RRA
  6893.         LD (DE),A
  6894.         INC E
  6895.         JR Z,S51094
  6896.         ADD A,(HL)
  6897.         RRA
  6898.         LD (DE),A
  6899.         INC E
  6900.         JR Z,S51095
  6901. S5101   LD A,C
  6902.         ADD A,B
  6903.         LD C,A
  6904.         LD A,(HL)
  6905.         INC HL
  6906.         DEC IXL
  6907.         LD (DE),A
  6908.         JP NC,S5103
  6909.         JP NZ,S510A
  6910. S5104   INC E
  6911. S5105   SRL C
  6912.         LD IYL,C
  6913.         EXX
  6914.         LD E,IYL
  6915.         LD D,4
  6916.         RET
  6917.        
  6918. S51052  SRL C
  6919.         LD IYL,C
  6920.         EXX
  6921.         LD E,IYL
  6922.         LD D,3
  6923.         RET
  6924.        
  6925. S51053  SRL C
  6926.         LD IYL,C
  6927.         EXX
  6928.         LD E,IYL
  6929.         LD D,2
  6930.         RET
  6931.        
  6932. S51054  SRL C
  6933.         LD IYL,C
  6934.         EXX
  6935.         LD E,IYL
  6936.         LD D,1
  6937.         RET
  6938.        
  6939. S51055  SRL C
  6940.         LD IYL,C
  6941.         EXX
  6942.         LD E,IYL
  6943.         LD D,0
  6944.         RET
  6945.        
  6946. S5106   INC E
  6947. S5107   RRC C
  6948.         LD IYL,C
  6949.         EXX
  6950.         LD E,IYL
  6951.         RET
  6952.        
  6953. S5108   INC E
  6954. S5109   RRC C
  6955.         LD IYL,C
  6956.         EXX
  6957.         LD E,IYL
  6958.         LD D,4
  6959.         RET
  6960.        
  6961. S51092  RRC C
  6962.         LD IYL,C
  6963.         EXX
  6964.         LD E,IYL
  6965.         LD D,3
  6966.         RET
  6967.        
  6968. S51093  RRC C
  6969.         LD IYL,C
  6970.         EXX
  6971.         LD E,IYL
  6972.         LD D,2
  6973.         RET
  6974.        
  6975. S51094  RRC C
  6976.         LD IYL,C
  6977.         EXX
  6978.         LD E,IYL
  6979.         LD D,1
  6980.         RET
  6981.        
  6982. S51095  RRC C
  6983.         LD IYL,C
  6984.         EXX
  6985.         LD E,IYL
  6986.         LD D,0
  6987.         RET
  6988.  
  6989. S518    DB 0XCB,0X31;SLI C
  6990.         JP NC,S5180
  6991.         JP S5181
  6992.  
  6993. S5184   INC E
  6994. S5185   RRC C
  6995.         LD IYL,C
  6996.         EXX
  6997.         LD E,IYL
  6998.         RET
  6999.        
  7000. S5186   RRC C
  7001.         LD IYL,C
  7002.         EXX
  7003.         LD E,IYL
  7004.         LD D,4
  7005.         RET
  7006.        
  7007. S51866  RRC C
  7008.         LD IYL,C
  7009.         EXX
  7010.         LD E,IYL
  7011.         LD D,3
  7012.         RET
  7013.        
  7014. S51867  RRC C
  7015.         LD IYL,C
  7016.         EXX
  7017.         LD E,IYL
  7018.         LD D,2
  7019.         RET
  7020.        
  7021. S51868  RRC C
  7022.         LD IYL,C
  7023.         EXX
  7024.         LD E,IYL
  7025.         LD D,1
  7026.         RET
  7027.        
  7028. S51869  RRC C
  7029.         LD IYL,C
  7030.         EXX
  7031.         LD E,IYL
  7032.         LD D,0
  7033.         RET
  7034.  
  7035. S5182   JR Z,S5184
  7036.         INC E
  7037. S51822  JR Z,S5185
  7038. S518222 LD IYL,A
  7039.         ADD A,(HL)
  7040.         RRA
  7041.         LD IYH,A
  7042.         ADD A,IYL
  7043.         RRA
  7044.         LD (DE),A
  7045.         INC E
  7046.         JR Z,S5186
  7047.         ADD A,IYH
  7048.         RRA
  7049.         LD (DE),A
  7050.         INC E
  7051.         JR Z,S51866
  7052.         LD A,IYH
  7053.         LD (DE),A
  7054.         INC E
  7055.         JR Z,S51867
  7056.         ADD A,(HL)
  7057.         RRA
  7058.         LD (DE),A
  7059.         INC E
  7060.         JR Z,S51868
  7061.         ADD A,(HL)
  7062.         RRA
  7063.         LD (DE),A
  7064.         INC E
  7065.         JR Z,S51869
  7066. S5181   LD A,C
  7067.         ADD A,B
  7068.         LD C,A
  7069.         LD A,(HL)
  7070.         INC HL
  7071.         DEC IXL
  7072.         LD (DE),A
  7073.         JP C,S5182
  7074.         JR Z,S51871
  7075.         JP S51831
  7076. S5183   JR Z,S5187
  7077.         INC E
  7078.         JR Z,S5188
  7079.         LD (DE),A
  7080. S51831  INC E
  7081.         JR Z,S5189
  7082.         LD IYL,A
  7083.         ADD A,(HL)
  7084.         RRA
  7085.         LD IYH,A
  7086.         ADD A,IYL
  7087.         RRA
  7088.         LD (DE),A
  7089.         INC E
  7090.         JR Z,S51891
  7091.         LD A,IYH
  7092.         LD (DE),A
  7093.         INC E
  7094.         JR Z,S51892
  7095.         ADD A,(HL)
  7096.         RRA
  7097.         LD (DE),A
  7098.         INC E
  7099.         JR Z,S51893
  7100.         ADD A,(HL)
  7101.         RRA
  7102.         LD (DE),A
  7103.         INC E
  7104.         JR Z,S51894
  7105. S5180   LD A,C
  7106.         ADD A,B
  7107.         LD C,A
  7108.         LD A,(HL)
  7109.         INC HL
  7110.         DEC IXL
  7111.         LD (DE),A
  7112.         JP C,S5183
  7113.         JR Z,S51844
  7114.         INC E
  7115.         JP NZ,S518222
  7116.         RRC C
  7117.         LD IYL,C
  7118.         EXX
  7119.         LD E,IYL
  7120.         RET
  7121.  
  7122. S51844  INC E
  7123.         RRC C
  7124.         LD IYL,C
  7125.         EXX
  7126.         LD E,IYL
  7127.         RET
  7128.  
  7129. S5187   INC E
  7130. S5188   SRL C
  7131.         LD IYL,C
  7132.         EXX
  7133.         LD E,IYL
  7134.         RET
  7135.        
  7136. S5189   SRL C
  7137.         LD IYL,C
  7138.         EXX
  7139.         LD E,IYL
  7140.         LD D,4
  7141.         RET
  7142.        
  7143. S51871  INC E
  7144. S51891  SRL C
  7145.         LD IYL,C
  7146.         EXX
  7147.         LD E,IYL
  7148.         LD D,3
  7149.         RET
  7150.        
  7151. S51892  SRL C
  7152.         LD IYL,C
  7153.         EXX
  7154.         LD E,IYL
  7155.         LD D,2
  7156.         RET
  7157.        
  7158. S51893  SRL C
  7159.         LD IYL,C
  7160.         EXX
  7161.         LD E,IYL
  7162.         LD D,1
  7163.         RET
  7164.        
  7165. S51894  SRL C
  7166.         LD IYL,C
  7167.         EXX
  7168.         LD E,IYL
  7169.         LD D,0
  7170.         RET
  7171.  
  7172. ;INCLUDE "SGEN6.a80"
  7173. S6_     LD D,C
  7174.         PUSH DE
  7175.         LD D,B
  7176.         EXX
  7177.         POP BC
  7178. S61     SLA B
  7179.         JP C,S618
  7180.         DB 0XCB,0X31;SLI C
  7181.         JP C,S6101
  7182.         JP S6100
  7183.  
  7184. S61052  SRL C
  7185.         LD IYL,C
  7186.         EXX
  7187.         LD E,IYL
  7188.         LD D,4
  7189.         RET
  7190.        
  7191. S61053  SRL C
  7192.         LD IYL,C
  7193.         EXX
  7194.         LD E,IYL
  7195.         LD D,3
  7196.         RET
  7197.        
  7198. S61054  SRL C
  7199.         LD IYL,C
  7200.         EXX
  7201.         LD E,IYL
  7202.         LD D,2
  7203.         RET
  7204.        
  7205. S61055  SRL C
  7206.         LD IYL,C
  7207.         EXX
  7208.         LD E,IYL
  7209.         LD D,1
  7210.         RET
  7211.        
  7212. S61056  SRL C
  7213.         LD IYL,C
  7214.         EXX
  7215.         LD E,IYL
  7216.         LD D,0
  7217.         RET
  7218.  
  7219. S6102   JR Z,S6104
  7220. S610A   INC E
  7221.         JR Z,S6105
  7222.         LD IYL,A
  7223.         ADD A,(HL)
  7224.         RRA
  7225.         LD IYH,A
  7226.         ADD A,IYL
  7227.         RRA
  7228.         LD (DE),A
  7229.         INC E
  7230.         JR Z,S61052
  7231.         ADD A,IYH
  7232.         RRA
  7233.         LD (DE),A
  7234.         INC E
  7235.         JR Z,S61053
  7236.         LD A,IYH
  7237.         LD (DE),A
  7238.         INC E
  7239.         JR Z,S61054
  7240.         ADD A,(HL)
  7241.         RRA
  7242.         LD (DE),A
  7243.         INC E
  7244.         JR Z,S61055
  7245.         ADD A,(HL)
  7246.         RRA
  7247.         LD (DE),A
  7248.         INC E
  7249.         JR Z,S61056
  7250. S6100   LD A,C
  7251.         ADD A,B
  7252.         LD C,A
  7253.         LD A,(HL)
  7254.         INC HL
  7255.         DEC IXL
  7256.         LD (DE),A
  7257.         JP NC,S6102
  7258.         JR Z,S6106
  7259.         INC E
  7260.         JR Z,S6107
  7261.         LD (DE),A
  7262.         DEC E
  7263.         INC E
  7264. S6103   JR Z,S6108
  7265.         INC E
  7266.         JR Z,S6109
  7267.         LD IYL,A
  7268.         ADD A,(HL)
  7269.         RRA
  7270.         LD IYH,A
  7271.         ADD A,IYL
  7272.         RRA
  7273.         LD (DE),A
  7274.         INC E
  7275.         JR Z,S61092
  7276.         ADD A,IYH
  7277.         RRA
  7278.         LD (DE),A
  7279.         INC E
  7280.         JR Z,S61093
  7281.         LD A,IYH
  7282.         LD (DE),A
  7283.         INC E
  7284.         JR Z,S61094
  7285.         ADD A,(HL)
  7286.         RRA
  7287.         LD (DE),A
  7288.         INC E
  7289.         JR Z,S61095
  7290.         ADD A,(HL)
  7291.         RRA
  7292.         LD (DE),A
  7293.         INC E
  7294.         JR Z,S61096
  7295. S6101   LD A,C
  7296.         ADD A,B
  7297.         LD C,A
  7298.         LD A,(HL)
  7299.         INC HL
  7300.         DEC IXL
  7301.         LD (DE),A
  7302.         JP NC,S6103
  7303.         JP NZ,S610A
  7304. S6104   INC E
  7305. S6105   SRL C
  7306.         LD IYL,C
  7307.         EXX
  7308.         LD E,IYL
  7309.         LD D,5
  7310.         RET
  7311.        
  7312. S6106   INC E
  7313. S6107   RRC C
  7314.         LD IYL,C
  7315.         EXX
  7316.         LD E,IYL
  7317.         RET
  7318.        
  7319. S6108   INC E
  7320. S6109   RRC C
  7321.         LD IYL,C
  7322.         EXX
  7323.         LD E,IYL
  7324.         LD D,5
  7325.         RET
  7326.        
  7327. S61092  RRC C
  7328.         LD IYL,C
  7329.         EXX
  7330.         LD E,IYL
  7331.         LD D,4
  7332.         RET
  7333.        
  7334. S61093  RRC C
  7335.         LD IYL,C
  7336.         EXX
  7337.         LD E,IYL
  7338.         LD D,3
  7339.         RET
  7340.        
  7341. S61094  RRC C
  7342.         LD IYL,C
  7343.         EXX
  7344.         LD E,IYL
  7345.         LD D,2
  7346.         RET
  7347.        
  7348. S61095  RRC C
  7349.         LD IYL,C
  7350.         EXX
  7351.         LD E,IYL
  7352.         LD D,1
  7353.         RET
  7354.        
  7355. S61096  RRC C
  7356.         LD IYL,C
  7357.         EXX
  7358.         LD E,IYL
  7359.         LD D,0
  7360.         RET
  7361.  
  7362. S618    DB 0XCB,0X31;SLI C
  7363.         JP NC,S6180
  7364.         JP S6181
  7365.  
  7366. S6184   INC E
  7367. S6185   RRC C
  7368.         LD IYL,C
  7369.         EXX
  7370.         LD E,IYL
  7371.         RET
  7372.        
  7373. S6186   RRC C
  7374.         LD IYL,C
  7375.         EXX
  7376.         LD E,IYL
  7377.         LD D,5
  7378.         RET
  7379.        
  7380. S61866  RRC C
  7381.         LD IYL,C
  7382.         EXX
  7383.         LD E,IYL
  7384.         LD D,4
  7385.         RET
  7386.        
  7387. S61867  RRC C
  7388.         LD IYL,C
  7389.         EXX
  7390.         LD E,IYL
  7391.         LD D,3
  7392.         RET
  7393.        
  7394. S61868  RRC C
  7395.         LD IYL,C
  7396.         EXX
  7397.         LD E,IYL
  7398.         LD D,2
  7399.         RET
  7400.        
  7401. S61869  RRC C
  7402.         LD IYL,C
  7403.         EXX
  7404.         LD E,IYL
  7405.         LD D,1
  7406.         RET
  7407.        
  7408. S6186A  RRC C
  7409.         LD IYL,C
  7410.         EXX
  7411.         LD E,IYL
  7412.         LD D,0
  7413.         RET
  7414.  
  7415. S6182   JR Z,S6184
  7416.         INC E
  7417. S61822  JR Z,S6185
  7418. S618222 LD (DE),A
  7419.         INC E
  7420.         JR Z,S6186
  7421.         LD IYL,A
  7422.         ADD A,(HL)
  7423.         RRA
  7424.         LD IYH,A
  7425.         ADD A,IYL
  7426.         RRA
  7427.         LD (DE),A
  7428.         INC E
  7429.         JR Z,S61866
  7430.         ADD A,IYH
  7431.         RRA
  7432.         LD (DE),A
  7433.         INC E
  7434.         JR Z,S61867
  7435.         LD A,IYH
  7436.         LD (DE),A
  7437.         INC E
  7438.         JR Z,S61868
  7439.         ADD A,(HL)
  7440.         RRA
  7441.         LD (DE),A
  7442.         INC E
  7443.         JR Z,S61869
  7444.         ADD A,(HL)
  7445.         RRA
  7446.         LD (DE),A
  7447.         INC E
  7448.         JR Z,S6186A
  7449. S6181   LD A,C
  7450.         ADD A,B
  7451.         LD C,A
  7452.         LD A,(HL)
  7453.         INC HL
  7454.         DEC IXL
  7455.         LD (DE),A
  7456.         JP C,S6182
  7457.         JR Z,S61871
  7458.         JP S61831
  7459. S6183   JR Z,S6187
  7460.         INC E
  7461.         JR Z,S6188
  7462.         LD (DE),A
  7463. S61831  INC E
  7464.         JR Z,S6189
  7465.         LD IYL,A
  7466.         ADD A,(HL)
  7467.         RRA
  7468.         LD IYH,A
  7469.         ADD A,IYL
  7470.         RRA
  7471.         LD (DE),A
  7472.         INC E
  7473.         JR Z,S61891
  7474.         ADD A,IYH
  7475.         RRA
  7476.         LD (DE),A
  7477.         INC E
  7478.         JR Z,S61892
  7479.         LD A,IYH
  7480.         LD (DE),A
  7481.         INC E
  7482.         JR Z,S61893
  7483.         ADD A,(HL)
  7484.         RRA
  7485.         LD (DE),A
  7486.         INC E
  7487.         JR Z,S61894
  7488.         ADD A,(HL)
  7489.         RRA
  7490.         LD (DE),A
  7491.         INC E
  7492.         JR Z,S61895
  7493. S6180   LD A,C
  7494.         ADD A,B
  7495.         LD C,A
  7496.         LD A,(HL)
  7497.         INC HL
  7498.         DEC IXL
  7499.         LD (DE),A
  7500.         JP C,S6183
  7501.         JR Z,S61844
  7502.         INC E
  7503.         JP NZ,S618222
  7504.         RRC C
  7505.         LD IYL,C
  7506.         EXX
  7507.         LD E,IYL
  7508.         RET
  7509.  
  7510. S61844  INC E
  7511.         RRC C
  7512.         LD IYL,C
  7513.         EXX
  7514.         LD E,IYL
  7515.         RET
  7516.  
  7517. S6187   INC E
  7518. S6188   SRL C
  7519.         LD IYL,C
  7520.         EXX
  7521.         LD E,IYL
  7522.         RET
  7523.        
  7524. S6189    SRL C
  7525.         LD IYL,C
  7526.         EXX
  7527.         LD E,IYL
  7528.         LD D,5
  7529.         RET
  7530.  
  7531. S61871  INC E
  7532. S61891  SRL C
  7533.         LD IYL,C
  7534.         EXX
  7535.         LD E,IYL
  7536.         LD D,4
  7537.         RET
  7538.        
  7539. S61892  SRL C
  7540.         LD IYL,C
  7541.         EXX
  7542.         LD E,IYL
  7543.         LD D,3
  7544.         RET
  7545.        
  7546. S61893  SRL C
  7547.         LD IYL,C
  7548.         EXX
  7549.         LD E,IYL
  7550.         LD D,2
  7551.         RET
  7552.        
  7553. S61894  SRL C
  7554.         LD IYL,C
  7555.         EXX
  7556.         LD E,IYL
  7557.         LD D,1
  7558.         RET
  7559.        
  7560. S61895  SRL C
  7561.         LD IYL,C
  7562.         EXX
  7563.         LD E,IYL
  7564.         LD D,0
  7565.         RET
  7566.  
  7567. ;INCLUDE "SGEN7.a80"
  7568. S7_     LD D,C
  7569.         PUSH DE
  7570.         LD D,B
  7571.         EXX
  7572.         POP BC
  7573. S71     SLA B
  7574.         JP C,S718
  7575.         DB 0XCB,0X31;SLI C
  7576.         JP C,S7101
  7577.         JP S7100
  7578.  
  7579. S71052  SRL C
  7580.         LD IYL,C
  7581.         EXX
  7582.         LD E,IYL
  7583.         LD D,5
  7584.         RET
  7585.        
  7586. S71053  SRL C
  7587.         LD IYL,C
  7588.         EXX
  7589.         LD E,IYL
  7590.         LD D,4
  7591.         RET
  7592.        
  7593. S71054  SRL C
  7594.         LD IYL,C
  7595.         EXX
  7596.         LD E,IYL
  7597.         LD D,3
  7598.         RET
  7599.        
  7600. S71055  SRL C
  7601.         LD IYL,C
  7602.         EXX
  7603.         LD E,IYL
  7604.         LD D,2
  7605.         RET
  7606.        
  7607. S71056  SRL C
  7608.         LD IYL,C
  7609.         EXX
  7610.         LD E,IYL
  7611.         LD D,1
  7612.         RET
  7613.        
  7614. S71057  SRL C
  7615.         LD IYL,C
  7616.         EXX
  7617.         LD E,IYL
  7618.         LD D,0
  7619.         RET
  7620.  
  7621. S7102   JR Z,S7104
  7622. S710A   INC E
  7623.         JR Z,S7105
  7624.         LD (DE),A
  7625.         INC E
  7626.         JR Z,S71052
  7627.         LD IYL,A
  7628.         ADD A,(HL)
  7629.         RRA
  7630.         LD IYH,A
  7631.         ADD A,IYL
  7632.         RRA
  7633.         LD (DE),A
  7634.         INC E
  7635.         JR Z,S71053
  7636.         ADD A,IYH
  7637.         RRA
  7638.         LD (DE),A
  7639.         INC E
  7640.         JR Z,S71054
  7641.         LD A,IYH
  7642.         LD (DE),A
  7643.         INC E
  7644.         JR Z,S71055
  7645.         ADD A,(HL)
  7646.         RRA
  7647.         LD (DE),A
  7648.         INC E
  7649.         JR Z,S71056
  7650.         ADD A,(HL)
  7651.         RRA
  7652.         LD (DE),A
  7653.         INC E
  7654.         JR Z,S71057
  7655. S7100   LD A,C
  7656.         ADD A,B
  7657.         LD C,A
  7658.         LD A,(HL)
  7659.         INC HL
  7660.         DEC IXL
  7661.         LD (DE),A
  7662.         JP NC,S7102
  7663.         JR Z,S7106
  7664.         INC E
  7665.         JR Z,S7107
  7666.         LD (DE),A
  7667.         DEC E
  7668.         INC E
  7669. S7103   JR Z,S7108
  7670.         INC E
  7671.         JR Z,S7109
  7672.         LD (DE),A
  7673.         INC E
  7674.         JR Z,S71092
  7675.         LD IYL,A
  7676.         ADD A,(HL)
  7677.         RRA
  7678.         LD IYH,A
  7679.         ADD A,IYL
  7680.         RRA
  7681.         LD (DE),A
  7682.         INC E
  7683.         JR Z,S71093
  7684.         ADD A,IYH
  7685.         RRA
  7686.         LD (DE),A
  7687.         INC E
  7688.         JR Z,S71094
  7689.         LD A,IYH
  7690.         LD (DE),A
  7691.         INC E
  7692.         JR Z,S71095
  7693.         ADD A,(HL)
  7694.         RRA
  7695.         LD (DE),A
  7696.         INC E
  7697.         JR Z,S71096
  7698.         ADD A,(HL)
  7699.         RRA
  7700.         LD (DE),A
  7701.         INC E
  7702.         JR Z,S71097
  7703. S7101   LD A,C
  7704.         ADD A,B
  7705.         LD C,A
  7706.         LD A,(HL)
  7707.         INC HL
  7708.         DEC IXL
  7709.         LD (DE),A
  7710.         JP NC,S7103
  7711.         JP NZ,S710A
  7712. S7104   INC E
  7713. S7105   SRL C
  7714.         LD IYL,C
  7715.         EXX
  7716.         LD E,IYL
  7717.         LD D,6
  7718.         RET
  7719.        
  7720. S7106   INC E
  7721. S7107   RRC C
  7722.         LD IYL,C
  7723.         EXX
  7724.         LD E,IYL
  7725.         RET
  7726.        
  7727. S7108   INC E
  7728. S7109   RRC C
  7729.         LD IYL,C
  7730.         EXX
  7731.         LD E,IYL
  7732.         LD D,6
  7733.         RET
  7734.        
  7735. S71092  RRC C
  7736.         LD IYL,C
  7737.         EXX
  7738.         LD E,IYL
  7739.         LD D,5
  7740.         RET
  7741.        
  7742. S71093  RRC C
  7743.         LD IYL,C
  7744.         EXX
  7745.         LD E,IYL
  7746.         LD D,4
  7747.         RET
  7748.        
  7749. S71094  RRC C
  7750.         LD IYL,C
  7751.         EXX
  7752.         LD E,IYL
  7753.         LD D,3
  7754.         RET
  7755.        
  7756. S71095  RRC C
  7757.         LD IYL,C
  7758.         EXX
  7759.         LD E,IYL
  7760.         LD D,2
  7761.         RET
  7762.        
  7763. S71096  RRC C
  7764.         LD IYL,C
  7765.         EXX
  7766.         LD E,IYL
  7767.         LD D,1
  7768.         RET
  7769.        
  7770. S71097  RRC C
  7771.         LD IYL,C
  7772.         EXX
  7773.         LD E,IYL
  7774.         LD D,0
  7775.         RET
  7776.  
  7777. S718    DB 0XCB,0X31;SLI C
  7778.         JP NC,S7180
  7779.         JP S7181
  7780.  
  7781. S7184   INC E
  7782. S7185   RRC C
  7783.         LD IYL,C
  7784.         EXX
  7785.         LD E,IYL
  7786.         RET
  7787.        
  7788. S7186   RRC C
  7789.         LD IYL,C
  7790.         EXX
  7791.         LD E,IYL
  7792.         LD D,6
  7793.         RET
  7794.        
  7795. S71866  RRC C
  7796.         LD IYL,C
  7797.         EXX
  7798.         LD E,IYL
  7799.         LD D,5
  7800.         RET
  7801.        
  7802. S71867  RRC C
  7803.         LD IYL,C
  7804.         EXX
  7805.         LD E,IYL
  7806.         LD D,4
  7807.         RET
  7808.        
  7809. S71868  RRC C
  7810.         LD IYL,C
  7811.         EXX
  7812.         LD E,IYL
  7813.         LD D,3
  7814.         RET
  7815.        
  7816. S71869  RRC C
  7817.         LD IYL,C
  7818.         EXX
  7819.         LD E,IYL
  7820.         LD D,2
  7821.         RET
  7822.        
  7823. S7186A  RRC C
  7824.         LD IYL,C
  7825.         EXX
  7826.         LD E,IYL
  7827.         LD D,1
  7828.         RET
  7829.        
  7830. S7186B  RRC C
  7831.         LD IYL,C
  7832.         EXX
  7833.         LD E,IYL
  7834.         LD D,0
  7835.         RET
  7836.  
  7837. S7182   JR Z,S7184
  7838.         INC E
  7839. S71822  JR Z,S7185
  7840. S718222 LD (DE),A
  7841.         INC E
  7842.         JR Z,S7186
  7843.         LD IYL,A
  7844.         ADD A,(HL)
  7845.         RRA
  7846.         LD IYH,A
  7847.         ADD A,IYL
  7848.         RRA
  7849.         LD (DE),A
  7850.         INC E
  7851.         JR Z,S71866
  7852.         ADD A,IYH
  7853.         RRA
  7854.         LD (DE),A
  7855.         INC E
  7856.         JR Z,S71867
  7857.         LD A,IYH
  7858.         LD (DE),A
  7859.         INC E
  7860.         JR Z,S71868
  7861.         LD (DE),A
  7862.         INC E
  7863.         JR Z,S71869
  7864.         ADD A,(HL)
  7865.         RRA
  7866.         LD (DE),A
  7867.         INC E
  7868.         JR Z,S7186A
  7869.         ADD A,(HL)
  7870.         RRA
  7871.         LD (DE),A
  7872.         INC E
  7873.         JR Z,S7186B
  7874. S7181   LD A,C
  7875.         ADD A,B
  7876.         LD C,A
  7877.         LD A,(HL)
  7878.         INC HL
  7879.         DEC IXL
  7880.         LD (DE),A
  7881.         JP C,S7182
  7882.         JR Z,S71871
  7883.         JP S71831
  7884. S7183   JR Z,S7187
  7885.         INC E
  7886.         JR Z,S7188
  7887.         LD (DE),A
  7888. S71831  INC E
  7889.         JR Z,S7189
  7890.         LD IYL,A
  7891.         ADD A,(HL)
  7892.         RRA
  7893.         LD IYH,A
  7894.         ADD A,IYL
  7895.         RRA
  7896.         LD (DE),A
  7897.         INC E
  7898.         JR Z,S71891
  7899.         ADD A,IYH
  7900.         RRA
  7901.         LD (DE),A
  7902.         INC E
  7903.         JR Z,S71892
  7904.         LD A,IYH
  7905.         LD (DE),A
  7906.         INC E
  7907.         JR Z,S71893
  7908.         LD (DE),A
  7909.         INC E
  7910.         JR Z,S71894
  7911.         ADD A,(HL)
  7912.         RRA
  7913.         LD (DE),A
  7914.         INC E
  7915.         JR Z,S71895
  7916.         ADD A,(HL)
  7917.         RRA
  7918.         LD (DE),A
  7919.         INC E
  7920.         JR Z,S71896
  7921. S7180   LD A,C
  7922.         ADD A,B
  7923.         LD C,A
  7924.         LD A,(HL)
  7925.         INC HL
  7926.         DEC IXL
  7927.         LD (DE),A
  7928.         JP C,S7183
  7929.         JR Z,S71844
  7930.         INC E
  7931.         JP NZ,S718222
  7932.         RRC C
  7933.         LD IYL,C
  7934.         EXX
  7935.         LD E,IYL
  7936.         RET
  7937.  
  7938. S71844  INC E
  7939.         RRC C
  7940.         LD IYL,C
  7941.         EXX
  7942.         LD E,IYL
  7943.         RET
  7944.  
  7945. S7187   INC E
  7946. S7188   SRL C
  7947.         LD IYL,C
  7948.         EXX
  7949.         LD E,IYL
  7950.         RET
  7951.        
  7952. S7189   SRL C
  7953.         LD IYL,C
  7954.         EXX
  7955.         LD E,IYL
  7956.         LD D,6
  7957.         RET
  7958.        
  7959. S71871  INC E
  7960. S71891  SRL C
  7961.         LD IYL,C
  7962.         EXX
  7963.         LD E,IYL
  7964.         LD D,5
  7965.         RET
  7966.        
  7967. S71892  SRL C
  7968.         LD IYL,C
  7969.         EXX
  7970.         LD E,IYL
  7971.         LD D,4
  7972.         RET
  7973.        
  7974. S71893  SRL C
  7975.         LD IYL,C
  7976.         EXX
  7977.         LD E,IYL
  7978.         LD D,3
  7979.         RET
  7980.        
  7981. S71894  SRL C
  7982.         LD IYL,C
  7983.         EXX
  7984.         LD E,IYL
  7985.         LD D,2
  7986.         RET
  7987.        
  7988. S71895  SRL C
  7989.         LD IYL,C
  7990.         EXX
  7991.         LD E,IYL
  7992.         LD D,1
  7993.         RET
  7994.        
  7995. S71896  SRL C
  7996.         LD IYL,C
  7997.         EXX
  7998.         LD E,IYL
  7999.         LD D,0
  8000.         RET
  8001.  
  8002. ;INCLUDE "SGEN8.a80"
  8003. S8_     LD D,C
  8004.         PUSH DE
  8005.         LD D,B
  8006.         EXX
  8007.         POP BC
  8008. S81     SLA B
  8009.         JP C,S818
  8010.         DB 0XCB,0X31;SLI C
  8011.         JP C,S8101
  8012.         JP S8100
  8013.  
  8014. S81052  SRL C
  8015.         LD IYL,C
  8016.         EXX
  8017.         LD E,IYL
  8018.         LD D,6
  8019.         RET
  8020.        
  8021. S81053  SRL C
  8022.         LD IYL,C
  8023.         EXX
  8024.         LD E,IYL
  8025.         LD D,5
  8026.         RET
  8027.        
  8028. S81054  SRL C
  8029.         LD IYL,C
  8030.         EXX
  8031.         LD E,IYL
  8032.         LD D,4
  8033.         RET
  8034.        
  8035. S81055  SRL C
  8036.         LD IYL,C
  8037.         EXX
  8038.         LD E,IYL
  8039.         LD D,3
  8040.         RET
  8041.        
  8042. S81056  SRL C
  8043.         LD IYL,C
  8044.         EXX
  8045.         LD E,IYL
  8046.         LD D,2
  8047.         RET
  8048.        
  8049. S81057  SRL C
  8050.         LD IYL,C
  8051.         EXX
  8052.         LD E,IYL
  8053.         LD D,1
  8054.         RET
  8055.        
  8056. S81058  SRL C
  8057.         LD IYL,C
  8058.         EXX
  8059.         LD E,IYL
  8060.         LD D,0
  8061.         RET
  8062.  
  8063. S8102   JP Z,S8104
  8064. S810A   INC E
  8065.         JP Z,S8105
  8066.         LD (DE),A
  8067.         INC E
  8068.         JR Z,S81052
  8069.         LD IYL,A
  8070.         ADD A,(HL)
  8071.         RRA
  8072.         LD IYH,A
  8073.         ADD A,IYL
  8074.         RRA
  8075.         LD (DE),A
  8076.         INC E
  8077.         JR Z,S81053
  8078.         ADD A,IYH
  8079.         RRA
  8080.         LD (DE),A
  8081.         INC E
  8082.         JR Z,S81054
  8083.         LD A,IYH
  8084.         LD (DE),A
  8085.         INC E
  8086.         JR Z,S81055
  8087.         LD (DE),A
  8088.         INC E
  8089.         JR Z,S81056
  8090.         ADD A,(HL)
  8091.         RRA
  8092.         LD (DE),A
  8093.         INC E
  8094.         JR Z,S81057
  8095.         ADD A,(HL)
  8096.         RRA
  8097.         LD (DE),A
  8098.         INC E
  8099.         JR Z,S81058
  8100. S8100   LD A,C
  8101.         ADD A,B
  8102.         LD C,A
  8103.         LD A,(HL)
  8104.         INC HL
  8105.         DEC IXL
  8106.         LD (DE),A
  8107.         JP NC,S8102
  8108.         JR Z,S8106
  8109.         INC E
  8110.         JR Z,S8107
  8111.         LD (DE),A
  8112.         DEC E
  8113.         INC E
  8114. S8103   JR Z,S8108
  8115.         INC E
  8116.         JR Z,S8109
  8117.         LD (DE),A
  8118.         INC E
  8119.         JR Z,S81092
  8120.         LD IYL,A
  8121.         ADD A,(HL)
  8122.         RRA
  8123.         LD IYH,A
  8124.         ADD A,IYL
  8125.         RRA
  8126.         LD (DE),A
  8127.         INC E
  8128.         JR Z,S81093
  8129.         ADD A,IYH
  8130.         RRA
  8131.         LD (DE),A
  8132.         INC E
  8133.         JR Z,S81094
  8134.         LD A,IYH
  8135.         LD (DE),A
  8136.         INC E
  8137.         JR Z,S81095
  8138.         LD (DE),A
  8139.         INC E
  8140.         JR Z,S81096
  8141.         ADD A,(HL)
  8142.         RRA
  8143.         LD (DE),A
  8144.         INC E
  8145.         JR Z,S81097
  8146.         ADD A,(HL)
  8147.         RRA
  8148.         LD (DE),A
  8149.         INC E
  8150.         JR Z,S81098
  8151. S8101   LD A,C
  8152.         ADD A,B
  8153.         LD C,A
  8154.         LD A,(HL)
  8155.         INC HL
  8156.         DEC IXL
  8157.         LD (DE),A
  8158.         JP NC,S8103
  8159.         JP NZ,S810A
  8160. S8104   INC E
  8161. S8105   SRL C
  8162.         LD IYL,C
  8163.         EXX
  8164.         LD E,IYL
  8165.         LD D,7
  8166.         RET
  8167.        
  8168. S8106   INC E
  8169. S8107   RRC C
  8170.         LD IYL,C
  8171.         EXX
  8172.         LD E,IYL
  8173.         RET
  8174.        
  8175. S8108   INC E
  8176. S8109   RRC C
  8177.         LD IYL,C
  8178.         EXX
  8179.         LD E,IYL
  8180.         LD D,7
  8181.         RET
  8182.        
  8183. S81092  RRC C
  8184.         LD IYL,C
  8185.         EXX
  8186.         LD E,IYL
  8187.         LD D,6
  8188.         RET
  8189.        
  8190. S81093  RRC C
  8191.         LD IYL,C
  8192.         EXX
  8193.         LD E,IYL
  8194.         LD D,5
  8195.         RET
  8196.        
  8197. S81094  RRC C
  8198.         LD IYL,C
  8199.         EXX
  8200.         LD E,IYL
  8201.         LD D,4
  8202.         RET
  8203.        
  8204. S81095  RRC C
  8205.         LD IYL,C
  8206.         EXX
  8207.         LD E,IYL
  8208.         LD D,3
  8209.         RET
  8210.        
  8211. S81096  RRC C
  8212.         LD IYL,C
  8213.         EXX
  8214.         LD E,IYL
  8215.         LD D,2
  8216.         RET
  8217.        
  8218. S81097  RRC C
  8219.         LD IYL,C
  8220.         EXX
  8221.         LD E,IYL
  8222.         LD D,1
  8223.         RET
  8224.        
  8225. S81098  RRC C
  8226.         LD IYL,C
  8227.         EXX
  8228.         LD E,IYL
  8229.         LD D,0
  8230.         RET
  8231.  
  8232. S818    DB 0XCB,0X31;SLI C
  8233.         JP NC,S8180
  8234.         JP S8181
  8235.  
  8236. S8184   INC E
  8237. S8185   RRC C
  8238.         LD IYL,C
  8239.         EXX
  8240.         LD E,IYL
  8241.         RET
  8242.        
  8243. S8186   RRC C
  8244.         LD IYL,C
  8245.         EXX
  8246.         LD E,IYL
  8247.         LD D,7
  8248.         RET
  8249.        
  8250. S81866  RRC C
  8251.         LD IYL,C
  8252.         EXX
  8253.         LD E,IYL
  8254.         LD D,6
  8255.         RET
  8256.        
  8257. S81867  RRC C
  8258.         LD IYL,C
  8259.         EXX
  8260.         LD E,IYL
  8261.         LD D,5
  8262.         RET
  8263.        
  8264. S81868  RRC C
  8265.         LD IYL,C
  8266.         EXX
  8267.         LD E,IYL
  8268.         LD D,4
  8269.         RET
  8270.        
  8271. S81869  RRC C
  8272.         LD IYL,C
  8273.         EXX
  8274.         LD E,IYL
  8275.         LD D,3
  8276.         RET
  8277.        
  8278. S8186A  RRC C
  8279.         LD IYL,C
  8280.         EXX
  8281.         LD E,IYL
  8282.         LD D,2
  8283.         RET
  8284.        
  8285. S8186B  RRC C
  8286.         LD IYL,C
  8287.         EXX
  8288.         LD E,IYL
  8289.         LD D,1
  8290.         RET
  8291.        
  8292. S8186C  RRC C
  8293.         LD IYL,C
  8294.         EXX
  8295.         LD E,IYL
  8296.         LD D,0
  8297.         RET
  8298.  
  8299. S8182   JR Z,S8184
  8300.         INC E
  8301. S81822  JR Z,S8185
  8302. S818222 LD (DE),A
  8303.         INC E
  8304.         JR Z,S8186
  8305.         LD IYL,A
  8306.         ADD A,(HL)
  8307.         RRA
  8308.         LD IYH,A
  8309.         ADD A,IYL
  8310.         RRA
  8311.         LD (DE),A
  8312.         INC E
  8313.         JR Z,S81866
  8314.         ADD A,IYH
  8315.         RRA
  8316.         LD (DE),A
  8317.         INC E
  8318.         JR Z,S81867
  8319.         LD (DE),A
  8320.         INC E
  8321.         JR Z,S81868
  8322.         LD A,IYH
  8323.         LD (DE),A
  8324.         INC E
  8325.         JR Z,S81869
  8326.         LD (DE),A
  8327.         INC E
  8328.         JR Z,S8186A
  8329.         ADD A,(HL)
  8330.         RRA
  8331.         LD (DE),A
  8332.         INC E
  8333.         JR Z,S8186B
  8334.         ADD A,(HL)
  8335.         RRA
  8336.         LD (DE),A
  8337.         INC E
  8338.         JR Z,S8186C
  8339. S8181   LD A,C
  8340.         ADD A,B
  8341.         LD C,A
  8342.         LD A,(HL)
  8343.         INC HL
  8344.         DEC IXL
  8345.         LD (DE),A
  8346.         JP C,S8182
  8347.         JR Z,S81871
  8348.         JP S81831
  8349. S8183   JR Z,S8187
  8350.         INC E
  8351.         JR Z,S8188
  8352.         LD (DE),A
  8353. S81831  INC E
  8354.         JR Z,S8189
  8355.         LD IYL,A
  8356.         ADD A,(HL)
  8357.         RRA
  8358.         LD IYH,A
  8359.         ADD A,IYL
  8360.         RRA
  8361.         LD (DE),A
  8362.         INC E
  8363.         JR Z,S81891
  8364.         ADD A,IYH
  8365.         RRA
  8366.         LD (DE),A
  8367.         INC E
  8368.         JR Z,S81892
  8369.         LD (DE),A
  8370.         INC E
  8371.         JR Z,S81893
  8372.         LD A,IYH
  8373.         LD (DE),A
  8374.         INC E
  8375.         JR Z,S81894
  8376.         LD (DE),A
  8377.         INC E
  8378.         JR Z,S81895
  8379.         ADD A,(HL)
  8380.         RRA
  8381.         LD (DE),A
  8382.         INC E
  8383.         JR Z,S81896
  8384.         ADD A,(HL)
  8385.         RRA
  8386.         LD (DE),A
  8387.         INC E
  8388.         JR Z,S81897
  8389. S8180   LD A,C
  8390.         ADD A,B
  8391.         LD C,A
  8392.         LD A,(HL)
  8393.         INC HL
  8394.         DEC IXL
  8395.         LD (DE),A
  8396.         JP C,S8183
  8397.         JR Z,S81844
  8398.         INC E
  8399.         JP NZ,S818222
  8400.         RRC C
  8401.         LD IYL,C
  8402.         EXX
  8403.         LD E,IYL
  8404.         RET
  8405.  
  8406. S81844  INC E
  8407.         RRC C
  8408.         LD IYL,C
  8409.         EXX
  8410.         LD E,IYL
  8411.         RET
  8412.  
  8413. S8187   INC E
  8414. S8188   SRL C
  8415.         LD IYL,C
  8416.         EXX
  8417.         LD E,IYL
  8418.         RET
  8419.        
  8420. S8189   SRL C
  8421.         LD IYL,C
  8422.         EXX
  8423.         LD E,IYL
  8424.         LD D,7
  8425.         RET
  8426.        
  8427. S81871  INC E
  8428. S81891  SRL C
  8429.         LD IYL,C
  8430.         EXX
  8431.         LD E,IYL
  8432.         LD D,6
  8433.         RET
  8434.        
  8435. S81892  SRL C
  8436.         LD IYL,C
  8437.         EXX
  8438.         LD E,IYL
  8439.         LD D,5
  8440.         RET
  8441.        
  8442. S81893  SRL C
  8443.         LD IYL,C
  8444.         EXX
  8445.         LD E,IYL
  8446.         LD D,4
  8447.         RET
  8448.        
  8449. S81894  SRL C
  8450.         LD IYL,C
  8451.         EXX
  8452.         LD E,IYL
  8453.         LD D,3
  8454.         RET
  8455.        
  8456. S81895  SRL C
  8457.         LD IYL,C
  8458.         EXX
  8459.         LD E,IYL
  8460.         LD D,2
  8461.         RET
  8462.        
  8463. S81896  SRL C
  8464.         LD IYL,C
  8465.         EXX
  8466.         LD E,IYL
  8467.         LD D,1
  8468.         RET
  8469.        
  8470. S81897  SRL C
  8471.         LD IYL,C
  8472.         EXX
  8473.         LD E,IYL
  8474.         LD D,0
  8475.         RET
  8476.  
  8477. ;___END
  8478. ;       ENDMODULE
  8479.  
  8480.         ORG GSRomBaseL+0X3E00
  8481. DIVTAB3
  8482. ;INCLUDE "_DIVTAB3.a80"                                 0X10*0X20=0X200
  8483.         DB 0X00,0X01,0X01,0X02,0X03,0X03,0X04,0X05,0X05,0X06,0X07,0X07,0X08,0X09,0X09,0X0A
  8484.         DB 0X0B,0X0B,0X0C,0X0D,0X0D,0X0E,0X0F,0X0F,0X10,0X11,0X11,0X12,0X13,0X13,0X14,0X15
  8485.         DB 0X15,0X16,0X17,0X17,0X18,0X19,0X19,0X1A,0X1B,0X1B,0X1C,0X1D,0X1D,0X1E,0X1F,0X1F
  8486.         DB 0X20,0X21,0X21,0X22,0X23,0X23,0X24,0X25,0X25,0X26,0X27,0X27,0X28,0X29,0X29,0X2A
  8487.         DB 0X2B,0X2B,0X2C,0X2D,0X2D,0X2E,0X2F,0X2F,0X30,0X31,0X31,0X32,0X33,0X33,0X34,0X35
  8488.         DB 0X35,0X36,0X37,0X37,0X38,0X39,0X39,0X3A,0X3B,0X3B,0X3C,0X3D,0X3D,0X3E,0X3F,0X3F
  8489.         DB 0X40,0X41,0X41,0X42,0X43,0X43,0X44,0X45,0X45,0X46,0X47,0X47,0X48,0X49,0X49,0X4A
  8490.         DB 0X4B,0X4B,0X4C,0X4D,0X4D,0X4E,0X4F,0X4F,0X50,0X51,0X51,0X52,0X53,0X53,0X54,0X55
  8491.         DB 0X55,0X56,0X57,0X57,0X58,0X59,0X59,0X5A,0X5B,0X5B,0X5C,0X5D,0X5D,0X5E,0X5F,0X5F
  8492.         DB 0X60,0X61,0X61,0X62,0X63,0X63,0X64,0X65,0X65,0X66,0X67,0X67,0X68,0X69,0X69,0X6A
  8493.         DB 0X6B,0X6B,0X6C,0X6D,0X6D,0X6E,0X6F,0X6F,0X70,0X71,0X71,0X72,0X73,0X73,0X74,0X75
  8494.         DB 0X75,0X76,0X77,0X77,0X78,0X79,0X79,0X7A,0X7B,0X7B,0X7C,0X7D,0X7D,0X7E,0X7F,0X7F
  8495.         DB 0X80,0X81,0X81,0X82,0X83,0X83,0X84,0X85,0X85,0X86,0X87,0X87,0X88,0X89,0X89,0X8A
  8496.         DB 0X8B,0X8B,0X8C,0X8D,0X8D,0X8E,0X8F,0X8F,0X90,0X91,0X91,0X92,0X93,0X93,0X94,0X95
  8497.         DB 0X95,0X96,0X97,0X97,0X98,0X99,0X99,0X9A,0X9B,0X9B,0X9C,0X9D,0X9D,0X9E,0X9F,0X9F
  8498.         DB 0XA0,0XA1,0XA1,0XA2,0XA3,0XA3,0XA4,0XA5,0XA5,0XA6,0XA7,0XA7,0XA8,0XA9,0XA9,0XAA
  8499.         DB 0X55,0X56,0X57,0X57,0X58,0X59,0X59,0X5A,0X5B,0X5B,0X5C,0X5D,0X5D,0X5E,0X5F,0X5F
  8500.         DB 0X60,0X61,0X61,0X62,0X63,0X63,0X64,0X65,0X65,0X66,0X67,0X67,0X68,0X69,0X69,0X6A
  8501.         DB 0X6B,0X6B,0X6C,0X6D,0X6D,0X6E,0X6F,0X6F,0X70,0X71,0X71,0X72,0X73,0X73,0X74,0X75
  8502.         DB 0X75,0X76,0X77,0X77,0X78,0X79,0X79,0X7A,0X7B,0X7B,0X7C,0X7D,0X7D,0X7E,0X7F,0X7F
  8503.         DB 0X80,0X81,0X81,0X82,0X83,0X83,0X84,0X85,0X85,0X86,0X87,0X87,0X88,0X89,0X89,0X8A
  8504.         DB 0X8B,0X8B,0X8C,0X8D,0X8D,0X8E,0X8F,0X8F,0X90,0X91,0X91,0X92,0X93,0X93,0X94,0X95
  8505.         DB 0X95,0X96,0X97,0X97,0X98,0X99,0X99,0X9A,0X9B,0X9B,0X9C,0X9D,0X9D,0X9E,0X9F,0X9F
  8506.         DB 0XA0,0XA1,0XA1,0XA2,0XA3,0XA3,0XA4,0XA5,0XA5,0XA6,0XA7,0XA7,0XA8,0XA9,0XA9,0XAA
  8507.         DB 0XAB,0XAB,0XAC,0XAD,0XAD,0XAE,0XAF,0XAF,0XB0,0XB1,0XB1,0XB2,0XB3,0XB3,0XB4,0XB5
  8508.         DB 0XB5,0XB6,0XB7,0XB7,0XB8,0XB9,0XB9,0XBA,0XBB,0XBB,0XBC,0XBD,0XBD,0XBE,0XBF,0XBF
  8509.         DB 0XC0,0XC1,0XC1,0XC2,0XC3,0XC3,0XC4,0XC5,0XC5,0XC6,0XC7,0XC7,0XC8,0XC9,0XC9,0XCA
  8510.         DB 0XCB,0XCB,0XCC,0XCD,0XCD,0XCE,0XCF,0XCF,0XD0,0XD1,0XD1,0XD2,0XD3,0XD3,0XD4,0XD5
  8511.         DB 0XD5,0XD6,0XD7,0XD7,0XD8,0XD9,0XD9,0XDA,0XDB,0XDB,0XDC,0XDD,0XDD,0XDE,0XDF,0XDF
  8512.         DB 0XE0,0XE1,0XE1,0XE2,0XE3,0XE3,0XE4,0XE5,0XE5,0XE6,0XE7,0XE7,0XE8,0XE9,0XE9,0XEA
  8513.         DB 0XEB,0XEB,0XEC,0XED,0XED,0XEE,0XEF,0XEF,0XF0,0XF1,0XF1,0XF2,0XF3,0XF3,0XF4,0XF5
  8514.         DB 0XF5,0XF6,0XF7,0XF7,0XF8,0XF9,0XF9,0XFA,0XFB,0XFB,0XFC,0XFD,0XFD,0XFE,0XFF,0XFF
  8515.  
  8516. ___LEND
  8517.  
  8518.         ; HIGH ROM INCLUDES
  8519.         PHASE GSRomBaseH
  8520.  
  8521. ;INCLUDE "INIT_H.a80"
  8522.  
  8523. INITVAR DI
  8524. ;        LD A,(ERRCODE)
  8525. ;---patched
  8526.         CALL Patch5i1
  8527. ;---
  8528.         EX AF,AF'
  8529.        LD A,(NUMPG)
  8530.        LD SP,0X8000
  8531.        LD HL,0X8080
  8532.        LD B,0X00
  8533. INITV00
  8534.         REPT 16
  8535.        PUSH HL
  8536.        ENDM
  8537.        
  8538.        DJNZ INITV00
  8539.        LD HL,0X0000
  8540.         LD B,0XFE       ; ОЧИЩАТЬ ПАМЯТЬ НЕ НИЖЕ 00X4080 ЧТОБЫ НЕ УНИЧТОЖАТЬ ТАБЛИЦУ СТРАНИЦ
  8541. INITV01
  8542.         REPT 16
  8543.        PUSH HL
  8544.        ENDM
  8545.        
  8546.        DJNZ INITV01
  8547.        LD SP,ISTACK
  8548.        LD (NUMPG),A
  8549.        EX AF,AF'
  8550. ;        LD (ERRCODE),A
  8551. ;---patched
  8552.         CALL Patch5i2
  8553. ;---
  8554.         LD A,0X00
  8555.         LD (INFO),A
  8556.         XOR A
  8557.         LD (ROMPG),A
  8558.         LD HL,DAC0
  8559.         LD A,(HL)
  8560.         INC H
  8561.         LD A,(HL)
  8562.         INC H
  8563.         LD A,(HL)
  8564.         INC H
  8565.         LD A,(HL)
  8566.         LD A,0X3F
  8567.         OUT (VOL1),A
  8568.         OUT (VOL2),A
  8569.         OUT (VOL3),A
  8570.         OUT (VOL4),A
  8571.         LD HL,CHNVOL
  8572.         LD DE,CHNVOL+1
  8573.         LD BC,0X0007
  8574.         LD (HL),0XBF
  8575.         LDIR
  8576.         LD A,HIGH (INTTAB)
  8577.         LD I,A
  8578.         LD HL,INT7
  8579.         LD DE,INTAREA
  8580.         LD BC,0X0017
  8581.         LDIR
  8582.         EX DE,HL
  8583.         LD (HL),0XC3
  8584.         INC L
  8585.         LD (HL),LOW (INT7)
  8586.         INC L
  8587.         LD (HL),HIGH (INT7)
  8588.         LD HL,QTMAP
  8589.         LD (QTFREE),HL
  8590.         LD (QTBUSY),HL
  8591.         LD DE,QTMAP+1
  8592.         LD BC,0X001F
  8593.         LD (HL),B
  8594.         LDIR
  8595.         LD HL,VOLTAB
  8596.         LD DE,VOLTAB+1
  8597.         LD BC,0X001F
  8598.         LD (HL),0X3F
  8599.         LDIR
  8600.         LD HL,VOLRQTB
  8601.         LD DE,VOLRQTB+1
  8602.         LD BC,0X0007
  8603.         LD (HL),0X3F
  8604.         LDIR
  8605.         LD A,0X0F
  8606.         LD (GSCHNS),A
  8607.         LD (MTCHNS),A
  8608.         LD A,0X40
  8609.         LD (MODVOL),A
  8610.         LD (FXMVOL),A
  8611.         LD (FXVOL),A
  8612.         LD A,%11000011
  8613.         LD (MTSTAT),A
  8614.         XOR A
  8615.         LD (MODULE),A
  8616.         LD A,(NUMPG)
  8617.         SRL A
  8618.         LD B,A
  8619.         LD HL,0X8000
  8620.         RR H
  8621.         LD A,B
  8622.         LD (RAMTOP),HL
  8623.         LD (RAMTOP+2),A
  8624.         LD (PTRC),HL
  8625.         LD (PTRC+2),A
  8626.         LD (PTRB),HL
  8627.         LD (PTRB+2),A
  8628.         LD (PTRA),HL
  8629.         LD (PTRA+2),A
  8630.         LD (PTR9),HL
  8631.         LD (PTR9+2),A
  8632.         LD (PTR8),HL
  8633.         LD (PTR8+2),A
  8634.         LD (PTR7),HL
  8635.         LD (PTR7+2),A
  8636.         LD (PTR6),HL
  8637.         LD (PTR6+2),A
  8638.         LD (PTR5),HL
  8639.         LD (PTR5+2),A
  8640.         LD (MEMTOP),HL
  8641.         LD (MEMTOP+2),A
  8642.         LD (PTR4),HL
  8643.         LD (PTR4+2),A
  8644.         LD IY,CHANSFX
  8645.         LD (CURCHAN),IY
  8646.         LD BC,0X0801
  8647.         LD DE,CHANLEN
  8648. INITV03 LD (IY+CHSTAT),0X40
  8649.         LD (IY+CHRDR),C
  8650.         LD (IY+CHRDRI),C
  8651.         LD A,0X08
  8652.         SUB B
  8653.         LD (IY+CHRDN),A
  8654.         AND 0X02
  8655.         JR Z,INITV05
  8656.         SET 5,(IY+CHSTAT)
  8657. INITV05 LD (IY+CHFLAGS),0X00
  8658.         LD (IY+CHPORT),0X01
  8659.         LD (IY+CHVIBCM),0X11
  8660.         LD (IY+CHTRMCM),0X11
  8661.         LD (IY+CHOFFST),0X01
  8662.         LD (IY+CHWNT),0X7F
  8663.         LD (IY+CHOLDV),0X80
  8664.         LD (IY+CHEPAN),0X20
  8665.         LD (IY+CHEVOL),0X40
  8666.         RLC C
  8667.         ADD IY,DE
  8668.         DJNZ INITV03
  8669.         LD IY,CHANS
  8670.         LD B,0X08
  8671. INITV04 LD (IY+CHSTAT),0X00
  8672.         LD (IY+CHFLAGS),0X00
  8673.         LD (IY+CHPORT),0X01
  8674.         LD (IY+CHVIBCM),0X11
  8675.         LD (IY+CHTRMCM),0X11
  8676.         LD (IY+CHOFFST),0X01
  8677.         LD (IY+CHWNT),0X7F
  8678.         LD (IY+CHOLDV),0X80
  8679.         LD (IY+CHEPAN),0X20
  8680.         LD (IY+CHEVOL),0X40
  8681.         ADD IY,DE
  8682.         DJNZ INITV04
  8683.         LD IY,CHANS
  8684.         LD (IY+CHSTAT),0X00
  8685.         LD (IY+CHRDR),0X01
  8686.         LD (IY+CHRDRI),0X01
  8687.         LD (IY+CHRDN),0X00
  8688.         ADD IY,DE
  8689.         LD (IY+CHSTAT),0X20
  8690.         LD (IY+CHRDR),0X04
  8691.         LD (IY+CHRDRI),0X04
  8692.         LD (IY+CHRDN),0X02
  8693.         ADD IY,DE
  8694.         LD (IY+CHSTAT),0X20
  8695.         LD (IY+CHRDR),0X08
  8696.         LD (IY+CHRDRI),0X08
  8697.         LD (IY+CHRDN),0X03
  8698.         ADD IY,DE
  8699.         LD (IY+CHSTAT),0X00
  8700.         LD (IY+CHRDR),0X02
  8701.         LD (IY+CHRDRI),0X02
  8702.         LD (IY+CHRDN),0X01
  8703.         LD HL,750
  8704.         LD (TICKLEN),HL
  8705.         LD (TCKLEFT),HL
  8706.         LD (FXTICK),HL
  8707.         LD (FXTCLEN),HL
  8708.         LD IXH,0X80
  8709.         LD DE,0X0000
  8710.         IN A,(ZXDATRD)
  8711.         JP COMINT
  8712.  
  8713. ; B - NUMBER OF CHANNELS
  8714.  
  8715. INITCHN LD HL,(0XEC60)
  8716.         LD (IY+CHPERL),L  ; C-4
  8717.         LD (IY+CHPERH),H
  8718.         LD HL,(0XE060)
  8719.         LD (IY+CHFRQL),L
  8720.         LD (IY+CHFRQH),H
  8721.         LD (IY+CHNOTE),48
  8722.         LD (IY+CHFLAGS),0X00
  8723.         LD (IY+CHREAL),0X7F
  8724.         LD (IY+CHCNTL),0X00
  8725.         LD (IY+CHCNTH),0X00
  8726.         LD (IY+CHINS),0X00
  8727.         LD (IY+CHSMP),0X00
  8728.         LD (IY+CHCOM),0X00
  8729.         LD (IY+CHPARM),0X00
  8730.         LD (IY+CHVIBPS),0X00
  8731.         LD (IY+CHTRMPS),0X00
  8732.         LD (IY+CHPATPS),0X00
  8733.         LD (IY+CHLPCNT),0X00
  8734.         LD A,B
  8735.         LD BC,CHANLEN
  8736.         ADD IY,BC
  8737.         LD B,A
  8738.         DJNZ INITCHN
  8739.         RET
  8740.  
  8741. ;INCLUDE "COM_H.a80"
  8742.  
  8743. HGET    IN A,(ZXSTAT)
  8744.         AND 0X81
  8745.         JR Z,HGET
  8746.         IN A,(ZXDATRD)
  8747.         RET M
  8748.         JP COMINT
  8749.  
  8750. HSEND   IN A,(ZXSTAT)
  8751.         OR A
  8752.         RET P
  8753.         RRCA
  8754.         JP NC,HSEND
  8755.         JP COMINT
  8756.  
  8757. HTAIL   LD HL,HTAIL2
  8758. HTAIL2  IN A,(ZXSTAT)
  8759.         AND 0X81
  8760.         JR Z,HTAIL2
  8761.         RRCA
  8762.         JR C,HTAIL3
  8763.         IN A,(ZXDATRD)
  8764.         JP (HL)
  8765. HTAIL3  IN A,(ZXCMD)
  8766.         CP 0XE0
  8767.         JP NC,COMINT
  8768.         CP 0XD0
  8769.         JP C,COMINT
  8770.         JR Z,HTAIL5
  8771.         CP 0XD1
  8772.         JR Z,HTAIL6
  8773.         XOR A
  8774. HTAIL4  OUT (ZXDATWR),A
  8775.         IN A,(ZXDATRD)
  8776. HTAIL6  OUT (CLRCBIT),A
  8777.         JP (HL)
  8778. HTAIL5  LD A,(ERRCODE)
  8779.         JR HTAIL4
  8780.  
  8781. ERR30
  8782. ERR20
  8783. ERR10   LD A,0X10        ;NOT ENOUGH FREE SPACE
  8784.         JR ERR
  8785.        
  8786. ERR11   LD A,0X11        ;NOT ENOUGH FREE ENTRIES
  8787.         JR ERR
  8788.  
  8789. ERR     LD (ERRCODE),A
  8790.         JP COMINT
  8791.  
  8792. ;Get total RAM
  8793. ;Получить общий объем доступной памяти на GS. (В базовой версии это 112к)
  8794. COM20   LD DE,(RAMBOT)
  8795.         LD A,(RAMBOT+2)
  8796.         LD C,A
  8797.         LD HL,(RAMTOP)
  8798.         LD A,(RAMTOP+2)
  8799.         OR A
  8800.         SBC HL,DE
  8801.         SBC A,C
  8802.         LD C,A
  8803.         LD A,L
  8804.         OUT (ZXDATWR),A
  8805.         OUT (CLRCBIT),A
  8806.         CALL HSEND
  8807.         LD A,H
  8808.         OUT (ZXDATWR),A
  8809.         CALL HSEND
  8810.         LD A,C
  8811.         OUT (ZXDATWR),A
  8812.         RET
  8813.  
  8814. ;Get free RAM
  8815. ;Получить общий об'ем свободной памяти на GS.
  8816. COM21   LD DE,(MEMBOT)
  8817.         LD A,(MEMBOT+2)
  8818.         LD C,A
  8819.         LD HL,(MEMTOP)
  8820.         LD A,(MEMTOP+2)
  8821.         OR A
  8822.         SBC HL,DE
  8823.         SBC A,C
  8824.         LD C,A
  8825.         LD A,L
  8826.         OUT (ZXDATWR),A
  8827.         OUT (CLRCBIT),A
  8828.         XOR A
  8829.         LD (ERRCODE),A
  8830.         CALL HSEND
  8831.         LD A,H
  8832.         OUT (ZXDATWR),A
  8833.         CALL HSEND
  8834.         LD A,C
  8835.         OUT (ZXDATWR),A
  8836.         RET
  8837.  
  8838. ;Get free RAM
  8839. ;Получить общий об'ем свободной памяти на GS.
  8840. COM22   IN A,(ZXDATRD)
  8841.         LD E,A
  8842.         LD D,HIGH (RAMPG)
  8843.         LD A,(DE)
  8844.         OUT (ZXDATWR),A
  8845.         OUT (CLRCBIT),A
  8846.         RET
  8847.  
  8848. ;Get number of RAM Pages
  8849. ;Получить число страниц на  GS.
  8850. COM23   LD A,(NUMPG)
  8851.         OUT (ZXDATWR),A
  8852.         OUT (CLRCBIT),A
  8853.         RET
  8854.  
  8855. ;Set Module Master Volume
  8856. ;Установить громкость проигрывания модулей.
  8857. COM2A   LD A,(MODVOL)
  8858.         OUT (ZXDATWR),A
  8859.         IN A,(ZXDATRD)
  8860.         OUT (CLRCBIT),A
  8861.         CP 0X40
  8862.         JR C,COM2A_
  8863.         LD A,0X40
  8864. COM2A_  LD (MODVOL),A
  8865.         LD IY,CHANS
  8866.         LD B,0X08
  8867.         LD DE,CHANLEN
  8868. COM2A__ SET 0,(IY+CHSTAT)
  8869.         ADD IY,DE
  8870.         DJNZ COM2A__
  8871.         RET
  8872.  
  8873. ;Set FX Master Volume
  8874. ;Установить громкость проигрывания эффектов.
  8875. COM2B   LD A,(FXVOL)
  8876.         OUT (ZXDATWR),A
  8877.         IN A,(ZXDATRD)
  8878.         OUT (CLRCBIT),A
  8879.         CP 0X40
  8880.         JR C,COM2B_
  8881.         LD A,0X40
  8882. COM2B_  LD (FXVOL),A
  8883.         LD IY,CHANSFX
  8884.         LD B,0X08
  8885.         LD DE,CHANLEN
  8886. COM2B__ SET 0,(IY+CHSTAT)
  8887.         ADD IY,DE
  8888.         DJNZ COM2B__
  8889.         RET
  8890.  
  8891. COM2C   LD A,(CURMOD)
  8892.         OUT (ZXDATWR),A
  8893.         IN A,(ZXDATRD)
  8894.         OUT (CLRCBIT),A
  8895.         OR A
  8896.         JR Z,COM2C_
  8897.         LD B,A
  8898.         LD A,(CNTMOD)
  8899.         CP B
  8900.         JR C,COM2C__
  8901.         LD A,B
  8902.         LD (CURMOD),A
  8903.         RET
  8904.        
  8905. COM2C_  LD A,(CNTMOD)
  8906.         LD (CURMOD),A
  8907.         RET
  8908.        
  8909. COM2C__ XOR A
  8910.         LD (CURMOD),A
  8911.         RET
  8912.  
  8913. COM2D   LD A,(CURSMP)
  8914.         OUT (ZXDATWR),A
  8915.         IN A,(ZXDATRD)
  8916.         OUT (CLRCBIT),A
  8917.         OR A
  8918.         JR Z,COM2D_
  8919.         LD B,A
  8920.         LD A,(CNTSMP)
  8921.         CP B
  8922.         JR C,COM2D__
  8923.         LD A,B
  8924.         LD (CURSMP),A
  8925.         RET
  8926.        
  8927. COM2D_  LD A,(CNTSMP)
  8928.         LD (CURSMP),A
  8929.         RET
  8930.        
  8931. COM2D__ XOR A
  8932.         LD (CURSMP),A
  8933.         RET
  8934.  
  8935. ;Set Current FX
  8936. ;Установить текущий эффект. Просто присваивает переменной CURFX это зна-
  8937. ;чение. Если какая-либо команда требует номер сэмпла (sample handle), то
  8938. ;можно вместо этого номера подать ей 0X00 и интерпретатор подставит вмес-
  8939. ;то этого нуля значение переменной CURFX. (См. команды 0X38, 0X39, 0X40-0X4F
  8940. ;для понимания вышеизложенного.)
  8941. COM2E   LD A,(CURFX)
  8942.         OUT (ZXDATWR),A
  8943.         IN A,(ZXDATRD)
  8944.         OUT (CLRCBIT),A
  8945.         OR A
  8946.         JR Z,COM2E_
  8947.         LD B,A
  8948.         LD A,(CNTFX)
  8949.         CP B
  8950.         JR C,COM2E__
  8951.         LD A,B
  8952.         LD (CURFX),A
  8953.         RET
  8954.        
  8955. COM2E_  LD A,(CNTFX)
  8956.         LD (CURFX),A
  8957.         RET
  8958.        
  8959. COM2E__ XOR A
  8960.         LD (CURFX),A
  8961.         RET
  8962.  
  8963. COM2F   IN A,(ZXDATRD)
  8964.         OUT (CLRCBIT),A
  8965.         LD E,A
  8966.         CALL HGET
  8967.         LD D,A
  8968.         OR E
  8969.         JR Z,COM2F_
  8970.         LD HL,(CNTTRK)
  8971.         SBC HL,DE
  8972.         JR C,COM2F__
  8973.         LD (CURTRK),DE
  8974.         RET
  8975.        
  8976. COM2F_  LD HL,(CNTTRK)
  8977.         LD (CURTRK),HL
  8978.         RET
  8979.        
  8980. COM2F__ LD HL,0X0000
  8981.         LD (CURTRK),HL
  8982.         RET
  8983.  
  8984. ;Load Module
  8985. ;Загрузка модуля в память.
  8986. COM30   LD A,(CNTMOD)
  8987.         OR A
  8988.         JP NZ,INITVAR
  8989.         INC A
  8990.         LD (CNTMOD),A
  8991.         LD (CURMOD),A
  8992.         OUT (ZXDATWR),A
  8993.         IN A,(ZXDATRD)
  8994.         OUT (CLRCBIT),A
  8995.         LD C,0X00
  8996.         CALL LOAD
  8997. LDMOD   LD A,0X00               ;0XC3F8
  8998.         LD (CONVERT),A
  8999. ;        CALL PLAYMD
  9000. ;---patched
  9001.         CALL Patch5x
  9002. ;---
  9003.         RET
  9004.  
  9005. ;Jump to position (*)
  9006. ;Делает переход на заданную позицию.
  9007. COM65   IN A,(ZXDATRD)
  9008.         LD C,A
  9009.         LD A,(CURMOD)
  9010.         LD B,A
  9011.         JP COM65_
  9012.  
  9013. ;Play module
  9014. ;Проигрывание модуля.
  9015. COM31   IN A,(ZXDATRD)
  9016.         OR A
  9017.         JR NZ,COM31_
  9018.         LD A,(CURMOD)
  9019.         OR A
  9020.         JP Z,COM31_1
  9021. COM31_  LD B,A
  9022.         LD A,(CNTMOD)
  9023.         CP B
  9024.         JP C,COM31_2
  9025.         LD A,B
  9026.         LD C,0X00
  9027. COM65_  OUT (ZXDATWR),A
  9028.         OUT (CLRCBIT),A
  9029. PLAYMOD LD A,(BUSY)             ;0XC426
  9030.         PUSH AF
  9031.         LD A,0XFF
  9032.         LD (BUSY),A
  9033.         LD A,B
  9034.         LD (MODULE),A
  9035.         LD (CURMOD),A
  9036.         LD A,%00000011
  9037.         LD (MTSTAT),A
  9038.         LD A,0X06
  9039.         LD (MTSPEED),A
  9040.         LD A,C
  9041.         LD (MTSNGPS),A
  9042.         XOR A
  9043.         LD (MTFLAGS),A
  9044.         LD (MTCOUNT),A
  9045.         LD (MTPATPS),A
  9046.         LD (MTPDT),A
  9047.         LD (MTPDT2),A
  9048.         LD (MTBRKFL),A
  9049.         LD (MTBRKPS),A
  9050.         LD (MTJMPFL),A
  9051.         INC A
  9052.         LD (MTTYPE),A
  9053.         LD A,0X40
  9054.         LD (MTVOL),A
  9055.         DEC A
  9056.         LD (MTROWS),A
  9057.         LD A,125
  9058.         CALL FXF
  9059.         LD IY,CHANS
  9060.         LD B,0X08
  9061.         LD DE,CHANLEN
  9062. COM31__ RES 7,(IY+CHSTAT)
  9063.         SET 0,(IY+CHSTAT)
  9064.         LD (IY+CHVOL),0X40
  9065.         LD (IY+CHMVOL),0X40
  9066.         ADD IY,DE
  9067.         DJNZ COM31__
  9068.         CALL INITPAT
  9069.         CALL EFXGTNT
  9070.         LD A,0XFF
  9071.         LD (PROCESS),A
  9072.         POP AF
  9073.         LD (BUSY),A
  9074.         RET
  9075.  
  9076. COM31_1
  9077. COM31_2 XOR A
  9078.         LD (CURMOD),A
  9079.         OUT (ZXDATWR),A
  9080.         OUT (CLRCBIT),A
  9081.         RET
  9082.  
  9083. ;Stop module
  9084. ;Остановить проигрывание модуля.
  9085. COM32   LD A,(MODULE)
  9086.         OUT (ZXDATWR),A
  9087.         IN A,(ZXDATRD)
  9088.         OUT (CLRCBIT),A
  9089. STOPMOD LD HL,MTSTAT            ;0XC4AE
  9090.         SET 7,(HL)
  9091.         RET
  9092.  
  9093. ;Continue module
  9094. ;Продолжить проигрывание модуля после остановки.
  9095. COM33   LD A,(MODULE)
  9096.         OUT (ZXDATWR),A
  9097.         IN A,(ZXDATRD)
  9098.         OUT (CLRCBIT),A
  9099. CONTMOD LD A,(MODULE)           ;0XC4BD
  9100.         OR A
  9101.         RET Z
  9102.         LD HL,MTSTAT
  9103.         BIT 6,(HL)
  9104.         RET NZ
  9105.         LD A,0XFF
  9106.         LD (PROCESS),A
  9107.         RES 7,(HL)
  9108.         LD (PROCESS),A
  9109.         RET
  9110.  
  9111. COM34   LD A,(MODFADE)
  9112.         OUT (ZXDATWR),A
  9113.         IN A,(ZXDATRD)
  9114.         OUT (CLRCBIT),A
  9115.         LD (MODFADE),A
  9116.         RET
  9117.  
  9118. ;Set Module Volume
  9119. ;Установить громкость проигрывания модулей.
  9120. COM35   LD A,(MTVOL)
  9121.         OUT (ZXDATWR),A
  9122.         IN A,(ZXDATRD)
  9123.         OUT (CLRCBIT),A
  9124.         CP 0X40
  9125.         JR C,COM35_
  9126.         LD A,0X40
  9127. COM35_  LD (MTVOL),A
  9128.         LD IY,CHANS
  9129.         LD B,0X08
  9130.         LD DE,CHANLEN
  9131. COM35__ SET 0,(IY+CHSTAT)
  9132.         ADD IY,DE
  9133.         DJNZ COM35__
  9134.         RET
  9135.  
  9136. ;Data on (*)
  9137. ;Устанавливает регистр данных в 0XFF.
  9138. COM36   LD A,0XFF
  9139.         OUT (ZXDATWR),A
  9140.         OUT (CLRCBIT),A
  9141.         RET
  9142.  
  9143. ;Reinitialisation (*)
  9144. ;Переустанавливает внутренние переменные в исходное состояние.
  9145. COM37   OUT (CLRCBIT),A
  9146.         LD HL,MTSTAT
  9147.         SET 7,(HL)
  9148.         LD HL,0X0000
  9149.         XOR A
  9150.         LD (CURADR),HL
  9151.         LD (CURADR+2),A
  9152.         LD (MEMBOT),HL
  9153.         LD (MEMBOT+2),A
  9154.         LD (CURMOD),A
  9155.         LD (CNTMOD),A
  9156.         LD (MODULE),A
  9157.         RET
  9158.  
  9159. ;Load FX (Extended version)
  9160. ;Загрузка сэмпла эффекта в память. Позволяет загружать сэмплы со знаком.
  9161. COM3E   IN A,(ZXDATRD)
  9162.         CP 0X01
  9163.         JR Z,COM38
  9164.         LD IXL,0X80
  9165.         OR A
  9166.         JR Z,COM38_
  9167.         XOR A
  9168.         OUT (ZXDATWR),A
  9169.         IN A,(ZXDATRD)
  9170.         OUT (CLRCBIT),A
  9171.         RET
  9172.  
  9173. ;Load FX
  9174. ;Загрузка сэмпла эффекта в память. Загружает беззнаковые сэмплы (PC type)
  9175. COM38   LD IXL,0X00
  9176. COM38_  LD A,(CNTFX)
  9177.         CP 60
  9178.         JP NC,COM38_9
  9179.         INC A
  9180.         OUT (ZXDATWR),A
  9181.         PUSH AF
  9182.         IN A,(ZXDATRD)
  9183.         OUT (CLRCBIT),A
  9184.         POP AF
  9185.         LD (CNTFX),A
  9186.         LD (CURFX),A
  9187.         CALL GETFX
  9188.         PUSH HL
  9189.         POP IY
  9190.         LD E,L
  9191.         LD D,H
  9192.         INC DE
  9193.         LD BC,0X003F
  9194.         LD (HL),B
  9195.         LDIR
  9196.         LD HL,(CURADR)
  9197.         LD A,(CURADR+2)
  9198.         LD (IY+8),L
  9199.         LD (IY+9),H
  9200.         LD (IY+10),A
  9201.         LD C,IXL
  9202.         CALL LOAD
  9203.         LD A,(CURADR)
  9204.         SUB (IY+8)
  9205.         LD (IY+11),A
  9206.         LD (IY+17),A
  9207.         LD A,(CURADR+1)
  9208.         SBC A,(IY+9)
  9209.         LD (IY+12),A
  9210.         LD (IY+18),A
  9211.         LD A,(CURADR+2)
  9212.         SBC A,(IY+10)
  9213.         LD (IY+13),A
  9214.         LD (IY+19),A
  9215.         LD (IY+16),0XFF
  9216.         LD (IY+20),0X40
  9217.         LD (IY+23),0X80
  9218.         LD (IY+24),0X0F
  9219.         LD (IY+25),0X0F
  9220.         LD (IY+26),0X80
  9221.         LD (IY+27),0XFF
  9222.         LD (IY+28),0XFF
  9223.         LD (IY+31),60
  9224.         LD E,60
  9225.         CALL GETPER
  9226.         LD (IY+54),L
  9227.         LD (IY+55),H
  9228.         CALL GETFRQ
  9229.         LD (IY+56),L
  9230.         LD (IY+57),H
  9231.         RET
  9232.  
  9233. COM38_9 XOR A
  9234.         OUT (ZXDATWR),A
  9235.         LD (CURFX),A
  9236.         IN A,(ZXDATRD)
  9237.         OUT (CLRCBIT),A
  9238.         RET
  9239.  
  9240. GETFX   DEC A
  9241.         CP 0X20
  9242.         JR C,GETFX2
  9243.         SUB 0X20
  9244.         LD H,0X00
  9245.         ADD A,A
  9246.         ADD A,A
  9247.         ADD A,A
  9248.         RL H
  9249.         ADD A,A
  9250.         RL H
  9251.         ADD A,A
  9252.         RL H
  9253.         ADD A,A
  9254.         RL H
  9255.         LD L,A
  9256.         LD A,H
  9257.         ADD A,HIGH (BUFFER)+1
  9258.         LD H,A
  9259.         PUSH HL
  9260.         POP IY
  9261.         RET
  9262.  
  9263. GETFX2  LD H,0X00
  9264.         ADD A,A
  9265.         ADD A,A
  9266.         ADD A,A
  9267.         RL H
  9268.         ADD A,A
  9269.         RL H
  9270.         ADD A,A
  9271.         RL H
  9272.         ADD A,A
  9273.         RL H
  9274.         LD L,A
  9275.         LD A,H
  9276.         ADD A,HIGH (SMPADR)
  9277.         LD H,A
  9278.         PUSH HL
  9279.         POP IY
  9280.         RET
  9281.  
  9282. ;Play FX
  9283. ;Проигрывание эффекта.
  9284. COM39   IN A,(ZXDATRD)
  9285.         OR A
  9286.         JR NZ,COM39_1
  9287.         LD A,(CURFX)
  9288. COM39_1 LD (CURFX),A
  9289.         LD B,A
  9290.         LD A,(CNTFX)
  9291.         CP B
  9292.         JP C,COM39_9
  9293.         XOR A
  9294.         OUT (ZXDATWR),A
  9295.         OUT (CLRCBIT),A
  9296.         LD A,(CURFX)
  9297.         CALL GETFX
  9298.         LD A,(BUSY)
  9299.         PUSH AF
  9300.         LD A,0XFF
  9301.         LD (BUSY),A
  9302.         PUSH HL
  9303.         POP IY
  9304.         CALL PLAYFX
  9305.         POP AF
  9306.         LD (BUSY),A
  9307.         RET
  9308.  
  9309. COM39_9 LD A,0XFF
  9310.         OUT (ZXDATWR),A
  9311.         OUT (CLRCBIT),A
  9312.         RET
  9313.  
  9314. COM3B
  9315. COM3C   LD A,(FXFADE)
  9316.         OUT (ZXDATWR),A
  9317.         IN A,(ZXDATRD)
  9318.         OUT (CLRCBIT),A
  9319.         LD (FXFADE),A
  9320.         RET
  9321.  
  9322. ;Set FX Volume
  9323. ;Установить громкость проигрывания эффектов.
  9324. COM3D   LD A,(FXMVOL)
  9325.         OUT (ZXDATWR),A
  9326.         IN A,(ZXDATRD)
  9327.         OUT (CLRCBIT),A
  9328.         CP 0X40
  9329.         JR C,COM3D_
  9330.         LD A,0X40
  9331. COM3D_  LD (FXMVOL),A
  9332.         LD IY,CHANSFX
  9333.         LD B,0X08
  9334.         LD DE,CHANLEN
  9335. COM3D__ SET 0,(IY+CHSTAT)
  9336.         ADD IY,DE
  9337.         DJNZ COM3D__
  9338.         RET
  9339.  
  9340. COM3F
  9341.  
  9342. ;Set FX Sample Playing Note
  9343. ;Установка ноты по умолчанию для текущего эффекта.
  9344. COM40   IN A,(ZXDATRD)
  9345.         OUT (CLRCBIT),A
  9346.         LD E,A
  9347.         LD A,(CURFX)
  9348.         OR A
  9349.         RET Z
  9350.         CALL GETFX
  9351.         LD A,E
  9352.         CP 96
  9353.         JR C,COM40_
  9354.         LD E,95
  9355. COM40_  LD (IY+31),E
  9356.         CALL GETPER
  9357.         LD (IY+54),L
  9358.         LD (IY+55),H
  9359.         CALL GETFRQ
  9360.         LD (IY+56),L
  9361.         LD (IY+57),H
  9362.         RET
  9363.  
  9364. ;Set FX Sample Volume
  9365. ;Установка громкости по умолчанию для текущего эффекта.
  9366. COM41   IN A,(ZXDATRD)
  9367.         OUT (CLRCBIT),A
  9368.         LD E,A
  9369.         LD A,(CURFX)
  9370.         OR A
  9371.         RET Z
  9372.         CALL GETFX
  9373.         LD A,E
  9374.         CP 0X41
  9375.         JR C,COM41_
  9376.         LD E,0X40
  9377. COM41_  LD (IY+20),E
  9378.         RET
  9379.  
  9380. ;Set FX Sample Finetune
  9381. ;Установка Finetune по умолчанию для текущего эффекта.
  9382. COM42   LD A,(CURFX)
  9383.         CALL GETFX
  9384.         PUSH HL
  9385.         POP IY
  9386.         LD A,(IY+21)
  9387.         OUT (ZXDATWR),A
  9388.         IN A,(ZXDATRD)
  9389.         OUT (CLRCBIT),A
  9390.         LD (IY+21),A
  9391.         RET
  9392.  
  9393. ;Set FX Sample Priority
  9394. ;Установка приоритета для текущего эффекта. (См. команду 0X39)
  9395. COM45   LD A,(CURFX)
  9396.         CALL GETFX
  9397.         PUSH HL
  9398.         POP IY
  9399.         LD A,(IY+26)
  9400.         OUT (ZXDATWR),A
  9401.         IN A,(ZXDATRD)
  9402.         OUT (CLRCBIT),A
  9403.         LD (IY+26),A
  9404.         RET
  9405.  
  9406. ;Set FX Sample Seek First parameter
  9407. ;Установка параметра Seek First для текущего эффекта. (См. команду 0X39)
  9408. COM46   LD A,(CURFX)
  9409.         CALL GETFX
  9410.         PUSH HL
  9411.         POP IY
  9412.         LD A,(IY+24)
  9413.         OUT (ZXDATWR),A
  9414.         IN A,(ZXDATRD)
  9415.         OUT (CLRCBIT),A
  9416.         LD (IY+24),A
  9417.         RET
  9418.  
  9419. ;Set FX Sample Seek Last parameter
  9420. ;Установка параметра Seek Last для текущего эффекта. (См. команду 0X39)
  9421. COM47   LD A,(CURFX)
  9422.         CALL GETFX
  9423.         PUSH HL
  9424.         POP IY
  9425.         LD A,(IY+25)
  9426.         OUT (ZXDATWR),A
  9427.         IN A,(ZXDATRD)
  9428.         OUT (CLRCBIT),A
  9429.         LD (IY+25),A
  9430.         RET
  9431.  
  9432. ;Set FX Sample Loop Begin (*)
  9433. ;Установка начала цикла для текущего эффекта.
  9434. COM48   LD A,(CURFX)
  9435.         CALL GETFX
  9436.         PUSH HL
  9437.         POP IY
  9438.         IN A,(ZXDATRD)
  9439.         OUT (CLRCBIT),A
  9440.         LD (IY+14),A
  9441.         CALL HGET
  9442.         LD (IY+15),A
  9443.         CALL HGET
  9444.         LD (IY+16),A
  9445.         RET
  9446.  
  9447. ;Set FX Sample Loop End (*)
  9448. ;Установка конца цикла для текущего эффекта.
  9449. COM49   LD A,(CURFX)
  9450.         CALL GETFX
  9451.         PUSH HL
  9452.         POP IY
  9453.         IN A,(ZXDATRD)
  9454.         OUT (CLRCBIT),A
  9455.         LD (IY+17),A
  9456.         CALL HGET
  9457.         LD (IY+18),A
  9458.         CALL HGET
  9459.         LD (IY+19),A
  9460.         RET
  9461.  
  9462. COM58   LD B,0X00
  9463.         OUT (ZXDATWR),A
  9464.         JP COM50_
  9465.  
  9466. COM50   IN A,(ZXDATRD)
  9467.         LD B,A
  9468. COM50_  IN A,(ZXCMD)
  9469.         OUT (CLRCBIT),A
  9470.         AND 0X07
  9471.         LD E,A
  9472.         CALL HGET
  9473.         LD L,A
  9474.         LD A,E
  9475.         CP 0X04
  9476.         CALL NC,HGET
  9477.         LD H,A
  9478.         LD A,E
  9479.         CP 0X07
  9480.         CALL Z,HGET
  9481.         LD D,A
  9482.         LD A,B
  9483.         OR A
  9484.         JR NZ,C50_00
  9485.         LD A,(LSTCHN)
  9486.         OR A
  9487.         JP Z,ERR20
  9488. C50_00  LD B,A
  9489.         LD C,0X01
  9490.         LD IY,CHANSFX
  9491. C50_01  LD A,B
  9492.         AND C
  9493.         JR NZ,C50_02
  9494.         RLC C
  9495.         LD A,IYL
  9496.         ADD A,LOW (CHANLEN)
  9497.         LD IYL,A
  9498.         LD A,IYH
  9499.         ADC A,0X00
  9500.         LD IYH,A
  9501.         JP C50_01
  9502.  
  9503. C50_02  LD A,E
  9504.         OR A
  9505.         JP Z,C50_80
  9506.         CP 0X02
  9507.         JP Z,C50_A0
  9508.         CP 0X04
  9509.         JP Z,C50_C0
  9510.         CP 0X05
  9511.         JP Z,C50_D0
  9512.         CP 0X06
  9513.         JP Z,C50_E0
  9514.         CP 0X07
  9515.         JP Z,C50_F0
  9516. C50_LP
  9517. C50_80  SET 7,(IY+CHSTAT)
  9518.         LD A,L
  9519.         AND 0X7F
  9520.         CP 96
  9521.         JP NC,C50_LP
  9522. C50_81  LD A,(IY+CHSMP)
  9523.         OR A
  9524.         JP Z,C50_LP
  9525.         PUSH DE
  9526.         PUSH BC
  9527.         PUSH HL
  9528.         LD E,L
  9529.         RES 7,E
  9530.         CALL GETFRQ
  9531.         LD (IY+CHFRQL),L
  9532.         LD (IY+CHFRQH),H
  9533.         CALL GETPER
  9534.         LD (IY+CHPERL),L
  9535.         LD (IY+CHPERH),H
  9536.         BIT 7,(IY+CHSTAT)
  9537.         JR NZ,C50_82
  9538.         LD A,(IY+CHNOTE)
  9539.         CP E
  9540.         JR Z,C50_83
  9541.         LD (IY+CHNOTE),E
  9542. C50_82  LD (IY+CHCNTL),0X00
  9543.         LD (IY+CHCNTH),0X00
  9544. C50_83  POP HL
  9545.         PUSH HL
  9546.         BIT 7,(IY+CHSTAT)
  9547.         JR NZ,C50_84
  9548.         BIT 7,L
  9549. C50_84  POP HL
  9550.         POP BC
  9551.         POP DE
  9552.         JP C50_LP
  9553.  
  9554. C50_90  LD A,L
  9555.         CP 0X40
  9556.         JR C,C50_91
  9557.         LD L,0X40
  9558. C50_91  LD (IY+CHVOL),A
  9559.         LD (IY+CHMVOL),A
  9560.         JP C50_LP
  9561.  
  9562. C50_A0  LD (IY+CHFINE),L
  9563.         JP C50_LP
  9564.  
  9565. C50_B0  LD (IY+CHPAN),L
  9566.         JP C50_LP
  9567.  
  9568. C50_C0  LD A,H
  9569.         OR A
  9570.         JR NZ,C50_C1
  9571.         OR L
  9572.         JR NZ,C50_C1
  9573.         LD L,0X01
  9574. C50_C1  LD A,H
  9575.         CP 0X20
  9576.         JR C,C50_C2
  9577.         LD HL,0X1FFF
  9578. C50_C2  LD A,(IY+CHSTAT)
  9579.         SET 7,(IY+CHSTAT)
  9580.         LD (IY+CHPERL),L
  9581.         LD (IY+CHPERH),H
  9582.         LD (IY+CHCNTL),0X00
  9583.         LD (IY+CHCNTH),0X00
  9584.         LD (IY+CHSTAT),A
  9585.         JP C50_LP
  9586.  
  9587. C50_D0  LD A,H
  9588.         OR A
  9589.         JR NZ,C50_D1
  9590.         OR L
  9591.         JR NZ,C50_D1
  9592.         LD L,0X01
  9593. C50_D1  LD A,H
  9594.         CP 0X80
  9595.         JR C,C50_D2
  9596.         LD HL,0X7FFF
  9597. C50_D2  LD A,(IY+CHSTAT)
  9598.         SET 7,(IY+CHSTAT)
  9599.         LD (IY+CHFRQL),L
  9600.         LD (IY+CHFRQH),H
  9601.         LD (IY+CHCNTL),0X00
  9602.         LD (IY+CHCNTH),0X00
  9603.         LD (IY+CHSTAT),A
  9604.         JP C50_LP
  9605.  
  9606. C50_E0
  9607. C50_F0
  9608.  
  9609. ;Get Song Position
  9610. ;Получение значения переменной Song_Position в текущем модуле.
  9611. COM60   LD A,(MTSNGPS)
  9612.         OUT (ZXDATWR),A
  9613.         OUT (CLRCBIT),A
  9614.         RET
  9615.  
  9616. ;Get Pattern Position
  9617. ;Получение значения переменной Pattern_Position в текущем модуле.
  9618. COM61   LD A,(MTPATPS)
  9619.         OUT (ZXDATWR),A
  9620.         OUT (CLRCBIT),A
  9621.         RET
  9622.  
  9623. ;Get Mixed Position
  9624. ;Получить значение Pattern_Position, немного смешанной с Song_Position.
  9625. COM62   LD A,(MTSNGPS)
  9626.         RRCA
  9627.         RRCA
  9628.         AND 0XC0
  9629.         LD B,A
  9630.         LD A,(MTPATPS)
  9631.         AND 0X3F
  9632.         OR B
  9633.         OUT (ZXDATWR),A
  9634.         OUT (CLRCBIT),A
  9635.         RET
  9636.  
  9637. ;Get Channel Volumes
  9638. ;Получить громкости всех каналов модуля.
  9639. COM64   LD HL,CHANS+CHMVOL
  9640.         JP COM64_
  9641.        
  9642. COM63   LD HL,CHANS+CHREAL
  9643. COM64_  LD DE,CHANLEN
  9644.         LD B,0X04
  9645.         LD A,(HL)
  9646.         OUT (ZXDATWR),A
  9647.         OUT (CLRCBIT),A
  9648.         JP COM63__
  9649.  
  9650. ;Get Channel Notes
  9651. ;Получить ноты всех каналов модуля.
  9652. COM63_  LD A,(HL)
  9653.         OUT (ZXDATWR),A
  9654. COM63__ SET 7,(HL)
  9655.         CALL HSEND
  9656.         ADD HL,DE
  9657.         DJNZ COM63_
  9658.         RET
  9659.  
  9660. ;Set speed/tempo (*)
  9661. ;Установка скорости в пределах 0X01-0X1F. При значениях 0X20-0XFF устанавли-
  9662. ;вается темп проигрывания. Значения темпа соответствуют оригинальным при
  9663. ;скорости равной 0X06.
  9664. COM66   IN A,(ZXDATRD)
  9665.         OUT (CLRCBIT),A
  9666.         CALL FXF
  9667.         RET
  9668.  
  9669. ;Get speed value (*)
  9670. ;Чтение текущей скорости.
  9671. COM67   LD A,(MTSPEED)
  9672.         OUT (ZXDATWR),A
  9673.         OUT (CLRCBIT),A
  9674.         RET
  9675.  
  9676. ;Get tempo value (*)
  9677. ;Чтение текущего темпа.
  9678. COM68   LD A,(MTBPM)
  9679.         OUT (ZXDATWR),A
  9680.         OUT (CLRCBIT),A
  9681.         RET
  9682.  
  9683. ;Process Sound (*)
  9684. ;Переход на следующий кварк (или тик) в процессе проигрывания звука.
  9685. COM69   LD A,0XFF
  9686.         LD (INGEN),A
  9687.         CALL ENGINE
  9688.         XOR A
  9689.         LD (INGEN),A
  9690.         OUT (CLRCBIT),A
  9691.         RET
  9692.  
  9693. ;Stop FX in channels
  9694. ;установка проигрывания эффектов в заданных каналах,  которые указывают-
  9695. ;ся в маске каналов (Channel Mask).  В ней единица в n-ном  бите  указы-
  9696. ;вает на то, что эффект в n-ном канале требуется остановить
  9697. COM3A   IN A,(ZXDATRD)
  9698.         OUT (CLRCBIT),A
  9699.         LD C,A
  9700.         CPL
  9701.         LD B,A
  9702.         LD A,(FXCHNS)
  9703.         AND B
  9704.         LD (FXCHNS),A
  9705.         LD IY,CHANSFX
  9706.         LD DE,CHANLEN
  9707.         SLA C
  9708.         JR NC,COM3A_2
  9709. COM3A_1 RES 7,(IY+CHSTAT)
  9710. COM3A_2 ADD IY,DE
  9711.         SLA C
  9712.         JR C,COM3A_1
  9713.         JP NZ,COM3A_2
  9714.         RET
  9715.  
  9716. ;Direct Play FX Sample (0X80..0X83)
  9717. ;Проигрывание сэмпла в заданном канале.
  9718. COM80   IN A,(ZXDATRD)
  9719.         OR A
  9720.         JR NZ,COM80_1
  9721.         LD A,(CURFX)
  9722. COM80_1 LD (CURFX),A
  9723.         LD C,A
  9724.         LD A,(CNTFX)
  9725.         CP C
  9726.         JP C,COM39_9
  9727.         IN A,(ZXCMD)
  9728.         OUT (CLRCBIT),A
  9729.         LD B,A
  9730.         BIT 3,B
  9731.         CALL NZ,HGET
  9732.         LD E,A
  9733.         BIT 4,B
  9734.         CALL NZ,HGET
  9735.         LD D,A
  9736.         LD A,C
  9737.         CALL GETFX
  9738.         PUSH DE
  9739.         PUSH BC
  9740.         CALL COM80_2
  9741.         POP  BC
  9742.         POP  DE
  9743.         PUSH HL
  9744.         POP  IY
  9745.         BIT 4,B
  9746.         JR Z,COM80_4
  9747.         LD (IY+CHVOL),D
  9748.         LD (IY+CHMVOL),D
  9749. COM80_4 BIT 3,B
  9750.         RET Z
  9751.         CALL GETFRQ
  9752.         LD (IY+CHFRQL),L
  9753.         LD (IY+CHFRQH),H
  9754.         CALL GETPER
  9755.         LD (IY+CHPERL),L
  9756.         LD (IY+CHPERH),H
  9757.         RET
  9758.  
  9759. COM80_2 PUSH IY
  9760.         LD IY,CHANSFX
  9761.         LD DE,CHANLEN
  9762.         LD A,B
  9763.         AND 0X07
  9764. COM80_3 JP Z,PLFX_12
  9765.         ADD IY,DE
  9766.         DEC A
  9767.         JP COM80_3
  9768.  
  9769. COMA0   IN A,(ZXDATRD)
  9770.         LD C,A
  9771.         IN A,(ZXCMD)
  9772.         OUT (CLRCBIT),A
  9773.         LD B,A
  9774.         LD IY,CHANSFX
  9775.         LD DE,CHANLEN
  9776.         AND 0X07
  9777. COMA0_1 JR Z,COMA0_2
  9778.         ADD IY,DE
  9779.         DEC A
  9780.         JP NZ,COMA0_1
  9781. COMA0_2 BIT 3,B
  9782.         JR NZ,COMA0_3
  9783.         LD E,C
  9784.         CALL GETPER
  9785.         LD (IY+CHPERL),L
  9786.         LD (IY+CHPERH),H
  9787.         CALL GETFRQ
  9788.         LD (IY+CHFRQL),L
  9789.         LD (IY+CHFRQH),H
  9790.         RET
  9791.        
  9792. COMA0_3 LD (IY+CHVOL),C
  9793.         LD (IY+CHMVOL),C
  9794.         SET 0,(IY+CHSTAT)
  9795.         RET
  9796.  
  9797. ; INPUT : E=NOTE,IY=CHANNEL
  9798. ; OUTPUT: HL=PERIOD OR FREQUENCY
  9799. ; USED  : HL,D,BC,A
  9800.  
  9801. GETPER  LD HL,AMFRQTB   ; FOR AMIGA FREQUENCY
  9802.         JR GETFRQ_
  9803.  
  9804. GETFRQ  LD HL,GSFRQTB
  9805. GETFRQ_ LD A,(IY+CHFINE)
  9806.         RRA
  9807.         AND 0X0F
  9808.         JR Z,GETFRQ2
  9809.         LD C,A
  9810.         ADD A,A
  9811.         ADD A,C
  9812.         ADD A,A
  9813.         ADD A,A
  9814.         ADD A,A
  9815.         LD B,0
  9816.         RL B
  9817.         ADD A,A
  9818.         RL B
  9819.         ADD A,A
  9820.         RL B
  9821.         LD C,A
  9822.         ADD HL,BC
  9823.         ADD HL,BC
  9824. GETFRQ2 LD D,0
  9825.         LD A,E
  9826.         CP 96
  9827.         JR C,GETFRQ3
  9828.         LD E,95
  9829. GETFRQ3 SLA E
  9830.         ADD HL,DE
  9831.         LD E,(HL)
  9832.         INC HL
  9833.         LD D,(HL)
  9834.         EX DE,HL
  9835.         LD E,A
  9836.         BIT 0,(IY+CHFINE)
  9837.         RET Z
  9838.         RET
  9839.  
  9840. PLAYFX  LD C,0X00
  9841.         LD A,(MTSTAT)
  9842.         OR A
  9843.         JP M,PLFX_03
  9844.         LD A,(MODULE)
  9845.         OR A
  9846.         JR Z,PLFX_03
  9847.         LD IY,CHANS
  9848.         LD DE,CHANLEN
  9849.         LD B,0X04
  9850. PLFX_00 BIT 7,(IY+CHSTAT)
  9851.         JR Z,PLFX_01
  9852.         LD A,(IY+CHMVOL)
  9853.         OR A
  9854.         JR Z,PLFX_01
  9855.         LD A,C
  9856.         OR (IY+CHRDR)
  9857.         LD C,A
  9858. PLFX_01 ADD IY,DE
  9859.         DJNZ  PLFX_00
  9860. PLFX_03 PUSH HL
  9861.         POP IY
  9862.         LD HL,GSCHNS
  9863.         LD A,(HL)
  9864.         OR A
  9865.         SCF
  9866.         RET Z
  9867.         LD A,(FXCHNS)
  9868.         OR C
  9869.         CPL
  9870.         AND (HL)
  9871.         LD C,A
  9872.         AND (IY+24)
  9873.         JR NZ,PLFX_10
  9874.         LD A,(IY+26)
  9875.         CP 0X40
  9876.         JR NC,PLFX_04
  9877.         LD A,C
  9878.         AND (IY+25)
  9879.         JR NZ,PLFX_10
  9880.         JP PLFX_05
  9881.        
  9882. PLFX_04 LD A,(FXCHNS)
  9883.         CPL
  9884.         AND (HL)
  9885.         AND (IY+24)
  9886.         JR NZ,PLFX_10
  9887.         LD A,(FXCHNS)
  9888.         CPL
  9889.         AND (HL)
  9890.         AND (IY+25)
  9891.         JR NZ,PLFX_10
  9892. PLFX_05 LD A,(FXCHNS)
  9893.         LD B,A
  9894.         LD A,(GSCHNS)
  9895.         AND B
  9896.         LD B,A
  9897.         PUSH IY
  9898.         LD IY,CHANSFX
  9899.         LD L,A
  9900.         LD H,0XFF
  9901.         LD DE,CHANLEN
  9902.         SRL B
  9903.         JP C,PLFX_06
  9904.         JP NZ,PLFX_07
  9905.         JP PLFX_08
  9906.  
  9907. PLFX_06 LD A,(IY+CHPRIOR)
  9908.         CP H
  9909.         JR NC,PLFX_07
  9910.         LD H,A
  9911.         LD L,(IY+CHRDR)
  9912. PLFX_07 ADD IY,DE
  9913.         SRL B
  9914.         JP C,PLFX_06
  9915.         JP NZ,PLFX_07
  9916. PLFX_08 POP IY
  9917.         LD A,L
  9918.         OR A
  9919.         SCF
  9920.         RET Z
  9921.         LD A,H
  9922.         CP (IY+26)
  9923.         LD A,L
  9924.         JR C,PLFX_10
  9925.         SCF
  9926.         RET
  9927.  
  9928. PLFX_10 LD B,A
  9929.         PUSH IY
  9930.         LD IY,CHANSFX
  9931.         LD DE,CHANLEN
  9932.         SRL B
  9933.         JP C,PLFX_12
  9934. PLFX_11 ADD IY,DE
  9935.         SRL B
  9936.         JP NC,PLFX_11
  9937. PLFX_12 LD A,(FXCHNS)
  9938.         OR (IY+CHRDR)
  9939.         LD (FXCHNS),A
  9940.         EX (SP),IY
  9941.         LD E,(IY+8)
  9942.         LD D,(IY+9)
  9943.         LD A,(IY+10)
  9944.         DB 0XCB,0X32;SLI D
  9945.         RLA
  9946.         RRC D
  9947.         EX (SP),IY
  9948.         LD (IY+CHCURP),A
  9949.         LD (IY+CHCURL),E
  9950.         LD (IY+CHCURH),D
  9951.         EX (SP),IY
  9952.         LD A,(IY+8)
  9953.         ADD A,(IY+11)
  9954.         LD E,A
  9955.         LD A,(IY+9)
  9956.         ADC A,(IY+12)
  9957.         LD D,A
  9958.         LD A,(IY+10)
  9959.         ADC A,(IY+13)
  9960.         DB 0XCB,0X32;SLI D
  9961.         RLA
  9962.         RRC D
  9963.         EX (SP),IY
  9964.         LD (IY+CHENDP),A
  9965.         LD (IY+CHENDL),E
  9966.         LD (IY+CHENDH),D
  9967.         LD (IY+CHLPBP),0XFF
  9968.         EX (SP),IY
  9969.         LD A,(IY+16)
  9970.         INC A
  9971.         JR Z,PLFX_13
  9972.         LD A,(IY+8)
  9973.         ADD A,(IY+14)
  9974.         LD E,A
  9975.         LD A,(IY+9)
  9976.         ADC A,(IY+15)
  9977.         LD D,A
  9978.         LD A,(IY+10)
  9979.         ADC A,(IY+16)
  9980.         DB 0XCB,0X32;SLI D
  9981.         RLA
  9982.         RRC D
  9983.         EX (SP),IY
  9984.         LD (IY+CHLPBP),A
  9985.         LD (IY+CHLPBL),E
  9986.         LD (IY+CHLPBH),D
  9987.         EX (SP),IY
  9988.         LD A,(IY+8)
  9989.         ADD A,(IY+17)
  9990.         LD E,A
  9991.         LD A,(IY+9)
  9992.         ADC A,(IY+18)
  9993.         LD D,A
  9994.         LD A,(IY+10)
  9995.         ADC A,(IY+19)
  9996.         DB 0XCB,0X32;SLI D
  9997.         RLA
  9998.         RRC D
  9999.         EX (SP),IY
  10000.         LD (IY+CHLPEP),A
  10001.         LD (IY+CHLPEL),E
  10002.         LD (IY+CHLPEH),D
  10003.         EX (SP),IY
  10004. PLFX_13 LD E,(IY+20)
  10005.         LD D,(IY+21)
  10006.         LD B,(IY+31)
  10007.         LD C,(IY+23)
  10008.         LD L,(IY+22)
  10009.         LD H,(IY+6)
  10010.         EX (SP),IY
  10011.         LD (IY+CHVOL),E
  10012.         LD (IY+CHMVOL),E
  10013.         LD (IY+CHFINE),D
  10014.         LD (IY+CHNOTE),B
  10015.         LD (IY+CHPAN),C
  10016.         LD (IY+CHRLNT),L
  10017.         LD (IY+CHSQZ),H
  10018.         EX (SP),IY
  10019.         LD E,(IY+54)
  10020.         LD D,(IY+55)
  10021.         LD L,(IY+56)
  10022.         LD H,(IY+57)
  10023.         LD C,(IY+26)
  10024.         EX (SP),IY
  10025.         SRL D
  10026.         RR E
  10027.         SRL D
  10028.         RR E
  10029.         LD (IY+CHPERL),E
  10030.         LD (IY+CHPERH),D
  10031.         LD (IY+CHFRQL),L
  10032.         LD (IY+CHFRQH),H
  10033.         LD (IY+CHPRIOR),C
  10034.         LD (IY+CHFADVH),0XFF
  10035.         LD (IY+CHFADVL),0XFF
  10036.         LD (IY+CHDELVH),0XFF
  10037.         LD (IY+CHDELVL),0XFF
  10038.         LD (IY+CHEPAN),0X20
  10039.         LD (IY+CHEVOL),0X40
  10040.         LD (IY+CHCNTL),0X00
  10041.         LD (IY+CHCNTH),0X00
  10042.         LD (IY+CHVOL),0X40
  10043.         LD (IY+CHPAN),0X80
  10044.         SET 7,(IY+CHSTAT)
  10045.         SET 0,(IY+CHSTAT)
  10046.         PUSH IY
  10047.         POP HL
  10048.         POP IY
  10049.         LD A,0XFF
  10050.         LD (PROCESS),A
  10051.         RET
  10052.  
  10053. ;INCLUDE "MEM_H.a80"
  10054. ;MEMORY MOVEMENT MODULE - HIGH PART
  10055.  
  10056. ;PROCEDURE: MOVE MEMORY
  10057. ;INPUT    : B ,HL  - SOURCE START LOGICAL ADRESS
  10058. ;           C ,DE  - SOURCE END LOGICAL ADRESS
  10059. ;           B',HL' - DESTINATION LOGICAL ADRESS
  10060. ;OUTPUT   : C ,DE  = DEST-START
  10061. ;USES     : TYPE 1 REGS,RAMPG,CPAGE,BUFFER,SYSTEM
  10062. ;EFFECT   : MOVES MEMORY REGION {START,END-1} TO DEST
  10063. ;           ALL ADRESSES IS LOGICAL
  10064.  
  10065. MOVMEM  XOR A
  10066.         LD (SYSTEM),A
  10067.         PUSH HL
  10068.         LD A,B
  10069.         EXX
  10070.         POP DE
  10071.         PUSH HL
  10072.         PUSH BC
  10073.         LD C,A
  10074.         OR A
  10075.         SBC HL,DE
  10076.         LD A,B
  10077.         SBC A,C
  10078.         EX DE,HL
  10079.         POP BC
  10080.         POP HL
  10081.         LD C,A
  10082.         OR E
  10083.         OR D
  10084.         RET Z
  10085.         EXX
  10086.         EX DE,HL
  10087.         SBC HL,DE
  10088.         LD A,C
  10089.         SBC A,B
  10090.         LD IXL,A
  10091.         OR L
  10092.         OR H
  10093.         EXX
  10094.         RET Z
  10095.         PUSH DE
  10096.         PUSH BC
  10097.         BIT 7,C
  10098.         LD A,B
  10099.         EXX
  10100.         JR NZ,MOVL
  10101.         CP C
  10102.         JP C,MOVH
  10103.         JR NZ,MOVL
  10104.         EXX
  10105.         LD A,H
  10106.         EXX
  10107.         CP D
  10108.         JP C,MOVH
  10109.         JR NZ,MOVL
  10110.         EXX
  10111.         LD A,L
  10112.         EXX
  10113.         CP E
  10114.         JP C,MOVH
  10115. MOVL    DB 0XCB,0X32;SLI D
  10116.         RL B
  10117.         RRC D
  10118.         PUSH DE
  10119.         EXX
  10120.         EX DE,HL
  10121.         POP HL
  10122.         DB 0XCB,0X32;SLI D
  10123.         RL B
  10124.         RRC D
  10125.         LD A,B
  10126.         LD BC,0X0000
  10127.         EXX
  10128.         LD C,A
  10129. ML1     EXX
  10130.         LD A,H
  10131.         CP D
  10132.         JR C,ML3
  10133.         JR NZ,ML2
  10134.         LD A,L
  10135.         CP E
  10136.         JR C,ML3
  10137. ML2     LD A,C
  10138.         SUB L
  10139.         LD C,A
  10140.         LD A,B
  10141.         SBC A,H
  10142.         JR ML4
  10143. ML3     LD A,C
  10144.         SUB E
  10145.         LD C,A
  10146.         LD A,B
  10147.         SBC A,D
  10148. ML4     LD B,A
  10149.         LD A,IXL
  10150.         OR A
  10151.         JR NZ,ML6
  10152.         LD A,B
  10153.         EXX
  10154.         CP H
  10155.         JR C,ML7
  10156.         JR NZ,ML5
  10157.         EXX
  10158.         LD A,C
  10159.         EXX
  10160.         CP L
  10161.         JR C,ML7
  10162. ML5     PUSH HL
  10163.         EXX
  10164.         POP BC
  10165. ML6     EXX
  10166. ML7     LD D,HIGH (RAMPG)
  10167.         LD A,B
  10168.         CP C
  10169.         JR NZ,ML9
  10170.         LD E,B
  10171.         LD A,(DE)
  10172.         LD (SDPAGE),A
  10173.         EXX
  10174.         PUSH BC
  10175. ML8     LD A,C
  10176.         CALL MLDI
  10177.         JP PE,ML8
  10178.         JR MLD
  10179.  
  10180. ML9     EXX
  10181.         PUSH BC
  10182. MLA     PUSH BC
  10183.         PUSH DE
  10184.         EXX
  10185.         LD E,B
  10186.         LD A,(DE)
  10187.         LD (SDPAGE),A
  10188.         EXX
  10189.         LD DE,BUFFER
  10190.         LD A,C
  10191.         CALL MLDI
  10192.         POP DE
  10193.         POP BC
  10194.         PUSH HL
  10195.         EXX
  10196.         LD E,C
  10197.         LD A,(DE)
  10198.         LD (SDPAGE),A
  10199.         EXX
  10200.         LD HL,BUFFER
  10201.         LD A,C
  10202.         CALL MLDI
  10203.         POP HL
  10204.         JP PE,MLA
  10205. MLD     BIT 7,H
  10206.         JR NZ,MLB
  10207.         SET 7,H
  10208.         EXX
  10209.         INC B
  10210.         JP MLC
  10211.        
  10212. MLB     SET 7,D
  10213.         EXX
  10214.         INC C
  10215. MLC     POP DE
  10216.         OR A
  10217.         SBC HL,DE
  10218.         LD A,IXL
  10219.         SBC A,0X00
  10220.         LD IXL,A
  10221.         OR L
  10222.         OR H
  10223.         JP NZ,ML1
  10224.         POP BC
  10225.         POP DE
  10226.         RET
  10227.  
  10228. MOVH    LD A,L
  10229.         OR H
  10230.         JR NZ,MH0
  10231.         DEC IXL
  10232. MH0     DEC HL
  10233.         EX DE,HL
  10234.         ADD HL,DE
  10235.         LD A,B
  10236.         ADC A,IXL
  10237.         DB 0XCB,0X34;SLI H
  10238.         RLA
  10239.         RRC H
  10240.         LD B,A
  10241.         PUSH HL
  10242.         PUSH DE
  10243.         INC DE
  10244.         LD A,E
  10245.         OR D
  10246.         LD A,IXL
  10247.         JR NZ,MHF
  10248.         INC IXL
  10249. MHF     EX DE,HL
  10250.         EXX
  10251.         POP DE
  10252.         ADD HL,DE
  10253.         ADC A,B
  10254.         DB 0XCB,0X34;SLI H
  10255.         RLA
  10256.         RRC H
  10257.         EX DE,HL
  10258.         POP HL
  10259.         EXX
  10260.         LD C,A
  10261. MH1     EXX
  10262.         LD A,H
  10263.         CP D
  10264.         JR C,MH3
  10265.         JR NZ,MH2
  10266.         LD A,L
  10267.         CP E
  10268.         JR C,MH3
  10269. MH2     LD C,E
  10270.         LD B,D
  10271.         JR MH4
  10272.        
  10273. MH3     LD C,L
  10274.         LD B,H
  10275. MH4     RES 7,B
  10276.         INC BC
  10277.         LD A,IXL
  10278.         OR A
  10279.         JR NZ,MH6
  10280.         LD A,B
  10281.         EXX
  10282.         CP H
  10283.         JR C,MH7
  10284.         JR NZ,MH5
  10285.         EXX
  10286.         LD A,C
  10287.         EXX
  10288.         CP L
  10289.         JR C,MH7
  10290. MH5     PUSH HL
  10291.         EXX
  10292.         POP BC
  10293. MH6     EXX
  10294. MH7     LD D,HIGH (RAMPG)
  10295.         LD A,B
  10296.         CP C
  10297.         JR NZ,MH9
  10298.         LD E,B
  10299.         LD A,(DE)
  10300.         LD (SDPAGE),A
  10301.         EXX
  10302.         PUSH BC
  10303. MH8     LD A,C
  10304.         CALL MLDD
  10305.         JP PE,MH8
  10306.         JR MHD
  10307.  
  10308. MH9     EXX
  10309.         PUSH BC
  10310. MHA     PUSH BC
  10311.         PUSH DE
  10312.         EXX
  10313.         LD E,B
  10314.         LD A,(DE)
  10315.         LD (SDPAGE),A
  10316.         EXX
  10317.         LD DE,BUFFER+0X00FF
  10318.         LD A,C
  10319.         CALL MLDD
  10320.         POP DE
  10321.         POP BC
  10322.         PUSH HL
  10323.         EXX
  10324.         LD E,C
  10325.         LD A,(DE)
  10326.         LD (SDPAGE),A
  10327.         EXX
  10328.         LD HL,BUFFER+0X00FF
  10329.         LD A,C
  10330.         CALL MLDD
  10331.         POP HL
  10332.         JP PE,MHA
  10333. MHD     BIT 7,H
  10334.         JR NZ,MHB
  10335.         SET 7,H
  10336.         EXX
  10337.         DEC B
  10338.         JP MHC
  10339. MHB     SET 7,D
  10340.         EXX
  10341.         DEC C
  10342. MHC     POP DE
  10343.         OR A
  10344.         SBC HL,DE
  10345.         LD A,IXL
  10346.         SBC A,0X00
  10347.         LD IXL,A
  10348.         OR L
  10349.         OR H
  10350.         JP NZ,MH1
  10351.         POP BC
  10352.         POP DE
  10353.         RET
  10354.  
  10355. ;PROCEDURE: LOAD MEMORY BLOCK
  10356. ;INPUT    : A,HL  - SOURCE LOGICAL ADRESS
  10357. ;           DE    - DESTINATION PHISICAL ADRESS (LOW RAM)
  10358. ;           BC    - BLOCK LENGTH
  10359. ;USES     : TYPE 2 REGS,RAMPG,CPAGE,SYSTEM
  10360. ;EFFECT   : MOVES MEMORY BLOCK FROM HIGH MEMORY TO LOW
  10361. ;               SWITCH TO PAGE 0
  10362.  
  10363. LDMEM   DB 0XCB,0X34;SLI H
  10364.         RLA
  10365.         RRC H
  10366. LM1     LD IXL,A
  10367.         PUSH HL
  10368.         LD L,A
  10369.         LD H,HIGH (RAMPG)
  10370.         LD A,(HL)
  10371.         POP HL
  10372.         LD (SDPAGE),A
  10373.         ADD HL,BC
  10374.         JR NC,LM2
  10375.         JR NZ,LM4
  10376. LM2     SBC HL,BC
  10377. LM3     LD A,C
  10378.         CALL MLDI
  10379.         JP PE,LM3
  10380.         RET
  10381.  
  10382. LM4     XOR A
  10383.         SBC HL,BC
  10384. LM5     LD A,L
  10385.         NEG
  10386.         CALL MLDI
  10387.         BIT 7,H
  10388.         JP NZ,LM5
  10389.         SET 7,H
  10390.         LD A,IXL
  10391.         INC A
  10392.         JP  LM1
  10393.  
  10394. ;PROCEDURE: SAVE MEMORY BLOCK
  10395. ;INPUT    : A,DE  - DESTINATION LOGICAL ADRESS
  10396. ;           HL    - SOURCE PHISICAL ADRESS (LOW RAM)
  10397. ;           BC    - BLOCK LENGTH
  10398. ;USES     : TYPE 2 REGS,RAMPG,CPAGE,SYSTEM
  10399. ;EFFECT   : MOVES MEMORY BLOCK FROM LOW MEMORY TO HIGH
  10400. ;               SWITCH TO PAGE 0
  10401.  
  10402. SVMEM   DB 0XCB,0X32;SLI D
  10403.         RLA
  10404.         RRC D
  10405. SM1     LD IXL,A
  10406.         PUSH HL
  10407.         LD L,A
  10408.         LD H,HIGH (RAMPG)
  10409.         LD A,(HL)
  10410.         POP HL
  10411.         LD (SDPAGE),A
  10412.         EX DE,HL
  10413.         ADD HL,BC
  10414.         JR NC,SM2
  10415.         JR NZ,SM4
  10416. SM2     SBC HL,BC
  10417.         EX DE,HL
  10418. SM3     LD A,C
  10419.         CALL MLDI
  10420.         JP PE,SM3
  10421.         RET
  10422.  
  10423. SM4     XOR A
  10424.         SBC HL,BC
  10425.         EX DE,HL
  10426. SM5     LD A,E
  10427.         NEG
  10428.         CALL MLDI
  10429.         BIT 7,D
  10430.         JP NZ,SM5
  10431.         SET 7,D
  10432.         LD A,IXL
  10433.         INC A
  10434.         JP  SM1
  10435.  
  10436. ;INCLUDE "ENGINE_L.a80"
  10437. ENGINE  LD HL,(QTFREE)
  10438.         LD H,HIGH (QTMAP)
  10439.         LD A,L
  10440.         AND 0X1C
  10441.         LD L,A
  10442.         LD (QTFREE),HL
  10443.         LD A,(HL)
  10444.         OR A
  10445.         JP NZ,ENG_FUL
  10446.         LD A,(CHANSFX+0X000)
  10447.         RLCA
  10448.         RR C
  10449.         LD A,(CHANSFX+0X040)
  10450.         RLCA
  10451.         RR C
  10452.         LD A,(CHANSFX+0X080)
  10453.         RLCA
  10454.         RR C
  10455.         LD A,(CHANSFX+0X0C0)
  10456.         RLCA
  10457.         RR C
  10458.         LD A,(CHANSFX+0X100)
  10459.         RLCA
  10460.         RR C
  10461.         LD A,(CHANSFX+0X140)
  10462.         RLCA
  10463.         RR C
  10464.         LD A,(CHANSFX+0X180)
  10465.         RLCA
  10466.         RR C
  10467.         LD A,(CHANSFX+0X1C0)
  10468.         RLCA
  10469.         RR C
  10470.         LD A,(GSCHNS)
  10471.         AND C
  10472.         LD C,A
  10473.         LD (FXCHNS),A
  10474.         JR NZ,ENG_01
  10475.         LD A,(MTSTAT)
  10476.         BIT 6,A
  10477.         RET NZ
  10478.         OR A
  10479.         JP M,ENG_00
  10480.         LD A,(MODULE)
  10481.         OR A
  10482.         JR NZ,ENG_01
  10483. ENG_00  XOR A
  10484.         LD (PROCESS),A
  10485.         RET
  10486.  
  10487. ENG_01  LD A,(MODSWCH)
  10488.         OR A
  10489.         JR NZ,ENG_03
  10490.         LD A,(MODULE)
  10491.         OR A
  10492.         JR Z,ENG_03
  10493.         LD A,0X01
  10494.         LD (SGENOFF),A
  10495.         LD A,(TCKLEFT+1)
  10496.         CP 0X02
  10497.         JR NC,ENG_05
  10498.         OR A
  10499.         LD A,(TCKLEFT)
  10500.         JR Z,ENG_04
  10501.         SUB 0X80
  10502.         JR NC,ENG_05
  10503.         JP ENG_04
  10504.  
  10505. ENG_03  LD A,0X01
  10506.         LD (SGENOFF),A
  10507.         LD A,(FXTICK+1)
  10508.         CP 0X02
  10509.         JR NC,ENG_05
  10510.         OR A
  10511.         LD A,(FXTICK)
  10512.         JR Z,ENG_04
  10513.         SUB 0X80
  10514.         JR NC,ENG_05
  10515. ENG_04  NEG
  10516.         LD (SGENOFF),A
  10517. ENG_05  XOR A
  10518.         LD (CHANNEL),A
  10519.         OR C
  10520.         JR Z,ENG_07
  10521.         LD IY,CHANSFX
  10522.         SRL C
  10523. ENG_06  PUSH BC
  10524.         CALL C,GEN
  10525.         LD BC,CHANLEN
  10526.         ADD IY,BC
  10527.         POP BC
  10528.         SRL C
  10529.         JR C,ENG_06
  10530.         JR NZ,ENG_06
  10531.  
  10532. ENG_07  CALL QUANTUM
  10533.         XOR A
  10534.         LD (CPAGE),A
  10535.         OUT (MPAG),A
  10536.         RET
  10537.  
  10538. ENG_80  LD A,(SGENOFF)
  10539.         LD E,A
  10540.         LD D,0X00
  10541.         LD HL,(FXTICK)
  10542.         OR A
  10543.         SBC HL,DE
  10544.         JR Z,ENG_81
  10545.         JR C,ENG_81
  10546.         LD (FXTICK),HL
  10547.         JP ENG_82
  10548.        
  10549. ENG_81
  10550. ENG_82  LD A,(MODSWCH)
  10551.         OR A
  10552.         JR NZ,$
  10553.         LD A,(MODULE)
  10554.         OR A
  10555.         JR Z,$
  10556.         LD HL,(TCKLEFT)
  10557.         SBC HL,DE
  10558.         LD (TCKLEFT),HL
  10559.         JR NZ,ENG_83
  10560. ENG_83
  10561. ENG_FUL LD A,(PLAYING)
  10562.         OR A
  10563.         RET NZ
  10564.         DI
  10565.         XOR A
  10566.         LD (FILLALL),A
  10567.         CALL QTPLAY
  10568.         RET
  10569.  
  10570. ;INCLUDE "FX_H.a80"
  10571.  
  10572. FXCHK_  LD HL,FXJP2
  10573.         JP FXCHK__
  10574.        
  10575. FXCHK   LD HL,FXJP1
  10576. FXCHK__ LD A,(IY+CHCOM)
  10577.         AND 0X1F
  10578.         ADD A,A
  10579.         ADD A,L
  10580.         LD L,A
  10581.         LD A,(HL)
  10582.         INC L
  10583.         LD H,(HL)
  10584.         LD L,A
  10585.         LD A,(IY+CHPARM)
  10586.         JP (HL)
  10587.  
  10588. FXE_    LD HL,FXEJP2
  10589.         JP FXE__
  10590.        
  10591. FXE     LD HL,FXEJP1
  10592. FXE__   RRCA
  10593.         RRCA
  10594.         RRCA
  10595.         RRCA
  10596.         AND 0X0F
  10597.         ADD A,A
  10598.         ADD A,L
  10599.         LD L,A
  10600.         LD A,(HL)
  10601.         INC L
  10602.         LD H,(HL)
  10603.         LD L,A
  10604.         LD A,(IY+CHPARM)
  10605.         AND 0X0F
  10606.         JP (HL)
  10607.  
  10608. FXRET   RET
  10609.  
  10610. FXNOP   LD L,(IY+CHPERL)
  10611.         LD H,(IY+CHPERH)
  10612. EFXNOP2 CALL EFXCNV
  10613.         LD (IY+CHFRQL),L
  10614.         LD (IY+CHFRQH),H
  10615.         RET
  10616.  
  10617. ;---patched
  10618. EFXCNV  LD A,H
  10619.         CP 0X04
  10620.         JR NC,EFXCNV1
  10621.         XOR A
  10622.         LD (CPAGE),A
  10623.         OUT (MPAG),A
  10624.         ADD HL,HL
  10625.         LD A,H
  10626.         ADD A,0XF8
  10627.         LD H,A
  10628.         LD A,(HL)
  10629.         INC HL
  10630.         LD H,(HL)
  10631.         LD L,A
  10632.         RET
  10633.  
  10634. EFXCNV1 PUSH HL
  10635.  
  10636.         LD E,L
  10637.         LD D,H
  10638.         ADD HL,HL
  10639.         ADD HL,HL
  10640.         ADD HL,DE
  10641.         XOR A   ;HL A
  10642.         LD C,A  ;DE C
  10643.         SRL D           ;/2
  10644.         RR E
  10645.         RR C
  10646.         ADD A,C
  10647.         ADC HL,DE               ;+/2
  10648.         SRL D           ;/4
  10649.         RR E
  10650.         RR C
  10651.         SRL D           ;/8
  10652.         RR E
  10653.         RR C
  10654.         ADD A,C
  10655.         ADC HL,DE               ;+/8
  10656.         SRL D           ;/16
  10657.         RR E
  10658.         RR C
  10659.         SRL D           ;/32
  10660.         RR E
  10661.         RR C
  10662.         SRL D           ;/64
  10663.         RR E
  10664.         RR C
  10665.         SRL D           ;/128
  10666.         RR E
  10667.         RR C
  10668.         SRL D           ;/256
  10669.         RR E
  10670.         RR C
  10671.         ADD A,C
  10672.         ADC HL,DE               ;+/256
  10673.         SRL E           ;/512
  10674.         RR C
  10675.         ADD A,C
  10676.         ADC HL,DE               ;+/512
  10677.         SRL E           ;/1024
  10678.         RR C
  10679.         ADD A,C
  10680.         ADC HL,DE               ;+/1024
  10681.         SRL E           ;/2048
  10682.         RR C
  10683.         SRL E           ;/4096
  10684.         RR C
  10685.         ADD A,C
  10686.         ADC HL,DE               ;+/4096
  10687.         SRL H
  10688.         RR L
  10689.         SRL H
  10690.         RR L
  10691.         SRL H
  10692.         RR L
  10693.         JR NC,EFXCNV2
  10694.         INC HL
  10695. EFXCNV2 POP DE
  10696.         ADD HL,DE
  10697.         ADD HL,DE
  10698.         RET
  10699.      
  10700.         INC A
  10701.         RR L
  10702.         JR NC,TUT00
  10703.         INC HL
  10704. TUT00   POP DE
  10705.         ADD HL,DE
  10706.         ADD HL,DE
  10707.         RET
  10708.  
  10709. ARPTAB  DB 0,1,2,0,1,2,0,1,2,0
  10710.         DB 1,2,0,1,2,0,1,2,0,1,2
  10711.         DB 0,1,2,0,1,2,0,1,2,0
  10712.         DB 1,2,0,1,2,0,1,2,0,1,2
  10713.  
  10714. FX0     OR A
  10715.         JP Z,FXNOP
  10716.         LD B,A
  10717.         LD A,(MTCOUNT)
  10718.         LD HL,ARPTAB
  10719.         ADD A,L
  10720.         LD L,A
  10721.         LD A,H
  10722.         ADC A,0X00
  10723.         LD H,A
  10724.         LD A,(HL)
  10725.         OR A
  10726.         JP Z,FXNOP
  10727.         PUSH AF
  10728.         PUSH BC
  10729.         CALL NOTEFND
  10730.         POP BC
  10731.         POP AF
  10732.         DEC A
  10733.         LD A,B
  10734.         JR NZ,FX0_2
  10735.         RRCA
  10736.         RRCA
  10737.         RRCA
  10738.         RRCA
  10739. FX0_2   AND 0X0F
  10740.         ADD A,E
  10741.         LD E,A
  10742.         CP 96
  10743.         RET NC
  10744.         CALL GETFRQ
  10745.         LD (IY+CHFRQL),L
  10746.         LD (IY+CHFRQH),H
  10747.         RET
  10748.  
  10749. FX1     LD E,A
  10750.         LD D,0X00
  10751.         LD L,(IY+CHPERL)
  10752.         LD H,(IY+CHPERH)
  10753.         OR A
  10754.         SBC HL,DE
  10755.         JR NC,FX1_2
  10756.         LD HL,0X0000
  10757. FX1_2   PUSH HL
  10758.         LD HL,113
  10759. FX1_8   POP DE
  10760.         OR A
  10761.         SBC HL,DE
  10762.         JR C,FX1_9
  10763.         ADD HL,DE
  10764.         EX DE,HL
  10765. FX1_9   SET 7,(IY+CHFLAGS)
  10766.         LD (IY+CHPERL),E
  10767.         LD (IY+CHPERH),D
  10768.         PUSH DE
  10769.         EX DE,HL
  10770.         CALL EFXCNV
  10771.         LD (IY+CHFRQL),L
  10772.         LD (IY+CHFRQH),H
  10773.         POP DE
  10774.         CALL NOTEFND
  10775.         LD (IY+CHREAL),A
  10776.         RET NC
  10777.         LD (IY+CHNOTE),A
  10778.         RES 7,(IY+CHFLAGS)
  10779.         RET
  10780.  
  10781. FX2     LD E,A
  10782.         LD D,0X00
  10783.         LD L,(IY+CHPERL)
  10784.         LD H,(IY+CHPERH)
  10785.         ADD HL,DE
  10786.         JR NC,FX2_2
  10787.         LD HL,0XFFFF
  10788. FX2_2   PUSH HL
  10789.         LD HL,856
  10790. FX2_8   POP DE
  10791.         OR A
  10792.         SBC HL,DE
  10793.         JR NC,FX2_9
  10794.         ADD HL,DE
  10795.         EX DE,HL
  10796. FX2_9   SET 7,(IY+CHFLAGS)
  10797.         LD (IY+CHPERL),E
  10798.         LD (IY+CHPERH),D
  10799.         PUSH DE
  10800.         EX DE,HL
  10801.         CALL EFXCNV
  10802.         LD (IY+CHFRQL),L
  10803.         LD (IY+CHFRQH),H
  10804.         POP DE
  10805.         CALL NOTEFND
  10806.         LD (IY+CHREAL),A
  10807.         RET NC
  10808.         LD (IY+CHNOTE),A
  10809.         RES 7,(IY+CHFLAGS)
  10810.         RET
  10811.  
  10812. FX3     OR A
  10813.         JR Z,FX3_1
  10814.         LD (IY+CHPORT),A
  10815. FX3_1   LD A,(IY+CHWNT)
  10816.         CP 96
  10817.         RET NC
  10818.         LD E,A
  10819.         CALL GETPER
  10820.         EX DE,HL
  10821.         LD L,(IY+CHPERL)
  10822.         LD H,(IY+CHPERH)
  10823.         OR A
  10824.         SBC HL,DE
  10825.         JR Z,FX3_9
  10826.         ADD HL,DE
  10827.         LD C,(IY+CHPORT)
  10828.         LD B,0X00
  10829.         JR C,FX3_5
  10830.         SBC HL,BC
  10831.         JR C,FX3_9
  10832.         SBC HL,DE
  10833.         JR C,FX3_9
  10834. FX3_2   ADD HL,DE
  10835.         LD (IY+CHPERL),L
  10836.         LD (IY+CHPERH),H
  10837.         BIT 2,(IY+CHFLAGS)
  10838.         CALL Z,EFXCNV
  10839.         BIT 2,(IY+CHFLAGS)
  10840.         JR Z,FX3_3
  10841.         EX DE,HL
  10842.         CALL NOTEFND
  10843.         LD E,A
  10844.         CALL GETFRQ
  10845. FX3_3   LD (IY+CHFRQL),L
  10846.         LD (IY+CHFRQH),H
  10847.         RET
  10848.  
  10849. FX3_5   ADD HL,BC
  10850.         JR C,FX3_9
  10851.         SBC HL,DE
  10852.         JR C,FX3_2
  10853. FX3_9   LD E,(IY+CHWNT)
  10854.         LD (IY+CHNOTE),E
  10855.         LD (IY+CHREAL),E
  10856.         CALL GETPER
  10857.         LD (IY+CHPERL),L
  10858.         LD (IY+CHPERH),H
  10859.         CALL GETFRQ
  10860.         LD (IY+CHFRQL),L
  10861.         LD (IY+CHFRQH),H
  10862.         RES 7,(IY+CHFLAGS)
  10863.         LD (IY+CHCOM),0X00
  10864.         LD (IY+CHPARM),0X00
  10865.         LD (IY+CHWNT),0X7F
  10866.         RET
  10867.  
  10868. FX3_    RET
  10869.  
  10870. FX4     PUSH DE
  10871.         PUSH BC
  10872.         OR A
  10873.         JR Z,FX4_3
  10874.         LD L,A
  10875.         LD H,(IY+CHVIBCM)
  10876.         AND 0X0F
  10877.         JR Z,FX4_1
  10878.         XOR H
  10879.         AND 0X0F
  10880.         XOR H
  10881.         LD H,A
  10882. FX4_1   LD A,L
  10883.         AND 0XF0
  10884.         JR Z,FX4_2
  10885.         XOR H
  10886.         AND 0XF0
  10887.         XOR H
  10888.         LD H,A
  10889. FX4_2   LD (IY+CHVIBCM),H
  10890. FX4_3   LD D,(IY+CHVIBPS)
  10891.         LD A,D
  10892.         AND 0X03
  10893.         JR Z,FX4_5
  10894.         CP 0X03
  10895.         JR NZ,FX4_A
  10896.         LD A,R
  10897.         AND 0X03
  10898.         JR Z,FX4_5
  10899.         CP 0X03
  10900.         JR Z,FX4_5
  10901. FX4_A   DEC A
  10902.         JR Z,FX4_4
  10903.         LD E,0XFF
  10904.         JP FX4_6
  10905.  
  10906. FX4_4   LD A,D
  10907.         AND 0X7C
  10908.         RLCA
  10909.         LD E,A
  10910.         BIT 7,D
  10911.         JR NZ,FX4_6
  10912.         LD A,0XF8
  10913.         SUB E
  10914.         LD E,A
  10915.         JP FX4_6
  10916.  
  10917. FX4_5   LD A,D
  10918.         RRCA
  10919.         RRCA
  10920.         AND 0X1F
  10921.         LD HL,VIBTB
  10922.         ADD A,L
  10923.         LD L,A
  10924.         LD E,(HL)
  10925. FX4_6   LD A,(IY+CHVIBCM)
  10926.         AND 0X0F
  10927.         JR Z,FX4_9
  10928.         LD B,A
  10929.         LD HL,0X0000
  10930.         LD D,H
  10931. FX4_7   ADD HL,DE
  10932.         DJNZ FX4_7
  10933.         LD B,0X07
  10934.         LD A,L
  10935. FX4_8   SRL H
  10936.         RRA
  10937.         DJNZ FX4_8
  10938.         ADC A,D
  10939.         LD L,A
  10940.         LD H,0X00
  10941.         BIT 7,(IY+CHVIBPS)
  10942.         JR Z,FX4_9
  10943.         DEC H
  10944.         CPL
  10945.         LD L,A
  10946.         INC HL
  10947. FX4_9   LD E,(IY+CHPERL)
  10948.         LD D,(IY+CHPERH)
  10949.         ADD HL,DE
  10950.         CALL EFXNOP2
  10951.         LD A,(IY+CHVIBCM)
  10952.         AND 0XF0
  10953.         RRCA
  10954.         RRCA
  10955.         ADD A,(IY+CHVIBPS)
  10956.         LD (IY+CHVIBPS),A
  10957.         POP BC
  10958.         POP DE
  10959.         RET
  10960.  
  10961. FX5     CALL FXA
  10962.         JP FX3_1
  10963.  
  10964. FX6     CALL FXA
  10965.         PUSH DE
  10966.         PUSH BC
  10967.         JP FX4_3
  10968.  
  10969. FX7     PUSH DE
  10970.         PUSH BC
  10971.         OR A
  10972.         JR Z,FX7_3
  10973.         LD L,A
  10974.         LD H,(IY+CHTRMCM)
  10975.         AND 0X0F
  10976.         JR Z,FX7_1
  10977.         XOR H
  10978.         AND 0X0F
  10979.         XOR H
  10980.         LD H,A
  10981. FX7_1   LD A,L
  10982.         AND 0XF0
  10983.         JR Z,FX7_2
  10984.         XOR H
  10985.         AND 0XF0
  10986.         XOR H
  10987.         LD H,A
  10988. FX7_2   LD (IY+CHTRMCM),H
  10989. FX7_3   LD D,(IY+CHTRMPS)
  10990.         LD A,D
  10991.         AND 0X03
  10992.         JR Z,FX7_5
  10993.         CP 0X03
  10994.         JR NZ,FX7_A
  10995.         LD A,R
  10996.         AND 0X03
  10997.         JR Z,FX7_5
  10998.         CP 0X03
  10999.         JR Z,FX7_5
  11000. FX7_A   DEC A
  11001.         JR Z,FX7_4
  11002.         LD E,0XFF
  11003.         JP FX7_6
  11004.  
  11005. FX7_4   LD A,D
  11006.         AND 0X7C
  11007.         RLCA
  11008.         LD E,A
  11009.         BIT 7,D
  11010.         JR NZ,FX7_6
  11011.         LD A,0XF8
  11012.         SUB E
  11013.         LD E,A
  11014.         JP FX7_6
  11015.  
  11016. FX7_5   LD A,D
  11017.         RRCA
  11018.         RRCA
  11019.         AND 0X1F
  11020.         LD HL,VIBTB
  11021.         ADD A,L
  11022.         LD L,A
  11023.         LD E,(HL)
  11024. FX7_6   LD A,(IY+CHTRMCM)
  11025.         AND 0X0F
  11026.         JR Z,FX7_9
  11027.         LD B,A
  11028.         LD HL,0X0000
  11029.         LD D,H
  11030. FX7_7   ADD HL,DE
  11031.         DJNZ FX7_7
  11032.         LD B,0X06
  11033.         LD A,L
  11034. FX7_8   SRL H
  11035.         RRA
  11036.         DJNZ FX7_8
  11037.         ADC A,D
  11038.         BIT 7,(IY+CHTRMPS)
  11039.         JR Z,FX7_9
  11040.         LD L,A
  11041.         LD A,(IY+CHVOL)
  11042.         SUB L
  11043.         JR NC,FX7_B
  11044.         XOR A
  11045.         JP FX7_B
  11046.  
  11047. FX7_9   ADD A,(IY+CHVOL)
  11048.         CP 0X40
  11049.         JR C,FX7_B
  11050.         LD A,0X40
  11051. FX7_B   CP (IY+CHMVOL)
  11052.         LD (IY+CHMVOL),A
  11053.         JR Z,FX7_C
  11054.         SET 0,(IY+CHSTAT)
  11055. FX7_C   LD A,(IY+CHTRMCM)
  11056.         AND 0XF0
  11057.         RRCA
  11058.         RRCA
  11059.         ADD A,(IY+CHTRMPS)
  11060.         LD (IY+CHTRMPS),A
  11061.         POP BC
  11062.         POP DE
  11063.         RET
  11064.  
  11065. FX9     OR A
  11066.         RET
  11067.  
  11068.         JR Z,FX9_1
  11069.         LD (IY+CHOFFST),A
  11070. FX9_1   LD H,(IY+CHOFFST)
  11071.         LD L,0X00
  11072. FXA     OR A
  11073.         RET Z
  11074.         LD L,A
  11075.         LD A,(IY+CHVOL)
  11076.         LD H,A
  11077.         LD A,L
  11078.         AND 0XF0
  11079.         JR Z,FXA_1
  11080.         RRCA
  11081.         RRCA
  11082.         RRCA
  11083.         RRCA
  11084.         ADD A,H
  11085.         CP 0X40
  11086.         JR C,FXA_2
  11087.         LD A,0X40
  11088.         JP FXA_2
  11089.        
  11090. FXA_1   LD A,H
  11091.         SUB L
  11092.         JR NC,FXA_2
  11093.         LD A,0X00
  11094.         LD (IY+CHCOM),A
  11095.         LD (IY+CHPARM),A
  11096. FXA_2   LD (IY+CHVOL),A
  11097.         CP (IY+CHMVOL)
  11098.         LD (IY+CHMVOL),A
  11099.         RET Z
  11100.         SET 0,(IY+CHSTAT)
  11101.         RET
  11102.  
  11103. FXB     DEC A
  11104.         LD (MTSNGPS),A
  11105.         ;CALL CP_END_MOD
  11106.         XOR A
  11107.         LD (MTBRKPS),A
  11108.         INC A
  11109.         LD (MTJMPFL),A
  11110.         RET
  11111.        
  11112. FXC     CP 0X40
  11113.         JR C,FXC_1
  11114.         LD A,0X40
  11115. FXC_1   LD (IY+CHVOL),A
  11116.         CP (IY+CHMVOL)
  11117.         LD (IY+CHMVOL),A
  11118.         RET Z
  11119.         SET 0,(IY+CHSTAT)
  11120.         RET
  11121.  
  11122. FXD     LD L,A
  11123.         AND 0XF0
  11124.         RRCA
  11125.         LD H,A
  11126.         RRCA
  11127.         RRCA
  11128.         ADD A,H
  11129.         LD H,A
  11130.         LD A,L
  11131.         AND 0X0F
  11132.         ADD A,H
  11133.         CP 0X40
  11134.         JR C,FXD_1
  11135.         XOR A
  11136. FXD_1   LD (MTBRKPS),A
  11137.         LD A,0X01
  11138.         LD (MTJMPFL),A
  11139.         RET
  11140.  
  11141. FXF     OR A
  11142.         JR Z,FXF_5
  11143.         CP 0X20
  11144.         JR NC,FXF_1
  11145. FXF_0   LD (MTSPEED),A
  11146.         RET
  11147.        
  11148. FXF_1   LD (MTBPM),A
  11149.         SUB 0X20
  11150.         LD HL,BPMTAB
  11151.         ADD A,A
  11152.         JR NC,FXF_3
  11153.         INC H
  11154. FXF_3   ADD A,L
  11155.         LD L,A
  11156.         JR NC,FXF_4
  11157.         INC H
  11158. FXF_4   LD A,(HL)
  11159.         INC HL
  11160.         LD H,(HL)
  11161.         LD L,A
  11162.         LD (TICKLEN),HL
  11163.         LD (TCKLEFT),HL
  11164.         RET
  11165.  
  11166. FXF_5
  11167. ;        LD HL,MTSTAT
  11168. ;---patched
  11169.         JP Patch2x
  11170. ;---
  11171.         SET 7,(HL)
  11172.         RET
  11173.  
  11174. FXE0    AND 0X01
  11175.         LD (MTFILTR),A
  11176.         RET
  11177.  
  11178. FXE3    RES 2,(IY+CHFLAGS)
  11179.         OR A
  11180.         RET Z
  11181.         SET 2,(IY+CHFLAGS)
  11182.         RET
  11183.  
  11184. FXE4    RES 1,(IY+CHFLAGS)
  11185.         BIT 2,A
  11186.         JR Z,FXE4_2
  11187.         SET 1,(IY+CHFLAGS)
  11188. FXE4_2  AND 0X03
  11189.         LD L,A
  11190.         LD A,(IY+CHVIBPS)
  11191.         AND 0XFC
  11192.         OR L
  11193.         LD (IY+CHVIBPS),A
  11194.         RET
  11195.  
  11196. FXE5    ADD A,A
  11197.         LD (IY+CHFINE),A
  11198.         RET
  11199.  
  11200. FXE6    OR A
  11201.         JR Z,FXE6_3
  11202.         INC (IY+CHLPCNT)
  11203.         DEC (IY+CHLPCNT)
  11204.         JR Z,FXE6_2
  11205.         DEC (IY+CHLPCNT)
  11206.         RET Z
  11207. FXE6_1  LD A,(IY+CHPATPS)
  11208.         LD (MTBRKPS),A
  11209.         LD A,0X01
  11210.         LD (MTBRKFL),A
  11211.         RET
  11212.        
  11213. FXE6_2  LD (IY+CHLPCNT),A
  11214.         JP FXE6_1
  11215.        
  11216. FXE6_3  LD A,(MTPATPS)
  11217.         LD (IY+CHPATPS),A
  11218.         RET
  11219.  
  11220. FXE7    RES 0,(IY+CHFLAGS)
  11221.         BIT 2,A
  11222.         JR Z,FXE7_2
  11223.         SET 0,(IY+CHFLAGS)
  11224. FXE7_2  AND 0X03
  11225.         LD L,A
  11226.         LD A,(IY+CHTRMPS)
  11227.         AND 0XFC
  11228.         OR L
  11229.         LD (IY+CHTRMPS),A
  11230.         RET
  11231.  
  11232. FXE9    OR A
  11233.         RET Z
  11234.         LD L,A
  11235.         LD A,(MTCOUNT)
  11236. FXE9_1  SUB L
  11237.         JR NC,FXE9_1
  11238.         ADD A,L
  11239.         RET NZ
  11240.         CALL GETSMP
  11241.         RET
  11242.  
  11243. FXEA    RLCA
  11244.         RLCA
  11245.         RLCA
  11246.         RLCA
  11247.         JP FXA
  11248.  
  11249. FXEC    LD HL,MTCOUNT
  11250.         CP (HL)
  11251.         RET NZ
  11252.         XOR A
  11253.         LD (IY+CHVOL),A
  11254.         CP (IY+CHMVOL)
  11255.         LD (IY+CHMVOL),A
  11256.         RET Z
  11257.         SET 0,(IY+CHSTAT)
  11258.         RET
  11259.  
  11260. FXED    LD HL,MTCOUNT
  11261.         CP (HL)
  11262.         RET NZ
  11263.         CALL GETSMP
  11264.         RET
  11265.  
  11266. FXEE    LD HL,MTPDT2
  11267.         INC (HL)
  11268.         DEC (HL)
  11269.         RET NZ
  11270.         INC A
  11271.         LD (MTPDT),A
  11272.         RET
  11273.  
  11274. ;INCLUDE "VOL_H.a80"
  11275.  
  11276. ;VOLUME CALCULATION FOR MODULES AND FX
  11277.  
  11278. CALCVOL RES 0,(IY+CHSTAT)
  11279.         LD DE,0XFC00
  11280.         LD A,(IY+CHMVOL)
  11281.         AND 0X7F
  11282.         JP Z,CALCV_Z
  11283.         CP 0X40
  11284.         CALL C,MUL64
  11285.         LD A,(IY+CHEVOL)
  11286.         OR A
  11287.         JP Z,CALCV_Z
  11288.         CP 0X40
  11289.         CALL C,MUL64
  11290.         LD A,(IY+CHFADVH)
  11291.         SRL A
  11292.         SRL A
  11293.         ADC A,0X00
  11294.         JP Z,CALCV_Z
  11295.         CP 0X40
  11296.         CALL C,MUL64
  11297.         BIT 6,(IY+CHSTAT)
  11298.         JP Z,CALCV_N
  11299.         LD A,(FXVOL)
  11300.         OR A
  11301.         JP Z,CALCV_Z
  11302.         CP 0X40
  11303.         CALL C,MUL64
  11304.         LD A,(FXMVOL)
  11305.         OR A
  11306.         JP Z,CALCV_Z
  11307.         CP 0X40
  11308.         CALL C,MUL64
  11309.         JP CALCV_X
  11310.  
  11311. CALCV_N LD A,(MTVOL)
  11312.         OR A
  11313.         JP Z,CALCV_Z
  11314.         CP 0X40
  11315.         CALL C,MUL64
  11316.         LD A,(MODVOL)
  11317.         OR A
  11318.         JP Z,CALCV_Z
  11319.         CP 0X40
  11320.         CALL C,MUL64
  11321. CALCV_X LD C,(IY+CHPAN)
  11322.         LD A,(IY+CHEPAN)
  11323.         SUB 0X20
  11324.         JR Z,CALCV_V
  11325.         JR NC,CALCV_I
  11326.         NEG
  11327. CALCV_I CP 0X20
  11328.         JR C,CALCV_U
  11329.         LD H,(IY+CHPAN)
  11330.         LD A,H
  11331.         OR A
  11332.         JP P,CALCV_Q
  11333.         NEG
  11334.         LD H,A
  11335.         JP CALCV_Q
  11336.  
  11337. CALCV_U RLCA
  11338.         RLCA
  11339.         RLCA
  11340.         LD L,A
  11341.         LD A,(IY+CHPAN)
  11342.         OR A
  11343.         JP P,CALCV_T
  11344.         NEG
  11345. CALCV_T LD B,A
  11346.         XOR A
  11347.         JP CALCV_M
  11348.  
  11349. CALCV_R ADD A,B
  11350. CALCV_E SRL B
  11351. CALCV_M SLA L
  11352.         JR C,CALCV_R
  11353.         JR NZ,CALCV_E
  11354.         SRL A
  11355.         LD H,A
  11356. CALCV_Q LD A,(IY+CHEPAN)
  11357.         CP 0X20
  11358.         JR C,CALCV_P
  11359.         LD A,C
  11360.         ADD A,H
  11361.         LD C,A
  11362.         JR NC,CALCV_V
  11363.         LD C,0XFF
  11364.         JP CALCV_W
  11365. CALCV_P LD A,C
  11366.         SUB H
  11367.         LD C,0X00
  11368.         JR C,CALCV_O
  11369.         LD C,A
  11370. CALCV_V LD A,C
  11371.         CP 0X80
  11372.         JR Z,CALCV_Y
  11373.         OR A
  11374.         JP M,CALCV_W
  11375. CALCV_O BIT 5,(IY+CHSTAT)
  11376.         JR Z,CALCV_Y
  11377.         SRL A
  11378.         CALL MUL64
  11379.         JP CALCV_Y
  11380.  
  11381. CALCV_W BIT 5,(IY+CHSTAT)
  11382.         JR NZ,CALCV_Y
  11383.         NEG
  11384.         SRL A
  11385.         CALL MUL64
  11386. CALCV_Y LD A,D
  11387.         SRL A
  11388.         SRL A
  11389.         ADC A,0X00
  11390. CALCV_Z LD C,A
  11391.         LD HL,VOLRQTB
  11392.         LD A,L
  11393.         ADD A,(IY+CHRDN)
  11394.         LD L,A
  11395.         LD (HL),C
  11396.         RET
  11397.  
  11398. MUL64   LD B,A
  11399.         LD HL,0X0000
  11400.         AND 0X0F
  11401.         JR Z,MUL64_F
  11402.         SLA B
  11403.         SLA B
  11404.         JP MUL64_E
  11405.  
  11406. MUL64_A ADD HL,DE
  11407. MUL64_E SRL D
  11408.         RR E
  11409.         SLA B
  11410.         JP C,MUL64_A
  11411.         JP NZ,MUL64_E
  11412.         EX DE,HL
  11413.         RET
  11414.  
  11415. MUL64_F LD A,B
  11416.         OR A
  11417.         JR Z,MUL64_S
  11418.         SRL D
  11419.         RR E
  11420.         CP 0X20
  11421.         RET Z
  11422.         LD L,E
  11423.         LD H,D
  11424.         SRL D
  11425.         RR E
  11426.         CP 0X10
  11427.         RET Z
  11428.         ADD HL,DE
  11429. MUL64_S EX DE,HL
  11430.         RET
  11431.  
  11432. ;INCLUDE "TEST_H.a80"
  11433.  
  11434. TCOM    IN A,(ZXSTAT)
  11435.         RRCA
  11436.         JR NC,TCOM
  11437. TCOM_   IN A,(ZXCMD)
  11438.         CP 0X20
  11439.         JP NC,COMINT2
  11440.         CP 0X01
  11441.         JR Z,TCOM
  11442.         OUT (CLRCBIT),A
  11443.         LD HL,TCOMTB
  11444.         ADD A,A
  11445.         ADD A,L
  11446.         LD L,A
  11447.         LD A,(HL)
  11448.         INC L
  11449.         LD H,(HL)
  11450.         LD L,A
  11451.         JP (HL)
  11452.  
  11453. TCOM2   LD HL,DAC0
  11454.         LD A,0X3F
  11455.         OUT (VOL1),A
  11456. TCOMDAC LD (HL),0
  11457.         LD A,(HL)
  11458.         LD IY,TCONT1
  11459.         JP TWAIT
  11460.        
  11461. TCONT1  LD (HL),0XFF
  11462.         LD A,(HL)
  11463.         LD IY,TCOMDAC
  11464.         JP TWAIT
  11465.  
  11466. TCOM3   LD HL,DAC1
  11467.         LD A,0X3F
  11468.         OUT (VOL2),A
  11469.         JR TCOMDAC
  11470.        
  11471. TCOM4   LD HL,DAC2
  11472.         LD A,0X3F
  11473.         OUT (VOL3),A
  11474.         JR TCOMDAC
  11475.        
  11476. TCOM5   LD HL,DAC3
  11477.         LD A,0X3F
  11478.         OUT (VOL4),A
  11479.         JR TCOMDAC
  11480.  
  11481. TCOM6   XOR A
  11482.         OUT (ZXDATWR),A
  11483.         LD IY,TCONT2
  11484.         JP TWAIT
  11485.        
  11486. TCONT2  LD A,0XFF
  11487.         OUT (ZXDATWR),A
  11488.         LD IY,TCOM6
  11489.         JP TWAIT
  11490.  
  11491. TCOM7   LD C,VOL1
  11492.         LD HL,DAC0
  11493.         LD (HL),0XFF
  11494.         LD A,(HL)
  11495. TCOMVOL LD A,0X00
  11496.         OUT (C),A
  11497.         LD IY,TCONT3
  11498.         JP TWAIT
  11499.        
  11500. TCONT3  LD A,0XFF
  11501.         OUT (C),A
  11502.         LD IY,TCOMVOL
  11503.         JP TWAIT
  11504.  
  11505. TCOM8   LD C,VOL2
  11506.         LD HL,DAC1
  11507.         LD (HL),0XFF
  11508.         LD A,(HL)
  11509.         JR TCOMVOL
  11510.        
  11511. TCOM9   LD C,VOL3
  11512.         LD HL,DAC2
  11513.         LD (HL),0XFF
  11514.         LD A,(HL)
  11515.         JR TCOMVOL
  11516.        
  11517. TCOMA   LD C,VOL4
  11518.         LD HL,DAC3
  11519.         LD (HL),0XFF
  11520.         LD A,(HL)
  11521.         JR TCOMVOL
  11522.  
  11523. TCOMB   LD HL,DAC0
  11524.         LD C,VOL1
  11525. TCOMTST LD B,0X3F
  11526. TCOMT4  OUT (C),B
  11527.         LD D,114
  11528. TCOMT5  LD (HL),0X00
  11529.         LD A,(HL)
  11530.         XOR A
  11531. TCOMT6  DEC A
  11532.         JR NZ,TCOMT6
  11533.         LD (HL),0XFF
  11534.         LD A,(HL)
  11535.         XOR A
  11536. TCOMT7  DEC A
  11537.         JR NZ,TCOMT7
  11538.         DEC D
  11539.         JR NZ,TCOMT5
  11540.         DEC B
  11541.         JP P,TCOMT4
  11542.         IN A,(ZXSTAT)
  11543.         RRCA
  11544.         JR NC,TCOMTST
  11545.         JP TCOM_
  11546.  
  11547. TCOMC   LD HL,DAC1
  11548.         LD C,VOL2
  11549.         JP TCOMTST
  11550.        
  11551. TCOMD   LD HL,DAC2
  11552.         LD C,VOL3
  11553.         JP TCOMTST
  11554.        
  11555. TCOME   LD HL,DAC3
  11556.         LD C,VOL4
  11557.         JP TCOMTST
  11558.  
  11559. TCOMF   LD A,0X3F
  11560.         OUT (VOL1),A
  11561.         OUT (VOL2),A
  11562.         OUT (VOL3),A
  11563.         OUT (VOL4),A
  11564.         LD B,0X00
  11565.         LD L,B
  11566. TCONT8  LD H,HIGH (DAC0)
  11567.         LD (HL),B
  11568.         LD A,(HL)
  11569.         INC H
  11570.         LD (HL),B
  11571.         LD A,(HL)
  11572.         INC H
  11573.         LD (HL),B
  11574.         LD A,(HL)
  11575.         INC H
  11576.         LD (HL),B
  11577.         LD A,(HL)
  11578.         DJNZ TCONT8
  11579.         IN A,(ZXSTAT)
  11580.         RRCA
  11581.         JP NC,TCONT8
  11582.         JP TCOM_
  11583.  
  11584. TCOM10  IN A,(ZXDATRD)
  11585.         OUT (ZXDATWR),A
  11586.         JP TCOM_
  11587.        
  11588. TCOM11  IN A,(ZXDATRD)
  11589.         JP TCOM_
  11590.  
  11591. TCOM12  LD HL,DAC0
  11592. TCONT9  LD A,0X3F
  11593.         OUT (VOL1),A
  11594.         OUT (VOL2),A
  11595.         OUT (VOL3),A
  11596.         OUT (VOL4),A
  11597. TCONTA  IN A,(ZXDATRD)
  11598.         LD (HL),A
  11599.         LD A,(HL)
  11600. TCONTB  DJNZ TCONTB
  11601.         LD (HL),0X00
  11602.         LD A,(HL)
  11603. TCONTC  DJNZ TCONTC
  11604.         IN A,(ZXSTAT)
  11605.         RRCA
  11606.         JP C,TCOM_
  11607.         JP TCONTA
  11608.  
  11609. TCOM13  LD HL,DAC1
  11610.         JR TCONT9
  11611.        
  11612. TCOM14  LD HL,DAC2
  11613.         JR TCONT9
  11614.        
  11615. TCOM15  LD HL,DAC3
  11616.         JR TCONT9
  11617.  
  11618. TWAIT   LD B,0X04
  11619. TWAIT1  LD DE,38686
  11620. TWAIT2  IN A,(ZXSTAT)
  11621.         RRCA
  11622.         JP C,TCOM_
  11623.         DEC DE
  11624.         LD A,D
  11625.         OR E
  11626.         JR NZ,TWAIT2
  11627.         DJNZ TWAIT2
  11628.         JP (IY)
  11629.  
  11630. ;INCLUDE "TABLES_H.a80"
  11631.  
  11632.         align 256
  11633.        
  11634. VIBTB   db 0X00,0X18,0X31,0X4A,0X61,0X78,0X8D,0XA1
  11635.         db 0XB4,0XC5,0XD4,0XE0,0XEB,0XF4,0XFA,0XFD
  11636.         db 0XFF,0XFD,0XFA,0XF4,0XEB,0XE0,0XD4,0XC5
  11637.         db 0XB4,0XA1,0X8D,0X78,0X61,0X4A,0X31,0X18
  11638.  
  11639. COMTABH DB LOW (COM20),LOW (COM21),LOW (COM22),LOW (COM23),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X20
  11640.         DB LOW (COMHZ),LOW (COMHZ),LOW (COM2A),LOW (COM2B),LOW (COM2C),LOW (COM2D),LOW (COM2E),LOW (COM2F)  ;0X28
  11641.         DB LOW (COM30),LOW (COM31),LOW (COM32),LOW (COM33),LOW (COM34),LOW (COM35),LOW (COM36),LOW (COM37)  ;0X30
  11642.         DB LOW (COM38),LOW (COM39),LOW (COM3A),LOW (COM3B),LOW (COM3C),LOW (COM3D),LOW (COM3E),LOW (COM3F)  ;0X38
  11643.         DB LOW (COM40),LOW (COM41),LOW (COM42),LOW (COMHZ),LOW (COMHZ),LOW (COM45),LOW (COM46),LOW (COM47)  ;0X40
  11644.         DB LOW (COM48),LOW (COM49),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X48
  11645.         DB LOW (COM50),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X50
  11646.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X58
  11647.         DB LOW (COM60),LOW (COM61),LOW (COM62),LOW (COM63),LOW (COM64),LOW (COM65),LOW (COM66),LOW (COM67)  ;0X60
  11648.         DB LOW (COM68),LOW (COM69),LOW (COM6A),LOW (COM6B),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X68 patched
  11649.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X70
  11650.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0X78
  11651.         DB LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80)  ;0X80
  11652.         DB LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80)  ;0X88
  11653.         DB LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80)  ;0X90
  11654.         DB LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80),LOW (COM80)  ;0X98
  11655.         DB LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0)  ;0XA0
  11656.         DB LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0),LOW (COMA0)  ;0XA8
  11657.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XB0
  11658.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XB8
  11659.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XC0
  11660.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XC8
  11661.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XD0
  11662.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XD8
  11663.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XE0
  11664.         DB LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ),LOW (COMHZ)  ;0XE8
  11665.  
  11666.         DUPL 0X10,0
  11667.         DUPL 0X20,0
  11668.  
  11669.         DB HIGH (COM20),HIGH (COM21),HIGH (COM22),HIGH (COM23),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X20
  11670.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COM2A),HIGH (COM2B),HIGH (COM2C),HIGH (COM2D),HIGH (COM2E),HIGH (COM2F)  ;0X28
  11671.         DB HIGH (COM30),HIGH (COM31),HIGH (COM32),HIGH (COM33),HIGH (COM34),HIGH (COM35),HIGH (COM36),HIGH (COM37)  ;0X30
  11672.         DB HIGH (COM38),HIGH (COM39),HIGH (COM3A),HIGH (COM3B),HIGH (COM3C),HIGH (COM3D),HIGH (COM3E),HIGH (COM3F)  ;0X38
  11673.         DB HIGH (COM40),HIGH (COM41),HIGH (COM42),HIGH (COMHZ),HIGH (COMHZ),HIGH (COM45),HIGH (COM46),HIGH (COM47)  ;0X40
  11674.         DB HIGH (COM48),HIGH (COM49),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X48
  11675.         DB HIGH (COM50),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X50
  11676.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X58
  11677.         DB HIGH (COM60),HIGH (COM61),HIGH (COM62),HIGH (COM63),HIGH (COM64),HIGH (COM65),HIGH (COM66),HIGH (COM67)  ;0X60
  11678.         DB HIGH (COM68),HIGH (COM69),HIGH (COM6A),HIGH (COM6B),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X68 patched
  11679.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X70
  11680.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0X78
  11681.         DB HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80)  ;0X80
  11682.         DB HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80)  ;0X88
  11683.         DB HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80)  ;0X90
  11684.         DB HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80),HIGH (COM80)  ;0X98
  11685.         DB HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0)  ;0XA0
  11686.         DB HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0),HIGH (COMA0)  ;0XA8
  11687.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XB0
  11688.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XB8
  11689.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XC0
  11690.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XC8
  11691.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XD0
  11692.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XD8
  11693.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XE0
  11694.         DB HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ),HIGH (COMHZ)  ;0XE8
  11695.  
  11696.         DUPL 0X10,0
  11697.  
  11698. FXJP1   DW FXNOP,FXNOP,FXNOP,FXNOP,FXNOP,FXNOP,FXNOP,FXNOP
  11699.         DW FXNOP,FXNOP,FXNOP,FXB  ,FXC  ,FXD  ,FXE  ,FXF
  11700.  
  11701.         DW FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET
  11702.         DW FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET
  11703.  
  11704. FXJP2   DW FX0  ,FX1  ,FX2  ,FX3  ,FX4  ,FX5  ,FX6  ,FX7
  11705.         DW FXRET,FXRET,FXA  ,FXRET,FXRET,FXRET,FXE_ ,FXRET
  11706.  
  11707.         DW FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET
  11708.         DW FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET
  11709.  
  11710. FXEJP1  DW FXE0,FX1,FX2,FXE3,FXE4,FXE5,FXE6,FXE7
  11711.         DW FXRET,FXE9,FXEA,FXA,FXEC,FXED,FXEE,FXRET
  11712.  
  11713. FXEJP2  DW FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET,FXRET
  11714.         DW FXRET,FXE9,FXRET,FXRET,FXEC,FXED,FXRET,FXRET
  11715.  
  11716. TCOMTB  DEFW TCOM,TCOM,TCOM2,TCOM3,TCOM4,TCOM5,TCOM6,TCOM7
  11717.         DEFW TCOM8,TCOM9,TCOMA,TCOMB,TCOMC,TCOMD,TCOME,TCOMF
  11718.         DEFW TCOM10,TCOM11,TCOM12,TCOM13,TCOM14,TCOM15,TCOM,TCOM
  11719.         DEFW TCOM,TCOM,TCOM,TCOM,TCOM,TCOM,TCOM,TCOM
  11720.  
  11721. ;INCLUDE "DIHO.a80"
  11722. ;RETURN: E - NOTE
  11723.  
  11724. NOTEID  LD HL,AMINOTE
  11725.         CALL DIH
  11726.         LD E,A
  11727.         RET
  11728.  
  11729. ;RETURN: E - NOTE
  11730.  
  11731. NOTEGET LD E,(IY+CHNOTE)
  11732.         LD A,E
  11733.         INC A
  11734.         RET NZ
  11735. NOTEFND LD HL,AMFRQTB
  11736.         LD A,(IY+CHFINE)
  11737.         RRA
  11738.         AND 0X0F
  11739.         JR Z,NOTEFN1
  11740.         LD C,A
  11741.         ADD A,A
  11742.         ADD A,C
  11743.         ADD A,A
  11744.         ADD A,A
  11745.         ADD A,A
  11746.         LD B,0
  11747.         RL B
  11748.         ADD A,A
  11749.         RL B
  11750.         ADD A,A
  11751.         RL B
  11752.         LD C,A
  11753.         ADD HL,BC
  11754. NOTEFN1 LD E,(IY+CHPERL)
  11755.         LD D,(IY+CHPERH)
  11756.         CALL DIH
  11757.         LD E,A
  11758.         RET
  11759.  
  11760. DIH     LD BC,0X005F
  11761.         PUSH HL
  11762.         INC HL
  11763.         LD A,(HL)
  11764.         DEC HL
  11765.         CP D
  11766.         JR C,DIHRGR
  11767.         JR NZ,DIH2
  11768.         LD A,(HL)
  11769.         CP E
  11770.         JR C,DIHRGR
  11771.         JR NZ,DIH2
  11772.         POP HL
  11773.         XOR A
  11774.         SCF
  11775.         RET
  11776.        
  11777. DIHRGR  LD E,(HL)
  11778.         INC HL
  11779.         LD D,(HL)
  11780.         POP HL
  11781.         XOR A
  11782.         RET
  11783.        
  11784. DIH2    LD A,0XBF
  11785.         ADD A,L
  11786.         LD L,A
  11787.         LD A,H
  11788.         ADC A,B
  11789.         LD H,A
  11790.         LD A,(HL)
  11791.         DEC HL
  11792.         CP D
  11793.         JR C,DIH3
  11794.         JR NZ,DIHRLO
  11795.         LD A,(HL)
  11796.         CP E
  11797.         JR C,DIH3
  11798.         JR NZ,DIHRLO
  11799.         POP HL
  11800.         LD A,C
  11801.         SCF
  11802.         RET
  11803.        
  11804. DIHRLO  LD E,(HL)
  11805.         INC HL
  11806.         LD D,(HL)
  11807.         POP HL
  11808.         LD A,C
  11809.         OR A
  11810.         RET
  11811.  
  11812. DIH3    POP HL
  11813. DIHLP   PUSH HL
  11814.         LD A,B
  11815.         ADD A,C
  11816.         AND 0XFE
  11817.         ADD A,L
  11818.         LD L,A
  11819.         LD A,H
  11820.         ADC A,0X00
  11821.         LD H,A
  11822.         INC HL
  11823.         LD A,(HL)
  11824.         DEC HL
  11825.         CP D
  11826.         JR C,DIHGR
  11827.         JR NZ,DIHLO
  11828.         LD A,(HL)
  11829.         CP E
  11830.         JR C,DIHGR
  11831.         JR NZ,DIHLO
  11832.         POP HL
  11833.         LD A,B
  11834.         ADD A,C
  11835.         SRL A
  11836.         SCF
  11837.         RET
  11838.  
  11839. DIHGR   LD A,B
  11840.         ADD A,C
  11841.         SRL A
  11842.         LD C,A
  11843.         POP HL
  11844.         JP DIHLP
  11845.  
  11846. DIHLO   LD A,B
  11847.         ADD A,C
  11848.         SRL A
  11849.         CP B
  11850.         LD B,A
  11851.         JR Z,DIHMID
  11852.         POP HL
  11853.         JP DIHLP
  11854.  
  11855. DIHMID  PUSH HL
  11856.         PUSH BC
  11857.         LD A,(HL)
  11858.         INC HL
  11859.         SUB E
  11860.         LD C,A
  11861.         LD A,(HL)
  11862.         INC HL
  11863.         SBC A,D
  11864.         LD B,A
  11865.         LD A,(HL)
  11866.         INC HL
  11867.         LD H,(HL)
  11868.         LD L,A
  11869.         EX DE,HL
  11870.         OR A
  11871.         SBC HL,DE
  11872.         LD A,H
  11873.         CP B
  11874.         JR C,DIHFLO
  11875.         JR NZ,DIHFGR
  11876.         LD A,L
  11877.         CP C
  11878.         JR C,DIHFLO
  11879.         JR NZ,DIHFGR
  11880. DIHFLO  POP BC
  11881.         POP HL
  11882.         POP HL
  11883.         LD A,C
  11884.         OR A
  11885.         RET
  11886.        
  11887. DIHFGR  POP BC
  11888.         POP HL
  11889.         LD E,(HL)
  11890.         INC HL
  11891.         LD D,(HL)
  11892.         POP HL
  11893.         LD A,B
  11894.         RET
  11895.  
  11896. AMINOTE dw 0X1AC0,0X1940,0X17D0,0X1680,0X1530,0X1400,0X12E0,0X11D0,0X10D0,0X0FE0,0X0F00,0X0E28;C-0
  11897.         dw 0X0D60,0X0CA0,0X0BE8,0X0B40,0X0A98,0X0A00,0X0970,0X08E8,0X0868,0X07F0,0X0780,0X0714;C-1
  11898.         dw 0X06B0,0X0650,0X05F4,0X05A0,0X054C,0X0500,0X04B8,0X0474,0X0434,0X03F8,0X03C0,0X038A;C-2
  11899.         dw 0X0358,0X0328,0X02FA,0X02D0,0X02A6,0X0280,0X025C,0X023A,0X021A,0X01FC,0X01E0,0X01C5;C-3
  11900.         dw 0X01AC,0X0194,0X017D,0X0168,0X0153,0X0140,0X012E,0X011D,0X010D,0X00FE,0X00F0,0X00E2;C-4
  11901.         dw 0X00D6,0X00CA,0X00BE,0X00B4,0X00AA,0X00A0,0X0097,0X008F,0X0087,0X007F,0X0078,0X0071;C-5
  11902.         dw 0X006B,0X0065,0X005F,0X005A,0X0055,0X0050,0X004B,0X0047,0X0043,0X003F,0X003C,0X0038;C-6
  11903.         dw 0X0035,0X0032,0X002F,0X002D,0X002A,0X0028,0X0025,0X0023,0X0021,0X001F,0X001E,0X001C;C-7
  11904. ___END
  11905.  
  11906.                 DUPL GSRomBaseH+0X2000-$,0XFF
  11907.                 PHASE GSRomBaseH+0X2000
  11908.        
  11909. ;INCLUDE "_GSFRQTB.a80" ;patched
  11910. GSFRQTB
  11911. ;00
  11912.         dw 0X4854,0X4446,0X4071,0X3CD1,0X3968,0X362F,0X3324,0X3045,0X2D91,0X2B02,0X2897,0X2652
  11913.         dw 0X242A,0X2223,0X2037,0X1E68,0X1CB5,0X1B17,0X1992,0X1822,0X16C8,0X1581,0X144D,0X1329
  11914.         dw 0X1215,0X1111,0X101B,0X0F35,0X0E5A,0X0D8D,0X0CCA,0X0C12,0X0B62,0X0AC0,0X0A26,0X0994
  11915.         dw 0X090A,0X0888,0X080F,0X079A,0X072C,0X06C5,0X0663,0X0607,0X05B1,0X0560,0X0511,0X04C8
  11916.         dw 0X0485,0X0444,0X0406,0X03CD,0X0397,0X0363,0X0333,0X0305,0X02DA,0X02AE,0X0288,0X0265
  11917.         dw 0X0242,0X0222,0X0204,0X01E6,0X01CB,0X01B0,0X0198,0X0182,0X016D,0X0157,0X0144,0X0131
  11918.         dw 0X0121,0X0111,0X0100,0X00F3,0X00E5,0X00D8,0X00CD,0X00BF,0X00B5,0X00AD,0X00A2,0X009A
  11919.         dw 0X0092,0X0087,0X0081,0X0079,0X0071,0X006C,0X0066,0X0061,0X005B,0X0056,0X0051,0X004B
  11920. ;01
  11921.         dw 0X47D0,0X43C7,0X3FFA,0X3C62,0X38FE,0X35CB,0X32C6,0X2FEE,0X2D3D,0X2AB4,0X284E,0X260B
  11922.         dw 0X23E6,0X21E5,0X1FFB,0X1E32,0X1C7F,0X1AE7,0X1964,0X17F7,0X169D,0X1558,0X1427,0X1305
  11923.         dw 0X11F4,0X10F1,0X0FFD,0X0F18,0X0E3F,0X0D72,0X0CB2,0X0BFA,0X0B4F,0X0AAD,0X0A13,0X0981
  11924.         dw 0X08FA,0X0878,0X07FE,0X078D,0X0721,0X06BA,0X0659,0X05FD,0X05A6,0X0555,0X0509,0X04C0
  11925.         dw 0X047D,0X043C,0X0400,0X03C5,0X038F,0X035B,0X032B,0X02FF,0X02D4,0X02AC,0X0283,0X0260
  11926.         dw 0X023D,0X021F,0X01FF,0X01E4,0X01C8,0X01AD,0X0195,0X017F,0X016A,0X0154,0X0141,0X0131
  11927.         dw 0X011E,0X010E,0X0100,0X00F0,0X00E3,0X00D8,0X00CA,0X00BF,0X00B5,0X00AA,0X00A2,0X0097
  11928.         dw 0X008F,0X0087,0X007F,0X0079,0X0071,0X006C,0X0066,0X005E,0X0059,0X0056,0X0051,0X004B
  11929. ;02
  11930.         dw 0X474C,0X434B,0X3F83,0X3BF3,0X3895,0X356A,0X326A,0X2F95,0X2CE9,0X2A63,0X2802,0X25C5
  11931.         dw 0X23A6,0X21A4,0X1FC2,0X1DF9,0X1C4C,0X1AB3,0X1933,0X17C9,0X1674,0X1532,0X1401,0X12E2
  11932.         dw 0X11D1,0X10D3,0X0FE0,0X0EFC,0X0E24,0X0D59,0X0C99,0X0BE4,0X0B3A,0X0A98,0X0A00,0X0971
  11933.         dw 0X08EA,0X0868,0X07F1,0X077D,0X0713,0X06AC,0X064E,0X05F2,0X059E,0X054D,0X0501,0X04B8
  11934.         dw 0X0475,0X0434,0X03F8,0X03BF,0X0389,0X0356,0X0325,0X02FA,0X02CF,0X02A6,0X0280,0X025A
  11935.         dw 0X023A,0X021A,0X01FC,0X01DE,0X01C3,0X01AB,0X0192,0X017D,0X0167,0X0152,0X013F,0X012E
  11936.         dw 0X011B,0X010E,0X00FE,0X00F0,0X00E3,0X00D5,0X00CA,0X00BD,0X00B2,0X00AA,0X009F,0X0097
  11937.         dw 0X008F,0X0087,0X007F,0X0076,0X0071,0X006C,0X0064,0X005E,0X0059,0X0053,0X0051,0X004B
  11938. ;03
  11939.         dw 0X46C7,0X42CE,0X3F0E,0X3B85,0X382E,0X3506,0X320E,0X2F3E,0X2C98,0X2A17,0X27B9,0X257F
  11940.         dw 0X2365,0X2168,0X1F87,0X1DC3,0X1C15,0X1A83,0X1905,0X179E,0X164C,0X150A,0X13DB,0X12BF
  11941.         dw 0X11B1,0X10B3,0X0FC5,0X0EE1,0X0E0C,0X0D41,0X0C84,0X0BCF,0X0B24,0X0A85,0X09ED,0X095E
  11942.         dw 0X08D9,0X085A,0X07E1,0X076F,0X0706,0X06A2,0X0640,0X05E7,0X0593,0X0542,0X04F6,0X04B0
  11943.         dw 0X046C,0X042C,0X03F0,0X03B7,0X0381,0X0351,0X0320,0X02F5,0X02C9,0X02A1,0X027B,0X0258
  11944.         dw 0X0235,0X0217,0X01F9,0X01DB,0X01C0,0X01A8,0X0190,0X017A,0X0164,0X0152,0X013F,0X012C
  11945.         dw 0X011B,0X010B,0X00FB,0X00ED,0X00E0,0X00D2,0X00C8,0X00BD,0X00B2,0X00A7,0X009F,0X0094
  11946.         dw 0X008C,0X0084,0X007F,0X0076,0X0071,0X0069,0X0064,0X005E,0X0059,0X0053,0X004E,0X004B
  11947. ;04
  11948.         dw 0X4645,0X4255,0X3E9A,0X3B18,0X37C7,0X34A4,0X31AF,0X2EE5,0X2C44,0X29C9,0X2770,0X2538
  11949.         dw 0X2324,0X212A,0X1F4E,0X1D8B,0X1BE2,0X1A52,0X18D7,0X1772,0X1623,0X14E4,0X13B8,0X129C
  11950.         dw 0X1190,0X1095,0X0FA7,0X0EC6,0X0DF1,0X0D29,0X0C6B,0X0BB9,0X0B11,0X0A72,0X09DA,0X094E
  11951.         dw 0X08C9,0X084A,0X07D3,0X0762,0X06F8,0X0694,0X0635,0X05DC,0X0588,0X0537,0X04EE,0X04A8
  11952.         dw 0X0464,0X0423,0X03E8,0X03B2,0X037C,0X034B,0X031A,0X02EF,0X02C4,0X029B,0X0276,0X0252
  11953.         dw 0X0232,0X0211,0X01F4,0X01D9,0X01BE,0X01A5,0X018D,0X0177,0X0162,0X014F,0X013C,0X0129
  11954.         dw 0X0119,0X0108,0X00FB,0X00EB,0X00E0,0X00D2,0X00C8,0X00BA,0X00AF,0X00A7,0X009C,0X0094
  11955.         dw 0X008C,0X0084,0X007C,0X0076,0X006E,0X0069,0X0064,0X005E,0X0059,0X0053,0X004E,0X004B
  11956. ;05
  11957.         dw 0X45C3,0X41D8,0X3E29,0X3AAA,0X3761,0X3443,0X3156,0X2E8F,0X2BF3,0X297A,0X2727,0X24F5
  11958.         dw 0X22E3,0X20EC,0X1F13,0X1D55,0X1BAF,0X1A21,0X18A9,0X1747,0X15FB,0X14BE,0X1395,0X1279
  11959.         dw 0X1170,0X1077,0X0F89,0X0EAB,0X0DD8,0X0D10,0X0C56,0X0BA3,0X0AFC,0X0A5F,0X09CA,0X093E
  11960.         dw 0X08B9,0X083A,0X07C6,0X0754,0X06EB,0X0689,0X062B,0X05D1,0X057E,0X052F,0X04E3,0X049D
  11961.         dw 0X045C,0X041E,0X03E3,0X03AA,0X0376,0X0343,0X0315,0X02EA,0X02BF,0X0296,0X0273,0X0250
  11962.         dw 0X022D,0X020F,0X01F1,0X01D6,0X01BB,0X01A3,0X018A,0X0175,0X015F,0X014C,0X0139,0X0126
  11963.         dw 0X0116,0X0106,0X00F8,0X00EB,0X00DD,0X00D0,0X00C5,0X00BA,0X00AF,0X00A4,0X009C,0X0094
  11964.         dw 0X008C,0X0084,0X007C,0X0074,0X006E,0X0069,0X0061,0X005B,0X0059,0X0053,0X004E,0X0049
  11965. ;06
  11966.         dw 0X4544,0X4161,0X3DB4,0X3A3D,0X36FA,0X33E4,0X30FA,0X2E3B,0X2BA2,0X292E,0X26DE,0X24B1
  11967.         dw 0X22A2,0X20B0,0X1EDA,0X1D1E,0X1B7B,0X19F1,0X187B,0X171C,0X15D2,0X1498,0X136F,0X1258
  11968.         dw 0X114F,0X1057,0X0F6E,0X0E90,0X0DBD,0X0CF8,0X0C3D,0X0B8E,0X0AE9,0X0A4C,0X09B7,0X092B
  11969.         dw 0X08A9,0X082C,0X07B5,0X0747,0X06E0,0X067C,0X0620,0X05C7,0X0573,0X0524,0X04DB,0X0495
  11970.         dw 0X0454,0X0416,0X03DA,0X03A4,0X036E,0X033E,0X0310,0X02E4,0X02B9,0X0293,0X026D,0X024A
  11971.         dw 0X022A,0X0209,0X01EE,0X01D1,0X01B8,0X01A0,0X0188,0X0172,0X015C,0X0149,0X0136,0X0126
  11972.         dw 0X0113,0X0106,0X00F6,0X00E8,0X00DB,0X00D0,0X00C2,0X00B7,0X00AF,0X00A4,0X009C,0X0092
  11973.         dw 0X0089,0X0081,0X007C,0X0074,0X006E,0X0066,0X0061,0X005B,0X0056,0X0051,0X004E,0X0049
  11974. ;07
  11975.         dw 0X44C3,0X40E8,0X3D43,0X39D4,0X3693,0X3383,0X30A1,0X2DE4,0X2B51,0X28E3,0X2698,0X246E
  11976.         dw 0X2261,0X2075,0X1EA1,0X1CE8,0X1B4B,0X19C3,0X1850,0X16F3,0X15A9,0X1472,0X134C,0X1235
  11977.         dw 0X1132,0X1039,0X0F50,0X0E75,0X0DA5,0X0CE0,0X0C28,0X0B78,0X0AD3,0X0A39,0X09A4,0X091A
  11978.         dw 0X0899,0X081C,0X07A8,0X0739,0X06D2,0X0671,0X0612,0X05BC,0X056B,0X051C,0X04D3,0X048D
  11979.         dw 0X044C,0X040E,0X03D5,0X039C,0X0369,0X0338,0X030A,0X02DF,0X02B4,0X028E,0X0268,0X0248
  11980.         dw 0X0224,0X0207,0X01E9,0X01CE,0X01B3,0X019B,0X0185,0X016F,0X015A,0X0147,0X0134,0X0124
  11981.         dw 0X0113,0X0103,0X00F6,0X00E8,0X00DB,0X00CD,0X00C2,0X00B7,0X00AD,0X00A2,0X009A,0X0092
  11982.         dw 0X0089,0X0081,0X0079,0X0074,0X006C,0X0066,0X0061,0X005B,0X0056,0X0051,0X004E,0X0049
  11983. ;08
  11984.         dw 0X4CA1,0X4854,0X4446,0X4071,0X3CD1,0X3968,0X362F,0X3324,0X3045,0X2D91,0X2B02,0X2897
  11985.         dw 0X2652,0X242A,0X2223,0X2037,0X1E68,0X1CB5,0X1B17,0X1992,0X1822,0X16C8,0X1581,0X144D
  11986.         dw 0X1329,0X1215,0X1111,0X101B,0X0F35,0X0E5A,0X0D8D,0X0CCA,0X0C12,0X0B62,0X0AC0,0X0A26
  11987.         dw 0X0994,0X090A,0X0888,0X080F,0X079A,0X072C,0X06C5,0X0663,0X0607,0X05B1,0X0560,0X0511
  11988.         dw 0X04C8,0X0485,0X0444,0X0406,0X03CD,0X0397,0X0363,0X0333,0X0305,0X02DA,0X02AE,0X0288
  11989.         dw 0X0265,0X0242,0X0222,0X0204,0X01E6,0X01CB,0X01B0,0X0198,0X0182,0X016D,0X0157,0X0144
  11990.         dw 0X0131,0X0121,0X0111,0X0100,0X00F3,0X00E5,0X00D8,0X00CD,0X00BF,0X00B5,0X00AD,0X00A2
  11991.         dw 0X009A,0X0092,0X0087,0X0081,0X0079,0X0071,0X006C,0X0066,0X0061,0X005B,0X0056,0X0051
  11992. ;09
  11993.         dw 0X4C14,0X47D0,0X43C7,0X3FFA,0X3C62,0X38FE,0X35CB,0X32C6,0X2FEE,0X2D3D,0X2AB4,0X284E
  11994.         dw 0X260B,0X23E6,0X21E5,0X1FFB,0X1E32,0X1C7F,0X1AE7,0X1964,0X17F7,0X169D,0X1558,0X1427
  11995.         dw 0X1305,0X11F4,0X10F1,0X0FFD,0X0F18,0X0E3F,0X0D72,0X0CB2,0X0BFA,0X0B4F,0X0AAD,0X0A13
  11996.         dw 0X0981,0X08FA,0X0878,0X07FE,0X078D,0X0721,0X06BA,0X0659,0X05FD,0X05A6,0X0555,0X0509
  11997.         dw 0X04C0,0X047D,0X043C,0X0400,0X03C5,0X038F,0X035B,0X032B,0X02FF,0X02D4,0X02AC,0X0283
  11998.         dw 0X0260,0X023D,0X021F,0X01FF,0X01E4,0X01C8,0X01AD,0X0195,0X017F,0X016A,0X0154,0X0141
  11999.         dw 0X0131,0X011E,0X010E,0X0100,0X00F0,0X00E3,0X00D8,0X00CA,0X00BF,0X00B5,0X00AA,0X00A2
  12000.         dw 0X0097,0X008F,0X0087,0X007F,0X0079,0X0071,0X006C,0X0066,0X005E,0X0059,0X0056,0X0051
  12001. ;0A
  12002.         dw 0X4B88,0X474C,0X434B,0X3F83,0X3BF3,0X3895,0X356A,0X326A,0X2F95,0X2CE9,0X2A63,0X2802
  12003.         dw 0X25C5,0X23A6,0X21A4,0X1FC2,0X1DF9,0X1C4C,0X1AB3,0X1933,0X17C9,0X1674,0X1532,0X1401
  12004.         dw 0X12E2,0X11D1,0X10D3,0X0FE0,0X0EFC,0X0E24,0X0D59,0X0C99,0X0BE4,0X0B3A,0X0A98,0X0A00
  12005.         dw 0X0971,0X08EA,0X0868,0X07F1,0X077D,0X0713,0X06AC,0X064E,0X05F2,0X059E,0X054D,0X0501
  12006.         dw 0X04B8,0X0475,0X0434,0X03F8,0X03BF,0X0389,0X0356,0X0325,0X02FA,0X02CF,0X02A6,0X0280
  12007.         dw 0X025A,0X023A,0X021A,0X01FC,0X01DE,0X01C3,0X01AB,0X0192,0X017D,0X0167,0X0152,0X013F
  12008.         dw 0X012E,0X011B,0X010E,0X00FE,0X00F0,0X00E3,0X00D5,0X00CA,0X00BD,0X00B2,0X00AA,0X009F
  12009.         dw 0X0097,0X008F,0X0087,0X007F,0X0076,0X0071,0X006C,0X0064,0X005E,0X0059,0X0053,0X0051
  12010. ;0B
  12011.         dw 0X4AFE,0X46C7,0X42CE,0X3F0E,0X3B85,0X382E,0X3506,0X320E,0X2F3E,0X2C98,0X2A17,0X27B9
  12012.         dw 0X257F,0X2365,0X2168,0X1F87,0X1DC3,0X1C15,0X1A83,0X1905,0X179E,0X164C,0X150A,0X13DB
  12013.         dw 0X12BF,0X11B1,0X10B3,0X0FC5,0X0EE1,0X0E0C,0X0D41,0X0C84,0X0BCF,0X0B24,0X0A85,0X09ED
  12014.         dw 0X095E,0X08D9,0X085A,0X07E1,0X076F,0X0706,0X06A2,0X0640,0X05E7,0X0593,0X0542,0X04F6
  12015.         dw 0X04B0,0X046C,0X042C,0X03F0,0X03B7,0X0381,0X0351,0X0320,0X02F5,0X02C9,0X02A1,0X027B
  12016.         dw 0X0258,0X0235,0X0217,0X01F9,0X01DB,0X01C0,0X01A8,0X0190,0X017A,0X0164,0X0152,0X013F
  12017.         dw 0X012C,0X011B,0X010B,0X00FB,0X00ED,0X00E0,0X00D2,0X00C8,0X00BD,0X00B2,0X00A7,0X009F
  12018.         dw 0X0094,0X008C,0X0084,0X007F,0X0076,0X0071,0X0069,0X0064,0X005E,0X0059,0X0053,0X004E
  12019. ;0C
  12020.         dw 0X4A74,0X4645,0X4255,0X3E9A,0X3B18,0X37C7,0X34A4,0X31AF,0X2EE5,0X2C44,0X29C9,0X2770
  12021.         dw 0X2538,0X2324,0X212A,0X1F4E,0X1D8B,0X1BE2,0X1A52,0X18D7,0X1772,0X1623,0X14E4,0X13B8
  12022.         dw 0X129C,0X1190,0X1095,0X0FA7,0X0EC6,0X0DF1,0X0D29,0X0C6B,0X0BB9,0X0B11,0X0A72,0X09DA
  12023.         dw 0X094E,0X08C9,0X084A,0X07D3,0X0762,0X06F8,0X0694,0X0635,0X05DC,0X0588,0X0537,0X04EE
  12024.         dw 0X04A8,0X0464,0X0423,0X03E8,0X03B2,0X037C,0X034B,0X031A,0X02EF,0X02C4,0X029B,0X0276
  12025.         dw 0X0252,0X0232,0X0211,0X01F4,0X01D9,0X01BE,0X01A5,0X018D,0X0177,0X0162,0X014F,0X013C
  12026.         dw 0X0129,0X0119,0X0108,0X00FB,0X00EB,0X00E0,0X00D2,0X00C8,0X00BA,0X00AF,0X00A7,0X009C
  12027.         dw 0X0094,0X008C,0X0084,0X007C,0X0076,0X006E,0X0069,0X0064,0X005E,0X0059,0X0053,0X004E
  12028. ;0D
  12029.         dw 0X49EA,0X45C3,0X41D8,0X3E29,0X3AAA,0X3761,0X3443,0X3156,0X2E8F,0X2BF3,0X297A,0X2727
  12030.         dw 0X24F5,0X22E3,0X20EC,0X1F13,0X1D55,0X1BAF,0X1A21,0X18A9,0X1747,0X15FB,0X14BE,0X1395
  12031.         dw 0X1279,0X1170,0X1077,0X0F89,0X0EAB,0X0DD8,0X0D10,0X0C56,0X0BA3,0X0AFC,0X0A5F,0X09CA
  12032.         dw 0X093E,0X08B9,0X083A,0X07C6,0X0754,0X06EB,0X0689,0X062B,0X05D1,0X057E,0X052F,0X04E3
  12033.         dw 0X049D,0X045C,0X041E,0X03E3,0X03AA,0X0376,0X0343,0X0315,0X02EA,0X02BF,0X0296,0X0273
  12034.         dw 0X0250,0X022D,0X020F,0X01F1,0X01D6,0X01BB,0X01A3,0X018A,0X0175,0X015F,0X014C,0X0139
  12035.         dw 0X0126,0X0116,0X0106,0X00F8,0X00EB,0X00DD,0X00D0,0X00C5,0X00BA,0X00AF,0X00A4,0X009C
  12036.         dw 0X0094,0X008C,0X0084,0X007C,0X0074,0X006E,0X0069,0X0061,0X005B,0X0059,0X0053,0X004E
  12037. ;0E
  12038.         dw 0X4963,0X4544,0X4161,0X3DB4,0X3A3D,0X36FA,0X33E4,0X30FA,0X2E3B,0X2BA2,0X292E,0X26DE
  12039.         dw 0X24B1,0X22A2,0X20B0,0X1EDA,0X1D1E,0X1B7B,0X19F1,0X187B,0X171C,0X15D2,0X1498,0X136F
  12040.         dw 0X1258,0X114F,0X1057,0X0F6E,0X0E90,0X0DBD,0X0CF8,0X0C3D,0X0B8E,0X0AE9,0X0A4C,0X09B7
  12041.         dw 0X092B,0X08A9,0X082C,0X07B5,0X0747,0X06E0,0X067C,0X0620,0X05C7,0X0573,0X0524,0X04DB
  12042.         dw 0X0495,0X0454,0X0416,0X03DA,0X03A4,0X036E,0X033E,0X0310,0X02E4,0X02B9,0X0293,0X026D
  12043.         dw 0X024A,0X022A,0X0209,0X01EE,0X01D1,0X01B8,0X01A0,0X0188,0X0172,0X015C,0X0149,0X0136
  12044.         dw 0X0126,0X0113,0X0106,0X00F6,0X00E8,0X00DB,0X00D0,0X00C2,0X00B7,0X00AF,0X00A4,0X009C
  12045.         dw 0X0092,0X0089,0X0081,0X007C,0X0074,0X006E,0X0066,0X0061,0X005B,0X0056,0X0051,0X004E
  12046. ;0F
  12047.         dw 0X48DC,0X44C3,0X40E8,0X3D43,0X39D4,0X3693,0X3383,0X30A1,0X2DE4,0X2B51,0X28E3,0X2698
  12048.         dw 0X246E,0X2261,0X2075,0X1EA1,0X1CE8,0X1B4B,0X19C3,0X1850,0X16F3,0X15A9,0X1472,0X134C
  12049.         dw 0X1235,0X1132,0X1039,0X0F50,0X0E75,0X0DA5,0X0CE0,0X0C28,0X0B78,0X0AD3,0X0A39,0X09A4
  12050.         dw 0X091A,0X0899,0X081C,0X07A8,0X0739,0X06D2,0X0671,0X0612,0X05BC,0X056B,0X051C,0X04D3
  12051.         dw 0X048D,0X044C,0X040E,0X03D5,0X039C,0X0369,0X0338,0X030A,0X02DF,0X02B4,0X028E,0X0268
  12052.         dw 0X0248,0X0224,0X0207,0X01E9,0X01CE,0X01B3,0X019B,0X0185,0X016F,0X015A,0X0147,0X0134
  12053.         dw 0X0124,0X0113,0X0103,0X00F6,0X00E8,0X00DB,0X00CD,0X00C2,0X00B7,0X00AD,0X00A2,0X009A
  12054.         dw 0X0092,0X0089,0X0081,0X0079,0X0074,0X006C,0X0066,0X0061,0X005B,0X0056,0X0051,0X004E
  12055.        
  12056. ;INCLUDE "_AMFRQTB.a80"
  12057. AMFRQTB ;EQU 0XEC00
  12058. ;00
  12059.         dw 0X1AC0,0X1940,0X17D5,0X167E,0X153B,0X140A,0X12EA,0X11DA,0X10DA,0X0FE8,0X0F03,0X0E2C
  12060.         dw 0X0D60,0X0CA0,0X0BEA,0X0B3F,0X0A9E,0X0A05,0X0975,0X08ED,0X086D,0X07F4,0X0782,0X0716
  12061.         dw 0X06B0,0X0650,0X05F5,0X05A0,0X054F,0X0503,0X04BB,0X0477,0X0436,0X03FA,0X03C1,0X038B
  12062.         dw 0X0358,0X0328,0X02FB,0X02D0,0X02A7,0X0281,0X025D,0X023B,0X021B,0X01FD,0X01E0,0X01C5
  12063.         dw 0X01AC,0X0194,0X017D,0X0168,0X0154,0X0141,0X012F,0X011E,0X010E,0X00FE,0X00F0,0X00E3
  12064.         dw 0X00D6,0X00CA,0X00BF,0X00B4,0X00AA,0X00A0,0X0097,0X008F,0X0087,0X007F,0X0078,0X0071
  12065.         dw 0X006B,0X0065,0X005F,0X005A,0X0055,0X0050,0X004C,0X0047,0X0043,0X0040,0X003C,0X0039
  12066.         dw 0X0036,0X0032,0X0030,0X002D,0X002A,0X0028,0X0026,0X0024,0X0022,0X0020,0X001E,0X001C
  12067. ;01
  12068.         dw 0X1A8F,0X1911,0X17A9,0X1655,0X1514,0X13E5,0X12C7,0X11BA,0X10BB,0X0FCB,0X0EE8,0X0E12
  12069.         dw 0X0D47,0X0C89,0X0BD4,0X0B2B,0X0A8A,0X09F3,0X0964,0X08DD,0X085D,0X07E5,0X0774,0X0709
  12070.         dw 0X06A4,0X0644,0X05EA,0X0595,0X0545,0X04F9,0X04B2,0X046E,0X042F,0X03F3,0X03BA,0X0384
  12071.         dw 0X0352,0X0322,0X02F5,0X02CB,0X02A3,0X027D,0X0259,0X0237,0X0217,0X01F9,0X01DD,0X01C2
  12072.         dw 0X01A9,0X0191,0X017B,0X0165,0X0151,0X013E,0X012C,0X011C,0X010C,0X00FD,0X00EE,0X00E1
  12073.         dw 0X00D4,0X00C9,0X00BD,0X00B3,0X00A9,0X009F,0X0096,0X008E,0X0086,0X007E,0X0077,0X0071
  12074.         dw 0X006A,0X0064,0X005F,0X0059,0X0054,0X0050,0X004B,0X0047,0X0043,0X003F,0X003C,0X0038
  12075.         dw 0X0035,0X0032,0X002F,0X002D,0X002A,0X0028,0X0026,0X0023,0X0021,0X0020,0X001E,0X001C
  12076. ;02
  12077.         dw 0X1A5E,0X18E3,0X177D,0X162C,0X14ED,0X13C1,0X12A5,0X1199,0X109C,0X0FAD,0X0ECC,0X0DF8
  12078.         dw 0X0D2F,0X0C71,0X0BBF,0X0B16,0X0A77,0X09E0,0X0952,0X08CC,0X084E,0X07D7,0X0766,0X06FC
  12079.         dw 0X0697,0X0639,0X05DF,0X058B,0X053B,0X04F0,0X04A9,0X0466,0X0427,0X03EB,0X03B3,0X037E
  12080.         dw 0X034C,0X031C,0X02F0,0X02C5,0X029E,0X0278,0X0255,0X0233,0X0214,0X01F6,0X01DA,0X01BF
  12081.         dw 0X01A6,0X018E,0X0178,0X0163,0X014F,0X013C,0X012A,0X011A,0X010A,0X00FB,0X00ED,0X00DF
  12082.         dw 0X00D3,0X00C7,0X00BC,0X00B1,0X00A7,0X009E,0X0095,0X008D,0X0085,0X007D,0X0076,0X0070
  12083.         dw 0X0069,0X0064,0X005E,0X0059,0X0054,0X004F,0X004B,0X0046,0X0042,0X003F,0X003B,0X0038
  12084.         dw 0X0035,0X0032,0X002F,0X002C,0X002A,0X0028,0X0025,0X0023,0X0021,0X001F,0X001E,0X001C
  12085. ;03
  12086.         dw 0X1A2D,0X18B5,0X1752,0X1603,0X14C7,0X139C,0X1283,0X1179,0X107E,0X0F91,0X0EB1,0X0DDE
  12087.         dw 0X0D17,0X0C5B,0X0BA9,0X0B02,0X0A63,0X09CE,0X0941,0X08BC,0X083F,0X07C8,0X0758,0X06EF
  12088.         dw 0X068B,0X062D,0X05D5,0X0581,0X0532,0X04E7,0X04A1,0X045E,0X041F,0X03E4,0X03AC,0X0377
  12089.         dw 0X0346,0X0317,0X02EA,0X02C0,0X0299,0X0274,0X0250,0X022F,0X0210,0X01F2,0X01D6,0X01BC
  12090.         dw 0X01A3,0X018B,0X0175,0X0160,0X014C,0X013A,0X0128,0X0118,0X0108,0X00F9,0X00EB,0X00DE
  12091.         dw 0X00D1,0X00C6,0X00BB,0X00B0,0X00A6,0X009D,0X0094,0X008C,0X0084,0X007D,0X0076,0X006F
  12092.         dw 0X0069,0X0063,0X005D,0X0058,0X0053,0X004E,0X004A,0X0046,0X0042,0X003E,0X003B,0X0037
  12093.         dw 0X0034,0X0031,0X002F,0X002C,0X002A,0X0027,0X0025,0X0023,0X0021,0X001F,0X001D,0X001C
  12094. ;04
  12095.         dw 0X19FD,0X1888,0X1727,0X15DB,0X14A1,0X1378,0X1260,0X1158,0X105F,0X0F74,0X0E96,0X0DC4
  12096.         dw 0X0CFF,0X0C44,0X0B94,0X0AED,0X0A50,0X09BC,0X0930,0X08AC,0X0830,0X07BA,0X074B,0X06E2
  12097.         dw 0X067F,0X0622,0X05CA,0X0577,0X0528,0X04DE,0X0498,0X0456,0X0418,0X03DD,0X03A5,0X0371
  12098.         dw 0X0340,0X0311,0X02E5,0X02BB,0X0294,0X026F,0X024C,0X022B,0X020C,0X01EE,0X01D3,0X01B9
  12099.         dw 0X01A0,0X0188,0X0172,0X015E,0X014A,0X0138,0X0126,0X0116,0X0106,0X00F7,0X00E9,0X00DC
  12100.         dw 0X00D0,0X00C4,0X00B9,0X00AF,0X00A5,0X009C,0X0093,0X008B,0X0083,0X007C,0X0075,0X006E
  12101.         dw 0X0068,0X0062,0X005D,0X0057,0X0053,0X004E,0X004A,0X0045,0X0041,0X003E,0X003A,0X0037
  12102.         dw 0X0034,0X0031,0X002E,0X002C,0X0029,0X0027,0X0025,0X0023,0X0021,0X001F,0X001D,0X001C
  12103. ;05
  12104.         dw 0X19CD,0X185A,0X16FD,0X15B2,0X147B,0X1354,0X123F,0X1138,0X1041,0X0F57,0X0E7B,0X0DAB
  12105.         dw 0X0CE7,0X0C2D,0X0B7E,0X0AD9,0X0A3D,0X09AA,0X091F,0X089C,0X0821,0X07AC,0X073E,0X06D5
  12106.         dw 0X0673,0X0617,0X05BF,0X056D,0X051F,0X04D5,0X0490,0X044E,0X0410,0X03D6,0X039F,0X036B
  12107.         dw 0X033A,0X030B,0X02E0,0X02B6,0X028F,0X026B,0X0248,0X0227,0X0208,0X01EB,0X01CF,0X01B5
  12108.         dw 0X019D,0X0186,0X0170,0X015B,0X0148,0X0135,0X0124,0X0114,0X0104,0X00F5,0X00E8,0X00DB
  12109.         dw 0X00CE,0X00C3,0X00B8,0X00AE,0X00A4,0X009B,0X0092,0X008A,0X0082,0X007B,0X0074,0X006D
  12110.         dw 0X0067,0X0061,0X005C,0X0057,0X0052,0X004D,0X0049,0X0045,0X0041,0X003D,0X003A,0X0037
  12111.         dw 0X0034,0X0031,0X002E,0X002B,0X0029,0X0027,0X0024,0X0022,0X0021,0X001F,0X001D,0X001B
  12112. ;06
  12113.         dw 0X199E,0X182E,0X16D2,0X158A,0X1455,0X1331,0X121D,0X1119,0X1023,0X0F3B,0X0E60,0X0D92
  12114.         dw 0X0CCF,0X0C17,0X0B69,0X0AC5,0X0A2A,0X0998,0X090E,0X088C,0X0812,0X079E,0X0730,0X06C9
  12115.         dw 0X0667,0X060B,0X05B5,0X0563,0X0515,0X04CC,0X0487,0X0446,0X0409,0X03CF,0X0398,0X0364
  12116.         dw 0X0334,0X0306,0X02DA,0X02B1,0X028B,0X0266,0X0244,0X0223,0X0204,0X01E7,0X01CC,0X01B2
  12117.         dw 0X019A,0X0183,0X016D,0X0159,0X0145,0X0133,0X0122,0X0112,0X0102,0X00F4,0X00E6,0X00D9
  12118.         dw 0X00CD,0X00C1,0X00B7,0X00AC,0X00A3,0X009A,0X0091,0X0089,0X0081,0X007A,0X0073,0X006D
  12119.         dw 0X0066,0X0061,0X005B,0X0056,0X0051,0X004D,0X0048,0X0044,0X0041,0X003D,0X003A,0X0036
  12120.         dw 0X0033,0X0030,0X002E,0X002B,0X0029,0X0026,0X0024,0X0022,0X0020,0X001E,0X001D,0X001B
  12121. ;07
  12122.         dw 0X196E,0X1801,0X16A8,0X1563,0X142F,0X130D,0X11FC,0X10F9,0X1005,0X0F1F,0X0E46,0X0D79
  12123.         dw 0X0CB7,0X0C01,0X0B54,0X0AB1,0X0A18,0X0987,0X08FE,0X087D,0X0803,0X0790,0X0723,0X06BC
  12124.         dw 0X065C,0X0600,0X05AA,0X0559,0X050C,0X04C3,0X047F,0X043E,0X0401,0X03C8,0X0391,0X035E
  12125.         dw 0X032E,0X0300,0X02D5,0X02AC,0X0286,0X0262,0X023F,0X021F,0X0201,0X01E4,0X01C9,0X01AF
  12126.         dw 0X0197,0X0180,0X016B,0X0156,0X0143,0X0131,0X0120,0X0110,0X0100,0X00F2,0X00E4,0X00D8
  12127.         dw 0X00CB,0X00C0,0X00B5,0X00AB,0X00A1,0X0098,0X0090,0X0088,0X0080,0X0079,0X0072,0X006C
  12128.         dw 0X0066,0X0060,0X005B,0X0056,0X0051,0X004C,0X0048,0X0044,0X0040,0X003C,0X0039,0X0036
  12129.         dw 0X0033,0X0030,0X002D,0X002B,0X0028,0X0026,0X0024,0X0022,0X0020,0X001E,0X001D,0X001B
  12130. ;08
  12131.         dw 0X1C57,0X1AC0,0X1940,0X17D5,0X167E,0X153B,0X140A,0X12EA,0X11DA,0X10DA,0X0FE8,0X0F03
  12132.         dw 0X0E2C,0X0D60,0X0CA0,0X0BEA,0X0B3F,0X0A9E,0X0A05,0X0975,0X08ED,0X086D,0X07F4,0X0782
  12133.         dw 0X0716,0X06B0,0X0650,0X05F5,0X05A0,0X054F,0X0503,0X04BB,0X0477,0X0436,0X03FA,0X03C1
  12134.         dw 0X038B,0X0358,0X0328,0X02FB,0X02D0,0X02A7,0X0281,0X025D,0X023B,0X021B,0X01FD,0X01E0
  12135.         dw 0X01C5,0X01AC,0X0194,0X017D,0X0168,0X0154,0X0141,0X012F,0X011E,0X010E,0X00FE,0X00F0
  12136.         dw 0X00E3,0X00D6,0X00CA,0X00BF,0X00B4,0X00AA,0X00A0,0X0097,0X008F,0X0087,0X007F,0X0078
  12137.         dw 0X0071,0X006B,0X0065,0X005F,0X005A,0X0055,0X0050,0X004C,0X0047,0X0043,0X0040,0X003C
  12138.         dw 0X0039,0X0036,0X0032,0X0030,0X002D,0X002A,0X0028,0X0026,0X0024,0X0022,0X0020,0X001E
  12139. ;09
  12140.         dw 0X1C23,0X1A8F,0X1911,0X17A9,0X1655,0X1514,0X13E5,0X12C7,0X11BA,0X10BB,0X0FCB,0X0EE8
  12141.         dw 0X0E12,0X0D47,0X0C89,0X0BD4,0X0B2B,0X0A8A,0X09F3,0X0964,0X08DD,0X085D,0X07E5,0X0774
  12142.         dw 0X0709,0X06A4,0X0644,0X05EA,0X0595,0X0545,0X04F9,0X04B2,0X046E,0X042F,0X03F3,0X03BA
  12143.         dw 0X0384,0X0352,0X0322,0X02F5,0X02CB,0X02A3,0X027D,0X0259,0X0237,0X0217,0X01F9,0X01DD
  12144.         dw 0X01C2,0X01A9,0X0191,0X017B,0X0165,0X0151,0X013E,0X012C,0X011C,0X010C,0X00FD,0X00EE
  12145.         dw 0X00E1,0X00D4,0X00C9,0X00BD,0X00B3,0X00A9,0X009F,0X0096,0X008E,0X0086,0X007E,0X0077
  12146.         dw 0X0071,0X006A,0X0064,0X005F,0X0059,0X0054,0X0050,0X004B,0X0047,0X0043,0X003F,0X003C
  12147.         dw 0X0038,0X0035,0X0032,0X002F,0X002D,0X002A,0X0028,0X0026,0X0023,0X0021,0X0020,0X001E
  12148. ;0A
  12149.         dw 0X1BEF,0X1A5E,0X18E3,0X177D,0X162C,0X14ED,0X13C1,0X12A5,0X1199,0X109C,0X0FAD,0X0ECC
  12150.         dw 0X0DF8,0X0D2F,0X0C71,0X0BBF,0X0B16,0X0A77,0X09E0,0X0952,0X08CC,0X084E,0X07D7,0X0766
  12151.         dw 0X06FC,0X0697,0X0639,0X05DF,0X058B,0X053B,0X04F0,0X04A9,0X0466,0X0427,0X03EB,0X03B3
  12152.         dw 0X037E,0X034C,0X031C,0X02F0,0X02C5,0X029E,0X0278,0X0255,0X0233,0X0214,0X01F6,0X01DA
  12153.         dw 0X01BF,0X01A6,0X018E,0X0178,0X0163,0X014F,0X013C,0X012A,0X011A,0X010A,0X00FB,0X00ED
  12154.         dw 0X00DF,0X00D3,0X00C7,0X00BC,0X00B1,0X00A7,0X009E,0X0095,0X008D,0X0085,0X007D,0X0076
  12155.         dw 0X0070,0X0069,0X0064,0X005E,0X0059,0X0054,0X004F,0X004B,0X0046,0X0042,0X003F,0X003B
  12156.         dw 0X0038,0X0035,0X0032,0X002F,0X002C,0X002A,0X0028,0X0025,0X0023,0X0021,0X001F,0X001E
  12157. ;0B
  12158.         dw 0X1BBC,0X1A2D,0X18B5,0X1752,0X1603,0X14C7,0X139C,0X1283,0X1179,0X107E,0X0F91,0X0EB1
  12159.         dw 0X0DDE,0X0D17,0X0C5B,0X0BA9,0X0B02,0X0A63,0X09CE,0X0941,0X08BC,0X083F,0X07C8,0X0758
  12160.         dw 0X06EF,0X068B,0X062D,0X05D5,0X0581,0X0532,0X04E7,0X04A1,0X045E,0X041F,0X03E4,0X03AC
  12161.         dw 0X0377,0X0346,0X0317,0X02EA,0X02C0,0X0299,0X0274,0X0250,0X022F,0X0210,0X01F2,0X01D6
  12162.         dw 0X01BC,0X01A3,0X018B,0X0175,0X0160,0X014C,0X013A,0X0128,0X0118,0X0108,0X00F9,0X00EB
  12163.         dw 0X00DE,0X00D1,0X00C6,0X00BB,0X00B0,0X00A6,0X009D,0X0094,0X008C,0X0084,0X007D,0X0076
  12164.         dw 0X006F,0X0069,0X0063,0X005D,0X0058,0X0053,0X004E,0X004A,0X0046,0X0042,0X003E,0X003B
  12165.         dw 0X0037,0X0034,0X0031,0X002F,0X002C,0X002A,0X0027,0X0025,0X0023,0X0021,0X001F,0X001D
  12166. ;0C
  12167.         dw 0X1B89,0X19FD,0X1888,0X1727,0X15DB,0X14A1,0X1378,0X1260,0X1158,0X105F,0X0F74,0X0E96
  12168.         dw 0X0DC4,0X0CFF,0X0C44,0X0B94,0X0AED,0X0A50,0X09BC,0X0930,0X08AC,0X0830,0X07BA,0X074B
  12169.         dw 0X06E2,0X067F,0X0622,0X05CA,0X0577,0X0528,0X04DE,0X0498,0X0456,0X0418,0X03DD,0X03A5
  12170.         dw 0X0371,0X0340,0X0311,0X02E5,0X02BB,0X0294,0X026F,0X024C,0X022B,0X020C,0X01EE,0X01D3
  12171.         dw 0X01B9,0X01A0,0X0188,0X0172,0X015E,0X014A,0X0138,0X0126,0X0116,0X0106,0X00F7,0X00E9
  12172.         dw 0X00DC,0X00D0,0X00C4,0X00B9,0X00AF,0X00A5,0X009C,0X0093,0X008B,0X0083,0X007C,0X0075
  12173.         dw 0X006E,0X0068,0X0062,0X005D,0X0057,0X0053,0X004E,0X004A,0X0045,0X0041,0X003E,0X003A
  12174.         dw 0X0037,0X0034,0X0031,0X002E,0X002C,0X0029,0X0027,0X0025,0X0023,0X0021,0X001F,0X001D
  12175. ;0D
  12176.         dw 0X1B56,0X19CD,0X185A,0X16FD,0X15B2,0X147B,0X1354,0X123F,0X1138,0X1041,0X0F57,0X0E7B
  12177.         dw 0X0DAB,0X0CE7,0X0C2D,0X0B7E,0X0AD9,0X0A3D,0X09AA,0X091F,0X089C,0X0821,0X07AC,0X073E
  12178.         dw 0X06D5,0X0673,0X0617,0X05BF,0X056D,0X051F,0X04D5,0X0490,0X044E,0X0410,0X03D6,0X039F
  12179.         dw 0X036B,0X033A,0X030B,0X02E0,0X02B6,0X028F,0X026B,0X0248,0X0227,0X0208,0X01EB,0X01CF
  12180.         dw 0X01B5,0X019D,0X0186,0X0170,0X015B,0X0148,0X0135,0X0124,0X0114,0X0104,0X00F5,0X00E8
  12181.         dw 0X00DB,0X00CE,0X00C3,0X00B8,0X00AE,0X00A4,0X009B,0X0092,0X008A,0X0082,0X007B,0X0074
  12182.         dw 0X006D,0X0067,0X0061,0X005C,0X0057,0X0052,0X004D,0X0049,0X0045,0X0041,0X003D,0X003A
  12183.         dw 0X0037,0X0034,0X0031,0X002E,0X002B,0X0029,0X0027,0X0024,0X0022,0X0021,0X001F,0X001D
  12184. ;0E
  12185.         dw 0X1B24,0X199E,0X182E,0X16D2,0X158A,0X1455,0X1331,0X121D,0X1119,0X1023,0X0F3B,0X0E60
  12186.         dw 0X0D92,0X0CCF,0X0C17,0X0B69,0X0AC5,0X0A2A,0X0998,0X090E,0X088C,0X0812,0X079E,0X0730
  12187.         dw 0X06C9,0X0667,0X060B,0X05B5,0X0563,0X0515,0X04CC,0X0487,0X0446,0X0409,0X03CF,0X0398
  12188.         dw 0X0364,0X0334,0X0306,0X02DA,0X02B1,0X028B,0X0266,0X0244,0X0223,0X0204,0X01E7,0X01CC
  12189.         dw 0X01B2,0X019A,0X0183,0X016D,0X0159,0X0145,0X0133,0X0122,0X0112,0X0102,0X00F4,0X00E6
  12190.         dw 0X00D9,0X00CD,0X00C1,0X00B7,0X00AC,0X00A3,0X009A,0X0091,0X0089,0X0081,0X007A,0X0073
  12191.         dw 0X006D,0X0066,0X0061,0X005B,0X0056,0X0051,0X004D,0X0048,0X0044,0X0041,0X003D,0X003A
  12192.         dw 0X0036,0X0033,0X0030,0X002E,0X002B,0X0029,0X0026,0X0024,0X0022,0X0020,0X001E,0X001D
  12193. ;0F
  12194.         dw 0X1AF2,0X196E,0X1801,0X16A8,0X1563,0X142F,0X130D,0X11FC,0X10F9,0X1005,0X0F1F,0X0E46
  12195.         dw 0X0D79,0X0CB7,0X0C01,0X0B54,0X0AB1,0X0A18,0X0987,0X08FE,0X087D,0X0803,0X0790,0X0723
  12196.         dw 0X06BC,0X065C,0X0600,0X05AA,0X0559,0X050C,0X04C3,0X047F,0X043E,0X0401,0X03C8,0X0391
  12197.         dw 0X035E,0X032E,0X0300,0X02D5,0X02AC,0X0286,0X0262,0X023F,0X021F,0X0201,0X01E4,0X01C9
  12198.         dw 0X01AF,0X0197,0X0180,0X016B,0X0156,0X0143,0X0131,0X0120,0X0110,0X0100,0X00F2,0X00E4
  12199.         dw 0X00D8,0X00CB,0X00C0,0X00B5,0X00AB,0X00A1,0X0098,0X0090,0X0088,0X0080,0X0079,0X0072
  12200.         dw 0X006C,0X0066,0X0060,0X005B,0X0056,0X0051,0X004C,0X0048,0X0044,0X0040,0X003C,0X0039
  12201.         dw 0X0036,0X0033,0X0030,0X002D,0X002B,0X0028,0X0026,0X0024,0X0022,0X0020,0X001E,0X001D
  12202.  
  12203. ;INCLUDE "_AMTOGS.a80" ;patched
  12204. ;AMTOGS  ;EQU 0XF800
  12205.         dw 0X0000,0X0003,0X0005,0X0008,0X000B,0X000E,0X0010,0X0013
  12206.         dw 0X0016,0X0018,0X001B,0X001E,0X0020,0X0023,0X0026,0X0029
  12207.         dw 0X002B,0X002E,0X0031,0X0033,0X0036,0X0039,0X003B,0X003E
  12208.         dw 0X0041,0X0044,0X0046,0X0049,0X004C,0X004E,0X0051,0X0054
  12209.         dw 0X0057,0X0059,0X005C,0X005F,0X0061,0X0064,0X0067,0X0069
  12210.         dw 0X006C,0X006F,0X0072,0X0074,0X0077,0X007A,0X007C,0X007F
  12211.         dw 0X0082,0X0084,0X0087,0X008A,0X008D,0X008F,0X0092,0X0095
  12212.         dw 0X0097,0X009A,0X009D,0X00A0,0X00A2,0X00A5,0X00A8,0X00AA
  12213.         dw 0X00AD,0X00B0,0X00B2,0X00B5,0X00B8,0X00BB,0X00BD,0X00C0
  12214.         dw 0X00C3,0X00C5,0X00C8,0X00CB,0X00CD,0X00D0,0X00D3,0X00D6
  12215.         dw 0X00D8,0X00DB,0X00DE,0X00E0,0X00E3,0X00E6,0X00E9,0X00EB
  12216.         dw 0X00EE,0X00F1,0X00F3,0X00F6,0X00F9,0X00FB,0X00FE,0X0101
  12217.         dw 0X0104,0X0106,0X0109,0X010C,0X010E,0X0111,0X0114,0X0117
  12218.         dw 0X0119,0X011C,0X011F,0X0121,0X0124,0X0127,0X0129,0X012C
  12219.         dw 0X012F,0X0132,0X0134,0X0137,0X013A,0X013C,0X013F,0X0142
  12220.         dw 0X0144,0X0147,0X014A,0X014D,0X014F,0X0152,0X0155,0X0157
  12221.         dw 0X015A,0X015D,0X0160,0X0162,0X0165,0X0168,0X016A,0X016D
  12222.         dw 0X0170,0X0172,0X0175,0X0178,0X017B,0X017D,0X0180,0X0183
  12223.         dw 0X0185,0X0188,0X018B,0X018D,0X0190,0X0193,0X0196,0X0198
  12224.         dw 0X019B,0X019E,0X01A0,0X01A3,0X01A6,0X01A9,0X01AB,0X01AE
  12225.         dw 0X01B1,0X01B3,0X01B6,0X01B9,0X01BB,0X01BE,0X01C1,0X01C4
  12226.         dw 0X01C6,0X01C9,0X01CC,0X01CE,0X01D1,0X01D4,0X01D6,0X01D9
  12227.         dw 0X01DC,0X01DF,0X01E1,0X01E4,0X01E7,0X01E9,0X01EC,0X01EF
  12228.         dw 0X01F2,0X01F4,0X01F7,0X01FA,0X01FC,0X01FF,0X0202,0X0204
  12229.         dw 0X0207,0X020A,0X020D,0X020F,0X0212,0X0215,0X0217,0X021A
  12230.         dw 0X021D,0X021F,0X0222,0X0225,0X0228,0X022A,0X022D,0X0230
  12231.         dw 0X0232,0X0235,0X0238,0X023B,0X023D,0X0240,0X0243,0X0245
  12232.         dw 0X0248,0X024B,0X024D,0X0250,0X0253,0X0256,0X0258,0X025B
  12233.         dw 0X025E,0X0260,0X0263,0X0266,0X0269,0X026B,0X026E,0X0271
  12234.         dw 0X0273,0X0276,0X0279,0X027B,0X027E,0X0281,0X0284,0X0286
  12235.         dw 0X0289,0X028C,0X028E,0X0291,0X0294,0X0296,0X0299,0X029C
  12236.         dw 0X029F,0X02A1,0X02A4,0X02A7,0X02A9,0X02AC,0X02AF,0X02B2
  12237.         dw 0X02B4,0X02B7,0X02BA,0X02BC,0X02BF,0X02C2,0X02C4,0X02C7
  12238.         dw 0X02CA,0X02CD,0X02CF,0X02D2,0X02D5,0X02D7,0X02DA,0X02DD
  12239.         dw 0X02DF,0X02E2,0X02E5,0X02E8,0X02EA,0X02ED,0X02F0,0X02F2
  12240.         dw 0X02F5,0X02F8,0X02FB,0X02FD,0X0300,0X0303,0X0305,0X0308
  12241.         dw 0X030B,0X030D,0X0310,0X0313,0X0316,0X0318,0X031B,0X031E
  12242.         dw 0X0320,0X0323,0X0326,0X0328,0X032B,0X032E,0X0331,0X0333
  12243.         dw 0X0336,0X0339,0X033B,0X033E,0X0341,0X0344,0X0346,0X0349
  12244.         dw 0X034C,0X034E,0X0351,0X0354,0X0356,0X0359,0X035C,0X035F
  12245.         dw 0X0361,0X0364,0X0367,0X0369,0X036C,0X036F,0X0371,0X0374
  12246.         dw 0X0377,0X037A,0X037C,0X037F,0X0382,0X0384,0X0387,0X038A
  12247.         dw 0X038D,0X038F,0X0392,0X0395,0X0397,0X039A,0X039D,0X039F
  12248.         dw 0X03A2,0X03A5,0X03A8,0X03AA,0X03AD,0X03B0,0X03B2,0X03B5
  12249.         dw 0X03B8,0X03BB,0X03BD,0X03C0,0X03C3,0X03C5,0X03C8,0X03CB
  12250.         dw 0X03CD,0X03D0,0X03D3,0X03D6,0X03D8,0X03DB,0X03DE,0X03E0
  12251.         dw 0X03E3,0X03E6,0X03E8,0X03EB,0X03EE,0X03F1,0X03F3,0X03F6
  12252.         dw 0X03F9,0X03FB,0X03FE,0X0401,0X0404,0X0406,0X0409,0X040C
  12253.         dw 0X040E,0X0411,0X0414,0X0416,0X0419,0X041C,0X041F,0X0421
  12254.         dw 0X0424,0X0427,0X0429,0X042C,0X042F,0X0431,0X0434,0X0437
  12255.         dw 0X043A,0X043C,0X043F,0X0442,0X0444,0X0447,0X044A,0X044D
  12256.         dw 0X044F,0X0452,0X0455,0X0457,0X045A,0X045D,0X045F,0X0462
  12257.         dw 0X0465,0X0468,0X046A,0X046D,0X0470,0X0472,0X0475,0X0478
  12258.         dw 0X047A,0X047D,0X0480,0X0483,0X0485,0X0488,0X048B,0X048D
  12259.         dw 0X0490,0X0493,0X0496,0X0498,0X049B,0X049E,0X04A0,0X04A3
  12260.         dw 0X04A6,0X04A8,0X04AB,0X04AE,0X04B1,0X04B3,0X04B6,0X04B9
  12261.         dw 0X04BB,0X04BE,0X04C1,0X04C3,0X04C6,0X04C9,0X04CC,0X04CE
  12262.         dw 0X04D1,0X04D4,0X04D6,0X04D9,0X04DC,0X04DF,0X04E1,0X04E4
  12263.         dw 0X04E7,0X04E9,0X04EC,0X04EF,0X04F1,0X04F4,0X04F7,0X04FA
  12264.         dw 0X04FC,0X04FF,0X0502,0X0504,0X0507,0X050A,0X050D,0X050F
  12265.         dw 0X0512,0X0515,0X0517,0X051A,0X051D,0X051F,0X0522,0X0525
  12266.         dw 0X0528,0X052A,0X052D,0X0530,0X0532,0X0535,0X0538,0X053A
  12267.         dw 0X053D,0X0540,0X0543,0X0545,0X0548,0X054B,0X054D,0X0550
  12268.         dw 0X0553,0X0556,0X0558,0X055B,0X055E,0X0560,0X0563,0X0566
  12269.         dw 0X0568,0X056B,0X056E,0X0571,0X0573,0X0576,0X0579,0X057B
  12270.         dw 0X057E,0X0581,0X0583,0X0586,0X0589,0X058C,0X058E,0X0591
  12271.         dw 0X0594,0X0596,0X0599,0X059C,0X059F,0X05A1,0X05A4,0X05A7
  12272.         dw 0X05A9,0X05AC,0X05AF,0X05B1,0X05B4,0X05B7,0X05BA,0X05BC
  12273.         dw 0X05BF,0X05C2,0X05C4,0X05C7,0X05CA,0X05CC,0X05CF,0X05D2
  12274.         dw 0X05D5,0X05D7,0X05DA,0X05DD,0X05DF,0X05E2,0X05E5,0X05E8
  12275.         dw 0X05EA,0X05ED,0X05F0,0X05F2,0X05F5,0X05F8,0X05FA,0X05FD
  12276.         dw 0X0600,0X0603,0X0605,0X0608,0X060B,0X060D,0X0610,0X0613
  12277.         dw 0X0615,0X0618,0X061B,0X061E,0X0620,0X0623,0X0626,0X0628
  12278.         dw 0X062B,0X062E,0X0631,0X0633,0X0636,0X0639,0X063B,0X063E
  12279.         dw 0X0641,0X0643,0X0646,0X0649,0X064C,0X064E,0X0651,0X0654
  12280.         dw 0X0656,0X0659,0X065C,0X065F,0X0661,0X0664,0X0667,0X0669
  12281.         dw 0X066C,0X066F,0X0671,0X0674,0X0677,0X067A,0X067C,0X067F
  12282.         dw 0X0682,0X0684,0X0687,0X068A,0X068C,0X068F,0X0692,0X0695
  12283.         dw 0X0697,0X069A,0X069D,0X069F,0X06A2,0X06A5,0X06A8,0X06AA
  12284.         dw 0X06AD,0X06B0,0X06B2,0X06B5,0X06B8,0X06BA,0X06BD,0X06C0
  12285.         dw 0X06C3,0X06C5,0X06C8,0X06CB,0X06CD,0X06D0,0X06D3,0X06D5
  12286.         dw 0X06D8,0X06DB,0X06DE,0X06E0,0X06E3,0X06E6,0X06E8,0X06EB
  12287.         dw 0X06EE,0X06F1,0X06F3,0X06F6,0X06F9,0X06FB,0X06FE,0X0701
  12288.         dw 0X0703,0X0706,0X0709,0X070C,0X070E,0X0711,0X0714,0X0716
  12289.         dw 0X0719,0X071C,0X071E,0X0721,0X0724,0X0727,0X0729,0X072C
  12290.         dw 0X072F,0X0731,0X0734,0X0737,0X073A,0X073C,0X073F,0X0742
  12291.         dw 0X0744,0X0747,0X074A,0X074C,0X074F,0X0752,0X0755,0X0757
  12292.         dw 0X075A,0X075D,0X075F,0X0762,0X0765,0X0767,0X076A,0X076D
  12293.         dw 0X0770,0X0772,0X0775,0X0778,0X077A,0X077D,0X0780,0X0783
  12294.         dw 0X0785,0X0788,0X078B,0X078D,0X0790,0X0793,0X0795,0X0798
  12295.         dw 0X079B,0X079E,0X07A0,0X07A3,0X07A6,0X07A8,0X07AB,0X07AE
  12296.         dw 0X07B1,0X07B3,0X07B6,0X07B9,0X07BB,0X07BE,0X07C1,0X07C3
  12297.         dw 0X07C6,0X07C9,0X07CC,0X07CE,0X07D1,0X07D4,0X07D6,0X07D9
  12298.         dw 0X07DC,0X07DE,0X07E1,0X07E4,0X07E7,0X07E9,0X07EC,0X07EF
  12299.         dw 0X07F1,0X07F4,0X07F7,0X07FA,0X07FC,0X07FF,0X0802,0X0804
  12300.         dw 0X0807,0X080A,0X080C,0X080F,0X0812,0X0815,0X0817,0X081A
  12301.         dw 0X081D,0X081F,0X0822,0X0825,0X0827,0X082A,0X082D,0X0830
  12302.         dw 0X0832,0X0835,0X0838,0X083A,0X083D,0X0840,0X0843,0X0845
  12303.         dw 0X0848,0X084B,0X084D,0X0850,0X0853,0X0855,0X0858,0X085B
  12304.         dw 0X085E,0X0860,0X0863,0X0866,0X0868,0X086B,0X086E,0X0870
  12305.         dw 0X0873,0X0876,0X0879,0X087B,0X087E,0X0881,0X0883,0X0886
  12306.         dw 0X0889,0X088C,0X088E,0X0891,0X0894,0X0896,0X0899,0X089C
  12307.         dw 0X089E,0X08A1,0X08A4,0X08A7,0X08A9,0X08AC,0X08AF,0X08B1
  12308.         dw 0X08B4,0X08B7,0X08B9,0X08BC,0X08BF,0X08C2,0X08C4,0X08C7
  12309.         dw 0X08CA,0X08CC,0X08CF,0X08D2,0X08D5,0X08D7,0X08DA,0X08DD
  12310.         dw 0X08DF,0X08E2,0X08E5,0X08E7,0X08EA,0X08ED,0X08F0,0X08F2
  12311.         dw 0X08F5,0X08F8,0X08FA,0X08FD,0X0900,0X0903,0X0905,0X0908
  12312.         dw 0X090B,0X090D,0X0910,0X0913,0X0915,0X0918,0X091B,0X091E
  12313.         dw 0X0920,0X0923,0X0926,0X0928,0X092B,0X092E,0X0930,0X0933
  12314.         dw 0X0936,0X0939,0X093B,0X093E,0X0941,0X0943,0X0946,0X0949
  12315.         dw 0X094C,0X094E,0X0951,0X0954,0X0956,0X0959,0X095C,0X095E
  12316.         dw 0X0961,0X0964,0X0967,0X0969,0X096C,0X096F,0X0971,0X0974
  12317.         dw 0X0977,0X0979,0X097C,0X097F,0X0982,0X0984,0X0987,0X098A
  12318.         dw 0X098C,0X098F,0X0992,0X0995,0X0997,0X099A,0X099D,0X099F
  12319.         dw 0X09A2,0X09A5,0X09A7,0X09AA,0X09AD,0X09B0,0X09B2,0X09B5
  12320.         dw 0X09B8,0X09BA,0X09BD,0X09C0,0X09C2,0X09C5,0X09C8,0X09CB
  12321.         dw 0X09CD,0X09D0,0X09D3,0X09D5,0X09D8,0X09DB,0X09DE,0X09E0
  12322.         dw 0X09E3,0X09E6,0X09E8,0X09EB,0X09EE,0X09F0,0X09F3,0X09F6
  12323.         dw 0X09F9,0X09FB,0X09FE,0X0A01,0X0A03,0X0A06,0X0A09,0X0A0B
  12324.         dw 0X0A0E,0X0A11,0X0A14,0X0A16,0X0A19,0X0A1C,0X0A1E,0X0A21
  12325.         dw 0X0A24,0X0A27,0X0A29,0X0A2C,0X0A2F,0X0A31,0X0A34,0X0A37
  12326.         dw 0X0A39,0X0A3C,0X0A3F,0X0A42,0X0A44,0X0A47,0X0A4A,0X0A4C
  12327.         dw 0X0A4F,0X0A52,0X0A55,0X0A57,0X0A5A,0X0A5D,0X0A5F,0X0A62
  12328.         dw 0X0A65,0X0A67,0X0A6A,0X0A6D,0X0A70,0X0A72,0X0A75,0X0A78
  12329.         dw 0X0A7A,0X0A7D,0X0A80,0X0A82,0X0A85,0X0A88,0X0A8B,0X0A8D
  12330.         dw 0X0A90,0X0A93,0X0A95,0X0A98,0X0A9B,0X0A9E,0X0AA0,0X0AA3
  12331.         dw 0X0AA6,0X0AA8,0X0AAB,0X0AAE,0X0AB0,0X0AB3,0X0AB6,0X0AB9
  12332.         dw 0X0ABB,0X0ABE,0X0AC1,0X0AC3,0X0AC6,0X0AC9,0X0ACB,0X0ACE
  12333.                 DEPHASE
  12334.