;------- aligned --------------        
;prspr_y0_x4=286b (даже при sprhgt=16 не лезет в 256b)
;к тому же, в том же сегменте должны быть входы во все sprhgt и x&4 (19 входов, не считая этот)
;поэтому одна y-фаза prspr должна занимать 512 байт со всеми sprhgt и x&4 (можно туда же respr? +154b, итого 506), но тело x0go придётся убрать в невыровненную память

PAUSE2LINES=4*1-3
PAUSE4LINES=4*2-3
PAUSE6LINES=4*3-3
PAUSE8LINES=4*4-3
PAUSE10LINES=4*5-3
PAUSE12LINES=4*6-3
PAUSE14LINES=4*7-3
PAUSE16LINES=4*8-3
PAUSE18LINES=4*9-3

trespr
respr_y0
        ld ix,respr_y0_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y2
        ld ix,respr_y2_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y4
        ld ix,respr_y4_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y6
        ld ix,respr_y6_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y8
        ld ix,respr_y8_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y10
        ld ix,respr_y10_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y12
        ld ix,respr_y12_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)
respr_y14
        ld ix,respr_y14_go ;чтобы в следующий раз перейти по jp (ix) на настоящий вход в ветку
        jp (ix)

        display "one yphase start = ",$
prspr_y0
prspr_y0_x0_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y0_x0_hgt0go
        db PAUSE18LINES
prspr_y0_x0_hgt2
        jp prsprpause_0downhl8
        dw prspr_y0_x0_hgt2go
        db PAUSE16LINES
prspr_y0_x0_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y0_x0_hgt4go
        db PAUSE14LINES
prspr_y0_x0_hgt6
        jp prsprpause_0downhl8
        dw prspr_y0_x0_hgt6go
        db PAUSE12LINES
prspr_y0_x0_hgt8
        jp prsprpause_0downhl8_goattr
        dw prspr_y0_x0_hgt8go
        db PAUSE10LINES
prspr_y0_x0_hgt10
        jp prsprpause_1downhl8
        dw prspr_y0_x0_hgt10go
        db PAUSE8LINES
prspr_y0_x0_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y0_x0_hgt12go
        db PAUSE6LINES
prspr_y0_x0_hgt14
        jp prsprpause_1downhl8
        dw prspr_y0_x0_hgt14go
        db PAUSE4LINES
prspr_y0_x0_hgt16
        jp prsprpause_1downhl8_goattr
        dw prspr_y0_x0_hgt16go
        db PAUSE2LINES
prspr_y0_x0_hgt18
        jp prspr_y0_x0go ;10

prspr_x4=$&0xff
prspr_y0_x4_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y0_x4_hgt0go
        db PAUSE18LINES
prspr_y0_x4_hgt2
        jp prsprpause_0downhl8
        dw prspr_y0_x4_hgt2go
        db PAUSE16LINES
prspr_y0_x4_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y0_x4_hgt4go
        db PAUSE14LINES
prspr_y0_x4_hgt6
        jp prsprpause_0downhl8
        dw prspr_y0_x4_hgt6go
        db PAUSE12LINES
prspr_y0_x4_hgt8
        jp prsprpause_0downhl8_goattr
        dw prspr_y0_x4_hgt8go
        db PAUSE10LINES
prspr_y0_x4_hgt10
        jp prsprpause_1downhl8
        dw prspr_y0_x4_hgt10go
        db PAUSE8LINES
prspr_y0_x4_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y0_x4_hgt12go
        db PAUSE6LINES
prspr_y0_x4_hgt14
        jp prsprpause_1downhl8
        dw prspr_y0_x4_hgt14go
        db PAUSE4LINES
prspr_y0_x4_hgt16
        jp prsprpause_1downhl8_goattr
        dw prspr_y0_x4_hgt16go
        db PAUSE2LINES
prspr_y0_x4_hgt18
        ex de,hl ;4
        inc l
        inc hl ;10
	SPR2LINES0_x4
prspr_y2_x4_hgt16go
	SPR2LINES1_x4
prspr_y4_x4_hgt14go
	SPR2LINES0_x4
prspr_y6_x4_hgt12go
	SPR2LINES1_x4
        DOWNHL8_AFTERLINES1
prspr_y0_x4_hgt10go
	SPR2LINES0_x4
prspr_y2_x4_hgt8go
	SPR2LINES1_x4
prspr_y4_x4_hgt6go
	SPR2LINES0_x4
prspr_y6_x4_hgt4go
	SPR2LINES1_x4
        DOWNHL8_AFTERLINES1
prspr_y0_x4_hgt2go
	SPR2LINES0_x4
        org $-1 ;-4
prspr_y2_x4_hgt0go
        PRSPREND

respr_y0_go
         add hl,de ;+=4
        exx
        pop de ;scr
        pop bc ;tile1_tile2
       ld l,c ;tile1
       ;inc l*0..3 ;чтобы начать с правильного места тайла в зависимости от yphase ;вместо 3 можно: ld a,c:add a,3:ld l,a
       ld h,tilegfx/256/4 ;вместо одного pop (+1t)
         add hl,hl
       ;inc l*0..1 ;чтобы начать с правильного места тайла в зависимости от yphase
         add hl,hl
        ld sp,hl
        ex de,hl ;hl=scr
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR_DOWNHL8
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR_DOWNHL8
        ex de,hl
       ld l,b ;tile2
       ld h,tilegfx/256/4 ;(+11t) ;проигрыш +8t/вход - выгодно по времени генератора!
         add hl,hl
         add hl,hl
        ld sp,hl ;tilegfx_tile2
        ex de,hl
        RESPR2LINES
        org $-1
        dec ly
        ;jr z,resprskipattr_y0
        jp nz,respr_y0_continue
resprskipattr_y0
        ld ly,hy
         exx
         ld sp,hl
         inc l
         inc hl ;+=2
        ret ;restorer / resprq
        
        ;display "one yphase = ",$-trespr;prspr_y0 ;<0x160
nomcq
        if PENT == 1
        jp ayplay
muzq
resprq
        else
resprq
        jp ayplay
muzq
        endif
onintsp=$+1
        ld sp,0
        if NOEXX
        pop af
        ex af,af'
        else
        pop hl
        pop de
        pop bc
        exx
        endif
        pop iy
        pop ix
        pop hl
        pop de
        pop bc
        pop af
        ei
        ret

        display "$ before align=",$
        
        ;align 256
        ds prspr_y0+0x200-$
        display "one yphase start = ",$
prspr_y2
prspr_y2_x0_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y2_x0_hgt0go
        db PAUSE18LINES
prspr_y2_x0_hgt2
        jp prsprpause_0downhl8
        dw prspr_y2_x0_hgt2go
        db PAUSE16LINES
prspr_y2_x0_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y2_x0_hgt4go
        db PAUSE14LINES
prspr_y2_x0_hgt6
        jp prsprpause_0downhl8
        dw prspr_y2_x0_hgt6go
        db PAUSE12LINES
prspr_y2_x0_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y2_x0_hgt8go
        db PAUSE10LINES
prspr_y2_x0_hgt10
        jp prsprpause_1downhl8
        dw prspr_y2_x0_hgt10go
        db PAUSE8LINES
prspr_y2_x0_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y2_x0_hgt12go
        db PAUSE6LINES
prspr_y2_x0_hgt14
        jp prsprpause_1downhl8
        dw prspr_y2_x0_hgt14go
        db PAUSE4LINES
prspr_y2_x0_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y2_x0_hgt16go
        db PAUSE2LINES
prspr_y2_x0_hgt18
        jp prspr_y2_x0go ;10

prspr_y2_x4_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y2_x4_hgt0go
        db PAUSE18LINES
prspr_y2_x4_hgt2
        jp prsprpause_0downhl8
        dw prspr_y2_x4_hgt2go
        db PAUSE16LINES
prspr_y2_x4_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y2_x4_hgt4go
        db PAUSE14LINES
prspr_y2_x4_hgt6
        jp prsprpause_0downhl8
        dw prspr_y2_x4_hgt6go
        db PAUSE12LINES
prspr_y2_x4_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y2_x4_hgt8go
        db PAUSE10LINES
prspr_y2_x4_hgt10
        jp prsprpause_1downhl8
        dw prspr_y2_x4_hgt10go
        db PAUSE8LINES
prspr_y2_x4_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y2_x4_hgt12go
        db PAUSE6LINES
prspr_y2_x4_hgt14
        jp prsprpause_1downhl8
        dw prspr_y2_x4_hgt14go
        db PAUSE4LINES
prspr_y2_x4_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y2_x4_hgt16go
        db PAUSE2LINES
prspr_y2_x4_hgt18
        ex de,hl ;4
        inc l
        inc hl ;10
	SPR2LINES0_x4
prspr_y4_x4_hgt16go
	SPR2LINES1_x4
prspr_y6_x4_hgt14go
	SPR2LINES0_x4
        DOWNHL8_AFTERLINES0
prspr_y0_x4_hgt12go
	SPR2LINES1_x4
prspr_y2_x4_hgt10go
	SPR2LINES0_x4
prspr_y4_x4_hgt8go
	SPR2LINES1_x4
prspr_y6_x4_hgt6go
	SPR2LINES0_x4
        DOWNHL8_AFTERLINES0
prspr_y0_x4_hgt4go
	SPR2LINES1_x4
prspr_y2_x4_hgt2go
	SPR2LINES0_x4
        org $-1 ;-4
prspr_y4_x4_hgt0go
        PRSPREND

respr_y0_continue
         rrc h ;было h0=1, результат 0xa0+ ;мы в конце атрибутов, будет отрисовывать их задом наперёд
        ex de,hl
       ld l,b ;tile2
       dup 3;0..3
       inc l ;чтобы начать с правильного места тайла в зависимости от yphase_end
       edup
       ld h,tileattr/256/2
         add hl,hl
        ld sp,hl ;tileattr_tile2 ;атрибуты лежат задом наперёд по сравнению с пикселями
        ex de,hl
        RESPR1LINEATTR
        RESPR_UPHL8ATTR
        ex de,hl
       ld l,c ;tile1
       ld h,tileattr/256/2
         add hl,hl
        ld sp,hl ;tileattr_tile1 ;атрибуты лежат задом наперёд по сравнению с пикселями
        ex de,hl
        RESPR2LINESATTR
        RESPR2LINESATTR
        RESPR_UPHL8ATTR
        RESPR2LINESATTR
        RESPR2LINESATTR
        org $-1
         exx
         ld sp,hl
        jp (ix) ;ix рассчитан в зависимости от ветки yphase
        
;после jp prsprpause лежит dw quitaddr_after_pause:db 4*waitlines-1 (на выходе надо восстановить 7ffd)
;l = f(sprhgt,x&4)
;на выходе надо сделать ex de,hl
;для sprhgt = 16,12,... надо перейти к атрибутам, иначе как есть
;для (x&4)!=0 надо inc l:inc l
;пауза зависит от фазы y и hgt (downhl8=+34), потому что надо учитывать downhl8!!!
;2 строки = 172t (4*43)
;через ix, чтобы реентерабельно (можно вызывать вне прерывания)
prsprpause_0downhl8
        nop
prsprpause_0downhl8_nop
        ds 2
        jr $+2
        jp $+3 ;34
prsprpause_1downhl8
        ;jr $+2
        ;jr $+2
        ;jp $+3 ;34
        ld a,2
        dec a
        jr nz,$-1
prsprpause_2downhl8
        jr $+2 ;12
        ld a,l
        cp prspr_x4 ;11       
        jp nc,prsprpause_x4
prsprpause_x4q10 ;FIX
        jp prsprpause_x4q
prsprpause_x4
        inc e
        inc de
prsprpause_x4q ;10+10     
        inc l
        inc l
        inc l
        ;ld c,(hl)
         ld a,(hl)
         ld lx,a
        inc hl;l
        ;ld b,(hl)
        ;ld (prsprpause_jp),bc
         ld a,(hl)
         ld hx,a
         ;nop
        inc hl;l
        ld a,(hl) ;61
prsprpause0
        add hl,hl
        add hl,hl
        dec a
        ret m
        jr nz,prsprpause0 ;43t loop
;-5
         ;jp $+3 ;где-то прозевал 10t
         ;jr $+2
          add hl,hl
          add hl,hl
        ex de,hl
;        ld bc,0x7ffd
;prsprpause_jp=$+1
;        jp 0 ;24
         jp (ix) ;24
;10+12+11+20+61+(43*1)-5+24 = 176 (больше 2 строк (172t), т.к. пауза скомпенсировала ex de,hl)

;prsprpause_0downhl8_goattr
;        jp prsprpause_0downhl8_goattr_minus10 ;FIX

        display "$ before align=",$

        ;align 256
        ds prspr_y2+0x200-$
        display "one yphase start = ",$
prspr_y4
prspr_y4_x0_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y4_x0_hgt0go
        db PAUSE18LINES
prspr_y4_x0_hgt2
        jp prsprpause_0downhl8
        dw prspr_y4_x0_hgt2go
        db PAUSE16LINES
prspr_y4_x0_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y4_x0_hgt4go
        db PAUSE14LINES
prspr_y4_x0_hgt6
        jp prsprpause_1downhl8
        dw prspr_y4_x0_hgt6go
        db PAUSE12LINES
prspr_y4_x0_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y4_x0_hgt8go
        db PAUSE10LINES
prspr_y4_x0_hgt10
        jp prsprpause_1downhl8
        dw prspr_y4_x0_hgt10go
        db PAUSE8LINES
prspr_y4_x0_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y4_x0_hgt12go
        db PAUSE6LINES
prspr_y4_x0_hgt14
        jp prsprpause_2downhl8
        dw prspr_y4_x0_hgt14go
        db PAUSE4LINES
prspr_y4_x0_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y4_x0_hgt16go
        db PAUSE2LINES
prspr_y4_x0_hgt18
        jp prspr_y4_x0go ;10

prspr_y4_x4_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y4_x4_hgt0go
        db PAUSE18LINES
prspr_y4_x4_hgt2
        jp prsprpause_0downhl8
        dw prspr_y4_x4_hgt2go
        db PAUSE16LINES
prspr_y4_x4_hgt4
        jp prsprpause_0downhl8_goattr
        dw prspr_y4_x4_hgt4go
        db PAUSE14LINES
prspr_y4_x4_hgt6
        jp prsprpause_1downhl8
        dw prspr_y4_x4_hgt6go
        db PAUSE12LINES
prspr_y4_x4_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y4_x4_hgt8go
        db PAUSE10LINES
prspr_y4_x4_hgt10
        jp prsprpause_1downhl8
        dw prspr_y4_x4_hgt10go
        db PAUSE8LINES
prspr_y4_x4_hgt12
        jp prsprpause_1downhl8_goattr
        dw prspr_y4_x4_hgt12go
        db PAUSE6LINES
prspr_y4_x4_hgt14
        jp prsprpause_2downhl8
        dw prspr_y4_x4_hgt14go
        db PAUSE4LINES
prspr_y4_x4_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y4_x4_hgt16go
        db PAUSE2LINES
prspr_y4_x4_hgt18
        ex de,hl ;4
        inc l
        inc hl ;10
	SPR2LINES0_x4
prspr_y6_x4_hgt16go
	SPR2LINES1_x4
        DOWNHL8_AFTERLINES1
prspr_y0_x4_hgt14go
	SPR2LINES0_x4
prspr_y2_x4_hgt12go
	SPR2LINES1_x4
prspr_y4_x4_hgt10go
	SPR2LINES0_x4
prspr_y6_x4_hgt8go
	SPR2LINES1_x4
        DOWNHL8_AFTERLINES1
prspr_y0_x4_hgt6go
	SPR2LINES0_x4
prspr_y2_x4_hgt4go
	SPR2LINES1_x4
prspr_y4_x4_hgt2go
	SPR2LINES0_x4
        org $-1 ;-4
prspr_y6_x4_hgt0go
        PRSPREND

respr_y2_go
         add hl,de ;+=4
        exx
        pop de ;scr
        pop bc ;tile1_tile2
       ld l,c ;tile1
       ;inc l*0..3 ;чтобы начать с правильного места тайла в зависимости от yphase ;вместо 3 можно: ld a,c:add a,3:ld l,a
       ld h,tilegfx/256/4 ;вместо одного pop (+1t)
         add hl,hl
       inc l;*0..1 ;чтобы начать с правильного места тайла в зависимости от yphase
         add hl,hl
        ld sp,hl
        ex de,hl ;hl=scr
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR_DOWNHL8
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR2LINES
        RESPR_DOWNHL8
        ex de,hl
       ld l,b ;tile2
       ld h,tilegfx/256/4 ;(+11t) ;проигрыш +8t/вход - выгодно по времени генератора!
         add hl,hl
         add hl,hl
        ld sp,hl ;tilegfx_tile2
        ex de,hl
        RESPR2LINES
        RESPR2LINES
        org $-1
        dec ly
        ;jr z,resprskipattr_y2
        jp nz,respr_y2_continue
resprskipattr_y2
        ld ly,hy
         exx
         ld sp,hl
         inc l
         inc hl ;+=2
        ret ;restorer / resprq

prsprpause_0downhl8_goattr
;prsprpause_0downhl8_goattr_minus10
        ;jr $+2 ;FIX
        ;jr $+2 ;FIX
        ld a,2 ;FIX
        dec a ;FIX
        jr nz,$-1 ;34 ;FIX
;34
        ;ld a,2
        ;dec a
        ;jr nz,$-1
prsprpause_1downhl8_goattr
        ;jr $+2
        ;jr $+2
        ;jp $+3 ;34
        ld a,2
        dec a
        jr nz,$-1 ;34
prsprpause_2downhl8_goattr
        scf
        rr d ;было CY=1, результат 0xa0+ ;12
	 inc e
	 ld a,(hl) ;11
	 ;jp $+3 ;FIX
	 jp prsprpause_x4q10 ;10+10+10 ;FIX
        ;ld a,l
        ;cp prspr_x4 ;11
        ;jp nc,prsprpause_x4
        ;jp prsprpause_x4q ;10+10

        display "$ before align=",$
        
        ;align 256
        ds prspr_y4+0x200-$
        display "one yphase start = ",$
prspr_y6
prspr_y6_x0_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y6_x0_hgt0go
        db PAUSE18LINES
prspr_y6_x0_hgt2
        jp prsprpause_0downhl8
        dw prspr_y6_x0_hgt2go
        db PAUSE16LINES
prspr_y6_x0_hgt4
        jp prsprpause_1downhl8_goattr
        dw prspr_y6_x0_hgt4go
        db PAUSE14LINES
prspr_y6_x0_hgt6
        jp prsprpause_1downhl8
        dw prspr_y6_x0_hgt6go
        db PAUSE12LINES
prspr_y6_x0_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y6_x0_hgt8go
        db PAUSE10LINES
prspr_y6_x0_hgt10
        jp prsprpause_1downhl8
        dw prspr_y6_x0_hgt10go
        db PAUSE8LINES
prspr_y6_x0_hgt12
        jp prsprpause_2downhl8_goattr
        dw prspr_y6_x0_hgt12go
        db PAUSE6LINES
prspr_y6_x0_hgt14
        jp prsprpause_2downhl8
        dw prspr_y6_x0_hgt14go
        db PAUSE4LINES
prspr_y6_x0_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y6_x0_hgt16go
        db PAUSE2LINES
prspr_y6_x0_hgt18
        jp prspr_y6_x0go ;10

prspr_y6_x4_hgt0
        jp prsprpause_0downhl8_nop
        dw prspr_y6_x4_hgt0go
        db PAUSE18LINES
prspr_y6_x4_hgt2
        jp prsprpause_0downhl8
        dw prspr_y6_x4_hgt2go
        db PAUSE16LINES
prspr_y6_x4_hgt4
        jp prsprpause_1downhl8_goattr
        dw prspr_y6_x4_hgt4go
        db PAUSE14LINES
prspr_y6_x4_hgt6
        jp prsprpause_1downhl8
        dw prspr_y6_x4_hgt6go
        db PAUSE12LINES
prspr_y6_x4_hgt8
        jp prsprpause_1downhl8_goattr
        dw prspr_y6_x4_hgt8go
        db PAUSE10LINES
prspr_y6_x4_hgt10
        jp prsprpause_1downhl8
        dw prspr_y6_x4_hgt10go
        db PAUSE8LINES
prspr_y6_x4_hgt12
        jp prsprpause_2downhl8_goattr
        dw prspr_y6_x4_hgt12go
        db PAUSE6LINES
prspr_y6_x4_hgt14
        jp prsprpause_2downhl8
        dw prspr_y6_x4_hgt14go
        db PAUSE4LINES
prspr_y6_x4_hgt16
        jp prsprpause_2downhl8_goattr
        dw prspr_y6_x4_hgt16go
        db PAUSE2LINES
prspr_y6_x4_hgt18
        ex de,hl ;4
        inc l
        inc hl ;10
	SPR2LINES0_x4
        DOWNHL8_AFTERLINES0
prspr_y0_x4_hgt16go
	SPR2LINES1_x4
prspr_y2_x4_hgt14go
	SPR2LINES0_x4
prspr_y4_x4_hgt12go
	SPR2LINES1_x4
prspr_y6_x4_hgt10go
	SPR2LINES0_x4
        DOWNHL8_AFTERLINES0
prspr_y0_x4_hgt8go
	SPR2LINES1_x4
prspr_y2_x4_hgt6go
	SPR2LINES0_x4
prspr_y4_x4_hgt4go
	SPR2LINES1_x4
prspr_y6_x4_hgt2go
	SPR2LINES0_x4
        org $-1 ;-4
prspr_y0_x4_hgt0go
        PRSPREND

respr_y2_continue
         rrc h ;было h0=1, результат 0xa0+ ;мы в конце атрибутов, будет отрисовывать их задом наперёд
        ex de,hl
       ld l,b ;tile2
       dup 3;0..3
       inc l ;чтобы начать с правильного места тайла в зависимости от yphase_end
       edup
       ld h,tileattr/256/2
         add hl,hl
        ld sp,hl ;tileattr_tile2 ;атрибуты лежат задом наперёд по сравнению с пикселями
        ex de,hl
        RESPR2LINESATTR
        RESPR_UPHL8ATTR
        ex de,hl
       ld l,c ;tile1
       ld h,tileattr/256/2
         add hl,hl
        ld sp,hl ;tileattr_tile1 ;атрибуты лежат задом наперёд по сравнению с пикселями
        ex de,hl
        RESPR2LINESATTR
        RESPR2LINESATTR
        RESPR_UPHL8ATTR
        RESPR2LINESATTR
        RESPR2LINESATTR
        org $-1-2 ;1 line in the end, not 2
         exx
         ld sp,hl
        jp (ix) ;ix рассчитан в зависимости от ветки yphase


