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
???
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.
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...
Entonces la respuesta a la pregunta podría ser esta
GLOBAL
int addrmask = 3fffh;
Perfecto ya compila, y de estos cual seria la equivalencia:
0x2000;
0x800;
0x801;
0x7C0;
0x7D0;
0x7E0;
0x7F0;
0x400;
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?
free,¿te estas quedando con nosotros? :D
2000h;
800h;
801h;
7C0h;
7D0h;
7E0h;
7F0h;
400h;
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
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.
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;
Bueno, ya me habeis resuelto el problema mientras posteaba! ;D
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.
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.
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
ya te digo, se entemezclan, estamos los tres hiperactivos.
Hhheheheh, una duda offtopic, que equivalente en Bennu a la variable de sistema de DIV, llamada: unit_size ??
Grácias amiguetes.
no existe... a que valor esta seteada?
1.
Para que sirve ?
para alinear los datos que se graban... entonces no te preocupes, bennu esta alineado a 1.