commit 809967a35d83821d1a0cd858067fbf89397fd7ab Author: jdg Date: Sun Sep 12 22:35:00 2021 +0200 First commit 14/09/1997 diff --git a/IMhome.htm b/IMhome.htm new file mode 100644 index 0000000..d54112b --- /dev/null +++ b/IMhome.htm @@ -0,0 +1,150 @@ + + + + + + Club InfoMundo + + + + Nuestro Logo +
 
+ +
+ + + +
+
Bienvenidos al 'Club +InfoMundo', aquí encontraras toda +la información que necesites relacionada con la programación +y diseño de hardware.
+ +

+No te olvides consultar nuestro Site +de Curiosidades !!!

+ +
 
+ + +

01-02-1998 +
 Antes de nada, disculparnos +por los continuos retrasos en las actualizaciones de esta página, +y también por la gran cantidad de gente que no ha visto respondido +su correo. +
 El motivo no es otro, que +la falta de tiempo, de los miembros de InfoMundo, encargados de mantener +esta página. Ya que la mayoría han pasado de la cola del +paro a no tener tiempo por su trabajo o a estar absorvidos por los estudios. +
 De todas maneras si quieres +colaborar, en cualquier cosa, no dudes en ponerte en contacto con nosotros. + +

30-01-1998 +
 Un proyecto que se esta forjando, +para este año,es la creación de una Party: **Digital-Party**, +donde los socios de InfoMundo, tendrían la entrada a mitad de precio. +Tendría lugar en Sevilla o en sus alrrededores, sobre Octubre'98. +
 Si estás interesado/a, +manda tu e-mail de apoyo. +
  + +

 Si deseas colaborar con nosotros, +mandanos tus ideas, diagramas de circuitos, fuentes, documentos, o links +a otros sitios, en fin todo lo que creas que pueda ser util a nuestros +visitantes a infomundo@arrakis.es.  +
  +
  + + + + + + + + + + +
+
Optimizado para: 
+ +
Bajate netscape 3.0 (Mejor que 4.0)
+ +
Resolución 800x600
+
+
 
+
+ +

 
+ + + + + + + +
+
Para cualquier sugerencia, critica o consulta, +dirígete a infomundo@arrakis.es 
+ +
o al apartado de correos 309 CP 41.500 (Sevilla)
+
+
Escribenos
+
+   + +

Esta página fue modificada +por última vez el domingo 7 de septiembre de 1997 a las 15:00 horas. +Club InfoMundo

+ + + diff --git a/README.md b/README.md new file mode 100644 index 0000000..743d336 --- /dev/null +++ b/README.md @@ -0,0 +1,9 @@ +#InfoMundo + + +*14/09/1997* + +ToDo: wwtcf? + + +![screenshot](/InfoMundo.png "Screenshot") diff --git a/contactos.htm b/contactos.htm new file mode 100644 index 0000000..e85c1e1 --- /dev/null +++ b/contactos.htm @@ -0,0 +1,124 @@ + + + + + + Club InfoMundo + + +Contactos + +

Puntos de contacto: miembros y colaboradores +de InfoMundo. + +

 Las personas mas abajo expuestas +son miembros o colaboradores de InfoMundo, y estan bajo su consentimiento, +si por alguna razón alguno de ellos eres tú, y no deseas +estar en la lista, mandanos un mail. Si por el contrario, has colaborado +con nosotros, ( aportando direcciones utiles, documentos, etc...) y deseas +estar en la lista, mandanos tus datos, +y te incluiremos. ( Esto es como una especie de GuestBooK pero de colaboradores). + +

Nota: +
 Existe un apartado que dice si desea o +no recibir preguntas, en caso de ser afirmativo, las preguntas deberán +estar relacionadas con las contribuciones realizadas: (a +alguien que contribuya con circuitos electrónicos no le vayas a +preguntar sobre problemas software y biceversa). En caso contrario +(no recibir preguntas), no les molestes con preguntas, +y envianoslas a nosotros en su lugar. +

Gracias. InfoMundo 1997 (c).
+  + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre: Eva   +
Nick: Eva   +
Contribuciones:    +
    +
  • +Información sobre circuitos 3245
  • +
+Desea recibir preguntas: SI   +
Web Site: (no +disponible)   +
e-mail: (este +site)
Nombre: Antonio +Guillén   +
Nick: Sol...   +
Contribuciones:   +
    +
  • +Trucos de Juegos
  • +
+Desea recibir preguntas: SI   +
Web Site: (en +construcción)   +
e-mail: future_vision@hotmail.com
Nombre: Oscar +Gigato   +
Nick: buloso   +
Contribuciones:   +
    +
  • +Una enorme cantidad de direcciones interesantes.
  • +
+Desea recibir preguntas: NO   +
Web Site: (no +disponible)   +
e-mail: buloso@hotmail.com
Nombre:   +
Nick:   +
Contribuciones:   +
     
+Desea recibir preguntas:   +
Web Site:   +
e-mail:
Nombre:   +
Nick:   +
Contribuciones:   +
     
+Desea recibir preguntas:   +
Web Site:   +
e-mail:
Nombre:   +
Nick:   +
Contribuciones:   +
     
+Desea recibir preguntas:   +
Web Site:   +
e-mail:
Nombre:   +
Nick:   +
Contribuciones:   +
     
+Desea recibir preguntas:   +
Web Site:   +
e-mail:
Nombre:   +
Nick:   +
Contribuciones:   +
     
+Desea recibir preguntas:   +
Web Site:   +
e-mail:
+  +
  +
  + + diff --git a/curiosidades.htm b/curiosidades.htm new file mode 100644 index 0000000..4189794 --- /dev/null +++ b/curiosidades.htm @@ -0,0 +1,85 @@ + + + + + + Links + + +Curiosidades +
. +
 Las chorradas mas ineditas +del CyberSpacio.
+ +
Mandanos, tu cyberChorrada, contribuye a este cyberMuseo.
+ +
.
+ +
+ +
.
+PD: No te quejes de la página, por que pretende ser +otra cyberChorrada más. +
. +
. +
 
+ +
+  La +vuelta al mundo, desde tu sillon
+ +
  +
 Date una estupenda vuelta al mundo, a través de las múltiples +cámaras en directo, conectadas a la ReD. +
  + +

  Mira las últimas +previsiones, y fotos del satélite, ( si es que te enteras, por que +mejor enciendes la tele y vez las noticias. ) +

El satelite se actualiza cada 1 Hora, la previsión cada +12 Horas.
+ +
Fóto del satélitePrevisión meteorológica
+  +
Registra +tu página rápidamente en unos 200 buscadores.. +
  + +

Buscador +de HOT +
Sin comentario. Bueno solo uno, para los Xmaniáticos. +
  +
Encuentra +los ficheros que buscas. +
 Nosotros siempre buscamos TODO lo que necesitamos aqui. +( Versión reg. McAffee, Microsoft Plus!, software raro... ) +
. +
Juegos +On-Line +
 Pierde el tiempo y tira el dinero, jugando al tres en raya, y +otros tontos juegos. ( La verdad es que nosotros nos picamos cuando vimos +que nos ganaban al tres en raya, ¡creemos que hacian trampa! ) + +

¿Quieres +saber cual será el ordenador del futuro ? -> Welcome to the Obsolete +Computer Museum +
 Los magnificos ordenadores portatiles de futuro te dejarán +de piedra, 65 Kilos de alta de alta tecnología. Incorporan un carrito +motorizado para hacer más facil su transporte y gratis una mochila +para EL disco (de 64Kb) + +

Arregla del todo y +definitivamente tu ordenador +
 Una vez conocido tu problema, te darán un sabio consejo, +para arreglar DEFINITIVAMENTE, cualquier parte del ordenador.. +
. +
Lo +que es gratis en INet +
 Si eres un GORRON o simplemente TACAÑO, esta es tu página. +Consigue un Pentium Pro 200 Mhz juntando 500.000 de tapas de yogur. +
  + +

  +
. + + diff --git a/download/8i8o-2.rar b/download/8i8o-2.rar new file mode 100644 index 0000000..d26bb3a Binary files /dev/null and b/download/8i8o-2.rar differ diff --git a/download/Documentos/ESTATUTO.DOC b/download/Documentos/ESTATUTO.DOC new file mode 100644 index 0000000..6d8784f Binary files /dev/null and b/download/Documentos/ESTATUTO.DOC differ diff --git a/download/Documentos/FUNDACIO.DOC b/download/Documentos/FUNDACIO.DOC new file mode 100644 index 0000000..1955a95 Binary files /dev/null and b/download/Documentos/FUNDACIO.DOC differ diff --git a/download/Documentos/I8O.doc b/download/Documentos/I8O.doc new file mode 100644 index 0000000..22dff01 Binary files /dev/null and b/download/Documentos/I8O.doc differ diff --git a/download/Documentos/MOCHILA.doc b/download/Documentos/MOCHILA.doc new file mode 100644 index 0000000..e0ed451 Binary files /dev/null and b/download/Documentos/MOCHILA.doc differ diff --git a/download/Documentos/PROYECTOS.doc b/download/Documentos/PROYECTOS.doc new file mode 100644 index 0000000..3e16f9d Binary files /dev/null and b/download/Documentos/PROYECTOS.doc differ diff --git a/download/Documentos/PUERTOS.TXT b/download/Documentos/PUERTOS.TXT new file mode 100644 index 0000000..0b625da --- /dev/null +++ b/download/Documentos/PUERTOS.TXT @@ -0,0 +1,1112 @@ +Direcciones de los puertos de Entrada/Salida + +0000-001F ---- DMA 1 (primer controlador 8237 de Acceso Directo a Memoria) +0000 l/e DMA direcci¢n canal 0, byte 0, despu‚s byte 1. +0001 l/e DMA contador de words canal 0, byte 0, despu‚s byte 1. +0002 l/e DMA direcci¢n canal 1, byte 0, despu‚s byte 1. +0003 l/e DMA contador de words canal 1, byte 0, despu‚s byte 1. +0004 l/e DMA direcci¢n canal 2, byte 0, despu‚s byte 1. +0005 l/e DMA contador de words canal 2, byte 0, despu‚s byte 1. +0006 l/e DMA direcci¢n canal 3, byte 0, despu‚s byte 1. +0007 l/e DMA contador de words canal 3, byte 0, despu‚s byte 1. +0008 l DMA registro de estado canales 0-3 + bit 7 = 1 petici¢n canal 3 + bit 6 = 1 petici¢n canal 2 + bit 5 = 1 petici¢n canal 1 + bit 4 = 1 petici¢n canal 0 + bit 3 = 1 contador terminal de canal para el canal 3 + bit 2 = 1 contador terminal de canal para el canal 2 + bit 1 = 1 contador terminal de canal para el canal 1 + bit 0 = 1 contador terminal de canal para el canal 0 +0008 e DMA registro de comandos canales 0-3 + bit 7 = 1 sentido activo del DACK alto + = 0 sentido activo del DACK bajo + bit 6 = 1 sentido activo del DREQ alto + = 0 sentido activo del DREQ bajo + bit 5 = 1 selecci¢n escritura extendedida + = 0 selecci¢n escritura retardada + bit 4 = 1 prioridad rotativa + = 0 prioridad fija + bit 3 = 1 temporizado (timing) comprimido + = 0 temporizado (timing) normal + bit 2 = 1 controlador activado + = 0 transferencia de memoria a memoria activada +0009 e DMA registro de petici¢n de escritura +000A l/e DMA canal 0-3 registro de m scara + bit 7-3 = 0 reservado + bit 2 = 0 bit de reinicializaci¢n de m scara + = 1 bit de activaci¢n de m scara + bit 1-0 = 00 canal 0 seleccionado + = 01 canal 1 seleccionado + = 10 canal 2 seleccionado + = 11 canal 3 seleccionado +000B e DMA canal 0-3 modo registro + bit 7-6 = 00 modo demanda + = 01 modo "single" + = 10 modo bloque + = 11 modo cascada + bit 5 = 0 incremento de direcci¢n seleccionado + = 1 decremento de direcci¢n seleccionado + bit 3-2 = 00 operacion de verificaci¢n + = 01 escritura a memoria + = 10 lectura de memoria + = 11 reservado + bit 1-0 = 00 canal 0 seleccionado + = 01 canal 1 seleccionado + = 10 canal 2 seleccionado + = 11 canal 3 seleccionado +000C e DMA flip-flop inicilizador del puntero +000D l DMA registro temporal de lectura +000D e DMA inicializador maestro +000E e DMA registro de inicializaci¢n de m scara +000F e DMA registro de escritura de m scara +0010-001F ---- DMA controlador (8237) sobre los modelos PS/2 60 & 80 +0020-003F ---- PIC 1 (Controlador Programable de Interrupciones 8259) +0020 e PIC palabra de initializacion de comandos ICW1 + bit 7-5 = 0 solo utilizados en modo 80/85 + bit 4 = 1 ICW1 esta siendo utilizado + bit 3 = 0 modo "edge triggered" + = 1 modo "level triggered" + bit 2 = 0 vectores de interrupci¢n sucesivos utilizan 8 bytes + = 1 vectores de interrupci¢n sucesivos utilizan 4 bytes + bit 1 = 0 modo cascada + = 1 modo "single", no es necesario el ICW3 + bit 0 = 0 no es necesario el ICW4 + = 1 es necesario el ICW4 +0021 e PIC ICW2,ICW3,ICW4 despu‚s ICW1 a 0020 + ICW2: + bit 7-3 = lineas de direccionamiento A0-A3 de direcci¢n + base de vectores para el PIC + bit 2-0 = reservado + ICW3: + bit 7-0 = 0 controlador esclavo no conectado al pin de + interrupci¢n correspondiente + = 1 controlador esclavo conectado al pin de + interrupci¢n correspondiente + ICW4: + bit 7-5 = 0 reservado + bit 4 = 0 modo de no "anidamiento-total" + = 1 modo especial de "anidamiento-total" + bit 3-2 = 0x modo sin buffer + = 10 modo/esclavo con buffer + = 11 modo/maestro con buffer + bit 1 = 0 normal EOI + = 1 Auto EOI + bit 0 = 0 modo 8085 + = 1 modo 8086/8088 +0021 l/e registro maestro de enmascaramiento de interrupciones del PIC + OCW1: + bit 7 = 0 activaci¢n interrupci¢n de parallel printer + bit 6 = 0 activaci¢n interrupci¢n de diskette + bit 5 = 0 activaci¢n interrupci¢n de disco duro + bit 4 = 0 activaci¢n interrupci¢n de puerto serie 1 + bit 3 = 0 activaci¢n interrupci¢n de puerto serie 2 + bit 2 = 0 activaci¢n interrupci¢n de video + bit 1 = 0 activaci¢n interrupci¢n del teclado, rat¢n, RTC + bit 0 = 0 activaci¢n interrupci¢n del temporizador + OCW2: + bit 7-5 = 000 rotar en el modo auto EOI (desactivado) + = 001 sin EOI espec¡fica + = 010 sin operaci¢n + = 011 EOI especifica + = 100 rotar en el modo auto EOI (activado) + = 101 rotar sobre un comando EOI no espec¡fico + = 110 activar prioridad de comando + = 111 rotar sobre un comando EOI espec¡fico + bit 4 = 0 reservado + bit 3 = 0 reservado + bit 2-0 petici¢n de interrupci¢n +0020 l Registros de petici¢n de interrupci¢n en servicio para OCW3 + registro petici¢n: + bit 7-0 = 0 no petici¢n activa para la linea + correspondiente de interrupciones + = 1 petici¢n activa para la linea + correspondiente de interrupciones + registro en-servicio: + bit 7-0 = 0 l¡nea correspondiente no est  actualmente + en servicio + = 1 l¡nea correspondiente est  actualmente + en servicio + +0020 e PIC OCW3 + bit 7 = 0 reservado + bit 6-5 = 0x no operation + = 10 reinicializa m scara especial + = 11 activa m scara especial + bit 4 = 0 reservado + bit 3 = 1 reservado + bit 2 = 0 no recogida de comandos + = 1 recogida de comandos + bit 1-0 = 0x no operacion + = 10 lee el registro de petici¢n de interrupciones + en la siguiente lectura en 0020 + = 11 lee el registro de interrupciones + "in-service" en la siguiente lectura en 0020 +0022-002B ---- Intel 82355, parte del conjunto de chips para el 386sx + inicializaci¢n en modo POST desactivar  estas direcciones, + solo un hard reset las reactivar  de nuevo. +0040-005F ---- PIT (Temporizador Programable de Interrupciones 8253, 8254) + XT & AT utilizan 40-43 PS/2 utiliza 40, 42,43,44, 47 +0040 l/e PIT contador 0, contador divisor, (XT, AT, PS/2) +0041 l/e PIT contador 1, contador del refresco RAM, (XT, AT) +0042 l/e PIT contador 2, cassette & speaker, (XT, AT, PS/2) +0043 l/e PIT modo puerto, registro de control de palabras para contadores 0-2 + bit 7-6 = 00 contador 0 seleccionado + = 01 contador 1 seleccionado (no en PS/2) + = 10 contador 2 seleccionado + bit 5-4 = 00 comando contador latch + = 01 contador lectura/escritura solo bits 0-7 + = 10 contador lectura/escritura solo bits 8-15 + = 11 contador lectura/escritura primero bits 0-7 , + despu‚s 8-15 + bit 3-1 = 000 modo 0 seleccionado + = 001 modo 1 seleccionado - programable de una sola vez + = x10 modo 2 seleccionado - generador de ratio + = x11 modo 3 seleccionado - generador de onda cuadrada + = 100 modo 4 seleccionado - estroboscopio disparado + por software + = 101 modo 5 seleccionado - estroboscopio disparado + por hardware + bit 0 = 0 contador binario 16 bits + = 1 BCD contador +0044 l/e PIT contador 3 (PS/2, EISA) + utilizado como temporizador de seguridad ante fallos, genera + una NMI cuando el tiempo acaba. + Para NMI generadas por el usuario mirar en 0462. +0047 e Palabra de control del PIT registro contador 3 (PS/2, EISA) + bit 7-6 = 00 contador 3 seleccionado + = 01 reservado + = 10 reservado + = 11 reservado + bit 5-4 = 00 comando contador latch, contador 3 + = 01 contador lectura/escritura, solo bits 0-7 + = 1x reservado + bit 3-0 = 00 +0048 EISA +004A EISA +004B EISA +0060-006F ---- Controlador teclado (8041, 8042) (o PPI (8255) sobre XT) + XT utiliza 60-63, AT utiliza 60-64 + definiciones de los bits del puerto de entrada del + controlador de teclado AT + bit 7 = 0 teclado inhibido + bit 6 = 0 CGA, otro valor MDA + bit 5 = 0 jumper fabricante instalado + bit 4 = 0 sistema de 512K de RAM, otro valor 640K + bit 3-0 reservado + AT teclado controlador input puerto bit definitions by Compaq + bit 7 = 0 llave de seguridad est  bloqueada + bit 6 = 0 Pantalla Compaq dual-scan, 1=pantalla no Compaq + bit 5 = 0 Switch 5 de la placa del sistema esta a ON + bit 4 = 0 seleccionada auto velocidad, 1= seleccionada alta velocidad + bit 3 = 0 lento (4MHz), 1 = r pido (8MHz) + bit 2 = 0 80287 instalado, 1= NDP no instalado + bit 1-0 reservado + Definiciones de los bits del puerto de salida del controlador + de teclado AT + bit 7 = salida de datos del teclado + bit 6 = salida del reloj del teclado + bit 5 = 0 buffer de entrada lleno + bit 4 = 0 buffer de salida vacio + bit 3 = reservado (ver nota) + bit 2 = reservado (ver nota) + bit 1 = puerta A20 + bit 0 = reinicializaci¢n del sistema + Nota: Los bits 2 y 3 son el switch de la velocidad turbo o el bloqueo + por palabra clave sobre las BIOS Award/AMI/Phoenix. Estos bits + utilizan la funcionalidad BIOS no estandar + del controlador de teclado para manipular: + pin 23 (8041 puerto 22) como interruptor turbo para AWARD + pin 35 (8041 puerto 15) como interruptor turbo para Phoenix +0060 l/e Puerto de datos del controlador del teclado o buffer de entrada + del teclado (ISA, EISA) + Solo puede ser leido cuando en el puerto de estado este el bit0 = 1 + Solo puede ser escrito cuando en el puerto de estado este el bit1 = 0 + Comandos del teclado (los datos van tambi‚n al puerto 0060): + ED dbl activa/desactiva el indicador Caps Num Scrl + EE sngl para diagnostico, retorna EE. + EF-F2 sngl NOP (Sin operaci¢n). Reservado + F3 dbl Configurar la velocidad y el retardo del tecleo + F4 sngl teclado activado + F5 sngl teclado desactivado. Poner parametros por defecto + F6 sngl cargar parametros por defecto + F7-FD sngl NOP + FE sngl reenviar £ltimo "scancode" + FF sngl realizar la funci¢n interna de reinicializaci¢n "power-on" +0060 l Buffer de salida del controlador de teclado (via PPI sobre XT) +0061 e Puerto B del controlador de teclado (ISA, EISA) (PS/2 puerto A + est  en 0092) + Puerto control del sistema para compatibilidad con 8255 + bit 7 (1= reinicializaci¢n del IRQ 0 ) + bit 6-4 reservado + bit 3 = 1 chequeo de canal activado + bit 2 = 1 chequeo de paridad activado + bit 1 = 1 datos del altavoz activado + bit 0 = 1 Puerta del temporizador 2 al altavoz activado +0061 l registro de control del puerto B del controlador del teclado (ISA, EISA) + puerto de control del sistema para compatibilidad con 8255 + bit 7 chequeo de paridad occurrido + bit 6 chequeo de canal occurrido + bit 5 refleja el estado de la salida del temporizador 2 + bit 4 se invierte con cada petici¢n de refresco + bit 3 chequeo del estado del canal + bit 2 chequeo del estado de la paridad + bit 1 estado de los datos del altavoz + bit 0 estado de la puerta del temporizador 2 al altavoz +0064 l Estado del controlador del teclado (ISA, EISA) + bit 7 = 1 error de paridad en la transmisi¢n desde el teclado + bit 6 = 1 "timeout" en recepci¢n + bit 5 = 1 "timeout" en transmisi¢n + bit 4 = 0 teclado inhibido + bit 3 = 1 datos en el registro de entrada es un comando + = 0 datos en el registro de entrada son datos + bit 2 = 0 estado del flag del sistema 0= reinicializado o + reseteado 1=auto-testeo OK + bit 1 = 1 buffer de entrada lleno (las entradas 60/64 tienen + datos para 8042) + bit 0 = 1 buffer de salida llenol (la salida 60 tiene datos + para el sistema) +0064 e Buffer de entrada del controlador de teclado (ISA, EISA) + Comandos del controlador de teclado (los datos van al puerrto 0060): + 20 lee el byte cero de la RAM interna, este es el £ltimo comando de + teclado enviado al 8041 + 21-3F lee el byte especificado en los 5 bits inferiores + del comando en la RAM interna del 8041 + 60-7F dbl escribe el byte de datos a la direcci¢n especificada + en los 5 bits inferiores del comando. + Descripci¢n del comandoI/O 60 del teclado: + bit7 = 0, reservado + bit6 = modo compatibilidad IBM PC + bit5 = modo IBM PC + bit4 = desactivar teclado + bit3 = desactivar "override" + bit2 = "flag" sistema + bit1 = 0, reservado + bit0 = activooutput buffer full interrupci¢n + AB sngl Iniciar test del interface. Resultados: + 0 = sinerror + 1 = linea del reloj del teclado baja + 2 = linea del reloj del teclado alta + 3 = linea de datos del teclado baja + 4 = linea de datos del teclado alta + AC lectura del volcado de diagnostico. Los contenidos de la + RAM del 8041, del puerto de salida, del puerto de entrada y + la palabra de estado son enviados. + AD sngl desactiva el teclado (activando el bit 4 del byte + de comando) + AE sngl activa teclado (limpiando el bit 4 del byte de comando) + AF AWARD Comando Mejorado: leer la versi¢n del teclado + C0 leer puerto de entrada + C1 AWARD Comando Mejorado: conectar con el puerto de entrada, + nibble bajo + C2 AWARD Comando Mejorado: conectar con el puerto de entrada, + nibble alto + D0 leer puerto de salida + D1 dbl escribir puerto de salida. Proximo byte escrito en 0060 + ser  escrito en el puerto de salida del 8041 + D2 AWARD Comando Mejorado: escribir buffer de salida del teclado + D3 AWARD Comando Mejorado: escribir buffer de salida del + dispositivo apuntador + D4 AWARD Comando Mejorado: escribir al dispositivo auxiliar + DD sngl desactivar la direcci¢n "line A20". Por defecto en modo real + DF sngl activar "line A20" + E0 read leer entradas de prueba. bit0 = T0 y bit1 = T1 + Exx AWARD Comando Mejorado: activar puerto de salida + DE Compaq Esta es la parte segunda del comando para controlar el + estado de los LEDs: NumLock, CpasLock yScrollLock. + El byte segundo contiene el estado para configurar los LEDs. + bit 7-3 reservado. Debe ser 0. + bit 2 = 0 Caps Lock LED apagado + bit 1 = 0 Num Lock LED apagado + bit 0 = 0 Scroll Lock LED apagado + F0-FF sngl pulso del puerto de salida bajo por 6 microsegundos. + Los bits 0-3 contienen la m scara para los bits a ser pulsados. + Un bit es pulsado si su bit de m scara es cero. + Bit0=reseteo del sistema. ­No poner a 0, solo pulsarlo! +Nota general: Los controladores de teclado son muy diferentes unos de otros. + Generalmente no se pueden intercambiar entre distintas m quinas. +Nota de Award: Extraido del documento Award's Enhanced Keyboard Controller. +Nota de Compaq: Extraido de la Guia T‚cnica de Referencia Compaq Deskpro 386 +0065 l Puerto de comunicaciones (Olivetti M24) +0070-007F ---- CMOS RAM/RTC (Reloj en Tiempo Real MC146818) +0070 e registro puerto ¡ndice CMOS RAM (ISA, EISA) + bit 7 = 1 NMI desactivado + = 0 NMI activado + bit 6-0 ¡ndice CMOS RAM (64 bytes, algunas veces 128 bytes) + cualquier escritura a 0070 debe ser seguida por una acci¢n a 0071 + o el RTC quedar  en un estado indefinido. +0071 l/e puerto de datos CMOS RAM (ISA, EISA) + registros RTC: + 00 segundo actual en BCD + 01 segundo de alarma en BCD + 02 minuto actual en BCD + 03 minuto de alarma en BCD + 04 hora actual en BCD + 05 hora de alarma en BCD + 06 dia de la semana en BCD + 07 dia del mes en BCD + 08 mes en BCD + 09 a¤o en BCD (00-99) + 0A registro de estado A + bit 7 = 1 actualizaci¢n en progreso + bit 6-4 divisor que identifica la frecuencia en la que se + basa el reloj + bit 3-0 velocidad seleccionada para la frecuencia de salida + y velocidad de interrupci¢n. + 0B registro de estado B + bit 7 = 0 ejecutar + = 1 parar + bit 6 = 1 interrupci¢n periodica activa + bit 5 = 1 interrupci¢n de alarma activa + bit 4 = 1 interrupci¢n "update-ended" activa + bit 3 = 1 interrupci¢n de onda cuadrada activa + bit 2 = 1 el calendario est  en formato binario + = 0 el calendario est  en formato BCD + bit 1 = 1 modo 24-horas + = 0 modo 12-horas + bit 0 = 1 Hora adelantada activada. Solo en USA. + Sin uso en Europe. Algunas versiones del DOS limpian + este bit cuando se utiliza el comando DATE/TIME. + 0C registro de estado C + bit 7 = flag de petici¢n de interrupci¢n + bit 6 = flag interrupci¢n periodica + bit 5 = flag interrupci¢n de alarma + bit 4 = flag de actualizaci¢n de interrupci¢n + bit 3-0 flag reservado + 0D registro de estado D + bit 7 = 1 El reloj de tiempo real tiene energia + bit 6-0 reservado + 0E byte de diagnostico del estado + bit 7 = 0 RTC pierde energ¡a + bit 6 = 1 checksum del CMOS RAM erroneo + bit 5 = 1 informaci¢n de la configuraci¢n invalida en el POST + bit 4 = 1 tama¤o de la memoria erroneo en el POST + bit 3 = 1 inicicializaci¢n fallida del disco duro/adaptador + bit 2 = 1 tiempo del CMOS RAM encontrado inv lido + bit 1 = 1 configuraci¢n de los adaptadores no coincide (EISA) + bit 0 = 1 "time out" leyendo in ID de un adaptador (EISA) + 0F byte de estado de apagado "shutdown" + 00 = ejecuci¢n normal del POST + 01 = inicializaci¢n del chip para reentrada en modo real + 04 = salto al c¢digo "bootstrap" + 05 = genera un EOI en el salto al puntero Dword en 40:67 + 06 = salto a la Dword en 40:67 sin EOI + 07 = retorno a la INT15/87 (mover bloque) + 08 = retorno al test de memoria POST + 09 = retorno a la INT15/87 (mover bloque) + 0A = salto al puntero Dword en 40:67 sin EOI + 0B = retorna IRETS a trav‚s de 40:67 + 10 Tipo de la unidad de disco para A: y B: + bit 7-4 tipo de unidad de la unidad 0 + bit 3-0 tipo de unidad de la unidad 1 + = 0000 sin unidad + = 0001 360K + = 0010 1M2 + = 0011 720K + = 0100 1M44 + = 0101-1111 reservado + 11 reservado / Configuraci¢n Extendida AMI CMOS (AMI Hi-Flex BIOS) + bit 7 = 1 Programaci¢n de la velocidad del teclado + bit 6-5 = 00 Retardo de la velocidad del teclado 250 mSec + bit 4-0 = 00011 Retardo del teclado 21.8 Chars/Sec + 12 tipo de disco duro para la unidad 0 y la unidad 1 + bit 7-4 tipo de unidad para la unidad 0 + bit 3-0 tipo de unidad para la unidad 1 + si cualquiera de los nibbles es igual a 0F, entonces + los bytes19 y 1A son validos. + 13 reservado / Configuraci¢n Extendida AMI CMOS (AMI Hi-Flex BIOS) + bit 7 = 1 Opci¢n de soporte de rat¢n + bit 6 = 1 Test de la memoria sobre 1 MB desactivado + bit 5 = 1 Sonido del test de memoria desactivado + bit 4 = 1 Chequeo de error de paridad de la memoria activado + bit 3 = 1 Mostrado del mensaje "Hit " desactivado + bit 2 = 1 µrea de datos del disco duro tipo 47 en la + direcci¢n 0:300 + bit 1 = 1 Espera de la tecla si existe alg£n eror activado + bit 0 = 1 Estado de Num Lock es ON al arrancar + 14 byte de equipamiento + bit 7-6 unidades de disco instaladas + = 00 1 disquetera instalada + = 01 2 disqueteras instaladas + = 10 reservado + = 11 reservado + bit 5-4 Pantalla principal + = 00 Tarjeta adaptadora con opci¢n ROM + = 01 40*25 color + = 10 80*25 color + = 11 monocromo + bit 3-2 reservado + bit 1 = 1 coprocesador instalado (no Weitek) + bit 0 disquetera disponible en el arranque + 15 LSB de memoria base en Kb + 16 MSB de memoria base en Kb + 17 LSB de memoria extendida total en Kb + 18 MSB de memoria extendida total en Kb + 19 unidad C byte de extensi¢n + 1A unidad D byte de extensi¢n + 1B-27 reservado + 1B/1C word para el registro de comparaci¢n 82335 RC1 en [24] + (Phoenix) + 1D/1E word para el registro de comparaci¢n 82335 RC2 en [26] + (Phoenix) + 29-2D reservado + 29/2A word para el registro de comparaci¢n Intel 82335 CC0 en + [28](Phoenix) + 2B/2C word enviada al registro de comparaci¢n 82335 CC1 en [2A] + (Phoenix) + 2D Configuraci¢n Extendida AMI CMOS (AMI Hi-Flex BIOS) + (la BIOS Phoenix chequea los valores AA o CC) + bit 7 = 1 Procesador Weitek no presente + bit 6 = 1 "Floppy Unidad Seek At Boot" desactivado + bit 5 = 1 Secuencia de arranque C:, A: + bit 4 = 1 Velocidad de arranque es alta + bit 3 = 1 Memoria Cache activada + bit 2 = 1 Memoria Interna Cache <1> + bit 1-0 reservado + 2E CMOS MSB "checksum" sobre 10-2D + 2F CMOS LSB "checksum" sobre 10-2D + 30 LSB de memoria extendida sobre 1Mb en POST + 31 MSB de memoria extendida sobre 1Mb en POST + 32 siglo en BCD + 33 flags de informaci¢n + bit4 = bit4 del registro CR0 de la CPU (Phoenix) + este bit tambien es conocido como "RESERVADO INTEL" + 34-3F reservado + 34 bit4 bit5 (Phoenix BIOS) + 3D/3E word para el registro de configuraci¢n de memoria 82335 MCR + en [22](Phoenix) + 3D bit3 tama¤o de memoria base 512/640 (Phoenix) + 3E bit7 = 1 recolocaci¢n activada (Phoenix) + bit1 = 1 video shadow activada (Phoenix) + bit0 = 1 shadow BIOS activada (Phoenix) + Parametros de Unidad Definibles por el Usuario son tambi‚n + almacenados en RAM CMOS: + AMI (386sx BIOS 1989) primera unidad definible por el usuario (tipo 47) + 1B L cilindros + 1C H cilindros + 1D cabezas + 1E L Precompensaci¢n en la escritura al cilindro + 1F H Precompensaci¢n en la escritura al cilindro + 21 L Zona de aparque de los cilindros + 22 H Zona de aparque de los cilindros + 23 sectores + AMI (386sx BIOS 1989) segunda unidad definible por el usuario(tipo 48) + 24 L cilindros + 25 H cilindros + 26 cabezas + 27 L Precompensaci¢n en la escritura al cilindro + 28 H Precompensaci¢n en la escritura al cilindro + 2A L Zona de aparque de los cilindros + 2B H Zona de aparque de los cilindros + 2C sectores + Phoenix (386BIOS v1.10.03 1988) primera unidad definible por el + usuario (tipo 48) + 20 L cilindros + 21 H cilindros + 22 cabezas + 23 L Precompensaci¢n en la escritura al cilindro + 24 H Precompensaci¢n en la escritura al cilindro + 25 L Zona de aparque de los cilindros + 26 H Zona de aparque de los cilindros + 27 sectores + Phoenix (386BIOS v1.10.03 1988) segunda unidad definible por el + usuario (tipo 49) + (cuando la opci¢n de palabra clave del PS/2 no es utilizada) + 35 L cilindros + 36 H cilindros + 37 cabezas + 38 L Precompensaci¢n en la escritura al cilindro + 39 H Precompensaci¢n en la escritura al cilindro + 3A L Zona de aparque de los cilindros + 3B H Zona de aparque de los cilindros + 3C sectores +0080-008F ---- Registros de p gina DMA (74612) +0080 l/e registro extra de p gina (almacenamiento temporal) +0081 l/e DMA canal 2 address byte 2 +0082 l/e DMA canal 3 address byte 2 +0083 l/e DMA canal 1 address byte 2 +0084 l/e registro extra de p gina +0085 l/e registro extra de p gina +0086 l/e registro extra de p gina +0087 l/e DMA canal 0 address byte 2 +0088 l/e registro extra de p gina +0089 l/e DMA canal 6 address byte 2 +008A l/e DMA canal 7 address byte 2 +008B l/e DMA canal 5 address byte 2 +008C l/e registro extra de p gina +008D l/e registro extra de p gina +008E l/e registro extra de p gina +008F l/e registro refresco de p gina DMA +00A0-00AF ---- PIC 2 (Controlador Programable de Interrupciones 8259) +00A0 l/e PIC 2 igual que 0020 para el PIC 1 +00A1 l/e PIC 2 igual que 0021 para el PIC 1 excepto para OCW1: + bit 7 = 0 reservado + bit 6 = 0 interrupci¢n disco duro activada + bit 5 = 0 interrupci¢n excepci¢n del coprocesdor activada + bit 4 = 0 interrupci¢n del rat¢n activada + bit 3 = 0 reservado + bit 2 = 0 reservado + bit 1 = 0 cascada redireccionada activada + bit 0 = 0 interrupci¢n del reloj en tiempo real activada +00C0 ---- TI SN746496 generador programable de tonos,PCjr +00C0-00DF ---- DMA 2 (segundo controlador 8237 (Direct Memory Access controlador)) +00C0 l/e DMA canal 4 direcci¢n de memoria bytes 1 y 0 (bajo) (ISA, EISA) +00C2 l/e DMA canal 4 contador de la transferencia bytes 1 y 0 (bajo) (ISA, EISA) +00C4 l/e DMA canal 5 direcci¢n de memoria bytes 1 y 0 (bajo) (ISA, EISA) +00C6 l/e DMA canal 5 contador de la transferencia bytes 1 y 0 (bajo) (ISA, EISA) +00C8 l/e DMA canal 6 direcci¢n de memoria bytes 1 y 0 (bajo) (ISA, EISA) +00CA l/e DMA canal 6 contador de la transferencia bytes 1 y 0 (bajo) (ISA, EISA) +00CC l/e DMA canal 7 direcci¢n de memoria bytes 1 y 0 (bajo) (ISA, EISA) +00CE l/e DMA canal 7 contador de la transferencia bytes 1 y 0 (bajo), (ISA, EISA) +00D0 l DMA canal 4-7 registro de estado (ISA, EISA) + bit 7 = 1 petici¢n canal 7 + bit 6 = 1 petici¢n canal 6 + bit 5 = 1 petici¢n canal 5 + bit 4 = 1 petici¢n canal 4 + bit 3 = 1 contador terminal para el canal 7 + bit 2 = 1 contador terminal para el canal 6 + bit 1 = 1 contador terminal para el canal 5 + bit 0 = 1 contador terminal para el canal 4 +00D0 e DMA canal 4-7 registro de comandos (ISA, EISA) + bit 7 = 1 sentido activo del DACK alto + = 0 sentido activo del DACK bajo + bit 6 = 1 sentido activo del DREQ alto + = 0 sentido activo del DREQ bajo + bit 5 = 1 selecci¢n escritura extendida + = 0 selecci¢n escritura retardada + bit 4 = 1 prioridad rotativa + = 0 prioridad fija + bit 3 = 1 temporizado (timing) comprimido + = 0 temporizado (timing) normal + bit 2 = 0 controlador activado + bit 1 = 1 transferencia de memoria a memoria activada + bit 0 ..... +00D2 e DMA canal 4-7 registro del petici¢n de escritura (ISA, EISA) +00D4 e DMA canal 4-7 registro m scara de escritura £nica (ISA, EISA) + bit 7-3 reservado + bit 2 = 0 limpiar bit de m scara + = 1 activar bit de m scara + bit 1-0 = 00 canal 4 seleccionado + = 01 canal 5 seleccionado + = 10 canal 6 seleccionado + = 11 canal 7 seleccionado +00D6 e DMA canal 4-7 modo registro (ISA, EISA) + bit 7-6 = 00 modo demanda + = 01 modo "single" + = 10 modo bloque + = 11 modo cascada + bit 5 = 0 incremento direcci¢n seleccionado + = 1 decremento direcci¢n seleccionado + bit 4 = 0 auto-inicializaci¢n desactivada + = 1 auto-inicializaci¢n activada + bit 3-2 = 00 operation de verificaci¢n + = 01 escribir a memoria + = 10 leer desde memoria + = 11 reservado + bit 1-0 = 00 canal 4 seleccionado + = 01 canal 5 seleccionado + = 10 canal 6 seleccionado + = 11 canal 7 seleccionado +00D8 e DMA canal 4-7 flip-flop inicilizador del puntero (ISA, EISA) +00DA l DMA canal 4-7 registro temporal de lectura (ISA, EISA) +00DA e DMA canal 4-7 master clear (ISA, EISA) +00DC e DMA canal 4-7 registro de inicializaci¢n de m scara (ISA, EISA) +00DE e DMA canal 4-7 registro m scara de escritura (ISA, EISA) +00E0 registro de partici¢n de direcciones, solo para registros de + codificaci¢n de memoria PS/2m80 +00F0-00FF ---- Coprocesador (8087..80387) +0100-0107 ---- PS/2 POS (Selector Programable de Opciones) +0170-0177 ---- HDC 2 (Controlador 2§ de Disco duro) igual que 01Fx (ISA, EISA) +01F0-01F7 ---- HDC 1 (Controlador 1§de Disco duro) igual que 017x (ISA, EISA) +01F0 l/e registro de datos +01F1 l registro de error + errores de diagn¢tico de modo: + bit 7-3 reservado + bit 2-1 = 001 no detectado error + = 010 error de formateo de dispositivo + = 011 error del buffer de sector + = 100 error de circuiter¡a ECC + = 101 error de control del microprocesador + modo de operaci¢n: + bit 7 = 1 bloque defectuoso detectado + = 0 bloque OK + bit 6 = 1 error ECC irrecuperable + = 0 no error + bit 5 reservado + bit 4 = 1 ID encontrado + = 0 ID no encontrado + bit 3 reservado + bit 2 = 1 comando completado + = 0 comando abortado + bit 1 = 1 pista 000 no encontrada + = 0 pista 000 encontrada + bit 0 = 1 DAM no encontrada + = 0 DAM encontrada (CP-3022 siempre a 0) +01F1 e WPC/4 ("Write Precompensation Cylinder" dividido por 4) +01F2 l/e contador de sector +01F3 l/e numero de sector +01F4 l/e cilindro bajo +01F5 l/e cilindro alto +01F6 l/e unidad/cabeza + bit 7 = 1 + bit 6 = 0 + bit 5 = 1 + bit 4 = 0 unidad 0 seleccionada + = 1 unidad 1 seleccionada + bit 3-0 bits de cabeza seleccionada +01F7 l registro de estado + bit 7 = 1 el controlador est  ejecutando un comando + bit 6 = 1 la unidad est  preparada + bit 5 = 1 fallo escritura + bit 4 = 1 b£squeda completada + bit 3 = 1 buffer de sector requiere "asistencia" + bit 2 = 1 datos de disco leidos correctamente corregidos + bit 1 = 1 ¡ndice - puesto a 1 cada vuelta del disco + bit 0 = 1 comando previo acabado en un error +01F7 e registro de comandos + comandos: + 98 E5 modo chequeo de energ¡a (IDE) + 90 ejecutar diagn¢stico de la unidad + 50 formatear pista + EC identificar unidad (IDE) + 97 E3 desocupado (IDE) + 95 E1 desocupado (IDE) + 91 inicializar parametros de unidad + 1x recalibrar + E4 leer buffer (IDE) + C8 leer DMA con reintento (IDE) + C9 leer DMA sin reintento(IDE) + C4 leer multiple (IDE) + 20 leer sectores con reintento + 21 leer sectores sin reintento + 22 leer "long" con reintento + 23 leer "long" sin reintento + 40 leer sectores de verificaci¢n con reintento + 41 leer sectores de verificaci¢n sin reintento + 7x buscar + EF activar caracter¡sticas (IDE) + C6 activar modo multiple (IDE) + 99 E6 activar modo "sleep" (IDE) + 96 E2 espera (IDE) + 94 E0 espera inmediatamente (IDE) + E8 escribir buffer (IDE) + CA escribir DMA con reintento (IDE) + CB escribir DMA sin reintento (IDE) + C5 escribir multiple (IDE) + E9 escribir lo mismo (IDE) + 30 escribir sectores con reintento + 31 escribir sectores sin reintento + 32 escribir "long" con reintento + 33 escribir "long" sin reintento + 3C escribir verificaci¢n (IDE) + 9A £nico vendedor (IDE) + C0-C3 £nico vendedor (IDE) + 8x £nico vendedor (IDE) + F0-F4 EATA estandar (IDE) + F5-FF £nico vendedor(IDE) +0200-020F ---- Espacio I/O reservado para el Puerto de Juegos +0200-0207 ---- Puerto de Juegos, ocho direcciones id‚nticas en algunas placas +0201 l leer posici¢n y estado del joystick + bit 7 estado B joystick bot¢n 2 / D bot¢n paddle + bit 6 estado B joystick bot¢n 1 / C bot¢n paddle + bit 5 estado A joystick bot¢n 2 / B bot¢n paddle + bit 4 estado A joystick bot¢n 1 / A bot¢n paddle + bit 3 B coordenada Y joystick / D coordenada paddle + bit 2 B coordenada X joystick / C coordenada paddle + bit 1 A coordenada Y joystick / B coordenada paddle + bit 0 A coordenada X joystick / A coordenada paddle + e fuego joysticks de cuatro disparo-£nico +0278-027E ---- Puerto paralelo impresora, igual que 0378 y 03BC +0278 e puerto de datos +0279 l/e puerto de estado +027A l/e puerto de control +02A2-02A3 ---- Reloj MSM58321RS +02B0-02DF ---- EGA alternativa, EGA primaria en 03C0 +02C0-02Cx ---- Reloj AST +02E0-02EF ---- Adquisici¢n de datos (AT) +02E2 Adquisici¢n datos (adaptador 0) +02E3 Adquisici¢n datos (adaptador 0) +02E8-02EF ---- puerto serie, igual que 02F8, 03E8, and 03F8 +02F8-02FF ---- puerto serie, igual que 02E8, 02F8, and 03F8 +02F8 e registro de mantenimiento de transmisi¢n +02F8 l registro del buffer del receptor + l/e divisor "latch", byte bajo, cuando DLAB=1 +02F9 l/e divisor "latch", byte alto, cuando DLAB=1 + l/e registro de activaci¢n de interrupci¢n cuando DLAB=0 +02FA l registro identificaci¢n de interrupciones +02FB l/e registro control linea +02FC l/e registro control modem +02FD l registro de estado de linea +02FF l/e registro "scratch" +0320-0323 ---- XT HDC 1 (Controlador Disco Duro) +0348-0357 ---- DCA 3278 +0360-036F ---- PC network (AT) +0360-0367 ---- PC network (solo XT) +0370-0377 ---- FDC 2 (Controlador 2§ Floppy Disk 8272) igual que 03F0 +0372 e controlador de disquete DOR (Registro Digital de Salida) +0374 l controlador de disquete registro de estado +0375 l/e controlador de disquete registro de datos +0376 l/e controlador de disco duro registro de datos +0377 l controlador de disquete DIR (Registro Digital de Entrada) +0377 e seleccionado registro para la velocidad de transferencia de datos +0378-037A ---- Puerto paralelo impresora, igual que 0278 y 03BC +0378 e puerto de datos +0379 l/e puerto de estado +037A l/e puerto de control +0380-038F ---- Adaptador 2§ de Control de Uni¢n de Datos Binarios S¡ncronos (ver 03A0) +0380 l/e sobre la placa 8255 puerto A, sentido interno/externo +0381 l/e sobre la placa 8255 puerto B, interface modem externo +0382 l/e sobre la placa 8255 puerto C, control interno y "gating" +0383 l/e sobre la placa 8255 registro de modo +0384 l/e sobre la placa 8253 canal generador onda cuadrada +0385 l/e sobre la placa 8253 canal 1 "time-out" inactividad +0386 l/e sobre la placa 8253 canal 2 "time-out" inactividad +0387 l/e sobre la placa 8253 registro de modo +0388 l/e sobre la placa 8273 lectura: stado escritura: comando +0389 l/e sobre la placa 8273 lectura: respuesta escritura: parametro +038A l/e sobre la placa 8273 estado de la interrupci¢n transmisi¢n +038B l/e sobre la placa 8273 estado de la interrupci¢n de recepci¢n +038C l/e sobre la placa 8273 dato +0390-039F ---- Adaptador Cluster (AT) +0390-0393 (adaptador 0) (XT) +03B0-03BF ---- MDA (Adaptador Pantalla Monocroma basado en 6845) +03B0 igual que 03B4 +03B1 igual que 03B5 +03B2 igual que 03B4 +03B3 igual que 03B5 +03B4 e MDA CRT registro ¡ndice (EGA/VGA) + seleccionado con el registro (0-11h) es para ser accedido a traves de 3B5 +03B5 l/e MDA CRT registro datos (EGA/VGA) + seleccionado por el puerto 3B4. Registros C-F pueden ser leidos + 00 total horizontal + 01 visualizado horizontal + 02 posici¢n sincronismo horizontal + 03 anchura de pulso de sincronismo horizontal + 04 total vertical + 05 visualizado vertical + 06 posici¢n sincronismo vertical + 07 anchura de pulso de sincronismo vertical + 08 modo entrelazado + 09 maximo de lineas horizontales + 0A inicio cursor + 0B fin cursor + 0C direcci¢n inicio alta + 0D direcci¢n inicio baja + 0E posici¢n cursorl alta + 0F posici¢n cursor baja + 10 lapiz ¢ptico alto + 11 lapiz ¢ptico bajo +03B6 igual que 03B4 +03B7 igual que 03B5 +03B8 l/e MDA registro de control de modo + bit 7 no utilizado + bit 6 no utilizado + bit 5 parpadeo activo + bit 4 no utilizado + bit 3 video activo + bit 2 no utilizado + bit 1 no utilizado + bit 0 modo alta resoluci¢n +03B9 reservado para el registro de selecci¢n de color en un adaptador de color +03BA l CRT registro de estado EGA/VGA: registro de estado de entrada 1 + bit 7-4 reservado + bit 3 video blanco/negro + bit 2-1 reservado + bit 0 controlador horizontal + bit 7 (MSD dice) si este bit cambia despues de un lectura 8000h, + entonces: + bit 6-4 000 = adaptador es Hercules o compatible + 001 = adaptador es Hercules+ + 101 = adaptador es Color Hercules + si no: adaptador es desconocido +03BA e EGA/VGA registro de control de caracter¡sticas +03BB reservado para la reinicializaci¢n del estroboscopio del lapiz ¢ptico +03BC-03BF ---- Puerto paralelo impresora, igual que 0278 y 0378 +03BC e puerto de datos +03BD l/e puerto de estado + bit 7 = 0 ocupado + bit 6 = 0 reconocimiento + bit 5 = 1 sin papel + bit 4 = 1 impresora es seleccionada + bit 3 = 0 error + bit 2 = 0 una IRQ ha ocurrido + bit 1-0 reservado +03BE l/e puerto de control + bit 7-5 reservado + bit 4 = 1 IRQ activa + bit 3 = 1 seleccionar impresora + bit 2 = 0 inicializar impresora + bit 1 = 1 desplazamiento de linea automatico + bit 0 = 1 estroboscopio +03BF l/e Registro de configuraci¢n Hercules +03C0-03CF ---- EGA (Primer Adaptador Gr fico Mejorado) alternativa a 02C0 +03C0 (l)/e EGA VGA ATC registro ¡ndice/datos +03C1 l VGA otro registro de atributos +03C2 l EGA VGA registro de entrada de estado 0 + e VGA registro de salida variado +03C3 l/e VGA subsistema de video activo +03C4 e EGA TS registro ¡ndice + l/e VGA registro ¡ndice secuenciado +03C5 e EGA TS registro de datos + l/e VGA otro registro de secuenciado +03C6 l/e VGA PEL registro m scara +03C7 l/e VGA PEL modo de lectura de direcci¢n + l VGA DAC registro de estado +03C8 l/e VGA PEL modo escritura de direcci¢n +03C9 l/e VGA PEL registro de datos +03CA e EGA registro de posici¢n gr ficos 2 + l VGA registro de control de caracter¡sticas +03CC e EGA registro de posici¢n gr ficos 1 + l VGA registro de salida variado +03CE e EGA GDC registro ¡ndice + l/e VGA registro de direcci¢n de graficos +03CF e EGA GDC registro de datos + l/e VGA otro registro gr fico +03D0-03DF ---- CGA (Adaptador Gr fico de Color) +03E8-03EF ---- puerto serie, igual que 02E8, 02F8, and 03F8 +03F0-03F7 ---- FDC 1 (1st Floppy Disk Controlador 8272) igual que 0370 +03F0 estado A del controlador disquete (PS/2) + bit 7 interrupci¢n pendiente + bit 6 unidad segunda instalada + bit 5 paso + bit 4 pista 0 + bit 3 cabeza 1 seleccionado + bit 2 ¡ndice + bit 1 protegido contra escritura + bit 0 direcci¢n +03F1 l estado B del controlador disquete (PS/2) + bit 7-6 reservado + bit 5 unidad seleccionada (0=A:, 1=B:) + bit 4 escribir datos + bit 3 leer datos + bit 2 escritura activa + bit 1 motor activo 1 + bit 0 motor activo 0 +03F2 e DOR del controlador disquete (Registro de Salida Digital) + bit 7-6 reservado PS/2 + bit 7 = 1 unidad 3 motor activo + bit 6 = 1 unidad 2 motor activo + bit 5 = 1 unidad 1 motor activo + bit 4 = 1 unidad 0 motor activo + bit 3 = 1 DMA del disquete activo (reservado PS/2) + bit 2 = 1 FDC activo (reinicio del controlador) + = 0 mantener FDC en el reinicio + bit 1-0 unidad seleccionada (0=A 1=B ..) +03F4 l registro de estado del controlador de disquete + bit 7 = 1 el registro de datos esta preparada + bit 6 = 1 la transferencia es desde el controlador al sistema + 0 la transferencia es desde el sistema al controlador + bit 5 = 1 modo no-DMA + bit 4 = 1 controlador disquete ocupado + bit 3 = 1 unidad 3 ocupada (reservado en el PS/2) + bit 2 = 1 unidad 2 ocupada (reservado en el PS/2) + bit 1 = 1 unidad 1 ocupada + bit 0 = 1 unidad 0 ocupada +03F5 l registro de comando de disquete, estado 0 + bit 7-6 £ltimo comando de estado + = 00 comando terminado satisfactoriamente + = 01 comando terminado anormalmente + = 10 comando invalido + = 11 terminado anormalmente por cambio en la se¤al "ready" + bit 5 = 1 busqueda completada + bit 4 = 1 chequo del equipamiento ocurrido despu‚s de un error + bit 3 = 1 no preparada + bit 2 = 1 n£mero de cabeza en la interrupci¢n + bit 1-0 = 1 unidad seleccionada (0=A 1=B .. ) + (sobre PS/2 01=A 10=B) + registro de estado 1 + bit 7 final de cilindro; n£mero de sector mayor que sectores/pista + bit 6 = 0 + bit 5 = 1 error de CRC en ID o campo de datos + bit 4 = 1 "overrun" + bit 3 = 0 + bit 2 = 1 ID de sector no encontrado + bit 1 = 1 protecci¢n contra escritura encontrada durante la escritura + bit 0 = 1 marca de ID de direcci¢n no encontrada + registro de estado 2 + bit 7 = 0 + bit 6 = 1 marca de direcci¢n de datos borrada encontrada + bit 5 = 1 error de CRC en datos + bit 4 = 1 cilindro erroneo detectado + bit 3 = 1 comando "scan" satisfactorio + bit 2 = 1 comando "scan" fallada, sector no encontrado + bit 1 = 1 cilindro defectuoso, ID no encontrado + bit 0 = 1 marca de direcci¢n de datos desaparecida + registro de estado 3 + bit 7 se¤al de estado de fallo + bit 6 estado de protecci¢n contra escritura + bit 5 estado preparada + bit 4 estado pista cero + bit 3 se¤al de estado de doble cara + bit 2 cara seleccionada (cabeza seleccionada) + bit 1-0 unidad seleccionada (0=A 1=B .. ) +03F6 l/e registro de datos del controlador de disco duro + bit 7-4 reservado + bit 3 = 0 reduce escritura actual + 1 cabeza seleccionada + bit 2 = 1 inicializaci¢n del disco activada + 0 inicializaci¢n del disco desactivada + bit 1 = 0 inicializaci¢n del disco activada + 1 inicializaci¢n del disco desactivada + bit 0 reservado +03F7 l controlador disquete DIR (Registro Entrada Digital) + bit 7 = 1 cambio diskette + bit 6 disco duro puerta de escritura + bit 5 disco duro cabeza seleccionado 3 + bit 4 disco duro cabeza seleccionado 2 + bit 3 disco duro cabeza seleccionado 1 + bit 2 disco duro cabeza seleccionado 0 + bit 1 disco duro unidad 1 seleccionado + bit 0 disco duro unidad 0 seleccionado, tiene conflictos con: + bit 0 diskette alta densidad seleccionado +03F7 e registro selecci¢n para la velocidad de transferencia de datos + del diskette + bit 7-2 reservado + bit 1-0 = 00 modo 500 Kb/S + = 01 modo 300 Kb/S + = 10 modo 250 Kb/S + = 11 reservado +03F8-03FF ---- puerto serie (8250,8251,16450,16550), igual que 02E8,02F8,and 03F8 +03F8 e puerto serie, registro de mantenimiento de transmisi¢n, que + contiene los caracteres a ser enviados. El bit 0 es enviado primero. + bit 7-0 bits de datos, cuando DLAB=0 (Divisor Latch Access Bit) + l registro del buffer de recepci¢n, contiene el caracter recibido. + El bit 0 es enviado primero. + bit 7-0 bits de datos cuando DLAB=0 (Divisor Latch Access Bit) + l/e byte bajo "divisor latch" cuando DLAB=1 +03F9 l/e byte alto "divisor latch" cuando DLAB=1 + l/e registro de interrupci¢n activa cuando DLAB=0 + bits 7-4 reservado + bit 3 = 1 interrupci¢n del estado del modem activa + bit 2 = 1 interrupci¢n del estado de la l¡nea de recepci¢n activa + bit 1 = 1 interrupci¢n de registro de mantenimiento de la transmisi¢n + vacio activa + bit 0 = 1 interrupci¢n de datos en la recepci¢n disponibles activa + (y 16550 "timeout") + - 16550 generar  una interrupci¢n si existen datos en el FIFO y no han + sido leidos dentro del tiempo que tarda en recibir cuatro bytes o si + ning£n dato es recibido dentro del tiempo que tarde en recibir cuatro + bytes. +03FA l registro de identification de interrupci¢n. Informaci¢n sobre una + interrupci¢n pendiente es almacenada aqu¡. Cuando el registro es + direccionado, la interrupci¢n con prioridad m s alta es mantenida, + y ninguna otra interrupci¢n es reconocida hasta que la CPU atienda a esa + interrupci¢n. + bit 7-6 = 00 reservados sobre 8250, 8251, 16450 + = 11 si las colas FIFO est n activas (solo 16550) + bit 5-4 = 0 reservados + bit 3 = 0 reservado en 8250, 16450 + = 1 interrupci¢n pendiente 16550 + bit 2-1 identifican la interrupci¢n pendiente con la mayor + prioridad + = 11 interrupci¢n del estado de la linea de recepci¢n. + Prioridad = la m s alta + = 10 interrupci¢n de datos disponibles en el registro + de recepci¢n. Prioridad = segunda + = 01 interrupci¢n de registro de transmisi¢n vacio. + Prioridad = tercera + = 00 interrupci¢n del estado del modem. Prioridad = cuarta + bit 0 = 0 interrupci¢n pendiente. El contenido de este + registro puede ser usado como un puntero a la rutina + apropiada de manejo de interrupciones. + 1 sin interrupci¢n pendiente + - los flags de interrupci¢n pendiente usan l¢gica inversa, 0=pendiente, + 1=no + - las interrupciones ocurriran si alguno de los bit del estado de + linea est n activados +03FA e 16650 FCR (Registro de Control del FIFO) + bit 7-6 = 00 1 byte + = 01 4 bytes + = 10 8 bytes + = 11 14 bytes + bit 5-4 = 00 reservado + bit 3 = 1 cambia los pins RXRDY TXRDY desde el modo 0 al modo 1 + bit 2 = 1 limpia el FIFO XMIT + bit 1 = 1 limpia el FIFO RCVR + bit 0 = 1 limpia las colas FIFO XMIT y RCVR + - el bit 0 debe ser activado antes de escribir a los otros bits FCR +03FB l/e registro de control de linea + bit 7 = 1 bit de acceso al divisor latch (DLAB) + 0 registro de acceso al buffer de recepci¢n, mantenimiento + de transmisi¢n, o interrupci¢n activa. + bit 6 = modo "break" activado. + bit 5 = paridad "stick" + bit 4 = 1 paridad par seleccionada + bit 3 = paridad activada + 1 n£mero para de unos son enviados y chequeados en los + bits de las palabras de datos y en el bit de paridad. + 0 n£mero impar de unos son enviados y chequeados + bit 2 = 0 bit uno-parar + 1 bit cero-parar + bit 1-0 00 longitud de palabra es de 5 bits + 01 longitud de palabra es de 6 bits + 10 longitud de palabra es de 7 bits + 11 longitud de palabra es de 8 bits +03FC l/e registro de control del modem + bit 7-5 = 0 reservado + bit 4 = 1 modo "loopback" para comprobaci¢n de la salida por el + puerto serie. En este modo los datos transmitidos + son recibidos inmediatamente as¡ que la CPU puede + verificar las salidas y accesos a las transmisiones de + datos por el puerto serie. + bit 3 = 1 salida auxiliar designada por el usuario 2 + bit 2 = 1 salida auxiliar designada por el usuario 1 + bit 1 = 1 activa la petici¢n para enviar obligada + bit 0 = 1 activa el DTR obligado +03FD l registro de estado de linea + bit 7 = 0 reservado + bit 6 = 1 registros de mantenimiento y desplazamiento de la + transmisi¢n vacios + bit 5 = 1 registro de mantenimiento de la transmisi¢n vacio. + El controlador esta preparado para aceptar nuevos + caracteres a enviar. + bit 4 = 1 interrupci¢n "break". El dato de entrada recibido + es mantenido en el estado de bit a cero m s tiempo + que el tiempo de iniciar bit + bits de datos + bit de + paridad + bits de paro. + bit 3 = 1 error. El bit de paro que sigue a los £ltimos bits de + paridad o de datos est  a 0. + bit 2 = 1 error de paridad. El caracter tiene una paridad + erronea. + bit 1 = 1 error. Un caracter fue enviado al buffer receptor + antes que el caracter previo del buffer fuera leido. Esto + destruye el caracter previo. + bit 0 = 1 dato disponible. Un caracter de llegada ha sido + recibido y mandado al registro del buffer de entrada. +03FE l registro de estado de modem + bit 7 = 1 detectado carrier de datos + bit 6 = 1 indicador de llamada + bit 5 = 1 datos preparados + bit 4 = 1 limpiar para enviar + bit 3 = 1 detectado carrier de datos "delta" + bit 2 = 1 indicador del sobrante del timbre de llamada + bit 1 = 1 datos preparados "delta" + bit 0 = 1 limpiar para enviar "delta" + - bits 0-3 son reinicializados cuando la CPU lee el MSR + - bit 4 es el Registro de Control del Modem RTS durante el testeo loopback + - bit 5 es el Registro de Control del Modem DTR durante el testeo loopback + - bit 6 es el Registro de Control del Modem OUT1 durante el testeo loopback + - bit 7 es el Registro de Control del Modem OUT2 durante el testeo loopback +03FF l/e registro "scratch" + ­Las direcciones sobre 03FF solo se aplican a las m quinas EISA! + 1000-1FFF slot 1 EISA + 2000-2FFF slot 2 EISA + 3000-3FFF slot 3 EISA + 4000-4FFF slot 4 EISA + 5000-5FFF slot 5 EISA + 6000-6FFF slot 6 EISA + 7000-7FFF slot 7 EISA +06E2-06E3 ---- adquisici¢n de datos (adaptador 1) +0790-0793 ---- cluster (adaptador 1) +0800-08FF ---- registros de los puertos de E/S para CMOS extendidas RAM or SRAM +0AE2-0AE3 ---- cluster (adaptador 2) +0B90-0B93 ---- cluster (adaptador 2) +0C00 l/e registro p gina para escribir a SRAM o I/O +0C80-0C83 ---- registros ID placa del sistema +1390-1393 ---- cluster (adaptador 3) +2390-2393 ---- cluster (adaptador 4) +3220-3227 ---- puerto serie 3, descripci¢n igual que 03F8 +3228-322F ---- puerto serie 4, descripci¢n igual que 03F8 + +Gracias a Wim Osterholt por su estupenda recopilaci¢n sobre los puertos I/O + diff --git a/download/Documentos/REGISTRO.DOC b/download/Documentos/REGISTRO.DOC new file mode 100644 index 0000000..19dd96a Binary files /dev/null and b/download/Documentos/REGISTRO.DOC differ diff --git a/download/Documentos/SALIDAS PARA PC.doc b/download/Documentos/SALIDAS PARA PC.doc new file mode 100644 index 0000000..9b41d77 Binary files /dev/null and b/download/Documentos/SALIDAS PARA PC.doc differ diff --git a/download/Documentos/STREMER PARA CINTAS DE VIDEO.doc b/download/Documentos/STREMER PARA CINTAS DE VIDEO.doc new file mode 100644 index 0000000..4df6dde Binary files /dev/null and b/download/Documentos/STREMER PARA CINTAS DE VIDEO.doc differ diff --git a/download/Documentos/WIN95.TXT b/download/Documentos/WIN95.TXT new file mode 100644 index 0000000..e5e4ab5 --- /dev/null +++ b/download/Documentos/WIN95.TXT @@ -0,0 +1,61 @@ +Some day in the MS House... +Bill: A ver!, que pasa con ese Windows 94?. +Tech: Pues de maravilla, hasta le hemos cambiado el nombre... O:) +Bill: Arj, otra vez?, llevamos desde el 91 haciendolo!. +Tech: Si, bueno, pero esta vez de verdad que ser  la £ltima. +Bill: Mejor ser , ya estoy harto de sacar versiones del 3.0 +Tech: Ah, entonces el W95 qu‚ es? +Bill: Nada, nada es el sistema operativo del fut... +Tech: Eh!, para el rollo que yo tabajo aqu¡. +Bill: Bueno, una venta m s es una venta m s... + The time pass... +Bill: Qu‚, estamos a mitad del 95 y seguimos sin saber nada de vosotros... +Tech: Otra beta, d‚janos sacar otra beta... +Bill: Nada, me he decidido y lo he anunciado para Agosto, si no lo teneis + listo, os jodeis. +Tech: Pero si lo que tenemos es una patata!. +Bill: Pues se le hace una buena campa¤a, y se anuncia como la patata del + futuro. Pero vamos a ver, qu‚ problema hay?. +Tech: Que todavia no lo hemos hecho sistema operativo. +Bill: Hummm, pues la campa¤a ya est  pagada, hay que pensar en algo. A + ver... qu‚ le falta al Windows 95 para ser sistema operativo... el + DOS!. Lo vendremos con el DOS incluido...!. +Tech: Pero, pero... +Bill: Nada, si ponemos el DOS, y al DOS lo llamamos Windows 95 nadie puede + negar que el Windows 95 sea un sistema operativo. +Tech: Hombre, visto as¡... vale, pero no conseguimos hacer que todos los + programas funcionen en una ventana... +Bill: Todo son problemas!, a ver, esos programas funcionan el bajo DOS normal + y corriente? +Tech: Si, claro. +Bill: Pues ya funcionan bajo Windows 95, al fin y al cabo es el DOS de + siempre. +Tech: Ya voy pillando la idea. O sea que no pueden negar que Windows 95 sea + 100% compatible DOS, por la sencilla raz¢n d que el Windows 95 sigue + siendo un DOS...claro... +Bill: Dios!. Os lo tengo que solucionar todo, me tengo que subir el sueldo. +Tech: Y el multitarea real?. +Bill: Eh, qu‚?, multitarea real?. Ah si, que pasa, no lo habeis conseguido?. +Tech: Nop, seguimos examinando la copia de la WARP que regal¢ el PCworld, + pero seguimos sin pillarle el truco. +Bill: Si al final tendre que comprar la IBM... A ver, que multitarea tenemos + hecha? +Tech: El de Windows 3.11 es la m s sencilla, pero no es real. Como mucho, + del NT. +Bill: La del NT nada, que si no no vendemos ni una copia del NT 95. Ponle la + multitarea del 3.11 y ll male de una forma bonita que no diga nada. +Tech: Cooperativa?. +Bill: Bueno, puede valer. Bueno, no queda m s, ah si, los 32 bits. No + habreis metido tambi‚n la gamba en eso. +Tech: Nop, aqui hemos trabajado bien, hemos usado los registros de 32 solo + lo imprescindible. Es que si ponemos todo a 32 bits, un 486 con 4 Mb + sobrar¡a. +Bill: Espero que pida por lo menos un Pentium con 16 Mb para ir normal... +Tech: Bueno, el caso es que es mejor el 486, as¡ que con pedir un DX4 a 100 + quedamos bien y no ponemos Pentium, asi no pueden quejarse los usuarios. +Bill: Perfecto, hala, ahora a sacarlo al mercado. +Tech: Ok. +Bill: Veamos, cobraremos unos 8-9 d¢lares por aqu¡, as¡ vender‚ m s. + Pongamos unas cuantas fechas... Francia, Italia, UK, Espa¤a... Co¤o, esto + donde est ... Ah, si!, je como son unos pardillos les cobrare el doble, as¡ + hago m s negocio... diff --git a/download/Documentos/st60001.htm b/download/Documentos/st60001.htm new file mode 100644 index 0000000..86bf36c --- /dev/null +++ b/download/Documentos/st60001.htm @@ -0,0 +1,3304 @@ + + +CARACTERISTICAS DEL ST6 + + + + +

+I-INTRODUCCION AL PROYECTO +Y MICROCONTROLADORES +

+Un microcontrolador (MCU) es un circuito +integrado en el que en una misma pastilla están integrados +las partes que componen un sistema con microprocesador, como la +CPU, los módulos de I/O y dependiendo del tipo de MCU hasta +convertidores A/D, TIMERS y puertos SERIE.Esto dota al MCU de +un gran potencial en la electrónica, disminuye costes y +un sólo MCU puede sustituir a un circuito digital complejo, +que necesita de muchos C.I. (circuitos integrados), y tiempo para +su diseño. Incluyendo un MCU en un circuito de estas características +lo único que necesitaremos es el MCU, unos pocos componentes +externos y un programa adecuado.
+
+

+El MCU es ampliamente utilizado actualmente +en la industria, un MCU puede realizar tareas de complejidad baja,media +de las que antes se tenía que ocupar un sistema digital +complejo, una circuitería convencional o un sistema con +microprocesador con todo lo que ello conlleva, como el espacio +necesario y la complejidad de diseñar un sistema mínimo. +
+
+

+Por todo esto y el deseo de conocer un +componente tan importante , con tan grande campo de aplicaciones +y tanto futuro, hemos decidido dedicar este proyecto al estudio +de un MCU que está ampliamente implantado en la industria, +el ST-6 de SGS-THOMSOM, un componente con una gran capacidad y +flexibilidad como para ser usado en cualquier aplicación +electrónica que lo requiera.
+
+

+En este proyecto de final de curso nos +hemos centrado en el estudio de la arquitectura y programación +del ST6 y una vez adquiridos los conocimientos necesarios hemos +empezado ha desarrollar prácticas con el para aplicar la +teoría. Hemos desarrollado una placa de desarrollo para +realizar estas prácticas con más facilidad y una +aplicación final (METEO),esta aplicación final supone +un gran reto para nosotros debido a su media complejidad al comunicar +un PC con el MCU.
+
+II-EL ST6
+

+ST6 es el nombre del la familia de microcontroladores +que fabrica SGS-THOMSOM para el desarrollo de aplicaciones de +control básicas, fáciles de programar y bajo coste. +Todos MCU de esta familia están constituidos alrededor +de una misma CPU de 8 bits, rodeada de diversos periféricos +y dependiendo del modelo más o menos memoria. Hay diversas +subfamilias que se adaptan a diversos sectores del mercado, todos +los miembros de las diversas subfamilias tienen compatibilidad +en el SOFTWARE debido a que la CPU es la misma en todos los casos. +Nosotros trataremos en este proyecto la subfamilia ST62 y en concreto +los modelos ST6210, ST6220,ST6215 y ST6225. Ahora pasamos a describir +las características generales de estos cuatro modelos : +
+
+

+- CPU de 8 bits +

+- Rango de alimentación de 3V +a 6V +

+- Reloj a 8Mhz +

+- 5 Vectores de interrupción +

+- 2K o 4K de memoria PROM/EPROM +

+- RAM 64 bytes +

+- 12/20 Patillas de I/O, programables +como :
+
+

+- Entradas con resistencia PULL-UP +

+- Entradas sin resistencia PULL-UP +

+- Entradas con interrupción +

+- Salidas en colector abierto +

+- Entradas analógicas
+
+

+- 4 líneas de I/O pueden sacar +una corriente de 10mA +

+para atacar directamente leds +

+- Contador de 8 bits con un preescaler +de 7 bits +

+- Timer/Watchdog digital +

+- Convertidor A/D de 8 bits +

+- Una interrupción NMI externa +

+- STACK (LIFO) de 6 niveles +

+- 9 modos de direccionamiento +

+- Oscilador integrado en el circuito +

+- RESET automático tras conexión +de alimentación
+
+
+
+

+II-a) FAMILIA ST6 +

+La familia de microcontroladores ST6 +tienen en común la CPU de 8 bits, y por lo tanto son compatibles +en cuanto a software y las diferencias de un miembro a otro están +en cuanto a líneas de I/O, y memoria, ahora vamos a hacer +una descripción de cada una de las diferencias entre los +miembros 10,15,20 y 25 que son los tratados en este proyecto. +
+
+ +
+

+

+ + + + + + +

+Tipo +

+ST6 +


+EPROM
+
+

+Kbytes +


+RAM
+
+

+Bytes +


+Líneas
+
+

+I/O +


+Alta +

+Intens +

+10mA +


+Num. +

+Canal +

+A/D +


+Ext.
+
+

+Inter. +


+ST62E10 +

+2K +

+64 +

+12 +

+4 +

+8 +

+13 +

+ST62E15 +

+2K +

+64 +

+20 +

+4 +

+16 +

+21 +

+ST62E20 +

+4K +

+64 +

+12 +

+4 +

+8 +

+13 +

+ST62E25 +

+4K +

+64 +

+20 +

+4 +

+16 +

+21 +
+
+

+* En todos estos miembros expuestos en +la tabla son comunes los periféricos que estos llevan incluidos +en la misma pastilla, vamos a nombrarlos y 2 puntos más +adelante los trataremos más detalladamente :
+
+

+- Convertidor A/D +

+- Timer, temporizador +

+- Líneas de puertos I/O +

+- Digital Watchdog/Timer
+
+

+* Descripción de patillas :
+
+

+

Vista de las patillas
+

+Vdd y Vss : +Patillas de alimentación. Vss es la conexión a masa +y Vdd la conexión a positivo. La tensión de alimentación +va desde 3V a 6V.
+
+

+Oscin y Oscout : +Estas patillas están conectadas al oscilador interno del +chip, a estas patillas hay que conectar un circuito resonante, +una señal de reloj externa, o un cristal de cuarzo. La +forma de conectar el cristal es la mostrada en la Fig.3.3.
+
+


+

+ +

+Oscin es la entrada del oscilador y Oscout +es la salida.C1 y C2 deben estar entre los 15pF y 22 pF, para +cristales de 4Mhz y 8Mhz. Aunque el reloj funciona a 8Mhz esto +no se traduce en una gran velocidad, un Z80 a 4Mhz es casi un +300% más rápido que el ST6. +

+Un ciclo máquina consta de 13 +ciclos de reloj, 12 de los cuales se emplean en la búsqueda +del código OP, decodificación e incremento del PC +para localizar el operando o la siguiente instrucción y +el último para estabilizar los buses internos durante el +direccionamiento de memoria.
+
+

+Reset : +Esta patilla a nivel bajo produce un reset en el microcontrolador. +
+
+

+Test/Vpp : +Este pin se utiliza para poner al MCU en un modo especial de trabajo. +Para que el MCU trabaje en un modo normal debe ser conectada a +masa. Si se lleva a un uno lógico el MCU entra en modo +de TEST, este test se realiza en fabrica. El usuario debe llevarla +a masa. Si es una versión EPROM y se lleva a 12.5V durante +la secuencia RESET se produce el modo de programación. +
+
+

+NMI : +Esta patilla es una entrada de interrupción no mascarable, +aunque en realidad se debería decir para ser más +exactos que es una interrupción de máxima prioridad +ya que decir que no es mascarable no es del todo correcto ya que +con el registro IOR del que ya trataremos puede desconectarla. +Esta interrupción es sensible al flanco descendente. En +los modelos EPROM este pin no esta conectado al positivo a través +de una resistencia PULL-UP por lo que el usuario si lo necesita +deberá conectarla en el exterior. En las versiones ROM +se puede decidir si esta resistencia se incluye en fábrica +o no.
+
+

+Timer : +Esta patilla es una línea I/O, esta patilla al igual que +la línea NMI no tiene conectada al positivo una resistencia + +

+PULL-UP y si el usuario necesita utilizar +este pin tendrá que conectarla el desde el exterior. Este +pin puede ser utilizado como I/O dependiendo del modo de funcionamiento +del timer. Si está programada como entrada este pin será +la señal de reloj del preescaler, si actúa como +salida esta sacara el nivel lógico preprogramado cuando +el timer termine su temporización.
+
+
+PA0-PA3, PA4-PA7 : Estas 8 líneas conforman las +líneas del
+

+puerto A, son programables independientemente +como :
+
+

+1. Entrada, con o sin resistencia al +positivo +

+2. Entrada con interrupción mascarable +

+3. Salida en colector abierto o también +en PUSH-PULL
+
+

+PA0-PA3 pueden generar una corriente +de salida de hasta 10mA, mientras que PA4-PA7 pueden programarse +como entradas analógicas para el convertidor A/D. PA4-PA7 +no existen en las versiones ST62E10 y ST62E20.
+
+

+PB0-PB7 : +Estas líneas conforman el puerto B, son programables independientemente +como :
+
+

+1. Entrada, con o sin resistencia al +positivo +

+2. Entrada con interrupción mascarable +

+3. Salida en colector abierto o también +en PUSH-PULL +

+4. Entrada analógica para el convertidor +A/D
+
+

+PC4-PC7 : +Estas líneas conforman el puerto C de I/O. Se pueden programar +independientemente al igual que los puerto anteriores como :
+
+

+1. Entrada, con o sin resistencia al +positivo +

+2. Entrada con interrupción mascarable +

+3. Salida en colector abierto o también +en PUSH-PULL +

+4. Entrada analógica para el convertidor +A/D
+
+

+Estas líneas no existen en los +modelos ST62E10 y ST62E20.
+
+

+* Encapsulados : Las versiones 10 y 20 +tienen 20 pines y las 15 y 25 son de 28.
+
+

+III-b) ARQUITECTURA INTERNA +

+La CPU como ya hemos dicho es la misma +para todos los miembros de la familia ST62XX. La CPU es por lo +tanto como una unidad independiente que se comunica con el resto +de los elementos a través de los buses. +

+Cuando se genera un RESET bien a través +de la patilla reset, a la secuencia de inicio tras la conexión +de la alimentación o a través del WATCHDOG, el PC +direcciona la memoria de programa. De esta forma se obtiene el +código OP de la instrucción a ejecutar que se decodifica +en la unidad de control, y se generan las señales necesarias. +

+Dependiendo del tipo de instrucción, +el operando puede direccionar el área de datos. Esta se +comporta de forma similar a una memoria de 256 posiciones y contiene +datos de tipo constante, variables e incluso los registros de +trabajo de la CPU, así como los de control para los distintos +periféricos. +

+La ALU realiza todas las operaciones +aritmético-lógicas clásicas. Recibe los operandos +desde el área de programa y/o datos.
+
+

+Los resultados obtenidos pueden retornar +al área de datos o, incluso, dependiendo del tipo de instrucción, +modificar el PC. El registro de estado (FLAGS) es de tan solo +2 bits, el de carry y el de cero. El PC es el encargado de direccionar +el área de programa en busca de nuevas instrucciones para +ejecutar. +

+

El STACK o pila se empleará +para contener las direcciones de retorno del PC cuando se produzcan +interrupciones o llamadas a subrutinas.
+
+

+Acumulador (A): +Es el registro acumulador, es de propósito general y se +emplea en las operaciones aritmético-lógicas y manipulación +de datos. El acumulador al igual que todos los registros del ST6 +se usan como si direcciones de memoria se tratase (RAM), se encuentra +en la posición 0ffh.
+
+

+Registros Indice (X,Y) : +Estos dos registros se utilizan para el direccionamiento indirecto +por registro, Ej : LD A,(X). Se pueden utilizar también +como registros de propósito general. Se encuentran en las +posiciones de memoria 80h (X) y 81h (Y).
+
+

+Registros Generales (V,W) : +Estos dos registros son uso general. +Se encuentran en las posiciones de memoria 82h (V) y 82h (W). +
+
+

+Contador de programa (PC) : +Se trata del contador de programa, +es de 12 bits, lo que le permite direccionar 4 Kbytes de programa +es decir de memoria ROM. El PC apunta a la siguiente instrucción +que se va a ejecutar. El PC al igual que el del Z80, se incrementa +nada más que la dirección ROM ha sido leída. +Tras una interrupción el PC se guarda en el STACK y se +carga con el valor del VECTOR de la interrupción correspondiente. +
+
+
+

+Flags (C,Z) : La +CPU dispone de 3 pares de FLAGS, que corresponden a 3 situaciones +diferentes de trabajo : situación normal, interrupción +mascarable y interrupción no mascarable. Cada par tiene +el flag de Carry (C) y el flag de cero (Z). Existen estos 3 pares +de FLAGS para que cuando se pasa de un modo de trabajo a otro, +el valor de los FLAGS no se altere, esta es una forma de no tener +que salvar los FLAGS en el STACK como ocurre en algunos microprocesadores. +La CPU utiliza directamente y automáticamente la pareja +de FLAGS necesarios en cada momento. CN y ZN son los FLAGS para +modo normal, CI y ZI son los FLAGS para modo de interrupción +mascarable, CNMI y ZNMI son los FLAGS para el modo de interrupción +no mascarable (máxima prioridad, NMI).
+
+

+El STACK : Es +una memoria tipo LIFO (último en entrar, primero en salir) +gobernada mediante HARDWARE, lo que no hace necesario el habitual +SP (stack pointer, puntero de pila). El stack del ST6 consiste +en 6 posiciones de 12 bits, cuando se produce una interrupción +o un salto a subrutina el PC se guarda en la posición de +PILA correspondiente automáticamente, cuando la CPU ejecuta +una RET o una RETI el PC de la pila es automáticamente +recuperado. Es importante observar que el máximo nivel +entre interrupciones y subrutinas es 6, ya que si se sobrepasa +este número el valor de la última posición +del STACK se perdería. Si el usuario necesita guardar el +valor de diversos registros en un salto a interrupción +o subrutina deberá hacerlo guardando los registros en posiciones +de memoria para después recuperarlos. Si el STACK esta +vacío y se ejecuta una RET o una RETI el programa no hace +nada y ejecuta la siguiente instrucción que se encuentre +detrás del RET o RETI.
+
+

+AREAS DE MEMORIA : La +CPU del microcontrolador opera en dos zonas de memoria diferentes +: AREA DE DATOS y AREA DE PROGRAMA.
+
+

+AREA de PROGRAMA : Es el área +de programa ROM/EPROM del chip, esta memoria contiene las instrucciones +de programa, tablas de datos de valores fijos y los vectores de +interrupción. Es direccionada por el PC. Las direcciones +para cada componente de la familia ST62 aquí estudiada +son las siguientes :
+
+

+

+

+Se puede observar en la figura que la +memoria de programa en la versiones de 2K comienza en la posición +0800h y en las de 4K en la 0000h. Las direcciones que no aparecen +en el anterior mapa no están implementadas o bien no son +accesibles para el usuario. +

+NOTA : en las versiones OTP +(one time programable, PROM) de 2K la memoria de programa comienza +en la 0880h y las de 4K en la 0080h +

+AREA de DATOS : El juego de instrucciones +de la CPU del ST6 opera sobre una zona específica llamada +zona o área de datos. Se trata de una zona de memoria de +256 posiciones (000h-0FFh) facilmente accesible mediante un operando +de 8 bits. Esta zona de memoria es igual en todas las versiones +que aquí se estudian. En dicha zona de memoria podemos +encontrar lo siguiente :
+
+

+1- Datos constantes y de sólo +lectura, procedentes gracias al registro RDW de la memoria EPROM, +se pueden acceder a 64 bytes de este tipo. Este registro ya lo +trataremos después.
+
+

+2- 60 posiciones de memoria RAM que pueden +contener variables o datos temporales.
+
+

+3- Los registros de trabajo de la CPU +X,Y,V y W, así como el acumulador A.
+
+

+4- El propio registro de ventana RDW +cuyo contenido permite reflejar en la zona de datos una porción +de 64 bytes procedentes de la memoria de programa EPROM.
+
+

+5- Los diversos registros que según +se programen controlan los diferentes periféricos.
+
+
+

+Las posiciones de la memoria de datos +están distribuidas como sigue :
+
+

+040h-07Fh ----> Ventana de datos constantes +

+080h ----> Registro Indice X +

+081h ----> Registro Indice Y +

+082h ----> Registro General V +

+083h ----> Registro General W +

+084h-0BFh ----> Ram de datos +

+0C9h ----> RDW +

+0FFh ----> Acumulador
+
+

+Las direcciones de los registros de los +periféricos serán dadas cuando se expliquen estos. +
+
+

+El registro RDW : Como +ya hemos apuntado el ST6 trabaja con 2 áreas de memoria, +la de programa y la de datos. Las instrucciones que operan con +datos lo hacen directamente sobre el area de datos, por lo tanto +se podría pensar que no se podrían tener tablas +de datos permanentes ya que las instrucciones no operan con la +memoria de programa EPROM. Para remediar esto existe un registro +localizado en la posición C9h de la RAM (RDW). Gracias +a este registro se pueden reflejar 64 bytes de la memoria EPROM +en la RAM en las posiciones 40h-7Fh, modificando este registro +se reflejan diferentes partes de la EPROM. La forma para conseguir +esto se hace de la siguiente forma :
+
+

+Los 6 bits de menor peso del +registro RDW se concatenan con los 6 bits de menos peso del operando +que acompaña a la instrucción, resultando una dirección +de 12 bits que permite expresar cualquier posición física +de la zona o área de programa EPROM.
+
+
Ejemplo : Suponiendo que el RDW +valga 22h, y se ejecute una instrucción LD A,43 la porción +de memoria de programa física reflejada en las posiciones +de la 40h a la 7Fh de la zona de datos, está comprendida +entre la 880h y la 8BFh. Así, el acumulador se carga con +lo que hay en la 43h que es el reflejo de la posición 883h.
+

+Para trabajar correctamente con este +registro existen directivas de emsamblador de las que trataremos +en el punto correspondiente.
+
+

+LAS INTERRUPCIONES : +La CPU puede manejar cuatro fuentes diferentes de interrupción +mascarable y una no mascarable de máxima prioridad (NMI). +
+
+

+Cada interrupción tiene asociado +un vector de interrupción, que contiene la dirección +de salto hacia la subrutina de atención a la interrupción. +Estos vectores están localizados de forma fija en la memoria +EPROM. Cuando se produce una interrupción el PC se guarda +en el STACK y se carga con el valor de la dirección del +vector correspondiente, el PC ejecuta la instrucción que +hay en el vector de interrupción que deberá ser +normalmente una instrucción JP etiqueta, por lo tanto salta +a la subrutina de atención de interrupción.
+
+

+Los FLAGS conmutan al modo de interrupción +correspondiente. Cuando el programa de atención a interrupción +termina ( con un RETI retorno de interrupción ) el PC se +recupera del STACK y los FLAGS conmutan al modo normal y la ejecución +del programa continua donde fue interrumpida.
+
+

+VECTORES de INTERRUPCIONES y RESET : +
+
+

+

+ + + + + + + + +

+Fuente Interrupción +

+Número de Vector +

+Dirección +

+Patilla NMI +

+Vector N.0 +

+FFCh - FFDh +

+Cualquier Pin PA +

+Vector N.1 +

+FF6h - FF7h +

+Cualquier Pin PB +

+Vector N.2 +

+FF4h - FF5h +

+Cualquier Pin PC +

+Vector N.2 +

+FF4h - FF5h +

+TIMER +

+Vector N.3 +

+FF2h - FF3h +

+Convertidor A/D +

+Vector N.4 +

+FF0h - FF1h +

+RESET +

+Vector Reset +

+FFEh - FFFh +
+
+

+LA PRIORIDAD EN LAS INTERRUPCIONES : +La interrupción NMI es la de máxima prioridad, esta +interrupción puede incluso interrumpir el tratamiento de +cualquiera de las otras cuatro, en cualquier momento. Sin embargo, +las restantes interrupciones no pueden interrumpir ni cancelar +ninguna otra ni su correspondiente tratamiento. En caso de que +haya varias interrupciones pendientes de ser atendidas, el orden +que establece la CPU es atender primero a la 1 y la última +a la número 4. Esta prioridad es fija y se establece por +HARDWARE.
+
+

+El registro de opciones de interrupciones +IOR es un registro de 8 bits localizado en la posición +0C8h de datos. Es un registro de sólo escritura que no +puede accederse mediante instrucciones de manipulación +de bits.
+
+
+

+IOR (POSICION 0C8h)
+
+

+

+ +

+IOR7 +

+IOR6 +

+IOR5 +

+IOR4 +

+IOR3 +

+IOR4 +

+IOR5 +

+IOR6 +
+
+

+De los 8 bits que tiene el registro IOR +solamente 3 de ellos se utilizan, estos son IOR4, IOR5 y IOR6, +y tienen asignadas las siguientes funciones :
+
+

+IOR4 ÄÂÄÄÄÄÄÄ> +ACTIVO : ACTIVA TODAS INTERRUPCIONES +

+ ³ +

+ ÀÄÄÄÄÄÄ> +DESACTIVO : DESACTIVA TODAS INTERRUPCIONES +

+IOR5 ÄÂÄÄÄÄÄÄ> +ACTIVO : INT.2 ACTIVA, FLANCO ASCENDENTE +

+ ³ +

+ ÀÄÄÄÄÄÄ> +DESACTIVO : INT.2 ACTIVA, FLANCO DESCENDENTE +

+IOR6 ÄÂÄÄÄÄÄÄ> +ACTIVO : INT.1 ACTIVA, NIVEL LOGICO "0" +

+ ³ +

+ ÀÄÄÄÄÄÄ> +DESACTIVO : INT.1 ACTIVA, FLANCO DESCENDENTE
+
+

+Si hay varias líneas de un mismo +puerto que pueden interrumpir, siempre que interrumpan sea la +línea que sea se salta a su correspondiente vector de puerto +y el usuario deberá ser el encargado en la subrutina de +tratamiento de la interrupción de determinar que línea +fue la que interrumpió.
+
+

+EL RESET : Sirve +para inicializar el microcontrolador y tiene tres formas de generarse +:
+
+

+1- Mediante una señal externa +aplicada por el PIN RESET +

+2- De forma automática, tras la +conexión de la VCC +

+3- Por el controlador de secuencias WATCHDOG +
+
+

+Cuando se produce un RESET se produce +una secuencia de inicio. El STACK se restaura y se coloca en el +primer nivel. El contador de programa PC acude a las posiciones +del VECTOR RESET, situadas en FFEh y FFFh, donde se encuentra +una instrucción de salto (JP) a la dirección de +comienzo de la rutina principal del sistema.
+
+

+La CPU se pone automáticamente +en el modo de trabajo NMI con objeto de evitar falsas interrupciones +en la secuencia de inicio. Por ello, tras realizar la rutina principal +se debe incluir la instrucción RETI para que la +CPU pase a trabajar en modo normal.
+
+
+

+III-c) PERIFERICOS DEL ST6 +

+LAS PUERTAS DE ENTRADA/SALIDA +: Todas las líneas de I/O +se agrupan en tres puertas llamadas PA, PB y PC. Cada puerta está +asociada con tres registros mediante los cuales se establecen +las diferentes formas de trabajo. Estos son :
+
+

+- Registro de datos +

+- Registro de direcciones +

+- Registro de opciones
+
+Cada uno de los 3 registros anteriores ocupa una posición +en el área de datos :
+
+

+

+ + + + +

+PUERTA +

+Reg.Datos +

+Reg.Direcc. +

+Reg.Opciones +

+PA +

+DRPA (C0h) +

+DDRPA (C4h) +

+ORPA (CCh) +

+PB +

+DRPB (C1h) +

+DDRPB (C5h) +

+ORPB (CDh) +

+PC +

+DRPC (C2h) +

+DDRPC (C6h) +

+ORPC (CEh) +
+
+

+El bit de cada registro está asociado +a cada una de las líneas de los puertos. Así, por +ejemplo el BIT 0 de DRPA, DDRPA y ORPA está asociado con +la línea PA0 del puerto PA.
+
+

+Durante la secuencia de inicio del MCU, +tras el RESET, todos los registros se borran, de forma que las +líneas de las tres puertas quedan configuradas como entradas +en PULL-UP, sin poder provocar interrupciones. +

+Los puertos se programan poniendo los +adecuados valores en sus 3 registros, ahora 2 consideraciones +: no se pueden tener más de una entrada analógica +simultáneamente y la otra es que cuando una línea +se programa como entrada SIN PULL-UP ni interrupción +es lo mismo que si estuviera en alta impedancia.
+
+

+EL TIMER : Es +un temporizador compuesto por un contador de 8 bits con un preescaler +programable de 7 bits, permitiendo cuentas de hasta 215 +eventos, y toda la lógica de control necesaria para configurar +tres modos diferentes de trabajo. +

+Los registros de TIMER : el timer tiene +3 registros, el contador, el preescaler y otro el de estado y +control.
+
+

+El TCR : El registro contador de tiempos +TCR es el temporizador programable de 8 bits, se carga con el +valor de la temporización que se desee realizar. Este registro +se va decrementando en cada flanco ascendente de la señal +CLK aplicada a su entrada hasta que valga 0, momento en el cual +se activa el bit TMZ del registro de control/estado. El TCR se +encuentra en la posición D3h del área de datos. +
+
+

+El PSC : Es un registro de 7 bits que +se encuentra en la posición D2h del área de datos. +Se trata también de un contador descendente que se decrementa +en los flancos ascendentes de la señal CLK aplicada a su +entrada. Como es sabido, la frecuencia obtenida en el bit 0, es +la mitad de la de la entrada. De esta manera, las señales +obtenidas en la entrada del CLK del preescaler, en el bit 0, bit +1, en el 2,3,4,5,6 serán de 1/2, 1/4, 1/8, 1/16, 1/64 y +1/128 de la frecuencia de entrada, respectivamente. Mediante un +multiplexor de 8 a 1, se aplica una de ellas al contador TCR como +frecuencia de CLK de trabajo del mismo.
+
+

+El TSCR : Se trata del registro de estado +y control con el cual se puede programar los distintos modos del +TIMER, así como conocer el estado del mismo. Este registro +puede ser leído y escrito en la posición D4h +del área de datos.
+
+

+MODOS de TRABAJO : Mediante los correspondientes +bits del registro TSCR se pueden programar 3 modos de trabajo. +

+1- Modo Controlado : El preescaler se +decrementa mientras la patilla de entrada TIMER esté a +1, en caso contrario la temporización queda detenida.
+
+

+2- Contador de Eventos : La patilla TIMER +actúa como entrada de CLK del TIMER y cuando los pulsos +contados sean iguales que el valor del contador la temporización +termina. La frecuencia máxima de entrada por el TIMER será +de 2Mhz si el MCU trabaja a 8Mhz.
+
+

+3- Modo Salida : El pin TIMER queda configurado +como salida y saca el nivel lógico que el usuario programe, +cuando la cuente llegue a 0. +

+La INTERRUPCION TIMER : El TIMER si esta +habilitado para ello puede provocar una interrupción de +nivel 3, cuando la cuenta llegue a 0.
+
+

+EL CONVERSOR A/D : Es +un convertidor con el proceso de conversión conocido como +de APROXIMACIONES SUCESIVAS, si el MCU trabaja a 8Mhz el tiempo +de conversión serán de unos 70uS. El conversor puede +tener varios canales de entrada, pero como ya se dijo sólo +puede tener activo uno, de lo contrario se pueden producir fallos +en el CHIP. El conversor tiene 2 registros diferentes. Uno es +el resultado de la conversión (ADR) y el otro establece +las diferentes formas de trabajo y control (ADC). +

+La resolución es la siguiente +:
+
+

+Vdd-Vss +

+---------= Resolucion +

+256
+Así pues si por ejemplo el MCU está alimentado a +5V, la resolución es de 19,5 mV.
+

+El RESET detiene, en el momento de producirse, +cualquier conversión que se esté realizando. Todos +los registros del A/D se ponen a 0. +

+El registro ADC se encuentra en la posición +D1h del área de datos y el ADR en la D0h.
+
+

+EL WATCHDOG : +El WATCHDOG o controlador de secuencias consiste en un temporizador +capaz de generar un RESET cada cierto tiempo, dando comienzo la +secuencia de inicio del sistema. Esto evita que el microcontrolador +se quede "colgado" o entre en ciclos de espera excesivamente +largos. Se deberá recargar cada cierto tiempo evitando +que llegue a 0, si no se desea que genere un RESET. Existen dos +tipos de WATCHDOG uno activable por SOFTWARE y otra por HARDWARE. +En las versiones de MCU EPROM se comercializan los dos tipos, +los que se activan por SOFTWARE llevan la inscripción SWD +y los de HARDWARE HWD. +

+En el tipo HARDWARE el WATCHDOG se inicializa +automáticamente tras el RESET sin necesidad de ser activado +por el usuario. En este caso, siempre esta activado y no se puede +emplear como temporizador. En la versión SOFTWARE el usuario +controla el funcionamiento o no del WATCHDOG. En caso de no activarlo +se podrá emplear como temporizador. +

+El WATCHDOG como tal es un contador descendente +al que se accede en la posición D8h del area de datos y +se representa como WDR.
+
+

+El valor de temporización se establece +mediante el valor cargado en los 6 bits de mayor peso del registro, +que se va decrementando en unidades de intervalos de tiempo. De +esta manera, si antes no se recarga, llegara a 0 produciendo el +RESET.
+
+

+III-d) TIPOS DE DIRECCIONAMIENTO + +

+El software de la familia ST62XX esta +diseñado para aprovechar al máximo las posibilidades +del hardware usando la mínima memoria posible. Por ello +gran parte de las instrucciones necesitan de un único byte +que contiene el cogido OP y el propio operando. +

+DIRECCIONAMIENTO INMEDIATO +: El operando que acompaña +al código OP de la instrucción es el propio dato +a procesar.
+
+

+DIRECTO : +La dirección de memoria donde se encuentra el dato a procesar, +se da en el operando de un byte que acompaña a la instrucción. +

+DIRECTO CORTO : S emplea en aquellas +instrucciones en las que el operando es cualquiera de los registros +de trabajo X,Y,V y W.
+
+

+EXTENDIDO : +Lo emplean las instrucciones de salto (JP,CALL) que necesitan +de un operando de 12 bits para definir la dirección de +memoria a la que hay que acudir.
+
+

+RELATIVO AL PC : Se +emplea en las instrucciones de salto condicional. Estas realizan +la comprobación o test de una determinada condición. +Si esta se cumple el PC se puede desplazar 15 posiciones hacia +adelante o hacia atrás desde la posición en que +se encuentre en ese momento. Si por el contrario dicha condición +no se cumple, se ejecuta la siguiente instrucción.
+
+

+DIRECTO A BIT : +Empleado por las instrucciones destinadas al activo o borrado +de bits individuales.
+
+

+COMPROBACION DE BITS Y SALTO +: En el código OP se indica +el número del bit a comprobar su estado lógico y +según su estado generar un salto de +/- 128 posiciones +o no.
+
+

+INDIRECTO : +El dato a manipular se encuentra en la posición marcada +por cualquiera de los registros indicies.
+
+

+INHERENTE O IMPLICADO : Lo +emplean aquellas instrucciones que no necesitan de operando alguno. +
+
+

+IV-EQUIPO DE PROGRAMACION USADO + +

+IV-a) INTRODUCCION AL EQUIPO + +

+El equipo usado en este proyecto es el, +equipo de desarrollo de ST6 de SGS-THOMSOM. Consta de un programador +de ST6 por medio del puerto paralelo de un PC, software para el +programador, un simulador de software y cuatro MCU ST6.
+
+

+IV-b) SOFTWARE :
+
+

+El software del equipo consta de un simulador +de la CPU del ST6, de un programa para el programador, y un ensamblador +y linkador. Ahora pasaremos a describir el ensamblador y el simulador. +
+
+

+IV-b,I) ENSAMBLADOR (DIRECTIVAS +Y OPCIONES) +

+-EL AST6.EXE (ENSAMBLADOR) +: AST6 +es un ensamblador que trabaja con ficheros ASCII. Se ejecuta desde +la línea de comandos del DOS. Forma : +

+C:\ST6\AST6 [-opciones] fichero1 [fichero2...] +

+Esta orden expuesta ensamblaría +fichero1.asm creando por defecto un fichero1.hex y fichero1.dsd. +Los ficheros de salida son producidos de acuerdo a las opciones +elegidas. Las opciones se especifican antes del fichero. Cada +opción debe de ir precedida por un signo menos, estas pueden +ser tanto en mayúsculas como minúsculas.
+
+

+Opciones del AST6 :
+
+

+-L Crea un fichero de salida con el listado +(name.LIS) +

+-X Crea un fichero con una tabla de referencias +cruzadas (name.X) +

+-M Añade un mapa de información +al final de name.LIS +

+-S Crea una tabla con los símbolos +en el fichero name.SYM +

+-O Crea un fichero objeto (name.obj) +

+-E Crea un fichero con una lista de errores +(name.ERR) +

+-F Introduce la trayectoria completa +(nombre) en los mensajes de error +

+-D Inserta información para la +máscara de ROM en el fichero name.HEX +

+-Z Cambia el formato de los ficheros +.DSD y .SYM para los componentes de la familia ST60
+
+

+Los ficheros .DSD son información +para el simulador (SIMST6.EXE). +

+Por defecto AST6 crea los ficheros .HEX +y .DSD.
+
+

+Formato del programa fuente +:
+
+

+El formato de fichero fuente .ASM debe +de ser de texto ASCII. +

+Formas : +

+label LD A,055h ; Carga en el acumulador +05h +

+----- --------- ---------------------------- +

+etiq. mnémonico. comentario
+
+

+Campo etiqueta : Cualquier nombre que +no sea una palabra reservada.(no va seguido de dos puntos) +

+Campo mnemónico : Cualquier mnemónico +admitido +

+Comentario : Precedido por (;), lo que +le sigue no se tiene en cuenta.
+
+

+Símbolos y expresiones +:
+
+

+Números : b o B, binarios +

+o o O, Octales +

+h o H, hexadecimales
+
+

+Un número es una cadena de dígitos. +Por defecto los números serán decimales.Ej : AFF +es un símbolo, 0AFFh es un número.
+
+

+Caracteres Constantes : +

+El carácter constante esta representado +por un carácter ASCII entre comillas simples (ej: ´a´). +El valor del carácter constante es el código ASCII +para ese carácter.
+
+

+Cadenas Constantes : +

+Son cadenas de caracteres constantes +encerrados entre comillas dobles. Si se quiere poner en la cadena +las comillas estas deben ir precedidas por la BACKSLASH ( \ ). +
+
+

+DIRECTIVAS DE ENSAMBLADOR : +
+
+

+Una directiva de ensamblador es similar +sintácticamente al código de una instrucción +máquina, pero esta se usa para la generación del +código objeto. Todas las directivas son identificadores +que comienzan con un punto. (Ej: tabla .DEF 084h)
+
+

+- DEFINICION DE DATOS EN EL ESPACIO DE +PROGRAMA
+
+

+a) Directiva .BLOCK
+
+

+sintaxis : [etiqueta] .BLOCK expresión +
+
+

+Esta directiva reserva un bloque de localizaciones +de memoria contiguas en espacio de memoria de programa. La dimensión +del bloque es determinada por la expresión en el campo +de operando. Si la etiqueta está presente a esta se le +asigna la dirección de la primera posición del bloque +de memoria. Todos los símbolos de la expresión tienen +que haber sido definidos anteriormente.
+
+

+b) Directiva .WORD
+
+

+sintaxis : [etiqueta] .WORD expresión,[expresión] +
+
+

+Esta directiva genera sucesivas palabras +de código objeto en el espacio de programa. El byte menos +significativo se coloca en la dirección inferior y el byte +más significativo en la posición mayor. Las expresiones +tienen que estar separadas por espacios, tabuladores o comas. +
+
+
+

+c) Directiva .BYTE
+
+

+sintaxis : [etiqueta] .BYTE expresión,[expresión] +
+
+

+Esta directiva genera sucesivos bytes +de código en el espacio de programa. El valor de la expresión +es truncada a los 8 primeros bits.
+
+

+d) Directiva .ASCII Y .ASCIZ
+
+

+sintaxis : [etiqueta] .ASCII "cadena" +

+[etiqueta] .ASCIZ "cadena" +
+
+

+Estas directivas se usan para definir +una cadena de caracteres en el espacio de programa, .ASCIZ es +igual que .ASCII pero añade un carácter NULL al +final de la cadena.
+
+

+e) Directiva .DEF
+
+

+sintaxis : [etiqueta] .DEF dirección,[R-MASK],[W-MASK],[V],[M] +
+
+

+Esta directiva define las características +de la dirección del espacio de datos. Ej: valor .DEF 084h +, asigna a la etiqueta valor la dirección 084h del área +de datos. +

+[M] coloca una marca en el fichero .DSD, +esa marca hará que mientras se está simulando el +programa en el simulador, la posición definida se visualizara +en la ventana de registros. En esa ventana sólo se visualizarán +los registros que lleven esa marca.
+
+

+- DIRECTIVAS DE DEFINICION DE SIMBOLOS +
+
+

+a) Directiva .EQU
+
+

+sintaxis : [etiqueta] .EQU expresión +
+
+

+Asigna el valor de la expresión +a la etiqueta, una vez utilizada esta directiva, la etiqueta ya +no puede volver a ser redefinida.
+
+

+b) Directiva .SET
+
+

+sintaxis : [etiqueta] .SET expresión +
+
+

+Es muy similar a .EQU, la única +diferencia es que una etiqueta definida con .SET puede ser otra +vez redefinida con .SET.
+
+

+c) Directiva .INPUT
+
+

+sintaxis : .INPUT "name.asm" +
+
+

+Añade al fichero fuente el indicado +por .INPUT. Se suele utilizar para añadir a los ficheros +fuentes el fichero de definición de registros ya que este +es común a todos ellos.
+
+
+

+- OTRAS DIRECTIVAS
+
+

+a) Directiva .DISPLAY
+
+

+sintaxis : .DISPLAY "cadena" +
+
+

+Durante el ensamblado imprime la cadena +en la pantalla.
+
+

+b) Directiva .END
+
+

+sintaxis : .END
+
+

+Ultima directiva del fichero fuente, +indica el final. Todas las líneas presentes después +de esta directiva son ignoradas.
+
+

+c) Directiva .ORG
+
+

+sintaxis : .ORG expresión
+
+

+Asigna el valor de la expresión +al contador de localización. Todos los símbolos +que aparezcan en expresión deben haber sido definidos previamente. +Esta directiva no funciona con la opción -O del AST6.
+
+

+d) Directivas .ERROR Y .WARNING +
+
+

+sintaxis : .ERROR "cadena" +

+.WARNING "cadena"
+
+

+Generan un mensaje (cadena) en el fichero +de errores (-E) o en la salida de errores en pantalla.
+
+

+- DIRECTIVAS PARA EL USO DEL REGISTRO +RDW
+
+

+a) Directiva .W_ON
+
+

+sintaxis : .W_ON
+
+

+Esta directiva debe incluirse en el fichero +fuente, si en el espacio de datos existe una ventana de datos +constantes.
+
+

+b) Directivas etiqueta.W y etiqueta.D +
+
+

+sintaxis : etiqueta.W +

+etiqueta.D
+
+

+Deben utilizarse si .W_ON ha sido puesta +antes. +

+Ejemplo de su utilización :
+
+

+.W_ON
+
+

+tabla .BYTE 0ffh,21h,42h,32h ;Bloque +fijo en EPROM
+
+

+.input "ST6.ASM" ;Entra definición +de registros
+
+
+

+ldi rdw,tabla.W ;Carga en el registro +RDW la ;dirección apropiada para que en ;el área +de datos se quede ;representado el bloque de datos ;constantes +
+
+

+ldi x,tabla.D ;Carga en X la dirección +de ;memoria RAM donde se encuentra ;el primer valor de la tabla +de ;datos (0ffh)
+
+
+

+.END
+
+

+Un programa en el cual hemos utilizado +estas directivas de control de RDW es el del control de semáforos. +

+Las directivas de ensamblado condicional +y macros no se especifican por ser su tratamiento complejo y no +ser necesarias para este proyecto.
+
+

+El ST6.EXE (linkador) : LST6 +combina los objetos de ST6 creados por separado. Esta especialmente +diseñado para soportar a los miembros de la familia ST6 +que tienen la memoria paginada. Por ello no lo utilizaremos.
+
+
+

+IV-b,II) SIMULADOR ST6 +

+Para utilizar el simulador +es mejor añadir al AST6.EXE cuando se va a ensamblar el +programa a simular la opción -S, para que el simulador +carge el fichero nombre.SYS, es más fácil de seguir +la simulación ya que así se visualiza el programa +en el simulador con las etiquetas. +

+El simulador (SIMST6.EXE) simula el funcionamiento +del corazón del ST6, (interrupciones,RDW,IOR) y no los +periféricos de I/O, ADC, TIMER, y WATCHDOG. +

+Ahora pasamos a describir brevemente +los menús más importantes del simulador en INTERFACE +GRAFICO.
+
+

+- MENU FILE
+
+

+LOAD : carga ficheros a simular (.HEX, +.DSD) y si existe .SYS. +

+SAVE : salva el contenido de memoria +en un fichero. +

+OPEN LOG OPTION : salva todas las salidas +del simulador a un fichero de texto. +

+CLOSE LOG OPTION : cierra el fichero +abierto. +

+EXIT : sale del simulador. +

+- MENU WATCH +

+REGISTER ÄÄÂÄÄÄÄÄ> +DISPLAY *1 +

+ ³ + +

+ ³ + +

+ ÀÄÄÄÄÄ> +DISPLAY WRS *2
+
+

+*1 DISPLAY : Tiene 3 ventanas, pregunta +a partir de que dirección se visualiza el espacio de datos. +También se puede cambiar el PC y algunos FLAGS.
+
+

+*2 DISPLAY WRS : Visualiza todos los +registros que estan declarados como de trabajo, es decir con la +marca [m] en su definición.
+
+

+DUMP PROG OPTION : Muestra y modifica +el espacio de programa. +

+ASSEMBLER OPTION : Ensambla y desensambla +en un editor en línea. +

+SYMBOLS OPTION : Visualiza la tabla de +símbolos, cargada del fichero .SYS. +

+WINDOW OPTION : Visualiza un bloque de +64 bytes del espacio de datos. +

+SEARCH OPTION : Busca bytes en memoria. +

+TRACE OPTION : Visualiza las últimas +instrucciones ejecutadas.
+
+

+- MENU UTILITY
+
+

+COMPARE OPTION : Compara 2 bloques de +memoria. +

+MOVE OPTION : Mueve un bloque de memoria +a otra dirección. +

+USE OPTION : Ejecuta los comandos que +estan en un fichero .CMD +

+FILL OPTION : Rellena un bloque de memoria +con un patrón. +

+BASE OPTION : Selecciona la base de conversión +(HEX, OCT, DEC). +

+L.MODE OPTION : Pone el simulador en +interface de línea de comandos.
+
+

+- MENU RUN
+
+

+GO (CONTINUE) OPTION : Corre el programa +donde se quedó el PC. +

+GO OPTION : Corre el programa a partir +de una dirección. +

+NEXT OPTION : Ejecuta paso a paso. +

+RESET OPTION : Resetea el STATUS interno +del simulador. +

+SET OPTION : Pone el FULL-TRACE.
+
+

+- MENU BREAKPOINTS
+
+

+DISPLAY OPTION : Visualiza todos los +modos de BREAKPOINTS si estan abilitados. +

+PRESET OPTION : Preestablece las opciones +de los BREAKPOINTS. +

+SET/ADDR OPTION : Coloca un breakpoint +en una dirección del espacio de datos o de programa. +

+DELETE/ALL OPTION : Borra todos los BREAKPOINTS. +

+DEL/ADDR OPTION : Borra BREAKPOINTS de +una sola dirección. +

+BRK ENABLE OPTION : Abilita/Desabilita +los BREAKPOINTS.
+
+

+- MENU CONF
+
+

+Muestra los tiempos de usuario y sistema +y el estado de las interrupciones.
+
+
+V-PLACA DE DESARROLLO ST6V-PLACA DE DESARROLLO ST6
+
+

+V-a) EL PORQUÉ +

+La placa de desarrollo del ST6 nació +por la necesidad de un sistema con el cual se pudieran montar +practicas con el microcontrolador de una manera rápida +y sencilla, además de evitar la rotura de los pines del +ST6 en el momento de insertar y sacar el ST6 de la BOARD. Una +vez nacida la idea surgió la posibilidad de poder aprovechar +todas las utilidades de PROMAX utilizadas anteriormente con el +Z80, para esto se decidió el colocar el conector adecuado +con el patillaje del PIO del equipo TM-801 de PROMAX. Otra opción +recogida fue la de dotar a la placa de su propia fuente de alimentación +estabilizada para aplicaciones digitales. Con todas estas +premisas se diseño el circuito descrito a continuación. +
+
+

+V-b) ESQUEMAS Y DESCRIPCIÓN +

+El esquema esta claramente dividido en +3 partes que son, la fuente de alimentación, los switches +y leds y por ultimo el microcontrolador.
+
+

+La fuente de alimentación: Es +una fuente de alimentación de tensión fija de 5V +y que es capaz de proporcionar hasta 1 amperio de corriente. El +transformador es un transformador en encapsulado de resina que +transforma los 220V de red en 12V, la máxima corriente +que es capaz de soportar es 1 amperio. Para el rectificador se +opto por un PUENTE DE WIEN encapsulado, por su mayor facilidad +de reparación y de montaje frente a los 4 diodos tradicionales, +Es capaz de soportar la corriente de un amperio. El filtro esta +constituido por C5 que es un condensador electrolitico de 4.500mF. +La etapa estabilizadora y reguladora esta basada en el popular +7805 que es un regulador de tensión positiva de 5V capaz +de proporcionar 1 Amperio, para la máxima corriente es +recomendable dotar al integrado de su correspondiente radiador, +ya que al estar dotado de un protector contra sobrecalentamiento +sin el radiador no podrá proporcionar la corriente adecuada, +C3 y C4 son recomendados por el fabricante del 7805. El led D10 +tiene como función indicarnos si el sistema esta conectado +a la red R2 tiene como función limitar la corriente que +pasa por D10.
+
+

+Switches y leds: Tienen como función +el poder comprobar mediante sencillos cableados el correcto funcionamiento +de un programa en caso de no poder disponer del sistema a controlar. +Los switches tienen como función la de poder simular sensores, +están constituidos por una tira de conector de 10 pines +(8 para los dips y dos para alimentación) un circuito buffer +74HC245 configurado par que los datos pasen de A a B, de 1 pack +de 8 resistencias y de los dips, las resistencias tienen como +fin el asegurar el 1 cuando los dip estén abierto y limitar +la corriente cuando los dips estén cerrados.
+
+

+Los leds tienen como función visualizar +los datos de los controles de mando, esta constituido por una +tira de conector de 8 pines, de un circuito de buffers configurado +para que los datos pasen de A a B ,de un pack de resistencias +para limitar la corriente de los led y de 8 led para visualizar +los datos. +

+Parte principal: Esta constituida por +un zócalo de fuerza de inserción nula, de un circuito +de RESET, del oscilador, de una tira de conectores de 22 pins +y de un conector de 50 patillas. +

+El zócalo de fuerza 0 corresponde +a U1, en el esquema apararece como un ST62E15 para evitar los +posibles errores de conexión de patillas, hay que advertir +que solo vale esta placa para los encapsulados de 28 patillas, +el circuito de reset funciona de dos maneras al encender la alimentación +y al pulsar el pulsador, el circuito oscilador esta diseñado +para la frecuencia de oscilación de 8 Mhz a la cual puede +funcionar cualquier miembro de la familia ST6. Mediante la tira +de pins se puede acceder a todas las líneas del ST6 excepto +al reset, oscin y oscout además de a las alimentaciones. +El conector de 50 patillas conserva la distribución del +PIO del TM801, a este conector van solamente los puertos A y B +del ST6, además de la masa.
+
+

+Sobre la placa de circuito impreso existe +sitio suficiente para la colocacion de dos placas tipo board. +
+
+

+Los esquemas y fotolitos se encuentran +en las dos páginas siguientes.
+
+V-c) PRACTICAS CON PLACA Y SUBRUTINAS ÚTILES
+

+A continuación están la +totalidad de programas realizados que han sido simulados, también +hay algunas subrutinas útiles.(NOTA: en el comienzo de +cada programa hay que definir los registros)
+
+

+;**************************************************************************** +

+;******* Proyecto de Practicas ST6 ******* +

+;******* ******* +

+;******* Programa : Convierte en BCD +un numero de 8 bits ******* +

+;******* ******* ;******* ******* +

+;******* José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra ******* +

+;******* ******* +

+;**************************************************************************** +
+
+

+;Convierte en BCD un número de +8 bits, el número a convertir se encuentra en +

+;'nn' (86h) y el resultado se deposita +en datal (número bajo),datam (número +

+;medio ),datah (número alto)
+
+
+

+datal .def 84h,0ffh,0ffh ;Parte baja +del resultado (BCD) +

+datam .def 85h,0ffh,0ffh ;Parte media +del resultado (BCD) +

+datah .def 86h,0ffh,0ffh ;Parte alta +del resultado (BCD) +

+nn .def 86h,0ffh,0ffh ;Número +a convertir en posición 86h
+
+
+

+conver ldi datal,00 +

+ldi datam,00 +

+ldi datah,00 ;Pone a 0 las posiciones +del resultado +

+ldi a,nn ;Carga en A el número +a convertir +

+sal2 cpi a,100 ;Y lo compara con 100 +

+jrc sal1 ;Si es menor (nn<100) salta +a sal1 +

+subi a,100 ;De lo contrario resta a A +100 +

+inc datah ;Y incrementa datah +

+jp sal2 ;Salta a sal2 +

+sal1 cpi a,10 ;Compara A con 10 +

+jrc sal3 ;Si es menor (nn<10) salta +a sal3 +

+subi a,10 ;De lo contrario resta a A +10 +

+inc datam ;Y incrementa datam +

+jp sal1 ;Salta a sal1 +

+sal3 ld datal,a ;El resultado restante +(unidades) se deja en datal +

+; ³³ +³³ +³³ +³³ +³³ +

+; \/ \/ \/ \/ \/ +

+;
+
+
+

+;**************************************************************************** +

+;******* Proyecto de Practicas ST6 ******* +

+;******* ******* +

+;******* Programa : Convierte en BCD +un numero de 9 bits ******* +

+;******* ******* +

+;******* ******* +

+;******* José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra ******* +

+;******* ******* +

+;**************************************************************************** +
+
+

+;Convierte un número de 9 bits +(resultado de multiplicar uno de 8bits * 2) +

+;en BCD.Este módulo se puede emplear +para convertir el resultado del +

+;convertidor A/D (ya debidamente multiplicado +por 2 sólo si VCC = 5V) a BCD +

+;y poder sacar el resultado a visualizadores +7 segmentos.
+
+
+

+datch .def 84h,0ffh,0ffh ;Parte alta +del número a convertir +

+datcl .def 85h,0ffh,0ffh ;Parte baja +del número a convertir +

+datal .def 86h,0ffh,0ffh ;Parte baja +del resultado (BCD) +

+datam .def 87h,0ffh,0ffh ;Parte media +del resultado (BCD) +

+datah .def 88h,0ffh,0ffh ;Parte alta +del resultado (BCD)
+
+
+

+conv9b ldi datal,00 +

+ldi datam,00 +

+ldi datah,00 ;Pone a 0 las posiciones +del resultado +

+jrr 0,datch,sal1 ;Salta a sal1 si el +bit 0 del datch es 0 +

+ldi datal,6 ;De lo contrario el resultado +ya es como mínimo +

+ldi datam,5 ;256 ya que 2^(9­1)=256 +

+ldi datah,2 +

+sal1 ld a,datcl ;Carga en A la parte +baja del dato a convertir +

+sal3 cpi a,100 ;La compara con 100 +

+jrc sal2 ;Si es menor salta a sal2 (datcl<100) +

+subi a,100 ;De lo contrario restale 100 +

+inc datah ;Y incrementa datah +

+jp sal3 ;Salta a sal3 +

+sal2 cpi a,10 ;Compara A con 10 +

+jrc sal4 ;Y si este es menor (A<10) +salta a sal4 +

+subi a,10 ;De lo contrario resta a A +10 +

+inc datam ;Incrementa datam +

+jp med ;Salta a med +

+sal4 jp sa ;Salta a sa +

+jrr 3,datam,sal5 ;Salta a sal5 si el +bit 3 de datam es 0 +

+jrr 1,datam,sal5 ;O si el bit 1 de datam +es 0 +

+;Verifica si datam es igual a 9 +

+ldi datam,0 ;De lo contraria pon a 0 +datam +

+inc datah ;Y incrementa datah +

+sal5 jp sal2 ;Salta a sal2 +

+sa add a,datal ;Suma a A datal +

+ld datal,a ;Y lo lleva a datal +

+cpi a,10 ;Lo compara con 10 +

+jrc sa2 ;Si es menor salta a sa2 (A<10) +

+subi a,10 ;Resta a A 10 +

+ld datal,a ;Y lleva A a datal +

+jp p1 ;Salta a p1 +

+sa2 jp sal6 ;Salta a sal6 +

+p1 inc datam ;Incrementa datam +

+jrr 3,datam,sal6 ;Salta a sal6 si el +bit 3 de datam es 0 +

+jrr 1,datam,sal6 ;O si el bit 1 de datam +es 0 +

+;Verifica si datam es igual a 9 +

+ldi datam,0 ;Pon datam a 0 +

+inc datah ;Incrementa datah +

+sal6 nop ;No opera +

+nop ;No opera
+
+

+; ³³ +³³ +³³ +³³ +³³ +

+; \/ \/ \/ \/ \/ +

+;
+
+
+
+
+

+;**************************************************************************** +

+;******* Proyecto de Practicas ST6 ******* +

+;******* ******* +

+;******* Programa : Convertidor de A/D +a valor V correspondiente ******* +

+;******* ******* +

+;******* ******* +

+;******* José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra ******* +

+;******* ******* +

+;**************************************************************************** +
+
+

+;Despues de una conversión del +A/D el resultado de ADR se multiplica por 2 +

+;Para obtener el resultado en voltios +de la conversión. +

+;Esto sólo sera aplicable si VCC += 5V ya que de esta forma la escala de +

+;Conversión son más o menos +0.02V +

+;El resultado podrá ser un número +de 9 bits
+
+

+datah .def 084h,0ffh,0ffh ;Parte alta +del resultado +

+datal .def 085h,0ffh,0ffh ;Parte baja +del resultado
+
+

+ca/d ldi datah,0 ;Pone datah a 0 +

+ld a,adr ;Carga el resultado de la conversión +en A +

+sla a ;y lo multiplica por 2 +

+jrnc sal1 ;Si no hay carry salta a sal1 +

+inc datah ;De lo contraria pon datah +a 1 +

+sal1 ld datal,a ;Y lleva A (multiplicado +por 2) a datal +

+nop ;No opera +

+nop ;No opera
+
+

+; ³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +

+; \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ +\/ \/ \/ \/ \/ \/ \/ \/ +

+;
+
+
+

+;***** DEFINE REGISTROS +

+;***** Utilizar con .INPUT
+
+

+x .def 80h,m +

+y .def 81h,m +

+v .def 82h,m +

+w .def 83h,m +

+a .def 0ffh,m
+
+

+drpa .def 0c0h,m +

+drpb .def 0c1h,m +

+drpc .def 0c2h,m
+
+

+ddrpa .def 0c4h,m +

+ddrpb .def 0c5h,m +

+ddrpc .def 0c6h,m
+
+

+ior .def 0c8h,m +

+rdw .def 0c9h,m
+
+

+orpa .def 0cch,m +

+orpb .def 0cdh,m +

+orpc .def 0ceh,m
+
+

+adr .def 0d0h,m +

+adcr .def 0d1h,m
+
+

+psc .def 0d2h,m +

+tcr .def 0d3h,m +

+tscr .def 0d4h,m
+
+

+wdr .def 0d8h,m
+
+

+;******************* Temporizador de +undidad de 1 segundo +

+;******************* El número +de segundos se cargan en el acumulador +

+;******************* entonces si el acumulador +es 0 sale temporizador
+
+

+segundos .equ 01h
+
+

+reset reti +

+sal3 ldi a,segundos +

+jrnz inic +

+jp fin +

+inic ldi v,0ach +

+sal2 ldi w,0ffh +

+sal1 nop +

+nop +

+nop +

+nop +

+dec w +

+jrnz sal1 +

+dec v +

+jrnz sal2 +

+dec a +

+jrz fin +

+jp sal3 +

+fin nop +

+nop
+
+

+; ³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +

+; \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ +\/ \/ \/ \/ \/ \/ \/ \/ +

+;
+
+
+
+
+

+;******************* Temporizador de +undidad de 1 segundo para watchdog HWD +

+;******************* El número +de segundos se cargan en el acumulador +

+;******************* entonces si el acumulador +es 0 sale temporizador
+
+

+segundos .equ 01h
+
+

+reset reti +

+sal3 ldi a,segundos +

+jrnz inic +

+jp fin +

+inic ldi v,0ach +

+sal2 ldi w,0ffh +

+sal1 ldi wdr,0feh +

+nop +

+nop +

+dec w +

+jrnz sal1 +

+dec v +

+jrnz sal2 +

+dec a +

+jrz fin +

+jp sal3 +

+fin nop +

+nop
+
+

+; ³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +³³ +

+; \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ \/ +\/ \/ \/ \/ \/ \/ \/ \/ +

+;
+
+
+
+
+

+;***** VECTORES **************************************************** +
+
+

+.org 0ff0h
+
+

+adc nop ;Vector conv. A/D +

+reti +

+timer nop ;Vector del timer +

+reti +

+int2 nop ;Vector de PB y PC +

+reti +

+int1 nop ;Vector de PA +

+reti
+
+

+.org 0ffch
+
+

+nmi nop ;Vector de NMI +

+reti +

+res jp reset ;Vector de RESET
+
+

+.end
+
+
+

+Programas realizados para la placa de +desarrollo
+
+

+;****************************************************************** +

+;******* Programa para ST6215 ******* +

+;******* ******* +

+;******* Entra un dato por PA y lo saca +seguidamente por PB ******* +

+;******* ******* +

+;****************************************************************** +

+;***** Define Registros ******************************************** +
+
+

+.input "st6.asm"
+
+

+;***** Define puertos ******************************************** +

+;***** PA(ent) y PB(sal) ******************************************* +
+
+

+.org 0880h
+
+

+reset reti ;Retorna a modo normal desues +del reset +

+ldi ddrpa,0h +

+ldi orpa,0h +

+ldi drpa,0h ;El puerto A es configurado +como entrada +

+ldi ddrpb,0ffh +

+ldi orpa,0ffh +

+ldi drpa,0ffh ;Y el puerto B como salida +
+
+

+;***** RUTINA PRINCIPAL ******************************************** +
+
+

+inicio ld a,drpa ;Carga lo que hay en +los pines de PA en A +

+ld drpb,a ;Para sacarlos por PB +

+jp inicio ;Repite BUCLE
+
+

+;***** VECTORES **************************************************** +
+
+

+.org 0ff0h
+
+

+adc nop ;Vector conv. A/D +

+reti +

+timer nop ;Vector del timer +

+reti +

+int2 nop ;Vector de PB y PC +

+reti +

+int1 nop ;Vector de PA +

+reti
+
+

+.org 0ffch
+
+

+nmi nop ;Vector de NMI +

+reti +

+res jp reset ;Vector de RESET
+
+

+.end
+
+
+
+

+;**************************************************************************** +

+;******* Proyecto de Practicas ST6 ******* +

+;******* ******* +

+;******* Programa : Control de motor +PASO A PASO ******* +

+;******* ******* +

+;******* ******* +

+;******* José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra ******* +

+;**************************************************************************** +

+; +

+.display "Control de motor paso +a paso (J.Ignacio Diaz y J.Antonio Alquezar)"
+
+
+

+;Puerto B como salida (4 lineas de menor +peso) +

+;Puerto A linea PA7 como entrada con +interrupción +

+;El resto de lineas de puertos PA,PB +y PC quedan en estado de alta impedancia +

+;Si se produce una NMI la salida TIMER +se activa intermitentemente un tiempo
+
+
+

+.input "st6.asm" ;Entra fichero +de definición de registros +

+.org 800h ;Ensambla a partir de la 800h +

+veces .def 84h,0ffh,0ffh ;Define la posición +84h de datos como 'veces' +

+tempo .def 85h,0ffh,0ffh ;Define la posición +85h de datos como 'tempo' +

+segun .def 86h,0ffh,0ffh ;Define la posición +86h de datos como 'segun'
+
+
+

+reset ldi wdr,0feh ;Recarga el watchdog +

+reti ;Retorna de interrupción +despues del reset +

+ldi ddrpa,0 +

+ldi orpa,10000000b +

+ldi drpa,01111111b ;Programa PA7 como +interrupción y demás HI­Z +

+ldi ddrpb,00001111b +

+ldi orpb,00001111b +

+ldi drpb,11110000b ;Progrma PB3 a PB0 +como salidas y demás HI­Z
+
+

+ldi ior,00110000b ;Abilita interrupciones +
+
+

+ldi wdr,0feh ;Recarga el watchdog
+
+

+re1 ldi wdr,0feh ;Recarga el watchdog +y entra en un bucle cerrado +

+jp re1 ;Y entra en un bucle cerrado +

+;Hasta que se produce un interrupción +en PA +

+;y entonces salta a re2
+
+
+

+;**** Subrutina de antención de +PA ****************************************** +

+;**** Ahora el motor dara una vuelta +en un sentido **************************
+
+
+

+re2 ldi veces,48 ;Carga la posición +veces con 48 pasos( 1 vuelta) +

+re3 ldi a,0f8h +

+ld drpb,a ;Saca a las 4 lineas de menor +peso de PB un 0 +

+;las cuatro superiores en HI­Z +

+call tem ;LLama a un temporizador +

+ldi a,0fah +

+ld drpb,a ;Saca a las 4 lineas de menor +peso de PB un 2 +

+;las cuatro superiores en HI­Z +

+call tem ;LLama a un temporizador +

+dec veces ;Decrementa la posición +veces (n.de pasos) +

+jrnz re3 ;Si no es cero salta a re3 de +lo contrario sigue +

+;**** El motor a dado una vuelta y ahora +la dara en sentido contrario ******* +

+ldi veces,48 ;Carga la posición +veces con 48 pasos( 1 vuelta) +

+re4 ldi a,0f9h +

+ld drpb,a ;Saca a las 4 lineas de menor +peso de PB un 1 +

+;las cuatro superiores en HI­Z +

+call tem ;LLama a un temporizador +

+ldi a,11111011b +

+ld drpb,a ;Saca a las 4 lineas de menor +peso de PB un 3 +

+;las cuatro superiores en HI­Z +

+call tem ;LLama a un temporizador +

+dec veces ;Decrementa la posición +veces (n.de pasos) +

+jrnz re4 ;Si no es cero salta a re3 de +lo contrario sigue +

+ldi a,0f0h +

+ld drpb,a ;Pone la salida de PB=0 (4 +lineas de menor peso) +

+reti ;Retorna de interrupción,despues +de dar 1 vuelta +

+;**** Subrutina de atención a +NMI *******************************************
+
+

+inmi ldi segun,6 ;Intermitente 6 veces +

+inmi2 ldi tempo,20 ;Carga 'veces' con +20 (20 * 0.04892 = 0.978 sg) +

+sal1 ldi tcr,0ffh ;Carga contador con +255 (valor máximo) +

+ldi tscr,00111111b ;Pone el preescaler +a 128 y DOUT a 1 +

+;La temporización es máxima += 0.04892 sg +

+loop1 jrr 7,tscr,loop1 ;Espera a que +el contador llege a 0 +

+dec tempo ;Decrementa 'tempo' +

+jrnz sal1 ;Repite hasta que 'tempo' = +0 +

+ldi tempo,20 +

+sal2 ldi tcr,0ffh +

+ldi tscr,00101111b ;Hace lo mismo que +el bloque anterior escepto +

+;que ahora DOUT = 0,También temporiza +0.978 sg. +

+loop2 jrr 7,tscr,loop2 +

+dec tempo +

+jrnz sal2 +

+dec segun ;Decrementa segun +

+jrz sal3 ;Si es 0 salta a sal3 +

+jp inmi2 ;De lo contrario a inmi (repite) +

+sal3 reti ;Si había sido 0 retorna +de interrupción +

+;**** Temporizador ********************************************************** +
+
+

+tem ldi v,0ffh +

+tem1 ldi wdr,0feh ; \ +

+tem2 nop ; | +

+nop ; |­­­­> Bucle + +

+nop ; | +

+dec v ; / +

+jrnz tem1 ;Repite el bucle 255 veces +

+ret ;Retorno de subrutina
+
+

+;***** VECTORES **************************************************** +
+
+

+.org 0ff0h
+
+

+adc nop ;Vector conv. A/D +

+reti +

+timer nop ;Vector del timer +

+reti +

+int2 nop ;Vector de PB y PC +

+reti +

+int1 jp re2 ;Vector de PA +

+.org 0ffch
+
+

+nmi jp inmi ;Vector de NMI +

+res jp reset ;Vector de RESET
+
+

+.end
+
+
+

+; Versión con uso de directivas +(pp_on y section) **********
+
+

+;*** ******************************************************* +*** +

+;*** José Ignacio Díaz +Beamud & Jesús Antonio Alquezar **** *** +

+;*** ******************************** +ST­6 SGS­THOMSON ***** *** +

+;­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ +­­­ +

+;*** Ordena tabla en orden posicion mas +alta valor menor *** *** +

+;*** ******************************************************* +***
+
+

+.PP_on +

+.pl 60 +

+.vers "st6215" +

+.romsize 2 +

+.input "6215_reg.asm"
+
+

+;*** Define etiquetas ********************************** +***
+
+

+nfin .def 90h +

+adat .def 91h
+
+

+;*** Programa principal ******************************** +*** +

+.section 1
+
+

+.org 080h
+
+

+reset reti ;Coloca NMI a 0 despues del +reset +

+ldi w,0ah ;Carga primer contador con +0Ah (longitud tabla) +

+inibu ldi y,0ah ;Carga segundo contador +con 0Ah (longitud tabla) +

+ldi nfin,00h ;Pone posicion 090h a 00 + +

+ldi x,084h ;Carga puntero X con inicio +tabla +

+sal2 ld a,(x) ;Carga en A el numero que +apunta X +

+inc x ;Incrementa X +

+cp a,(x) ;Compara A con la posicion que +indica X actualmente +

+jrz sal1 ;Si la comparacion es 0 salta +

+jrnc sal1 ;Si no hay carry tambien salta +

+ld v,a ;En caso contrario intercambiar,salvaguarda +A en V +

+ld a,(x) ;Carga en A el numero que apunta +X +

+dec x ;Decrementa X +

+ld (x),a ;Carga A en la direccion indicada +por el puntero +

+inc x ;Vuelve a incrementar X +

+ld a,v ;Devuelve el antiguo valor a A +

+ld (x),a ;Y lo deposita en la direccion +que apunta X +

+jp sal3 ;Salto fin de intercambio +

+sal1 inc nfin ;Tratamiento no intercambio,incrementa +(090h) +

+ld adat,a ;Salva el valor de A en (091h) +

+jp inter2 ;Salto intermedio +

+inter jp sal2 ;Salto intermedio +

+inter2 ld a,nfin ;Coge el valor contenido +en (090h) +

+jp inter4 ;Salto intermedio +

+inter3 jp inibu ;Salto intermedio +

+inter4 cpi a,0ah ;Compara A con longitud +tabla,el contenido de (090h) +

+;contiene las veces que no se encuentra +desorden en la +

+;tabla por cada escaneo,si la posicion +llega a 0A +

+;significa que la tabla esta ya ordenada +y no es +

+;necesario continuar el programa
+
+

+jrz fin ;Si (090h) es igual a 0A acaba +programa +

+ld a,adat ;Recupera valor de A +

+sal3 dec y ;Decrementa Y (primer bucle) +

+jrnz inter ;Si no es 0 repite +

+dec w ;De lo contrario decrementa W (segundo +bucle) +

+jrnz inter3 ;Si no es 0 repite +

+fin nop ;NO OPERA +

+stop ;STOP
+
+

+;************************************* +Sección de vector interrupciones ****
+
+

+.section 32 +

+.org 0eh
+
+

+res jp reset ;Vector de RESET
+
+

+.end
+
+
+

+; Versión con directivas ORG (definición +mapa vectores)
+
+

+;*** ******************************************************** +*** +

+;*** José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra *** +

+;*** ******************************** +ST­6 SGS­THOMSON ****** *** +

+;­­­ ­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­­ +­­­ +

+;*** Ordena tabla en orden posicion mas +alta valor menor **** *** +

+;*** ******************************************************** +***
+
+

+.input "6215_reg.asm"
+
+

+;*** Define etiquetas ********************************** +***
+
+

+nfin .def 90h +

+adat .def 91h
+
+

+;*** Programa principal ******************************** +***
+
+

+.org 0800h
+
+

+reset reti ;Coloca NMI a 0 despues del +reset +

+ldi w,0ah ;Carga primer contador con +0Ah (longitud tabla) +

+inibu ldi y,0ah ;Carga segundo contador +con 0Ah (longitud tabla) +

+ldi nfin,00h ;Pone posicion 090h a 00 + +

+ldi x,084h ;Carga puntero X con inicio +tabla +

+sal2 ld a,(x) ;Carga en A el numero que +apunta X +

+inc x ;Incrementa X +

+cp a,(x) ;Compara A con la posicion que +indica X actualmente +

+jrz sal1 ;Si la comparacion es 0 salta +

+jrnc sal1 ;Si no hay carry tambien salta +

+ld v,a ;En caso contrario intercambiar,salvaguarda +A en V +

+ld a,(x) ;Carga en A el numero que apunta +X +

+dec x ;Decrementa X +

+ld (x),a ;Carga A en la direccion indicada +por el puntero +

+inc x ;Vuelve a incrementar X +

+ld a,v ;Devuelve el antiguo valor a A +

+ld (x),a ;Y lo deposita en la direccion +que apunta X +

+jp sal3 ;Salto fin de intercambio +

+sal1 inc nfin ;Tratamiento no intercambio,incrementa +(090h) +

+ld adat,a ;Salva el valor de A en (091h) +

+jp inter2 ;Salto intermedio +

+inter jp sal2 ;Salto intermedio +

+inter2 ld a,nfin ;Coge el valor contenido +en (090h) +

+jp inter4 ;Salto intermedio +

+inter3 jp inibu ;Salto intermedio +

+inter4 cpi a,0ah ;Compara A con longitud +tabla,el contenido de (090h) +

+;contiene las veces que no se encuentra +desorden en la +

+;tabla por cada escaneo,si la posicion +llega a 0A +

+;significa que la tabla esta ya ordenada +y no es +

+;necesario continuar el programa +

+jrz fin ;Si (090h) es igual a 0A acaba +programa +

+ld a,adat ;Recupera valor de A +

+sal3 dec y ;Decrementa Y (primer bucle) +

+jrnz inter ;Si no es 0 repite +

+dec w ;De lo contrario decrementa W (segundo +bucle) +

+jrnz inter3 ;Si no es 0 repite +

+fin nop ;NO OPERA +

+stop ;STOP
+
+

+;************************************* +Sección de vector interrupciones ****
+
+

+.org 0ffeh
+
+

+res jp reset ;Vector de RESET
+
+

+.end
+
+
+

+; *************************************************************** +

+; ** ****** ****** Control de Semaforo +para ST­6 ****** ****** ** +

+; *************************************************************** +
+
+

+; Semaforo para ST6215
+
+

+; Por José Ignacio Diaz Beamud +& Jesús Antonio Alquezar +

+;***************************************************************************** +
+
+

+.input "st62.asm" ;Define registros +
+
+

+.W_ON ;Abilita el trabajo con RDW
+
+

+num .def 084h,0ffh,0ffh ;Define num como +posición 84h de datos
+
+

+;***************************************************** +Tabla de datos **
+
+

+.org 800h
+
+

+datos .byte 00110001b,00101111b,00110001b,0fh,00110001b,00101111b +

+.byte 00110001b,0fh,01010001b,00101111b,10010010b,11001111b +

+.byte 10010010b,11011111b,10010010b,11001111b + +

+.byte 10010010b,11011111b,10010010b,11001111b,10010010b,11011111b +

+.byte 10010010b,11001111b,10010010b,11011111b,10010010b,11001111b +

+.byte 10000100b,11001111b,10000100b,01001111b,10000100b,11001111b +

+.byte 10000100b,01001111b,10000100b,11001111b,10001001b,01001111b +
+
+

+tempo .byte 7,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,1,1,1,1 +
+
+
+

+;****************************** Rutina +de inicio y programacion de puertos **
+
+

+reset ldi wdr,0feh ;Carga el wathchdog +con su valor máximo +

+reti ;Retorna al modo normal despues +del reset +

+ldi ior,10h ;Desabilita todas las interrupciones +

+ldi rdw,datos.w ;Pone en el RDW el valor +apropiado +

+ldi ddrpa,0ffh ;Programa el puerto A +como salida y saca 00 +

+ldi orpa,0ffh +

+ldi drpa,00 +

+ldi ddrpb,0f0h ;Programa el puerto B +como salida y las lineas de +

+ldi orpb, 0f0h ;interruptores quedan +en alta impedancia +

+ldi drpb, 00fh
+
+
+

+;************************************** +Programa principal ******************
+
+

+s2 ldi num,20 ;Carga en la posicion num +el numero de estados +

+ldi x,datos.d ;Carga en X el valor apropiado +de puntero +

+ldi y,tempo.d ;Carga en Y el valor apropiado +de puntero +

+s1 ld a,(x) ;Carga lo que hay en la posicion +apuntada por X en A +

+ld drpa,a ;y lo lleva al puerto A de +datos +

+inc x ;Incrementa el puntero X +

+ld a,(x) ;y lleva el siguiente dato al +acumulador +

+ld drpb,a ;para llevarlo al puerto B +de datos (hay que tener +

+;cuidado ya que los 4 bits menos significativos + +

+;tienen que estar a 1 para mantener el +estado de +

+;alta impedancia de esas lineas) +

+ld a,(y) ;Carga en A el tiempo a temporizar +

+call temp ;Y llama a subrutina de temporización +

+inc x ;Incrementa puntero X +

+inc y ;Incrementa puntero Y +

+dec num ;Decrementa el número +de estados +

+jrnz s1 ;Si no es 0 repite el bucle +

+jp s2 ;Si es 0 comienza de nuevo
+
+

+;********************************************** +Subrutina temporizador ******
+
+

+temp jrnz inic +

+jp fin +

+inic ldi v,0ach +

+sal2 ldi w,0ffh +

+sal1 ldi wdr,0feh ;Recarga el WATCHDOG +para que no llege a ser 0 +

+nop ;y se produzca un reset +

+nop +

+dec w +

+jrnz sal1 +

+dec v +

+jrnz sal2 +

+dec a +

+jrz fin +

+jp temp +

+fin ret
+
+

+;*********************** Subrutina atención +a NMI(estado avería)****
+
+

+inmi ldi ior,00 +

+ldi wdr,0feh +

+ldi rdw,datos2.w
+
+

+is2 ldi num,2 ;Carga en la posicion num +el numero de estados +

+ldi x,datos2.d ;Carga en X el valor apropiado +de puntero +

+ldi y,tempo2.d ;Carga en Y el valor apropiado +de puntero
+
+
+

+is1 ld a,(x) ;Carga lo que hay en la +posicion apuntada por X en A +

+ld drpa,a ;y lo lleva al puerto A de +datos +

+inc x ;Incrementa el puntero X +

+ld a,(x) ;y lleva el siguiente dato al +acumulador +

+ld drpb,a ;para llevarlo al puerto B +de datos (hay que tener +

+;cuidado ya que los 4 bits menos significativos + +

+;tienen que estar a 1 para mantener el +estado de +

+;alta impedancia de esas lineas) +

+ld a,(y) ;Carga en A el tiempo a temporizar +

+call temp ;Y llama a subrutina de temporización +

+inc x ;Incrementa puntero X +

+inc y ;Incrementa puntero Y +

+dec num ;Decrementa el número +de estados +

+jrnz is1 ;Si no es 0 repite el bucle +

+jp is2 ;Si es 0 comienza de nuevo
+
+
+

+datos2 .byte 01001000b,10101111b,0,10111111b +

+tempo2 .byte 1,1
+
+

+;***** VECTORES **************************************************** +
+
+

+.org 0ff0h
+
+

+adc nop ;Vector conv. A/D +

+reti +

+timer nop ;Vector del timer +

+reti +

+int2 nop ;Vector de PB y PC +

+reti +

+int1 nop ;Vector de PA +

+reti
+
+

+.org 0ffch
+
+

+nmi jp inmi ;Vector de NMI +

+res jp reset ;Vector de RESET
+
+

+.end +


+

+

pagina finalizada 27/3/1997
+
+ + diff --git a/download/Documentos/st60002.htm b/download/Documentos/st60002.htm new file mode 100644 index 0000000..543af36 --- /dev/null +++ b/download/Documentos/st60002.htm @@ -0,0 +1,4697 @@ + + +EL RINCON DEL MICRO...ST6...METEO + + + + +
+

EL RINCON DEL MICRO…ST6…APLICACIÓN +METEO

+
+

+VI-a) DESCRIPCIÓN DE "METEO" +

+METEO es un sistema de estación +meteorológica controlada por PC y basada en el microcontrolador +ST62E15 de SGS-THONSOM. METEO es capaz de llevar un control de +temperaturas, presiones y dirección del viento además +de poder llevar un registro exhaustivo (mediante spoiler de datos +a un fichero ASCII) de todas las temperaturas. +

+Se puede dividir a METEO en dos partes, +el programa de control del PC y la placa de adquisición +de datos y registro de los mismos. +

+El PC por tener una mayor capacidad de +calculo se encarga de la visualización de datos en sus +escalas correctas y del registro en fichero, además de +ir ordenando a la placa de adquisición de datos el envió +de los mismos. La presentación de los datos la realiza +sobre una pantalla de presentación en la que además +se pueden elegir todas las opciones disponibles. La pantalla la +podemos observar en la FIG 6.1. Este programa ha sido realizado +en Qbasic de Microsoft
+
+


+

+

+
+

+Dentro de ella podemos distinguir varias +partes. +

+La parte central dedicada a la veleta, +en ella se muestra el estado actual de la veleta mediante un flecha. +

+La esquina superior izquierda esta dedicada +a la temperatura, en ella se muestra la temperatura actual, las +temperaturas máximas y mínimas registradas por el +microcontrolador, y la temperatura media determinada por la suma +de los valores de temperatura actual entre en nº de muestreos +realizados desde la ultima conexión del programa de visualización. +Los datos presentados están en grados centígrados. +

+La esquina inferior izquierda esta dedicada +a las presiones, funcionando de manera similar al termómetro +exceptuando que no presenta la presión media. Las unidades +utilizadas son los Bares.
+
+

+En la ultima línea del lado izquierdo +se visualiza el nombre del programa así como su versión. +

+La esquina superior derecha esta dedicada +a la gráfica de temperatura, esta gráfica se compone +mediante los datos leídos de temperatura actual. +

+La parte central de la columna derecha +muestra la hora y la fecha actual tomados directamente del reloj +del sistema del PC. +

+La parte inferior derecha muestra el +menú de opciones seleccionables mediante las teclas de +función del teclado, las opciones disponibles son las siguientes: +
+
+

+F1: ACERCA DE .. : +Muestra la versión del programa así como el nombre +de los programadores (FIG 6.2), se vuelve a la pantalla de control +mediante la pulsación de cualquier tecla.
+
+


+

+

+
+

+F2: CONFIGURAR: Con +esta opción primero se seleccionara el puerto de trabajo, +una vez seleccionado se mostraran las direcciones del puerto, +a continuación se configurara el tipo de ordenador pudiendo +elegir entre un 8086, un 80386 y un 80486, después se elegirá +el intervalo con el cual se realizara el traspaso de datos de +temperatura entre 1 segundo a 24h introduciendo el tiempo en segundos, +después se reiniciará el programa. +

+F3: SALIR AL DOS: Con +esta opción se vuelve al símbolo del sistema. +

+Descripción de ficheros que deben +existir en el directorio de trabajo. +

+METEO.EXE Es el fichero del +programa +

+METEO.CFG Es el fichero de configuración +

+METEO.DAT Es le fichero en el que +se guardan los datos del spoiler de temperaturas.
+
+

+La placa de adquisición de datos +y por lo tanto el ST6, se encarga de tomar los datos de los sensores +de temperatura y presión que son valores analógicos +y de convertirlos en valores digitales, después de esta +conversión se encarga de determinar si estos datos son +mínimos o máximos y en caso de cumplir una de esas +dos condiciones los almacena en sus registros correspondientes, +así mismo adquiere la posición de la veleta. EL +ST6 a su vez se encarga de mandar los datos a medida que el PC +los requiere. +

+La placa del ST6 es capaz de trabajar +independientemente del PC llevando un control de la tempereraturas +y presiones máximas y mínimas además de las +actuales. El programa para el PC es incapaz de funcionar sin la +estación meterologica conectada. +

+VI-b) Esquemas y explicación +del circuitoVI-b) Esquemas y explicación del circuito +

+El esquema de la estación metereologica +se puede dividir en varias partes diferentes: +

+- Fuente de alimentación +

+- Adaptadores de tensión de los +sensores +

+- Zona de transferencia de datos +

+- Microcontrolador. +

+La fuente de alimentación tiene +como función el estabilizar y limitar la tensión +que puede recibir el ST6, esta etapa debe de alimentarse con tensión +continua de por lo menos 8 V por que es la tensión mínima +para que funcione correctamente el 7805. +

+Los adaptadores para los sensores tienen +como función la de dividir entre dos la tensión +entregada por estos, esto debe realizarse por que los sensores +entregan tensión entre 0 y 10V y el ST6 solo puede convertir +hasta 5V. +

+La zona de transferencia de datos esta +constituida por los buffers 74LS245, estos buffers tienen como +función la de proteger al ST6 y al puerto Paralelo del +ordenador frente de posibles averías, la conexión +al PC se realiza mediante un conector de 25 patillas. +

+El microcontrolador se encarga de la +conversión y adquisición de datos así como +de llevar el control de temperaturas y presiones máximas +y mínimas, así como las comunicaciones con el PC. +El microcontrolador lleva un circuito de Reset que se activa la +aplicar la alimentación, así como su correspondiente +circuito oscilador a 8 Mhz. +

+Los faston nombrados como PA7 y PA6 tienen +como función adquirir los datos analógicos, los +PC4, PC5 y PC6 tienen como función la adquisición +de los datos de la veleta. +

+El esquema completo y los fotolitos de +circuito impreso se encuentran en las páginas siguientes. +
+
+
+

+VI-c) SISTEMA DE COMUNICACIONESVI-c) SISTEMA DE COMUNICACIONES +

+VI-c,I) PROBLEMAS Y SOLUCIONES VI-c,I) PROBLEMAS Y SOLUCIONES : +

+La estación metereológica +se comunica a través del puerto paralelo CENTRONICS del +PC. Se plantea entonces el problema de que el puerto paralelo +es unidireccional (salida del PC). El puerto paralelo consta de +3 registros uno de datos, uno de control y otro de estado. El +registro de datos tiene asociadas 8 líneas que son las +de salida de datos. El de estado tiene asociadas 6 líneas +una de salida y 5 de entrada. El de control nosotros no lo utilizaremos. +Las 8 líneas de salida de datos son unidireccionales por +lo tanto se plantea el problema de hacer que el PC pueda recibir +datos. La única manera de conseguirlo sería enviarle +los datos a través de las líneas de estado, esto +nos lleva a un nuevo problema, que sólo existen 5 líneas +de estado, tendremos entonces que enviar los datos de 4 en 4 bits +y la línea que sobra la utilizaremos para indicar "dato +listo" al PC, los bits del registro de estado donde se encontraran +los datos enviados por la estación son los 4 de mayor peso, +y el que indica dato listo es el bit 3. Existe el problema también +de que el PC lee del registro el bit 6 invertido de su valor lógico +por lo tanto había que invertirlo, de esto se encarga el +programa ensamblador del ST6. El PC enviará datos a la +estación sólo con los 4 bits de menor peso de las +líneas de datos, no se utilizan las otras 4 ya que no son +necesarias debido al protocolo de comunicaciones establecido. +Para indicar el PC a la estación su requerimiento de datos +se utiliza la línea STROBE que se controla mediante un +bit del registro de estado del puerto paralelo. +

+VI-c,II) DESCRIPCION DEL SISTEMA DE +PROTOCOLO VI-c,II) DESCRIPCION DEL SISTEMA DE PROTOCOLO : +

+Nada mas conectarse la alimentación +a la estación metereológica el ST6 entra en un bucle +de 5 segundos para conseguir que las sondas de temperatura y presión +estén ya estabilizadas para cuando se vaya a iniciar la +conversión. Después de ese ciclo de 5 segundos el +MCU entra en un bucle cerrado de espera de interrupción, +mientras en ese bucle el MCU está realizando las conversiones +oportunas y llevándolas a posiciones de memoria, también +está determinando las temperaturas y presiones máximas +y mínimas. El PC entonces será capaz de interrumpir +al ST6 para pedir la información que necesite. El programa +del PC sólo interrumpirá al MCU si este le indica +que está permitido y para indicarlo lo que hace es enviar +un 5h a la entrada del PC. El programa del PC comprueba que ese +5h existe y si existe saca por su bus de datos el código +correspondiente a la información que quiere, Después +interrumpe al ST6 mediante la línea STROBE. Una vez que +el ST6 ha sido interrumpido saca un 0 a la salida para que el +PC sepa que no puede volver a interrumpirle. El PC espera entonces +a que la línea de "dato listo" se active para +saber que los 4 bits de mayor peso están en la entrada, +cuando esta línea es activada por el ST6 el PC recoge los +datos de la entrada y saca un 08h al bus de datos para indicar +que ha recogido el dato. Cuando el ST6 detecta ese 08h desactiva +la línea de "dato listo" y saca los 4 bits de +menor peso y vuelve a activar "dato listo", el PC estaba +esperando de nuevo esta señal y una vez detectada recoge +el dato. +

+Una vez que se ha recogido el dato el +PC saca a la salida un 09h para indicar al ST6 que se ha recibido +el dato de parte baja. El ST6 cuando detecta el 09h retorna de +la interrupción al programa principal y saca de nuevo a +la salida un 05h para indicar que esta listo para ser interrumpido +nuevamente. En el caso de la veleta se manda el estado de la veleta +en un sólo nibble ya que ese dato es de tan sólo +3 bits. +

+Tabla de códigos de comunicaciones +: +

+PC ----> ST6 + + + + + + + + + + + +

+ CÓdigo +

+DESCRIPCION DE CODIGO +

+ 01h +

+Temperatura Actual +

+ 02h +

+Presión Actual +

+ 03h +

+Veleta +

+ 04h +

+Temperatura mínima +

+ 05h +

+Temperatura máxima +

+ 06h +

+Presión mínima +

+ 07h +

+Presión máxima +

+ 08h +

+Dato recibido (parte alta) +

+ 09h +

+Dato recibido (parte baja) +
+

+ST6 ----> PC + + + + +

+ Código +

+DESCRIPCION DEL CODIGO +

+ 05h +

+ST6 puede ser interrumpido +

+ 00h +

+ST6 no puede se interrumpido +
+

+VI-d,I) PROGRAMA BASIC PARA "METEO" +VI-d,I) PROGRAMA BASIC PARA METEO : +
+
+

+LISTADO DEL PROGRAMA . . .
+
+
+

+REM ************************************************************************ +

+REM ************* + ************* +

+REM ************* PROYECTO DE PRACTICAS +PARA ST6 ­ 5.C. 1994 ************* +

+REM ************* + ************* +

+REM ************************************************************************ +

+REM ****** + ******** +

+REM ****** José Ignacio Díaz +Beamud & Jesús Antonio Alquezar Sierra ******** +

+REM ****** + ******** +

+REM ****** Estación meteorológica +por ST6 controlada por PC ******** +

+REM ****** + ******** +

+REM ************************************************************************ +

+REM **************************************** +INICIO PROGRAMA **************** +

+ON ERROR GOTO er: REM **** Activa la +detección de error por si no hay conf. +

+KEY(2) STOP: REM **** Desactiva momentaneamente +la F2
+
+

+temmed = 0: REM **** Temperatura media += 0 +

+media = 1: REM **** Datos de temperatura +cogida = 1 +

+ero = 0
+
+

+REM **************** Borra fichero METEO.DAT +y lo crea nuevo ****************
+
+

+propri:
+
+

+OPEN "METEO.DAT" FOR OUTPUT +AS #3 +

+PRINT #3, "" +

+CLOSE #3
+
+

+REM ********************************* +Crea fichero temperaturas *************
+
+

+OPEN "METEO.DAT" FOR OUTPUT +AS #3 +

+PRINT #3, "" +

+PRINT #3, "Control de Datos de Temperatura +­ **** METEO.EXE V5.00 **** ­" +

+PRINT #3, "" +

+PRINT #3, "Temp. Actual + Hora Máxima Mínima Media" +

+PRINT #3, "­­­­­­­­­­­­­­­­­­­­­­­­­­ + ­­­­­­­­­­­­­­­­­­­­­­­­" +

+PRINT #3, ""
+
+
+

+REM ********************************** +Lee fichero de configuración *********
+
+

+OPEN "METEO.CFG" FOR INPUT +AS #2 +

+INPUT #2, dato%: REM **** Lee dirección +de puerto de LPT (datos) +

+INPUT #2, esta%: REM **** Lee dirección +de estado +

+INPUT #2, ctrl%: REM **** Lee dirección +de control +

+INPUT #2, equi: : REM **** Lee tipo de +equipo +

+INPUT #2, tifi%: : REM **** Lee tiempo +de escritura en fichero +

+CLOSE #2: REM **** Cierra fichero
+
+

+OUT (dato%), 0
+
+

+comin: +

+GOSUB pontem: REM **** Va a determinar +las variables de temporizador
+
+

+CLS +

+SCREEN 2 +

+PRINT "METEO.EXE V5.00 23­MAYO­1994" +

+LOCATE 10, 1 +

+PRINT " Estacion meteorologica +por ST6 controlada por PC" +

+PRINT : PRINT +

+PRINT " por Jose Ignacio +Diaz Beamud & Jesus Antonio Alquezar Sierra"
+
+

+REM *************************************** +Hace efecto pantalla inicial ****
+
+

+FOR x = 25 TO 620 +

+LINE (25, 107)­(x, 107) +

+FOR temporiza = 1 TO linei: NEXT temporiza +

+NEXT x +

+FOR x = 620 TO 25 STEP ­1 +

+LINE (620, 109)­(x, 109) +

+FOR temporiza = 1 TO linei: NEXT temporiza +

+NEXT x +

+FOR t = 1 TO 10 +

+FOR r = 1 TO 15 +

+CIRCLE (620, 107), r +

+FOR temporiza = 1 TO circi: NEXT temporiza +

+NEXT r +

+FOR r = 1 TO 15 +

+CIRCLE (620, 107), r, 0 +

+FOR temporiza = 1 TO circi: NEXT temporiza +

+NEXT r +

+NEXT t
+
+

+REM *************************************** +Fin de efecto *******************
+
+

+CLS +

+SCREEN 2 +

+LOCATE 25, 66: PRINT "PROYECTO ST6" +

+LOCATE 25, 2: PRINT "METEO.EXE V5.00" +

+LINE (150, 3)­(490, 195), , B: REM +** CREA EL RECUADRO DE VELETA ***
+
+

+REM ********************************* +DIBUJA LA N DE NORTE ***********
+
+

+LINE (300, 50)­(300, 40) +

+LINE (300, 40)­(340, 50) +

+LINE (340, 50)­(340, 40)
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA S DE SUR *************
+
+

+LINE (340, 160)­(300, 160) +

+LINE (340, 160)­(340, 155) +

+LINE (340, 155)­(300, 155) +

+LINE (300, 155)­(300, 150) +

+LINE (300, 150)­(340, 150)
+
+
+
+
+
+
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA E DE ESTE ************
+
+

+LINE (440, 95)­(440, 105) +

+LINE (440, 95)­(480, 95) +

+LINE (440, 105)­(480, 105) +

+LINE (440, 100)­(480, 100)
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA O DE OESTE ***********
+
+

+LINE (200, 95)­(200, 105) +

+LINE (200, 105)­(160, 105) +

+LINE (160, 105)­(160, 95) +

+LINE (160, 95)­(200, 95)
+
+

+REM *************************************************************** +

+REM *********************************** +RECUADRO DE TEMPERATURA ***
+
+

+LINE (1, 3)­(140, 100), , B +

+LOCATE 1, 4: PRINT " Termometro +" +

+LOCATE 4, 2: PRINT " Temp : 00.0C" +

+LOCATE 6, 2: PRINT " Max : 00.0C" +

+LOCATE 8, 2: PRINT " Min : 00.0C" +

+LOCATE 10, 2: PRINT " Med : 00.0C" +
+
+

+REM *************************************************************** +

+REM *********************************** +RECUADRO DE PRESION ******
+
+

+LINE (1, 108)­(140, 190), , B +

+LOCATE 14, 4: PRINT " Manometro +" +

+LOCATE 17, 2: PRINT "Pres : 00 B." +

+LOCATE 19, 2: PRINT "Max : 00 B." +

+LOCATE 21, 2: PRINT "Min : 00 B." +
+
+

+REM *************************************************************** +

+REM *********************************** +RECUADRO GRAFICA TEMP. ****
+
+

+xgraf = 516 +

+LINE (500, 3)­(639, 50), , B +

+LOCATE 1, 65: PRINT " Grafica Temp. +" +

+LOCATE 2, 64: PRINT "C" +

+LINE (515, 10)­(515, 45) +

+LINE (515, 45)­(630, 45)
+
+

+REM *************************************************************** +

+REM *********************************** +RECUADRO DE RELOJ *********
+
+

+LINE (500, 60)­(639, 110), , B +

+LOCATE 8, 68: PRINT " Reloj " +

+LOCATE 10, 65: PRINT "Hora : 00:00:00" +

+LOCATE 12, 65: PRINT "Dia: 00­00­0000" +
+
+
+
+
+
+
+

+REM ****************************************** +Menu ***************
+
+

+LINE (500, 123)­(639, 190), , B +

+LOCATE 16, 69: PRINT " Menu " +

+LOCATE 18, 65: PRINT "F1­ ACERCA +DE.." +

+LOCATE 19, 65: PRINT "F2­ CONFIGURAR +" +

+LOCATE 20, 65: PRINT "F3­ SALIR +A DOS" +

+LOCATE 22, 66: PRINT "por J.I.DIAZ" +

+LOCATE 23, 65: PRINT "y J.A.ALQUEZAR" +
+
+

+REM **************************** DIBUJA +EL CONTORNO DE LA VELETA ** +

+LOCATE 1, 24: PRINT " Veleta de +Estacion Meteorologica " +

+FOR N = 1 TO 100 +

+CIRCLE (320, 100), N +

+FOR temporiza = 1 TO circv: NEXT temporiza +

+NEXT N +

+FOR N = 1 TO 90 +

+CIRCLE (320, 100), N, 0 +

+FOR temporiza = 1 TO circv: NEXT temporiza +

+NEXT N
+
+

+REM ************************ Abilita +interrupciones de teclas de funcion ***
+
+

+KEY(3) ON +

+ON KEY(3) GOSUB f3 +

+KEY(1) ON +

+ON KEY(1) GOSUB f1 +

+KEY(2) ON +

+ON KEY(2) GOSUB f2
+
+

+REM *********************************** +Pido a ST6 temperatura máxima *******
+
+

+tam: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO tam +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO sitam +

+ GOTO tam
+
+

+REM *********************************** +Parte alta de temperatura max. ****
+
+

+sitam: +

+ OUT (dato%), 5: REM **** Pido +código Temperatura Máxima +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+esptam: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO esptam: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacalta = (dtac AND 240): +REM **** Parte alta de Temperatura Máxima +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato
+
+

+REM ******************************** +Parte Baja de Temperatua Máxima ******** +

+ +

+ GOSUB datemp +

+pe3: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO pe3: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacbaja = (dtac AND 240) / +16: REM **** Parte Baja de Temperatura +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ temmax = ((dtacalta + dtacbaja) +* .01953) * 20: REM **** Calcula +

+ +

+ LOCATE 6, 9: PRINT USING "###.##"; +temmax: REM ** Limita present. +

+ LOCATE 6, 16: PRINT "C +"
+
+

+REM *********************************** +Pido a ST6 temperatura mínima *******
+
+

+tam2: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO tam2 +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO sitam2 +

+ GOTO tam2
+
+

+REM *********************************** +Parte alta de temperatura min. ****
+
+

+sitam2: +

+ OUT (dato%), 4: REM **** Pido +código Temperatura Mínima +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+esptam2: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO esptam2: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacalta = (dtac AND 240): +REM **** Parte alta de Temperatura Mínima +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato +

+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM ******************************** +Parte Baja de Temperatua Mínima ******** +

+ +

+ GOSUB datemp +

+pe32: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO pe32: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacbaja = (dtac AND 240) / +16: REM **** Parte Baja de Temperatura +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ temmin = ((dtacalta + dtacbaja) +* .01953) * 20: REM **** Calcula +

+ +

+ LOCATE 8, 9: PRINT USING "###.##"; +temmin: REM ** Limita present. +

+ LOCATE 8, 16: PRINT "C +"
+
+

+REM ********************************************* +Pide de Presión Máxima ****
+
+

+pa2: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO pa2 +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta31 +

+ GOTO pa2
+
+

+REM *************************************** +Parte alta de Presión Máxima ****
+
+

+siesta31: +

+ OUT (dato%), 7: REM **** Pido +código Presión Máxima +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+espe41: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe41: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacalta = (pac AND 240): REM +**** Parte alta de Presión Máxima +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM *********************************** +Parte Baja de Presión Máxima ******** +

+ +

+ GOSUB datemp +

+espe51: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe51: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacbaja = (pac AND 240) / 16: +REM **** Parte Baja de Presión Máxima +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ premax = (((pacalta + pacbaja) +* .019) * 2) / 5: REM **** Calcula +

+ LOCATE 19, 9: PRINT USING "#.###"; +premax: REM *** Limita presenta. +

+ LOCATE 19, 15: PRINT "B. +" +

+ +

+REM ********************************************* +Pide de Presión Mínima ****
+
+

+pa3: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO pa3 +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta32 +

+ GOTO pa3
+
+

+REM *************************************** +Parte alta de Presión Mínima ****
+
+

+siesta32: +

+ OUT (dato%), 6: REM **** Pido +código Presión Mínima +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+espe42: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe42: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacalta = (pac AND 240): REM +**** Parte alta de Presión Mínima +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato +

+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM *********************************** +Parte Baja de Presión Mínima ******** +

+ +

+ GOSUB datemp +

+espe52: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe52: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacbaja = (pac AND 240) / 16: +REM **** Parte Baja de Presión Actual +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ premin = (((pacalta + pacbaja) +* .019) * 2) / 5: REM **** Calcula +

+ LOCATE 21, 9: PRINT USING "#.###"; +premin: REM *** Limita presenta. +

+ LOCATE 21, 15: PRINT "B. +" +

+ +

+REM ************************************* +Activa el timer para fichero *****
+
+

+TIMER ON +

+ON TIMER(tifi%) GOSUB fiche
+
+

+REM ************************************************************************ +

+REM **************** + ******************** +

+REM **************** Programa de salida +de datos (HORA) ******************** +

+REM **************** + ******************** +

+REM ************************************************************************ +
+
+

+rep:
+
+

+t$ = TIME$ +

+d$ = DATE$ +

+LOCATE 10, 72: PRINT t$ +

+LOCATE 12, 70: PRINT d$
+
+

+GOSUB lisinter +

+GOTO rep
+
+
+

+REM ************************************************************************* +

+REM ********************** Subrutina +de COMUNICACIONES ********************** +

+REM ************************************************************************* +
+
+

+lisinter: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +RETURN: REM **** Testea bit de listo +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta: +

+ RETURN: REM **** Comprueba +que se puede interrumpir a ST6
+
+
+
+
+
+
+

+REM ********************************************* +Pido dato de veleta ******
+
+

+siesta: +

+ OUT (dato%), 3: REM **** Pido +código veleta +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp
+
+

+espe1: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe1: REM **** Si no esta espera +

+ +

+ dv = INP(esta%) +

+ datovel = (dv AND 240) / 16 +

+ OUT (dato%), 8 +

+ GOSUB dibujavel +

+ +

+REM ***************************************** +Pide de Temperatura Actual ****
+
+

+ta: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO ta +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta2 +

+ GOTO ta
+
+

+REM *********************************** +Parte alta de temperatura Actual ****
+
+

+siesta2: +

+ OUT (dato%), 1: REM **** Pido +código Temperatura Actual +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+espe2: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe2: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacalta = (dtac AND 240): +REM **** Parte alta de Temperatura Actual +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato +

+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM ******************************** +Parte Baja de Temperatua Actual ******** +

+ +

+ GOSUB datemp +

+espe3: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe3: REM **** Si no esta espera +

+ +

+ dtac = INP(esta%) +

+ dtacbaja = (dtac AND 240) / +16: REM **** Parte Baja de Temperatura +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ temact = ((dtacalta + dtacbaja) +* .01953) * 20: REM **** Calcula +

+ LOCATE 4, 9: PRINT USING "###.##"; +temact: REM ** Limita present. +

+ LOCATE 4, 16: PRINT "C +" +

+ +

+ temmd = (temact + temmd) +

+ temmed = temmd / media: REM +*** Suma media para calcular +

+ media = media + 1 +

+ +

+ LOCATE 10, 9: PRINT USING "###.##"; +temmed: REM ** Limita present. +

+ LOCATE 10, 16: PRINT "C +" +

+ +

+ IF temact > temmax THEN +GOSUB temmax: REM *** Determina si es máx. +

+ IF temact < temmin THEN +GOSUB temmin: REM *** Determina si es mín. +

+ +

+REM ******************************************** +Dibuja Gráfica *************
+
+

+ xgraf = xgraf + 1 +

+ IF xgraf = 629 THEN GOSUB borra +

+ ygraf = ABS(INT(temact ­ +45)) +

+ IF ygraf < 10 THEN GOTO +pa: +

+ PSET (xgraf, ygraf)
+
+

+REM ************************************************ +PIDE DATO DE VELETA ****
+
+
+

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +RETURN: REM **** Testea bit de listo +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta4: +

+ RETURN: REM **** Comprueba +que se puede interrumpir a ST6
+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM ********************************************* +Pido dato de veleta ******
+
+

+siesta4: +

+ OUT (dato%), 3: REM **** Pido +código veleta +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp
+
+

+espe14: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe14: REM **** Si no esta espera +

+ +

+ dv = INP(esta%) +

+ datovel = (dv AND 240) / 16 +

+ OUT (dato%), 8 +

+ GOSUB dibujavel +

+ +

+ + +

+REM ********************************************* +Pide de Presión Actual ****
+
+

+pa: +

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +GOTO pa +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta3 +

+ GOTO pa
+
+

+REM *************************************** +Parte alta de Presión Actual ****
+
+

+siesta3: +

+ OUT (dato%), 2: REM **** Pido +código Presión Actual +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp +

+espe4: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe4: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacalta = (pac AND 240): REM +**** Parte alta de Presión Actual +

+ OUT (dato%), 8: REM **** Indico +que ya he recibido el dato +

+
+
+
+
+
+
+
+
+
+
+
+
+
+

+REM *********************************** +Parte Baja de Presión Actual ******** +

+ +

+ GOSUB datemp +

+espe5: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe5: REM **** Si no esta espera +

+ +

+ pac = INP(esta%) +

+ pacbaja = (pac AND 240) / 16: +REM **** Parte Baja de Presión Actual +

+ OUT (dato%), 9: REM **** Indico +que ya he recibido el dato
+
+

+ preact = (((pacalta + pacbaja) +* .019) * 2) / 5: REM **** Calcula +

+ LOCATE 17, 9: PRINT USING "#.###"; +preact: REM *** Limita presenta. +

+ LOCATE 17, 15: PRINT "B. +" +

+ +

+ IF preact > premax THEN +GOSUB premaxi: REM **** Determina máxima +

+ IF preact < premin THEN +GOSUB premini: REM **** Determina mínima
+
+

+ RETURN
+
+

+REM ************************************************ +PIDE DATO DE VELETA ****
+
+

+ l6 = INP(esta%) +

+ listost6 = l6 AND 8 +

+ IF listost6 <> 8 THEN +RETURN: REM **** Testea bit de listo +

+ +

+ dst6 = l6 AND 240 +

+ IF dst6 = 80 THEN GOTO siesta41: +

+ RETURN: REM **** Comprueba +que se puede interrumpir a ST6
+
+

+REM ********************************************* +Pido dato de veleta ******
+
+

+siesta41: +

+ OUT (dato%), 3: REM **** Pido +código veleta +

+ GOSUB STROBE: REM **** Interrumpo +a ST6 +

+ GOSUB datemp
+
+

+espe141: +

+ l6 = INP(esta%): REM **** Entra +datos de ST6 +

+ listost6 = l6 AND 8: REM **** +Determina si el dato de ST6 está listo +

+ IF listost6 <> 8 THEN +GOTO espe141: REM **** Si no esta espera +

+ +

+ dv = INP(esta%) +

+ datovel = (dv AND 240) / 16 +

+ OUT (dato%), 8 +

+ GOSUB dibujavel +

+ +

+REM ************************************** +Subrutina de STROBE***************
+
+

+STROBE: +

+ FOR temporiza = 1 TO stb: NEXT +temporiza +

+ OUT (ctrl%), 0: REM **** Pongo +a nivel alto a STROBE +

+ FOR temporiza = 1 TO stb: NEXT +temporiza +

+ OUT (ctrl%), 1: REM **** Pongo +a nivel bajo a STROBE
+
+

+RETURN
+
+

+REM ****************************************** +Datos de Veleta ************** +

+dibujavel:
+
+

+IF datovel = 4 THEN GOTO aba +

+IF datovel = 0 THEN GOTO arri +

+IF datovel = 6 THEN GOTO der +

+IF datovel = 2 THEN GOTO izda +

+IF datovel = 1 THEN GOTO no +

+IF datovel = 7 THEN GOTO ne +

+IF datovel = 3 THEN GOTO so +

+IF datovel = 5 THEN GOTO se +

+RETURN +

+arri: +

+vi = ac +

+ac = 8 +

+GOSUB vel +

+RETURN +

+aba: +

+vi = ac +

+ac = 2 +

+GOSUB vel +

+RETURN +

+der: +

+vi = ac +

+ac = 6 +

+GOSUB vel +

+RETURN +

+izda: +

+vi = ac +

+ac = 4 +

+GOSUB vel +

+RETURN +

+no: +

+vi = ac +

+ac = 7 +

+GOSUB vel +

+RETURN +

+ne: +

+vi = ac +

+ac = 9 +

+GOSUB vel +

+RETURN +

+so: +

+vi = ac +

+ac = 1 +

+GOSUB vel +

+RETURN +

+se: +

+vi = ac +

+ac = 3 +

+GOSUB vel +

+RETURN
+
+

+vel:
+
+
+

+SELECT CASE vi +

+ +

+ CASE IS = 0
+
+

+ GOTO aca
+
+

+ CASE IS = 2 +

+ +

+ LINE (320, 130)­(320, +70), 0 +

+ LINE (320, 130)­(330, +120), 0 +

+ LINE (320, 130)­(310, +120), 0
+
+

+ CASE IS = 8 +

+ +

+ LINE (320, 130)­(320, +70), 0 +

+ LINE (320, 70)­(330, 80), +0 +

+ LINE (320, 70)­(310, 80), +0
+
+

+ CASE IS = 6 +

+ +

+ LINE (250, 100)­(390, +100), 0 +

+ LINE (390, 100)­(375, +95), 0 +

+ LINE (390, 100)­(375, +105), 0
+
+

+ CASE IS = 4
+
+

+ LINE (250, 100)­(390, +100), 0 +

+ LINE (250, 100)­(265, +95), 0 +

+ LINE (250, 100)­(265, +105), 0
+
+

+ CASE IS = 9 +

+ +

+ LINE (280, 120)­(360, +80), 0 +

+ LINE (360, 80)­(355, 90), +0 +

+ LINE (360, 80)­(338, 83), +0
+
+

+ CASE IS = 1 +

+ +

+ LINE (280, 120)­(360, +80), 0 +

+ LINE (280, 120)­(285, +110), 0 +

+ LINE (280, 120)­(302, +117), 0
+
+

+ CASE IS = 7
+
+

+ LINE (280, 80)­(360, 120), +0 +

+ LINE (280, 80)­(285, 90), +0 +

+ LINE (280, 80)­(302, 83), +0
+
+

+ CASE IS = 3
+
+

+ LINE (280, 80)­(360, 120), +0 +

+ LINE (360, 120)­(355, +110), 0 +

+ LINE (360, 120)­(338, +117), 0
+
+

+END SELECT
+
+
+
+

+SELECT CASE ac +

+ +

+ CASE IS = 0
+
+

+ GOTO aca
+
+

+ CASE IS = 2 +

+ +

+ LINE (320, 130)­(320, +70) +

+ LINE (320, 130)­(330, +120) +

+ LINE (320, 130)­(310, +120)
+
+

+ CASE IS = 8 +

+ +

+ LINE (320, 130)­(320, +70) +

+ LINE (320, 70)­(330, 80) +

+ LINE (320, 70)­(310, 80) +
+
+

+ CASE IS = 6 +

+ +

+ LINE (250, 100)­(390, +100) +

+ LINE (390, 100)­(375, +95) +

+ LINE (390, 100)­(375, +105)
+
+

+ CASE IS = 4
+
+

+ LINE (250, 100)­(390, +100) +

+ LINE (250, 100)­(265, +95) +

+ LINE (250, 100)­(265, +105)
+
+

+ CASE IS = 9 +

+ +

+ LINE (280, 120)­(360, +80) +

+ LINE (360, 80)­(355, 90) +

+ LINE (360, 80)­(338, 83) +
+
+

+ CASE IS = 1 +

+ +

+ LINE (280, 120)­(360, +80) +

+ LINE (280, 120)­(285, +110) +

+ LINE (280, 120)­(302, +117)
+
+

+ CASE IS = 7
+
+

+ LINE (280, 80)­(360, 120) +

+ LINE (280, 80)­(285, 90) +

+ LINE (280, 80)­(302, 83) +
+
+

+ CASE IS = 3
+
+

+ LINE (280, 80)­(360, 120) +

+ LINE (360, 120)­(355, +110) +

+ LINE (360, 120)­(338, +117)
+
+
+

+aca: +

+END SELECT +

+RETURN
+
+

+REM ************************************ +Opción F3 salir al DOS *************
+
+

+f3: +

+TIMER OFF +

+SCREEN 0 +

+CLS +

+OUT (dato%), 0 +

+PRINT #3, "" +

+PRINT #3, "Proyecto METEO ***********************************************" +

+PRINT #3, "" +

+PRINT #3, "** Jesús Antonio +Alquezar Sierra & José Ignacio Díaz Beamud **" +
+
+

+CLOSE #3 +

+PRINT "Software Estación +Meteorológica V5.00 ­ 23 de MAYO de 1994 ­" +

+PRINT : PRINT +

+PRINT "Por Jesús Antonio +Alquezar Sierra & José Ignacio Díaz Beamud" +

+PRINT "____________________________________________________________" +

+END
+
+

+REM ************************************ +Subrutina de borrado de Gráfica ****
+
+

+borra:
+
+

+LINE (516, 10)­(629, 44), 0, BF +

+xgraf = 516 +

+RETURN
+
+

+REM ****************************************** +Subrutina de AYUDA ***********
+
+

+f1: +

+ TIMER STOP +

+ +

+ FOR yayu = 10 TO 185 +

+ +

+ LINE (159, 10)­(yayu * 1.75 ++ 155, yayu), 1, B +

+ FOR temporiza = 1 TO ayu: NEXT +temporiza +

+ LINE (159, 10)­((xayu * +1.75 + 155) ­ 1, yayu ­ 1), 0, B +

+ +

+ NEXT
+
+

+ LOCATE 3, 23: PRINT " + " +

+ LOCATE 4, 23: PRINT " ACERCA +ESTACION : " +

+ LOCATE 5, 23: PRINT " ­­­­­­­­­­­­­­­­­ +" +

+ LOCATE 7, 29: PRINT " Programa +Producido por : " +

+ LOCATE 8, 29: PRINT " + " +

+ LOCATE 9, 29: PRINT " +J.I.D.B. & J.A.A.S. " +

+ LOCATE 11, 29: PRINT " + HARDWARE & SOFTWARE " +

+ LOCATE 12, 29: PRINT " + 23 de MAYO de 1994. " +

+ LOCATE 15, 29: PRINT " + METEO.EXE V5.00 " +

+ LOCATE 20, 33: PRINT "­ +PROYECTO ST6 ­" +

+ LOCATE 22, 32: PRINT "­ +pulse una tecla ­" +

+ +

+ PLAY "MBo3L8ED+ED+Eo2Bo3DCL2o2A" +

+ +

+tea: +

+IF INKEY$ = "" THEN GOTO tea +
+
+

+ LINE (159, 10)­(478.75, +185), 0, BF
+
+

+REM ********************************* +DIBUJA LA N DE NORTE ***********
+
+

+LINE (300, 50)­(300, 40) +

+LINE (300, 40)­(340, 50) +

+LINE (340, 50)­(340, 40)
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA S DE SUR *************
+
+

+LINE (340, 160)­(300, 160) +

+LINE (340, 160)­(340, 155) +

+LINE (340, 155)­(300, 155) +

+LINE (300, 155)­(300, 150) +

+LINE (300, 150)­(340, 150)
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA E DE ESTE ************
+
+

+LINE (440, 95)­(440, 105) +

+LINE (440, 95)­(480, 95) +

+LINE (440, 105)­(480, 105) +

+LINE (440, 100)­(480, 100)
+
+

+REM *************************************************************** +

+REM ****************************** DIBUJA +LA O DE OESTE ***********
+
+

+LINE (200, 95)­(200, 105) +

+LINE (200, 105)­(160, 105) +

+LINE (160, 105)­(160, 95) +

+LINE (160, 95)­(200, 95)
+
+

+FOR N = 90 TO 100 +

+CIRCLE (320, 100), N +

+NEXT N +

+TIMER ON +

+RETURN
+
+

+REM **************************** Subrutina +de F2 que es configuracion ******* +

+f2: +

+CLOSE #3 +

+TIMER OFF +

+CLS
+
+

+pri:
+
+

+SCREEN 0 +

+CLS
+
+

+PRINT "******** Detección +de puerto CENTRONICS (paralelo) para IBM­PC ********" +

+PRINT "******** + ********" +
+
+

+PRINT "******** José Ignacio +Diaz Beamud & Jesús Antonio Alquezar Sierra ********" +
+
+
+

+REM **** Determina la base del puerto +base *********************************
+
+

+LOCATE 10, 12
+
+

+INPUT "En que puerto LPT está +conectada la ESTACION (1,2,3)"; p +

+IF p = 1 THEN BB = 8: ba = 9: GOTO in +

+IF p = 2 THEN BB = 10: ba = 11: GOTO +in +

+IF p = 3 THEN BB = 12: ba = 13: GOTO +in +

+GOTO pri
+
+

+in:
+
+

+LOCATE 10, 12: PRINT " + "
+
+

+ DEF SEG = 64: REM **** Pone la memoria +en el segmento 64 +

+ datosb% = PEEK(BB): REM **** Saca el +primer byte (bajo) +

+ datosa% = PEEK(ba): REM **** Saca el +segundo byte (alto) +

+ +

+ REM **** La suma determina la posicion +de LPT **** posicion 0040:0008 +

+ dato% = (256 * datosa%) + (datosb%) +
+
+

+ IF dato% = 0 THEN GOTO nohay
+
+

+ esta% = dato% + 1 +

+ ctrl% = dato% + 2
+
+

+ LOCATE 10, 22 +

+ COLOR 25 +

+ PRINT "El puerto paralelo es correcto +LPT"; p +

+ PRINT "" +

+ COLOR 5 +

+ PRINT " + Dirección BASE = "; HEX$(dato%) +

+ PRINT " + Dirección ESTADO = "; HEX$(esta%) +

+ PRINT " + Dirección CONTROL = "; HEX$(ctrl%) +

+ OUT (dato%), 0 +

+ OUT (ctrl%), 0 +

+ COLOR 15 +

+ LOCATE 23, 1: PRINT "Pulse una +tecla . . ." +

+ GOTO inicio
+
+

+nohay:
+
+

+ LOCATE 10, 13 +

+ COLOR 12 +

+ PRINT "No detecto puerto LPT"; +p; "consulte con su manual de usuario." +

+ PRINT +

+ COLOR 10 +

+ PRINT " + ¡¡¡¡ PROCESO DETENIDO !!!!" +

+ END
+
+

+inicio: +

+k: +

+IF INKEY$ = "" THEN GOTO k +

+kk3: +

+CLS +

+PRINT " ¿Que tipo de ordenador +es en el que tiene instalado este programa.?" +

+PRINT " Si su equipo no esta +en la lista escoja el que más se adecua a la" +

+PRINT " velocidad de su equipo +. . ."
+
+

+PRINT : PRINT +

+PRINT " + 1 ­ PC­XT (8086)" +

+PRINT " + 2 ­ PC­i386SX 25 Mhz" +

+PRINT " + 3 ­ PC­i486DX 33 Mhz" +

+PRINT : PRINT +

+INPUT "Eliga OPCION "; equi +
+
+

+IF equi > 3 OR equi < 1 THEN GOTO +kk3
+
+

+PRINT : PRINT
+
+

+CLS +

+PRINT "Introduce el número +de intervalos que quieres para que sea guardada" +

+PRINT "la temperatura en el fichero +METEO.DAT, en segundos . . ." +

+PRINT +

+PRINT "Nota : Se pierde el antiguo +fichero METEO.DAT" +

+PRINT +

+INPUT "Tiempo "; tifi%
+
+

+REM ************************************* +Escribe fichero de Configuración **
+
+

+OPEN "METEO.CFG" FOR OUTPUT +AS #1 +

+PRINT #1, dato% +

+PRINT #1, esta% +

+PRINT #1, ctrl% +

+PRINT #1, equi +

+PRINT #1, tifi% +

+CLOSE #1
+
+

+IF ero = 1 THEN GOTO fin2 +

+GOTO propri +

+fin2: +

+CLS +

+PRINT "Vuelva a ejecutar el programa +. . . . (GRACIAS)" +

+END
+
+
+

+REM ********************************************** +Subrutina de Error *******
+
+

+er: +

+ero = 1 +

+CLS +

+SCREEN 0 +

+PRINT "Este programa no se ha configurado +todavia ahora tendra que acerlo" +

+PRINT "antes de poder ejecutarlo, +la configuración se guardará en el archivo" +

+PRINT "METEO.CFG que será +copiado en el directorio desde donde se haya" +

+PRINT "ejecutado este programa y +será de formato ASCII . . ." +

+PRINT : PRINT : PRINT +

+PRINT "Pulse un tecla para configurar +. . ."
+
+

+kk2: +

+IF INKEY$ = "" THEN GOTO kk2 +

+GOTO f2
+
+

+REM ************************************* +Subrutina de Selección de equipo **
+
+

+pontem:
+
+

+SELECT CASE equi
+
+

+ REM ********************** Configuración +XT (8086) ****************** +

+ +

+ CASE IS = 1
+
+

+ linei = 1: circi = 1: circv = +1: stb = 1: ayu = 1: est6 = 10
+
+

+ REM ********************** Configuración +286 ************************ +

+ +

+ CASE IS = 2
+
+

+ linei = 1: circi = 1: circv = +1: stb = 1: ayu = 1: est6 = 10
+
+

+ REM ********************** Configuración +486DX 33Mhz **************** +

+ +

+ CASE IS = 3
+
+

+ linei = 50: circi = 105: circv += 500 +

+ stb = 100: ayu = 200: est6 = +50
+
+

+END SELECT +

+RETURN
+
+

+REM ********************* Subrutina de +tiempo para que el ST6 trate dato ****
+
+

+datemp:
+
+

+FOR temporiza = 1 TO est6: NEXT temporiza +
+
+

+RETURN
+
+

+REM *********************************** +Subrutina de temp max ************** +

+temmax: +

+ temmax = temact +

+ LOCATE 6, 9: PRINT USING "###.##"; +temmax: REM ** Limita present. +

+ LOCATE 6, 16: PRINT "C +"
+
+

+RETURN
+
+

+REM *********************************** +Subrutina de temp min ************** +

+temmin: +

+ temmin = temact +

+ LOCATE 8, 9: PRINT USING "###.##"; +temmin: REM ** Limita present. +

+ LOCATE 8, 16: PRINT "C +"
+
+

+RETURN +

+REM ************************************************************************ +

+REM *********************************** +Subrutina de Presión Máxima ********
+
+

+premaxi: +

+ premax = preact +

+ LOCATE 19, 9: PRINT USING "#.###"; +premax: REM *** Limita presenta. +

+ LOCATE 19, 15: PRINT "B. +" +

+ +

+RETURN
+
+

+REM ************************************************************************ +
+
+

+REM *********************************** +Subrutina de Presión Máxima ********
+
+

+premini: +

+ premin = preact +

+ LOCATE 21, 9: PRINT USING "#.###"; +premin: REM *** Limita presenta. +

+ LOCATE 21, 15: PRINT "B. +" +

+ +

+RETURN
+
+

+REM *************************************** +Impresión Tempe en fichero *****
+
+

+fiche:
+
+

+ PRINT #3, USING "###.##"; +temact; : PRINT #3, " ­­­­­­­> + "; +

+ PRINT #3, TIME$; : PRINT #3, +" "; USING "###.##"; temmax; +

+ PRINT #3, " "; USING +"###.##"; temmin; +

+ PRINT #3, " "; USING +"###.##"; temmed
+
+

+RETURN
+
+

+REM ************************************************************************ +
+
+

+END
+
+
+
+
+
+

+BREVE EXPLICACION AL PROGRAMA METEO.BAS +:
+
+

+Este programa está escrito y compilado +en QUICKBASIC de Microsoft. Es un programa que se comunica con +la estación metereológica a través del protocolo +ya establecido. El programa +

+nada más inicializarse comprueba +que existe el archivo de configuración (METEO.CFG). Si +este no existe salta a la subrutina de configuración. También +cada vez que se ejecuta el programa borra los datos anteriores +de METEO.DAT de control de temperatura y crea uno nuevo. El programa +una vez realizada la pantalla de METEO trata de comunicarse con +la estación, entra en un bucle hasta que la entrada de +el registro de estado (por el cual la estación envía +datos al PC) hay un 05h (mirar capitulo de protocolo). En ese +momento el programa saca el código de la información +que necesita y produce un pulso en STROBE para interrumpir al +ST6. Cuando detecta dato listo recoge el dato, lo introduce en +una variable y saca al puerto de datos un 08h en espera de la +parte baja que cuando es recibida se coloca en otra variable, +con esta variable se realiza una operación, ya que como +la información se recoge de los 4 bits de mayor peso del +registro de estado habrá que pasarlo a parte baja para +sumarlo con la parte alta. Ahora habrá que determinar cual +es el dato completo, para ello se utiliza una tercera variable. +Los cálculos son :
+
+

+para la parte alta :
+
+

+dato_alto = inp(esta%)
+
+

+parte_alta = (dato_alto AND 240)
+
+

+para la parte baja :
+
+

+dato_bajo = inp(esta%)
+
+

+parte_baja = (dato_bajo AND 240) / +16
+
+

+y el resultado de la unión +es :
+
+

+dato_total = parte_alta + parte_baja +
+
+
+

+Con esto dato_total es el valor del registro +ADR del ST6, que es lo que nos manda el PC por lo tanto ahora +podremos operar con el para conseguir el valor deseado.
+
+

+NOTA : Se recuerda que como el ST6 +está alimentado a 5V la resolución del convertidor +es de 19,5mV.
+
+
+
+
+
+
+
+
+

+Para hallar el valor de la temperatura +a partir de dato_total sería :
+
+

+tempe = (dato_total * .01953) * 2 +* 10
+
+

+dato_total se multiplica por 0.0195V +para saber el valor en voltios del ADR, después este resultado +se multiplica por 2, ya que la entrada del A/D esta dividida entre +dos por medio de un divisor de tensión y posteriormente +se multiplica por 10 que es el valor por el cual hay que multiplicar +en resultado en VOLTIOS para saber la temperatura, ya que la sonda +entrega de 0-10V en un rango de temperaturas de 0-100ºC, +osea 100/10=10.
+
+

+Para determinar el valor de la presión +a partir de dato_total sería :
+
+

+presion = ((dato_total * .01953) * +2) / 5
+
+

+dato_total se multiplica por 0.0195V +para saber el valor en voltios del ADR, después este resultado +se multiplica por 2, por que la tensión de entrada del +A/D esta divida entre 2, y para saber a que presión equivale +esa tensión el resultado se multiplica por 5.
+
+

+Para la veleta no hay que realizar ningún +tipo de calculo ya que el valor de los 4 bits de mayor peso del +registro de estado determinan en que posición se encuentra. +
+
+

+El programa METEO.BAS pide los datos +de temperatura y presión de máximas y mínimas +sólo cuando al se ejecuta al programa, después es +el mismo programa BASIC el que lleva ese control, así se +consigue mayor fluidez datos para refrescar a la veleta.
+
+

+Los datos de temperatura se registran +en el fichero METEO.DAT y los de la configuración en METEO.CFG. +
+
+
+
+
+
+
+
+
+

+
+
+

+VI-d,II) PROGRAMA DEL ST6VI-d,II) PROGRAMA DEL ST6 +
+
+

+Ante la dificultad para poder realizar +el organigrama mediante alguno de los programas existentes, se +opta por explicar los bloques.
+
+

+Hay que advertir para la comprensión +del programa que cada vez que se va a sacar un dato a un puerto +se realiza la complementacion del bit 3, es debido a una característica +del puerto paralelo del PC y se realiza en el ST6 por ser mas +fácilmente realizable que en el PC.
+
+

+Programa principal:
+
+

+Este programa comienza con la definición +de los símbolos y de las posiciones de memoria que se van +a utilizar en el desarrollo del programa, a continuación +se determina si el sistema estaba funcionando anteriormente (Como +mas adelante se explicara esta previsto que el PC pueda desconectarse +en cualquier momento y se ha dotado al sistema de una rutina "anticuelge" +en el único momento que podría ocurrir, esta rutina +provoca el RESET mediante el WDR), en caso de haber estado funcionando +salta una rutina de inicialización, en caso contrario salta +a la rutina de inicialización, si estaba o no estaba funcionando +anteriormente se determina por medio de un posición de +memoria puesta a tal efecto. +

+La rutina de inicialización, lo +que realiza es cargar el dato 00h en los registros destinados +a guardar las temperaturas y presiones máximas, y guardar +FFH en los registros destinados a los mínimos, a continuación +llama a un temporizador de 5 Sg y después pone a 1 el registro +de control de funcionamiento con lo que termina la rutina de inicialización +y vuelve al flujo principal. +

+A continuación viene una rutina +de programación de puertos que a programa a los puertos +según la función que van a realizar, después +habilita las interrupciones. +

+A continuación comienza la rutina +que se repite ciclicamente, comienza mediante la indicación +al PC de que esta listo para ser interrumpido, comienza la conversión +de temperatura para ello reprograma los puertos, una vez acabada +la conversión se determina si la temperatura es máxima +o mínima y si es así la guarda en el registro correspondiente +además de en el de temperatura actual, después realiza +la conversión de la presión con lo que vuelve a +reprogramar los puertos, una vez acabada la conversión +determina si es máxima o mínima y la guarda en el +lugar correspondiente además de en el registro de presión +actual. después de esto salta al comienzo de la rutina +repetitiva. +

+Hay que decir que el ST6 puede ser interrumpido +en cualquier momento por el PC con lo cual se salta a la rutina +de interrupción.
+
+
+

+RUTINA DE INTERRUPCIÓN:
+
+

+A esta rutina se accede desde el programa +principal mediante la interrupción del PC, una vez en esta +rutina se carga el valor de nolisto en el puerto que comunica +en dirección al PC, con lo cual se dehabilita el permiso +al PC para que interrumpa, después se carga el código +que manda el PC en el registro reservado a tal efecto, a continuación +se determina a que código pertenece saltando a la rutina +correspondiente, en caso de ser un código o valido se vuelve +al programa principal.
+
+

+Las rutinas son todas prácticamente +iguales exceptuando la de la veleta que se describirá mas +adelante. +

+Todas las rutinas de envió de +datos (exceptuando la de la veleta) funcionan igual todas ellas +cogen dato solicitado y lo transmiten de nible en nible mandando +primero la parte alta y después la parte baja, antes de +mandar el siguiente dato o de volver a la subrutina anterior comprueba +si el PC lo ha recibido, esto los hace mediante dos códigos +un para la parte alta y otro para la parte baja. +

+La rutina de la veleta lo que hace es +leer los datos de la veleta y a continuación lo manda al +PC, en este caso solo manda un nible por que el dato de la veleta +es solo de 3 bit.
+
+

+En las rutinas de envió de datos +es en el único momento en el que se puede colgar el sistema +esto se soluciona limitando en nº de veces que se puede repetir +el bucle de comprobación de dato recibido, en caso de agotarse +ese tiempo (nº de veces que se puede repetir el bucle) salta +a una rutina para hacer funcionar el wachtdog esto lo hace entrando +en un bucle cerrado que no carga el WDR. Hay que advertir que +durante todo el programa se recarga el WDR para evitar el RESET. +
+
+

+A continuacion se encuetra el fichero +fuente
+
+

+.DISPLAY " + METEO21.ASM " +

+.DISPLAY " + " +

+.DISPLAY "**************************************************************** +" +

+.DISPLAY "****** Programa para ST6215 +por J.I.D.B. & J.A.A.S. ****** " +

+.DISPLAY "****** + ****** " +

+.DISPLAY "****** ESTACION +METEREOLOGICA ****** " +

+.DISPLAY "****** + V 2.01 ****** " +

+.DISPLAY "**************************************************************** +" +

+.DISPLAY " + " +

+.DISPLAY " PROGRAMA +TERMINADO EL DIA " +

+.DISPLAY " + 24 DE MAYO DE 1994 "
+
+

+;**************************************************************************** +

+;**************************** DEFINE +REGISTROS ****************************** +

+;**************************************************************************** +
+
+

+x .def 80h +

+y .def 81h +

+v .def 82h +

+w .def 83h +

+ +

+a .def 0ffh,m
+
+

+drpa .def 0c0h +

+drpb .def 0c1h +

+drpc .def 0c2h
+
+

+ddrpa .def 0c4h +

+ddrpb .def 0c5h +

+ddrpc .def 0c6h
+
+

+ior .def 0c8h +

+rdw .def 0c9h
+
+

+orpa .def 0cch +

+orpb .def 0cdh +

+orpc .def 0ceh
+
+

+adr .def 0d0h,m +

+adcr .def 0d1h
+
+

+psc .def 0d2h +

+tcr .def 0d3h +

+tscr .def 0d4h
+
+

+wdr .def 0d8h
+
+
+

+;**************************************************************************** +

+;*************** DEFINICION POSICIONES +MEMORIA ****************************** +

+;**************************************************************************** +
+
+

+temact .def 84h,0ffh,0ffh,m ; DEFINE +POSIONES DE MEMORIA +

+preact .def 85h,0ffh,0ffh,m ; A UTILIZAR +PARA LA PROGRMACION +

+veleta .def 0c2h,m ; VELETA +(PC) +

+temmin .def 86h,0ffh,0ffh,m ; TEMPERATURA +MINIMA +

+temmax .def 87h,0ffh,0ffh,m ; TEMPERATURA +MAXIMA +

+premin .def 88h,0ffh,0ffh,m ; PRESION +MINIMA +

+premax .def 89h,0ffh,0ffh,m ; PRESION +MAXIMA +

+partal .def 8Ah,0ffh,0ffh,m ; PARTE +ALTA A TRANSMITIR +

+partba .def 8bh,0ffh,0ffh ; PARTE +BAJA A TRANSMITIR +

+comu .def 8ch,0ffh,0ffh ; REGISTRO +DE TRANSMISIONES +

+control .def 8dh,0ffh,0ffh,m ; Registro +de control de funcionamiento +

+salva .def 8eh,0ffh,0ffh ; Posición +Salva Acumulador para sobrutina
+
+
+
+
+

+alta .equ 11110000b ; Define +palabras para control rapido +

+baja .equ 00001111b +

+tempe .equ 01h ; CODIGO +DE LA TEMPERATURA ACTUAL
+
+

+presi .equ 02h ; CODIGO +DE LA PRESION ACTUAL
+
+

+velet .equ 03h ; CODIGO +DE LA VELETA
+
+

+tempm .equ 04h ; CODIGO +DE LA TEMPERATURA MINIMA +

+tempx .equ 05h ; CODIGO +DE LA TEMPERATURA MAXIMA
+
+

+presm .equ 06h ; CODIGO +DE LA PRESION MINIMA +

+presx .equ 07h ; CODIGO +DE LA PRESION MAXIMA
+
+

+repc .equ 08h ; Codigo +de dato recibido ( PC > ST6) +

+rep2 .equ 09h ; Codigo +dato recibido 2
+
+

+listo .equ 11110101b ; CODIGO +DE LISTO PARA RECIBIR INTERRUCCION
+
+

+nolisto .equ 0 ; CODIGO +DE ANULACION DE LISTO
+
+

+ddrte .equ 00h ;\ +

+ortem .equ 50h ; | ACTIVA +EL ADC DE LA PATILLA Nº6 +

+drtem .equ 0e0h ;/
+
+

+ddrpr .equ 00h ;\ + +

+orpre .equ 90h ; | ACTIVA +EL ADC DE LA PATILLA Nº7 +

+drpre .equ 0e0h ;/
+
+

+ddrve .equ 00h ;\ +

+orvel .equ 10h ; | DESACTIVA +LOS CONVERTIDORES +

+drvel .equ 0e0h ;/
+
+
+

+;**************************************************************************** +

+;************************ PROGRAMACION +INICIAL DE PUERTOS ******************* +

+;**************************************************************************** +
+
+
+
+

+.org 0800h
+
+
+

+reset reti ; Retorna +a modo normal desues del reset +

+ ldi wdr,0feh ; Recarga +el WDR +

+ +

+ ldi a,0aah ; Carga +en el acumlador ffh +

+ cp a,control ; Compara +el acumulador con control +

+ jrz comi1 ; Si +ya estaba funcionando salta +

+ jp reco +

+comi1 jp comi +

+reco ldi temmax,0 ;\ Realiza +los ajustes para el correcto +

+ ldi premax,0 ; | funcionamiento +del sistema +

+ ldi temmin,0ffh ; | +

+ ldi premin,0ffh ;/ +

+ +

+ ldi a,05h ; Bloquea +el sistema Durante 5 Sg +

+ call temp ; +

+ ldi control,0aah ; Pone +el registro de control en fucionamiento
+
+

+comi ldi ddrpb,00011111b ;\ +

+ ldi orpb,00011111b ; | Programa +el puerto B como salida +

+ ldi drpb,11100000b ;/ (PB0­PB4) +resto alta impedancia
+
+

+ ldi wdr,0feh ; Recarga +el WDR +

+ ldi ddrpc,00h ;\ +

+ ldi orpc,00h ; | Programa +como entrada el puerto c +

+ ldi drpc,80h ;/ + (Veleta) ( PC 7 en alta impedancia)
+
+

+ ldi wdr,0feh ; Recarga +el WDR +

+ ldi ddrpa,ddrve ;\ +

+ ldi orpa,orvel ; | Programa +puerto A como entrada +

+ ldi drpa,drvel ;/
+
+

+ ldi wdr,0feh ; Recarga +el WDR +

+ ldi ior,00010000b ; Habilita +las interrupciones de PA a +

+ ; flanco +descendente
+
+

+;**************************************************************************** +

+;**************** FINAL PROGRAMACION +DE PUERTOS ***************************** +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;***************** COMIENZO PROGRAMA +PRINCIPAL ****************************** +

+;**************************************************************************** +

+ +

+prin ldi a,listo ; Carga +en A listo +

+ call comple ; Llama +a subrutina de complementación bit 4 +

+ ld drpb,a ; Indica +al PC Que el ST6 esta listo +

+ +

+ ldi ddrpa,ddrte ; Programa +el puerto a para poder medir +

+ ldi orpa,ortem ; la +temperatura +

+ ldi drpa,drtem
+
+

+ ldi adcr,00010000b ; Conecta +el ADC +

+ nop ; Espera +a que se conecte +

+ ldi adcr,00110000b ; Da +comienzo a la conversion
+
+

+lazo1 ldi wdr,0feh ; Recarga +el WDR +

+ jrr 6,adcr,lazo1 ; Comprueba +si la conversion ha finalizado +

+ ; y si +es asi continua +

+ +

+ ld a,adr ; coge +el dato resultado de la conversion +

+ ldi adcr,00h ; apaga +el ADC +

+ ld temact,a ; Guarda +la temperatura en su posicion +

+ +

+ ldi wdr,0feh ; recarga +el WDR +

+ ld a,temmin ; Comienza +la determinacion de temperatura +

+ cp a,temact ; minima +

+ jrnc gutmi ; Si +no se ha producido carry salta +

+ jp ftmi ; salta +al final de la rutina +

+gutmi jrnz gutmin ; si +no se ha producido flag de 0 salta +

+ ldi wdr,0feh ; recarga +el WDR +

+ jp ftmi ; salta +al final de la rutina +

+gutmin ld a,temact ; guarda +la temperatura actual como minima +

+ ldi wdr,0feh ; recarga +el WDR +

+ ld temmin,a ; +

+ jp presion ; si +la temperatura era minima salta al final +

+ ; de +las temperaturas
+
+

+ftmi ld a,temmax ; Comienza +la determinacion de temperatura +

+ ldi wdr,0feh ; recarga +el WDR +

+ cp a,temact ; maxima +

+ jrc gutma ; Si +se ha producido carry salta +

+ jp presion ; salta +al final de la rutina +

+gutma jrnz gutmax ; si +no se ha producido flag de 0 salta +

+ ldi wdr,0feh ; recarga +el WDR +

+ jp presion ; salta +al final de la rutina +

+gutmax ld a,temact ; guarda +la temperatura actual como maxima +

+ ldi wdr,0feh ; recarga +el WDR +

+ ld temmax,a ;
+
+
+

+presion ldi wdr,0feh ; recarga +el WDR +

+ ldi ddrpa,ddrpr ; Programa +el puerto a para poder medir +

+ ldi orpa,orpre ; la +presion +

+ ldi drpa,drpre +

+ +

+ ldi adcr,00010000b ; Conecta +el ADC +

+ nop ; Espera +a que se conecte +

+ ldi adcr,00110000b ; Da +comienzo a la conversion
+
+

+lazo2 ldi wdr,0feh ; Recarga +el WDR +

+ jrr 6,adcr,lazo2 ; Comprueba +si la conversion ha finalizado +

+ ; y si +es asi continua +

+ +

+ ld a,adr ; coge +el dato resultado de la conversion +

+ ldi adcr,00h ; apaga +el ADC +

+ ld preact,a ; Guarda +la presion en su posicion +

+ +

+ ld a,premin ; Comienza +la determinacion de de presion +

+ ldi wdr,0feh ; recarga +el WDR +

+ cp a,preact ; minima +

+ jrnc gupmi ; Si +no se ha producido carry salta +

+ jp fpmi ; salta +al final de la rutina +

+gupmi jrnz gupmin ; si +no se ha producido flag de 0 salta +

+ ldi wdr,0feh ; recarga +el WDR +

+ jp fpmi ; salta +al final de la rutina +

+gupmin ld a,preact ; guarda +la presion actual como minima +

+ ld premin,a ; +

+ jp prin ; si +la presion era minima salta al final +

+ ; de +las presiones (comienzo programa)
+
+

+fpmi ldi wdr,0feh ; recarga +el WDR +

+ ld a,premax ; Comienza +la determinacion de presion +

+ cp a,preact ; maxima +

+ jrc gupma ; Si +se ha producido carry salta +

+ jp prin ; salta +al final de la rutina +

+gupma jrnz gupmax ; si +no se ha producido flag de 0 salta +

+ ldi wdr,0feh ; recarga +el WDR +

+ jp prin ; salta +al final de la rutina +

+gupmax ld a,preact ; guarda +la presion actual como maxima +

+ ldi wdr,0feh ; recarga +el WDR +

+ ld premax,a ; +

+ jp prin ; Salta +la principio de rutina
+
+

+;**************************************************************************** +

+;******************* FINAL RUTINA PRINCIPAL +******************************* +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;******************* COMIENZO INTERRUPCION +COMUNICACIONES ****************** +

+;**************************************************************************** +
+
+

+comunica +

+ ld salva,a ; Guarda +en Salva el ACUMULADOR +

+ +

+ ldi a,nolisto ; Carga +en A nolisto ( desabilia permiso in) +

+ call comple ; Llama +a subrutina de complementación bit 4 +

+ ld drpb,a ; Indica +al PC Que el ST6 no esta listo +

+ +

+ ldi drpb,0e0h ; Indica +al PC que esta atendiendo interrup +

+ ldi wdr,0feh ; Recarga +WDR +

+ ld a,drpa ; Entra +dato del PC +

+ andi a,baja ; Pongo +a 0 el las lineas que no son de comu +

+ +

+ cpi a,tempe ; Comprueba +codigos de operacion +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz pr +

+ call comtem ; Llama +a la rutina de com de tempe actual +

+ jp fin
+
+

+pr cpi a,presi ; Comprueba +si corresponde a presion +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz vel +

+ call compre +

+ jp fin
+
+

+vel cpi a,velet ; Comprueba +si corresponde a veleta +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz tmin +

+ call comvel +

+ jp fin
+
+

+tmin cpi a,tempm ; Comprueba +si corresponde a T min +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz tmax +

+ call comtmin +

+ jp fin
+
+

+tmax cpi a,tempx ; Comprueba +si corresponde a T max +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz pmin +

+ call comtmax +

+ jp fin
+
+

+pmin cpi a,presm ; Comprueba +si corresponde a P min +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz pmax +

+ call compmin +

+ jp fin
+
+
+

+pmax cpi a,presx ; Comprueba +si corresponde a P max +

+ ldi wdr,0feh ; Recarga +WDR +

+ jrnz fin +

+ call compmax
+
+

+fin ld a,salva ; Recupera +el valor del acumulador +

+ ldi wdr,0feh ; Recarga +WDR +

+ reti ; retorna +al programa principal
+
+

+;**************************************************************************** +

+;******************* FIN RUTINA DETERMINACION +INTERRUPCION ***************** +

+;**************************************************************************** +
+
+

+;**************************************************************************** +

+;******************* COMIENZO RUTINAS +DE COMUNICACIONES ********************* +

+;**************************************************************************** +

+;**************************************************************************** +

+;******************** TEMPERATURA ACTUAL +************************************ +

+;**************************************************************************** +
+
+

+comtem ld a,temact +

+ ld comu,a ; Carga + la temperatura actual +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;***************** FIN TEMPERATURA ACTUAL +********************************** +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;************************ PRESION ACTUAL +************************************ +

+;**************************************************************************** +
+
+

+compre ld a,preact +

+ ld comu,a ; Carga + la presion actual +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;******************** FIN PRESION ACTUAL +************************************ +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;******************** TEMPERATURA MAXIMA +************************************ +

+;**************************************************************************** +
+
+

+comtmax ld a,temmax +

+ ld comu,a ; Carga + la temperatura maxima +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;***************** FIN TEMPERATURA MAXIMA +********************************** +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;******************** TEMPERATURA MINIMA +************************************ +

+;**************************************************************************** +
+
+

+comtmin ld a,temmin +

+ ld comu,a ; Carga + la temperatura minima +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;***************** FIN TEMPERATURA MINIMA +********************************** +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;********************** PRESION MAXIMA +************************************ +

+;**************************************************************************** +
+
+

+compmax ld a,premax +

+ ld comu,a ; Carga + la presion maxima +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;******************** FIN PRESION MAXIMA +********************************** +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;********************** PRESION MINIMA +************************************ +

+;**************************************************************************** +
+
+

+compmin ld a,premin +

+ ld comu,a ; Carga + la presion minima +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte alta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ ld a,comu ; Comienza +transmision parte baja +

+ andi a,baja +

+ set 5,a +

+ set 6,a +

+ set 7,a +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +parte baja +

+ set 4,drpb ; Indica +dato listo +

+ call reci2 ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;******************* FIN PRESION MINIMA +********************************** +

+;**************************************************************************** +
+
+
+
+

+;**************************************************************************** +

+;************************** VELETA ****************************************** +

+;**************************************************************************** +
+
+

+comvel ld a,veleta +

+ ld comu,a ; Carga + la VELETA +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ld a,comu ; Comienza +la transmision de parte alta +

+ andi a,alta ;\ +

+ rlc a ; | Rota +parte alta a la baja +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ; | +

+ rlc a ;/ +

+ res 3,a ; Elimina +posible bit de error +

+ andi a,baja ; Elimina +posible Carry +

+ set 5,a +

+ set 6,a ; Mantiene +el estado de alta +

+ set 7,a ; Impedancia +

+ ldi wdr,0feh ; Recarga +el WDR +

+ call comple ; Llama +a subrrutina de complementacion +

+ ld drpb,a ; Saca +estado de la veleta +

+ set 4,drpb ; Indica +dato listo +

+ call reci ; Llama +a comprobacion recep +

+ reti ; Fin +trasmision
+
+

+;**************************************************************************** +

+;******************* FIN VELETA ***************************************** +

+;**************************************************************************** +

+ +
+
+

+;**************************************************************************** +

+;******************* COMPROBACION DE +DATO RECIBIDO PARTE ALTA *************** +

+;**************************************************************************** +
+
+

+reci ldi w,0ffh ; Carga +nº max de veces del bucle +

+reci0 ldi v,0ffh ; Carga +nº max de veces +

+reci1 ldi wdr,0feh ; Recarga +el WDR +

+ ld a,drpa ; Carga +en el acumulador el puerto del PC +

+ andi a,baja ; Elimina +parte alta +

+ cpi a,8 ; Comprueba +si coincide con " Dato Recibido" +

+ jrnz rec0 ; Vuelve +a comprobarlo +

+ jp firec ; Salta +al final de subrutina +

+rec0 dec v ; Decrementa +el nº de veces que quedan +

+ jrz rec1 ; Si +se ha ejecutado el bucle 256 veces decre +

+ ; el +registro w +

+ jp reci1 ; Salta +al principio de rutina +

+rec1 dec w ; +

+ jrz cuelge ; Si +se, ha terminado el bucle cuelga el sistema +

+ jp reci0 ; +

+cuelge jp reini ; cuelga +el sistema +

+firec res 4,drpb ; Deja +de indicar dato listo +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ret ; Vuelve +a rutina anterior
+
+

+reini nop ; Entra +en bucle cerrado para que se produzca +

+ jp reini ; el +reset del sistema provocado por wdr
+
+

+;******************************************************************* +

+;************** FIN COMPROBACION DATO +RECIBIDO PARTE ALTA ********** +

+;******************************************************************* +
+
+
+

+;******************************************************************* +

+;************** COMPROBACION DATO RECIBIDO +PARTE BAJA ************** +

+;******************************************************************* +

+reci2 ldi w,0ffh ; Carga +nº max de veces del bucle +

+reci02 ldi v,0ffh ; Carga +nº max de veces +

+reci12 ldi wdr,0feh ; Recarga +el WDR +

+ ld a,drpa ; Carga +en el acumulador el puerto del PC +

+ andi a,baja ; Elimina +parte alta +

+ cpi a,09H ; Comprueba +si coincide con " Dato Recibido" +

+ jrnz rec3 ; Vuelve +a comprobarlo +

+ jp firec2 ; Salta +al final de subrutina +

+rec3 dec v ; Decrementa +el nº de veces que quedan +

+ jrz rec12 ; Si +se ha ejecutado el bucle 256 veces decre +

+ ; el +registro w +

+ jp reci12 ; Salta +al principio de rutina +

+rec12 dec w ; +

+ jrz cuelge2 ; Si +se, ha terminado el bucle cuelga el sistema +

+ jp reci02 ; +

+cuelge2 jp reini ; cuelga +el sistema +

+firec2 res 4,drpb ; Deja +de indicar dato listo +

+ ldi wdr,0feh ; Recarga +el WDR +

+ ret ; Vuelve +a rutina anterior
+
+

+;**************************************************************************** +

+;**************** FIN COMPROBACION DE +DATO RECIBIDO PARTE BAJA ************** +

+;**************************************************************************** +
+
+

+;**************************************************************************** +

+;**************** SUBRRUTINA DE COMPLEMENTACION +DE DATOS ******************** +

+;**************************************************************************** +

+ +

+comple jrs 3,a,stb ; Comprueba +el estado del bit 3 del +

+ set 3,a ; acumulador +y lo complementa, esto es +

+ ret ; necesario +para la correcta comunicacion +

+stb res 3,a ; con +el PC +

+ ret ;
+
+

+;**************************************************************************** +

+;************* FINAL SUBRRUTINA DE COMPLEMETANCION +DE DATOS ***************** +

+;**************************************************************************** +
+
+
+

+;*********************************************************************** +

+;*********************** TEMPORIZADOR +PROGRAMABLE PARA EL INICIO ******* +

+;*********************************************************************** +
+
+

+temp jrnz inic +

+ jp fin1 +

+inic ldi v,0ach +

+sal2 ldi w,0ffh +

+sal1 ldi wdr,0feh ;Recarga el +WATCHDOG para que no llege a ser 0 +

+ nop ;y se produzca +un reset +

+ nop +

+ dec w +

+ jrnz sal1 +

+ dec v +

+ jp saltito +

+fin1 jp fin2 +

+saltito jrnz sal2 +

+ dec a +

+ ldi wdr,0feh +

+ jrz fin2 +

+ jp temp +

+fin2 ldi wdr,0feh +

+ ldi control,0aah +

+ ret
+
+

+;*************************************************************************** +

+;********************** FINAL TEMPORIZADOR +PROGRAMABLE ********************* +

+;*************************************************************************** +
+
+

+;**************************************************************************** +

+;*********************** FINAL DE SUBRRUTINAS +******************************* +

+;**************************************************************************** +
+
+
+

+;**************************************************************************** +

+;*************************** VECTORES +DEL ST6 ******************************* +

+;**************************************************************************** +
+
+

+.org 0ff0h
+
+

+adc nop ;Vector +conv. A/D +

+ reti +

+timer nop ;Vector +del timer +

+ reti +

+int2 nop ;Vector +de PB y PC +

+ reti +

+int1 jp comunica ;Vector +de PA
+
+
+

+.org 0ffch
+
+

+nmi nop ;Vector +de NMI +

+ reti +

+res jp reset ;Vector +de RESET +

+.end +


+

+

ULTIMA MODIFICACION 29-3-1997
+
+ + + diff --git a/download/STREAMER.RAR b/download/STREAMER.RAR new file mode 100644 index 0000000..01f3c7d Binary files /dev/null and b/download/STREAMER.RAR differ diff --git a/fundadores_infomundo.htm b/fundadores_infomundo.htm new file mode 100644 index 0000000..b9fe258 --- /dev/null +++ b/fundadores_infomundo.htm @@ -0,0 +1,179 @@ + + + + + + Club InfoMundo + + +  +
+ + + + + + + +
+
 
+
+
+
 Fundadores +de InfoMundo
+  +
+ + + +
+
+ +
Fundadores de InfoMundo: (izq-der) Francisco Lopez, Josue Gomez, José David Guillén, Francisco Sanchez
+ +
+ +
Bueno, de izquierda a derecha somos los siguientes: +'Lopez', 'Joshua', 'JD', 'Cé'.
+ +
a continuación unas fotos nuestras +en la campus party, nuestros verdaderos nombres, y descripción sobre +nosotros...
+ +
 
+
+  +
  +
  + + + + +
+ + + + + + + + + + + + + + + + + + + + + + + + +
+
Foto no disponible en estos momentos ( Esta con la novia )
+
Nombre: Francisco +Lopez  +
Nick: Lopez  +
Profesión: +"Electrónico"  +
Página Web: +(ninguna de momento)  +
e-mail: (nomeacuerdo@gratismail.es)  +
Habilidades:  +
     Te diseña el circuito que le pidas +en un rato, pero tarda una eternidad en llevarlo a cabo. +
     Arregla los aparatos de PM, pero se lleva +su tiempo. +
    (Excusas: no por el trabajo, sino por la NOVIA!!!!) +
     Pero se lo perdonamos porque es muy simpática.
+Sus amigos opinan:  +
     ( +Ahora te vamos a poner a parir: )  +
    Esta tol dia con la novia, no se le ve el pelo, +y pa' una vez que le decimos que se venga con nostros a, bla bla bla bal...  +
    El cabrito prefirio quedarse con la novia, a +traersela a la campus-party y vernirse con nosotros.  +
    Resumiendo, Las NOVIAS perjudica seriamente la +salud. +
     Sin embargo es un exelente electrónico. +
     
+
Nombre: +Joshua Gomez Garcia  +
Nick: Joshua  +
Profesión: +"Programador"  +
Página Web: +http://www.arrakis.es/~namet  +
e-mail: namet@arrakis.es  +
Habilidades:  +
     De todo un poco.  +
     Es el responsable de la fundación +de InfoMundo, y el que se encargó de todo el papeleo, apertura del +apartado de correos, y el que nos lleva en el coche a todos sitios. +
     Aprende rápidamente cualquier cosa.
+Sus amigos opinan:  +
     Nos da buenos precios de componentes informáticos, +y por lo menos es uno de los unicos que no estan tol dia con la novia. +
     Su novia dice: "Esta muy poco tiempo conmigo".
+
+
+
+
+
Nombre: José +David Guillén Dominguez  +
Nick: JD +/ _-¨FuTuRe ViSiOn¨-_  +
Profesión:  +"Programador"  +
Página Web: +http://www.arrakis.es/~infomundo/JD   +
e-mail: Jose-David.Guillen@cs.us.es   +
Habilidades:  +
    Crackear cualquier juego cuando necesita oro, +petroleo, etc... para terminarselo.  +
    Meter prisa para que se acaben las cosas, o empiencen +por que hay veces que es mejor no hablar. +
     Desarollar software increible.
+Sus amigos opinan:  +
     (mientras tenga el +bate de Jierro en la mano, creo que no van a opinar. He tu deja el teclado...) +
    Al final conseguimos quitarle el bate. +
    Acepta cualquier sugerencia que le guste, pero +como no le guste la corta de raiz +
    Solo se que si tengo algún problema solo +tengo que marcar el #######. +
    Lo cierto es que es parece joven pero es un genio. +
     
+
Nombre: Francisco +Sanchez Millan  +
Nick: Skytroter +o troter +
Profesión: +"Electrónico"  +
Página Web: +http://www.arrakis.es/~trotador  +
e-mail: trotador@arrakis.es  +
Habilidades:  +
    Es capaz de resistir dos dias sin dormir, jugando +a Civilization. (Resiste mas, pero despues de ese tiempo el juego le dice +que ha obtenido la puntuación máxima y ya no le deja jugar +mas) 
+Sus amigos opinan:  +
    Dice que siempre hay tiempo, pero creemos que +en realidad, se le escapa de las manos. +
    Si algún dia se levantase temprano, se +pone a ver Goku. +
    El alcohol y las drogas convierten su celebro +en un maquina logica.
+
+
+
+  + + diff --git a/ideas_y_proyectos.htm b/ideas_y_proyectos.htm new file mode 100644 index 0000000..827989e --- /dev/null +++ b/ideas_y_proyectos.htm @@ -0,0 +1,583 @@ + + + + + Club InfoMundo + + +Ideas +y Proyectos + +

+


+
 En esta sección, exponemos +todas nuestras ideas para proyectos futuros, +en dedesarrollo y finalizados. En cualquiera de los dos primeros +casos puedes colaborar, bajate la información +de la que disponemos y ayudanos a terminarla con +tus aportaciones. En el caso de los proyectos +finalizados puedes bajarte la documentación +completa, asi como el diseño del circuito +del mismo.
+ +
 De +los proyectos de las listas desplegables, los marcados con un asterisco +han sido desarrollados integramente por nosotros. En +los archivos correspondientes a los proyectos, encontrarás un archivo, +donde se detallan los nombre y e-mails, de los diseñadores y personas +que han colaborado aportando información al mismo.  +
+ +
 
+  + + + + + + + + + + + + + + + + +
 Ideas para proyectos futuros, incluyen documentaciones +iniciales, en espera de más información. Proyectos que actualmente se encuentran en +desarrollo, y nos una pizca de tiempo para finalizarlos, o testearlos completamente..  Documentación y Planos de circuitos +PC, ya finalizados y testeados 100%.  +
  +
 
+  +
+
+
Recuerda que casi todos los circuitos están conectados +al PC, y que antes de conectartlos debes estar muy seguro de +lo que has construido, que las soldaduras estén bien hechas y que +no exista ningún corto, por lo que cualquier daño +directo o indirecto causado por el circuito queda bajo tu responsabilidad.
+ +
+ +

  + + + + + + + + +
+
Proyectos Futuros
+
  + + + + + + +
+
 
+
+
Pantalla +gigante 
+ +
 
+ + + + + + + +
Tipo de conexión: +(no PC)   +
Lenguaje libs: (ninguno)   + +

¿Qué falta?:   +

    ¿Tu que crees?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: PantGigant.DOC +140Kb 

Descripcion:  + +

 Os acordais del JumboTron, o algo asi, +que habia en la Expo'92, pues bien esto es lo que es. El problema esta +en que los triodos de los que se compone la pantalla gigante, valen un +ojo de la cara, y si sabemos que necesitamos 624*400 ojos, creo que mejor +esperamos y nos conformamos con un video-proyector.

+  +
 
+
+  + + + + + + +
+
 
+
+
Osciloscopio +/ Freuencimetro 
+ +
 
+ + + + + + + +
Tipo de conexión: +SLOT   +
Lenguaje libs: C++   + +

¿Qué falta?:   +

    Información sobre un conversor Analógico +digital muy rápido, pero barato.   +
    Informacion sobre el bus PCI.  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: osciloscopio.DOC +7 Kb 

Descripcion:  + +

 Imagínate un osciloscopio controlado +totalmente por tu PC, esto reduce tal cantidad de costes, que te permitirá +tener el mejor de los osciloscopios a un precio realmente interesante. +Si a todo esto le añadimos las funciones de generador de señales +(circuito ya diseñado por nosotros), que te permite generar cualquier +señal imaginable, tu PC, se convertiria en una pieza imprescindible +de tu taller. 

+  +
  
+
+  + + + + + + +
+
 
+
+
Crakeador +de mochilas 
+ +
 
+ + + + + + + +
Tipo de conexión: LPT1   +
Lenguaje libs: C++   + +

¿Qué falta?:   +

    ¿?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: cmochila.DOC +XXXKb 

Descripcion:  + +

 Todos sabeis lo que es una mochila, de +protección, pues bien mediante este dispositivos podras ver si una +mochila es o no fiable. Analiza la comunicación PC-LPT1 y reproduce +el funcionamiento real mas tarde, via software...

+  +
  
+
+  + + + + + + +
+
 
+
+
Contestador +de ´llf, con SIMMS 
+ +
 
+ + + + + + + +
Tipo de conexión: (no +PC)   +
Lenguaje libs: (ninguno)   + +

¿Qué falta?:   +

    ¿?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: contestador.DOC +XXXKb 

Descripcion:  + +

 Seguro que habeis visto el contestador +de telefono, ese qeu funciona grabando los mensajes, en RAM, pues bien +e nuestro es exactamente igual, pero utilizando SIMMS de memoria PC, los +cuales son mucho mas baratos.  +
ej. En un simm de 8Mbs por 3.800ptas podeis +grabar hasta 30 minutos...

+  +
  
+
+  + + + + + + +
+
 
+
+
[NOMBRE] 
+ +
 
+ + + + + + + +
Tipo de conexión: ()   +
Lenguaje libs: ()   + +

¿Qué falta?:   +

    ¿?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: [nombre].DOC +XXXKb 

Descripcion:  + +

 En cursiva...

+  +
  
+
+  +
  +
 
+  +
+


+
  + + + + + + + + +
+
Proyectos Actuales
+
  + + + + + + +
+
 
+
+
Programador +de Eproms 
+ +
 
+ + + + + + + +
Tipo de conexión: Slot, +Lpt1   +
Lenguaje libs: C++, Visual Basic   + +

Ampliable: (NO)   +
Coste aprox.: ()   + +

¿Qué falta?:   +

    ¿?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: [nombre].RAR +XXXKb 

Descripcion:  + +

 Te permitirá programar cualquier +Eprom, desde tu ordenador, de una manera facil y rápida, prescindiendo +del costoso aparato utilizado hasta ahora.

+  +
  
+
+  + + + + + + +
+
 
+
+
Tarjeta adquisición +de Datos 
+ +
 
+ + + + + + + +
Tipo de conexión: Slot +/ Lpt   +
Lenguaje libs: C++, Visual Basic   + +

Ampliable: (Depende del tipo)   +
Coste aprox.: ()   + +

¿Qué falta?:   +

    Nada: ¡¡¡Montar el circuito +!!!  
+Autores:  InfoMundo  +
WebSite origen:   + +

N.Fichero / Tamaño: 8i8o-2.rar +50 Kb 

Descripcion:  + +

 Adquisición de datos, permitiendo +sacar datos hacia el exterior.

+  +
  
+
+  + + + + + + +
+
 
+
+
Streamer +en cintas de Video 
+ +
 
+ + + + + + + +
Tipo de conexión: ()   +
Lenguaje libs: ()   + +

Ampliable: ()   +
Coste aprox.: ()   + +

¿Qué falta?:   +

    ¿?  
+Autores:  InfoMundo  +
WebSite origen:   + +

N.Fichero / Tamaño: streamer.rar +8Kb 

Descripcion:  + +

 La idea de este proyecto es la siguiente, +no habéis llegado a pensar en guardar una información en +una cinta de vídeo, por ejemplo, ver un vídeo musical y que +la cinta contenga la información de juego de luces, efectos de sonido, +etc.....   +
   +
 Las utilidades de este equipo son infinitas, +solo se necesita imaginación.  + +

Pues mediante este proyecto se podrá +realizar esta función.  +
 

+  +
  
+
+  + + + + + + +
+
 
+
+
[NOMBRE] 
+ +
 
+ + + + + + + +
Tipo de conexión: ()   +
Lenguaje libs: ()   + +

Ampliable: ()   +
Coste aprox.: ()   + +

¿Qué falta?:   +

    ¿?  
+Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: [nombre].DOC +XXXKb 

Descripcion:  + +

 En cursiva...

+  +
  
+
+ +
+
  + + + + + + + + +
+
Proyectos Finalizados
+
+ + + + + + +
+
 
+
+
Corrector +cintas de Video VHS
+ +
 
+ + + + + + + +
Tipo de conexión: +(no PC)   +
Lenguaje libs: (ninguno)   + +

Ampliable: (no)   +
Coste aprox.: 1.500 Ptas.   + +

Autores:    InfoMundo  +
WebSite origen:   + +

N.Fichero / Tamaño: crackVHS.rar +10Kb 

Descripcion:  + +

 Todos sabemos que las últimas +peliculas que han ido saliendo, bienen con un pequeño defecto: ''no +podemos copiarla de video a video'', sin obtener unas molestas lineas en +medio de la pantalla.  +
 Bien, este circuito soluciona ese problema +eliminando esas moletas lineas...

+  +
  
+
+  + + + + + + +
+
 
+
+
[NOMBRE] 
+ +
 
+ + + + + + + +
Tipo de conexión: +()   +
Lenguaje libs: ()   + +

Ampliable: ()   +
Coste aprox.: ()   + +

Autores:   +
WebSite origen:   + +

N.Fichero / Tamaño: [nombre].DOC +XXXKb 

Descripcion:  + +

 En cursiva...

+  +
  
+
+  + + diff --git a/images/Electronica.jpg b/images/Electronica.jpg new file mode 100644 index 0000000..c88660d Binary files /dev/null and b/images/Electronica.jpg differ diff --git a/images/HARDWARE.JPG b/images/HARDWARE.JPG new file mode 100644 index 0000000..0cf0483 Binary files /dev/null and b/images/HARDWARE.JPG differ diff --git a/images/Image14.gif b/images/Image14.gif new file mode 100644 index 0000000..262b4a2 Binary files /dev/null and b/images/Image14.gif differ diff --git a/images/NAVEGAR.JPG b/images/NAVEGAR.JPG new file mode 100644 index 0000000..f530388 Binary files /dev/null and b/images/NAVEGAR.JPG differ diff --git a/images/Netscape.gif b/images/Netscape.gif new file mode 100644 index 0000000..2608bc0 Binary files /dev/null and b/images/Netscape.gif differ diff --git a/images/PROGRAM.JPG b/images/PROGRAM.JPG new file mode 100644 index 0000000..d541914 Binary files /dev/null and b/images/PROGRAM.JPG differ diff --git a/images/SOFTWARE.JPG b/images/SOFTWARE.JPG new file mode 100644 index 0000000..2f5da0a Binary files /dev/null and b/images/SOFTWARE.JPG differ diff --git a/images/VARIOS.JPG b/images/VARIOS.JPG new file mode 100644 index 0000000..e95cc8d Binary files /dev/null and b/images/VARIOS.JPG differ diff --git a/images/aniglobe.gif b/images/aniglobe.gif new file mode 100644 index 0000000..0e9ec23 Binary files /dev/null and b/images/aniglobe.gif differ diff --git a/images/back4.gif b/images/back4.gif new file mode 100644 index 0000000..a694ae1 Binary files /dev/null and b/images/back4.gif differ diff --git a/images/backcon.jpg b/images/backcon.jpg new file mode 100644 index 0000000..7a88d87 Binary files /dev/null and b/images/backcon.jpg differ diff --git a/images/barra001.gif b/images/barra001.gif new file mode 100644 index 0000000..db9db4e Binary files /dev/null and b/images/barra001.gif differ diff --git a/images/barra6.gif b/images/barra6.gif new file mode 100644 index 0000000..f4a89fe Binary files /dev/null and b/images/barra6.gif differ diff --git a/images/correo.gif b/images/correo.gif new file mode 100644 index 0000000..4c183f7 Binary files /dev/null and b/images/correo.gif differ diff --git a/images/disco.gif b/images/disco.gif new file mode 100644 index 0000000..549b490 Binary files /dev/null and b/images/disco.gif differ diff --git a/images/fondo053.gif b/images/fondo053.gif new file mode 100644 index 0000000..a3428ed Binary files /dev/null and b/images/fondo053.gif differ diff --git a/images/foto1.gif b/images/foto1.gif new file mode 100644 index 0000000..9a4b451 Binary files /dev/null and b/images/foto1.gif differ diff --git a/images/foto2.jpg b/images/foto2.jpg new file mode 100644 index 0000000..2f281e1 Binary files /dev/null and b/images/foto2.jpg differ diff --git a/images/fran.jpg b/images/fran.jpg new file mode 100644 index 0000000..885079d Binary files /dev/null and b/images/fran.jpg differ diff --git a/images/go.gif b/images/go.gif new file mode 100644 index 0000000..d03f0c1 Binary files /dev/null and b/images/go.gif differ diff --git a/images/infomundo.gif b/images/infomundo.gif new file mode 100644 index 0000000..0f9763b Binary files /dev/null and b/images/infomundo.gif differ diff --git a/images/jd.jpg b/images/jd.jpg new file mode 100644 index 0000000..a2d1ae1 Binary files /dev/null and b/images/jd.jpg differ diff --git a/images/joshua.jpg b/images/joshua.jpg new file mode 100644 index 0000000..be18711 Binary files /dev/null and b/images/joshua.jpg differ diff --git a/images/line3.gif b/images/line3.gif new file mode 100644 index 0000000..e5ff0d2 Binary files /dev/null and b/images/line3.gif differ diff --git a/images/noche.gif b/images/noche.gif new file mode 100644 index 0000000..97bcd07 Binary files /dev/null and b/images/noche.gif differ diff --git a/images/orbita.gif b/images/orbita.gif new file mode 100644 index 0000000..8636d7d Binary files /dev/null and b/images/orbita.gif differ diff --git a/images/punto001.gif b/images/punto001.gif new file mode 100644 index 0000000..5e7c65a Binary files /dev/null and b/images/punto001.gif differ diff --git a/index.htm b/index.htm new file mode 100644 index 0000000..980f68f --- /dev/null +++ b/index.htm @@ -0,0 +1,15 @@ + + + Club InfoMundo + + + + + + + + + + + + diff --git a/index.mid b/index.mid new file mode 100644 index 0000000..6f2b0b3 Binary files /dev/null and b/index.mid differ diff --git a/menu.htm b/menu.htm new file mode 100644 index 0000000..6590967 --- /dev/null +++ b/menu.htm @@ -0,0 +1,51 @@ + + + + + + Club InfoMundo + + +  +
+ + + + + + + + + + + +
+
Página principal de InfoMundo
+¿Qué +es InfoMundo?      + +

Ideas +y proyectos      + +

Preguntas +y respuestas     + +

Miscelanea      + +

Contactos      + +

Enlaces +Interesantes 

+
 
+ +
Bienvenido, visitante nº
+
+
Para cualquier sugerencia, critica o consulta, dirígete +a:
+ +
infomundo@arrakis.es +o al Apt. de correos 309 CP 41.500 (Sevilla)
+
+  + + diff --git a/miscelanea.htm b/miscelanea.htm new file mode 100644 index 0000000..599f68a --- /dev/null +++ b/miscelanea.htm @@ -0,0 +1,171 @@ + + + + + + Links + + +Miscelanea + +

 Aquí podéis +encontrar las últimas noticias sobre el mundo de la informática +y la electrónica. Una selección de cosas curiosas en la ReD, +y otras "cositas" que se nos vayan ocurriendo... +

 
+ +
[Noticias] [Curiosidades] +[Cositas]
+ +
 
+ +
+
+
+ +
+Noticias
+ +
+ Si tienes alguna noticia, interesante +que no esté aqui, mandanosla a: infomundo@arrakis.es.
+ +
+
+ +
+  (01/02/98) +Precios por los Suelos
+ +
+
+ +
+Según nuestras fuentes de información +(mayoristas y distribuidores) se prevee una gran bajada en los precios +de los ordenadores en el primer semestre de este año. Esto es debido +a que Intel a decidido jubilar sus procesadores Pentium MMX (ya los está +liquidando) para potenciar el Pentium II. Aunque no por mucho tiempo, ya +que este verano aparecerán nuevos procesadores basados en otras +arquitecturas junto con el sucesor del Pentium II (que será mas +o menos lo mismo pero más rápido y con soporte MMX).
+ +
+Por otra parte es previsible la desaparición +de muchos componentes actuales del PC.
+ +
+    -Implantación de la memoria +DIMM, desaparición definitiva de los SIMM de 72 contactos.
+ +
+    -Bajada de precios en las tarjetas +gráficas con puerto AGP, al ser mucho más rápidas +sustituirán pronto a las normales.
+ +
+    -Implantación de las configuraciones +ATX. Las nuevas placas sólo aparecerán para ATX (política +de INTEL).
+ +
+    -Aparición de todo tipo +de tarjetas PCI (sonido, modem, etc) como paso previo a la desaparición +del Bus ISA.
+ +
+    -Aumenteo radical de la velocidad +de los micros y las placas base con la aparición de nuevas placas +madre.
+ +
+
+ +
+Además hay que tener en cuenta que ni AMD +ni los demás competidores de INTEL se van a estar quietos y veremos +una gran guerra de precios que veneficiará a todos los usuarios.
+ +
+
+ +
+Si estás pensando en comprarte un ordenador +o ampliar el que tienes, debes esperar un poco. Al menos espera dos meses +para poder comprar por el mismo dinero un ordenador mejor.
+ +
+
+ +
+IBM news Septiembre 1997 + +

CHIPS DE TECNOLOGÍA 7S +
Revolución en la fabricación de +Circuitos integrados + +

IBM anuncia que, tras años de investigación, +ya puede fabricar C.I. en los que se sustituye el aluminio por el cobre. +
El aluminio (y otros metales en menor medida) +se emplea actualmente para conexionar las distintas partes internas del +"chip". +
Por otra parte el cobre que es mejor conductor +(menor resistencia) no se ha empleado hasta ahora en los procesos de fabricación +industriales debido a que, por sus características, tiende a contaminar +el silicio de los semiconductores a los que se una. +
Las conexiones internas son otro de los muchos +elementos que limitan la fabricación de los chips, impidiendo la +aplicación de otras mejoras. +
El oro, el platino y oros metales han demostrado +ser más idóneos para sustituir al aluminio, pero aún +no hay ninguna manera de fabricar industrialmente chips con esos metales. + +

Las principales mejoras del CMOS 7S: +
- Reducción a 0,2 micras del espesor de +los circuitos +
- Longitud de canal efectiva (zona de flujo de +electrones) de 0,12 micras, nueva marca industrial. +
- Bloque de construcción lógica +de hasta 12 millones de transistores, mayor capacidad funcional. +
- De 150 a 200 millones de transistores por pastilla. +
- Tensión de funcionamiento de 1,8 voltios. +
- Hasta 2000 puertos I/O, mayor conectividad. + +

Resumiendo, si IBM consigue imponer esta tecnología, +en un futuro próximo tendremos nuevos C.I (microprocesadores sobre +todo) más pequeños, más rápidos y sobre todo +con consumo de potencia (calentamiento) menor. +
  + +

+Elecronics News Septiembre 97 + +

 Nueva tecnología Electrónica: +Semiconductores basados en el Zafiro. + +

Distintos semiconductores basados en Zafiro (Al2 +O3) fuertemente dopado han demostrado ser una buena alternativa a los basados +en el silicio. Se empezó a experimentar con el zafiro para unir +tecnología óptica con electrónica convencional, sin +embargo pronto se han dado cuenta de las posibilidades del zafiro, el cual +soporta altísimas temperaturas con un bajo consumo. +
Varias empresas están compitiendo actualmente +en conseguir un método de fabricación industrial de chips +basados en el zafiro. +
Microchips con zafiro, esto podría ser +otra revolución en la electrónica. +
  +
  +
  +
  +
  +

+Cositas
+ +
+ Por lo pronto tenemos a nuestro +güevero, recorriendose la GÜEB, asi que si tu encuentras algo +antes que él, ya sabes: infomundo@arrakis.es.
+ + + diff --git a/noticias viejas.txt b/noticias viejas.txt new file mode 100644 index 0000000..4b871e2 --- /dev/null +++ b/noticias viejas.txt @@ -0,0 +1,30 @@ + + +20-Oct-1997 + En InfoMundo corren rumores, sobre el proyecto que tienen varios miembros de + montar su propia "empresa de hard y soft". De momento tenemos que hacer + muuuchos números, pero no os despisteis, puede que dentro de poco tengamos + nuestra propia tienda de Informática. + + +12-Sept-1997 + Como podreis ver, nuestro site tiene un nuevo look, en realidad es que ahora se + puede considerar que esta terminado. + Esperamos que el nuevo formato de página sea de vuestro agrado y os facilite la + navegacion por nuestro site. + + +20-Oct-1997 + En InfoMundo corren rumores, sobre el proyecto que tienen varios miembros de + montar su propia "empresa de hard y soft". De momento tenemos que hacer + muuuchos números, pero no os despisteis, puede que dentro de poco tengamos + nuestra propia tienda de Informática. + + +12-Sept-1997 + Como podreis ver, nuestro site tiene un nuevo look, en realidad es que ahora se + puede considerar que esta terminado. + Esperamos que el nuevo formato de página sea de vuestro agrado y os facilite la + navegacion por nuestro site. + + \ No newline at end of file diff --git a/nuevo_contacto.htm b/nuevo_contacto.htm new file mode 100644 index 0000000..02c0290 --- /dev/null +++ b/nuevo_contacto.htm @@ -0,0 +1,141 @@ + + + + + + Club InfoMundo + + +Nuevo  +=>  +Contacto +
  + + + + + + +
+
Los datos
+ +
que nos proporciones +serán
+ +
usados, para dejar constancia
+ +
de  tus   aportaciones  +en   el
+ +
"GuestBook", no obligan ni
+ +
comprometen a nada.
+ +
 
+ +
Las aportaciones a InfoMundo
+ +
son    exclusivamente    +de
+ +
tipo     intelectual,   +aunque
+ +
si  alguien +quiere donarnos
+ +
cien o +doscientos millones,
+ +
le  pondremos  +el  primero
+ +
en   +el  guestbook,  ademas
+ +
de un fuerte +saludo de todo
+ +
InfoMundo. Fuera bromas,
+ +
estos  +datos solo benefician
+ +
a los +visitantes de este +Site,
+ +
ya  que +contaremos  con la
+ +
suficiente  +gente como para
+ +
responder casi cualquier pregunta...
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Nombre:
Nick:
Aportaciones:
Deseas recibir FAQs:Si,  +No
WebSite:
E-Mail:
+
<=>
+ +
+
<=> 
+ +
+
¿Deseas saber cuando se actualizan las  páginas +de InfoMundo?
+
Si,  +No
+ +
>>====<<
+
+  + + diff --git a/preguntas_y_respuestas.htm b/preguntas_y_respuestas.htm new file mode 100644 index 0000000..43cb1ac --- /dev/null +++ b/preguntas_y_respuestas.htm @@ -0,0 +1,248 @@ + + + + + Club InfoMundo + + + +Preguntas +y Respuestas + +

+


+
Esta sección intenta +responder vuestras preguntas. Que siga estando activa, depende de vuestra +participación.
+ +
¡¡¡ Cada +pregunta, YA RESPODIDA, tendra una vida en esta sección de uno a +dos meses, dependiendo de la misma, y avalancha de preguntas/respuestas +que aporteis !!!
+ +
(Electrónica, +Hardware, Navegar, Programación, +Software, Varios)
+ +
+
+  + + + + + + +
P:)  +Estoy interesado en el tema de las targetas CHIP (Telefónicas y +similares)  +
      +¿Hay alguna forma de recargar una tarjeta de telefono gastada?  + +

R:) +NO! no hay forma alguna de restituir la información de una targeta +usada. Si estás +interesado en defraudar a Telefónica lo que debes hacer es crear +un circuito que emule todas las funciones de la targeta original y engañe +a la cabina. Dentro de +poco dedicaremos una amplia sección a las targetas CHIP. + +

R2:) +........hay un artículo con amplia información sobre estas +tarjetas en la dirección: http://www.gui.uva.es/login/15/tarjtelf.html +( +

Respuesta de Ramón.r
+ 
+  + + + + + + +
P:) +......¿Hay +algún programa de software para poder hablar por teléfono +desde el ordenador a través de la tarjeta de sonido, es decir, hablar +mediante el micrófono y escuchar la llamada por los altavoces? +
R:) +Hay un programa llamando Rockwell que +aparte de lo que quieres te permite usar tu modem como contestador automático +y otras cosas muy interesantes. Este es el que nosotros conocemos pero +seguro que hay muchos mas. +
El programa Rockwell puedes encontrarlo +en la web de DIAMOND.
+  + + + + + + +
P:) +Mientras estoy conectado +a internet, si me llama alguien en ese momento mi ordenador corta la comunicación +(cuelga) y me saca de internet simplemente diciendo que mi conexión +ha terminado. Consulté con mi proveedor y me dijo que debía +desactivar el servicio de llamada en espera. Lo he hecho y sigue fallando. +¿Qué puede pasar ?, ¿está mi modem estropeado?.   + +

R:) +No parece que halla ningún problema, +pues sólo se te corta cuando alguien te llama mientras estás +conectado. Asegúrate de que realmente has desactivado el servicio +de "llamada en espera" llamando al 004 (línea de atención +personal gratis). De todas formas parece que el problema está en +el "servicio contestador" gratuito de telefónica, seguro que lo +tienes activado. El "servicio de contestador" lleva unido automáticamente +el de "llamada en espera". Pero como éste servicio sí es +de pago, no te lo habilitan del todo. Sin embargo cuando estás comunicando +y te llaman, suena un " pitido" en la linea que es interpretado por el +modem como un final de conexión.   +
La mayoría de los modems +modernos pueden configurarse para ignorar este "pitido", consulta tu manual. +Para inhabilitar el "Servicio contestador" directamente, descuelga el teléfono +y cuando escuches tono marca # 10 # y cuelga. Para habilitarlo de nuevo +lo mismo pero con * 10 #.   +
   + +

P:) +Cada vez que empiezo a navegar me pierdo y amenudo desperdicio el tiempo.   +
¿ Dónde y cómo +puedo localizar sites piratas de forma rápida ? ¿ Y documentos +C/H/P ?  + +

R:) +Bien, el tipo de sitios a los que te refieres +estan en constante movimiento y cambio, para evitar a ciertas personas. +De todas formas para estar enterado de lo último en la red, prueba +a visitar las news y buscar allí sobres hack, crack,... A menudo +en los ftp's, se instalan robots que te permiten recibir mediante el tecleo +de un password, (que te proporciona el robots), una lista de FTP's warez, +de donde bajarte software pirata.   +
 Para eliminar todas estas +complicaciones, visita nuestra página de enlaces, o prueba el ftpsearch!  + +

P:) +¿ Existe alguna forma de acelerar la carga de Netscape ?  + +

R:) +Sí, esto se logra evitando la carga +de plugins, hasta que realmente sean necesarios, dejando tambien una sustancial +cantidad de memoria. Solo hay que editar el registro de configuraciones +de W95, y buscar la clave /hER_ewr3_7/432 edv8(8Nest.6-6-3cape -tghs-..fconfds-34ig2%% +y modificar el valor de esta a 0x00FA.  +
 

+  + + + + + + +
P:) +Estoy aprendiendo a programar C++, bajo W95, ¿Qué libros +me recomendais, que  sean de nivel medio-avanzado ?  + +

R:) Hay +una coleccion de libros( 3 en total) de Frco. Javier Ceballos que empiezan +desde 0 en esto del lenguaje C y acaba programando en nivel avanzado en +Visual C++ en el 3er. libro de la coleccion. La editorial es ra-ma.  +

Respuesta del visitante +Carlos.
+
+  + + + + + + +
P:) +¿ Cómo reiniciar W95 rápidamente ?  + +

R:) +Cuando aparezca el diaglogo "Salir windows", +(apagar el sistema) manten pulsado SHIFT (izquierdo) al mismo tiempo que +presionas ACEPTAR para reiniciar el equipo.  + +

P:) +¿ Cómo puedo liberar mas espacio +de disco duro ?  + +

R:)   +

    {a} Busca y elimina los siguientes +archivos, pues son solo copias de que genera el sistema automáticamente: +*.b?k, *.old, *.tmp, *.gid, *.??~, *.$$$, *.fts, *.00? con este último +ten especial cuidado de no eliminar los archivos drvspace.00? si es que +tienes el disco duro comprimido.  +
    {b} Procura no tener una gran cantidad +de pequeños archivos, ya que si tu disco duro es mayor de 800Mb, +cada uno de eso archivos consumirá bloques de 32 Kbytes.  +
    {c} ¿ Haz probado a comprimir +parte de tu disco duro ? "unos 150 Mb", para los juegos, se te doblaran +en 300 Mb incluso más. Una vez comprimido pasele el HIGH PACK y +flipa....
+
+  + + + + + + +
(ninguna +consulta, aún)
+  + + diff --git a/que_es_infomundo.htm b/que_es_infomundo.htm new file mode 100644 index 0000000..1591e30 --- /dev/null +++ b/que_es_infomundo.htm @@ -0,0 +1,76 @@ + + + + + + Club InfoMundo + + +  +
+ + + + + + + + + + + +
+
 
+
+
+
¿ +Que es InfoMundo ?
InfoMundo, +es una pequeña asociación Juvenil creada por unos cybernautas, +los cuales se dedican entre otras cosas al mundo de la Informática +y la Electrónica, entre sus mayores aficiones.   + +

 La base principal de InfoMundo es:  + +

Mantener informado a todos los cybernautas +de novedades tanto en el campo de la informática como de la electrónica.  + +

Poder facilitarte las mejores direcciones para +que tu navegar diario por Internet te sea más fácil.  + +

Llevarte a los mejores lugares en los que encontrar +esa información que no sabes por donde puede andar.  + +

Mantenerte informado de nuestros pequeños +y ambicioso proyectos, entre los cuales tus pequeñas aportaciones +siempre serán bien tenidas en cuenta.  + +

Poder facilitarte trucos y soluciones a esos +programas que todos sabemos que a la hora de fastidiar sólo ellos +lo saben hacer.  + +

Queremos que nos expongas tus quejas y problemas +para poder entre todos ayudarnos entre sí.  + +

En definitiva, InfoMundo queremos que sea un +lugar de contacto, en el que las personas que deseen conectar a nuestra +pagina, tengan un lugar de referencia, a la hora de partir por estos caminos +del cyberespacio.

+  +
+ + + +
+
+ +
(Pica +aquí para conocernos algo mejor).
+ +
+
+ + + diff --git a/select.htm b/select.htm new file mode 100644 index 0000000..f54f00f --- /dev/null +++ b/select.htm @@ -0,0 +1,41 @@ + + +Lista de seleccion + + + + + +
+ +

Ejemplo de una lista de selección sin botón de submit

+

Sólo hay que seleccionar un valor y se ejecuta la instrucción al hacer clik

+
+
+ + +
+
+
+
+

+[Volver] +

+
+ + + diff --git a/sites.htm b/sites.htm new file mode 100644 index 0000000..5e64d95 --- /dev/null +++ b/sites.htm @@ -0,0 +1,15 @@ + + + JD Soft. + + + + + + + + + + + + diff --git a/sites_links.htm b/sites_links.htm new file mode 100644 index 0000000..33e2023 --- /dev/null +++ b/sites_links.htm @@ -0,0 +1,642 @@ + + + + + + Links + + + Página +de +Enlaces +
  +
No te olvides de que en el +frame de arriba, tienes una lista desplegable ordenada por temas y subtemas +para posicionarte en cualquier punto rápidamente: elige el tópico +y presiona GO!.
+ +
(Ya vez el tipo de enlaces +que buscamos, asi que no vaciles en mandarnos los que creas que son del +tipo que aqui exponemos, para que los demas disfrutemos de ellos).
+ +
Gracias. InfoMundo +1997 (c)
+  + + + + +
+
+

+Informática

+
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Fuentes C, ASM, Visual Basic
+
    +
  • +ftp://x2ftp.oulu.fi/pub
  • + +
    Este ftp, esta super-cargado de fuentes para todos los lenguajes. Incluso +existen fuentes pertenecientes a demos de musica, de grupos como Hisapnia +o Iguana.  +
  • +Web CODING (Desarrollo +de Soft)
  • + +
    Es una página personal, pero contiene algunos enlaces bastante +curiosos.  +
  • +Finlandia (Programacion +juegos)
  • + +
    Entre otros puedes encontrar librerias de desarrollo de juegos tipo +DooM. (Merece la pena visitarlo)  +
     
+
+ +
Doctoriales, Manuales...
+
    +
  • +teeri.oulu.fi
  • + +
    /pub/msdos/programming/gpe  +
    El segundo link, es "The Games Programmers Encyclopedia", si ya la +conoceis no me podeis negar que es una exelente recopilación de +doctoriales para la creación de un video juego. De todas formas +visitad el primer link, podeis encontrar mas doctoriales.
+  +
     
+
+
    +
  • +ftp://no-me-acuerdo/pub/programming
  • + +
    Exelentes manuales para aprender como funciona un GIF
+
Actualizaciones
+
    +
  • +BIOS UpDate
  • + +
    Es algo a lo que le echamos tampoca cuenta que nos olvidamos que esta +hay. Aqui encontraras una enorme listas de Bios, encuentra la tuya y consigue +la ultima versión. (Solo Flash Bios)
+
Noticias
+  + + + + +
+
+

+Electrónica

+
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Información sobre +componentes
+
    +
  • +---
  • + +
    Este ftp, es  +
     
+
+
    +
  • +---
  • + +
    La verd
+
Pequeños circuitos
+ +  +
     
+
+
    +
  • +---
  • + +
    ExeF
+
Circuitos para PC
+ +
Información
Noticias
Compañias
+
    +
  • +Elektro 3000 
  • + +
    Aqui podras encontrar cualquier material eléctrico.  +
  • +OrCad
  • + +
    Página oficial del programa de diseño electrónico +OrCad. Desde aqui podras obtener las demos de las últimas versiónes, +librerias e infomarción sobre este estupendo programa.  +
  • +Chips Shots: Los circuitos +integrados bajo el microscopio
  • + +
    Impresionantes imágenes de micochips, y otras cosas interesantes +ampliadas miles de veces.  +
  • +Domótica
  • + +
    Empresa dedicada a sistemas domóticos de edificios.  +
  • +Tektronix
  • + +
    Equipos de instrumentación y altas tecnologías.  +
  • +National Instruments
  • + +
    Equipos de control para la industria.  +
  • +Siemens
  • + +
    Desde material electrico, hasta electrónica de alto nivel.
+
+  + +

  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Camaras en directo  +
 
.
..
Padfdsg sfdg sdfñkljg fdñjg fdgsdfg.
sdfgsdfgsfdgfdgsfdgsdfgsdf.
gsdfgsfdgsfdgsfdgsfdg.
sfdgsfdgsfdgsfdg.
sfdgsdfgsfdg.
fdsgfdgsd.
sdfgsfdg.
+

+Audio y Video

+ +
+Paginas con links de Audio o Video 
+ +
Miradores, camaras electronicas y cosas asi...   +
+
+ECN +WWW Server 
+ +
Welcome +to RealAudio ! 
+
.
.
+  +
  + + + + +
+
+

+Varios

+
+  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Lo mas Hot
+
    +
  • +---
  • + +
    Este ftp, es  +
     
+
+
    +
  • +---
  • + +
    La verd
+
Mundos 3D
+
    +
  • +wl
  • + +
    U.
+  +
     
+
+
    +
  • +---
  • + +
    ExeF
+
Bancos y Cajas
+
    +
  • +BBV net
  • + +
    Información las 24h, sobre sus cuentas bancarias, tarjetas, +fondos de inversión y de pensiones, préstamos, etc. +
  • +Santander
  • + +
    Podrás tener acceso a todos los servicios del banco desde tu +casa, con un solo click de ratón.
+
+
    +
  • +OpenBank
  • + +
    Con Open Vía tendrá el banco en su propia casa sin colas +ni retrasos inoportunos. +
  • +Otros
  • +
+
Noticias
Compañias
+
    +
  • +Elektro 3000 
  • + +
    Aqui podras encontrar cualquier material eléctrico.  +
    l.
+
+  +
  +
  + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Buscadores  +
 
.
Padfdsg sfdg sdfñkljg fdñjg fdgsdfg
sdfgsdfgsfdgfdgsfdgsdfgsdf
gsdfgsfdgsfdgsfdgsfdg
sfdgsfdgsfdgsfdg
sfdgsdfgsfdg
fdsgfdgsd
sdfgsfdg
+ +

+ + + diff --git a/sites_temas.htm b/sites_temas.htm new file mode 100644 index 0000000..f83946c --- /dev/null +++ b/sites_temas.htm @@ -0,0 +1,55 @@ + + + + + + Temas para navegar + + + + + + +
+ + + Escoge el tema deseado y presiona Go! +
+ +