Jde to vlastne i rovnou pomoci DE
draw_sprite: ld hl, SPRITE_ADR ; 3:10 ld c, 3 ; 2:7 výška spritu v řádcích draw_sprite_1: di ; 1:4 ld (draw_sprite_e+1), sp ; 4:20 ld sp, hl ; 1:6 adresa, od níž začíná maska spritu ;[11:47] draw_sprite_2: ld b, 8 ; 2:7 počitadlo zapsaných řádků draw_sprite_3: pop hl ; 1:10 ; první sloupec ld a, (de) ; 1:7 and h ; 1:4 xor l ; 1:4 ld (de), a ; 1:7 inc e ; 1:4 pop hl ; 1:10 ; druhý sloupec ld a, (de) ; 1:7 and h ; 1:4 xor l ; 1:4 ld (de), a ; 1:7 inc e ; 1:4 pop hl ; 1:10 ; třetí sloupec ld a, (de) ; 1:7 and h ; 1:4 xor l ; 1:4 ld (de), a ; 1:7 dec e ; 1:4 dec e ; 1:4 inc d ; 1:4 posun na definici dalšího obrazového řádku djnz draw_sprite_3 ; 2:13/8 vnitřní smyčka: blok s 3x osmi zápisy ;[22:1027=8*129-5] dec c ; 1:4 jr z, draw_sprite_e ; 2:7/12 ld a, e ; 1:4 add a, 0x20 ; 2:7 ld e, a ; 1:4 jr c, draw_sprite_2 ; 2:7/12 ld a, d ; 1:4 sub 0x08 ; 2:7 ld d, a ; 1:4 jr draw_sprite_2 ; 2:12 draw_sprite_e: ld sp, 0x0000 ; 3:10 ei ; 1:4 ret ; 1:10 návrat z podprogramu
26. 7. 2023, 21:55 editováno autorem komentáře