querubin escribió: ↑16 Nov 2017, 22:59
Gracias en cuanto pueda lo pruebo.
Como siempre, al empezar en algo nuevo me surgen nuevas dudas. Una de ellas creo que la he resuelto y si no me equivoco es que donde hay una 27C128 se puede poner una 27C256 o una 27C512. La segunda, y no me aclaro en internet, es en referencia a como configurar los datos para grabarla. Me explico, el .bin del kernal del C64 es de 8K. Pues bien, para unirle otro kernal en una 27C128(16K), en una 27C256(32K) o en una 27C512(64K) creo que hay que colocar cada kernal en una posición concreta para luego, mediante un interruptor, seleccionar una u otra.
¿Como se haría esto para cada caso?.¿En las memorias sobredimensionadas habría que rellenar el espacio vacio?. ¿Esto se aplicaría como norma general o exlcusivamente para los kernals del C64?.
Te lo intento explicar de forma un poco general para que saques tus conclusiones:
Para direccionar 16 Kbytes necesitarías 14 bits, ¿de acuerdo? Eso significa que por normal general, el chip 27C128 tendrá 14 pines de entrada para especificarle la dirección, de A0 a A13.
Por tanto, si el ordenador usa originalmente una de estas memorias, habrá probablemente 14 líneas de dirección que utilizará para seleccionar qué posición de esos 16K quiere leer.
Si nos vamos a una 27C256, necesitaríamos una línea más. Puedes verlo como que esta línea adicional te permite seleccionar entre entre los primeros 16K del chip o los segundos. El ordenador no va utilizar esta línea ya que sólo necesita direccionar 16K, pero nosotros podríamos, mediante un interruptor, decidir si en este pin ponemos de manera fija un 0 lógico o un 1 lógico. De este modo, si el kernal ocupa 16K y grabas dos kernal en un 27C256, el interruptor te permitiría conmutar entre los dos. Simplemente tendrías que grabar los dos kernal de manera consecutiva en la EPROM.
Si lo que queremos es usar una 27C256 con un único kernal, podemos grabar el mismo kernal repetido en los 16K bajos y en los 16K altos. De este modo, indistintamente del valor que pongamos en la línea de dirección alta (A14), leeríamos el mismo valor.
Para un 27C512 sería equivalente. La diferencia es que ahora tenemos dos líneas adicionales de dirección (A14 y A15) y por tanto podemos elegir mediante estos dos bits cuatro combinaciones poniendo a cero o a uno cada una de las líneas. En este caso podemos grabar cuatro kernals de 16K y mediante interruptores seleccionar los valores de las líneas altas de dirección.
Lo importante, de manera general, es comparar el pinout de los diferentes chips que queremos utilizar para ver que son compatibles y ver como están conectadas las línesa de dirección adicionales en el esquema de la placa. Podría ser que estén ya conectadas a GND por ejemplo, con lo cual tendrías que aislarla para poder ponerle un interruptor (por ejemplo, levantar la patilla del zócalo).
También es necesario ver si el pinout de los 27Cxxx es compatible con el de la ROM original, a veces hay que hacer algún conexionado adicional debido a la ubicación de las señales de habilitación como CE o OE.