Subversion Repositories ngs

Rev

Rev 126 | Blame | Compare with Previous | Last modification | View Log | Download | RSS feed | ?url?

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