_y=0
_sa=0x5800
_a=attr
;на пентагоне тут (а не ниже мультиколора):
;плейер AY music
;плейер sfx
;вывод в регистры AY
       if PENT == 1
        ld sp,IMSTACK;0x4022;0x4002
curpgmuz_mc=$+1
        ld a,pgmuz0+PAGEOR
        if FULL7FFD
        ld bc,0x7ffd ;FIX
        out (c),a ;FIX
        else
        out (0xfd),a ;+28
        endif
muzplayaddr_mc=$+1
        call muztormoz ;0xc003 ;[+1271]1437
        ld a,pgmain+PAGEOR
        if FULL7FFD
        ld bc,0x7ffd ;FIX
        out (c),a ;FIX
        else
        out (0xfd),a ;+18 = 1317 = 62*21 + 15
        endif
        call counttime ;1368 ;1397t ;там же sfx
        if 1==1 ;bfox's player
        if FULL7FFD
        ld bc,43 -8 -5 ;FIX
        else
         add hl,hl
        ld bc,43 -8
        endif
        ld d,b
        ldir ;10+4+2352-5t
        else ;TmK's player
        if FULL7FFD
        ld bc,43 -5 ;FIX
        else
         ld a,r
        ld bc,43
        endif
        ld d,b
        ldir ;10+4+2352-5t
        endif
;t=17673..6
       endif

       ;28 знакомест без патча:
        dup MCHGT
        dup 4
;4YYYyy -> 4yy YYY00000
_a=((_y&3)*0x100)+(((_y&0x1c)/4)*32)+(((_y&0x20)/0x20)*0x400)+attr
        ;display _a
;-109 (выдерживает -14 от этого)
        ld sp,_a+8
        pop bc:pop de:pop hl:exx:pop af:pop bc:pop de:pop ix:pop iy ;68+34
        ld sp,_a+2
        pop hl;ld hl,(_a+2)
;(выведены 6-7,8-9)
        ld (_sa+2),hl ;+32,40 (2,3)
        pop hl;ld hl,(_a+4)
;(выведены 16-17,18-19)
        ld (_sa+4),hl ;+72,80 (4,5)
        pop hl;ld hl,(_a+6)
;(выведены 26-27,28-29)
        ld (_sa+6),hl ;+112,120 (6,7)
        ld sp,_sa+24 ;куда выводить через push ;10
        push iy ;+135 (23,22) <--- при смещении -14(даже -17) эта команда выравнивается на 120(106+12),128
        push ix ;+150 (21,20)
        push de ;+161 (19,18)
        push bc ;+172 (17,16)
        push af ;+183 (15,14)
        exx ;+187
        push hl ;+198 (13,12)
        push de ;+209 (11,10)
        push bc ;+220 (9,8)
        ld sp,_a+24 ;откуда делать pop ;+230=+8 ;-4 t на 128/+3
        pop hl ;+18 ;-4 t на 128/+3
;(выведены 6-7,8-9)
        ld (_sa+24),hl ;+32,40 (24,25)
        pop hl
;(выведены 14-15,16-17)
        ld (_sa+26),hl ;+64,72 (26,27)
        pop hl
;(выведены 22-23,24-25)
        ld (_sa+28),hl ;+96,104-1 (28,29)
;=212 t - надо паузу 5..12 (на 128K/+3 будет 212 t - надо паузу 9..16)
;т.е. надо паузу 11 t (add hl,hl) для всех машин
;терпит смещение на -14 (INT пришёл ровно между командами), даже -17
;терпит смещение на +8 (INT пришёл на команде длительностью 22t)
;теперь синхронизатор не нужен при командах до 22t включительно - нельзя использовать команды типа rl (ix), set 0,(ix) и ex (sp),ix, остальные можно, в том числе можно rld и bit n,(ix)
;начинать мультиколор на 14237+0..22
;или начинать на 1 такт раньше, тогда можно все команды (в том числе 23t)
_=$
        ;ex (sp),hl
        ;ex (sp),hl
        ;add hl,hl
        ld b,4
        djnz $
_y=_y+1
;_a=_a+32
        edup
        org _
        add hl,hl;ld b,(hl);ds 2;nop;add hl,hl
        ld b,5;9;11;14;18;15
        djnz $
_sa=_sa+32
        edup
        org _
;12 bytes more than 48K/128K
       display $
