Subversion Repositories ngs

Rev

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

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