APPLICATIONSDIVERS ★ O QUARTO MODO ★

RSX Mode 3 (Amstrad Magazine)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 ★ 

É um facto muito pouco conhecido que o AMSTRAD CPC é capaz de utilizar outro modo de ecrã. Para nossa maior conveniência vamos chamar-lhe “Modo 3”. A diferença em relação aos outros é que pode ter dados no ecrã sem serem vistos, e que, contudo, estão lá. “Para que serve isso?” adivinha-se em uníssono a pergunta dos nossos leitores. É disso que vamos tratar já de seguida.

I STO é mais útil do que se poderia imaginar. Suponhamos que você escreveu um programa que requere instruções muito complexas mas que você não quer que apareçam no ecrã nem quer reimprimi-las quando delas necessite. Bem, pode tê-las escondidas, mas sempre no ecrã, e torná-las visíveis quando for necessário, tornando-se invisível o que estava no ecrã durante o processo. Você lê as suas instruções e esconde-as novamente. O que temos é, com efeito, dois ecrãs num único. A um vamos chamar-lhe ecrã "Frontal” e ao outro ecrã “Posterior”. Alguns jogos utilizam este modo. Todo o trabalho de apagar e redesenhar o cenário realiza-se no ecrã Posterior, onde você não o pode ver, e é devolvido ao ecrã Frontal quando está pronto, enquanto que o apagamento e redesenha mento continua no que agora é o novo ecrã Posterior.

Este modo tem as suas limitações. Só se podem ter quatro cores e os pixels são do mesmo tamanho que no modo 0. Isto quer dizer que só irá dispor de 20 letras em cada linha. Mesmo assim torna-se muito divertido.

Felizmente a maioria dos comandos normais de impressão podem utilizar-se nele, e algumas instruções “PEN” escreverão no ecrã Posterior, outras no Frontal, agumas em ambas ao mesmo tempo e outras também em ambas mas com cores diferentes em cada uma.

As instruções “PEN” que escrevem só no ecrã frontal são as 1, 2 e 3. As instruções “PEN” que só escrevem no ecrã posterior são as 0, 4, 8 e 12. A instrução “PEN 15” vê-se da mesma maneira nos dois. As restantes 5, 6, 7, 9,10,11,13 e 14 escrevem em ambos os ecrãs mas em cores diferentes quando observamos o Frontal e quando observamos o Posterior.

Se escrever e executar o programa apresentado esperamos que consiga a mensagem “Ready” e descubra que tem uns novos comandos. Se encontrar uma mensagem de erro esta dir-lhe-á qual a linha que tem que corrigir para que as coisas funcionem. O programa reserva para si certa memória e situa-se por cima de HIMEM, não importando onde esteja situada esta variável.

Os novos comandos são:

  • |MODE dar-lhe-á o novo modo e apagará o ecrã como qualquer outro comando MODE.
  • |BACK. Quando se utiliza, o comando |MODE este contemplará inicialmente o ecrã Frontal, enquanto que para ver o posterior deve usar-se o comando
  • |BACK. Se você já se encontrar no ecrã Posterior então o comando será ignorado.
  • |FRONT. De forma semelhante, depois de um comando |BACK, para voltar ao ecrã frontal utilize o comando |FRONT. Da mesma maneira que há pouco referimos, todos os comandos |FRONT serão ignorados até que se execute um comando |BACK.
  • |CLRBACK. Este comando permite-lhe apagar a parte do ecrã que não pode ver, sem afectar a que pode, na realidade, ver. Apagará o que está por detrás do ecrã e não o actual ecrã Posterior, mas sim o que se encontra nesse momento oculto.
  • |CLRFRONT. Obviamente, este comando apagará o ecrã que estamos a ver, que não tem que ser forçosamente o ecrã Frontal. Podemos fazer isto facilmente:
    — |BACK: |CLRFRONT: |FRONT Deste modo torna o ecrã Posterior visível, apaga-o e torna-o outra vez invisível.
    Mas ainda nos falta um último comando.
  • |PRINT. Como já dissemos atrás, na maioria dos casos podem ser utilizadas as rotinas normais de impressão, mas não quando se deseja imprimir algo no ecrã frontal que esteja acima de algo que só é visivel no Posterior. Por exemplo, se escrever:
    — PEN 4:LOCATE 10,10:?«OLA» para imprimir no ecrã Posterior, e também:
    — PEN 1 :LOCATE 10,10:?«ADEUS» que apareceria no ecrã Frontal. Quando executar um comando |BACK não encontrará nada no ecrã posterior, que é o que está agora a observar. Este comando permitir-lhe-á fazer isto.

O comando |PRINT tenta fazer a mesma coisa que o PRINT normal mas sem sobreescrever o que tem por baixo. Mais tarde explicaremos como o faz. Para o utilizar, ponha simplesmente o que quer imprimir numa variável alfanumérica e execute a rotina. Por exemplo:

LET a$="OLA":PEN 4:LOCATE 10,10: |PRINT.a$

e também:

LET c$="ADEUS":PEN 1 :LOCATE 10,10: |PRINT,c$

Pode utilizar qualquer variável para lhe colocar texto, mas se usar uma que esteja vazia irá obter uma mensagem de erro. Agora se escrever os seus comandos |BACK e |FRONT encontrará o texto intacto em ambos os ecrãs. Isto só irá funcionar, contudo, se utilizar as instruções “PEN” que só escrevem num ecrã ou noutro, mas não em ambos.

Para apagar só uma parte do ecrã e não todo. pode utilizar o método habitual de imprimir espaços onde necessite. Desde logo, desta forma apagará nos dois ecrãs de cada vez. Se só quer apagar num dos ecrãs, reescreva simplesmente as mesmas letras sobre as que quiser apagar nesse ecrã, quer seja no frontal, quer no posterior.

Resumamos e clarifiquemos todo este tráfico de Frontais e Posteriores. Temos dois ecrãs, um deles visível, a que chamaremos frontal, com “f” minúsculo, e o outro invisível, a que chamamos posterior, com “p” minúsculo. Pode intercambiá-los com os comandos |FRONT e |BACK, de modo que ao primeiro que virmos depois de um comando |MODE vamos chamar-lhe Frontal, com “F" maiúsculo. Da mesma maneira, chamaremos ao outro Posterior, com “P” maiúsculo. Para além destes comandos, toda a impressão e apagamento se efectuam no ecrã visível frontal ou posterior, que pode ser ou não visível no momento de executar o comando.

De seguida vamos tentar explicar como funciona este modo. Um byte é composto de oito bits, e no modo 0 quatro destes bits são utilizados para a informação de cor do pixel esquerdo e quatro para a do pixel direito. Por exemplo:

Um byte = 11111111 Estes são os bits para os pixel esquerdo:

Esquerdo = 10101010

E estes os bits para o pixel direito:

Direito = 01010101

Com quatro bits podem obter-se 2*4 = 16 cores para cada pixel, que é exactamente o que temos no modo 0. No modo 3 a distribuição é diferente. São estes os bits para o pixel esquerdo posterior:

Esquerdo posterior = 00000011 E estes para o pixel esquerdo frontal: Esquerdo frontal =00001100 Estes são os bits para o pixel direito posterior:

Direito posterior = 00110000 E estes para o pixel direito frontal: Direito frontal = 11000000 Se numerarmos os bits deste modo: Número de bit 7,6,5,4,3,2 1,0 Byte 1,1,1,1,1,1,1,1 podemos ver que embora os bits 7,6, 5 e 4 sejam 1, só dois deles, 7 e 6, influirão no ecrã frontal e os bits 5 e 4 falo-ão no posterior. A isto se deve o facto de só termos quatro cores já que, em cada ecrã, um pixel só tem 2*2 = 4 números diferentes.

Por isso, ao imprimir texto num ecrã se apaga o texto do outro se forem utilizados os métodos normais. Estes usam os quatro bits para cada pixel embora só dois sejam 1, e apagam os

outros dois. |PRINT, contudo, realiza uma operação XOR com o texto, de modo que, se só dois bits estão a um no ecrã posterior e imprimir-mos texto no ecrã frontal, estes combinam-se e permanecem intactos. A regra de XOR é, como já deve saber:

1100 1111
XOR 0011 XOR 0011
1111 1100

Como podem ver, na primeira soma os bits combinam-se e se se trata novamente de fazer XOR com o segundo número obtém-se o número com que se começou. A razão para isto é que, ao utilizar-se o comando |PRINT duas vezes com o mesmo texto acaba-se por apagá-lo. Desde logo, se se utiliza |PRINT com algo que apareça nos dois ecrãs de uma só vez, como pode acontecer com a instrução “PEN 15", pode destruir-se tudo, ou, pelo contrário, pode encontrar-se algo, pelo que se apaga o texto de um ecrã mas este permanece no outro.

Amstrad Magazine

★ PUBLISHER: Amstrad Magazine (Publinfor)
★ ANNÉE: 1989
★ CONFIG: 64K + AMSDOS
★ LANGAGE:
★ LiCENCE: LISTING
★ AUTEUR(S): ???
 

★ AMSTRAD CPC ★ DOWNLOAD ★

Type-in/Listing:
» RSX-Mode  3    (Amstrad  Magazine)    LISTING    PORTUGUESEDATE: 2018-09-03
DL: 222
TYPE: PDF
SiZE: 235Ko
NOTE: 2 pages/PDFlib v1.6

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

Lien(s):
» Applications » Rsx Ecran (Amstrad Magazine)
» Applications » Profi-RSX 8 (CPC Amstrad International)
» Applications » RSX - Scroller (Computing With the Amstrad)
» Applications » RSX Select (Schneider Aktiv)
» Applications » RSX - USR-Fonktion
» Applications » RSX Rota (Amstrad User)
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/c
Page créée en 679 millisecondes et consultée 1040 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.