Sie sind auf Seite 1von 5

IBM PC ROM BIOS - Wikipedia, la enciclopedia libre

http://es.wikipedia.org/wiki/IBM_PC_ROM_BIOS

IBM PC ROM BIOS


De Wikipedia, la enciclopedia libre El IBM ROM BIOS, IBM BIOS o ROM BIOS era el BIOS del computador IBM PC. El BIOS resida en una memoria ROM de la tarjeta madre del IBM PC y ocupaba 8 KB. El BIOS realizaba un Power On Self Test (POST)), donde se revisaban e inicializaban algunos componentes del computador, se inicializaba y pona operativo al BIOS y al final se ejecutaba el Boot Strap Loader, el cual, cargaba en memoria RAM y ejecutaba el programa que resida en el primer sector del diskette, o en caso de no poder hacerlo, cargaba al IBM Cassette BASIC, la versin de BASIC que resida en la ROM de la tarjeta madre. En el IBM PC Technical Reference Manual (Manual de Referencia Tcnica del IBM PC), haba un listado completo del cdigo fuente en assembler del BIOS. Este listado del cdigo fuente fue usado con ingeniera inversa y tcnicas de cuarto limpio para realizar clones legales del BIOS. Con estos BIOS se hizo posible el surgimiento de la industria de los clones compatibles con el IBM PC que llega hasta nuestros das.

Contenido
1 Power On Self Test 2 El Boot Strap Loader 3 Funciones del BIOS 3.1 Funciones 3.2 Interrupciones generadas por el hardware 3.3 Interrupciones generadas por el BIOS 3.4 Tablas 3.4.1 Tabla de grficos para la generacin de caracteres 4 rea de datos del BIOS 5 Versiones 5.1 Versiones posteriores 6 Referencias 7 Vase tambin

Power On Self Test


Cuando se enciende el computador prcticamente nada est funcionando. No funcionan, la tarjeta de video, ni el teclado, ni la memoria RAM, ni el controlador de interrupciones, ni el controlador de DMA, ni el temporizador programable de intervalos, etc. Ni siquiera las funciones del propio BIOS estn operativas ya que ste todava no se ha inicializado. Solo est funcionando el CPU y tambin se puede leer el contenido de la memoria ROM. En el IBM PC, lo primero que ejecuta el CPU es el Power On Self Test (POST), y es aqu donde se iban revisando, iniciando, y poniendo operativos, uno a uno, cada uno de los componentes del PC. El IBM PC tena un procesador Intel 8088. Por diseo, la primera instruccin que realizaba el procesador 8088 era la que estaba localizada en la direccin de memoria FFFF:0 (en hexadecimal), la cual se encontraba en el ROM del BIOS del IBM PC. En la direccin FFFF:0 estaba una instrucin JMP que saltaba al inicio del cdio del Power On Self Test. El cdigo del Power On Self Test revisaba el CPU, la integridad del ROM donde estaba contenido el propio BIOS y la de los 4 ROM del IBM BASIC, la memoria RAM; se revisaban e

1 de 5

14/03/2012 13:52

IBM PC ROM BIOS - Wikipedia, la enciclopedia libre

http://es.wikipedia.org/wiki/IBM_PC_ROM_BIOS

inicializaban los principales circuitos integrados del IBM PC, como el controlador de DMA 8237, el controlador de interrupciones 8259, el timer 8253, el controlador de video 6845, la tarjeta de video, el teclado, la interface para cassette, la unidad de diskette, los puertos seriales y paralelos, en caso de que los hubieran. Tambin se inicializaban reas bajas de la memoria RAM con tablas, datos y reas de trabajo destinadas a ser usadas por el BIOS, as como tambin las direcciones a que apuntaban los vectores de interrupcin del 8088, para que apuntaran a rutinas que implementaban el BIOS, a tablas de parmetros, y al cdigo de inicializacin del ROM BASIC (IBM Cassette BASIC)). Al direccionar los vectores de interrupcin para que apuntaran a las varias rutinas correspondientes del BIOS y sus tablas de datos, y luego activar las interrupciones del procesador, era cuando el BIOS era activado y poda ofrecer su funcionalidad. Una vez finalizado el Power On Self Test, se ejecutaba el Boot Strap Loader (BSL) para comenzar la secuencia de bootstrap.

El Boot Strap Loader


El Boot Strap Loader es el encargado del bootstraping en el IBM PC y los posteriores computadores personales de IBM. En el IBM PC, primero determinaba si haba una unidad de diskette con un diskette insertado. En caso de haberlos, trataba de leer el primer sector del diskette (el sector de arranque) y copiaba su contenido en la posicin de memoria BOOT_LOCN (direccin 0000:7C00 en hexadecimal) para ejecutar el programa que se localizaba all. En caso de no haber unidad de diskette, o no haber un diskette insertado en ella, o haber fallado la lectura del diskette, o cualquier error en el proceso, se ejecutaba el IBM Cassette BASIC que resida en la ROM del sistema, y entonces apareca la pantalla inicial del BASIC. Esto ltimo diferenciaba los computadores personales de IBM de los clones que aparecieron despus. Los clones no tenan (ni tienen) una ROM de BASIC y en caso de no poder cargar en memoria el primer sector del disco muestran un mensaje de error. En el primer sector del diskette (formateado con el PC DOS), se encontraba un pequeo programa que era cargado por el Boot Strap Loader a la direccin de memoria 0000:7C00 y luego le pasaba el control. Este programa poda desplegar un mensaje de error en la pantalla, (en caso de ser un disco de datos), o era la primera secuencia de cdigo que se ejecutaba para cargar al sistema operativo PC DOS a memoria y ponerlo en funcionamiento, (en caso de ser un disco del sistema), iniciando as el bootstraping del sistema operativo. Ciertos programas comerciales venan con el primer sector diferente, y ste contena cdigo propio para propsitos especiales, como por ejemplo, un mecanismo de proteccin anticopia. Tambin, cuando aparecieron los virus de computadora, este primer sector era una de las reas comunes de ataque. Al residir el virus en el sector de arranque, era lo primero que se cargaba en la memoria del computador cuando ste se encenda, y quedaba residente all para, tal vez, contaminar todo diskette que se insertara en la unidad, replicndose en sus sectores de arranque.

Funciones del BIOS


El BIOS tena funciones bsicas de entrada/salida para el teclado, el pantalla, la impresora, el puerto de comunicaciones RS-232, el manejo de las unidades de diskette y la interface para cassettes, entre otras. Adicionalmente haban rutinas que respondan a interrupciones de dispositivos del hardware. Haba tambin una funcin para llamar al BASIC en ROM.

Funciones
Las funciones del BIOS se accesaban invocando interrupciones por software para el CPU del IBM PC, el Intel 8088. Esto haca que el CPU generara una interrupcin y fuera llamada la funcin del BIOS a la que apuntaba el vector de interrupcin correspondiente. Los parmetros a la funcin se pasan por medio los registros internos del CPU (AX, BX, CX, DX, etc), y en caso de que una funcin tuviera que retornar algn
2 de 5 14/03/2012 13:52

IBM PC ROM BIOS - Wikipedia, la enciclopedia libre

http://es.wikipedia.org/wiki/IBM_PC_ROM_BIOS

valor, tambin lo haca mediante los registros del procesador. La siguiente es una lista de las funciones del BIOS. (Los nmeros de las funciones estn en hexadecimal, y representan el nmero de interrupcin que se necesita llamar por software desde un programa): 05 - Imprime el contenido de la pantalla (Print Screen) 10 - I/O para el video 11 - Determinacin del hardware opcional instalado 12 - Determinacin de la cantidad de memoria RAM 13 - I/O para la unidad de diskette 14 - I/O para el puerto serial RS-232 15 - I/O para la unidad de cassette 16 - I/O para el teclado 17 - I/O para la impresora 18 - Ejecuta al IBM PC ROM BASIC 19 - Boot Strap Loader 1A - Retorna o ajusta la hora

Interrupciones generadas por el hardware


El BIOS tambin responda a algunas interrupciones de hardware, generadas por dispositivos como el teclado, el temporizador, y el controlador de la unidad de diskette. Las seales de los dispositivos llegaban el controlador de interrupciones Intel 8259. 08 - Time of day (18,2 veces por segundo), generado por el canal 0 del timer 8253. Usado para poder mantener la hora del da. 09 - Interrupcin del teclado. Generado por el teclado al presionar o soltar cada tecla 0A - No usado 0B - No usado 0C - No usado. Reservada para comunicaciones (RS-232) 0D - No usado 0E - Generado por el controlador de unidades de diskettes 0F - No usado. Reservada para la impresora En computadores posteriores al IBM PC se fueron agregando ms dispositivos de hardware que generaban interrupciones.

Interrupciones generadas por el BIOS


El BIOS generaba las siguientes interrupciones: 1B - CTRL-BREAK. Generado cada vez que se ejecutaba la secuencia CTRL + BREAK en el teclado 1C - Timer Tick (18,2 veces por segundo). Generada cada vez que el BIOS reciba la interrupcin 08 (ver arriba) Estas interrupciones inicialmente son respondidas por el propio BIOS con una instruccin IRET (Interrupt Return), (Retorno de Interrupcin), y se retornaba inmediatamente sin hacer nada. Un programa poda hacer que estas interrupciones apuntaran a rutinas internas y as poder procesarlas para determinados propsitos.

Tablas
El BIOS tiene diferentes tablas y reas de datos, necesarias para poder realizar sus funciones. Algunos vectores de interrupcin son usados para apuntar a estas tablas: 1D - Tabla con parmetros de inicializacin para el controlador de video

3 de 5

14/03/2012 13:52

IBM PC ROM BIOS - Wikipedia, la enciclopedia libre

http://es.wikipedia.org/wiki/IBM_PC_ROM_BIOS

1E - Tabla con parmetros para la unidad de diskette 1F - Tabla con los patrones de bits de los primeros 128 caracteres ASCII Extendido para usarse para desplegar texto y caracteres en los modos grficos de la tarjeta CGA Ntese que este no es el uso habitual de los vectores de interrupcin. Un vector de interrupcin normalmente apunta a una seccin de cdigo, no a tablas con datos. Una llamada errnea a estas interrupciones generara que el computador se estrellara, pues se trataran de ejecutar los datos de las tablas como si fueran cdigo. Tabla de grficos para la generacin de caracteres El vector de interrupcin 1F, apunta a una direccin dentro del BIOS donde se encuentra una tabla usada para la generacin de caracteres en los modos grficos. Cerca del final del ROM del BIOS, haba una tabla que se usaba, por las funciones de video del BIOS, para la generacin de caracteres en los modos grficos. Esta tabla contena los patrones de bits de los primeros 128 caracteres del cdigo ASCII extendido del IBM PC, y era usada para generar el texto, dgitos, smbolos, y caracteres especiales, en los modos grficos de la tarjeta de video CGA (para las sus modos grficos de 320x200 y 640x200). Estos 128 caracteres correspondan a los del cdigo ASCII estndar, pero mientras que los caracteres del 0 al 31 del ASCII son caracteres de control no imprimibles, en esta tabla, IBM haba aprovechado esos cdigos del 0 al 31 para usarlos para generar caracteres y smbolos grficos especiales, que a diferencia del ASCII normal, s generaban una imagen. En la tabla del BIOS no estaban representados los patrones de bits para los caracteres del 128 al 255 del ASCII extendido de IBM, as que en los modos grficos no podan desplegarse esos caracteres mediante el BIOS. En los modos de texto s se generaban porque ellos estaban definidos en una ROM interna en cada una de las tarjetas de video, CGA y MDA, que contena los patrones de bits de todos los 256 caracteres del ASCII extendido.

rea de datos del BIOS


El IBM ROM BIOS tena un rea de datos en RAM que iba desde 0040:0000 hasta 0040:00FF. Donde se encontraban el estado y otros datos sobre dispositivos del sistema y era usada por las funciones del BIOS para poder realizar sus tareas. En esa rea de datos se encontraba lo siguiente: Datos de configuracin del hardware. Contena las direcciones de hasta 4 puertos seriales y 4 puertos paralelos, informacin del hardware y cantidad de memoria RAM instalados, y cierta informacin del estado de inicializacin Datos del Teclado. Contena el buffer del teclado (16 caracteres), el estado de varias teclas como ambas teclas de CTRL y ALT, las teclas INS, NumLook, CapsLook, etc, y un byte para almacenar el caracter generado con un cdigo de 3 dgitos usando ALT + teclado numrico Datos del Diskette. Contena el estado de la unidad de diskette y de su controlador Datos del Video. Contena informacin de estado de la tarjeta de video activa Datos del Cassette. Contena informacin de estado de la unidad de cassette Datos del Timer. Contena un contador de Ticks, (que ocurra 18,2 veces por segundo), desde que el computador se encenda. Serva para determinar cual era la hora del da. Datos del Sistema. Contena informacin que indicaba si se haba hecho un CTRL+BREAK y si se estaba reseteando la mquina (con CTRL+ALT+DEL). En la direccin 0050:0000 haba un rea de datos extra. Adicionalmente haba un rea localizada entre 0030:0000 hasta 0030:00FF donde se encontraba un stack para uso durante el POST y que estaba activo cuando se realizaba el Boot Strap Loader y ste le pasaba el control al programa localizado en el primer sector del diskette. Este programa poda seguir usndola o crear su propia rea de stack.

4 de 5

14/03/2012 13:52

IBM PC ROM BIOS - Wikipedia, la enciclopedia libre

http://es.wikipedia.org/wiki/IBM_PC_ROM_BIOS

Versiones
La primera versin del IBM PC ROM BIOS est fechada el 24/04/1981, la cual sali con el IBM PC original del 12/08/1981. Luego hay una versin del 19/10/1981 y otra del 27/10/1982. Las primeras dos versiones no escaneaban las reas de ROM BIOS en busca de ROMs de extensin as que no podan cargar desde un disco duro, o usar dispositivos que dependieran de las ROM BIOS de extensin.1

Versiones posteriores
En versiones posteriores, para los computadores personales de IBM que siguieron al IBM PC, como el IBM XT, IBM AT, la lnea PS/2, etc, y de los computadores clones, se agreg ms funcionalidad al BIOS. En el IBM XT (y computadores posteriores) apareci funcionalidad para trabajar con unidades de disco duro, que comenzaron a venir de una manera estndar en el IBM XT y que el IBM PC no tena, y se agreg la capacidad de cargar el sector de arranque desde el disco duro adems de la que ya exista para cargarlo desde el floppy.

Referencias
IBM PC Technical Reference Manual
1. IBM PC 5150 and IBM PC XT 5160 FAQ (http://www.vintage-computer.com/vcforum/showthread.php?3567IBM-PC-5150-and-IBM-PC-XT-5160-FAQ)

Vase tambin
BIOS Llamadas de interrupcin del BIOS Direcciones base de entrada/salida IBM PC IBM PC BASIC PC DOS Bootstrap Sector de arranque Master boot record Obtenido de http://es.wikipedia.org/w/index.php?title=IBM_PC_ROM_BIOS&oldid=51771267 Categoras: Ordenadores personales de IBM BIOS Interrupciones Arquitectura x86 Esta pgina fue modificada por ltima vez el 29 nov 2011, a las 11:28. El texto est disponible bajo la Licencia Creative Commons Atribucin Compartir Igual 3.0; podran ser aplicables clusulas adicionales. Lee los trminos de uso para ms informacin. Wikipedia es una marca registrada de la Fundacin Wikimedia, Inc., una organizacin sin nimo de lucro.

5 de 5

14/03/2012 13:52

Das könnte Ihnen auch gefallen