UNIVERSIDAD DE ALCALÁ Microprocesadores DEPARTAMENTO DE AUTOMÁTICA ÁREA DE A.T.C. ? Tenemos conectados al DMA de un PC dos periféricos, uno de entrada en el canal 1 y otro de salida conectado al canal 3. Realizar un programa para hacer transferencias entre ambos periféricos por medio del DMA con las siguientes características: - El periférico 1 transfiere 100 bytes a una zona de memoria que comienza en la posición 4000:0000H en modo byte a byte, activándose la transferencia por hardware. - Una vez terminada la transferencia de entrada, se activará por software la transferencia de los datos leídos al periférico 2 en modo bloque. - El proceso se repite mentras no se pulsa la tecla ‘F’. - Direcciones DMA 0000H - 000FH, sin autoinicio, DACK activo alto, temporización normal. ? Dos periféricos P0 y P1 están conectados a los canales 0 y 1 de un 8237A (y éste a su vez en cascada al canal 3 del ADM del PC). P0 es un teclado que solicita, de vez en cuando, ADM para escribir en la memoria del sistema, a partir de la dirección ‘LISTA’, 100 palabras de la siguiente forma: byte-a-byte, autoinicialización, incrementando la dirección, temporización normal extendido, DREQ y DACK activos en alta. P1 es una pantalla que solicita, una vez por segundo, el ADM para hacer lecturas, en la misma zona de la memoria del sistema, de esas 100 palabras más una final. El ADM trabajará en bloque, autoinicialización, incrementando la dirección, temporización normal extendida, DREQ y DACK activos en alta. El programa está dedicado exclusivamente a consultar EOP (la palabra de estado) del canal 0 y verificar entonces la lista para ver si hay dos palabras iguales seguidas (basta con encontrar una pareja). En este caso, colocará un ‘*’ en la posición 101 de la tabla. Si no se encuentran, se colocará un carácter ‘#’. PROBLEMAS DMA Página 1 INICIO RESET DEL DMAC DESHABILITO DE DMAC: ENVIO DE REG. COMANDO PROGRAMO CH0: ENVIO REG DE MODO PROGRAMO CH1: ENVIO REG DE MODO PROGRAMO CH2: ENVIO REG DE MODO PROGRAMO CH3: ENVIO REG DE MODO CARGAR LOS REG. DE PÁGINA (LATCH) (SOLO EN CASO DE SER NECESARIO) CARGAMOS LOS REG. DE DIRECCIONES DE INICIO (DE TODOS LOS CANALES QUE UTILICEMOS) CARGAMOS LOS REG. CONTADORES (DE TODOS LOS CANALES QUE UTILICEMOS) QUITAMOS LAS MASCARAS (DE TODOS LOS CANALES QUE UTILICEMOS) HABILITO DE DMAC: ENVIO DE REG. COMANDO FIN INICIALIZACIÓN