Você está na página 1de 192

RENATO DA SILVA OLIVEIRA

1ecaDIcAs PAR

TECNICAS E TRUQUES DE PROGRAMACAO

...

AUTORES:

Henrique de Figueredo Luz Luis Tarcfsio de Carvalho Jr.

Milton Maldonado Jr. (The Pilot)

Pierluigi Piazzi

Renato da Silva Oliveira Rubens Pereira Silva Jr.

3~EDIC:AO 1989

N.Editora

Aleph

1988

EDITORA ALEPH

EXPEDIENTE:

Coordenacio Editorial. Coord •• acio Did6tlca Produceo Editorial Editoracio Ilustracoes

PIERLUIGI PIAZZI BETTY FROMER PIAZZI ROSA KOGAN FROMER

RENATO DA SILVA OLIVEIRA I DURVALY ODILON NICOLETTI

'Nuitora

A.leph

ALEPH Pub II cal;ollS II AssessQria Pedag6glca Ltda

R. Dr. Lulz Mlgllano 1'" cj.311 15711 SiD Paulo sP

Calx, Postal 21717 CEP .1498 Tell (111) 843-3282

Dado. de Calaloga-;:io na Publica-;:io (CIP) Internacianal (Camara Brasilaira do Livro, SPt Brasil)

1. MSX (Computadores) - Programacao I. Titulo.

II. Serie.

Oliveira, Renato da Silva, 1960-

05lc 100 dicas para MSX : tecnicas e truques de progra-

~cao I Renato da Silva Oliveira. -- 1. ed. -- Sao Paulo: Aleph, 1988.

(Colecao MSX)

88-0118

CDD-001.642

Indicas para catalago sistematico:

1. MSX : Computadores : Programacao : Processamento de dados 001.642

r;gJJj 9J£:;\';) :JA;V\ !J tJj.;)){ .;j.!J 1'IJ.;"\;f:.( !J

1 .. !;.Ij~ 1J;9;fS !J -'f:£:.L;\.!;I!J J J .IJ .IJ .IJ U J .IJ II.IJ .IJ 7 2 ... !;,Ij£:;\1J pA:tA .%.rt~ !J Yjyf:!1 J.IJ.IJ J J.IJ II U U J J 21

3 ... !;,Ij~'\1J ~!J}J!J;{A1J J J J J J J J J J J J J " J J J J J J J J " .J J J J J 88 4 .. !)j r:.A;::l P.A;{A ~'\1J 1Jf:-'f: U J .IJ .IJ .J .IJ .IJ J U J J.I .J U.J 105

5 ... !;,Ij £:A;; v A;!;\ :UtJ ;ff:;; ;;!J;{A .I JJ J J .I .I .IJ J .I .u J .IJ .IJ J 117

6 .. Yje,.1!i P.rttr1!J !I;t~Yf: .I.1.1JUJJJJJJJJJJJJJJJJ 134 7 ... yjr:;\;i yg p;!!J£:f:;i;iAPJf:.'J1!1 JJ JJ J J J J JJ JJ .IJ J J .J J 153 8 .. }J!J'I.;\;i ;i!1!.l;jg ;\ !.l1!lLJ!J~;f.Ap'J;\ ;Jf:r:!1Me.'JY.r1Y.r1 .J.J 191

;\P ;fg';}E:N'I ;~C.l9

A grande maioria dos usuarios de mieroeomputadores ~SX nunea teve Dutro micro antes. Apesar da terem entrada no mundo da computa~io pela porta da franta. e provavel que esses usuarios tenham alguma difieuldade inicial para programar suas maquinas. Poucos deles tim. de imediato. uma visio multo clara dos poderosos recursos da que dlspoem.

Este Ilvro eontem mals de cem dicas dB

programa~io ja prontas para serem usadas. Elas

permitem um aproveitamento muito maior dos recursos dos MSX mesmo palos QSUari05 Inlciantes e. certamente. aerescentam conhecimentos valiosos aDs programadores mals experientes.

Apesar de serem geralmente independentss umas das outras. as dieas estio asrupadas am 7 capltulos. de aeordo com a fun~io a que elas sa destlnam.

o leitor podera usa-las em outros programas para otimlza-Ios ou obter resultados aspeefflcos.

Cada dica esta apresantada de forma bam pratica B resumlda de modo a tornar seu usa Imediato multo faell. As explica~oes nem sempre SiD detalhadas mas. sempre que posslvel. faz-sa raferincia a textos de outros Ilvros onde 0 assunto e eomentado mals

extensamente. .

Apesar de muitas dicas serem programas em

Linsuagem de Maquina. optamos pelo uso exclusivo da linguagem BASIC para ger'-Ias. 1550 torna a digita~io mals faell e 0 usa mals imediato. Todos as programas estao em BASIC. mas mesmo assim. para diminuir a ocorrencia de erros de digita~iD. junto a cada listagem pode-se encontrar em "vfdeo inverso" sua SOMA SINTATICA. As expl ica~oes sabre a produ~io e usa dessa ftsoma" SiD dadas na di~a 7.1 (pasina 178) e ela 6. portanto. a primeira diea que deve ser lida.

Lembre-se que a SOMA TOTAL de um programa'. mesmo coincidindo com a apr as ant ada no l l vrn. nio elimina totalmente a ocorr~ncia de erros de dlgita~io. mas apenas a reduz. Deve-se tambem considerar que a soma que apresentamos foi obtida com um EXPERT 1.1 e ha casas em que autros tipos de" MSX produzem somas

diferentes. '

Esperamos que 8stS livro possa abrir novas

horizontes aos programadores MSX, tanto aos iniciantes quanto aos que nao tim tempo sufieiente para descobrir sozinhos as jneont~vels Nmaeites~ dessas m'qulnas maravilhosas.

6

IIIII I I 111

I I

IIIII

As dicas deste capftulo abordam preponde-

rantemente assuntos relatlvos a manipula~io do teclado nos micros MSX.

Uma vez que 0 principal meio de entrada de dados para a UCP do micro e 0 teclado, a utilidade destas dicas e evidente.

1.1 - Carregando 0 Buffer do Teclado B

1.2 - llmpando 0 Buffer do Teclado 9

1.3 - Programando as teclas de fun~oes 18

1.4 - Restabelecendo as teclas de fun~oes.. 11

1.5 - Checando as teclas especlais 12

1.6 - Travando a tecla CAPS lOCK 13

1.7 - Usando 0 click do teclado 14

1.8 - Reprogramando todD 0 teelado .. 15

1.9 - Usando a barra de espa~os 18

1.A - Usando as taclas de setas ........•... 19

1.B - Uso da instrueao ON KEY GOSUB 28

7

1.1 - CARREGANDO 0 BUFFER DD TECLADD

o MSX reserva uma area (buffer) de 48 b,tes na memoria RAM para armazenar tempararlamente as dados digitadas atraves do teclado. Se esses dados forem comandos. serio executados na sequencia em que estlverem no buffer. Pode-s8 carregar comandos no buffer do teclado atraves de programas em BASIC ou em ASSEMBLY a flm de gerar efeltos especials. Por exemplo. para fazer com que um programa em BASIC seja carregado de fita cassete e seja automatlcamente executado, basta usar 0 programa apresentado a seguir.

100 110 120 130 140 150 160 170 180 190 200 210 220 230

SCREEN 1:X$=CHR$(34):Y$=CHR$(13) A$=HCLOAO"+X$+"CAS:"+X$+H:RUN"+Y$ EN=&HFBF0

FOR F=1 TO LEN(A$) CH=ASC(MIO$(A$,F,i» POKE EN,CH

EN=EN+1 .

NEXT F X=65536!+&HFBF0+LEN(A$) Y=X-256*INT(X/256)

POKE &HF3FB,Y

POKE &HF3F9,INT(X/256) POKE &HF3FA,&HF0

POKE &HF3FB,&HFB

Os dados a serem inseridos no buffer estio na varl~vel AS. A vari~vel EN armazena 0 endere~o do buffer a ser preenchido. A variavel CH armazena 0 caractere de AS a ser inserido no endere~o EN do buffer. 0 endereco &HFBf0 e 0 inrcio do buffer do teelado (KEYBUF.f).

Os endere~os &Hf3FB e &HF3F9 armazenam 0 proximo endere~o a ser preenchido no buffer do teelado (PUTPNT) e SiD preenchldos de modo a apontarem para 0 endere~o subsequente ao do tim da mensagem inserida.

Os endere~os &Hf3FA e &HF3FB armazenam 0 ultimo endere~o do buffer lido pelo micro (GETPNT) e sao posicionados de modo a apontarem para a endere~o do prlmeiro caractere inserldo (&HFBF0).

81 DLI OGRAF I A RECIJ4ENDAOA:

Programac~o Avan~ada em MSX - p~ginas 40, 41. 42 e 143.

8

1.2 - LIMPANDO 0 BUFfER 00 TEeLADO

Observe 0 programa a seguir,

10 SCREEN 0,,0:LOCATE,,0:KEY OFF

20 PRINT H EntrE uma escolha:H:PRINT

30 PRINT H [ 1 ] Op~~o 1 u

40 PRINT H [ 2 ] Op~~o 2 u

50 PRINT H [ 3 ] op~io 3 u

60 PRINT:PRINT:PRINT

70 B$~INKEY$:IF LEN(B$)(1 THEN 70 80 FOR F~1 TO 500 : NEXT F : BEEP 90 PRINT uOPC~O ";B$;H ESCOLHIDA !" 100 A$=INPUT$(i)

110 PRINT A$

~ .,.,.

.E". .. :cT.

'**AI _$Ill

II$W!I Jr:='. Ml!D MilD "*lfflI

Note que ao fazer a primeira op~ao. se a tecla da escolha for presslonada por multo tempo ou se mals de uma tecta for presslonada. a segunda op~ao tambem sera felta. 1550 ocorre porque 0 buffer do teclado fica carregado com os nar ac t e r e s dlgitados ate que eles sejam usados.

No BIOS do MSX existe uma rotlna 6til nessas situa~oes, a KILlBUFF. exacut ada. e I a I impa 0 buffer do chama-ia. basta usar as instru~oesl

que pode ser Sempre que e

teclado. Para

DEFUSR0 = &H0156 : POKE 0rUSR0(0)

Experimente inser;r a linha a seguir no programa anterior e depois execute-o novamente.

95 DEFUSR0 ~ &H0156 ~ POKE 0rUSR0(0)

Voci notar' que a segunda op~io nao mais sera atrapalhada por diglta~Des acldentals.

BIBLIOGRAFIA RECOHENDADAI

Gole~io de Programas para MSX vol. 2 - pagina 110. Aprofundando-se no MSX - pag;na 159.

9

1.3 - PROGRIMANDO AS TEellS DE FU~DES

As teclas de fun~5es podem ser facllmente

redeflnldas para atender as necessidades especrflcas de urn programa.

A forma mals dlreta de reprogram'-Ias j usando a instru~io KEY. Entretanto pode-se tambem redeflnir as teclas de fun~5es diretamente na mem6rla RAM.

Experimente executar 0 seguinte programa e depois presslone a tecla Fl.

10 FOR F=&HF87F TO &HF87F+38 20 POKE F,ASCC"A")

:30 NEXT F

Com 1550 a tecla Fl passou a ter uma sequencia de 39 caracteres "A~. lembre-se que com a instru~io KEY podemos inserir no m'ximo 15 caracteres em cada tecla de fun~ao_ Com este recurso. podemos atribuir a uma unlca tecla ate 39 caracteres. entretanto deve-se tomar alguns cuidados. pols 0 conteudo das demais teclas podem ser alterados. Experimente digitar a tecla F2 ap6s ter executado 0 programa acima. Voce vera que seu conteudo foi alterado pelo programa.

o que acontece j que existem 168 brtes da RAM, reservados a partir do endere~o &Hf87F (FNKSTR). para armazenar os taxtos das teclas de fun~oes. Cada tecla tern seu texto come~ando sempre num masma endere~o e 0 numero maximo de caracteres atribulveis a uma unica tecla de fun~io e 39. 0 4e~ caractere da area de texto de uma tecla j sempre um e.

Voce pode tambjm atribuir as teclas de fun~5es sequinclas de caracteres de controle. Por exemplo. digite a instru~io a seguir e depois pressione a tecla f1.

KEY 1,CHR$(7)+CHR$(28)+CHR${B)+CHR$(7)+C HR$(127)+CHR$(9)+CHR$(ii)

818LIOGRAFIA REGOMENDADA,

linguagem Basic MSX - pagina 81.

Curso de Basic v.l - paginas 21 e 22. Aprofundando-se no MSX - pagina 50. Programa~io Avan~ada em MSX - pagina 145

10

1.4 - RESTABElECENDO AS TECLIS DE F~ilES

As teclas de fun~aes podem ser facllmente

prOgramadls. Entretanto. ap6s usar um programa que as redefina. pode ser nec8ss6rio relnlclallz6-I.s com as fun~aes originals. Para Isso pode-se slmplesmente program.r tecla par tecla novamente au chamar uma rotlna do 810S (INITFNK em &Ha13El que se encarrega de fazer 1550 automatlcamente. Par. executar essa rotlna do BIOS basta dlgltar a segulnts Instru~iol

DEFUSR0 = &H3E : POKE 0,USR0(0)

Observe 0 programa exemplo a segulr. Ele redefine as teclas de fun~aes e logo a segulr restabetece seus conteudos originals.

10 SCREEN 0 : KEY ON 20 FOR F=1 TO 10

30 KEY F,llNOVA !H 40 NEXT F

50 SCREEN 0

60 PRINT"H TECLAS REDEFINIDAS !" 70 PRINTp•H PRESSIONE RETURN !H 80 A$=INPUT$(1)

90 DEFUSR0 = &H3E : X = USR0(0) 100 SCREEN 0

110 PRINT.pH TECLAS RESTABELECIOAS

- ...

...

-...

....

-~

-.,.

!1Ia=-

U H = t t

BIBLIOGRAFIA RECOMENOADA.

Aprofundando-se no MSX - pagtna 156.

1 1

1.5 - CHECANDO AS TECLAS ESPECIAIS

Nos micros MSX existem v'rlas manelras de

verlficarmos se alguma tecla especial esta ou nao presslonada. Uma delas e consultando as varlavels do sistema OLOKEY (&HFBDA) ou NEWKEY (&HFBE5). 0 programa Iistado a seguir ilustra esse procedlmento. checando especiflcamente se a tecla LGRA (ou GRAPH) est' presslonada.

AD ser executado 0 programa Ii 0 conteudo da regiao da mem6ria RAM que vai do endere~o &HFBDA ate 0 endere~o &HFBEF. mostrando na tela seus conteudos em blnarlo. Experlmente presslonar algumas teclas (manDs ASTOPI). Vocl vera que a cad a tecla pressionada corresponda um bit de algum dos bytes dessa regiao. Para checar qualquer tecla. portanto. basta veriflcar se 0 bit esta DU nio em ~e-. Experimente presslonar a tecl~ LGRA (ou GRAPH). A configura~ao que corresponds a ela eo valor 251 (ou 1111101'. em b l nar l o ) no byte &HFBEe. Observe como a Iinha 258 faz 0 taste para var se ela asta ou nio presslonada a tente alterar 0 programa para que ale teste se a tecla RGRA (ou CODE) est' pressionada.

260 GOTO 140 BIBLIDGRAFIA RECOMENOADA;

100 REM ~

110 REM LE OLDKEY E NEWKEY ~

120 REM ..

130 SCREEN 0 DMUI

140 LOCATE 0,5.0 ~

150 FOR F=&HFBDA TO &HFBE4 muaa

160 PRINT "&H";HEX$(F);"=) ": DIU

i70 PRINT RIGHT$("00000000"+BIN$(PEEK(1UII F» ,8);

i80 PRINT" &H"-HEX$(F+11>;"=)"; Il!IDI 190 PR INT R IGHT$ ('~00000000"+B IN$ (PEEK (~ F+11»,8)

200 NEXT F ~

210 PRINT:PRINT:PRINT ~

220 REM HIla

230 REM TESTA A TECLA LGRA ~

240 REM ~

250 IF PEEK(&HFBE0)=(PEEK(&HFBE0)AND251)~ THEN PRINT "LGRA PRESSIONADA"ELSEPRINT"

"

Aprofundando-se no MSX - paginas 83 a 86. 12

1.6 - TRAVANDO A TECLA CAPS LOCI

Existe uma variavel do sistema (CAPST. em &HFCAB) que indica 0 estado da tecla CAPS LOCK. Sa CAPS LOCK esta atlva. essa variavel contem 255 au algum Dutro valor maior que zero. e se Inatlva. contem 0. Cada vez que a tecla CAPS LOCK e presslonada os bits da variavel CAPST sao complementados de modo que seu valor e sempre 0 ou 255.

Para simular 0 pressionamento de CAPS LOCK basta "pokear" 255 ou 0 em CAPST.

Para travar a CAPS LOCK. delxando-a atlva, basta pokear qualquer valor maior que 0 e menor que 255 em CAPST. pais asslm; mesmo que CAPS LOCK seja pressionada. a complementa~ao dos bits de CAPST produzlra um valor tambem maior que B e menor que 255.

Experimente dlgitar e usar 0 programa a seguir.

Ap6s executa-Io. digite algumas letras usando as teclas CAPS LOCK e SHIFT. Voce notara que elas flcaram pratlcamente inoperantes para as letras.

10 SCREEN 0 : WIDTH 38 20 POKE &HFCAB,l

30 PRINT"N DIGITE ALGUMAS LETRASN 40 PRINTN (com ou sem SHIFT):N

50 PRINT : PRINT

60 A$::INPUT$(1)

70 PRINT All;

80 GOTO 60

U H: ,,:~, ~

Para fazer com que a tecla CAPS LOCK volte a funclonar normalmente, eomande,

POI(E &HFCAB70

BIBLIOGRAFIA RECOMENDADAI

Aprofundando-se no HSX - paglna 58. Programa~io Avan~ada em HSX - pagina 146.

Cole~ao de Programas para HSX vol 2 - paglnas 51 e 55.

13

10 SCREEN 1 20 KEY OFF 30 COLOR 1.4

40 LOCATE 32*RND(i).24 50 PRINT "*"

60 OUT &HAA.&HFF 70 OUT &HAA.&H7F 80 GOTO 40

1.7 - USANDO 0 CLICK DO TECLADO

o cl ict do tectado pode ser usado para muttas e diferentes apllca~oes. deixando livre para outros usos o PSG.

Para gerar 0 cllct do teclado pDr software. , necessaria acessar a hardware da maqulna com comando5 OUT. Veja 0 programa a segulr.

U HL = j~j

Gada vez que 85 linhas 68 e 78 sio executadas um "c Ii ct" e gerado. Voce pode usar I sto para sonor i zar seus programas mesmo sem usar 0 PSG.

BIBLIOGRAFIA RECOMENDADA.

Col8~io de Programas para MSX vol 2 - pagina 15. Aprofundando-se no H5X - paglna 87.

14

1.8 - REPROGRIMANDO TOOO 0 TEelADO

Agora seu MSX tambem pode tel' um -teclado Intellgente- como nos velhos tempos do Apple e do Sinclair. 0 programa a segulr Instala em seu teclado as principals palavras reservadas do Basic sem perder sua fun,io original.

A redefini,io atlnge as letras malusculas e mlnusculas. totallzando 52 palavras reservadas. No que • possfvel. as taclas seguem 0 padrio Sinclair (A=NEW. K=LIST. etc). Palavras do Sinclair que nio exlstam no HSX (PAUSE. SCROLL. etc) SiD trocadas por outras do ultimo.

Para usar a programa. digite-o e comande RUN.

Apas a execu,io deverio aparaeer os c6dlgos das teelas e as pal avras ~ eorrespondentes. Experlmente entio teclar SELECT e em seguida a tecla A. Voce devera obter "NEW-. Tecle agora SELECT+"a- para obter -FRE(". Tente entio outras combina,ijes. 0 que acontece quando a tecla a~6s 0 SELECT nio e uma letra?

1000 REM ------------------------- 1010 REM TOKEN V. 1.0 BY THE PILOT

1020 REM JANEIRO DE 1988

1030 REM ------------------------- 1040 REM

1050 DATA 21,9B,D1,CD,CE.D1,21,16 1060 DATA D0,22,A5,FD,3E,C3,32,A4 1070 DATA FD,AF,32,D7,D1,C9,4F,3A 1080 DATA D7,D1,A7,79,20,05,FE,18 1090 DATA 28,49,C9,FE,41,38,3D,FE 1100 DATA 5B,30,08.D6,40.47,21,72 1110 DATA D0,18,0E,FE.61,38,2D,FE 1120 DATA 7B,30,29,D6,60,47,21,08 1130 DATA D1,7E,A7,23,20,FB.10,F9 1140 DATA 3E,C9,32,A4,FD,7E,A7,28 1150 DATA 06,CD,A2,00,23,18,F6,3E 1160 DATA C3,32,A4,FD,AF,32,D7,D1 1170 DATA C1,C3,DA,08,4F.AF,32,D7 1180 DATA D1,79,C9.3E,FF.32,D7,Dl 1190 DATA AF,C9,00,4E,45,57,00,42 1200 DATA 45,45,50,00,43,4F,4E,54 1210 DATA 00,44,49,40,20,00,52,45 1220 DATA 4D,20,00,46.4F.52,20,00 1230 DATA 47.4F.54,4F,20,00.47.4F 1240 DATA 53,55,42,20,00,49,4E,50 1250 DATA 55,54,20,00,4C,4F,41,44 1260 DATA 20,00,4C,49,53,54,20,00

15

1270 DATA 4C,4C,49,53,54,20,00,4D ~

1280 DATA 4F,54,4F,52,20,00,4E,45 ~

1290 DATA 58,54,20,00,50,4F,4B,45 ~

1300 DATA 20,00,50,52,49,4E,54,00 ~

1310 DATA 50,53,45.54,20,28,00,52 IU8I

1320 DATA 55,4E,00,53,41,56,45.20 ~

1330 DATA 00,54.52,4F,4E,00,49,46 mcI!I

1340 DATA 20,00,43,4C,53,00.50,52 ua=I

1350 DATA 45,53,45,54,20,28,00,43 ~.

1360 DATA 4C,45,41,52,00,52,45,54 ~

1370 DATA 55,52.4E,00,45,4E,44,00 laD

1380 DATA 00,46,52,45,28,00,49,4E ~

1390 DATA 4B,45,59,24,00,44,53,48 __

1400 DATA 46,28,00.41,54,4E,28,00 ~

1410 DATA 54.41,4E,28,00,53,47,4E ~

1420 DATA 28,00,41,42,53,28,00,53 ~

1430 DATA 51,52,28,00,41,53,43,28 ..

1440 DATA 00,56,41,4C,28,00,4C,45 ....

1450 DATA 4E,28,00,55,53,52,00,33 ....

1460 DATA 2E,31,34,31,35,39,32,37 ~

1470 DATA 21,00,4E,4F,54,00,50,45 ra.bU

1480 DATA 45,48,28,00,54,41,42.28 ~

1490 DATA 00,53,49,4E,28,00,49,4E ~

1500 DATA 54,28,00,53,54,52,49,4E Imla

1510 DATA 47,24,28,00,52,4E,44,28 ~

1520 DATA 00,43,48,52,24,28,00,56 ~

1530 DATA 41,52,50,54,52,28,00,43 ~

1540 DATA 4F,53,28,00,45,58,50,28 ~

1550 DATA 00,53,54,52,24,28,00,4C UUE9

1560 DATA 4E,28.00,0C,50,72,6F,67 ~

1570 DATA 72,61,60,61,20,65,73,63 ....

1580 DATA 72.69,74,6F,20.70,6F,72 ~

1590 DATA 3A,0D,0A,54,48,45,20,50 ~

1600 DATA 49,4C,4F,54,20,65,6D,20 ~

1610 DATA 4A,61,6E,65,69,72,6F,2F ~

1620 DATA 31,39,38.38,2E.00,7E,A7 ~

1630 DATA C8,CD,A2,00,23,18,F7,00 ~

1640 DATA FIM ImIa

1650 CLS=PRINT "CARREGANDO TOKEN" ....

1660 FOR 1=&HD000 TO &HD1D8:READ A$:POKE~

I,VAL("&H"+A$):NEXT I

1670 DEFUSR=&HD000:A=USR(0):PRINT:PRINT ~ 1680 FOR 1=65 TO 90:PRINT "<SELECT)+"CHRIIia.meI $(1);" = ";CHR$(24);CHR$(I):FOR T=0 TO 1

00: NEXT T: N'EXT I

1690 FOR 1=97 TO 122=PRINT "<SELECT)+"CHISBI R$(I);" = ";CHR$(24';CHR$(I):FOR T=0 TO 100:NEXT T:NEXT I

1700 END em9I

16

~ recomend6vel salvar 0 c6dlgo bln'rlo para facilitar 0 uso do programa. Para isto dlgltel

aSAVE "TOKEN.BIN",&HD000,&HD1DB

ou

aSAVE "CAS:TOKEN",&HD000,&HD1DB

Para executar 0 programa. use 0 comando:

BLOAD "TOKEN.8IN",R

ou

BLOAD "CAS:",R

BIBllOGRAFIA RECOMENDADII

Aprofundando-se no MSX - paginas 66 a 71 e caprtulo 3. Programa~ao Avan~ado em HSX - capitulo 1 e apendice 3.

17

1.9 - USANDO A BARRA DE ESPACOS

A barra de espa~os no MSX pode ser usada de multas e diferentes manelras. No programa abaixo apresentamos um exemplo em que a barra , usada para controlar 0 fluxo do processamento usando a fun~ao STRIG.

10 SCREEN 0 : PRINT: PRINT SPC(6); 20 PRINT NDIGITE A BARRA DE ESPACO !" 30 BEEP

40 IF NOT STRIG(0) THEN 30 50 PLAY "ABCDEFGN

Uma outra forma de se controlar 0 fluxo do processamento , atraves das interrup~oes. Essa maneira , I lustrada pelo programa a segulr.

10 SCREEN 0 : PRINT: PRINT SPC(6); 20 PRINT "DIGITE A BARRA DE ESPACO !N 30 STRIG(0) ON : ON STRIG GOSUB 60

40 PLAY"V15ABCDEFG07L32"

50 GOTO 50

60 PLAY"CH" : RETURN

Observe que os dais programas apresentados sao fundamentalmente dlferentes. 0 primelro apenas Interrompe 0 processamento normal do programa ate que a barra de espa~os seia presslonada.- enquanto 0 segundo desvla 0 processamento para uma sub-rotlna. esteja ele em que IInha estlver. sempre que a barra de espa~os for pressionada.

BIBllOGRAFIA RECCltENDADI=

Llnguagem Basic MSX - piglnas 112. 159. 160. 178 e 179.

Gole~ao de Programas para MSX v.2 - piglnas 75 a 82.

18

1.A - USANDO AS TEeLAS DE SETAS

As teclas de setas podem ser testadas atraves de uma fun~ao do BASIC MSX. 0 programa apresentado a seguir ilustra urn uso t(pico dessa fun~ao. associada ao controle de um ponto plotante na SCREEN 2.

Note que usamos ~par6nteses 16glcos- para tornar a tela ilirnitada. Se 0 ponto tentar sair da tela par qualquer urn de seus q lados. autornaticarnente sera transportado para a prirneira posl~io do lado oposto.

100 SCREEN 2'70 : DEFINT A-Z 1.10 X==128 : Y=96

120 PSET (X.Y).15

130 A=STICK(0) : IF A=0 THEN 130 140 Y=Y+(A<3 OR A=8)-(A}3 AND A<7) 150 X=X-(A)1 AND A<5)+(A}5)

160 X = -255*(X=-1) X*(X<}-l) 170 X = -X*(X<>256)

180 Y = -191*(Y=-i) - Y*CY<}-1) 190 Y = -Y*(Y<>i92)

~~00 GOTO 120

.me! -.

Para entender 0 programa. I embre-se que quando 0 conte~do dentro dos parinteses for verdadeiro. ele pode ser substltu(do pelo valor numirico "_1ff. e quando for 1also. pelo valor -B-.

19

1.B - USO DA INSTRUCiO ON KEY GOSUB

As teclas de fun~oes podem ser usadas para chamar sub-rotlnas automatlcamente durante as interrup~oes. Observe 0 programa a seguir. Oigite-o e rode-o.

10 SCREEN 0,,0 : PLAY "L64" mil .20 FOR F::=1 TO 10 : KEY(F) ON : NEXT F ..... 30 ON KEY GOSUB i00.200,300.400.500r600r~ 700,800,900,1000

40 GOTO 40

100 PRINT ff Fl PRESSIONAOA !!! " 110 PLAY "c"

120 RETURN

200 PRINT" F2 PRESSIONADA I I I " 210 PLAY "CM"

220 RETURN

300 PRINT" F3 PRESSIONADA !!! " :310 PLAY "D"

320 RETURN

400 PRINT" F4 PRESSIONADA !!! " 410 PLAY "OH"

420 RETURN

500 PRINT" F5 PRESSIONADA !!! " :510 PLAY "En

~"520 RETURN

600 PRINT" F6 PRESSIONAOA !!! " 610 PLAY "F"

620 RETURN

700 PRINT" F7 PRESSIONADA !!! ff 710 PLAY "FM"

720 RETURN

800 PRINT" Fa PRESSIONADA !!! " 810 PLAY "G"

820 RETURN

900 PRINT" F9 PRESSIONADA !!! " 910 PLAY i"G#"

920 RETURN

1000 PRINT" F10 PRESSIONADA !!! " :1.010 PLAY "A"

1020 RETURN

oqa

Observe que, independentemente da programa que estiver sendo executada, alguma tecla de fun~io for pressionada uma sera chamada.

20

linha do

sempre que sub-rotina

IIIII I I 121

I I

IIIII

Este capftulo aborda os recursos do v(deo do MSX. Existe um circuito dedicado ao controle do vfdeo (VDP) que tem i sua djsPosi~io 16 Kbytes de membria RAM (VRAM) para armazenar os dados da tela. 0 controle do video pode ser feito atraves do BASIC, com os v~rios comandos dedicados a isso, au diretamente em Linguagem de M~quina.

2.1 - Cor de frente i suat a cor de fundo 22

2.2 - Pseudo-borda na SCREEN 0 23

2.3 - Textos na SCREEN 2 24

2.4 - Caracteres menores que 32 26

2.5 - Caracteres de controle do video 27

2.6 - Usando 0 STEP em comandos grHicos 29

2.7 - Posicionando 0 cursor na SCREEN 2 31

2.8 - Movimentos na tela 32

2.9 - SCREEN 4 35

2.A - Setores com 0 CIRCLE.................. 39

2.6 - Redefinindo caracteres 40

2.C - SCROLL UP para SCREEN 0 52

2.0 - SCROLL DOWN para SCREEN 0 53

2.E - SCROLL LEFT para SCREEN 0 54

2.F - SCROll RIGHT para SCREEN 0 55

2.G - SCROLL UP para SCREEN 1 56

2.H - SCROLL DOWN para SCREEN 1 57

2.1 - SCROLL LEFT para SCREEN 1 58

2.J - SCROLL RIGHT para SCREEN 1 59

2.K - Gentral izando caracteres 60

2.L - Animacio com SPRITES 61

2 . M - Let r a s amp I j a d as. . . . . . . . . . . . . . . . . . . . .. 63 2.N - Entendendo 0 DRAW..................... 66

2.0 - -WARP 8- na SCREEN 2 67

2.P - ·SPRITEANDO" a tabela de caracteres 68

2.0 - Arlequim bebado 69

2.R - Usando 40 ou 64 colunas na SCREEN 2 71

2.S - Carimbador de SPRITES axB na SCREEN 2. 73 2.T - Carimbador de SPRITES 16x16 na SCREEN 2 75

2. U - Armazenando te I as na RAM 76

2.V - Usando a VRAM para dados 77

2.W - PesQuisador de desenhos 79

2.X - Imagens instantineas 83

2.Y - Impressio em tamanho duplo na SCREEN 2 84

21,

10 SCREEN 2

20 CIRCLE (128F86)F50 30 COLOR 1

40 GOTO 40

2.1 - COR DE FRENTE IGUAL A COR DE fUNOO

Muitos programas aD terminarem a execu~io ou serem interrompidos por CONTROL + STOP deixam a tela com a cor de frente igual a cor de fundo e a primeira impressio que se tern e que 0 micro quebrou. Diglte e rode 0 programinha I Istado a seguir.

Ap6s 0 desenho do cfrculo terminar. dlglte

CONTROL + STOP. A tela deveri flcar totalmente escura.

Para verlficar 0 que estj acontecendo basta dlgihr.

SHIFT + H~E/CLS e

SHIFT + Fl

Com 1550. a tela sera Ilmpa e as cores normals do video serio restabelecldas. desde que as teclas de fun~aes nio tenham sldo redefinidas pelo programa que foi interrompldo.

Se 0 procedimento descrlto aelma nao funclonar. tente digltar 0 comando abaixo. mesmo sem v@-Io na t el a:

COLOR 15.1 I SCREEN. (8 RETURN)

22

2.2 - PSEUDO-HOROA HA SCREEN 8

o comandD COLOR, quando usado com a SCREEN 0, naD permite a especifica~ao da cor da borda. Gom um pequeno programa em BASIC podemos resolver parcialmente 0 problema,gerando uma PSEUDO-BORDA para a SCREEN O. Olglte e execute 0 programa a seguir e depols verifique as novas caracterlsticas da tela.

10 COLOR 1,15 : SCREEN 0 20 FOR F=2048 TO 4095

30 X = NOT(VPEEK(F» AND 255 40 VPOKE F. X

50 NEXT F

60 INPUTHQual a cor da borda (0-15)H;B 70 IF B<0 OR B)15 THEN 60

80 COLOR ,B

90 GOTO 60

U H = ~H~H

BIBllOGRAFIA RECOMENDADA:

Aprofundando-se no HSX - capitulo 4.

23

10·SCREEN 2

20 OPEN "GRP;" AS HI 30 CIRCLE (128.86).50 40 PRESET (110.84)

50 PRINT HI. "EDITORA ALEPH" 60 GOTO 60

2.3 - TEXTOS HI SCREEN 2

o MSX permite a impressao de letras e SCREEN 2. Para isso e necessario abrir um tel a (GRP,) e usar a i ns t r ue ao PRINT ,. programa a segulr:

graficos na arquivo na Observe 0

U H = ~ ~

A linha 10 seleciona 0 uso da tela grafica de alta r e so l uc su (GRP,).

A I Inha 20 abre um arquivo ness a tela. Nao e necessario especlficar 0 tipo de arquivo ( ... FOR OUTPUT ... ). uma vez que e I e s6 pode ser de s afdal

A linha 30 desenha um cfrculo de ce~tro na posil;ao (12B.86) e raio de 50 pixels.

A Ilnha 40 -marca" um ponto na posll;ao (110.84), a partir do qual a mensagem sera impressa.

A I inha 50 imprlme a mensagem na tela a partir

do ponto marcado pela linha 40. Cada caractere e definido dentro de uma matriz de 8xB pontos. A posil;io marcada pela I inha 40 poslciona a v6rtice superior esquerdo do primelro caractere da mensagem.

Observe que podemos "criar· novos tipos de letras na SCREEN 2. usando uma dupla Impressio dos caracteres ~ormais. Experlmente inserlr no programa anterior as seguinte I t nh as ,

55 PRESET (109.84)

56 PRINT H1. "EDITORA ALEPH"

Isso deve ter produzido uma mensagem em Wbold"t Um outro recurso e 0 uso de espal;amento menor entre as letras a serem impressas. Experimente executar 0 programa a segulr. Ele imprlme na SCREEN 2 ums mensagem Dam espal;amento reduzido.

10 SCREEN 2

20 OPEN "GRP:" AS 81 30 A$="EDITORA ALEPH"

24

40 FOR F=l TO LEN(A$)

50 PRESET (110+(F-l}*6p84) 60 PRINT KlpMIO$(A$pF,l) 70 NEXT F

80 60TO 80

LI*l

Para entender melhor 0 funclonameneto programa. experimente substituir a linha 50 por,

50 PRESET (110+(F-l)*i2p84)

do

BIBLIOGRAflA RECOMENDADA;

Curso de BASIC v.l - paglnas 65 e 66.

Gole~ao de Programas para MSX - paginas 32. 33. 59 e 69.

25

2.4 - CARACTERES "ENDRES QUE 32

as micros MSX dispoem de 256 caracteres, todos apresentaveis no video. Entretanto, os prime/ros 32 caracteres correspondem a codlgos de controle de perlfhrtcos (8 a 31) e para serem apresentados atravis de seus c6digos necessltam de uma sintaxe peculiar da instru~ao PRINT CHR$. 0 programa a segulr apresenta 05 32 caracteres de controle atrav's de seus c6dlgos.

10 SCREEN 1 20 WIDTH 16

30 FOR F=0 TO 31

40 PRINT CHRS(1)+CHR$(64+F); 50 NEXT F

U H = ~~

Note que a apresenta~ao 'felta pela linha 40.

Para se mostrar um caractere de controle atraves de seu codlgo e necessario usar a stntaxel

PRINT CHR$(1)+CHR$(64+ n2 )

Dnde Hng- e a codlgo (de 8 a 31) do caractere a ser apresentado.

BIBllOGRAFIA RECOMENDADA;

Cole~ao de Programas para MSX v.l - paginas 26 e 27. 26

2.5 - CARACTERES DE CONTROL E DE V iDEO

o padr~o de v(deo dos M5X utillzados em microcomputadores. podem ser usados para controlar 0 como 0 posicionamento do cursor, formato do cursor. etc.

A seguir relacionamos as caracteres de controle do vfdeo do MSX. Eles devem ser usados com 0 comando PRINT. Par exempo. para delxar 0 cursor poslclrinado na Iinha 10 e coluna 20 basta comandar:

e urn dos rnals Alguns caracteres video em fun~D8s Ilmpeza da tela,

PRINT CHR~(27)CHR$(32+i0)CHR$(32+20)~ Apl91 a tela

CHR$(27)"j" OU

cl·m $ (27) "E"

Apagl do cursor aD fl. da Iinha CHR$(27)//K"

Apaga do cursor aD fl. da tela CHR~li(27)Nf'

Apaga a Iinha Intelra CHR$(27)"'1u

Insere u.a Iinha a. branco CHR~& (27) "Lu

EII.lna ~a linha CHR$(27)uM"

Poslciona cursor CHR$(27)"Y";

C H R $ ( 32 + nQ d ali n h a ) ; CHR$(32+nQ da coluna)

Cursor Ilaha acl •• CHRQJ(27)"A"

Cursor Iinha abalxo CHR~&(27)"B"

Cursor coluna a dlrelt.

CHR ~& (27) "C"

Cursor coluna a esquerdl CHR$(27)"D"

27

Cur sor _ H(JIIIE CHR$(27)"H"

Cursor int.lro CHR$ (27) 1;;·:4/1

Cursor pela .etade CHR$(27)"y4#

Cursor apagado

CH R $ ( 27) ":-: 5"

Cursor ae.slll CHR$(27)"y5"

o pragrama a seguir ilustra a uso de alguns dos recursos descritas acima. Digits-o. rode-o e estude-a.

10 SCREEN 0 : WIDTH 38 : KEY OFF ~
11 PRINT "0 i 9 it E qualquEF coisa ". tHa
p
12 PRINT "e use as teclas de set as"; ~
13 PRINT " e as teclas HOME e CLS !" !IW:l
14 PRINT : PRINT : PRINT ~
20 A$=INKEY$ . IF A$="" THEN 20 UBI
.
30 IF A$()CHR$(12) THEN 50 ~
40 PRINT CHR4Ji(27)"j" ~
50 IF A$( )CHR$ (11) THEN 70 mJ:!!OO
60 PRINT CHR$(27)"K" ~
70 PRINT A$: ~
90 GOTO 20 ~ == to·,

BIBLIOGRAFIA RECCltENOADA.

Sistema de Disco para MSX. - pagina 186.

28

2.6 - USANDO 0 STEP at C(JIIANDOS GRAF I COS

A jnstru~ao auxi liar STEP po de ser multo uti! quando usada com comandos graflcos.

Veja 0 programa a seguir:

10 SCREEN 2

20 PSET (20p20)

30 PSET STEP (20p20) 40 60TO 40

U H = l ::_

Ao ser executado ele Ira plotar dais pontos na diagonal que sal do canto superior esquerdo da tela. 1550 acontece porque a instru~ao STEP permite a deflni~io de urn novo sistema de coordenadas na tela.

o sistema de coordenadas normal e urn sistema ABSOLUTO, Isto e. suas coordenadas sio sempre correspondentes a uma mesma orfgem. fixa no canto superior esquerdo da tela.

o sistema usado pelo STEP' urn sistema HoVEL, em que as coordenadas correspondem a uma origem movel. definida pelo ultimo ponto Hmarcado" na tela. Note que PONTO -HARGADO" nio e necessarlamente PONTO -PLOTADO". Par exemplo. ao se usar um comando GIRGLE 0 ponto -marcado· e 0 seu centro. enquanto que as pontos plotados SiD 05 do circulo.

Vamos tentar entender 1550 melhor. Observe novamente 0 programa anterior.

A Iinha 18 spenas seleciona a SGREEN 2 do micro.

Essa tela tern uma resotu~io de 256 cotunas x 192 t Inhas .. num total de 49152 pontas.

A linha 28 marca 0 ponto de coordenadas x=28 e y=28 na tela. Note que essas coordenadas sao referentes ao sistema ABSOLUTO. pais NiO exlste a instru~io STEP precedendo as coordenadas.

A linha 38 tambem marea urn ponto na tela (a de eoordenadas x'=28 e ,'=28). porem as coordenadas desse ponto sio precedldas pela instru~io STEP e, portanto. referem-se ao sistema de eoordenadas HoVEL. Como a ultimo ponto marcado na tela foi 0 de coordenadas ABSOLUTAS x=28 e y=21. esse ponto fol tornado como ORiGEM do sistema HoVEL. Portanto. as coordenadas x'=28 e ,'=28 do sistema H6VEL eorrespondem as coordenadas x=48 e ,=41 do sistema ABSOLUTO.

Agora. esquente urn pouco a cabe~a tentando

entender 0 funclonamento dos tris programlnhas

listados na proxima psglna.

29

PROGRaHA 1

10 SCREEN 2 20 PSET (0.0)

30 CIRCLE STEP(6,6),4 40 GOTO 30

PROGRAMA 2

10 SCREEN 2 20 PSET (0,0)

30 LINE STEP(3,3)-STEP(3,3) 40 G010 30

PROGRAMA 3

10 SCREEN 2

20 FOR F=0 TO 6.28 STEP .2

30 X=80*SIN(F): Y=B0*COS(F) 40 LINE STEP(X,Y)-(12B,86) 50 NEXT F

60 GOTO 60

30

2.7 - POS I C I ONANDO 0 CURSOR NA SCREEN Z

A forma mals genirlca de 58 poslcionar 0 cursor na SCREEN 2 i usando 0 segulnte comandol

PSET (co1una,linha),POINT <co1una,linha)

Por exemplo, para posicionar 0 cursor na coluna 89 e Iinha 198 devemo5 fazer.

PSET (89,190),POINT (89,190)

Se qulsermos posicionar 0 cursor para impressao de textos na SCREEN 2 podemos considera-Ia dlvldida em 32 colunas e 2~ "nhas. como a SCREEN 1. Oesse modo, 0 comando PSET aclma pode ser substituido por,

PSET (8*co1,8*lin),POINT (8*co1,8*lin)

Para Imprlmir na coluna 10 e linha 5 devemos usar entao.

PSET (8*10,8*S),POINT (8*1078*5) Agora. diglte erode 0 programa a seguir.

10 SCREEN 2

20 OPEN HGRP:H AS N1 30 C = 10 : L = 10

40 PSET(8*C,B*L),POINT(8*C,8*L) 50 PRINT N1, "ALEPHH

60 GOTO S0

Na I inha 30 define-se a coluna (de 0 a 31) e a Iinha (de 0 a 23) onde desejamos Imprimir. A linha 40 POSIClona 0 cursor e a linha 50 imprime na tela.

Veja a dica 2.3 para entender melhor 0 programa.

31

2.9 - MOVIMENTOS NA TELA

Multas vezes pode-se desejar que a tela do MSX apresente algum movimento global. A segulr, apresentamos se l s programas que produzem movimentos globals na SCREEN 1.

PROGRAMA 1

10 ' TESTE DE MOVIMENTO

20 SCREEN 1 : WIDTH 32 : COLOR 1,7,4 30 FOR F=0 TO 22

40 PRINT STRING$(32,"OH); : NEXT F 50 FOR F=8*ASC(HO") TO 8*ASC("OH)+7 60 IF 8=0 THEN VPOKE F,VPEEK(F)/8 70 IF 8=1 THEN VPOKE F,8*VPEEK(F) 80 NEXT F : 8=(8+1) MOD 2 : GOTO 50

PROGRAMA 2

100 ' TESTE DE MOVIMENTO 2

110 SCREEN 1 : WIDTH 32 : COLOR 1,7,4 120 FOR F=0 TO 22

130 PRINT STRING$(32,"."); : NEXT F 140 A=VPEEK(8*ASCC"."»

150 FOR F=8*ASCC".") TO 8*ASCC".-)+6 160 VPOKE(F),VPEEK(F+1)

170 NEXT F

180 VPOKE F,A

190 GOTO 140

roaa

PROGRAMA 3

200 SCREEN1 : WIDTH 32 210 FOR F=48 TO 69

220 A$=A$+CHR$(F)

230 NEXT F

240 FOR F=1 TO 31

250 A=INT(1+RNO(1)*21)

260 A$=RIGHT$(A$,A)+LEFT$(A$,21-A) 270 FOR G=1 TO 21:LOCATE F,G

280 PRINT MIO$(A$,G.1):NEXT G

290 NEXT F

300 FOR F=48*8 TO 69*8+7 310 A=INT(8*RND(1»

32

320 IF RNO(i».01 THEN VPOKE F.0 ELSE VP ~ OKE F,2A.A

330 NEXT F ~

340 A%=VPEEK(69*B+7) ~

350 FOR F%=69*8+6 TO 48*8 STEP-i ~

360 VPOKE F7.+i,VPEEK(F7.) ~

370 NEXT F7. ~

380 VPOKE F7.+i,A7. ~

390 GOlO 340 tmm9

U H = b~~H

PROSRAMA 4

400 SCREENi : WIDTH 32 410 FOR F=48 TO 69

420 A$=A$+CHR$(F)

430 NEXT F .

440 FOR F=i TO 31

450 A=INT(i+RNO(i)*21)

460 A$=RIGHT$(A$,A)+LEFT$(A$.21-A) 470 FOR G=i TO 21=LOCATE F,G

480 PRINT MIO$(A$,G,i):NEXT G

490 NEXT F

500 FOR F=4B*B TO 69*B+7 510 A=INT(B*RNO(l»

520 IF RNO(1».0i THEN VPOKE F,0 ELSE OKE F,2 .... A

530 NEXT F

540 A7.=VPEEK(48*8>

550 FOR F%=4B*B TO 69*8+6 560 VPOKE F7.,VPEEK(F7.+1) 570 NEXT F7.

580 VPOKE F7.rA7. 590 GOTO 540

33

PROGRAMA 5

600 • PSEUDO-SCROLL A ESGUERDA ~ 610 SCREEN 1 : WIDTH 32 : COLOR 1.7.4 ~

620 X==8*ASC (u ") ~

630 8=0 : VPOKE X.&B00000001 ~

640 VPOKE X,VPEEK(X>*2 ~

650 8=8+1: IF 8=7 THEN 630 ~

660 GOTO 640 ~

.rom

- I ·1

- ~.:..

PROGRAMA 6

670 ' PSEUDO-SCROLL A DIREITA

680 SCREEN 1 : WIDTH 32 : COLOR 1.7.4 690 X=8*ASC e" ")

700 8=0 : VPOKE X.&B10000000 710 VPOKE X.VPEEK(X)/2

720 8=8+1 : IF 8=7 THEN 700 730 GOTO 710

BIBLIOGRAFIA RECCltENDADA=

Aprofundando-se no MSX - capftulo 4.

2.9 ... SCREEN 4

QUlndo comlndlmos SCREEN 1 ou SCREEN 2. 0 Interprefador BASIC prepara a VRAM com as tabela pr6prlas para a tala salaclonada a 0 VDP para aglr sabre essas tabelas.

Anilisando os procedlmentos exacutados palo micro quando usamos um comando SCREEN podemos Ideallzar uma forma de fazer a VRAM ser preparada com as tabelas da SCREEN 2 e as varl'vels do sistema serem preparadas para operar sabre a SCREEN 11 Desse modo. poderemos conciliar a rapldez de opera~io da SCREEN 1 com todos as recursos de cores e formas da SCREEN 2.

A ldila i ~enganar~ a interpretador. fazendo-o pensar que est~ opera~do sabra a SCREEN 1. anquanto a VRAM a 0 VDP estario preparados para a SCREEN 2. Note que 85 varl~vels do sistema. preparadas pelo Interpreta~or para uma dada SCREEN. funcionam como um

~mecanlsmo inlblt6rlo" para 0 VDP. fazendo-o

comportar-se sob r'gldo controle. Se usarmos

dlretamente as rotlnas do BIOS. sem que 0

interpretador "salba". podaremos evltar os "macanlsmos Inlblt6rlos" e gerar algo parecido com uma "ESOUIZOFRENIA INDUZIDA" no micro.

Observe atentamente 0 programa a seguir. Oiglt8-0 e. antes de execut~-Io. lela os comant'rios qua 0 seguem.

PROGRAMA SCREEN 4

100 COLOR 15,1,15 110 SCREEN 2

1.20 DEFINT A-Z 130 SCREEN .1

140 DEFUSR = &H7E 150 X = U5R(0)

160 FOR F = 0 TO 2047

170 X = PEEK (&H1BBF + F) 180 VPOKE ( F),X 190 VPOKE (&H800 + F),X 200 UPOKE (&HI000 + F),X 210 NEXT F

220 FOR F=0 TO 7

230 VPOKE 2048+255*8+F,255 240 VPOKE 4096+255*8+F.255 250 NEXT F

:_I H = . ;:'.'

35

Antes de ma I s nada. I embre-se de como a VRAM fica dlvldlda quando se usa a SCREEN 1 ou a SCREEN 2.

Uma vez estudada a estrutura da VRAM quando no modo SCREEN 1 ou SCREEN 2. podemos analisar 0 programa.

A Iinha 18. serve apenas para que a cor da borda da tela seia seleclonada quando 0 comando SCREEN na Iinha 118 for executado.

A Iinha 118 seleclona a SCREEN 2 para que as tabelas da VRAM sejam preparadas para ela.

A Iinha 128 serve apenas para aumentar um pouco a velocldade de execu~io do programa. aflnal ele necesslta apenas de valores intelros. Este recurso dos micros MSX e extremamente utll para esta flnalldade.

A linha 138 seleclona a SCREEN 1 para que as variaveis do sistema indiquem ao interpretador 0 modo SCREEN 1. Note que ate aqul nio houve nenhum "truque"

de programa~io digno de malores expllca~oes. 0

interpretador ainda nao fol "enganado-I Isso s6

ocorrer6 apbs a execu~io das prbxlmas Iinhas.

As Iinhas 140 e 158 executam a rotlna do BIDS SETGRP {em &H007E1. Ela prepara 0 VOP para acessar as tabelas da SCREEN 2. Note que. com 1550. ja temus a VRAM preparada como SCREEN 1 (e residualmente como SCREEN 21 e 0 VOP preparado para acessar a SCREEN 2.

As Ii nhas de 168 a 21 e carregam as tabe I as de caracteres da VRAM com os caracteres da ROM (de 8 a 255). 05 desenhos dos 255 caracteres sio definidos tres vez e s , uma para cada t er co da te la. A tabel a correspondente is Iinhas de 8 a 7 da tela ocupa os primeiros 2 Kbytes da VRAM. De 2 a 4 Kbytes est' a tabela correspondente is I Inhas de 8 a 15. As Iinhas de 16 a 23 usam a tabela de caracteres entre 4 e 6 Kbytes.

As linhas de 220 a 250 apenas redefinem 05 desenhos do caractere 255 (cursor) para serem usados no segundo e terceiro ter~o da tela.

Note que a I inha 180 poderia ter sldo omitida sem nenhum problema. pois 0 comando SCREEN 1 da linha 138 ji havia carregado os desenhos dos 255 caracteres no primelro ter~o da tela.

ALTERANOO AS CORES 005 CARACTERES

Na SCREEN 1 podemos alterar a cor de grupos de 8 caracteres. Por eKemplo, 58 alterarmos a cor do caractere 3, as cores dos caracteres de 0 a 7 serio simultaneamente alteradas. Na SCREEN 2. podemos alterar a cor de cada um dos caracteres

36

Indlvldualmente. Podemos alnda ir mais al6m e definir. para cada caractere. 18 diferentes coresl 1550 mesmo. 16 cores em cada caracterel

Acrescente ao programa anterior as linhas

mostradas a sesut r e rode-o novamente. Com 1550. os caracteres dos numeros e dos parenteses terio suas cores redefinidas no 19 ter~o da telal

260 X=8192+8*ASC("(H) 270 FOR F=X TO X+7

280 VPOKE F,&B1000001 290 NEXT F

300 X=8192+8*ASC(")H) 310 FOR F=X TO X+7

320 VPOKE F,&B1000001 330 NEXT F

340 X=8192+8*ASC("0") 350 Y=8i92+8*ASC(H9")+7 360 FOR F=X TO Y

370 VPOKE F,&Bii010001 380 NEXT F

Agora vamos fazer com que a cursor seja

redefinido com as 16 cores. Acrescente tambem aD programa as linhas mostradas a seguir. Oepois. execute-a.

390 F=8192+8*255

400 VPOKE F+0,&B0000i000 410 VPOKE F+l,&B0001i001 420 VPOKE F+2.&B00i010i0 430 VPOKE F+3,&B0011i01i 440 VPOKE F+4.&B0i00ii00 450 VPOKE F+5,&B01011101 460 VPOKE F+6,&B01101ii0 470 VPOKE F+7.&B011iiiil 480 F=10240+8*255

490 VPOKE F+0,&B00001000 500 VPOKE F+l,&B00011001 510 VPOKE F+2,&B00101010 520 VPOKE F+3,&B0011i011 530 VPOKE F+4,&B01001i00 540 VPOKE F+5.&B010ili01 550 VPOKE F+6,&B0ii01ii0 560 VPOKE F+7,&B01il1111 570 F=12288+8*255

580 VPOKE. F+0.&B00001000

37

Agora. 0 cursor esta coloridol

Os exemplos aprssentados sao bern simples facilitar a compreensio. 05 recursos oferecldos SCREEN hrbr.da que apresentamos sao. ,entretanto. mais vastos.

Voce deve ter percebldo que 0 programa demora varios segundos para ser executado. 1550 i aceltavel quando levamos em conta que a BASIC tern que acessar quase 16 Kbrtes. entretanto para as programadores mais exigentes a demora pode ser um fator multo negatlvo.

Podemos pensar, entio. em transformar oprograma numa rotina em linguagem de Maquina. Indo al~m. podemos pensar numa rotina que permita a lmplementa~ao do camanda SCREEN 4 no BASIC. de modo que ao ser executado ele gere a tela hrbrlda com a mesma velocidade que as outras SCREEN's. Para facilitar a altera~ao das cores dos caracter!s podemos imaginar urn novo comando do BASIC ou ainda 0 aproveitamento de comandos nao implernentados como 0 IPl ou 0 CHD. Isto. entretanda. ja e assunto para urn texto mals extenso.

5e voce nao quiser esperar, pod era encontrar estas e muitas outras idelas ja executadas e analisadas no livro PROGRAMACiO AVANCADA EH MSX. Para estudar mals detalhadamente a estrutura da VRAM nas Varias SCREEN's, as rotlnas do BIOS e as Varlaveis do Sistema. sugerimos a I~jtura atenta do livro APROFUNOANDO-SE NO MSX. Nesses dols Ilvros as assuntos sao tratados de forma bastante completa.

Exemplos e apllca~6es pratlcas comentadas passo a passo podem ser encontradas nos livros COlECiO DE

PROGRAMAS PARA MSX, volumes 1 e 2. '

Para completar seu conhecimento sobre a SCREEN 1. veja a dlca 2.0 (Arlequlm Bebado).

para pela mui to

590 VPOKE F+ip&B0001100i ..
600 VPOKE F+2p&B0010i010 ..
610 VPOKE F+3,&B0011i011 m.DI
620 VPOKE F+4p&B0i001100 ..
630 VPOKE F+5p&B0i011101 IIIlI
640 VPOKE F+6,&B01i01110 ..
650 VPOKE F+7,&B011i1111 mg I_I H = .,t. '

BIBllOGRAFIA RECOMENDADA.

Aprofundando-se no MSX - capitulo 4. Programa~ao Avan~ada em MSX - capItulo 2.

38

o camanda C.OClf do BAsse perm.tl D tra~.dD de areas de elr~unferenefas i de Plrfmetro5 dl setlr" ell reulll II r',u.

P~rl trsear s~tore5. basta U51f valor,s negatlvms ~ar8 as Ingu~os ~nl~lil I ftnal. Veil 0 progi~1 I su"ullr,l

i.0 St'l EEN' 2

20 PI = 4aATNCi)

30 CIRCLE (70r6t'~60~iSrPI'3~PI/2~1

40 CIRCLE (130~Be)r60tI5,-PI/3,-PI/2~1 501 G,O'TO' 56

A ~Innl 28 d.l~ne a var~'~B~ PI. atribuindo-Ihe D 'ltililillr' ,Ill a c,lIlnUalnh m'll 'te,mit I e,a I.

A I~~ha al traea um area dl ctrcuferinell normal"

I I~nbl 18 tra~a 0 per~mltrl dl om slt~r. po~s os

i~g~los 5&~ De9It~vIiIS.

39

2.,0 - RiEDEIF uu no m:lIRIC,TIER E:S

ilJm!I' Imine I r,a rb W ,dial I!I~ r leld e f II n ~I r c8luln!J r !)'S ~

ilIICtfI'SSU I Ulhlll ii' ,die' Gilt 111iI1,~,iiillil ,al ~ U: tame In t'11I nil 'RIM', ESS8 t~b6~~ ecupa pos~Qi~s d~fe'en't5 em cads tl~a ~~ 'he I i ~ :S'CREflN" '5 11,11" 2' IiIIlI :3). A 's,el!llul,i!' a III r ~~HI n t arnUIS, a 'fUgrBmaS bern curtos q~t ~edlflnem. ~p~~as tomo

In:e.mlpl UI, iii 10 rmll till ,!l111I1 CI~UIIC ter',e aiel Codi gO SiS ( ,0'11.1

r.H4l ~ • or' I 9 II nlill ~lt:I'Ill!I\1ltl ,iI I UI' a .. ~.. Inu 51GRIEI[N"!I, i0.1 Iii 2.

',0121 S'CRIEIENI 0

.i 1121 IE =:2 0'4 a1'S.65 120 FOR F=E TO E.7

.:!i. 3,0 ,R.E~D ~ill

140 VPOIE F~VALC8&B·+A5) :1 S9I NIE xr IF

1,60 PIRil:it4T :: PR U>lf ""CHili (6'5) ='~ : CHili (' 6~5) 17'91 PIR .un ;; IL 19;T

180 DA~A 0011110.

1ge DAT~ 01000010

200 DATA 100i100i

210 DATA 10111101

220 D~TA 10111101

230 DATA 10011001

2'40' I!)IATA, 010'010'0,U"

25e DATA 00ili100

1,_1119" _,.",1

PIRI .. :St!:REEJlI

Iplma!! '!iilulbst nUliJl IS Illnll,ls 111 II! 11111 clm 1P'li'lm!9Irrlm~

ilililltil!i·r ~ a r ~iIIlll' Ii

PIRI • :SEREEI 2

iA,e SCREEN .2

:lie fOR: F~61.44'OI 61"4"':21.32~::I.

:tL20' VPOKE F ,r6'5

:130 NI[Xl F"

1491' FOR' F!::i101 TO ,499!.'5, S;TEP2:01,B

040

[ssa form~ de ,e~efin~r tlracteres. entretanto. nl8m um,IU'i III ,iI mil Uuu'. PO I S qlUUdlol urm Ciomandll SGREIEiN ~ eXlcuta~1 is t~bllas - da VRIH siD I~tomat~camente recarrogadas. P,v, e~ten~er m~Nhor 85S8 ~robllma. ra~B nllll"amlftte' 01 Pflljr',ama fe:lt'o par,1I ii, :5IC'IiIIEEN 8 Q depoJs camaRda 5~REEN 8. Voci ~!,' ~UI 0 carlctare de t6d~~~ ~,s VIQ I tnu :a 'urc 81 • Un ... , ", A red'" I nil l:ilO fe I til lila IJIR'AM I'IJI ~ ~U1t nd d,Q "e II (I coma Indo SCiiI'EENI"

P,a NI IC,I!! n:t or !'lin eSSllI IP ,.'0 blII e:m;iI IP"odlemos r I,d e f II PI I r

fo'a ,iI tallille I ,a die !;Inc hI N1S 111,111 JiI"1i' 6,H' I ,a Fh~iM e f al'IH' c!am ~ue (II Clm~ndo SGRfEN "r'Q9ue iSSi nova ta~lIml pari i If RAN. lig I, nlll'h ~e lJ'ur 81 hili,S II i IiIB liI'ON. 0 Iprlil!ilram.1I apreslntado 8 S89U~' SI presta a 'acilltar 8 redef~n~~io do, ear3ctlre5 de form~ mils ,e~ml~e~tl. Dl9~te e srl~e D programa. D~~019 ¥erem~s como u~'-Io.

t000' 101'0 1'0,201 193:0 194·0' 10'501 106'01 H31,7t" 1,9:£'0 10'f'0' '1~0'0 Hie 1120 1!i.30,

1140 DATA F£rlC,2B,11~0E~FF,FE~lD 1i5e DATA 28 .. 061 r i'E ~FI0:rFE ~ IE ",2,1 ~'05 ilb' DATA 0Erlt~FEriF~C0p3AFC9 .. B2 t170 DATA Bjr32 .. C9rB2~C9,CD~e[~B2 liS0 DATA 16r02rCOr57rB2,FE~0DrCB

119. DATA 21,65tD0 .. E5~01~00.FE~FE

120. DATA 2~F2B~24,eC~FEr4Dp28rtF 121& DATA FEr1C~28.11,0ErFF,FE .. 'D 1220 DATA 28~0BF0Er~8 .. FE,IE~2B~05 1230 DATA tI'E., ,081' FE ~ if .ce, 3A ~ CA, .. 82 1240 DATA Bl.E6~3Fp32rCA~B2rC9.CD 1250 D~TA 46pB2,3A~CArg2~F5~0F~0F 1260 DATA 0FtE6~07r5Fr16.00,FD~i9 12';0 DAITA Fl" E6 ~ 0,7 .. 3Ie .. CI!I ~ 08,,11:8 p 0S1 1280 DATA 3D~20rF9rFD .. 7E~&0 .. AerBt 1290 DATA FD,77,00.CD .. E5tBe~CD,46 131,010 l),ATA 8~2'~ ICDI,,26 r 1'2'~CD, ca, EUi .. 0,6 1. 31,0, DIATA 08' ~ 10'5, .. E'5 r :~n=: r 08 , IFD'. :S:,E ~ 0110 132. DATA CDpEIC~BlpElrDl,CD~E0~Bi 1:330' DATA F'Dp.23~ 101~.EID~C~'IfCD,46.B2 1340 DATA eE,BF~iE~07,CD~CB,B1F06 1350 DATA .81f0E,05.C5~D5~E5"e6~0B 1360 DATA fDIf7E,00pG7~F5~9FIf5F;3E 13.7'0 DATA 05,CDI,EI:.IEU .. CD",D6r'U,~CD 1390 DATA D6Fei~Fl~10~EE~ElFDt~c~ 139'0 DAITA ICOrlE0 .. 8:1 ~'0IDr20'l'DDi'ICD.,E0 i400 DATA B1 .. FD.23rI0;D4rC9~0t,f~0 1410 DATA 0a.l1,ce~B2~2A.2.~F9~C5 1420 DATA D5,3~~lF,F,,,CD~0C~@0~FB 1430 DATA Di .. C1p121f19.23~08~7B.Bl 1~40 O~TA 20IfED~CD,f72,00t3A~E9.F3 1~50 DATA e7Ife7.07~071f4Fr3AIfEArF3 1460 DATA Bi .. elIf00~iS~2ArC~rF3.CD 1470 DATA 56rt0"21,08"Bl,01 .. 0A,,FF 1480 DATA lEr06~3E,,11~~D,BA,Bi~2i i~90 DATA 06~3i,,01IfBE,AArlE,06~3E 1500 DATA 09~CD~eAIfBi~21~30i'31~0t 1516 DATA BErFF"IE"06r3Er02,,CD,BA 1520 DATA Bi~AF,f32.CAIfB2~21~C9rB2 1530 DATA 77 ~ E5~.C,D r C6'IJ'BI10~IE11!'3:4 .. 20 i540 DATA FB~C9~F5 .. C5rE5~CD~~B~6i 1550 DATA Cl~Flr5FTFi,F5I!'DSrE5pF5 1560 il'ATA IC5 .. ID5~E5,,7a~ICD'~IEC, .. 61 r,El 1570 DATA DlrCD~E'IJ'Bl~00,20~FA~Cl 1500 DATA Ftr3D .. 201J'[BIfE1~D1~Fl~F5 1590 DATA CSii'DS~ESr3Epe1tCD.EC~li 1600 DATA ~D~E0~Bi,i0,F6~E1~D~~CD 1610 DAT~ D6 .. ll .. 0Dp20,FA,CI,Flr3D i620 DATA 20,E5rC9r0'~i0~50,CD~il

42

-

II:r..1J11I

'1*Ia

SI00 DATA 54,49.D2~AS~4F,~5,54FC4 3110 DATA A3,4Fp5Sr54,C~,~D,52,4~ 3120 DATA 54,C9~45rS2~45~5~JCE,6F 3130 DATA 52,.C,C4~67r52r52~C4.00 s£~i DATA CF,4A,07~4i.44~C3~FF~46 3150 DATA 0D,FF~56~0E.FFr5Ep0F,49 3160 DATA CD~C7,.0,02~49~CE~CF,4B 3170 DATA 2B~CF,43,29pF7pS7~13rF7 3180 DATA '7,i4r4C.C4,C7p4ir03~4F 3190 DATA 55FD4fCF~42,07r53~42,C3 3200 DATA 00,2A~77p7E,21r~6~22r'E 3210 DATA 09~a6,19F8E.23.A6r29fAE 3220 DATA 34~B6,35,BE~S6~2g,J"El '3230, D'AlA 46,E3'14EIIE'5, .. 50pE'9 .. 5,E,F9 3240 DATA 6,,6E,70~71,72~73~74,75 3250 DATA 3F~BF,CD~F3,43r28.07TFE 3260 DATA 3f ,,29,1,4, C3:~ ,4,7 p 48 ~21 :r'0B 3270 DATA 67~CDy02r67~CD.9Fp00,F5 3280 DATA CD,S4~42~Fl~FE,e3p~Br21 3290 D~TA E3.61~7E~B7fCa.COrB6,42 3306 DATA 23~lerF7~45F44~49r54r4F 3310 D~TA 52r20r43,4F,4D~4D,41r4E 3320 D~TA 44r.DF0A,4E,45r57~00~4C 3330 DATA 49~53754r20r5D,6E73115B 3340 DATA 2D~6E~32r5D~5D~0D~4C~4C 3350 DATA 49.S3,54r20r5B~6Et31.5B 33&01 IJ'ATA ,2iD r 6 E ~ 3:2" '!;iiID ~ 5 0 ~ '0'110, .t}:1 ~ ::i:5, 33'701 DA,T A S4~. 4F I 20 r ~B • ,6E r 31 .. 518 ,,2C 3390 DATA 6E .. 3:2 ~ 5D, sn, 1010", S2 ~ 45 .• ,~E 3390 DAT~ S5~4Dra0p5D.6E.31r5B.2C 3409 IDlAiTI:! bE, ~2'7 5B .. 2C r 6[ ~ 33 r so ~ ~m 3410 DATA 50,0D~44r45r4C~~S,54r4S 342' Ii) Ali ~I 2'!0 ~ 6,E~ 3 i r 58 r ,21D ~ a,E' ~32 ,.' '5:D 3420 D~TA 0DT46,4~~4Er44r73t0D~SS 3440 DATA 45,4i,52~43 .. 4aF73~0D~4C 3450 OATA 53145~4i.52~43~4a,73~0D 3460 DATA 43,4a,4t~4Er47 ... 5,64~73 3470 DATA :3 1 • 64,56"" 73 ~ 32'~· 510 , 01,0'.5,3 3488 DATA 41,56,4S,20~22r66~69,6C 3490 DATA 65,20p6E~6tr6D~65,22~0D 31500, IHliI'TA' 4,C, 4,F, 41 ~ 4,4'~,20 r 22 ~ 66,69 3519 DATA 6~,6S,20~6[r6t,6Dr6S.22 3:5,20 DATA 0D', 4Dlt 4'5.r 52' ~ Jl17~, 4,5 ~ 20', 2'2' S530 DA~A 66~69,6C,.S~2t:l'~[~61r6D 354,0 DATA 6'5." 22 r 0'D",40.~ 41 ~ 5,01~,'0IDr4t 3550 DATA 5Bt4Er55~50~4F~4,,52,S3 356'0 D'P! i A, 4 4 ~ 4B.r 2F t 78~, 7S ~ SID'~, 011),42 3570 D~lA 41:1'eD~00reD~4D,4F~4EF49 358e DATA 54r4F;52,20.43~.Fp1D~4D

,46,

Cloml 1111 D' III !I Ir ama lit II gl W UdlQl e !lI r a'll a dill' !to,r f" 't am.eU 8:,

nm'8mte: RUNI P,ar',iI 'e x'o'cu t'~ I o. At'e m iii clUj!" i les,1 u eomo

most'" 81 a f II '91 III rr a a SI!1JIU II r ~

•. Q.@I,. +;1''' ' ao .~ .. cf1 2,} .ll *: ! : .. :.,:~: : :

, + _J_" " .!- +1 I r.'· I_.J ,V;,."', -1iiiiii ' : : : ' : : :

: I " .l!I' t\ ::~ ~ < I) l + > . -;, ..- ~-':::::::::::::::j~t:

o ij 2!J 45{~! i7 8-9 i: ; <: '" ')" "H::~::;·:i~·H'· :JA e 'e J) E F·6 H I ,Ife L M ff!l -'-'--'; I ; ;

pi(] ~ S T ,U IJ~J X Y i r,. J ..

~ a,b c de f glh i J kIm no 'to. .'"1: '1" .'5 l,u. ,~~ N l~ ,',:I z ;:: .: I} . .., ... C 1.;1. e l:i ~.a, c-·~ 'f 6- (1A .~ b 'i:;, Ii' ~ It tb ij b ,0. ~. ·jl'~ 8 u- -;." ,£ :¥ .(;:f ' la: ii 6 ,_i. P~I~H :2.2: : L. ;- ., ~ k!: ,~ '« » ,t. -g r t tl 15[J, iI:.p' i) i4. oJ", <> 1'(. iii ! §,I;I

_, I!!I •• ' 8 llliill~ ~i1i .• 1 I I,;:~ ~~"I!!':'" ~.

~',XH'·' .,,!!JII, 1~~6:t ....,1 •• 111,,~B r qlt ~ ~_1_~:~:g [~~ E n

: ~ :!: 2 ::;' r J. ..;-: Oil! ~ - • .f" 11'1 4 .:

EDITORR RLEPH - (0j2' 843-3202

V~C~ tIm agora em SlY mitre um PG~lrQSG e~ttDr dl ~ar~Ctlr$~ ~Dm ~~~s mod.s ~e o~tri~il~ SElECiO , 'E',D'~I CiO. ill modo SIEt IEI!;l 11[11 pie r'm I fie aeiseol ~a ida c:u aerie r:o I ser edlta.~. 0 modo EDICIO pe,mlte a IJtera~ii d~ seu ~dese~ho~. L~gD ajfiS sir c~rrega~Q. ~ programa oplra no m0~a SELE~IO. ~~~errumante USir ~s te~lis de set\ils I!I mlliisl rV'1! iii iii U I!I' ilIIilOlnhll!l:'l! ·C'III.mJ iii GIU51i1 r (lilitabeill de tarletlr~~) e clllm 0 qu~~rido ~~ CililtO sl~er~or Idl riB I 1'1111 Imm w hi 'II iii ( CAFi',~I[j:rI[RIE MIIPL m ,~ID,OI~.

Para ilttr!rr au fldesenhir li:om,~e~~m~nte ~m d~.~ CBwa~tefe. cl1YI-51 ~~I~I~lmenI8 lever Q curs~r ati 8~~ tum a aj~da diS teells dl SItIS.

'e~to Issa. de¥I-51 Intr8~ prI5~lo~lru~o 8 tl~11 RETURN. ~urs~r dI5a~aF~t'F' cia tem~ e ~m 'V Isr lie II nl'll' gUad racio da CAR,IIC,iJ"EIRf ser felta ald,.io.

Paril ~pa9ar 05 PIRtos marli:~d'~ ~Q carattere ~ set Id I t'ado. bas 1t a, Iiiii' I!issl 0 na r II BARI~.A, DIE' IESPA'O'S.

P ill r' iI' IliRalf e,a r lum 1P'lII'l'Itlii . In iii CilIllr ~cte r Ie.

IH'US I Ollila ril t ec II a d,iJ I lilt r II "JIll" Hl,e Ma reu I •

no modI UI t:D I !;:~O .. A5&~m pro~,d8ru.G. G ~I~ue~~ pont, ser6 tMPLIADO. mnde ~~~e,6

Api5 rede5~~h~r 0 ~arattere •• ara v~~tlr am mIdi d~ SfLEGiO. ~Ist~ p,~sslo~ar RETURN novamlnll

lMIiv e Z 8111 ,t err ados !lU r IIdleUllnfH!lCiI"S 1111'S, 01 atUI rillS. dlv~-~e Iv~~ar aa Ir~~'ima ~~, ~SSI ~~Vi ta~ ~I dl~e $er ussas. P1ra ~ss~ basta ~rll$s~onar a t'~~1 da Iltr~ "'IC" (,dl e' (Nul'f Il,r mar ~ ,

Po, flm. '~ra sa~r do Iro~rama , rltornar a~ IAsmc. ,~~~s~a~a-il i IICli d~ litrl ~5~ (de Sa~,).

Resumln~o. tem~~ GS sigurnies ~Dmand~s i nOSSI III II '!i~I!J!S 1'!laID ~

s'n.,s - Ma"'91 g c u n Dill!' ;

G ~ Go _',11111'.' ID InUJ (III t,llb,111 rlulU III ~ dl;

S m 5:ill do pr'O,II'r.'ill , flel "Olf iI'Illl 110 BAS'I C:

REflRN - P'I,I,SI do .0 d I) SEttleiO' P,iI r ,I 10 Ell I GliD II Wi' I ca:-Vlar"!UI,~

rSP!I,Ct m Ap,ag,a PIli n tas no C,;U II dl!!llUI .. ad i lei 01 ~ M - - [".111' ca po I tiD 51 I £I CI'II' ,a;~t e re _ I:d i cia .'

AtA agm,a vlmas ~Qm~ ~slr 0 ~r'~rama para ge,ar e a~9umlr uma ~~va tabela de caracteres. Vamms apren~!r eomD msar esss neva tabB~I.

A~'s fe, retorna~G aG 8451G 'eGnvenle~te. i~te, de mals nada. II~VI' a ~Iva t;~'la em f~ta au em d~s~o. Pari Isso. tQmlnde.

A seg~lp, ap~I~1 0 prlgr~ml em BISIC qU! ~st' na memir~a d~ m~cro eomandiRdB N~W e SCREEN 1.

C::aso 'I/alce ,qlue ~ lI'aJ lC,arr'lIgar u.ma 't ,a lUI I ,iI jl.61 aa I V,iI 10m f Ii '~al IlIIlUElm d 115!!:O I as'!jlumlr - [I ill. basta C'III:rrnlilli1ldiiU I

BLOAD~TA~ELA_DAT" POI{[E ~HF920 7 &H]:8'0

Wi' 01< E &HF9,2:l; B"HB 8

S6 para 0 E~PEIT~

IP,(JIIfi( E ~HF9:1. F ~ 2' S6 PI r it 1111 H:DJB II , ~

Ii' 'OKE Bi,HF91 F 7.3

A sag~~r. deve-se usat ~ ~lmia 0 ICREEN.

IPUS! vo I I,ar ,iI ~nnl' eiJ'm ,a t b:e~ a IU' I 9 II n II dill I:OM." rldlE! Ii!! [P'Ii'IDI;!llf amlll'll1la mo:St r' ald'iDI I eg~ I r' ,.

A90ra I~per~m~~tl fl~ef~oJr QiraC~eres emma mostr3~~ ibiilO~

tl!!ll !!!11l,SpiIIl ,die' IP r 09 rama'S IP,jllr a "U;:)!: :\II •. 11 ,_ prig I nas 83 a :9B. C~fe~30 de Programas pari ~5X ~.~ - ,'!~nas 10 a 24. 7:9 eas a B5.

Ap'r'o'ftml!la IiIda-s II 11"111 MSltl _, C iI',p r it lil'~ 01 .q, Prmgrama,i~ Jva~~ada 1m M5X - p~glma ~~5.

1,0',8, 11(11 1,:i.N2I, :13:'0' :14'0' 1SI' 1,60' ii'0' ige,

190, 200 2101 220 2'30' 2'40 2'501 2i1e,

270 280,

29'0 30,10

Sl0 3210,

o p~~9'~ma apresent~~~ i segu~~ leri ~mi ratina

em l., M. pU,a :11~: r ait' a :SICIIEIEN 1111 ~nr a iIill ma , A r D'1I'i na em

t.M. I!I' C:iEllif If eg,ad.!'! ,iI ~ art:i Ir ~! ,~HIEe!BQ e IH.IIllesE! r! c h illlllliild a ~e~i in~truei~ ruSA.

. As I~nhis '~ni~S ~o ~r.9rlm~ em BI5~C il~stram ~ma utilila~io di rll~ni em L.M. em conj~nt~ C~~ 0 BA51(;.

A,rof~ndando-se na ~Sl - c~~f'~~o 4. Prog~amiqio IViniada ~m ~SX - ca~r.uw~ 2.

Ct~e~ia de Pr~gr~rnas ~~ra MIX v.Z - piginas ,~e e 131.

o prGgrQma apresentado a ,esuir sera ~m~ FltiRi em t.M. para g'rl, i SCREEN e Plra ~t.XD. A rotlna em L.N. i caFregada a part~p de 'HEBel e podl ser c~im~~1 plla Instr~~~1 usn.

As II 1IIIiIlhlo1ilS 'f' IllUi I S Ido p,' 1119],1' am,a em 'B,A51 G I, II usl r am

um~ utillza;il ~i rl1ltlna em L.N. em ~Injunto tom, 906511(;:"

19,0 110 12'0 130 140 15i0 16,01 170 180 190 20'0 210 220 230 240 2!50 2,6,O 2701 280 290 3001 ~;i0

3201 3:3101

,I.~ H':'- '" __ _ _.: _

B I lEi L I OISA'AF I A A ECII4IEJlDI~16 ;

Aprofun~a~do-5e no ~sx - ~a~ftumo 4. Programaeil Avan,ada em ~sx - cap~tuWu 2.

co~e~io dt Pro.,am~s para MSK v.2 - ,~gln&s 1SU e 131.

53

REM -_.- ---~-------------.------------~

REM SCR'O'lLl seR EEN' e' L EFT-f,l;'uii:u:.':llI Ii J'r "IIIISP

R EM -~-.--- -------.---- -----,-,------~- .1;£11

FOR F=&HE0,00, TO &HE0'3IF ~

READ A$ : IP,OIKE F .. VAlll("&W~"'AI$,) 1Ra3d

NEXT F e DEFIUSIR0=&HE0"0,0 I&E:.'II

I)'A,T,A 21 ~ 00 ~ 010, ;22~. 3D, E0', 106.1,6 m!lUIl

illATA IF,a ~ C5 ~ CD, 1,C,IE'0, C1 '" 2'~,~ 3D HaIIII

DAT A IE,f>.F l i .. 213 r 0'1, 'r' 1.'9 ~ ,22, 3'1!) ~ Ell< .-.,

DATA :101,.IE.f~ F8 ~C9'~E'5~0i ~29~'0e ~I

DATA CS, li .• lB"FC~1!)5~OD.59!1'00 ~

DATA 2111',19 .. ,fCril~1e",1 C,,01:r27 I~

DATA 00'~E[I' .. IB0 .. 3E~20'~ t,,2'rEl .. C1 mmII

DATA D1,CD~SC.00~C9~.tr00:rEl I

lit EM --------,-----------.------- .. - ~.----.-

REM E~emplD de usa

REM ------------------------------

SCREEN 0 = WIDTH 40 : KEY OFF

Xc ;23 '* RN-D'U,)'

OCATE J9.X = PRINT N.N; X II::l USIIU"( 0) GO'fO' 2910'

o ~rDgrami ~pfI5enta~~ ~ Se9Q~r ~e,a um~ r~II~1 em t.M. para glrar a SCAf~N 0 para a 85g~erda. A rot~n3 1m l.H. ~ ca're!a~a a ,artir de &HE00e e ~ude SIf cbamadl pela i~struQio USR.

A9 linhBS f~n'15 do ~risrama em BASIC ilustram IJmi u ~ j I i U'I; D (II dI~ lIT' ut I oil a em L. M.. em C nn] U III to C OtrJD 11:1,1\3,1 C.

100, 110 120 13,£1

140 150 160,

'701, :H10' 1.90 200 210 ;220

. ~30 248 250 260 270 2610 2901 80,0

3~UI'

_8_ = '=' ,j

Ip I'liI 'flU ncl a Ilclll!l-'s II lUI MS)( - Ii!l~ r t ull 0 -1. Progr~ma~ili!l Avaneada em MSX - C8P~tUWO 2.

CDle~io de Programas para M5X v.2 - p~9inas '31 e 131.

54

D programa a~Fe5~nta~o I ~19uir gera uma rotjna em L.M. ,ara gi~3r ~ SGREf~ 0 para a dlre~'I. A rO'~~3 em L.M. ~ tarre~ada I ~ar'lr de &HE00' j p~~e ser c~ama~a ~I~i i~itr~~il USR.

As ~~m~a5 ti~ais d~ prOgrlm8 em mAS~G Ilustrs~ uma ~'iliza~~~ ~a rotln~ ~m L.M. ~m coftj~fil@ t@m ~ BASiC.

i 0,0 1~:E:M ~"--,~-~,---,-,-,,---,-----,,--------'--- g.

~, i 0 RI~:t"l~I~~'~:~_::~~I:I~_~_~~~.~!:~~~~~=~::!:I=f=

:1.210 ,R,c~

1301 FOlR If =&HE000 'W'O !sHE0::;J:1F 140 READ A$ ~ POKE F~UAl(N&Hn~Ai) 1'501 NEXr F :: I)iEfU~im 0""{H'111E01l~0 160 DATA 21~.~~0.,22~30~E0~06~tB 110 D~TA F3~C5~CD~IC~E0~Cl~2A~aO HI€! DATA E0' ~ ll.28 ~ 001 ~ :19'~ ,22 f;'30 ~ IE'0 1'0 DATA 1.~EF,FB~C9~E5~01~2B~00 200 DATA C5,11~iB~FC~D5~CD~5'T00 210 D~TA 21.3E~FC~ilT3F~FC~'lT27 220 DATA •• ~EDr8B~3E~20~i2,El~Cl 230 DATA Di~CD~5c~e0~C9~00.00.El

240 REM -------------------------

250 REM E~erupl0 de ~§o

2~0 REh ------------------------------

2~0 SCREEN 0 : WIDTH 40 ~ KEY OFF

280 X ~ 23 * RND(tJ ~,. LOCATE 0,X : PRINT n~"; 300, X ;;;; USR {H, '~.n ll0 aOTO 2810

;;;: ' __ J

-~-

lEI l'IIU ~ ·0 GtRI,f ,II A RIEC .. ENOltOlt

AprarDndan~~-se ~o MSX - t~pit~11 4. r~ugram'~~~ lvanlida ~m MS" - caprt~t, 2.

COI&~So de Pr.s~~m~~ ,ara MSX ~.2 - p~glna, 130 i 1l1.

'5S

100 1i13 1201 130 14121 150 160 17@ 180 190 200 21'0 2201 ,230' :2:40' ~~'5,0 26'01 2710,

28:0 2''1)101 300 3101 32121

o ,r~!r~ma apr~sen'a~o ~ s~!u~r ~e~~ em L.M. p~ra girar a SCRf(N 1 fa,a eima. A t. M. e ell r r egi a (hll a pa r" ~ r die ,~HU1011 epoch'! ~ela i~str~c~o USA.

. As li~ha~ finais ~o prl~ram~ em BASIC ilijstr~m

!..l'ma ut j I ~ U.; i,lll dlSI ru t ~ liIQ emlll l. M., e,ml eOIFljllln 'hI e liII'111 II

6ASIC.

E~parlm,nte ~,ar e~fi dica em tonjun'~ com IS ~preslnta~as no it,m ~.8 (HmvimeniGS ~i t~ia). VQC~ tOnle9u~ri na SCR[fN 1 mo~imontos glo.aig da SC~Oll ~uav~s , bae1an1e r'~idos~

umil I'Olt II nil

IP 01' i lliia lern

'S I'll' alii ama,d a

R EM-'·~ ~-- -~---.-.--.- ------ - -~.--_.- ._ 1--

REM SCI\! 'OLl SCR EE:N't\ 'UP ~ If.! I!!ibens.JI'" ,ii lI!DJ8j

R EM --~-.---.~- ------ -- ----~.~-.--~.----.-

FOR F=&HE&00 TO &HE646

READ A~ ; POKE F~Q~[(·8Hu~~iJ NEXT F : DEFUSR0=&~E000 DATA 21~.0~18~22~44~E0~0'~17 DATA F3,21~20~00~ED.5B~44~[0 DATA 19tC5,CD,2F~E0~Clr2A~44 DATA E0~11720~00~19~22,44FE0 D,A1A U'~E7 ~,j;!1 ~ E0.~ iA~0i.20~0'0 DATA 3E~20~GD~~6~00~FB~C9~E5 D~TA D5~011~20~.0.CS~il~18TFC DATA D5~CD~59~00,E'~C1~Dl~CD DATA 5C~00~Ei.C9~00~00~C9~06

RE" -------------------------------

B E: i:1 E >HNIlIP' l'~cI E' 1J::s fl' . ,

REM -------------------------------. I

SC'REEN't ,~ WIDTH 32 = KEY OFF :.'

X ~ 32 • RNDel) .

LOCATE X,20 : PRINT "~N; X == USIHH"H GOTO 290

•• :a,MU' em·· _m __ a--

61 EI L IIIA'Af ~ A R EcmEKDllA I

A'rlfundan~~-se ~~ MSX - capitulo 4. Progr:am.a~io hllln~a'dil em HS)( ~ cap r tu I I) 2.

Colec~~ ~t Prt~ramGs para ~SX ~.2 - ~il~nI9 1~. 130 I 131 .

o PfQgraml apresentadt a segulr sira uma rotina em L.M. ~Dra gjrar ~ SCREEN 1 pa~a bai~o. A r~tln8 ~m L .M. ti ur rea,~'da II Ipart ilre d,e iSJHIUI01B e poeU! 'SIH' chamada

pel~ instru~5o USR. . _

As Ijnhas fln~15 du pr~Jr8ma 1m BASIC Ilustram uma ut Ilzaeil ~i rotlna em L.M. em CDn~~nto com 0 B:lISIC.,

E~~er~m8Ate ~5ar ~sta 'Ci ~m CIA~uoto ~~m as apres~n'adas A~ ~tem 2.B ("g~imento5 na tela'. V~ci c9ns,!uiri na SCREEN 1 mO¥lmen'os gl,baj~ ~e SCROLL suaV~5 e ~astan'~ ripldosl

100 REM 1 H) IREM

120 REM --------------------------

130 FO~ m&HE000 TO &HE049

l40 READ Ai : POKE F,UAL(~&Hu+A$) 150 NEXT F ; DEFUSR0=&HE000

160 DATA 2i~C0.IAr22,47~[0~06#17 170 DATA F3r21f20~00~EOr5Bp47#Ee 180 DATA i9.EBfC57CD~32~E0~CI,2A 190 DATA 47~E0~11/20~00~B7.ED~52 200 DATA 22~47fE0~i0~[4~2~r00pi8 210 DATA el.20~00~3E~2e~CD~56~00 220, DIAlA FIB .. Ie? F E5 .. ()S" ClH" 20 .. 001 ~ [;5 230 DATA 11~lB~FC~D5~COF59~00,El 240 DATA ClrDl~CD,5C.00r£1~C9~00 250 DATA 00~0Er00~00,00~.0~09~00

~60 REM ----------------------------

2'701 RIEM E~eRl'p,hl! d~ USE:!' ~ .

280 REM -------------------------------

290' SC'R'EEN 1 :: W]I[)TIH 32 : KIlEY ,OFF

300 X = 40 * RND~l)

310 LOCATE Xr0 - PRINT N~~; 32'0 X :=l US;IUH0)

3310 GIO"fO' 300

L _=_- !;;lb

,Ap'r Q,f'lll'rid andu-s e nlill 1A'5')I - 'Il alP r ,t u III!! ,q,.

f'r o,g r 1!!'I1.l,Q illil' b,a u:,ad,a ,em, MlSX - IUIP r tU11 0 2.

GO~8eio de Programas ~ari MSX v.2 - ,'~ililas 12. 131 e 1511,.

'57'

U),0, 1 .. H.'!' 1.20' 1.3'£1' 1410 150 160,

1710' 1801 1901 2,0'0 2U!1 2~N~ 2~'0 ,24,0' 12~101

:2·6·10' 2701 :2:90 2~90' 3(H~ 3i0

(I p r ID'SIF ilmial alp', EI:Sitlln t iil'lilllll! tal :se~ III II r ge,r i luma r.ol~· Iii !HI

em LM. j:HU,i3 :9 i r ar jJ, SGIiII[IEN ul para a n.qj~uda. A r~~ln' 1m l.". ~ clrre9a~a a pi~tlr de &HE000 i p~de sIr e~lmlda Plla In5tr~,~o ~Slil.

As 11~~a, f~~a~5 ~~ ~rI8r~rn~ ~m 6AS~C ilustram uma ~'~~~za¢iQ de rQ'~~1 ~m l.H. em tonjDnla ~Qm e BA.SIC.

ExperJmente ~Iar asIa ~iCI em tanjunll com 3S .~res~ntadas no mtem 2.8 (H~vim~Dt's rn~ tell). Vlt@ C:!!Hllseg U ~ r',;i na SI}RH~ 1 In.OIV I.rnel~ tos :!1I11 otis i S Id" $.I[;RrO'l L 9Dive~ t ~a5tant~ r6pldosl

FOR F=&HE000 TO ~HE0aF

READ A~ ; POKE F~VAL(n&H"+A$J NEXT F : DEFU9R0=&HEI00

DATA 21~00.IB~22~30pE0~06~iB DAT~ F3~C5~CDrlC~E0~Cl~2A~3D O~TA E0~11~20,00~1'~22~3D~E0 DATA 10~EF~FO~C9~E5~.1~20~00 DATA C5~ii~ia,FCrD5~C~~5'~00 DATA 2i~i'~Fc,11,la~FC.01~tF DATA 00~ED~80~3E,20~i2~El~Cl

:OF!lf,F! 01. ~ CD ~ 5C 7 010~rC9 ~ 1210 ~ 10"0'~ lEi. =§ii

REM ------------------------------

REM Exemp]o de U~D

REM -- --.~~ - ~-.--- ~- ~.-.-,---.---.-.--,--~--

SCREEN I : WIDTH 32 ~ KEY OFF X ===: 23 • ~:~!,[) ( 1)

LOCATE 31~X : PRINT M._; X ~ USR0Un

GOTO 280

A~tof~n~ln~o-s~ ~o MSX - ~~pft~l~ 4. P~@gram~t~o 1¥3neada ~m HSK - ca~rtul0 2.

G~ l,filiCio de Pr 09 r amas IIHU'!l1 HSX v. 2 - 'p"lgl,lln,;lIs 12. 11910 Ii! 191 ..

o pr89rama apr'~intado a se9~lr gera uma rotlna· em L.M. para a~rir a SCREEN 1 pa~a ~ ~Irelta. ~ rotlna I~m L. M. ti en r 891ul.aa P;IU t i r de ,',HIHM0I1BI a: PO'll!:!! '!HH' ch8m~da ~e~8 In~tr~cii USA.

As ~~nhas flnais '0 p~l!ram~ em liSle i~u5'ram ~ml ut'~~2itiG ~a ro'l~a em L.M. ~m e~nJu~to ~am 0 BA~Ht.

Etp*rlmen'e us~r esla ~~C~ t~ co~junt~ com ~5 iJre~.~t~~~1 ~o Item a_a r~D~~mt~to5 n~ tela). VGci conse!ulri na SCREEN 1 mtv~m~~tos globai5 ~e SGftOll suaves e bastante r~pido51

..

__ -= ~ I I

Apr~'~ndan~~-Ie ~~ HSK - e~~rtuIQ 4. P~t9rlm.C;1 Iyan~ada em MSX - ~a,itula 2.

Cole~iQ de Pro~~imas ,aFI M~K v.2 - p~gina5 ~2. 198 , 1 ~n .

Os caracl,r69 ~io d,senha~@s dlnlro d~ uma matril de OMS poeic~es. Mu~IGS dil~5 usam aPlni~ Q ~I~O esquerdQ d~ssa ~a'~m2 e ~i casos 1m q~, ao s,rlm

I mp,r ess O'S, (11131 S'j)RIEEN 11 GIlI15C,RlEIEN l f fum 'Olll' II die

ill, I nlhamsln to, PIDdemDIS e'v It,a r Jss;o dill lum'ii! fill rma tilml 9Im~~e5 e r'plda. re~ef~~Jndo QS clr;cteres_ A trtulo Ii!! e IElU'mlp I 0, NlQirUH' • c:eloU,ill il U r ,. os le,i r·!iIlc:'telf 8S clo'S n~meri5 e ~as tetra~ ma~~sc~la~ na SCREEN 1.

101101 110 12'0' 1301 :1,4'0 1501 160 170 iB'0' 190 l!rr;lll0 210

:U H _ ~ .~ _

.'

tHIIRMA:L /2

.11 'Illil OOHlf ,III IH'EC.ENDIDI, ~

G~II~io de Programas ,ari ~S~ v.2 - ,igjnas 72 ft 7~. ~plr ,U u nld iI n'd,ul-s:e mil' HSK - lD,a~!I ~ rnal9B •

2. L - ,Utl MAGil ellt SPR' II lE9

13'0: ¥'i(lICii def I nil r' '1ir los SPR' I~ IE":s IC:lilm Ulma f ~~Ulil" a I'm ~Q~lcies 9Uc.ss~vas I O§ cmloear na _tl~i 5lm,re n~

IUSm,(I cam'811I11iil. 1m s,'Blqui:IIICI :!L 11111 iI'5: d:!l11i',511!111 III !II f,e: Ii till de

Itil mallcio '.

Sl loci q~~~eF ~~terar 0 dI5eru~~ dill ~bo~eco~ no

p "!l9m' ilm!!. II II '5,1~1iI1!I :& SlI':!lIUllllr. uma b'lll I d 611111 6, "II mill nl8111' :iI

I h'lh,aBIB. II I gil tUlldlO! S8101 ICIUI'hQldo malDIUI tmeU e no mildlD

dlret~. A slg~lr ¥D¢i Intlrrompe I ~Istagem nil ,.qu~ntta de ~~RhI9 DATA qUI defiolm 0 SPR~TE ~ ser 111'r.~Q. m~dtf1~a I deS8n~1 e ~mma~'~ iUN. ID~sta 'f II rma nei pod,a ClllII'<Ige I ,iI r' 101 bJ'OIl:1ee:llI, c:llllmS:TOPlll a I tl r,ilr os a~s I 1~s da Ilnhl DATI. vtsua~~zallldo I efeJto

Intlrlor I alte,aeio. .

Obvlame~te ~Qel Po~& deftnlr SPRITf"s de 16111 p~&els. o~tendQ f~g~ras mu~ID mal5 dl'~~badas.

Es:slI !p,rog r' am'a I: ,ap,snlils, um II II III'11IP I 0 , IP' iii r ISIltl11l um

rElllbl'd'0 'telnt,1 IMillol ~al'lear' ElRE.tlIK I) mals, P0cile 'se:r ,a I t,e I!' illdiiOI 8:

Ne1ho,&'~ oonfmrme s~a ~mI9~~i~ia.

P~gue PIPe~ qUidr~euladQ e ~Ip~s e monte SUI hls,UI!'~a~

5"0 SCRIEIEINI,

100 GOSUB 220=SPRl1ES(0~~SI 110 G09UB 220~SPRJTES(1'=SS 12'0 GO,S'U EI: 220 r= Sf R ]; T'EI! I( ;2)' = 5;1< it 3,01 ~O sus 2~20 :~ ~~i't' R' I TIE'S (3 )1 -51:'1 140 GOSUB 22e;SPRITES(4)~S$ i50 fOR 1=1 TO 250 STEP 10 ;L60 fOR 8,=ell(il 4

"70 P I.I'l Sill? R ITE0 ~ (I +'EHf2 ~ 301),,8 ... 5 180 FORT=0TOS0:NEXTT

190 N'EX.1i' S

2001 NIEX.l I

2101 G;CnrO' 150

2210 51,= ........

23:9 F(Hi~' C"" if 0 9: 240 R'EAD K'ii

2501 Si,=5'fj+ICIIiR$ (VALl( uCEI:""'+K'$) > 26,01 N'EXT C

2701 R'EIIIJRN

280 DATA 000iie00 290 DATA 00011000

300 DATA 08111100 310 D~TA 00111100 320 OAT~ 00111100 330 [h,n ~ 0,001 1,O[00 340 D~T~ 00011000 350 D~T~ 00011100 360 REM---------- 370 D~T~ 00011000 380 DAT~ 00011000 390 llllrr,lil 10·0[11 i, 1,0[0 400 DATA 101011010 410 DAT~ 01011010 420 D~rA 00010160 430 OATA 00100110 4.0 DATA 0el10000 45[0' RIEiM---------,-

460 DATA 00~11000 410 DATA 00011000 4se DATA 00111100 490 DATA 01011010 5~0 DATA 10011001 510 D~TA 00100100 5,2[0' D~",A [0 i 000«U0[ 530 DATA lil0001i 94[0 R'EH~~·~~~~.,:-~-..:.

550 DATA 00011000 560 DATA 00011000 570 DATA 00111110 590 DA~A 0i011010 590 DATA 10011010 6.0 DA~A 0110.100 610 DA~A .100010@ 6:2[0 D[AITiI, [i[0[0[00110[

630 REH---------- 640 DATA 00'1100. ,~. DATA ••• 11000 661 DATA 00111'.0 61[10 ij)[A[TAi 0i~Ul.i i 06

690 DATA 01011010 690 DATA .0101000 760 DATA 01101100 710 DATA e0tl1ii~ 720 REH----------

18 ~ lOlL I OGOIIH A R ~[JfIEirqADI;1

~pr~'un~an~l-se ~~ HSK - tl~f'u~D 4. PrQ9r~ml~io Avan~a~a em MS~ - ca~r'u~1 2.

o p,gsrama aprr.'~tld0 I 5'~~~r glra ~m~ ~e~a PI~riG ~a SCREEN 2 o~~e podlm slr~ t~9Ir~d4S 4 Man~agens. Dlgrte-G e exetut~~G. Depols. .lPer~ml~le alit lliit ill r 10 e IIUII U!l dOd ,iI s II I~ III hi ,JiGI 1 :3,$. 148 • 145 II 115 J • Experiments tam~im 1~le'I' 0 tarat'", lolr, IS ISPI!

Inlll I l!lih a 1131. ,AU I ,II ge·' Ulal SiIBllr'i 9 rl'¥'II~il em Id IISCIQI IOU

lam f I UI IPe II a I I nih a 715. :Se d ISS Ie j u. a I hI flfl Itli rllme 111101

ilflll!il i ¥'Idl. - -

190 COLOR 1~~1~i .105 :smil:EEN :2

110 OPEN"GRP:U as 11 :1.:15 IR~Et'Ii

i ;H1, Ill! E" ,h,~ f' Ii II'iI e IIiI!e:n!;:a:9 le,lil' S

125 REM ------------------------------

1.301 X'$ Ie 10 ), :;;;;;;''''ol''

13~ ~~~lJ=-XXKXX·

140 ~~t2'=u~XXX~XXXXXXXN 145 X$'3'~-XXXXXXXXXXXX"

150 X$C.J~-XXXXXXXXXXXXXXXXXXXXXXXXXXXX :155 RIEiH

160 REH desenha rnens~gem

ItJ5 R'[IM ~~~.~~~~~.--~-~~-;.;;.---~~-~~~-~~~---.~---

110 X=6~5.(245-8*LENCXSC4'»/2 175 P8ETCX~17e'~POIN1(X~170) 180 PRINT "f~ X$(4)

185 PSET(X+i~170J~'OENT(X.l~170) 190 PRINT Mi~ .~C4J

1']'5 REM

200 REM dese"ha linhas hori~o"tais

20~ REM ------------------------------

2~0 COU,IR 9

2~5 ¥'t .~ i

220 FOR F~6 TO 191 STEP .2 2~S F; F + YV

230 LINE~a,FJ-(247~FJ,9

235 TV = yy + ~4

240 N,EXT F

:245 REM

2S0 REM d ·es-e'l11J tfj:~ a m,Qll d tU'" a

25'5 R'EM ----,-,-----,--,-,--------,--.--------

260 FOR F=0 TO 255 STEP e 265 PSETCF~0J.4

270 PRINT til~X$(0)

275 PSET'F.191-7)~4

2a0 PRINT .t~K$(0)

285 NIEXT IF

290 FOIR IF=,0 TO, i 91 STEP 8' 295 PSET(0~f)~4

300 PRINT Nl~XS(0)

30~5 P:SETC251!:i-7. F) .. 4

31e PRINT nl,XS(0) 31.5 NE.X·T IF

32'. 111::"

325 REH de~~nha texto

33'1 HIEtiI --~--~---------------------.---,~

335 COIL,IOR 11

34,0 EN'<=IP'IEEIK ,( ,l\IH,F'20) -1-256.1" EEK <: &HF·92.1 :) 345 FO'R' TX'''''i ro :'3

3516 AS,"")C'i (TX)

35,5 Q'""0'

3~0 FOR F~i TO LEN(A~)

365 A~EN+B*ASCCMID$CAirFr1»

S70 FOR G=0 TO 7

S75 Bt=BIN~(PEEK(A.6J)

38'01 B$=:R'J: GiHT'i ,( ·"000'0'00'0'0"~+I!I$ .. B)'

365 FOR H~i TO 8 -

399 IF "ID$lBi,H~j,~nlu THEN Q~&+l

39'::;; NEXT HI

4"0'0 INIEXT G

4,ei~:;; IN.EX T F

41'0 P=,2*Gi-l

415 DIM XCP)~Y(P)~S€P'rT(P)

J'J.2'0' E ""'0

4·2'S 1=5

430 FOR F~i TO LEN(AS)

435 A~EN+a*AS~(H1DS(Ai~F.l»

440 FOR 6=0 TO 7

445 EI$r=EUJi'!UPEEK (A+G» , __

450 iii $.=!;: I GIHT:II ( '~00'0'010'0iiU~I~"'+8:$, ~ e;) IIlllZll

455 ,FO·R HI=·!. t08 II!IIIII

46'0' IF M Ill' ,I (19·$.p' H [!' 1 ) :"'0'~ THENI 4'90 ~

465 )«E)·"=I+H~l ...

470 YCE),=B-G ~l

475 X (E+Q'):::lX'{IE) IImI

480 '!f( E+a )I:::lY(E) DIiIII

485 1E:=E:+i ,.,.

490 INIEXT HI ...

495 INEXT G IUDI

500 IRIEIM ..

505 REH paS5Q horizontal

5i'0 ~'EH ---------------------------. '

5 l'S f'S;·=,6

52,01 :I='I'" IP'S

525 iNEXT F

5301 IRIEH

6·.:j

1=:i3'5, REiI\':! ,"~!i" i.e't ro Idle as·!!::.] a )C

5401 I'E,M' ---,-,--,---,--,-.--.~-~~-.~~--~~-,--

545, PX,:=:9

'ssei I,F' T X =1, THEN IP X';;:!l,

555 REM

560' REM p'i11l1"a.llletro lillie escal a "if

5·.sS R ['M ---.--,-,--~~-~.-~~~~--------,---

57,9 P'i(='5

5.7'5 IF TX= i THIEN IF" V''''' 7'

5~B'0 ,9.EIM

5'9'5 IA E,l'\'! ac: 1'1 it P' Q'S i ,e;8'IE' s nl at ela

59'01 iii E'M -,~----,--,-,--------,-,--,--------

595 XI=INT((230-LENIAS>*PS*PXJ/2)

6""~ I F rX~i 'HIIEN :X[~ X I -9:

609 YI~30.45MTX

~10 IF TX~1 THEN YI~'I-i 615 IF TX~2 THEN Yf~YI-i

62'0 IF TX'~3: THEN rl~'I.Ji.5

625 DEFFN A(F'~X[.PX*XCFJ

~:30 D:[FFH I!I(')I ""YI -P y+P( ( F )1

63St RE'M

640 REM NplDt~N circul~5 das letras

645 R~H -~--------------------------

6501 FOIR F=0 TO P'-i

65S CX~FN ArF) ;R~H x do ce"tro

660 CY~FN B(F) :REH ~ do eentro

665 AX~I~7 :REH a~hat~mento

670 Fit D~-4 :: fUEM II" iii, ii [!II

6;75 I F nee 1 lHEIH IAX=:t _,4 ::: IRID=6

,61910, C [RCt.IE U:X ~ c'n~ 1Ft 0 ~ ~ 7 ~,AX

6B5 'AINT(CX~CYJ

690 NEXT F -

69~ ER~S:E X~l'~S.T ,. B 01 INJE::<T n::

705 IBSAVEuTElA,X,XXX ,. S'E:J!l: U ~ 01 ~ C,H3FFF ~ S 710 GO'TO .7110'

I

I I 1I0I:l IIIII!lII rmIiIIl I~I UD:a1 IUD '*Iii',

I H = ... : :"

BI'BilI IGAAF .A, R ~D[J!IDlD.111 :

Aprl'U~~in~o-s~ ~o M5X - elpft~lo 4.

Progr amiH;io A'Jil'n'!;:iI!dii' em MS.)i!- t,a~ f' t uII" ,2.

65

I ~

a, NI - ENiENDEHDO 0 GC»tIANDO OR'A.

01 (l Q,mal!lda DRAW do IBAS I C' M5X 6. IHI rea I I ,Ill !lui a, IIImi

mlcro-II~9ua9Bm !r'f~cl que p'~m.te a tQnf~cci6 de ~e5enhos nas tel~s 2 e 3.

Sua stntale ~ slm~les~

A mDnta~em a~ aes~nhl 6 telta atravis dl exgress~o st'in~ Segund~ regras bern detl!nmi~adas e d! t~~~~ memorlla~~Q. Para con~,c~-I05 b~sta consultar 0 ~8t~'te DRAW ~G dlfion'r~o de ~omandos do Ilvra L I NGUAG'01 e,~5 I t:: MSl(.

A melhlr manel~i de se famll~ar~zar com eS9! foman'm i g,rlr uma varliuef strj~g ~on'endo ot comaodos desejado, e v~r a efeifo na tela.

Para f~c!lifat 8 ¥tsua~ila~la dt des~~ho ab'j~1 , cunvenlente "reticular" I tela (de 10 em 10 ~ontt5. por e~emplo) antes ~i e~eGuoSo fl desenho. Expe~lme~te di~jtar D ~r~~rami ~ segu~r~

i 10 SCREEN ,2

20 FOR l~e TO 191 STEP 10 30 FOR C=0 TO 255 STEP 10

40 PSET (CrL)

5,121 NIEXl C

601 NEXT l

70 A$=nmM60~60U10Fi0D10L5USL505L10u 8,0 DR AW A'!Ji,

9'01 GOTO ~0'

lrom

Aglra vi alttrand~ i va'l~fe' A$ detlntda na

I i nbaBI com no v'!) s Ii ulb-,coma n,d,o 5 diD I]IRtlW e VI j 81 IiIIS

efeito5 geri~~s PO, SU8S eXPlriineia~ ati se fllmi II ailli' ,I rar lam esse p'IUIEHIJ'30 ,c'Dma'nlolcL

En IOL. OGR,IF. ,a R'E!DI:I1EiND.ADI i

llngua~~m B~91~ MSX - p'glnas 5& a 58.

C'ol,eno de Pl'lugram'i!i IPII1Ii8 M5K 11.11 - P'9111'HI 54. Co I B'!iia'D de Pr 1l'!lIUm.1S p,a r II MSX '01. ,2 - plig ina 5,2'. Curso d~ BASIC v.1 - p~l~nas 61 e 62~

IBI6

2'. 101 .~ ~'ARP or NISI1iREflN IE!

~~t~ est' I~do para 0 ~I~~eta d~ Prln~e5~ Ve~p8 ~ari salv'-tl ,~ ~erri,e~ ~;tPacite Pr~tQ~J Para chigar ~~ iQC~ passa ~'r um agllmB,ado de estrel~s. com ¥tIQ~i~~de ~tplrflliR~C'. CQmo sim~lir esle eftltol UIglte a ~rlsrlml a s,gu~r ~ ~Qa v~a~eml

1'00' SClR:IEIE:N :2 = lLl'EF lUltiT I ~S,. x- y _ . . .. 1:10' SPIRIl'lE$ (1) =CHIR$ (10 )+CHIR$ (10,)I+[;HI'I:$ (0 l'+1!:1Ia H~$(0)+CHR$(9J·CHR$'0J+CHR$(0J+CHR$(0)

120 [) 1M X (al )1 ~ Y 1(31) , C (3:1,) ~ D (3:1 )I ~ IIJ!X ( al, ) I VIII!III Y'Jl"Xl(a1)~Y1CJl)

130 FOR 1=0 10 31

140 X(I)~80+INT(80*RND(-TIMEJJ

:1.50 FOR T""l@1 T'O! I NT (300KIRND (3:» ) := tN;E:XTl 160 Y(I)~40~INT(a0*RNDC-TIMEJ)

170 IF X(I)~125 THEN GOTO ~40

180 X(01=i26:YC0)=S6

190 PUT SPRITE I~(X(IJ.Y(IJJ.15~1 ,2100 I[U'I ),=( 'fIC I) -8~D/O( (I )-125)

210 INillEXl J:

22'0 IFO,IR l=j 1'0 100'01 230 fO~ I~. TO 31

240 VX(I)=SBNCXCI)-125)*I*TAl/100e

250 UY(I'=SGN(Y(I)-BS)*~BSCUX(I'*O'I'> 260 Xt'I)=XCI)+UX(I'~Yl(I)~Y(I)+UY'I' 270, Gil!-4l E~:RO:R GOTO 3310

280 IF X1CIJC0 OR Xl(I»225 OR Yi(I)(0 a R Ti(I»191 THEN C~14

290 PUT SPRITE I~(.tCI)~Yl(I»~i5-C~i 300 (';=10'

31,0 NEXt I

320 NE:Xl f

3:30 GQJij! 33'0

·0, II IBIl.I IG'A,Af III REC"ENIl!IDI: ~prafundanda-5e h~ M5~ - ta~f'umo ~.

167

~ ,.:p - ··.sPR' II'TIEINDD"" " TABElL,i ID~ 'CAR AtflERfS,

M~jt~5 ViliS sSfitlmos a nlce,'~di~1 de fi2e~ larras OU srmbomos se movimtntarem na tela ccmo '8 fosslm SPRITES. Issa i simples de ser felto~ como podlmo5 deflnlr 258 SPRITES (O~8J e 0 HSX dls~i~ ~, 256 ~aracteres. podemi5 trin~fotmar cada caratte~e nu~ SIPIRlfElI

D ~rOlr8m8 a slguir proeU'i 0 Indere;u do com~eQ da tabela d~ carac'eres ~a viriaue~ EN ~Gontl~a DDS

lendlH e,en &Hf'9,210 e IHF!lI1211) e: trall'stera sua

c'lmlf!.I1 gu,raIC'ihl p,ar',aa res II ihll liIal "'RAM reserndlCiI P,i3Jr'~ cs d8~'~hos dos SPA~TES.

10 SCREEN 1 : DEFINT A-Z = KEY OFF 20 EN~=PEEK(&HF920)+256*PEEK(&HF92t) 30 f~)R' F='0 TO 20,",7

40 UPO«E 14336+F~PEEKCEN~+F) 50 NEXT

AI~,ffiI"!i ~ od,i! r El9 t e plir I!Iglr ,ama. e a da SPlit ,I TE

CIHlfe!'5pIDlllld'er'li iii urn dillS, 2SB Icarachre'5 iii 0 MS,X,. sendo, ,e~ nOmero 0 pp&p~io c6dlgD ASC do cara~tere.

Pari vir ~m d~5 m~1 -ef~ito5 ~gssive~s a serl~ empregadas com esse ~8cur". diglte a eOfflPlementa,io

dl'l! p n!lg r ama, IiII sesul r'l -

,60 INPUT AI

70 L=LENCA$) : C~3 B'0 F'O~' 1== iTO, l

90 CH$~MID$(Ai~I~l) 1'01'01 CH;;'~SC C CHS,)'

110 FOR Y=0 TG 96

12.0 PUI SPIIUT'E I, «C+I HitS" Y-I ) • r C'H 130, NEXl

i40 LOCATE C.I-2~12~0 : PRINT CH$ 150 NEXT

Para riliul,i-!'c. U! 'QC~ j ,a' rodilu 0 [lriJ!I'I'lIllHl

Inter~Dr. ~ist~ dlgltar GOIO 68. Desta forma nio p~td'm05 a tem~~ ~~ t~an9f'rint~1 d~ ta~ela dg carae ter es Ipari! II an',a de SP'FUTE5 lII,a VIMM. 0 prll'glll'all'lilill ~ede a e~'r~da de uma str.nJ Cseu n~me. Plr exemplil). E~lte 0$ carattlres ,r~1Icos de e~~lg~ '~trl 0 e 81.

Implements agora seu programs de m'nei'~ i! acelt~' qualqulr cjract~F~.

69

2. Q- ARlIEGl!IlH IBe81lD

Quando ai'U nmols; i!i!1 SGR'EEN ~. us lJ2 byhs Idi! VFlAMI

~ilmp r l6lelnllill ens Ie n t reGIS 11111("'3 r'18'!tIl! 5 IEl19;:;! 'e Bi:1:2S:f le 111m

rISI,va~IS ~a,a atrib~'~s ~e corls. Gada ~m d,s~es bIte. dafinl 3 c~r ~I frlnte e a ~or do i~ndo ~e um conjunlo ~e ~ cara~t'r" (8*32=251).

Digite ~ pre~rlma a seaulr para ente~d,r mofher !'st II millican t Sima ,.

1.0eSCR:EIENi = KEY 'OIFF =i:>IEF1U4f A~:Z ~

U0, IFO'I: Il=0TO i 5 :=:

1::'NlI, ,FIOIR 1[;'=0 TO i 5

1301 V:P CM<E: 6 i B:2~3,2*L.+!l;;~, 16*L",C IIUI!I

140' NEXT C - ~

150 NEXT L ~

1601 lOCATE: a, ,2'0,0 = IfI'Rnfr"~B 'tlE IAIL TERAIDiQi:;;:" ;:~,

1.701 GIOTO 19'0' BIUI

180 IA,;;::STICK 1(10',) :: IF A~'0 THENI IG(~TO iee ~

1,901 ]=,1-( A=3) + «(p:q )-:2* (A;;'S,)' +2*tA,=i) I~

20101 CO'1L6'R ,15 ~i ~ 1 I~

21'0 I!JIP'OIKE :91'92¥1 ~,liiI10ii 10'i0 DIM

2~N!I' U'J"r.AflE: i '1 ~ 20' =: PM I tn B i '9:291" I ~

23'8' ,IIFSl I CK ( 4} l' e )'0 THENI G(~TO 23:0, aWl

249' (;On)l 910, DNI

A I~Rbl 100 tonftgura Q ~DP ~ar~ SCREEN 1. a~a~~ as teelas de fum~~~ e alf~nt t~~as 35 uar~~veI5 tlmo In,elras ~ara tarnir I pra8r~ma ma~5f~plda.

As lin h illS !!Ie 11 el ~15'0cQ 110 cam t~Hh)S IU.

oaratteres ma teli atr~vl~ do VPGK( parI evi1ar pra~1ema5 na ~~~res5ia dos ClrletltlS de e~ntrD~e (0 ~ 31 e 127.~ atr a¥~s ,dia, ~ IiII~rtn,JiI~ih P'FI'I~ wn.

A 1111 n,lnl 21" i nse r e , num do's 92 b ·~t SiS ,e i ,t 81d1015. IlIM

valor que defr~e i c~r de frenCe e a ~or dl f~n4, ~e!Un~D & segulnte ~r~t~rlo= as 4 bits da es~uerdi def~nem i aor dt 're~te Ina n~550 ex'mp~D &Bl011 = 11 ~ ama't~BI e as 4 bits da diretla ~ ~~r ~~ fundo (&n~gee = B ~ ~e~m~l~o1.

Si,e Yo,ceg]u: Ii s,e:f .... poltle iI r" urn 1Il:~me r l! e'm I~,e,c hn'iI II "

basta oi]t~I~~lo 5egu~~~ ~ rlgra~

~G ~~S90 exemp~fi. 0 val~r dec~mal serla~ 11.16 + IHI :: 111M

EKperlmeote substltu~r esse Vim~r ni Iln~a 219 e

de~ols InYlnte outras comblmac~es " e,~es.

A Ilft~a 198 penmite alterar 0 e dlre;o ~o VPCKE uSinda I recurso do HpBrlnteslS ligl In.

s! i aflrma~~o for v~rdad~lri s ~ valor 'IFi -1. se ror falSI. ser. 0. DeSSB forma. preSS~Gnando 85 h'c'lI5 de s,eil"IS f S'TICKUl1 ). ¥iu:ii P',Q',U: al ter ar II ,alor ~! , e. portanlo. 0 'nder8~o ~o b,t~ 41 VRAM ~ 51 r '. I 'hi r ,lui ,II.

Assim. ~~r m~l~ dessa "ogtama. ~oQi pa~! ¥~9~ltiz~r qu~ls S~D IS 1'~P09 de 8 car~cteres que tim SUi ~'r ~~terada 1m fu~~io do br'I de atrlbu~1 que lI~u:8 muidg,u.

Se ~oc*. par Ilem~WD. alt'flr " bytes 9191. 8198 I 8199 Gom 05 t~ml~~GS

VPOKE8t97riB4=UPO«Eei98~184;UPOKE8i'9~1a4

e clmBndaf LIST para um programa em BASIC na SCREEN 1. ver' yml ~lsta9lm t~~o~~da -aPln~5 ~os algar~smos 8 'iii If m'lI a lo's a r II tmit ,I 0 DIS.

Not. ~ue a alteraCio no hy'e que IRe~~~ 0 tarac',rl ~",a~1 vallQ~ c~~'re toda I tl~a aa redor da ta~,la de c!r~tteles (,o.s ela es" chela de es~a~IS fllJOS) I glD uma ilt~raei~ ~G 61tima dDS 32

b,tl!!!s liIe: atrllbilltlll'S ,die oOlr 03!293)1 altar. II 0:011' dOl

C u r'so r lea r ae ~ en die C UIJI glOI 255 L p 6F,m I t i ndill lIm,al

vi5uallla~io mala f'cl~ do m~5mo rna hota d8 ,d~18F urn prOgnmi.

Ap aglU,. illS II tnhas d,e 1 f!l1" .&1 ,~,e c,omi'"[JELETE '1lU11-2'4e'" e ac,escante IstlS .tnhas ao prog'&ml~

160 FOR I~l TO 32

170 X=INT(RND(-TIME)*14+1) 171 Y;INT(R~6~-TIHE)*14+1) 180 IIF X=Y TH'EN G'OTO 170 H!'i VP'OKIE :8:1. 91'" I ~,~Of 16+"11' 2'019 NEXTI

Dests forma '!!lei ~sta,' sorl'lndo um n~merD de 1 I ~5 para a cor de fr~nte e f~~~o fa G~r trl~sparente fol e~~m~n~da~ I ¥Irlf~ean~o 58 ,115 sic dlflre~les. nod'e 'II IP rIUI'S'F amal v,6 r' I as 'lues PEl r,allll r seu 'Ilh! I iii. ~ obs'r~e ~omo fica uma ~~stag8m na 5CREE~ 1t seu ~r~lrama fl~B ,arecendo um ar~i~~~m ~~baagf

B 161:.1 OGRAf.1 R EGDilEKDII.,1

COlli e:1; i,o de 'Ir QIg)umn iii a I' iI "5l( v: 12 - p6s I us' 1 :9' '. " 91.

N1~m~~mente i Imp,ess~o de caractlres na 5£REEN ~ ~ slm~l~ante ~ da SCREfN 1. em a2 co~unas. Entret8nt~. term lum IMilq u e 1111[1' p,'r 09 p' am iii em II PIll! iI~g eml (h~ 1111<"11 III n a pode-se faler cum que a Impress50 assemethl-se ~ dl SCREEN I. am 18 Golunls. Com IlgB~ri~ alteriil~a~5 "1'$1 me~m~ ra~lna. pod~mos fa7~-~a t~primir em 6~ cumunas. ~ e~atamente iss~ ~ue faz I ,r~9,ama 115ta~o a "gult. OI!11e-D e_ ant$~ de m~ls nad~. gr~ve-o em dt5CO D~ em fltiil. De,ois fo~e-o.

I8IIfI lIlY ISDU lIiliDl

1'1

elm ~SSB. I 'otina ~e ~m.r~55~O n~Q st~fi~~'~ ji estari carregada na mem6rli do mi~rG e pranta p~ra sIr uSiild,iI .

N~te ~ue a Im~r"5iQ em 19 o~ 64 C~rU~~5 dIve a~r fllta ni SCREEN ~ usando-s, a slntale:

A~=U9R0(Nstr~ng a ser Imp~e5saP,

o pt~j'~mi i seguir Ilustra 0 usa da ~mJre~sio em o!JH eolurlas.

t, 0 SCREEN 2

;2f.l P!1ESET (0~ ii,le)

30 A$~USR0("r.ste dE 40 colun~sN) 40 OPEN nG~p:~ AS Hi

511 P R ' -Si~l ( 01 :,20) _

60 PRINl "1~ Te&te dE 32 colunasN 70 GOTO 70'

A Im,re~sio ~o~mal. us~n~m 0 PRINT I . conti~ua a funclonar sem alte~aeies. em 32 CG.U~IS.

Oil S III r v'e ~ iJ'mb eml u,e qllll iii fildlD S,!lI: LIS,!! ,ill 0111 ;:ij,[iJ1 oleBi4

cmluna5 os caracterl5 norm~is se sabrepiem. 1'50 ~I~~ set evltado s, yoei re~eflnlr uma IDnta de car~ct~res (~eja a dici 2.61 IprQ,r~8d~m~~te I radar 0 programa I segu U.

72'

a, S - Cai'.IIII_DO SPR I TES 9 18 'H., ~5GRe:04 2

o rtcur.o dis SPRITES i multo 6tll ~i iprls~~tacio visual dos programas. mas el15 apresentam alaumas ~tmmtae6es, ~omo POF Ilemp~G 0 fat, de 5

SP,t I te's IniQ S'B r'em, Im,lu'sISSo's [pIli 1 III VID'P 51!!! III'S '. II 'in em lUi

1IIe5I1'1!a IIIII n hili.

A rotloi ipr~5entada a ,art~r da ~~nhs 120 01 II s tagsml alblllD Imp,' Ilm:e' G ·SIPIRII TIE B II, lEI CIJ j !II 'Pldllr 5,01 Ii de'f il n II diD !!I'e 1111 ulr ,I a,va I SiDl, 0131 COD nil'l! n, aid II' llIad,a ""8 I ,89 ~arl'vels ~ i y_ 0 tlnal 11 para IrQUl10S lambim dIve es tar ~ I u r e pin S :SiI:lr ut I II W Z illd!!) pe 18 f'Bt II na '.

1 I'*******,**,********,w. 12 ~*'CAR'lt1,ElIAD'OIR 8xBM 3 ?*IBY THiE D'OICTOR lUZ_ 4 T *., II ·IEX.M •• * ** * If: iif •• 1t til'

10 SL=(INP(6HA9)AN03HC0./64 20 SCREEN 2~0;SC%=0

30 SPR[TE$(SC~)=CHR$(255)+STRING$(6~CHR~ (&lt0&0t001)'+CHR$(255J

40 A$;;;; I NK EV$ I ....

50 P'IIJTSPR ITE H'J~ 0::, y)1 115 ~'5C" ~

6,6 IF A$=ICIHIR gil( 2~n THEN' )(=::)t +1 m:!ft'

70 IF A$=CHR:$J(29)THEN X""X-1 "jill

80 IIF ~$'=CHIRS (30) THIEN '(""Y-1 ~g,

'9'0 IF A%cCIHIR'1 (31 )ITHIIEN Y=¥+1 ..

U~01 IF- AI~=uF",fTHEN 'SICiR EEN 0 = IEINID ~

110, IF A,'$=" " THEN! IG'OSUB 1 '30 IbI!liI!i

120 GOIro 4'0 ImIII

1301 FORIL;;: =0 10 7 I~

140 POKE B.HC20'0'+L" ~ VP'EEfr( (IB,R'SE( 14 )'+L.%'+8'~Sletll!i I~%:) ~50 ~60 ili.70 1801 1,901 20'0' 2H)1

220' 2301 2401 250

I 'II!UII 1[0::)1

'Me,

13

A jd6~a de~se cirlmba~Gr de SPRITES i mu.to slll1lfJ I es. A var I he I Sa7., ai uoa al 'JI,Cantr'3r fil ''''RAM 0 Infclo de tabela de fGnm~~io d. SPR~TE. ~ue ~ t r a ns f'tH I do par aa fU,M Ell j:HI r t I r U III rllQ1e'lr e~o &HlC2'810.

Em seguldl. mDd~-5' ~ cinte6do da va,jjvel do sistema CGPNT (em &HF9~fJ para que ~o mandarmos im'r~mlr 0 caracter ~e~ Di tela sr~flca. nio 5eja Impressi a matrlz de ~D~tos de ROM. m~s 0 pa~rio do SPRITE que foi trBnsferldo a pirtl~ do e~~ere~a &HG200.

D IIBL IIIlGRIF. Ii REGrJ1f11DIDJIi I

A,p r QfIillilldain'dIGI-'S:1!1 WID MSK - e a p' rtul () 11:1,. P'r'lli,gl',amaciO .v,an11j\.iUI',iI ,eml MlS,X - lUll Chi I 0 ,2.

D prloCr~lo de fuftt~mnamentm d~ ~rOlrlmi a slgu~r , II mumll' qllll!ll (j do e a fr' Il'mlb illliliU d'lI SPR'lllES :B, I, B., apre~entada ne d~~a anterIor. Gontud,. agora iii

t~'a nsre r he 18 dll VIitIM pa r iii RAlM Ii, ILim lIIiIJUlC III ma I'!!

d~mor8dl. pols os SPRI~E5 16 ~ 16 sic ~eflnldos por a2

b ,tn C !lId iI 0'1:1'1, •

10 ' •• ~~*~ ••• ********** 21 '*CARIHDAOOR 16x16 • 30 '*BY THE DOCTOR LUZ*

413 "'~***jf************w;* 501 Sl= ( I NP ( 8JHA9) IANID,8HC0) /64

60 S~REEN 2,2=SC%~1 70 SP~IT~$(5CZ'=CHR$(255)+STRING$(14~ $(&B10000000'J+CHR$(255)+CHR$(25~'+STRIN GiC14fCHR$C8B0e00000l»+CHR$(255)

EH' AS=:E N'K lE.l'S ..

9'0 PUTS,PJUTIE :to ~ O( r "0 ,r t'5 p SC%

i0'0 lit=" "1'5&I=ICIj.U~ s ( 28)' THEN li<=i( +1 ...

H0 IF ,A!L-CHIHH 29' )i"H'EN ;:<:;::>:-1 IrtiI:!II

120 IF Ai=CHR$,(3:0')THEN Y=Y~:1 _

130 IF A$=CHR$, (' :31 :) THEN Y= 'II'+:i, i\:'lmII

1-40 IF A$="~F"~liIHIEiN SCREENI (HIEINID ~

150 IF A$= .... " THIE,N GO'GUB 1.7'10 ~,

160, IBOTO 80, e9Ii

170' IF!I'l'R U:: "",e on') :3 i rmJ!t!Il

'1'B0' PO'K E ,8HIC2,e0+L", IJJIP'EIEK ,e BASE ( 14)1 +IlX+3:2J!'_ 5'1::%) 190HIEXI 200 POKE &HF91F~5l al0 POKE &HF920~e 2~0 POKE &HF921~8HC0 23:0 O,P:EJiIM .... GRP':: U AISI'l 240 PRESET <X~Y.l);PRINT"i,P~B" 250 'RESET CX~Y+9);PRIN~ll,"AC" 260 POKE aHF91F~&H0 27~ POKE &HF920~&HBF 280 PO~E &HF'21~&H1B 29'0' ICUHS:E ,11 30001 RETIURN

Bill IL I HR., II, R mtJiIENOIDI. Iprofu~fa~d~-se no MSK - caprtulo 4.

Pfr'OI9 r ill'liQ:l:iO A'u a n'lji ill'dlill em flSI - C: 81 pi f hi I 0 2.

101'01 U.0J 1.20 130 i48 150, 160 170 180 15'0 2001 2101 22'01 ,239 .240' 250, 2,6,0,

270' 28:. 2~@ 3001 310 320 330 34,0

35'0

,2. U ~IlRrulEHaHDO 'EtAS Nil. RIH

o ~r~grami em BAS~G Iistada iii Sff9yir gera na mam6rla ~G micro, a par~ir do eR~eF~eO IHf0'0. uma

polina em Ltnguag~m de M~qul~a que ~~rmlte 0

,el,~I'!1IQi! en amn hi cia ·hil.a n gl iHIM II sua PlfI'S til r i Ci'rr

~eCype~ie~o. de vo~ta para a ~A~M.

A primeira parte do programa i a res~Dns~vil pela geracio da rotina de tr~nsferinc~a. A ge90nda ~arte , om eKemplo de ,ama a rot Ina tm L.M. dev~ sIr usada.

Observe a incrfvel ve~Dc~dadl tom ~de a totl~~ de Hans f II r i!n c i iii UflU:g!.lEl .iumU IHllallr ['II r eCli Ii e" iU , ) 0'5 115 klb, te s Cilia IIRAN ! II Em 6A51 C;: .• !!!SSill mesma tr anshrenc I e , se fosse p05srvel. certamBn'e demorarla alg~ em -torn~ ~e 100 vez&s m~151

Iprofundan~o-se no H5K - ca~itulBS 0. 3 e q. Programl8lC:ilill bal'l(;;Sii:ll.ll lem II'ISX - cap,f tu II 0' 2 ..

CD~~Ci~ de Pr~arama5 p~ra MSK u.1 - piglnas 31 a 51.

7'S

2.1 - USAINDI Ii VRIM PIJR'A OilDOS

o vrd~Q do HSK ~ contro~~~o pot urn ti~c~~to r5PBcIsi chama'~ VDP. que tern a 5~~ di$p~iieio 16 Kbrtes de m~marla c~am3d3 Vrd8D-R~M lVRAM}.

o ~OP pode usar i VRAM ~~ quarr~ Tnrmls dlferentes. correspondentes ~s SCREEN 8. 1.2 e 3 do MSl( •

Par~ cada SCREEN. a VR~M i divf~~d~ de forma dlferente e 5~mpre sobrim algumas ~re35 nio ac~pa~as. ~ seguir. apreaenlam~s uma tabela on~e fBlatlonamDs a ~rea-niB u9~d8 da VR4M para cadi S~REEN do MS~.

r---------- - - ... -_. -~- .. ,

I S,CREEIN ijlllllEA NliiCI USIDA I

r-~~~-~--. -~~----i

I 8 969 ite' 2847' II

I O:UUlIl1ii ;iI't i 16:903 II

1--------- - ... ~----~

I 1 21049 iU B,143 I

I 1148 iti 81111 I

I 8224 aU! 11 <1I!llSS, I

Ir------ ------i

I ,i! 7818 at ii, en '91 II

1------- . -- -_... ---I

I 9 3S'B14 a U IB,91112' I

I 19:48 II U 11493,5 I

._ -....!

h~al5 as a r 8 iii II ~ 'U es d iii VRAM IIJIlI iii em, SIIH u sad as para arm,zeAam~~to de dados. IS50 pode set felto r~nto com r~tiniS em L~~~uQ~em ~e M~quin3 c~mo com 0 comando VP'OK,E dill IB~S I C,.

Vamos ilustra, de forma bern simpl~s como se pode u'sar a VRAN Pill" a ,Olilldo's. 0 ~I S Ii ts e: 'n e e u til (I P riDS r ami:! a SBglulr.

Com 1550 as di!~~5 da string &$ esfar50 no 'RAM. ,AgiJlr!l ~'Olc,lii pod €I c'!!Imnldl~H' NfW; i'PUlUldo (I ~ rug r 1mB II liS

va~I'v~~s ~~ m~m6rli RIM normal do micro.

Pira r'~u~erar os dadG~ que foram p~ssados para ~ VFiAM, d i 51 i tie e r 1lI,!liIle' iill plr'O~51 r ama II ball xo .

10 BIC:R'[EN' 'I : IWI,DTHI 39 ,2'0 XglVIP EEl< ( 4196)

30' A!i,=:"11

40, FO'R F= l re )(

50 A$=A$~CHRI(VPEEK(4096.F» ,60 N,EXT F

70 PIR,lU~T A,$,

elm I~$O. AS Istari nQvamente corn ~& dado, ~ue ill iii\! r ,!limo s !H' ,illIa ,d (I Ii a VR AM.

6,. 8L I OGRAIF I' RIEIC(JtEJtDI __ BAil

Apr~fundal~o-se nl HSK - pilloas 196 e 11.

7e

o programa a"esentado ad~'~te i urn e~~tDr dt car ee tlBj;rr n: par a t I! I as glr U IICas. [Iii 9 I h-I!I. ,can'flr r a-o e grave-o.Depuls. rode I "'Irama.

Ao ser exee~tado ,~e permits ,~e [I usu'r~o "lIi1SGlul tlli~" ill memfi r I ill do mill; rill ii' lI"r QIUJ ra 'illI' 11m desen,h II para f~~a Jriflci. 05 dois ter~l!Is superior,s ~a tlla ,50 ui~d~s ~ar~ mostrar os desen~05 dos ~aracteres da r 191 i'B d,a m'emor'lll pesqu I s,a,d a fill W" qlUD I 'II' e~$ ap,a r lien I am na 'lgura cia tela gr'fi~a. 0 ter~G Inflrior dl tela ~ u,~dQ para mostrar-rum inleo caracterl 1m dest~,ul. Esse caractere ~ud' 5er re~estnhado e eorresponde , Implla~io das ,os~~6es Indlcadas ,or um pequeno qUBlra~o no eentro dl tela:

~~s~m ~ue 0 programa i ea~'ig~~D. IS tBe~as de set as Plrmltem mDler 8 rel'ie 'a mlm~r*1 pesqulsada. Lemb,r I~UI que d,e I!.H8B010 81 - ,!t.H7flF'F liX Is hI RO:HI- 81 a pair t 111' de IH!!I'0110101 ulstl IiIAH. ,As nUU;oIBS 'dlillst~lc',a'lI dle~ s,oihs !s.S, resumt~~i abal~[I.

t pesqulsa um bite para a fr'nt'~

SHIFT f. : PIIIscl'L,lsa alnUs liIara fnoh:!

- '1,1 'i!liilrilICUlfl8).

4 peS~ul5a urn brfa para tr'2~

8MI FT ttl p~squ i sa 9 lufe:s pari! 'Uh f.l e.arac.tue b

,I; II as qlUr i lila 2'5,1:j b j 'hs, pllHii h Il nt Ell

(1; ~ II nh,ai) ,;

SH1FT + • ; p~squlsa 2949 b,tes para fre~te n/:a rile Ul,a,ll;

• IPesqlU il5,al i!s,a 'b,tes, par II ""'IZ n I j nh.ij),

StU IF'll" + '!II' , 11 n,IiIIUI i 58 2er~,el iii, hs Par" i 't, 812

n 13 dill t,B. at ,

Villa U'IU IU~O IIiII da 11 reg I :;101 dl m,em6,r II 81 I !iiI!l'r' pe~qUi9ada. P~~1-5~ ,d~tlr m ~arlctefl 1m de5ta~ua. P~ra "SO dIve-sa d~!ftar i facia SELECT. Ela permits a p~SSlgem do modo ~iel'~i~· Plra 0 mD~m ~edl~io~. Pre$9~o~ando SELECT 8 prfmelra vez um P,qU8~O c.ursor sUF9~r' no CIFlctere am ~Istiqui na plrte Infer~or dl t~ll. Pode-ae m~¥~-~o com is teclas de aetas. Plra aWterlr um ponto. b~5ta pr,SSiaftl' a blrra de e~pIQOSI n Ii me 185 til ¥elr apag,ad!!l., seUalc,'s:'u e. Ie est I 'I_ell" l~eSij. ser~ apaga~o.

IC'Q'ml G CiriUl UH'le j.' ed I t,ild'iiI,~podll-'51 rratm,r n',;n do mlldlo Idl. ad! il do dig i U UII ma 115 ama lelZ I tee I ,I SELECT.

7'9

Para gait do ~rlgram~ e r~t~rn8' 80 BASIC, basta estar 'Ira do mIdI ~e edl~io B ~res~ionar a ~arra de IlSP,ElIj'IlII!i.,

51. ao ret~rolr 10 BASWC, ~ tela ficar toda com um~ 5~ CDF. use um cOmaft~11

1,0,0 l.'0!5 11'121 1:15 120 125 13@ 135 14,'. i,4,'5

15,.' 15S, 100' 165 170 17'5 18:,9 1:8'5 19'0' :1'9'5< 2"0 2'05 210 215 22,0

22,'5 230 ,235, 2401 2'45 250 255 20'01 265 2'710' 275, 280, 2:05, 2'90'

d:clot" 1Si~l~1

ISla d'vBr~ resllvlr ~ ,r~b.em'.

B0

A:p Il'tOth n,tdiatrujllll~~' tno ~5K - [liP r till I to 4. Proglamacio A~an~ada ~m MSX - ta,rtulo 2.

i! ,., I ~ IIINt,601S IINST IIlTiNEA:S

Muit~5 yeZI' 8 ,rodu,iQ de ums tels por urn [pi r Gg r iHII'1I eml IB,AS I G Ie Id (1117101 r SI!lIa dismal,s; ," IP'!I" Ilml C:i Pill mlll:lllt Ise !115tBI:MIS tr ,Bill ,a I ,u,nl,dl,o, C:OIm a S:ClR:EEN ,2',

P~~~m~~ faZIr CRm aUI a Imig~m ni~ s~ja most'j~1

III1L1r'~nlt,ea ICIUJ Id e:c:!;5ie do i;IiIJ:s,e,lIlh,gl" IIJI;ElS s~mll n t,e 3'lp,6,5 lilliE!

II'S hH II Ii' g'nl to ,

!!!1m a hI rmlll bleml 51 mp 118S de C,QllnS!9grtl I r i '§$IO' Ie uGanllila

u ~omi~'~ COLOR tQffil ilempllfl~~mos a segulr.

100 COLOR 0~'T9 ; SCREEN 2

110 REM ---~-~-- tela eN~mplo -------lae FO~ F=0 TO 125 STEP 10

130 6=80-F*60/125

140 LINE CF~a0)-(125~G)

150 LINE (125~G)-(250-F~B0J 160 LINE (F~B0J-Ci25~161~G'

170 LINE (i25~i60-G'-(2S~-F~B0) lee NE;,xr F

1'90' COLO,R ~ ~ i

200 BEEP ;-@OlD 200

Na lin~a le0 1~I~mQ~ ~'m ~~6 a c~r d~ freftt~. d, fu~d~ , da bor~i de teli sijam ~Iuais. ~mpo~~i~llltan~G ~ ~Isi~ dn Q~e ~st' se~'~ fe~lo ~a tela. A IJ~~a 190 s& I Ixecuta~i iP65 0 dl5t~hD IstBr 'irmlna~a e caloca as tor&s n~ tlt~ ~, ~ma 56 vez. Des~a forma. ~~I vem05 a desemh~ sIr feitl.

EI!~"lu!' 1~lmelnhl: '11,1( ecuta rill P rll!l1911r amal InO'!Imll'l'h,1

e ~ i m~1 n;alndo '(II coma~dlil ~OIU]'R da il W I1itlll 18181. V'DC I vel"1 01

de5e~.~ .endo 'ti~~rado na t~~I.

Um~ Dutra flilrm~ de eO~5Igu~r 0 me5mo Iflito ,

usa n01I!1 as rc et i Ln,as !!Iii! B 111[Hi D I 55CiR' ~ &H.41) ," IEINIA:S'CIR'

1&1111$4) como "'8 ~ rrlll'!)lrr illnlaJ ,a '$,eg u ~ r ,

l'9 11)[ F IJ 51 01::;;:;,BiIHl4 i ~ DEIFUS R i ""!,S;H o\l4 20 POlE 0~USR0(0)

30 FOR F=i TO 24

401 IP'IR:[ NIT ""'XX)(X;(X:XXXXXX:X::XXXXXXXXXXXX'u

5101 NEXr II'"

60 POKE 0,USR1C0J

61111L1 IlmAF I A R EC(JIIENIADI., AprotD~da~~o-st na MSX - P'91~~ 147.

Col e ¢,8!il II!I e PU!H amas ~ iii r a M~SX v. 2 - p~Sllln,a5 "1'2 'I GIB .•

Illul II i 'Urni II' 11"!!II'glr 11m III!I~'UI ,em m il nglnlgem e1" IlT1Ii Ii UI ~ na

qlU!1 IJI'I'rml~ Ie II!I seu p ra':911' ilJl'lil 11m BAS I' C i,m" Unl,r qIUIII"qu'r me n$igem 1m t.am'lIlnlhllllll,IllIIlII!l,i!' ado. n,iI SI[aUEI ~, A :9111' n,l!!e ~t~~idld1 de~e , ~ de frtIRe~e' a Iituna Ixlstent!

t'n tu 1115 SGFlIEEN" '5 . 2 0: 3. ].I UII 1118 III r Wme iwa

jim, !'llSsie ~ lI:m tllmlll[lhio nil t,u r s, ~. lSi ,n,iI SI8!!11U n,dlal !:I'llil Iltu's

t~rl~~s,iur~c~s. -

_, ut~~~l~~io do pragrl~Q , slm~~e,~ ~,6! ~arrl9ir a rO'~~iemL.M.rn~ mem6rl~. ~asti enam'-w~ pe~1 funciG U$R(~tllte~) au USR (~ar$). 0 p~sit~~nlme~to ~i tlSJilal eJ hll to 11J1!II II!I CIlI!I!lCIIlndQ P·SEl. 'If,UT' 'IlIU IIlulttr~ tQma~do gr~fi~~. e as corls ~! fr~nt, I f~ndo sia

~i'a5 ~e~o Come~do GOLOR. .

1000 DAT~ 3A~63,F6~FE.~3,C0~21~Fa 1010 DATA F'7 ~ 7E~,2:3 f 66~ 6·r ~.7E ~ 32 ~ E0, 1020 DATA 00~23~7E,32~El~00r23~7E 1030 DATA 32~[2~D0~3A~B5~FC~32~OE 1040 DATA D0706~08~C5~CD,2B~D0~Ci 1050 DATA 10~F9rC9~0E~02,3A~[0~D0 1060 DATA 32~E3~D0FC5~3A~B3~FC~32 1070 n~T~ DD~00~~A~Ei~D0,7E~E5~26 1080 O~~~ 00~6F~29~29~29.ll.BF.18 1090 DA~~ 19~3E~0B,90~C5~.F~06~00 11.0 DA~A 09~7E~&6~06,i7~CD~6F~D0 il10 DATA 10~FA~CI~EI~23~3A~E~~D0 1 i 2'0 D,AT,A 3 0 ~ 32 ~. e:·S., D 0 • 20, ~.ID 7 • 2 1 ~ DE 1130 DAT~ D0~34~Cl~00~20~BF.C9~2i 1140 OA~A DF~D0~36IFF~3a~02~J6~00 1150 IO:Al,A 'F5 ~ (;5 ~ CD .. BB.~ D0, ,2:1, 00 ~ D0 11&0 DA~A 34~CO~BB,00~2i~DD~00~a4 :1 17'0' I(U"'fA :(;1 ~ Fi ~t:"I·~,J,A p DE ~,1Di'0.~ 41F • 'E: 6 :1 i 80 IDAf,A 07 ~ 6f ~ 79,.1(;111 ~ :3F ~,t:1 ~ JF ~ CB 1190 DAfA 3F~67~3ATDD~D0~E6rFe~06 1200 DA~A a0~4F~.'~3A~DD~D0,E6~07 1210 OA~A 47F3E~.BT90~47~~F~37~11 1220 DATA 10~FD~4]~3A~DF~De~A7~2e i2~'0 DATA06~ CDI~ -4A,'00 ~ fH~'~. 1:61 p 01"~1E1 i240 DATA 2F~47~CD,4A~0tT~0TCO~40 i250 DATA 00~3A~E'9rIF3~B7!,e;7 ~87r87 1260 DATA 47~3A~EA~F3~10~0t~00~2t 1270 DATA 0'~CD~4D~00~C9~FAp6A~00 i2EJ0 DATA 14 ~ i i ~ e:0'".le'0.~ FIMI

1290 CLS=FOR I=~HD000 TO iHD0ES=READ POKE I ~'VAL( ""&H~"'+A,~')I ::INEXl I =END

!!!'.II

o pr61~mO programa , ~m IlimplG dl ~tlllla;iD da r,o~ 11118 r

.. , . .... II .. . ..,.

Dlea eS'8t.~I~ p~ra mu~~r ~ 8ItUF~ das letras.

U~~ pnKE &KD02C.n C~m n variandm dill m. QUI ~tQn'etl q~I~I~ n vIle 87

, EDITORA ALEPH - 1987

I . _

I E,cD"I'TI~J'R-A' 6LE··P"cH~. 1QO~

I' .' I • ' :,'" In, . - . ~Oll

~ EDIToRA ALEPH - 1987 , EDITORA ALEPH - 1987

EDITORA ALEPH 1987 EDITORA ALEPH - 1987 EDITORA ALEPH 1987

i EDITORA ALEPH - 1987 I EDITORA ALEPH - 1987

as

Neste '8,rtu~o l~ordaml5 uir~ms rscursas .o~Gros d i '~I:!(I~ r ~e15 Inos m i 'C·fIIDiS HS;X.

AI~m dot m~t~d~s norma~l. ~5a~dn Q PLAY e c SOU~D, eomentam-5~ l~gU~S mAt~~~s ~i~ standard d! !I 'I! r ~U;iiQ die Sig IIIIS,.,

3.' - Pr~~~l~~~m sons cam ICGS ........••••.• 87 a.2 - PI rll;lu'5'S8'UI cam (I P'tAy ••• ,. , .•. ,. . . . . . • • • • • :89

31.:!I1 ~ PLAY elm S'OUND •••••• " ••••••••••• '.'..... 0:9

3.4 - P'r,u,~i~ eam 0 ~I~ck ~~ te~lado m~

'9.,5 - Te:e: ~ 811m,1lI Pil SWIG ••••••••••••••••••• ,.,..... In

:3. 8 ~ lEd i II r da: SQlllUi ••••••• ' ••. ' •• ' •• ' ••••• ' .' • • • • • 95

:1 • ']' ~ M'Q,s, ~ C:a15 nm IH' 1D:g ,. O}'lnllill S '.... ..' .' • • • • •• , • • • • 97

::1.9- Mliis I CiI, ililleato r Iii ..... ,. ,. ,. ,. ,. ,. ,. ~ . .. • • . • • • • 9!B 3.51: - Pair it UUIU SOIIilIH ii, ••••• ,. , ••••• , •••.• , •• , • • • •• Ull

3.A - Oe5~ert~~of _ .••• _ ....•..••.••......... 10~

S.B - D~9~t~ltlador ~B vut •••..........•••••• OJ

3. 1 - PiROOIIJZ I'I!IDOI SONS IGmt ECOS

A II f'ollllluII;:b de 50'0S caml etos nil'S; mh~lr 09 MS:)I i

utl'emamslllt'll 'slmIllEe'5 atr,nh diU Icoml1n,illO PtA'!{', Pain

I'ssol rtlalsh geur um m,I!I'Smllll sam 11101 Iris Uln,.II'S,. Plrlim

com 11m ,eq'Il'1l 0"11' at r ,no um e:ml r ell uil!l a,II'!! OUt t r'os •

Vejl m programs a sesulr.

10 PLAY ~S0h5000~

20 PLAY NC.]2~~NR8C~32N~NRi6CM32-

Ele gera um 50m c~m eeo.

Ulna olutrl hrrml " !USBr' uml eln\l'I8 UIIIIIoII: :IHlllr I fid IIU., P'or IUl,om, I 01. 1111 9 Ihi ,8 .fllJdle 0 Pfogramli nlul ~ Ista,dl'D ,iI segu I!r.

10 PLAyN~240S0"lee0n 20 PLAY~02CEGAA+~GEH 30 PLAyU02CEGAA.AGE# 40 PlAY~FA03CDO.DC02Au 50 PLAY~02CEGA~~ABEN 60 PLAY"02D£FF+GFEDN 76 IGOlO 20

Agora amtere a liRha 10. 'e~xl~do-a como mosfrlmts a~aIXI!I. 0 exe~ute 0 prugrams novam,~t"

Bun I ODAIIFI A REGIJiIIENDAOAI

It ~ IIsrU'il 9 II In IB~s i (; MSX _, 16',91 i IrI,as 119 a 1 e1 • Cur:so de! B8'S, Ii c 'MIS:)! v. 1 - iIIU III a IS. Ilprlilifulldill'ldo-sfi nlil IMSl!( - c'iipftu I 0, 5.

S7

91 • .12' - IPERGOI9.0' CIIiI ,,LIV

I, VII r'ulU II II dilldiisl do c:om'i:Umdlil PLl'y I'll ,'m I h

falll Bftte I geracio de sons dl p'rcu~~io. Vejl 0 e.emplo a sesu.rt

U~!, P'lAIY ,;t1" 1,2'0S0~,9'00,4,1L4AAI<hS,1L 16AAA~I~,4,'" ..

2,0 Olin e fH" II1II

N~II qUI usamos m 'n¥e~DPe B tIm um perfodo de mld~ll~iQ mu~to curto. Exparimenle ~gorl 5ub~t~tulr n 12,B p"II,r 1118 e H98 PO r Mela.

BID L,IIlIGRI'f II R OOIJ!lENDID'1 "

L~nguBStm BiSI~ MSK - p'g~ni5 '19 a 121. Curto dl Baste "SX v.1 - aula B. Aptofundl~do-se no M5X - ca~itumm 5.

88

3.9 - "LAY GCII somm

Ulnal loin 'rnma de nralF S:IlIInS die 1,I<I!'IH:,liIssio coml 10, com1ndo PLAY i.$,I,c.'na~do ruldl ~ira um IU mals ~Inlls alrlr's de um tom~~~1 SOUND.

E~pe'im'nt' rodl~ 0 ~e9~lnte ~rograma.

A'f'~1 c valor do reslstro S (semPle 1~'r6 1 ! 32J e tim~6m I ~ora~~o diS notas e I tempo de e~lcu~~I. Vmel "r~ q~, pmd~ prmd~ll~ os 5.~S ~Ijs

'181r I (I,dos . urn 6 ~ ,t .1m"1ni fielCIU r 910 ~, mud II r '0' 'fo rmll tiD d.

envDI~'ria. E~p'rlm'~t' a~t~r'-Im. por i.lm~lo. ,ara 913. Agora. a~ inv~s de uma ~batlrla~. vmei dever' ob1er ~m ·chocalho·,

~

IIimUl I DGAIF~ ,I .1I'EIllI!lt!lENIlIDII,11 U nSllHIum 11381S I t MSX: - IP'~!l11 nes , Hli ill 121 e 14'4 a 15,8. ell r'so (2111: B,e!'!i ~ t IMiSX ~'.1 - ,!IIII i II 8"

lprofun~tmdO-98 no MSX - capftula 5.

89

3.'4- IP EIIUi~U5Si,1 IDDt 01 'CLI"~K III TiEClLlnD1

Um8 tert~lra e ~~I~m~ forma ~e ~wad~llr SGD9 de in'r c.ussalC! nlD· M'SI( ~. 1J15rm!illli) Ii) e ~I ~ CI~. do t ec I' al!lll!lI. IJ I g I te e ~lec~tt 0 programa I ,esulr.

10 KE~Cl)ON=KEY(2'ON 20 ON KEY G05UB 70.80 .30, X~~:ti

"11>0 QUT 17'0'.~ 12.7 5:01 OUT 17'0'~. :255

60 FOR FZ~1 TO X~=NEXT FZ=GOTO .0 70 X~=X%+1 ~ ~ETURN

80 XZ=XX-l AND XZ)0 ; RETURN

[ DIU Im.;u

Use ~s tee~as F1 e f~nc~on'mento do Drogr~rn~.

Essa r~Gurs~ ~ usa~G tan~j~ldG ~J'8U~"~Dr PITfAll. canals ele ~sa 0 click Ig PiliU CIiISSiii,G.

~e formi magistr~~ no Am~rn de m~srca ~os tr~s 'etla~o ~ira fiI!f a

Col~~i~ de P~~~ram~9 ~ira M5X ~.2 - p~gina 15. IDrofundaftdo-~i no MS~ - p~gi~a 91.

90

3.5 - "E'GUIO PI :&".'01

EXII s'te uma m;ule.111 n Hiill ilda e oia m'd i, hl!illlrf hi,t h:ada

de SiI!I: t r' a ns'~ Qitr'!I'Il'l,all~ lum til ec:tilQ do til C ~ aldlol ~el Silt! IMSl( Inrdm

1~clada m~slcal. .

I~G! enmii! i'a m ~ stado ilS€i'!a11il11 r , iI& DllililiS ,,11191'5,

In"w~mrls de teclas d~ M5X slr~a ul~~~lada~.

E5t~S tetlas ~~rres~an~ern ao [~pa~t 1.1. No

Hie' n It hi:lVII r j, Uiniliill I!IUI UIIlI i'll:al mod i f ~; t iI'Ij"jhll 'il U liS 1!IIi'~1

come~'.~1 Idlafttl.

'am~s Itrl~~ir I tada um~ da5 ~~tr~s lou IrmbolG5~ d't58S ~~~~ fl~15 0 ~aDe~ ~I uma t8n~1 aranca in preta. ,onf'~me 0 ~squem~ a s8g~ir~

Para 1510 b~5'~ dlgltar 0 progrim~ ~d~ante.

~ 10 StCRIEIEN0:: lln:DfiH39; I!('EY 'OFF:: PIOKE,&IHFCAIB iJ'1 t .. 210, 111M N (25,5,) ::IPLAY~'S0M,2'~U)0l,B''''' I", SiB F'OR I ~0 10 U3 40 REAO D~~D=ASC'D~';NCDJ=E+41 59' t!I,E;Xf I. 60 DATA Z~S~X,D~C~U~G.e~H~N,~rM~"rN~Lr_~

C ~ iii: ~ / ~ ~. ... ~-~

70 A$=INPU'[iJi (i) :A~A'SC( A$,)I :N$=#N!~~.j;.SlRil(N(tlllB

AD

80 PRINT A$~:PII"r N$~PLAY NS 910 sere ]10

.rom

- - ,

.- '... I

Elpe,lmente. ~inda. i~tt'ar 0 c~m~ndo I ji n'hll lei pal"ih

~0 DATA Z~S~X~D~CrVrGrB~HrNrJ.HrnrurL~.r

C~/r).·[ .

Ne"stl III nl'll ,·i'll lief lin hUll'S, DIS tecll15 qUI' hum. ill slaoineil. 0 ~IP'I d!S ,'o.~' de um pll~liI. Voei podl Ilt&rar 1St, I~nha pari usar o~tro treobo do teclad~ do MBX. Llmbf'-I'~ pmrim. de tj~!tar I ~llo~ rl~al dl ~ no liCO qUI VI~ de 39 I 5 ••

NI ~ II nha 41 01 eomalnldru IN[ D'): 1·+:a,6 id u'da I IlISiC.11 i

U"!I,.'!l.illl dill IIIIUIII r' ill fun' pr ~ 1811 r- tile I II C no IlDS'!iD t.~1 g l) tDcar a D6 c_ntral (HaS).

Vuel tlmb~m podl .justar Iste va.or de manelra I Pisar o~tro5 trechos 41 ~ieali m~stea~ 1m 91U t,c~ldo. 51 vDcl ~U~5IF altal"ir 0 ttmbrl da $au nDI1no••

rna elil , IlltUliI1 01 PUi,'¥ III I II nih! iii 2\B. .

C·o.o Ii I h,r,iu: ~'ID' f II IS II.. 'S,UI:gll!lr 1111105 ·ill S'U n,'S, IilIlr'!U~ I mOIS IO,U I IlotuJS 2 , 118 e IEI .• ' dlllIl .IM II,r'8111 f _calf em ass. I.

SCR,EEN'!IlI1 ~ :,.'01

loci dive satar CU~~DSIiI pari saber como tDram alr.dlS as ftg~ras qUI IIQ5t~am iii ~oml~1 dlsts d~CI. 'arB filar .5tO, basta ••• *tlt Istl clmplemeBlo d,

PI' 019 Ii' !rIl'1I1 =

~eee DPENNGRPlhAS 81

lei. ~OlQR ir15~15=SCREEN 2

18a0 'TI=I"IC 11041 ieE,2D14H2Li 0B2U:t4F,20'l062R 1 4H.2UleE2LI4&"

92

A II,em d li5SCI 'lJI'Olle,i, "111\11 ,iI 111,. Ulfr' 85 II ~ ~hlaSi 1 fI I 'a81 cia prQ9ram~ orl9~Ram P8ra~

i8 POKE IHFCAS~i

B,e If 'HA):::I. THIEN IBOrTO 710 ,ELSE PL,AY N~,N

AII~ NEI'i

66 GOSUI i008

Obwlam8~tl. quem tlver um Hltblt de¥1 fall' as ~orrl§pl~demt.s '~tera,I~~ nas ~In~~s 1111, 1141.

Sa vocl amDd~ qu~ser dar uma a.tlma 5uflst.cldl Irn SIIiI plr'og I" a~m;I,. ec,flll'S,Cl!llohi- ~ hi' as 'I Ilnlh,iJ'!i al '~9U II r II

:iUu. 7 NEXT 51

1018 SPRITE$(l)=S~ 3000 DIM X(19)~Y(19) ::I0U, XU.U:l

3020 FO~ P~0 TO is 3,030, R '" IP HiOll' i 2

3040 X(P+l)~X('J~l=IF R=4 OR ~=i1 THEN X (P+i) o:=:x (P' )'+2'

30510 J: FX ( p' J' "OD2=.1 TIH:EN 'Y Ie p ) = i ElS:E' y ,( P ) ,e 2 :3:070 3080

lElI [liB L IOCR Ii F I:A A [10.0.11,1011 ~

Curso d~ Rasic MS~ Y.' - aula B. Llnguagem Basie MSK - p6gina, 119 a 121.

a .6 - Em llOR lDE SINS

o prQgram~ ~ se~~i. ~ '8 gran~e ~tliidade na prQCUri ~6 ~alores CI'reto~ para se"m ~5a'.s c~m Q ,comailllJilllo SOUND.

Ao ser execut~~o, ele a~r8ge~ta ~m~ 'Ibell ~orn os n6mtr~5 ~~S raglstrli dB PSG i isgu,rdl. Pari selecion~r urn ~a~~ rtg~str~ de~e-Ie ~$ar I tecl! ~e

!IUa 1Pi!! ra c 1~lmi!ll,. D n iim,oul ~o r e!U Sl~' III S lillie U'IUldo

IP~r,eer' ~a parte Inftr~o~ da te~a. logo i~ellm ~~ tab~la. Para !~I'rlr 58U ~a~lr ~~vl-se USir as lec~as de s~ti ~irs a 85q~lrda e seta para a ~~rI1ta. 0 r~gistro 7 (d~ ml~.~~m) ~ a~'~Fido ~e ta~mi dlferentel In~cla~me~le d~V8 S8r se~e~iGnado t~m a te~ra ~e sefi pa r il IC I mJi;;!l j tdelD'IQ i;s devls-'s B IIU' SISIS i anar ill Ibilr'r'iI lilI,e esp~qos; a s~9ul" basta ~rQS5~O~ar e tec1as. e ~~ ~. para prG9ramar ~~ ~i~~riQ c regittr~l ap6s tlr

:1 F1i5Im!tr' i Ido til'S lIallll]ln~ " Ie 1 nlO!Si b I hi dill ns I '5!,tr'It!1 7"

nde-s,ll! plun I an ar fiETUR,N ~ a r a vo I U r 111111 modo die ~~~~G~~ normi~ ~o DrOgrama.

I reeQme~~'Y~l gil 51 co~~e~i 0 f~ncil~~m~nto do~ rigl~~r~s ~~ PSG ~~r~ pragram'-'05 ~o~scle~t~menle.

10 ~**** ••• *****.~~~~~~*~ 20 '* ~y THE DOCTOR LUZ * 30 ~****~~*******~.**~*~~

40 FOR L~:'I!!HIC000l0 '~HCi451 IIIIIIiII

50 REA D ~'$,;: IP e K E L, ~ ~IAl ( ~I &.W" +,A$ ) III:iiiII

60 NEXT 70 DEF USR~&HC000 B0 PRINTHRO~~R PROGRAMA ?N 90 A$~ I NiP UfS CU 108 IF A$~"SU THEN A~USR~0) ELSE END 1000 DATA CD~C3~00~21~3C~~I.l1~00 1010 DATA .0,01~0~,.0~CD~5C~00~3E 1020 DATA 07,lE~38~CD~93~0.~3E.0a 1030 DATA iE~.F~CD~9a,00~SE~09.CD 1040 DATA '3700~3E~0A~CO.93~00.26 li50 DATA .1~2E.02tCD~C6~00~CD.76 i060 OATA t0~CD.'F~00.FE,~A7C8~FE 107. DATA IC72B~.FfFE~lD~28~21,FE i0~0 DATA IE~28~65~FE~20~CA~C8pC0 1090 DATA 18~OD~DD~21~tBTCi~3A~2A 1100 DATA CI~16~.0~5F~~DT19~DD~7E 1110 DATA 00~C6~0l~DO~77T00~IS~t7 1120 DATA DD~21.1B~CI~3A~2A~CI~16 1130 DATA 00~5F~DD~19~OD.7E~00~D6 1140 DATA 0i.OD,77~00~1S.Bl~3A~2B

B I DlIIIRlf.1 liliECo!(EMD!IiIDA ~

tL I ,nglJagem BII'SI'I: MSK - PI:&91 nas 144 ill 1518. A~rGfgndando-sB roD MSX --tapltu~o 5. llll!lllilal~nr:nl die HlIilIlIl ~a fitS)!: ~ lP'algl' rlU 1441 1''11.

'91S

3 .• 1 ... IliUi,S ~ CIS C" PROGR.IIIIS

o pilii' iii 91 ramail'bill ~ II III I lust r'li.'! lim t r pi co U'5D tile

mulf~,ro,eSSlml~t~ dS5 mt,u~~8$ MSK. ~nq~&~,~ ~~'cuta ~, t~ref~5 de prat,ss~mento marmels de ~m mi,r~. 0 MS~

podls •. 'S ImUi W 11111nmeln UI. 11:11 IiIIC:Ultu m,us i, c: U" Aplalrl;,S II

trtulo ~e 'xlm~ll. U$imOS um p'mtesSame~tD ~em !~mp~es. que c@~sistl i'l~iS em mijst~~' ~a tegliQ "ntra~ dl 'Ila alg~~s n~mlr09.

Nlte qUI a Gada 1/54 ,eguftdl nUINII'1i! I I~ i In tie r r,omp' il dllOI pilltl'ii!l IqUI! IQ :1$1 ,~r ~rlgram!~G. fnqUID~~ ~ g'rado~ pro!r~mi~ilil. I processamenti narm~~

'II' plr (I lUI s s am'e,n to

ador d. a0ns ,.ss; e '9iOI~S u; e e u fa ,iii tOln t i n,ua,.

P$Ct0)~·e2a.·:GI(i0)~N04~9Mb@SdU P$Cii)~Uo4c2~4u;G~'li)=NQ3aa4eeaH P~(i2)~Ue4~fae4u;G$(12J="o3ao4ce~H P$(13)~~d2DJb4·;&$'13)=u~3gb@4dgU P$(14J~-g4~a8b4u;G$(14'=·~3gb~4d9U Fig; (i5r)I",,,U~14"1:4,~ o:'3b8:!l!i,4"~;: GI$ (i5):=:"'IQ3ao4c:dllll

PI (il!i)I,,,,,,I~':!lI1I4~ f'NS:gl.4.'#: Gi$~. iG,}="'11J4eg"b~'~_

:11:'901 :Ui0 :H!0 1:30 ~,40 15,0 IjM3 17121 1BI@ 1910 t.!00 2:1.1 220 :!130 2410, :;!:S0, 26'01 27'110' 29,0

2901 3100 310 3201 330 340 '3'510 360 3110 380, 39'0

1:1'

a,--

4001 dn 4l.01 4201,

p$(2)~N~4oa#~Q$'2J=-r4c3'"

P!Ii ( a ) ~""':~40'~e 2d 4~"; &'1I(S ) =11!f 4L64a'o4c ea. P$(4)~~e4~i8e4U;&~C4)=No3ao4cea" P$(5)~=d2~3b4"';&SC5,=uQ39bo4dmU p$(6J=Ng4~a8b4N;&~(6)=·oS9b04~!N

, $1 i( '7 )=,,104,1: 2Q::J:a4'''' '; ,Gil ('7)' =of#I~JaD'4;ce~'Y '$ U;:)~Ua4. 9 HeJ:irl41C' ,; Gil (ie!) :::::;11,df':a.o':5ld~w

'$, ('9)=ub ~g'H4"'1; '&1 (' ) =1;'oI4iggn.tl!~15dn

~'

'_' II1II

RIE'TUiRN

P'

600 6,:10' 620, 630 640 650

f( ... J("I"i IF K=~l4 THEIN IK~2 PLAY P$ (Ii(" .,I~I$I( K ) __ "'""-~~ RETURN

Ell Elt IICRAF ~:I II ElfDtEICO,III,~ ,

3i_B - "'S I C'I, ,I:IL EAT,fiR III

Se vuel flvlr ,urtostdade ,m siber ~omo sari a

IIhl C8 do iilRO' 39ge. lHis't,a l1li a II dl II II' SIBI!! MSX so I tlU' iI

Ilm'1I911I18iQio.

Dlg~te 0 program. 8 5~g~~, e owta seu MS~ -GumpondmH• OOlndo v0ci nio ig~intar rnals, digitI CONTROL f' S,TOP.

s~ voci. por~m. t~¥B' paelimeJa I ~ur*Dsl~i~e, ou~a atentamente e verlf~que ~~i h' um certo ~adr~1 e illgum~s passagens gl~~ils. Atl~il a serlGio dos n6me,~s areat~rlo5 qUI est~~ sob 8 m6s~ca 6 fe.ta petD micro segundo uma rrg~~1 regra m~t8m'tita.

1'00 IPLAY "S'0MB000~"~''''S'0M800'0''':'' p ""S0M80,0,,0'1' 110 L$=pLu~STR$(INT(RND(-TI~E)*31'*2+2) 120 Xi=L$+#N#+STR$(INT(RNDC-TIME1*60» 130 Y$~L$+#Nu+STA$(INT(RNO(-TIHE)*30.50' )

140 Z$~L$+uNu~STR$CINT(RND(-TIHE).'6.ae) ),

150 P~AY X$~YI~Z$ 160 GOTO i 10'

A Icomp'l!Ils I Q:5io do ulem:p II 0' Ii nt i h!. 111-5,!!!1 "'A OR'DEIM DO C,lOS'" Ell CI ·a mil ilm em t '01 (!! .. AILllEGRO V I 'Y#liCIt:. CON UNI P III I GO DJ PAZZfA~. 5e yoti gllSer altlrlr" resras muda a I~nh& 188 (tentln~' ci~tros envelope., e as Iinbas 128 ~ 148. mU~8nda 8 ~i'tr~buieio d~s ~ota.. l~mbll'e-sB. PQr~m. que u argUminto do N RI 'LaY ni~ pode III t r ,itP'ISSar 918.

L emblr ami, 'of ilmQi'!1Hjl u;,emp I ~ dlo 'f f S 1'1l1ii!1 JI,alME'S JEI\NS

(2 mlca~o, imortils ac~rre~tados a urn plina p~~ toda a II't!!1' n I dadlllll C 81bllllwoilli 'I lIieSln,d:D UII'I'III ·SJ(I:na t a d'e: IB,EETIHOiWE~I'~. t~nh8 Plcll~~11 , f~q~e esperandD a obra prim~ ~o s~u IM'5i)l'

!91!SI

[xtetuanda-sl alguns r!rms prlvr~.g~~'GS qUI 'il o ehamado ~~uvl~1 ibSQI~tl~. a m~larla das ,essG~s tel uma ~erta ~~'iculdadl 1m ~~~ntifit~r urn~ nGta m~slca~ to~ada I~dlvi~~a~mentl.

A5~lc~~r m 50m da nlt~ I ~ma tlc~a d~ p1amo ou a uma p05i~~o na ~art~t~ra m~slca~ SI 'ar~a i~~~i ma~s Idlfhi I.

Para 'r~~n~r 5eu Iu~~d~ e s~a meltura de ~irtltu~i. digitI ~ ,r~gr!ma a 5e9U~f. Para fazer a no f!l "'51J1D I r" I!DIUI "',gle:5ce:r'''' ~ II!i II II esea 1 a mlu's ~I cilil bal!i~a us~r as lec1~5 dl 5eta ~~ra elma I seti para balio. Uma VII 15~al~ida ~ ~~tl. ~a5tB IPertar a ~irri de

li'i~~S ~ari G~vlr tiD &Qm. .

100 P$(i)~NDQ Cn:P5(2)~HR~

lie P~(3)~N~1 EN;P~(4)~#FA

120 ~$(~)=-SOl G·;P~(6)=uLA

130 P$(7)=uSI eN

140 COLOR 15~1,1:SCREEN 2~~0 150 OPENuGRP:~AS H1

160 PRESET(31~t10'

170 PRINT"I~NOITAUA NOTA CIFIAh i 80 FOR C ... 0 101 l.

190 FOR L=63+4&.C TO P5+48*C STEP S 200 LINE(0~L'-C255~L)

210 NEXTL~C

220 FOR 1=1 TO 26 230 0=23+8*1

240 PRESET(OT1S2-4*I)=PRINTNi7CHRI(1)+

CHR$(7J)

250 LINE(D~5'-(D+6~2lJ~~B

260 IF IHOD7~2 OR JMDD7~6 THEN 280 270 LINECD-3~5)-(D+i.15)~~BF

2·,9'0 NEXT I

290 LINE(3.~15t)-(3B~15t):LIHE(126~103)

- ( 134 ~ H,~'3) ; L I NI:: ( 2:2~~ 55) - (,2'37. 5:n _

3'10"10 II;H; ,~=~$el.5S 12LHUEifiUi+2 ~ + i H'iIf f r~' 2M-:t ~ +2HI-iI.I.II!m :2 T .lfhf! 7 - t 1H2112M" i ~ -:2:E4U2HD :til.61H1~~

3110' Ip·RESiEI( l4 ~ 86) :ID1'~,AIW DI$ _I

32,0 PRESlEr! 14~. 87) : m~,AIW D1 $ ..

33,01' 1[)1:2i'="IC15S12LHUE[WU1T:2.~Tii'l1'i!i' 1.'t.2M-i ~ "1"3113,2-

q

340 PRESET(14~120):D.AW D2$

35;0' PR.ES:C:'f ( 1.4 , 121 ) ~: 1[1'IRlli!t·W 02$1:~ IFlSiET (27 ,. 115 ' = PSEJ (27 ~.123)

In Il UlmIlIF.I RIE~IJIiIDlIilII. I

lll'llllg.aglBml a,ul t MSI( - IPig Ilus 11119 I 1 e1 . G,U r SIll III e Bas lie M5M 'i. 1 ~ I U I iIIl I.

Apn,fig ndllndo~sl Ina M:sIX ~ UP f t u • DIS.,

" 101

Você também pode gostar