APPLICATIONSDIVERS ★ SCROLL (AMSTRAD USER) ★

Scroll (Amstrad User)Applications Divers
★ 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 ★ 

En el Basic de Amstrad se echa en falta un comando de scroll, pero, con un poco de código máquina, es posible hacer scroll hacia la izquierda, derecha y diagonalmente, de la misma manera que los más corrientes hacia arriba y abajo.
Cualquier programador de Basic puede acceder fácilmente a estas rutinas haciendo uso de la instrucción CALL dirección.

EL listado presente en código máquina es un paquete que rende tres tipos de rutinas. Han sido escritas teniendo en mente un programador de juegos.

1. Scroll, izquierda, derecha, arriba, abajo.

Existe una rutina del firmware que hace scroll hacia arriba y abajo, pero siempre pone en blanco la nueva línea con una tinta. La rutina que aquí se presenta no hace eso.

2. Poner en blanco.

Con la tinta actual del papel, pone en blanco el borde izquierdo, el borde derecho o las líneas de arriba y abajo.

3. Rellenar la zona.

Estas zonas son de uno, dos o tres caracteres de altura y se imprimen en el borde izquierdo o derecho de la pantalla, con la tinta actual de la pluma.

Se pueden modificar fácilmente todas las rutinas con sólo unos cuantos POKEs.

La rutina de arriba, abajo, izquierda y derecha se ha puesto separada para facilidad de uso. Aunque con una sola rutina se podían haber ejecutado todos los movimientos, es posible que desees cambiar la dirección del scroll en un programa, lo que envuelve una serie de POKEs.

COMO FUNCIONA

La rutina de scroll primero llama a la rutina del firmware GET OFFSET (obtener desplazamiento), que se encuentra en la dirección &BC0B. Esta devuelve en el registro doble HL la dirección del primer byte de la memoria de pantalla. Ahora podemos incrementar o decremen-tar HL y, después llamamos a la rutina SCR SET OFFSET (situar desplazamiento), de la dirección &BC05. Teniendo en cuenta que hay 80 bytes por línea de pantalla en todos los modos, con un incremento de 80
en el desplazamiento inicial, la pantalla hará scroll hacia arriba una línea de caracteres (ocho líneas de pantalla). Si incrementamos HL en dos, la pantalla reliza un scroll hacia la izquierda. Si decrementamos HL se obtendrá el efecto contrario. Al Sistema Operativo se le mantiene informado en todo momento del desplazamiento, de manera que después de haber realizado varios scrolles, si hacemos un LOCATE x,y:PRINT CHR$ siempre se sitúa en la dirección correcta de la pantalla. Cada rutina de scroll ocupa 12 bytes.

Las rutinas están preparadas para el modo 1.

Para usarlas en modo 0 ó 2, consulta la tabla 2 y haz los POKEs correspondientes antes de ejecutar estas rutinas.

Para usarlas, primero debes teclear el cargador en Basic y ejecutar la rutina. Hay una sencilla comprobación de las DATAs, y una vez que veas aparecer el mensaje de DATAS OK, ya puedes grabar el cargador en cinta o disco, antes de ejecutar la rutina.

Primero, prueba CALL 20000: la pantalla debería hacer scrolll un espacio hacia la izquierda. Para que te hagas una idea de la velocidad de estas rutinas, prueba lo siguiente:

10 CALL 20000
20 FOR f=1 TO 20: NEXT
30 GOTO 10

y ejecútalo. Graba el código máquina en cinta o disco con la sentencia que se encuentra al final del programa cargador.

Para tus propios juegos puedes intentar omitir la rutina que pone líneas en blanco, para que todo lo que salga por la izquierda vuelva a aparecer por la derecha, pero una línea más arriba o más abajo en modo 1. Si no es eso lo que quieres, se puede corregir con un scroll hacia arriba o abajo. Puedes también conseguir scroll en diagonal, por medio de introducir 82 en las direcciones de cantidad de scroll, es decir, si en el scroll a la izquierda, haces un POKE en la cantidad de scroll con 82, cuando llames a la rutina de scroll a la izquierda, obtendrás un scroll diagonal de derecha a izquierda.

Se pueden introducir en las direcciones de cantidad de scroll cualquier número entre 1 y 255, y cada uno tendrá un efecto distinto. Si quieres utilizar estas rutinas en modo 0 ó 2, primero introduce en las direcciones dadas en la tabla 2 los valores correspondientes.

Para obtener un scroll suave en estos modos, las cantidades de scroll deben ser 4 en modo 0 y 1 en modo 2. No obstante, al experimentar con diferentes números y combinaciones de scroll puede resultar en algunos programas muy interesantes.

TABLA 1
Cómo usar las rutinas
CALL 20000Scroll a la izquierda
CALL 20012Scroll a la derecha
CALL 20024Scroll hacia arriba
CALL 20036Scroll hacia abajo
CALL 20048Blanco a la izquierda
CALL 20066Blanco a la derecha
CALL 20084Blanco arriba
CALL 20102Blanco abajo
CALL 20120Zona 1 izquierda
CALL 20138Zona 1 derecha
CALL 20156Zona 2 derecha
CALL 20174Zona 2 izquierda
CALL 20192Zona 3 derecha
CALL 20210Zona 3 izquierda
POKE 20004Cantidad scroll izquierda
POKE 20016Cantidad scroll derecha
POKE 20028Cantidad scroll arriba
POKE 20040Cantidad scroll abajo

TABLA 2
POKEModo 0Modo 2
200731979
200751979
200931979
201111979
201451979
201471979
201631979
201651979
201991979
202011979

Amstrad User #8

★ PUBLISHER: Amstrad User
★ YEAR: 1986
★ CONFIG: 64K + AMSDOS
★ LANGUAGE:
★ LiCENCE: LISTING
★ AUTHOR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» Scroll    (Amstrad  User)    SPANISH    LISTINGDATE: 2022-03-05
DL: 119
TYPE: PDF
SiZE: 360Ko
NOTE: 1 page/PDFlib v1.6

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

Lien(s):
» Applications » RSX Scroll (Schneider Aktiv Special)
» Applications » SCROL-3: Utilitaire Permettant de faire des Scrollings en Mode 0
» Applications » Happy-Scroll (Happy Computer)
» Applications » Scroll Text (Amstrad Computer User)
» Applications » Rsx - Soft Scroll Screen (Popular Computing Weekly)
» Applications » Scroller (Sizin Amstrad)
Je participe au site:
» Pour ce titre nous ne disposons de fichier executable sur CPC (Dump, Saisie du listing) , alors si vous avez ça dans vos cartons ou vous désirez usé vos petit doigts boudinés sur votre clavier faites le nous savoir.
» Vous avez des infos personnel ?
» 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
Page créée en 264 millisecondes et consultée 596 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.