Subversion Repositories ngs

Rev

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

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