Buscando código fuente replayer moonsound

Página 2/2
1 |

Por AxelStone

Prophet (2674)

Imagen del AxelStone

01-05-2018, 19:11

paspallas wrote:

He resuelto el fallo y ya tengo el driver funcionando desde C, era un problema con la expansión de una macro incorrecta.
Test ROM

Jo macho vaya racha llevas, estás hecho un maestro del C y el ASM. Por curiosidad, repito la pregunta del driver de MB, supongo que el driver lo has adaptado a SDCC ¿correcto? Quiero decir, en MSX-C no funciona tal cuál, requerirá cambios imagino ¿puedo ser?

Verás tu, a este paso el proyecto de pasar las MSX-lib al SDCC no va a ser una tontería e igual merece la pena crear una comunidad SDCC en torno al MSX ;)

Por paspallas

Resident (40)

Imagen del paspallas

01-05-2018, 19:26

Pues habría que adaptar la sintaxis al m80. El problema en este caso es que el driver usa la irq generada por el opl4 para mantener el tempo correcto independientemente de la frecuencia de refresco del VDP. En msx-c por algún motivo no conseguí con el otro driver instalar una isr propia en un hook. Te permite hacerlo pero al saltar la primera interrupción se vuelve al hook viejo. No se si es por el MSX-DOS o por el propio runtime de msx-c, por eso tuve que actualizar la música manualmente en el driver que te pasé.

Por paspallas

Resident (40)

Imagen del paspallas

01-05-2018, 19:49

Voy a programar un script en python para convertir entre sintaxis de ensambladores, hacerlo desde un editor de texto es una puñeta.

Por AxelStone

Prophet (2674)

Imagen del AxelStone

02-05-2018, 08:40

¿Y el SDCC sí te deja hacerlo? Curioso, pues ya es una mejora importante...

Por AxelStone

Prophet (2674)

Imagen del AxelStone

02-05-2018, 10:24

Intuyo de todos modos que esa operativa es más bien a causa del MSX-DOS, que no permite sobreescribir el hook. Las propias librerías de MSX-C ya incluyen funciones para hacerlo a alto nivel si no me equivoco. Entiendo que en un motor hecho en C lo ideal es hacerlo todo a alto nivel y unificar el tema de las ISR en un componente común en vez de permitir que cada driver / librería defina su propia ISR, porque al final tienes una pila de ISRs un poco descontrolada ¿no?

Por paspallas

Resident (40)

Imagen del paspallas

02-05-2018, 11:44

En SDCC haces con la máquina lo que te da la gana, el compilador es completamente agnóstico de lo que hay por encima. Solo sabe que tiene que generar código para el Z80, no que se está ejecutando en un MSX.
Para el manejo de ISRs yo pondría la CPU en im2, y luego tendría una zona de RAM donde instalo las ISR que necesite pasándoselas como un puntero a la rutina que las atiende.
Luego modificaría los drivers que use para que no hagan la instalación en el hook, eso lo manejas tú desde el wrapper superior.

Página 2/2
1 |