Subversion Repositories ngs

Rev

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

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