Bien, he realizado esta rutina:
$this->bbcode_second_pass_code('', 'int port_in (int port)
{
#asm
ld hl,2
add hl,sp
ld c, (hl)
in a,(c)
ld h,0
ld l, a
#endasm
}')
Si hago un:
if (port_in(64510)&1) ....
Debería detectar si se pulsa la tecla Q.
¿Me estoy equivocando? es que "no doy con la tecla".
Leyendo el teclado ASM + Z88DK
Moderador: na_th_an
Re: Leyendo el teclado ASM + Z88DK
hola radastran
ld c, (hl) cambialo por ld bc, (hl). La instruccion in a, (c) lo que hace es que pone en la mitad inferior del bus de direcciones el valor de c y en el superior el b. Si te das cuenta, en tu rutina el registro B puede tener cualquier bazofia
Salu2.
ld c, (hl) cambialo por ld bc, (hl). La instruccion in a, (c) lo que hace es que pone en la mitad inferior del bus de direcciones el valor de c y en el superior el b. Si te das cuenta, en tu rutina el registro B puede tener cualquier bazofia
Salu2.
-
- Mensajes: 494
- Registrado: Jue, 24 Oct 2013, 15:52
Re: Leyendo el teclado ASM + Z88DK
Has hecho mal dos cosas, primero estás tratando al parámetro como un puntero y segundo lo que te indica iforeve (salvo que ld bc,(hl) no existe). Usando fastcall se te queda tan sencillo como esto:
$this->bbcode_second_pass_code('', '
int port_in __FASTCALL__ (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}')
$this->bbcode_second_pass_code('', '
int port_in __FASTCALL__ (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}')
Re: Leyendo el teclado ASM + Z88DK
tienes razon antonio, he visto que faltaba cargar el registro b y no he reparado en que no existe la instruccion. Es que la noche me confunde
Re: Leyendo el teclado ASM + Z88DK
Pues gracias a ambos, pero ninguna de vuestras dos soluciones funciona.
Os cuento:
ld bc, (hl)
esa instruccción no se puede hacer en Z88DK.
Y el fastcall da error de compilación.
Lo que me ha ido bien es hacer:
$this->bbcode_second_pass_code('', 'int port_in (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}')
Todo perfecto, al final habéis dado con la solución pero el problema era que os habíais pasado de sofisticación.
Lo importante es que funciona, muchísimas gracias a los dos.
Os cuento:
ld bc, (hl)
esa instruccción no se puede hacer en Z88DK.
Y el fastcall da error de compilación.
Lo que me ha ido bien es hacer:
$this->bbcode_second_pass_code('', 'int port_in (int port)
{
#asm
ld b, h
ld c, l
ld h, 0
in l, (c)
#endasm
}')
Todo perfecto, al final habéis dado con la solución pero el problema era que os habíais pasado de sofisticación.
Lo importante es que funciona, muchísimas gracias a los dos.
Re: Leyendo el teclado ASM + Z88DK
tu ere un cachondo radastran, nos has vacilao
-
- Mensajes: 494
- Registrado: Jue, 24 Oct 2013, 15:52
Re: Leyendo el teclado ASM + Z88DK
Radastan creo que el fastcall va delante de la función. Que funcione ahora no te garantiza que lo haga en futuras versiones
Re: Leyendo el teclado ASM + Z88DK
$this->bbcode_second_pass_quote('antoniovillena', 'R')adastan creo que el fastcall va delante de la función. Que funcione ahora no te garantiza que lo haga en futuras versiones
¿Y cuál es la función de __FASTCALL__?