Carga de Pantallas: Evitar textos ficheros

Todo sobre la creación, diseño y programación de nuevo software para
nuestro Spectrum

Moderador: Sir Cilve Sinclair

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1162
Registrado: Dom Ene 09, 2011 8:55 am

Re: Carga de Pantallas: Evitar textos ficheros

Mensaje por antoniovillena » Vie Feb 15, 2013 7:28 pm

No la he sacado de ningún libro. Directamente me he puesto a mirar el código (disponible en la página de Geoff Wearmouth http://www.wearmouth.demon.co.uk/) que ya he usado para varios proyectos. Pero sí, ese libro es una buena referencia para entender cómo funciona la ROM.

En cuanto a la eficiencia es relativo. El intérprete basic guarda cada valor numérico en sus dos formas (la decimal en ASCII y la binaria en formato coma flotante de 5 bytes). Si escribes "PRINT 1" ese uno lo transformará el intérprete en 31 0e xx xx xx xx xx, es decir 7 bytes, donde 31 es el 1 en ASCII, 0e es el separador, y xx .. xx es el número codificado en coma flotante. Si prescindiéramos de la representación binaria, la ejecución sería muy lenta, porque cada vez que el intérprete se encuentre con una constante tendría que pasarla de decimal a binario. De esta forma, este paso se hace una sola vez, exactamente cuando tras teclear la orden pulsamos intro. Se podría guardar solo la parte binaria pero entonces no sabemos lo que escribió el usuario exactamente (los valores 1e3 y 1000 dan el mismo resultado).

Por cierto VAL "23739" ocupa 8 bytes, se podría hacer con 7 (y sin perder velocidad) poniendo cualquier número de un dígito seguido de la representación binaria del 23739. El problema sería que al editarlo se pierde el valor, pero como normalmente los cargadores no se editan se podría hacer.
Imagen

Avatar de Usuario
wilco2009
Freddy Hardest
Mensajes: 542
Registrado: Lun Sep 17, 2012 9:40 am
Ubicación: Valencia

Re: Carga de Pantallas: Evitar textos ficheros

Mensaje por wilco2009 » Vie Feb 15, 2013 7:45 pm

¿entonces es por una cuestión estética, para conservar el formato en el que se introdujo en número?
Bueno, eso es de una utilidad relativa.
Las calculadoras también tienen ese dilema a la hora de representar un número y lo resuelven de una manera bastante elegante.
El criterio podría ser simplemente, mostrar el número con los menos decimales posibles y en forma estándar siempre que no supere cierto número de dígitos. Si hacen falta más dígitos se utiliza la notación científica.

Avatar de Usuario
antoniovillena
Nonamed
Mensajes: 1162
Registrado: Dom Ene 09, 2011 8:55 am

Re: Carga de Pantallas: Evitar textos ficheros

Mensaje por antoniovillena » Vie Feb 15, 2013 9:29 pm

Aparte de la cuestión estética también se gana velocidad a la hora de mostrar el listado. Básicamente hay 3 alternativas:
1. Guardar sólo en formato decimal. Los listados son rápidos pero la ejecución es lenta.
2. Guardar sólo en formato binario. La ejecución es rápida pero el listado del programa es lento.
3. Guardar ambos. Ejecución y listado rápido pero se ocupa más memoria por el almacenamiento doble.

Si lo que te importa es sólo la ejecución, como he dicho antes, siempre puedes poner un número de 1 dígito en la parte decimal, ocupando sólo 7 bytes la constante. El intérprete sólo tiene en cuenta la parte binaria a la hora de ejecutar.
Imagen

Avatar de Usuario
Hark0
Freddy Hardest
Mensajes: 545
Registrado: Mar Nov 13, 2012 12:42 pm
Ubicación: Cornella de Llobregat - Barcelona
Contactar:

Re: Carga de Pantallas: Evitar textos ficheros

Mensaje por Hark0 » Sab Feb 16, 2013 6:57 am

Gracias por la aclaración... ;)

Creo que entendido algo más acerca de esta máquina.
litiopixel.blogspot.com - Desarrollo videojuegos Indie · Pixel-Art · Retroinformática · Electrónica

Avatar de Usuario
Zeit
Herbert
Mensajes: 81
Registrado: Jue Oct 22, 2009 1:49 am
Ubicación: Montevideo, Uruguay
Contactar:

Re: Carga de Pantallas: Evitar textos ficheros

Mensaje por Zeit » Mié Jul 01, 2020 5:01 pm

¿Que dirección sería la utilizada en una TS 2068 para el mismo fin?
8 bits forever!

Responder

¿Quién está conectado?

Usuarios navegando por este Foro: No hay usuarios registrados visitando el Foro y 5 invitados