miércoles, abril 19, 2006

Los puertos de mensajes y las tareas molan

Aprovechando que tengo un poquillo más de tiempo llevo un par de días mirando como lanzar procesos desde un proceso padre en AmigaOS y es bastante chulo :-) Hasta ahora como me había entretenido bastante con Reaction y MUI no lo había mirado, pero parece muy útil. Lo que aún no tengo muy claro es como intercambiar mensajes entre las dos tareas, estoy mirando unos ejemplos a ver si me entero.



De momento mis proyectos están en el siguiente estado:

-xml2reaction: algo estancado, el código de OS4 que genera casi casi esta perfecto ya, pero quiero que el mismo código compile en OS4 sin usar lo de __USE_INLINE__, aprovechando los interfaces del SO. El problema es que el fuente se plagará de #ifdefs... mi problema viene de que no consigo que el compilador para OS3.x me pille las macros de reaction, con las macros todo quedaría limpio.

-bochs para OS4: Está terminado en su version SDL, lo que falta es recompilarlo con el último SDK, escribir algun readme, comprimirlo en lha y subirlo a aminet

-Basilisk II para OS4: Está relativamente avanzado, funciona el sonido, los gráficos en modos de 32bits de color... me falta probar la red, el soporte directo de scsi, serie y paralelo, mejorar el soporte de los modos de pantalla, terminar el interfaz gráfico en Reaction (el cual me casca al cargar las preferencias justo en el ListBrowser)

-XML2MUI: Comencé hace unos meses a escribir algo de código basándome en el XML2Reaction, pero aún no es funcional

-SDI headers para AROS: Las macros de AROS obligan a introducir el tipo como parámetro mientras que las de AmigaOS no. La solución más sencilla sería tomar los includes SDI modificados de AROS y modificar las macros del resto de sistemas para que tomen mas parámetros pero no hagan nada con ellos. Otra solución sería escarbar en los fuentes de AROS hasta llegar a las macros finales, tiene el problema de que en algunas CPUs quizá el código sería incompatible. Es el enfoque que tomé y no he tenido suerte, los binarios dan un error de memoria insuficiente. Me parece que la mejor solución es añadir los parametros de tipo y hacer unos pequeños cambios en todo el código que use los SDI-headers... se limitaría a añadir los parámetros (vacíos) y llamar alguna macro al principio y final de algunas funciones para que compilen en AROS. Algo coñazo pero contundente y abriría las puertas a AROS


A veces da la impresión de que los de AROS viven en un mundo paralelo, toman el código, lo adaptan a AROS y en vez de devolver el código a la rama principal van y lo modifican continuamente. Algo similar a los de MorphOS y OS4 que en vez de añadir un par de defines prefieren dejar mierda específica de cada sistema (que francamente dudo que tenga muchas ventajas sobre las funciones de 3.x) y cada uno continuar su rama y actualizarla independientemente desde la principal.