Karoshi MSX Community
06 de Julio de 2021, 12:02:38 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: 1 [2] 3
  Imprimir  
Autor Tema: Desarrollo en C para MSX  (Leído 17794 veces)
0 Usuarios y 1 Visitante están viendo este tema.
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #15 : 01 de Mayo de 2006, 01:46:40 pm »

Pues por mi perfecto.
De C y C++ no tengo problemas .. sin embargo de programar a bajo nivel para MSX .. pues .. hombre .. he montado algun que otro emulador y tambien un interprete MSXBASIC .. vamos .. que al menos se por donde van los tiros.
Ya he conseguido hacer funcionar el SDCC y perfecto .. la verdad es que se comporta bien y tiene muchas opciones para optimizar codigo.
Lo que si es un poco complicado es lo de montar la ROM. Al menos he conseguido que el BLUEMSX se pete al cargarla :-) ya es algo.

typedef unsigned int u_int;

sfr at 0x98 vdp98;
sfr at 0x99 vdp99;

void set_mode(u_int mode)
{
   mode; //for avoid warning
_asm
   push bc
   push ix
   ld c, 6(ix)
   ld b, 7(ix)
   push bc
   pop ix
   call 5
   pop ix
   pop bc
_endasm;
}

void main (void)
{
   set_mode (2);
   while (1)
   {
   }
}

esta pinta tiene el programa C con el que he empezado a trabajar .. con el siguiente bat .. monto la ROM ...

sdcc -mz80 --code-loc 0x8010 --data-loc 0xC000 --no-std-crt0 prueba.c
hex2bin -e rom prueba.ihx
copy /b rom_header.bin + /b prueba.rom /b tmp.rom
fillfile tmp.rom final.rom 16368

donde rom_header.bin es un archivo binario de 16 bytes con la cabecera de la ROM ...

0x41 0x42 0x10 0x80 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00 0x00

y el exe fillfile me lo he montado yo para rellenar con 0x00 y completar al tamaño especificado (16Kb) un archivo.

Asi tengo un fina.rom de 16kb tope guay .. que no funciona!! Cheesy o esa impresion me da.

HELP!!!!!


En línea

MSX4EVER2GETHER
www.nerlaska.com
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #16 : 01 de Mayo de 2006, 01:53:52 pm »

Me acabo de dar cuenta de que .. si la direccion de comienzo es la 0x8010 .. pues que .. igual no pilla el main .. sino el set_mode ese chungo...
mmm ... a que va a ser eso ..
de hecho .. he dejado solo el main con el bucle infinito y .. woala .. ahora el BlueMSX se me queda colgado claro esta al inicio...
IRE BIEN?
En línea

MSX4EVER2GETHER
www.nerlaska.com
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #17 : 01 de Mayo de 2006, 02:17:23 pm »

De C no tengo ni idea, pero recuerda que, para probar un .ROM, debes poner al final un bucle, porque si no, te empezará a hacer cosas raras o resetearse, etc... no es como un .BIN que abres desde BASIC, hace lo que tiene que hacer y despues te vuelve a devolver al BASIC.

Asín que no te olvides de un:

loop:
   jp loop

O lo equivalente Wink
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #18 : 01 de Mayo de 2006, 02:19:12 pm »

Si si .. esto lo tengo claro .. es lo primero que tenia hecho.
Creo que ya tengo un ROM en toda regla .. voy a ver si consigo inicializar a Screen 2
En línea

MSX4EVER2GETHER
www.nerlaska.com
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #19 : 01 de Mayo de 2006, 03:32:56 pm »

Bua!! esto es la pasada :-)
Ya esta todo claro Smiley .. al menos usando los comandos de la BIOS esto esta chupao
Además .. hacer lo de las ROM al final ha resultado fácil.

Siiii!!! ya puedo montar mi primera ROM .. Dios que ilu!!!

En línea

MSX4EVER2GETHER
www.nerlaska.com
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #20 : 01 de Mayo de 2006, 04:20:37 pm »

¡Fenómeno!. Yo por si las moscas te he enviado el kit de Boukichi que a buen seguro te facilitará un poco la creación de la ROM...
En línea

Doom dee doom dee doom
MsxKun
Karoshi Forum's Guru
*******
Mensajes: 1554


Kimochi-ii


WWW Email
« Respuesta #21 : 02 de Mayo de 2006, 07:39:25 pm »

Buenas

Habeis mirao aqui?
Hay unas librerias graficas MSX para C, no se q tal ira, yo de C nada... Smiley

http://msx.jannone.org/

En línea

--

Cindy Lauper She Bops!
jjfranco
Visitante
« Respuesta #22 : 02 de Mayo de 2006, 08:24:37 pm »


_asm
   push bc
   push ix
   ld c, 6(ix)
   ld b, 7(ix)
   push bc
   pop ix
   call 5
   pop ix
   pop bc
_endasm;


Y digo yo, que si al final tienes que colocar codigo en ensamblador, porque no programar directacmente en CM. ¿?

Yo desde luego sigo el consejo que me dio Darth_Fistro hace unos meses, "que teniendo un par de rutinas en ensamblador ya se pueden ir haciendo bastantes cosas", y la verdad que en el fondo no es tan dificil programar en el ensamblador.

Claro que si lo tuyo es el C...  Cheesy
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #23 : 02 de Mayo de 2006, 08:47:50 pm »

Citar
Y digo yo, que si al final tienes que colocar codigo en ensamblador, porque no programar directacmente en CM. ¿?

Porque el ensamblador es especialmente útil en rutinas en las que tienes que obtener la máxima velocidad o no te queda más remedio debido, por ejemplo, a que hay que acceder a funciones de la BIOS.
El resto del programa, el esqueleto y partes en las que la velocidad no sea necesaria es muuuuucho más rápido diseñarlo con C. Una tontería del tipo intro de presentación y pantalla inicial en código máquina te puede llevar un par de días; en C, posiblemente en un par de horas ya la tengas (sobre todo si compilas sobre un PC) Grin
Sin olvidar que la base de aficionados al MSX con conocimientos de C (normalmente por razones de trabajo Tongue) es más grande que la de programadores en ensamblador.
.
.
Me empieza a dar la impresión de estar evangelizando... Roll Eyes
En línea

Doom dee doom dee doom
jjfranco
Visitante
« Respuesta #24 : 02 de Mayo de 2006, 09:50:11 pm »


Sin olvidar que la base de aficionados al MSX con conocimientos de C (normalmente por razones de trabajo Tongue) es más grande que la de programadores en ensamblador.
.
.
Me empieza a dar la impresión de estar evangelizando... Roll Eyes

Bueno si es por cuestion de comodidad de no tener que aprender algo nuevo, estoy de acuerdo contigo.  Grin

En línea
jjfranco
Visitante
« Respuesta #25 : 03 de Mayo de 2006, 07:11:57 am »

Bueno la verdad  es que cada uno que programe en el lenguaje que quiera. Cheesy

Sin embargo, pienso que para crear una rom de 16K por ejemplo, se puede aprovechar mejor el espacio programando directamente en ensamblaoor que colocando un codigo compilado, no creo que el C genere una rutina de impresion(p.e) mas corta que la que se pueda crear directamente en CM, eso sin contar con lo que el C abusa de la pila cada vez que hace una llamada a una funcion.

Claro que es verdad que yo no soy informatico ni programador experimentado. Wink


En línea
SapphiRe
Visitante
« Respuesta #26 : 03 de Mayo de 2006, 09:57:27 am »

Sin olvidar que la base de aficionados al MSX con conocimientos de C (normalmente por razones de trabajo Tongue) es más grande que la de programadores en ensamblador.

¡¡¡ODIO EL C!!!  Angry Angry Angry Angry
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #27 : 03 de Mayo de 2006, 08:14:32 pm »

A mí, mientras me sigan pagando por programar el susodicho... Roll Eyes

Citar
¡¡¡ODIO EL C!!!

Que ya sabemos que a tí lo que te pone es el Haskell. Wink
En línea

Doom dee doom dee doom
pitpan
Karoshi Forum's Guru
*******
Mensajes: 1812


« Respuesta #28 : 03 de Mayo de 2006, 09:16:14 pm »

nerlaska:

Ya que estás recopilando tanta información y realizando pruebas, ¿te ves con coraje para dejar constancia de todo lo que hacer por escrito? Es decir, lo suyo sería aprovechar tus conocimientos para preparar un tutorial en el que hables de qué compiladores existen, cómo usarlos, cómo generar una ROM, etc. Sería -creo yo- un buen punto de entrada para muchos desarrolladores que ya conocen C en otros entornos, pero que se ven limitados por la lentitud del BASIC para MSX y por la complejidad de entrada del ensamblador.

¿Recoges el guante?
En línea
SapphiRe
Visitante
« Respuesta #29 : 04 de Mayo de 2006, 11:15:04 am »

Citar
¡¡¡ODIO EL C!!!

Que ya sabemos que a tí lo que te pone es el Haskell. Wink

Pues sí. También el PERL y el ensamblador del Z80...  Grin Grin
En línea
Páginas: 1 [2] 3
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!