IBM PC
# IBM PC

El IBM Personal Computer (en español, computadora personal IBM u ordenador personal IBM), conocido comúnmente como IBM PC, fue la versión original y el progenitor de la plataforma de hardware compatible IBM PC. Es el IBM modelo 5150, y fue introducido el 12 de agosto de 1981 haciendo parte de la quinta generación de computadoras. Fue creado por un equipo de ingenieros y de diseñadores bajo la dirección de Don Estridge y William C. Lowe del IBM Entry Systems Division en Boca Ratón, Florida. Junto al "microcomputador" y al "computador casero", el término "computador personal" ya estaba en uso antes de 1981. Comenzó a usarse desde 1972 para caracterizar al Alto de Xerox PARC. Sin embargo, debido al éxito del IBM Personal Computer, el término PC vino a significar más específicamente un microcomputador compatible con los productos PC de IBM. El IBM PC es el predecesor de las actuales computadoras personales y progenitor de la plataforma compatible IBM PC.

## Origen

### Antecedentes

2 años antes del IBM PC, IBM había lanzado su primer microcomputador de escritorio, el IBM 5100, introducido en 1975. Era un sistema completo, que tenía incorporado un monitor, un teclado y un almacenamiento de datos en una sola carcasa. Era también muy costoso - hasta $20 000. Se diseñó específicamente para los solucionadores de problemas profesionales y científicos, no para los usuarios empresariales o los aficionados. Nunca fue un computador personal.

En 1975 fue introducido el Altair 8800 en un artículo de la edición de enero de la revista Popular Electronics, vendido en forma de kit. El Altair sorprendió a sus creadores cuando generó miles de encargos en su primer mes de venta. La introducción del Altair generó una industria entera basada en la diagramación básica y el diseño interno.

Nuevas compañías como Cromemco comenzaron a ofrecer kits adicionales, mientras que Microsoft se fundó para suministrar un interpretador BASIC para los sistemas.

Poco después, varios diseños de clones completos aparecieron en el mercado, tipificados por el IMSAI 8080. Esto generó la aparición de una amplia variedad de sistemas basados en el bus S-100 introducido con el Altair. El Altair se considera la chispa que condujo a la revolución del computador personal.

En 1977 aparecieron tres microcomputadores que iniciaron una explosión en el mercado del computador doméstico: el Apple II de Apple Computer, el TRS 80 modelo I de Tandy y el Commodore PET de Commodore. Eran computadores fáciles de usar y fueron los primeros usados por la población en general. Pronto les siguieron otros computadores, como los primeros de la familia Atari de 8 bits, máquinas CP/M, diferentes modelos hechos por Tandy como los TRS 80 Modelos II y III y el TRS-80 Color Computer, el Texas Instruments TI-99/4A, el Commodore VIC 20 y otros.

Cada vez se sumaban más empresas, tanto las ya establecidas como otras de nueva creación que producían computadores o todo tipo de periféricos, componentes, y software para microcomputadores.

En 1978 apareció el WordStar, desarrollado originalmente para el CP/M. Fue el procesador de palabras con más características y fácil de utilizar de los disponibles para este sistema operativo, y se convirtió en un estándar de facto.

En 1979 apareció VisiCalc, la primera hoja de cálculo, considerada la aplicación que hizo que el microcomputador dejara de ser un pasatiempo para entusiastas de la computación y se convirtiera en una herramienta seria de negocios.

IBM viendo el auge de estos programas y el fulgurante éxito de Apple, con su Apple II, decidió entrar en el mercado del PC, que ellos habían ignorado hasta entonces.

También aparecieron los primeros videojuegos para computadores personales, los más populares eran Microchess, SARGON, Adventureland, Mystery House y Zork, entre otros. El mercado del microcomputador estaba creciendo muy rápidamente, pero IBM, la empresa de computación más grande del mundo y que entonces ofrecía desde minicomputadores hasta mainframes, todavía no participaba en este segmento.

### El desarrollo del IBM PC

La línea original de PCs era parte de una estrategia de IBM para ingresar en el mercado de las computadoras domésticas, que hasta entonces había ignorado y estaba dominado por otros. El modelo original del IBM PC fue designado como el 5150, poniéndolo en la serie del "5100" que había lanzado en el año 1975, aunque su arquitectura no fue descendiente directa del IBM 5100.

En vez de utilizar el habitual proceso de diseño de IBM, se reunió un equipo especial con autorización de saltar las restricciones normales de la compañía y rápidamente conseguir algo para el mercado. A este proyecto se le dio el nombre código de Project Chess (Proyecto Ajedrez) en el IBM Entry Systems Division en Boca Ratón, Florida. El equipo consistió de doce personas dirigidas por Don Estridge con el Diseñador en Jefe, Lewis Eggebrecht.

**Componentes externos**

Previamente IBM siempre había desarrollado sus propios componentes, pero no lo hicieron así en este caso.

Desarrollaron el PC en alrededor de un año. Para lograrlo, primero decidieron construir la máquina con partes disponibles (off-the-shelf) de una variedad de diferentes fabricantes de equipos originales (OEM) y de diferentes países, en segundo lugar, por razones de tiempo y costo, en vez de desarrollar diseños únicos para el monitor y la impresora del IBM PC, la gerencia del proyecto decidió utilizar un monitor IBM disponible existente, desarrollado anteriormente en IBM de Japón así como un muy popular modelo existente de impresora, el Epson MX 80. Por consiguiente, los únicos elementos de diseño industrial del IBM PC fueron relegados a la unidad del sistema y el teclado.

* El procesador era un 8088 de Intel.
* Los chips de soporte de la placa base eran un generador de reloj 8284A, un controlador de interrupciones 8259A, un controlador de bus 8288, un controlador DMA 8237A, un timer 8253, una interfaz programable de periféricos 8255A, todos de Intel, más lógica discreta adicional implementada con circuitos TTL usados como lógica de pegamento.
* Los chips de memoria RAM eran fabricados por terceros.
* El controlador de video, tanto para la tarjeta monocromática (MDA), como para la tarjeta gráfica de color (CGA), era el 6845 de Motorola.
* Las unidades de disquetes eran de la marca Tandon y el controlador de las unidades de disquete era un NEC µPD765.
* El teclado tenía un microprocesador 8048 de Intel.
* El BIOS de la placa base ocupaba 8 KiB de memoria ROM y fue escrito por IBM.
* Había un intérprete BASIC escrito por Microsoft en 32 KiB de ROM de la placa base.

**Arquitectura abierta**

También decidieron usar una arquitectura abierta, de modo que otros fabricantes pudieran producir y vender componentes periféricos y software compatible sin la compra de licencias.

IBM también vendió un manual, el IBM PC Technical Reference Manual que incluyó completos diagramas esquemáticos de los circuitos, un listado del código fuente del ROM BIOS, y mucha información detallada de ingeniería y de programación sobre cada uno de los componentes del IBM PC y su diseño en general.

Seis semanas después que IBM anunció el IBM PC, el 12 de agosto de 1981, en COMDEX, Tecmar tenía 20 productos para el PC disponibles para la venta. Estos productos incluyeron la expansión de memoria, IEEE-488, adquisición de datos y chasis de expansión.

En ese tiempo, Don Estridge y su equipo consideraban usar el procesador IBM 801 (un temprano CPU RISC) y su sistema operativo que habían sido desarrollados en el Thomas J. Watson Research Center en Yorktown Heights, Nueva York.

El 801 era más poderoso que el Intel 8088, y el sistema operativo era mucho más avanzado que el sistema operativo DOS 1.0 de Microsoft el cual finalmente fue seleccionado.

La eliminación de una solución interna hizo el trabajo del equipo mucho más fácil y pudo haber evitado un retardo en el horario, pero las últimas consecuencias de esta decisión para IBM eran de gran envergadura.

IBM tenía recientemente desarrollado el microcomputador de negocios System/23 Datamaster que utilizó un procesador e ICs periféricos Intel; la familiaridad con estos chips y la disponibilidad del procesador Intel 8088 fue un factor que decidiría en la opción del procesador para el nuevo producto.

Incluso los 62 contactos de las ranuras de expansión del bus de expansión fue diseñado para ser similar a las ranuras de expansión del System/23 Datamaster. Retardos debido al desarrollo interno del software del Datamaster también influyeron al equipo de diseño hacia un proceso de desarrollo acelerado para el PC, con información técnica públicamente disponible para animar a terceros desarrolladores.

El precio para el IBM PC comenzó en $1565 para una configuración escueta con 16 KiB de RAM y sin unidades de disquete. Sin embargo, la mayoría de los sistemas se vendieron con una o dos unidades de disquete y el sistema operativo PC DOS, y para trabajar con el sistema operativo se necesitaba un sistema con al menos 32 KiB de RAM. Todo esto subió el precio base del IBM PC a más de 2000 dólares.

**Consecuencias**

IBM esperaba mantener su posición en el mercado al tener los derechos de licencia del BIOS, y manteniéndose delante de la competencia. Desafortunadamente para IBM, otros fabricantes rápidamente hicieron ingeniería inversa del BIOS y produjeron sus propias versiones sin pagar derechos de uso a IBM. Columbia Data Products introdujo el primer computador IBM PC compatible en junio de 1982, (Compaq Computer Corporation anunció el Compaq Portable, el primer PC portable compatible IBM. Los primeros modelos fueron despachados en marzo de 1983.

Una vez que el IBM PC se convirtió en un éxito comercial, el producto regresó al usual control de la gerencia tradicional más apretado de IBM. La tradición de IBM de "racionalizar" sus líneas de productos, restringiendo deliberadamente el desempeño de modelos de menor precio para evitar que "canibalizaran" los beneficios de modelos más caros, facilitó el trabajo a sus competidores que no tuvieron inconvenientes en quitarle el liderazgo a IBM sobre su propio producto.

## El IBM PC como estándar

El éxito del IBM PC llevó a otras compañías a desarrollar sistemas compatibles de IBM, que a su vez llevó a mercadear cosas como disquetes publicitados como con "Formato IBM". Debido a la arquitectura abierta y con componentes externos estándar que se conseguían fácilmente en el mercado, un clon del IBM PC podía ser construido con piezas disponibles, pero el BIOS requirió ingeniería inversa.

Las compañías como Phoenix Software Associates, American Megatrends, Award y otras lograron versiones funcionales del BIOS, permitiendo a compañías como Dell, Compaq, y HP, y otras, manufacturar PCs que funcionaron como los productos de IBM.

El IBM PC se convirtió en el estándar industrial.

## Distribución por parte de terceros

ComputerLand y Sears Roebuck se asociaron con IBM desde el principio del desarrollo. El jefe de ventas y mercadeo de IBM, H.L. ('Sparky') Sparks, confió en estos socios al por menor en el importante conocimiento del mercado.

Computerland y Sears se convirtieron en los puntos de venta principales para el nuevo producto.

Ya existían más de 190 almacenes Computerland, mientras que Sears estaba en proceso de crear un puñado de centros de computadores, dentro de los almacenes, para la venta del nuevo producto. Esto garantizó la amplia distribución de IBM a través de los EE. UU.

Apuntando la nueva PC al mercado hogareño, las ventas de Sears Roebuck no pudieron llenar las expectativas.

Este resultado desfavorable reveló que la estrategia era apuntar al mercado de las oficinas, donde las ventas fueron más altas.

## Éxito comercial

El primer IBM PC fue lanzado el 12 de agosto de 1981. Aunque no era barato, con un precio base de U1.565 dólares (aproximadamente 4.700 dólares de agosto de 2021), era económico para las empresas.

Sin embargo, no fueron los departamentos de cómputo de las empresas los responsables de comprarlo, sino una serie de administradores de rango medio que vieron el potencial del PC cuando se portó la hoja de cálculo VisiCalc.

Confiando en el prestigio del nombre IBM, empezaron a comprar máquinas con sus propios presupuestos para hacer los cálculos que habían aprendido en las escuelas de negocios.

En pocos años el IBM PC y sus sucesores, tanto de IBM como los clones, desplazaron a casi todos los microcomputadores con otras arquitecturas, surgiendo así el estándar de la arquitectura x86, y del sistema operativo de disco MS DOS en un principio, y luego el sistema operativo Windows, convirtiéndose así en computadores Wintel.

## Tecnología

### Unidad del sistema

La unidad del sistema del IBM PC contenía la placa base, la fuente de poder (que energizaba todos los componentes), tenía espacio para hasta dos unidades de disquete de 5,25 pulgadas de altura completa y para albergar hasta 5 tarjetas de expansión conectadas a la placa base. En la parte trasera había 5 aberturas largas cubiertas con plaquitas metálicas atornilladas que eran removidas para poder colocar y atornillar las tarjetas de expansión. También había dos conectores DIN de 5 contactos, uno para conectar el teclado, y otro para conectar los cables para controlar un grabador de casetes previsto como dispositivo de almacenamiento. Había también un pequeño altavoz con el cual se podían generar tonos. Una cubierta deslizable cerraba la unidad del sistema.

El IBM PC típico se vendía con una o dos unidades de disquetes, una tarjeta controladora para las unidades de disquetes, y una tarjeta de video, de tal manera que había ocupadas al menos dos ranuras de expansión de las cinco que disponía el computador.

### Placa base

La placa base del IBM PC (llamaba planar en la terminología de IBM o tarjeta del sistema). Principalmente contenía el CPU, la RAM, y tenía un bus con ranuras de expansión para tarjetas. En la placa base también está el subsistema ROM, controladores de DMA, IRQ, y BUS, un socket para un coprocesador, cuatro bancos de memoria RAM de 16 KB cada uno, el circuito de sonido (un altavoz de PC generador de tonos), una interfaz para el teclado y una interfaz para casete.

**Chips**

La placa base estaba conformada por varios chips con propósitos especiales más lógica de pegamento implementada con un conjunto de ciruitos integrados de tecnología TTL:

* Un microprocesador Intel 8088 a 4,77 MHz, (que era una versión del Intel 8086 pero con un bus de datos de 8 bits en vez de 16). Junto con el 8086, el 8088 es el primer procesador de la arquitectura x86 usada en la mayoría de los computadores de hoy en día.
* Un generador de reloj Intel 8284, con un cristal a una frecuencia de 14,31818 MHz que era dividida entre 3 para generar los 4,7727267 MHz del microprocesador 8088, y dividida entre 4 para generar la señal de 3,579545 MHz usada por la tarjeta de video CGA para generar el burst para el color en el estándar de televisión NTSC. La frecuencia de 4,7727267 a su vez era dividida en 4 para generar una señal de reloj de 1,1931817 MHz para los tres contadores del timer 8253, uno de los cuales dividía esa frecuencia en 65536 y generaba la señal de 18,2065 ticks (por segundo) que disparaba una interrupción que servía para mantener la hora del sistema
* Un controlador de bus Intel 8288, que recibía la señal del reloj de 4,77 MHz, las señales S0, S1 y S2 del CPU y la de INTA del controlador de interrupciones, entre otras, y las procesaba para generar varias señales del bus de control
* Una memoria ROM con 8 KiB del BIOS, (el IBM PC ROM BIOS). En el ROM del BIOS se encontraba la implementación de las funciones del BIOS. Lo primero que se ejecutaba era el Power On Self Test (POST), que realizaba un diagnóstico de los componentes del computador e iniciaba los chips del sistema y al propio BIOS; luego se ejecutaba el Boot Strap Loader, que leía el sector de arranque de un disquete y le pasaba el control para así iniciar la carga del sistema operativo, o en caso de problemas iniciaba al IBM PC ROM BASIC
* El interpretador BASIC en ROM, (el IBM PC ROM BASIC), que residía en 4 módulos de 8 KiB de ROM cada uno
* Había cuatro bancos de memoria RAM con capacidad para 16 KiB cada uno, que permitía una expansión de memoria desde 16 KiB a 64 KiB en la placa base. Cada banco estaba compuesto con 9 chips de 16 Kibit (4116 DRAM). Eran 8 chips para los 8 bits del byte más 1 chip para chequeo de paridad. El primer banco tenía los circuitos de la memoria RAM soldados a la placa base. Los otros tres tenían zócalos para insertar circuitos de memoria extra para ampliación hasta 64 KB en total. Una versión posterior del IBM PC permitía ampliación hasta 256 KiB de memoria RAM en 4 bancos de 64 KiB cada uno
* El controlador programable de interrupciones (PIC) Intel 8259. Manejaba las interrupciones de hardware del IBM PC. Tenía capacidad para procesar hasta 8 interrupciones (IRQ 0 a IRQ 7). Por el IRQ 0 recibía una señal, 18,2 veces por segundo, desde el timer 8253, usada por el manejador de interrupción del BIOS para mantener un contador. Por el IRQ 1 se recibía una interrupción emitida por el controlador del teclado cada vez que se presionaba o soltaba una tecla. Por el IRQ 6 se recibía una señal desde el controlador de disquete. El IRQ 7 estaba reservado para la impresora, otros IRQ estaban reservados o no eran usados en el IBM PC original, pero luego se añadieron dispositivos que disparaban esas interrupciones.
* El temporizador programable de intervalos (PIT) Intel 8253. Tenía tres timers (contadores) (0, 1, 2). El timer 0 era usado para generar una señal 18,2 veces por segundo para disparar la interrupción IRQ 0. El timer 1 generaba una señal periódicamente para que el controlador de DMA refrescara la memoria RAM. El timer 2 podía ser usado para generar tonos de diferentes frecuencias para el altavoz de la placa base o también para generar tonos que representaban unos y ceros, y eran usados para grabar datos y programas en el grabador de casetes que se podía conectar al sistema
* El controlador DMA Intel 8237 era usado para transferencias entre los dispositivos de E/S y la memroria RAM y viceversa sin intervención del CPU. Tenía cuatro canales (0, 1, 2, 3). El canal 0 se usó para refrescar la memoria RAM, lo que se hacía periódicamente gracias a una señal emitida por el timer 1 del 8253. El canal 2 servía para la transferencia de datos desde y hacia la unidad de disquete.
* La interfaz programable de periféricos (PPI) 8255 fue usada para implementar los puertos de E/S 60h, 61h y 62h de la placa base. El puerto 60h era usado para la entrada del teclado o para leer el estado de 8 interruptores DIP, el puerto 61h era de salida y cada uno de sus 8 bits servía para controlar componentes del sistema, y el puerto 62h era usado para la leer interruptores DIP de configuración adicionales y también bits de señales de entrada
* En la placa base había un zócalo para insertar un coprocesador numérico Intel 8087 que le añadía la capacidad de realizar cálculos en coma flotante por hardware. No era común colocar un coprocesador numérico al PC, así que los programas que necesitaran hacer cálculos numéricos en punto flotante usaban bibliotecas en software para realizar los cálculos con el procesador 8088.

**Bus de expansión**

En la placa base, el IBM PC tenía 5 ranuras de expansión de 62 contactos, llamadas por IBM como el Canal de E/S. Eran usadas para poder insertar tarjetas de expansión que añadían funcionalidad al computador. Contiguo a cada ranura de expansión había, en la parte posterior de la carcasa del computador, una apertura a través de la cual las tarjetas de expansión podían exponer conectores. Cuando no había instaladas tarjetas de expansión, una cubierta metálica cubría la apertura para prevenir la intrusión de polvo, suciedad y controlar el flujo del aire.

Las ranuras de expansión eran una ampliación de los buses dirección, datos y control del procesador 8088. Tenía las 8 líneas del bus de datos y las 20 líneas del bus de direcciones (demultiplexadas), junto con las líneas del bus de control del CPU, y a estas líneas se les añadían líneas IRQ para interrupciones, líneas para el DMA, líneas de reloj, líneas de energía de +5, -5, +12 y -12 voltios (además de la tierra), y otras.

Fue diferente al bus S-100, que era un estándar de la industria al momento de salir el IBM PC. El bus usado en el PC original se hizo muy popular convirtiéndose en un nuevo estándar. Muchos fabricantes terceros manufacturaron todo tipo de tarjetas de expansión para el PC y el posterior IBM XT que también usó este bus, generando así una industria alrededor de la arquitectura del PC y el XT. Fue conocido como bus PC o bus XT, y luego como bus ISA de 8 bits.

Con el lanzamiento del computador IBM AT, IBM amplió el bus original del IBM PC para adaptarse a la nueva arquitectura del AT que tenía un procesador Intel 80286 y manejaba 16 bits de datos en vez de 8 y podía direccionar hasta 16 MB de memoria. El bus original del PC entonces amplió agregando 8 líneas de datos adicionales para trabajar con 16 bits, líneas adicionales de dirección para poder acceder los 16 MB, nuevas líneas de IRQ, DMA, y otras funciones.

Posteriormente, cuando IBM lanzó la serie de computadores PS/2, con una nueva arquitectura y un nuevo bus, (el MCA), IBM pretendía licenciar el nuevo bus a fabricantes terceros de computadores, pero el resto de la industria no se fue por ese camino y eligieron continuar manufacturando máquinas basadas en la arquitectura abierta y que no necesitaba licencia del IBM AT. El bus del AT entonces comenzó a llamarse Industry Standard Architecture (bus ISA), convirtiéndose en el nuevo estándar de la industria y convirtiendo al MCA de IBM en un fracaso. Entonces, el bus del PC original fue llamado bus ISA de 8 bits o bus XT ISA, mientras que el término ISA (a solas) se refería al bus AT de 16 bits (como está definido en las especificaciones del ISA). Posteriormente, en 1988, se desarrolló el estándar Extended Industry Standard Architecture (EISA), que ampliaba el bus ISA existente haciéndolo de 32 bits y añadiendo funcionalidad adicional equivalente a la del bus MCA de IBM pero manteniendo compatibilidad hacia atrás con el bus ISA.

El bus ISA del AT, estandarizado de esta manera es usado hasta nuestros días en computadores para uso industrial, donde su relativamente baja velocidad, señales de 5 voltios, y diseño relativamente simple y sencillo (para los estándares de 2011) le dan ventajas técnicas (ej. inmunidad a ruido para confiabilidad).

### Tarjetas de expansión

Al computador se le añadía funcionalidad por medio de tarjetas de expansión, llamadas por IBM como adaptadores. Para el IBM PC, IBM proveía dos tarjetas de video, el IBM Monochrome Display and Printer Adapter (MDA) (que también tenía incorporado un puerto para conectar una impresora) y el IBM Color Graphics Adapter (CGA), un controlador de unidades de disquete (al que se le podían conectar dos unidades de disquete internas y dos externas), un adaptador para impresora (puerto paralelo), un adaptador para comunicaciones asincrónicas (puerto serial RS232), un adaptador de control de juegos (para hasta 2 joystick o 4 paddles) y dos opciones de expansión de memoria RAM, una con 32 KiB de RAM y la otra con 64 KiB (con las que se podía ampliar la memoria del computador hasta 256 KB).

Las tarjetas se insertaban en cualquier ranura de expansión libre de las 5 que tenía el computador y, exceptuando la expansión de memoria, tenían conectores que eran expuestos al exterior por medio de ranuras en la parte trasera del computador. Los dispositivos se conectaban por medio de cables al conector respectivo. IBM vendía un monitor monocromático de alta resolución, el IBM 5151, que se conectaba en la tarjeta de video MDA, unidades de disquetes que se conectaban en el conector interno de la controladora, y una impresora que podía conectarse tanto en el puerto paralelo del MDA como en el adaptador paralelo independiente.

Debido a que las tarjetas originales de expansión de IBM tenían generalmente una sola funcionalidad, (puerto serial, puerto paralelo, controlador de unidades de disquetes, controlador de juegos, etc), era fácil llenar las cinco ranuras de expansión del PC, o aún las ocho ranuras del XT, incluso sin la instalación de ningún hardware especial. En el PC se ocupaban al menos dos ranuras de expansión, una para una tarjeta de video y otra para la controladora de disquetes, quedando libre solo tres. En el XT se ocupaba una tercera para la controladora del disco duro, quedando libres cinco. Fue entonces que compañías como Quadram y AST comenzaron a manufacturar muy populares tarjetas con múltiples funcionalidades (multi-I/O), que combinaban varios periféricos en una sola tarjeta de adaptador que usaba una sola ranura de expansión; Quadram ofreció el QuadBoard y AST el SixPak, ambas ofreciendo memoria RAM, un puerto serial, un puerto paralelo, un puerto de juegos, un reloj. Luego esto se volvió la manera estándar de incluir la funcionalidad básica a un computador. Hoy en día, gran parte de la funcionalidad viene incorporada en la propia placa base.

En las tarjeta paralela, la interfaz de periféricos programable (PPI) Intel 8255 (en la dirección de E/S 0x378) se usaba para el E/S de la impresora,

y en la tarjeta serial se usaba el Intel 8250 (UART) (en la dirección de E/S 0x3F8 o 0x3E8) que controlaba la comunicación serial en el (pseudo) puerto RS-232.

### Teclado

El teclado original del IBM PC de 1981 era extremadamente confiable y de alta calidad, desarrollado originalmente en Carolina del Norte para el System/23 Datamaster. Cada tecla fue clasificada para ser confiable sobre los 100 millones de pulsaciones. Para el IBM PC, fue diseñada una carcasa separada para el teclado con una característica de usabilidad nueva que permitía que los usuarios ajustaran el ángulo de inclinación para comodidad personal. Comparado con los teclados de otros pequeños computadores de ese entonces, el teclado del IBM PC era muy superior y desempeñó un rol significativo en el establecimiento de una imagen de alta calidad. Por ejemplo, el diseño industrial del teclado, junto con la unidad del sistema, fue reconocido con un importante premio de diseño. En otoño de 1981, la revista Byte fue tan lejos como pudo en expresar que el teclado era el 50 por ciento de la razón para comprar un IBM PC. La importancia del teclado fue definitivamente establecida cuando el IBM PCjr de 1983 fracasó, en gran parte por tener un muy diferente y mediocre teclado tipo chiclet que dio una pobre imagen a los clientes. Por extraño que parezca, la misma cosa casi sucedió al IBM PC original cuando, a principios de 1981, la gerencia seriamente consideró sustituir el teclado por uno más barato y de inferior calidad. Este error fue evitado por poco por el consejo de uno de los ingenieros de desarrollo originales.

Sin embargo, el teclado de 84 teclas del IBM PC original de 1981 fue criticado por los mecanógrafos por la colocación no estándar de las teclas ENTER y la de MAYÚSCULA de la izquierda, y porque no tenía un teclado de cursor y numérico separados, que eran populares en los terminales video de la serie DEC VT100 anteriores al PC. En 1982, Key Tronic introdujo el teclado PC de 101 teclas que ahora es estándar. En 1984, IBM corrigió las teclas de ENTER y MAYÚSCULA izquierda en su teclado AT, pero acortó la tecla de retroceso, haciéndola más difícil de alcanzar. En 1986, IBM cambió al teclado mejorado de 101 teclas, que añadió el cursor y el teclado numérico separados, relocalizando todas las teclas de función y la de control (CTRL), y la tecla de escape (ESC) también fue localizada en el lado opuesto del teclado.

Otra crítica del teclado era el sonido relativamente ruidoso del "chasquido" que hacía cada tecla cuando se presionaba. Puesto que los usuarios de máquina de escribir estaban acostumbrados a mantener sus ojos en el papel que estaban mecanografiando y tenían que confiar en el sonido mecánico que era hecho cada vez que un carácter era mecanografiado sobre el papel, para asegurarse de que habían pulsado la tecla lo suficientemente fuerte (y solamente una vez), la característica del teclado electrónico del PC, de "chasquear", fue pensada para proporcionar la misma seguridad. Sin embargo, resultó muy ruidoso y molesto, especialmente si muchos PC estaban en uso en el mismo cuarto. Los teclados posteriores fueron significativamente más silenciosos.

El teclado del IBM PC es muy robusto y flexible. La interfaz de bajo nivel para cada tecla es la misma: cada tecla envía una señal cuando es presionada y otra señal cuando es liberada. Un microcontrolador integrado en el teclado, el Intel 8048, explora el teclado y codifica un scan code (código de exploración) y release code (código de liberación) para cada tecla a medida que es presionada y liberada. Cualquier tecla puede ser usada como una tecla de cambio (shift), y un gran número de teclas pueden presionarse simultáneamente y ser detectadas por separado. El controlador en el teclado maneja la operación typematic (de repetición), emitiendo códigos de scan repetidos, para una tecla presionada después de un tiempo, y luego un solo código de liberación, cuando la tecla es finalmente liberada.

Un IBM PC compatible puede tener un teclado que no reconozca cada combinación de tecla como lo hace el de un verdadero PC, por ejemplo, teclas de cursor con mayúsculas. Además, los vendedores "compatibles" a veces usaron interfaces propietarias de teclado, previniendo que el teclado pudiera ser sustituido.

Aunque el PC/XT y el AT usan el mismo estilo del conector del teclado, el protocolo de bajo nivel para leer el teclado era diferente entre estas dos series. El teclado del AT usa una interfaz bidireccional que permite al computador enviar comandos al teclado. Un teclado AT no podía ser usado en un XT, ni al revés. Los fabricantes terceros de teclados proporcionaron un interruptor en algunos de sus teclados para seleccionar entre el protocolo de estilo AT y estilo XT.

### Tarjetas de video

Cuando salió el IBM PC al mercado, IBM ofrecía dos tarjetas gráficas para él, la Monochrome Display Adapter (MDA), y la Color Graphics Adapter (CGA). Ambas tarjetas usaban el controlador de CTR Motorola 6845.

**Monochrome Display Adapter**

La tarjeta MDA tenía 4 KB de memoria RAM, no podía desplegar gráficos y tenía solo un modo de texto de 80x25 caracteres de muy alta calidad y resolución (720x350). Los caracteres podían tener individualmente ciertos atributos: normal, invisible, subrayado, brillante (negritas), vídeo inverso, y parpadeo. Algunos de esos atributos podían combinarse. La MDA venía con un conector para conectar un monitor monocromático y uno para una impresora. IBM vendía opcionalmente el monitor IBM 5151 y una impresora que se conectaban a la tarjeta MDA. Algunas tarjetas MDA de IBM tuvieron circuitos que les permitían desplegar el texto en 16 colores con fondo de 8 más parpadeo, si se conectaban a un monitor de color RGBI.

**Color Graphics Adapter**

La CGA, además de los modos de texto, podía desplegar gráficos en resoluciones de 320x200 con cuatro colores, y 640x200 en 2 colores. Se podía seleccionar entre varias paletas de colores para elegir los 4 o 2 colores de los modos gráficos. Podía desplegar texto en baja resolución a 40x25, y alta resolución a 80x25. En ambas resoluciones el texto podía tener 16 colores con un fondo de 8 colores y además podía parpadear. En el modo de texto de baja resolución se tenían 8 páginas de texto y en el modo de texto de alta resolución 4. Una de esas páginas se desplegaba en un momento dado, pero podía cambiarse a otra página instantáneamente. La tarjeta tenía un conector para un monitor RGBI, un conector interno para entrada de un light pen, y una salida de video compuesto RCA, junto con un conector interno para poder conectar un modulador de radiofrecuencia y poder ver la imagen desplegada en un televisor normal de la época, que usualmente no tenían entrada directa para video. Con el modulador de radiofrecuencia podía verse la imagen producida por la CGA en el canal 3 o 4 del televisor.

**Adaptadores de terceros**

Pronto aparecieron otras tarjetas gráficas hechas por terceros que superaban las capacidades de las que vendía la IBM. Una de las más populares fue la Hercules Graphics Card (HGC), que mejoró significativamente las capacidades de la MDA de IBM, agregando al modo de texto de la MDA, un modo gráfico monocromático de alta resolución a 720x348. La HGA se convirtió en el estándar de la industria para los monitores monocromáticos. También aparecieron tarjetas como la Plantronics Colorplus, que tenía el doble de memoria RAM y mejoraba las prestaciones de la CGA original agregando dos modos gráficos adicionales, 320x200 a 16 colores, y 640x200 a 4 colores.

**Juego de caracteres**

| | -0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F | |
| - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - | - |
| 0- | | ☺ | ☻ | ♥ | ♦ | ♣ | ♠ | • | ◘ | ○ | ◙ | ♂ | ♀ | ♪ | ♫ | ☼ | 0- |
| 1- | ► | ◄ | ↕ | ‼ | ¶ | § | ▬ | ↨ | ↑ | ↓ | → | ← | ∟ | ↔ | ▲ | ▼ | 1- |
| 2- | | ! | " | # | $ | % | & | ' | ( | ) | * | + | , | - | . | / | 2- |
| 3- | 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | : | ; | < | = | > | ? | 3- |
| 4- | @ | A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | 4- |
| 5- | P | Q | R | S | T | U | V | W | X | Y | Z | [ | \ | ] | ^ | _ | 5- |
| 6- | ` | a | b | c | d | e | f | g | h | i | j | k | l | m | n | o | 6- |
| 7- | p | q | r | s | t | u | v | w | x | y | z | { | | | } | ~ | ⌂ | 7- |
| 8- | Ç | ü | é | â | ä | à | å | ç | ê | ë | è | ï | î | ì | Ä | Å | 8- |
| 9- | É | æ | Æ | ô | ö | ò | û | ù | ÿ | Ö | Ü | ¢ | £ | ¥ | ₧ | ƒ | 9- |
| A- | á | í | ó | ú | ñ | Ñ | ª | º | ¿ | ⌐ | ¬ | ½ | ¼ | ¡ | « | » | A- |
| B- | ░ | ▒ | ▓ | │ | ┤ | ╡ | ╢ | ╖ | ╕ | ╣ | ║ | ╗ | ╝ | ╜ | ╛ | ┐ | B- |
| C- | └ | ┴ | ┬ | ├ | ─ | ┼ | ╞ | ╟ | ╚ | ╔ | ╩ | ╦ | ╠ | ═ | ╬ | ╧ | C- |
| D- | ╨ | ╤ | ╥ | ╙ | ╘ | ╒ | ╓ | ╫ | ╪ | ┘ | ┌ | █ | ▄ | ▌ | ▐ | ▀ | D- |
| E- | α | ß | Γ | π | Σ | σ | µ | τ | Φ | Θ | Ω | δ | ∞ | φ | ε | ∩ | E- |
| F- | ≡ | ± | ≥ | ≤ | ⌠ | ⌡ | ÷ | ≈ | ° | ∙ | · | √ | ⁿ | ² | ■ | | F- |
| | -0 | -1 | -2 | -3 | -4 | -5 | -6 | -7 | -8 | -9 | -A | -B | -C | -D | -E | -F | |

Cuando salió el IBM PC, el código ASCII era un estándar de la industria, el cual tenía definidos 128 caracteres en 7 bits. IBM creó para el IBM PC el ASCII extendido usando 8 bits para agregar otros 128 caracteres a los 128 del ASCII. Este nuevo juego de caracteres fue usado por las microcomputadoras personales de IBM y por la industria de las máquinas clónicas, convirtiéndose así en un estándar.

El ASCII Extendido tenía, entre el código 128 y el 255 (por arriba del ASCII tradicional), caracteres para soportar algunos lenguajes diferentes del inglés, como por ejemplo las vocales acentuadas y la eñe del español, y además tenía algunos caracteres griegos, símbolos matemáticos, caracteres gráficos, y otros. Los caracteres del 0 al 31 ASCII estándar eran caracteres de control no imprimibles, pero IBM los aprovechó para desplegar caracteres imprimibles adicionales, como caras, signos sexuales, los palos de la baraja de cartas francesa, flechas en varias direcciones y otros.

Estos caracteres ASCII extendido podían ser desplegados por las tarjetas de vídeo en los modos de texto, pero en los modos gráficos el BIOS solo soportaba los primeros 128 (incluyendo los 32 caracteres especiales imprimibles entre el 0 y el 31).

Este juego de caracteres ASCII Extendido no contaba con todos los necesarios para su uso en ciertos idiomas, lo que hizo que se crearan variantes del juego original en el que se sustituían los 128 caracteres extra para adaptarse al idioma correspondiente. Estas variantes se llamaron páginas de códigos (del inglés code pages). Hoy en día estos códigos están obsoletos, habiendo sido reemplazados por esquemas mucho mejores, como el ISO-8859-1 o el Unicode.

### Medios de almacenamiento

**Cinta de casete**

Como ya se mencionó, IBM equipó al modelo 5150 con un puerto para conectar una unidad de casete, originalmente destinado para que los casetes compactos se convirtieran en el medio de almacenamiento más común para el 5150, soportada por el BIOS y el ROM BASIC del IBM PC. Sin embargo, la adopción de configuraciones sin floppy fue baja. Pocos IBM PC (si es que hubo alguno) dejaron la fábrica sin una unidad de floppy instalada. Además, el DOS no estaba disponible en cintas de casete, solo en discos floppy (por eso lo de "Sistema Operativo de Disco (DOS)"). Los 5150 con solo un grabador externo de casete para almacenamiento solo podrían usar el ROM BASIC del computador como su sistema operativo. A medida que el DOS vio una creciente adopción, la incompatibilidad de los programas DOS con los PCs que usaban solo casetes para almacenamiento hizo esta configuración incluso menos atractiva.

Es interesante que la interfaz de casete del IBM PC codifica los datos usando una modulación de frecuencia con una velocidad variable. Tanto un uno como un cero son representados por un ciclo sencillo de una onda cuadrada, pero las frecuencias de las ondas difieren por un factor de dos, con los unos teniendo una frecuencia más baja. Por lo tanto, los períodos de bits para ceros y unos también diferían por un factor de dos, con el inusual efecto que el flujo de datos con más ceros que unos usarán menos cinta (y tiempo) que un flujo de datos de igual longitud (en bits) conteniendo más unos que ceros, o con igual número de cada uno.

**Disquetes floppy**

La mayoría de los PC 5150 tenían una o dos unidades de disco floppy de 5.25 pulgadas. Estas unidades floppy eran, o de simple lado, doble densidad (SS/DD, también denominada como SSDD), o de doble lado, doble densidad ((DS/DD o DSDD). El IBM PC nunca usó unidades floppy de simple densidad. Las unidades y los discos eran referidas comúnmente por su capacidad, ej. "disco floppy de 160 KB", o "unidad floppy de 360 KB". Las unidades doble lado eran compatibles con versiones anteriores; podían leer y escribir floppies de simple lado. El mismo tipo de disquete físico podía usarse en ambas unidades, sin embargo, para convertir un disco simple lado de 5.25 pulgadas a un disco doble lado, era necesario reformatear, y las unidades de simple lado no podrían leerlo con ese formato.

Los discos eran codificados en Modified Frequency Modulation (MFM) en sectores de 512 bytes, y los sectores eran creados por software (soft-sectors). Contenían 40 pistas por lado con una densidad de 48 pistas por pulgada (TPI), mientras que los discos doble lado tenían una capacidad de 320 KB. Sin embargo, el sistema operativo DOS fue posteriormente actualizado para permitir formatear discos con nueve sectores por pista. Esto rendía una capacidad formateada de 180 KB con unidades/discos de simple lado, y 360 KB con las de doble lado. La capacidad no formateada de los discos floppy era anunciada como de "250 KB" para simple lado y "500 KB" para doble lado, sin embargo, estos "250/500 KB" en bruto no era la misma cosa que la capacidad formateada usable, bajo DOS, la máxima capacidad para los discos de simple y doble lado fue de 180 KB y 360 KB respectivamente. Independientemente del tipo, el sistema de archivos de todos los floppy (bajo DOS) fue el FAT12

Si bien las unidades de simple lado fueron inicialmente las únicas disponibles para el modelo 5150, muy pronto IBM cambió a unidades de doble lado, y la mayoría de los PC 5150 finalmente se despacharon con una o dos unidades de doble lado. El sucesor del 5150, el IBM XT nunca se despachó con unidades de simple lado; y generalmente tenía una unidad de 360 KB de doble lado contigua a su disco duro interno. Aunque es técnicamente posible modernizar al IBM PC original con disqueteras más avanzadas como las de alta densidad (lanzadas en 1984), esto no era una opción ofrecida por IBM para el modelo 5150, y el cambio a disquetes de 5.25 pulgadas de alta densidad estuvo notoriamente cargado con problemas de compatibilidad del disco.

La tarjeta controladora de disquetes original de IBM incluía un conector D-shell externo de 37 pines. Esto permitía a los usuarios conectar disqueteras externas adicionales de vendedores terceros. IBM en sí misma no ofreció unidades floppy externas.

**Discos fijos**

El 5150 no podía tener discos duros por sí mismo ya que su fuente de alimentación de 63,5 vatios no generaba la suficiente energía. Más tarde, IBM ofreció la 5161 Expansion Unit (Unidad de Expansión 5161) la cual no solo proveía más ranuras de expansión, sino que también incluía un disco duro de 10 MB (posteriormente 20 MB) energizada por su propia fuente de alimentación de 130 vatios. La IBM 5161 Expansion Unit fue lanzada a principios de 1983, dos años después del lanzamiento el IBM PC.

Una unidad de disco fue una característica rara y costosa en los primeros IBM PCs. Una unidad floppy (unidad A) era estándar, y una segunda unidad floppy, si estaba presente, fue designada como B. Las unidades de disco llegaron a conocerse como la "unidad C", porque en los IBM PC que las tenían, era la tercera unidad.

El primer computador personal de IBM que se despachó con una unidad de disco duro interna, fija fue el IBM modelo 5160, el IBM XT. A medida que otros computadores compatibles con el IBM PC comenzaron a aparecer, estuvieron disponibles discos duros con mayores capacidades de almacenamiento. Podían ser instalados en la Unidad de Expansión del IBM PC, en PCs actualizadas con nuevas fuentes de poder, o en el XT. Agregar una tercera unidad de disco a veces requería enchufar una nueva tarjeta controladora, porque algunas de esas unidades no eran compatibles con el controlador de disco existente. Algunas unidades de disco de terceros para el IBM PC eran vendidas como kits, incluyendo la tarjeta controladora y una fuente de poder de reemplazo. Finalmente, algunas unidades de disco fueron integradas con sus controladores en una simple tarjeta de expansión, comúnmente llamada una "HardCard".

Después de que las unidades de disquete se volvieron obsoletas a principio de los años 2000, las letras A y B dejaron de usarse. Pero por 25 años, virtualmente todo software basado en el DOS asumía que la unidad para la instalación del programa era la C, así que el disco primario continúa siendo "la unidad C" incluso hoy en día. Otras familias de sistemas operativos (ej. Unix) no están restringidos por estas designaciones.

### Impresora

Con el lanzamiento del IBM PC, IBM ofreció una impresora de matriz de puntos de 9 pines, la IBM 80 CPS Matrix Printer. Esta impresora era en realidad la extremadamente popular Epson MX 80, re-etiquetada como "IBM". Aceptaba formas continuas de 8 1/2 pulgadas e imprimía a 80 caracteres por segundo (cps). Se conectaba al computador a través de un puerto paralelo (interfaz Centronics) y tenía un juego de caracteres que se podían imprimir en varios tamaños y estilos: normal, condensado, agrandado (doble ancho). y condensado agrandado. Podía imprimirse en modo enfatizado y la mayoría de los modos podía imprimirse en double strike, que hacía el texto en negritas.

### Mapa de memoria del IBM PC

Abajo se encuentra el mapa de memoria del IBM PC. Los primeros 640 KiB, desde 00000h hasta 9FFFFh, tenían los vectores de interrupción, el área de datos del BIOS y el resto para el PC DOS y los programas. El área entre A0000h y FFFFFh estaba reservada para las ROM del sistema y el ROM de las tarjetas adaptadoras y la memoria RAM de estas. Para cuando salió el IBM PC mucha de esta área no estaba asignada. Luego se usó este espacio para memoria de las nuevas tarjetas de video, la especificación de memoria expandida EMS, etc. Como ejemplo, la muy popular tarjeta de video Hercules Graphics Card, que pronto sustituyó a la MDA de IBM como estándar, ocupaba 32 KiB del espacio de memoria entre B0000h y B7FFFh.

| Dirección (en Hex) | Longitud | Descripción |
| - | - | - |
| 00000 - 00400 | 1024 bytes | Vectores de interrupción del 8088 |
| 00400 - 004FF | 256 bytes | Área de datos del BIOS |
| 00500 - 9FFFF | casi 640KiB | Área para el PC DOS y los programas |
| A0000 - AFFFF | 64 KiB | Área reservada para adaptadores |
| B0000 - B0FFF | 4 KiB | Memoria RAM de la tarjeta de video MDA |
| B1000 - B7FFF | 28 KiB | Área reservada para adaptadores |
| B8000 - BBFFF | 16 KiB | Memoria RAM de la tarjeta de video CGA |
| BC000 - F3FFF | 240 KiB | Área reservada para adaptadores |
| F4000 - F5FFF | 8 KiB | Socket para una ROM del usuario |
| F6000 - FDFFF | 4 x 8 KiB | IBM PC ROM BASIC |
| FE000 - FFFFF | 8 KiB | IBM PC ROM BIOS |

### Memoria expandida

El microprocesador 8088 del IBM PC podía direccionar hasta 1 MiB de memoria (20 bits de direccionamiento). En la arquitectura del IBM PC, los 384 KiB superiores fueron reservados como espacio para el IBM BIOS, el ROM BASIC, otras ROM de BIOS que pudieran tener las tarjaras de expansión, memoria RAM para las tarjetas de video, y para otros dispositivos. Esto dejaba un espacio de uso para los programas de hasta 640 KiB de memoria RAM, que era muy superior a los 48 KiB de RAM para programas, y hasta 16 KiB de ROM para el interpretador BASIC, que se usaban en muchos de los computadores personales, (con microprocesadores de 8 bits), en el momento en que salió el IBM PC.

Posteriormente, el computador IBM AT, con su procesador Intel 80286 podía direccionar hasta 16 MiB de memoria, pero, los programas del MS DOS y del PC DOS no podían direccionar memoria RAM por arriba del megabyte, aunque el computador la tuviera, excepto de una manera muy ineficiente. Otros sistemas operativos, como el OS/2 sí tenían la capacidad de acceder la memoria por arriba del megabyte.

Fue creado entonces la especificación de la Expanded Memory Specification (EMS), que permitía ver, desde el DOS, grandes porciones de memoria accedidas en páginas o bloques de 64 KiB de memoria, uno a la vez, de una manera eficiente. Entonces, la memoria expandida podía ser accedida desde el DOS, tanto con el procesador 8088 del IBM PC y el XT, como por el procesador 80286 del AT, que bajo el DOS trabajaba en modo real y por lo tanto no tenía acceso a la memoria por arriba del megabyte (excepto casi 64 KiB del área de memoria alta).

### Direcciones de E/S del IBM PC

El procesador 8088 usaba 16 bits del bus de direcciones para direccionar la entrada/salida, quedando así el espacio de direcciones de E/S en $2^{16}$ = 64 K = 65.536 direcciones de E/S distintas, pudiéndose acceder como puertos de E/S de 8 bits o 16 bits.

A continuación una lista de las direcciones de los puertos de entrada/salida (E/S) usados en el IBM PC. Las direcciones están en hexadecimal.

**Chips de la placa base**

* 00-0F - Controlador de DMA Intel 8237
* 20-21 - Controlador de interrupciones Intel 8259
* 40-43 - Timer programable Intel 8253
* 60-63 - Interfaz programable de periféricos Intel 8255
* 80-83 - Registros de página para el DMA
* A0-A? - Máscara para la Interrupción no enmascarable
* C0-C? - Reservado
* E0-E? - Reservado

**Tarjetas de expansión**

* 200-20F - Tarjeta controladora de juegos
* 3B0-3BF - Tarjeta monocromática MDA y puerto paralelo LPT1 incorporado en la tarjeta
* 3D0-3DF - Tarjeta gráfica de color CGA
* 3F0-3F7 - Tarjeta controladora de disquetes
* 378-37F - Puerto paralelo LPT2
* 278-27F - Reservado. Puerto paralelo LPT3
* 3F8-3FF - Puerto serie COM1
* 2F8-2FF - Reservado. Puerto serie COM2

**Chips agregados a la placa base del IBM AT**

Posteriormente se agregaron más componentes en los computadores personales de IBM que continuaron al IBM PC. El IBM PC AT agregó los siguientes:

* 70-71 - Un reloj en tiempo real (RTC) Motorola MC146818 con memoria no volátil (NVRAM), usado para la configuración del sistema (reemplazando los interruptores DIP y los jumpers usados con este propósito en modelos PC y PC-XT anteriores al AT.
* 80-9F - Un registro de direccionamiento DMA (implementado con un IC 74LS612)
* A0-BF - Un segundo controlador de interrupciones esclavo PIC 8259 esclavo
* C0-DF - Un segundo controlador DMA 8237 para DMA de 16 bits

Los computadores de hoy en día tienen, generalmente, la misma funcionalidad heredada desde el IBM PC, XT y el AT, manteniendo la compatibilidad hacia atrás hasta el IBM PC. Pero en vez de chips individuales y tarjetas añadidas, hoy en día esta funcionalidad se encuentra en el chip southbridge de la placa base para casi todos los componentes.

### Interrupciones de hardware

El hardware de la placa base tenía un controlador de interrupciones Intel 8259, que podía procesar hasta 8 líneas de interrupción de hardware (IRQ0 a IRQ7). El IRQ0 estaba asignado contador 2 del PIC 8253 de la placa base y recibía una señal de interrupción 18,2 veces por segundo, y el IRQ1 recibía una señal para interrupción por el controlador del teclado cada vez que se presionaba o liberaba una tecla. El resto de las interrupciones, IRQ2 a IRQ7, estaban disponibles para las tarjetas de expansión en el canal de E/S (el bus ISA de 8 bits). El IRQ 6 recibía una señal desde la tarjeta controladora de disquetes.

La IRQ0 a IRQ7 del controlador de interrupciones 8259 se asignaron en el IBM PC de la siguiente manera:

* IRQ0 - Generado por el temporizador programable de intervalos Intel 8253, 18,2 veces por segundo (timer tick)
* IRQ1 - Generado por el controlador del teclado Intel 8048
* IRQ2 - No usada en el IBM PC ni en el XT. Posteriormente en el IBM AT se le asignó una línea proveniente del controlador de interrupciones 8259 esclavo, para procesar los IRQ8 al IRQ15
* IRQ3 - Reservado para comunicaciones. Generado por el puerto serial, 8250 UART del COM2 y COM4
* IRQ4 - Reservado para comunicaciones. Generado por el puerto serial, 8250 UART del COM1 y COM3
* IRQ5 - No usado en el IBM PC, usado para el controlador de disco duro en el XT. En el IBM AT, puerto paralelo, Intel 8255 LPT2
* IRQ6 - Generado por el controlador de disquetes NEC µPD765
* IRQ7 - Reservado para la impresora.

El procesador 8088 llamaba a los vectores de interrupción 8, 9, A, B, C, D, E, F (en hexadecimal) en respuesta a las interrupciones de hardware IRQ0 a la IRQ7 que recibía el 8259. Los vectores de interrupción 8 (timer tick), 9 (teclado), E (controlador de disquete) apuntaban a rutinas en el IBM PC ROM BIOS para procesar las interrupciones de hardware correspondientes.

### Firmware

El firmware del IBM PC estaba albergado en 5 chips en la placa base, cada uno de 8 KiB de memoria ROM. El primero de ellos, que residía en la parte más alta de la memoria direccionable por el CPU, era el IBM PC ROM BIOS, donde se encontraban las rutinas del BIOS, el Power On Self Test, el Boot Strap Loader, y algunas tablas de datos. Los otros cuatro chips de ROM contenían al IBM PC ROM BASIC. Había un sexto zócalo libre en la placa base para que el usuario pudiera colocar un chip de ROM de 8 KiB con programas personalizados.

Adicionalmente, cada tarjeta que se enchufaba en el sistema podía tener su propia ROM controladora, que venían a ser extensiones del BIOS.

**ROM BIOS**

El IBM PC tenía una memoria ROM de 8 KiB en la dirección desde FE000 a FFFFF donde residía el IBM PC ROM BIOS, que era el BIOS del computador. Al iniciar el computador se ejecutaba el código en el BIOS del Power On Self Test (POST), que iba revisando los componentes del computador y los iba poniendo en funcionamiento y también se activaba al BIOS para volverlo operativo. Una vez iniciado y revisado el computador por el POST, se ejecutaba el Boot Strap Loader que cargaba el primer sector del disquete hacia la memoria RAM y le pasaba el control al código que residía allí para iniciar así el bootstrap del sistema operativo de disco PC DOS. En caso de haber una falla en la carga de dicho sector, se iniciaba el IBM PC ROM BASIC, que era el interpretador BASIC en el ROM del computador.

El BIOS tenía funcionalidad básica de E/S (I/O) para dispositivos como el teclado, la pantalla, la impresora, las unidades de disquete, el grabador de casete, interfaces seriales, y otras, y respondía a las interrupciones generadas por el hardware, como el timer tick, 18,2 veces por segundo, el teclado, al presionar o soltar una tecla, y la controladora de unidades de disquetes.

Pronto el IBM ROM BIOS fue clonado utilizando ingeniería inversa y el método del cuarto limpio, permitiendo que otras compañías pudieran fabricar clones del IBM PC surgiendo así el mercado de los clones.

En versiones posteriores de computadores personales fueron añadidas más funcionalidades al BIOS original del IBM PC.

**ROM BASIC**

Por los tiempos en que salió el IBM PC (1981), los computadores caseros de la época típicamente tenían un intérprete BASIC en su memoria ROM, generalmente escrito y licenciado por Microsoft a los fabricantes de microcomputadores. La pantalla del interpretador BASIC esperando por comandos era lo que usualmente se encontraban los usuarios al encender la máquina, y generalmente usaban un grabador de casetes como medio de almacenamiento de programas y datos, y también para cargar los programas que frecuentemente se comercializaban en ese medio. Luego aparecieron las unidades de disquete como medio de almacenamiento, y con ellas un rudimentario sistema operativo de disco (DOS), pero era una alternativa muy costosa para el usuario típico del hogar.

El IBM PC tenía, como los demás microcomputadores de la época, un intérprete del lenguaje de programación BASIC, en 4 ROMs de 8 KiB, y también tenía un puerto para conectar un grabador de casetes como medio de almacenamiento. El BASIC en ROM se activaba en caso de no haber un disquete en la unidad o haber una falla en leer el primer sector del disquete, o no haber unidad de disquete.

El ROM BASIC tenía casi toda la RAM del computador a su disposición pues no se había cargado el sistema operativo desde el disquete. Podía leer y escribir archivos y programas en la grabadora de casetes, pero no tenía la capacidad de manejar archivos en disquetes, lo que lo hacía muy limitado. También, era la base de los interpretadores BASIC que venían con el PC DOS, BASIC y BASICA. Estos no podían funcionar sin el BASIC en el ROM del IBM PC.

Los clones que pronto surgieron, tenían un BIOS clonado pero no disponían del BASIC en ROM, así que Microsoft ofreció para ellos el MS DOS, que era una versión del PC DOS que podía funcionar en cualquier computador, y este tenía un interpretador BASIC llamado GW-BASIC, que era una versión del BASICA que no necesitaba el ROM BASIC que solo tenían los computadores originales de IBM.

### Software

El IBM PC venía con 8 KiB de ROM para su BIOS, el IBM PC ROM BIOS, y 40 KiB de ROM (en 4 chips de 8 KiB) para su interpretador BASIC, el IBM Cassette BASIC.

Para el IBM PC estuvieron disponibles tres versiones del lenguaje BASIC (Cassette, Disk y Advanced), El sistema operativo de disco (DOS), el PC DOS, un compilador Pascal, el sistema operativo CP/M-86, el UCSD p-System, los programas General Ledger, Accounts Receivable y Accounts Payable de Peachtree Software, Inc; el procesador de palabras EasyWriter, la hoja de cálculo VisiCalc, Microsoft Adventure (una versión del programa del Colossal Cave Adventure), un programa de comunicaciones.

El sistema operativo PC DOS era necesario para operar las unidades de disquete y para trabajar con el computador. Un compilador de BASIC, BASCOM (BASic COMpiler), fue posteriormente disponible para acelerar el BASIC interpretado, al igual que un macro assembler, y un compilador Fortran. Posteriormente, cuando el IBM PCjr fue desarrollado, otra versión de BASIC llamada Cartridge BASIC estuvo disponible como un cartucho de expansión, pero solamente para dicha máquina.

Se hicieron versiones para el IBM PC de programas que existían para otros microcomputadores. Se crearon todo tipo de programas para el IBM PC.

### Manuales y documentación

El computador venía con varios manuales en carpetas de tres anillos que se distinguían por sus colores característicos:

* IBM Guide to Operations, de color vino tinto. Traía información general sobre como operar y usar el computador, el sistema operativo DOS, y el hardware (las tarjetas de expansión, la impresora, el monitor, la unidad del sistema, etc). Se explicaba al usuario como armar el computador al sacarlo de la caja y cómo conectar los componentes. Había un pequeño manual de instalación y configuración por cada componente comprado. El manual tenía información para diagnóstico de problemas y al final había un sobre de plástico con un disquete de diagnóstico y se detallaba el uso del disquete de diagnóstico.
* IBM BASIC, de color verde oliva. Tenía información técnica de las tres versiones del lenguaje de programación BASIC de IBM, Cassette BASIC, Disk BASIC y Advanced BASIC. Había información sobre como usar el interpretador BASIC, información general sobre el lenguaje BASIC; el uso del editor de línea para escribir, editar, listar el programa, etc; una descripción del uso de las variables y de todas las funciones, sentencias y comandos del lenguaje, mensajes de error, etc.
* IBM DOS, de color crema. Venía al comprar el DOS. Tenía información sobre el uso del DOS, sobre cada comando del DOS para los usuarios, así como información técnica del funcionamiento interno para programadores. En un sobre plástico, al final del manual, se encontraba un disquete de 5.25" con el PC DOS. En ediciones posteriores del DOS se separó la información para el usuario de la información técnica de programación, creándose manuales distintos.

Adicionalmente se ofrecieron otros manuales y software en el mismo formato, como el del sistema operativo CP/M-86 de color crema, el IBM Hardware Maintenance and Service de color azul y el IBM PC Technical Reference Manual de color gris oscuro azulado, destacándose el IBM PC Technical Reference Manual por su contenido muy detallado del diseño y funcionamiento del IBM PC y por su impacto en la industria del computador personal.

**IBM PC Technical Reference Manual**

IBM ofrecía el IBM PC Technical Reference Manual (Manual Técnico de Referencia del IBM PC). En el manual se explicaba con todo lujo de detalles el funcionamiento del computador, la placa base, sus tarjetas de expansión (tarjetas de video CGA y MDA, de juegos, seriales y paralelas, controladora de disquetes), el monitor, la impresora, las unidades de disquete, y cada uno de los circuitos integrados que hacían trabajar al sistema. Se incluían especificaciones muy detalladas del hardware, diagramas de cada uno de los componentes del computador, especificaciones técnicas, guías de programación, y un listado completo del IBM PC ROM BIOS.

El manual técnico del IBM PC fue seguido por los correspondientes manuales técnicos para el IBM XT, IBM PCjr, y el IBM AT, al ir apareciendo estas máquinas en el mercado.

Estos manuales técnicos, con información de ingeniería tan detallada y abundante, tuvieron una importancia capital en el surgimiento de la industria de los computadores personales: En la manufactura de tarjetas de expansión, componentes, y de los computadores clones compatibles del IBM PC y siguientes computadores personales de IBM.

Gracias a la información técnica suministrada por IBM en este manual, a apenas pocas semanas del lanzamiento del IBM PC ya había tarjetas y accesorios compatibles para el computador personal de IBM, al año siguiente apareció el primer clon, el Columbia Data Products, y en muy poco tiempo se creó un enorme ecosistema de productos alrededor de los computadores personales (compatbles con IBM). La industria del computador personal de hoy en día nació, y es como es, gracias al IBM PC y su IBM PC Technical Reference Manual.

## IBM PC y sus sucesores

El PC original tenía un procesador Intel 8088 corriendo a 4.77 MHz, y había una versión de BASIC en ROM (el IBM Cassette BASIC). IBM vendió el PC en configuraciones con entre 16 KiB y 64 KiB de RAM preinstaladas en la placa base. el máximo de memoria en la placa base era de 64 KiB y se le podían añadir tres tarjetas IBM de memoria de 64 KiB para un total de 256 KiB, y con tarjetas de memoria de terceros podía subir hasta 576 KiB para un total de 640 KiB. Había disponibles, para salida de video, una tarjeta monocromática y una tarjeta gráfica de color, la tarjeta de vídeo de color podía usar una TV estándar como pantalla. Tenía un puerto para conectar un grabador de casete como dispositivo de almacenamiento. Estaba disponible una unidad de disco flexible como opción extra que la mayoría de los usuarios compraron; no estaba disponible el disco duro. Tenía cinco ranuras de expansión. IBM ofrecía una tarjeta de comunicaciones asíncronas, una tarjeta con puerto paralelo, una tarjeta de juegos, tarjetas de memoria de 32 y 64 KiB, un monitor y una impresora. El PC original fracasó estrepitosamente en el mercado casero, pero fue extensamente usado en los negocios.

El IBM PC XT salió al mercado el 8 de marzo de 1983. El procesador era un Intel 8088 de 4.77 MHz y el bus de expansión de 8-bit ISA con arquitectura bus XT, que era idéntico al del IBM PC con alguna modificación. Fue una máquina mejorada, diseñada para uso en los negocios. Tenía 8 ranuras de expansión y un disco duro de 10 megabytes (ST-412). Podía tener hasta 256 KiB de memoria en la tarjeta principal. Fue vendido con una tarjeta monocromática MDA.

El IBM PCjr fue anunciado en 1 de noviembre de 1983 y lanzado a finales de enero de 1984. Fue un intento de IBM para entrar en el mercado de los computadores caseros. Tenía un CPU Intel 8088 de 4.77 MHz, 128 KiB de memoria RAM, un teclado inalámbrico infrarrojo y entradas para cartuchos de expansión. Fue un fracaso debido a varias decisiones de diseño e implementación.

El IBM AT fue lanzado en 1984. Utilizó un procesador Intel 80286, originalmente a 6 MHz y después a 8MHz. Tenía un bus ISA de 16-bit y unidad de disco duro de 20 MB. IBM hizo algunos intentos en el mercado con una máquina multi-usuario, pero la vendió principalmente como una PC más rápida para los usuarios.

El IBM PC Portable 5155 modelo 68 fue uno de los primeros ordenadores portables, desarrollado por la IBM tras el éxito del Compaq Portable. Fue lanzado en febrero de 1984 y reemplazado por el IBM PC Convertible.

El IBM PC Convertible ( IBM PC 5140 o también conocido como IBM Convertible ) fue el primer ordenador portátil de IBM, presentado el 3 de abril de 1986. Destaca por ser el primer auténtico ordenador portátil de IBM, pues tenía capacidad para administrar su consumo energético y el uso de baterías. También fue el primer IBM en usar unidades de disquete de 3,5 ".

Luego aparecieron los modelos de PC de segunda generación. Los Personal System/2 (PS/2), son conocidos por sus números de modelo: Model 25, Model 30. Dentro de cada serie, los modelos son también normalmente referenciados por la velocidad del reloj de su CPU.

No obstante, IBM continuó produciendo computadores compatibles con sus primeros PC, esta vez incorporando los avances tecnológicos de sus competidores que ya eran comunes en la mayoría de PCs, bajo marcas como IBM ThinkVision, IBM ThinkPad, IBM ThinkVantage, IBM ThinkCentre, IBM Aptiva e IBM NetVista.

Todas las computadoras personales IBM son, en general, compatibles desde el punto de vista del software, pero no todos los programas funcionarán en todas las máquinas. Algunos programas son sensibles al tiempo para una clase de velocidad particular. Los programas viejos no aprovecharán novedades como estándares de pantalla de alta resolución o instrucciones extendidas de procesamiento.

