Karoshi MSX Community
06 de Julio de 2021, 12:25:34 am *
Bienvenido(a), Visitante. Por favor, ingresa o regístrate.

Ingresar con nombre de usuario, contraseña y duración de la sesión
Noticias:
 
   Inicio   Ayuda Buscar Ingresar Registrarse  
Páginas: [1]
  Imprimir  
Autor Tema: Diskroms del MSXDOS 1 y 2 + drivers - como?  (Leído 5230 veces)
0 Usuarios y 1 Visitante están viendo este tema.
Carlos Maidana
Karoshi Newbie
*
Mensajes: 7


Hardware Phanatic!


WWW
« : 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  Tongue

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!
« Última modificación: 25 de Agosto de 2008, 12:52:31 am por Carlos Maidana » En línea

k0ga
Karoshi Fan
**
Mensajes: 85


Email
« Respuesta #1 : 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.
En línea
Carlos Maidana
Karoshi Newbie
*
Mensajes: 7


Hardware Phanatic!


WWW
« Respuesta #2 : 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??   Huh
En línea

Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #3 : 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?  Wink
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
Konamito
Karoshi Excellent Member
******
Mensajes: 1446



WWW Email
« Respuesta #4 : 26 de Agosto de 2008, 04:29:23 pm »

Gracias por responder koga! Cual es el nick de el aqui en el foro??

Ramones Wink

Un saludo.
En línea

Ramones
Visitante
« Respuesta #5 : 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  Tongue

Pues para ser neofito como te autodenominas parece que tienes bastante claras las cosas... Wink

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. Smiley

Y bueno, no se si te habré ayudado pero después de tanto preguntar tú... ¿qué es exactamente lo que quieres hacer? Wink Porque digo yo que esta información no la necesitarás para algo, ¿no? Cheesy


En línea
Jon_Cortazar
Administrator
Karoshi Forum's God
********
Mensajes: 2777



WWW Email
« Respuesta #6 : 27 de Agosto de 2008, 04:01:38 pm »

Toma ya! Cheesy Si es que el que sabe... Roll Eyes
En línea

Jon Cortázar Abraido (aka El Viejo Archivero)
RELEVO Videogames
[Dioniso: La cafeína está haciendo su trabajo; yo espero hacer el mío.]
[pitpan: Me sigue pareciendo más productivo jugar al SNAIL MAZE que seguir esta discusión.]
Carlos Maidana
Karoshi Newbie
*
Mensajes: 7


Hardware Phanatic!


WWW
« Respuesta #7 : 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  Tongue

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.


En línea

Páginas: [1]
  Imprimir  
 
Ir a:  

Impulsado por MySQL Impulsado por PHP Powered by SMF 1.1.21 | SMF © 2013, Simple Machines XHTML 1.0 válido! CSS válido!