Computadora casera con procesador 8088 (no PC)

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

L_NEC-D70108C-5.jpg
 
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 :)

agc.gif
 
Última edición:
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.
IMG_20201129_163258574.jpg
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.



IMG_20201129_163335374.jpg
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
IMG_20201129_163451216.jpg
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
IMG_20201129_163423378.jpg

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 .
 
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.

I2C.jpg
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.
2 con 5.jpg3 con 5.jpg2 con 7 .jpg3 con 7.jpg
 
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.
 
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

s-l400.jpgs-l400 (1).jpg
 
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
 
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.
 
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.
 
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 .
 
DJ t3 ese modulo RTC no sera este de motorola?

mc146818.jpg

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

IMG_20201212_160837333.jpg
 
Atrás
Arriba