¡Hola, Mundo!

Si eres nuevo y te apetece, preséntate aquí. || If you are new and you want to do it, introduce yourself to the community.

Moderador: CEZ

Responder
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

¡Hola, Mundo!

Mensaje por Ñuño Martínez »

Hola a todos.

Aquí estoy porque voy a empezar un proyecto para mi querido MSX y este es el único foro de programación retro en castellano que me ha admitido (por ahora): en el resto o te haces socio de una asociación o no hay manera. ¡Gracias! :D

Como la razón por la que me apunto es un proyecto concreto y no encuentro ningún subforo donde encaje la presentación de proyectos propios, pues lo voy a explicar un poquito por aquí, a ver qué os parece.

Resulta que quería hacer un juego, pero como hace años (15, creo) que no toco un MSX he olvidado muchas cosas. Buscando información encontré compiladores de C y Pascal para este sistema (ni sabía que existían :eek: ) pero o son compiladores "cruzados" de Windows o están preparados para funcionar dentro del MSX o están cerrados o son de pago.

Así que que se me ha ocurrido hacer un compilador de Pascal para MSX. Nada complicado, sin optimizaciones automáticas ni esas cosas. Nunca he hecho uno pero ya tengo un pequeño intérprete de un lenguaje que me inventé y también un analizador matemático la mar de chulo, y como el Pascal básico es fácil de analizar no creo que me cueste mucho. Eso sí, me tendré que pegar con el ensamblador y la BIOS, que casi lo tengo olvidado. ](*,)

Lo cierto es que sé que no habrá muchos interesados (los amantes de Pascal somos pocos, y menos aún que también les guste el MSX :( ) pero con que me echéis una mano con el código máquina y tal me conformo.

Saludos.
Avatar de Usuario
Ivanzx
256 bits
256 bits
Mensajes: 4316
Registrado: 20 Nov 2005 00:50
Ubicación: Frankfurt, Germany
Contactar:

Re: ¡Hola, Mundo!

Mensaje por Ivanzx »

Bienvenido por aqui! Por aqui pululan varios expertos del MSX, asi que seguro que te ayudaran a ese proyecto que suena tan bien ;)

Un saludooo
Avatar de Usuario
josepzin
128 bits
128 bits
Mensajes: 2238
Registrado: 25 Oct 2005 18:03
Ubicación: Carthagonova
Contactar:

Re: ¡Hola, Mundo!

Mensaje por josepzin »

¡¡Que tarea que te has propuesto!! Suerte!

Tengo buenos recuerdos del Turbo Pascal 4 :)
Avatar de Usuario
WYZ
Site Admin
Site Admin
Mensajes: 2356
Registrado: 29 Dic 2004 21:17
Ubicación: Cartagena (CT)

Re: ¡Hola, Mundo!

Mensaje por WYZ »

Bienvenido!

Aquí te podemos ofrecer ayuda por parte de un montón de gente que visita estos foros asiduamente y que ponen en contacto a muchos habituales de la escena del MSX.

Si necesitas ayuda mas concreta también puedes visitar los foros de Karoshi, totalmente orientados al MSX.

http://karoshi.msxgamesbox.com/
WYZPlayer

DREAM OVER
INSERT COIN
Avatar de Usuario
bitvision
8 bits
8 bits
Mensajes: 25
Registrado: 12 Ene 2007 09:20
Ubicación: United Kingdom

Re: ¡Hola, Mundo!

Mensaje por bitvision »

Bueno , pues aquí tienes a un fanático del Pascal. Venga, dale caña! :D . Por cierto, tienes ya algo hecho y/o alguna web donde tengas colgado algo del proyecto?
Saludos
========================================================
MSX SONY HB-10P (my first one!) , MSX Philips NMS 8250, MSX SONY F9S
Commodore 64
AMSTRAD CPC6128 Color
Spectrum ZX (2) , Spectum ZX+, Spectrum 128 +2A
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

Re: ¡Hola, Mundo!

Mensaje por Ñuño Martínez »

Gracias por los ánimos. Alegra ver que hay gente interesada. :)

Respondiendo a bitvision, lo único que tengo por ahora es un documento donde he escrito lo que me gustaría hacer, por no perder el norte. Este fin de semana estuve reconfigurando el emulador, instalando un ensamblador del Z80 (las primeras versiones no generarán binarios sino fuentes ASM) y ayer estuve buscando y revisando documentación para refrescar mi memoria. Con suerte, la semana que viene podría tener un compilador que entienda bloques "ASM ... END", pero no prometo nada.

Por cierto, que he estado pensando que el núcleo del compilador funcionará para cualquier Z80 (MSX, ZX, Game Boy(?) ...). :-k ¿Qué os parecen los nombres "Z80-Pascal" para el proyecto y "z80pas" para el ejecutable?

[anexo] Por si tenéis curiosidad, lo de los bloques "ASM ... END" se vería así:

Código: Seleccionar todo

PROGRAM ejemplo;
BEGIN
  ASM
  { Ensamblador "al tuntún". }
    LD HL, &hFFFF
    LD BC, &h00FA
  END;
END.
Como es lo primero que quiero conseguir (versión 0.1) el compilador sería "utilizable" desde el principio. ¿No es genial? :mrgreen:
Avatar de Usuario
mcleod_ideafix
16 bits
16 bits
Mensajes: 85
Registrado: 05 Mar 2008 19:46
Ubicación: Sevilla
Contactar:

Re: ¡Hola, Mundo!

Mensaje por mcleod_ideafix »

Dado que ya existen compiladores de C que producen código para el Z80 (yo uso el sdcc), ¿te has planteado escribir un traductor de Pascal a C? Eso sería aún más rápido que traducir a ASM (creo yo), y además estos compiladores de C preexistentes se encargarían de la tarea de optimizar el código.

Y dado que de hecho ya existen por ahí traductores de Pascal a C, igual puedes usar o adaptar alguno de ellos para tu proyecto.
No hay virginidad que aguante tres martinis.
Imagen
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

Re: ¡Hola, Mundo!

Mensaje por Ñuño Martínez »

mcleod_ideafix escribió:Dado que ya existen compiladores de C que producen código para el Z80 (yo uso el sdcc), ¿te has planteado escribir un traductor de Pascal a C? Eso sería aún más rápido que traducir a ASM (creo yo), y además estos compiladores de C preexistentes se encargarían de la tarea de optimizar el código.
Pues no lo había pensado, pero no lo voy a hacer. Mi intención es que al final produzca código binario directamente, y por poco más de lo que me cuesta pensar cómo traducirlo a C, pienso cómo traducirlo a ensamblador y de ahí a crear binarios no hay mucho.

Y también, por qué no, por orgullo y cabezonería, que de esto ando sobrao. :lol:

Aunque ya que lo mencionas :-k , si el sdcc es capaz de generar archivos ASM, tal vez me lo instale para "inspirarme" cuando me atasque. [edito] Pues sí, tiene opción "-S". Instalando, que es gerundio y no tengo nada claro cómo manejarme con las variables locales. Gracias por la sugerencia.
Avatar de Usuario
mcleod_ideafix
16 bits
16 bits
Mensajes: 85
Registrado: 05 Mar 2008 19:46
Ubicación: Sevilla
Contactar:

Re: ¡Hola, Mundo!

Mensaje por mcleod_ideafix »

[quote="Ñuño Martínez"no tengo nada claro cómo manejarme con las variables locales. Gracias por la sugerencia.[/quote]
Pues... como practicamente todos los compiladores que generan código para un procesador con pila. Se crea el "stack frame" y se usa IX para apuntar a ese stack frame. IX con desplazamiento positivo apunta a los parámetros de la función, mientras que IX con desplazamiento negativo apunta a las variables locales.

Vamos, que es muy parecido al clásico prólogo de las funciones en C cuando se usan en un compilador para IA32.
No hay virginidad que aguante tres martinis.
Imagen
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

Re: ¡Hola, Mundo!

Mensaje por Ñuño Martínez »

mcleod_ideafix escribió:(...) es muy parecido al clásico prólogo de las funciones en C cuando se usan en un compilador para IA32.
Pues sí, no se me había ocurrido. #-o Aunque es posible que las variables locales no las ponga en pila sino en el montón (justo a continuación de las variables locales, y creciendo "hacia arriba") y usar la pila la para recuperar el marco del montón, el puntero de retorno y los parámetros que no quepan en los registros (que creo que es el "prólogo de llamada Pascal", aunque no estoy seguro).

A ver si termino de definir cómo manejar estas cosas y apuro los detalles del mapa de memoria, que sólo encuentro mapas de BASIC (que si ficheros, cadenas de caracteres y tal) y no sé qué puedo "pisar" y qué no.

Por cierto, esto no deberíamos "discutirlo" aquí sino aqui, ¿no?
Ñuño Martínez
16 bits
16 bits
Mensajes: 65
Registrado: 12 Ene 2009 16:45
Ubicación: Ciudad Catedral, Españistán

Re: ¡Hola, Mundo!

Mensaje por Ñuño Martínez »

Que sepáis que SourceForge me ha concedido un proyecto (¿Han rechazado alguno, alguna vez? :?) así que los interesados deberían pasarse por aquí y apuntarse al RSS, porque tampoco voy a estar dando la tabarra aquí cada vez que cambie algo.

Saludines.
Responder