HISTORIA Y EVOLUCION DE LA PC

April 29, 2017 | Author: Jairo Uparella | Category: N/A
Share Embed Donate


Short Description

Descripción: Conozca la historia de las PC desde la XT hasta el Pentiun P54C...

Description

Historia y Evolución de la PC – Jairo Uparella

Historia y Evolución de la PC – Jairo Uparella

Historia y Evolución de la

PC

Historia y Evolución de la PC – Jairo Uparella

Historia y Evolución de la

PC Jairo Uparella Prólogo y Revisión Técnica de

Alberto Newball Howard Suboficial A.R.C. – USA Navy Technical Assistant. Instructor del Centro de Entrenamiento Naval de Bolívar. Gerente de la División de Ingeniería de COMPUSISCA S.A.

Historia y Evolución de la PC – Jairo Uparella

No está permitida la reproducción parcial o total de este libro, ni su tratamiento informático, ni la transmisión de ninguna forma o por cualquier medio, ya sea electrónico, fotocopia o cualquier otro sin el permiso de los titulares del Copyright. Historia y Evolución de la PC Jairo Uparella ISBN 958-33-0388-7 [email protected] Copyright © 1996 – Soft & Easy del Caribe Ltda. Copyright © 2008 – Jairo Uparella E.U. – 3Dium - Ed.corregida para Internet Todos los derechos reservados CARTAGENA – COLOMBIA 2008 Diagramación, diseño de carátula e ilustraciones de Jairo Uparella Todos los derechos reservados Impreso por CASA EDITORIAL Cartagena D.T. y C. Colombia.

Historia y Evolución de la PC – Jairo Uparella

En mis primeros 10 años con la PC, dedicado a Maria Paulina mi hija, a mi madre y a mis hermanos.

Historia y Evolución de la PC – Jairo Uparella

Contenido Agradecimientos Prólogo Prefacio Introducción

i iii vii xi

Capítulo 1 Constitución de la XT El chip C.P.U. Constitución de la Motherboard Memorias y otros elementos de la XT El ROM-BIOS El coprocesador matemático Buses y conexiones Conexión de la Impresora Fuente de Voltaje Teclado Conjunto de Chips Resumen

1 1 3 4 5 5 6 6 8 10 10 11

Capítulo 2 Constitución de la AT286 El chip 80286 La Motherboard Memorias y el modo real Chips en la RAM Los SIMMs El Modo-Protegido y la Memoria Extendida Memoria Expandida Direccionamiento de la AT 286 Mapa de Memoria ¿Porqué ROM en RAM? Supuesto Direccionamiento del 286 Programas de Utilería El Código ASCII

13 13 13 15 16 17 18 18 19 22 24 25 27 30

Historia y Evolución de la PC – Jairo Uparella Chipsets y el bus ISA DMAs, IRQs, y Direcciones IOs DMAs Interrupciones IRQs El Stack de Interrupciones Más programas Direcciones IOs Velocidad y Tiempo CMOS y Jumpers. La Configuración de la AT 286 POST y Checkpoints Sonido

32 35 35 37 38 42 43 47 50 52 55 55

Capítulo 3 Constitución de la 386 El Chip 386SX La Motherboard Los Chipsets El Chip 386DX La Motherboard El Modo 386-Mejorado Memorias Cachés Organización de las Cachés Criterio de Escritura El Modo-Virtual 86 y el Modo-Protegido Memoria Virtual Los Archivos Swaps Direccionamiento con Memoria Virtual Las Multitareas y el Firmware

57 58 58 59 60 60 61 63 64 65 66 67 69 69 71

Capítulo 4 Constitución de la AT 486 El Chip 486SX La Motherboard El Chip 486DX FlashBIOS Actualizaciones El Chip 486DX2 El Bus Local Bus Mastering

73 74 74 75 77 77 77 78 79

Historia y Evolución de la PC – Jairo Uparella

VL-BUS El Chip 486DX4

80 82

Capítulo 5 Constitución del Pentium El Pentium Chipsets Arquitectura Superescalar y los Pipelines Predicción Dinámica de El Bus mezanine PCI Pentium P6 Otra vez a empezar

83 84 84 84 85 91 95 96

Capítulo 6 Los Periféricos de la PC El Controlador de Hardware El Controlador de Software Monitores, una historia para ver Resolución y Píxel Configuración Constitución del Monitor El Monitor a Color Formación de Colores La Paleta, la combinación de Colores Dot Pitch Otras Características Frecuencia Horizontal Refresco Vertical Ancho de Banda Controladores o Adaptadores de Video El Adaptador VGA RAM de video Características Adicionales de los Monitores Entrelazados Sincronización Múltiple de Frecuencia Capacidad Autoswitching Distorsiones De Caracteres a Bitmaps Los Monitores Verdes Otros Estándares

97 97 98 99 100 101 103 103 104 106 107 108 108 108 109 109 110 111 111 112 112 112 113 114 119 119

Historia y Evolución de la PC – Jairo Uparella

Capítulo 7 Impresoras, la tecnología de llevar un punto al papel Impresora de Matriz de Puntos Programación de la Impresora Secuencias de Escape Impresoras de Tecnología Láser Las Señales Otras Características Impresoras Láser de Color Del ASCII a los Fonts ¿Tipos o Fonts? Truetype El lenguaje POSTSCRIPT y el Spool de la Impresora Dibujando Fonts Impresoras de Chorro de Tintas Otras Características

121 122 123 123 126 127 129 130 131 131 131 133 134 135 136

Capítulo 8 Drives y Discos La Evolución de los Medios Magnéticos Diskettes, tecnología magnética Estructura Inicial Otras Características Tamaño Densidad Datos en Memoria Asignación de Drives El Drive y Conectores Instalación FORMAT.COM y el formato de Diskettes ¿Cómo se calcula la Capacidad de los Diskettes? Sálvele la vida a un diskette ¿Qué tanto resisten los diskettes? El Disco Duro Configuración en el CMOS Dar Formato a un Disco Duro Formato a Bajo Nivel Factor de Interpolación Partición

139 139 140 140 142 142 142 143 145 145 147 147 147 148 149 152 152 153 153 154 155

Historia y Evolución de la PC – Jairo Uparella Formato a Alto-Nivel Atributos de Archivos Clusters ¿Cómo se calcula la capacidad de los discos duros? Densidad y la Codificación Historia de las Interfaces El Adaptador Anfitrión SCSI Paquete de Terminación de Resistores IDE EIDE Fragmentación

155 157 158 158 158 160 160 163 164 166 167

Capítulo 9 El Láser y la Multimedia Las Tarjetas de Sonido y el CD-ROM La Tarjeta de Sonido Configuración Elementos de la Tarjeta de Sonido El CD-ROM ¿Cómo se lee información del CD? Los Estándares y la Transferencia de Datos Los Libros Trabajando con los Archivos .WAV

169 169 170 171 171 173 174 175 176 176

Capítulo 10 El Módem y el Fax/Módem La Transmisión de datos ¿Quién entiende a los BAUDIOS? Transmisiones HAYES AT Command Set Panel Frontal del MODEM Conexión a la PC La Tarjeta y su Configuración Historia de los Estándares V.34 Fax/Módem

177 177 178 179 180 180 181 181 182 183 183

Historia y Evolución de la PC – Jairo Uparella

Capítulo 11 La Administración de la PC AUTOEXEC.BAT CONFIG.SYS Instalación del MS/DOS Ayuda del MS/DOS Instalando Windows 3.1

185 187 189 191 192 193

Capítulo 12 La Conexión a Tierra El Regulador de Voltaje

195 197

Apendices APENDICE A – Evolución del MS/DOS APENDICE B – BIOS POST – Checkpoints APENDICE C – Código de Errores APENDICE D – Registros CMOS, RTC y Otros APENDICE E – Discos Duros en CMOS APENDICE F – Comandos AT APENDICE G – Interrupciones de la PC APENDICE H – Chips Referenciados en este libro

199 201 203 205 207 209 211 217

Bibliografía

233 235 243

Glosario Índice

Historia y Evolución de la PC – Jairo Uparella

Figuras e Ilustraciones Fig.# 1 – CPU 8088 2 – Motherboard 8088 / 86 3 – Distribución de Chips en RAM 4 – Conector DB25, Paralelo, DB9 y Centronics 5 – Fuente de Poder de 200 W 6 – Conector de Teclado 7 – CPU 80286 8 – Motherboard 286 9 – Chips de la RAM 10 – SIMMs 11 – Modo de Direccionamiento del 286 12 – Supuesto Direccionamiento del 286 en Extendida 13 – Constitución del Bus ISA 14 – Chip 82C37A 15 – Chip 82C59A 16 – Ubicación de Dirección en el Stack 17 – Menú de Configuración CMOS 18 – Chip 386SX 19 – Chip 386DX 20 – Chips de Memorias Caché 21 – Formato de Dirección Lineal de 32-bits 22 – Proceso de Paginación en el 386DX 23 – Chip 80486SX 24 – Chip 80486DX 25 – Chip 80486DX2 26 – Slot EISA 27 – Slot VL-BUS 28 – Constitución del VESA Local BUS 29 – El Chip Pentium 30 – Arquitectura Interna del Pentium 31 – Pentium de 3.3V (Visto por debajo) 32 – Slots PCI de 32 y 64-bits 33 – Constitución del Bus PCI por bloques 34 – Constitución del Bus PCI de 64-bits 35 – Tarjeta Multi-IO 36 – CRT Color 37 – Dot Pitch – Trinitron 38 – Adaptador VGA

Historia y Evolución de la PC – Jairo Uparella

39 – Impresora de Matriz de Puntos 40 – Impresora Láser 41 – Impresora Láser Color 42 – Impresora INK-JET 43 – Distribución Magnética de un Diskette 44 – Drive, Cable y Conector 45 – Conexión de Diskette y Disco Duro 46 – Conexión SCSI 47 – Configuración de Jumpers SCSI con Paridad 48 – Paquete de Terminación de Resistores 49 – Conexión IDE 50 – Configuración Master / Slave IDE 51 – Conexión EIDE 52 – Disco Fragmentado 53 – Constitución de una Tarjeta de Sonido 54 – CD-ROM 55 – Lectura en CD-ROM 56 – MODEM 57 – Tarjeta Fax / MODEM 58 – Conexión a Tierra 59 – Regulador de Voltaje

Historia y Evolución de la PC – Jairo Uparella

Indice de Tablas Tabla.# 1 – Conector Serial de 25 Pines 2 – Conector Paralelo de 25 Pines 3 – Conector Serial de 9 Pines 4 – Conector de la Fuente de Poder 5 – Mapa de Memoria en Modo-Real 6 – Espacios de Memoria de Video y Shadowing 7 – Mapa de Memoria con Direccionamiento a Extendida 8 – Caracteres del ASCII no imprimibles 9 – DMAs y Direcciones de Registro de Páginas 10 – Interrupciones Hardware 11 – Direcciones IO Típicas en una PC 12 – Nomenclatura de Elementos de la Motherboard 13 – Jumpers 14 – Errores reportados por el BIOS 15 – Distribución del Formato Lineal de 32-bits 16 – Pines del Pentium 17 – Significado de pines del Bus PCI 18 – Formación de Colores 19 – Formatos Usuales de Colores 20 – Conector VGA de 15 pines 21 – Frecuencias Comunes de Resoluciones 22 – Caracteres por Línea 23 – Algunas Órdenes de Secuencias de Escape 24 – Caracteres Independientes de Impresión 25 – Paralelo Bi-Tronic 26 – Serial RS-422A 27 – Algunas Fuentes True-Type 28 – Tipos de Caracteres POSTSCRIPTS 29 – Tipos Escalables – Bitmaps PCL 30 – Formatos de Diskettes 31 – Entrada del Directorio 32 – Atributos de Archivos 33 – Registro del Sistema de Archivos 34 – Codificación MFM y RLL 35 – Conectores y Jacks en el Bracket de Metal 36 – Conector del MODEM 37 – Leds del Módem

Historia y Evolución de la PC – Jairo Uparella

Indice de Programas Prog.# 1 – Scanner de Memoria Segmentada 2 – Para Obtener fecha del BIOS 3 – Scanner del Teclado de la PC 4 – KeyCrazy.BAS 5 – Los 224 caracteres imprimibles del ASCII 6 – Scanner de las Principales Interrupciones de la PC 7 – Obtención del Segmento de una Interrupción 8 – Localización del Movimiento del Mouse en Memoria 9 – Localización de Rutinas del Mouse 10 – Pulsos de Reloj 11 – Scanner de Direcciones IO 12 – Generador Simulador de Caracteres 13 – Detector de Video 14 – Colores Básicos 15 – Simulación de Generación de un Bitmap 16 – Copy & Paste de Bitmap 17 – Generador de Caracteres para Monitor e Impresora 18 – Simulador de Generación de Font Escalable 19 – DEBUG y parámetros ROM de Diskettes 20 – Reconocimiento del Drive Activo

Historia y Evolución de la PC – Jairo Uparella

Agradecimientos Un agradecimiento especial a: Oscar Santos B. Gerardo Araujo P. Germán Mendoza D. Carlos Ferriol D. Omar Barrios A.

Humberto Rueda A. Orlando Martínez P. Eladio Uparela M. Juan C. Otoya G. …

A mi esposa Adriana Garavito R. quien se tomó el trabajo de procesar electrónicamente este libro para que fuese nuevamente publicado.

Realmente tengo mucho que agradecer a las personas que por su espíritu de cooperación hicieron posible la recopilación de toda esta información y a aquellas que me han ayudado desde hace mucho a seguir este camino: Alberto Newball Howard, Gerente de Ingeniería de Compusisca S.A., quien me facilitó las motherboards, drives, tarjetas, cables y, lo más importante, su apoyo todo el tiempo. Juan Carlos Otoya, Gerente de Compusisca S.A. y todo el personal que labora en Compusisca S.A. que de una u otra forma han colaborado en la realización de mis trabajos. Pablo Troconis, quien me dejó entrar al cuarto de San Alejo en Compusisca. Oscar Teheran, Oswaldo Aguirre de EL PERIODICO de Cartagena, Carlos Peñaranda, a quienes les debo la producción de mis libros. Oswaldo Armella, Ingeniero de Sistemas a quien le debo de por vida mis primeros conocimientos. Gloria Burbano de Herrera, mi Jefe en la Financiera, quien me dejaba pasar horas y domingos en la AT 286. Beatriz Castell de Dueñas, Directora del Colegio Mayor de Bolívar y Juan Dáger Nieto, Secretario General, quienes me permitieron enseñar. i

Historia y Evolución de la PC – Jairo Uparella

A Juan Carlos Mantilla, Decano de Ingeniería de Sistemas, Sofía Trillos, Roberto Gómez, a los profesores Adolfo Gordillo, Giovanny Vasquez, Dario Valencia, Oscar Acuña, y mis amigos, Edwin J.Ruiz, Ever Hernandez C., Hernando Tarón y Luz Mery Valdéz de la Corporación Universitaria Tecnológica de Bolívar, quienes apoyaron y colaboraron en este proyecto. A mis amigos Iliana Restrepo, Juan Pablo Rico, Jorge Fernández, Karím Romero, Jose Mario Ojeda, Gonzalo Garzón, Juan Carlos Torres y Mauricio Venckeleer. También quiero agradecer por su especial y sincero gesto de apoyo al Capitán Gustavo Pérez, Capitán Marta Pineda, Teniente Alejandro Mejía, Teniente Mauricio Cubides y a todo el personal de Sistemas de la Escuela Naval en Manzanillo. A Martha E. de Vellojín, Gerente de Mini-Micro, Rodrigo Navarro, Gerente de Sistemas Especializados y su esposa Diana. Maria Modesta Aguilera y Manuel Marrugo de American Business School, Marta Luján, Gerente Apelcar de Bolívar. Mirta Lozano y a todos los de la sección de personal del Banco de la Republica. A mis apreciables amigas Margarita Sorock quién supervisa mi inglés junto a Amnerys Barrientos, quién además hace la corrección lingüística e idiomática de mis libros. A mis dos colaboradores en la revista, Daniel Padilla y Frantz Pacheco. To Ian W. Slade, Peter Cohen, Paul Thompson, Veronica Mansur, Mauricio Ramos and Mr. Elcco Sixma, wherever you may be, and everybody in the Shell Petroleum Company and HOCOL SA, my special thanks for everything you did. Thanks for teaching me how to make a project real but above all how to be patient.

Jairo Uparella

ii

Historia y Evolución de la PC – Jairo Uparella

Prólogo Parecería una tarea fácil la revisión del libro preparado por mi amigo Jairo, documento que en una forma amplia y clara, hace una recopilación acertada de la información de 10 años de historia de las PCs. Leerlo da la sensación de estar viviendo de nuevo cada una de las etapas en que afortunadamente muchos tuvimos el privilegio de observar y vivir y que se sucedieron desde la aparición del primer chip 8088, hasta el poderoso Pentium. Aquellos que no la vivieron, de igual manera se deleitarán por el conocimiento histórico que éste representa. Tarea difícil para muchos, pero fácil para una persona como Jairo, que no se detiene en la investigación, es inquieto, se mantiene motivado y lo más importante, no se conforma hasta llegar al fondo de las cosas y esto fue lo que encontré en la información revisada, redacción de mucha pulcritud, adecuada para todas las personas con o sin conocimientos técnicos en la materia y muy especialmente servirá como guía para estudiantes.

iii

Historia y Evolución de la PC – Jairo Uparella

Conozco a Jairo desde hace unos nueve años. Es la persona que siempre está actualizada y esto quizá lo motiva siempre a propiciar las tertulias para hablar del tema obligado, Software y Hardware. Debo confesar que cumplida la tarea de su lectura puedo afirmar, prescindiendo en cuanto sea posible de toda consideración de amistad, que quien se interese verdaderamente por conocer la historia de las PCs, va a encontrar este libro de valor incalculable. Agradezco sinceramente la oportuna lectura que me obligó a hacer el autor y fue la oportunidad de consolidar la imagen de él como un conocedor de las PCs.

Alberto Newball Howard

iv

Historia y Evolución de la PC – Jairo Uparella

Prefacio Son muchas las noticias que a diario se leen en la prensa sobre el mundo de la Informática.- Japón obtiene grandes ganancias en electrónica, se fusionan NOVELL y WordPerfect, IBM compra a LOTUS, Salió Windows 95, etc, etc. - Es un mundo en el que los protagonistas son los productores competitivos, pero quien realmente lo vive es el usuario final y yo soy uno más. Todo empezó cuando me asignaron como encargado de la AT 286 de IBM, utilizada en las transacciones contables de una empresa financiera. Eso fue exactamente en el año de 1985. La IBM había finalizado desde hace mucho la producción de PCs 8088, que permanecieron en el mercado Colombiano alrededor de 2 años. Otros modelos de 8088 (las de otros fabricantes), duraron más de 6 años.

v

Historia y Evolución de la PC – Jairo Uparella

El MS/DOS 3.10, era el sistema operacional monousuario que corría en las XTs (tecnología 8088). Esto era raro porque las versiones 3.x del MS/DOS fueron desarrolladas para ATs (tecnología 80x86). Esto debió ser por la compatibilidad con el 80286 y poder así ofrecer servicios avanzados en XTs. La verdad es que en ese entonces no sabía que William Gates y Paul Allen habían desarrollado al MS/DOS (Microsoft / Disk Operating System) y que fue vendido a la IBM para comercializarlo como IBM/DOS. No me explicaba porqué se hablaba en esa época de la máquina de Babbage, de Von Newman y de su familia en todas las instituciones educativas del país, que tuvieran microcomputadoras. Tampoco tenía ni la más remota idea de que el DR/DOS de la Digital Research, fuera el primer Sistema Operativo en pasar la barrera de los 640K; que el 8086 de 16-bits salió primero que el 8088 de 8-bits y antes del 80286 existía el 80186, el cual no fue tan popular como el 8086, que la primera computadora portátil pesaba 12 kilos, el XENIX era un sistema multiusuario variante del UNIX creado por Microsoft y el 80386 y el CD-ROM ya existían. En ese tiempo, se hablaba del “ábaco”… y me imagino cuantos profesores “rajaron” a sus estudiantes por no saber que el señor Pascal y los chinos tenían que ver con las computadoras. En ese entonces no teníamos ni la más remota idea de qué era la OOP (Object Oriented Programming) – Programación Orientada a Objetos, tecnología de software utilizada en la creación de programas para Apple LISA y el Macintosh. Pero 10 años más tarde, al parecer no se ha logrado mucho. A pesar de que nos encontramos en la era de los 32-bits y 64-bits, no dejamos de hablar del chip Z-80 de Zilog, el 8085 de Intel de 8-bits y desafortunadamente, todavía existen libros en el mercado sobre estas arquitecturas. Creo que si nos olvidáramos un poco de estas tecnologías y nos acercáramos por lo menos, a los 16-bits, nos daríamos cuenta que llegar a los 32-bits se nos hará un poco más fácil.

vi

Historia y Evolución de la PC – Jairo Uparella

Acerca de este libro En las siguientes líneas haremos un recorrido de 10 años de historia, desde la aparición de una de las primeras PCs de escritorio, la 8088 hasta el poderoso Pentium, con el fin de que reorganicen sus ideas y obtengan sus propias conclusiones sobre la producción y tecnología aplicada a las PCs o microcomputadoras. La teoría encontrada aquí es mínima y está más bien orientada hacia lo práctico, para facilitar su comprensión, por lo que puede variar un poco con respecto a otros libros, al igual que las fechas, las cuales hacen referencia a la época en que tuve conocimientos de ellas. En cuanto a las nomenclaturas de elementos o componentes, hago referencia a las PCs que adquirí y a otras que me prestaban para el propósito de éste libro, por lo que no se hace referencia a un modelo de PC en especial. Los temas son consecutivos y demostrativos, por lo que no se debe detener la lectura si hay algo nuevo o de poca comprensión. Es fácil aplicar todo esto a la PC que se tenga en casa u oficina y al modelo de la misma, si se tiene en cuenta que el libro está dividido de acuerdo con cada modelo y los temas de un capítulo pueden ser aplicados como base teórica en otros, por ejemplo, el tema de memorias y SIMMs es tratado en el capítulo de la AT 286, lo que prácticamente no varía en el Pentium, sino en pocos aspectos que son de fácil manejo para usted, como el tamaño, cantidad de chips, etc. Los programas pueden ser amoldados a cualquier otro lenguaje diferente de QBASIC, que utilicé por ser el que la mayoría de usuarios posee en el directorio DOS, y no necesita . En este libro no se pretende enseñar a programar. Los programas presentados aquí sólo están orientados para conocer internamente las localizaciones de subrutinas y otros procesos en la PC y algunos son simuladores de procesos para la comprensión de temas, las cuales tendrán que ser tratados con instrucciones de llamada a subrutinas como CALL ABSOLUTE de QBASIC, o utilizar instrucciones JMP, CALL o INT en Assembler, lo que no hace parte del tema del libro.

vii

Historia y Evolución de la PC – Jairo Uparella

Los temas están relacionados con la línea de hardware de tecnología CISC (Complex Instruction Set Computer) de los microprocesadores de Intel y aplicaciones de la línea IBM ™, Microsoft ™ en la PC.

Jairo Uparella Enero de 1996

viii

Historia y Evolución de la PC – Jairo Uparella

Introducción Olvídese de la historia de las microcomputadoras, esa que le enseñaron en el colegio y la repasaron en la universidad. La historia de la PC se divide en dos: A.D.W. y D.D.W. Esto significa, Antes de Windows y Después de Windows. Antes de Windows el propósito era llevar toda una computadora a un escritorio. Era sencillo programar, entender su funcionamiento basado en esquemas que hacían un ligero análisis del comportamiento de cada elemento de la PC y, por supuesto, el dominio sobre ella era absoluto. Rápidamente nos amoldábamos a lo que era un lenguaje de programación, un compilador y un Sistema Operativo. Las bases de datos era el principal producto final acompañado de algunos gráficos vectoriales, a pesar de lo que más se benefició con la llegada de la PC fue la contabilidad. ix

Historia y Evolución de la PC – Jairo Uparella

Se hablaba del teclado, monitor o “pantalla”, unidad de discos, unidad de procesos y la impresora. La cantidad de programadores que aparecieron en el mercado vieron con acierto un futuro asegurado. Los temas principales se mantenían alrededor de los archivos, registros, lenguajes de programación como el BASIC y COBOL, el ASCII y la compilación. Después de Windows, podríamos decir que acontece la verdadera “Revolución de la Informática” para dar inicio a nuevas tecnologías que sobrepasan la barrera del futuro. La necesidad de conocer más íntimamente a una microcomputadora, creció. La cantidad de términos nuevos cambió el concepto “sencillo” de manejo de las PCs, el número de programadores se freno reduciéndose en un 90% o más, debido a la cantidad de software que aparece en el mercado con mayor especialidad que los producidos en casa. Ya no hay ciencia de la informática, sino mercado de la Informática, originado principalmente por la guerra de chips y software. Muchos productos aparecen como juguetes adaptables a las PCs y no como tecnologías avanzadas y por supuesto paradójicamente, ha sido la clave para el éxito que han tenido en ventas. Ahora se habla más de buses, interrupciones, modo-protegido, memoria extendida. SIMMs, multitareas, Plug & Play, etc., términos que veremos en los capítulos siguientes. Otros se refieren al software bajo Windows como el Drag & Drop, WYSIWYG, OLE, DDE, OOP, etc. Todo es cuestión de familiarizarse con esta terminología. Cada término tiene un significado corto pero preciso, lo que hace posible entenderlo sin tanto esfuerzo. Describen en sí, el concepto práctico de un proceso o elemento, relacionando mucho de ellos entre sí o integrándolos en uno solo, esté último con significado propio e independiente.

x

Historia y Evolución de la PC – Jairo Uparella

La pregunta que quizá pudiera hacerse el lector, es ¿Por qué debo aprender sobre el interior de una PC? Para ser sincero yo también me hago la misma pregunta, y cuando quiero buscar una respuesta recuerdo una frase que escuché “Si quieres entender a un ser humano, debes saber cómo piensa”. Bueno mi comparación puede ser censurada, pero he visto a muchos enojarse frente a una PC cuando ésta no responde como esperaban.

xi

Historia y Evolución de la PC – Jairo Uparella

Capítulo

1

Constitución de la XT El Chip C.P.U. En el principio apareció la PC de IBM (1981 A.D.W, claro está). El chip CPU (Central Processing Unit) 8088, posee 40 patas, DIP (Dual-in Line Package), 8 de ellas para los datos, y trabaja a una máxima de 8 MHz (megahertz). Creado por Intel, es adoptado por productores de las máquinas más baratas llamadas “Clones” (Palabra vieja de biología, utilizada en ciencia ficción que significa “duplicado”) y se les llamó de arquitectura XT. El número entero positivo máximo que puede representar es 65,535 (2 multiplicado 16 veces e incluyendo al 0) con su de 16-bits, a pesar de tener un de 8-bits.

1

Historia y Evolución de la PC – Jairo Uparella

El 8086 difiere solamente en la ruta de datos que es de 16-bits, es decir, el doble del 8088, pero los conceptos a tratar en este capítulo, son aplicables a cualquiera de los dos. La velocidad de ejecución está dada en el orden de los 0.3 MIPs (300,000 Instrucciones por segundos).

Fig.#1- Unidad Central de Procesos 8088 Este chip reside en la tarjeta más grande de la XT, denominada “motherboard” o “systemboard” o simplemente en castellano, tarjeta madre. En ella se puede encontrar insertada una tarjeta del tipo “riser” (pronúnciese “raizer”) la que se inserta verticalmente para tarjetas de expansión acopladas horizontalmente y tiene a su vez 4 ranuras o conectores llamados “Slots de Expansión” para adaptar las tarjetas horizontales denominadas frecuentemente “Interfaces”. Por ejemplo, las tarjetas de controlador del disco duro, módem y otras. Los conectores de los puertos Serial y Paralelo, se encuentran haciendo parte de los circuitos de la tarjeta madre, al igual que los circuitos de video y teclado. Aclaremos de una vez por todas, que la palabra interface, es utilizada para designar una tarjeta o circuito de acoplamiento físico en las motherboards o un puerto, pero su real significado corresponde al estándar o a la norma de adaptación o integración a bajo-nivel entre dos circuitos independientes. Por otra parte, , Interface o Interfaz, es lo mismo. 2

Historia y Evolución de la PC – Jairo Uparella

Fig.#2- Motherboard 8088/86

Constitución de la Motherboard No todas las motherboards son tarjetas comunes de bakelita constituidas por una lámina de cobre a cada lado donde se graban sus circuitos impresos y donde se montan los integrados y unidades. Algunas están compuestas de varias capas de cobre separadas por material o fibra plástica y que sirven como aisladores de ondas de radio-frecuencias (señales parásitas) o simplemente como punto a tierra. Para verificar esto, se corto el extremo de una tarjeta motherboard vieja 286. Era como partir una lámina de triple. Varias capas realmente formaban la consistencia de la motherboard y es imposible saber qué elementos o unidades la utilizan (lógicamente que integrados y unidades que la atraviesan) pero se puede apreciar que ocupa la motherboard completa. 3

Historia y Evolución de la PC – Jairo Uparella

Memorias y otros elementos de la XT También encontramos sobre esta gran tarjeta los bancos e hileras de chips que conforman la memoria central llamada RAM (Random Access Memory). Esta RAM es direccionable hasta 1MB (megabyte) debido a 20-bits que forman la dirección física, de los cuales, 640K son utilizados para las aplicaciones o programas y el Sistema Operativo. El resto, 384K son utilizados por programas del sistema de la XT. El direccionamiento es una capacidad y cualidad de la CPU, con la ayuda de un Sistema Operativo en la que puede tener acceso a más memoria (mapas de memoria) que la física disponible.

Fig.#3- Distribución de Chips de Memoria RAM

La XT que se utilizó como material de referencia para este libro, posee 3 hileras de 9 chips, referenciados como D41256C-12. El 12 al final, indica que el tiempo de acceso de estas memorias es de 120 nanosegundos. Todo esto indica que tenía exactamente 768K RAM en Chips. 4

Historia y Evolución de la PC – Jairo Uparella

Realmente son 8 Chips (de 1- bit) por hilera (1 banco); el chip noveno es para la verificación de registro de los datos en RAM. Se le conoce como Chip de “Paridad” que significa por decirlo así “Comparación de par o impar”. Por ejemplo, para el código 01101101, la detección de paridad en memoria indica que es impar, debido a que tiene 5 unos en la cifra. Si un valor llegase a cambiar, el detector o comparador de paridad indicaría error.

El ROM-BIOS El otro tipo de memoria que seguro usted ha escuchado mencionar o que ya conoce, es el chip ROM (Read Only Memory) – Memoria Sólo Para Lectura – de 40K Bytes, que contiene un programa inmodificable, llamado BIOS (Basic Input / Output System) – Sistema Básico de Entrada y Salida – que es el encargado de manejar todo lo relacionado con el funcionamiento interno de la PC y donde el Sistema Operativo y programas obtienen información para ejercer funciones de control.

El Coprocesador Matemático También encontramos un socket para conectar al coprocesador matemático y que son CPUs que amplifican la potencia de representación interna de números, reflejado más que todo en la notación de decimales (reales). El Coprocesador de la época era el 8087 de 10 MHz del tipo DIP de 40 patas como el 8088. La verdad es que un microprocesador no trata números reales como creemos, es más no sabe lo que son números reales. Para generar e interpretar reales se utilizan muchas operaciones enteras hasta obtener un real satisfactorio. Esta es una de las razones de porqué existen los coprocesadores.

5

Historia y Evolución de la PC – Jairo Uparella

Buses y Conexiones La conexión por varías líneas en la motherboard entre la CPU y otros elementos como los slots de expansión se les denominó buses. Este nombre debió ser asignado por la relación con ruta o transporte. La primera arquitectura para buses se denomino AT de 8-bits. (Ver Constitución de la ISA Fig.# 13) La conexión del drive de diskettes se hacía por medio de un cable tipo cinta o listón gris que presentaba una línea roja en el extremo y que llega al conector marcado en la motherboard con 1. Posee 34 conductores según la XT que se conserva funcionando y totalmente desarmada. (Ver figura # 44). El controlador de diskettes es un chip del tamaño del 8088 referenciado como D765AC, pero realmente es un 8645. En un slot de expansión se puede conectar una tarjeta del controlador de disco duro del tipo ESDI (Enhanced Small Driver Interface) y era el estándar de la época. Utilizaba un cable de 34 conductores y otro de 20. El listón de 34 es utilizado para señales de control de disco y el de 20 es utilizado para datos. El disco duro en referencia es el ST–225 de 20MB. La ESDI tiempo después, no dio resultado.

Conexión de la Impresora Una impresora se puede conectar a la XT, por medio de un cable de 25 conductores en el puerto paralelo, al conector DB25 hembra o del tipo Centronics. La transmisión de datos se hace por paquetes o grupos simultáneos de 8-bits, a diferencia de impresoras y dispositivos que se conectan al puerto serial, bajo la norma RS-232C, por donde pasan los datos bit por bit, como el modem (modulador / demodulador), utilizando el conector DB25 macho.

6

Historia y Evolución de la PC – Jairo Uparella

Fig.#4- Conector DB25 Serial, Paralelo, DB9 y del Tipo Centronics

PIN 1 2 3 4 5 6 7 8 9 10 11 12 13

Fn

O I O I I I

Nombre

PIN

GND chasis Transmite datos Recibe datos Borrado para envío Limpia para envío Datos Preparados GND Detección de portadora nc nc nc nc nc

14 15 16 17 18 19 20 21 22 23 24 25

Tabla #1- Conector Serial de 25 Pines

7

Fn

O I

Nombre nc nc nc nc nc nc Terminal datos nc Alarma Indicadora nc nc nc

Historia y Evolución de la PC – Jairo Uparella

PIN

Fn

Nombre

PIN

Fn

Nombre

1 2 3 4 5 6 7 8 9 10 11 12 13

IO IO IO IO IO IO IO IO IO I I I I

Strobe D0 D1 D2 D3 D4 D5 D6 D7 Reconocimiento Ocupado Fuera de papel Selector

14 15 16 17 18 19 20 21 22 23 24 25

O I O O

Autofeed Error Inicia Impresora Selecciona Entrada GDN GDN GDN GDN GDN GDN GDN GDN

Tabla #2- Conector Paralelo de 25 Pines

PIN

Nombre

1 2 3 4 5 6 7 8 9

Detección de portadora Recepción de datos Transmisión de datos Terminal de datos listo GND Datos preparados Solicitud para envío Listo para emitir Indicador circular

Tabla #3 - Conector Serial de 9 pines

Fuente de Voltaje El conector de la fuente de poder que llega a la motherboard y suministra el voltaje y corrientes necesarias, está formado por doce líneas así: 8

Historia y Evolución de la PC – Jairo Uparella

LINEA

VALOR

COLOR

1 2 3 4 39665 9 0-12

PowerGood + 5 V DC + 12 V DC - 12 V DC Tierra - 5 V DC + 5 V DC

Blanco Rojo Azul Amarillo Negro Gris Rojo

AMP.

10 A 2.5 A 0.25 A 0.3 A

Tabla #4- Conector de Fuente de Poder

En todas las PCs podemos decir que el valor de 5V DC es utilizado por circuitos lógicos o chips y el valor de 12 V DC, para trabajos pesados como por ejemplo los motores paso a paso de los drives de discos. La línea Power Good, indica por medio de una señal (bips) que el valor de entrada en las líneas no es correcto.

Fig.#5- Fuente de Poder de 200W 9

Historia y Evolución de la PC – Jairo Uparella

Teclado El teclado internamente está constituido por un chip denominado 8749 sobre un circuito largo, que recibe pulsos hasta convertirlos en códigos o datos, que posteriormente serán enviados a la PC a través del cable.

1. Reloj 2. Datos 3. NC 4. GND 5. +VDC

Fig.#6- Conector de teclado

Conjunto de Chips La XT estaba compuesta de otros chips de los que poco se habla y son tan importantes como la CPU misma. Se dice que la CPU controla todo.... pues no es así! Existe un chip en la motherboard de la XT que tiene control en el sistema con referencia 82C11, implementador de puerto I/O y maneja entre otras cosas el puerto paralelo. Otro chip es el de comunicaciones seriales referenciado como INS8250N-B al que simplemente llamaremos 8250, comúnmente conocido como UART (Universal Asynchoronous Receiver / Transmiter) y maneja el puerto serial. Otros chips de importancia son el controlador de diskettes 8645, el chip 6845, que maneja el CTR (Cathode-Ray Tube) del monitor y en otros modelos, el PPI 8255 que es el controlador programable de periféricos.

10

Historia y Evolución de la PC – Jairo Uparella

Resumen “Las PCs no han variado mucho desde que se creo la XT”. Sí, así es. Lo descrito anteriormente son las bases para comprender el hardware actual de las PCs. Creo que lo único que queda por hacer es o bien describir detalladamente el sistema de la PCs o decir de una vez por todas que las 486 y Pentium son las mismas pero con unas mejoras impresionantes. OK, haré las dos cosas y ya dije lo segundo. Cuando se conoce a una ciudad por primera vez y se regresa a ella en 10 años, notamos enseguida que se le han construido puentes, calles, casas, edificios, pero ante todo, sigue siendo la misma ciudad. Ahora saben a que me refiero. La XT trabajaba con el sistema MS/DOS 3.10. Una serie de órdenes internas contenidas en un gran procesador de comandos llamado COMMAND.COM, como DIR, DEL, CLS, CD, MD entre otras y una serie de órdenes en disco como FORMAT.COM, DISKCOPY.COM y otros de extensión EXE. En ese entonces estaba al frente de los lenguajes, el GW-BASIC 3.20 y el BASICA para programación libre y el flamante COBOL para programación estructurada y que ahora ha sido orientado a objetos. PASCAL y C tomaban la delantera. Se dice que el MS/DOS está estructurado en C. Algunos programas para el manejo interno de la PC, como dar formato a diskettes nacieron o fueron desarrollados en BASIC, lenguaje incrustado en chip ROM, que era en realidad el software dominante antes de la creación de un verdadero Sistema Operativo. Mr Gates y Mr Allen, desarrollaron un entorno que manejara la PC y soportara otros lenguajes y en general cualquier otra aplicación. Podríamos decir que en 1975 con el BASIC en chips, se inició Microsoft. En 1976, Gary Kildall, creador del DR/DOS, le hizo frente a la competencia hecha por Microsoft. Desafortunadamente para Kildall, el MS/DOS, fue adoptado por IBM. Kildall fue el creador del primer Sistema Operativo para microcomputadoras denominado CP/M (Control Program for Microcomputers), con cierta similitud y en el cual se basa el MS/DOS. En 1971 Kildall era funcionario de Intel. 11

Historia y Evolución de la PC – Jairo Uparella

Resumiendo tenemos una PC, un lenguaje de programación como BASIC o C y un Sistema Operativo como el MS/DOS. Aquí empieza la tarea de superar velocidades, direccionar máxima memoria, la búsqueda del sistema perfecto, multitareas y optimizar otros factores. La creatividad tiene que superar los conceptos tecnológicos, para llegar a constituir la verdadera microcomputadora... ¿Cuál será? En ese entonces se decía que “Las XT no duraron mucho en el mercado por que las empresas productoras ganaban mucho dinero y no podían representar las cifras de ganancias en pantalla”. Esto tiene algo de cierto. Lo que creció realmente fueron los programas o el software y esto hizo que los productores de microcomputadoras mejoraran las PCs, cuyos dispositivos tendían cada día a ser más pequeños. Empezaba el año de 1985.

12

Historia y Evolución de la PC – Jairo Uparella

Capítulo

2

Constitución de la AT 286 El Chip 80286 Aquí nace la AT 286 propiamente dicha y se mencionarán a continuación las características de la CPU 286 y otros elementos, basados en los descritos anteriormente con respecto a las XTs: -130,000 transistores (un poquito más caliente) -1 MIPs -PLCC Y PGA (Plastic Leadless Chip Carrier – Pin Grid Array) – 68 pines - de 16-bits -Bus de Direcciones de 16-bits - Máxima 20 MHz -Máximo direccionamiento en RAM 16MB

Motherboard -Coprocesador 80287 (un 2 en la mitad del 8087) – PGA -El resto es lo mismo, excepto que el número de elementos fue duplicado por ser todo a 16-bits

13

Historia y Evolución de la PC – Jairo Uparella

Fig.#7- C.P.U. 80286 El Sistema Operativo utilizado era el MS/DOS 3.30 y fue entonces cuando se desató el uso de aplicaciones como LOTUS 123, WordPerfect, dBASE III, AutoCad 2.5, SuperCALC 4.0, Novell Netware 2.5, WordStar 4.0, etc, bajo DOS por supuesto, donde concluiría la historia antes de Windows.

Fig.#8- Motherboard 286

14

Historia y Evolución de la PC – Jairo Uparella

Memorias y el Modo-Real Creado el 286 se busca administrar el máximo rango de memoria direccionable que ahora llega a los 16MB. Aquí empieza la verdadera complicación de la constitución de la PC. Lo ideal sería que el direccionamiento se pudiera dar en forma planar, es decir que la cantidad de RAM a direccionar, fuera igual a la cantidad de RAM en chips. También se utilizan los SIMMs (Single In-Line Memory Modules), que hacen lo posible para soportar el direccionamiento y extender propiamente a la RAM, pero la realidad es que no se utilizaban 16 MB para los trabajos de la época. Casi todas las AT 286 existentes tenían un poco menos de 1MB en Chips RAM, por lo que la mayoría de aplicaciones y programas trabajan en modo-real. Aunque no se sabe por qué se le llamó modo-real, a este modo de operación, es ante todo aceptable y a mi juicio se debe a que el “mecanismo” de acceso a memoria no tiene que solicitar tantos permisos ni pasar por otros modos, para llegar a la posición de memoria deseada; lo que primero busca es lo que realmente encuentra. Pero... ¿Cómo es que 640K, 1MB o 4MB en chips y por direccionar 16 MB? Esto se consigue con administradores de memoria o con el desarrollo de ciertos trucos, para hacer creer que se posee más memoria de la que realmente se tiene en el sistema. Extender la memoria es un efecto difícilmente controlado. Si el 286 puede direccionar 16MB, ¿cuántos chips de 256K de 4-bits se necesita para cubrir este rango? Aproximadamente 192 chips, los que utilizarían una tarjeta de 96 x 10 cms, más larga que la motherboard o por medio de poderosos SIMMs, y aún así ocupa mucho espacio. Empecemos entonces por conocer su constitución.

15

Historia y Evolución de la PC – Jairo Uparella

Chips en la RAM La RAM en la AT 286 que utilizo como estudio, tiene 4 chips (2 x banco) referenciados como 53C256LS-80. No son 800 nanosegundos, sino 80. Esto es lo malo de las referencias de chips. Además, tiene 8 chips (4 x banco) referenciados como 53C104AP-80. Los primeros 4 chips, son exactamente chips de 256K de 1-bit y los 8 restantes son chips de 256K de 4-bits. Entonces, los 4 primeros trabajan a un-bit y los otros a un-nibble (4-bits). Si no tenemos en cuenta los 4 primeros chips, diríamos que esta AT posee 8 chips x 256K x 4-bits / 8-bits = 1024K, para K=1024 tenemos 1,048,576 Bytes, o 1 MB. Los chips que no se contaron, simplemente son los de paridad.

Fig.#9- Chips de la RAM

Todos estos chips son del tipo DRAM (Dynamic RAM) y tiene la característica de gastar poca potencia y a diferencia de las SRAM (Static RAM) que sí gastan mucha potencia, el sistema no se ve obligado a “recordarles” que datos poseen.

16

Historia y Evolución de la PC – Jairo Uparella

Un electrónico podría definir exactamente lo que significa “Memory Refresh”.

Los SIMMs Si se deseaba ampliar la memoria o extenderla, se insertaban SIMMs en los bancos siguientes para tal propósito. Eran modulos de 30 pines de 80 nanosegundos DRAM, de 9-bits.

Fig.#10-SIMMs

Dos módulos de 256K de 1-bit, permiten en un banco, ampliar hasta 512K. Cuatro módulos (2 bancos) amplían hasta 1 MB. Con 2 módulos de 1 MB, se extienden hasta 2 MB. Cuatro módulos de 1 MB permiten extender hasta 4 MB, lo máximo en esta AT. Con un módulo de 1MB no se puede extender a 1 MB, puesto que para ocupar un banco entero, se necesitan dos SIMMs.

17

Historia y Evolución de la PC – Jairo Uparella

El Modo-Protegido y la Memoria Extendida Si aumentó la capacidad de la CPU, por ende tenía que crecer el número de líneas de los buses. La tecnología ISA se encargó de dar soporte a los dispositivos y software que trabajan a 16-bits, pero esto no fue lo más impactante de la época. El 286 ofrecía su modus operandi, denominado modo-protegido, convirtiéndose éste, en un tema que inclusive hasta hoy se sigue y se seguirá tratando. El modoprotegido en sí es un modo en que la CPU con la ayuda de una tabla de direcciones controlada por un sistema operativo, evita que dos programas se encuentren en los espacios de memoria extendida, asignados a los mismos. El 286 en modo-protegido, no podía pasar a modo-real y había que hacer un reset a la máquina, como si estuviera trabada. Este modo es más bien utilizado por chips como el 386, 486 y Pentium.

Memoria Expandida Algo parecido a la memoria extendida se había hecho con las tarjetas de memoria expandida, EMS, que podían direccionarse hasta 8 o 16 MB y se les denominó LIMs (por convenios entre LOTUS, Intel y Microsoft) y lo que hacían era expandir memoria convencional a través de un marco de páginas, tratando de pasar la barrera de los 640K. Quedarán en la historia, ya que para Sistemas Operativos como el OS/2, Windows y aplicaciones futuristas, no tiene funcionalidad, a menos que simulen expandida en extendida, como lo requieren muchos programas actuales. Cada marco o frame de página es un segmento de 64K que ocupaba cierto espacio entre el rango de los 768K y el Megabyte. Además, sólo los programas elaborados para manejar EMS o LIM, pueden hacer uso de esta facultad.

18

Historia y Evolución de la PC – Jairo Uparella

Cuando aparecieron en el mercado programas administradores de EMS (Expanded Memory Specification) y XMS (Extended Memory Specification), para el 286 era demasiado tarde, a pesar de que existían modelos con capacidad para soportar EMS. La memoria extendida direccionable y el modo-protegido del 286, sólo sirvieron como referencias para futuros chips.

Direccionamiento de la AT 286 El direccionamiento de memoria en el 286 se refleja a manera de segmentos, lo que no es ventajoso. Con la orden DUMP del DEBUG del MS/DOS (si se tiene XTREE, mejor) se pueden apreciar estas divisiones, de 16 segmentos desde 0000 hasta F000, cada una con 64K Bytes (65536 bytes). Todos los programas cargados como el COMMAND. COM, drivers o controladores en software, se pueden observar en estos segmentos tanto en Hexadecimal, Instrucciones de máquina o Assembler y ASCII. El siguiente programa en QBASIC permite leer los denominados “parágrafos” de la memoria para asignación de segmento y desplazamiento.

‘Scanner de memoria ‘ ‘(C) Jairo Uparella ‘ ‘CLS DIM H(16) DO WHILE (PASO=0) INPUT “SEGMENTO (65535)”;S IF S65535 THEN BEEP ELSE PASO = 1 CLS

19

Historia y Evolución de la PC – Jairo Uparella

LOOP PASO = 0 DO WHILE (PASO = 0) INPUT “DESPLAZAR DESDE: (< 65535)”;DS IF DS < 0 OR DS > 65535 THEN BEEP ELSE PASO = 1 CLS LOOP CLS TITLE$ = “-------------- MAPA DE DIRECCIONES ----------------“ TITLE2$= “ 0 1 2 3 4 5 6 7 8 9 A B C D E F” PRINT TITLE$ PRINT TITLE2$ PRINT DEF SEG = S FOR L = DS TO 65535 COLOR 7,0 IF C = 0 THEN PRINT HEX$(S);”:”HEX$(L);TAB(12); I = PEEK(L) C=C+1 IF I =32 THEN PRINT CHR$(H(C)); ELSE PRINT”.”; NEXT PRINT CHR$(13); C=0 LIN=LIN + 1 END IF IF LIN = 20 THEN K$ = INPUT$(1) LIN=0; CLS PRINT TITLE$ PRINT TITLE2$ PRINT END IF NEXT END

Prog.# 1- Programa Scanner de Memoria Segmentada

20

Historia y Evolución de la PC – Jairo Uparella

Tengamos en cuenta lo siguiente: Apuntemos por ejemplo a la dirección 0004:0500; es la misma dirección 0003:0510; y a su vez, 0002:0520, pero la verdadera es la que tiene segmento y desplazamiento 0000:0540. La razón, es debido a la forma de direccionar del 8086. El segmento es sometido a un proceso de desplazamiento de bits (multiplicado por 10) y luego se suma al registro desplazamiento de la dirección. Al hacer esto, todos concuerdan o apuntan a la misma dirección, 00540.

21

Historia y Evolución de la PC – Jairo Uparella

Fig.#11- Modo de Direccionamiento del 286

Mapa de Memoria El Sistema Operativo puede asignar a la aplicación o programa un rango de memoria donde ejecutarse, primero porque obtiene el permiso de la CPU y segundo porque lee un mapa de memoria donde va marcando los espacios que entrega.

RANGO

DECIMAL

HEXADECIMAL

0K1K54K69K247K-

1K 54K 69K 247K 640K

00000 00400 0D800 11400 3DC00

640K768K960K-

768K 960K 1M

A0000 C0000 F0000

PROGRAMA

TIPO

003FF 0D7FF 113FF 3DBFF 9FFFF

BIOS DOS TSRs Programas Datos

Espacio De Memoria Convencional

BFFFF EFFFF FFFFF

Video RAM EMS ROMs, Buffers

Espacio De Memoria Reservada

Tabla #5- Mapa de Memoria en Modo-Real

22

Historia y Evolución de la PC – Jairo Uparella

El rango entre 00000 y A0000, es decir 0 a 640K, son espacios de la memoria convencional propiamente dicha, o la del modo-real, donde se ejecutan aplicaciones bajo DOS, TSRs (Terminate & Stay Resident), es decir que se quedan en memoria sin que uno los vea, accionados por teclas, o como los detestables virus, que al parecer en esa época eran ya muy conocidos. El siguiente rango va desde los 640K al Megabyte, A0000 a FFFFF y es ocupado por tarjetas de video, Red y otras, a la vez que Buffers o memorias temporales de interrupciones y en general de dispositivos. De aquí en adelante, hasta las 16MB es utilizada por aplicaciones que requieren de memoria extendida. Pero las ATs 286 no utilizaban los 16 MB, es decir no trabajaban en modo-protegido con direcciones físicas de 24-bits según la teoría, para llegar a los 16,777,216 Bytes, sino que se comportaban como unas perfectas 8086 que direccionaban hasta 1,048,576 Bytes con formato físico de 20-bits (5 nibbles).

Miremos ahora el rango ocupado por el video:

VIDEO

HEXADECIMAL

ESPACIO

SHADOWING

ESPACIO

MDA

B0000-B1000

4K

CGA

B8000-BC000

16K

EGA

A0000-BFFFF

128K

C0000-C3FFF

16K

VGA

A0000-BFFFF

128K

C0000-C5FFF

24K

Tabla #6- Espacios de Memoria de Video y Shadowing

23

Historia y Evolución de la PC – Jairo Uparella

Entre los 640K y los 768K, eran asignados a los estándares MDA (Monochrome Display Adapter), CGA (Color Graphics Adapter) y EGA (Enhanced Graphics Adapter). Cuando se instalaba un monitor EGA, los espacios para CGA o MDA eran desactivados. Obsérvese que el EGA ocupa mayor espacio que el asignado para CGA o MDA.

¿Por qué ROM en RAM? La velocidad y la ubicación en RAM permiten que el BIOS entre otros, sea tratado como un programa normal y de fácil acceso, lo que mejora considerablemente el rendimiento del equipo. El proceso de reubicar el ROM de video y BIOS en RAM se le conoce como SHADOWING. Claro que al activar el shadowing, hay que hacer lo siguiente: Desactivar el EMS o reubicarlo, para evitar conflictos. Bajo Windows sólo es necesario reubicar el ROM de ciertos dispositivos, puesto que el shadowing del BIOS es innecesario.

‘Lectura de fecha del BIOS ‘ ‘(C) Jairo Uparella ‘ CLS DEF SEG = &HF000 PRINT “Fecha-BIOS” FOR i = 0 TO 7 v = PEEK(&HFFF5 + i) PRINT CHR$(v) NEXT END

Prog.# 2- Programa para obtener Fecha del BIOS

24

Historia y Evolución de la PC – Jairo Uparella

Supuesto Direccionamiento del 286 Pero supongamos que podemos direccionar los 16 MB ofrecidos por la teoría del 286. Un sistema operativo asigna espacios de memoria en extendida con el modo-protegido activado. La máxima dirección que puede acceder es FFFFFF de 24-bits. El segmento base de 16-bits es desplazado a la izquierda (multiplicándolo por 10) y antes de sumarlo al offset, apunta a un directorio de 64-bits (LDT – Local Table Descriptor) donde se encuentra parte de la nueva dirección correspondiente al nuevo segmento y que sumado ahora sí, al desplazamiento base u offset, obtenemos una dirección física de 24bits o 6 nibbles.

Fig.#12- Supuesto Direccionamiento del 286 en Extendida

El direccionamiento del 286 en extendida, lo podemos comparar con una proyección de cine, en la forma en que metros y metros de película, se pueden ver en una pantalla de medida fija. O metros y metros de cinta magnética de un VHS, en un cuadro de TV de 14”.

25

Historia y Evolución de la PC – Jairo Uparella

Si asignamos a una película 12 cuadros por segundo, el efecto es cámara lenta, pero si asignamos 24 cuadros por segundo, el efecto es cámara normal. Podríamos decir que sí se reduce el tiempo de acceso de las memorias y se aumenta la frecuencia en Megahertcios de la CPU y buses (que no son las mismas), no tendríamos que aumentar considerablemente la cantidad de chips en RAM. Pero esto es sólo una teoría que en la práctica puede crear un caos. Si su AT requiere que las memorias sean de tantos nanosegundos, esto hay que respetarlo. El sistema esta “matemáticamente” configurado para trabajar con valores casi exactos. Esta es otra de las razones de porque los microcomputadoras desplazan microcomputadoras. Lo ideal es reducir el tiempo de ciclo para acelerar procesos o reducir el tiempo en que una Interrupción (como los IRQs que veremos más adelante) gasta en realizar su trabajo, quienes denotan la verdadera condición de velocidad en la PC. La inquietud ahora es saber por qué habría de aumentar la cantidad en chips. En RAM todo se ejecuta más rápido y si hay suficientes chips, muchos y grandes programas pueden “correr”, pero lo cierto es que habrá desperdicio de espacios. Si el Sistema Operativo no da un buen soporte a la distribución en la memoria física, se generarán errores.

26

Historia y Evolución de la PC – Jairo Uparella

RANGO DECIMAL

0k 1K 54K 69K -

HEXADECIMAL

PROGRAMA TIPO

1K 54K 69K 247K

00000 00400 0D800 11400

003FF 0D7FF 113FF 3DBFF

BIOS DOS TSRs Progs

247K - 640K

3DC00

9FFFF

Datos

640K - 768K 768K - 960K 960K - 1M

A0000 C0000 F0000

BFFFF EFFFF FFFFF

Video RAM EMS ROMs, Buffers

1M - 16M

A00000

FFFFFF

Espacio De Memoria Convencional

Espacio De Memoria Reservada

Memoria Extendida

Tabla #7- Mapa de Memoria con Direccionamiento a Extendida

Programas de Utilería El siguiente programa utiliza el segmento &H40 y desplazamiento &H17 es decir, dirección 0000:0417 ó 0040:0017, con lo que se obtienen de memoria, los valores de las teclas manejables por las rutinas del ROM-BIOS y que puede ser amoldado a cualquier programa:

‘Programa lector de teclado ‘Por combinación de carácter ASCII ‘ ‘(C) Jairo Uparella ‘ CLS DEF SEG = &H40 POKE &H17,0 ‘Switch de teclas DO UNTIL (K$ = CHR$(13))

27

Historia y Evolución de la PC – Jairo Uparella

TECLA = PEEK (&H17) ‘Lectura de tecla ‘Teclas automáticas IF TECLA% = 1 THEN IF TECLA% = 2 THEN IF TECLA% = 4 THEN IF TECLA% = 8 THEN

LOCATE LOCATE LOCATE LOCATE

1,1: 1,1: 1,1: 1,1:

PRINT PRINT PRINT PRINT

“Shift-Der” “Shift-Izq” “Control” “Alternate”

‘Teclas estilo switch IF TECLA% = 16 THEN LOCATE 1,1: PRINT “Scroll” IF TECLA% = 32 THEN LOCATE 1,1: PRINT “Num Lock” IF TECLA% = 64 THEN LOCATE 1,1: PRINT “Caps Lock” ‘Combinaciones IF TECLA% = 17 IF TECLA% = 18 IF TECLA% = 20 . . . IF TECLA% = 48 IF TECLA% = 96 . .

THEN LOCATE 1,1: PRINT “Shift-Scroll” THEN LOCATE 1,1: PRINT “Shift-Scroll” THEN LOCATE 1,1: PRINT “Ctrl-Scroll”

THEN LOCATE 1,1: PRINT “Num+Scroll” THEN LOCATE 1,1: PRINT “Caps+Num”

‘Otras teclas especiales, evitan cruzar números y cursor IF K$ = CHR$(0)+“H” THEN LOCATE 2,1: PRINT “Curs-Up” IF K$ = CHR$(0)+“M” THEN LOCATE 2,1: PRINT “Curs-Rht” IF K$ = CHR$(0)+“P” THEN LOCATE 2,1: PRINT “Curs-Dwn” IF K$ = CHR$(0)+“K” THEN LOCATE 2,1: PRINT “Curs-Lft” IF K$ = CHR$(0)+“R” THEN LOCATE 2,1: PRINT “Insert” IF K$ = CHR$(0)+“G” THEN LOCATE 2,1: PRINT “Home” IF K$ = CHR$(0)+“I” THEN LOCATE 2,1: PRINT “Page Up” IF K$ = CHR$(0)+“S” THEN LOCATE 2,1: PRINT “Delete” IF K$ = CHR$(0)+“O” THEN LOCATE 2,1: PRINT “End” IF K$ = CHR$(0)+“Q” THEN LOCATE 2,1: PRINT “Page Down” ‘ ‘De F1 a F12 reemplazar letra por ; < > ? @ A B C D á å ‘Otras teclas son del código ASCII K$ = INKEY$ TECLA%=0 LOOP END

Prog.# 3- Programa Scanner del Teclado de la PC

28

Historia y Evolución de la PC – Jairo Uparella

Si la instrucción POKE &H17,0 se sustituye por POKE &H17,32 se enciende automáticamente el led NUM-LOCK. Lo mismo puede ocurrir para otras teclas que el usuario estime conveniente. El siguiente programa “enloquece” al teclado y al monitor.

‘Programa KEYCRAZY.BAS ‘ ‘ON/OFF LEDS DEL KEY PAD NUMÉRICO ‘ ‘(C) Jairo Uparella ‘ CLS RANDOMIZE TIMER DEF SEG = &H40 DO UNTIL (K$ = CHR$(27)) POKE &H17,0 X = INT(RND * 3 + 1) IF X = 1 THEN POKE &H17,32 SOUND 100,2 END IF IF X = 2 THEN POKE &H17,64 SOUND 500,2 END IF IF X = 3 THEN POKE &H17,16 SOUND 1000,2 END IF car = INT(RND * 255 + 1) Px = INT(RND * 80 + 1) Py = INT(RND * 24 + 1)

29

Historia y Evolución de la PC – Jairo Uparella

LOCATE Py, Px PRINT CHR$(car) K$ = INKEY$ LOOP END

Prog.# 4- KEYCRAZY.BAS

El código ASCII La línea PRINT CHR$(car), en el Prog.#2, imprime cualquier carácter del código ASCII (American Estandard Code for Information Interchange), el código que contiene 32 caracteres de control de una PC y 224 caracteres que son enviados a impresora y monitor. El circunflejo ^, significa tecla Ctrl.

30

Historia y Evolución de la PC – Jairo Uparella

HEX

0 0 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 A 11 B 12 C 13 D 14 E 15 F 16 10 17 11 18 12 19 13 20 14 21 15 22 16 23 17 24 18 25 19 26 1A 27 1B 28 1C 29 1D 30 1E 31 1F ^ = Ctrl

^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^ ^

SIM CODIGO DE CONTROL

SIGNIFICADO

@ A B C D E F G H I J K L M N O P Q R S T U V W X Y Z [ \ ] ^ _

Nulidad Comienzo encabezado Comienzo de texto Fin de texto Fin de Transmisión Investigación Recibido positivo Bip Tecla Retroceso Tab horizontal Avanza una línea Tab vertical Avanza una página Enter Desplazamiento hacia afuera Desplazamiento hacia adentro ESC para enlace de datos Control dispositivo 1 Control dispositivo 2 Control dispositivo 3 Control dispositivo 4 Recibido negativo DEL sincrónico Bloque fin de transmisión Cancela datos Fin del medio Sustitución Tecla ESC Separador de archivos Separador de grupo Separador de registro Separador de unidad

NUL SOH STX ETX EOT ENQ ACK BEL BS HT LF VT FF CR SO SI DLE DC1 DC2 DC3 DC4 NAK SYN ETB CAN EM SUB ESC FS GS RS US

Null Start of Heading Start of Text End of Text End of Transmit ion Enquiry Acknowledge Beep Back Space Horizontal Tab Line Feed Vertical Tab Form feed Enter Shift Out Shift In Data Link Escape Device Control 1 Device Control 2 Device Control 3 Device Control 4 Not Acknowledge Synchrony DLE End Transm Block Cancel End of Media Substitution Escape File Separator Group Separator Record Separator Unit Separator

Tabla #8- Caracteres del ASCII No Imprimibles

31

Historia y Evolución de la PC – Jairo Uparella

El siguiente programa crea una tabla de los 224 caracteres imprimibles del ASCII.

‘Programa Tabla ASCII ‘ ‘ ‘(C) Jairo Uparella ‘ CLS FOR i = 32 TO 255 ‘Número de elementos a$ = CHR$(i%) PRINT USING “###”;i%; PRINT “ “; a$; “ “; NEXT END

Prog.# 5- Los 224 Caracteres Imprimibles del ASCII

Chipsets y el Bus ISA La AT 286, utiliza como controlador de teclado un P8042H de Intel, al que simplemente podemos llamar 8042. Estos controladores son chips ROMs que tienen incrustado un programa como el BIOS para la interpretación de pulsos (bits) de cada tecla y poder representar el ASCII. Como controlador del sistema de memorias se utiliza un chip referenciado como F80C235 – 12 y tiene la particularidad de manejar EMS (Expanded Memory Specification). Como chip de reloj, tiene un 82C54 y un oscilador de 14.318 Mhz. Un par de chips referenciados como 82C37A controlan los DMAs (Dynamic Memory Access) o Acceso Dinámico a Memoria y 2 chips 82C59A que controlan los IRQs (Interrup Request)s que es también controlador del bus ISA, clave para atender a los diferentes dispositivos conectados a la PC.

32

Historia y Evolución de la PC – Jairo Uparella

Si usted tiene una AT 286 y la desarma para conocerla internamente, existe cierta o poca posibilidad de que las referencias de los chips sean iguales a los mencionados, pero sus funciones deben ser las mismas. A todos estos chips se les denomina “Chipsets”. Lo que no hacia parte de esta motherboard era al chip UART, el controlador de video, el conector de 34 pines de diskette, los conectores serial, paralelo y otros elementos que se encontraban en la motherboard de la XT. Todos estos fueron integrados en tarjetas de expansión, acopladas a los slots. Ahora la AT 286 posee 8 slots de expansión tipo ISA, divididos así: 2 de 8-bits y 6 de 16-bits de 8 MHz y rata de transferencia de 4 MB por segundo. Esta última tecnología llega a 94 líneas, es decir 36 líneas más, de las 62 que poseía la ISA de 8-bits.

33

Historia y Evolución de la PC – Jairo Uparella

GND RESET +5V IRQ 2/9 -5V DRQ 2 -12V 0 WS +12V GND -S MEM W -S MEM R -IOW -IOR -DACK 3 DRQ 3 -DACK 1 DRQ 1 REFRESH CLOCK IRQ 7 IRQ 6 IRQ 5 IRQ 4 IRQ 3 -DACK 2 T/C BALE +5V OSC 14.3 MHz GND -MEM CS 16 -I/O CS 16 IRQ 10 IRQ 11 IRQ 12 IRQ 15 IRQ 14 -DACK 0 DRQ 0 -DACK 5 DRQ 5 -DACK 6 DRQ 6 -DACK 7 DRQ 7 +5V -MASTER GND

IO CHCK (NMI) D7 D6 D5 D4 D3 D2 D1 D0 -IO CH RDY AEN Validation A19 A18 A17 A16 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0 -SBHE A23 A22 A21 A20 A19 A18 A17 -MEM R -MEM W D8 D9 D10 D11 D12 D13 D14 D15

Fig.#13- Constitución del Bus ISA

34

Historia y Evolución de la PC – Jairo Uparella

DMAs, IRQs y Direcciones IOs Además de las direcciones ROMs, están los DMAs, IRQs y las Direcciones IOs que pueden ser más conflictivos que los espacios de memoria asignados a ROMs, precisamente por manejar mayor número de dispositivos. En términos generales, los Chipsets son las Unidades IOs que muchos confunden con el término periférico. Si a la CPU la definen como el cerebro del computador, las Unidades IOs, conforman el Sistema Nervioso del mismo. Son chips de soporte dedicado, residentes en la motherboard. En términos formales, los chipsets evitan el ruido o señales parásitas, identifican direcciones, interpretan órdenes, permiten la adaptación física de los requisitos de un periférico y temporizan la transferencia de datos basados en el reloj de buses. La XT trabajaba con chipsets del mismo estilo pero con sólo 8-bits.

DMAs Con los chips 82C37A, podemos seleccionar los DMAs (por software), de acuerdo con el bus ISA. Cada Chip soporta 4, para un total de 8 DMAs en cascada, donde el DMA(4) sirve de canal con los DMAs 0,1,2 y 3 y asignárselo a un dispositivo, puede crear conflictos. En el setup CMOS, o configuración de la PC que podemos al momento del booting o arranque, se seleccionan los estados de espera para intercambio de información. El segundo chip DMA (82C37A) al igual que el segundo chip IRQ (82C59A), se adicionaron cuando la ISA pasó de 8-bits a 16-bits. Los nuevos DMAs son ahora el 4, 5, 6 y 7, utilizados para acelerar datos de entrada y salida con respecto a la memoria del sistema, manteniendo comunicación directa entre un dispositivo y la RAM sin intervención de la CPU, la que es forzada a liberar los buses, suministrar las direcciones y señales de control a la memoria. Cada línea DMA transfiere datos en bloques de 64 KB de 8-bits y de 128 KB de 16-bits hacia los espacios de los 16 MB.

35

Historia y Evolución de la PC – Jairo Uparella

Fig.#14- Chip 82C37A

Canal DMA

Dirección IO

0 8-bit Disponible 1 8-bit Disponible 2 8-bit Controlador Diskette 3 8-bit Disponible 4 Cascada 5 16-bit Disponible 6 16-bit Disponible 7 16-bit Disponible Refresh

087h 083h 081h 082h 08Bh 089h 08Ah 08Fh

Tabla #9- DMAs y Direcciones de Registro de Página

36

Historia y Evolución de la PC – Jairo Uparella

Los DMAs son asignados internamente de acuerdo con el registro de página DMA en direcciones IOs, que requieren procesos rápidos como backups, acceso a diskettes, impresiones y otros. Por medio de estos canales, se puede lograr que un proceso sea más rápido que los procesos realizados entre la CPU y el dispositivo. En las XTs, el DMA(0) era utilizado para el “refresh” de las memorias. En las ATs, está libre y el trabajo de refresh de memorias se dejó a otros circuitos.

Interrupciones En una PC, todo es interrupción. La mínima tarea que puede atender la CPU, está dirigida en primera instancia por una interrupción, las cuales pueden ocurrir en cualquier momento. Podemos tratar cuatro tipos de interrupciones a nivel general: Las tres primeras, una del tipo Hardware y dos del tipo Software. Las de hardware, se refiere a señales de efectos mecano-eléctricos, como pulsar una tecla, un tick de reloj, rotar discos, accionar la salida y entrada de datos en los puertos, o solicitud de interrupción generadas por una tarjeta en un slot de expansión. Las del tipo Software están bajo la coordinación del DOS por una parte y del BIOS por otra, quienes ofrecen los respectivos servicios (subrutinas) al momento de la interrupción, como por ejemplo lectura y escritura en discos, crear o abrir archivos, accionar TSRs, obtener fecha, hora etc., como servicios del DOS y por otra parte, video, comunicaciones, impresión y otros servicios del BIOS. Un cuarto tipo de interrupción, que puede incluirse en el tipo Hardware, son las generadas por la propia CPU, como la interrupción presentada cuando aparece el mensaje “División By Zero” u otros. Las del tipo hardware son reconocidas como líneas IRQs (Interrupt Request Lines).

37

Historia y Evolución de la PC – Jairo Uparella

La forma práctica en assembler para acceder una interrupción, es previamente asignando los valores a los registros del procesador y posteriormente llamando a la interrupción. No se pueda crear una nueva interrupción. Pero crear subrutinas para una interrupción o reasignarlas al vector directamente si es posible. Toda persona que programe en cualquier lenguaje de alto nivel, las utiliza revestidas con órdenes fáciles de recordar como OPEN, REWRITE, para abrir un archivo en C y PASCAL respectivamente y que corresponden a la función 3Dh de la INT 21h de servicios del DOS. La Tecla [SysReq] System Request que viene en el teclado AT tiene un número de función fijo pero su utilidad, variable, ya que es una interrupción reprogramable haciendo llamada a INT 15h función 85. Unix y pocos sistemas hacen uso de esta tecla.

IRQs Los chips de los IRQs 82C59A, que trabajan en cascada, es decir el primer chip (maestro), amplía los niveles de IRQs del 8 al 15 o sea el segundo chip (esclavo) por la puerta o IRQ 2. Son 16 IRQs pero una PC realmente puede soportar máximo 64 niveles de IRQs. Cuando un programa desea acceder el primer controlador o controladores IRQs, lo puede hacer con una llamada o dirección 20h, para el chip maestro y con llamada a dirección A0h, para el segundo o esclavo (Véase Tabla de Direcciones IOs).

38

Historia y Evolución de la PC – Jairo Uparella

Fig.#15- Chip 82C59A

Estos chips pueden permitir que un programa utilice sus funciones internas y de aquí los verdaderos nombres técnicos PICs (Programmable Interrups Controller)s. con tecnología LSI ( Scale Integrator).

Prioridad

Vector

H 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15

02h 08h 09h 0Ah 0Bh 0Ch 0Dh 0Eh 0Fh 70h 71h 72h 73h 74h 75h 76h 77h

Interrupción NMI Reloj Alarma Teclado Cascada IRQ 8/15 COM 2,4 COM 1,3 Libre Controlador de Diskette LPT1 RTC Libre Libre Libre Libre Coprocesador Disco Duro Libre

Tabla #10- Interrupciones Hardware 39

Historia y Evolución de la PC – Jairo Uparella

La CPU atiende a cada IRQ en un tiempo de aproximadamente 20 milisegundos (Time Slacing). Un dispositivo suministra la dirección de interrupción a la CPU y el control se transfiere a la rutina del dispositivo. NMI (No-Maskarable Interrupt) tiene prioridad de interrupción más alta (Hi – Priority). Su función es detener los procesos a nivel general debido a fallas de corriente o errores de sistema considerables como “Memory Error”. Esta señal puede ser controlada por el puerto 70h (Direcciones IO). A las IRQs se le define como líneas de Interrupción en muchos casos, pero su definición exacta consiste en una señal de petición o solicitud por parte de una tarjeta (más bien del chip controlador del dispositivo) dirigida a la CPU. Lo que se hace prácticamente es interrumpir a la CPU para obligarla a que atienda en un mínimo de tiempo a un dispositivo presente. Son normalmente 16 interrupciones (0-15) con derechos preferentes, es decir el IRQ 0 tiene mayor prioridad que el IRQ 15. La CPU lee los buffers o porciones de memoria de los dispositivos (drivers), para así dar atención a cada uno de ellos. El IRQ 5 esta libre en la mayoría de las ATs. Al igual que los DMAs, no se deben cruzar, es decir no se deben asignar el mismo IRQ a dos dispositivos, lo que acarrea la paralización del sistema. Cada tarjeta trae sus propios Jumpers o Switches para la correcta configuración de la misma y a partir de ellas es donde se hace la asignación de IRQs. El siguiente programa en Qbasic permite obtener las direcciones de las primeras 70 interrupciones localizadas en la Tabla de Vectores de Interrupción. Esta tabla ocupa los primeros 1024 Bytes de memoria baja y combina interrupciones Hardware y de servicios del DOS y del BIOS.

40

Historia y Evolución de la PC – Jairo Uparella

‘Programa Scanner de Direcciones de Interrupciones ‘ ‘ ‘(C) Jairo Uparella ‘ CLS DEF SEG = 0 TITLE$ = “ INT HEX DESPLAZ. DIRECCION “ + CHR$(13) PRINT TITLE$ FOR L C D PRINT PRINT PRINT

= 0 TO 70 = C + 1 = l * 4 L; TAB(10); HEX$(L); TAB(20); HEX$ (D); TAB(30); FOR I = 3 TO 0 STEP -1 X = PEEK (D+I) IF X
View more...

Comments

Copyright ©2017 KUPDF Inc.
SUPPORT KUPDF