Diferencias
Muestra las diferencias entre dos versiones de la página.
Ambos lados, revisión anterior Revisión previa Próxima revisión | Revisión previa | ||
011:software [d/m/Y H:i] – [Cuestión de ejercitarse] miguel | 011:software [d/m/Y H:i] (actual) – [Datos a introducir] miguel | ||
---|---|---|---|
Línea 10: | Línea 10: | ||
==== Cómo «cuenta» el ordenador ==== | ==== Cómo «cuenta» el ordenador ==== | ||
+ | |||
+ | {{ : | ||
Cuando nuestros remotos antepasados se plantearon el problema de numerar los objetos, decidieron en un principio, lo que parecía más evidente: utilizar los dedos de la mano. Hacían corresponder cada objeto con un dedo de la mano, y de esta forma, podían contar hasta cinco (de hecho nuestra palabra «contar» proviene de un vocablo griego que significa «hacer cinco»). Si utilizaban los dedos de ambas manos les era posible numerar un máximo de diez objetos. Posteriormente, | Cuando nuestros remotos antepasados se plantearon el problema de numerar los objetos, decidieron en un principio, lo que parecía más evidente: utilizar los dedos de la mano. Hacían corresponder cada objeto con un dedo de la mano, y de esta forma, podían contar hasta cinco (de hecho nuestra palabra «contar» proviene de un vocablo griego que significa «hacer cinco»). Si utilizaban los dedos de ambas manos les era posible numerar un máximo de diez objetos. Posteriormente, | ||
Línea 32: | Línea 34: | ||
No parece muy útil almacenar datos en la memoria si luego no podemos hacer nada con ellos. Sin embargo, todo lo que hace el ordenador depende de los datos almacenados en su memoria. Incluso las letras que salen en la pantalla están guardadas en la memoria del ordenador, ya que de lo contrario, éste no sabría escribirlas. Las letra y signos que forman el juego de caracteres del ordenador no podemos alterarlos, ya que están guardados en las 16384 primeras filas de interruptores. Pero nuestro ordenador tiene prevista la posibilidad de que nosotros le definamos una serie de caracteres para que trabaje con ellos como si se tratara de los suyos propios. Estos son los U.D.G. o gráficos definidos por el usuario, son 21 y la información para escribirlos está contenida en 168 filas de «interruptores» que sí podemos alterar. | No parece muy útil almacenar datos en la memoria si luego no podemos hacer nada con ellos. Sin embargo, todo lo que hace el ordenador depende de los datos almacenados en su memoria. Incluso las letras que salen en la pantalla están guardadas en la memoria del ordenador, ya que de lo contrario, éste no sabría escribirlas. Las letra y signos que forman el juego de caracteres del ordenador no podemos alterarlos, ya que están guardados en las 16384 primeras filas de interruptores. Pero nuestro ordenador tiene prevista la posibilidad de que nosotros le definamos una serie de caracteres para que trabaje con ellos como si se tratara de los suyos propios. Estos son los U.D.G. o gráficos definidos por el usuario, son 21 y la información para escribirlos está contenida en 168 filas de «interruptores» que sí podemos alterar. | ||
+ | |||
En primer lugar necesitamos saber en qué filas de interruptores (o más propiamente, | En primer lugar necesitamos saber en qué filas de interruptores (o más propiamente, | ||
- | El ordenador procura siempre guardar esta información en la parte de la memoria donde menos estorbe, y, por supuesto, donde no pueda ser borrada por el | + | |
- | BASIC. El lugar adecuado son, por tanto, las 168 últimas posiciones de la memoria. Como se verá, son distintas según se trate de un modelo de 16 ó de 48 K. | + | El ordenador procura siempre guardar esta información en la parte de la memoria donde menos estorbe, y, por supuesto, donde no pueda ser borrada por el BASIC. El lugar adecuado son, por tanto, las 168 últimas posiciones de la memoria. Como se verá, son distintas según se trate de un modelo de 16 ó de 48 K. |
- | Las direcciones de estas posiciones de memoria son: de la 32600 a la 32767 pra el modelo de 16K., y de la 65368 a la 65535 para el modelo de 48K. No se preocupe por tener que recordar estos números, ya que el ordenador los conoce, y nos los puede decir en cualquier momento si se lo sabemos preguntar. Cada carácter gráfico se almacena en ocho posiciones de memoria (por tanto, un carácter queda definido por los valores almacenados en 64 «interruptores»). La función USR «a» nos da la dirección de la primera de las posiciones de memoria correspondientes al gráfico definido por el usuario «a» (que es el primero de los U.D.G. y se obtiene con la «A» en modo gráfico). La función USR «b» nos dará la primera dirección del segundo gráfico, y así sucesivamente para los 21 gráficos posibles (hasta la «u»). | + | |
- | Datos a introducir | + | Las direcciones de estas posiciones de memoria son: de la 32600 a la 32767 para el modelo de 16K., y de la 65368 a la 65535 para el modelo de 48K. No se preocupe por tener que recordar estos números, ya que el ordenador los conoce, y nos los puede decir en cualquier momento si se lo sabemos preguntar. Cada carácter gráfico se almacena en ocho posiciones de memoria (por tanto, un carácter queda definido por los valores almacenados en 64 «interruptores»). La función USR «a» nos da la dirección de la primera de las posiciones de memoria correspondientes al gráfico definido por el usuario «a» (que es el primero de los U.D.G. y se obtiene con la «A» en modo gráfico). La función USR «b» nos dará la primera dirección del segundo gráfico, y así sucesivamente para los 21 gráficos posibles (hasta la «u»). |
+ | |||
+ | ==== Datos a introducir | ||
+ | |||
+ | {{ : | ||
Ahora ya sabemos que para definir un gráfico tenemos que introducir ocho datos en memoria y las direcciones donde tenemos que introducirlos. Nos falta ser capaces de saber qué datos hay que introducir para generar un determinado gráfico. | Ahora ya sabemos que para definir un gráfico tenemos que introducir ocho datos en memoria y las direcciones donde tenemos que introducirlos. Nos falta ser capaces de saber qué datos hay que introducir para generar un determinado gráfico. | ||
- | Los gráficos que podemos generar han de ajustarse a un formato determinado, | + | |
- | por unidad de superficie, más claramente se verá nuestra figura. La pantalla del Spectrum está compuesta por 45056 puntos (en informática se les llama «pi-xels») dispuestos en un rectángulo de 255 por 176 puntos. Cada punto está unido a un «interruptor» en la parte de la memoria denominada «archivo de presentación visual» (en inglés «display file»), podemos imaginarnos que cada punto es una bombilla que está iluminada cuando su correspondiente interruptor está encendido. | + | Los gráficos que podemos generar han de ajustarse a un formato determinado, |
Cada segmento horizontal de ocho puntos está controlado por el dato almacenado en una determinada posición de memoria, y un conjunto de ocho segmentos colocados uno debajo de otro constituye un carácter que podrá ser una letra, un signo, o uno de nuestros gráficos U.D.G. (por cierto, U.D.G. son las iniciales de «User Defined Grafic», que en inglés significa «Gráfico Definido por el Usuario»). | Cada segmento horizontal de ocho puntos está controlado por el dato almacenado en una determinada posición de memoria, y un conjunto de ocho segmentos colocados uno debajo de otro constituye un carácter que podrá ser una letra, un signo, o uno de nuestros gráficos U.D.G. (por cierto, U.D.G. son las iniciales de «User Defined Grafic», que en inglés significa «Gráfico Definido por el Usuario»). | ||
+ | |||
Cuando el ordenador imprime un carácter, lo que hace es trasladar los datos que figuran en los ocho bytes de memoria que definen ese carácter a los ocho bytes correspondientes del archivo de presentación visual. | Cuando el ordenador imprime un carácter, lo que hace es trasladar los datos que figuran en los ocho bytes de memoria que definen ese carácter a los ocho bytes correspondientes del archivo de presentación visual. | ||
+ | |||
Como vemos, cada carácter sea letra, signo o U.D.G., se compone de 64 puntos agrupados en un cuadrado de ocho por ocho; así que, si vamos a generar nuestro propio gráfico, deberemos empezar por coger una hoja de papel cuadriculado. Dibuje en ella un cuadrado como el de la figura 1, que abarque ocho por ocho cuadritos. | Como vemos, cada carácter sea letra, signo o U.D.G., se compone de 64 puntos agrupados en un cuadrado de ocho por ocho; así que, si vamos a generar nuestro propio gráfico, deberemos empezar por coger una hoja de papel cuadriculado. Dibuje en ella un cuadrado como el de la figura 1, que abarque ocho por ocho cuadritos. | ||
- | A continuación sombreamos los cuadritos necesarios para que aparezca el gráfico que queremos definir, supongamos que queremos que al pulsar la tecla «A» en modo «gráfico», | + | |
- | y un cuadrito en blanco, a uno apagado. | + | A continuación sombreamos los cuadritos necesarios para que aparezca el gráfico que queremos definir, supongamos que queremos que al pulsar la tecla «A» en modo «gráfico», |
Seguro que ya ha adivinado que cada fila horizontal de ocho cuadritos corresponde a una fila de ocho interruptores, | Seguro que ya ha adivinado que cada fila horizontal de ocho cuadritos corresponde a una fila de ocho interruptores, | ||
- | Dirección Configuración binaria Dato decimal | + | |
- | USR " | + | |
- | USR " | + | ^ Dirección |
- | USR " | + | | USR " |
- | USR " | + | | USR " |
- | USR " | + | | USR " |
- | USR " | + | | USR " |
- | USR " | + | | USR " |
- | USR " | + | | USR " |
- | En la primera columna | + | | USR " |
+ | | USR " | ||
+ | |||
+ | En la primera columna | ||
Para introducir esta información en memoria podríamos hacer: | Para introducir esta información en memoria podríamos hacer: | ||
- | 10 POKE USR " | + | |
- | __Un método | + | <code basic> |
+ | 10 POKE USR " | ||
+ | 20 POKE USR " | ||
+ | 30 POKE USR " | ||
+ | 40 POKE USR " | ||
+ | 50 POKE USR " | ||
+ | 60 POKE USR " | ||
+ | 70 POKE USR " | ||
+ | 80 POKE USR " | ||
+ | </ | ||
+ | |||
+ | ==== Un método | ||
Pero este método ocupa mucha memoria y es lento de teclear, así que vamos a pensar un método mejor: | Pero este método ocupa mucha memoria y es lento de teclear, así que vamos a pensar un método mejor: | ||
- | ^0 FOR n=0 TO 7 20 READ dato 30 POKE USR " | + | |
- | 50 DATA 24, | + | <code basic> |
+ | 10 FOR n = 0 TO 7 | ||
+ | 20 READ dato | ||
+ | 30 POKE USR " | ||
+ | 40 NEXT n | ||
+ | 50 DATA 24, 24, 255, 24, 24, 36, 36, 36 | ||
+ | 60 PRINT AT 10, 10; CHR$ 144 | ||
+ | </ | ||
Las cuatro primeras líneas introducen nuestros datos en memoria, la quinta contiene la lista de datos y, la sexta, nos imprime en pantalla el carácter gráfico que acabamos de generar. | Las cuatro primeras líneas introducen nuestros datos en memoria, la quinta contiene la lista de datos y, la sexta, nos imprime en pantalla el carácter gráfico que acabamos de generar. | ||
+ | |||
Si desea que el gráfico salga al pulsar la tecla " | Si desea que el gráfico salga al pulsar la tecla " | ||
+ | |||
Cuando se conecta el ordenador, estas posiciones contienen una copia de los correspondientes caracteres en mayúsculas, | Cuando se conecta el ordenador, estas posiciones contienen una copia de los correspondientes caracteres en mayúsculas, | ||
+ | |||
Confiamos en que después de leer este artículo esté en disposición de generar maravillosos gráficos para adornar sus programas. Si desea gráficos más grandes, puede hacerlo agrupando varios gráficos pequeños como seguramente habrá visto en más de un programa comercial, esta es la versión particular del Spectrum de los famosos «Sprites». | Confiamos en que después de leer este artículo esté en disposición de generar maravillosos gráficos para adornar sus programas. Si desea gráficos más grandes, puede hacerlo agrupando varios gráficos pequeños como seguramente habrá visto en más de un programa comercial, esta es la versión particular del Spectrum de los famosos «Sprites». |