Por lo que he leído, lo que seguro que empeora el rendimiento es utilizar bucles de FOR anidados.
Es decir: leer una matriz de 1 dimension de 25 elementos es más eficiente que leer una de 2 dimensiones de 5x5 elementos.
El motivo está en que los bucles FOR-NEXT requieren que el intérprete del ZX busque la variable, asigne el valor, etc. y otra vel al hacer el NEXT. Por tanto cuantos más bucles peor.
Se recomienda la técnica de 'desenrollar bucles', que consiste en poner todas las instrucciones que hay en el bucle una detrás de otra. Se puede utilizar si hay pocas iteraciones
Por ejemplo, @jmpuk ha puesto este trozo de programa:
110 RESTORE 7010: FOR i=1 TO 9: FOR j=1 TO 8: READ m$(i,j): NEXT j: NEXT i
Pero sería más eficiente así usando la técnica de desenrollado de bucles:
110 RESTORE 7010: FOR i=1 TO 9: READ m$(i,1): READ m$(i,2): READ m$(i,3): varias veces :READ m$(i,8): NEXT i
Qué os parece?
He hecho los deberes... mi oferta de colaboración sigue en pie!