Definiciones: (direcciones con respecto a la tarjeta del procesador)
A0-A23: <-> 24 bit Address bus
D0-D7: <-> 8 bit Data bus
R/*W: <-> 1 = Read - 0 = Write to bus
IO/*MEM: <-> 1 = IO Access - 0 = Memory Access
*DMARQ: <- Direct Memory Access ReQuest, pide al procesador acceso al bus del sistema
*DMAAK: -> Direct Memory Access AcKnowledge, el procesador otorga control del bus del sistema, pone sus buses de direcciones y datos, y la linea R/W en alta impedancia
*IRQ: <- Interrupt ReQuest, peticion de interrupcion enmascarable
*NMI: <- Non Maskable Interrupt, interrupcion no enmascarable
*RESET: -> System Reset
BA: <-> Bus Available, el bus master no esta accediendo al bus del sistema
*VP: -> Vector Pull, el procesador va a leer un vector de interrupcion
*STACK: -> El procesador esta accediendo al area de stack
MODE: -> Procesor -> 0 = Z80, 1 = 65xx/68xx
*WAIT: <- Insertar Wait States
*EXROM: -> External ROM select
*FETCH: -> El procesador va a cargar el siguiente opcode
CPUCLK: -> Reloj del procesador
16MHz: -> Reloj principal 16 MHz
*CONFIGIN: -> Entrada seleccion autoconfig.
*CONFIGOUT: <- Salida cadena selección autoconfig, la salida de un slot va conectada a *CONFIGIN del siguiente slot.
CINH <- Clock INHibit
Esto es un bus diseñado para trabajar sincronizado con un reloj de 16MHz, por lo cual el Z180 deberia trabajar a 4MHz (el maximo para ese micro es 6MHz) y el 65816 o 65C02 deberia trabajar a 8, 4, 2 o 1 MHz (ya que el unico reporte que hay sobre ese micro probado a 16MHz dice que es inestable). La razon para esta decision esta en el sistema de video que se esta diseñando, que requeriria estar sincronizado con el sistema, y ya que por ahora 4MHz es mas que suficiente, esa seria la velocidad elegida para empezar. Para el futuro, en el Z180 no se estaria desperdiciando tanto poder de procesamiento, asi que las complicaciones de usar esos 2MHz extras no se si valdrian la pena, pero en los chips de WDC, que pueden trabajar hasta 14MHz, probablemente se podria destinar una zona de memoria especial donde el procesador no este conectado ni a las E/S ni al bus, como para hacer calculos y otros procesos de datos a 14MHz, para luego volver a la velocidad normal para utilizar los resultados. Pero para esto falta mucho, y ademas a mas de 4MHz la circuiteria deberia rediseñarse con componentes mas apropiados, por lo cual queda como tarea para cuando todo ya este funcionando a 4MHz.
El espacio de memoria total disponible en el bus es el del 65816, es decir 16MB.
En cuanto a los microprocesadores todavia no llego nada, asi que estoy rescatando la placa que empece a armar con un 6510 para ver si hago algunas pruebas basicas, pero el primer problema a resolver sigue siendo la ROM. Lo primero que quise hacer fue simular una ROM usando un PIC a 20MHz, leyendo el bus de direcciones e implementando la ROM mediante tablas, pero despues de hacer calculos vi que la velocidad no es suficiente para un 6510 a 1MHz, y hacerlo correr mas lento o agregarle wait states solo para que funcione con esa ROM emulada perderia la gracia, ya que la idea era probar en el micro real y a velocidad real las rutinas criticas en temporizacion, como manejo de tarjetas SD, RS232, etc. Lo siguiente fue considerar usar un PIC como bootloader, para cargar en RAM (en la zona de ROM) un pequeño codigo para el arranque del sistema, el cual se encargaria de leer el resto de la ROM desde una EEPROM SPI, desde tarjeta SD, por RS232 o por medio de una señal de audio.
La idea era utilizar un PIC16F628A o similar, para no usar uno de 40 pines que no serviria mas que para eso. La implementacion que mas me convencio fue la de cargar un codigo de hasta 256 bytes en la ultima parte de los 64K (recordar que es un 65xx), el cual decodificaria una señal de audio y cargaria el resto de la ROM ya por medio del 6502. Se utilizaria un sistema propio que permitiria cargar 8K en alrededor de 33 segundos, se puede hacer mas rapido pero me parecio interesante limitar la señal a menos de 8KHz de ancho de banda, para que si uno quisiera se pudiera cargar el audio desde cassette, para mayor efecto retro.
Pero por el momento estoy viendo si puedo usar una EPROM 2732A-35 que tengo y no se si funciona.