APPLICATIONSPAO/PRESSE ★ MAS CONTROL SOBRE LA PANTALLA ★

LOGO3: Convertidor de Pantallas (Amstrad User)Applications Pao/presse
★ Ce texte vous est présenté dans sa version originale ★ 
 ★ This text is presented to you in its original version ★ 
 ★ Este texto se presenta en su versión original ★ 
 ★ Dieser Text wird in seiner Originalfassung präsentiert ★ 

Don Luis Fernando Rey Pámpano, residente en Caminomorisco (Cáceres), nos escribió una carta preguntando si era posible realizar un «hard-copy» en impresora de los gráficos realizados en LOGO3. En los AMSTRAD PCW sí es posible, pero en los CPC no. Sin embargo, con el LOGO3 de los CPC 6128 podemos salvar a disco la pantalla y usar este programa para convertirla en una pantalla normal.

LOGO3: Convertidor De Pantallas

UNA vez convertida la pantalla, podemos utilizar un programa normal de «hard-copy», como, por ejemplo, TASCOPY, para sacar por la impresora el gráfico realizado en LOGO3. Pero veamos de cerca el cómo y el porqué de la cuestión.

Cuando leimos la caria del citado lector, y dado que sabíamos de la imposibilidad de realizar la copia de pantalla con sólo pulsar una tecla (que es como se consigue en los PCW), comenzamos a pensar en posibles soluciones, Una de ellas era realizar la copia de pantalla mediante un programa escrito en LOGO, que debería ir analizando los puntos de la pantalla, activando el modo gráfico de la impresora y enviando los códigos correspondien-
tes al estado de los puntos de la pantalla, formando estos códigos por secuencias de ceros y unos en las que un punto sin pintar estaría representado por un cero y un punto pintado estaría representado por un uno,

Este proceso es el mismo que realizan los programas comerciales de «hard-copy», pero con varias diferencias. En primer lugar, programas como TASCOPY permiten obtener tonalidades de grises en función del color de cada punto de la pantalla, mientras que el programa que habíamos pensado sólo distinguiría entre punto y papel, pero no entre puntos de distintos colores.

La segunda diferencia estriba en que los programas de «hard-copy» suelen
estar escritos en lenguaje máquina, y aun así, debido a la lentitud de las impresoras en los modos gráficos, se tarda varios minutos en conseguir un volcado de pantalla. En el programa que pensábamos diseñar, dada la lentitud del LOGO3, el proceso podía llevar horas.

Por otro lado, con el programa escrito en LOGO, cada usuario tendría que realizar modificaciones para adaptarlo a los modos gráficos de su impresora, mientras que los programas comerciales suelen presentar una opción para adaptarse a una serie de tipos de impresoras.

Otra opción era salvar a disco la pantalla LOGO y cargarla desde BASIC, con lo cual bastaría utilizar un programa comercial de «hard-copy» para realizar el volcado de pantalla. Como de este modo evitamos los tres problemas citados anteriormente, nos decidimos por emprender este camino.

Cuando comenzamos a investigar vimos que el trabajo iba a ser duro. L0G03 salva las pantallas de forma muy distinta a como lo hace el BASIC, y no podíamos cargarlas directamente. Se nos presentaron todos estos problemas:

1) Mientras que el BASIC salva las pantallas con una cabecera de 64 bytes (luego, para cargarlas, espera encontrar esa cabecera), LOGO3 no utiliza cabecera alguna. Además, como CP/M utiliza la línea inferior como línea de estado, la pantalla salvada por LOGO3 guarda esa línea como sí estuviera en blanco, esto es, formada por ceros. ¡Esto hace que el BASIC se encuentre una falsa cabecera que le indica que la pantalla salvada por LOGO3 es un programa BASIC con longitud cero! Un grave problema.

2) LOGO3 comienza a sah/ar la pantalla por la esquina inferior izquierda, salvando cada línea por orden consecutivo. Además, para los que no lo sepan, hemos de indicar que las pantallas normales ocupan 16K, es decir, 16 x 1024 = 16384 bytes. Ahora bien, de cada 2K=2048 bytes hay 48 que no se utilizan. Estos 48 bytes no son siempre los mismos, sino que dependen del scroll de pantalla. Pues bien, mientras que BASIC salva la pantalla completa, incluidos esos 8 grupos de 48 bytes, LOGO3 sólo salva los bytes utilizados, esto es, 2000 x 8=16000 bytes. Así, un fichero de pantalla creado por LOGO3 es más pequeño que uno creado desde BASIC, y se carga siguiendo un orden distinto.

3) El fichero creado por LOGO3 codifica las plumas utilizadas de forma distinta al BASIC. Como LOGO3 trabaja en el MODO 1 de pantalla, vamos a ver cómo se guarda una pantalla en MODO 1 tanto en L0G03 como en BASIC.

En modo 1 podemos tener cuatro plumas diferentes, siendo una de ellas la que se utiliza como color de fondo. Por tanto, en cada byte de la memoria de pantalla necesitamos 2 bits para cada pluma (2 bits se pueden combinar de cuatro formas: 00 - 01 - 10 - 11, y cada forma corresponde a una pluma). Como un byte tiene 8 bits, podemos codificar en cada byte 8 : 2“4 puntos de pantalla o pixels.

Hasta ahí todo va bien. Sin embargo, atención a esto: en BASIC, y conside rando que numeramos los bits de un byte de derecha a izquierda y empezando por el cero, ios bits que codifican cada pixel se emparejan de este modo: 3-7 2-6 1-5 0-4 Es decir, si el bit cero (el de la derecha del byte) es 1 y el bit 4 (el quinto contando desde la derecha) es cero, esto nos indica un pixel pintado con la pluma 2.

O bien, si un byte de pantalla es 10010101, tenemos:

bits 3-7=01 pluma 1
bits 2-6=10 pluma 2
bits 1-5=00 pluma 0
bits 0-4=11 pluma 3

Bueno, pues en el fichero de pantalla creado por L0G03, las parejas de bits que codifican cada pixel son:

7-6 5-4 3-2 1-0

Con to que el último ejemplo expuesto, con los cuatro puntos uno de cada pluma, sería representado por un byte 01100011. Como veis, el formato es bastante diferente.

Resumiendo, los problemas que teníamos que afrontar eran tres: cargar la pantalla creada por L0G03 sin utilizar el Sistema Operativo, decodificar la información de las plumas para recodificarla según el formato que utiliza el BASIC y recrear la pantalla escribiéndola, comenzando por la esquina inferior izquierda y por lineas consecutivas. Para conseguir todo esto hemos creado un programa mixto BASIC-código máquina. Utilizamos tres rutinas en código máquina. Una de ellas lee una ID de sector de disco, y la utilizamos para determinar el formato del disco. Otra lee directamente un sector de disco, y la utilizamos tanto para leer los sectores del directorio como para leer el fichero creado por LOGO3. Y la otra se encarga de decodificar cada byte de pantalla y escribirlo en la memoria de pantalla.

Para usarlo, basta con que tecleéis el listado y lo guardéis en un disco. En el programa LOGO con et que generéis un dibujo, incluid al final la orden SAVEPIC ”< nombre >. Por ejemplo, si queréis que la pantalla se llame DIBUJO, la instrucción será SAVEPIC "DIBUJO. LOGO3 asigna de forma automática la extensión ".PIC".

Una vez que tengáis en el disco la pantalla de LOGO, cargad y ejecutad el programa del listado. Cuando os pide el nombre del fichero creado en LOGO podéis indicar o no la extensión ”.PIC". Cuando pregunta el nombre del fichero a crear, si pulsáis RETURN directamente no se genera fichero alguno, y una vez mostrada la pantalla se espera a que pulséis una tecla para seguir.

Antes de concluir hay que hacer dos puntualizaciones:

1) Este programa no realiza copias de pantalla en impresora. Sólo se encarga de convertir una pantalla de LOGO a BASIC (que ya está bien). Si disponéis, por ejemplo, de TASCOPY configurado para vuestra impresora, una vez realizada la conversión con nuestro programa, y suponiendo que el fichero resultante lo tenéis en el disco con el nombre de DIBUJO.BIN, bastará con cargar TASCOPY y teclear lo siguiente:

MODE 1:LOAD”DIBUJO.BlN",&C000:|COPY

Y en un par de minutos tendréis la copia en impresora de la pantalla.

2) LOGO2, el LOGO que funciona sobre CP/M 2.2, no posee el procedimiento SAVEPIC, por lo que no se puede salvar a disco una pantalla creada por él. En consecuencia, las pantallas creadas por L0G02 no podremos convertirlas al formato que utiliza el BASIC.

Amstrad User

★ PUBLISHER: Amstrad User
★ YEAR: 1987
★ CONFIG: ???
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» LOGO3-Convertidor  de  Pantallas    (Amstrad  User)    SPANISH    LISTINGDATE: 2022-03-10
DL: 117
TYPE: PDF
SiZE: 1086Ko
NOTE: 3 pages/PDFlib v1.6

★ AMSTRAD CPC ★ A voir aussi sur CPCrulez , les sujets suivants pourront vous intéresser...

Lien(s):
» Demoscene » Bordelik Megademo 4
» Demoscene » Bordelik Meeting Demo 3 (Ghoul's fanz)
» Demoparty » Bordelik Meeting 4
» Demoscene » Bordelik Meeting Demo 1
» Demoparty » Bordelik Meeting 3
» Demoparty » Bordelik Meeting 2
Je participe au site:
» Vous avez des infos personnel, des fichiers que nous ne possédons pas concernent ce programme ?
» Vous avez remarqué une erreur dans ce texte ?
» Aidez-nous à améliorer cette page : en nous contactant via le forum ou par email.

CPCrulez[Content Management System] v8.7-desktop/c
Page créée en 536 millisecondes et consultée 546 fois

L'Amstrad CPC est une machine 8 bits à base d'un Z80 à 4MHz. Le premier de la gamme fut le CPC 464 en 1984, équipé d'un lecteur de cassettes intégré il se plaçait en concurrent  du Commodore C64 beaucoup plus compliqué à utiliser et plus cher. Ce fut un réel succès et sorti cette même années le CPC 664 équipé d'un lecteur de disquettes trois pouces intégré. Sa vie fut de courte durée puisqu'en 1985 il fut remplacé par le CPC 6128 qui était plus compact, plus soigné et surtout qui avait 128Ko de RAM au lieu de 64Ko.