Por el sonido de la misma, usted desea construir un microordenador de 8 bits que tendrá el código almacenado en una NVRAM que es externa al procesador; La computadora no tendrá otra memoria no volátil que no sea la NVRAM, la cual estará sin inicializar, y usted necesita una manera de ponerla al día.
Mi recomendación sería conectar la computadora de modo que la lectura de un cierto rango de direcciones active un ciclo de lectura de uno de los chips de interfaz FIFO USB a paralelo de FTDI, y proporcione un medio (interruptor, puente, o lo que sea) para que la lectura de la parte del espacio de direcciones NVRAM que contiene el vector de restablecimiento se redireccionará para que también utilice el chip FTDI. Otro rango de direcciones debe permitir que el 6502 compruebe si el chip FTDI está listo (conjunto de bits 6 = listo)
Luego mantenga la CPU en reinicio, alimente un programa corto (probablemente de 64 bytes o menos) sin bucle en el chip FTDI a través del puerto USB, y suelte el reinicio. La CPU debe obtener del chip FTDI las instrucciones que se guardaron en él y ejecutarlas. No sé qué CPU está utilizando, pero para el 6502 el código podría tener un aspecto similar al siguiente:
00 D0 -- Reset vector -- Assumes FTDI chip is mapped at D000-D0FF
A9 2C -- Load A with #$2C
85 80 -- Store it to $80
A9 00 -- Load A with #$00
85 81 -- Store it to $81
85 86 -- Also to $86
A9 D8 85 82 -- Load A with $D8 and store it to 82
A9 50 85 83 -- Load A with $50 and store it to 83
A9 FB 85 84 -- Load A with $FB and store it to 84
A9 AD 85 85 -- Load A with $AD and store it to 85
A9 D0 85 87 -- Load A with $D0 and store it to 87
A9 48 85 88 -- Load A with $48 and store it to 88
A9 70 85 89 -- Load A with $70 and store it to 89
A2 F5 -- Load X with #$F5
86 8A -- Store X to $8A
AA 00 -- Transfer X to S (second byte is dummy cycle)
4C 80 00 -- Jump to code loaded at $0080
El código anterior, 49 bytes almacenará a $ 0080 el siguiente programa corto, con el puntero de pila inicializado a $ F5
$0180: 2C 00 D8 : BIT $D800 ; Read status
$0183: D8 50 : BVC $0080 ; Branch if not ready
$0185: AD 00 D0 : LDA $D000 ; Read data
$0188: 48 : PHA
$0189: 70 F5 : BVS $0080 ; Loop
Esto leerá bytes individuales del chip FTDI, verificando el estado antes de cada uno y los colocará en la pila. Una vez que se hayan insertado suficientes bytes, el siguiente sobrescribirá el segundo byte de la instrucción de bifurcación ($ 008A) y permitirá que se ejecute el nuevo código.