CENTRO DE INVESTIGACION Y BE E S T U C O S ' V A N Z ' DOS DEL l P. N. ©kBL. Í OTECA INGENIERIA ELECTRICA CENTRO DE INVESTIGACION Y DE ESTUDIOS AVANZADOS fojO DEL J INSTITUTO POLITECNICO NACIONAL DEPARTAMENTO DE INGENIERIA ELECTRICA SECCION DE COMPUTACION SISTEMA PARA DIAGNOSTICO Y DESARROLLO DE APLICACIONES CON MICROPROCESADORES BASADO EN COMPUTADORAS PERSONALES Tesis obtener el INGENIERIA M a l clonado B e c a r i o del que presenta g rado de ELECTRICA. Talamantes CONACVT el Ing. Armando MAESTRO EN CIENCIAS Trabajo dirigido -ri m é n e z en por ¡-iores p a r a ia e s p e c i a l i d a d ei Dr. de Armando y Méííico D. F., Ag o s t o de 1988 Ded i c a con c a r i ñ o esta tesis A mis p adres A mi e s p o s a A mis hermanos A mis a b u e l i t o s A mis tíos V e s p e c i a l m e n t e a mis hijas A n g é l i c a y Diana Paola, por los m o m e n t o s de d i v e r s i ó n y c o n v i v e n c i a que r o b é atirante el d e s a r r o l l o del presente les trabajo. CENTRO DE INVESTIGACION Y BE F3TUDI0S '*■VANZr-DOS DEL I. P. N. B I B L I O T E C A ING ENIERIA ELECTRICA Mi Al especial Dr- agradecimiento: Armando Maldonado valiosa Talamantes, por su l a b o r d e a s e s o r í a y p o r s u -firme a p o y o , c o m o Je-fe de l Area de D e p a r t a m e n t o de Autónoma Sistemas El e c t r ó n i c a de Metropolitana, D i g i t a l e s del la Universidad d u r a n t e el d e s a r r o l l o de e s t e trabajo. Al Dr. Manuel estimable apoyo, del Departamento Investigación Dr. la Rentería, de Ingeniería de la p r e s e n t e e n C. ayuda del su C e n t r o de Héctor y paciencia fiuiz p o r el tiempo trabajo. Barradas, que me durante te s i s . José Luis Leyva Montiel, d e d i c a d o a la r e v i s i ó n d e e s t e Al M. por S e c c i ó n de C o m p u t a c i ó n y de E s t u d i o s Avanz a d o s , la r e a l i z a c i ó n Al E. G u z m é n labor de a s e s o r a m i e n t o y por su g ran c o m o Je-fe d e brindó por la g r a n durante las e t a p a s de dis e ñ o y pruebas. Al Centro de Avanzados de l Investigacion Instituto de Estudios Politécnico y Nacional y a la U n i v e r s i d a d A u t ó n o m a Metropolitana, por todos recibidos las los bene-ficios -facilidades concedidas. Al Nacional por Consejo la b e c a de C i e n c i a que me otorgo y y Tecnología, para sustentar mis e s t u d i a s de maestría. A mis amigos, p o r el a p o y o m o r a l que recibí personas alguna de el los. A todas las c o l a b o r a r o n en que la r e a l i z a c i ó n de de est e forma trabajo. I N D I C E R E S U M E N . ............................................................. 1 I N T R O D U C C I O N ........... .................... .............. ..... 5 CAPITULO I L O S S I S T E M A S D E D E S A R R O L L O .................................................. = C A P I T U L O II D I S E Ñ O D E U N G R A B A D O R U N I V E R S A L D E M E M O R I A S E- R O M _____ ií C A P I T U L O III D I S E Ñ O D E U N E M U L A D O R D E S I S T E M A S D I G I T A L E S . , .......... 2 S C A P I T U L O IV CONSTRUCCION, P R U E B A S Y R E S U L T A D O S ..........................4 á CAPITULO V C O N C L U S I O N E S ....................................................... 5 4 B I B L I O G R A F I A ........................................................57 APENDICE A D I A G R A M A E L E C T R I C O D E L G R A B A D O R . . . . ........................ 6 0 APENDICE B D I A G R A M A E L E C T R I C O D E L E M U L A D O R ........................ . . . 6 4 APENDICE C CODIFICACION DEL PROGRAMA MONITOR DEL G R A B A D O R ......... o ? APENDICE D CODIFICACION DEL PROGRAMA MONITOR DEL E M U L A D O R ......... 81 APENDICE E M O D U L O D E I N T E R A C C I O N C O N E L U S U A R I O D E L E M U L A C O R ------9 4 CENTRO DE INVESTIGACION Y BE ESTUDIOS AVANZADOS DEL I. P. N. BIBLIOTECA INGENIERIA ELECTRICA - 1 - R E S U M E N - 2 - El p r e s e n t e un Sistema t r a b a j o c o n s i s t e e n el d i s e K o y para Diagnóstico Microprocesadores divide y construcción Desarrollo de basado en Computadoras f u n c i o n a l m e n t e en d o s p a r t e s de Aplicaciones con Personales, el c u a l se fundamentales: 2 . - U n Emulador de Sistemas Díctales. L o s c o m p o n e n t e s del un microprocesador computadora módulo de 2732, 2 7 3 2 A, 2764, archivo El para de C, y 27256. contra el de formato una In t e l . y Además de un permite la c o m p u t a d o r a p e r s o n a l . El los ti p o s 2716, las ■funciones de c o m p a r a r el c o n t e n i d o d e memoria, p a r e im p a r , separar un y desplegar y Adicionalmente, de m e m oria que fuente archivo modificar- el g r a o a a o r p u e d e a memoria destino, sin la c o m p u t a d o r a . e m u l a d o r d e s i s t e m a s d i g i t a l e s e s p r o p i a m e n t e un emulador digital 8088= E s t a c o n s t i t u i d o p o r b a s a d o en d i c h o s m i c r o p r o c e s a d o r e s , programación computadora. De que aprovecha los forma qué el g r a b a d o r , s e c o m u n i c a hilos para conectarse permite compartir "software" y a d e m á s u t i l i z a un al p r o t o t i p o del usuario. lanzar* la e j e c u c i ó n d e u n p r o g r a m a d e m a n e r a (paso a paso), usuario. recursos o ininterrumpida Asimismo, algunos permite ( t i e m p o re a l ) , cargar r e c u r s o s c o n el y/o modificar memorias y puertos. archivos un y de un m ó d u l o igual c o m p u t a d o r a m e d i a n t e un p u e r t o serie, 40 s e r i e RS--232; lenguaje el g r a b a d o r p u e d e s los microprocesadores 8086 y módulo de 27128, directamente, h a c e r u so de en "software" en s u s p a r t e s a r c h i v o s b a j o el copiar de un p u e r t o escrito leer y p r o g r a m a r m e m o r i a s EP R Q M de y escritura, he:¡adecimal un m ó d u l o d i g ital o a s a d o en se p uede co m u n i c a r con cu a l q u i e r a través los r e c u r s o s puede lectura un personal el c u a l programación, aprovechar grabador g r a b a d o r son s Z-BO, El de la con la ~®ble de emulador interrumpida en el p r o t o t i p o de l en p r o t o t i p o del memoria usuario, RAM , y leer - 3 - I N T R O D U C C I O N - 4 - Con el nacional, con objeto de microprocesadores, proyecto conjunto (Unidad promover la generación ae tecnología e n el c a m p o d e d i a g n ó s t i c o y d e s a r r o l l o d e a p l i c a c i o n e s el p r e s e n t e t r a b a j a n a c e , entre la Universidad Azcapotzalco), y el Avanzados del Instituto realizada e n el Para la U n i v e r s i d a c , computadoras necesaria, un ambiente personales, y a bajo microprocesadores Trsoajc ru é del y disecado oajo las s e p r o p o n e el d i s e ñ o y " h a r d w a r e - s o - f t w a r e “. que costo, y £1 l o s a s e s o r e s d e te s i s . a l c a n z a r el o o j e t i v o m e n c i o n a d o , de c o m o un y C o m e a tacaras Sistemas Digitales Departamento de Electrónica de realización 1*33, Metropolitana Centro de Investigación y de Estudios Politécnico Nacional. área de directrices trazadas por en Autónoma proporcione la alrededor de irrfreestrucrura p a r a d e s a r r o l l a r p r o t o t i p o s a a s a d o s en diagnosticar la operación de sistemas digitales. El trabajo se d i v i d e consiste en d o s f a s e s EPROM g u e p e r m i t a leer y gr a b a r 2764, 27256, 27128, diseñadores diseño principales. La primera e n d i s e ñ a r y c o n s t r u i r u n 6rabador Universal de Memorias y y las memorias: consideradas de sistemas digitales. construcción de un de 271*, uso 2732, La segunda fase Emulador 2732A, mas común de por io s c o m p r e n d e el Sistemas Digitales, e n f o c a d o a los m i c r o p r o c e s a d o r e s 8 0 8 6 y 8088. Este reporte esta constituido apéndices. El actualmente de gue sistemas ofrece trabajo de capitulo los sistemas digitales el tesis. El Memorias EPROM, y describe la desarrollo desarrollo él caracterización, se II al E m u l a d o r d e S i s t e m a s tanto de para que se la c i r c u i t e r i a ios y y dedica su diseñadores la s ventajas ai en es t e Graoador principio E n el c a p i t u l o Digitales. cinco =>ue t i e n e n se pr e s e n t a describe y diseño. m u e s t r a el p r i n c i p i o d e f u n c i o n a m i e n t o , diseño, importancia microprocesadores, capitulo en por cinco capitules describe de con s i s t e m a de de funcionamiento, I En e s t e c a p i t u l o la c a r a c t e r i z a c i ó n , co m o de ae III la programación y se se el del - 5 - emulador. E n el c a p i t u l o IV s e d e s c r i b e n g r a b a d o r d e m e m o r i a s y al e m u l a d o r . sido lo s r e s u l t a d o s o b t e n i d o s . conclusiones de l trabajo. del Los apéndices muestra del escrito en en Finalmente, l e n g u a j e C, A y B a las muestran ios respectivamente. lenguaje gr a b a d o r de memorias. la codi-f í c a c i o n , emulador. indica cuales han emulador, la c o d i f i c a c i ó n , en p r o g r a m a m o n i t o r del se El c a p i t u l o V e s t á d e d i c a d o d i a g r a m a s e l é c t r i c o s del g r a b a d o r y del El a p é n d i c e C c o n t i e n e las p r u e b a s r e a l i z a d a s al Asimismo, ensamblador, E n el a p é n d i c e D s e l e n g u a g e F L M - S 6 , del p r o g r a m a m o n i t o r el a p é n d i c e E m u e s t r a el c ó d i g o -fuente, c o r r e s p o n d i e n t e al m ó d u l o c o n el u s u a r i o d e l e m u l a d o r . de interacción —Ö — C A P I T U L O I LOS SISTEMAS DE DESARROLLO - 7 - Durante desarrollo m u c h o tiempo, de "hardware" microprocesadores separados; fué p r i n c i p a l m e n t e en y "software" acompañado el d e l d i s e ñ a d o r la a é c a d ? por dos t i e m p o d e b i d o a la s del "hardware" Actualmente, para los "software", diseñadores lógicos, utiliza corrección, mediante la mejor naturaleza ce tiempo el d i s e ñ a d o r d e la c u a l realiza Este normalmente compañías desarrollado sistemas fabricantes la sistemas circuiteria de desarrollo permiten como de la un proceso que la mayor nasta por su parte del Para a c elerar dicho proceso, de microprocesadores para han conocidas microprocesadores. realización simultánea la p r o g r a m a c i ó n , digitales prueoa-error— herramientas hardwáre/software comunmente •herramientas, aigizales las h e r r a m i e n t a s una serie de prueoas es consume de d e s a r r o l l o del proto t i p o . diversas d e p - g r o t i sa. sistemas r e a l i z a c i ó n a p o y a d a en solución. iterativa, Esto pera idas o s c i Io s c o b ios, a n a l i z a d o r e s d e estacaos Usualmente una téc n i c a de alcanzar como t a l e s corno: y otras. / l a s s = p b z i f íes: i oríes a nivel b a s a d o s en m i c r o p r o c e s a d o r e s son ya i n s u f i c i e n t e s convencionales clsr.-,: = q t e el d e s o f t w a r e » inconsistencias entre y el d i s e ñ o d e l el b a g a e s en esfuerzos de hardware y t r a j o c o m o c o n s e c u e n c i a un g ran d e s g a s t e de e s f u e r z o s de Fasa.Cá, para p r o d u c t o s tanto y además coadyuvan Tales de la a depurar el p r o d u c t o f i n a l . Con los s i s t e m a s d e d e s a r r o l l o q u e s e o f r e c e n a c t u a l m e n t e , diseñador de "hardware", se "software", trabaja con vaya diseñando. puede construir la Por que p u e d e s e r el mismo que diseña la c i r c u i t e r i a d e l p r o t o t i p o c o n f o r m e o tra parte, c i r c u i-teria, el d i s e ñ a d o r del trabajando con disponible, y f a c i l i t a n d o el d i g n ó s t i c o c o n f o r m e el "hardware" vaya progresando. sistemas para digitales soportar ásta "harcware" la p r o g r a i r a c i o n d e s a r r o l l o de l el d i s e ñ a d o r de disp o n e de una poderosa he r r a m i e n t a de di s e ñ o desarrollos microprocesadores. Con estos productos, el el altamente especializados, b a s a d o s en - Es evidente necesidades que de como: y diseñador el RAM, y detener para d e s p l e g a r y a l t e r a r el de la e j e c u c i ó n de estas venta, c a o s 1n e n i e las sistemas oiquál^-.- i_c.n de d i a g n o s t i c o ■-Íes lo s r e g i s t r o s del m i c r o p r o c e s c - j.-r-. i.eer c o n t e n i d o de memorias memoria de tipo ROM con una memoria costos satisfacen de debido a sus capacidades desplegar y alterar modi-ficar - estos productos todo microprocesadores, a y puertos, d e u n p r o g r a m a en e s t a d o de i h e r r a m i e n t a s son y consecuentemente si.-.j ¡ar -fácilmente a itera!. le puhidí sistema, Sin altos debido están -fuera d e l una >:o.r.o la r.,-. u e n o o s t ó D : - -io los ai b a ¡c -.oiu.rien a l c a n c e -jg -tuecos usuarios potenciales. El grado de evolución semiconductores m i c r o c ircuitos Ta i ha ha con muy alta e s el c a s o d e d i v e r s o s campos, como asi uso de personales la i d e a d e u s a r u n a adicional oe integrados. c o n c u y o a d v e n j m i e n t o se las c o m p u t a d o r a s s i s tema de d e s a r r o l l o una capacidad con actúaimente densidad de compon e n t e s haciendo atractiva p a r t e de un de t e c n o l o g í a s disponer los m i c r o p r o c e s a d o r e s , g e n e r a l i z a d o el dándole e n el d e s a r r o l l o permitido para en de muy ellas microprocesadores, de servicio, ya que n o se requiere dedicación exclusiva. Tomando trabajo, sistema o-Frecen la i d e a a n t e r i o r , se e s t a b l e c i ó c omo meta para este agregar a una computadora personal las capacidades de un de desarrollo de sistemas digitales, c o n i o s p r o d u c t o s c o m e r c i a l e s p e r o a un accesible para muchos usuarios las v e n e a ¡as Jue costo verdaderamente potenciales que dispongan de una c omputadora personal. En solución para la -figura 1.1 s e que se propone, m u e s t r a el a la c u a l Diagnostico y Desarrollo esquema conceptual se le d e n o m i n a de S i stemas D i g i t a l e s cié la como Sistema = aao. en - 9 - FIG. 1.1 El ES Q U E M A C O N C E P T U A L DEL SISTEMA DE DESA R R O L L O sistema Digitales propuesto orientado a consta de u.n Emulador los m i c r o p r o c e s a d o r e s 8036 y Grabador Universal de Memorias EPROM .El g r a b a d o r d e incluye en el s i s t e m a propuesto, c o n el de Sistemas 8088, y memorias o b j e t o de h a c e r l o un se más completo y poderoso. El Emulador de Sistemas Digitales El para E m u l a d o r d e S i s t e m a s D i g i t a l e s es p r o p i a m e n t e u n E m u l a d o r los Microprocesadores características digitales, ejecución tales deseables como: ininterrumpida por 8086 y 808 8 . Deoe cualquier diseñador ejecución interrumpida (tiempo real), tener Las de sistemas (paso a paso), lectura y modificación de - los r e g i s t r o s del y puertos, mismos. procesador, 10 - lectura y modificación c a r g a d e a r c h i v o s e n m e m o r i a RAM , de la m e m o r i a y s a l v a g u a r d a cíe ios A d i c i o n a l m e n t e s e p r o p o n e q u e el e m u l a d o r p u e d a cou.Psr % i r , de manera opcional, Un grabador algunos de r e c u r s o s c o n el p r o t o t i p o dej. u s uar io. memorias herramienta de lectura e^ciusjvs de valiosa ut i h a ¿ 3 representa una. diseñadores de s i s t e m a s digitales, por EF~ : ü , p 3 r a. io s lo q u e s e r-uecie c e c i r aue, el g r a b a d o r d e m e m o r i a s e s al d i s e n a d o r d e s i s t e m a s a i q i t a i e s c o m o el cautín al técnico indispensables para en electrónica. cada versátiles y prácticas uno, y Ambas ahorran h e r r a s n i e m a s son tanto tiempo T r a d i c i o n a l m e n t e s e h a n o f r e c i d o e n el m s r c a a o d o s grabadores: ofrecen como lo s e a n en s u o p e r a c i ó n . io s q u e e s t á n características tipos ventajosas, pero a muy alto costo; a q u e l l o s c u y o o b j e t i v o es que sean e c o n ó m i c a m e n t e accesibles, que sus limitaciones de i n t e g r a d o s a un s i s t e m a d e d e s a r r o l l o y inherentes a su bajo costo y pero lo s hacen impotentes o poco prácticos para muchas aplicaciones que nacen uso de cierta programación. El grabador Desarrollo, están integrados desventajas de propone a sistemas Para Versatilidad para función; personal operativo, sin ni el bajo costo con para de pus leer de l eliminando ios y programar 2 7 3 2 A, 2~?a4. directos serie, Las de me m o r i a par* con c u a l q u i e r sin de p r o c e s a d o r que importar maneje; me,ñor ias i 15o; -ueT.a a .-eal i z a r computadora su sistema Portabiliüad r e s p e c t o a lo s g r a b a d o r e s c o m e r c i a l e s . sus siguientes Z~\2h. de una computadora de conexión con p u e r t o tipo parte comercializados, 2732, requerir Factibilidad o sistema Sistema las v e n t a j a s de a q u e l l o s e l l o se e s t a b l e c e n realizar copiados destino, como lo p o s i b l e io s t i p o s 2 7 1 6 , Habilidad memoria se e n el c o s t o . requerimientos: EPRÜfl esta que d e b e r e u n i r en y - 11 - C A P I T U L O II DISEÑO DE UN GRABADOR UNIVERSAL DE MEMORIAS EPROM -■ 12 - El o b j e t i v o p l a n t e a d o en memorias qu.e mencionados reúna en e s t a p a r t e es: lo posible e n el c a p í t u l o a n t e r i o r , Para ello se establecen Versatilidad EPROM: 2716, diseñar la s u n grata ador v e n t a j a s de ios de císos e l i m i n a n d o s u s á e s v e n t a jas. lo s s i g u i e n t e s r e q u e r i m i e n t o s : para programar 2732, 2732A, adecuadamente 2764, 2712S, las m e m o r i a s y 2725c.« sin nesga d e d a ñ a r l a s o d a ñ a r el g r a b a d o r c o n m e m o r i a s s a n a d a s . Habilidad para realizar copiados ■fuente a m e m o r i a d e s t i n o , para un realizar esta i n t e r r u p t o r el Factibilidad personal o ae me m o r i a -función, y especificando mediante tipo de m e m o r i a a copiar. de conexión sistema con s i s t e m a o p e r a t i v o ni el Portabilidad directos sin reque r i r de una c o m p u t a d o r a con cualquier p u e r t o serie, sin computadora importar su t ipo de p r o c e s a d o r q u e maneje, y bajo costo con r e s p e c t o a ios g r a b a d o r e s comerciales. PRINCIPIO DE FUNCIONAMIENTO DEL GRABADOR En la f i g u r a 2 . 1 Unicamente directo), se m u e s t r a el d i s e ñ o c o n c e p t u a l c u a n d o el g r a b a d o r el e s q u e m a c o n c e p t u a l en e s t e c a s o no se r e q u i e r e El módulo de interacción esquema órdenes módulo digital part icul a r ) , y sigue por a través oe El e n v í a al '.copiado módulo del la de grabador y a <=ue, módulo «nlüG) computadora, interacción medio de co m a n d o s o las ó r d e n e s necesaria para que éste grabador. m o s t r a d o no tiene validez; c o n el u s u a r i o maestro-esclavo. al m ó d u l o d i g i t a l del autónoma la c o m p u t a d o r a . c o m u n i c a c o n el m ó d u l o d i g i t a l , un o p e r a en f o r m a se bajo genera funciones. El (grabar o leer a l g u n a m e m o r i a en de interacción la m a n e j e y d e s p l i e g u e . la información - 13 - F'C - Computadora Personal MIUG - Módulo de Interacción con el U s u a r i o d e l G r a b a d o r PS - Puerto serie MP-Z80 - Microprocesador RM - Receptáculos para FVM - Fuente de Voltaje Múltiple FIG . 2. 1 (RS232) Z80 las Memorias ESQUEMA CONCEPTUAL DEL GRABADOR CARACTERIZACION DEL GRABADOR El u s u a r i o m a n t i e n e el c o n t r o l relación se p r e s e n t a en órdenes A l g u n o s de órdenes despliegue disco. -forma de menú. De la c o m p u t a d o r a (MIUG), esta usuario f o r m a el de una el c u a l le ca d e c o m p o r t a m i e n t o al g r a b a d o r m e d i a n t e c o m a n d o s d e f i n i d o s en el m e n ú . generan s o b r e el g r a b a d o r a t r a v é s d i r e c t a c o n el p r o g r a m a d e y al lo s c o m a n d o s q u e s e p r e s e n t a n grabador, formateo de debido información a que son c o n t e n i d a en e n el m e n ú n o comandos de archivos de 14 - - L o s c o m a n d o s q u e o f r e c e el g r a b a d o r s o n los s i g u i e n t e s : G R A B A R . - E s t e c o m a n d o p e r m i t e g r a b a r m e m o r i a s E P S Di'-! c o n información formato de archivos In t e l . cualquiera de computadora. comando El los están bajo puede "drives" son: tipo de lo q u e s e d e s e a grabar, la este nombre inicial y en d e f i n i d o s en memoria, dirección un estar Los parámetros que solicita a r c h i v o a grabar, de que archivo dfei y final da dirección ir u c i a ! la m e m o r i a E F R Q M . L E E R . - El c o m a n d o d e desplegrar lectura permite su verificar si contenido la memoria dirección opción DESPLEGAR.- Este de en disco, pantalla, limpia. o Los tipo de memoria y final de a lectura, y lectura o verificación. comando digital. inicial memorias y la esta p a r á m e t r o s q u e s o l i c i t a son: leer, leer en no Sólo y interactüa despliega permite con archivos el modificarios. El p a r á m e t r o s o l i c i t a d o e s el n o m b r e de l M O D I F I C A R . - Con e s t e c o m a n d o se puede localidades vacias. s o l i c i t a d o e s el único archivo. editar una memoria y h a c e r l e m o d i f i c a c i o n e s cu a n d o as grabar sobre modulo contenidos posible, El o aarametro t ipo de memoria. COMPARAR.- Este comando Permite c o m p a r a r el c o n t e n ido un a r c h i v o en d i s c o c o n t r a el c o n t e n i d o d e u n # memoria EFROM. localidades archivo. de son d i f e r e n t e s a l a s aeL L o s p a r á m e t r o s s o l i c i t a d o s so n : memoria dirección D e s p l i e g a el conc s r i i o o d o J 3>s cuando a comparar, inicial y n o m b r e de l final del tiao arcnivo, arcnivo a - comparar, y 15 - dirección inicial en m e m o r i a a comparar. SEPARAR.- Este comando nexadecimal, partes: permite bajo archivo comando no el separar formato par, un archivo Intel, y archivo en d o s im p a r . Dicno interac tiva c o n el m ó d u l o d i g i t a l . PRINCIPIO DE OPERACION DEL GRABADO Significado de la Memoria EPROM U s u a l m e n t e u n a m e m o r i a RAM <r a n o o m - a c c e s s r e a d / w r i t e m e m o r y » , en un s i s t e m a di g i t a l , lo s es ut i l i z a d a para guardar datos y prog r a m a s cuales pueden ser Desafortunadamente a p a g a el s i s t e m a , En la modificados este la s v e c e s tipo de m e m o r i a que sea es volátil, necesario. y cuando se lo s d a t o s s e p i e r d e n . mayoría de los sitemas digitales existen datos y programas e s e n c i a l e s q u e d e b e n g u a r d a r s e en m e m o r i a s n o v o l á t i l e s llamadas ROM (programados (read-only por memory)» m a s c a r i l l a ) , los En datos estos d e t e r m i n a d o s d u r a n t e el p r o c e s o d e f a b r i c a c i ó n . p u e d e s e r ac c e s a d o a l e a t o r i a m e n t e p a r a que la m e m o r i a volátil, pero con leerse son Un dispositivo ROM lectura, d e la semiconductores que pueden la v e n taja de misma que forma los datos p e r m a n e c e n d e s p u e s d e a p a g a r el s i s t e m a . Otro cuyo tipo de R OM es fabricante decida su grabación. memoria la contenido, La la PROM v p r o g r a m m a b l e r e a d - o n l v memo-'y ¡ , p r o p o r c i o n a sin mediante memoria PROM presenta grabada por mascarilla escritura. datos para un (ROM), que dispositivo ei uSví*f"io especial las c a r a c t e r í s t i c a s a d emas de Que p e r m i t e os oe la una - ló - La memoria EPROM ( e r a s a b l e p r o g r a m m a b i e r e a a - o n l y ,ne¡v.or . es u n d i s p o s i t i v o q u e m a n t i e n e un compromiso entre el tipo de memoria 'PROM, en RAM, en EPROM ia la q u e s e e s c r i b e u n a s o l a ves; cual se puede reescribir n o r m a l m e n t e es cuarzo transparente, e n c a p s u l a d a en y su y la memoria volátil o m u c h a s veces. un e s p a c i o l_a memoria con ve n t a n a contenido puede ser borrad:- de m e c í arree e x p o s i c i ó n a la luz u l t r a v i o l e t a . Concepto de Grabado de una Memoria EPROM G r a b a r u n a m e m o r i a E P R O M s i g n i f i c a a l m a c e n a r 0 1 es a s d a t o s en celdas formadas por transistores FAMOS injection transistores flotante tienen esta de s e l e c c i ó n dos compuertas; completamente d i ó x i d o de silicio, La. y rodeada por almacenada. compuerta más una capa Estos oaja o aislante de llamada de control o e s c o n e c t a d a a la c i r c u i t e r i a e x t e r n a . cantidad de c a r g a c e l d a s c a r g a d a s son ls. la. la. compuerta, d e a r r i b a , flotante determina cuándo e l é c t r i c a a l m a c e n a d a en la c e l d a b i t c o n t i e n e u n l e í d a s c o m o Os, Las memorias EPROM limpias <f l o a t i o g - g a t e a / « l a n c h e - m e t a l - o x i d e s e m i c o n d u c t o r ) , de c a r g a leidas como compuerta y las. d e s c a r g a d a s s e traen de fábrica, de c a r g a y son la 1 o un todas ls l ó g i c o s ; las 0. Las leen c omo localidades cada b y t e con cieñe un F F h e x a d e c i m a i . Para c a m b i a r una c e l d a bit de t r a v é s de l mismo canal tiempo, de p o t e ncial dentro función fuerte de de del transistor, las c a p a s del los vo l t a j e s de campo eléctrico, electrones se pas a una c o r r i e n t e fuente hasta a p l i c a a la c o m puerta, d e c o n c r o l r e l a t i v a m e n t e alta, fuente-drenaje adquieren aislante 1 a 0, desde que se rodea c r e a n d o un material una fuerte Vpp. algunos electrones ele-trico Esta es En p r e s e n c i a la acumulan adquiere una carga negativa, compuerta en la flotante. compuerta que hace que ia del ■que p a s a n p o r el c a n a l suficiente energía para atravesar a a Al diferencia c s .t.o g semiconductor. programación drenaje. la. c a p a Conforme flotante, ios ésta ia c e l d a c o n t e n g a u n 0. - Para borrar ultravioleta, en io s d a t o s g r a b a d o s s e e x p o n e la c u a l "La i n c i d e n c i a d e la c o m p u e r t a 17 - contiene la m e m o r i a a la fotones de relativa flotante, y nace que adquieran estados altos para regresar a través ae De se forma, ius energía. -fotones e x c i t a a los e l e c t r o n e s q u e s e enct-s--,rsn suficientemente esta sltí r e g r e s a al e s t a d o remueve la c a r g a ia cas* d e la c o m p u e r c a a e er-e.-gia aisirnce. . ia c e l a a 1. Procedimiento de Grabación de una Memoria EPROM El se procedimiento para grabar explica de Inicialmente, 5 la volts. la en Vpp . dirección se en Asimismo, han se ("Chip una memoria figuras 2.2 ErRCM v 2.3. la m e m o r i a d e b e e s t a r c c n s c t a o a a aplica estabilizado respectivamente, la e n t r a d a C E las s e a p l i c a el v o l t a j e d e p r o g r a m a c i o n en la q u e s e d e s e a g r a b a r . direcciones, u n d a t o en mediante la e n t r a d a V c c d e Posteriormente, entrada dirección manera básica el dato a grabar C u a n d o las s e ñ a l e s del en ios s e a p l i c a un buses de y la dato y datos y pulso de prooramación E n a b l e “). El p u l s o d e programación deoe a p l i c a r s e p a r a cada, l o c a l i d a d q u e s e d e s e e g r a b a r y s u a u r a c i o n e s de 50 milisegundos fabricantes (tiempo mínimo necesario, de memorias, FIG. para asegurar proporcionado por q u e el dat o es 2.2 CIRCUITO BASICO PARA GRABAR UNA EPROM los granado - En para la -figura 2 . 3 grabar existen una entre 18 - se m u e s t r a un m e m o r i a EPROM. las m e m o r i a s d i a g r a m a d e x leme-os Debido tratadas a en ei p r e s e n t e memorias. conceptual el Sin 27123, octetos la -figura 2 . 3 i lustra 1**S cocí i W de manera p r o c e d i m i e n t o que se sig u e para grasar. La a r q u i t e c t u r a 2764, embargo, que -raoajw. formas de ond a mo s t r a d a s no corres p o n d e n e x a c t a m e n t e * * dichas D a s ic o la s d i t a r a n c i a s y 27256, interna de las m e m o r i a s ; 2716, p e r m i t e ac c e s o s de l ectura y ( b y t e s í . Esto sign i f i c a que deben 2732, 2732A, escritura sor leerse o granarse 3 bits si m u 11é n e a m e n t e . La posiDilidad positivamente -facilita del el de grabar S tiempo de gradación bits del simúitanaamérte total de el u s o d e u n m i c r o p r o c e s a d o r d e 3 b i t s e n grabador. ia í ’s c v a memoria, y la i i f c u ü e n a PRINCIPIO DE OPERACION DE LECTURA La lògico l e c t u r a d e uria m e m o r i a EF'ROM c o n s i s t e e n c o n c c e r en q u e se e n c u e n t r a c a d a c e l d a bit. Con ■Figuras 2 . 4 y 2 . 5 s e e x p l i c a el p r i n c i p i o b a s i c o d e FIG 2.4 FIG. ei -a== :;ada la a y / u i o e l e c w t a. CIRCUITO BASICO PARA LEER UNA EPRQM 2 . 5 F O R M A S DE O N D A DE L E C T U R A DE E M O R I A S E P R O M Las - 20 - Fara dato l e e r una. m e m o r i a E P R O M s e d e b e a p l i c a r a leer en Subsecuentemente el bus nivel ba.jo e n Las en la. e n t r a d a bajo la m e m o r i a . de datos diferencias deben y en s u s direcciones. terminales voltaje de programación, 2.6 se la en CE a-rica*' ei a a te a Leer Sin 2= c e ilustra && ic ,¡e s p r i n c i p a i/per- Iré e i embargo, de control» existan Estas diferencias comparativa 27 27 27 2 5 6 128 64 27 27 3 2 A 16 27 16 Vpp A12 A7 A6 A5 A4 A3 A2 Al AO 00 vpp Al2 A7 A6 A5 A4 A3 A2 Al AO 00 VPp A12 A7 A6 AS A4 A3 A2 Al AG 00 A7 A6 A5 A4 A3 A2 Al AG 00 A7 Aò A5 A4 A3 A2 Al AG 00 01 02 01 02 01 02 01 02 01 02 Vcc A8 A9 Vpp OE AIO CE 07 06 05 04 03 Gnd Gnd Gnd La c o n f i g u r a c i ó n de Vp p (2716) V p p (276 4 ) F 16 2 . 6 = 25 V = 21 V se c a p a c i d a d de alm a c e n a m i e n t o , se las En 27 32A Vcc AB A9 Al l OE,Vpe AIO CE 0? 06 05 04 03 ia m e m o r i a 2 7 3 2 e s s i m i l a r V p p (2732) = 2 5 V V p p ( 2 7 1 2 8 ) = 21 V 27 64 Vcc F-Bk NC A8 A? Al 1 GE AIO C£ 07 06 05 Ù4 0 ia. memorias mencionadas. Gnd Snd sus ciertas y núme r o de t e r minales de ccnexion. tabla un ia •figura 2.5. t a les como: m u e s t r a ¿tna cel memoria. t r a t a d a s en el p r e s e n t e t r a b a j o sor a v a r i o s factores, figura ií La a n t e r i o r la m a y o r í a d e s u s t e r m i n a l e s d e c o n e x i ó n , buses la d i r e c c i ó n de es n e c e s a r i o DE para nacer que d i a g r a m a de tiempos ae memorias nivel Finalmente, e n el b u s d e d a t o s d e m e d i a n t e el direcciones d e b e a p l i c a r s e un p a r a h a b i l i t a r a la m e m o r i a . presente de 27 27 12 6 2 5 6 -ce FSH A13 AS A9 All CE h1>CE 07 0;:. 05 04 0-- vcc A i4 Ai3 A3 A5 All DE AIO CE 07 L6 05 C* O. a i ¿» 2 731.-* V p p 127 = 21 V V p p (2725t>) = 13 V C O N F I G U R A C I O N DE L A S T E R M I N A L E S DE C O N E X I O N - 21 - Las diferencias que implican la n e c e s i d a d d e control necesarias estas que señales para cada se le d e n o m i n a lo g e n e r a s e le d e n o m i n a Estas diferencias p r o g r a m a b les mismo o las hacen tipo las s e ñ ¿ u s = de de memoria. A i con junto Je * al c i r c u i t o !!C o n m u t a d o r de P a t r o n e s q u e el p o r el g r a b a d o r número sea de limitado, para Val tipos os debido p a t r o n e s de v o l t a j e leer c u a l q u i e r memoria. grabar aquellas memorias m e n o r í a s Q<?scri '.as genere "Patrón de Voltaje". c i r c u i t o c o n m u t a d o r de? programar o existen entre un c i r c u i t o q u e E s de c i r , las cual e s -3 js 1. me.-ror ; a s a que con no es un posvbie s o i o se --j.ee en ha s i o o a r w * « 3 Q leer el c i r c u i t o c o n m u t a d o r de patrones. MODULO DIGITAL DEL GRABADOR E n esta, s e c c i ó n digital del grabador, El s i g n i f i c a d o d e s e muestra, la a r q u i t e c t u r a g e n e r a l d e l el c u a l s e b a s a en u n m i c r o p r o c e s a d o r los b l o q u e s es-el modulo ¡1-50. siguiente: CPU - M i c r o p r o c e s a d o r 2--80 MEM - Memoria EPROM con-el Programa Monitor y M e m o r i a d e L e c t u r a / E s c r i t u r a para, ios D a t o s PCS -- P u e r t o d e C o m u n i c a c i ó n TEM - Circ u i t o T e m p o r i z a d o r de Grabado Serie I D I R - Inter-faz d e D i r e c c i o n e s IDAT FVM Inter-faz d e D a t o s - Fuen t e de V oltaje Múltipla CF'AT - C o n m u t a d o r , d e P a t r o n e s c e V o l t a j e El misma M E M F -• R e c e p t á c u l o p a r a ia Memoria MEMD ■ - Receptáculo para la Memoria Destino microprocesador que se programado por 2-80 opera a una a p l i c a al "hardware" c o m p u t a d o r a a razón de puerto serie F u e n se f r e c u e n c i a de 825 1 . El l. ^ para transmitir y recibir datos 1200, 2400, 4800, .“ !h z, puerro serie ó 9600 baudios. de es 1a FIG. 2 .7 E S T R U C T U R A S I M P L I F I C A D A DEL MO D U L O DI G I T A L DEL - 23 - En el bloque MEM se encuentra m e m o r i a R AM d o n d e se gua r d a n El bloque llamado TEM compuesto mantener, du r a n t e 45 m i l i s e g u n d o s m e m o r i a s EF'ROM) , el activación generar de una la m i s m a . programa monitor c o n t i e n e un c i r c u i t o granado, de por el y la lo s d a t o s a g r a b a r . 2 muítivibradores d a t o en temporizado»' de monoestaoles (especificación la entrada de del la memoria También este circuito es i n t e r r u p c i ó n del para fabricante y utilizado la para m i c roprocesador de s p u e s de cada dato grabado. Las interfaces de datos y direcciones (I D A T e IDIR), son c i r c u i t o s e x c i t a d o r e s q u e s i r v e n p a r a p r o t e g e r al m i c r o p r o c e s a d o r , de p o s i b l e s El me m o r i a s dañadas. bloque principalmente almacenan un a CF'AT un c o n j u n t o patrón de electrónicos, aplicar llamado por 8 bits, es de y un un c o n j u n t o de he c h o s con t r a n s istores las memorias EFROM, circuito muítivibradores lo s y diodos, compuesto tipo D que interruptores para diversos conmutar y voltajes de alimentación del programación. E n el b l o q u e FV M se e n c u e n t r a módulo digital, en la f u e n t e d e la c u a l e s u n a f u e n t e m ú l t i p l e c u y o d i s e ñ o s e o a s a la r e g u l a c i ó n d e los v o l t a j e s po r m e d i o de d i o d o s lo s v o l t a j e s d e p r o g r a m a c i ó n ) , y u n c i r c u i t o de 5 v o l t s de (para zener regulador (para integrado la a l i m e n t a c i ó n g e n e r a l ) . El m ó d u l o e s t a p r o v i s t o dos indicadores luminosos; fuente, y otro para indicar cuando una memoria esta siendo granada uno para i n d i c a r el e n c e n d i d o d e la o copiada. C a d a u no de de ios b l o q u e s M E M F y M E M D c o n t i e n e 28 terminales, en los c u a l e s se destino, respectivamente. utiliza c u a n d o se realiza selección del El insertan un receptáculo las m e m o r i a s r e c e p t á c u l o de m e m o r i a un c o p i a d o directo. fuente y f u e n t e s o l o se En e s t e caso, tipo de me m o r i a se r ealiza manualmente. la - 24 - MAPA DE MEMORIAS Y PUERTOS Los p u e r t o s q u e c o n t i e n e el encuentran m a p e a d o s en m emoria. modulo digital Por consiguiente, K o c t e t o s d i r e c c i o n a b les p o r el m i c r o p r o c e s a d o r bloques de me m o r i a y 6 puertos. utilizados por disponibles de modulo el conectadas y los se se los 6 4 uanen 4 ¿ o s 6 p u e r t o s =an restantes ausaan los t i p o s d e m e m o r i a s E P R O M a g r a b a r . decodificación 74LS138, Z-30, U n i c a m e n t e 4 ae digital, graaaaor- p a r a u n a p o s i b l e e x p a n s i ó n ael g r a b a d o - c o n él o b j e t o incrementar La el del aer.tro a e cual se realiza por medio o-frece 8 l í n e a s d e s a l i d a , d i r e c t a m e n t e a las l i n e a s y de un algunas de dirección circuito compuertas A14 y A I S del microprocesador. En la -figura 2.8, observarse el que: programa monitor ( 0 8 0 0 H —0 F F F H ) , de l El p a r a r e c ibir de también los c u a l e s se 1000H y Í001H, respectivamente. es pa r a el c i r c u i t o para La lectura de moa o copiado, dirección La puede siguientes tipo PA M que la c o m p u t a d o r a io s las c o n s t a n t e s y opera datos a variables 2000H. se la d i r e c c i ó n patrón de r e a l i z a m e d i a n t e el sedales ia La m e m c r i * -u-ao te s e dirección i&- utilizada únicamente oara la d i r e c c i ó n 4 0 0 0 H a memo r i a EFROM destino ocupa de ia ae ce uw^oria, p u e r t o ras-.:*oo en El e n c e n d i d o d e l b i t A 1 4 d e l o c a l i z a d o en uno de las d i r e c c i o n e s El p u e r t o m a p e a ü o en g e n e r a d o r del m e m o r i a E P R O M -fuente, o cupa de de datos y m a p e a d o s en io s - i n t e r r u p t o r e s d e s e l e c c i ó n r e l i z a m e d i a n t e el p u e r t o directo, 2 Koctetos memoria m a n e j a un r e g i s t r o encuentran ÍSOOH voltaje. y los m e mor ia, ( 0 O 0 0 H - O 7 F F K '•, c o n t i e n e n mó d u l o digital. p u e r t o serie 8251 control, Koctetos grabador; E s t a memoria, c o n t i e n e p r o p i a s del m u e s t r a el m a p a d e están dedicados a una como m e moria temporal grabar. la c u a l los p r i m e r o s 2 la 7 F F F H . cop lad o M i e n t r a s que, la d i r e c c i ó n 8 0 0 0 H a la F F F F H . la OOOOH PROGRAMA MONITOR (2 K o c t e t o s ) __________________________________________ MEMORIA TIPO RAM (2 K o c t e t o s ) __________________________________________ i".... ............................... . P U E R T O 8251 <2 K o c t e t o s ) __________________________________________ f' ..... GE N . D E P A T R O N (2 K o c t e t o s ) __________________________________________ L E E I N T E R R U P T O R E S (2 K o c t e t o s ) __________________________________________ B I T A l 4 M. F U E N T E (2 K o c t e t o s ) __________________________________________ LIBRE (2 K o c t e t o s ) __________________________________________ LIBRE <2 K o c t e t o s ) __________________________________________ EPROM FUENTE (16 07FFH 0800H OFFFH 1O O O H —1 0 0 1 H 17FFH 180OH 1FFFH 2OOOH 27FFH 28 O OH 2FFFH 3000H 37FFH 3S00H 3FFFH 4000H Koctetos) ___________________________________________ 7 F F F H 8 0 0 OH EPROM DESTINO (32 Koctetos) ______ ____________________________________ F F F F H FIG. 2.8 MAPA DE M E M O R I A S Y P U ERTOS DEL G R A B A D O R - 26 - El e s p a c i o de 16 « o c t e t o s q u e o c u p a la m e m o r i a EPftüíl f u v ri';e, l i m i t a el p r o c e s o eje c o p i a d o d i r e c t o a m e m o r i a s n o m a y o r e s 27128 <16K 27256, íí 8). Para resolver este se c o p i a p r i m e r a m e n t e problema la m i t a d m á s p o s t e r i o r m e n t e s e r e p i t e el p r o c e d i m i e n t o , ia m e m o r i a fuente, -ae cor-, ...as baja de ¡a t-etfl ú r j d s ia memoria y p e r o c o n si bi t hl-., d e encendido. EL PROGRAMA MONITOR DEL MODULO DIGITAL DEL GRABADOR El esta p r o g r a m a monitor, e s c r i t o en c u y o c ó d i g o s e m u e s t r a en el lenguaje ensamblador manera que su estructura programa y principal, la c o n f o r m a n es la r u t i n a de Ha 4 partes la r u t i n a d e e s c r i t u r a , la r u t i n a d e c o p i a d o . parte de Z - 80. Co n t i e n e además, interrupción, la c u a l a o e n o x c e C, sido diseñado de fundamentales: el ia r u t i n a a e una parte puede consiaerarse C o m o s e o b s e r v a en la f i g u r a 2.9, ei p r o g r a m a p r i n c i p a l s a l t a r a la r u t i n a c o r r e s p o n d i e n t e . local, se salta a la d i r e c c i ó n del mo d o s o l i c i t a d o es remoto, la cual es recono c i d a computadora. se r ecibe u na señal se reci b e el de Bytes, y Tip o de Memoria). de r e t o r n a al a que mueno mayor provisto para “b u f f e r " del c o n el que, de coma n d o (Di r e c . D e p e n d i e n d o de l E S C R I B I R o de LEER. D e s p u e s de Si el requerimiento, hacia la ;w e e r o I n i c i a l . ¡Müm comando, se sa l t a a leer o e s c n t i r , se i n i c i o de l p r o g r a m a p a r a e s p e r a r un n u e \ c cemar.co. Debido es de de o t r a señal tipo y lo s p a r á m e t r o s c o r r e s p o n d i e n t e s rutina la Si el m o d o s o l i c i t a d o es m e d i a n t e ei e n v í o En s e g u i d a es solicitado p r o c e d i m i e n t o COPIAR. Grabar) , la como las r u t i n a s de c o p i a d o y escrit u r a . p a r t e q u e s e e n c a r g a d e d e t e r m i n a r ei m o d o d e o p e r a c i ó n para lectura, importante que ia v e l o c i d a d d e r e c e p c i ó n d e que la d e g r a b a c i ón, controlar el modulo digital U s u a r i o del actualmente, t a m a ñ o q u e el d e l flujo ios o a eos a g r a b a « el p r o g r a m a de se descorde. datos El M o d u l o d e G r a b a d o r n o m a n e j a el c o n t r o l se envían "buffer". ai me--, i tor e i«:»eoir grabador bloques ae e.i Interacción flujo fijos, oQr de lo menor - 27 - F 16. 2.9 E S T R U C T U R A 6 E N E R A L D E L P R O G R A M A M O N I T O R D E L GRABADOR: - 28 - C A P I T U L O III DISECO DE UN EMULADOR PARA LOS MICROPROCESADORES 8086 Y 8088 - 29 - PRINCIPIO DE FUNCIONAMIENTO El Emulador de Sistemas Digitales c o n e c t a al p r o t o t i p o de l La conexión cable de del con 40 el prototipo hilos y microprocesador -forma, el microprocesador se hace a. un en prototipo del es diseñador y a una realiza conector el que prototipo realiza emulador- tra v é s de se un todas La un aparato que computadora a se del sus través inserta de en diseñador. con un lugar De operaciones conexión se personal. con la esta el cofnputsdoí'a c a b l e d e 3 h i l o s o a r a c O f t y v L c a t i o n en m o d o serie. el Cuando el p r o t o t i p o de l Emulador, la v e l o c i d a d diseñador trabaja c o n j u n t a m e n t e con de o p e r a c i ó n p u ede ser la m i s m a del p r o t o t ipo. La puede m e m o r i a e x i s t e n t e en el E m u l a d o r d e S i s t e m a s D i g i t a l e s s e usar pruebas, para la d e l Este sistema seleccionar durante sus extender o el de reloj las puebas. el u s u a r i o c i r c u i t o de reloj, Interfaz desarrollo del se esta Prototipo velocidad p u e d e c o m p r o b a r el b u e n etapa posibilidad propio de Puede de Emulador, realizar u n re loj p r o c x o . f u n c i o n a m i e n t o as s u del E m u l a d o r e s t a p r o v i s t o d e Diseñador. Diseñador de operación Los no que prototipo, impedancia de ni un circuito c i r c u í te a í s l a ai diseñador. componen introducen retardos del y alta Dicho P r o t o t i p o del circuitos m i c r o p r o c e s a d o r . L a c i r c u i t e r i a de l es la del q u e s u disefío d i s p o n g a d e Prototipo emulando. bidireccionalidad a-frece p r o t o t i p o o el E m u l a d o r d e S i s t e m a s D i g i t a l e s de l no la r e e m p l a z a n d o el del E m u l a d o r . El m ü d u l o d i g i t a l llamado durante C o n e s t a f a c i l i d a d el u s u a r i o pruebas antes de Asimismo, substituir, p r o t o t i p o de l d i s e ñ a d o r - las la que afecten carécterisucss la ce las e n t r a d a s y s a l i d a s de l Emul a d o r de Sist e m a s t r a n s p a r e n t e p a r a el p r o t o t i p o d e l ctianoo In c e r - a i usuario. Digitales - 30 - PRINCIPIO DE FUNCIONAMIENTO El esquema m u e s t r a en conceptual del la f i g u r a 3.1, PC Emulador de Sistemas donde: - Computadora Personal MIU - M ó dulo de I n t e r a c c i ó n c o n el U s u a r i o MD - Módulo Digital PS - Puerto Serie RS-232 IP D - I n t e r f a z P r o t o t i p o D i s e ñ a d o r CPU - Microprocesador PD — Prototipo Diseñador FIG. 3.1 ESQUEMA CONCEPTUAL DEL EMULADOR fc.1 e m u l a d o r d e s i s t e m a s d i g i t a l e s e s t a c o n s t i t u i d o por; 1.- Un M ó d u l o de I n t e r a c c i ó n c o n el U s u a r i o 2 . - Un M ó d u l o D i g i t a l D i g i t a l e s se - 31 - El se mód u l o de i nteracción con comunica con e 1 bajo un e s q u e m a el u s u a r i o e s u n módulo digital, amo-esclavo. a El programa que t r a v é s d e la módulo de c omp u r a s o r a , interacción con u s u a r i o g e n e r a o r d e n e s d e c o m p o r t a m i e n t o al p r o t o t i p o con l a s o l i c i t u d de l las órdenes e usuario, informa oe m i e n t r a s q u e el m o d u l o d i g i t a l a la computadora s o b r e el el acuerdo sigue estsao de c o m p o r t a m i e n t o d i n á m i c o del prototipo. CARACTERIZACION DEL EMULADOR Recientemente algunas c o m p a ñ í a s han comercializaoo eouipos a copi a d o s a microcomputsdoras personales como para usarse como l i t e r a t u r a s o b r e el comportamiento, deben tener Haciendo relación se te m a , y de la s f u n c i o n e s un análisis la IE¡M-P'.C de que se y otras, car-ace análisis y elementos que se mantiene conceptual, la el c o n t r o l d i r e c t a c o n el de de de l considera acuerdo s ección anterior, sobre se el el a tra v é s de una cual d e mentí. de comportamiento De el e m u l a d o r con dice que p r o g r a m a d e la c o m p u t a d o r a (rllü; , el e s t a -forma el al e m u l a d o r , funciones completamente definidos. en pesar en s e g u i d a se p r e s e n t a un d e s c r i t o en p r e s e n t a en f orma órdenes A lo s e m u l a d o r e s d e s i s t e m a s d i g i t a l e s . funcionamiento usuario emuladores. u s u a r io a través le de co m a n d o s Dichos comandos da o se nan a g r u p a d o t r e s tipos: C o m a n d o s de S e r v i c i o . - Permiten objeto, la creación definen los p u e d e p r o p o r c i o n a r el al p r o t o t i p o C o m a n d o s de T r a n s f e r e n c i a . - Permiten memoria cargar del prototipo, sobre vrelo j, móaulo asi c o m o memoria p r o t o t ipo. o ce archivos ^ec-irsc-s riodclc- =ue digital r a-iipri*. . . • . .-r-cn* .os cigitai er o la cal ie-.-r v. o escribirpuertos del - 3 2 -­ Comandos de Ejecución.- establecen deseado reai, Los c o m a n d o s de e j e c ución del el modo (si mp le, a® t :¡tfr a o p o r o 1 oesue> . constituyen la o a r t s m a s i m p o r t a r te e m u l a d o r y a q u e el o b j e t i v a d e e s t e e s ejecuta,- p **3(5 r a m a s o a ;e d iteren tes modalidades comportamiento asi del Durante datos, que ayuden la -fase d e p r u e b a s d e l reloj prototipo, ai digital el c u a l microcomputadora. pantalla, tanto en obj e t i s ' o C u a n d o el u s u a r i o o b s e r v a el lo d e s e a comportamiento tal i-nformac 1 un en A p o y á n d o s e en hardware como El la la P a n t a l l a en módulo la i n f o r m a c i ó n d e s p l e g a d a en la el software, digital esta forma hasta a l c a n z a r el m i c r o p r o c e s a d o r . un p u e r t o entre el m ó d u l o programa, control, que el digital la y la c i r c u i t e n a circuiteria <8086 u 8088) para usuario monitor elige que debe para correspondiente la ae r i=>o «¡un i.t.o os o aetc-rmira si digital. El el m o d u l o al m ó d u l o digital inciu.e i n t e r a c c i ó n c o n el u s u a r i o , lo s c o m a n d o s d e f i n i d o s e n de tipo de a n c r o o z e a * o o r prototipo en memoria de o p e r a c i ó n El su instalarse s e r i e C-:Sinformación para aecoaificacion selección y el m o d o p o r un i n s e r t a d o en transferencia de la m i c r o c o m p u t a d o r a , c o m u n i c a c i ó n c o n el m ó d u l o d e todos la e i n t e r f a c e s c o n el p r o t o t i p o . microprocesador programa se r e a l i z a la m e m o r i a d e d a t o s , microprocesador máximo), cual iterativa, constituido la b a s e c o r r e s p o n d i e n t e al con de s e g ú n s e a el q u e s e n a y a a t r a v é s de l tales d i n á m i c o del m i c r o p r o c e s a d o r 3 0 8 6 u. 8 0 6 3 , 232, peec-e interacción el u s u a r i o p u e d e h a c e r c o r r e c c i o n e s e n el ai-ital lineas üe lectura/escritura. muestra deseado. el : ti e n a o ¡t j q o u í o tocas sus p r o t o t i p o e i n f o r m a s o b r e s u e s t a d o al m ó d u l o d e el u s u a r i o , ►-3 ¡aerear r e c u r s o s p r o v i s t o s p o r el m ó d u l o d i g i t a l , y m e m o r i a de módulo a p r o te t ip:;, c mismo. direcciones y control. El usuario el m i c r o p r o c e s a d o r al u s u a r i o c o n h a c e r uso de o tros c o m o el al h a r d w a r e y s o f t w a r e de l la d e p u r a c i ó n del proporciona y sjocíeton s u ? ora a t ; la s i g u i e n t e s e c c i ó n . asi la como DISEÑO DEL EMULADOR En esta sección se desc r i b e n I n t e r a c c i ó n c o n el U s u a r i o , del la s b a s e s d e d i s e ñ o P a r a e>¿ fíodul*:- a s y f i n a l m e n t e s e e s p e c i f ica ~¡ oir-c--o M ó d u l o Digital. EL MODULO DE INTERACCION CON EL USUARIO DEL EMULADOR Como es ya se ha mencionado, el m ó d u l o d e interacción con la i n t e r f a z e n t r e el u s u a r i o y el m ó d u l o d i g i t a l , s i d o d i s e ñ a d o en fo r m a de menú. Dicho menú presenta ai gltifriG por io «Wtr ¡-,c-, los comandos c u y a s o l i c i t u d p u e d e h a c e r el u s u a r i a . Dado que algunos comandos tienen f u n ciones semejantes e s t o s son agru p a d o s para formar s u b m enúes donde requeridos uno subprogramas cuya a uno. Los c o m a n d o s están s i n t á x i s y s e m á n t i c a son diseñados los'siguientes; 1.- C a r g a r a r c h i v o 2.- Salvaguardar archivo 3.- Leer y/o modificar 4.- Leer y/ o m o d i f i c a r p u e r t o s de 5.- Leer y/o m o d i f i c a r local icades de m e m o r i a registros 6.- Ejecutar paso a paso manualmente 7.- Ejecutar paso a paso automáticamente 3.- Ejecutar por bloque 9 . - E j e c u t a r en 10.- F a c i l i t a r 11.- t i e m p o rea l reloj Inicialización emulador como v e r i f i c a d a s paraevitar in c o n g r ú e n c i a s . L os coman d o s de f i n i d o s son e n t r e =x, lo s p a r á m e t r o s s on £/S - 34 -- T a l e s c o m a n d o s s o n a g r u p a d o s en 5 m e n ú e s c o m o s i g u e : 1.2.3.4.5.Los comandos de cargar y salvaguardar •funci o n e s hacia prototipo, dos o desde la respectivamente. parámetros: inicial una C a r g a r y / o s a l v a g u a r d a r un a r c h i v a Leer y/a m o d i f i c a r registros, memoria, Ejecutar Condiciones de control Inicial izacion el de carga, archivo reaii:an rales modulo digital o de l de i El c o m a n a o c a r g a r n o m b r e del la d i r e cción de memoria cual a r c n i v o r-squiere o e a rchivo objete, es opcional carga predeterminada y y a que, si c u a n o o el especifica. Para s a l v a g u a r d a r a r c h i v o se re q u i e r e n inicial -final, y guardar su comandos para sintá;;ís. dirección introduce us u a r i o no la las d i r e c c i o n e s l e ida. leer l oca l i d a d e s de memoria, en la MIU a d e m á s del n o m b r e del a r c h i v o en c o n o s se va a la i n f o r m a c i ó n Los puertos registros, puertos, del y el mu e s t r a su contenido; d e m o d i f i c a r l o o no, p u e r t o o localidad, Los La o bien, registres del modificarlos durante 5 registros usuario de r e g i s t r o s de l el el oespues ae caáa c o n t e n i d o de usuario tiene en f o r m a a u t o m á t i c a , p u e d a m odif icarios. al operan con c u atro m odos distintos: y cada e j e c u t a r un c o n j u n t o de solo la la #,Oc:os ios jacté?* de L a e j e c u c i o n a u t o m á i i c a c o n s x s t e s n c c s =• i s g a r , segundas y después usuario tiene próximo registro, a paso significa cuá se d e s p l i e g a procesador, o no. s e g u i d a el r e g r e s a r al m e n a p r i n c i p a l . c o m a n d a s de e j e c u c i ó n ejecutada en a n t e s d e p a s a r al ejecución simple o paso instrucción y el u s u a r i o y no e s p e c i f i c a el n o m b r e emulador ellos, pero r e g i s t r o o la d i r e c c i ó n d e l p u e r t o o la l o c a l i d a d d e m e m o r i a , opción En y/o modificar son e q u i v a l e n t e s en su s e m á n t i c a término de procesador, instrucción La ejecución intrucciones, éste se dando ex c o n t e n i no o e s-n ei por o logue con ■ =t •=>t en e s p e c i f i c a a O p o r el u s u a r i o , d e s p l e g a r a el al Loa ejecutada, usuario c o n t e n i u o de la oociOn oe ios - 35 - modificarlos. usuario comando, al ejecución de emulador ejecución, inicial anteriores, Ai la p r i m e r r e g i s t r o s c o n el si as i introduce valores Permite tiempo cede inicio En En Esta ei c o n t r o l de caca cel moco ce se d e s p l i e g a objeto de que implícitos. al real. instrucción), lo d e s e a . e x c e p t o el d e p o r b l o q u e , ei u s u a r i o caso todos contrario, Ies moao-i ae solo se r e q u i e r e la d i r e c c i ó n En e s t e ú l t i m o se p i d e a o e t ó s la d i r e c c i ó n bloque. comando establecen y de l lo s iniciales, como parametro. del El que los en t i e m p o re a l e j e c u t a r s e en del u s uario. (antes de ejec u t a r contenido final con programa pueda dar valores el programa a en c o n t r a s t e sistema el Ei c o m a n d o d e e j e c u c i ó n m a n d a r un * i n i c i a r s e e n c a r g a d e a c t i v a r ’las ser-ales la s condiciones iniciales del módulo (RE3ET) digital prototipo. El reloj c o m a n d o f a c i litar reloj del m ó d u l o tiene reloj digital en emulador permite hacer el p r o t o t i p o . C u a n d o ei uso dei prototipo p r o p i o el u s u a r i o n o r e q u i e r e d e e s t e c o m a n d o . PRINCIPIO BASICO DE UN SISTEMA DE DESARROLLO Un sistema de de s a r r o l l o es fundamentalmente, ejecutar al p r o g r a m a s d e s d e ei restringir El permite de (paso a Un y/o Paso). de hacer uso La c a p a cidad la e j e c u c i ó n d e l que, digitales prototipo* de rec u r s o s de rastreo programa, cei pomo of reo:- antes da sisee**, puertos, s a l v a g u a r d a r a r c h i v o s en disco. cargar archivos y m •...-rfi.'ir.p 10 0 un*» ni 3c on a la i n r . M . j r e ; i r , s i s t e m a d e d e s a r r o l l o o f r e c e c a p a c i d a d e s a u n i i . . ¡ e s _omc; modificar memoria y sin mismo. h a c e r e j e c u t a r p r o g r a m a s en m o d o c o n t i n u o o en detallada de d i s e ñ o sistemas p r o p i o a m b i e n t e ctei la a r q u i t e c t u r a de l diseñador puede una herramienta diseñador itfr en • « e m a n a , . - 36 - Conceptualmente, tr e s e t a p a s del 1 . — Antes operado sistema la s c a p a c i d a d e s c o n e c t a d o al En p r o t o t i p o del para facilitar antes de que este disp o n i b l e el p r e s e n t e trabajo, el m a p a ü e m e m o r i a s m o s t r a d o en etapa i i i... ■en de l d e s a r r o l l o , el h j-co aispon el s w :r «vf, ii i , d e aea¿.-r :• la c i r c u i t e r i a oel es. emulador- e s t a •:c e s p a c i o d e m e m o r i a d i s p o n i b l e p a r a el p r o g r a m a el es d i s e ñ a d : •. y a d e e j e c u c i ó n i n t e r r u m p i d a y la puedenutilizarse programa, de d e s a r r o l l o de alambrar el prototipo. El e m ú i ® a o r sin e s t a r memoria un diseño: prtsvcít i p c . la -figura 3. 5>, Durante, t a m a ñ o de l p r o g r a m a n -« a s e ,.a p n e r p r o t o t i p o no oeoe e x c e d e r este espacio. 2.- Durante programación el alambrado del prototipo. L a y la c i r c u i t e r i a puede irse integración ce logrando conforme e l e m e n t o s - f u n c i o n a l e s d e p r o t o t i p o s e a n c o n e c t a d o s al desarrollo. del s i s t e m a de d e s a r r o l l o o en puede usarse, durante memorias. Además -facilidad de utilizar, circuito sistema El p r o g r a m a p r o t o t i p o p u e d e s e r p r o b a d o en de de b o r r a d o las estas en la m e m o r i a de l pruebas, una (reset), cuando el prototipo. se puede de la m e m o r i a combinación capacidades, las p r u e b a s , ia los T a m o i *n de a n c a s agregar la r e l o j d e l emulador- y el estos e l e m e n t o s no han sido a l a m b r a d o s e n el p r o t o t i p o . En un dicha la la f i g u r a 3 . 2 s e m u e s t r a u n c i c l o t í p i c o d e d e s a r r o l l o d e prototipo, mediante la a y u d a d e un s i s t e m a d e ilustra la f o r m a i n t e r a c t i v a en a u e -figura s e circuiteria fundamental de y la programa Est a es una se prototipo. En éste es prob a d o con esta parte se prototipo como una unidad completa. 1a v e r s i ó n utiliza d e s a r r o l l o e n el m o d o d e e m u l a c i ó n en t i e m p o real stica a¡iui5f‘ . de alambrar el prototipo. C u a n d o el esta completo, -_»r i - tesn cs-'-ac: c r i lo s s i s t e m a s d e d e s a r r o l l o c a p a c e s 3.- Después usuario Program ación , desar-'Oi Ifr* En dist-ño -mal de i cel ai aiswad de para probar al FIG . 3.2 C I C L O DE D E S A R R O L L O DE P R O T O T I P O S M E D I A N T E UN E M U L A D O R La facilidad presentado emulador en e s t e y el d e l q u e o-frece trabajo, prototipo, el para se sistema de la f i g u r a 3.3. al inicializarlo, Las condiciones relo.j del o b t i e n e a P a r t i r ae un c i r c u i t o b a s a d o en c o m p u e r t a s e x c i t a d o r a s d e t r e s e s t a c a s , en c e s a r r o í io, s e l e c c i o n a r e n t r e el como se m u é s - r a p o s i b l e s son; Implícita.- E s t a c o n d i c i ó n a p a r e c e al e n c e n d e r y habilita solamente el la c o m p u e r t a Cl. sistema o - 38 - Reloj comando, emulador.- emulador alimenta circuitos del u s u a r i o existe, el reloj Esta las c o m p u e r t a s dei Reloj al C1 C3. De haoilita, microprocesador dei ia c o m p u e r t a C2. e m u l a d o r es al i m e n t a d o con sele c c i ó n de la s e ñ a l ia s e ñ a l Asi , si r e l o j ei reloj - Si ti - en ia dei un -ei ios i-eioj d e l ccnTiictoí ( a b r i r en ei p u n t o A r e f e n a o usuario.—C u a n d o se u t i l i z a si e m ú ia c o r debe ser desconectado para evitar emulador meoisncfl e s t a -forma. p r o t o t i p o q u e r e q u i e r e n e s t a serial. habilita únicamente La condición y con '¿gura;. l o .. microproeesaoo*' ?e dei d e r e l o j d e i usu.ar i: . de bo r r a d o (reset). se m e d i a n t e u n c i r c u i t o s i m i l a r al s e l e c t o r de r e l o j . EL MODULO DIGITAL DEL EMULADOR En digital, sistemas esta sección se define cuyo diseño D i g i t a l e s b a s a d o s en ■figura 3 . 4 m u e s t r a , digital. está la arquitectura g e n e r a i orientado hacia ia microprocesadores ¿v6c en m o d o s i m p l i f i c a d o , ifi.-.c«. i o e r u „ ic ien de o.= , i_a ia es truc tur- ? o * i m o d u i o E n el a p é n d i c e B s e m u e s t r a u n d i a g r a m a mas a e u l iaao. E U S FIG 3.4 D E C G N T Í H E S T R U C T U R A S I M P L I F I C A D A D E L M O D U L O D I G I T A L D E L Ertüt-ADG-c - Como p u e d e o b s e r v a r s e en tiene des interruptores: y p e r m i t e al u s u a r i o emular 40 <8086 u la -figura 3.4. o la s e l e c c i ó n 8088), previa del tipo El s i g n i f i c a d o d e de colocación El d:^itái « i c r c l t oc e sao del siguiente s e l e c c i o n a r el m o d o d e o p e r a c i ó n máximo). ei m o d u l o El p r i m e r o d e e l l o s e s a e d o s P-aSic r e s p e c t i v o e n el m ó d u l o d i g i t a l . para - del i n t e r r u p t o r íiif've microprocesador los b l o q u e s d e a m ic r cp r o c e s soorúninimo la -figura 3 . 4 es el siguiente: CCS - Circuito de comunicación serie ( b a s a a o en un C. I . Sc.5úi . E DA - E x c i t a d o r de datos. C P U - M i c r o p r o c e s d o r 8 0 8 6 u 8 0 88. M E M - M e m o r i a E P R 0 M p a r a el m o n i t o r del m ó d u l o d i g i t a l , memoria RAM para lo s d a t o s d e l m ó d u l o d í g i t a i y p a r í l o s p r o g r a m a s de l LIAC-- L ó g i c a d e prototipo). interpretación y de activa c i ó n de comandos. CB - C o n t r o l a d o r d e bus. SM - Se l e c t o r de modo de operación L S R R — L ó g i c a de s e l e c c i ó n de reloj (modo mínimo o máximo/* y res e t . MAPA DE MEMORIAS Y PUERTOS Los microprocesadores direccionar decir, hasta 16 un m i l l ó n de b y t e s solo maneja octeto, i n c l u y e n d o en és t e un oe limitación puede un r e d u c i d o usuario. en m e m o r i a d i s p o n e r del Mega-octeto. Sin tienen 64 Koctetos la. c a p a c i d a d de caos . Ei. d i s e ñ o espacio de área, esto MegaPaca r e p r e s e n •s o**otoíipo, es ,noiuio m e m o r i a cel no d i s e ñ a d o r del uno, del de m e m o r i a d i s p o n i b l e embargo. p a r a el r e s t o de l Ciertas 8088 (1 M e g a - o c teto) digital programa 8086 y s e g m e n t o s de ya ei una que e s p a c i o d e m e m o r i a hasta, a a can-’ a-r el l o calizaciones de m e m oria son r e s e r .¿ c a s « a r a o p e r a c i o n e s e s p e c i f i c a s de estos m i c r o p r o c e s a d o r e s . Los ülTüawi lo octetos de un salto a t o d o el e s p a c i o d e m e m o r i a s o n u s a d o s p a r a la r u t i n a d e i n i c i a l i s a c i o n del sistema. Los incluir 1024 octe t o s - 41 - más b a j o s de l programas espacio que interrumpe. Estas interrupción. digital de memoria, deben direcciones Por mantienen ejecutarse cuando lo La lo s el 16 q u e c o n f o r m a n el memoria circuitos de m a p a ae primeros 16 vectores K o c t e t o s del de p r o p i a s de l (6164) de interrupción, último segmento (RAM), Esta memoria tablas, y de vecrorts memoria dei y del uno. por dos oc„.pa ios ss usac a p $ra constantes, 1 c-s •ari =>b ie = . . . , la e m u l a c i ó n P a r t i c u l a r . m e m o r i a se r e s e r v a un e s p a c i o de ae »«caula parte formaaa 8 Koctetos cada map a . módulo digital como ce e te^-no total. lectura/escritura integrados dispositivo son c o n o c i d a s anterior, e s tal q u e u t i l i z a p a r t e del primero de xa s d i r e c c i o n e s un la d i r e c c i ó n O O ó O G h a. En la esta 03FrrH p a r a p r o g r a m a s del usuario. La memoria integrados Koctecos módulo de ( 2 7 32), del mapa. digital lectura de 4 (EPRQM), Koctetos En e s t a m e m o r i a y la formada por c a d a uno, ocupa dos circ u i t o s ios últimos 3 r e s i d e si p r o g r a m a m o n i t o r de l dirección de salto a ia rutina de ini c i a i l z a c ió n . Además del espacio microprocesadores dispositivos Existen puertos externos de memoria y 8088 por de 1 pueden medio de ¡“ lega-octeto, hacer puertos <0 a 255). m e d i a n t e un e n t r a d a / s a l ida; ocupa solamente Otras r e g i s t r o de datos, es decir, 16 p u e r t o s instrucciones 65536 puertos. a lo s P r i m e r o s 2 5 6 permiten accesar hasta 6A k puertos El módulo digital (Fu a F F ) . P o r c o n s i g u i e n t e , d i s p o n e d e 2 4 0 p u e r t o s di r e c t a m e n t e , ios referencia de erttraaa/salida. instrucciones para accesar directamente indirectamente, de 8086 o de 65 5 2 0 p uer tos ei u s u a r i o en ¿srma ind i r e c t a . El p r o t o t i p o d e b e c a r e c e r d e m e m o r i a s en el e s p a c i o u t i l i z a d o p o r el m ó d u l o d i g i t a l , al m e n o s , terminar iterativo, memorias. el proceso E s t o s i g n i f i c a que, d u r a n t e ei p e r i o d o d e p r u e c a s . el usuario puede d u r a n t e ei p r o c e s o Ai colocar sus iterativo, el - 42 - OOOOOH 0 0 0 OH 005FFH OOEFH 00600H OOFOH 00F7H 00F8H 00F9H 03FFFH 0 0F AH OOFBH 0 4 OOOH OOFCH OOFDH OOFEH OOFFH 0100H FDFFFH FEOOOH FFFFH FFFFFy FIG . 3.5 MAPA DE MEMO R I A S F'IB. 3 4 * MAPA DE PU E R T O S - 43 - p r o t o t i p o si p u e d e memorias. Para iterativo, espacio la d e c o d i f i c a c i o n r e s p e c t i v a , d e trabajo, de la m e m o r i a E P R Ü M del dicho proceso, pero no d u r a n t e el el p r o g r a m a del p r o t o t i p o d e b e r á e s t a r distinto finalizar ocupar tener l o g r a r e s t a -forma las proceso l o c a l i z a d o e n un módu l o digital, y al d e b e r á s e r r e l o c a l i z a d o el p r o g r a m a p a r a tal e s p a c i o . En la s f i g u r a s disposición de 3.5 y 3.6 se muestra las m e m o r i a s y p u e r t o s esquemáticamente la respectivamente. COMANDOS DE RELOJ E INICIO (RESET) El di s e ñ o de e stos coman d o s implica cierta lógica que es acti v a d a m e d i a n t e el c i r c u i t o d e c o n t r o l los puertos, comando de reloj. prototipo, inicio. el La de comandos, F A H - F B H p a r a el c o m a n d o d e El inicio naciendo referencia a inicio, y F C h - F Q H p a r a el o reset puede ser r e s e t m a e s t r o del lógica de control de o r d e n a d o por; m o d u l o digital, o el la i n i c i a i i z a c i on el c o m a n d o de proporciona la serial c o r r e c t a s e g ú n s e a el cas o . El e módulo digital ignora excepto o p e r a c o n s u p r o p i o reloj, la p o s i b l e e x i s t e n c i a d e s e ñ a l cuando se us a el c o m a n d o d e s i r v a p a r a e m u l a r c o n el asi como la de reloj reset, reloj. de l p r o t o t i p o . son de manera de r e l o j El m i c r o p r o c e s a d o r 8 0 8 8 u 8 0 8 6 p o r un c i r c u i t o comarco L a serial suministradas implícita, en el p r o t o t i p o , c e reloj ce reloj, directamente (8284) , al encardas ae s i n c r o n i z a r a m bas señales. La i n t e r f a z c o n el circuí tería del direcciones, datos, actúa prototipo prototipo y control, tiene la función interfiera con ae e v itar las del m ó d u l o d i g i t a l . ¿a li~'¿?as Dicms os ínterra* c o m o un a c o m p u e r t a bid ir e c c l o n a 1 que s o l o se a d r e c u a n d o se requiere viceversa. una transferencia de También actúa datos prototi p o - m o d u l o ai^i t a l , como protección del módulo digital, o - 44 - cuando el p r o t o t i p o compuertas t i e n e -fallas. En la e x c i t a d o r a s de tres estados; lineas de dire c c i ó n y datos lineas de control del ínter-faz se utilizan bidirectional*« para ias (74LS245), y unidireccionales para las microprocesador Í74LS244). EL PROGRAMA MONITOR DEL MODULO DIGITAL DEL EMULADOR El p r o g r a m a m o n i t o r e s t a e s c r i t o en se utilizan ocasionalmente directamente en programación es en la Fig . Ei lenguaje de a lto nivel algunas partes lenguaje ensambladormodular, con si, código ei q u e s e los c u a l e s p u e d e n realizar considerado, su ser Cada, Por consi guiente, modulo digital, comando h a s t a q u e el u s u a r i o la f o r m a =u..e, e s t á puede los c o m a n d o s un comando como uno o mas ser en inici al i z a c i ó n o r e c i b e el menú RESET, inicio. i n t e r a c c i ó n c o n el u s u a r i o m e n d i a n t e un p r o t o c o l o s e n cilla, forma (.regreso a el p r o c e s a d o r e j e c u t a el p r o g r a m a n u e v a m e n t e d e s d e el (ENQ), que módulo digital, reconocimiento (A C K ), q u e e n v i a el m ó d u l o d i g i t a l y al MIU. La ( M l ü ) , se b a s a d o en u n a sePíal requerimiento es iJamados a ejecutado solicite dejarlo U n i c a m e n t e c o n el c o m a n d o d e c o m u n i c a c i ó n c o n el m ó d u l o d e realiza en maestra independientes entre l l a m a d o s p o r c u a l q u i e r a ce función. d e n t r o del procedimientos. principal). y 3.7. p r o g r a m a e s d i s e ñ a d o m o d u l a r m e n te, d e tal iterativa F escritas El e s t i l o ut i 1 1 -estío un m o d e l o c omo c o n s t i t u i d o p o r un c o n j u n t o d e p r o c e d i m i e n t o s para de otra de de - 45 - (A) (A) FI G . 3.7 (A) (A) M O DELO GE N E R A L DE PROGRAMACION DEL MODULO DIGITAL DEL EMULADOR (B) - 46 - C A P I T U L O IV CONSTRUCCION, PRUEBAS Y RESULTADOS - 47 - CONSTRUCCION DEL GRABADAOR El gr a b a d o r de me m o r i a s alambre enrollado" proposito general localizan: el m i c r o p r o c e s a d o r 2-8 0 , puerto las directo, las la el de la c o m p u t a d o r a , memorias grabador cable y el las m e m o r i a s . p l a n o de Ambas se el el c i r c u i t o d e a s c o d i f í e s e i O r t , los sele c t o r e s de un c o n e c t a r h a c i a En la o t r a t a r j e t a tarjetas están conectadas Se serán tiene instaladas En la la p a r t e s u p e r i o r de l 4. 1 P>Ar<. copiaaa el puerto se L o c a i i zar/í patrones portátil. FIG . d e ell<?s c i r c u i t o g e n e r a d o r de para fo t o g r a f í a de En u n a a las m e m o r i a s 40 hilos. más de múltiple que alimenta g a b i n e t e e n el c u a l hacerlo de car j e t a s y dos receptáculos de 28 terminales p a r a -fuente y d e s t i n o . mismo, ia las m e m o r i a s E P n Ü M y memorias, t e m p o r i z a d o r de grabado, técnica aos sobre 11 c e n t í m e t r o s . datos y -fuente d e v o l t a j e para 20 x de c o m u n i c a c i ó n se r i e 8251, Inter - f a c e s d e serie de f«é c o n s t r u i d o bajo (wire-wrapping) construido, os mediante un actualmente, un la s d o s t a r j e t a s del figura 4.1 y al voltaje se arsosaor muestra grabador. G R A B A D O R U N I V E R S A L DE M E M O R I A S EPRÜM. una - 48 - PRUEBAS EN EL GRABADOR Durante realizó con de la etapa el u s u a r i a d e l una terminal personal. grabador, no Asimismo, prueba; estados un grabador. simulando m a r c a C r ó m e m e o, o s c i l o s c o p i o de a partir de otro digital). se utilizó Para grabar la c i r c u i t e r í a tr a z o ; con la las ia ^©.ncy^oará cr>..eDas por un a n a l i c a a c r 16 p a l a b r a s o e y dos multímefcros tuno a n a ] c a i c o ios p r o g r a m a s y el p r o g r a m a m o n i t o r del se grabador, lo q u e r e s u l t ó laborioso este preceaímienro. le e f e c t u a r o n y a j u s t e d e v a l o r e s d e s a l i d a en múltiple ai g r a b a d o r s o n la fuente (voltajes de a l i m e n t a c i ó n y de • grabado). — P r u e b a de " s e o “. C o m p r o b a r recepción a t r a v é s de l — Generación correcta de la l e c t u r a y — Medición — Pruebas de la c o r r e c t a t r a n s m i s i ó n y p u e r t o serie. lo s p a t r o n e s d e v o l t a j e e s c r i t u r a de ca d a un a de y a j u s t e del localidad, en tiempo para las m e m o r i a s . de g r a dado para caaa el ci-reuito t e m p o r i z a d o » ' a e g r a o a d e . copiado directo con caca u r o de ¡.os t i p o s d e memoria, q u e m a n e j a el g r a b a d o r . — Finalmente, escritura, se probaron haciendo uso ios del c o n el u s u a r i o d e l g r a b a d o r . comandos-de m ó d u l o de iectu-a y interacción Esta prueba se c o n e c t a n d o el g r a b a d o r d e m e m o r i a s a la personal. a un i n t r o d u j o m a n u a l m e n t e el c ü ú i g o p r i n c i p a l e s prue b a s que se de voltaje ae lo o i t s las s i g u i e n t e s : — Medición -á I o s of-oQ'-s.i-as la s m e m o r i a s E P R Q h c o n m e d i a n t e el c u a l de ca d a prueba, .se m tereccion ú n i c a m e n t e un g r a b a d o r p a r a m e m o r i a s 2 7 1 6 a c o d a d o " k i t M K E I S O", Las a p a r a ensarno i a r doble la l l a v e d e d i s p a r o ; pr u e b a de f iraanírá? a© la s p r u e b a s s e h i c i e r o n inteligente, logicos con c a p a cidad para retener y de del p a r a el m o d u l o el e q u i p o u t i l i z a d o d u r a n t e una microcomputaüora, de de a r mado la p r o g r a m a c i ó n n e c e s a r i a realizó computadora - 49 - RESULTADOS DEL GRABADOR La capacidad directamente Estadísticamente, memorias EPROM mi 1 i s e g u n d o s . asegurar el los el almacenamiento el tiempo se sabe aue el tiempo correcto E s t e tiempo, las memorias total de una obtenidos las necesario es los c a s o s , pruesas estas. la s m e n o r e s a lo s localidad, G r a b a d o r Universal. de m+luve de localidades de mínimo q u e e s el p e o r d e t e m p o r i z a d o r de l resultados de programación g r a d a d a s en t i e m p o s embargo, grabado de la m a y o r í a c e l a s pueden ser Sin mi 1 i s e g u n d o s . utiliza de sobre 8 para ae 45 e s el a u e Por consiguiente, realizadas son lo s siguientes: MEMORIA 271 ó ------- 2 2732 ------- C A P A C I D A D DE TIEMPO TOTAL ALMACENAMIENTO DE PROGRAMACION 4 2 7 3 2 A ------- 4 mi n . 4 0 seg. X8 -------- 3 min. 2 0 seg. 2 0 seg. Koctetos X8 -------- 3 min. Koctetos XS -------- 6 min. 4 0 seg. 2 7 1 2 8 ------- 16 Koctetos X8 -------- 13 min. 2 0 seg. 2 7 2 5 6 ------- 32 Koctetos X8 -------- 2 6 min. 4 0 seg. Estos memorias ------- tiempos pueden programación r e d u c i r s e si inteligente. de m a yor densidad programación Dicha se u t i l i z a técnica (2764, es 2 7 1 2 8 , 2 7 2 5 6 ) . El Después de c a d a pulso se verifica pulsos memoria C u a n d o el d a t o n o se gra b a después de (típic a m e n t e se u t i l i z a n esta dañada o que inteligente se pueden a un a q u i n t a parte, 15 pulsos), e x i s t e u n a -falla. las reducir an a la -?orma ia p r o g r a m a c i ó n . loc a i ida a d e la c 3 e r r o numer o d e se d e t e r m i n a «tue Con de en a lgoritmo da (1 o 4 »i 1 i s e g u n d o s ) , el d a t o h a s i d o g r a b a d o s e pasa, a 1.a s i g u i e n t e memoria. la t é c n i c a permitida i n t e l i g e n t e c o n s i s t e p r i n c i p a l m e n t e en aplicar, pulsos de corta duración iterativa. Si X8 -------- 1 8 2764 memoria, Koctetos Koctetos ia ia p r o g r a m a d ion lo s t i e m p o s m o s t r a d o s a n t e r i o r m e n t e aproximadamente. - 50 - Confiablidad de Programación La c o n f i a b i l i d a d de p r o g r a m a c i ó n del G r a b a d o r d e f i n i d a como; grabar en el g r a d o d e c e r t e z a d e q u e una memoria EPROM quedan Universal los d a t o s q u e completa se es nacen y correctamente grabados. Considerando actualmente, en ese que el m a y o r a lo s periodo componentes han tiempo 1S m e s e s , sido ae y que asi qraoaoor problemas exclusivamente o por falsos contactos, p uede afirmar que uso los fallas Por es, ocurridos en los p e r o n u n c a cor mal diseño, se la c o n f i a b i 1 i d a d e s d e 100%. Seguridad La seguridad confianza é s te, que para de l Grabador se tiene ser de qu e grabadas, no Universal la s se define como; m e m o r i a s que se sufren daPíos la i n s e r t a n en ocacionados por el grabadorDurante dañaba él. las pr i m e r a s pruebas, con cierta Esto se programación frecuencia debió y lo cual para El interruptores procedimiento, V pp. Para corrección, encendido y ahora, apagar, lo s observó encendido la s de de señales memorias fu é voltajes que el g r a b a d o r io s de l g r a b a d o r provocaba problema de (vcc), el se memo r i a s que se prog r a m a b a n alimentación peligrosas fabricante). grabador que lo s d e simultáneamente, resutaban a las fuente de se de el manual separando alimentación programación ¡V pp/, c o n s i s t e en e n c e n d e r p r i m e r o Vcc primero la s e g u r i d a d es Vpp y despues qu e se ha a l c a n z a d o es ae en de realizada transitorias (según corregido, la voltajes Vcc. lOGV.. y que del los ael El aespues Con esta - 51 - CONSTRUCCION DEL EMULADOR El un d i s e ñ o del equipo microprocesadores, (un a para cada construcción justamente primer e m u l a d o r e s t a c o n t e m p l a d o p a r a -formar p a r t e d e modular de tipo de ha sido y la localiza: m e m o r i a s E P R O M y RAM, decodi-ficación para varios microprocesador). Por s e p a r a d a en el e m u l a d o r , t a rjeta se desarrollo, tipos dos consiguiente, tarjetas: la s e g u n d a e s la t a r j e t a el común. se de 40 hi l o s se inserta segunda localiza de comandos, la lógica el c o n t r o l a d o r d e l tarjeta mencionado. En comunicación con la b a s e del constituye ella se tipo "dual microprocesador la parte encuentra de lo s la m i s m a ( 8 2 50). (wire-wrapping). "alambre enrollado" i n line plug", que La básicamente la c o m p u t a d o r a p e r s o n a l , comunicación asincrona 4.2 la ias del prototipo. c o m ú n de l de FIG. bus, la es ia i n t e r f a z c o n ei p r o t o t i p o y u n c a b l e p l a n o t e r m i n a d o con un c o n e c t o r en En m i c r o p r o c e s a d o r 8 0 8 6 u. 6088, la i n t e r f a z c o n el p r o t o t i p o , y control primera s e l e c t o r e s de c o n f i g u r a c i ó n y tipo de m i c r o p r o c e s a d o r . En tarjeta de b a s a d o en u n a t a r j e t a c o mún y v a r i a s o p c i o n a l e s equipo la modular parte de b a s a d a en un e l e m e n t o de El m o n t a j e fu é h e c h o c o n la t é c n i c a E M U L A D O R P A R A L O S M I C R O P R O C E S A D O R E S 8 0 8 6 Y 8088. - 52 - PRUEBAS EN EL EMULADOR Las 8088 p r u e b a s ai circuiteria, bits a de estados pa r t i r de p r o t o t i p o de u s u a r i o basado en e s t a Universal de l los capaz de retener IBM-PCí l o o p a l a b r a s ce trabajo, la p r o g r a m a c i ó n . Memorias EPROM (parte programas prueba de computador® ya se p udo el Se nace notar Grabador- trabajo) programa L a s p r i n c i p a l e s p r u e b a s e f e c t u a d a s son: "e c o " . recepción — prueba de terminal ComP robar a t r a v é s del la la c o r r e c t a puerto serie interfaz con o t r a ai e m u l a d o r , Los mensajes el p r o t o t i p o . se enviaron fueron leidos transmisión y ( 8 2 50). c o n e c t a d a al p u e r t o s e r i e del Con una prototipo y m e n s a j e s e n t r e ellas. de una m e m o r i a EPROM, i n s t a l a d a e n el p r o t o t i p o . — Prueba del cargando un prototipo, — Prueba carga, de carga. La de En comando esta y de e s t a de puertos. — Pruebade parte del Esta memoria se h i z o R A M del emulador. lectura y modificación as p r u e b a se u t i lizó al c o m a n a o de f o r m a s e c o m p r o b ó el t u n e icnamier- to correcto de ambos comandos — Prueba prueba disco a y a m e m o r i a R A M de l del memoria. comando archivo co m a n d o de ( c a r g a y lectura.;. lectura y m o d i f i c a c i ó n ae fu é u n a p r u e b a s i m i l a r a la a n t e r i o r . lectura y modificación de registros. consistió el c o n t e n i d o d e en modificar F ñra moni-cor­ emulador. — Pru e b a de y oersonal disponer- as i del p r e s e n t e y serie d e d o o l e trazo, se ut i l i z o una p a r a 'probar la m tei ig e n r,es: un s i s t e m a m í n i m o co m o 8 2 5 0 ) ; un o s c i l o s c o p i o fase del de para probar (el s i s t e m a m í n i m o c u e n t a c o n un s u s r t o Posteriormente, (compatible con grabar lógicos, inicialmente, dos t e r m i n a l e s na la l l a v e d e d i s p a r o ; en en c i r c u i t o muítimetros. qu e , Se usó el s i g u i e n t e e q u i p o : un a n a l i z a d o r 16 e m u l a d o r s e r e a l i z a r o n c o n si micrc-p^oces-soer en c o n f i g u r a c i ó n mínima. Esta los - 53 - r e g i s t r o s dei programa, — Pr u e b a de se m i c r o p r o c e s a d o r , antes de e j e c u t a r y durante los c o m a n d o s probó la simple se ejecución. de (paso a p a s o no automático). los y por blogue. c o m a n d o s de Por último, ejecución en p r u e b a de estos programas residentes tiempo real cuatro e m u l a d o r c o m o de l — Prueba del emulador. íniciai¡wnbe, programas en m&do S e c o m e n z ó c o n el c o m a n d a d e e j e c u c i ó n probaron del de ejecución interrumpido. un la e j e c u c i ó n del m i s m a , comando P o s t e r í o n n e r '• ejecución se a u t o m s i; i.•:3 p r o b o el c o m s n o ; a e (modo i n i n t e r r u m P icio.1 . comandos se rea l liso co n en m e m o r i a RAM y E P R Q N , tanca prototipo. para Esta prueba facilitar el s e r e a l i z ó cc n re lo.» c a l la a y u d a d e un osciloscopio para verificar la c o n m u t a c i ó n de reloj p r o t o t i p o a reloj emulador- Para asegurar la P r u e b a se d e s c o n e c t ó — Finalmente, (r e s e t ) . el se La contenida reloj del prototipo. p r o b ó el comando verificación de los de i n i c i a l i z a c i o n se realizó registros del leyendo el uticroprocesaoar, a n t e s y d e s p u é s de e j e c u t a r este comando. RESULTADOS DEL EMULADOR Se c o n s i d e r a qu e una los r e s u l t a d o s o b t e n i d o s h a s t a configuración mínima con el s a t i s f a c t o r i o s e n c u a n t o a la v e l o c i d a d d e t e r m i n a d a b á s i c a m e n t e p o r el en la p a n t a l l a . programa prototipo contenido tiempo de es lo s registros prototipo, contra =on la c u a l e s t a tiempo de despliegue de internos mayor Por del que información dei daños microprocesador. Este el fallas e s t a a s e g u r a d a p o r m e d i o de o a ios puertos, de a l t a con f i a b i I i d a d . por requerido la q u e r e s p e c t a leer y mo d i f i c a r memoria, a f i r m a r que son emulador de e m u l a c i ó n , , e x i s t e un t i e m p o n e c e s a r i o P a r a d e s p l e g a r el del p r o t o t i p o . cargar archivo; bajo 8088, entre cada instrucción ejecutada, significantemente instrucción puede Y a que , ahora, microprocesador malas Por csoa comandos i y registros, La p r o tección conexiones la i n t e r f a z d e i en se del el prototipo. - 54 - C A P I T U L O CONCLUSIONES V CONCLUSIONES Durante las v a r i a s años, computadoras mayor tendencia programación, por a con c a n el a d v e n i m i e n t o existido desarrollar los a l t o s c o s t o s de en n u e s t r o aplicaciones Po r ello, inversión que y por es en que además, nos de medio una el area as Esto ;ca implica un cu e n irooritcnc las c a r e n c i a s d e t e c n o l o g í a &*• c-e-a e n i m p o r t a n t e d e s a r r o l l a r a p i i c a c i c n a s en e*L área de sistemas digitales, sino ha r e s p e c t o al á r e a d e c i r c u i t e r i a . de sistemas digitales, este campo. principalmente personales, q u e n o s o l o sea n útiles por sirvan como herramientas m i ¿mas, para gasarroilsi" nuevas y mas complejas aplicaciones. El presente tecnología obtenido traoajo propia, en pretende coadyuvar el á r e a hasta ahora no de sistemas al solo se circunscribe construido una valiosa her r a m i e n t a de apoyo para de sistemas digitales; también se ha la cual es t r a s l a d a b l e al diseño dísafrailo digitales» de El logro al h e c h o d e haber los diseñadores logrado a d q u i r i r experiencia, de sistemas de desarrollo orientados a otros microprocesadores. Dadas otros las c o n d i c i o n e s en del lugar ■formación personas Cabe profesional mencionar microprocesadores estudiaron buscar p a r t e del forma la s d e s a r r a l lado, se ha autor, tuvieran Se asi como r e l a c i ó n c o n ei actividades Z-S O , 8088 estudiaron los y realizadas 808 6 , con lenguajes nuevos m é t o d o s de trabajo. emulación ' mas las durante / el tediaren sus C de p royecro. 3e t é c n i c a s d e p r o g r a m a c i ó n d e m e m o r i a s EPF.üM, m o s t r a d o en est e ligado con oo t e n i d o u n a p r e s e n t e t r a b a j o -fueron m u y d i v e r s a s * ensambladores. por que la s q u e e s t e t r a b a j o e s t á -fué por que de algu n a d e s a r r o l l o del los en q u e r e so ecti ves rLi'*'-8ó. y aun Se sueca fl e x i b l e s aue el — 56 ■" Las principales competitividad costo, Su de este producto características y la - f i losofía d e m e d u l a r i d a d b a j o son : sita ✓ su oajo técnicas la c u a l -fue c o n c s c ¡ü o . d i s e ñ o e s t a c o n t e m p l a d o p a r a -formar p a r t e d e un e q u i e o m o d u l a r de desarrollo, una ventajas debido a sus para v a rios tipos de m i c r o p r o c e s a d o r e s , tarjeta común y tarjetas opcionales Cuna Dasaao t a r j e t a =>ai-a en cada tipo de m i c r o p r o c e s a d o r ) . Su principal la posibilidad en nuestras también se este quienes r a d i c a n o s o l o e n s u pa.;o c o s í a y i n s t i t uciones de docencia e investigación. justifica c o m e r c i a l izado, de justificación de ser r e p r o d u c i d o tantas veces c o m o se* - e c e s a r i o por d a n d o asi tipo de productos, la posibilidad que la a l t e r n a t i v a d e e v i t a r tiene traoajo de ser la i m p o r t a c i ó n y a y u d a r a m e j o r a r el n i v e l lo e l a b o r e n e n n u e s t r o p a í s . El de vida de - 57 - B I B L I O G R A F I A - 58 - Intel Corporation. Memory Components Handbook. 1985. Steve Ciarcia. Build a Serial Eprom Programmer. Byte, 19S5. tebruary B Sí C M i c r o s y s t e m s . 1409 Eprom Programmer Technical Manual. V e r s i o n 3.3. September 19S4. O c t a v i o F. Ga r c i a Narcia. Microprocesadores Marzo K l i n e B., The Z-80 e Interfaces. 1982. M a e r z M . , R o s e n d + e l d P. In-Circuit Approach to t h e D e v e l o p m e n t o-f M i c r o c o m p u t e r —B a s e d P r o d u c t s . IEEE, June 1976. M a l d o n a d o A., V e g a J. I., Y a ñ e z V. E m u l a d o r de S i s t e m a s Digitales. IV C o l o q u i o d e C o n t r o l Sep tiembre Intel Automático, 19 B 5 . Corporation. Microsystem Components Handbook. M i c r o p r o c e s s o r s and Peripherals. Volume I and II, 1955. C IN V E 5 “A v - 1p,\. - 59 - In t e l Corporation. T h e 8 0 8 6 F a m i l y U s e r ' s Manual. 1980. Intel C o r p o ration. P L / M - 8 6 U s e r ' s Guide. 1981. Western Digital Corporation. C ommunication Products Handbook. June, 1984. - 60 - A P E N D I C E A DIAGRAMA ELECTRICO DEL GRABADOR FI G . A.1 ESTRUCTURA GENERAL DEL MODULO DIGITAL DEL GRABADOR - 62 - I D E N T I F I C A C I O N DE B L O Q U E S DEL G R A B A D O R R - Ci r c u i t o de Reloj B - C i r c u i t o de B o r r a d o CPU - Microprocesador (Resetí Z-80 E P R O M - M e m o r i a d e L e c t u r a c o n el P r o g r a m a M o n i t o r RAM - M e m o r i a de Lec t u r a / E s c r i t u r a para IC S - Interfaz de C o m u n i c a c i ó n S erie PCS - Puerto de Comunicación PC TEM ios D a t o s Serie - Computadora Personal - C i r c u i t o Tem p o r i z a d o r de Grabado DEC - Circu i t o de Decod i f i c a c i ó n IDIR - Interfaz de Direcciones IDAT - Interfaz de Datos de Memorias t Puertos BAUD - Ad a p t a d o r de Velocidad SMH - C i r c u i t o S e l e c t o r de M e m o r i a s por LA - L ó g i c a de A c t i v a c i ó n FVM - F u e n t e de V o l t a j e M ú l t i p l e "Hardware" CPAT - Co n m u t a d o r de Pa t r o n e s de V oltaje MEMF - Receptáculo para la M e m o r i a F u e n t e MEMD - Receptáculo para la M e m o r i a D e s t i n o - 64 - A P E N D I C E B DIAGRAMA ELECTRICO DEL EMULADOR FIG. B.l ESTRUCTURA GENERAL DEL MODULO DIGITAL DEL EMULADOR — 66 — I D E N T I F I C A C I O N DE BLO Q U E S DEL E M U L A D O R P - P r o t o t i p o de l U s u a r i o . MIU - Mó d u l o de PC I n t e r a c c i ó n c o n el U s u a r i o . - Microcomputadora Personal. I C S - Inter-fas d e C o m u n i c a c i ó n S e r i e . CCS - C o n t r o l a d o r de C o m u n icación Serie ADA - Amortiguador cC.I. S250J. (bu-f-fer) d e D a t o s . SMI - Selector de Microprocesador e Interpretador IP - Inter-faz c o n el P r o t o t i p o . de Datos. C P U - M i c r o p r o c e s a d o r S O B Ó u 30S3. M - M e m o r i a E P R O M par'a el M o n i t o r d e l M ó d u l o D i g i t a l . MDP - Memoria RAM para lo s D a t o s de l Módulo Digital y el P r o g r a m a P r o t o t i p o . L D M - L ó g i c a para Decodi-ficacion de Memoria. LCC - Ló g i c a de Control ADI - A m o r t i g u a d o r de Comandos. (bu-f-fer) d e D i r e c c i o n e s . CB - C o n t r o l a d o r d e Bus. SM - S e l e c t o r de Modo (modo m í n i m o o m á x i m o ) . L S R R — L ó g i c a de S e l ección de Reloj GR - G e n e r a d o r de Reloj. CR - C i r c u i t o d e -In ic ial i za c i on y Reset. (RESET) EMULADOR PARA LOS MICROPROCESADORES 1 8086 Y 8088 - 69 - A P E N D I C E C CODIFICACION DEL PROGRAMA MONITOR DEL GRABADOR - 1 . 0000: 2 . 0000 : 3. 0 0 0 0 : 4. 0 0 0 0 : 5. 9 0 0 0 : ó. 0000: 7. 0 0 0 0 : 8 . 0000: 9. 0 0 0 0 : 10. 0 0 0 0 : 11. 0000: 12. 0000: 13. 0000: 14. 0000: 15. 0000: ló. 0000: 17. 0000: 18. 0000: 19. 0000: 20. 0000: 21. 0000: 22. 0000: 23. 0000: 24. 0000: 25. 0 0 0 0 : 26. 0 0 0 0 : 27. 0 0 0 0 : 28. 0000: 00 29. 0001:0 0 30. 0002: 0 0 31. 0003: 3 E CA 32. 0 0 0 5 : 3 2 01 10 33. 0008: 3E 55 34. O O O A : 3 2 01 10 35. 000D: 3E CA 36. 0 0 0 F : 3 2 01 10 37. 0 0 1 2 : 3 E 15 38. 0 0 1 4 : 3 2 01 10 39. 0 0 1 7 : 31 F F 0 8 40. 0 0 1 A: 3 E 0 0 41. 0 0 1 C : 3 2 0 0 18 42. 0 0 1 F: 3 2 0 0 18 43. 0 0 2 2 : 3 A 0 0 2 0 44. 0 0 2 5 : E 6 IF 45. 0 0 2 7 : 4F 46. 0028: FE 00 47. 0 0 2 A: C 2 6 D 0 2 48. 002D: 3E FF 490 0 2 F : 32 F6 OF 50. 0 0 3 2 : C D E A 0 2 51. 0 0 3 5 : 3 A 0 0 10 52. 0 0 3 8 : 1E 5 9 53. 0 0 3 A : BB 54. 0 0 3 B: C2 22 55. 0 0 3 E : CD F2 56. 0 0 4 1 : 3E 58 57. 0 0 4 3 : 3 2 0 0 10 70 - PROGRAMA MONITOR DEL GRABADOR UNIVERSAL DE MEMORIAS EPROM .ORG $0000 PMODO PCOM PRES F’ CONT PDAT COMA DIR NUBYTE TIFO LIMIB LI M S B FLOF BYTES FUNO BUFTOT TBUP DIRDES FLR INT ; REMOTO 00 02 EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU EQU OCfth 015h 055h 1001b 1000h OFFEh OFDOh OFEOh OFCOh 0 9 0 Ih OFBOh OFFOh 0FF2h 0FF4h 06AFh OOOFh 0FD2h OFFóh OFFSh NOP NOP NOP ' LD A,PM O D O LD <PC0NT),A LD A,PRES L D (PC0N.T),A LD A,PMODO LD (PC0NT),A L D A,F'C0M LD (PC0NT),A LD SF,08FFh LD A,OOh LD <1800h),A LD <1800h),A L D A, ( 2 000h) A N D lFh LD C,A CP OOh JP N Z , C O P I A R LD A,OFFh LD (FLR),A C A L L RX L D A, (PDAT) LD E,59h CP E JP NZ,REMOTO C A L L TX LD A,58h LD (PDAT),A {.Palabra d e m o a o del 3 2 5 1 . P a l a b r a c o m a n d o del S251. { P a l a b r a a s r'esec p o r SW. 5 Peg- c o n t r o l (map. e n m. ) ;Reg. d a t o s .map. er, m . ) . ;Dir. a e c o m a n d o Gol.. ;Dir. d a t o »DIR. ItiiC. ) . :Di r . o a t o (NUM. B y TES ) . ;.Dir. a a t o (TIPO EPROM). jLimire interior outter¡.Limite s u p e r i o r b u t t e r . { D i r e c c i ó n d e D a n a e r a XOF. {Num. d e b y t e s p o r g r a d a r jDir. b a n d , p r i m e r g r a b . ;Tama.no t o t a l o e l b u t t e r . fT a m a ñ o m i n i m o o e l b u t t e r . «Dir- d a t o (DIR. D E S T I N O ; . {Bandera Locai/Remoto. ; B a n a e r a de inte r r u p c i ó n . ^Retardomientras se ¡.est a b i l i z a el r i o , 8251. s Carga p a l a b r a de moao. s E n v i a p o r reg. d e c o n t r o l ?C a r g a y ¡envia p a l a b r a de reset. ;C a r g a y t e n vi a p a l a b r a d e m o d o . tC a r g a y ;envia p a l abra de comando. i l m c . anunt. a e stack. |P o n e en c e r o s ;el p a t r o n . *Lee interruptores. \A í s l a los 5 m a s b a j o s . ; 5 a l v a ei r e s u l t a o o . { P r e g u n t a si so n ceros . ; V a a C O P I A R si n o son. {Pone Dana. Loc a i / R e m o t o ;e n m o d o r e m o t o :.3rsb/lesi • ; E s p e r a c a r a c t e r ''V" corno jsenai de r e q u s r ì m i e n t o . ?Si n o h a y r e q u e r i m i e n t o j r e g r e s a a leer interr. { T r a n s m i t e un c a r a c t e r i " X " corno s e n a ! d e {reconocimiento. - 71 - 58. 59. 60. 61. 62. 63. 64. 65. 66. 67. 68. 69. 70. 71. 72. 73. 74. 75. 76. 77. 78. 79. 80. 81. 82. 83. 84. 85. 86. 87. 88. 89. 90. 91. 92. 93. 94. 95. 96. 97. 98. 99. 100. 101. 102. 103. 104. 105. 106. 107. 108. 109. 110. 111. 112. Í13. 114. 0046: CD 0049: 3A 004C: 32 0 0 4 F :C D F 2 0 2 0052: 3A FE OF 0 0 5 5 : 3 2 0 0 10 0053:C3 FD 00 005B: OOFD: OOFD: OOFD: 21 0100: 06 0102: CD EA 02 0105:C D 0 3 03 0108: 23 0 1 0 9 : 10 F 7 0 1 0 B : 21 D O O F 0 1 0 E : C D 21 0 3 O l i i : 21 E O O F 0114:0 6 0 4 0116: CD EA 02 0119:CD 0 3 03 011C: 23 0 1 ID: 10 F 7 O U F : 21 E O O F 0 1 2 2 : C D 21 0 3 0125:CD EA 02 0 1 2 8 : 3 A 0 0 10 012B:3 2 C O CF 012E:C D F2 02 0131:3 A CO O F 0 1 3 4 : 3 2 0 0 10 0137:CD EA 02 013A: 3A 013D: FE 013F: C2 0142: 3A FE OF 0145: FE 4C 0147: C2 014A: 26 014C: C3 014F: 26 06 0151: 3A CO OF 0154:6F 0155:7 E 0 1 5 6 : 3 2 0 0 18 0 1 5 e?: 3 A FE OF 0 1 5C : 16 4 7 015E;BA 0 1 5 F :C 2 2 8 0 2 0 1 6 2 : 21 E O O F 0165:46 0166: 23 0167:4E 0168:ED 43 F2 OF 0 1 6 C : F D 21 01 0 9 0 1 7 0 : D D 21 01 0 9 EA 02 0 0 10 FE OF C A L L RX L D h , (PDAT) LD (COMA),A C A L L TX LD A,(COMA) L D (F'DA 7), A JP O OFDh ; R e c i b e u n cornanoo ¡G o L p a r a g r a o a r ;o leer, r e s p e c t i v ^ e n r e , ;y t r a n m i t e u n eco. ;C o n t i n u a en la a ir. .OFD, ; .O R G « O O F D ; DO OF 04 LEE1 LEE2 0 0 10 53 22 00 4 F 01 07 51 01 GENF'G GENF'L . L D HL, D I R LD B,04n C A L L RX CALL METE IN C H L DJNZ LEE1 L D HL, D I R CALL AGRUPA LD HL,NUBYTE LD B,04h C A L L RX CALL METE INC HL DJNZ LEE2 L D HL, N U B Y T E CALL AGRUPA C A L L RX L D A, (PDAT) LD (TIPO),A C A L L TX LD A,(TIFO) LD (PDAT),A C A L L RX L D A, (PDAT) CP 53h JP N Z , R E MOTO LD A,(COMA) CP 4Ch J P N Z , GENF'G LD H,07h J P GENF'L LD H,06h L D A, (TIPO) LD L,A L D A, (HL) LD (1800h),A L D A, (COMA) LD D,47h CP D J P N Z ,L E E R LD HL,NUBYTE LD B,(HL) INC HL ' LD C,(HL) L D ( B Y T E S ) ,B C LD IY,LIMIB LD IX,LIMIB ¡ C a r g a H L c o n C iR. : I m c . u n c o n ta c o r a e 4 5 R e c i b e 4 d i o i tos ;c o r r e s p o n d e n t e s ¡a la D I R E C C I O N ; INICIAL. ? C a r g a Hl . c o n D i n ;Agr u . 4 dig. en 2 d - ces. ; C a r g a H L c o n NUfcYTE. ; I m c . c o n t a d o r de 4. ¡Recibe 4 dígitos ;c o r r e s p o n d l e n t e s ¡al N U M E R O D E ;B Y T E S . ;C a r g a H L c o n N U B Y T E . ; A gru. 4 dig. e n 2 bytes. ;R e c i b e T I P O ;D E E P R O M ;y t r a n s m i t e ;un eco. {Por seguridad, ¡recibe orden p / c o n n n u a r ¡si r e c i b e "3“ c o n t i n u a ¡si no. r e g r e s a a R E M O T O . ¡Si el c o m a n d o r e c i b i d o ;n o es "L", salta a ¡ g e nerar p a t r o n de grab. ¡si e s " L ‘, s a l t a a ¡ g e n e r a r p a t r o n d e lect. ¡ Genera p a t r o n oe grao. ¡ G e n e r a p a t r o n d e lect, ¡ P r e g u n t a si ei c o k a '-.c -z ;e s " G “ p a r a c o n tin,la-* ;o ”L'! p a r a ir a LEE.“. ¡ C a r g a ei ¡numero de ¡datos a grabar¡In ici a l i za a p u n t . h ^I y ;A P 2 (grabar' y g u a r o a r ) . - 72 - 115. 116. 117. US. 119. 120. 121. 122. 123. 124. 125. 126. 127. 128. 129. 130. 131. 132. 133. 134. 135. 136. 137. 138. 139. 140. 141. 142. 143. 144. 145. 146. 147. 148. 149. 150. 151. 152. 153. 154. 155. 156. 157. 158. 159. 160. 161. 162. 163. 164. 165. 166. 167. 168. 169. 170. 171. 0174: 0176: 0179: 017C: 017F: 0180: 0183: 0184: 0187: 0188: OISBs 018E: 018F: 0190: 0191: 01925 0193: 0196: 0197: 019A: 019E: 019F: 01A0: 01A3: 01 A4: 01A3: 01A A : 0 1 AD: 01AE: 0 1 B 1: 01B4: 01B 7s 01B8: 01B9: 0 1 DCs 0 1 BE: OlCls 01C4: 01C5: 01C3: 0 1 CA: 0 1 CB: 0 1 CD: 0 1 CE: 0 1 CF: 0 1 DO: 01D2: 01D5: 01D8: 01D9: 01 D A : 0 1 DC: 01D E : 0 1 DF : 01E0: 0 1 E 1: 01E4: 3E 00 32 F4 OF 32 FO OF 3 A DO OF 67 3 A DI O F 6F 01 0 0 8 0 09 22 D2 OF CD 39 03 GRABAR 07 07 07 07 47 CD 39 03 80 FD 77 00 ED 4B F2 OF 79 BO CA 22 00 OB ED 43 F2 OF FD 23 3A F4 OF B7 C 2 Cl 01 2A D2 OF DD 7E 00 77 23 22 D2OF 3E FF 32 F4OF 3 A FO OF ETFLOF B7 C2 F B 01 DD E5 El FD E5 Dl 37 3F ED 52 D2 il 0 2 21 AF06 37 3F ED 52 DD E5 CI 09 E5 21 OF00 E5 . LD A , 00h LD (FUÑO),A L D (FLQF) , A L D A, C O FDOh) LD H,A L D A, ( O F D l h ) LD L,A LD B C , 3000h ADD HL,BC L D ( D I R D E S ) ,H L CALL DIGITO RLCA RLCA RLCA RLCA L D B ,A CALL DIGITO ADD A,B LD (IY+00h),A L D BC, (BYTES) LD A,C OR B JP Z,REMOTO DEC BC LD (BYTES),BC INC IY L D A, (FUÑO) OR A JF‘N Z ,E T F L O F L D HL, ( D I R D E S ) L D A, <I X + 0 0 h ) L D (H L ),A IN C H L LD (DIRDES),HL LD A,OFFh LD (FUND),A LD A,(FLOP) OR A J P IMZ,CHAP2L P U S H IX POP HL P U S H IY PO P DE SCF CCF SBC HL,DE JP N C , E T 6 LD HL,BUFTOT SCF CCF S B C HL, D E P U S H IX POP BC ' ADD HL,BC PUSH HL LD H L ,TBUP P U S H HL ¡Iniciaiiza banderas. ' ;S u m a u n ©OOh como jcero relativo a ; la d i r e c c i ó n in i e i»i. *S a l v a d i r e c c i ó n i n i c i a l . ;R e c i b e 2 c a r a c t e r e s ;a s e i i / ios i n t e g r a e n ;un s a i o b y te. ei ; c o r r e s p o n d e ai da co a ?g r a b a r . ; C a r g a ei d a t o e n AP 2 . ; P r e g a n ta si num. d e ;b y t e s e s c e r o P a r a ; d e t e r m i n a r ti n ¡de archivo. ; D e c r e m e n ta nu m . de b y t e s ¡y a c t u a l i z a a p u n t . AF'2 i P r e g u n t a si y a s e g r a d o ¡el p r i m e r d a t o p a r a ;no grabar. ;G r a b a el p r i m e r d a t o , ¡ a c t u a l i s a la d i r e c c i ó n ; d e s t i n o , e i n d i c a c o n la ¡bandera FUÑO qu e ya se ;g r a b o el p r i m e r d a t o . ¡ P r e g u n t a si h a r e c i b i d o ; X O F p a r a ir a C H A F 2 L . ¡ P r e g u n t a si A P I es ¡mayor que A P 2 para ¡ s a l t a r a ET6. ¡ P r e g u n t a si n a y a r e a ¡ d i s p o n i b l e e n ei D j - r S -' ¡ p a r a guarca-' d a t o s , :y s a i -ca a C m h F - L c u a n d o ¡si ia h a y c d e io ¡ c o n t r a r i o /à a \ÜF ¡ p a r a d e t e n e r ei tie ja ¡d e d a t o s . - 17*2. 0 1 E 5 : DI 173. O l E ò : El 174. Ö1E7: 37 175. OIES: 3F 176. 0 1 E 9 : E D 5 2 177. O I E B : D 2 F B 01 178. 0 1 E E : C D F 2 0 2 XOF 179. 0 1 F 1 : 3 E 13 180. 0 1 F 3 : 3 2 0 0 10 181. 0 1 F 6 : 3 E F F 182. 0 1 F 8 : 3 2 F O O F 183. 0 1 F B : 21 B O O F CHAP2L 184. 0 1 F E : F D E 5 185. 0 2 0 0 : Cl 186. 0 2 0 1 : 3 7 187. 0 2 0 2 : 3 F 188. 0 2 0 3 : E D 4 2 189. 0 2 0 5 : 7 D 190. 0 2 0 6 : B 4 191. 0 2 0 7 : C 2 8 B 01 192. 0 2 0 A : F D 21 01 0 9 193. 0 2 0 E : C 3 8 B 01 194. 0 2 1 1 : D D E 5 ET6 195. 0 2 1 3 : El 196. 0 2 1 4 : F D E 5 197. 0 2 1 6 : DI 198. 0 2 1 7 : 3 7 199. 0 2 1 8 : 3 F 200. 0 2 1 9 : E D 5 2 2 01. 0 2 1 B : 11 O F 0 0 202. 0 2 1 E: 3 7 203. 0 2 1 F : 3 F 204. 0 2 2 0 : E D 5 2 2 0 5 . 0 2 2 2 : D 2 F B 01 206. 0 2 2 5 : C 3 E E 01 207. 0 2 2 8 : 3 A D O O F LEER 208. 0 2 2 B : C 6 8 0 209. 0 2 2 D : 6 7 210. 0 2 2 E : 3 A DI O F 211. 0 2 3 1 : 6 F 2 12. 0 2 3 2 : E 5 213. 0 2 3 3 : 21 E O O F 214. 0 2 3 6 : 5 6 215. 0 2 3 7 : 2 3 216. 0 2 3 8 : 5 E 217. 0 2 3 9 : E D 5 3 F 2 O F 218. 0 2 3 D : El 219. 0 Z 3 E : 7 E LOOPLE 220. 0 2 3 F : 4 F 221. 0 2 4 0 : E6 FO 222. 0 2 4 2 : OF 223. 0 2 4 3 : OF 2 24. 0 2 4 4 : OF 2 25. 0 2 4 5 : OF 226. 0 2 4 6 : C D 5 7 0 3 227. 0 2 4 9 : 47 228 . 0 2 4 A : CD F2 02 73 - PO P DE PO P HL SCF CCF S B C HL, D E JP N C , CHAP 2 L C A L L TX L D A, 13h L D ( P DAT), A LD A.OFFh L D ( F L O F ) ,A L D H L ,L I M S B P U S H IV POP BC SCF CCF SBC HL,BC LD A,L OR H JP NZ,GRABAR LD IY,LlMIB JP GRABAR P U S H IX PO P HL P U S H IV PO P DE SCF CCF SBC HL,DE ,T B U P LD D E ‘ SCF CCF SBC H L , DE JP N C , C H A P 2 L JP XOF L D A, (OF D O h ) ADD A,80h LD H , A L D A, (OFDlh) LD L,A P U S H HL LD H L , N U B Y T E LD D,(HL) INC HL LD E,(HL) L D ( B V T E S ; ,D E POP HL L D A, (HL) LD C,A AND OFOh PRCA RRCA RRCA RRCA CALL HEXASC LD B,A C A L L TX ; T r a n s m i t e an '.G P ¡pone bandera de ; e n verdaoer-o. v « C h e c a si ei a e u r t a o o ; A P S (lys y a i 1 .5 9 c » 1 5 limite oara regresarlo sal o n pen. D e le ;c o n t r a r i a r e g r e s a ;a GRABftR. ; P r e g u n t a si n a y a r e a ; d i s p a n i d l e en ei butter;p a r a g u a r d a r d a t o s , ;y s a l t a a C H A r 2 _ c u a n a o ; si ia h a y c d e lo ; c o n t r a r i o sai ta a X O F ; o a r a d e t e n e r el ri a j o ;d e d a t o s . ; S u m a a la a i r e c c i o n ; inicial un 8 0 0 0 h c o m o ; c e r o r e l a t i v o , y la ? s a l v a e n ei s t a c k «Cargs ;totai ;B Y T E S ;bytes ; leer a N U 3 '"15 « n u m e r o de bytes;. en (numera ae Que qu?Qsn = c r grabar. ; l e e u n d a t o tbyte.- . ; lo c o n c i e r t e a c o a ;c a r a c t e r e s a s e a ' , ; l o s t r a n s m i t e a la 5c o m p u t a d o r a , , ; e s p e r a u n eco. • - 229. 024D: 78 23 0 . 0 2 4 E : C D 61 0 3 231. 0251: 79 232. 0252: E6 0 F 233. 0254: CD 57 03 234. 0 2 5 7 : 4 7 23 5 . 0 2 5 8 : C D F 2 0 2 2 36. 0 2 5 B : 7 8 237. 0 2 5 C : C D 61 0 3 238. 0 2 5 F : 2 3 239. 0 2 6 0 : IB 240 . 0 2 6 1 : E D 5 3 F 2 O F 241. 0 2 6 5 : 7B 242. 0 2 6 6 : B2 243. 0 2 6 7 : C A 2 2 0 0 244. 0 2 6 A: C 3 3 E 0 2 245. 0 2 6 D : C B 61 COPIAR 246.. 0 2 6 F : 2 0 0 3 247. 0 2 7 1 : 32 00 28 2 48. 0 2 7 4 : 3 E 0 0 COPI 249- 0 2 7 6 : 32 F6 OF 250. 0279: 3 2 F8 OF 2 51 . 0 2 7 C : D D 21 0 0 4 0 252. 0 2 8 0 : F D 21 0 0 8 0 2 53. 0 2 8 4 : 06 06 2 54. 0 2 8 6 : OA 255. 0 2 8 7 : 57 256. 0 2 8 8 : 1E 0 0 257. 0 2 8 A : 05 2 58. 0 2 8 B : OA 259. 0 2 8 C : 3 2 0 0 18 2 60. 0 2 8 F : 3 A 0 0 2 0 L00PC01 2 61. 0 2 9 2 : E 6 1F 262. 0 2 9 4 : B7 2 6 3. 0 2 9 5 : 20FS 264. 0 2 9 7 : 06FF 265. 0 2 9 9 : 3 E O F L00PC02 2 6 6. 0 2 9 B : 3 D L00PC03 267. 0 2 9 C : 20 FD 268. 0 2 9 E : 10 F 9 269. 0 2 A 0 : 3A 00 20 2 70. 0 2 A 3 : E ó 1F 271. 0 2 A 5 : B7 272. 0 2 A 6 : 2 0 E 7 273. 0 2 A 8 : 3A F8 OF L00PC0 2 74. 0 2 A B : B7 275. 0 2 A C : 20 FA 276. 0 2 AE: DD 7E 00 277. 0 2 B 1 : FD 77 00 278. 0 2 B 4 : 3E FF 279- 0 2 B 6 : 32 F8 OF 2 80. 0 2 B 9 : DD23 281 . 0 2 B B : FD 23 282. 02BD: IB 283 . 0 2 B E : 7B 284. 0 2 B F : B2 285. 02C0: 28 0 2 74 - LD CALL TRECQ LD A,C AN D OFh CALL HEXASC LD B,A C A L L TX LD A,B CALL TRECD IN C H L DEC DE LD (BYTES),DE LD A,E OR D JP Z,REMOTO JP LOOPLE BIT 4,C JR NZ,COPI LD (2S00h),A LD A,OOh LD (FLR),A LD <INT),A LD IX,4000h LD IY,8000h LD B,06h LD A,(BC) LD D,A LD E,00h DEC B LD A,(BC) LD (1800h),A LD A,(2000h> A N D lFh OR A JR NZ,L0ÜPCÜ1 L D B ,O F F h LD A,OFh DEC A JR N Z , L 0 0 P C 0 3 DJNZ L00P C 0 2 LD A,(2000h> A N D lFh O R A. JR NZ,L00PC01 L D A, (INT) OR A JR N Z , L 0 0 P C 0 L D A, ( I X + O O h ) L D ( I Y + O O h ) ,A LD A,OFFh LD (INT),A IN C IX INC IY D E C DE LD A,E OR D JR Z,FINC0P ;Incrementa dirección y j d e c r e m e n t a nu m . b y t e s . ;8i nu m . a e b y t e s = O ;s a l t a a R E M O T O . Si no ;es O sa l t a a LOOPLE. ;Si e s m e m o r i a ;27256, s a l t a a C O F I . ;si no, p r e n d e P G M ’. . ; limp i a b a n d e r a s de ; loc/rem. e interrup. ¡Iniciallza apuntadores ;-fuente y d e s t i n o . ;C a r g a e n D E la ¡ c a p a c i d a d d e la ¡ m e m o r i a a copi¿*r. ;G e n e r a p a t r ó n d e ¡ s e ñ a l e s p o r HW. ¡Lee inte r r u p t o r e s ¡mien t r a s se e n c i e n d e ¡ V p p y h a s t a q u e se ¡ r e m u e v e la s e l e c c i ó n . ¡por seguridad, ¡s e i n t r o d u c e u n r e t a r d o ¡y s e v e r i f i c a q u e t o d o s ¡los i n t e r r u p t o r e s e s t e n ;r e m o v i d o s a n t e s ae ; i n i c i a r el c o p i a d o . ;E s p e r a q u e s e t e r m i n e ¡de g r a b a r un dato. ;G r a b a d a t o d e r ú e n t e ¡a d e s t i n o . ¡Pone b a n d e r a d e Grao. ¡Incrementa airecciones ; -fuente y d e s t i n o . ¡Decrementa capaciaad ;de m e m o r i a y p r e g u n t a ¡si l l e g o a c e r o p a r a ;s a l ir d e l loop. .7:' ,', - 75 - .jo. ‘ .'2C2: 18 E 4 29'. >.*2C4: C B él I V2C6X 28 29 l_.í. 0 6 06 2 -.-. O l í A: O A 2 "r1. 0 2 C B : 5 7 1-V2. 0 2 C C : 1E 0 0 2«?3. 0 2 G E ; D D 21 0 0 4 0 2 =4. 0 2 D 2 : 3 2 0 0 2 8 295. 0 2 D 5 : 3A F8 OF 296. 0 2 D 8 ; B7 297. 02 D 9 : 2 0 F A 293. 02DB: DD 7E 0 0 299. 02DE:F D 77 00 300. 0 2 E 1 :3 E F F 301. 02E3: 3 2 F8 OF 302. 0 2 E 6 t IB 303. 0 2 E 7 :7 B 304. 02E8: B2 305. 02E9: 28 0 6 306. 02EB: DD 23 307. 02ED: F D 23 308. 0 2 E F : 18 E 4 309. 0 2 F 1: 76 310. 0 2 F 2 : 311. 0 2 F 2 : 312. 0 2 F 2 : 313. 0 2 F 2 : 314. 0 0 6 6 : 315. 0 0 6 6 : 316. 0066: F5 317. 0067: C5 318. 0068: D5 319. 0069: E 5 320. 0 0 6 A :3A F6 OF 321. 006D: B7 322. 006E: C A F2 00 323. 0071: DD 2 3 324. 0 0 7 3 : 3A FO OF 325. 0 0 7 6 : B7 326. 0 0 7 7 : CA C4 00 327. 0 0 7 A: DD E5 328. 0 0 7 C : El 329. 007D: F D E 5 330. 0 0 7F: DI 331. 0080: 37 332. 0081: 3F 333. 0082: ED 52 334. 0084: D2A D 00 .335. 0 0 8 7 : 21 A F 0 6 336. 003A: 37 337. 0 0 8 B : 3F 338. 008C: ED 52 339. 008E: DD E5 340. 0 0 9 0 : C1 341. 0091: 09 3 42. 0092: E5 FINCOP L00FCQ4 J R LOOF'CO BIT 4,C J R Z, T E R M I N O LD B,06h L D A, (BC) LD D,A LD E,00h LD IX,4000h LD (2800h),A LD A,(INT) OR A JR N Z , L 0 0 P C 0 4 LD A,(IX+00h> L D ( I Y + O O h ) ,A LD A,OFFh LD (INT),A DEC DE LD A,E OR D JR Z, T E R M I N O INC IX IN C IY JR L 00PC04 HALT ¡Si n o e s t i p o 27156, ;va a T E R M I N O . ¡Si e s m e m o r i a 2 7 2 5 6 , ¡carga nuevamente ¡l a c a p a c i a a d d e ia ¡ m e m o r i a ( 2 7123; . ¡ r e i n i c i a cont.f u e n t e ¡y p r e n d e b i t A 1 4 inte. ¡Espera que se termine ¡d e g r a b a r u n dato. ;G r a b a d a t o d e f u e n t e ¡a d e s t i n o . ;P o n e o a n d . d e G r a b a n d o . ¡Decrementa capacidad ¡de m e m o r i a y p r e g u n t a ¡si l i e g o a c e r o p a r a ¡terminar¡Incrementa direcciones ; -fuente y d e s t i n o . TERMINO ;Termina copiado. ¡ ¡ ¡ S U B R U T I N A DE I N T E RRUPCION. ; .O R G $ 0 0 6 6 PUS H AF P USH BC PUS H DE P U S H HL LD A,(FLR) OR A JP Z,INTCOP IN C IX LD A,(FLOF) OR A JP Z,CHAP1L P U S H IX P OP HL P U S H IV P O P DE SCF CCF S B C H L ,D E JP NC,ET7 LD H l , B U F T 0T SCF CCF S B C HL, D E ' P U S H IX POP BC ADD HL,BC P U S H HL ¡Salvaguarda contexto. ¡ P r e g u n t a si e s o e ¡ c o p i a d o la s u b r u t i n a . ¡ A c t u a l i z a API. ¡Pregunta si n o n a ¡ o c u r r i d o u n x.QF ¡para s a ltar a CHAF1L. ¡Pregunta si AP I e s ¡mayor que AP2 para ¡saltar a ET7 ¡ P r e g u n t a si e x i s t e ¡area disponible para ¡guardar datos e n el ;bu-ffer- Si la hay, ¡ c o n t i n u a en X O N . ' De ¡lo c o n t r a r i o , salta :a C H A P 1 L . - 7ò - 3*+*:.. 0 0 9 3 : 21 O F 0 0 344. 0 0 9 ó : E 5 345. 0 0 9 7 : DI 3*6. 0 0 9 8 : El 347. 0099: 37 34o. 0 0 9 A: 3 F 349. 0 0 9B: E D 5 2 350. 0 0 9 D: D A C 4 0 0 351. 0 0 AO: 3 E 0 0 352. O O h 2: 3 2 F O O F 353. 0 0 A 5 :3 E 4 E 3 54. 0 0 A 7 : 3 2 0 0 10 3 55. O O A A : C 3 C 4 0 0 356. 0 0 AD: D D E 5 3 57. 0 0 A F : El 3 53. O O B O ; F D E 5 359. O O B 2: DI 360. 0 0 B 3 : 3 7 361. 0 0 B 4 : 3 F 362. 0 0 B 5 : E D 5 2 363. 0 0 B 7 : 11 O F 0 0 364. 0 0 B A : 3 7 365. O O B B : 3 F 366. O O B C : E D 5 2 367. O O B E : D A C 4 0 0 368. 0 0 C 1 : C 3 A O 0 0 369. 0 0 C 4 : 21 B O O F 370. 0 0 C 7 : D D E 5 371. 0 0 C 9 : C1 372. O O C A : 37 373. O O C B : 3 F 374. O O C C : E D 4 2 375. O O C E : 7 D 376. O O C F : B 4 377. O O D O : C2 D7 00 378. 0 0 D 3 : D D 21 01 0 9 379. 0 0 D 7 : D D E 5 380. 0 0 D 9 : El 381. O O D A : F D E 5 382. O O D C : Dl 383. O O D D : 3 7 384. O O D E : 3 F 385. O O D F : E D 5 2 386. O O E 1 : C A 7 0 0 3 387. 0 0 E 4 : 2 A D 2 O F 388. O O E 7: D D 7 E 0 0 389. O O E A : 77 390. O O E B : 23 391. O O E C : 22 D2 OF 3 92. O O E F : C 3 F 7 0 0 393. 0 0 F 2 : 3 E 0 0 394. O O F 4: 3 2 F 8 O F 395. 0 0 F 7 : El 396. 0 0 F 8 : Dl 397. 0 0 F 9 : Cl 398. O O F A : FI 399. O O F B : ED45 XON ET7 CHAP1L FINAR INTCOF' RESTAU L D HL, T B U P P U S H HL POP DE PDF HL SCF CCF SBC HL,DE JP LD A,OOh LD ( F LOF>,A LD L D (PDAT), A JP CHA P 1 L P U S H IX POP HL P U S H IY POP DE SCF CCF SBC HL,DE LD DE,TBUP SCF CCF SBC HL,DE JP C,CHAP1L JP XON L D HL, L I M S B P U S H IX PO P BC SCF ‘ CCF S B C H L ,B C LD A,L OR H . JP N Z , F I N A R LD IX,LIMIB P U S H IX POP HL P U S H IY POP DE SCF CCF SBC H L , DE JP Z,AVISO L D HL, ( D I R D E 5 ) LD A,(IX+OOh) LD (HL),A INC HL LD (DIRDES),HL JP RESTAU L D A, O O h LD (INT),A POP HL POP DE P O P BC POP AF RETN C, CHAF'IL ¡ P o n e b a n d . X O F en ¡ c e r o y e n v i a u n XON. A , 4Eh ; S a i t a a C H A P IL. ¡ P r e g u n t a si h a y ; lugar para guardar 5 d a t o s e n el bu-f-fer ¡y s a l t a r a X O N en ¡.caso a f i r m a t i v o , ;o s a l t a r a C H A P iL jen c a s o c o n t r a r i o . ç C h e c a r si AF'l y a ; l l e g o al l i m i t e ipara regr e s a r l o ;al o r i g e n . D e lo s c o n t r a n o salta ça F I N A R . ¡ C o m p a r a AF'l y AF2, ¡si s o n i g u a l e s ¡significa que ya ¡termino de grabar ¡y s a l t a a AVISO. ; M a n d a a g r a b a r el ¡ s i g u i e n t e dato, ¡incrementa dirección ¡.destino, y s a l t a ;a R E S T A U . ¡ P o n e e n O la b a n d e r a ¡ae i n t e r r u p c i ó n . ¡Restaura contexto ¡y s a l e d e la ¡interrupción. 4 00 . 401. 40 2 . 4 03. 404. 4 05. 406. 407. 408. 409410. 411. 4 12. 413. 414. 415. 416. 417. 418. 419. 420. 421. 422. 423. 424. 425. 426. 427. 428. 429. 430. 431. 432. 433. 434. 435. 436. 437. 438. 439. 440. 441. 442. 443. 444. 445. 446. 447. 448. 449. 450. 451. 452. 453. 454. 455 . 456. OcFD: OOFD: OOFD: 02EA: 02EA: 0 2 E A : 3 A 01 10 02ED:CB 4F 0 2 E F :2 8 F9 0 2 F 1 i C9 02F2: 02F2: 02F2: 0 2 F 2 : 3 A 01 10 0 2 F 5 :C B 47 0 2 F 7 : 2 8 F9' 02F9: C9 02FA: 02FA: 02FA: 02FA: 02FA:4F 02FB: CD 02FE: 79 0 2 F F : 32 0302: C9 0303: 0303: 0303: 0303: 0303:E5 0304: 3A 0307: 57 0308: CD 0 3 0 B: 7A 0 3 0 C :3 2 0 0 10 0 3 0 F :O E 41 0311: B9 0 3 1 2 : D A 1C 0 3 0315:26 06 0317: 6F 0318: 7E 0 3 1 9 : C 3 1E 0 3 0 3 1 C: E ó O F 0 3 1 E :El 0 3 LF; 77 0320: C9 0321: 0321: 0321: 0321: 0321:7E 0322: 07 0323: 07 0324: 07 0325: 07 0326: 23 0327: ED 67 ; ; S U B R U T I N A P A R A P R O B A R EL BIT DE r b l t - C í ü N ; .O R G $ 0 2 E A ; RX LD A,(PCONT) B I T 1,A JR Z,RX RET ; ; S U B R U T I N A P A R A P R O B A R EL BI T DE T R A N i f U S I C N ; TX LD A,(PCONT) B I T O, A J R Z,TX RET ; ; S U B R U T I N A P ARA T R A N S M I T I R EL ; CONTENIDO DEL ACUMULADOR ; SACA LD C,A F202 C A L L TX LD A,C 0 0 10 LD (PDAT),A RET ; ; SUBRUTINA PARA RECIBIR Y GUARDAR ; DIGITOS HEXADECIMALES ; METE P USH HL 0 0 10 LD A,(PDAT) LD D,A F202 C A L L TX LD A,D LD (PDAT),A LD C,41h CP C JP C,ET1 LD H,06h LD L,A LD A,(HL) JP FIN ET 1 AN D OFh FIN POP HL L D (HL > „ A RET ; ; SUBRUTINA PARAAGRUPAR 4 C A R A C -'Sk í It£ •t---?cc ion ; Inicial o N u m e r o deBytes> , E N 2 t*- ~'-~; AGRUPA LD A,(HL) RLCA RLCA RLCA RLCA INC H L RRD - 78 - 45':,. 0 3 2 9 : 2B 4 55. 0 3 2 A: 77 459. 0 3 2 B : 23 4oü. 0 3 2 C : 23 461. 0 3 2 D : 7E 462. 0 3 2 E : 07 463. 0 3 2 F : 07 464. 0 3 3 0 : 07 465. 0 3 3 1 : 07 466. 0 3 3 2 : 23 467. 0 3 3 3 : E D 6 7 468. 0 3 3 5 : 2B 469. 0 3 3 6 : 2B 470. 0 3 3 7 : 77 471. 0 3 3 8 : C9 472. 0339: 473. 0339: 474. 0339: 475. 0339: 476. 0 3 3 9 : C D E A 0 2 477. 0 3 3 C : 3 A 0 0 10 478. 033F: 57 479. 0 3 4 0 : C D F 2 0 2 480. 0 3 4 3 : 7A 481. 0 3 4 4 : 3 2 0 0 10 482. 0 3 4 7 : O E 41 483. 0 3 4 9 : B9 484. 034A: DA 54 03 485. 0 3 4 D :26 06 486. 034F: 6F 487. 0350: 7E 488. 0351: C3 56 0 3 489. 0 3 5 4 : E 6 O F 490. 0 3 5 6 : C9 491. 0 3 5 7 : 492. 0 3 5 7 : 493. 0 3 5 7 : 494. 0 3 5 7 : 495. 0 3 5 7 : C 6 3 0 496. 0359:FE 3A 497. 0 3 5 B :D A 6 0 0 3 498. 035E: C6 07 499. 0 3 6 0 : C9 500. 0 3 6 1 : 501. 0 3 6 1 : 502. 0 3 6 1 : 503. 0 3 6 1 : 504. 0 3 6 1 : 3 2 0 0 10 505. 036d.:C D E A 0 2 •506. 0 3 6 7 : 3 A 0 0 10 50 7. 0 3 6 A: C 9 508. 0 3 6 B : 509. 0 3 6 B : 510. 0 3 6 B : 511. 0 3 6 B : 512. 0 3 7 0 : 513. 0 3 7 0 : DEC HL LD <HL),A IN C H L INC H l LD A,(HL) RLCA RLCA RLCA RLCA IN C H L RRD DEC HL DEC HL L D (H L ) , A RET ; ; SUBRUTINA PARA RECIBIR Y CONVERTIR ; CARA C T E R E S ASCII A CODISO H E X A D E C I M A L ; DIGITO C A L L RX LD A,(PDAT) LD D,A C A L L TX LD A,D LD (PDAT),A LD C,41h CP C JP C,ET2 LD H,06h LD L,A LD A,(HL) JP TER ET2 AND OFh TER RET ; ; SUBRUTINA PARA CONVERTIR CARACTERES ; HEX A D E C I M A L E S A C0DI6Ü ASCII ; HEXASC ADD A,30h CP 3Ah JP C , S A L I D A ADD A,07h SALIDA RET ; ; SUBRUTINA PARA TRANSMITIR UN CARACTER ; V R E C I B I R ECO ; TRECO LD (PDAT),A C A L L RX LD A,(PDAT) RET ; ; SUBRUTINA PARA AVISAR A LA COMPUTADORA ; C U A N D O S E T E R M I N A DE G R A B A R ; .ORG $03 7 0 ; - 79 - 5l"4. 515. 516 . 5 17. 518. 5 19. 520. 521. 522. 5 23. 524. 525. 526. 527. 5 28. 529. 530. 531. 532. 533. 534. 535. 536. 5 37. 538. 539. 5 40. 541. 5 42. 543. 5 44. 545. 546. 5 47. 548. 549. 550. 551. 5 5 2. 553. 554. 555. 556. 557. 5 58. 559. 560. 561. 562. 563. 564. 565. 566. 567. 568. 56 9 . 57 0 . 0370: CD F2 02 AVISO C A L L TX. 0373: 3£ 56 LD A,56h 0375: 32 00 10 LD (PDAT),A 0378: C3 F7 00 JP R E S T A U Q37B: ; 037B: ; T A BLAS DEPATR O N E S DE S EÑALES PARA 0 3 7 B: ; LASMEMORIAS, YT A B L A S D E C A R A C T E R E S 037B: ; 0501: .ORO $0501 0501: 54 68 .BYTE 5 4 h , 6 8 h : Tabla, as p a t r o n e s 0503: ; , p o r h a rdware' c a r a 0504: .O R G $ 0 5 0 4 ¡escritura 0504: 25 .B Y T E 2 5 h ;d e las 0505: ; ¡memorias 0508: .ORG $ 0 508 ¡271 6 . 0508: A5 .BYTE 0A5h ¡273Z-, 0509: ; ; 2 “o4, 0510: .ORG $ 0510 :27123, y 0510: A6 .BYTE OAéh ¡27256. 0511: ; 0511: ; 0530: .ORG $0 5 3 0 0530: 54 68 25 .BYTE 54h,6S h , 2 5 h ¡Taola de patr o n e s 0533: ¡ »por s o f t w a r e Para 0534: .ORG $0 5 3 4 ¡ e s c r i t u r a ae 0534: A5 .BYTE 0A5h ¡las m e m o r i a s 0535: ¡ ;271ó,2732A, 0533: .ORG $ 0533 ?2 7 * 4 , 2 7 1 2 3 , 0538: Aó .BYTE 0A6h ;y 2 7 2 5 o . 0539: ; 0539: ; 0601: .ORG $0601 0601: 0 8 10 .BYTE OSh,lOh :T a d i a p a r a 0603: ; • ¡ d e f i n i r la 0604: .ORG $06 0 4 ;c a p a c i d a d 0604: 20 .BYTE 20h ¡d e m e m o r i a 0605: ¡ ¡de c ada 0608: .ORG $ 0608 ¡tipo 0603: 40 .BYTE 40h ;s e l e c c i o n a d o . 0609: ¡ 0610: .ORG $ 0610 0610: 40 . B Y T E 4 Oh 0611: ¡ 0611: ; 0630: -ORG $0630 0 6 3 0 : 0 0 01 0 2 0 3 . B Y T E O O h , 01 h , 0 2 n . O ir ¡ , a b i a rJ-s 0634: ; ?c a r a c t e - = 0634 : •O R G $ 0 6 3 4 5 n urne r v r c E . 0634:04 0 5 0 6 07 . B Y T E 0 4 h , 0 5 h '"‘ 6n , 07r. 0638: ; 0638: .ORG $ 0638 0638: 08 09 .BYTE 03h,09h 063A: ¡ 063A: ; 0641 : .O R G $ 0 6 4 1 0641: OAOB OC OD . B Y T E O A h ,O B h ,O C h ,O D h ¡ T a b l a de 0645: ; ¡caracteres - 80 - 571 . 57 2 . 573 . 57 4 . 575 . 576. 577 . 578. 579 . 580. 581 . 582. 583. 584. 585. 0645: 0645:OE OF 0647: 0647: 0730: 0730: 55 65 25 0733: 0734: 0734: A5 0735: 0738: 0738: A5 0739: 0739: 0000: .ORG $0645 .BYTE OEh,OFh :a l f a b é t i c o s ;h e ^ a d e c i m a i e s . ; ; .ORG *0730 .BYTE 55h,65h,25h ; .ORG $ 0734 .BYTE 0A5h ; .ORG $07 3 8 .BYTE 0A5h ; ; .END ; T a b l a d e Péc-'O.iss ;d e l e c t u r a ia= m e m o r i a s 52 7 1 6 , 2 p 2 A , ;27 o 4 , 2~i2B, ;y 272'òc,. - 81 - A P E N D I C E D CODIFICACION DEL PROGRAMA MONITOR DEL EMULADOR - 32 R T C S / U D I V 5 . 0 - P L / M - 8 6 V 2 . 3 C O M P I L A T I O N OF M O DULE E M 8 6 _ 3 £ O B J E C T M O D U L E P L A C E D IN E M 8 6 T E S A . O B J C G M F I L E R I N V O K E D BY: P L M 3 6 E M 8 6 T E S A . F S ò L A R G E O P T I M I Z E (3) C G Í E 5i ''£üu5 PROGRAMA MONITOR DEL EMULADOR -ARA LOS M I C R O P R O C E S A D O R E S 8036 Ÿ SC65 1 EM86_88: /* 2 3 4 5 6 7 8 9 10 H I 12 1 1 1 1 1 1 1 1 1 1 DO; D e c l a r a c i ó n d e v a r i a b l e s y constantes Procedimiento para Probar el B i t d e R e c e p c i ó n 13 1 14 2 15 16 3 2 RX: PROCEDURE: DO WH I L E (<I NPUT<LSRE > AND BI T_1> = O ;; END; E N D RX; P rocedimiento para Probar ei B i t d e T r a n s m i s i ó n . 17 18 19 20 1 2 3 2 */ D E C L A R E DC L I T E R A L L Y 'DECLARE'; D C I N T E R (128) W O R D ; D C R E G (13) W O R D A T <240H.¡ ; D C INI W O R D A T ( 2 5 E H ) ; D C I INTEGER; D C DIR DWORD; D C < D A T O $ F T R , D I R I N , D I R F I ,N B , F I N , S F A U X ) W O R D ; D C (CHAR, CO M , D I R I N L , D I R I N H , D I R F I L , D I R F I H , NBL , NBH» BYTE DC ( B I N F O , C H A R I , D I R B , D I R M , D I R A , ABO) BYTEs D C D A T O B A S E D D A T O S P T R BYTE; DC RTRE LITERALLY OFOH , 1ERE L I T E R A L L Y '0F1H , L C R E L I T E R A L L Y '0F3H', L S R E L I T E R A L L Y '0 F 5 H ', D IVL L I T E R A L L Y O F O H , D I V H L I T E R A L L Y '0F1H', B IT_1 L I T E R A L L Y ' 0 0 0 0 * 0 0 0 1 6 , B I T _ 5 L I T E R A L L Y ' 0 0 1 O i O O O O B '; TX: P R O C E D U R E ; D O W H I L E < ( I N P U T (LSRE) END; END TX; A N D BIT_5) = O); - 83 - Procedimiento para Producir un R e t a r d o 21 22 23 24 25 26 27 28 29 30 31 1 2 2 2 2 3 4 4 3 3 2 RETARDO;PROCEDURE; D C (CONT,CONTI) WORD; CONT = 0; C O N T I = Os DO W H ILE CONT < OFFFFH; DO W HILE CONTI < OFFFFH; C O N T I = C O N T I + 2; END; C O N T = C O N T + 1; END; END RETARDO; Procedimiento para Recibir Cinco D i g i t o s d e la C o m p u t a d o r a 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 RCDIG: PROCEDURE; C A L L RX; D I R E = I N P U T (RTRE); C A L L TX; O U T P U T (RTRE) = D IR B ; C A L L RX; D I R M = I N P U T (RTRE); C A L L TX; O U T P U T (RTRE) = D I RM; C A L L RX; DIRA = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = DIRA; D I R A = D I R A A N D OFH; DIR = ((DIRA*256)*256) END RCDIG; + <DIRM*256> Procedimiento para Transmi*ir el C o n t e n i d o d e los r e g i s t r o s a la C o m p u t a d o r a 48 49 50 51 52 53 54 1 2 2 3 3 3 3 CONTEX: PROCEDURE; C H A R = 0; D O W H I L E C H A R < 14; C A L L TX; OUTPUT(RTRE) = L O W ( R É G (CHAR)) C A L L RX; CHARI = INPUT(RTRE); + DirtSi - 84 55 5ó 57 53 59 60 61 3 3 3 3 3 3 2 C A L L TX; O U T P U T ( R T R E ) = H I G H ( R E G ( C H A R ) )? C A L L RX; CHARI = I N P U T ( R T R E ) ; C H A R » C H A R + i; END; END CONTEX; P r o c e d i m i e n t o p a r a M o d i f i c a r el C o n t e n i d o d e los R e g i s t r o s 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 1 2 2 3 3 3 3 3 3 3 3 3 3 3 2 MREG: PROCEDURE; C H A R = 0; DO W HILE CHAR < 14; C A L L RX; NBL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = NBL; C A L L RX; NEH = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = NEH; REG(CHAR) = < N B H * 2 5 6 ) + NBL; CHAR = CHAR + 1; END; E N D MR E G ; Procedimiento para Transmitir y / o M o d i f i c a r el C o n t e n i d o d e los R e g i s t r o s 77 78 79 80 81 82 83 84 85 86 67 88 89 90 1 2 2 3 3 3 4 4 4 4 4 4 4 3 91 92 3 2 REGIS: PROCEDURE; IF C O M <> 0 1 H T H E N DO; CALL CONTEX; IF C O M = O B H T H E N DO; C A L L RX; ABO = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = ABO; IF A B O = 1 B H T H E N C A L L MREG; END; ELSE CALL RETARDO; END; EN D REGIS; /*com != £>loque /*co*n = t r a c e " * ? - 85 - P r o c e d i m i e n t o p a r a C a r g a r un Ar c hiva de D isco a M e m o r i a RAM 93 94 95 96 97 98 99 1 2 2 2 2 2 2 100 2 101 102 2 2 10 3 104 10 5 10 6 10 7 108 109 2 2 2 2 2 2 2 HO 2 111 2 112 2 11 3 11 4 11 5 11 6 117 11 8 11 9 120 121 12 2 12 3 12 4 2 3 3 3 3 3 3 3 3 3 2 2 CARBA: PROCEDURE; C A L L RX; DIRINL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = DIRINL; C A L L RX; DIRINH = INPUT(RTRE); C A L L TX; O U T P U T(RTRE) = DIRINH; D I R I N = ( D I R I N H * 256) + D I R I N L ; C A L L RX; NBL = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = NBL; C A L L RX; NBH = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = NBH; N B = (NBH * 256.) + NBL; O U T P U T ( O F E H ) = OOH; D O W H I L E (NB > 0); C A L L RX; BINFO = INPUT(RTRE); C A L L TX; O U TPUT(RTRE) = BINFO; D A T O $ P T R = DIRIN; D A T O = BINFO; D I R I N = D I R I N + 1; • N B = N B - 1; END; O U T P U T ( O F E H ) = OOH; EN D CARGA; i Procedimiento para Proporcionar i el R e l o j d e l E m u l a d o r ai P r o t o t i p o 125 12 6 12 7 1 2 2 RELEM: PROCE D U R E ; O U T P U T ( O F D H ) = OOH; EN D RELEM; Procedimiento para Transmitir y / o M o d i f i c a r el C o n t e n i d o d e L o c a l i d a d e s de M e m oria - 128 129 130 131. 132 133 13 4 135 136 13 7 138 139 14 0 141 14 2 143 144 145 14 6 14 7 148 149 150 151 152 15 3 154 15 5 1 56 157 158 159 160 161 162 163 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 4 4 4 4 4 3 3 3 3 3 3 3 3 2 2 86 - MEMORI: PROCEDURE; C A L L RXj DIRINL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = DIRINL; C A L L RX; DIRINH = INPUT(RTRE); C A L L TX; O U T P U T(RTRE) = DIRINH; D I R I N = ( D I R I N H * 256 ) + D I R I N L ; O U T P U T ( O F E H ) = OOH; D A T O * P T R = DIRIN; C A L L TX; O U T P U T ( R T R E ) = DA T O ; C A L L RX; CHAR = INPUT(RTRE;; C A L L TX; O U T P U T ( R T R E ) = CHAR; D O W H I L E C H A R < > 2 AH; IF C H A R <> O D H T H E N DO; C A L L RX; DATO = INPUT(RTRE); C A L L TX ; O U T P U T ( R T R E ) = DATO; END; D A T O S P T R = D A T O * P T R + 1; C A L L TX; O U T P U T ( R T R E ) = DATO; C A L L RX; CHAR = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = CH A R ; E ND; O U T P U T ( O F E H ) = OOH; E ND MEMORI; P r o c e d i m i e n t o p a r a ios 4 M o d o s de E j e c u c i ó n del P r o g r a m a a E m u l a r 1 64 165 1 2 E J E S I ¡i: P R G C E D U R E ; D C CC'DT <•*) E V T E D A T A ( 0 8 9 H ,0 2 E H ,0 3 C H ,0 0 2 H , 055H, 089H,0E5H, 08Bri,05EH,004H, 0 8 9 H , 0 2 7H, 0 8 3 H ,0 0 7 H ,0 0 2 H , 05DH, 0 8 C H , 0 1 6 H ,0 3 0 H ,0 0 2 H , 089H,02óH,064H,002H, /•»mov L 2 5 c 3, bp /•«•push b p /* m o v b p , s p / * m o v b>:,Cbp+4 3 ' / * m o v Cb::3,sp / * a d d w a r d ptrCb;-cj,02 /♦pop bp / * m o v C2 3 0 3 , s s / * m o v C 2 6 4 3 ,sp */ */ */ */ */ */ */ */ */ - S7 - lóó 2 167 2 Ö A IH, Ö 4 0 H ,0 0 2 H , .*mc v a k . u -.Z^ 0 3 */ 0 8 B H ,01 E H ,0 4 2 H ,0 0 2 H , / » m o v ex, C . ^ 2 ì * OSBH, OOEH, 04-ìh, 002H, /»mov c; . ZCl^'-ì */ 0 8 B H ,016 H ,0 4 ö H ,0 0 2 H , /*nov d */ OSBH, 026H, C48H, 002H, /*pov »'" 0 8 B H ,0 2 E H ,0 4 A H ,0 0 2 H , /* mov ö s . 1024¿ú */ 0 8 B H ,0 3 Ò H , 0 4 C H , 0 0 2 H , /» m o v s i , U _ 4 c J */ 0 8 B H ,0 3 E H ,0 4 E H ,0 0 2 H , / » m o v di,: 01 -m s J */ O S E H ,0 1 ò H ,0 5 4 H , 0 0 2 H , /*mov ss, -I•.23- 2 */ 0 8 E H ,0 0 6 H , 0 5 6 H , 0 0 2 H , /*mov es, L J */ 8 1H ,O E H ,5 8 H , 0 2 H , O O H , 0 1 H , / * o r wor d p t r i 2 Z ¿ - 2 .OlOCh»/ O F F H ,0 3 6 H ,0 5 8 H ,0 0 2 H , /»pu s h C25Ej »/ OFFH, 0 3òH,050H, 002H, /»push l 25*: j */ OFFH,036H,05AH,002H, /»push 125 si */ 0 8 E H ,01 E H ,0 5 2 H ,0 0 2 H , / îü i d v c b . l .I ï J */ OCFH, /»irei */ OFFH, O F F H , O F F H , O F F H , O F F H , O F F H >, A P C O D T W ORD D A T A ( .CODI); DC INCOi») B Y T E DAT A < OFAH, /»eli */ 0B8 H , O O O H , O O O H , /»mov a x . O O »/ O S E H,ODSH, /» m o v a s , a x »/ O S E H ,O C O H , /»mov ss, ax »/' O S B H ,0 2 E H ,0 5 C H ,0 0 2 H , ,» m o v op , Ì Z ò z l */ 0 C 2 H ,0 0 2 H ,O O O H , /» r e i 2 */ O FFH , O F F H , O F F H , O F F H , O F F H , O F F H ), A F I N C O W O R D D A T A C .INCO); DC C 0 D T 1 (») B Y T E D ATA ( 089H,02EH,05CH,002H, /»mov C25 c ì , o p »/ 055H, /»push o p */ 089H,0E5H, / »mov o=>,sp »/ O S B H ,0 5 E H ,0 0 4 H , /»mov b x , C h p + 4 ] »/ 0 8 9 H , 027H, /»mov Cbxj,sF »/ 083H, 007H, 002H, /»add word P T;rCDx3,02 */ 05DH, /» p o p D p »/ O S C H ,0 1 6 H , 0 3 0 H ,0 0 2 H , /* m o v L1 3 0 j , ss »/ 089H, 026H,0é»4H,Ö02H, /»mov C 2o-3,sp »/ OA 1H ,0 4 0 H , 0 0 2 H , -» m o v a?;. HG2 -G 2 */ 0 8 B H ,01E H ,0 4 2 H , 0 0 2 H , / » mov b x , ¿0242 3 */ O S B H , O O E H , 0 4 4 H ,002 H. /»mov e x , L01443 »/ 08BH, 016H, 04óh, 002H, /»mov c » . Í02¿cl *, O S B H ,0 2 ô H ,04 S H ,0 0 2 H , / *mo v sp . L 024 32 */ OSBH, 02EH, 04AH, .'02h, /»mov d p .-.'. 2-*3 »/ 08BH, 03ôh, 04 C H ,0 0 2 H . /»mov si. C .2-i; */, 0 8 B H , 0 3 E H ,0 4 E H ,002;-!, , *mo v ai. ¿ */ O S E H ,0 1ò H ,0 5 4 h ,0 0 2 H , *,r.ov ss. :v_14j */\ OSEH, 006H, 056H, 002H, . *c.o, s s . l O^I-' *, O F F h ,03 6 H , 0 5 8 H , 0 0 2 H , -» Pu s h ¡L25S»/ OFFH,03oH,050H,002H, /*p u s n */ OF F H , 0 3 6 H , 0 5 A H , 0 0 2 H , /»pu s n L2baJ */ 0 8 E H , 0 1 E H , 0 5 2 H,002H, /»mov a s , C02523 */ OCFH, / »ir e t »/ - 88 - 168. 2 169 170 2 2 */ 172 2 173 174 175 2 2 2 OFFH,OFFH,OFFH, O F F H , O F F H , O F F H ), A P C O D T 1 W O R D D A T A (.C O D T l ) ; O U T P U T C O F E H ) = OOH; C A L L MRES; IF C O M = 0 4 H T H E N CALL AFCODT1(.¿ F A U X > ; ELSE C A L L A P C O D T (.S P A U X ); C A L L A P I N CO; O U T P U T ( O F E H ) = OOH; E N D E J E SIM ; Procedimiento para Proporcionar el R e l o j d e l P r o t o t i p o ai E m u l a d o r 176 177 178 1 2 2 RELUS: PROCEDURE; O U T P U T (OFCH) = OOH; E ND RELUS; Procedimiento para Salvaguardar un P r o g r a m a en Disco 179 180 181 182 183 18 4 185 186 18 7 188 189 190 191 19 2 193 194 195 196 197 198 199 200 201 202 203 204 1 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 3 3 3 3 SALVA: PROCEDURE; C A L L RX; DIRINL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = DIRINL; C A L L RX; DIRINH = INPUT(RTRE); C A L L TX; O UTPUT(RTRE) = DIRINH; D I R I N = ( D I R I N H * 256) + D I R I N L ; C A L L RX; DIRFIL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) = DIRFIL; C A L L RX; D I R F I H = I N P U T (R T R E ); C A L L TX; O U T P U T(RTRE) = DIRFIH; D I R F I = ( D I R F I H * 256) + DIRFIL;. O U T P U T ( O F E H ) = OOH; DO WH I L E (DIRIN <= DIRFI); D A T G $ P T R = DIRIN; C A L L TX; O U T P U T ( R T R E ) = DATO; D I R I N = D I R I N + 1; END; /* T. rea - 205 206 2 2 O U T P U T (OFEH) END SALVA; 89 - = OOH; P r o c e d i m i e n t o p a r a T r a n s m i t i r v / o *.■ M o d i f i c a r ei C o n t e n i d o d e P u e r t o s #/ 207 208 209 210 1 2 2 2 211 2 212 214 2 2 215 216 21? 218 219 220 22 1 222 223 224 225 226 227 228 229 230 231 232 233 235 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 4 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 5 5 5 5 5 5 5 4 4 4 4 4 4 4 4 3 PUERTO; PROCEDURE; C A L L TX; CHAR - INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = CHAR; IF C H A R = 0 1 H T H E N C A L L M E M O R I ; ELSE DO; C A L l . RX; DIRINL = INPUT(RTRE); C A L L TX; OUTPUT(RTRE) - DIRIN L ; C A L L RX; D I R I N H = I N P U T (RTRE)-, C A L L TX; OUTPUT(RTRE) = DIRIN H ; D I R I N = C D I R I N H * 256 ) + D I R I N L ; O U T P U T ( O F E H ) = OOH; CHAR = INPUT(DIRIN); C A L L TX; O U T P U T ( R T R E ) = CHAR; C A L L RX; CHAR = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = CHAR; D O W H I L E C H A R <> 2AH; IF C H A R = 0 1 H T H E N D I R I N = D I R I N + 1; ELSE DO; C A L L RX; CHAR = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = CHAR; O U T F U T (D I R I N > = CHAfi ; D I R I N = D I R I N H- i; END: CHAR = INPUT(DIRIN); C A L L TX; O U T P U T ( R T R E ) = CHAR; C A L L RX; CHAR = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = CHAR; E ND ; O U T P U T ( O F E H ) = OOH; - 90 252 253 3 2 END; END PUERTO; P r o c e d i m i e n t o p a r a Inicial izar el S i s t e m a p o r H a r d w a r e 254 255 256 1 2 2 RESHA: PROCEDURE; O U T P U T (OFBH) = 00H; EN D RESHA; 257 25S 1 2 RINTRACE: PROCEDURE; D C G O D R I T <») B Y T E D A T A ( OIEH, /»push ds 05 0 H , /»p u s h ax 006H, / »push es O B S H ,O O O H ,O O O H , /*m o v a x ,00 O8EH,0D8H, /*mov ds,ax 08 E H , O C O H , / » m o v e s ,a 08FH,006H,056H,002H, /» p o p C2563 08FH,006H,040H,002H, /»p o p C 2 4 0 3 08FH,006H,052H,002H, /»pop C2523 08FH,006H,066H,002H, /»pop L266J O B F H , 0 0 6 H , 0 4 A H , 002H, /»pop C24a3 0 8 F H , 0 0 6 H , 0 5 A H , 002H, /*pop £25aJ 08FH, 006H, 050 H , 0 0 2 H , /*pop C2503 0 8 F H , 0 0 6 H ,0 5 8 H ,0 0 2 H , /»pop l 2583 089H,026H,048H,002H, / » m o v L2 4 8 3,5p 0 8 C H , 0 1 6 H ,0 5 4 H ,0 0 2 H , /»mov [ 2 5 4 3 , ss 0 8 9 H , 01 E H , 0 4 2 H , 0 0 2 H , /*mov C2423,bx 0 8 9 H ,O O E H ,0 4 4 H , 0 0 2 H , / * m o v 112443, ex 0 8 9 H , 0 1 6 H ,0 4 6 H ,0 0 2 H , /»mov C2463,dx 0 8 9 H ,0 3 6 H ,0 4 C H ,0 0 2 H , / » m o v C 2 4 c 3 , si Ö 8 9 H ,0 3 E H ,0 4 E H ,0 0 2 H , /»mov C24e3,di 0 B 9 H , 0 0 8 H ,O O O H , / » m o v c x ,8 050H, / » a i - fa:pusn ax 0E2H,0FDH, /»loop alfa 0B9H,008H,OOOH, /»mov ex,S 058H, / » b e t a : p o p ax 0E2H,0FDH, /»loop beta 0 8 E H , 0 1 6 H ,0 3 0 H ,0 0 2 H , /» m o v s s , [2303 0 8 B H ,0 2 6 H ,0 6 4 H ,0 0 2 H , / » m o v s p , C2 6 4 3 OFFH,036H,06òH,002H, /»push C2ò6 3 ÖC3H, /»ret OFFH,OFFH,OFFH, OFFH,OFFH,OFFH ), A P C O D R I T W O R D D A T A (.C O D R I T ) ; D C C O D S R I T (») B Y T E D A T A RUT I N A DE 259 2 INTERRUPCION * * * * * * ;e s » ;ax * ;d s * ; IP‘ regis» ;b p ' * ; ip » ;e s * ; -f * ;s p * ;s s * ;b;< * ;cx * :dx * ; si » ;di * * * * * » » ;s i s t * ;s ist * * * - 91 - 260 2 261 262 263 264 265 266 267 268 269 270 2 2 2 2 3 3 3 3 3 2 27 1 272 274 275 276 2 3 3 3 2 277 2 ( ÖA1H, 040H, 002H, / » m o v a x . C 2 4 v-j 0 8 B H , 01 E H , 0 4 2 H , 0 0 2 H , / » m c v t , C2--*l i 0 8 B H , O O E H ,0 4 4 H , 0 0 2 H , , » m o v c , : Z 4-4 J O S B H ,0 1 6 H ,0 4 Ó H ,u 0 2 h , /» m o v d x ,LIA o j OSBH,02óH,048H,002H, /»mov s p.CI48J 0 8 B H , 0 2 E H , 0 4 A H , 002H, /*raov b p , C 2 4 « j O S B H ,0 3 6 H ,0 4 C H , 0 0 2 H , / » m o v » i , L2 4 c J 0 8 B H ,0 3 E H ,0 4 E H ,0 0 2 H , /ftnov di,[.-*ei 0 8 E H ,0 1 6 H ,0 5 4 H ,0 Ü 2 H , /»mov = = . u 2 5 4 J 0 8 E H , O O o H ,0 5 6 H ,0 0 2 H , /*raov e s . L 2 5 = 3 O FFH,036H,058H,002H, / »pusn C2S3J OFFH,036H,050H,0Ö2H, /»push l2 5 0 j OFFH,036H,05AH,002H, /*Pu s n C25*j 0 8 E H , 0 1 E H ,0 5 2 H ,0 0 2 H , /*raov d s , L 2 5 2 j OCFH, /*ires OFFH,OFFH,OFFH, OFFH,OFFH,OFFH ), A F 'CQDSRIT W O R D D A T A ( . C G D S R I T ) ; D C S A L (») B Y T E D A T A ( 055H, / » p u s h Dp 089H,0E5H, / » m o v ü p .s p 0 8 B H ,0 5 E H ,0 0 4 H , /»mov b ,4 l d p Î 0B3H,OOOH,OOOH, /»mov a u.Ov 08EH, ODOH, /»mov s s , 0 3 6 H ,0 8 B H ,0 2 7 H , /» m o v s p , s s : Cbw j 0C3H, /»rec O F F H , O F F H , OF F H , O F F H ,O F F H ,O F F H ), AF'SAL W O R D D A T A (.SAL); CALL APCODRIT; CAL L REGIS; IF C O M <> O B H T H E N DO; C A L L RX; ABO = INPUT(RTRE); C A L L TX; O U T P U T ( R T R E ) = ABO; END ; IF ( A B 0 = 2 A H ) O R ( A B 0 = 0 3 H ) THEN DO; IF ( ( C O M = 01H ) A N D t A B G = 2 A H ) ) T H E N CAi_L C O r ^ E A ; C A L L A P 3 A L (.S P A U X ) ; END; ELSE CALL APCODSRIT; END RINTRACE; Procedimiento para inicialissr el Vector de Interrupción *. »■ ». *■ »*/ */ »/ »/ */ */ »/ */ »/ »/ »/ »/ */ */ »/ */ */ - 92 - 276 1 IN1VEC: FROCE ú U R E ; D C V E C T O R i») B V ' E D A T A ( O B ^ r w 0 O 4 H , OC OH. 0 C 7 H I 0 0 " h , O F '-i-, O F F H , OBBH, OOóH, OOOH, 0 C7H . 0 07H , OOOH, O O EH , 280 2 81 2 2 1 1 1 1 1 O U T P U T (LCRE) O U T P U T t.DI VH.i O U T P U T (DIVL) O U T P U T \ LC R E ) O U T P U T f.1ERE) ln ici si i sac ion dei B 2 $ u 1 1 i 2 2 2 1 1 1 1 2 2 2 1 1 i 2 2 2 2 2 2 3 4 4 4 4 ,* *< .. *■ = 80H; = OOH; OCH; « 0 7H; = OOH; Cuerpo Principal 287 288 289 290 291 292 293 294 295 29fa 297 298 299 300 301 302 303 304 305 306 307 308 309 31Ó 311 312 313 il * ••4 - * c io , OC3H, / OFFH.OFFH,OFFH, OFFH,OFFH,OFFh *, AF'VECT O Im O R D D A T A < . V E C T O F ) ; C A L L AF'V E C T O R ; EN D INIVECs /* 282 283 284 285 286 *t!.úv '-o.L-'. •**«'’ 0 •‘’" a / oe l h r o g rami' C A L L I N I VEC; CHAR = 0 7 H ; D O W H I L E C H A R £> OSM; C A L L RX; CHAR = INPUT(RTRE); END; C A L L TX; O U T P U T iRTRE) = 0 6 H ; I = 0; D O W H I L E I v. 14; R E G (I ) = 0; 1 = 1 + 1; END; R E S (4) = 6 OOH: REGÍS) = OEOOH; D O W H I L E OFFH;' C A L L RX; C H A R = I N P U T I R T R E :> ; C A L L TX.; O U T P U T •F TRE; * C H A P ; C O M « C H A R A N D OFh; D O W H I L E '-OOH v-- COfl} AM.0 ;C O N D O C A S E COM; C A L L CARGA; C A L L E J E S IN; CAL L RELEN; CALL MEMORI; Ot*H* 4 ^ -; ; • ^ - 93 7,14 4 315 4 4 31¿ 317 31S 4 4 3^9 4 320 321 4 323 324 325 326 327 32B 329 330 4 4 4 4 3 3 2 1 4 C A L L E J E 3 U VI¡ CAL L RELUS; CALL SALVA; Î i C A L L F'üEhTü; 5 C A L L EJESINi ; C A L L EJESIM: C A L L KESrlA: END; C O M = OFFH; END; END; E N D E M 8 ó_ S S ; - 94 - A P E N D I C E E MODULO DE INTERACCION CON EL USUARIO DEL EMULADOR ' - 95 - MOD U L O DE #de-fine N U L L /* I N T E RACCION CON EL USUARIO DEL E M ULADOR '\0 ' P r o t o c o l o d e c o m u n i c a c i ó n y l l a m a d o al m e n u p r i n c i p a l */ m a i n () e x t e r n u n s i g n e d vil 153; e x t e r n c h a r i; int c , c o n t ; in i e i D e s (); c l e a r s (); s e t c i (); c=inp <0x3F8); sal(5>; print-f ( " \ n \ n \ n E M U L A D O R . .." ) ; c = e n t (); i-f <c=!6) • E S P ERANDO ACKN O W L E D G E DEL •£ print-f ("\n \ n \n\rt\n E R ROR : EMUL A D O R DE S I STEMAS DIGITALES NO RESPONDE\n \ n \ n ) ; print-f <" C O R R E C T A M E N T E A C K N O W L E D G E F A V O R DE " ) ; print-f { " \ n \ n \ n E L E M U L A D O R . ”); elseC -for ( i=0; i <14; i++) vC i 3 = 0; vC43 = 0x600; vC83 = OxOeOO; f o r (cont=0;cont<=25;cont++) r e g an t C c o n 1 3 =0; l o g o <); do-í c = m e n u < ) ; > w h i l e ( c != N U L l ) ; c l e a r s (); > > /* P r o c e d i m i e n t o p a r a d e s p l e g a r el m e n u p r i n c i p a l m e n u () •C c h a r op; i nt i=0; p o s (10,8); p r i n t f ( " I M M M M M M M M M M M M M M M M M M M M M M M M M M / **> ; print-f Cf“ \033C‘ /.dm" , 1) ; print-f ( " M E N U P R I N C IP A L " ) ; p r i n t f < " \ 0 3 3CV.dm",0) ; */ p r i n t f (" .M M M M M M M M M M M M M M M M M M M M M M ; " ) ; p o s < 1 2 , 2 0 ) ; p r i n t f (" 1 . C A R G A R Y / G S A L V A G U A R D A R U N A R C H I V O " ); p o s ( 13,20);p r i n t f ("2.L E E R Y/ O M O D I F I C A R REGISTROS,MEMORIA, PUERTOS"); p o s (14,20);p r i n t f ("3.E J E CUTAR") ; p o s (15, 20) ; p r i n t f ("4. C O N D I C I O N E S D E C O N T R O L ' 1): p o s (16,20);p r i n t f ("5.INICIALIZACION"); p o s < 1 7 , 2 0 ) ; p r i n t f ( " 6 . R E G R E S O A L S I S T E M A (D O S ) " ) : p o s ( 2 0 , 4 7 ) ; o p = g a t c h (); w h i 1e (o p < '1I ! o p > 6 ' ) C p u t c h (7) ; o p = g e t c h () ; }; switch(op) C case 1 ': log l O ; a r c h (); 1o g 1 O ; break; c a s e '2 ': log l O ; l e e m o d (); logl O ; break; c a s e '3': 1 o g 1 (); e j e c u t a (); logl O ; break; c a s e '4': l o g 1 (); c o n d c o n t (); 1 o g 1 () ; break; c a s e '5': l ogl O ; i n i c i a (); logl O ; break; c a s e '6 ': return(NULL); > r e t u r n ( 1 ); /* Limpia la p a n t a l l a */ c l e a r s () •C p r i n t f ( " \ 0 3 3 C 2 J " ) ; /* P r o c e d i m i e n t o p a r a d e s p l e g a r c o n d i c i o n e s de co n t r o l c o n d c o n t () i nt d e c i = 0 ; */ - 97 - c h a r ope; doí p o s (10,8); ' p ri n t í ( " I M M M M M M M M M M M M M M M M M M M M / ") ; print-f < " \ 0 3 3 C ‘ /.dm" , 1 ) ; P r i n t i ( " C O N D I C I O N E S DE C O N T R O L 11) ; p r i n t f ("\ 0 3 3 E X d m " ,O ) ; p r í n t f ( " . M M M M M M M M M M M M M M M M M M M M : “>; p o s (12, 35) ; print-f ( " a . R E S E T " ) ; p o s ( 1 4 , 3 5 ) ; p r i n t f("b. R E L O J E M U L A D O R " ); p o s < 1 6 , 3 5 ) ; p r i n t i ("e. R E L O J U S U A R I O " ); p o s ( 1 8 , 3 5 ) ; p r i n t f ("d . R E G R E S O A M E N U P R I N C I P A L " ); p o s <20, 4 7 ) ; o p c = g e t c h <); wn i 1 e (o p c < *a ’ i í o p c > ‘ d '> •C p u t c h (7); o p c = g e t c h (); > s w i t c h <opc) •£ c a s e ‘a 's r e s <); l o g o <); break ; case‘ b ': r i c e O ; l o g o <); break ; c a s e 'c ': r e u s (); l o g o (); break ; c a s e d ': d e c i = l ; 33-wh i le ( !d e c i ) ; /*• Co m a n d o de RES E T por hard w a r e */ r e s () e x t e r n u n s i g n e d v C15 j ; e x t e r n c h a r i; i nt c , b a n ; c h a r opc; do£ ban=l; s a l (15); ■for (c=0; c < 3 0 0 0 0 ; c++) ; s e t c i (); c=inp(0x3F8); s a l (5); c = e n t (); c l e a r s (); i-f ( c = = 6 ) C p r i n t f ( " \ n \ n \ n \ n \ n \ n \ n R E S E T H A R D W A R E H E C H 0 ***"); ' - 98 f o r < i=0; i <14; i++) vC i 3 = 0; vC43 = 0x600; vC8] = OxOeOO; p u t c h (7); p r i n t f ("\ n \ n \ n \ n S n V n c u a l q u i e r t e c l a p a r a c o n t i n u a r ”); g e t c h (); } else-C p r i n t f (u \ n \ n \ n \ n \ n \ n \ n H A R D W A R E N O H E C H O *•**"); p u t c h (7); p r i n t f ("\n\n\n\n\n\n v o l v e r a r e a l i z a r el c o m a n d o o"); p r i n t f ("\n s a l i r del c o m ando"); o p c = g e t c h (); if < o p c = = 1 3 ) b a n = 0 ; > > w h i l e (!b a n ) ; /* C o m a n d o reloj del rice O emulador Presione FESET Presione cualquier otra RETURN para t e c l a pa»-a */ ' ■í int ca; s a l (18); c a = e n t (); c l e a r s (); p r i n t f <" \ n \ n \ n \ n \ n \ n \ n E M U L A D O R E N T R E G A D O **■*"); p u t c h (7); p r i n t f ("\ n \ n V n \ n \ n \ n tecla para continuar"); g e t c h (); } /* C o m a n d o reloj del u s u a r i o r e u s <) í int c , b r ; c h a r re; br=0 ; clearsO ; print-f ( " \ n \ n \ n (S /N ) ?">; do í re=getch <); i i (r e = = n ' ¡i r e = = 'N ') í *** R ELOJ DEL Presione cualquier */ Cuenta eu prototipo con reloj — 99 print-f (" \033C/idm" ,5) ; print-f (“ \n\n\n TRABAJAR SIN RELOJ ***"); print-f <"\Q33E%dm" ,O) ; p u t c h (7); print-f ("\n\n\n\n\n tecla para continuar"); getch (); > e Ise í i -fír e = = 's í ! r e = = 'S ') í s a l (21); c=ent í); print-f(“ \n\n\n\n\n TRABAJANDO CON RELOJ DE USUARIO ***"); print-f ("\n\n\n tecla para co ntinuar">; p u t c h (7); getch (); *** ERROR ; EMULADOR NO FUEDE Presione cualquier *** EMULADOR Presione cualquier e 1se i p u t c h (7); br = l ; > } wh i 1e (b r ) ; /* Comando de inicializacion */ inic ia() •£ int out=0; char opcion; doí pos (10, 8) ;print-f (" IMMMMMMMMMMMMMMMMMMMMMMMM/ " >; print-f (!I\033C’ '.dm1', i) ; print-f ("I NICIALIZAC ION"); p r in t i ("\033 CX d m ",0); pr int-f (” .MMMMMMMMMMMMMMMMMMMMMMMM; ") ; pos (13, 28) ;print-f ( 'a. SALTOS DE INST. RST" ); pos(15,2 8 ) ;print+("b.CONFIGURAR FTO. S ERIE"); pos (17, 28) ;p r ir.t -f¡."c .REGRESO A MENU PR IN C IP A L " ) : p o s (20,47); opc ion=ge t c h (); wh i le (opc ion< a ! ¡ opcion.f’ c ) í p u t c h (7); o p c ion=getch(); y s w i t c h (opcion) í case a' s c o n d r s t l O ; lo g o (); ' - 100 - break; c a s e 'b ' : v e l o c (); l o g o (); break; c a s e 'c' : o u t = l ; j} w h i 1 e (!o u t >; /* Procedimiento para salvar archivos -*/' #include "stdio.h" cha r a u x C 81923; s a r c h () Í char *autfile=NULL; u n s i g n e d -first, last; int t o t a l ; • int b y I f i r s t = 0 , b y h f i r s t = 0 , b y 1 l a s t = 0 ,b y h l a s t = 0 ; c l e a r s (); print-f ( " \n = = > S A L V A G U A R D A R A R C H I V O < = = ”); p u t c h (7) ; print-f (" \ n \ n N o m b r e d e l a r c h i v o a c r e a r (sin e x t e n s i o n ) : s c a n f ("7.s",outf ile) ; print-f ( " \ n \ n D i r e c c i ó n I n i c i a l (en h e x a d e c i m a l ) = “) : s c a n f ("*/.04x" , & -fi r s t ) ; ■ printf("\n\n D i r e c c i ó n F i n a l ( e n h e x a d e c i m a l )= "); s c a n f ("■/.04x",&last> ; if ( l a s t < f i r s t ) £ print-f (" \ n \ n \ n \ n \ n \ n *** ERROR: D I R E C C I O N I N I CIAL > D I R E C C I O N F I N A L ***"); p u t c h (7); p r intf í" \ n \ n \n\n\n Presione cualquier tecla para c o n t i n u a r " ); g e t c h (); r e t u r n (0 ); } i f (last>ó34B7L)í p r i n t f ("\n\n\n\n\n\n *** ERROR: D I R E C C I O N F I N A L F U E R A D E R A N G O * * * “); p u t c h (7); p r i n t f ("\ n \nVh\n\n Presione cualquier tecla para c o n t i n u a r " ); g e t c h (); ■ r e t u r n (0 ); . > t o t a l - (l a s t - f i r s t ) + 1 ; s t r e a t ( o u t í i l e , " . h e x "); b y 1f i r s t = f i rs t & 0 x F F ; b y h f i r s t = (f i r s t & O x F F O O ) » 8 ; b y h f i rstS<=0>;FF; by l l a s t = l a s t 8 í 0 x F F ; b y h l a s t = (1a s t & O x F F O O ) > > 8 ; - 101 - byh last8<=0xFF; printf ("\n\n\n\n\n SALVAGUARDANDO ARCHIVO___ "); p u t c h (7); . info(by1f irst,byhf irst,b y 1 last,byhlast); vac ia(total); crearch(outf i le,f irst,total); p r i n t f ("\n\n\n\n\n\n Presione cualquier te:la para c ontinuar."); g e t c h (); * /* P r o c e d i m i e n t o p a r a t r a n s m i t i r 4 byíes »/ i n f o (l o w l ,h i g h l , l o w 2 , h i g n 2 ) i nt l o w l ,h i g h l , l o w 2 , h i g h 2 ; ■ C int v ; s a l (6 ); v=ent () ; s a l (l o w l ); v=ent (> ; sal(highl); v=ent () ; s a l (l o w 2 ) ; v = e n t (); sal(high2 ); v = e n t (); vacia(tot) i nt tot; ■ C in t ind; f o r (i n d = 0 ; i n d < = t o t - l ; i n d++) a u x C i n d ] = e n t (); /■ *■ P r o c e d i m i e n t o p a r a c r e a r a r c h i v o c r e a r c h ( s a l ida,inicio, todos) char »salida; u n s i g n e d inicio; int t o d o s ; F I L E *fp,»fopen O ; unsigned after,bound; int track=0,byte s , i,chk; char bufferC1 7 3 ; fp=fopen(sal ida,"w"); i f ( f p = = N U L L ) í p r i n t f (" \ n \ n \ n \ n \ n \ n EL A R C H I V O ***"); p u t c h (7); p r i n t f ("\n\n\n\n\n c o n t i n u a r " ); *** E R R O R ; NO SE P U E D E Presione cualquier l REAR tecla para - 102 - retu r n (0); > b o u n d = in ic i o + t o d o s ; f o f ( a f t e r = i n i c i o ; a f t e r != b o u n d ; a f t e r + = b y t e s ) •C i f ( ( b o u n d - a f t e r ) > = 1 6 ) b y t e s = l ó ; else bytes-bound-after; f a r (i = 0 ; i < = b y t e s - 1 ; i++) b u f f e r e i : = a u iltrack+i 3 ; track+=i; c h k = c h ec k suiti(buffer,bytes) ; f p r i n t f .......... ; f p r i n t f (f p , :' % 0 2 x " , b y t e s ) ; fprintf(fp,"%04x",after); f p r i n t f ( f p , " O O ”) ; f a r < i = 0 ; i < = b y t e s - 1 ; ì +-h ) f p r i n t f ( f p , " % 0 2 x n , b u f f e r e i 3); f p r i n t f (fp, " % 0 2 x !l, chk) ; f p r i n t f (fp, ,!\n" ) ; > f p r i n t f (f p ,": 0 0 0 0 0 0 0 l F F \ n " ) ; fclose(fp); } /* F'racedimiento par a c a r g a r y/o s a l v a g u a r d a r a r e n i v o */ a r c h () int o u t = 0 ; c h a r opa; do-C P o s ( 1 0 , 8 ) ; p r i n t f ( " I M M M M M M M M M M M M M M M /") ; p r i n tf ( " \033C"/.dm!', 1) ; p r i n t f ( " C A R G A R Y / O S A L V A G U A R D A R A R C H I V O " ) ? p r i n t f ( " \ 0 3 3 l % d m ”, 0 ); p o s (13, 30) i p r i n t f ("a. CARGAR:’A R C H I V O " ) ; p o s (15,30);printf("b. SALVAGUARDAR ARCHI V O " ) ; p o s ( 1 7 , 3 0 ) ; p r i n t f ("c . R E G R E S O A M E N U P R I N C I F A u " ) s p o s ( 2 0 , 4 7 ) ; o p a = g e t c h (); while(opa<a ¡¡ o p a > c ')i p u t c h (7); o p a = g a t c h (); > swi t c h ( o p a ) £ case a : carchi); l o g o (); break; case 'b '; s a r c h (); logo i); break; case 'c'i out=l; > / * de l > w h i l e (!o u t ) ; /* de l d a */ y /* d e a r c h */ switch */ - 103 - p r o c e d i m i e n t o para c a r g a r a r c h i v o /* */ # d e f ine N U L L A O ' # d e f i n e BY'H 208 # def ine M A X S Z 5 #d e f ine DE F 53248L ttdefine L O W L I M 0000 #def ine H I B L I M 65536L int t o t b y t ; u n s i g n e d lo w e r ; c a r c h () •C int i = 0 , c = 0 , f l g = l , f l g 2 = 0 , l a p = 0 , i n d = 0 , an; int b y t h = 0 , b y t 1=0; int t o t l o w = 0 , tothigh= 0 ; c ha r m e m o r i a E 325003; int *k; char filnameC203; c h a r i n d i r E M A X S Z 3; do-C an=0; c l e a r s (); print-f ("\t \t = = > C A R G A R A R C H I V O < > = \ n !I) ; p u t c h (7); print-f < " \ n \ t I n d i q u e d i r e c c i ó n i n i c i a l (en h e x a d e c i m a l ) "); print-f ( " \ n \ t 'R E T U R N ' d i r e c c i ó n 7.041!-: H p o r d e f a u l t " ,D E F ) ; print-f < " \ n \ t ( L i m i t e i n f e r i o r 7.04x H) = % L Q W L I M ) ; c = i n n a m e (ind i r , M A X S Z ); i f (c==0) C lower=DEF; byth=BYH; b y t 1=0; else { i = s t c h _ i (in d i r , k) ; if ( ! i » f l g 2 = l ; bytl=lower&0xFF; b y t h = (l o w e r k O x F F O O Í >.>8; byth&=0xFF; > i f ( f l g 2 !! l o w e r C L O W L I M !! l o w e r > = K i B L Í M ) í printf ("\n\n\n\n\n\n ==-Dirección I n c o r r e c t a •■:.=="); p r i n t f (" \ n \ n \ n \ n P r e s i o n e cualquier tecla continuar">; p u t c h (7); g e t c h (); an = l ; > J w h i le(an); s e n d d i r ( b y t 1 , b y t h ); p r i n t f ("\n\n\t N o m b r e d e l a r c h i v o (Con e x t e n s i o n . H E X ) : " ) ; s c a n f ( ""/.s" , f i 1 n a m e ) ; p - 104 - dump(f ilname,memoria); totlow=totbyt&OxFF; t o t h igh = (t o t b y t & O x F F O Q ) >>85 toth igh£<=OxFF; sendtot(totlow,tothigh) ; s e n d d a t a (mem o r i a ,0 ,t o t b y t > ; p r i n t f (" \ n \ n \ t f t * * * # # * # * # # * # # * * * # # * * # * * # # # # * * # * * * * * * # * # # # * * * * # * * # * # * * - * * ♦" ■* print-f ("\n E x t e n s i o n t o t a l del a r c n i v o : tia a v t e s a e a a t o s " ,t o t b y t ) ; p r i n t f (" Vn E x t e n s i o n t o t a l de l a r c h i v o s >4-; h b> t e s d e d a t o s " ,t o t b y t ); p r i n t f ("\n\n\t print-f (,5\ n \ n \ n \ n p u t c h (75; p r i n t f (" \ n \ n \ n \ n c o n t i n u a r . "); g e t c h (); } #define RET 13 i n n a m e ( a d d r , 1 imit) c h a r addr£3; int li m i t ; £ int n o l i n = l , b = 0 ; a d d r C b 3 = g e t c h (); if ( a d d r C b J — R E T ) •£ p r i n t f ( " \ n \ n POR DEFAULT <="); p u t c h (7); nalin=0; r e t u r n (nolin); *** A R C H I V O C-.'-.SADO Presione cualquier D000 H • y . p u t c h ( a d d r C b 3); b++ ; doí a d d r C b 3 = g e t c h ()5 p u t c h ( a d d r C b + f 3>; i f ( (adarCb-13==8> i ¡(ad d r C b - 1 3 = = O x 7 F ) 3 b— ; }w h i l e ( a d d r C b - 13 i= R £ T & & b < l i m i t ) ; addrCb 3 = ’ \ 0 '; r e t u r n ( n o ! i n ); > / * P r o c e d i m i e n t o p a r a d e s p l e g a r el s u b m e n u c o r r e s p o n d í e n t s /* l e c t u r a y / o m o d i -fi c a c ion d e r e g i s t r o s , m e m o r i a y p u e r t o s u n s i g n e d byme=0; int s i g d a t ; e x tern cha r contC53; l e e m o d () ■*#*") ; tecla para => - 105 - •C int fin=C; char opt; doC pos(10,8);printf("IMMMMMMMMMMMMMMMMMMMMMM/'"); print-f (11\033C ’ /.dm“, 1) ; Pr in t-f("LEER Y/0 MOD IFI CAR " ); Pr in t f (" V033C‘ /.dm“ ,0> ; printf C".MMMMMMMMMMMMMMMMMMMMMM;"); pos(12,29);printf(“a. REGISTROS"); p os(14,29);printf("b. LOCALIDADES DE MEMORIA") ; p os(16,29) ;printf("c. PUERTOS DE E/S“); pos (18, 29) ;printf C ‘d. REGRESO A MENU PR INC IPAL''> pos (20, 47) ;opt;=getch () ; while(opt s'a ¡I opt> d ') i putch (7); opt=getch (); SWÍ tch (opt) Í case a': limpiad ; sal(Ok Oc >; desp_ventanas(); regs (); logo(); break; case 'b's locamemo(O); logo(); break; case 'c': locamemo(l); logo(); break; case 'd ': fin=l; >while(!fin); > . #def ine DEFME 53248 #def ine DEFPTO 0 locamemo<arg) int arg; •C int carmem, sa lmem=l,salpto=l,carptoj char vermem,pto; if (arg=-0) í do i clears (); saimem=l; print-f <" =-> MEMORIA <«">; putch ( 7 ); printf ("\n\n comanao"); printf (11\n\n OPCIONES 1.- POR PAGINAS.\n">; printf (" printf("\t\t\t\t\t\t ? do •£ carmem=l; swi tch(vermem=getch()) LEER Y / O MODIFICAR * para saiir c-ei : \n 2.— SECUENCIAl . \n''); - lOó - - 107 - ■ C int o p c , i , * k , b y m e n = 0 , b y m a y = 0 , e c o ; printf("\n\n I n d i q u e ia d i r e c c i ó n i n i c i a l he;;adec i m a l ) " ) ; printf("\n o R E T U R N ' p a r a la d i r e c c i ó n i n i c i a l if ( b y d i r = = 4 ) C p r i n t f <" X 0 4 x H p o r d e f a u l t = " , D E F M E ) ; e l s e p r i n t f ( "7.02a H p o r d e f a u l t = " , D E F P T O > ? o p c = r e c d a t ( b y d i r , 1); swi t c h ( o p c ) í c a s e 0 s i = s t c h „ i ( c o n t ,k ) ; byme=*k; b y m e n = b y m e k OxFF; if(bydir==4) •£ bymay=(byme &. OxFFOO) bymay&=Ü>;FF; sal(3); eco=ent (); sal(bymen); e c o = e n t <); sal(bymay); eco=ent (); sigdst=ent (); r d a t m (1 ); > e l s e C s a l (9); e c o = e n t (); sal(byme); e c o = e n t (); s i g d a t = e n t (); r d a t m (0); return; case 1 : if (bydir==4) ==> D00Q H por default (en >> S; ■Cbyme=DEFf'iE; p r i n t f <11\ n \ n < = = \ n " ); p u t c h (7); b y m e n = b y m e It O x F F ; b y m a y = ( b y m e V. O x F F O O ) E: bymayS^OKF'F; s a l (3); e c o = e n t (); s a l ( b y m e n ); eco~ent(); ■ sal(bymay); e c o = e n tí); sigdat=ent O ; r d a t m (1); else x byme=DEFPTQ; p r i n t f ("\ n \ n 00 H por default <==\n"); =-> . p u t c h (7); s a l (9); e c o = e n t (); - IOS - sal (by.nei ; eco=ent i) ; siqdat=ent£;; r d a t m (0); 3return ; case 3 : return; case 4 : i=stch_i<cont, k> ; b y me= *k; bymen=byme OxFF; if <bydir==4) £ bymay« (byme «t C x F F O O bymaySe=GxFF ; sai(3 ) ; ec o = e n t (); sai(bymen); eco=ent (): sai(bymay): e c o = e n t (); sigda t=e nt();• rdatm il); } else -C sai (9); e c o = e n t (); p u t c h (8); print-f (" p u t c h (8); print-f ("X02:< H',byme> ; sai(byme); ,=•> Si s i g da t=e nt(); rdatm(0); return ; #define LIM3UPM OxFFFF #de-f ine LIMSUPF OxFF rdatm(esmem) •C int regre=0,c a r a c ,i=0,*k,eco,dato,saite=0; print-f ("\n" ) ; do Í if (esmem— 1) -Cpr-intf ("\n\n 5404x H = V.OZa H'.n *X-4x H = ",byme,s iga at,b ym e ) ¡ > else -Cprintf ("\n\n %G2x H = *102 x H\n *.02x H = -,bvmè. sigaat, b -me 5 > c a r ac =re cda t(2,1) ; swi tch(carac) i case 0 : i=stch_iicont,k); dato=*k; dato=dato&OxFF; s a i (0); - 109 - e c o = e n t (); s a l (dato); e c o = e n t (); break; c a s e 1 : s a i (CbiOD) ; e c o = e n t (); break; case 3 : s a l (0X2A); e c o = e n t (); saite=l; break ; c a s e 4 : i = s t c h _ i ( c o n t ,k) ; dato=*k; s a l (0); e c o = e n t (>; sai(dato); e c o = e n t ( ); p u t c h (8); p r i n t f (" "); p u t c h (8): p r i n t f ( "“ /.02k " , d a t o ) ; > i f ( s a l te==0) C s i g d a t = e n t (); if ( e s m e m = = l ) else -i if ( b y m e = = L I M S U P M ) e l s e ++byme; Í i f (byme==LIMSUPP) else ++byme; byme=0; byme=0; ì > > w h i l e ( s a 1t e = = 0 ) ; > . #define RET 13 i n n a m e 2 ( addr e s , limite) char addrest]; i nt l i m i t e ; int n o i i n = l ,b=0; a d d r e s C b j = g e t c h (); if (add r e s Cb 3 = = R E T ) •£ noiin=0; r e t u r n ( n o i i n ); i f ( a d d r e s Cb 3= = * ' ) C p u t c h (7); noiin=-l; r e t u r n ( n o i i n ); d ++; else C p u t c h ( a d d r e s C b ì ); b++; - 110 - doí y a a d r e s C b 3 = g e t c h () ; p u t c h <addresLb+-¡-3) ; i t ( a d d r e s C b J = = * ') í p u t c h (7) ; nolin=-i; r e t u r n ( n o l i n ); > if ( ( a d d r e s L b - l j = = 8 ) ¡ ¡ ( a d d r e s C b - 1 J = = ü x 7 F ) ) b— ; > w h i I e (a d d r e s C b —i 3 ! = R E T & & b < l i m i t e ) ; a d d r e s E b 3 = ' \ 0 '; r e t u r n ( n o l i n ); /* P r o c e d i m i e n t o p a r a d e s p l e g a r el l o g o t i p o de l e m u l a d o r logo O •C int j; c l e a r s (); p r i n t f <,,\ 0 3 3 C 2 J " ) ; p o s (1 ,2 1 ); print-f ( " \ x D B \ x D B \ x D B \ x D B \ x D B \ x D D \ x D E \ x D B \ x D B \xDB \xDB\xDB\xDB\xDB \xDB\xDB\xDB\xDC \xDB\xDB\xDB\xDB ’ *) ; p r i n t f (" \ x D B \ x D B \ x D B \ x D B " ); p o s (2 ,2 1 ); printf("C C3 C C C C L I C C L C C */ -.«DE í •') ; p o s (3,2 1 ) ; p r i n t f ("\xDB\xDB\xDB \x D B \ x D E \ x D D \ x D B \xDB \ x D B \xD B \ x D B \ x D B \ x D B \ x D B \xDB \xDB \xDB \ x D B \ x D B \ x D B \ x D B \ x D B " ); p o s ( 4 ,21); p r i n t f ( M\xDB \x D B \ x D E \ x D D \ x D B VxDB \xDB SxDB \xDB \xDB \xDB \xDB \xDB SxDB \xDB \xDB\xDD"); p o s (5,21) ; p r i n t f ("\ x D B \ x D B \ x D B \ x D B \ x D B \ x D E \ x D D \ x D B \ x D B \ x D B \ x D E \ x D B \ x D B \ x D B \ x D B \ x D B \xDB \ x D B \ x D B \ x D B \ x D B \ x D F \ x D B \ x D B \ x D B \ x D B " ); p r i n t f (“ \ x D B \xDB\xDD"); print-f ( " v 0 3 3 E % d m !:, 1 ) ; p o s < 7 , 20); p r i n t f ("D E S I S T E M A S D I G I T A L E S ' ) ; p o s ( 8 ,31); p r i n t f ("8 0 8 8 8 0 8 6 ”); p r i n t f í \ 0 3 3 C V.am“, 0) ; tramen O ; id O ; > frameiiO •L int i; f o r ( i = 1 1 5 i< = 19; ii-+) C p o s (x , 8 ) ; printf("\xBA"); p o s ( i , 73); - Ill - p r i n t f ("\::BA" ) ; p o s (2 0 , 8 ); print-f ( " H M M M M M M M M M M M M M M M M M M M M M M M M M M M M M M / 1!): print-f (“\0-33 l 7 . d m , 5) ; print-f ( " O P C I O N ? " ) ; p r i n t -f ( “\ 0 3 3 C 7.úm " , O ) ; p o s (20,48); print-f ( " . M M M M M M M M M M M M M M M M M M M M M M M M < :!) ; > id(> •C p o s (22, 23); P r in t f ("\ 0 3 3 C % d m ",1); print-f ( " U N I V E R S I D A D A U T O N O M A M E T R O P O L I T A N A " ) ; p o s (23 , 3 2 ) ; print-f ( " U N I D A D A Z C A P O T Z A L C O " ) ; p o s (24, 3 1 ) ; printf("PROYECTO H - P R E S I D I U M " ); p o s (25, 40) ; p r i n t f ( " l 9 8 7 11) ; print-f ( " \ 0 3 3 C X d m " , O) ; > log 1 O í int i ; ■for (i = 12; i <=18; i++> -C p o s (i , 1 2 ); p r i n t f (" > /* /* extern P r o c e d i m i e n t o p a r a el submenu, c o r r e s p o n d i e n t e a l o s m o d o s d e ejecuci'on ») - */ */ int b a n d e r a ; e j e c u t a () ■ £ c h a r op; int e n d = 0 ; do í bandera=0 ; p o s (10, 8 ) ; print-f ( " IMMMMMMMMMr'lMMMMMMMMMMMMreiMMy " ) ; p r i n t -f ( " \ 0 3 3 C % d m " , 1) ; print-f (11E J E C U C I O N ") ; p r i n t f ( " \ 0 3 3 C *idm 1, 0 ); print-f l " . M M M M M M M M M M M M M M M M M M M M M M M M M M M ; " ) ; p o s (13, 13) ; p r i n t f ( " a . EJECUCION POR ETAPA SIMPLE"; p o s (14, 13) ; p r i n tf ( " b . E J E C U C I O N POR ETAPA SIMPLE AUTO p o s (15, 13) ; p r i n t f ( "c. EJECUCION POR BLOQUE’ ') r p o s (16, 13) ;p r i n t f ("d. EJECUCION EN TIEMPO R E A L 1> ; p o s ( 1 7 , 1 3 ) ; p r i n t f ("e. R E G R E S O A M E N U P R I N C I P A L " ); p o s (2 0 ,47); o p = g e t c h (); w h i l e ( o p < ' a ' ! ¡op> e ') í p u t c h (7); ' - 112 - o p = g e t c h (); 3 swi t c h ( o p ) C c a s e 'a : c h o i c e l O ; l o g o (); break ; c a s e 'b': choice2(); l o g o (); break; case c': choice3<); l o g o (); break ; c a s e 'd': choice3(); l o g o (); break; case e : end=l; > > w h i l e ( iend) ; extern unsigned lo w e r ; c a p s (team, b b o i , b b ai,bbo-f,bba-f) i nt t e a m ; int * b b o i , * b b a i , *bbo-f, *bba-f; £ int c = 0 , i = 0 , * k ; char direCSD; u n s i g n e d lowaux; print-f (" \ n \ t I n d i q u e d i r e c c i ó n i n i c i a l (en h e k a o e c i m a 1) " ) ; print-f (" \n ' R E T U R N ' p a r a t o m a r la d i r e c c i ó n i n i c i a l p o r de-fault ( H) =", l o w e r ) ; c = i n n a m e ( d i r e , 5); i-f ( !c ) -C * b b o i = lowerá<0 jíF F ; * b b a i = < l o w e r & O x F F O O ) >>8; ■*bbai8<=0;<FF; j- else i i=stch_i(dire,k); i-f(li) i print-f ( " \ n \ n \ n \ n p u t c h (7) ; prxnt-f ( " \ n \ n \ n \ n p a r a c o n t i n u a r . '); g e t c h (); r e t u r n (-1); Dirección íncorrsctéXn-’ ); Presione cualquier recia j lowauK-*k; * b b o i —1 o w a u ;<■?<0 F F ; * b d a i = (lcwau:<?(0 ¡<FF0 O ) > >8; *bbaiSí=0;;FF; i -f (team) £ print-f ( " \ n \ n c = i n n a m e ( d i r e , 5); i -f ( !c ) ■ £ i i (t e a m = = 2 ) Indique dirección *bbo-f=-l; fxnai (en rf«;-aaecxmai) - 113 - e l s e í p r i n t f (“\ n \ n \ n D i r e c c i ó n F i n a l I n c o r r e c t a v n " ); p utch Í7) ; p r i n t f <"\n\n\n\n p a r a c o n t i n u a r . "); g e t c h (); r e t u r n í - 1 ); ] Presione cualquier else C i = s t c h _ i ( d i r e , k) ; if(!i> í p r i n t f ("\n\n\n p u t c h (7); p r i n t f ("\n\n\n\n para continuar."); g e t c h (); r e t u r n ( - 1 ); } lowaux=*k; *bbof=lowaux&OxFF; * b b a f = í lowauxí e O x F F O O ) > > 8 ; * b b a f 8«=0xFF; . Dirección tecla Incorrecta\n"!; Presione cualquier tecla } y /* P r o c e d i m i e n t o del c o m a n d a de e j e c u c i ó n po r e t a p a s i m p l e c h o i c e l () ■ í e x t e r n c h a r cat; int b a j o , a l t o , v , e c o ; c l e a r s (); p u t c h (7); sal(OxIB); v = e n t <); printf<"\n ==> E J E C U C I O N PO R ETAPA S I MPLE <=* d e s p _ v e n t a n a s (); r e g s 2 (); p u t c h ( 7 ); do-C regsO ; p u t c h (7); * > w h i l e ( c a t :=' * ' ) ; s a l ( 0 x2 A ) ; v-entí); /* co m a n d o de ejec u c i ó n c h o i c e 2 <) ■ í e x t e r n c h a r cat; int b a j o , a l t o , v , e c o ; clears O ; p u t c h (7); por etapa simple automatica . ">s */ */ - sal(OxIB); v = e n t <); p r i n t f <"\n A U T O M A T I C A < = = ”); d e s p _ v e n t a n a s () ; r e g s 2 (); p u t c h ( 7) ; p o s ( 2 3,9); p r i n t f (11 "); do£ r e g s 3 (); p u t c h (7); > w h i le (cat !=='*'); s a l (0x2A ) ; v = e n t (); /* 114 - ==> E J E C U C I O N FOR E T H r A SIM P L E p r o c e d i m i e n t o p a r a el c o m a n d o d e e j e c u c i ó n poi' o l o q u e */ c h o i c e 3 () •C e x t e r n c h a r cat; int b a j o , al t o , v , eco; c l e a r s (); p u t c h (7); s a l ( 0 x 11); v = enti); p r i n t f ("\n ===> E J E C U C I O N P O R B L O Q U E < = = ' > 5 print-f ("\n C o n d i c i o n e s I n i c i a l e s " ; 1; d e s p _ v e n t a n a s (); r e g s 2 <) ; p o s ( 2 3 , 9 ); p r i n t f (" D i r e c c i ó n F i n a l d e B l o q u e (en H e x a d e c i m a l ) ? c a p t e l (); p o s (3,20); p r i n t f (" "); p o s ( 2 4,9); p r i n t f (" EJECUTANDO BLOQUE " ); do í r e g s 4 (); j- w h i l e (cat != *'); sale(code,low,high) i nt c o d e , l o w , h i g h ; •£ int cap; if '.code< 1000) i s a l (code) : c a p = e n t (); sal(low;; c a p = e n t () ; sal(hign); cap=ent(); "); - ^include 115 - <deín.ext> /'* D e f i n i c i ó n de puertos para el 8250 de la FC */ #de-f i n e C O N T R O L 0 k 3 F B «define DLH Ox3F9 # def ine DLL 0 x 3 F B # def ine S T A T U S 0 x 3 F D ttdefine B U F F E R 0 x 3 F 8 /* /* A T 0 H T 0 I .- C o n v i e r t e u n a c a d e n a d e a s c i i ' s ( d e d i g i t o s h e x a d e c i m a l e s ) a un n u m e r o e n t e r o , el c u a l r e g r e s a . unsigned c h a r *a; • C unsigned i n t i =0; atohtoi (a) n=0; w h i l e (aCi3 != N U L L ) í if ( d i g i t o (aC i 3) ) n = 16 * n + a C i + + j e l s e i-f ( m i n ( a C i l ) ) n = 16 * n + a C i + + 3 e l s e if ( m a y (aC i 3) ) n = 16 * n + a E i + + 3 3r e t u r n (n) ; /* /* /* */ */ ' 0 ‘; ' a ‘ + 10; 'A' + 10;. . C O N F IGURA.- P r o g r a m a c i ó n por d efault del p u e r t o se r i e d e la P C . : 8 b i t s , 2 d e p a r a d a , s i n p a r i d a d , 2 4 0 0 b a u d s. configura */ */ */ O • C outp(CONTROL, 0x80); outp(DLH, 0x00) ; outp(DLL, 0x30); outp(CONTROL, 0x07); /* /* unsigned i I N...W0KD.- T o m a d e l p u e r f c o a e r i e 2 b y t e s y l o s a n s a m o l a p a r a f o r m a r y d e v o l v e r u n nufliera a e 1 6 b i t s . */ i n „ w o r d () ' c n a r b a ,j a ; u n s i g n e d alta; */ - b a j a = r e e i); t rans(baja); a l t a = ree O : t:rans ( a l t a ) ; alta = alta * 256 r e t u r n ( a i t a ); + lìò - (int)baja; LEE_WORD.- Lee dei teclado una serie nasta ce J dígitos hexadecimales, colocándolos en ei apuncrcar que recive corno parametro. Regresa 0 si no se tecleo nada o I en caso contraria. char lee_word (cadena) char »cadena; •C char algo = 1; char g, j = 0; while ( (g = ge'tchO) != CR ) ■ C i-f ( digitoCgí I ¡ m a y (g) ì ? min(g) -í i-f < j < 4 ) •í cadenaEj+T] = g; putch (g.i ; > else if ( g == B3 ) í if ( j > O ) í p u t c h ( g ); putch < 0x20 ); putch ( 0x06 ); if ( j = = 0 ) a l g o = 0; c a d e n a L j 3 = NULL; r e t u r n ( a l g o ); /* LIMPIA.- Borra limPiaO printf ("\033C2J"); la pantalla ae la terminai. /* /* /* 117 - O U T _ W G R D . - T r a n s m i t e p o r el p u e r t o s e r i e u n n u m e r o d e 16 b i t s , en -forma d e 2 b y t e s consecutivos p r i m e r o la p a r t e b a j a y l u e g o la a l t a . out_word(num) unsigned num; ■C c h a r baja, alta; b a j a = n u m & Oxf-f; t r a n s í b a j a ); b a j a = r e c í ); a l t a = (n u m >> 3) & Oxf-fj t r a n s í a l t a ); alta = r e c O ; /•* P a r t e b a j a */ /* P a r t e a l t a */ > F'QSC.-- P o s i c i o n a ei c u r s o r d e y columna deseadas. la p a n t a l l a e n ia l i n e a pose ‘ .a, b) int a,b; •C print-f (“\ Ó 3 3 C % d ; /idH" , a, b ) ; y F‘ U T F _ H E X A . - E s c r i b e en p a n t a l l a u n d e c i m a l e n -forma d e d í g i t o s he;-iaüecimales, a j u s t a n a o l o ai c a mpo deseado. Si el c a m p o e s m a y o r q u e el e s p a c i o n e c e s a r i o para i m p r i m i r el n u m e r o , s e c o m p l e t a c o n c e r o s , en caso c o n t r a r i o , s e i g n o r a el c a m p o . put-f_he;<a ( n u m , c a m p o unsigned num; char campo; ) •í rc h a r f 1 C) 1 ; * a II103 int i = 0; while ( num > 0 ) •L aC i + + 3 = n u m 7. 16s n u m = n u m / Ib; > w h i l e ( c a m p o ¡> i ) putch ( /* C o m p l e t a c o n c a r o s 0 ) ; 3while ( i > 0 ) i i— ; i-f ( aC i 3 > 9 ) aC i 3 = a C i 3 else a t i3 =aCi3 + 0'; + A' - 10 ; *■ putch 118 - (aC i 3); > /* REC.-Devuelve un c a r a c t e r l e í d o dei p u e r t o s e r i e . */ r e c (> •í int st; do í s t = i n p <S T A T U S ) ; s t & = 0 x 0 1; >while(i s t ) ; s t = i n p (BUFFER); return(st); /* /* / * P o l 1 in g s o b r e el S T A T U S d e l R!; */ • T R A i M S . - E f e c t ú a u n o u t p p o r el p u e r t o s e r i e (un s o l o c a r a c t e r ) . */ */ trans(x) c h a r x; int st; do •C s t = inp ( S T A T U S ) ; s t S{= 0 x 2 0 ; >w h i le (!s t ); o u t p ( B U F F E R , x)s / * P o o l l i n g s o b r e el S T A T U S -¡el Tx * / > /* Procedi mien t o para recibir, d e splegar y /o m o d i ficar * ' /* el c o n t e n i d o d e l o s r e g i s t r o s d e l m i c r o p r o c e s a d o r */ #include <stdio.h> #include <defn.ext> unsigned c h a r i ,1; c h a r ca t ; r e g s () v l 153; ■£ unsignea char atohtoiO; c, k, al g o , a p p C 10.3, no_cambios = l e e _ w o r d (); l e e _ r e g i s t r o s (); 1, - 119 - desp_reg istros () ; s epa ra_ banderas( vC123 ); p o s e ( 2 3 , 9 ); p r i n t f (" CM3.- M o d i f i c a I n s t r u c c i ó n "); p o s e ( 24 , 29 ); p r i n t f ( " [ * ] . - R e g r e s o a M e n u “'); pose í 6 , 1 6 ) ; p r i n t f ("/"); putch CBS); /* Interpretador CESC3.- Ej e c u t a */ i = 0 ; 1 = 6; k = 16; while <((c = g e t c h O ) £ pose ( 1 , k ) ; p r i n t f (" " ) ; if ( c == NULL !» ESC) && (c != ABORT) && le !» * 11 ) c = g e t c h () ; if ( c = = B A J A ) b a j a „ c u r s o r (); e l s e if ( c = = S U B E s u b e _ c u r s o r (); ) > e 1se if < c == ' M ' ! I c = = ■ í n o _ c a m b i o s = 0; p o s e ( 1 , 33); P r in t f ( " "); p o s e ( 1 , 3 3 ); .algo = lee _ w o r d ( a p p ) ; if ( a l g o !» 0 ) v C i 3 = a t o h t o i (app); if ( i = = 12 ) ni ) £ v l 12 j %>.- O x F E F F ; s e p a r a _ b a n d e r a s ( v [ 123); y p o s e ( 1 , 33 ); pu.tf_he;ia ( v L i 3 , 4 ); ir ( i == 3 ¡¡ i == 7 !• i == 9 ) £ 1 = 1 + 2; i = i + 2; e l s e if ( i = = £ 1 = 6; i = 0; > else 1++; 12 ) t* Apaga la b a n d e r a T -* - 120 - i++; > 1 pose ( 1 , k ) ; print+CV") ; putch(BS); > /* w h i l e ( i n t e r p r e t a d o r ) */ if ( c != '* ) if Í c = = A B O R T i ! n o _ c a m b i o s = = 1 ) / * T e r m i n a = m a c t u a l i z a r * ■ C t r a n s í C R ); c = r e e () ; y else /'* T e r m i n a y e n v i a el contenido actualizado d e Ics r e g i s t r o s */ •C t r a n s ( E S C ); c = r e e ( ); for ( i = 0 ; i < 14 ; i++ ) o u t _ w o r d ( vili 3 ); > c a t = c; /'* /* P r o c e d i m i e n t o p a r a d e s p l e g a r y m o a i-ficar el c o n t e n i d o d e los r e g i s t r a s d e l m i c r o p r o c e s a d o r r e g s 2 () •C unsigned char */ */ atohtoiO; c, k, al g o , a p p C 103, n o _ c a m b i o 5 = 1, l e e _ w o r d () ; d e s p _ r e g i s t r o s () ; s e p a r a _ b a n d e r a s ( v C 1 2 3 ); p o s e ( 2 3 , 9 ); p r i n t f (”C M 3 . - M o d i f i c a C E S C 3 . - A c t u a l i z a y E j e c u t a “); p o s e ( 2 4 , 2 ? ); poseí 6 , 1 6 ); p r i n t f ("/'•) ; putch(BS); /* I n t e r p r e t a d o r */ i = 0 ; 1 = 6; k = 16; w h i l e ( ( (c = g e t c h O ) != ES C ) && (c != A B O R T ) (c != * )) - 121 - C p o s e ( 1 , k )5 P r i n t + <" ") ; if ( c = = N U L L .) < c = g e t c h (); if ( c = = B A J A ) b a j a _ c u r s o r () ; e l s e if ( c = = S U B E sube_cursorC > ; else if ( c -= : M ' ! ! c == m' ) no_cambios = 0; p o s e ( 1 , 33); p r i n t f (" "); p o s e í 1 , 3 3 ); algo = lee_word(app) ; if ( a l g o != 0 ) v C i H = a t o h t o i (app); p o s e ( 1 , 3 3 ); p u t f _ h e x a ( v i i l , 4 ); if ( i = = 3 ! ¡ 1 = = 7 ¡ ! i = = 9 ) •C 1 = 1 + 2 ; i = i + 2; e l s e if ( i = = C 1 = 6; i = 0; > else •C 1 ++; i++; > 12 ) ì pose ( 1 , k ); p r i n t f ("/"); putch(BS); > / * w h i l e (i n t e r p r e t a d o r ) */ if < c != ) for ( i = 0 ; i < 14 ; i++ o u t _ w o r d ( v C i l ); c a t = c; /* /* ) F ' r o c e d i m i e n t o p a r a r e c i b i r y d e s p l e g a r el c o n t e n i d o d e ios r e g i s t r o s d e l m i c r o p r o c e s a d o r regs3t) int c o n , c o n l ; char c,lee_word O ¡ 1 e e _ r e g i s t r o s () ; d e s p _ r e g i s t r o s () ; - 122 - s e p a r a _ b a n d e r a s <vC123); p o s e < 2 3 , 29); p r i n t f < " C * j .~ R e g r e s o a M e n ú “); c = CR; if ( k b h i t O ) c = g e t c h (); if (c != '*') •C con = 0 ; do í conl = 0 ; do í conl = conl + 1 ; y w h i l e ( c o n l < 4 0 0 ); con = con + 1 ; > w h i l e ( c o n < 1 0 0 0 ); trans(CR); c = r e c C ); J c a t = c; > /* P r o c e d i m i e n t o p a r a r e c i b i r y d e s p l e g a r el c o n t e n i d o d e */ /* l o s r e g i s t r o s c o n el c o m a n d o d e e j e c u c i ó n p o r b l o q u e */ r e g s 4 () í char c,lee_word()j c = CR; i-f ( k b h i t O ) c = g e t c h <); i-f (c = = '*■) t r a n s <0>;2A) ; el s e trans(CR); c = r e c (); i-f (c - = * ) 1 e e _ r e g i s t r o s () ; d e s p _ r e g i s t r o s () ; s e p a r a _ b a n d e r a s ( v l 123) ; p o s ( 2 4,9); p r i n t f ( 11 c = g e t c h (); wh i l e ( c != * ') ■ i p u t c h (7) ; p u t c h (7); c = g e t c h (); > y c a t = c; > L e c t u r a de r egistros */ l e e _ r e g i s t r o s (> char i; ■for ( i = 0; /* i < 14 ; i++) = in_word(); vlí3 D e s p l i e g u e de v e n tanas */' d e s p _ v e n t a n a s () char i, 1, k; p o s e ( 2 , 16 ) ; print-f ( " \ 0 3 3 C M d m ,!, 1 ); print-f ( " R E G I S T R O S : C O N T E N I D O : " ) ; print-f (“S O S S C S d m " , 0 ); p o s e ( 5 , 14 ); p r i n t i ( "I M M M ; I M M M M M M ; IM M M M M M M M ; " ) ; •for ( i = 6 ; i < 2 0 ; i++) ■ t pose í i , 14 ); print-f ( " s :: : ::" p o s e ( 2 0 , 14 ); p r i n t +' ( " H M M M < H M M M M M M < HMMMMMMMM<"); p o s e ( 10 , 4 7 ); print-f ("'\033C/Ídm‘ ', 1 ); print-f ( " B A N D E R A S " ) ; p r i n t f ( " \ 0 3 3 C % d m " , 0 ); p o s e ( 11 , 4 2 ); P r i n t -f ( " I M M M M M M M M M M M M M M M M M ; " ) ; p o s e í 12 , 4 2 ); print-f ( ": :"); p o s e í 13 , 4 2 ); p r i n t -f ( " L M M M M M M M M M M M M M M M M M 9 " ) ; p o s e ( 14 , 4 2 > ; print-f ( " : :"); p o s e ( 15 , 4 2 ) ; p r i n t +( "H M N M M M M M M M M M M M M M M N C " ) ; 1 = 6 ; k = 22; pose( 1 , k ); print-f ( "AX" > ; pose ( 1 + 1 , k ); print-f ("BX"> ; pose ( 1 + 2 , k) ; printt (" C X " ); - 124 - pose < 1 + 3 , k ) ; p r i n t f (" D X " ) ; p o s e ( 1 + 4 , k ); p r i n t f ( "SP" ) ; pose ( 1 + 5 , k ) ; p r i n t f (" B P " ); pose <1 + 6 , k ); print-f < "SI " ) ; pose í1 + 7 , k); p r int f ( "DI " Í ; pose (1 + 8 , k); p r i n t f ( " C S ,!) ; p o s e ( 1 + 9 , k); p r i n t f (!'D3">; p o s e í 1 + 1 0 , k); p r i n t f <,SS 5 " > ; p o s e f 1 + 11 , k); p r i n t f ( " E S " >; p o s e ( 1 + 12 , k); p r i n t f (" F " ) ; p o s e ( 1 + 13 , k) ; printf C I P " ) ; p o s e ( 12 , 4 3 ); p r i n t f ( " G D I T S Z A P C">; /* D e s p l i e g a el c o n t e n i d o d e los r e g i s t r o s en la p a n t a l l a */ d e s p _ r e g i s t r o s () • C char i, 1, k = 33; f o r ( i = 0, 1 = 6 ; 1 < 20 í p o s e i 1 , k ); putf_he;-ía ( v C i 3 , 4 ); ; 1++ , i++> > > /* P r o c e d i m i e n t o p a r a m a n e j a r ei c u r s o r h a c i a a c a j o *■ b a j a _ c u r s o r () £ i-f ( i < 13 ) í 1 = 1 + 1; i = i + 1; } > /* P r o c e d i m i e n t o p a r a m a n e j a r el c u r s o r h a c i a a r r i b a s u b e _ c u r s o r () */ - if 125 - ( i > O ) £ 1 = 1 - 1; i = i - 1; } } /•* procedimiento para separar la s b a n d e r a s separa_banderas(num) unsigned num; ■í c h a r i , cadenaClSH; f o r ( ix = 0 ; ix < 15 ; c a d e n a l i x + + 3 = 0 /; f o r ( ix = 0 ; n u m > 0 ; i ) •C c a d e n a C i x ] = n u m 7. 2; n u m /= 2; } pose ( printf pose ( printf pose ( printf pose < printf pose ( printf pose ( printf pose < printf pose < printf pose ( printf /* /* #include c a p t e 1() 14 , 4 3 ); ( "-/Id", c a d e n a C 113 ); 1 4 , 4 5 ); ( '7.d " , c a d e n a C l O J ); 14 , 4 7 ); ( "7.d", c a d e n a C 9 D ); 14 , 4 9 ); ( "0" ); 14 , 51 ); ( "/id", c a d e n a C 7 3 ); 14 , 5 3 ); ( "7. d % c a d e n a C ó J ); 14 , 5 5 ); < !"/.d", c a d e n a C 4 ü ); 14 , 5 7 >; ( "/id", c a d e n a C 2 3 ); 14 , 5 9 ); ( "'id", c a d e n a C O ü ); P r o c e d i m i e n t o p a r a l e e r de l t e c l a d o la d i r e c c i ó n final de blo q u e */ */ <stdio.h> int i ; char dirb,dirm,dira,dirCóJ; gets(dir); f o r ( i = 0 ; i <5; ++i) d i r C i H = ( d i r ü i 3 >¡= 0 dirC i 3 <= 9') 7 d i r C i J 0 : ( d i r C i 3 = ( d i r C i 3 > = 'A & & d i r C i j < - F ) ? d x r C i j - 'A + 10 : <d i r C i 3 = (d i r C i 3 > = a' & & d i r C i 3 < = -i ' ) f d i r C i 3 'a '+ 1 0 ; d i rC i 3 ) ) ; - 126 - dirb = ( (d i r C 3 3<< 4 ) & 0:<f0) !( d i r C 4 3 dirm = ( ( d i r C 1 3 << 4 ) & Ox-FO) !( d i r C 2 3 dira = d i r C 0 3 S<Oxf; trans(dirb); r e e ( d i r b ); trans(dirm); ree(dirm); trans(dira); r e e (dira) ; p r i n t f ("'/.a % d X d ”, di rb , d irm, di ra) ; & Oxf); h. 0,;f) ; El jurado Departamento y de aprobó de Estudios esta designado por la Sección I n g e n i e r í a E l é c t r i c a del Avanzados tesis de l Instituto de Computación C e n t r o de del Investigación Politécnico rlacicnal. el d í a 5 d e A g o s t o del a ñ o d e m i l n o v e c i e n t o s o c h e n t a y ocho. Dr. Manuel E. Suzmén Renteria Dr- Dr. Armando Malaonado Talamantes José Luis Leyva Montiei