interrupciones interrupcion ensamblador 21h 1ch 16h 10h assembly interrupt bios

assembly - interrupcion - ¿Cómo accedo al puerto USB a través del BIOS en el modo real x86 de 16 bits?



interrupciones bios (3)

Soy un novato en el mundo de la Asamblea,

Intento escribir algunos códigos de ensamblaje para comunicarme con dispositivos de hardware como Serial, Parallel, VGA, Keyboard, ... etc.

Estoy haciendo esto mientras estoy en Modo Real del procesador intel x86, al arrancar el código de una boostrap que personalmente escribí para cargar mi código ensamblador.

Bueno, según mi conocimiento que reuní de los tutoriales de lectura, la forma más fácil para mí fue utilizar BIOS INTs Service Routine (ISR) y, por otro lado, la manera MÁS LARGA es accediendo a los diferentes registros del hardware, como por ejemplo: Registro de estado y Registros de control del puerto serie ....

Q1: ¿estoy en lo cierto acerca de esto?

Pude comunicarme con los hardwares VGA y Serial usando BIOS INTs, pero no pude encontrar ninguna interrupción de BIOS para el controlador USB ..?!

Q2: ¿Me pueden ayudar en esto para poder comunicarse con el puerto USB y para otros puertos restantes, solo que sea general?

Q3:


Como dice Alex, no hay soporte universal para el nivel de BIOS para USB. Sin embargo, ha habido algunos intentos de crear controladores DOS en modo real para dispositivos USB. Encontré una página con algunos códigos fuente que debería poder usar: http://bretjohnson.us/source/source.htm


No hay nada en el PC BIOS que admita E / S USB similar a todas las demás E / S (teclado, pantalla, serie, paralelo, disco, altavoz). USB llegó demasiado tarde a la fiesta. La única cosa relacionada con USB que puede obtener del BIOS es la compatibilidad con teclados USB y el almacenamiento conectado a través de USB (puede iniciar desde ellos en PC modernas). Aparte de eso, debes implementar tu propia pila USB.


De acuerdo con el manual de GEUB ( http://www.gnu.org/software/grub/manual/html_node/Installing-GRUB-using-grub_002dinstall.html ), un BIOS sin errores expondrá el USB como un disco duro. Por lo tanto, puede usar las interrupciones del disco duro (por ejemplo, INT 0x13) para buscar y acceder a USB como un hardware normal. BIOS hace lo mismo para CDROM (ver http://wiki.osdev.org/El-Torito sin modo de emulación). Creo que el BIOS hará esto para todas las opciones de arranque admitidas, pero no he encontrado ningún documento que lo soporte.