Sistema para Diagnóstico y Desarrollo de Aplicaciones con

Anuncio
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
Descargar