Cmos Programas Residentes y Manejo de Interrupciones

37
“UNIVERSIDAD NACIONAL SAN AGUSTIN” Laboratorio 7: CMOS PROGRAMAS RESIDENTES Y MANEJO DE INTERRUPCIONES. CHOQUE FERNANDEZ, Manuel Alejandro 20090956 ____________ LAUCATA FUENTES, Rodrigo Alfonso 20052990 ____________ 1 ESCUELA PROFESIONAL DE INGENIERIA ELECTRONICA FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS ARQUITECTURA DE COMPUTADORAS LABORATORIO

Transcript of Cmos Programas Residentes y Manejo de Interrupciones

“UNIVERSIDAD NACIONAL SAN AGUSTIN”

Laboratorio 7:CMOS PROGRAMAS RESIDENTES Y MANEJO DE

INTERRUPCIONES.

CHOQUE FERNANDEZ, Manuel Alejandro 20090956 ____________

LAUCATA FUENTES, Rodrigo Alfonso 20052990 ____________

Arequipa, 11 de Junio de 2013

1

ESCUELA PROFESIONAL DEINGENIERIA ELECTRONICA

FACULTAD DE INGENIERIA DE PRODUCCION Y SERVICIOS

ARQUITECTURA DE COMPUTADORASLABORATORIO

ÍNDICE

1 ¨PROGRAMAS RESIDENTES TIPEADOS DE LOS TEXTOS ESPECIALIZADOS EN ALGÚN LENGUAJE PEQUEÑO PORTABLE (ASEMBLER, BASIC, C STD, PASCAL, ETC)..................................3

1.1 Programa Residente en Memoria.................................................................................31.2 PROGRAMAS:...............................................................................................................3

1.2.1 1º Primer Programa..............................................................................................31.2.2 2º Segundo Programa...........................................................................................4

2 Dirección base del reloj de tiempo real de la PC y realizar un programa para poder tener acceso a dicho reloj en lectura y escritura...................................................................................5

2.1 EL RELOJ DE TIEMPO REAL............................................................................................52.2 LAS FUNCIONES DE RELOJ............................................................................................72.3 REGISTROS DE ESTADO.................................................................................................8

2.3.1 REGISTRO A..........................................................................................................82.3.2 REGISTRO B...........................................................................................................82.3.3 REGISTRO C...........................................................................................................82.3.4 REGISTRO D..........................................................................................................92.3.5 PROGRAMA DE RELOJ RESIDENTE EN TIEMPO REAL............................................9

3 PROGRAMAR ALARMAS DE ACUERDO AL USO DEL RELOJ DE TIEMPO REAL DE LA PC. TRAER PROGRAMA DE ALARMAS...............................................................................................134 INTERRUPCIONES POR HARDWARE USADAS EN LA PC CUALES ESTÁN OCUPADAS Y CUALES DISPONIBLES.................................................................................................................13

4.1 INTERRUPCIONES INTERNAS DE HARDWARE:............................................................134.2 INTERRUPCIONES EXTERNAS DE HARDWARE:............................................................134.3 INTERRUPCIONES DE HARDWARE:.............................................................................13

5 DESCRIBIR EL PROCEDIMIENTO PARA ACCEDER A UNA INTERRUPCIÓN............................145.1 HARDWARE DE LOS IRQ:.............................................................................................145.2 ASIGNACIÓN DE LOS IRQ PARA EQUIPOS AT:.............................................................15

6 INTERRUPCIONES POR SOFTWARE USADAS EN LA PC CUALES ESTÁN OCUPADAS Y CUALES DISPONIBLES..............................................................................................................................17

6.1 INTERRUPCIONES DE SOFTWARE:..............................................................................177 DISEÑO DE UN SISTEMA DE FORMA QUE PODAMOS PROBAR LAS INTERRUPCIONES DE AMBOS TIPOS . TRAER PROGRAMA PROBADO FUENTE Y COMPILADO.....................................188 EL SETUP DE LA PC, LAS OPCIONES DE CONFIGURACIÓN Y LOS PARÁMETROS..................24

8.1 BIOS SETUP.................................................................................................................248.2 STANDARD CMOS SETUP............................................................................................258.3 ADVANCED CMOS SETUP............................................................................................268.4 ADVANCED CHIPSET SETUP........................................................................................268.5 POWER MANAGEMENT SETUP...................................................................................27

9 BIBLIOGRAFIA.....................................................................................................................29

2

CMOS PROGRAMAS RESIDENTES Y MANEJO DE INTERRUPCIONES.

1 ¨PROGRAMAS RESIDENTES TIPEADOS DE LOS TEXTOS ESPECIALIZADOS EN ALGÚN LENGUAJE PEQUEÑO PORTABLE (ASEMBLER, BASIC, C STD, PASCAL, ETC)

1.1 Programa Residente en MemoriaUn programa residente o TSR ( Terminate and Stay Resident )es un programa normal y corriente que, tras ser cargado, permanece parcial o totalmente en memoria al finalizar su ejecución. Ello es posible utilizando una función específica del sistema operativo. Los programas residentes pueden ser activados mediante una combinación de teclas o bien actuar con cierta periodicidad, asociados a la interrupción del temporizador.

También pueden interceptar funciones del DOS o de la BIOS para cambiar o modificar su funcionamiento. Al final, casi siempre resulta totalmente inevitable desviar alguna interrupción hacia una nueva rutina que la gestione, con objeto de activar el programa residente

1.2 PROGRAMAS:

1.2.1 1º Primer Programa

Este primer programa en C colocará de manera perpetua mi nombre “Jose Choquehuaita” haciendo un pseudoscroll horizontal en la esquina superior derecha.

#include <dos.h>#include <conio.h>

extern unsigned _heaplen=1024;extern unsigned _stklen=512;

void interrupt (*OldTic)(void);void KillTic(void);

void interrupt Tic(){ unsigned int (far *pantalla)[80]; static int prueba=0; int i; static char cad[24] = "JOSE CHOQUEHUAITA";

pantalla = MK_FP(0xb800,0); for(i=55;i<=79;i++){ pantalla[0][i]=cad[prueba%=24] + 0x7900; prueba++;} prueba++;

if ((peekb(0x40,0x17) & 12) == 12) KillTic();

OldTic();}

void AliveTic(void)

3

{ OldTic = getvect (0x1c); setvect (0x1c,Tic); keep(0, (_SS+(_SP/16) - _psp));}void KillTic(void){ setvect (0x1c,OldTic); freemem(peek(_psp,44)); freemem(_psp);

}void main(void){ clrscr(); cprintf(" Pulsa <CTRL> + <ALT> para desistalar"); AliveTic();}

1.2.2 2º Segundo Programa

Este programa en C colocará a los mandos de un teclado con sonidos, ya que asocia a cada tecla del teclado un sonido diferente mientras las pulsemos.

#include <dos.h>#include <stdio.h>#include <stdlib.h>

#define vec_int 0x09 /* direccion del vector de interrupciones */

/* DECLARACION DE LAS FUNCIONES A USAR */

int esta (void); /* LA INTERRUPCION YA ESTA EN MEMORIA */void interrupt Madre (void); /* INTERRUPCION A METER EN EL VECTOR DE INT.*/void interrupt (*almacen)(void); /* DONDE ALMACENO EL VECTOR DE INTERRUPCIONES*/void KillMadre (void); /* DESINSTALO LA INTERRUPCION METIDA EN EL VECTOR */

void main(void){ if (esta ()){

printf ("\nEl programa ya est  instalado.\n");printf ("\nNo permite m s instalaciones.... NiCe 2 MEET U by IcEmAn\n\

n");printf ("\nPara desinstalar pulsar [CTRL]+[ALT]\n");exit (0);

} almacen = getvect (vec_int); /* guardo la direccion del vector de inter.*/ setvect (vec_int,&Madre); /* meto la rutina madre en el vector de inter.*/ printf("\nTeclado musical by Jos‚ Luis Navarro Sim¢n....(IcEmAn)\n"); printf("\nPara salir pulsar simult neamente [CTRL]+[ALT]\n"); keep (0,(_SS+(_SP/16) - _psp)); /* lo mantengo en memoria residente */}

int esta (void){ int dominio;

dominio=peek(0,vec_int*4); /*Abarca todo el vector de interrupciones*/ return (dominio==FP_OFF(&Madre)); /* operacion logica, verdadera si en*/} /* el vector de interrupciones esta*/

4

/* madre */

void KillMadre (void){ nosound (); /* quitas el sonido que esta activo*/ setvect (vec_int,almacen); /* mete la direccion donde apunta el vector de*/

/* interrupciones en el vector de interrupciones*/ /* y asi se anula la rutina que hab¡a en memoria*/

freemem(peek(_psp,44));/* Desplazamos _psp a la posicion 44 que es donde se guarda la direccion del segmento de entorno y liberamos la memoria */

freemem(_psp);}

void interrupt Madre (void){ sound (inportb(0x60)*200); /* lees del puerto de teclado, y el entero */

/* resultante lo multiplicas para que salga*/ /* un sonido audible */

if ((peekb(0x40,0x17) & 12)==12) /* si pulsas control alt */ KillMadre();

almacen();}

2 Dirección base del reloj de tiempo real de la PC y realizar un programa para poder tener acceso a dicho reloj en lectura y escritura.

2.1 EL RELOJ DE TIEMPO REALUn chip muy importante es el reloj de tiempo real (Real-Time-Clokc, RTC). Se trata de un Dallas 1287 o similar. Está mantenida por baterías y trabaja en un modo de baja energía que lo protege de pérdidas d datos durante la conexión o desconexión del equipo.

En el RAM RTC de 64 bytes, a veces también llamada CMOS-RAM, se guarda la configuración del sistema. Además el chip nos ofrece un reloj, un calendario, así como la posibilidad de una interrupción periódica programable.

La actualización del tiempo y el calendario se realiza en forma cíclica. El contador de segundo se incrementa en uno cada segundo, siempre que el RTC se encuentre en el modo de funcionamiento normal. Si se realiza un rebase, los demás registros afectados también se incrementan.

Durante este rebase, los bytes 0 hasta 9 de la de la RAM RTC no están disponibles para la CPU. La velocidad del ciclo de actualización se ajusta mediante lo bits divisores 2 hasta 0 registro de estado A, así como el SET-Bit 7 del registro de estado B.

EL acceso a la RAM RTC es muy sencillo. Primero se ha de enviar al port 70h el número de indice del registro deseado. Después se puede escribir o leer los datos en el port 71h. Todos los registros de lectura y escritura, excepto los siguientes se pueden leer.

5

Registros de estado C y D

Bits 7 del registro de estado A

Bits 7 del byte de segundos (Index 00h)

Los primeros 14 bytes de la RAM RTC se emplean para el reloj y los cuatro registros de estado. Los restantes 50 Bytes sirven para la configuración del sistema. La ocupación exacta de los diferentes bytes se pueden ver en la siguiente tabla.

00h Segundos 20h HD 1 Número de cilindros Low

01h Segundos Alarma 21h HD 1 Número de cilindros High

02h Minutos 22h Cabezales HD 1

03h Minutos Alarma 23h HD 1 inicio Pre-Compensation Low

04h Horas 24h HD 1 inicio Pre-compensation High

05h Horas Alarma 25h HD 1 Low landing zone

06h Día de la semana 26h HD 1 High landing zone

07h Día del mes 27h HD 1 sectores

08h Mes 28h Opciones 1

09h Año 29h Reservado

0Ah Estado A 2Ah Reservado

0Bh Estado B 2Bh Opciones 2

0Ch Estado C 2Ch Opciones 3

0Dh Estado D 2Dh Reservado

0Eh Estado de Diagnóstico 2Eh Low CMOS RAM Checksum

0Fh Estados Shutdown 2Fh High CMOS RAM Checksum

10h Tipo de Flopy 30h Low Extended Memory byte

11h Reservado 31h High Extended Memory byte

12h Tipo de HD 32h byte de siglo

13h Reservado 33h Setup information

14h Equipamiento 34h Velocidad CPU

15h Low Base Memory 35h HD 2 Números de cilindros Low

6

16h High Base Memory 36h HD 2 Números de cilindros High

17h Low Extended Memory 37h Cabezales HD2

18h High Extended Memory 38h HD 2 inicio Pre-Compesation Low

19h HD 1 extended Type byte 39h HD 2 inicio Pre-Compesation High

1Ah HD 2 extended Type byte 3Ah HD Low Landing zone

1Bh Reservado 3Bh HD High Landing zone

1Ch Reservado 3Ch HD 2 Sectores

1Dh Reservado 3Dh Reservado

1Eh Reservado 3Eh Reservado

1Fh Installed Features 3Fh Reservado

2.2 LAS FUNCIONES DE RELOJLa CPU obtiene la hora y fecha leyendo el byte correspondiente del RTC. Si este está incrementando actualmente, la lectura no es posible. Mediante la Escritura de un valor en los bytes, estos se inicializan.

Si quiere escribir datos en los bytes, se ha de apagar el primero de los RTC-Undates en el registro en registro de estado B mediante el SET-bit. Los datos del reloj están guardados en formato BCD. Es decir, que los 4 bits superiores representan el número. Los siguientes valores se pueden encontrar en los diferentes bytes.

Función Dirección Datos BCD

Segundos 00 00 hasta 59

Segundos Alarma 01 00 hasta 59

Minutos 02 00 hasta 59

Minutos Alarma 03 00 hasta 59

Día de la semana 06h 01 hasta 07

Día del mes 07h 01 hasta 31

Mes 08h 01 hasta 12

Año 09h 01 hasta 99

7

2.3 REGISTROS DE ESTADOLos RTC disponen de cuatro registros de estado. Sirven para el control del chip y muestra su estado actual.

2.3.1 REGISTRO AEl Registro A es especialmente interesante por la posibilidad de determinar con él la velocidad de la llamada de la interrupción periódica. El bit 7 puede encontrar el bit UIP (=Update in Progress). Si tiene el valor 1, se está realizando una actualización del tiempo en este instante. Los bits 6 hasta 4 contiene la base de tiempo. El valor estándar para ella es de 101b, lo que representa un valor de 32768d Hz. Debería prestar especial atención a los bits RS 3 hasta 0. Son responsables de la selección de tasas. La tasa se calcula según la fórmula.

Tasa = 65536 / 2^RS

El valor por defecto es 1024 Hz se calcula por consiguiente de 65536/26 (100b).

2.3.2 REGISTRO B El Registro B es un registro con muchas funciones. Cada bit tiene la suya propia. Comencemos con el SET-Bit 7. Si está a 1, se interrumpe el ciclo momentáneo de actualización una vez por segundo. El PIE-Bit (Periodic Interrupt Enable) determina si la interrupción periódica se ha de llamar con la frecuencia ajustada en el registro A. Si el bit 1, se realiza la llamada, de lo contrario no se dispara ninguna interrupción. En el AIE-Bit 5 ( Alarm Interrup Enable) puede encontrar la información sobre si la interrupción de alarma se dispara a la hora ajustada.

Si el bit vale1, la interrupción está activa. La interrupción de actualización se dispara cuando se puede encontrar el valor 1 en el UIE-bit 4 (Update Ended Interrupt Enable). Con el SQWE-Bit 3 (Square Wave Enable ) puede elegir si se debe activar la frecuencia de onda rectangular ajustada en el registro A (Bit=1) o no. El DM-Bit2 (Date Mode) es importante cuando accede a la fecha. Si el Bit contiene el valor 1 los números se encuentran en formato binario.

Por defecto puede encontrar aquí el valor 0, que indica el formato BCD. Mediante el 24/12-Bit 1 (24/12 hour) se elige si el reloj se encuentra en modo de 24 horas o en el de 12 horas. Por defecto puede encontrar aquí el valor 1, que representa el modo de 24 horas. En el DSE-bit 0 (Daylight Savings Enabled) puede finalmente encontrar la información de si el reloj ha de tener cuanta el horario de verano o no. De forma estándar esto está apagado mediante un valor de 0.

2.3.3 REGISTRO CEl registro 0Ch es el registro de banderas. El bit7 indica el Interrupt- Request-flag. Contiene el valor de 1 cuando se puede aplicar un de los usados que disparan una interrupción y la bandera corresponde a está en enable. El bit 6 es una bandera que indica una interrupción periódica. El bit 5 se pone 1 cuando hay una coincidencia entre la hora de alarma ajustada y la hora actual. La bandera también se activa cuando la interrupción de alarma no está ajustada. El bit 4 finalmente es la llamada Undate Ended Interrupt-flag. Indica, como se nombre permite suponer, cuando se a terminado un ciclo de actualización del RTC. Los bits 3 hasta 0 están reservados. Por favor tenga en cuanta que el contenido de este registro borrado después de cada acceso de lectura.

8

2.3.4 REGISTRO DEl registro D sirve para la vigilancia de la batería. Si el bit 7 está activado, la batería se encuentra en perfecto estado. De lo contrario, el valor de 0 muestra que la batería esta defectuosa. El bits 6 hasta 0 no tienen ninguna función.

El siguiente ejemplo utiliza las funciones del reloj que corresponden al tiempo como son la hora minutos segundos. Este programa permite leer el dato de la dirección de memoria y poder visualizarla en pantalla.

La hora del reloj de tiempo reloj se calcula a partir del contador del temporizador, que se encuentra en las palabras 40h:6Ch( inferior) y 40h:6Eh Superior.

El siguiente programa diseñado en Assembler es una rutina residente para escribir la hora en la esquina superior derecha de la pantalla.

2.3.5 PROGRAMA DE RELOJ RESIDENTE EN TIEMPO REAL;

PANTALLA EQU 0B000HCODIGO SEGMENT ASSUME CS:CODIGO,DS:CODIGO ORG 100HINICIO: JMP INSTALAR HORA DB 11 DUP(?)

RELOJ PROC CLI PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH DS PUSH ES;HORA -------> 40h:6Ch MOV AX,40H MOV ES,AX MOV SI,6CH MOV AX,ES:[SI] MOV DX,ES:[SI+2] MOV BX,32771 DIV BX SHR AX,1 MOV CH,AL MOV AX,DX MOV DX,0 MOV BX,1092 DIV BX MOV CL,AL MOV AX,DX MOV DX,0 MOV BX,18 DIV BX MOV DH,AL MOV BH,10 MOV AH,0 MOV AL,CH DIV BH ADD AX,3030H MOV WORD PTR HORA,AX

9

MOV HORA+2,':' MOV AH,0 MOV AL,CL DIV BH ADD AX,3030H MOV WORD PTR HORA+3,AX MOV HORA+5,':' MOV AH,0 MOV AL,DH DIV BH ADD AX,3030H MOV WORD PTR HORA+6,AX MOV HORA+8,':' MOV AH,0 MOV AL,DL DIV BH ADD AX,3030H MOV WORD PTR HORA+9,AX MOV AX,PANTALLA MOV ES,AX MOV DI,2*(80-11) MOV CX,11 MOV SI,0ALE: MOV AL,HORA[SI] MOV ES:[DI],AL INC DI MOV BYTE PTR ES:[DI],31 INC SI INC DI DEC CX CMP CX,0 JNZ ALE:FIN: POP ES POP DS POP DI POP SI POP DX POP CX POP BX POP AX STI IRETRELOJ ENDPINSTALAR PROC MOV AX,0000H MOV ES,AX MOV BX,01CH*004H CLI MOV WORD PTR ES:[BX],OFFSET RELOJ MOV WORD PTR ES:[BX+2],CS MOV DX,OFFSET INSTALAR STI INT 27HINSTALAR ENDPCODIGO ENDS END INICIO

;PROGRAMA DE RELOJ RESIDENTE ;SEGMENTO MEMORIA DE PANTALLA VGAPANTALLA EQU 0B800H;SEGEMENTO PRINCIPAL

CODIGO SEGMENT ASSUME CS:CODIGO,DS:CODIGO ORG 100H ; ORIGEN POR SER FICHERO TIPO COM

INICIO:

10

JMP INSTALAR

; VARIABLES DEFINIDAS

HORA DB 35 DUP('?')

RELOJ PROC CLI PUSH AX PUSH BX PUSH CX PUSH DX PUSH SI PUSH DI PUSH DS PUSH ES

;OBTENEMOS LA HORA DE LA DIRECCION -------> 40h:6Ch (INFERIOR); 40h:6eh (SUPERIOR)

MOV AX,40H MOV ES,AX MOV SI,6CH MOV AX,ES:[SI] MOV DX,ES:[SI+2] MOV BX,32771 DIV BX SHR AX,1 MOV CH,AL

MOV AX,DX MOV DX,0 MOV BX,1092 DIV BX MOV CL,AL

MOV AX,DX MOV DX,0 MOV BX,18 DIV BX MOV DH,AL

MOV HORA,'F' MOV HORA+1,'E' MOV HORA+2,'R' MOV HORA+3,'D' MOV HORA+4,'I' MOV HORA+5,'N' MOV HORA+6,'A' MOV HORA+7,'N' MOV HORA+8,'D' MOV HORA+9,' ' MOV HORA+10,'C' MOV HORA+11,'O' MOV HORA+12,'N' MOV HORA+13,'D' MOV HORA+14,'O' MOV HORA+15,'R' MOV HORA+16,'I' MOV HORA+17,' ' MOV BH,10 MOV AH,0 MOV AL,CH DIV BH ADD AX,3030H MOV WORD PTR HORA+18,AX MOV HORA+20,':'

11

MOV AH,0 MOV AL,CL DIV BH ADD AX,3030H MOV WORD PTR HORA+21,AX MOV HORA+23,':'

MOV AH,0 MOV AL,DH DIV BH ADD AX,3030H MOV WORD PTR HORA+24,AX MOV HORA+26,':'

MOV AH,0 MOV AL,DL DIV BH ADD AX,3030H MOV WORD PTR HORA+27,AX

; DIRECCIONA ZONA DE MEMORIA DE LA PANTALLA

MOV AX,PANTALLA MOV ES,AX MOV DI,2*(80-31) ; cambiar con el tama¤o de la cadena

MOV CX,31 ; cambiar MOV SI,0

MOVER: MOV AL,HORA[SI] MOV ES:[DI],AL INC DI MOV BYTE PTR ES:[DI],31H INC SI INC DI LOOP MOVERFIN: POP ES POP DS POP DI POP SI POP DX POP CX POP BX POP AX STI IRETRELOJ ENDP

INSTALAR PROC MOV AX,0000H MOV ES,AX MOV BX,01CH*004H CLI MOV WORD PTR ES:[BX],OFFSET RELOJ MOV WORD PTR ES:[BX+2],CS MOV DX,OFFSET INSTALAR STI INT 27HINSTALAR ENDPCODIGO ENDS END INICIO

12

3 PROGRAMAR ALARMAS DE ACUERDO AL USO DEL RELOJ DE TIEMPO REAL DE LA PC. TRAER PROGRAMA DE ALARMAS.

Existen muchas aplicaciones posibles que podría hacer uso del reloj de tiempo real de la PC. Por ejemplo, se podría trabajar con la hora para chequear algún dispositivo, mantener un contador interno para realizar algo cuando alcance cierto valor, etc.

4 INTERRUPCIONES POR HARDWARE USADAS EN LA PC CUALES ESTÁN OCUPADAS Y CUALES DISPONIBLES.

Las interrupciones de hardware pueden ser internas o externas.

4.1 INTERRUPCIONES INTERNAS DE HARDWARE:Las interrupciones internas son generadas por ciertos eventos que surgen durante la ejecución de un programa.

Este tipo de interrupciones son manejadas en su totalidad por el hardware y no es posible modificarlas.

Un ejemplo claro de este tipo de interrupciones es la que actualiza el contador del reloj interno de la computadora, el hardware hace el llamado a esta interrupción varias veces durante un segundo para mantener la hora actualizada.

Aunque no podemos manejar directamente esta interrupción (no podemos controlar por software las actualizaciones del reloj), es posible utilizar sus efectos en la computadora para nuestro beneficio, por ejemplo para crear un "reloj virtual" actualizado continuamente gracias al contador del reloj interno. Unicamente debemos escribir un programa que lea el valor actual del contador y lo traduzca a un formato entendible para el usuario.

4.2 INTERRUPCIONES EXTERNAS DE HARDWARE:Las interrupciones externas las generan los dispositivos periféricos, como pueden ser: teclado, impresoras, tarjetas de comunicaciones, etc. También son generadas por los coprocesadores.

No es posible desactivar a las interrupciones externas.

Estas interrupciones no son enviadas directamente a la UCP, sino que se mandan a un circuito integrado cuya función es exclusivamente manejar este tipo de interrupciones. El circuito, llamado PIC 8259A, si es controlado por la UCP utilizando para tal control una serie de vías de comunicación llamadas puertos.

4.3 INTERRUPCIONES DE HARDWARE:Nro Usada por Descripción

0 Sistema Reloj del Sistema

1 Sistema Teclado

2 Libre Actualmente IRQ2 e IRQ9 están unidas entre sí.

13

3 COM2, COM4

Reservada para COM2, COM4, Si ud. no posee placa multifunción Puede estar libre

4 COM1, COM3

Reservada para COM1, COM3, Si ud. no posee placa multifunción Puede estar libre

5 Libre Reservada para LPT2, Normalmente libre aún si hay 2 ó mas Impresoras.

6 Sistema Controladora de Disketteras, FDD, Floppy disk controller.

7 Libre Reservada para LPT1, Normalmente libre aún si hay Impresoras.

8 Sistema RTC, Reloj de tiempo real, Reloj del sistema.

9 Libre En sistemas PCI es utilizada por el PLUG &PLAY

10 Libre En sistemas PCI se asigna al Slot Nro 1 (Generalmente Video)

11 Libre En sistemas PCI es utilizada por el PLUG &PLAY

12 Libre En sistemas PCI es utilizada por el PLUG &PLAY

13 Sistema Coprocesador Matemático – Todos los sistemas 486 DX y superiores lo poseen.

14 Sistema Disco rígido –IDE- Solamente. Controladora primaria IDE

Puede ser que en un sistema con HD SCSI y un CD-ROM IDE el CD esté conectado al conector IDE primario.

15 ? La utiliza la segunda controladora IDE, si su motherboard posee dos enchufes IDE ó Posee una controladora con dos enchufes IDE ó posee una placa de sonido y el CD-ROM IDE está conectado a la misma, esta IRQ se utiliza.

Solo se pueden utilizar las que figuran libres mas la IRQ15 y las de los puertos COM.

5 DESCRIBIR EL PROCEDIMIENTO PARA ACCEDER A UNA INTERRUPCIÓN.

5.1 HARDWARE DE LOS IRQ: Originalmente, las computadoras basadas en el procesador 8086 y 8088 (denominadas comúnmente tipo XT), poseían tan solo 8 posibles IRQ para los diferentes dispositivos que se deseen agregar a esas computadoras. La asignación para cada IRQ puede ser apreciada en la tabla adjunta. El IRQ número 0 estaba siempre asignado para el reloj del sistema, el IRQ 1 para el controlador de teclado, el 2 libre, el 3 para el puerto serial COM2 donde habitualmente se conecta el modem, el 4 para el puerto serial COM1 donde habitualmente se conecta el ratón, el 5 para la atención del disco duro, el 6 para la atención de las disqueteras, y el 7 para el

14

puerto paralelo, donde va generalmente una impresora o un scanner. En definitiva, tan solo se podría agregar una tarjeta, con el IRQ 2 disponible (available). Afortunadamente esto ha cambiado para las computadoras actuales, que poseen 16 IRQs disponibles (de 0 a 15). Toda computadora basada en un procesador 80286 o superior tiene esta cantidad de interrupciones disponibles.

Pero la pregunta interesantes es ¿cómo se ha logrado esto?, bueno, acá la respuesta: originalmente, en las computadoras XT, cualquier interrupción es atendida por un chip cuyo número es el 8259, también denominado Controlador De Interrupciones.

Este chip tan solo tiene la capacidad de atender 8 interrupciones, es decir tienen físicamente 8 entradas, así que para los equipos AT (286 o superior) se han empleado simplemente dos de estos controladores, redireccionando todas las interrupciones generadas por el segundo chip hacia el primero a través del IRQ 2, como se puede observar en el gráfico. Ya que el IRQ 2 del primer chip ha de estar ocupado permanentemente, tan solo quedan 15 posibles IRQs. Recordemos que las interrupciones tienen una prioridad dada por su número, y como todas las interrupciones del segundo controlador entran por la interrupción 2 del primero, las interrupciones número 8 a la número 15 tienen todas prioridad 2. El gráfico permite ver una asignación para cada interrupción, pero ese tema se verá en seguida con la tabla de asignaciones.

Un aspecto importante a comprender es qué sucede con los dispositivos que requieren de forma obligatoria el IRQ 2, cosa bastante normal. En realidad en los equipos AT, cualquier tarjeta conectada al IRQ 2 funciona perfectamente, con la salvedad de que en realidad está funcionando en el IRQ 9, y no en el 2. Este hecho es completamente transparente y no requiere de mayor cuidado, salvo entender que si algún dispositivo está empleando el IRQ 2, ningún otro podrá ser asignado al IRQ 9, por la razón antes mencionada.

5.2 ASIGNACIÓN DE LOS IRQ PARA EQUIPOS AT:La tabla adjunta puede ser obtenida a través de diversos programas, uno de los más conocidos es el MSD o Microsoft Diagnostic, programa que viene incluido dentro del mismo DOS. Es importante notar también que no todos los equipos tienen idéntica disposición de IRQs, es conveniente analizar la tabla del equipo ejecutando por ejemplo el MSD bajo el DOS. La importancia de esta tabla es fundamental, porque indica claramente qué dispositivo está empleando qué IRQ. Veamos entonces este ejemplo. El IRQ 0 y el IRQ 8 están por lo general

15

siempre asignados a señales de sincronización y tiempo propias de la tarjeta madre, por lo que no se las debe tocar. El IRQ 1 se destina a atender las interrupciones provenientes del teclado, es decir, la pulsación de una tecla (por cierto que aún tipeando el mecanógrafo más diestro y veloz, el tiempo entre pulsación y pulsación es para el CPU una verdadera eternidad).

El IRQ 2 está destinado exclusivamente a la atención del segundo chip controlador 8259, aunque se lo pueda emplear en la práctica ya que es suplido por el IRQ 9 como se mencionó anteriormente. El IRQ 3 ha de atender un dispositivo serial que se halle en el puerto COM2 o COM4, y el IRQ 4 otro dispositivo serial conectado al COM1 o al COM3. Este punto es interesante ya que al inicio de este análisis dijimos claramente que un mismo IRQ no puede ser compartido por dos o más dispositivos a la vez, como por ejemplo el modem y el ratón, que perfectamente se podría conectarlos al COM2 y al COM4, para que empleen el IRQ 3. Sin embargo este hecho ocasionaría que el momento en que el modem esté activo y el ratón también, el equipo se bloquee completamente, aparezcan extraños mensajes de error en la pantalla y exista la necesidad de reiniciar todo, con las molestias y perjuicios pertinentes. Esto sucede toda vez que dos dispositivos intentan emplear el mismo IRQ. Por esta razón, se suele conectar un equipo al COM1 y se deja libre el COM3, o bien a la inversa, pero nunca en ambos, y lo mismo para el COM2 y el COM4. Por lo general, se conecta al COM1 el ratón, y al COM2 el modem, de esta forma emplean el IRQ 4 y 3 respectivamente, sin crearse conflictos (en una edición futura dedicada a modems exclusivamente analizaremos plenamente este aspecto). Como se puede apreciar en la columna Detectado , el programa MSD ha detectado algo en el COM1, pero nada en el COM3 (Not Detected), y lo mismo ocurre para el COM2, que ha sido detectado y no el COM4. Por cierto, que el equipo del que se obtuvo esta tabla tiene el ratón en el COM1 y el modem en el COM2. Por su parte, el IRQ 5 tiene marcada en su columna. Detectado , la palabra No , lo que da a entender que ese IRQ está disponible, y que por lo general se lo emplea para una segunda impresora.

Los IRQ 6, 7, y 8 han sido detectados, por lo que no pueden ser empleados. El IRQ 9 se halla disponible para suplir al 2. Los IRQ 10, 11, 12 y 15 no han sido detectados, y se hallan bajo el rótulo de (Reserved) , lo que significa que están disponibles para atender cualquiera

16

dispositivo a ser agregado en un futuro, como ser: tarjeta de sonido, tarjeta de TV, etc. Finalmente el IRQ 13 y 14 se hallan destinados a atender el coprocesador matemático y las unidades de discos duros respectivamente. Los nombres de las columnas son bastante claros, a excepción de la denominada Manejado Por , que indica el elemento de hardware o software que administra el dispositivo. Por ejemplo, el teclado es administrado por un programa denominado KEYB, bastante conocido para todos los que han manejado o configurado el viejo DOS, muchos dispositivos son administrados por las rutinas del BIOS, que por lo general ser cargan a la memoria RAM cuando se inicializa la computadora (el proceso de carga se denomina Shadow BIOS), y Default Handlers indica que el dispositivo será administrado por los programas del mismo fabricante. El símbolo ??? indica que el programa MSD no ha podido averiguar quién administra ese IRQ, cosa normal para el reloj del sistema, que funciona de forma autónoma.

6 INTERRUPCIONES POR SOFTWARE USADAS EN LA PC CUALES ESTÁN OCUPADAS Y CUALES DISPONIBLES.

6.1 INTERRUPCIONES DE SOFTWARE:La PC vienen equipadas con programas de servicio integrados llamados el ROM-BIOS. Los programas de la computadora necesitan una manera de pedir los servicio que proporciona el BIOS y las interrupciones de software son la manera en que lo hacen. Las interrupciones de software funcionan en la misma forma que las de hardware. La única diferencia con ellas es lo que causa la interrupción. En este caso, en vez de que suceda inesperadamente, las interrupciones de software son generadas intencionalmente por un programa. Hay una instrucción especial de lenguaje ensamblador, llamado INT, que se usa por un programa para pedir una interrupción.

Las interrupciones correspondientes al DOS. Son Las siguientes:

17

Nro DESCRIPCIÓN

20H Terminar Programa

21H Petición de función

22H Dirección de terminación

Especifica la dirección a donde se bifurcará cuando se termine el programa. Esta dirección se copia sobre el PSP

23H Dirección de Salida por CRTL-BREAK

24H Manejador de error Critico

25H Lectura de disco absoluta

26H Grabación en Disco Absoluta

27H Terminar pero quedar residente

28H No se usa (Reservada)

3FH No se usa (Reservada)

7 DISEÑO DE UN SISTEMA DE FORMA QUE PODAMOS PROBAR LAS INTERRUPCIONES DE AMBOS TIPOS . TRAER PROGRAMA PROBADO FUENTE Y COMPILADO

El siguiente programa es un menú que funciona con las interrupciones tanto de HARDWARE Y DE SOFTWARE . Utiliza interrupciones de hardware del teclado, e interrupciones de software de la ROM-BIOS.

; Para maquinas 8088/80386 A263103.ASM ; Programa Graficador con control total del cursor. ; Con interrupciones de la ROM BIOS ; Compilado como EXE.

modot macro ; Define el modo texto 80 x25 mov ah,0h ; mov al,2h ; int 10h ; endm ;

dseg segment para 'datos' ;Segmento de datos, Definiciones en assembler memo dw 0B800h ;Inicio de la pantalla pan dw 2000 dup(?) ;Separa memoria sin inicializar x1 dw 20 ;Coordenadas esquina sup.izq. del menu. y1 dw 4 ;Coordenadas esquina sup.izq. del menu. xx0 db 0 ; yy0 db 0 ; x0x db 0 y0y db 0 c01 dw 0 c02 dw 0 f01 dw 0

18

f02 dw 0 x2 dw 60 ;Coordenadas esquina inf.derecha del menu. y2 dw 22 ;Coordenadas esquina inf.derecha del menu. XX db '[7 3 3 3 3 3 3 3G7R7A7F7I7C7A7D7O7R7 3 3 3 3 3 3 3]7' ;Menu AA db 'Fa18 M O D O T E X T O ' BB db 'Fa28 M O V I M I E N T O C O N A R R A S T R E ' CC db 'Fa38 M O V I M I E N T O C O N T R O L A D O ' EE db 'Fa48 M O D O G R A F I C O ' FF db 'Fa58 C U A D R A D O R E L L E N O ' GG db 'Fa68 C U A D R A D O E N M O V I M I E N T O ' HH db 'Fa78 M O V I M . E N P E R S P E C T I V . ' II db 'Fa88 M O V I M I E N T O D E L I N E A S ' JJ db 'Fa98 M O V I M I E N T O A N I M A D O ' KK db 'Fa1808 G R A F I C A D O R ' LL db ' E8S8C8 F I N ' MM db ‘’ NN db ‘’ car db ‘’ fil dw 0 ;fila actual col dw 0 ;columna actual fi1 dw 0 ;fila anterior co1 dw 0 ;columna anterior color dw 0 ;color colo db 0 long1 dw 0 long2 dw 0 video db 11h ;Resolucion grafica 640 x 480dseg ends

cseg segment ;Programa principal. assume cs:cseg, ds:dseg, es:cseg, ss:cseg ini:jmp marco ;inicio de programamarco proc near ; mov ax,cs ; mov ax,dseg ; mov ds,ax ; mov es,ax ; call salva ; push ax ; menu:mov ax,MEMO ;Inicio de memoria de pantalla mov ES,ax ; mov di,598 ;CLEAR SCREEN MOV AX,0720h ; cle1:add di,80 ; mov cx,80 ; cle0:add di,1 ; mov es:[di],ax ; loop cle0 ; cmp di,3300 ; jl cle1 ; MOV AX,MEMO ;Inicio de la pantalla MOV ES,AX ; MOV CX,58 ;Longitud de cadena a imprimir MOV AX,850 ;Posicion en la pantalla MOV DI,AX ;Direccion destino MOV SI,OFFSET AA;Direccion origen de la cadena AA REP MOVSB ;Repite traslado de cadena byte a byte MOV CX,58 ; add AX,160 ; MOV DI,AX ; MOV SI,OFFSET BB; REP MOVSB ;MOV SI,OFFSET EE; REP MOVSB ; MOV CX,58 ; add AX,160 ; MOV DI,AX ; MOV SI,OFFSET FF;

19

REP MOVSB ; MOV CX,58 ;lea bx,CS:f3 ; lea bx,CS:f4 ;opcion:call resetraton ; call punteroon ;opcion1:mov ah,01 ;Funcion: leer una tecla ah=1 int 16h ;llamada al ROM BIOS jnz etiqw ; call leerraton ; test bx,1 ; jz opcion1 ; sub dx,40 ;algoritmo para el mouse mov ax,dx ;jmp etiqr ;etiqw: mov ah,0 ;algoritmo para el teclado int 16h ; mov al,ah ; sub al,59 ; sub ah,ah ;etiqr: cmp ax,10 ; ja finx ;Compara con Esc mov bl,6 ; mul bl ; lea bx,f1 ; add bx,ax ; jmp bx ;rat01: jmp opcion ;Fin de opciones F1:call graf1 ;Llama procedimientos graf jmp ya ; F2:call graf2 ; jmp ya ; F3:call graf3 ; jmp ya ; F4:call graf4 ; jmp ya ; F5:call graf5 ; jmp ya ; F6:call graf6 ; jmp ya ; F7:call graf7 ; jmp ya ; F8:call graf8 ; jmp ya ; F9:call graf9 ; jmp ya ; F10:call graf10 ; jmp ya ;Salida de bifurcacion finx:jmp fin ; ya:mov ah,8 ;Espera que se pulse una tecla, sin eco. int 21h ; mov ah,0 ;Modo mov al,2 ; normal de int 10h ; pantalla 80 x 25 JMP menu ; FIN:mov ah,0 ;Modo mov al,2 ; normal de int 10h ; pantalla pop ax ; mov ds,ax ; mov ax,MEMO ;Inicio de memoria de pantalla mov ES,ax ; mov di,0 ;LOAD SCREEN MOV cx,2000 ;longitud de pantalla ir01:MOV ax,pan[di] ; mov es:[DI],ax ; add di,2 ; loop ir01 ;

20

mov ah,4ch ;Salida al DOS con codigo int 21h ; de errores.marco endp ;

graf1 proc near ;Movimiento controlado de un caracter en modo texto. modot ;Inicializa el modo texto. mov xx0,40 ; mov yy0,12 ; mov car,0dbh call escrib call punteroon push ax tecl: mov ah,0h int 16h cmp ah,04dh je de cmp ah,04bh je iz cmp ah,048hap:pop ax ret z3:mov yy0,00 jmp w3graf1 endp

graf2 proc near ;MOVIMIENTO TEXTO modot mov xx0,40 mov yy0,12 mov car,0dbh call escrib call punteroon ;Activa mouse push axtecla: mov ah,0h int 16h cmp ah,04dhw7: add yy0,01 jmp escritescrit:mov car,0dbh call escrib jmp tecla z4:mov xx0,00 jmp w4 z5:mov xx0,80 jmp w5 z6:mov yy0,25 jmp w6 z7:mov yy0,00 jmp w7 esca:pop ax retgraf2 endp

graf3 proc near modot call punteroon push ax push bx push cx push dx mov xx0,40 mov yy0,12call pixel loop ir63 retcuad endp

21

graf4 proc near ;CUADRADO RELLENOmov col,61 mov cx,517 ale: inc col call pixel loop ale cmp fil,437 jl mar retgraf4 endpgraf5 proc near call modoadd fil,01 cmp long1,00 jg iiii retgraf5 endpgraf6 proc near call modo call punteroon push ax i01:mov col,90 mov fil,10 mov long1,460 mov long2,460 i00:mov color,01cmp al,27 jne i01 pop ax retgraf6 endpgraf7 proc near call modo call punteroon mov col,19 mov fil,79 mov color,01 mov long1,300mov col,320 mov fil,220 mov color,0fh call pixel push ax tcla: call guard mov ah,0h int 16h cmp ah,047hmodo proc near mov ah,0h ;Fija modo de video mov al,video ;modo de video, resolucion int 10h ; retmov ah,02h mov dh,yy0 mov dl,xx0 mov bh,0h int 10h mov ah,09h mov bh,0h mov bl,03h mov cx,01 mov al,car int 10h pop dx pop cx pop bx pop ax ret

22

escri endpsalva proc near mov ax,MEMO ;inicio de memoria de pantalla mov ES,ax ; mov di,0 ;SAVE SCREEN MOV cx,2000 ;longitud de pantalla sal0:MOV ax,es:[DI] ; mov pan[di],ax add di,2 loop sal0 mov ax,ds retsalva endpguard proc near push ax push bx mov ax,fil mov bx,col mov fi1,ax mov co1,bx pop bx pop ax retguard endpborra proc near push cx push dx push ax mov cx,co1 mov dx,fi1 mov ax,00h ;color mov ah,0ch ;Escribe pixel int 10h pop ax pop dx pop cx retborra endppixe1 proc near push cx push dx push ax mov cx,col mov dx,fil mov al,0fh ;color mov ah,0ch ;Escribe pixel int 10h pop ax pop dx pop cx retpixe1 endppixel proc near push cx push dx push ax mov cx,col mov dx,fil mov ax,color ;colorretleerraton endppunteroxy proc near mov ax,4 sub bx,bx int 51 retpunteroxy endpresetraton proc near

23

mov ax,0 int 51 retresetraton endpcseg ends end ini

8 EL SETUP DE LA PC, LAS OPCIONES DE CONFIGURACIÓN Y LOS PARÁMETROS.

8.1 BIOS SETUP "Basic Input-Output System", sistema básico de entrada-salida. Programa incorporado en un chip de la placa base que se encarga de realizar las funciones básicas de manejo y configuración del ordenador.

Estudiaremos a continuación como realizar el seteo del BIOS de un PC. Para ello nos basaremos en un BIOS AMI o AWARD, que son los más típicos y difundidos en nuestra plaza. Los BIOS de otros proveedores si bien tienen una estructura de menús bastante distinta a la que aquí mostramos, poseen opciones muy similares a las que detallaremos.

Para entrar al SETUP del BIOS debemos presionar la tecla [Supr] luego de que el PC termine el P.O.S.T. (Power On Self Test). Esto es habitualmente indicado por el PC con el mensaje “press DEL to enter SETUP” (tome en cuenta que DEL es sustituido por Supr en el teclado en español.

La pantalla principal de una BIOS clásica es algo así:

Mientras que la de una WinBIOS tiene este aspecto:

24

Para acceder a los SETUP de los BIOS de otros proveedores se deben presionar otras teclas o combinaciones de las mismas.

A modo de ejemplo:

BIOS PHOENIX --------------------------------[F2]

BIOS ACER--------------------------------------[Ctrl]+[Alt]+[Esc]

BIOS IBM-----------------------------------------[Alt]+[F1]

BIOS COMPAQ---------------------------------[F10]

En caso de problemas con el SETUP del BIOS, o de haber perdido el password asignado al mismo, es posible borrarlo por completo (incluyendo el password), cambiando de lugar por unos segundos un jumper del motherboard. Con esto se hace un nuevo seteo del BIOS, cargando primero los seteos por defecto, y luego optimizándolos.

Veremos a continuación los distintos menús y submenús, con una pequeña explicación de sus significados y seteos más habituales.

8.2 STANDARD CMOS SETUP En este menú podemos ajustar la fecha y hora del reloj del PC, declarar los parámetros de los discos duros, eventualmente declarar que tenemos conectado un CD-ROM, y declarar que tipo de disqueteras tenemos conectadas al sistema (estas se deben declarar manualmente, pues no pueden ser auto detectadas).

Los discos duros pueden ser seteados como “Auto”, con lo cual el BIOS los detectará automáticamente cada vez que arranque el PC, pero esto consume tiempo en el arranque. Esta opción es útil en el caso de tener un disco IDE removible, pues nos asegura que siempre el sistema estará correctamente configurado.

25

8.3 ADVANCED CMOS SETUP Quick Boot – Esta opción nos permite elegir si queremos realizar un chequeo exhaustivo de la memoria y demás componentes del sistema, o uno rápido. La opción más habitual es ENABLED.

1st Boot Device – Permite elegir cual será la primera unidad desde la cual el PC intentará arrancar el sistema operativo 2nd Boot Device – Segunda unidad en el orden de búsqueda de unidades de donde bootear 3rd Boot Device – Tercera unidad en el orden de búsqueda de unidades de donde bootear

Try Other Boot Devices – Aquí indicamos si luego de haber agotado todos los dispositivos enumerados anteriormente, seguimos buscando hasta encontrar alguno

S.M.A.R.T. for Hard Disks – Si habilitamos esta opción el disco duro puede reportar a cierto software (no incluido en los sistemas operativos típicos) información acerca de su estado

Floppy Drive Swap – En caso de tener más de una disquetera instalada, esta opción nos permite permutar las letras asignadas a ellas

Floppy Drive Seek – Esta opción al habilitarla hace que durante el proceso de arranque el PC verifique si tiene alguna disquetera conectada. Habitualmente se deshabilita, pues consume un par de segundos en el arranque.

PS/2 Mouse Support – En caso de tener un mouse de este tipo debemos habilitarla, en caso contrario se deshabilita a fin de liberar recursos

Password Check – Aquí podemos elegir dos opciones: Setup o Always indicando si queremos que el PC solicite el password de seguridad cada vez que es encendido, o sólo cuando se desea acceder al SETUP del BIOS .

Todas las demás opciones de este menú no se deben modificar de sus valores por defecto.

8.4 ADVANCED CHIPSET SETUP Trend ChipAway Virus – Detección de virus a nivel del BIOS. Esta opción al activarla controla si algún software trata de escribir al MBR y/o sector de booteo del disco (comportamiento habitual de muchos virus). Debe deshabilitarse siempre pues Windows escribe a esos lugares y eso es interpretado como una amenaza de virus por el BIOS, pudiendo ocasionar serios inconvenientes

Auto Configure DRAM Timing – Es aconsejable dejar habilitada esta opción

DRAM Speed (ns) – Aquí debemos indicarle al BIOS la velocidad de la memoria que estamos usando en el PC expresada en nanosegundos.

DRAM Integrity Mode – Esta opción indica que tipo de corrección de errores usa la memoria instalada, debe setearse de acuerdo a las características de la misma, o en caso de duda, deshabilitarse, eligiendo la opción “Non ECC”

26

On Board USB Function – Esta opción debe habilitarse si vamos a usar algún dispositivo USB, en caso contrario, deshabilitarla para ahorrar recursos

El resto de las opciones deben dejarse en sus valores por defecto.

8.5 POWER MANAGEMENT SETUP Power Management– Esta opción permite configurar las características de ahorro de energía a través del BIOS del PC. Es aconsejable deshabilitarlo, y dejar que Windows maneje estas configuraciones. En caso contrario, pueden producirse conflictos entre ambos.

RTC Alarm Power On – Esto permite programar el PC para encenderse automáticamente en una fecha dada, a una cierta hora

PCI/Plug and Play Setup

Plug and Play Aware O/S – Debemos elegir “Yes” para indicarle al BIOS que el Sistema Operativo puede administrar los recursos Plug and Play

Allocate IRQ to PCI VGA – El seteo de esta opción depende de la tarjeta VGA utilizada. Típicamente, las tarjetas de alta performance deben llevar esta opción habilitada

En este menú es donde podemos indicarle al BIOS que disponemos de algún dispositivo no Plug and Play, eligiendo para los recursos utilizados por ese dispositivo (DMA e IRQ) la opción ISA/EISA o ISA-Legacy en vez de la opción dada por defecto de PnP, o PCI/PnP. Los recursos marcados de esa forma no serán asignados por el BIOS a ningún dispositivo Plug and Play.

Las demás opciones se dejarán en sus opciones por defecto.

Load Optimal Settings

Esta opción carga un conjunto de valores por defecto, que si bien no asegura el máximo rendimiento del PC, sí asegura que este funcionará.

Load Best Performance Settings

Como su nombre lo indica esta opción carga un conjunto de valores por defecto con los cuales el PC tendrá su máximo rendimiento a juicio del fabricante.

Peripheral Setup

En este menú podemos habilitar o deshabilitar la controladora de disqueteras, los controladores IDE, y los puertos seriales y paralelos, incluidos en el motherboard. También podemos configurar estos dispositivos, eligiendo, por ejemplo, a que COM queremos que correspondan cada uno de los puertos seriales del motherboard, a que LPT queremos asignar el puerto de impresora, y si queremos que este sea un puerto estándar (Normal, o SPP), bidireccional (EPP), o mejorado (ECP). (Siempre que la impresora lo soporte debemos utilizar ésta última opción, pues es la de mayor velocidad de comunicación)

En caso de que el motherboard incluya a bordo otros periféricos tales como tarjeta de video, sonido, red, modem, etc., desde este menú podemos habilitarlos o deshabilitarlos.

27

CPU Plug and Play Setup

En los motherboards modernos, en vez de indicar las características del procesador por medio de jumpers, lo hacemos a través de menúes en el SETUP del BIOS.

Normalmente esto se hace indicando dos parámetros: la frecuencia de reloj del bus de memoria, y un multiplicador. El producto de estos dos valores da la frecuencia de trabajo del procesador.

En los procesadores Pentium II, III, y similares ( K6-2, K7, etc.) las frecuencias de bus de memoria más habituales son: 66MHz, 100MHZ, 133MHz, y ya están apareciendo mayores. Este valor se debe elegir de acuerdo a la velocidad de la memoria, ya que si usamos una memoria PC-66, con un bus de 100 MHZ, esta no funcionará, o lo hará en forma errática.

A modo de ejemplo, un procesador Pentium III de 600MHz se configurará con un reloj de bus de 100MHz, y un multiplicador de 6, o reloj de 133MHz, y multiplicador de 4.5, dependiendo de lo que indiquen los fabricantes del procesador y el motherboard utilizado. En general, en caso de existir varias combinaciones de valores que den la frecuencia adecuada para el procesador (como en el caso anterior), y siempre que tanto el procesador, como la memoria y el motherboard lo admitan, se debe elegir la opción correspondiente a la mayor velocidad de bus, pues esta será la que brinde un mayor rendimiento del sistema.

Change Supervisor Password

Este menú permite ingresar un password que será utilizado de acuerdo a las opciones elegidas en el menú “Advanced CMOS Setup”

Auto-Detect Hard Disks

Este menú realiza la autodetección de todos los parámetros de todos los discos duros IDE instalados en los controladores incluidos en el motherboard, introduciendo automáticamente estos datos en el menú “Standard CMOS Setup”. En algunos BIOS, esta opción detecta además todos los otros dispositivos IDE conectados a los controladores

En muchos BIOS actuales esta opción ha desaparecido, quedando integrada al menú Standard CMOS Setup donde se hace el proceso de autodetección de discos al presionar la tecla F3, u otra que indique el fabricante.

Save Settings and Exit

Esta opción nos permite abandonar el SETUP, luego de salvar los cambios realizados. Elegir esta opción es lo mismo que apretar la tecla [F10] en cualquier punto de este menú. Luego de elegirla (o presionar [F10] ) se nos solicita la confirmación, y presionando Y (yes) se reinicia el PC salvando los cambios realizados.

Exit Without Saving

Esta opción abandona el SETUP, dejando sin efecto los cambios realizados, y luego de confirmarlo, reinicia el PC

28

9 BIBLIOGRAFIAhttp://club.telepolis.com/mydream/Asm/ASM1.html

http://www.uhu.es/tomas.mateo/ac2/manual%20ensamblador%20UHU.pdf

29