• Alguien puede probar esto en una MSX real?
    Hice la prueba en el BlueMSX que es un emulador desastroso, pero todavia tengo que ver como se configura el OpenMSX. No se si las tremendas variaciones de tiempos tienen que ver con el emulador o realmente sale asi en una maquina real.
    Otro problema es que no tengo generados diskettes de MSX-DOS, y las unicas imagenes booteables que tenia eran de 720KB, no se si eso se puede trasladar a uno de 360KB para probarlo en mi DPC-200 con DPF-555. Si alguien puede generar ese mismo diskette en 360KB me va a venir muy bien para seguir probando.
    Estoy ensamblando con el emulador Spin, que es de Spectrum, tuve que hacer a mano un .BIN escribiendole los bytes de la cabecera al binario que genera el emulador a partir de la RAM. Digamos que es bastante improvisado el asunto, pero las herramientas estan, es ensamblado cruzado pero desde Spectrum a MSX. biglaugh.png
    Este es el primer programa que hago en codigo de maquina de MSX, me volvi loco para ajustar la velocidad por las diferencias con la Spectrum, pero esta ajustado segun el emulador, que no es para nada preciso.

    ]tavmsx.zip[/file]
     

  • No tengo MSX real en funcionamiento, pero si el OpenMSX configurado. Al cargarlo, no entiendo algunas palabras, pero diferencio parte de la primera estrofa del himno nacional argentino:

    OID MORTALES, EL GRITO SAGRADO:.. LIBERTAD! LIBERTAD! LIBERTAD!

    S
     

  • Ya pude hacer una imagen de 360K, ahora estaba tratando de pasarla a un diskette de 5.25".
    Lo que dice el programa es:
    RETROCOMPUTACION.COM
    TEXTO A VOZ MSX ALFA 1
    SALUDOS, COMUNIDAD DE RETROCOMPUTACION

    Luego canta esas dos lineas del himno, y despues dice SINTETIZADOR LISTO
    Es el programa para Spectrum 128K que publique en el foro Sinclair, pero con las llamadas a la ROM eliminadas, la velocidad ajustada a la MSX, que por lo visto es mas lenta, los puertos del PSG cambiados, y el archivo convertido a .BIN
    Es decir, es un recontrahack de la version Spectrum.
     

  • Bueno, esto fue una verdadera odisea. Primero tuve que modificar el sintetizador para Spectrum 128K, quitarle las llamadas a la ROM, reubicarlo en $A000 para la MSX, cambiarle los puertos de 16 bits que usa la Spectrum para el PSG por los de 8 bits que usa la MSX, lo cual implica hacer un codigo totalmente distinto (cosas del Z80). Luego averiguar como pasar un archivo binario a una MSX, lo grabe desde la RAM del emulador de Spectrum a un archivo crudo, investigando encontre que los .BIN en MSX tienen una cabecera con $FE, dos bytes con la direccion de carga, dos bytes con la direccion donde termina, y dos bytes mas con la direccion de ejecucion. Me arme una cabecera con eso, gracias a que mi programa se ejecuta en la direccion de carga y de ahi salta a la verdadera rutina de inicio, no tuve que andar cambiandola cada vez que hacia una modificacion (hice 9 o 10 mientras ajustaba la velocidad en el emulador).
    Una vez que tuve el .BIN y andaba "correctamente" en el BlueMSX, copie un DSK existente, borre cosas, le grabe el archivo, arme un AUTOEXEC.BAS, pero como era el DOS 1.03 por alguna razon no lo ejecutaba. Supuse que con un .BAT lo iba a tomar, pero como hacia un archivo de texto en MSX-DOS? Parece que COPY CON anda, pero CTRL Z no finaliza. biglaugh.png
    Asi que cargue la unidad B como un directorio en la PC, edite un archivo de texto con mi editor favorito WinVi, indicandole que era texto de DOS, escribi BASIC TESTMSX1.BAS, luego lo copie a la unidad A: desde el emulador, y ya tuve la imagen lista.
    Ahora faltaba pasarlo a la PC, lo primero que hago es pasarlo a la Amiga por la red e intentar grabarlo con la controladora Catweasel, pero no tenia cargada la utilidad de imagenes porque desde que se me borro el disco de 80GB instale lo basico. Instalo el programa, intento escribir la imagen y en eso me acuerdo que el driver lee diskettes de 360K pero no escribe, asi que aborto la operacion (apagando la maquina porque se colgo).
    Procedo a sacarle la tierra al viejo Pentium 4 corriendo XP, que es la unica PC que tengo con disketera de 5.25", busco alguna utilidad para grabar imagenes y encuentro el OmniFlop, eso reemplaza el driver de diskettes, permitiendo que XP maneje nativamente un monton de formatos, incluido el de 5.25" de 360K. Para mostrar el contenido anda perfecto, y para escribir la imagen, incluso despues se pone el diskette y lo lee, pero cuando se intenta copiar algun archivo se traba mal, machacando el disco y golpeando el cabezal. Puede que sea porque el sistema de archivos es de MSX y el driver intenta autodetectar el disco o algo y termina confundido. El asunto es que el diskette no se lee en MSX, da Disk I/O error.
    Pienso donde tendre un booteable de MSDOS en 1.2MB para copiar las imagenes desde ahi, pero despues me doy cuenta que tampoco tengo como copiar el programa de MSX a ese diskette, asi que no tiene caso.
    Cuando todo parecia perdido, me acuerdo que tengo el Big Blue Reader en la C64, busco y no encuentro el diskette, asi que a pasar el D64 a la Amiga por la red junto con el TESTMSX1.BIN (el sintetizador), formateo un diskette para C64, luego escribo la imagen del Big Blue Reader, luego leo el directorio del diskette en Amiga como una unidad mas, copio el TESTMSX1.BIN porque sobraba espacio, y me lo llevo a la C64.
    Enciendo la C64, cargo el programa, selecciono que voy a copiar archivos, selecciono formato C64, elijo el archivo, indicando que le voy a cambiar el nombre (porque aparece TESTMSX1.BIN en formato PRG), indico que el disco de destino es MSDOS, coloco uno que me vino con la disketera y tiene espacio libre, le doy copiar, indico el nuevo nombre, TESTMSX1.BIN, y ya esta, archivo copiado.
    Coloco el diskette en la DPF-555, enciendo todo, arranca un menu de juegos del diskette, da error al cargar el ARMY MOVES, como cae en BASIC pongo FILES, y ahi esta el archivo, luego BLOAD"A:TESTMSX1.BIN",R  ... y funciona!
    Sin embargo, funciona tan mal como en el BlueMSX, el sonido sale distorsionado, y por lo que vi en las capturas de sonido del emulador, hay algun tipo de interrupcion porque las ondas "patinan", es decir periodicamente alguna muestra se alarga en el tiempo, bastante, como 1ms mas, lo que provoca una distorsion en el sonido.
    Asi que el BlueMSX, que sigue siendo desastroso igual, esta vez parece que tenia razon.
    Lo que demostro no ser para nada compatible, son tanto las PCs como las MSXs, es un dolor de cabeza pasar un archivo. Pero el culpable es uno solo: Microsoft. No puede echarle la culpa al gobierno anterior. biglaugh.png
    En fin, me parece que hasta que no solucione el tema de la velocidad, no vale la pena avanzar mucho en la version MSX, tendre que continuar con lo planeado que era hacer la version TS2068. Si no leyeron el tema del sintetizador de voz en el foro Sinclair, les recomiendo que miren los ultimos mensajes, que hay un MP3 con la captura de como suena en Spectrum 128K emitiendo sonido digital por el PSG, para que escuchen como deberia sonar en MSX. Yo deshabilito las interrupciones durante toda la reproduccion, pero se ve que algo mas esta interrumpiendo.
    La buena noticia del dia es que le puedo decir a Fekete que tanto la DPC-200 como la disketera andan bien, y que ya tiene un diskette con el Big Blue Reader listo.
     

  • no seria más fácil armar el cable para poner una floppy 3 1/2 en la 555 ? a mi me va bien, solo tengo problemas en el xp para leer discos bien, pero como uso linux para eso, no me molesta. wink feliz  como niño cuando me andaba ese (mod) !!! <---- edito " No es una modificacion de nada, conectas una cosa con otra"

    ahora eso del assembler  y demás, me gustaría aprender de todo ese asunto y si tenes links para leer avisame!

    otra, no podias parar ese .bin a wav para cargar con un reproductor-mp3 ?
     

  • No soy programador de MSX, hasta hace unas semanas tampoco era programador de Z80, escribo el programa imaginando las instrucciones o las rutinas que necesito y luego investigo como lograr lo que quiero. Tene en cuenta que el programa es para Spectrum, no tuve tiempo de ponerme a aprender a usar algun ensamblador de MSX, seguramente pasarlo a wav es una estupidez, pero para ir avanzando me tengo que encontrar con decenas de estupideces en el camino que no tienen nada que ver con el hecho de hacer el programa, por lo cual hago solo las que hagan falta para continuar (como lo de pasar el programa de un emulador a otro, o las peleas contra maquinas y disketeras complotados).
    De todas maneras filme hace un rato a la DPC-200 ejecutando el programa, pero es un desastre asi que ni vale la pena cargarlo.
    Yo aprendi assembler con el 6502 en los 80s, despues en los 90s empece a programar microcontroladores PIC, el programa este lo converti de PIC a 6502 para la C64, de ahi lo pase a Z80 para la Spectrum con beeper, y ahora a la Spectrum 128K que usa el PSG. Esa ultima version es la que converti a MSX. A esta altura programo de forma generica y portable, por eso puedo convertir un programa a un micro que no conozco, asi que es dificil saber que textos recomendarte porque eso depende de que experiencia tiene cada uno con la programacion. Pero casi todo lo que necesitaba saber esta en el curso Easymbler. Para mi es un poco largo y lo use mas como referencia buscando cosas especificas, pero por lo que vi el nivel es adecuado para empezar. Eso si alguna experiencia en BASIC hay que tener.
    En cuanto a lo de modificar la disketera, sacrilegio! biglaugh.png
    No se, no me gusta modificar las maquinas y perifericos retro, pero eso es gusto personal de cada uno.
    Supongo que me tendria que comprar una Beer, pero por ahora prefiero manejarme con diskettes en todas las maquinas. Igual tengo la C64 siempre armada asi que ya resolvi lo de pasar archivos.
     

  • Aca esta la prueba en la Talent DPC-200, suena mejor en el video que en la realidad. Estaba pensando que tal vez como archivo .COM pueda tener menos interferencia, ya que tiene casi toda la RAM disponible, y el programa no usa mas que los puertos del PSG, pero no encontre la descripcion del formato de un archivo .COM como para hacerlo a mano.
    Tambien se ve en el video la C64 con la unidad 1571 leyendo el diskette de 360K de MSX-DOS, esta disketera puede operar tanto en GCR como en MFM, y programas como el Big Blue Reader que se ve en el video permiten manejar ambos formatos. Se puede ver que la compatibilidad entre PC y MSX es buena siempre y cuando se maneje con hard y soft de la epoca, el programa no se entera que es un diskette de MSX.
    La Talent empezo hace poco a dar problemas con la imagen, tal como se ve en el monitor, en una de esas algun capacitor que ya esta afectado por los años, pero la maquina funciona correctamente salvando ese detalle.

     

  • Con Respecto a lo de la Disquetera, no es una modificacion. solo cambias tres cables en un cable de disquetera. y La disquetera va a una fuente externa de pc. no tocas nada en la Disquetera ORIGINAL. y voy a ver si pasando el rachivo bin a Wav se carga. Editooo
    porque no se puede pasar a WAV es BIN ?

     

  • No es eso, lo que queria decir es que para poder pasar el mismo programa exacto de una maquina a otra tuve que aprender una gran cantidad de cosas en un dia, y ni siquiera planeaba en este momento hacer una version MSX, en mi lista estaba la TS2068 antes. Hice esta prueba simplemente para escuchar como sonaba en el PSG, ya que no tengo ninguna Spectrum con ese chip, pero me desvie demasiado en lo que debio ser una simple prueba, estuve medio dia haciendo todo eso hasta que pude probarlo en una maquina real. Ni siquiera sabia para que servian los archivos .bin, busque cualquier formato que sirviera, preferentemente el de un archivo .com, pero encontre ese primero, salio la informacion y lo hice. Pero eso tan simple me tomo un par de horas solo para cargar en MSX un archivo que ya tenia.
    Con respecto a lo de la disketera, no se como es la modificacion que decis, pero vi que muchos la hicieron y agujerearon la disketera poniendole la de 3.5" adentro, a eso me referia con que no queria modificarla. Si va afuera podria ser util, ya que diskettes de 3.5" puedo escribir en cualquier formato desde Amiga, y en la PC que uso no tengo disketera.
    Pero no es que me niego a aprender, es que fue demasiado aprendizaje para un dia, y solo queria escuchar como sonaba en el AY-3-891x, ahora ya lo escuche, y vuelvo a la TS2068. En su momento tocara hacer la version MSX como corresponde, investigando las rutinas de la ROM, el mapeado de memoria, y todo lo que haga falta tal como hice con Spectrum 48K y 128K.
     

  • Hola Jorge, tu trabajo es admirable.
    Me gusto mucho lo que pudiste lograr en tan poco tiempo en codigo de assembler para MSX sin conocimientos previos.
    Y es mi intensión alentarte para que continues en el desarrollo del mismo.

    Te felicitos por tus avances en las distintas plataformas sobre este proyecto.
    Abrazo.
     

Moderador (s): homecomputer, Selandari, pastbytes, El Griego, damian.worf, Durandal