jueves, 19 de noviembre de 2015

¡ Como me gustan los UDG !

No hay nada mas 8 bit, que usar gráficos de 8 bits :D

El Spectrum nos deja usar su concepto de User Defined Grahpics (UDG) para hacer cosas muy chulas.

Tenemos desde el UDG-A hasta el UDG-U para cargar nuestros diseños usando una plantilla de 8x8 bits.

Con el método CHR$ podemos imprimir en pantalla desde la "A" (144) hasta la "U" (154), conteniendo nuestros propios caracteres.

Vamos a pintar un reloj.

Para ello, como no podía ser de otra manera, lo vamos a diseñar usando 0 y 1.

1000 DATA BIN 00011000
1010 DATA BIN 00011000
1020 DATA BIN 00100100
1030 DATA BIN 01011010
1040 DATA BIN 00100100
1070 DATA BIN 00011000
1080 DATA BIN 00011000
1090 DATA BIN 00000000
Parece nada, ¿verdad?. Pues ya verás que chulo queda. 


















La instrucción POKE USR, nos permite cargar desde la UDG-A hasta la UDG-U nuestros diseños, para luego usarlos con CHR$.

Este programa, lee el diseño, lo asigna al carácter 144 (UDG-A) y luego lo usa con un PRINT. 

Algo muy interesante, es que además, podemos usar INK, PAPER, FLASH y todas las zarandajas que nos permite el BASIC.

10 REM *Usando UDG de 1 caracter (8x8)
20 CLS : PRINT "Dos relojes": PRINT : RESTORE 1000
30 FOR I=0 TO 7
40 READ B
50 POKE USR "A"+I,B
60 NEXT I
70 PRINT CHR$ 144;" "; INK 3; FLASH 1;CHR$ 144; INK 8
80 INPUT "Pulsa para terminar";z$: GO TO 9000
1000 DATA BIN 00011000
1010 DATA BIN 00011000
1020 DATA BIN 00100100
1030 DATA BIN 01011010
1040 DATA BIN 00100100
1070 DATA BIN 00011000
1080 DATA BIN 00011000
1090 DATA BIN 00000000
9000 FLASH 0: PRINT AT 19,1;"Termine"

El reloj de la derecha, está parpadeando aunque aquí no lo veamos (hemos usado FLASH 1). 

Para usar nuestro reloj, es tan fácil como escribir PRINT CHR$ 144 en nuestro Spectrum.

Si haces un NEW, para escribir un programa nuevo, el gráfico permanecerá en memoria.



No hay comentarios: