# Computadora casera con procesador 8088 (no PC)



## antiworldx (Feb 3, 2010)

Este es un proyectito que hice, en su momento lo realice para tener mayor capacidad de proceso que los microcontroladores comerciales de bajo costo. No es practico pero es interesante saber como opera exactamente un sistema y como se direccionan los puertos y memoria. Ni hablar de la programacion del software.

Esta es una descripcion corta:

Microprocesador 8088 @ 5Mhz
Memoria 256 Kb SRAM y 96 Kb EPROM(UV)
6 puertos paralelos de 8 bits cada uno
Programable desde PC mediante un puerto paralelo 
Interrupciones y servicios de software cargadas en EPROM







La programacion la realizo en un software llamado emu8086 en codigo ensamblador, para hacer la compilacion y generar los archivos binarios. Posteriormente realice otro programa en C para mandar el archivo binario por el puerto paralelo de la PC, con un protocolo que diseñe para ello. La computadora, cuando arranca, esta en modo espera por uno de sus puertos PPI para descargar el software en RAM. Una vea terminada la descarga, ejecuta la aplicacion descargada.
En los chips de memoria EPROM tengo servicios que se llaman por interrupciones de software para programar los puertos PPI y control de pantalla 2x16, y algunas rutinas de sumas y multiplicaciones de 32 y 64 bits.

Aqui les dejo un video donde se ejecuta un relojito simple y controlo unas lucesitas. La resolucion no es muy buena, pero se ve el proceso de carga del software, y hay un error en la transferencia y tengo que reiniciar la carga. Una vez terminado el programa arranca. Hay dos juegos de luces, ocho abajo que van y vienen, y otras mas arriba que parpadean. Las de abajo, son controladas por software, y el programa hace que vallan y vengan con corrimientos. Las de arriba son indicadores de los segmentos que estan en uso. Me sirven para saber en que parte de la memoria esta operando el programa.






Espero que les sea de interes.


----------



## electroandres (Feb 3, 2010)

que genial!!! realmente muy bueno.
Tenes el circuito por ahi, solo para hecharle una mirada jeje 
Que llegaste a hacer con ella? para que la usaste?


----------



## electrodan (Feb 3, 2010)

Pensaste en ponerle un monitor (terminal) y un teclado?


----------



## antiworldx (Feb 3, 2010)

Realmente nunca lo aplique a algo concreto. Todo empezo con el cachondeo de saber como opera un microprocesador con sus perifericos. Posteriormente, al ir dominando, fui creciendolo, y haciendo programas mas complejos, como relojes, sensados, calculos matematicos de 64 y 128 bits.
Hasta el momento, lo tengo guardado, pero lo tengo proyectado para usarlo como un sistema de proceso pesado, como transformadas de fourier o laplace, ya que puedo direccionar 1MByte de ram/rom y 64mil perifericos. y que opere en un sistema distribuido de circuitos embebidos como son DSP o AVR que son mas pequeños pero con proceso mas inmediato. Es decir, usarlo como una unidad de proceso pesado, sin usar una pc con el bromoso monitor y el latoso sistema operativo y las rutinas "extrañas" de las bios de los motherboard.
Los diagramas los saque del datasheet del intel 8088. El datasheet esta muybien explicado.


----------



## electroandres (Feb 3, 2010)

y una pregunta sumamente importante, cuanto gastaste¿?


----------



## antiworldx (Feb 3, 2010)

Pues en su mayoria, lo saque de basura... lo que tuve que gastar, fueron los protoboards, y las memorias sram. las memorias eprom UV fueron de bios de diferentes motherboards, simplemente los expuse a la lampara UV y los reprograme con mi codigo, en un programador de la universidad.
Y el cable. Pero ese lo compre para todo lo que hago en protoboards, asi que se amortiza.
Ho si, y los demuxers, que son de 4 a 16, esos fueron los mas dificiles de encontrar y los mas caros, junto con los latches 74ls573 que los tuve que  mandar pedir, pues los 373 eran mas dificiles de cablear por su disposicion de las salidas.
En total, en dolares para que lo conviertas a tu moneda, fueron... como 50 dolares.


----------



## electroandres (Feb 3, 2010)

a, pense que mucho mas...  realmente, sos un groso viejo!!
yo todabia no entiendo como hiciste ese cableado jajaj... es re zarpado!!!! 
De donde sacaste las ganas para hacerlo!! 
impresionante, te felicito


----------



## antiworldx (Feb 3, 2010)

Todo empezo cuando tenia 8 años y mi papa compro una PC printaform y me hice la pregunta... ¿como demonios funciona?. La maldita curiosidad es poderosa.

Gracias por el reconocimiento. Una vez que le entiendes, es mas dificil cablear que entenderlo.


----------



## fernandoae (Feb 3, 2010)

Y yo que pensé que estaba bajando en picada el nivel del foro con lo que han escrito los ultimos usuarios registrados... Felicitaciones por tu invento y bienvenido al foro  
Subí algo más de info, es interesante, se parece a una que vi en un video de You Tube que trabajaba con relés


----------



## maverick_007 (Feb 8, 2010)

hola, es muy interesante tu proyecto yo tenia pensado hacer algo parecido pero con el z80 y me encontre con un obstaculo cargar el programa a la eprom necesitaba un programador asique me lo puse a diseñar pero no lo e terminado pero en este verano espero avanzar saludos.


----------



## antiworldx (Feb 8, 2010)

Yo utilice el de la universidad. Tambien se puede usar una flash, pero las que encontre son seriales y yo requeria paralelas para simplificar el hardware.
De hecho, buscando en internet encontre proyectos, y todos basados en el Z80, pero de intel nada, y motorola menos, aunque personalmente no me gusta la logica de motorola, pero en idea es lo mismo. Conoces a uno, y conoces a todos. Todos hacen lo mismo pero la instruccion se llama diferente.


----------



## morris888 (Feb 8, 2010)

Hola, y no tiene el diagrama electronico del sistema completo?


----------



## antiworldx (Feb 8, 2010)

No, fijate que quise hacerlo, para meterlo en impresos y que fuera modular, pero esta grandisisimo y no poseo la tecnologia para hacer un impreso de calidad suficiente. Asi que abandone la idea. Pero como comente anteriormente, en el datasheet del procesador viene bien detallado el conexionado, y si alguien quiere expeerimentar con un procesador, igualmente recuerdo bien los pormenores del conexionado.
Por cierto, todo el circuito funciona con exclusivamente 5 voltios, nada de voltajes adicionales y mucho menos voltajes negativos.


----------



## DOSMETROS (Feb 9, 2010)

Grandioso !

Si no me equivoco los PC (PLC) son 80186

Y las naves de la nasa usan mayormente 80386 , actualmente.


----------



## morris888 (Feb 9, 2010)

Ok, lo entiendo perfectamente se ve que el circuito es muy grande y es complicado hacer un esquematico.

Una pequeña pregunta, para cargarle un programa necesariamente debe sacar la ROM del circuito o el programador le permite programarlo sin necesidad de sacarlo del protoboard?


----------



## antiworldx (Feb 9, 2010)

en la rom de inicio, precisamente inicia inmediatamente un programa que escucha uno de los puertos.
Cuando envio el programa, por un protocolo que hice precisamente, por medio del puerto paralelo, lo empieza a descargar en la ram... una vez finalizada la descarga, arranca el programa recien descargado...
De hecho en el video se ve una ventana con una barra de progreso, haciendo la descarga...


----------



## seaarg (May 18, 2010)

Impresionante, mis mas sinceras felicitaciones.

Hay (o hubo) un satelite argentino dando vueltas que funciona con un 80186 grado militar.

Esos micros no estan muertos! jeje Con ingenio seguro que se le puede dar una buena utilidad a esta base.


----------



## Catriel (May 18, 2010)

Muy bueno y bien rebuscado, te felicito hay q sacar las ganas para hacer ese cavleado..


----------



## Moyano Jonathan (May 18, 2010)

La verdad exelente me dieron ganas de armarme uno


----------



## antiworldx (May 18, 2010)

Gracias a todos por sus comentarios!


----------



## cosmefulanito04 (May 18, 2010)

Esta muy zarpado, como te quedo, es un mother casero  .

Yo vi un poco de teoria del 8088 y no es para nada facil el hard que le tenes que poner ahi, ademas manejar las direcciones de memorias con los latch era medio complejo.


----------



## antiworldx (May 18, 2010)

A mi me costo mas trabajo no hacerme bolas con tanta señal de direcciones y datos, que entender el funcionamiento. Será porque el profe que tuve en la materia de circuitos logicos era un profe de verdad... 
Aunque una vez que se entiende como funciona un sistema como este, los microcontroladores son cosa facil
Salu2!


----------



## Chico3001 (May 19, 2010)

Mira... tiene el cable que necesito... que pasaria si le quito un alambrito??


----------



## antiworldx (May 19, 2010)

hmmm, tendria que perder unas 4 horas de vida tratando de saber donde iba...

Cuando recien la arme, hice pruebas y no funcionaba (como es logico).
Tuve que ir a la escuela a pedir un osciloscopio, y me lleve toda la mañana en encontrar el problema, ya que analicé señal por señal de cada chip para ver que todo estuviera en orden... y el problema fue un cable invertido del bus de direcciones.


----------



## eidtech (May 19, 2010)

antiworldx dijo:


> hmmm, tendria que perder unas 4 horas de vida tratando de saber donde iba...
> 
> Cuando recien la arme, hice pruebas y no funcionaba (como es logico).
> Tuve que ir a la escuela a pedir un osciloscopio, y me lleve toda la mañana en encontrar el problema, ya que analicé señal por señal de cada chip para ver que todo estuviera en orden... y el problema fue un cable invertido del bus de direcciones.



Toda una mañana para encontrar un problema en un proyecto así realmente es poco tiempo, 

felicidades.. quedo muy bien!


----------



## Moyano Jonathan (May 20, 2010)

A veces un solo cablecito puede traer grandes problemas y demoras con los proyectos


----------



## mati89 (May 21, 2010)

La verdad AntiWorld sos un Hacker y de los buenos te felicito por tu dedicacion no es un proyecto facil que digamos


----------



## alan123 (Ene 9, 2011)

antiworldx dijo:


> Gracias a todos por sus comentarios!



Antiworldx me podrias pasar informacion acerca de como hacer las  conexiones entre procesador, ram y los demas componentes porfavor me urge 







 y por cierto fue una muy buena aportacion. 
Gracias


----------



## antiworldx (Ene 9, 2011)

Alan... creo que no leiste las normas del foro. No es bien visto y no es permitido que incites a intercambiar informacion por correo electrónico. Es un foro y el conocimiento se transmite abiertamente.

A reserva que el moderador te edite tu direccion correo, o mejor, tu mismo lo borres para evitar molestias, con gusto te respondo, que esa informacion la encuentras en el datasheet del procesador 8088. Tuve que estudiar a fondo ese datasheet, está muy completo y explica las diferentes formas de conectar el microprocesador y sus periféricos.


----------



## alan123 (Ene 9, 2011)

Me podrias decir cual ram o sram utilizaste es que estoy confundido en las compativilidades y lo que no se es que rams tengo que utilizar. Creo que tengo que utilizar una de 8 bits ya que de eso es el procesador 8088 corrigeme Si me equivoco porfavor.


----------



## antiworldx (Ene 9, 2011)

si... asi es, requieres memorias de 8 bits. Te recomiendo que uses SRAM, son las mas faciles de usar, pues las DRAM necesitan circuiteria de apoyo para el refresco.
las SRAM que use son las PDM41256, y para las rom utilize simples UV.


----------



## alan123 (Ene 9, 2011)

antiworldx dijo:


> si... asi es, requieres memorias de 8 bits. Te recomiendo que uses SRAM, son las mas faciles de usar, pues las DRAM necesitan circuiteria de apoyo para el refresco.
> las SRAM que use son las PDM41256, y para las rom utilize simples UV.



Muchisimas Gracias me estas ayudando muchisimo en el proyecto


----------



## antiworldx (Ene 9, 2011)

De nada... por algo es un foro.


----------



## solaris8 (Ene 9, 2011)

exelente proyecto....:buenpost:


----------



## alan123 (Feb 2, 2011)

antiworlx te quiero hacer una pregunta hacerca de como pudiste sacar las salidas de puerto paralelo.... ¿lo hiciste con las salidas que dan en el datasheet? y como controlas entrada y salida de datos... ¿Por el emu8086?


----------



## antiworldx (Feb 2, 2011)

Bueno... Utilicé dos integrados D8255 como interface, tienen tres puertos paralelos cada integrado. Estos integrados son programables, para que operen como entrada, como salida, mixtos, y otros detalles que no recuerdo. Se direccionan como una localidad de memoria, y una de esas localidades es para comunicarse con el integrado, al cual le das la configuracion a trabajar. El emu8086 me sirve para simular el puro microprocesador y generar los .bin descargables a ram, pero no para simular el resto del sistema, ya que lo opere bajo mi diseño, y no respete el standard PC de direcciones. Así que, debo de fijarme que el microcontrolador escriba los datos en la direccion de memoria que le estoy indicando, y despues confiar que el integrado reciba dichos datos. Para ello, debes hacer tu lista de direcciones si no quieres confundirte.


----------



## gzaloprgm (Feb 2, 2011)

Felicitaciones!

La decodificación de las direcciones las podrías haber hecho con GALs/PALs/CPLDs, eso te habría eliminado algunos integrados y facilitado el armado...

Un saludo,
Gonzalo


----------



## antiworldx (Feb 2, 2011)

En costos, si se hubiera inflado, preferi cambiar conexiones y usar compuertas, en vez de usar cpld, o  una spartan. De por si las memorias sram y el cable fue una buena inversion. 
Así me quito la tentacion de desarmarlo para usar la cpld en otro proyecto.


----------



## gzaloprgm (Feb 2, 2011)

Que raro, se me ocurría que seguro saldría más barato con una GAL...

Yo tengo casi todos los componentes para hacer lo mismo, pero con un micro Z80... 

Lo que me falta es tiempo...


----------



## aguevara (Feb 3, 2011)

Excelente trabajo, me hizo recordar a mi viejo sistema basado en un Z80, tenia 2 PPI 8255 una 2716 eprom y una 6116 ram, tiempo despues de armarlo me llego un libro llamado "construya su propia computadora con Z80" del autor Steve Sciarcia, excelente libro de ahi obtuve info para agregar el monitor y una grabadora de casete para guardar los programas... ufff que tiempos señor don simon...

Por cierto para guardar los programas (al inicio) los escribia en una libreta y posteriormente los transferia manualmente a la eprom, para ello construi este circuito.

https://www.forosdeelectronica.com/f25/programado-manual-eprom-23181

saludos


----------



## Rage10 (Feb 3, 2011)

Sinceramente está genial, muchas felicitaciones por ese gran proyecto!

Gastón


----------



## fernandoae (Feb 3, 2011)

Podrías subir el libro... me interesa, tengo mas de 20 Z80


----------



## gzaloprgm (Feb 3, 2011)

Mirá este sitio, tiene cosas bastante interesantes respecto del z80...

http://www.gaby.de/z80/

Este también está bueno, pero no da los esquemáticos  http://www.benryves.com/projects/z80computer

Un saludo,
Gonzalo


----------



## fernandoae (Feb 3, 2011)

Se agradece el aporte


----------



## aguevara (Feb 3, 2011)

Acerca de subir el libro, solo dudo que las normas del foro me lo permitan (acerca de los derechos de autor) pero pongo a consideración de los moderadores lo siguiente a manera de justificación.
Dicho libro ya es muy viejo y aporta temas que podrían ser llamados "obsoletos" por aquello que la tecnología es muy cambiante, y su uso aportara únicamente conocimiento didáctico y no meramente de comercio.
En fin si esto se autoriza pues lo subo al post..
Saludos a todos


----------



## fernandoae (Feb 3, 2011)

No te hagas drama que lo encontré en Scribd


----------



## antiworldx (Feb 4, 2011)

Realmente este proyecto es totalmente didáctico, ya que cualquier AVR o procesador de teconología RISC es mas potente, y ni hablar que un DSP es mucho mas poderoso, amplio, y útil, que estos mega tostadores (incluyendo el mio). La única ventaja que ofrece, es que puede direccionar y/o tener, un mega de memoria en su mezcla de ram/rom. Pocas aplicaciones empotradas exigen tanto...


----------



## pandacba (Feb 10, 2011)

Cualquie otro chip que pueda corres a velocidad cercana a un pentiun o un amd de tecnologia risk seria superior, pero de momento los microcontroladores actuales distan mucho de eso porque ese no es su fin, si tomo el micro de un PC actual y hago otra cosa como control industrial seria sinceramente descomunal, no olvidarse que si bien estos estan optimizados en ciertos aspectos para funcionar en un PC en si mismo solo son un micro procesador(no olvidar que los pic y avr son microcontroladores que no es lo mismo) Lo que lo comvierte en un PC es la bios, sin ella no existe el PC

De echo podria utilizar el micro de cualquier PC actual y crear mi propia arquitectura haciendo mi propia bios de acuerdo a mis propios lineamientos


En esta página encontraran mucha info para quienes quieran hacer algo po si mimsos incluido lo que plantearon en este hilo y bien completo
http://www.homebrewcpu.com/
Con posibilidad de contarse con el autor, recorran todo el sitio no tiene desperdicios y si le intresa más, avisenme debo tener más info de más sitios semejantes

Alguna fotos para tentarse


----------



## gzaloprgm (Feb 10, 2011)

Para mi, lo que transforma un microcontrolador cualquiera en una "PC" es la habilidad de poder correr código desde RAM, y tener periféricos para entrada y salida... 

Si se tiene eso, es posible hacer un "sistema operativo", e incluso escribir y compilar aplicaciones para la misma platafoma, sin necesidad de otra computadora externa...

Un saludo,
GOnzalo


----------



## pandacba (Feb 10, 2011)

El que pueda correr un programa en ram y de donde lo lo toma lo determina la bios, hoy es un tanto más raro pero años atras era comun y si ven una placa de red que tiene un zocalo vacio, era para colocar una rom donde estaba el command com y lo necesario para que la maquina botee y se comunique con el servidor, sin necesidad de disco ni de dsiquette
Hay PC industriales que tienen un disco de estado sólido
El micro cuando se lo energiza no tiene idea de nada, lee la roombios y comienza a realizar las primeras tareas, que es ir y buscar una unidad boteable en en el oreden de prioridades que se le indico para inicar alli lo que tenga
Existieron bios con posibilidad de utilzar el mouse, y cargaban el drive que ya estaba incorporado

De echo los ordenadores previos al PC corrian código en Ram pero no eran PC
Si o si la bios es lo que determina eso


----------



## antiworldx (Feb 10, 2011)

No confundir. El nucleo de un microcontrolador, es un microprocesador. Las PC trabajan con arquitectura von Neumann, mientras que un microcontrolador trabaja con arquitectura Harvard. Cada arquitectura tiene sus ventajas y sus desventajas. Pero en resumen, el macrosistema puede tener las mismas prestaciones.
El hecho que un microcontrolador sea RISC o CISC no interviene con la arquitectura de los buses antes mencionados. Existen microcontroladores CISC (HC de motorola) y RISC (PIC), por dar ejemplos. Incluso hay híbridos (AMD). 

Si se entiende eso, entiendes cualquier sistema basado en un microprocesador, llamese PC, Palm, Microcontrolador, Celular, todo. El diseño de ingenieria (hay que estudiar) es lo que ya determina la configuracion mas adecuada a la tarea a desarrollar.

En cuanto a este sistema que hice en particular, es un procesador 8088 basado en el original de intel, con arquitectura Cisc y Von Newman. Incluye un micro sistema operativo empotrado en el bios el cual tiene servicios de comunicacion con puertos y controlar dispositivos como lo es la LCD con solo hacer pase de parametros a interrupciones. Eso tambien lo logre con microcontroladores RISC y buses Harvard.

La unica ventaja tentadora en mi sistema es la gran cantidad de instrucciones, el mapeo de 1MB de direcciones de memoria mas 64K de direcciones de perifericos, acceso a bus de 16 bits y las instrucciones del mismo ancho. Pero es un sistema demasiado grande para aplicaciones que un dsPIC puede realizar con mayor eficiencia. Es un sistema didactico nada mas. Ahora que si agarro un K6 a 500 Mhz, y reescribo su bios (he estado tentado que no es para nada dificil ni compicado), tendre un sistema tan grande, que no tengo aplicacion actual que amerite tanto hardware.


----------



## emiesc (Mar 12, 2011)

Que copado!!! Estudio Ingeniería electrónica, y nos estan enseñando sobre microcontroladores. El tema es apasionante. El proyecto me parecio interesantisimo, te felicito. Y como vos decis, el hecho de que un microcontrolador sea RISC o CISC no influye en los buses, sino en el set de instrucciones que posee el micro. Un saludo!!!


----------



## antiworldx (Mar 12, 2011)

si dominas microprocesadores y microcontroladores, puedes hacer lo que te pegue en gana. Las posibilidades son bastas...


----------



## avefenix586 (May 20, 2011)

muy interesante el proyecto como para fines didacticos o demostrativos se ve bien, yo tambien construi uno similar en modulos, algo mas basico pero su tiempo de vida fue breve un cable pelado toco la E2eprom y se la llevo alli termino todo, al menos lo vi funcionar por 15 minutos mostrando un aviso en unos displays alfanumericos, lo que me hizo desistir de volverlo a la vida fue todo el trabajo tedioso que me ocasiono armarlo (modulos en impresos y cableados) y luego ingresar los datos a la memoria en forma manual y con varios intentos pues a veces los datos no se grababan correctamente (metia un 1 y aparecia un cero) o habia errores en el programa que no funcionaba para nada, pero tiempo despues encontre un programador en una revista electronica para las memorias e2prom, eprom , ram con bateria, a travez de una interface paralela y un programa hecho en turbo pascal, ahora ya casi no se usa puerto paralelo y quizas el win 7 ya ni acepte correr programas en DOS pero quien sabe aun me queda la espina de construir uno para fines didacticos por alli tengo guardados unos micros 8088 de 10 mhz, y memorias ram de un solo chip de 32k a 64kbytes estaticas, tambien se me quedo en el tintero revivir un MC68000, estube tentado de armar un modulo con un 80486 pero creo que esa idea si es descabellada no? Antiworks tiene que pasar ese artificio a plaqueta, alguno mas se animaria a emprender un proyecto asi?


----------



## pandacba (May 20, 2011)

Si entras en el enlace que puse encontraras un monton de proyectos y la mayoria con todos los datos.
En Europa se hacen eventos permanentes, muestras y concursos.

Por otro lado la arquitectura generlal de los micros motorola en general hacen que se usen en coss que necesitas alta eficiencia y por sobre todo seguridad, por esto que digo los defensores del PIC pondran el grito en cileo, pero lo cierto en la faz práctica en la mayoria de equipos de ciertas prestaciones encuentra micros motorola y no de microchip, eso no dice nada?

Hace un tiempo vi un muy buen proyecto naufragar, se trataba de una guillotina de origen alemán, mecánicmente estab impecable, pero su sistema electrónico ya esta más que obsoleto, para grabar los programas de corte utilzaba una cinta de unos 100mm de ancho por poco más de 1 de largo, y toda la lógica estaba echa en modulos de transistores de germanio, la dificultad y por que no decir la imposiblidad de conseguir estos semiconductores, determino el final del sistema.

La misma gente que lo atendia un grupo de ingenieros que yo conozco realizo un sistema basado en un Pic, en las pruebas de laboratorio, quedo joyita, cuando se hizieron las pruebas de campo aparecieron todo tipo de problemas, y al cabo de un par de meses se dio por finalizado el proyecto, y se instalo un equipo comercial.Cuando este llego lo primero que hice fue ver en su interios habia un mcro motorola y lo comente con ellos, asi que uno de ellos se puso manos a la obra(el ya habia trabajado con el 68HC05) y por gusto propio realizo el proyecto con un micro motorola, lo llevo lo puso y se queria abrir las venas andubo de una!!!! Quedaba ver que cosa lo afectaba al PIC que al motorola no.....

No se si lgoro encontrar alguna explicación, hace mucho tiempo que no los veo, pero lo que si se por comentarios de otros que directamente decidieron no corres más riesgos y todo lo hacen ahora con motorla...... y no es el único caso que conozco, conozco otro ingenieo que hace equipos para motogeneradores y se que utilza pic y el no ha tenido problemas.


Por otro lado hay que conocer algunas cosas de la historia, cuando intel lanza el 8080 no logra hacerlo popular, Zilog compra la licencia y con algunas variantes lanza el Z80 que alcanso niveles insospechados de popularidad y de ventas, era mucho más barato que el mismisimo 8080 y mientras Zilog llenaba sus arcas de dinro intel veia en forma pasiva todo esto toda esa época es muy dinámica Motorola lanza al mercado el 6502 un micro muy versatil y muy potente adoptado por varias marcas.....
En ese interin intel lanza susesivamente y en poco tiempo el 8086 y el 8088 pero no consigue posicionarlo en el mercado Zilog sigue siendo el lider Es en esos momentos en que se toma una decisión ya que cada marca corria con sus propios colores, y habia llegado la hora de standarizar las cosas asi aparece de la mano de microsoft el standard MSX y alcanzaron ver la luz estas nuevas máquinas que preveian una serie de coss que las anteriores no.... y cuando estab tomando impuslo ocurrio algo....

En IBM veian que estas máquinitas hacian mucho ruido y generaban buenos negocios, y alguien dijo nos estamos perdiendo de algo y para ver que pasaba decidieron hacer algo para competir en ese mercado yse parte de la movida, decidieron no utilizar ni creara un micro especiífico, habria que hacerlo con partes standar que proveyera la industria electrónica, asi fue que se tomo el 8086, y se armo un computador con la estructura que seria clásica 640KB de memoria expandible hasta 1M y más, cuando IBM crea la bios de la PS1, no sabia que implicancias tendria el haber tomado esa decisión y asi se lanzo al mercado, monitor y teclado integrado y dos disqueteras y la posibilidad de tener un hard disk, no era nada barata comparada con las otras, todo lo contrario, no podia competir en precio, pero su aparición en el mercado cambio la historia y hasta la forma de vivir...... tal fue el exito que no daba habasto y gracias a que la licencio se popularizo y tubo presios más accesibles y gracias a que Bill Gates que fue el creador del standard MSX, se dio cuenta que la movida de IBM era superior se cambio de bando y le  consgiuio el SO qeu IBM necesitaba, y como la mayoria sabe ni siquiera lo creo, se lo compro a otro desarrollador y loa adapto al IBM, por eso en esa primer versión es posible encontrar tanto el 8086 como el 8088 y se le acabo el dulce a zilog e intel retomo la buena senda.

En esos años hubo muchos ordenadores personales, algunos muy buenos que merecieron mejor suerte y de todos ellso el único que sobrevivió fue IBM y por el otro lado apple que siermpre adopto los micros de motorola con el detalle significativo que el modo naturla del IBM PC es el modo texto, y para apple lo es el gráfico y de alli su exito en el mundo del arte gráfico, apple no licencio su producto como IBM y quedara por siempre la pregunta, si apple hubiera licensiado su ordenador, habria acabaod con el IBM-PC?


----------



## avefenix586 (May 24, 2011)

hace unos dias mientras buscaba un transformador de un router me encontre entre el monton de cables y accesorios a mi tarjeta procesadora 8088 algo maltratada de aquel diseño prototipo que funciono solo 15 minutos, la forma como lo habia construido era utilizando la modalidad de las mainboard aprovechando los zocalos ISA esos negros de 8 bits donde se conectaban las tarjetas vga, modem, ide, etc, le extraje con cuidado esa parte de los zocalos de unas tarjetas de computadoras (le meti sierra) y aproveche sus interconexciones paralelas, luego construi los modulos independientes de memoria RAM, ROM y el PPI cada uno en tarjetitas con sus terminales para insertarlos en los zocalos, de esa manera solucionaba hacer tantos cableado, naturalmente los pre-diseños fueron en protoboard y tarjetas perforadas y de alli que se me ocurrio usar los zocalos ISA de las mainboard 8088, 80286, que abundaban en paruro, estos dias haber si posteo imagenes de mis tarjetitas rusticas dibujadas a mano con plumon indeleble que me dan cierta verguenza mostrarlas ahora jeje, con los zocalos negros defini un standar de pines para que los modulos pudieran ser compatibles con otros procesadores como el 8085, z-80, 8048 etc de ese modo era mas facil la sustitucion de uno un otro procesador,  ahora que contamos con herramientas de software para diseño de circuitos y esta mas al alcanze en costos mandar hacer los impresos a terceros en mejor acabado, me animo a realizar mi rediseño de los modulos usando el PCBwizard y subirlo al foro, pero aun asi a este artificio le faltaria un alma , me preguntaba si el amigo antiwordlx podria apoyarnos con el software o bios del mismo y quizas tambien otros colegas puedan participen en el diseño del conjunto o ampliar sus posibilidades.


----------



## antiworldx (May 24, 2011)

El mio ya tiene un bios y servicios que yo mismo programe para controlar diversos dispositivos... pero ahorita ando bien corto de tiempo con mi ingreso al posgrado... pero yo encantado de hacer dispositivos... puedo acesorarlos en lo que se pueda...


----------



## avefenix586 (May 28, 2011)

Gracias por su apoyo Antiworkx le molestare justamente por una bios para este artificio, yo solo le hize un programa al mio a manera de pasamensajes de caracteres alfanumericos,
Bueno  aqui posteo las imagenes de mis tarjetas caseras, rediseñare todas las tarjetas poco a poco y en vez de esos zocalos grandes usare unos tipo molex hembra y macho usando la misma presentacion de tarjeta principal horizontal y las demas en vertical, probare con cuales queda mejor, hare un diseño lo mas minimo posible de hardware basandome en el diagrama que han posteado mensajes atras incluso el diseño quizas lo limite a un solo segmento de memoria osea 64 Kbytes , salvo alguien manifieste antes alguna razon  para la que nos pueda servir tener un espacio direccionable de 1 mega byte.


----------



## antiworldx (May 28, 2011)

Me agrada me agrada tu idea, una computadora modular. Yo tambien he querido hacerlo asi. Y tener mas de 64 k o una sola pagina d ememoria, pues si es bastante para aplicaciones embebidas, pero si es bueno poder paginar mas. Por ejemplo, en una pagina tienes los servicios de las interrupciones software, y en otro tienes el programa corriente. Me explico?

Mmmm me diste una idea...

Tienes el pcb de tu placa? me interesa saber como organizaste las pistas, eso a mi me dio mucha flojera XD


----------



## avefenix586 (May 31, 2011)

las pistas las hize a mano en papel canson, el modelo que muestro en imagenes es uno de los modelos que hize y sobrevivio al olvido, ese modelo esta hecho para el microprosesador 8085, mi version de 8088 anda perdida solo encontre la tarjeta de la cpu (contenia solo micro, reloj, latch y buffers),  practicamente voy a rediseñar las tarjetas desde cero con pcbwizard y los ire subiendo al foro por si se animan otros foristas hobbistas a armarlo y bueno hay que reordenar las señales en los slots para las tarjetas de soporte ram, rom , ppi , rtc, usart etc.


----------



## avefenix586 (Jun 2, 2011)

ya estoy trazando los primeros bozquejos de la tarjeta CPU o mejor dicho del bloque porque el conjunto tendra la misma presentacion de la tarjeta de las imagenes, como sugiere antiworlx usaremos el bus de direcciones completo de 20 bits para direccionar 1 mega de memoria para aplicaciones diversas que puedan surgir, entre mis chips tenia unos que nunca llegue a hacer funcionar que decian en su cuerpo 128kb x 8 sin ningun otro codigo como para buscarle datasheet, de funcionar estos tendria alli 2 segmentos de 64kb en ram, otra opcion de tener mas capacidad podria ser utilizando memorias superficiales que tienen capacidades de 64kbytes a 256kbyte de los que suelen utilizarse en las tarjetas de control de discos duros ide antiguos para esos si les he visto datasheets, yo les extraje algunos con cuidado, el detalle sera hacerles unas pistas tan finas para soldarlo con cuidado por el lado del cobre jeje, bueno en estos dias tratare de definir las señales  que iran por los conectores molex de 40 pines que estimo seran unos 8 conectores con lo cual debe ser suficiente para combinar diferentes componentes, las 40 señales conformaran el bus que recorreran la tarjeta con los cuales se podran luego diseñar las tarjetitas entre ellas unos DAC y ADC para trabajar con señales analogicas, quien sabe hasta pueda conectarse un coprocesador matematico 8087 pero creo que encontrarse uno de esos chips es una rareza yo tengo uno que no se si funcionara quizas no porque el condenado calentaba mucho en la tarjeta xt de donde lo tome. haber si me doy tiempo para ir avanzando


----------



## antiworldx (Jun 2, 2011)

Si vas a usar el coprocesador matemático, necesitas conocer muy muy bien como trabaja el bus de direcciones y datos, junto con las peticiones IRQ y DMA. Te recomiendo que solo te centres en poder demultiplexar los 20 Adress Bits, y los 8 Data bits, de manera que se puedan usar las IRQ. Tambien recuerda que las Adress Bits se dividen en Memory, y Devices. Para devices solo se usa lo que vendria siendo la pagina 0, o las primeras 64k direcciones para dispositivos. Esta se meneja con la señal especial, que se switchea con la instruccion In y Out.


----------



## Chico3001 (Jun 3, 2011)

No quiero terminar con sus ideas... pero no seria mas practico y educativo diseñar una basada en un procesador un poco mas actual? como un ARM o un DSP? de todos modos conseguir un 8080 (y toda su circuiteria) en estos tiempos debe ser un poco complejo no?...


----------



## avefenix586 (Jun 3, 2011)

tienes razon antiworldx me concentrare en las lineas de datos, direcciones y control nesesarios lo del coprocesador era ya volar mas alla de este proyecto jeje, bueno aqui estan mi placa del cpu 8088 el anverso y reverso tomadas con mi celular de 2 mpixels, en el nuevo diseño tampoco podemos librarnos de los puentes tambien hay la opcion de hacerlo en doble cara pero como no domino mucho el diseño de dos caras para no complicarnos sera en simple cara con una veintena de puentes , este modulo iba conectado con un flag a unos terminales para acoplarlo a la tarjeta de buses.











esta seria la disposicion aproximada de la distribucion de la tarjeta principal, a un extremo el microprosesador 8088 con sus latch, buffer y reloj , al medio 4 zocalos destinados a la memoria del sistema los 20 bits de direcciones, 8 de datos y unos 5 de control, mientras que el segundo bloque de 4 conectores estarian disponibles para los devices y solo tendrian un bus de direcciones de 16 bits , 8 de datos y varias señales de control, los pines sobrantes serian reservados para la interconexion entre los devices, y al final tenemos un ppi 8255.





chico3001 gracias por hacernos aterrizar jeje tiene razon en que andamos algo anticuados con este procesador que el es 8088  el corazon de un pc XT no el 8080 mucho mas atras en el tiempo (por coleccion quisiera tener un 8080 y un 4004 jeje), la razon de usar un 8088 en este proyecto con el que coincidimos con el amigo antiworlx podria ser que este se aproxima mas al funcionamiento y entendimiento de una pc pues de su arquitectura partio todo lo que vino hasta nuestros dias en la linea de los pcs, por eso prefieriria usar este procesador para este proyecto, y lo de usar un ARM para un proyecto similar pues tambien me gustaria poder lelvarlo a puesta pero se lo dejaria a los entendidos para iniciar uno en otro post asi como de los pics de gama alta o dsps, pero para ellos yo me consideraria un aprendiz mas, sobre los componentes 8088, 8255, 8253,8259 todavia se pueden encontrar en paruro yo mismo tengo una veintena de 8088 de varios fabricantes que salieron hasta los 10 mhz, ojala hubieran lanzado una version especial con reloj multiplicador interno de 100 mhz jeje porque sus tiempos de ejecucion de intruccion si consume muchos ciclos de reloj.
en algunas placas xt solia venir un chip adicional de un interprete basic nunca lo encontre, quizas en algun momento podamos enseñarle a nuestro artificio a ser independiente de un pc y aceptar lenguaje de alto nivel con un tecladito compacto mismo blackberry y un pantalla lcd de 2 x 16, incluso entre los device de apoyo podrian utilizarse otros microcontroladores para tareas que requieran aliviar la carga en el 8088, otra vez ando despegando a marte jeje 
seguimos avanzando con la placa


----------



## antiworldx (Jun 3, 2011)

Como siempre, nunca falta el que sale con un comentario como estos... pero una vez que terminas un proyecto como este, pocos te ganan en diseño y programacion de circuitos digitales programables.


----------



## boxher (Nov 27, 2011)

Hola a todos, disculpen si me voy un poco de tema pero se trata sobre el micro z80. Tengo una maquina textil electronica que tiene una computadora con este micro y marca error de memorias ram dinamicas. La cuestion es que tiene 8 memorias de 16k x 1 bit cada una (TMS4116-15NL) y no consigo los chips en mi ciudad. Mi pregunta es: puedo reemplazar las memorias por 2 de 4bits y mayor capacidad (tengo entendido que no mas de 16Mb) o alguna memoria tipo de Intel 486 o 386?? Les agradezco la ayuda. Felicitaciones por los proyectos, estan magnificos!!!


----------



## antiworldx (Nov 28, 2011)

Mira, de poder si se puede, el asunto es que el microcontrolador direccione esa memoria... creo que el z80 no direcciona tanta ram... no recuerdo.


----------



## pandacba (Nov 28, 2011)

Si no se recuerdan para que estaran las hojas de datos?

Pero bien se recuerda nuestro amigo, no direcciona tanta memoria, ya que originalmente su limite esta en los 64KB, mediante un artilugio se podia utilzar los 128 pero 16M imposible, el actual eZ80 si es capas de manejar 16M de ram trabajando a 50Mhz

Tu solución puede ser en buscar en algún proveedor internacional o alguno que tenga chips antiguos, por que no te das una vuelta por ebay, ya que en europa persisten muchos seguidores del spectrun por lo que hay un activo mercado de partes del mismo, y este estaba basado en el Z80


----------



## avefenix586 (Abr 22, 2014)

despues de tiempo vuelvo a darme una vuelta por este post , vaya como a pasado el tiempo y todo se quedo inconcluso haber si estos dias me doy un tiempo para terminar con mi diseño de la tarjeta principal para soporte del 8088 que la deje en suspension inanimada con sus tarjetas anexas, yo tambien habia hecho un sistema rustico con el 8048/49 que tomaba de los teclados antiguos y tambien los 8031 que eran mas faciles de encontrar que el 8052 en las tarjetas antiguas y como olvidar el Z-80 que complicaba la cosa por sus pines de datos tan desordenado


----------



## hackmanice (Ago 24, 2015)

Avefenix586 en este momento estoy desarrollando  un prototipo con el 8088 , realmente entre los trastos que tengo consegui una viejo hub que tiene un 8088 con sus registros y memoria , para evitar complicaciones decidi desarrollar con arduino un emulador  de eprom, eso para mayor comodidad.
Adjunto algunas fotos a ver quien se anima a seguir con el proyecto.


----------



## avefenix586 (Jul 9, 2016)

que tal hackmanice recien me doy una vuelta despues  de tiempo y vaya que me doy con la sorpresa de que alguien mas anda embuido en hacer andar un 8088  pero contadnos como vais ya lo echaste a andar en alguna aplicacion? y como lo estais programando? con algun lenguaje de alto nivel o en assembler? relatar un poco mas de lo que estas desarrollando, cuando vi las primeras imagenes de cableados entre protoboards si que me resulta una pesadilla por eso veo que es imperativo armar mi diseño con tarjetas modulares que por las ocupaciones me he quedado corto para ir avanzandolos, osea los tengo desarrollados en papel y los quiero pasar a PCB wizard para que me queden mejor hechos y con mejores conexiones de las que solia hacer a mano antes y pues solian haber pistas rotas, carcomidas o falsos contactos, y claro recuerdo que la parte de meter un programa en una eeprom era algo no muy al alcanze y algun error tenias que volver a encargar que la regrabaran hasta quedar mas depurada pero yo para entonces me consegui una  e2prom regrabable a la que le cargaba el programa mediante un programador que vi en una revista electronica y que se manejaba desde el puerto paralelo con programacion Pascal, pero previamente  me ayude a escribir el programa con un pequeño compilador basico hecho en pascal tambien, entonces escribia mi programa lo convertia a Hex y con el programador lo cargaba en la memoria e2prom y de alli a la tarjeta modular, tambien se me ocurrio en el modulo actual apoyarme con un PIC 16F876 para emular la memoria ROM pero bueno avanzare con la tarjeta principal o mainboard y la subire para ver si se animan a fabricarla aunque sea con el metodo de la plancha y asi evitarnos tanto cableado 

como parte anexa quizas ese programador antiguo podria ser rediseñado para que funcione con un PIC para programar memorias Eprom de diferentes capacidades  , crearle una aplicacion de visual basic que se comunique con el PIC para volcarle el contenido Hex a programar en la memoria


----------



## avefenix586 (Oct 1, 2020)

Ese es el Co-procesador matematico que encontre en la chatarra electronica  hace tiempo y que me la lleve conmigo con la esperanza de repotenciar mi placa XT que llevaba un zocalo vacio, esperandole, como pueden ver  el chip tenia alli una abolladura en la parte metalica , parece que le metieron una punzada que esta ligeramente hundido y quizas con ello haya quedado inservible pero aun asi guardaba la esperanza de que arrancara lo cual era remoto y mas fijo lo desecharon ya malogrado porque era una rareza encontrarse uno de estos en ese tiempo o pensar en comprarlo porque era costoso, cuando lo coloque en mi placa calentaba tanto que aun asi de persistente pense que asi debe calentar porque esta trabajando a toda potencia y entonces le pegue ese enorme disipador con gomalaca en el lomo y pues ya mas refrescado aun asi nada de responder , no lo reconocia la placa  asi que lo retire pronto y quedo por alli en un rincon, ahora luce con algunas patas rotas y otras fragiles como quien dice intocables y asi no lo voy a poder vender a Rick del "precio de la historia" ,recientemente vi en las tiendas chinas en venta 3 motorolas clasicos MC68000 con ese mismo aspecto dorado con sus pines  y que se vendian como articulos de coleccion a  casi 100 dolares jejeje, bueno ahora para experimentar uno de esos version actuales costando algo de 3 a 5 dolares nomas    para el sistema minimo con 8088 lo veo poco recomendable usarlo porque requiere que el 8088 trabaje en su configuracion maxima que se activa con un pin MN/MX  

Con esta memoria estatica de 512Kbytes practicamente se tiene cubierta 8 bloques de 64kb  la mitad del megabyte que maneja el 8088 en un solo chip, que si el amigo Antiworldx retomara su proyecto se simplificaria  el conexionado entre tantos chips de memorias no?  para estos micros old de 8 bits como que falto un solo chip de apoyo que contuviera en su interior reunidos varios perifericos como al menos sus 8K de ram, una flash de 16k , su timer, pwm, usart , i2c , que lo emparejabas y ya tenias un poderoso sistema corriendo jeje


----------



## avefenix586 (Oct 11, 2020)

Reconsiderando la idea de no incluir el coprocesador 8087 , tuve una especie de flasheo y se me ilumino las ideas, mi yo del futuro me dijo como lo debia conectar al 8088 , entre ambos procesador y coprocesador comparten practicamente las mismas señales en los mismos pines a tal punto que se podria decir que son como gemelos y podrian colocarse uno encima de otro , pero no soldado chip a chip sino con un zocalo en ambos lados del micro en el que se pueda alojar a manera de un segundo piso horizontal otra placa que recibiria al poderoso coprocesador matematico,

Bueno para que el coprocesador pueda trabajar el micro 8088 tiene que estar configurado en modo maximo para lo cual requiere del apoyo de un chip extra de codigo 82C88 controlador de bus  , y entonces este seria el eslabon faltante conseguir dicho controlador de bus, revisando las tiendas chinas online este chips por tener una funcion especifica ya tambien su precio supera al propio microprocesador pero veremos conseguirlo sobre la marcha para culminar con esta sistema quasi-minimo para 8088 jeje

Una vez listo el circuito con todo y coprocesador alguno se anima a programar rutinas para el coprocesador matematico ? y ver si lo lanzamos hasta la luna de calculos jeje


----------



## avefenix586 (Oct 18, 2020)

Estoy trabajando en dos versiones para esta tarjeta de sistema minimo del 8088 , una sera la version con el 8088 en modo minimo usando las señales presentes en el chip y la otra version posterior sera con las señales en modo maximo para poder alojar un coprocesador matematico , Tenia mis notas hechas en papel del diseño de las pistas de mi version original pero estas se perdieron y he tenido que volver a rediseñar todas las pistas desde cero, en la imagen se muestra el avanze de la tarjeta en modo minimo que ya va tomando forma. 

Yo suelo hacer todos mis diseños en ese programa PCB wizard al que ya me acostumbre , no conozco mucho del manejo de otros programas como el eagle o el proteus para diseñar las pistas partiendo desde esquematicos y dandole autoruteo , el PCB Wizard me sirve muy bien para estos proyectos es casi como dibujarlos a mano en papel , pero la parte de la manufactura de las placas se lo encargo a terceros que su rublo es preparar placas con precios variados, antes podia hacer las placas a mano con el plumon indeleble y el acido  pero como que ya desde hace un tiempo deje de hacerlo, ya no tengo la misma paciencia creo y prefiero mandarlos a hacer.


----------



## avefenix586 (Oct 24, 2020)

Este seria el conjunto de señales dispuestas para este sistema con el CPU 8088 en modo minimo:

A diferencia de la placa hecha para el Z80 que en la misma placa principal iban el microprocesador y dos bancos de memoria , en esta version para la CPU 8088 la placa principal va sola conteniendo al micro 8088 y a sus circuitos anexos como el generador de reloj 82C84, los dos latch 74LS573 (son mas practicos que los 74LS373) y un buffer 74LS245 , y la otra placa que seria de expansion contiene 3 slots para memoria RAM y Eeprom combinadas en diferentes proporciones como 128Kb ROM + 32 Kbyte RAM ,para lo cual se le diseñara una tarjeta para cada uno con el tipo de memoria correspondiente, recuerdese que hay un chip RAM disponible de 512 Kbytes con lo que tendrias 8 segmentos de 64K en un solo chip 

Las señales de bus de conexion son las que se interconectan a la tarjeta de soporte de memorias y perifericos, tenemos alli las señales de control la alimentacion VCC, GND, -WR, -RD, IO/-M , las 20 lineas de direccion con lo que se puede acceder hasta un mega de memoria combinada a gusto del usuario, el bus de datos de 8 bits y las señales de control -INTA, NMI, INTR, CLK, RESET, RDY1 y RDY2 , en un principio usaremos una señal de reloj de 4.77 Mhz de clock principal y luego lo aumentaremos a 10 Mhz con lo que se requerira adicionar circuito de espera para los perifericos lentos y para eso se tienen alli dos lineas Ready .

Para las señales del bus de memoria tenemos las tres señales de control basicas  IO/-M , RD y WR, el bus de direcciones completo de 20 bits mas su alimentacion VCC y GND , no hay decodificador de seleccion en el circuito por lo tanto el decodificador selector debe ir incluido en cada tarjeta modular de memoria por separado pero seleccionando una unica direccion para cada modulo,

Para las señales del bus de perifericos tenemos las señales de -WR, -RD, IO/-M , un bus de solo 8 direcciones mas que suficiente , su bus de datos, alimentacion y 5 señales de seleccion para los modulos perifericos pues alli en la placa de expansion esta presente un decodificador 74LS138 que decodifica la 5 direcciones de mas peso del bus de 16 bits (A11 a A15) , recuerdese que el 8088 puede direccionar hasta 64K dispositivos de IO, ademas tenemos 7 lineas NC que en realidad son lineas sreservadas para propositos de interconexion entre modulos perifericos, como para que conversen entre ellos, mas que todo van por alli las señales de interrupcion del PIC osea el Controlador de prioridad de Interrupciones 82C59 al que podran engancharse por ejemplo las salidas del PTC o algun modulo que requiera la atencion de la CPU mediante una interrupcion.  En la tarjeta de expansion tenemos 5 slots para conectar 5 modulos como pueden ser , PPI, PTC, ADC, PIC,  ACIA, USART, etc etc.


----------



## avefenix586 (Oct 25, 2020)

Aqui les muestro como quedaria la tarjeta principal definitiva para la CPU 8088 , como se puede apreciar en esta placa esta solo los componentes concernientes a darle soporte al CPU como es principalmente el generador de señal de clock , reset y ready en el chip 82C84, para este microprocesador se recomienda que la señal de reloj tenga un ciclo alto de 33% y bajo de %66  que justo se lo provee ese chip generador de reloj, desde que hize mi primera tarjeta no le llegue a probar con un oscilador de reloj a base de inversores como se da para el Z80 asi que no sabria si realmente corre bien con ello o se entorpece al funcionar y que sea imprescindible el uso del 82C84, que aun se puede conseguir de tarjetas viejas o pidiendolo online a tiendas chinas que deberian vender el conjunto completo pero sin embargo estan desperdigados por varias tiendas para juntar los componentes , bueno pero tambien hare una prueba de si el CPU corre con un oscilador de inversores o si trabaja tambien con un oscilador integrado de 4 pines y entonces le hare una version de esta misma tarjeta solo cambiando el circuito de reloj , reset y ready ,manteniendose todo lo demas igual , eso seria para el caso si no se puedan conseguirse el 82C84, pues no puedes comprarte en tienda online uno sino un lote de 5 a 10 unidades minimo.

Para el bus de datos tenemos el buffer 74LS245 que es un buffer bidireccional controlado por dos pines del CPU que son /DEN y DT/-R, en los diagramas habituales del circuito para el CPU 8088 solian incluir siempre latch 74LS373 que debido a que sus pines son entreverados uno opta por su version emparejada 74LS573, pero recuerdo que incluso usando estos integrados tenia problemas para la estabilidad en el bus de direcciones de un 8085 donde uno ve un 74LS373 al que le llega a travez de un inversor la señal ALE, pero por alguna razon no me funcionaba bien y opte por seguir usando ese inversor pero cambie los 74LS573 de nivel alto por los 74LS574 de flanco de subida y me trabajo bien , por eso en este circuito he acondicionado un 74LS04 inversor para el caso no vaya bien los 74LS573 o no se disponga de ellos y se use dos latch 74LS574 , de alli que si no requiere inversor pues se quita el 74LS04 y se puentea sus pines 1 y 2  de tal modo:

- si uso dos latch por nivel alto 74LS573  quito el 74LS04 y puenteo sus pines 1 y 2 en el impreso (se puede habilitar un jumper tambien)
- si uso dos latch por flanco alto 74LS574  coloco el 74LS04  y que trabaje el primer inversor 

 como las señales INTR , NMI y RDY son activo alto se requiere mantenerlos a nivel bajo a travez de resistencias de 3.3K u otro valores proximos , dos de ellas se pueden apreciar cerca al Micro para INTR y NMI mientras que las dos para RDY 1 y RDY2 se colocan entre esos par de dos puntos verticales que estan en la parte inferior izquierda junto al conector de la tarjeta de soporte de memoria y perifericos, de ese modo al no usar esos terminales les estara llegando un nivel bajo por las resistencias de 3.3K y no se dispararan 


Y entonces esta seria la tarjeta de soporte de memoria y perifericos , el lado derecho es el que se conecta a la tarjeta del CPU mediante espadines correspondientes Hembra y Macho, se daran cuenta que podria tambien uno preparar el circuito completo de una sola pieza pero seria un poco grande como para meterlo en un recipiente para el ataque del acido si lo hace uno mismo , asi que he preferido cortarlo en dos partes para mas comodidad.

Como se menciono antes los 3 zocalos destinados a soportar la memoria RAM y ROM no tienen un decodificador que genere la seleccion de los chips de memoria (como el modulo del Z80 ) pues tenemos el bus completo de 20 bits alli presente, la decodificacion del mapeo de memoria se tiene que hacer en cada modulo de memoria individual , por ejemplo si quiero usar una Eeprom de 32 Kbytes le tengo que agregar su integrado decodificador o compuertas para seleccionar que se active y cubra la parte alta 0FFFF0H en donde se situa posterior al reseteo  mientras que si coloco una RAM tengo que ubicarla en el mapa de memoria en la parte baja empezando en la direccion 0000H hasta donde de la capacidad de memoria. por ejemplo si quisiera dividir el area de 1 mega en dos simplemente colocaria una compuerta OR entre la señal A19  e IO/-M  para activarla cuando ambas señales esten a nivel bajo y para la Eeprom le colocaria tambien una compuerta OR pero al A19 lo antecederia por un inversor y con ello se me activa en la parte alta , pero como es mas posible tener memorias RAM de capacidad pequeña como 32K, 64K y 128K entonces se le adiciono un tercer slot para agregarle mas RAM ,  por ejemplo una configuracion seria de
- 32 Kbyte ROM  + 128 Kbyte RAM + 128 Kbyte RAM o
- 64 Kbyte ROM + 32 Kbyte ROM + 512 Kbyte RAM, (esta ultima seria casi como en los requerimientos del amigo Antiworldx que dio inicio a este post sobre miniordenador con 8088)
para configuraciones mas rebuscadas tedriamos que usar hasta circuitos GAL pero yo creo que con lo basico es suficiente para el estudio, practicas con este CPU que muchos tenemos en nuestras alacenas mirandonos de reojo , yo creo que tengo como una veintena de los antiguos de 4.77 mhz y un par que trabaja a 10 Mhz   

En la parte del medio de esta tarjeta tambien podemos apreciar que si se a incluido un decodificador 74LS138 para los perifericos al cual le llegan las señales del bus A11...A15 mas la señal IO/-M ,a nivel bajo slecciona memoria y a nivel alto selecciona perifericos , de alli tenemos 5 señales de seleccion desde /CS0..../CS4  con lo que cubrimos uno para cada slot disponible, al igual que para el Z80 tendremos los siguientes modulos standar como con un PPI, un USART  o ACIA, un ADC con o sin DAC, UN PTC o dos , un PIC para gestionar las interrupciones vectorizadas y por ultimo un modulo I2C donde podamos tener un DS1307 y una memoria 24C256 para guardar un programa desde la RAM y volverlo a restaurar al encender el sistema, en esta parte me voy a romper la cabeza que quizas termine usando un microcontrolador de apoyo para esta tarea de gestionar el  bus I2C que hasta podria ser un par de de ellos para conectar dispositivos I2C variados como por ejemplo un pantalla LCD 16x2 o 20x4 que tengan modulo I2C.. 
la señal IO/-M tambien persiste en el bus hacia los perifericos porque esta sera usada para un circuito de estados de espera wait que se activara cuando el bus del sistema principal este corriendo a 8 u 10 Mhz posibles mientras que los perifericos que suelen correr del orden de 2 a 5 mhz requieran agregar unos estados de espera por ser mas lentos. 

Antes de estar disponibles las mascaras en PCBwizard (salvo alguien las quiera probar ya) tendre que construirlo para someterlo a las pruebas de funcionamiento y darle su visto bueno por si hubiera algun error que se me a pasado y corregirlo para que otros hobbistas lo armen sin problema jeje
Lo siguiente para echarla a funcionar es completar  los 2 modulos de memoria RAM y ROM basicos y su modulo ACIA 68B50 que funcionara tal como en el modulo para Z80


----------



## juanje (Oct 25, 2020)

Que sistema operativo instalaste ?

	Mensaje automáticamente combinado: Oct 25, 2020

Instalaste un sistema operativo ? o solo ejecuta programas en ensamblador ?


----------



## Gudino Roberto duberlin (Oct 25, 2020)

Hola! Que periféricos piensas implementar? aparte a un LCD.
En el caso de utilizar un teclado AT estándar, tengo información y algo de experiencia en el manejo.
Muy buen trabajo Amigo!!!


----------



## avefenix586 (Oct 25, 2020)

Juanje aun no se tiene ningun sistema operativo para este sistema modular de 8088, el creador original de este post que es Antiworldx si estaba desarrollando su propio sistema operativo particular, si ves los post iniciales el habia armado todo su miniordenador en protoboards y yo le habia sugerido que lo hiciera en circuitos impresos modulares , pero alli quedo todo estancado y muchos años despues se a retomado pero digamos que yo estoy contribuyendo mas con la parte de la implementacion del hardware , por lo pronto este artificio seria para ejecutar programas en ensamblador que se recopilen o desarrollen sobre la marcha para alguna aplicaciones experimentales o de estudio-practica para empaparse de conocimiento del funcionamiento de los microprocesadores , quizas alguien mucho mas capacitado en cuanto a programacion en ensamblador se anime o le pique el bicho y le pueda desarrollar algun micro sistema operativo funcional ya sea para su uso o que lo ponga a disposicion de los demas en el foro, porque este sistema modular que he implementado en si no a sido concebido tanto como para convertirse en un miniordenador como tal osea que tenga su propio teclado, su propio video o su almacenamiento en disco duro sino que requiere conectarse a una PC para que le envie un programa compilado en hexadecimal, pero el que pueda tomarlo y moldearlo o darle esa forma de miniordenador pues bienvenido y de paso nos instruye en ello. 

Gudino creo que por inercia yo suelo decir "perifericos" y luego me entendeis como que le pienso agregar una pantalla vga o una impresora jeje, pero quien tenga tal conocimiento de poder hacerlo no hay problema si pudiera conectarselo sobre esta placa base , Antiworldx decia que iba a usar su miniordenador 8088 para calculos de transformadas de fourier y tenia curiosidad de ver como lo programaria,  entonces para tantos calculos a el le serviria el sistema en su version maximo con coprocesador matematico 8087 (que sera la siguiente version que presentare), ojala se aparezca y se de un paseo por el foro para que vea estos avanzes que se andan haciendo ( sus ultimas visitas datan del 2014) .y entonces este diseño del sistema minimo conlleva su CPU, RAM , ROM y el soporte para el mundo exterior como son el PPI, USART, PTC, PIC, ADC, DAC , I2C y pues con eso ya tenemos una base para conectarlo a donde se nos ocurra o al menos donde se pueda jeje , aproposito Gudino en que software o programa elabora sus circuitos impresos tan sofisticados para su supercomputadora de 32 bits? luego nos terminara sorprendiendo con su version de 64 bits O_O


----------



## juanje (Oct 25, 2020)

Gracias por tu aclaracion , preguntaba por el sistema operativo por que quizas tenia alguno desarrollado , al menos desarrollar una BIOS que reconozca los perifericos mas importantes como un teclado una tarjeta grafica y una impresora seria interesante , es que hacer transformadas de Fourier con el cooprocesador matematico ya sabemos que es posible , pero que sentido tiene ejecutar una transformada de Fourier o La Place y no disponer de una bios que atienda a un teclado y a una grafica ? yo no tengo mucho tiempo pero si lo tuviera me centraria en hacer una rutina que atienda el teclado y un monton de rutinas que atiendan a una tarjeta grafica universal sencilla.


----------



## Gudino Roberto duberlin (Oct 25, 2020)

Bueno, respondiendo a tu pregunta.
Lo 1ro. que hago es trabajar con papel y lápiz, cuándo el circuito tiene forma, lo cargo al simulador Proteus. Una vez que pasa la prueba, al impreso lo hago simplemente a mano. Ya que armar un PCB por transferencia he tenido muchos problemas de todo tipo, desde la calidad del papel de transferencia, lograr que coincidan todos los holes( al ser doble faz), también por las ganas de que tenga el tóner ese día para colaborar, etc.

	Mensaje automáticamente combinado: Oct 25, 2020



avefenix586 dijo:


> luego nos terminara sorprendiendo con su version de 64


Jajajaaj!!!! Tendría que cambiar de medicamentos si intentara algo así!!😂😂😂


----------



## juanje (Oct 25, 2020)

Me parece un buen proyecto pasar del PCB o los topos al circuito impreso , pero el objetivo es implementar perifericos y BIOS , quizas pueda echaros una mano en la programacion , yo programo en Ensamblador y con Delhi.


----------



## avefenix586 (Oct 26, 2020)

Este vendria a ser el mapa de memoria de 1 Megabyte direccionable por los 20 bits de direcciones del 8088,  como sabemos el 8088 maneja segmentos de 64K  por lo que se tendria 16 segmentos de 64K = 1 Mega pero por cuestiones practicas y de simplificacion he diseñado 4 modulos de memoria RAM y Eeprom, como nuestra tarjeta de soporte del CPU tiene 3 zocalos nomas para 3 modulos de memoria entonces la imagen nos muestra las posibles combinaciones que se puede hacer con esas tarjetitas de memoria y en cada encabezado se indica cuales son esos modulos, de tal manera que podamos usar  diferentes combinaciones de 3 modulos que pueden ser asi :

**  1 chip Eeprom 28C256 y 2 chips RAM 62C256
**  2 chip Eeprom 28C256 y 1 chips RAM 62C256
**  1 chip Eeprom 28C256 y 2 chips RAM KM681000 (128 Kbyte)
**  2 chip Eeprom 28C256 y 1 chips RAM KM681000 (128 Kbyte)
**  2 chip Eeprom 28C256 y 1 chips RAM HM628512 (512 Kbyte)

y entonces se diria que en la ultima imagen hay una zona que no es ocupada en ninguna de las combinacion indicadas, en realidad si puede ocuparse tambien esa zona pero requeriria mas logica para la decodificacion o usar alguna GAL para la seleccion especifica en el mapa de memoria y esta seria asi :

**  1 chip Eeprom 28C256 y 2 chips RAM HM628512 (512 Kbyte) 

pero en este caso ocurre que la segunda RAM de 512 Kbyte con la seleccion especifica de una GAL tendria habilitada solo 3/4 partes de su capacidad osea unos 448 Kbytes , como no queremos complicarnos mucho esta combinacion no esta habilitada o preparada por el momento  y ademas con un chip de 512 Kbyte me parece que ya tenemos RAM mas que suficiente jeje.  

Notaran que el mapa de memoria a sido dividido en 8 zonas de 128 Kbytes cada una determinada por la decodificacion de las tres lineas de direccion de mas peso A17...A19 que llegan a los decodificadores 74LS138 (1 de 8) , de alli que si ubicamos nuestro modulo en determinada zona  en el mapeo logico ocupara toda esa zona de 128 Kbyte  pero fisicamente puede ocupar menos, tal es el caso si usaramos una memoria de 64 Kbyte o una de 32 Kbyte (o hasta una de 8 Kbyte)  que es las que usaremos habitualmente por ser mas difundidas,  en el caso en donde si coinciden el mapeo logico con el  mapeo fisico es cuando estamos usando una memoria de 128 Kbyte en adelante como la KM681000 (o equivalentes) que coincide exactamente con nuestra zona logica de 128 K.





Hace poco revisando en internet sobre mas memorias Eeprom me encontre que tambien hay unas 28C512 osea memorias Eeprom de 64 Kbyte pero no estan tan difundidas y adquirirlas estan algo costosas , muchos de estos chips de memoria que se estan vendiendo en tiendas online chinas son de segunda (usados y reetiquetados) y de cada 5 que compras pueden tocarte 2 a 3 buenas jeje


----------



## Gudino Roberto duberlin (Oct 26, 2020)

Hola, en la memoria EEPROM, estaría alojado el firmware? O el software nativo.
Si es así, quizás te convenga utilizar en su reemplazo la 27C256 OTP, ya que es mucho menor el tiempo de acceso.


----------



## avefenix586 (Oct 26, 2020)

Por lo pronto como se anda en desarrollo de este sistema minimo 8088 nos conviene trabajar con las series 28Cxx para facilidad de la programacion que segun la datasheet anda por los 150 nseg de acceso y desde luego seria mejor usar las Eprom 27Cxx de 70 nseg  de acceso para correr mas holgado, segun podemos deducir la memoria 28Cxx nos podria trabajar a una frecuencia de reloj maxima de 6,6 Mhz en teoria  pero como los ciclos de lectura y escritura del 8088 requiere de varios ciclos de reloj CLK de entre 2 a 3 ciclos con lo que nos da un tiempo mayor de unos 300 a 450 nseg de acceso a esa frecuencia de 6.6 mhz, con lo que deberia poder facilmente trabajar con un 8088-2 de 8 Mhz sin ningun estado de espera y en cambio para el 8088-1 de 10 Mhz estemos en un umbral donde con las 28Cxx pueda que si se tenga que agregarse un estado de espera con un circuito de estados de espera , el cuello de botella de preocupacion en si seria mas los dispositivos de I/O que van del orden de los 2 a 5 Mhz  por ejemplo el ACIA 68B50 utilizado para la comunicacion serie en el modulo de Z80 no me pudo funcionar a esa frecuencia de 7.3728 mhz indicado en el diagrama de referencia sino que a mucho menos y para que todo el sistema trabaje en armonia sin complicaciones se opto por que el reloj CLK fuera de 4 Mhz (lo probare proximamente a 6 Mhz) , y entonces para el caso del 8088 estandar este trabajaria tambien con una frecuencia proxima a los 5 Mhz (4.77 Mhz) con lo que todo el conjunto trabajaria sin ningun tiempo de espera extra .
En la tabla de la imagen queria mostrar la forma en que se podia combinar el uso de los 3 slots de memoria disponibles para  este diseño , pero con las señales presentes de los buses el usuario hobbista tambien puede agregar su propia configuracion de memoria , memorias en presentacion DIP delgadas o en smd o quizas tenga a la mano una 62C64 y una 28C64 o con lo que le sea suficiente para practicar con este microprocesador.

En la Eeprom 28Cxx le instalare en una primera instancia solo el Bootloader tal como en el sistema del Z80 para poder cargarle los archivos hexadecimales compilados desde el Emu8086 y ya con eso pues se puede ir desarrollando una Bios o un sistema operativo mismo Opensource , o su propio S.O. a su gusto y si quieren lo bautizan con su nombre como por ejemplo S.O. Gudino8088 jeje, asi como hay versiones de compiladores para PIC o AVR yo quisiera una similar en C , Pascal, Basic que me generen un codigo hexadecimal libre del D.O.S ,  ojala apareciera el amigo Antiworldx para que nos de una mano en ese aspecto pues el ya tenia avanzado una gran parte de su S.O.


----------



## Gudino Roberto duberlin (Oct 27, 2020)

Allá por el 2003 aprox., cuándo comencé el 1er. procesador de 8bits CMOS, con su propio S.O., para evitar las pausas debido a las diferentes velocidades de los periféricos.
Simplemente, el sistema leía un registro específico para cada puerto, si el dato no estaba presente, continuaba con el ciclo, hasta que el dato era registrado. Para ello no usé interrupciones, dada la complejidad que implicaba hacerlo con lógica discreta.
En cbio. en la arquitectura que estoy realizando en 32bits, he creado un registro de estados, que lo llamé REGSTATE, en el que cada dispositivo posee un bit o bandera que cambia de estado, indicando que ocurrió algo, por ejem. si se pulsó una tecla, el bit de keyboard  pasa a alto. Luego de leer el dato del registro, se borra el bit de estado por hardware.
Lo mismo ocurre para la A.L.U., el puerto USART, etc. 
El REGSTATE, se lee al final  de cada ciclo de programa, y se atiende al bit correspondiente que cambió, de ésta manera el programa luce cómo si ejecutara en multitarea.


----------



## avefenix586 (Oct 27, 2020)

Gudino alguna vez nos gustaria mirar esos esquematicos de su CPU de 8 bits , creo que a esa tecnica de explorar semaforos de los dispositivos para ver si se produjo algun cambio se le llama polling como alternativa a las interrupciones pero en cierta forma consume la atencion de la CPU a estar revisando periodicamente esos flags para atender un cambio, se ve complejo con logica combinacional poder atender todo ello con interrupciones, cargar algun vector y despues retornar a la direccion siguiente , una forma seria solo crearle una interrupcion o vector unico para todos esos flags en conjunto y de acuerdo a cual se activo saltar con un JMP a donde corresponda y luego intentar retornar al programa principal y no permita atender interrupciones anidadas sino podria desbordarse, pero si que de todas maneras la cosa esta para romperse la cabeza jeje.
Ando tambien ideando como poder construirle para mi sistema un modulo de dos o tres salidas PWM programables, mas o menos ya tengo una idea en el papel en el que o bien uso contadores programables y temporizadores o bien me apoyo en los PTC 8253 o PTC 8254 que contienen 3 contadores descendentes de 16 bits y agregandole hardware extra se tiene una aproximacion a salidas PWM digitales para controlar servos como los que se le conectan a un arduino.
Otro dolor de cabeza me va a parecer la preparacion de modulos I2C con el cual poder conectarse a infinidad de dispositivos I2C que existen como los sensores que se aplica en arduino , aqui si que habria que implementarles librerias de codigo para los diferentes dispositivos I2C pero hay que empezar con el diseño del modulo base I2C de donde partir.
El 8088 para atender interrupciones si que tiene una forma muy potente pero algo pesada de cada vez que se le interrumpa tiene que cargar una direccion completa de IP:CS osea 32 bits alojada en un vector programable  y como el ACIA que recibe los datos via puerto serie genera una interrupcion por cada caracter recibido pues la cosa se le vuelve tediosa al CPU, por eso del ACIA evolucionaron a otros similares que contienen una cola de 16 bytes o quizas ahora mas para recibir los bytes  y una vez llena la cola recien molestar a la CPU.

Bueno aqui ahora les muestro los diseños de los modulos de memoria RAM y EEPROM para este sistema minimo con 8088:
En la primera imagen podemos apreciar 4 modulos diseñados para alojar 4 tipos de chips RAM de diferentes capacidades, como son 8K, 32K, 128K y 512K, en el mismo cuerpo va indicado una etiqueta que dice "8088" para no confundirlas con otros modulos de memoria que sean para otra CPU por la disposicion de las señales, en lo posible trato de hacerlas compatibles pero a veces no es factible porque no puedes cubrir todos los requerimientos de diferentes señales de diferentes CPUs pero eso se hace mas notorio en los dispositivos I/O de cada familia, en cuanto a la RAM si hay mas factibilidad de ser intercambiables sus modulos porque son standar y se acomodan a los buses de las CPUs retro salvo por el ancho del bus de direcciones y la selecion de la ubicacion de los bancos en su mapa de memoria alli si habria ligeras modificaciones que hacerle, por ejemplo estos diseños de modulos de memoria practicamente deberia servir para la  CPU MC68008 de bus de 8 bits con unas leves modificaciones siempre en cuando  usemos tambien solo 1 mega en vez de toda su capacidad de 8 megas propia.
En los modulos de 8 K , 32 K y 128K podemos ver que en la esquina superior derecha hay 4 terminales , en esos pines se coloca un jumper de selecion para poder configurar a ese modulo si ocupa el primer banco de 128 K o el segundo banco de 128 K del mapa de memoria  de esa forma podemos instalar dos modulos iguales de estos tres modelos, en cambio con la memoria de 512 Kbytes ya no lleva esos jumper de seleccion porque se considera como que con un solo banco se es suficiente para la mayoria de usos pero como ya mencione si es posible adicionar otro banco de 512 K pero hay que preparar la configuracion de su seleccion con mas circuitos logicos de apoyo o un GAL para que no interfiera con el espacio de la Eprom del ultimo banco superior , notese que este ultimo  modulo de 512 Kbyte no lleva decodificador 74LS138 como los otros modulos sino solo requiere de una compuerta OR de un 74LS32.


Y ahora llegamos a la parte de la memoria no volatil donde puede residir nuestro Bootloader , nuestro firmware, Bios, servicios, Sistema Operativo etc etc, estos modulos estaran soportados sobre estos dos modelos de memoria Eeprom 28Cxx,
el primer modulo de 32K tambien es compatible con los pines de una 28C64 de 8K asi que podemos usarla indistintamente para cualquiera de ellas en este mismo modulo con zocalo de 28 pines, el otro modulo para memoria 28C512 es un poco inusual encontrarsela pero aun asi esta preparado este modulo  por si se la tiene a la mano o se la pueda conseguir en tiendas online de China, al igual que los modulos de RAM en la parte derecha superior podemos ver tambien que tiene provisto unos pines para seleccionar con un jumper en que zona del mapa se situa es decir o bien el ultimo bloque o el penultimo y asi se puede colocar dos de estas tarjetitas de memoria , pero ademas hay una particularidad con estos modulos es que tienen un par de pines donde va un jumper , esos dos puntos dicen "write" porque colocando un jumper alli estamos habilitando la linea de escritura del bus de sistema osea la señal /WR, esto con la finalidad de poder colocar mediante la seleccion adecuada dos de estas tarjetas y jumpeando en una de ellas los terminales "write" podamos programarlo o escribir nuestros programas sobre ella sin necesidad de estar retirandolo y colocandolo en un programador , claro esto trabajaria a cierta velocidad baja del sistema que estaria por probarse pueda ser que trabaje bien a menos de 5 Mhz o se tenga que agregarle estados de espera para garantizar esa funcionalidad pero alli la tenemos presente. Algo que podria ser osado pero que se podria hacerce es tener conectado un solo modulo de memoria EEprom unico donde esta contenido nuestro Bootloader y dejando habilitado el jumper de escritura podria reprogramarse a si mismo mas funciones o aplicaciones pero claro con el riesgo de sobreescribirse alguna parte de codigo inadvertidamente o que se vaya a la deriva y aleatoriamente se sobreescriba el bootloader , Bios o S.O. y para corregir ese desastre tendriamos que volverle a cargar el codigo Bootloader desde un programador externo como el TL866.


----------



## Gudino Roberto duberlin (Oct 27, 2020)

Aquí  <-- Puedes ver los esquemas en bloques sobre la arquitectura de 8bits.
No está completo cómo detalle.
Respecto al modo de sondear el registro de estado o polling cómo bien dices, en realidad no me consume gran tiempo del ciclo del programa.
Ya que, lo que hago es comparar el valor del registro del ciclo anterior, con el estado presente, si la comparación es diferente, pues ahí se produce un salto de rutina para atender dónde se produjo el cambio.

Aquí un ejemplo de vídeo juego, usando todos los recursos disponibles, leyendo teclado, refrescando la página de vídeo, cálculo en ALU, y cómo detalle adicional, el desplazamiento en el eje Y de la pelotita, lo hago con una variable en modo registro de desplazamiento por soft. Ya que no se había pensado en darle ésta utilidad, y todo ésto se ejecuta en un ciclo completo de programa.






No quiero quitarle protagonismo a tu tema.
Respecto al PWM,  que quieres implementar, puedes hacer un contador preseteable, y cargas en él, el valor de ON y mediante otro contador que cuente el final del periodo de la señal de OFF. De sendos contadores surgen  la señal de SET a un FF, y la señal de RESET respectivamente. 
Entonces en la salida del FF, tendrás la señal de PWM.
El trabajo qué estás haciendo es loable de paciencia! Pocas personas he visto que realicen cosas así! Felicitaciones con ese proyecto, lo voy siguiendo todo el tiempo!


----------



## avefenix586 (Oct 29, 2020)

Le agradezco sus palabras amigo Gudino, en youtube he visto que hay muchas personas mas entusiastas que siguen enseñando o divulgando los retro microprocesadores, hay muchos videos sobre el Z80 y el 6502 (otros se preguntaran ya para que? ) , ahora hay muchos circuitos comerciales preparados en modulos compactos o tarjetas completas para que un hobbista armen su computadora retro por nostalgia o por aprendizaje, la mayoria de youtuber de retrocomputadoras son de habla inglesa y muy poco en español , eso tambien me motiva con este tema, los retro microprocesadores son tambien como una aficcion asi como tener o conservar coches antiguos jeje

Si habia visto sus esquemas en bloques pero queria ver si habia algun esquematico mas detallado ya sea en proteus y hasta simulable pero si no lo tiene parece que diseña como yo sus circuitos solo en un cuaderno borrador y de alli a lanzarlo al impreso jeje , sobre el PWM ojala los creadores del PTC 8253/54 le hubieran adicionado esa funcionalidad PWM a sus contadores se hubieran adelantado a su epoca , si estaba viendo tambien lo de los contadores y circuiteria logica pero estos podrian hacer el circuito mas engorroso y a la final solo tener un canal de PWM, asi que estoy analizando un poco mas como aprovechar esos 3 canales del chip del 8253 para usarlos como PWM con circuitos extras y sacarle tres canales de golpe, antes de la pandemia estabamos tan atareados con el trabajo de costumbre y rutinario que casi ni se tenia un respiro como para hecharle mano a proyectos de este tipo, por eso tambien que casi se quedo suspendido tantos años para continuarlo en mi caso y ahora por las circunstancias por causa de esta pandemia habiendo algo de tiempo por quedarse en casa uno y cada cual lo aprovecha de la manera como puede pues yo aprovecho para avanzar lo mas que se pueda para completar este proyecto del 8088 y de los demas micros.
Hay programas como el fritzing en el que se diseñan circuitos hasta de la manera mas caprichosa enviando las pistas por donde se puedan , por debajo, por encima, gruesos , delgados, rectos , curvos y despues enviarle los archivos a los chinos para que nos devuelvan unas tarjetas en un acabado profesional muy deseable pero los costos de cantidad y envios pues salen altos aun, asi que por ahora prefiero hacer mis diseños de esta manera monocara y con sus puentes con sencillez como para que otros interesados puedan facilmente replicarlos y aplicarlos de forma didactica mas que todo pues ya sabemos que para una aplicacion real o comercial tienen opciones mas potentes y modernas ,
Ademas construir modulos son muy practicos y nos evitan muchas selvas como la que encontre aqui en este video donde uno ajeno se termina perdiendo jeje


----------



## Gudino Roberto duberlin (Oct 29, 2020)

El tema retrocomputadoras, serán siempre un clásico. 
Respecto a un mayor detallado de la arquitectura del procesador, pues podría hacer una versión en 4bit simulable, para que sea más claro.


----------



## juanje (Oct 29, 2020)

Algien puede pasarme un compilador en ensamblador o en C para la familia intel de los 8085 - 8088 ?


----------



## Dr. Zoidberg (Oct 29, 2020)

juanje dijo:


> un compilador en ensamblador o en C para la familia intel de los 8085 - 8088


No es lo mismo! El 8085 es de 8 bits y el 8088 es de 16 bits.

Esto parece gratis para el 8085...si te funcionara el link. A mí nó: https://webcache.googleusercontent....=7&hl=es-419&ct=clnk&gl=ar&client=firefox-b-d
Este es otro que si está: azman/my1asm85

Para el 8088 va cualquiera que genere código para el 8086, como el Turbo C de Borland... por ahí aún se consigue gratis


----------



## avefenix586 (Oct 30, 2020)

En esta imagen les muestro el desarrollo de los modulos PPI, PIC, ACIA, PTC 

La primera imagen corresponde al Controlador Programable de interrupciones , asi que el sistema contara con 8 lineas de peticion de interrupciones , una de las interrupciones corresponde o estara atendiendo la trasmision serial del Terminal de la PC cuando le va trasmitiendo los caracteres uno a uno , en un primer momento para poner a puesta la configuracion del 82C59 la comunicacion en serie se hara por la linea NMI interrupcion no enmascarable hasta dejar a punto la configuracion del 82C59 y luego se le conectara a la IRQ designada que en este caso es la IRQ2 , incluso uno podria usar la linea NMI y olvidarse del 82C59 pero no seria lo deseable y mas bien la linea NMI hay que usarla para otra finalidad de alta prioridad .

El modulo PPI es el mismo que se usa para el del Z80 pero con la configuracion de buses correspondiente al modulo del 8088, si se requiere podriamos hasta conectar dos modulos PPI por si se requiere mas salidas y seleccionar con jumper su direccion de habilitacion para evitar conflictos.

El modulo ACIA esta en dos versiones, con las pruebas que hize con el Z80 con la configuracion funcionando a 57600 baudios fue estable asi que esa sera la frecuencia de trabajo, tambien para este modulo se usara un cristal de 3.6864 Mhz, una version trabaja solo con esa velocidad de 57600 baudios mientras que la otra version lleva adicionalmente un 74LS90  contador de decadas configurado como divisor 6 con lo que la frecuencia se divide entre 6 y obtenemos 9600 baudios seleccionables mediante un jumper , esto por si se quiere trabajar con algun dispositivo que corre solo a esa velocidad de 9600 baudios, tambien se puede usar esa tarjeta y no colocarle el 74LS90 con lo que se comportaria como la tarjeta simplificada y ya cuando se requiera menor velocidad se le adiciona el divisor.

Y por ultimo vemos la imagen del PTC 8253 en desarrollo , para fines de temporizacion o generacion de señales periodicas , one shot, generador de onda cuadrada , temporizador o contador para lo cual tendriamos 3 channels, se me ocurre que se podria conectar una de las salidas al reset del sistema para utilizarlo como Watchdog asi como en los microcontroladores , otra de las salidas puede ser para conectarla a un amplificador como LM386 y a su parlantito para generar sonidos y el otro channel disponible para algun uso que se nos ocurra jeje


----------



## avefenix586 (Oct 31, 2020)

Esta nota que se me aparecio mientras buscaba mas material del 8088 , esos japoneses parece que se enteraron que hay locos (como yo)  por alli que siguen usando este chip  que lo lanzan nuevamente pero mas para tenerlo como coleccion de la prehistoria de la computacion porque de conseguirle el resto de componentes para armar una PC XT completa esta mas remoto , alli dice que no se garantiza el funcionamiento del chip 8088-2 y mas es como para tener un adorno en tu escritorio para coleccionistas, osea no vayan a ser como las versiones chinas que pueden ser cualquier chip y lo han retiquetado nomas , en todo caso de que si sea un procesador funcional debieron hacerles un rediseñado con mejoras como que por dentro corra a 50 mhz o que incluya el coprocesador 8087 en su interior y algunos dispositivos mas o quizas un diseño que lo asemejen a un microcontrolador pero sin dejar su compatibilidad con el 8088 , pero bueno sino les es posible meterlo en una PC al menos lo pueden usar en artificios que andan por alli en internet o tambien hecharlo a andar con este sistema que andamos preparando pacientemente aqui en el foro jeje









						Japón resucita el Intel 8088, un procesador de 8 bits a 8 MHz
					

El coleccionismo de tecnología tiene en Japón a uno de sus mayores paraísos, y la vuelta a la vida del mítico Intel 8088 es un claro ejemplo de ello. Algunos mercados de Akihabara han puesto a la venta grandes cantidades de dicho procesador, un chip que fue lanzado en 1978 y que tiene la...




					www.muycomputer.com


----------



## D@rkbytes (Nov 1, 2020)

avefenix586 dijo:


> Esos japoneses parece que se enteraron que hay locos (como yo) por allí que siguen usando este chip.


----------



## avefenix586 (Nov 4, 2020)

Junto con la compra de los micros w65c816S tambien pedi cuatro de estas memorias HM628512 (dos en dos en diferentes tiendas)  ademas de otros chips variados, estas memorias fueron las primeras que quize probar o testear en mi TL866 que las soporta como memoria ram standar 628512, de este resultado tendria un buen dia o no jeje, coloque la memoria en el zocalo y le di a testear , despues de  unos segundos arrojo un error codigo 31 de que no reconoce o no lee dispositivo algo asi , habia comprado en total 4 de esas memorias que en la imagen se ven asi maltratadas , rayadas como si las hubieran lijado, pero curiosamente el nombre se ve bien , me da la impresion que han sido reetiquetadas, y bueno probe la segunda , la tercera y la cuarta, y todos dieron error codigo 31 entonces me dije "estos chinos la volvieron a hacer!!"  pero se me ocurrio probar la configuracion de memoria standar 628256 y pues luego de las pruebas tambien arrojaron error de codigo 31 , ya me decia que parece que no sirven completamente , pero segui insistiendo y cambie la configuracion a memoria standar 628128 y ohhh sorpresa  alli si pasaron la prueba los 4 olimpicamente con lo que se determina que son realmente memorias de 128 kilobytes  y no 512 kilobytes como dice en el cuerpo, lo cual es dar gato por liebre y si tendria alegato para reclamarles  no?  , que mal porque ahora no podra implementar ese modulo de memoria de 512 Kbytes  porque de seguro estas memorias reetiquetadas han inundado el mercado chino asi como lo estan haciendo con los sensores de temperatura LM35 que ya he comprado como 5 veces en diferentes tiendas y resultan ser simples transistores NPN , una tienda ahora puso en su aviso "seleccione version original o version china" y ni con eso porque en los comentarios se lee que igual les andan cabeceando porque asi pida uno originales que cuesta mas , igual les envian la version china reetiquetada jeje. en los comentarios de la tienda de estas memorias le han puesto recibido ok pero parece que no las han probado o es una loteria y para mala suerte me toco las  truchas. si alguien las compra en alguna tienda online y comprueba que estan buenas osea son genuinas de capacidad 512 kbytes pues que nos pase el enlace 




Y pues ya quedo tambien terminado el modulo de los temporizadores del PTC 8553/54 con lo que practicamente ya esta casi completo los modulos basicos para el sistema minimo con el 8088 , en la imagen se a dispuesto hacia la parte superior los tres canales del PTC agrupados de tres en tres  es decir las señales OUT 0 , CLK0 y Gate 0 agrupados,   lo mismo para el canal 1 y canal 2  con ligera separacion, ademas este modulo tiene su propio generador de señal clock  que deberia ser de 1 mhz, la idea de que tenga su propio reloj propio es para que sea independiente de la velocidad del microprocesador al que si le hariamos trabajar hasta la velocidad que soporte, en la parte donde dice "clk" tenemos unos jumpers con los que se puede conectar la frecuencia principal de 1 mhz a la entrada CLK respectiva de cada contador y si no se conecta es porque el usuario piensa usar esa entrada CLK x con un reloj externo ya sea un timer 555 o cualquier otra señal , ademas tambien tenemos que la salida Out del canal 0 se deriva hacia el bus de señales y se conecta a la IRQ1 del 8259  del mismo modo que el ACIA 6850 se conecta al IRQ 2 , y pues solo habria que crearle su servicio de atencion para el vector que le corresponda, alli hay que seguir clamando por el forista Artiworldx para que aparezca jeje.    
Bueno ya solo faltaria como modulos adicionales un ADC para el cual usaremos el ADC0808 de 8 bits de resolucion y pues el modulo de dispositivos I2C  , aproposito Gudino para su  super computadora de 32 bits tambien piensa implementarle una interface I2C? , bueno ahora solo faltaria construirlo todo en fisico y echarlo a andar con su  bootloader respectivo, mas adelante viene la preparacion de la tarjeta principal en modo maximo con soporte para el 8087 que usaria los mismos modulos y slots del 8088 en modo minimo.


----------



## Gudino Roberto duberlin (Nov 4, 2020)

Hola, en cuánto a nomenclatura de memorias, siempre se específica la capacidad en Kilobits.
Porque pueden venir organizadas en 8bits, 16bits o Word, etc
Por ejem. La memoria 62256, es una RAM estática de 32Kb x8 lo que arroja 256Kbits.


----------



## avefenix586 (Nov 4, 2020)

Gudino la memoria RAM que encargue es de capacidad total de 512 Kbytes osea 1/2 Megabyte  o tambien 4000 kilobits  aprox. en un solo chip, su codigo es HM628512 no 62512  que es diferente pero me enviaron una de 128 Kbytes que  viene en el mismo empaque de 32 pines Dip por eso esta reetiquetada o disfrazada , ya los conozco a esos chinos no es la primera vez que hacen eso, cada cierto tiempo que les compro algo salen con alguna sorpresa incluso mandan chips muertos pero al comprar un lote de 10 que vengan 2 o 3 fallados o inservibles es hasta aceptable, si habia leido en los comentarios del producto que eran memorias de segunda pero la cosa era que funcionara a toda su capacidad y no recortada, alli le adjunto la datasheet de esta memoria que pedi pero que me enviaron gato por liebre , no mas cuando compre el microprocesador  W65C816S se comentaba que era un R65C02 disfrazado o reetiquetados pero bueno ya cuando haga las pruebas de rigor me dare cuenta si me timaron en eso tambien jeje



HM628512 512 Kbytes


----------



## avefenix586 (Nov 6, 2020)

Aqui haciendo correr el 8088 con un oscilador integrado de 4 mhz a travez de dos contadores CD4040 en cascada para ralentizarlo y pues no es tan imprescindible usar el generador de reloj 8284 por si no se consigue asi que alternativamente podria acondicionar la tarjeta principal a una version con oscilador de inversores y/o oscilador integrado de 4 pines, el oscilador con inversores seria para usar un cristal de baja velocidad de 4 a 6 Mhz y el oscilador integrado para frecuencias de 8 a 10 Mhz  con la version 8088-1 , el que si es nesesario es el 74LS573 que pude comprobar que para este caso no se requiere de una compuerta inversora adicional para la señal ALE sino que va directo a su entrada latch para almacenar correctamente la direcciones multiplexadas, vaya que en la datasheet del 8088 he revisado las instrucciones de este microprocesador y no he encontrado la instruccion NOP o no existe para el 8088?  pero bueno para andar la cuenta binaria del bus de direcciones le ingrese una instruccion CLC que ocupa un byte y lo que hace es borrar el acarreo una y otra vez asi que fue valido la prueba.


----------



## Gudino Roberto duberlin (Nov 6, 2020)

Gran avance!!!🎊🎊
Referente a la instrucción NOP, lo que hago en mi arquitectura de 32bits, ya que tampoco implementé esa instrucción. Simplemente se trata de leer un dato cualquiera de cualquier registro.
En mi caso pierdo 2 ciclos de reloj.


----------



## avefenix586 (Nov 6, 2020)

Es curioso que en la datasheet se haya obviado la instruccion NOP del 8088 , a lo mejor estaria en letras pequeñitas por alli o seria algun datasheet unoficial que descargue pero si recordaba que si tenia una instruccion NOP porque alguna vez la utilize pero como no aparecio en esa datasheet me dije que estare en algun universo paralelo jeje y ahora revisando en otros documentos efectivamente alli esta la instruccion NOP que correspondia al codigo hex 90H .

Entre los chips de mi alacena habia tenido unos etiquetados como NEC V20 y alguna vez estube por botarlos pero termine dejandolos alli y tiempo despues me di con la sorpresa que eran en realidad microprocesadores 8088 diseñados por la empresa japonesa NEC con ingenieria inversa del 8088 de intel , los japoneses crearon su version que corria mas rapida osea a 10 Mhz y luego a 16 Mhz  superando al original , no solo eso sino que mejoraron su rendimiento en un 20% e incluso le agregaron nuevas instrucciones, para rematar a los de intel la version japonesa costaba mucho menos y tambien lo licenciaron a otros fabricantes , pero no podia faltar que intel  demandara a NEC por copiarle sus microprocesadores hasta con microcodigo pero al final llegaron a un acuerdo, vaya que a partir del V20 los japoneses tambien lanzaron todo un familion de chips compatibles V30, V40, V50 y mas variedades, hasta chips que contenian ya todos los chips de apoyo de la PC-XT como el PTC, PPIO, PIC, DMA, Video en un solo chip excepto la memoria , solo les falto lanzar una version con el 8087 incorporado tambien y que corra a 50 Mhz  ,  asi que ahora no boto un chip antes de revisar en internet si puede servir para algo y sino pues que se vaya directo a la fundicion casera a extraerles el poco oro y plata de su interior , no eso no hago jeje


----------



## JoseM. (Nov 11, 2020)

Y en una computadora así funcionará, por ejemplo, programa para el comercio binomo windows app?


----------



## avefenix586 (Nov 12, 2020)

No sabria si una aplicacion actual funcionaria en una CPU 8088 pero en cambio creo que si podriamos regresar a la Luna con esta computadora modular para reemplazar a la computadora de vuelo original del Apolo 11


----------



## JoseM. (Nov 12, 2020)

Buena idea!


----------



## avefenix586 (Nov 29, 2020)

Ayer tuve una jornada larga en mi laboratorio de batman jeje, y pues empeze a manufacturar casi todas las tarjetas que son parte del Sistema Minimo para 8088 con el dichoso sistema de la plancha, asi que alli la primera imagen corresponde a la placa principal donde se alojara solo el microprocesador , su reloj , latchs y buffers , a la par que esta placa esta lista ya iba trabajando en paralelo el diseño de la placa del modo maximo del 8088 que soportaria a su compañero de mil hazañas osea al co-procesador matematico el 8087 entonces serian como batman y robin? o el llanero solitario y toro? o el avispon verde y kato? jeje, la placa para el 8088-8087 esta en avanzes del 70% y pues tiene que ser compatible con las señales que viajan hacia el slot de memorias e I/O sino seria como construir otros modulos propios , en el modo minimo el 8088 tiene 3 señales que gobiernan la memoria y dispositivos I/O que son /WR , /RD e IO/M mientras que en el modo maximo se les ocurrio la grandisima idea de que el 8288 se encargue de separarlas en hasta 6 señales  /RD , /WR para memoria y tambien sus respectivas para I/O con lo que  tenemos 4 pero ademas hay dos señales mas para escritura lenta con lo que llegan a 6 señales y pues eso complica la cosa , aunque por alli se me ocurrio una idea para tomar esas señales y regenerar las 3 señales del modo minimo del 8088 claro en el papel pero vamos a ver si funcionan bien en fisico antes de darle luz verde a esa placa principal, entonces si resulta bien solo seria cuestion de sustituirla manteniendo intacto todo el conjunto de la placa de slots y sus modulos sin alterarse nada. 
En la parte inferior justo encima donde va la leyenda del sistema minimo  8088 hay una linea solitaria que tiene un proposito pero mas para la placa del modo maximo, por esa linea ira una señal INT de peticion de interrupcion desde el co-procesador matematico 8087  hacia el modulo 8259  que se podria usar o no y  esa linea tiene su prolongacion  en la placa de slot para recibirla mediante un cable solitario dirigiendose a la Int 7 del 8259.

En la siguiente imagen de cuatro modulos, las dos tarjetitas de arriba son el modulo 82C59 encargado de de las interrupciones y a su lado el modulo de las comunicaciones seriales MC68B50 claro que podemos usar cualquier otro chip UART , me gustaria mas adelante usar algun chip que contenga en su interior dos canales seriales TX y RX  asi uno se usa para comunicarse con la PC y el otro lo usamos para otros menesteres o aplicaciones como puede ser conectarle un modulo Bluetooh y pues enlazar comandos desde un celular pero aun asi si se puede hacer duplicando la tarjeta ACIA y asignandole otra direccion habilitada , eso si lo he dejado configurado para permitir usar dos ACIA o dos PPI 82C55 mediante seleccion de jumpers de tal modo que en esa direccion disponible la podemos utilizar para un duplicado o bien de un modulo PPI o bien un modulo ACIA (o uno o el otro no ambos ) en cambio el modulo de interrupciones tiene una direccion de seleccion fija osea no podemos andar cambiandole de direccion con los jumpers y asi sera mejor, eso tambien lo he implementado para el modulo PIC y PTC del sistema minimo Z80.
Debajo vemos los modulos del PPi 82C55 y el Modulo PTC 82C53/54 , bueno el modulo PPI para este caso ya mencionamos que tiene dos direcciones habiles seleccionables por un jumper de ese modo podriamos instalarle 2 modulos PPI siendo una lo habitual y la segunda la ampliacion por si nos faltara mas lineas de input/output para algun uso , en cambio el modulo PTC  82C54 al igual que el de interrupciones solo tiene una direccion fija y no va ningun selector de jumper, esto lo he dispuesto asi porque es preferible que los modulos PIC y PTC tengan una direccion fija para la hora de andar diseñandole algun programa no se anden mareando con ello jeje, en el caso del modulo I2C tambien esta previsto que tendra una linea de direccion tambien fija . 
Para el caso de entablar la comunicacion serial nesesitamos tambien el modulo 82C59 instalado porque tenemos que usar las interrupciones, pero a manera de prueba podria usar la linea /NMI hasta dejar a punto la rutina de interrupcion manejada por el propio 82C59 y dejamos luego la linea NMI para emergencias como corresponde.   




en estas siguientes dos tarjetitas  vemos los dos modulos de memoria una para la RAM 62256 y otro para la EEprom 28C256 con los cuales podemos ya tener nuestro bootloader , las rutinas de servicio , programas, utilitarios , lo que venga en gana hasta su propio sistema operativo como mencionaba el colega que inicio el hilo Antiworldx creo que le llamaba S.O. Texxon o algo asi (me sono a Texmex jeje) , mire Artiwoldx lo que andamos avanzando y no se nos aparece por estos lares,  en las publicaciones anteriores presente mas modulos de RAM y EEprom pero uno puede usar el modulo que se ajuste a la memoria que disponga o pueda conseguir y si tiene solo una 6116 a la mano pues le preparamos su modulo tambien a la medida jeje

Estos dos modulos que vemos a continuacion mas una tarjetita en la cabecera que tiene su proposito tambien , bueno ambas tarjetas son para alojar chips de memoria RAM de capacidad de hasta 512K bytes , ya sea en chip dip de 32 pines o en uno version SMD, no he tenido buena suerte con la compra de este por internet porque los chinos tramposos me enviaron una memoria de 128 kbytes reetiquetada y aun asi mande mi reclamo no me lo dieron por valido y pues fue como que te vendieran un chip de 50 centavos de dolar a un precio de 3 dolares , de vender miles de estos chips truculentos ya los chinos se estan forrando jeje, bueno algunas  veces se pierde ni modo pero bueno en caso de conseguirse un chip genuino HM628512 para eso esta ese modulo que tambien te serviria para alojar un chip 628128 dip  de 128 k que es compatible en pines y que tambien habia encargado pero aun no llegan en la marca de samsung KM681000 y en cambio el KM684000 vendria a ser tambien de 512 kbytes (me estoy tentando a pedirlos)  pero habra que tener suerte si no te los truquean tambien jeje, , bueno el modulo que dice RAM 512K SMD como su nombre lo dice es para alojarle un chip smd de 512 Kbytes que se suelda en la tarjetas de arriba a manera de adaptador y de alli se sienta sobre la tarjeta modular, algo peculiar pero tiene su razon de ser , este modulo lo prepare porque por azares del destino tengo entre mis chips un par de 628512  en version smd que compre hace tiempo (mas economicos que el dip)  y lo tenia alli olvidados en mi alacena, espero que al prepararlo y probarlo no me de contra la pared de que tambien a sido reetiquetado que ya me voy a una cantina por un tequila a desahogarme jeje


Asi que la tarde de ayer fue una jornada larga encerrado en mi taller pensando en que mejor de una vez lo hago todo los modulos que tengo pendientes y no me he olvidado tampoco del 6502 que he dejado a un lado por el momento y tendra que venir despues de este en cuando tenga terminado los diseños de sus modulos, 
habran notado que de todo estas tarjetitas  falta algo no? , Bingo!! es la tarjeta del slots que aloja a las memorias e I/O y sin esta pues como va a trabajar el microprocesador, pues esta tendra tres presentaciones , una compacta , una intermedia y la otra ampliada, uno puede optar por cualquiera de ellas e igual le sera funcional cualquiera solo le limitara el numero de modulos de memoria o de I/O a instalar  y como aun no me decidi por cual version armar lo deje pendiente para la proxima semana .


----------



## avefenix586 (Dic 3, 2020)

Y esta seria el respectivo modulo de señales I2C, 1-wire y SPI para nuestro sistema modular con 8088 que incluye su memoria eeprom y su RTC con salida de interrupcion hacia un pin del 82C59 , entre el eeprom y el RTC hay dos terminales que dicen GND y Bat + , alli es donde coincidiria el portapila del CR2032 pero puesto o acomodado en la otra cara, asi nuestro RTC seguira corriendo con la hora actual para aplicaciones que requieran tiempo real. Hace unos dias me llego tambien el co-procesador matematico 8087-1 de 10 mhz que por ahora no puedo comprobar su funcionamiento y saber si es uno autentico de esa velocidad o si los chinos la volvieron a hacer una transa, una forma seria quizas conectandolo a un arduino y enviandole y recibiendo datos para evaluarlo.  


Y entonces estos serian los 4 modelos de slots que acompañan a la placa principal, veremos que se distinguen por el numero de conectores tanto para alojar a los modulos de memoria como para los modulos de entrada/salida , asi que uno puede implementar cualquiera de ellos que las señales son las mismas y solo sera mas compacto o extendido para alojar los modulos , en la parte inferior de la tarjeta slots hay un conector solitario de dos pines, ese terminal se dirige hacia un entrada de la interrupcion 7 del 82C59 que proviene desde la placa principal en modo maximo desde la salida int de 8087, asi que para el caso de la tarjeta de modo minimo no se usaria esa linea dispuesta alli.


----------



## DJ T3 (Dic 3, 2020)

Recuerdo que en una placa que me encontre tenia un RTC bastante grande que quizas acompañe mejor al proyecto, mas que el DS1307 que es mas actual. Creo que era paralelo, pero no estoy seguro. Si recuerdo cual era, lo publico.


----------



## Gudino Roberto duberlin (Dic 3, 2020)

DJ T3 dijo:


> Recuerdo que en una placa que me encontre tenia un RTC bastante grande que quizas acompañe mejor al proyecto, mas que el DS1307 que es mas actual. Creo que era paralelo, pero no estoy seguro. Si recuerdo cual era, lo publico.


Quizás el DS1287, que lo he visto en muchos sistemas antiguos.


----------



## avefenix586 (Dic 3, 2020)

Si de estos tipos de RTC he visto tambien en las placas que vienen con su bateria interna para 10 años , algunos las abren y le conectan una bateria externamente,  me imagino que si los chinos las venden deben ser tambien de segunda quizas, este tipo de RTC se puede utilizar con los micros que tienen el bus de datos y direcciones multiplexado como el 8085 y el 8088, asi que si seria factible usarlo tambien como parte de los modulos de aprendizajes puesto que nuestro slot extendido soportaria hasta 7 dispositivos , pero aun asi el conjunto de señales I2C , 1 wire y SPI ya lo tenia previsto para un modulo y por eso se adjunta la memoria eeprom y el DS1307 de paso, eran como implicitas el uso de esos dispositivos con la disposicion de esas señales, pero claro que le podemos hacer tambien un modulo para ese DS1287 y cuanto dispositivo sea factible para enchufar a nuestro sistema minimo, pero en caso de salida a un monitor vga alli lo que usaria seria mas una de esas pantallas lcd de 20 x 4 caracteres o una graficas de 128 x 64 o incluso hay otros modulos de pantalla de 480 x 320 y a color que ya se lo dejaria a los mas avanzados por que alli si yo ya me pierdo jeje, a lo mejor tambien tengamos a alguien conocedor de software de lenguajes en el foro que pueda tomar un codigo *.ino de arduino y mediante una aplicacion en visualbasic pueda compilarse a codigo assembler del 8088 no? , porque lo que si quisiera es implementarle que desde la PC se usara una IDE con lenguaje de alto nivel como el C o el Basic y que nos genere el archivo hex listo para cargarlo en lugar de interpretes o compiladores incorporados en su misma eeprom , pero como sugieren que si tenga su bios de servicios basicos donde apoyarse. librerias y aplicaciones basicas , bueno yo mas me dedico a implementar el hardware y su bootloader y a travez de este ya el sistema deberia ir desarrollandose y evolucionando sin estar sacandole la eeprom de programa a cada rato para estar reescribeindola salvo ya tenga un cambio de version. que se optimiza, asi que el funcionamiento de su independencia de una PC esta soportado en un medio de almacenamiento desde donde cargara su programa guardado que en este caso es el 24C256


----------



## DJ T3 (Dic 4, 2020)

Igualmente al que me referia no era a ese presisamente, era un integrado comun, con bateria externa, si mal no recuerdo. Lastima tire la placa, y me tengo que fijar entre los miles de datasheet que tengo, si logro recordar cual era.
Asi mismo, como parte de la inclusion de esos protocolos, no esta mal lo que implementaste.
Te felicito, y espero termines pronto, asi ya arrancas con todo


----------



## DownBabylon (Dic 4, 2020)

Quisiera preguntar a los entendidos en este tema,supongo que un microcontrolador moderno realiza las tareas que este diseño realiza pero lo que me interesa saber es; Este sistema en cuestiones intelectuales sirve para: ¿Entender el funcionamiento de un sistema logico combinacional? O si se es entendido en este tema; ¿Es factible mejorar el diseño para aplicaciones mas robustas?
Me interesa saber su opinion ya que mi interes reside en sistemas de este tipo.


----------



## DJ T3 (Dic 5, 2020)

Sobre la primera pregunta, se tiene que programar un sistema operativo completo desde cero, o modificar uno existente con el fin de adaptarlo al hardware actual, asi que si, sirve para entender el funcionamiento de todos los procesos y configuraciones.
Sobre la otra pregunta, obvio que se puede mejorar, pero ya eso depende de qué tanto sepas o a donde queres llegar con el proyecto.

Hablo (escribo) de mi opinion, la cual puede no ser acertada.


----------



## avefenix586 (Dic 6, 2020)

Downbabylon por supuesto que hay microcontroladores actuales muy potentes en un solo chip que pueden suplir por mucho a este diseño para las aplicaciones apropiadas, ahora diseñan maravillas de chips corriendo a velocidades mas altas de decenas de megahertz, como esos ARM que tienen hasta 2 nucleos con un FPU ,corriendo a 80  o 100 mhz e incluyendo  demas dispositivos todo en una sola oblea y por casi menos de 10 dolares, pero se llega a un punto de la industria en que ya se condensa todo en un chip araña especie de caja negra misteriosa, y pues asi como muchos electronicos, aficionados, hobbistas parte de nuestra curiosidad nos lleva a ver, casi palpar , descubrir y aprender como funciona esa caja negra y que mejor que diseccionar por asi decirlo un microcontrolador o un microcomputador en sus partes basicas para estudiar, comprender, el funcionamiento de las partes que lo componen y de alli entender el todo y entonces ya podemos despegar con el desarrollo del software alrededor de este hardware en especifico.
Por alli en youtube alguien que construye un dispositivo de este tipo de la onda de los retrocomputadores y a la pregunta de "porque lo haces ?"  dirigiendose a que actualmente hay microcontroladores sofisticados , dsps, avr, arm, etc etc que los superan de lejos ,  el da respuesta de "porque quiero y porque puedo" lo cual me hizo soltar una sonrisa jeje su respuesta fue temprana pero mas adelante de su video desarrolla mas su respuesta, hay personas del ramo electronico o hobbistas que lo toman como todo un reto, como el joven que construye con circuitos discretos smd un microprocesador  "monster 6502"  en una gran placa muy vistoza con leds indicadores del funcionamiento basado justamente en el microprocesador clasico R6502 que lo pueden ver en youtube y otro mas osado al construir toda una computadora desmenuzada en sus componentes mas elementales osea con puros transistores y leds que ocupa un area de varios metros cuadrados, y alli nomas cerca tenemos al colega Gudino con su supercomputador de 32 bits con logica discreta y en un tiempo capaz nos sorprendera con uno de 64 bits y con doble nucleo.
Bueno en nuestro caso el diseño de este sistema modular con 8088 tiene orientacion didactica para aprendizaje de forma modular por componentes a modo de un rompecabezas que se va armando y  complementadose, por ejemplo podria un profesor tomarlo para enseñarle a sus alumnos como funciona una microcomputadora desde un modelo basico, con algo asi creo que se puede profundizar mas en el estudio o el refuerzo , ahora como dices si alguien quisiera darle una aplicacion mas robusta creo que si seria posible pero alli ya se tendria que tener en cuenta cumplir con los  parametros electricos de las normas respectivas. por ejemplo que procesadores llevaran las sondas espaciales? no creo que mas potentes que pemtiums uno jeje
Ya casi este sistema modular esta preparado en cuanto a sus circuitos impresos fisicos pero por falta de tiempo aun no he podido armarlo para testearlos para luego publicar los circuitos finales y para comenzar con el desarrollo de algun software, aplicaciones o S.O. y pues alli los que deseen podran participar dando alcanzes, sugerencias,  aportaciones de codigo etc etc .


----------



## avefenix586 (Dic 12, 2020)

DJ t3 ese modulo RTC no sera este de motorola? 



Siguiendo con los avanzes del sistema minimo con 8088, alli pueden ver que ando en fase de soldado de componentes y los puentes con cablecillos desnudo, sobre los puentes  no corto a la medida sino me daria estress asi que les paso los cables, los tenso y anclo a los extremos doblandolo y ya despues de soldar paso a cortar todos los sobrantes , como el metodo de la plancha tiene sus deficiencias en varias partes las pistas no me han quedado bien y tengo que parcharlas con cables, pero hay otra deficiencia que me aparece cuando quiero hacer mis propios circuitos impresos y es el taladrado de estos, en los comercios electronicos la broca mas pequeña que encuentro me deja agujeros muy sueltos para los chips con lo que hay que meterle soldadura de mas para rellenarlos, no hay una medida mas fina comercialmente que encuentre pero cuando lo mando hacer alli si me entregan las placas con unos agujeros mas finos, alguien me menciono que usan unas brocas especiales importadas y costosas de no se que aleacion que no recuerdo que es mas fino y resistente , pero bueno alguna vez conseguire esas brocas ultrafinas , ya ando avanzando con estas placas impresas y veran que son como 10 , entre ellas dos corresponden al sistema del Z80, entonces quedan 8 que son las modulos de ACIA, PPI, PTC, PIC y de memoria EEPROM y RAM en diferentes capacidades de memorias para probar y eso que faltan unas 4 o 5 mas pero claro el que ya tenga pensado que memoria usara ya solo se prepara ese modulo que corresponda, si estas tarjetas las mandara hacer a los chinos del PCBway me quedarian bien profesionales pero bueno al final les pasare un barniz de proteccion y de paso para disimular las imperfecciones.
Artiworldx mencionaba que pensaba usar su sistema 8088 para calculos de derivadas o transformadas de fourier pero como yo no soy matematico ni fisico no entender muy bien de ello o como implementar tales funciones o aplicaciones pero claro que me gustaria que las pudiera hacer, si es posible hasta calcular las orbitas de los planetas o incluso algo de inteligencia artificial o vida artificial viviendo dentro del sistema jeje


----------



## Gudino Roberto duberlin (Dic 12, 2020)

Para taladrar orificios para pines de circuitos integrados, utilizo broca de 0.75mm
No son muy costosas, en Argentina rondaría el valor de 1 USD, aprox.


----------

