Karoshi MSX Community
05 de Julio de 2021, 07:55:17 pm *
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 4 5
  Imprimir  
Autor Tema: Sobre C en MSX  (Leído 35026 veces)
0 Usuarios y 1 Visitante están viendo este tema.
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #15 : 23 de Abril de 2008, 03:45:39 pm »

Y genera código chulo el Hitech este?


La version nativa no va mucho mas alla de lo normal en MSX (uso exclusivo de pila y esas cosas). Las ultimas versiones cruzdas si permitian el paso de parametros por registro y cosas de ese tipo (el codigo generado por estas versiones es muy, muy bueno), el problema es encontrarlo, porque las versiones cruzadas son de pago (yo tenia por ahi una version antigua para ms-dos pero que para el caso es casi lo mismo que la version de MSX en lo que al codigo se refiere), excepto  una demo que hay en la pagina pero que no se a que te limita

Bueno, se me olvidaba que por ahi hay un script para ejecutar la version nativa en linux (usando un emulador de CPM): http://msx.retro8bits.com/msxsw.html

y Nestor en su dia hizo unas librerias especificas de MSX (que no se por que no estan en su pagina :~), pero que seguramente tendre en mi disco duro.  El hitech C fue bastante popular entre los usuarios de MSX hace algunos años, especialmente cuando Adriano escribio Uzix usandolo.




Roberto.
En línea
Jos'b
Karoshi Maniac
****
Mensajes: 262


« Respuesta #16 : 23 de Abril de 2008, 08:18:00 pm »

Si sigues teniendo problemas dimelo y te envio directamente la version que tengo yo en el disco duro del msx.

Pues la verdad es que no consiguo hacerlo andar. El compilador se ejecuta y envia sus mensajes pero no carga los archivos fuente que están en la SD (FAT16)(tampoco he sido capaz de echar a andar el MSX-C). Y me gustaría probarlo, sobre todo por la libreria que hizo Konamiman para el MSX. Más que nada por saber si puedo ahorrarme el trabajo de tener que crear funciones en arrays para el BDS. Si quieres enviarmelo te estaría agradecido.

Por supuesto tambien agradezco información. Aunque sea mediante links a webs.
En línea
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #17 : 24 de Abril de 2008, 03:30:00 pm »

Ahi tienes la version que probe yo en su dia, bueno yo me las baje de funet, que para el caso es lo mismo (que mandartelo directamente es mas dificil porque no se tu email).

http://www.msxarchive.nl/pub/msx/programming/c/


Y sobre las librerias de Nestor las he encontrado y son para acceder directamente a las funciones del DOS desde los programas C, si las quieres dime a donde te las puedo enviar.
En línea
Jos'b
Karoshi Maniac
****
Mensajes: 262


« Respuesta #18 : 24 de Abril de 2008, 08:34:25 pm »

Ahi tienes la version que probe yo en su dia, bueno yo me las baje de funet, que para el caso es lo mismo (que mandartelo directamente es mas dificil porque no se tu email).

http://www.msxarchive.nl/pub/msx/programming/c/


Y sobre las librerias de Nestor las he encontrado y son para acceder directamente a las funciones del DOS desde los programas C, si las quieres dime a donde te las puedo enviar.
Me he vuelto a bajar de nuevo el compilador. De momento solo le he echado un vistazo por encima, y sin duda es más completo que el BDS-C.

Ya contaré mis expereciencias con él.

En cuanto a las librerías, realmente lo que me interesa es poder utilizar alguna función gráfica desde el C. Por lo que el Hitech-C tampoco me soluciona, de momento, el problema.

Respecto a mi e-mail lo puedes encontrar en mi perfil del foro. Pero no te preocupes, puesto que de momento probaré con el que me he bajado, si me falla, ya lo diré por aqui.

Un Saludo, y gracias.
« Última modificación: 24 de Abril de 2008, 08:37:06 pm por Jos'b » En línea
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #19 : 25 de Abril de 2008, 07:15:45 am »

Pero el HiTech no permite assembler inline?
En línea

MSX4EVER2GETHER
www.nerlaska.com
ARTRAG
Visitante
« Respuesta #20 : 25 de Abril de 2008, 07:34:22 am »

HiTech have full asm support

You can both use this

#asm
code here in asm
#endasm

or this

asm("ld a,(_myvar)");
asm("xor a");
asm("ld (_myvar),a");
En línea
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #21 : 25 de Abril de 2008, 07:38:32 am »

Pero el HiTech no permite assembler inline?


Si que permite, de eso estoy seguro (solo tienes que mirar el fuente del Uzix). Por cierto NErlaska que le eche un vistazo a la version 7.5 que es cruzada y genera muy buen codigo, tengo el manual de la 7.8 y la 7.5 crackeada (PIRATAAAAAAAAA), asi que si  lo quieres
En línea
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #22 : 25 de Abril de 2008, 07:52:35 am »



En cuanto a las librerías, realmente lo que me interesa es poder utilizar alguna función gráfica desde el C. Por lo que el Hitech-C tampoco me soluciona, de momento, el problema.

Respecto a mi e-mail lo puedes encontrar en mi perfil del foro. Pero no te preocupes, puesto que de momento probaré con el que me he bajado, si me falla, ya lo diré por aqui.



Recuerdo que en su dia Airam hizo unas librerias para el HiTech, aunque creo que las hizo para el GFX9000, no estoy demasiado seguro. Sobre librerias graficas aqui tienes una que he encontrado:

http://msx.jannone.org/


Ahi por ahi otra de un japo, que si quieres, pues tu mismo ...




En línea
nerlaska
Karoshi Excellent Member
******
Mensajes: 1102


Programador


WWW Email
« Respuesta #23 : 25 de Abril de 2008, 10:25:39 am »

Hombre .. yo es que ya tengo un capazo de cosas para SDCC ... y me da un poco de perrera cambiar de compilador pero cierto es que poder programar C directamente en MSX tiene su cosita.
Pero bueno .. si fueras tan amable de pasarme lo que tengas de HITech para MSX y para PC .. pues le echo un ojo que igual hago una conversión del código SDCC y lo porto también para HiTech.
Que me da que el HiTech generará mejor código que el SDCC seguro.
En línea

MSX4EVER2GETHER
www.nerlaska.com
k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #24 : 25 de Abril de 2008, 10:56:10 am »

Hombre .. yo es que ya tengo un capazo de cosas para SDCC ... y me da un poco de perrera cambiar de compilador pero cierto es que poder programar C directamente en MSX tiene su cosita.


Para la version de MSX en uno de los mensajes anteriores puse el link.


Pero bueno .. si fueras tan amable de pasarme lo que tengas de HITech para MSX y para PC .. pues le echo un ojo que igual hago una conversión del código SDCC y lo porto también para HiTech.
Que me da que el HiTech generará mejor código que el SDCC seguro.


El codigo generado por el sdcc no es demasiado bueno que se diga. Yo he trasteado con el interior del SDCC e incluso he hecho alguna tentativa de generador de codigo propio, y te puedo decir que el generador de codigo de z80 esta a medio hacer. El codigo para el envio de parametros por registro esta escrito a medias (por lo que lo tiene desactivado), yo he pillado un par de errores en el peephole y varias cosillas asi. El codigo del z88dk es bastante mejor, pero no permite el paso de parametros por registro y casi todas las funciones basicas las hace mediante llamadas a funcion (ya les vale), con lo que se pierde un monton de tiempo en llamadas inutiles.
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #25 : 25 de Abril de 2008, 11:16:43 am »

Y ya que estamos...¿alguien sabría aventurar cual es el compilador que genera código más optimizado en cuanto a tamaño?, la velocidad o elegancia del código de momento no me preocupa demasiado...
El SDCC genera mucho código en mi opinión y de los otros no se lo suficiente como para poder comparar.
En línea

Doom dee doom dee doom
ARTRAG
Visitante
« Respuesta #26 : 25 de Abril de 2008, 12:00:28 pm »

I use HITech cross compiler v7.80p2 (the shareware demo is complete of sources and support files. It lasts 30 days, but setting back the date....)

The reasons are that it passes parameters using registers, it can manage MSX memory mappers by itself, splitting code and data among the pages
and has a good manual documenting its features.

I think that the code is good, but a general comparison is hard.
If you post there a C segment
I can compile it and give you back the ASM it produces




 
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #27 : 25 de Abril de 2008, 12:28:55 pm »

I've just downloaded the demo from HiTech site Smiley

Right now I'm generating about 35Kb of code and adding the GFX+mapper code, it would become a nigthmare. I'll give a look and if porting is easy I'll try to compile the code with HTC.

About all that features, specially the MSX memory mapper support, are really ready out of the box or you need to adapt them more or less to be workable?. That splitting feature could be killing for me...

Por cierto, para los que se lo quieran descargar, hay que rellenar unos pocos datos; pero está disponible aquí:

HI-TECH C for Z80/Z180
En línea

Doom dee doom dee doom
SapphiRe_MSX
Visitante
« Respuesta #28 : 25 de Abril de 2008, 12:43:12 pm »

Cada día que pasa me convence más programar en C y no en asm, donde el código generado no es del todo óptimo óptimo... Grin Grin Grin

Hablando ahora en serio, C puede ser una buena alternativa al asm siempre que el código generado no introduzca un montón de instrucciones espúreas... ¡a ver si alguien se curra un buen generador de código!
En línea
jltursan
Karoshi Forum's Guru
*******
Mensajes: 1516


¿Que es lo que has aprendido hoy?


WWW Email
« Respuesta #29 : 25 de Abril de 2008, 12:49:09 pm »

¡Buf!, pues no te mires lo que genera el SDCC, se desperdician ciclos y bytes como rosquillas...:-(

La clave del uso en C es la portabilidad, algo hecho en C siempre podrás plantearte el adaptarlo fácilmente a otra plataforma, algo que en código máquina es algo más complicado (que se lo digan sino a Fudeba Shocked).

Claro que igual se puede hacer algo en C que entre en 2Kb... Grin
En línea

Doom dee doom dee doom
Páginas: 1 [2] 3 4 5
  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!