---------------------------------------------------------------------------------

                          E D - A R T    G G M I

---------------------------------------------------------------------------------
PUBLICADO NA REVISTA MICRO SISTEMAS EDIO NR.54 (MARO DE 1986)
---------------------------------------------------------------------------------
AUTOR: CLUDIO DE FREITAS B. BITTENCOURT
---------------------------------------------------------------------------------
CONVERTIDO POR KELLY ABRANTES MURTA - BRASIL - OUTUBRO 2000
---------------------------------------------------------------------------------

OBS.: Texto escaneado diretamente da revista MS e reconhecido via OCR.


INTRODUO

O computador  uma mquina fria, impessoal e, para muitos, antiptica. Sem 
dvida, mas  prprio das mquinas, essa inveno do bicho-homem que carrega to
pouco da personalidade do seu criador, justamente naquilo que ela tem de mais
humano.

Os seus programas, por exemplo; voc j reparou bem neles  luz do sentimento 
esttico ou moral ou sentimental? So de fato frios, convenhamos. A despeito de 
toda a sua criatividade, voc no tem feito muita coisa para atenuar essa faceta 
menor do seu equipamento, no  verdade? E no entanto, voc  um cara legal, 
amante do belo, cheio de ternura no corao. Voc no  mquina!

Urge ento fazer algo a respeito e aqui est GGMI para despertar A veia artstica
que h, reprimida, dentro do leitor. Atravs da arte visual, vamos explodir para 
o mundo esse oceano de sentimentos que jaz latente no fundo de su'alma (bonito, 
hem'?).

O Ed-Art GGMI  um editor grfico que se presta  preparao de telas, as quais 
podero ser arquivadas em fita independentemente e acopladas a qualquer programa, 
de sua lavra ou no. Dependendo da sua convenincia, as telas podero ter 
continuidade entre si, formando um telo. Sequncias verticais e bidirecionais 
so tambm fceis de se conseguir.


MONTAGEM

O Ed-Art foi criado para ser um mdulo do Micro Bug. Para mont-lo, carregue no 
micro esse fabuloso (nunca  demais dizer) programa publicado pela sua MICRO 
SISTEMAS e, com o comando M, digite os cdigos da listagem nos endereos 
indicados. Ao terminar, confira com o comando P 6E00,783A. O resultado tem que 
ser 9B0A. Isso posto, salve-o em fita vrias vezes com o comando I 6E00,783C. A 
seguir, use o comando C do Micro Bug para carregar um mdulo salvo; s depois 
dessa operao ele poder ser acessado.


ORGANIZAO DA MEMRIA

Um mdulo do Micro Bug ocupa a memria do endereo 6E00 at 77FF, mas o Ed-Art  
diferente, pois foi necessrio aumentar o espao, baixando o endereo inicial 
para 6B00 (ou seja, menos 768 bytes). Junto com ele desceram o RTP, a ENSP, o 
stack do GOSUB e o stack da mquina - veja o manual do micro para maiores 
esclarecimentos. No se preocupe com essa expanso, pois tudo ocorre 
automaticamente quando  acionado pela primeira vez qualquer um dos quatro 
comandos disponveis no Ed-Art. E o status quo anterior  restabelecido ao ser 
acionado o comando C do Micro Bug, que carrega um novo mdulo no lugar do Ed-Art.
O nico efeito prtico  uma diminuio correspondente da memria disponvel para
os programas BASIC, abaixo do Micro Bug. Mas em 99% dos casos essa pequena 
quantidade de bytes no far falta.

Alm do arquivo de imagens normal do micro, que aparece na tela da TV, o Ed-Art 
trabalha com mais dois arquivos, situados em buffers nas seguintes posies da 
memria:

l) Principal - de 27392(6B00) a 28159(6DFF)
2) Reserva   - de 28160(6E00) a 28927(70FF)


COMANDO T

O comando T, acessado via Micro Bug,  o editor propriamente dito. Ao ser 
acionado, aparecer na tela o Ed-Art piscando maliciosamente para voc - no o 
censure,  uma cortesia - pois, trata-se de um cavalheiro de fina educao. 
Apague-o com SHIFT A. Restar na tela aquilo que o manual do micro chama 
pomposamente de "elemento de imagem", mas que para ns responder pelo simptico 
nome de pixel. O dito ocupa a rea de 1/4 de carter e  usado nas instrues 
PLOT e UNPLOT do BASIC Sinclair. Reconheceu?  o prprio. Pois o pixel desloca-se 
nas oito direes cardeais com o uso das teclas abaixo, sabiamente escolhidas por
GGMI em funo de mnemnicos que facilitaro a sua vida, leitor.

TECLA   MNEMNICO DIREAO		TECLA   MNEMNICO   DIREO
  1        {1}    esquerda-acima	 5	   {5}      esquerda
  2        {2}    direita-acima 	 6	   {6}      abaixo
  3        {3}    direita-abaixo	 7	   {7}      acima
  4        {4}    esquerda-abaixo 	 8	   {8}      direita

  OBS.: Os mnemnicos representam os smbolos grficos obtidos com SHIFT+TECLA
  em modo GRAPHICS.

O pixel pode caminhar nas condies PLOT, UNPLOT e "Sem Rastro", conforme tenham
sido acionadas previamente as teclas K, J ou L, as mesmas de +, - e = . Prtico,
no?


MACROCARACTERES

O pixel  o modo principal de edio, permitindo acesso a todas as funes 
disponveis. Podemos imprimir macrocaracteres acionando as teclas N (de <) ou 
M(de >). A primeira prepara um carter grande (4x4) e a segunda um gigante (8x8).
Os smbolos "<" e ">" alternam-se com o pixel piscante para indicar a condio 
assumida. A tecla que voc pressionar em seguida ser macroimpressa, salvo se for
NEW LINE, FUNCTION, RUBOUT ou GRAPHICS, que desativam a preparao. Todos os 
smbolos do Sinclair so vlidos e os de vdeo inverso so preparados por SHIFT N
e SHIFT M, em vez de N e M. Se o espao na tela for insuficiente para o 
macrocarter, a tecla de preparao no surtir efeito. Aps a macroimpresso, o
pixel estar na condio "Sem Rastro", o que alis ocorre aps qualquer operao
extraordinria. Logo, voc ir apreciar isso.


RETA

Reconheo, "reta"  fora de expresso, pois o que aparece na tela  mais chegado
a caminho de rato do que a reta. Enfim,  o que nos permite a baixssima 
resoluo do nosso equipamento, que se h de fazer? E deu trabalho, a desgraada!
Ela  preparada pela tecla R. A partir da, o pixel desloca-se sem rastro nas 
direes horizontal e vertical (teclas 5 a 8), exclusivamente. No ponto de origem
fica um segundo pixel piscante, para sua orientao. Ao ser pressionado SHIFT R, 
ei-la impvida e gloriosa na sua pobreza, de um ponto ao outro. NEW LINE  a 
tecla que desativa a preparao da reta.


CIRCULO

Esse  melhorzinho, ainda que tambm precrio. Coloque o pixel na posio que 
voc pretende que seja o centro do crculo e pressione a tecla C, a letra que vai
aparecer ir se alternar com o pixel. O micro ficar ento esperando que voc 
tecle dois algarismos relativos ao raio da circunferncia, que poder variar de 
02 a 35. O primeiro algarismo  o da dezena e o segundo da unidade. A letra C 
ser substituda pelo primeiro algarismo que por sua vez ser substitudo por um 
carter indicativo do raio, to logo seja teclado o segundo algarismo. O cdigo 
desse carter (vide manual)  igual ao raio mais 28 (se voc no gostou, deixe de
fazer cara feia e ignore o que se passa no centro da circunferncia). A tecla que
desativa a preparao do crculo  NEW LINE.


MANIPULAO DOS ARQUIVOS

A manipulao dos arquivos  uma das mais versteis funes do Ed-Art. Ela 
permite que se faa a interface de duas telas, portanto deve ser usada quando se 
pretender dar continuidade horizontal ou vertical s mesmas. As teclas de 
acionamento so P (de Principal), H (de Horizontal) e V (de Vertical). A tecla P 
apresenta na tela o contedo do buffer principal (o primeiro na memria). S que,
a cada vez que ela  acionada, esse contedo  antes trocado com o que est no 
buffer reserva (o segundo na memria). As teclas H e V provocam na tela o 
rolamento da imagem para a esquerda e para cima, respectivamente, possibilitando 
o interfaceamento das duas plos quatro lados. E semelhante a um SCROLL, s que 
em vez de rolar linha por linha (coluna por coluna), o rolamento se d de metade 
em metade da tela.

As teclas H e V podem ou no trocar o contedo dos buffers, dependendo da 
situao. O contedo que ocupar o quadrante superior esquerdo da tela ser sempre 
do buffer principal. Contudo, no convm facilitar: antes de efetuar qualquer 
operao que possa comprometer a integridade do seu trabalho (ex: CLS, SAVE e 
LOAD de arquivos), estabelea o contedo correto do buffer principal mediante o 
acionamento da tecla P - ela existe para isso.


OUTRAS FUNES DO MODO PIXEL

No modo pixel so disponveis ainda as funes abaixo, apresentadas na sequncia 
"tecla-mnemnico-efeito".

9               -   "GRAPHICS"  - efetua inverso de vdeo
SHIFT S         -   "LPRINT"    - remete imagem da tela para a impressora
SHIFT A         -   "NEW"       - efetua CLS
SHIFT NEW LINE- -   "FUNCTION"' - retorna ao Microbug
SHIFT Y         -   "RETURN"    - retorna direto ao BASIC
NEW LINE        -               - muda para modo ESCRITA HORIZONTAL


MODO ESCRITA

O modo escrita, que pode ser horizontal ou vertical, permite imprimir todos os 
smbolos Sinclair em tamanho normal. As funes disponveis so:

SHIFT 9         - "GRAPHICS" - passa a imprimir caracteres inversos 
SHIFT O         - "RUBOUT"   - executa RUBOUT (horizontal ou vertical) 
SHIFT NEW LINE  - "FUNCTION" - retorna ao Microbug (igual ao modo PIXEL) 
NEW LINE        -            - muda modo


A TECLA NEW LINE

A mudana do modo de edio  efetuada pela tecla NEW LINE, obedecendo  seguinte
sequncia:

PIXEL -> ESCRITA HORIZONTAL -> ESCRITA VERTICAL -> PIXEL ... etc.

O modo em execuo  identificado pelo cursor piscante que se alterna com o 
carter, ao qual se superpe. Esse cursor, dependendo do caso, pode ser: pixel,
H, [H] , V ou [V].


AUTO-REPETIO

Quase todas as funes do comando T so auto-repetitivas (excetuam-se aquelas em 
que essa propriedade seria inconveniente). Ao ser pressionada uma tecla, a funo 
 prontamente executada e caso voc no a libere, aps um pequeno tempo de espera
comea a auto-repetio em ritmo veloz. Isso, alm de agilizar o seu trabalho, 
lhe permitir apreciar alguns efeitos dinmicos com a manipulao de arquivos.


COMANDOS S e U

Retornando ao Micro Bug, voc dispor ainda dos comandos S, U e V (este ser 
visto mais adiante).

O comando S (de SAVE) salva em fita o contedo do buffer principal e o comando U 
carrega, tambm no buffer principal, o que for lido em fita. Muita ateno no uso
desses comandos, pois um erro de arquivo pode apagar irremediavelmente um
trabalho acabado, sem possibilidade de recuperao. Recorra sempre  tecla P do 
modo pixel para estabelecer o contedo correio dos buffers.

Para a eventualidade de carregar no buffer uma gravao imperfeita, que mandaria
o sistema para o espao quando mostrada na tela, o comando U zera o bit 6 dos 
bytes lidos em fita. Isso equivale a subtrair 64 dos cdigos no imprimveis, 
tornando-os imprimveis. Os demais permanecem inalterados. Ignore este pargrafo 
se voc no entendeu nada do que eu quis dizer.


ACOPLAMENTO EM LINHA PRINT - COMANDO V

Existem diversas maneiras de acoplar as telas produzidas com os seus programas. 
A mais simples  atravs do comando V que cria no BASIC uma linha PRINT com o 
contedo total ou parcial do buffer principal. Sua sintaxe :

V XXXX,YY

onde XXXX  o nmero da linha que vai ser criada e YY  a quantidade de linhas do
buffer principal que deve ser copiada (contando de cima para baixo). Dados 
imprprios provocam mensagens de erro: as mesmas do comando E do Micro Bug (MS 
n 33) e mais "HUUUU", que  o Ed-Art vaiando se voc fizer YY igual a zero ou 
maior do que 24. Lembre-se de que, no modo normal, o Micro Bug interpreta os 
dados no sistema hexadecimal, a menos que haja um $ antes.

Cabe aqui uma dica importante, para evitar um defeito do firmware Sinclair, que 
j atrapalhou a vida de muita gente boa por a. Quando se est trabalhando com 
linhas maiores do que a tela, pode ocorrer de uma delas ficar rolando ad 
infinitum na TV, obrigando o infeliz programador a desligar o micro. Isso 
acontece por incompatibilidade das variveis do sistema LPC e LTOP quando, por 
exemplo, apaga-se a linha posterior a uma dessas grandonas. Para sua segurana e
tranquilidade, crie uma linha assim:

XXXX REM NO ME APAGUE 

onde XXXX  igual ao nmero da linha fatdica mais um.

O defeito pode ocorrer tambm ao retornarmos ao BASIC e teclarmos NEW LINE, aps 
termos criado linhas grandes com os comandos E e V do Micro Bug. Para evitar a 
"catstrofe", tecle LIST em vez de NEW LINE e crie logo a linha de segurana. S 
ento respire tranquilo.

As linhas PRINT criadas pelo comando V podem perfeitamente ser editadas e o PRINT
substitudo por outros comandos BASIC vlidos, como por exemplo LPRINT; PRINT AT 
X,Y; LET A$=;etc.


ACOPLAMENTO EM VARIVEL STRING

O Micro Bug possui alguns comandos prprios que podem tambm ser usados no 
acoplamento, embora de maneira menos direta e bem mais complicada. Dentre esses 
esto os comandos E (MS n 33) que cria linhas REM de qualquer tamanho e o 
comando O (MS n 34) que transfere contedos da memria de um lugar para outro. 
O uso dessas alternativas requer bom conhecimento da organizao de memria do 
micro e no o recomendamos nem para o preenchimento de variveis string 
previamente criadas pela instruo DIM. Essa terefa  muito mais facilmente 
executada atravs do prprio BASIC, com poucas linhas de programao. Em vez de 
ficar aqui gastando inutilmente o nosso escasso latim, vamos a um exemplo (rode-o
no modo FAST).

10 LET A$=""
20 FOR F=l TO 22*32
30 LET A$=A$ + CHRS PEEK (27391+F)
40 NEXT F
50 STOP

Isso copia as 22 primeiras linhas do buffer principal na varivel A$, que pode 
ento ser impressa a qualquer momento no fluxo normal do seu programa, desde que 
voc jamais tecle RUN (rode o programa com GOTO X) nem CLEAR, que apagam as 
variveis. O programinha apresentado como exemplo pode e deve ser modificado por 
voc de acordo com as suas convenincias, mas antes entenda-o bem. Repare que o 
nmero 22 da linha 20  a quantidade de linhas a ser copiada e que o 27391 da 
linha 30  igual ao endereo inicial do buffer principal menos l. Aps ser 
rodado, o programinha pode ser apagado, mas lembre-se, nada de RUN ou CLEAR.


ACOPLAMENTO NO ARQUIVO DE IMAGENS DO SISTEMA

A maneira mais lgica e inteligente de se efetuar o acoplamento de uma tela  
coloc-la no prprio arquivo de imagens do sistema no momento da gravao do 
programa em fita. Como voc deve ter notado, a maioria dos programas vai e volta 
da fita para o micro, arrastando atrs de si quase 1 Kb de endereos 
absolutamente vazios! Pois tratemos de ocup-los com o que  chamado de "tela de
abertura", aquela que se apresenta to logo o programa seja carregado no micro. 
 uma excelente idia fazer uma tela padro, tipo marca registrada, que 
personalize os seus programas. Mas o melhor mesmo nesse tipo de acoplamento  que
no aumenta o tamanho dos programas, uma vez que a rea utilizada est ali  
espera da nossa criatividade.

O acoplamento  bastante simples. Crie, em local estratgico dentro do seu 
programa, as linhas abaixo:

XXXX RAND USR 31210
YYYY SAVE "nome do seu programa"

Naturalmente, o Micro Bug deve estar em posio na memria do micro. Em seguida, 
rode o programa BASIC com RUN XXXX ou GOTO XXXX, acionando com isso o Micro Bug. 
Uma vez l em cima, voc pode agir calmamente, carregando o Ed-Art se ele ainda 
no estiver em posio, carregando e/ou retocando a tela de abertura, etc. Nessa 
situao, voc s no deve executar os comandos B, E e V; o resto  vlido. 
Quando estiver tudo pronto, com o Ed-Art (no modo pixel do comando T) mostrando a
tela escolhida, acione o gravador e tecle SHIFT Y, funo que retoma direto ao 
BASIC sem passar pelo. Micro Bug. O retorno dar-se- na linha YYYY, executando o 
SAVE com tela e tudo. Um programa assim gravado, ao ser carregado, mostra a tela 
de abertura e sai rodando a partir da linha seguinte a YYYY. Claro que o fluxo do
programa no dever mais passar pela linha XXXX.

Essa linha, alis, pode ser omitida se for adotado o seguinte procedimento:

1) De alguma forma, descubra o endereo inicial da linha YYYY (ser 16509 se for
a primeira do programa);
2) Acione o Micro Bug atravs do comando direto RAND USR 31210;
3) Com o comando M, troque o contedo da varivel do sistema chamada PXLN, 
situada nos endereos 16425/6, pelo endereo inicial de YYYY;
4) Efetue as operaes descritas no processo normal.

Finalizando, espero ter deixado perfeitamente claro ao amigo leitor a pretenso 
do Ed-Art GGMI. Ele  apenas um editor grfico que ajuda a criar telas, sem a 
preocupao de empreg-las. Essa tarefa competir ao seu programa. A sua 
competncia como programador  que far com que elas se movimentem graciosamente 
na TV ou fiquem estticas. Creio que nesse mister a sua MICRO SISTEMAS poder 
emprestar valiosa colaborao pelas inmeras dicas e rotinas j publicadas. 
Aplique-se, pois voc  o dono da pelota; repare que o Ed-Art no acompanha o seu
programa, ele fica para trs e no deixa marcas. E isso  muito bom.

Um forte abrao meu e de GGMI e boas artes com o Ed-Art.