Subversion Repositories ngs

Rev

Rev 75 | Rev 112 | Go to most recent revision | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed

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