★ CODING ★ AMSTRAD SEMANAL ★ DOBLE NÚMERO DE COLORES UTILIZABLES ★![]() |
| Doble número de colores utilizables |
La cantidad de colores que se pueden utilizar simultáneamente en la pantalla de los Amstrad es bastante limitada, especialmente en el caso de los modos de mayor resolución, dos y cuatro respectivamente. Con el programa que se explica a continuación se puede duplicar el número de colores en cada uno de los tres modos de pantalla, ampliando así las posibilidades de color en cada una de nuestras creaciones gráficas. El Amstrad posee un gran número de colores, pero en realidad, únicamente algunos de ellos son utilizables simultáneamente en pantalla. Tenemos, por ejemplo, que en modo 2 únicamente pueden utilizarse dos de ellos al mismo tiempo, en modo 1 se puede trabajar con cuatro, y en modo 0 se pueden utilizar hasta 16. Podemos comprobar, por lo tanto, que en los dos modos de alta resolución el número de colores disponibles simultáneamente es ciertamente bastante escaso. Así pues, con el programa que os proponemos en este artículo, pretendemos aumentar por dos el número de colores utilizables en cada uno de los modos de pantalla. Para ello vamos a disponer de cuatro nuevos comandos RSX que nos permitirán posicionar el área de pantalla en la que se desean utilizar los colores adicionales, y elegir las tintas para el papel, el borde y la pluma. El primero de estos nuevos comandos es el que indicamos a continuación: |ON,XEste comando se encarga de activar las interrupciones que hacen posible la utilización de los colores adicionales. Además el parámetro «X» indicará la zona de pantalla en la cual se desean utilizar.Existen cuatro áreas de pantalla disponibles, con diferentes alturas, donde se podrá disponer de los nuevos colores que se seleccionen mediante los nuevos comandos. De esta forma, el parámetro anterior únicamente podrá contener cuatro valores distintos dentro del rango 0-3. Otro de los nuevos RSX se encarga de desactivar las interrupciones, por lo que se pasará al modo normal de pantalla disponiendo en este caso únicamente de los colores prefijados para el modo de pantalla en que nos encontremos. Se trata del comando: |OFFPara cambiar las tintas adicionales que nos proporciona el programa, disponemos de:|TINTA,X,YFunciona exactamente igual que la instrucción Basic INK. Así pues se debe indicar el número de tinta «Y» que se desea disponer en la pluma «X».De esta forma, si la pluma utilizada para el papel es la cero, dando el valor 0 al parámetro «X», cambiaremos la tinta para el papel, cuyo nuevo valor será el indicado por la variable «Y». El manejo de los nuevos colores obtenidos es sumamente sencillo, a través de cuatro nuevos comandos RSX El último de los nuevos comandos disponibles es el siguiente: |BORDE,XA través del mismo podremos seleccionar el color del borde en el área de pantalla que se haya elegido. El parámetro «X» indicará el nuevo color para el borde de la pantalla. Para conseguir este mayor número de colores disponibles, el programa está basado en la utilización de las interrupciones del sistema. Aprovechando las posibilidades que el Amstrad nos ofrece para utilizar dichas interrupciones, se crean dos paletas separadas de colores, obteniéndose de esta forma un mayor número de colores disponibles en cada uno de los modos de pantalla. El programa parte la pantalla en dos secciones, la parte superior permanece con los colores seleccionados normalmente para el modo de pantalla en que nos encontremos, mediante los comandos utilizables desde Basic. La parte inferior de la pantalla es sobre la que se actúa, dotando a dicha área de una paleta de colores totalmente independiente a la anterior, y seleccionables mediante los comandos explicados anteriormente. El programa utiliza dos tipos de interrupciones que se encuentran dentro del firmware. La primera de ellas es la de Frame Flyback Queue, y la otra es Fast Ticker Queue. Cada una de dichas interrupciones ocurren cada 50 Hz. la primera, y cada 300 Hz. la segunda de ellas. Para posibilitar dichas interrupciones, se debe reservar un área de memoria, mediante la cual el sistema establece cuándo se debe llamar a cada una de las interrupciones. Vamos a ver ahora cuáles son los dos bloques de programa que se llaman a través de dichas interrupciones cada cierto intervalo de tiempo. El primero de los bloques de interrupción hace varias llamadas al firmware del Amstrad, para restaurar los colores que se habían introducido mediante los comandos correspondientes del Basic, como son:PAPERDe esta forma conseguimos que el área superior de la pantalla permanezca con los colores habituales. El otro bloque de programa es el que provoca que en la parte inferior de la pantalla aparezcan los nuevos colores introducidos a través de los comandos RSX descritos anteriormente. Para ello, toma de una tabla los colores elegidos para papel, pluma y borde, y los envía a través de instrucciones OUT, al integrado que se encarga de gestionar los colores, sin utilizar en ningún momento el sistema. Existen además dos rutinas que se encargan de colocar, en la tabla mencionada anteriormente, los valores correspondientes a los colores que deberán aparecer en pantalla. Estas rutinas son utilizadas por los siguientes nuevos comandos RSX: |
| ![]() |
|
Page créée en 739 millisecondes et consultée 82 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. |