Mensajepor Raster » 01 Feb 2021, 23:06
Acabo de probarlo, y el resultado es... extraño. Me explico: se supone que la contienda bloquea cualquier acceso a memoria en los primeros 16K de RAM si no cae en los dos últimos Testados de cada acceso de la ULA, que dura 8Testados. Eso significa que una instrucción que intente acceder en cualquiera de los primeros 6 Testados se verá retrasada.
Yo tengo una ristra de 32 LDIs para copiar una fila entera de la pantalla, y se supone que LSI dura 16Testados, que es un múltiplo de 8, lo que significa que debería retrasarse sólo la primera, y el resto deberían encajar con precisión en los Testados que deja la ULA. Sin embargo, en Es.pectrum veo que cuando los LDIs caen durante la generación de la imagen, tardan 24Testados en lugar de 16... se retrasan ocho Testados completos...
¿Alguien sabe por qué ocurre esto? Ya tuve la precaución de poner el origen de los datos en los 32Kbytes superiores para que sólo la escritura sufra la contienda...