Proyecto de Sistemas Distribuidos 20150709-2222

Parece increíble pero el proyecto del miniblog hecho con Java RMI avanza a pasos agigantados; ya solamente necesito resolver la cuestión de la gestión de sesiones y callbacks, y con suerte mañana todo funcionará por primera vez.

Mientras tanto pienso en un posible método con un byte previo a cada N bytes donde cada bit indica si un byte es opaco o no:

{ ; ----
 ld a,(bc)
 ld (de),a
 inc [b]c
 inc [d]e
} = 2+2+1+1 = 6 [+2!] µs ; 4 bytes

{ ; HL=^MASKFLIP
 ld a,(bc)
 ld l,a
 ld a,(de)
 and (hl)
 or l
 ld (de),a
 inc [b]c
 inc [d]e
} = 2+1+2+2+1+2+1+1= 12 [+2!] µs ; 8 bytes

{ ; HL=^MASKFLIP+256
 ld a,(bc)
 ld l,a
 ld a,(hl)
 ld (de),a
 inc [b]c
 dec [d]e
} = 2+1+2+2+1+1 = 9 [+2!] µs ; 6 bytes

{ ; HL=^MASKFLIP
 ld a,(bc)
 ld l,a
 inc h
 ld l,(hl)
 dec h
 ld a,(de)
 and (hl)
 or l
 ld (de),a
 inc [b]c
 dec [d]e
} = 2+1+1+2+1+2+2+1+2+1+1= 12 [+2!] µs ; 11 bytes

para 6 bytes max,
* derecho: 6*4=24; 6* 8=48; 64*(24+48)/2= 2304
* reves..: 6*6=36; 6*11=66; 64*(36+66)/2= 3264

para 8 bytes max,
* derecho: 8*4=32; 8* 8=64; 256*(32+64)/2= 12288
* reves..: 8*6=48; 8*11=88; 256*(48+88)/2= 17408

20:47 04/07/2015

El código de control podría ser algo así:
{
 ld a,(bc)
 inc [b]c
 add a
 add lo JUMPTABLE
 ld l,a
 adc hi JUMPTABLE
 sub l
 ld h,a
 push hl
 ld h,hi MASKFLIP
 ret
} = 2+1+1+2+1+2+1+1+4+2+3= 20 [+1!] µs; 14 bytes
...
{ jp XXXX } = 5 µs; 3 bytes

Óptimos nuevos contra genéricos viejos:

* 25+12= 37 µs > 2*12= 24 (154,16%)
* 25+24= 49 µs > 4*12= 48 (102,08%)
* 25+36= 61 µs < 6*12= 72  (84,72%)

* 50+48=  98 µs > 4*24=  96 (102,08%)
* 50+60= 110 µs < 5*24= 120  (91,66%)
* 50+72= 122 µs < 6*24= 144  (84,72%)

 ld a,(bc) ; 2
 inc [b]c ; 1/2
 and a ; 1
 jr z,$+3 ; 3/2
 ld (de),a ; 2
 inc [d],e ; 1/2
 
 8/11

21:14 04/07/2015

No sé si tiene tanto sentido como parece tenerlo en mi cabeza. En general el método solamente parece mejorar el dibujo "bruto" de sprites cuando éstos son de más de 5 bytes de anchura (es decir, cuando miden tres caracteres o más). ¿Será suficiente para mover todos los sprites de "Parasol Stars" sin que el CPC se desplome agotado?

[ ◀◀ PRIMERO ] [ ◀ ANTERIOR ] [ ▲ ] [ ▶ POSTERIOR ] [ ▶▶ ÚLTIMO ]