radastan escribió:na_th_an escribió:Mañana podrás pillarla del código.
HYPEx2

Entonces copiopego o me voy de tapas?
Moderador: na_th_an
radastan escribió:na_th_an escribió:Mañana podrás pillarla del código.
HYPEx2
Código: Seleccionar todo
// random.h
// New random routines. Code by Patrik Rak, adapted by na_th_an
extern unsigned int seed1 [0];
extern unsigned int seed2 [0];
extern unsigned char randres [0];
#asm
._seed1 defw 0
._seed2 defw 0
._randres defb 0
#endasm
unsigned char rand (void) {
#asm
.rnd
ld hl,0xA280
ld de,0xC0DE
ld a,h ; t = x ^ (x << 1)
add a,a
xor h
ld h,l ; x = y
ld l,d ; y = z
ld d,e ; z = w
ld e,a
rra ; t = t ^ (t >> 1)
xor e
ld e,a
ld a,d ; w = w ^ ( w << 3 ) ^ t
add a,a
add a,a
add a,a
xor d
xor e
ld e,a
ld (rnd+1),hl
ld (rnd+4),de
ld (_randres), a
#endasm
return randres [0];
}
void srand (void) {
#asm
ld hl, (_seed1)
ld (rnd+1),hl
ld hl, (_seed2)
ld (rnd+4),hl
#endasm
}
Código: Seleccionar todo
seed1 [0] = a; seed2 [0] = b;
srand ();
Código: Seleccionar todo
c = rand () & 3;
Código: Seleccionar todo
c = rand () % 12;
Código: Seleccionar todo
c = a + (rand () % (b - a + 1));
Código: Seleccionar todo
c = rand () & 31;
Código: Seleccionar todo
blablabla
ld (_randres), a
#endasm
return randres [0];
}
Código: Seleccionar todo
blablabla
ld l, a
#endasm
}
Hark0 escribió:Acerca de las rutinas @Radastan,
He añadido las dos funciones put_char y put_sprite_x8.
Si hago un put_char("A",x,y); obtengo un tile de 8x8 pixels con el color de tinta del CLS(x); pero claro, basura porque no tengo declarado "A"...
Si hago un put_char(sprite8x8,x,y); obtengo el tile esperado de 8x8 pixels con el color de tinta del CLS(x);
Si hago un put_sprite_x8(sprite8x8,x,y); sin problemas... pinta el tile esperado y con el color declarado al cargar los datos del gráfico.
Y por otro lado tengo el "addon" de na_th_an para usar la rutina draw_fast (unsigned char x, unsigned char y, unsigned char clr, unsigned char *s)
hmmm ¿cual es la mejor opción para el texto?
Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 3 invitados