Proyecto ZX80 (cerrada tirada inicial beta de 10 unidades)

Moderador: Fundadores

Responder
Avatar de Usuario
España_Comunidad_Valenciana wilco2009
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 7700
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 51 times
Contactar:

Proyecto ZX80 (cerrada tirada inicial beta de 10 unidades)

Mensaje por wilco2009 » 15 Mar 2014, 02:04

A raiz de leer el proyecto de Antoniovillena en la que basándose en un proyecto existente (ver aquí) intentaban reditar el zx-80, me ha picado el gusanillo de construir un ordenador completo.
Y qué puede haber más apropiado que un simple zx80 que está basado completamente en electrónica discreta.

En los ratos libres que tengo me he puesto manos a la obra y después de intentar entender la rutina de display de la ROM y el funcionamiento del hardware (menuda marcianada que se curró el diseñador :o ), he copiado el esquema y ya tengo enrutada la placa.

Me he tomado la libertad de sustituir los dos chips de 1K x 4bits de RAM por unos solo de 32K x 8bits, y la ROM de 8Kb por una EPROM de 32Kb que es mucho más barata y con alguna sencilla modificación podría convertir el ordenador en un "2 en uno", ZX80, ZX81. Aunque sobra espacio, es más barata una EPROM de 32Kb que una de 16Kb.

También he sustituido el teclado de membrana por pulsadores manteniendo la posibilidad de añadir una membrana original, y manteniendo exactamente el tamaño de la placa original, pero reenrutando todo para que el resultado sea una placa de sólo dos capas.

Quizás no sea un enfoque tan purista como el de Antonio, pero a mi me sirve como ejercicio práctico para continuar aprendiendo, e incluso encaja exactamente en una caja original (El próximo objetivo sería fabricar una caja identica a la original, ya sea con una impresora o por vacuoformado). :D

Aquí os dejo el esquema y como quedaría la placa principal.

Imagen

Imagen

Imagen

Y aqui la placa auxiliar que se conecta al bus trasero y que le da las nuevas funcionalidades.

Imagen

https://goo.gl/photos/HCjJ5Z9i7Pd1rETW8

El listado de componentes lo podéis encontrar aquí:

Aquí os dejo los fallos que he encontrado hasta ahora y que tendréis que corregir en primer lugar:
Conectar el pin central del cristal a masa
Girar 180º el 7805
No soldar D11
No soldar R43
Conectar /WR en la patilla 27 de la RAM
Conectar /WAIT a +5V con una resistencia de 1K
Desconectar el HALT de R23 pero manteniendo conectada la señal HALT con el pin 3 de IC16
C15 es de 220pF
Seguidamente las modificaciones que hay que hacer para eliminar la ampliación del zx81 y dejar la placa exactamente igual que el zx80:
Quitar U1, U2, U3, U4, U5, U6
Unir IC11.10 con IC11.11
Unir IC13.10 con IC16.10
Unir IC19.5 con R32 patilla derecha y con IC21.1
Poner JP3 en 1-2
Poner JP1 en 2-3
Para usar el LM
Poner JP6 en 2-3
Poner JP5
Para usar el video del zx80
Poner JP6 en 1-2
Quitar JP5
Para facilitar la faena de montaje y el repaso del circuito, aquí os dejo los esquemas y la placa que se ha mandado fabricar en eagle:

La placa funciona como un zx80, pero tiene selector para poder convertirlo en un zx81.

Otra modificación que tiene es que genera el black porch con un circuito de jose_leandro para que no pase como en el original que no se ve con las teles modernas.

La parte del teclado permite dos opciones:
- Soldar microswitches
- Acoplar una membrana de zx80, gracias al entramado que he añadido en la parte interior de la huella de los microswitches.

Los anclajes y agujeros encajan perfectamente con los de la caja del zx80 real, por lo que se podría poner dentro de una de estas cajas, aunque como estas son prácticamente imposibles de conseguir alvaroalea está trabando en un diseño para impresora 3D


Como alternativa hay un método (vacuformado) que parece prometedor y que ha propuesto groovydrifter : https://www.youtube.com/watch?v=fucs_brr5Yo

Y aquí una interpretación de como funciona el hardware.

La interpretación la he hecho basándome en el esquema publicado aquí y el listado en ensamblador de la ROM que se puede encontrar aquí.

La explicación viene dividida según las partes lógicas en las que podemos dividir el hardware.

Generador de NOPs

El circuito siguiente es el que se encarga de comprobar que estamos refrescando la pantalla.

La salida del circuito (patilla 6 de IC16) es igual a 0 cuando /HALT = 1, A15 = 1 y D6=0, osea siempre y cuando no estemos ejecutando un HALT (/HALT y D6=0) y estemos ejecutando algo en la segunda mitad de la memoria (A15=1), que como ya habíamos dicho solo ocurre cuando refrescamos la pantalla. Al comprobar que /HALT = 1 y D6 = 0 descartamos también el momento en el que ya hemos llegado a fin de línea.

Imagen

La salida de este circuito va a parar al pin 9 de IC 17 (ver abajo) lo que hace que sólo tengamos un 0 a la salida de este “OR” (patilla 8 de IC 17) en el caso de que el circuito anterior sea 0 y /M1=0, es decir estemos pintando la pantalla y estemos en el ciclo de fetch.

Imagen

Al tener un 0 en el pin 8 de IC 17 tendremos un 1 en el pin 2 de IC 15, lo que hará 0 todos los bits de datos (D0..D7) conectados al conjunto de NOPs de la figura de arriba.

Secuencia de visualización de video

IC5 es un circuito 74LS373 que consta de 8 latchs triestado. En este caso tenemos siempre a 0 la habilitación (patilla 1) por lo que los latch se utilizan como biestables.

Dicho circuito es el que se encarga de capturar cada código de carácter que es puesto es el bus de datos por la CPU cuando se está en la fase de refresco de pantalla. Estos datos acaban en el bus, ya que la CPU está ejecutando la zona correspondiente a DFile y por tanto poniendo el contenido de dicha memoria en el bus de datos, aunque como dijimos antes sólo se ejecutan NOPs ya que estos datos son sustituidos por ceros en la fase fetch.

En dicho circuito, capturamos únicamente los bits D0..D5 que son los 64 caracteres posibles y D7 que nos indica si hay que invertir el vídeo.

La patilla 11 (LE) que es activa en alta, es la que deja o no pasar los datos desde el bus de datos.

La patilla 11 se activa cuando alcanzamos la fase de RFSH, teniendo a uno la salida del circuito siguiente (patilla 4 de IC13):

Imagen

La salida de IC5 es redirigida a los tres chips multiplexores IC6, IC7 e IC8 que seleccionan entre un acceso a ROM estándar o un acceso a la ROM de caracteres cuando estamos en la fase de refresco. La señal de selección (S) de dichos chips está conectada directamente a /RFSH, por lo que cuando /RFSH = 0 se seleccionan las entradas que llegan desde IC5, interpretando el código presente en el bus de datos como una dirección que apunta a la tabla de caracteres en ROM.

La correspondencia es como sigue:
D0 -> A3, D1 –> A4, D2 –> A5, D3 –> A6, D4 –> A7, D5 –> A8.

Estos 6 bits nos direccionan el carácter dentro de la tabla de caracteres.

El scanline del carácter a representar viene determinado por los tres bits inferiores, por lo que las 3 líneas inferiores se alimentan de un contador de 3 bits que reside en IC21 y que va contando cíclicamente al compás del sincronismo horizontal los 8 scanlines de cada carácter, y es reseteado cuando se dispara el sincronismo vertical.

Con lo anterior tenemos la dirección correspondiente al desplazamiento dentro de la tabla de caracteres del scanline a representar, pero nos falta añadir la dirección de tabla dentro de la ROM.

Los bits A9, A10 y A11 que nos faltan vienen directamente del bus de direcciones debido que estamos en el ciclo de refresco y en el programa de la ROM (antes de activar las interrupciones) hemos cargado convenientemente el registro I para que apunte a la tabla de caracteres en ROM:

Código: Seleccionar todo

        LD      A,$0E           ; set the I register to $0E to tell
        LD      I,A             ; the video hardware where to find
                                ; the character set ($0E00).
Los datos de salida de la ROM, van a parar a la entrada de IC9 que se encarga de serializar los datos para enviarlos al display.

Por otro lado, el valor que entra de D7 en IC5, va a parar al circuito que controla la inversión del vídeo de los caracteres.

Imagen

Este dato entra por la patilla 5 de IC11 acabando en un OR exclusivo con el dato serializado que viene por la patilla 4 de IC20, por lo que si D7 está a 1 el dato que llega se invertirá.

serialización de los datos de video.

La serialización la realiza IC9.

Se utiliza un reloj de 6,5MHz que le llega directamente del cristal. Este reloj entra por el pin 2.

La salida es normalmente el pin 7 (/Q) produciendo un video de caracteres blancos sobre fondo negro, pero puede modificarse utilizando el pin 9 (Q).

El pin 1 (S/L) habilita la serialización, permitiendo que fluyan los datos sólo cuando el pin 9 de IC5, que es un flip-flop, es igual a cero. Esto ocurre cuando estamos en la fase de refresco de pantalla indicado por el circuito de la página anterior (patilla 6 de IC16)

Los datos vienen desde el circuito que multiplexa el acceso a la ROM entre la CPU o el sistema de visualización. Este circuito está formado por los chips IC6, IC7 e IC8.

La visualización vista desde el lado del Z80.


Lo primero que llama la atención en el esquema es que /INT está conectado directamente con A6, eso significa que la línea correspondiente a la activación de las interrupciones enmascarables se activa simplemente accediendo a cualquier dirección cuyo bit 6 sea 0.

Leyendo el listado de la ROM del Z80, cuando echas un vistazo a la rutina de servicio de interrupciones, lo que te encuentras es que se carga en HL la dirección de la zona de pantalla+32Kb, inmediatamente después se activan las interrupciones con la instrucción “EI” y después hace un salto incondicional a dicha dirección, como si de un trozo de programa se tratara.

El hardware monitoriza la señal A15, por lo que todo acceso a una posición de memoria superior a 32Kb el sistema lo interpreta como que se está refrescando la pantalla y en lugar de meter en el bus de datos el contenido de la memoria, durante la fase de fetch, mete en dicho bus un 0, que es el código de la instrucción NOP o “No Operation”.

El programa continúa ejecutando NOPs hasta que se encuentra con una instrucción HALT en la memoria (en los zx80 y 81 se utiliza un HALT o $76 como fin de línea), momento en el cual el hardware deja pasar dicha instrucción y deja al procesador parado hasta que se active /INT. (La comprobación de si es una instrucción HALT la hace el hardware comprobando si el bit 6 del bus de datos está a 1, ya que su código es $76)
/INT se activa una vez ejecutados los 32 NOPs correspondientes a una línea de pantalla. Esto es así porque el registro R se incrementa cada vez que se ejecuta una instrucción, y este se carga adecuadamente, antes de hacer el salto a la zona de pantalla, con un valor tal que, después incrementarse 33 veces su bit 6 se hace 0.

El contenido del registro R, que es el encargado de direccionar el refresco de la memoria, va a parar al bus de direcciones al final del ciclo “fetch” o de búsqueda de instrucciones, por lo que A6=0 y se activa /INT, interrumpiendo la pausa en la que se encontraba el procesador (con HALT) y continuando con la ejecución del programa.

Generador del sincronismo vertical/Decodificación de entrada/salida


En el ZX80, el sincronismo vertical se genera aprovechando la lectura del teclado. Es decir el programa de la ROM del ZX80 se las ingenia para hacer una lectura de teclado cada vez que toca generar un sincronismo vertical, por lo que el hardware aprovecha la misma lógica para dicha lectura y para la generación de VSYNC.
El siguiente circuito es el encargado de detectar una lectura de teclado.

Imagen

Cuando realizamos una lectura de teclado (puerto $FEFE) comprobamos únicamente que A0=0, lo que implica que interpretaremos como tal cualquier lectura de un puerto par.
Mediante las dos puertas OR de IC17 de la derecha del circuito comprobamos que /RD=0, /IORQ = 0 y A0=0 dando como resultado la señal /KBD.
Si tenemos una escritura de puerto la salida 8 de IC11 estará a 1 por loa que el clear del tercer biestable estará a 1, como el preset está a 1 el biestable dejará pasar el dato y como no es posible una lectura y una escritura de manera simultánea tendremos a 0 la salida 11 de IC11.
Por otro lado, si tenemos una lectura de puerto la salida 11 de IC11 sera 1 por lo que se reseteará el contador de scanlines. Adicionalmente la salida 8 de IC cambiará a 0 lo que hará un reset en el último flip-flop de la derecha generando el pulso de VSYNC.
En cualquier otro momento en el que no estemos realizando una lectura o una escritura se mantendrá el estado anterior.

La exactitud del momento en que salta este sincronismo depende exclusivamente de lanzar la lectura del teclado en el momento correcto, por lo que para ser capaz de ajustar el programa de la ROM debe perder algo de tiempo en el último momento.

Código: Seleccionar todo

;; KEYBOARD
L013F:  LD      B,$08           ; (7) set counter to 8

;; KB-1
L0141:  DJNZ    L0141           ; (13,8) and loop back 7 times. (7*13+8)

                                ;       "WASTE 99 T-STATES"

;; KB-2
L0143:  LD      HL,($401E)      ; (16) fetch two-byte FRAMES value.
        INC     HL              ; ( 6) increment
        LD      ($401E),HL      ; (16) and store in FRAMES again.

; now read the keyboard

        LD      HL,$FFFF        ; (10) prepare a buffer
        LD      B,$FE           ; ( 7) set B to $FE 
        LD      C,B             ; ( 4) now BC is $FEFE - slightly slower than
                                ; the equally time-critical LD BC,$FEFE  (10)  
                                ; that is used in the ZX81 ROM.             
        IN      A,(C)           ; (12) now read port $FEFE the half-row with 
                                ; the shift key.

                                ; "START FRAME SYNC"
Como el ZX80 sufre del mismo mal que las primeras versiones del ZX81, ya que la ULA presente en estos últimos es en gran medida un empaquetado del circuito original del zx80.

Es decir, no se genera la señal de blackporch, por lo que la imagen aparece completamente negra en las teles modernas.
La placa incorpora dos soluciones a este problema, seleccionables mediante jumpers:

- Solución propuesta por jose_leandro, añadiendo un LM. http://trastero.speccy.org/cosas/JL/zx8 ... video.html

- Solución propuesta por Grant Searle en su página sobre el zx80, basada en unas pocas puertas lógica.

La solución de jose_leandro se ve mejor pero es necesario ajustarla mediante un par de resistencias variables.

Etiquetas para la caja:

Imagen
Imagen
Imagen

Teclados (imagen sacada de la web de Grant Searle)
Logo (imagen modificada de la web de Grant Searle)
Rayas
Funciones
Imagen

Lista de interesados de la primera tirada de 10 unidades.

1- wilco2009 - Placa + componentes, Pagado.
2- flopping - Placa.
3- Dandare - Placa, Pagado
4- BCH - Placa + componentes, Pagado
5- evas2 - Placa, Pagado
6- overCLK* - Placa + componentes, Pagado - > Habi
7- shikitin - Placa + componentes, Pagado -> carmeloco
8- vidamia* - Placa + componentes, Pagado -> jose_leandro
9- Sinclair200 (M) - Placa + componentes, Pagado ->
10- Mikes - Placa + componentes.
Última edición por wilco2009 el 18 Ene 2017, 01:04, editado 28 veces en total.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.

Avatar de Usuario
España_Comunidad_Valenciana flopping
Fundador
Fundador
Mensajes: 8821
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Has thanked: 2 times
Been thanked: 73 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por flopping » 15 Mar 2014, 03:01

Estas hecho un monstruo, (pero de feo), jajajaaja.....vamos a revisar este proyecto, que pinta muy bien y seria una lastima que tuviera algún fallito, a ver si somos capaces de dejarlo feten, jejejeeje....yo quiero uno o si son pequeños dos, jajajajaa....salu2.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide que padezco.
(C) 1982-2019, 37 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Avatar de Usuario
España Goody
Fundador
Fundador
Mensajes: 4594
Registrado: 31 Mar 2013, 23:02
Ubicación: En mi barrio de 1986
Has thanked: 502 times
Been thanked: 49 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por Goody » 15 Mar 2014, 04:12

Jo macho, empezaste queriendo reparar un cpc y ya te estás liando a construir desde cero un ordenata :o :o Eso es evolucionar y lo demás tonterías, eres el number "guan" Wilco :-* :-*
La càpsula del temps
Mi mercadillo
El Goody de Va de Retro, Vintagenarios, RetroWiki, ZONADEPRUEBAS y Las Noches Skyperas, el resto es coincidencia ;)

Avatar de Usuario
Sinclair
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 3101
Registrado: 04 Jul 2013, 23:42
Contactar:

Re: Futuro proyecto ZX80

Mensaje por Sinclair » 15 Mar 2014, 09:16

Buena iniciativa, aunque creo que poco tiene que ver ya con el proyecto que dices ya que lo que se pretendía en aquel era conservar el enrutando de la placa original aunque al final hubo que modificarlo un poco para ajustarlo a una placa de tamaño estándar (por el tema de costes), creo que era un centímetro más pequeña de lado o algo así.
Prácticamente todo curro el fue de Hark0 que simplemente con software de vectorización parece que logró retrazar el ruteado lo más fiel posible al original, aunque a falta de que alguien lo revisara, ahí se quedó el invento.

Existe en el meracdo ya alguna de estas placas pero como lo que quieres es practicar creo que este va a ser un ejercicio cojonudo y si además consigues fabricarla a un precio más "popular" respetando al menos las dimensiones yo también queré una ;)

Por cierto, tengo alguna documentación que recopilé para el anterior proyecto, te la enviaré por si te sirve.
Imagen

Avatar de Usuario
España antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1585
Registrado: 02 Abr 2013, 19:06
Has thanked: 1 time
Been thanked: 11 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por antoniovillena » 15 Mar 2014, 12:44

Básicamente Sinclair ha respondido todo lo que iba a decir. Que el responsable del proyecto es Hark0, yo básicamente le ayudaba con indicaciones a la hora de mover las pistas. Y que lo que se hizo fue ajustar la placa original a un tamaño de 20x15 para que nos la pudiera fabricar seeedstudio.

Avatar de Usuario
España_Comunidad_Valenciana flopping
Fundador
Fundador
Mensajes: 8821
Registrado: 29 Mar 2013, 15:26
Ubicación: Valencia
Has thanked: 2 times
Been thanked: 73 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por flopping » 15 Mar 2014, 13:04

Es que esto no es, ni el mismo proyecto, ni la continuación del mismo, solo ha comentado que se ha inspirado en ese proyecto, para hacer su propio clon, esto es simplemente una copia o clon no exacto, de un ZX80, ajustado al gusto del usuario que lo esta haciendo, ya que le ha puesto mas RAM, ha cambiado la ROM por otra mas grande y con posibilidad de tener varias Roms en una, como la del ZX80 y la del ZX81, no lleva modulador y es mas que seguro que se le añada el circuito de generación del pórtico posterior, para evitar el efecto de pantalla negra o eso o un inversor de video.

Vamos que esto se podría decir que es una traducción libre de un usuario que quiere tener una maquina parecida a un original, pero que no quiere que sea exacta, ni necesita que lo sea, probablemente se ajustara a lo mas parecida posible al original, por eso de tener algo muy parecido o similar, pero hoy día, nadie en su sano juicio creo que se planteara hacer una maquina igual al original, ya que ciertos componentes o ya no se encuentran o seria una locura el conseguirlos.

Pero vamos que esto no lo tomemos como una copia exacta o lo mas fiel al original, esto es una interpretación libre de una maquina y que se ajustara a las necesidades o gustos del que la esta diseñando, nada mas, no pretendamos meter esto en una caja original de un ZX80 y que se ajuste a la perfección, creo que no es esa la intención de este proyecto, aunque quizá al final si se pueda meter en ella, ya veremos como continua el tema y como acaba, demos tiempo al proyecto, ya que esto acaba de empezar, salu2.
No me hago responsable de mis post pues estan escritos bajo la influencia del alcohol y drogas psicotropicas, por la esquizofrenia paranoide que padezco.
(C) 1982-2019, 37 años de ZX Spectrum.
http://www.va-de-retro.com/ un foro "diferente".

Avatar de Usuario
España antoniovillena
Demonio segundo orden
Demonio segundo orden
Mensajes: 1585
Registrado: 02 Abr 2013, 19:06
Has thanked: 1 time
Been thanked: 11 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por antoniovillena » 15 Mar 2014, 17:20

Hay otras memorias que igual las consigues más fácilmente, son las mismas que empleé en el clon de júpiter ace. 6116, de 2K x 8. De todas formas las más accesibles con diferencia son las 62256, aunque son un desperdicio de espacio

Avatar de Usuario
España_Comunidad_Valenciana wilco2009
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 7700
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 51 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por wilco2009 » 15 Mar 2014, 20:34

Como dice flopping, no era mi intención hacer pensar que esto fuera una continuación del otro proyecto. Simplemente he mencionado que leer el otro proyecto me inspiró y me motivó para ponerme a ello. Sería una auténtica pena que no lo terminaran.

En el proyecto de Antonio y Hark0 hay un enlace a un proyecto sobre el que han basado su esfuerzo, y que contenía documentación muy interesante. Sobre todo un esquema completo del ZX80 y una explicación muy detallada del funcionamiento de este.

La lectura del funcionamiento del display es una auténtica marcianada ;? , y me cautivo y absorbió toda mi atención durante varias horas. La verdad es que me costó mucho de entender, pero ahora creo que ya lo tengo más o menos claro (o eso pienso).

Lo primero que me llamó llamó la atención en el esquema es que /INT está conectado directamente con A6!!!! :o :o , eso significa que la línea correspondiente a la activación de las interrupciones enmascarables se activa simplemente accediendo a cualquier dirección cuyo bit 6 sea 0. :?
Ni corto ni perezoso me busqué el listado de la ROM del ZX80 a ver si era capaz de descifrar el enigma, pero os aseguro que aún es más enigmático lo que allí te encuentras.
Quizás a alguien que lo conozca no se lo parezca, pero a mí me pareció un jeroglífico indescifrable.
Cuando echas un vistazo a la rutina de servicio de interrupciones, lo que te encuentras es que se carga en HL la dirección de la zona de pantalla+32Kb, inmediatamente después se activan las interrupciones con la instrucción “EI” y después hace un salto incondicional a dicha dirección!!!!!!. Como si de un trozo de programa se tratara.
Echándole un vistazo al hardware y leyendo un poco las explicaciones que por ahí circulan he empezado a ver la luz.
Resulta que el hardware monitoriza la señal A15, por lo que todo acceso a una posición de memoria superior a 32Kb el sistema lo interpreta como que se está refrescando la pantalla y en lugar de meter en el bus de datos el contenido de la memoria, mete en dicho bus un 0 a piñón, que es el código de la instrucción NOP o “No Operation”.
El programa continúa ejecutando NOPs hasta que se encuentra con una instrucción HALT en la memoria (en los zx80 y 81 se utiliza un HALT o $76 como fin de línea), momento en el cual el hardware deja pasar dicha instrucción y deja al procesador en estado catatónico hasta que se active /INT. (La comprobación de si es una instrucción HALT la hace el hardware comprobando si el bit 6 del bus de datos está a 1, ya que su código es $76)

/INT se activa una vez ejecutados los 32 NOPs correspondientes a una línea de pantalla. Esto es así porque el registro R se incrementa cada vez que se ejecuta una instrucción, y este se carga adecuadamente, antes de hacer el salto a la zona de pantalla, con un valor tal que, después incrementarse 33 veces su bit 6 se hace 0.

El contenido del registro R, que es el encargado de direccionar el refresco de la memoria, va a parar al bus de direcciones al final del ciclo “fetch” o de búsqueda de instrucciones, por lo que A6=0 y se activa /INT, interrumpiendo la pausa en la que se encontraba el procesador (con HALT) y continuando con la ejecución del programa.

Puff, menudo tostón que os he soltado. Pero bueno, a mi me ha apasionado el descifrar semejante disparate que ha permitido a Sinclair abaratar costes hasta lo impensable.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.

Avatar de Usuario
jgonza
USUARIO BANEADO
USUARIO BANEADO
Mensajes: 759
Registrado: 16 Abr 2013, 20:19
Ubicación: Alboraya

Re: Futuro proyecto ZX80

Mensaje por jgonza » 15 Mar 2014, 21:36

Wilco estás hecho todo un Steve Wosniak

Enviado desde mi C2105 mediante Tapatalk

Avatar de Usuario
España_Comunidad_Valenciana wilco2009
Hermano de Lucifer
Hermano de Lucifer
Mensajes: 7700
Registrado: 01 Abr 2013, 23:47
Ubicación: Valencia
Has thanked: 47 times
Been thanked: 51 times
Contactar:

Re: Futuro proyecto ZX80

Mensaje por wilco2009 » 15 Mar 2014, 22:08

Gracias jgonza, pero que más quisiera yo. Simplemente me hacía ilusión fabricar un ordenador desde 0, entendiendo su funcionamiento lo máximo posible, pero evidentemente, el diseño no es mio, es de Clive Sinclair :D . Y el esquema lo he copiado modificandolo mínimamente.

Ahora tocará volver modificarlo para incluir salida directa de video compuesto, ya que donde lo tengo conectado ahora mismo no se verá prácticamente en ningún televisor moderno, debido a un fallo de diseño en la generación de vídeo que tenían estos ordenadores.
"Aprender a volar es todo un arte. Aunque sólo hay que cogerle el truco. Consiste en tirarse al suelo y fallar".

Douglas Adams. Guía del autoestopista galáctico.

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 0 invitados