Título: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Carlos Maidana en 25 de Agosto de 2008, 12:50:38 am Hola gente!! bueno, vengo medio liado con esto y queria trarar de aclararme algunas dudas. Estoy estudiando el funcionamiento de las rom del msxdos1 y msxdos2. Tema que me parece muy interesante. Eso si, preparense para leer alguna que otra burrada propia de un neofito en el tema :P
Por lo pronto, veo que un diskrom clasico tiene 16kb en los cuales esta el kernel, el Disk-Basic y el driver del dispositivo. Una rom MSXDOS2 tiene 64kb mapeados en segmentos de 16kb. Segun tenia entendido, esta rom dentro solo trae el kernel msxdos2, pero viendo el codigo fuente en el sitio de Arjen Zeilemaker observo que el mismo tiene una seccion dentro del segmento cero en donde va un driver...! Pregunta uno: basicamente como esta estructurada una rom msxdos2? pregunta dos: como funcionan las interfaces que tienen soporte tanto para msxdos 1 y msxdos 2? supongo que incluyen el diskrom de 16kb y la rom de 64kb del msxdos2 todo en uno. De ser asi cuando se inicia el sistema si detecta que es un msx1 sin ram mapeada activa el dos1 y si es msx2 entonces activa el msxdos2?? o sino? pregunta tres: para no molestar tanto al peloton de programadores, donde puedo conseguir mas informacion sobre esto? Saludos! Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: k0ga en 25 de Agosto de 2008, 06:22:13 pm pregunta tres: para no molestar tanto al peloton de programadores, donde puedo conseguir mas informacion sobre esto? Pues me imagino que Armando podra ayudarte bastante, ya que sse tuvo que empapar todo el funcionamiento del DOS para hacer el driver de la tarjeta MMC de Padial. Ahora esta de vacaciones, pero me imagino que en un par de dias te podra responder. Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Carlos Maidana en 26 de Agosto de 2008, 03:38:02 pm Gracias por responder koga! Cual es el nick de el aqui en el foro??
Por otro lado, alguien conocera y podria responderme las preguntas uno y dos?? ??? Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Jon_Cortazar en 26 de Agosto de 2008, 03:51:35 pm Yo la verdad es que no tengo ni idea, Carlos. A ver si alguien por aquí que sepa algo más acerca del MSX-DOS puede darnos algo de luz sobre el asunto: alguien? ;)
Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Konamito en 26 de Agosto de 2008, 04:29:23 pm Gracias por responder koga! Cual es el nick de el aqui en el foro?? Ramones ;) Un saludo. Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Ramones en 27 de Agosto de 2008, 12:50:06 pm Buenass....
Hola gente!! bueno, vengo medio liado con esto y queria trarar de aclararme algunas dudas. Estoy estudiando el funcionamiento de las rom del msxdos1 y msxdos2. Tema que me parece muy interesante. Eso si, preparense para leer alguna que otra burrada propia de un neofito en el tema :P Pues para ser neofito como te autodenominas parece que tienes bastante claras las cosas... ;) Por lo pronto, veo que un diskrom clasico tiene 16kb en los cuales esta el kernel, el Disk-Basic y el driver del dispositivo. Eso es. Además incorpora una rutina que lee el sector 0 del disco, comprueba si es compatible con MSXDOS y seguidamente ejecuta el código contenido en ese sector. Aquí es donde un disco normal formateado con MSXDOS, intenta cargar el MSXDOS.SYS, y este a su vez el COMMAND.COM. En caso de no encontrarlo pues salta al DiskBasic, y si el código es diferente (por ejemplo cualquier juego que funcione por sectores) pues se ejecutará ese código. Una rom MSXDOS2 tiene 64kb mapeados en segmentos de 16kb. Segun tenia entendido, esta rom dentro solo trae el kernel msxdos2, pero viendo el codigo fuente en el sitio de Arjen Zeilemaker observo que el mismo tiene una seccion dentro del segmento cero en donde va un driver...! Eso es. Son 4 páginas como bien dices. La 4 es el mismo DOS1 del que antes hablábamos. Y si, puede llevar o no llevar driver. No es obligatorio. Pregunta uno: basicamente como esta estructurada una rom msxdos2? Pues como tu mismo dices. La pagina 0 tiene el arranque y suele contener el driver (disquetera, ide...). La 1 y 2 pues sigue siendo código del MSXDOS2. (kernel). Y la 3 es el MSXDOS1 kernel. (que de nuevo lleva el driver) pregunta dos: como funcionan las interfaces que tienen soporte tanto para msxdos 1 y msxdos 2? supongo que incluyen el diskrom de 16kb y la rom de 64kb del msxdos2 todo en uno. De ser asi cuando se inicia el sistema si detecta que es un msx1 sin ram mapeada activa el dos1 y si es msx2 entonces activa el msxdos2?? o sino? Es algo más enrevesado y creo que ya lo expliqué una vez en algún hilo. La diskrom original del DOS2 comprueba primeramente si es un MSX2 o superior. En caso contrario aborta todo. Así que ni DOS1 ni nada. Deja continuar la rutina de inicialización del MSX en el siguiente slot. En caso de ser un MSX2 entonces comprueba si hay memoria mapeada y busca 6 segmentos de 16k. Si los tiene la máquina se instala. La siguiente comprobación es mirar el sector 0 del disco que arranca. Si está formateado con DOS1, tira atrás todo lo que había hecho hasta aquí (posicionar un montón de variables y reservar memoria) y salta al kernel del DOS1 propio, el contenido en la misma diskrom de 64k. Y a partir de aquí exactamente igual que lo explicado en DOS1. Si no hay disco, salta al diskBasic, pero al de DOS2. El kernel del 2.31 tambien mira teclas... si se pulsa el 1, se "fuerza" el DOS1, aunque el disco sea de DOS2, o bien no exista el disco. pregunta tres: para no molestar tanto al peloton de programadores, donde puedo conseguir mas informacion sobre esto? Realmente en ningún sitio. Yo me tuve que mamar todo el código del que hablas, desensamblar un montón, hacer un millón de pruebas, etc, etc... No hay info en ningún sitio desgraciadamente. Así que todo pasa por compartirla entre los que nos hemos pegado ya muchas leches para conseguir hacer drivers y demás. En cuanto a lo último que preguntabas sobre cómod funciona un dispositivo en DOS1 y DOS2, realmente no hace falta que el dispositivo tenga nada preparado para DOS2. Solo necesita su driver, el contenido en las 16k del DOS1. Si el kernel del DOS2 se instala, cuando se accede a esa unidad llama directamente a ese driver. El porqué de tener en el kernel del DOS2 "duplicado" el driver es por ahorrar slots. La distribución original del MSXDOS2 no llevaba driver alguno. Tu lo pinchabas en un slot y si tu MSX ya tenía disquetera, interna o externa, pues tenías DOS2 con tu disquetera. Ahora bien, si hoy en día quieres hacer una tarjeta controladora de algún tipo de dispositivo (SDs, USBs, etc...) pues lo que toca es meter el driver controlador en la parte DOS2 y DOS1 dentro de la misma DISKROM, yaque así solo gastas un slot/subslot y lo tienes todo compacto. En cualquier caso, las partes a implementar en el driver son muy muy pocas y sencillas (se dice pronto) pues básicamente con hacer una rutina que lea un sector y escriba un sector tienes casi todo el driver hecho. :) Y bueno, no se si te habré ayudado pero después de tanto preguntar tú... ¿qué es exactamente lo que quieres hacer? ;) Porque digo yo que esta información no la necesitarás para algo, ¿no? :D Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Jon_Cortazar en 27 de Agosto de 2008, 04:01:38 pm Toma ya! :D Si es que el que sabe... ::)
Título: Re: Diskroms del MSXDOS 1 y 2 + drivers - como? Publicado por: Carlos Maidana en 06 de Noviembre de 2008, 11:47:34 pm Hola a todos!!
En primer lugar, perdon por responder 2 meses despues, pero (desde hace 2 meses) tengo cero tiempo con los 2 curros. a todos, muchas gracias por responder e intentar darme una mano. Citar Ramones dijo: Realmente en ningún sitio. Yo me tuve que mamar todo el código del que hablas, desensamblar un montón, hacer un millón de pruebas, etc, etc... No hay info en ningún sitio desgraciadamente. Así que todo pasa por compartirla entre los que nos hemos pegado ya muchas leches para conseguir hacer drivers y demás. Hace tiempo con Carlos Escobar venimos tratando de comprender el funcionamiento de la rom, los drivers, etc pero nos ocurre lo que comentas, no hay mucha informacion (digase nada) y no queda mas que desensamblar e ir "descubriendo" y develando los misterios del funcionamiento de la rom y el msxdos. Lo cual puede parecer tedioso pero termina resultando bastante divertido. Por lo menos para mi :P Citar Ramones dijo: Y bueno, no se si te habré ayudado pero después de tanto preguntar tú... ¿qué es exactamente lo que quieres hacer? Porque digo yo que esta información no la necesitarás para algo, ¿no? Ramones tu respuesta me hiper ayudo!!. Me has despejado todas las dudas. Por otro lado, si! estoy tratando de programar un driver para un lector de SD que diseñe hace algun tiempo atras. Mi idea es hacer de codigo libre el driver, los programas de particion, de testeo y todo el soft adicional que sea msx executable. Ya que no hay informacion detallada sobre el funcionamiento de todo esto me gustaria armar un articulo tecnico que trate de explicar y aclarar el panorama con el desarrollo de drivers, y a su vez, aprovechando el desarrollo de este driver, usarlo de ejemplo detalladamente comentado para que cualquiera pueda modificarlo y aprender o reutilizarlo. Que les parece la idea? p.d: Si alguien quiere colaborar con la elaboracion del articulo, bienvenido! mientras seamos mas, mas facil y rapido lo tendremos. |