011:software

Diferencias

Muestra las diferencias entre dos versiones de la página.

Enlace a la vista de comparación

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] miguel011: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 ====
 +
 +{{ :011:software_02.jpg|}}
  
 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, los árabes idearon una serie de signos que se correspondían con los diez primeros números (del cero al nueve); el número con el que se correspondía cada signo venía dado por el número de ángulos que tuviera ese signo, así el cero era un círculo que, como sabemos, no tiene ningún ángulo; el uno era una figura con un ángulo; el dos tenía dos ángulos, y así sucesivamente hasta el nueve, que era una figura con nueve ángulos. Estos signos, ligeramente modificados, son los números que han llegado hasta nuestros días, por eso se les llama con frecuencia «Números arábigos». 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, los árabes idearon una serie de signos que se correspondían con los diez primeros números (del cero al nueve); el número con el que se correspondía cada signo venía dado por el número de ángulos que tuviera ese signo, así el cero era un círculo que, como sabemos, no tiene ningún ángulo; el uno era una figura con un ángulo; el dos tenía dos ángulos, y así sucesivamente hasta el nueve, que era una figura con nueve ángulos. Estos signos, ligeramente modificados, son los números que han llegado hasta nuestros días, por eso se les llama con frecuencia «Números arábigos».
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, «posiciones de memoria») almacena el ordenador estos gráficos, y a continuación, deberemos saber qué datos hay que introducir en estas posiciones de memoria para que el ordenador nos imprima un determinado gráfico que nosotros hayamos creado. Vamos en primer lugar con el primero de los problemas. En primer lugar necesitamos saber en qué filas de interruptores (o más propiamente, «posiciones de memoria») almacena el ordenador estos gráficos, y a continuación, deberemos saber qué datos hay que introducir en estas posiciones de memoria para que el ordenador nos imprima un determinado gráfico que nosotros hayamos creado. Vamos en primer lugar con el primero de los problemas.
-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 ==== 
 + 
 +{{ :011:software_03.jpg|}} 
 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, los haremos a base de puntos que estarán tan próximos que nos parecerán una figura. Cuantos más puntos utilicemos + 
-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, los haremos a base de puntos que estarán tan próximos que nos parecerán una figura. Cuantos más puntos utilicemos 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 «pixels») dispuestos en un rectángulo de 255 por 176 puntos //(N.d.R: el dato sobre la medida de la pantalla es erróneo, el correcto es 256 por 192px)//. 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. 
 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», aparezca el hombrecito de la figura 2, así que sombrearemos los cuadritos correspondientes. Recuerde que no puede sombrear un cuadrito a medias, ya que cada cuadrito corresponde a un interruptor, y cada interruptor sólo puede estar «encendido» o «apagado»; un cuadrito sombreado corresponde a un interruptor «encendido» + 
-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», aparezca el hombrecito de la figura 2, así que sombrearemos los cuadritos correspondientes. Recuerde que no puede sombrear un cuadrito a medias, ya que cada cuadrito corresponde a un interruptor, y cada interruptor sólo puede estar «encendido» o «apagado»; un cuadrito sombreado corresponde a un interruptor «encendido» y un cuadrito en blanco, a uno apagado. 
 Seguro que ya ha adivinado que cada fila horizontal de ocho cuadritos corresponde a una fila de ocho interruptores, es decir, a un byte. Si ponemos un «cero» donde hay un cuadro en blanco, y un «uno» donde hay un cuadro sombreado, seremos capaces de calcular cuál es el dato decimal que debe contener cada una de las ocho filas de ocho interruptores. Seguro que ya ha adivinado que cada fila horizontal de ocho cuadritos corresponde a una fila de ocho interruptores, es decir, a un byte. Si ponemos un «cero» donde hay un cuadro en blanco, y un «uno» donde hay un cuadro sombreado, seremos capaces de calcular cuál es el dato decimal que debe contener cada una de las ocho filas de ocho interruptores.
-Dirección Configuración binaria Dato decimal + 
-USR "a'+0 000^000 24 + 
-USR "a"+ 1 000^000 24 +Dirección Configuración binaria Dato decimal ^ 
-USR "a"+2 1 1 1 11 1 1 1 255 +USR "a'+0 | 00011000 | 24 | 
-USR "a"+3 000^000 24 +USR "a"+1 | 00011000 | 24 | 
-USR "a"+ 4 000^000 24 +USR "a"+2 | 11111111 | 255 | 
-USR "a"+5 00^0^0 36 +USR "a"+3 | 00011000 | 24 | 
-USR "a"+6 00^00^00 36 +USR "a"+4 | 00011000 | 24 | 
-USR "a"+7 00}00^0 36 +USR "a"+5 | 00100100 | 36 | 
-En la primera columna «DIRECCION», tenemos la forma de obtener las direcciones donde almacenar los datos de la columna «DATO DECIMAL»; la columna central «CONFIGURACION BINARIA», nos da una idea de cómo quedarían colocados nuestros 64 interruptores.+USR "a"+6 | 00100100 | 36 | 
 +USR "a"+7 | 00100100 | 36 
 + 
 +En la primera columna «DIRECCIÓN», tenemos la forma de obtener las direcciones donde almacenar los datos de la columna «DATO DECIMAL»; la columna central «CONFIGURACION BINARIA», nos da una idea de cómo quedarían colocados nuestros 64 interruptores. 
 Para introducir esta información en memoria podríamos hacer: Para introducir esta información en memoria podríamos hacer:
-10 POKE USR "a"+0,24 20 POKE USR "a"+1,24 30 POKE USR "a"+2,255 40 POKE USR "a"+3,24 50 POKE USR "a"+4,24 60 POKE USR "a"+5,36 70 POKE USR "a"+6,36 80 POKE USR "a"+7,36 + 
-__Un método mejor_____+<code basic> 
 +10 POKE USR "a"+0,24 
 +20 POKE USR "a"+1,24 
 +30 POKE USR "a"+2,255 
 +40 POKE USR "a"+3,24 
 +50 POKE USR "a"+4,24 
 +60 POKE USR "a"+5,36 
 +70 POKE USR "a"+6,36 
 +80 POKE USR "a"+7,36 
 +</code> 
 + 
 +==== 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: 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 "a" + n,dato 40 NEXT n + 
-50 DATA 24,24,255,24,24,36.36,36 60 PRINT AT 10.10:CHR$ 144+<code basic> 
 +10 FOR n = 0 TO 7 
 +20 READ dato 
 +30 POKE USR "a" + n, dato 
 +40 NEXT n 
 +50 DATA 24, 24, 255, 24, 24, 3636, 36 
 +60 PRINT AT 1010CHR$ 144 
 +</code> 
 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 "B" en modo gráfico, cambie la línea 30 por POKE USR "b" + n,dato y la línea 60 por PRINT AT 10,10;CHR$ 145, de esta forma puede almacenar 21 caracteres gráficos en las letras de la "A" a la "U" que corresponde a los caracteres con códigos comprendidos entre 144 y 164. Si desea que el gráfico salga al pulsar la tecla "B" en modo gráfico, cambie la línea 30 por POKE USR "b" + n,dato y la línea 60 por PRINT AT 10,10;CHR$ 145, de esta forma puede almacenar 21 caracteres gráficos en las letras de la "A" a la "U" que corresponde a los caracteres con códigos comprendidos entre 144 y 164.
 +
 Cuando se conecta el ordenador, estas posiciones contienen una copia de los correspondientes caracteres en mayúsculas, así que no se extrañe si al pulsar la "F" en modo gráfico sin haber definido un gráfico para la "F", le sale precisamente una "F", ¿qué otra cosa podía esperar? Cuando se conecta el ordenador, estas posiciones contienen una copia de los correspondientes caracteres en mayúsculas, así que no se extrañe si al pulsar la "F" en modo gráfico sin haber definido un gráfico para la "F", le sale precisamente una "F", ¿qué otra cosa podía esperar?
 +
 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».
  • 011/software.1291157080.txt.gz
  • Última modificación: d/m/Y H:i
  • por miguel