Declaraciones de la Memoria

Started by FreeYourMind, April 06, 2010, 08:30:52 PM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

FreeYourMind

Buenas, en DIV se podian hacer declaraciones de memoria, como lo podria hacer en Bennu ?

Por ejemplo, como declararia la siguiente declaración válida de DIV:

GLOBAL

int addrmask = 0x3fff;

Grácias

SplinterGU

Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Eso no es una declaración de memoria sino una declaración de un entero asignándole un valor en formato hexadecimal en vez de decimal, también podrías haberlo asignado en formato binario con el prefijo 0b.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

lo que en div se representaba como 0x... aca hay que hacerlo terminando el numero con "h".

por otro lado, las direcciones de memoria necesitan punteros y en DOS se manejan diferente a los lenguajes actuales... ahora no se puede acceder a cualquier zona de memoria asi nomas...
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Entonces la respuesta a la pregunta podría ser esta

GLOBAL
     int addrmask = 3fffh;

Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

FreeYourMind

Perfecto ya compila, y de estos cual seria la equivalencia:

0x2000;
0x800;
0x801;
0x7C0;
0x7D0;
0x7E0;
0x7F0;
0x400;

SplinterGU

todos sacale la x, dejale el 0 delante y una h al final...

o sea, que te referias solo a como meter el valor hexadecimal?
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

free,¿te estas quedando con nosotros? :D

2000h;
800h;
801h;
7C0h;
7D0h;
7E0h;
7F0h;
400h;
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

DCelso

El 0 al principio solo hace falta si el número empieza por letra, es decir, A,B,C,D,E o F.
Por ejemplo 0xFF13 sería 0FF13h
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

ya lo se que no hace falta, queria evitar la explicacion... cuando haces algo de una forma en algunos casos, luego tienes que explicar porque no en otros... :P

es correcto, si empieza con letra es obligatorio ponerle un 0, para que se interprete como numero (los hexa son numeros)... si ya empieza con numero es opcional.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

FreeYourMind

Este no me lo reconoce:

0xea lo cambio a eah


o mejor como cambiaria esto:

GLOBAL

BYTE  free[70000] ;

He pasado esto:

free[0x38a8] = 0xea;
free[0x38a9] = 0xea;
free[0x38ae] = 0xea;
free[0x38af] = 0xea;

a esto:

free[38a8h] = eah; // Aqui falla, no reconoce 'eah'
free[38a9h] = eah;
free[38aeh] = eah;
free[38afh] = eah;

FreeYourMind

Bueno, ya me habeis resuelto el problema mientras posteaba!  ;D

SplinterGU

puf!

me da la impresion que no lees lo que escribo... :D (chiste)

tienes que poner un 0 delante... por eso decia, que solo quites la x y agregues h al final, es mas facil de comprender y puedes automatizar el cambio mas facilmente.
Download Lastest BennuGD Release: http://www.bennugd.org/node/2

DCelso

Spinter tenías razón ;), tenía que haberle dícho que era obligatorio el cero al principio y así no le hubiera dado este error :D

free[38a8h] = 0eah;
free[38a9h] = 0eah;
free[38aeh] = 0eah;
free[38afh] = 0eah;

free, intenta leer varias veces los posts de respuesta antes de volver a preguntar :D.
Monstruos Diabólicos

"A PAck of classic GAMEs For BennuGD" en desarrollo
http://code.google.com/p/apagame4be/

SplinterGU

Quote from: FreeYourMind on April 06, 2010, 09:49:45 PM
Bueno, ya me habeis resuelto el problema mientras posteaba!  ;D

;)

EDIT: esto parece un chat... 2 veces seguidas me salto que habia una respuesta al querer postear... :D
Download Lastest BennuGD Release: http://www.bennugd.org/node/2