Efficient Basic Coding for the ZX Spectrum

https://news.ycombinator.com/rss Hits: 12
Summary

[Click here to read this in English ] Éste es el primero de una serie de artículos que explican los fundamentos de la (in)eficiencia de los programas en BASIC puro para el ZX Spectrum:I. Sobre los números de líneaII. Sobre las variablesIII. Sobre las expresionesIV. Funcionalidades diversas y medida del tiempoV. Operaciones en la pantalla basadas en caracteres El intérprete de lenguaje Sinclair BASIC incluido en la ROM del ZX Spectrum es, en muchos aspectos, una maravilla del software, concretamente de la programación en ensamblador, y daría para hablar durante mucho tiempo. En esta serie queremos destacar los puntos más importantes a tener en cuenta para que los programas escritos en ese lenguaje sean lo más eficientes posibles, en primer lugar en tiempo de ejecución, pero también en espacio ocupado en memoria. En esta primera entrega de la serie trataremos de las líneas de dichos programas; más allá de la necesidad de numerarlas, algo que no se hace desde hace décadas en ningún lenguaje de programación, está el propio hecho de la eficiencia del intérprete a la hora de manejarlas. Antes de meternos en el meollo, conviene resumir los límites que existen en esta máquina relativos a las líneas de programa: Las líneas de programa, una vez éste queda almacenado en la memoria listo para su ejecución, ocupan 2 bytes (por cierto, almacenados en formato big-endian, el único caso de este formato en el ZX). Esto podría llevar a pensar que tenemos disponibles desde la línea 0 a la 65535 (el máximo número que puede almacenarse en 2 bytes), pero no es exactamente así. A la hora de editar manualmente un programa sólo se nos permite numerar las líneas desde 1 a 9999. Si el programa es manipulado fuera del editor (se puede hacer con POKE), es posible tener la línea 0, y ésta aparecer al listarlo, pero no será editable. De la misma manera (manipulando el programa con POKE) se pueden numerar líneas por encima de la 9999; sin embargo, esto causará problemas en ejecución: muchas sentenc...

First seen: 2025-12-14 14:54

Last seen: 2025-12-15 02:56