Artaburu escribió:DaD, me imagino que la rutina la vas a usar mucho así que, en vez de usar una posición variable con el heap, usar una posición fija para devolver los datos, algo de tiempo se ganará.
Buena idea lo de almacenar el valor en una posición fija, es cierto que se gana velocidad. Pero sólo un inconveniente, que no puede ser reentrante en la misma expresión, es decir, que así no se puede utilizar varias veces en la misma expresión. Por ejemplo Res%=XYDir%(0,0)-XYDir%(5,5) daría resultados inesperados. Si no se va a utilizar la función de esta forma, pues perfecto.
Artaburu escribió:DaD, me imagino que la rutina la vas a usar mucho así que, en vez de usar una posición variable con el heap, usar una posición fija para devolver los datos, algo de tiempo se ganará.
Buena idea lo de almacenar el valor en una posición fija, es cierto que se gana velocidad. Pero sólo un inconveniente, que no puede ser reentrante en la misma expresión, es decir, que así no se puede utilizar varias veces en la misma expresión. Por ejemplo Res%=XYDir%(0,0)-XYDir%(5,5) daría resultados inesperados. Si no se va a utilizar la función de esta forma, pues perfecto.
Sí creo que se podría ganar velocidad al tomar los parámetros quizás con esto (si no me equivoco):
- Código: Seleccionar todo
"LD HL,6" + _
"ADD HL,SP ; HL = SP+6" + _
"LD A,(HL) ; A = byte bajo de primer parámetro" + _
"DEC HL" + _
"DEC HL" + _
"LD L,(HL) ; L = byte bajo de segundo parámetro" + _
...