HispaMSX

RE: [hispamsx] RE: ayuda con z88dk & assembler

2005-04-11 16:32:45

Buenas. Lo que creo que estás haciendo mal es que estás accediendo a ROM y
por tanto tu variable es de sólo lectura. Tu dirección de memoria es la
41000, lo que significa que en hexadecimal es la a028 y esto está en la
página 2 (de 8000h a bfffh). Tienes que usar variables de la página 3 (de
c000h a ffffh) que es donde está alojada la RAM. Un saludo.

Dani
-----Mensaje original-----
De: the_goulin [mailto:msx(_en_)cpmspain(_punto_)com] 
Enviado el: lunes, 11 de abril de 2005 16:08
Para: hispamsx(_en_)yahoogroups(_punto_)com
Asunto: [hispamsx] RE: ayuda con z88dk & assembler




Bueno, ahora ya empiezo a pensar que estoy DESaprendiendo o_O!  

hace tiempo que estoy desconectado del temilla, pero este codigo no deberia
funcionar y modificar la direccion 41000?

.ORG 40000
.BASIC
ld hl,41000
ld (hl),234
ret

lo he compilado con el asMSX y lo he probado con el blueMSX (el codigo en C
tambien esta probado con el blueMSX)  

Saludillos y gracias

--- En hispamsx(_en_)yahoogroups(_punto_)com, "the_goulin" <msx@c...> escribió:

Hola

tengo un problemilla con el z88dk y un minicodigo en assembler.

la cuestion es que quiero cambiar el valor de una direccion de memoria 
y no hay manera.

alguien me sabe decir donde tengo el fallo?


#include <stdio.h>

unsigned int val16;
unsigned char val8;

void poke(unsigned int direccion,unsigned char valor);
void peek(unsigned int direccion);
main()
{

      poke(41000,100);
      printf("--------\n");
}

void poke(unsigned int direccion,unsigned char valor)
{
        val16=direccion;
        val8=valor;
        #asm
                ld hl,_val16
                ld a,_val8
          ld (hl),a
        #endasm
}


luego desde el basic hago print peek(41000) y no obtengo el 100
¿?¿?¿?¿?¿


alguien puede ayudarme please.

Saludillos





*HispaMSX. La mailing-list de MSX en castellano*
Para cualquier duda: hispamsx-owner(_en_)yahoogroups(_punto_)com
Web de lista: http://www.hispamsx.org 
Enlaces a Yahoo! Grupos


    hispamsx-unsubscribe(_en_)yahoogroups(_punto_)com

    http://es.docs.yahoo.com/info/utos.html
 





<Anterior en la conversación] Conversación actual [Siguiente en la conversación>