Jogos e Aplicativos em Basic Apple
Jogos e Aplicativos em Basic Apple
Jogos e Aplicativos em Basic Apple
~~
~M4{Gh~HMI[oE3
A utilizacao dos computadores pessoais em atividades ludtcas e crlatlvas vem eon· quistando, a-eada dia, urn grande nurnero de adeptos, fascinados com as possibilidades destas aplicacoes. . Neste aspeete, 0 autor fez uma pequena. mas interessante mostra de alguns dos diversos recursos graficos do ..BASIC APPLESOFT" . Programas comentados e textos expllcativos. trazem inf.ormac;6es valtesas ae leitor, que encontrara neste livro uma proposta de divertimento. sem que seja esquecldo 0 lado serio da programac80. o autor: Mario Folll, Engenheiro Civil. Analista da area de repasses do Banco Itau S.A., onde desenvolve sistemas de anallses econcmtee-ftnancetras e de tnformaeees de apaio a gestao. em microcomputadores Itautec 1-7000.I: tarnbem instrutor de lingua~ (gens de programacao e usuarlo de urn
APPLE II.
Copyright
1985
MARIO FOlLi
BRASIL EM INFORMATICA
Coie9i0
INDICE Montando figuras de alta resolu~ao em tabelas de formas . 9 Montando as figuras . 9 Montando as tabelas de figuras . 10 - Observa~iio importante . 11 Montando 0 diretorio . . . . . . . . . . . . . . . . . . . . . . . 11 Obtendo os eodigos hexadeeimais do diretcrio . 13 J ogando tudo na memoria . 13 Programa criador de formas . 16 Programa para mudaneas de bases numericas . 19 Programa Appletelas . 25 Utilizando 0 Appletelas . 26 Dieas de utiliza~iio .. . . . . . . . . . . . . . . . . . . . 26 - Dica 1: tela com detaIhes piscantes . 26 - Dica 2: tela sobrepondo tela . . . . . . 27 28 Defini~.iio das Iinhas do programa .. . . . . . . . . . .. Appletelas . 29 Letras Pequenas . . . . . . . . . . . . . 36 Letras Grandes . . . . . . . . . . . .. '. . . . . . . . . . . 41 Coqueda . 55 56 Programa coqueda inieio .. . . . . . . . . . . . . Kaboom ., . 73 Funcbes das instru~Oes . 73 Base de Centauro . 82 Defini~o das linhas do programa . . . . . . . . . . . . . . 83 logo de Palitinhos . 92 Programa - Palitinhos . 93 Grafieos Prismaticos . . . . . . . . . . . . . . . . . . . 101 105 Teelado musical .....•.......................
MONTANDO FIGURAS DE ALTA RESOLUCAO EM TABELAS DE FORMAS Montar figuras em tahelas de formas pode parecer urn pouco complexo a principio, mas na realidade, depende de poucos coneeitos, os quais tentarei aqui transmitir de uma maneira simplificada, para que mesmo os iniciantes em programaeiio possam se utilizar deste maravilhoso recurso de seu "APPLE" ou "TK.2000". Basicamente temos quatro passos a seguir: - Montar as figuras e suas tahelas. - Montar 0 diretorio das figuras. - Jogar tudo na memoria do computador. - Elahorar 0 program a em BASIC para visualizar as figuras. MONTANDO AS FIGURAS Devemos elahorar as figuras a serem mostradas no video, em uma folba de papel quadriculada ou milimetrada, utilizando apenas as linhas des quadradinhos para formar os desenhos (e proibido, por exemplo, tra~ar diagonais ).
9
Para se ter uma n098.0 de tamanho, basta ver que tanto 0 "APPLE" como 0 "TK 2000" possuern resoIU9ao grafica de 280 pontes na horizontal, por 192 na vertical. Cada uma das quatro linhas que formam urn quadrieulado, corresponde a urn destes pontes, portanto, se 0 leitor desejar ter urna not;:ao exata de como seu desenho saira na tela, basta obter urn papel quadriculado de 280 X 192 quadradinhos, com tamanho igual a tela de video, 0 que quase pode ser conseguido com uma folha de papel milimetrada normal, que possui um total de 280 X 190 quadradinhos,
modifiear, caso voce tenha cornetido algum erro na in. trocluc;8.o dos rnovimentos. Digite 0 (zero) se nao houver erro, 0 computador apresentara a tabela do desenho ja codificada em hexadecimal, com op~ao tamhem para decimal.
Observat;io importante
Cada byte da figura formado por dois vetores de movimentos, sendo que urn byte 00 (zero, zero) indica final de figura. Como 0 codigo dos movimentos para cima sem desenhar 0 (zero), niio podemos efetuar mais de um movimento sem desenho nesta direc;ao, sob pena do restante da figura ser ignorada pelo computador.
Carregue-o na memoria e informe ao cornputador todos os movimen tos (I = cima; M = baixo; K = direita e J esquerda ), iniciando em urn ponto qualquer, que sera tornado como eixo da figura.
Nas demais dire~oes, este problema nfio oeorre, logo tambem devemos estudar antecipadarnente 0 caminho a ser percorrido na formataeiio da figura, afim de nao zerarmos nenhum byte. Apcis obtermos as codifieaeoes psssamos para a etapa de montagem de todas as figuras, do diretorio.:
que 0 primeiro ponto [movimento) fornecido ao computador, sera 0 eixo da figura e, como existe no BASIC APPLESOFT a mstruciio ROT, que define rota~oes das figuras, a posieao inicial do desenho devera ser estudada com anteeedencia, caso haja a inteneao de obter efeitos visuais atraves de rotaeoes das figuras. Cada movimento
MONTANDO 0 DIRETORIO
diretorio, como 0 proprio nome diz. urn Indice que informa ao computador as posi~oes onde cada figura estara alocada. Fazendo analogia, podemos considerar 0 diretorio como sendo 0 indiee de urn livro onde, atraves de uma simples visualiza~ao, vamos direto a pagina de interesse. No nosso diret6rio, cada item informa~ respectivamente : a) POSiC;80 final de cada figura ret6rio ).
urn movimento
composto
de duas
11
b) Uma informa98o qualquer, que e desprezada pelo computador e que vamos deixar como um par de
zeros, Assim, como 0 indice de um livro eneontra-se no inieio do mesmo, nosso diretorio tambem anteeedera as codifica~s das figuras, sendo a primeira mformacao a ser passada ao computador.
Portanto, 8 bytes.
neste
sera
de
OBTENDO OS CODIGOS HEXADECIMAIS DO DIRETORIO Desc~ao Decimal 03 08 08+05=13 13+10=23 23+12=35 Hexade. cimal 03 08 OD
Como exemplo, vamos supor que serao elaboradas tres figuras, com as seguintes codifica90es obtidas do CRIADOR DE FORMAS. Figura +1 :2D F~a +2:2D Figura +3 :25 36 24 3F 36 PO 25 25 3C 3C 3F 3E 36 35 00 2C 25 3F 2C 2D 3C 3F 37 36 00
WW XX yy
ZZ
LL
Nlimero de Figuras Final do Diret6rio Final da Figura +1 Final da Figura +2 Final da Figura =If 3
17
23
Devemos medir 0 comprimento de cada ligura em bytes. Cada byte corresponde a um parzinho de earacteres da eodifieaeiio em hexadecimal. Portanto, teremos: Figura +1: Figura +2: Figura +3: diretdrio, entao, fieara YY 00 ZZ 00. WW XX 5 bytes. 10 bytes. 12 bytes. WW 00
Finalmente, suhstituindo os oodigoe hexadecimais, temos 0 diretorio mont ado da seguinte maneira: 03 00 08 00 OD 00 17 00 Note que a posi9io final da Ultima figura 000 faz parte do diretorio, isso porque 0 computador sabe onde ela terminara, tomando como posi9ao final, 0 primeiro byte nulo que encontrar na sua codificag80. OBS.: Vace podera obter os hexadecimais utilizando-se do programa BASES NUMERICAS ou atraves de tabelas de conversOes existentes em alguns livros. JOGANDO TUDO NA MEMORIA
aSS1ID:
xx
00
yy
ZZ
mimero total de figuras (hexadecimal) posi9io final do diretorio (hexadecimal) posi~io final da figura +1 (hexadecimal) posi~io final da figura .2 (hexadecimal)
primeira coisa a se penear, e a posi2io da memO. ria onde colocar nossa tabela. Na realidade, ela pcdera ficar em qualquer local disponivel, desde que nao entre em conflito com 0 n08SOprogram. em BASIC. Como exemplo, vamos coloca-le a partir da posi. 980 24576 (decimal) que corresponde a $6000 (hexa. decimal).
12
13
(LM no caso do
Digital 0 endereeo inicial cia tabela em hexadecimal, seguido por dois pentos ( :) Entrar com as codifica!;Oes, iniciando pelo diret6rio, depois a Figura '*' 1, Figura *' 2, Figura '*' 3, em blocos de 8 bytes (opcional) sempre precedidos de dois pontos ( :). No n0880 exemplo teremos: ]CALL-151 6000 :03 :2D :3C :2C :36 (APPLE) 00 08 00 24 3F 36 3C 3F 3E 25 3F 2C 36 00 >LM (TK-2000) OD 00 17 00 00 2D 25 25 36 35 00 25 2D 3C 3F 37 <RETURN> <RETURN> <RETURN> <RETURN> <RETURN> <RETURN>
Devemos eoloear no programa duas instru~es "POKE" antes das instru!toes de desenho. Sao respeetivamente: POKE 232,0 e POKE 233,AAA onde AAA en. dereeo decimal da tabela de formas, dividido por 256. No nosso exemplo AAA AAA = 96 Se heuverresto 232, resto}, Digite ]10 ]20 ]30 ]40 ]50 ]60
0
24576/256
==
=>
Se desejar Iistar para verifica!;Oes, digite: 6000L <RETURN> Se desejar apenas ver os c6digos, digite: 6000.6030 <RETURN> Para deixar 0 monitor e retornar ao BASIC, tecle CTRL + C ou CTRL + B ao mesmo tempo e pressione < RETURN> . Para gravar a tahela de formas em disquete fa~a seguinte:
0
POKE 232,0 : POKE 233,96 HGR : HCOLOR= 3 : ROT SCALE == 1 DRAW 1 AT 30,90 DRAW 2 AT 110,90 DRAW 3 AT 200,90
BSAVE nome, A endere~o inieial em hexad., L comprimento em bytes. Portanto, como exemplo: BSAVE DESENHOS, A$6000, L35 PRONTO!!! Agora s6 resta elaborar um programa em BASIC para vermes 0 resultado do trahalho na tela. As figuras sao aeessadas por DRAW mimero da figura AT X, Y onde X e Y sio as coordenadas a partir das quais 0 computador efetuara os desenhos na tela, partindo sempre do eixo.
"RUNIZE" 0 programs e veja 0 resultado. Se tudo correu bern, surgira na tela urn quadradinho, uma bolinha e a letra F. Mude a Iinha 30 para SCALE = 5 e "RUNIZE" novamente. Voce vent que 0 bolinha nfio e exatamente 0 que parecia ser e que a Ietra F ficara melhor caracterizada. Experimente efetuar varia~oes nas rota90es e escalas, simultaneamente ou nao, que os efeitos conseguidos sao muito bonitos, principalmente quando trabalhamos com figuras simetrieas, com eixos centralizados. Se voce desejar, podera coloear as tabelas das figuras na memoria, diretamente do BASIC, bastando para isso, "POKEAR" todos os codigos (do diretorio e das figuras) em decimal, a partir de urn endereeo livre, tambem em decimal.
15
Este artificio e bastante interessante quando nao desejamos separar as tabelas do program a principal. Mios a obra! erie suas figuras usando de muita imagina!;ao que 0 result ado e compensador. 10 20 30 40 50 60 70 REM REM PROSRAMA REM *-CRIADOR DE FORMAS REM REM TEXT:: HOME ::A= I:H$ = "0123 456789ABCDEF"; INVERSE PR INT •• &c&e&c&&c8c&c8c&:&:&:&&&&&e&8c8c8c8c& &e8c8c&i8c&8c8c8c8c8c8c&8cIc&8cSc": PRINT II 8c&Sc =I=CIMA =J=ESQ. =K=DIR. =M=BAIXO Iclclc" VTAB 2: PRINT IISc CRIADOR DE F ORMAS TECLE 'F' AO FIM Sc": NORMAL POKE 34,3: VTAB 5 DIM B$(SOO),H$(500) REM =====---======== REM BS(I) == BINARIOS REM H$(I) HEXADEC. REM ================ VTAB 23: HTAB 1: PRINT "VETO R It;; A (I, J, K, M) : ( BET AS. PRINT A$,")"~ IF A$ = .. I. THEN B$(A) = 1100 I 0". BOTO 220 IF'A$ = "KIt THEN B$(A) 1100 SOTO 220 If"AS == "M" THEN B$(A) = "01 0": aOTO 220 If"A$ "J" THEN,B$(A) == 1101 1": aOTO 220 If"A$ = ·'F THEN 270
PRINT CHR$ (7): GOTO 150 VTAS 23: HTAB 28: PRINT "DES ENHO: (II;: GET A$: PRINT A$;
II)";
********************** * * *********************
IF A$ = "S" THEN B$CA) = "I" + RIGHT$ (B$(A),2) 240 IF NOT (A$ = "N" OR A$ = "S '1) THEN PRINT CHR$ (7)::SOTO 220 250 IF ALT ) 0 THEN RETURN 260 A = A + 1: PRINT:: PRINT:: GOTO
150
270 280
80 90 100 110 120 130 140 150 160 170 ISO 190 200
PRINT CHR$ (7): PRINT CHR$ (7): INPUT ItVETOR PI ALTERAR (O=NENHUM) ";ALT IF ALT ) 0 AND A > ALT THEN XX = A:A = ALT: PRINT: PRINT : GOSUB 150:A = XX: SOTO 270
It :
II ;:
REM =================== REM JUNTANDO OS VETORES REM =================== HOME: A = A -' 1: VTAS 3 PRINT "&c&8c TABELA DA FIGURA EM HEXADECIMAL 8cSc"" 340 Z = 1: FOR 1 = 1 TO A STEP 2 350 B$(Z) = "00" + 9SCI + 1) + BS (I):Z - Z + 1: NEXT 360 Z Z - 1: IF LEN (9$(Z» < B THEN 9$(Z) = 000 ••+ 9$(Z)
10
1-.
370
FOR I = 1 TO Z:A$ LEFT$ ( 9$(1),4): aosus 490:H$(I) = RIGHT$ (B$(I),4) A$fA$ BOSUS 490:H$(I) = H$(l) + A$ ~ PRINT H$(I);" , NEXT ~ PRINT "00": VTAB 22: HTAB 1: PRINT "DESEJA A TABELA EM 0 ECIMAL (SIN)? ".
II ••
380
390
IO
16
17
== "s"
THEN 680
630
IF"A$ < > tlN" THEN 400 VTAS 22: HTAB 1: PRINT '·DESE JA TABELAR DUTRA F"IGURA (S/N )? II;:GET A$ 430 IF"A$ = "5" THEN RUN 440 IF"A$ < > I·N'· THEN 420 450 POKE 34,0: END 460 REM ====================== 470 REM DINARIO/HEXADECIMAL 480 REM ===""'=========.======== 490 IF"A$ = "0000" THEN A$ = "0·· I RETURN 500 IF'A$ = "0001'· THEN A$ = "III : RETURN 510 IF'A$ = ··0010" THEN A$ = "2" : RETURN 520 IF'A$ = "0011" THEN A$ = "3'· : RETURN 530 IF"A$ = "0100" THEN A$ = "4" : RETURN 540 IF"A$ = 1·0101'· THEN A$ = 11511 : RETURN 550 IF"A$ = "0110" THEN A$ = '·6·' : RETURN 560 IF"A$ == "0111·· THEN A$ == 117" : RETURN 570, IF"A$ = "1000" THEN A$ = IIS"I : RETURN 5S0 IF"A$ = 111001'· THEN A$ = "g" : RETURN 5'90 IF".$ = "1010" THEN A$ = "A" A I RETURN 600 IF'AS = "1011" THEN AS = "S" I RETURN 610 IF'A$ = "1100" THEN AS = "C" : RETURN 620 IF"A$ == "1101" THEN A$ = "0" : RETURN
18
IIE"
640
650
= ••1111
THEN A$
= ..F"
REM
HOME : VTAB 3: PRINT 11&&&&& TABELA DA F"I6URA EM DECIMAL HOME : VTAB 5: FOR I == 1 TO I:D = 0 F'DR II = 1 TO 2: F'OR Z2 = 1 TO 16 IF" MID$ (H$(I),Il,l) = MID$ (H$,Z2,1) THEN D = 0 + (Z2 1) 16 (2 - ZI) NEXT: NEXT: PRINT D;",II;: NEXT : PRINT ··0·': BOTO 420
&Mklk&"
:====================
10 20 30 40 50
60
70 80 90
REM
*******************
::: "*%
* *
100
MAL
= ..
..
**"'
II
..
'0
..
19
140
150
= 1'1$(6) .. =
",$(5)
II
II
DECIMAL OCTAL
/ OCTAL
160 1"1$(7)
" =
II
/ DECIMAL F'IH
II
rOR I 1 TO LEN (DC.):X$ HIO$ (OC$,I,l):X ASC (X$ ): IF X < 48 OR X > 57 THEN SOSUB 1030: SOTO 310 330 NEXT:D = VAL (DC.) 340 DX 0 / 16:X (0 - OX 16)
320
170 H$(8) = 180 190 200 210 220 230 240 250 260 270
II
FOR I
00
": ONERR
BOTO 11
1 TO 7: VTAB I
INVERSE : FOR I 1 TO 3: VTAB I: PRINT H$: VTAB I + 20: PRINT MS;: NEXT: NORHAL YTAB 2: HTAB 6: PRINT I'CONVE RSAO DE BASES NUMERICAS" VTAB 22: HTAB 6: PRINT "USE AS SETAS PARA SELECIONAR" INVERSE =A 6: YTAB A: HTAB 8: PRINT H$(A / 2 - 2) VTAB 22: HTAB 34: SET X$IX ASC (X$) IF'X 8 THEN SOSUB 10l0:A = A - 2: IF A 4 THEN A = 18 IF X 21 THEN SOSUB 1010:A A + 2: IF'A 20 THEN A
= =
= =
IF X = 8 OR X = 21 THEN 1020 IF X < > 13 THEN SOSUB 103 0: GOTO 230 YTAB 22= HTAB 6: PRINT "$(8) :D$ ON A / 2 - 2 GOTO 300,400,50 0,600,700,800,900
280
290 300 310
= ....
REI"I DEC/HEX GOSUB 1040: GOSUe 1050: YTAB 11 : INPUT .,NTRAR DEC IMAL ",; E DC.
****
****
+ 1:0 OX:D$ MID$ (H$,X ,1) + D$ IF OX < > 0 THEN 340 IF LEN (0$) = 1 OR LEN (0$ ) = 3 THEN 0$ = 110 + D$ VTAB 13: PRINT '"HEXADECIMAL. .: ";0.: GOTO 1060 VTAB 12: PRINT ·'HEXAOECH"IAL. .: ";0$: SOTO 1060 REM HEX/DEC SOSUB 1040: sosue 1050: VTAB 11: INPUT .IENTRAR HEXADECIMA L .. HC$ ; FOR I = 1 TO LEN (HC$):X. = MID$ (HC$,I,l):X ABC (X$ ): IF X < 48 OR X > 70 THEN SOSUB 1030: SOTO 410 IF X > 57 AND X < 65 THEN SOSUB 1030: SOTO 410 NEXT:D =0 FOR II 1 TO LEN (HC$): FOR l2 = 1 TO 16 IF 1'110$(HC$,ll,t) MID$ (H$,Z2,1) THEN D D + (Z2 1) 16 A ( LEN (He$) - Zl) NEXT: NEXT VTAB 13: PRINT "DECIMAL ••••• ••••• : ";0: GOTO 1060 REM DEC/BIN SOSUB 1040: SOSUB 1050: VTAB 11: INPUT nENTRAR DECIMAL II; DC$: IF DC$ =: "0" THEN BN$ =: "'0": GOTO 580
II
****
****
=
****
****
20
21
520
FOR I = 1 TO LEN (DC$):X$ = MID$ (DC$,I,t):X = ASC (X$ ): IF X < 48 OR X > 57 THEN GOSue 1030: 60TO 510 530 NEXT:D = VAL (DC$):BN = 32 768:BN$ = "":X = O:Y = D: IF D > &5535 THEN 1100 540 IF Y < BN THEN BN = BN / 2:B N$ = BN$ + "0": GOTO 540 550 X X + BN:BN BN / 2:BN$ BN$ + "1": IF X < D THEN Y = y-2 BN: 60TO 540 560 IF BN > 1 THEN BN = BN I 2:BN$ = BN$ + "0": GOTO 560 570 IF LEFTS (BN$,l) "0" THEN BN$ RIGHTS (BNS, LEN (B~$ )1): GOTO 570 580 VTAB 13: PRINT ..INARIO ••••• B .: "jBN$: GOTO lOGO 600 REM BIN/DEC 610 BOSUB 1046: GOSUB 1050: VTAB 11: INPUT "ENTRAR BINARIO "; BN$:L LEN (BN$):Z = 1 620 FOR I 1 TO L:XS = MID$ (B NS,I,l):X = ASC (XS): IF X < 48 OR X > 49 THEN GOSUB 103 0: BOTO 610 630 NEXT:D 0: FOR I = 1 TO L 640 IF MID$ (BNS,I,l) = "0" THEN 660 650 FOR J = 1 TO L - I:Z Z 2 : NEXT :D = D + 1:Z 1 660 NEXT: IF D = 0 THEN D 1
710
720
GOSUB 1040: Bosue 1050: VTAS 11: INPUT "ENTRAR DECIMAL "; DCS FOR I = 1 TO LEN (DC$):X$ = MID$ (DC$,I,l):X = ASC (X$ ): IF X < 48 OR X > 57 THEN GOSue 1030: GOTO 710 NEXT :0 = VAL (DCS) DX D / 8:X = (D - OX 8) + 1:0 = DX:D$ = MID$ (TS,X,I) + DS IF DX < > 0 THEN 740 VTAS 13:· PRINT ..CTAL .•••••• O .: ";0$: SOTO 1060 REM OCT/DEC GOSUB 1040: SOSUB 1050: VTAB 11: INPUT "ENTRAR OCTAL ";HC
****
=
****
****
= =
****
= =
RIGHTS (8Ns,1> = "0" AND L > 1 THEN D = D + 1 VTAB 13: PRINT "DECIMAL ••••. .: ";D - 1: 60TO 1060 REM DEC/OCT IF
****
****
FOR I 1 TO LEN (HC$):X$ = MIDS (HCS,I,l):X = ASC (X$ ): IF X < 48 OR X > 55 THEN Bosue 1030: BOTO 810 830 NEXT :D 0 FOR ZI 1 TO LEN (HCS): FOR 840 Z2 1 TO 16 IF MIDS (HCS,Zl,l) = MID$ 850 (T$,12,1) THEN 0 D + (Z2 1) 8 A ( LEN (HCS) - Zt) 860 NEXT : NEXT D 870 VTAB 13: PRINT ..ECIMAL •••• : ";0: GOTO 1060 900 REM FINAL 910 GOSUB 1040: GOSUB 1050 920 NORMAL : END 1000 REM SUBROTINAS 1010 NORMAL : VTAB A: HTAB 8: PRINT M$(A I 2 - 2): RETURN 1020 INVERSE : VTAS A: HTAB 8: PRINT M$(A / 2 - 2): GO TO 230
= =
****
****
****
****
22
23
1030
TO 15:P = PEEK ( NEXT: RETURN VTAB 6: HTAB 8: PRINT 2): NORMAL: RETURN I: HTAB RETURN
1050 1060
FOR I
8 TO 18: VTAB
MS(B): NEXT:
VTAB 22: HTAB 7: PRINT "< P RESSIONE QUALQUER TECLA )"j: GET XS 1 TO 10: PRINT 1070 VTAB 6: FOR I MS(B);: NEXT: GOTO 150 1100 REM ERROS 1110 NORMAL 1120 VTAB 13: PRINT IIESTOUROU I I ! !": GOSUB 1030: GOTO 1060
PROGRAMA
APPLETELAS
****
****
Com '~APPLETELAS" voce podera criar os mais variados tipos de telas, para as mais variadas aplicaedes, como por exemplo, a apresentaeiio de um programa de sua autoria, um timbre para papel de carta, e muito mais. E ~ llnagUnar. . . . Para a elaboracdo de telas, sao utilizados dois tipos de Ietras, previamente definidas em tabelas de formas, cuja eodifieaeao em hexadecimal (listagem), acompanha este artigo. Se voce dispde do programa ..APPLE MECHANIC", podera dispensar 0 trabalho de digita!i;iio destas tahelas, uma vez que os dois tipos de letras (grandes e pequenas) foram obtidas do program a referido. Neste caso, voce devera proceder aos seguintes passos para copiar as tabelas em urn novo disquete : a) BLOAD (com 0 b) BSAVE (com 0 c) BLOAD (com 0 d) BSAVE (com 0 ]SMALL STANDARD, A$6000 disk do APPLE). LETRAS P,A$6000,L$600 novo disk). ]WESTERN,A$7000 disk do APPLE). LETRAS G,A$7000,L$1020 novo disk).
25
24
Agora basta apenas digitar 0 programa "APPLETELAS" e usa-Io, Se voce nio possui 0 "APPLE MECHANIC", entio . devers digitar as duas tabelas e, em seguida, proeeder aos passos b) e d). deseritos acima, para salvar as tahelas digitadas no novo disk.
UTILIZANDO 0 APPLETELAS
programa, quanto a sua utilizar;ao, nio devera apresentar maiores dificuldades, uma vez que eselareeimentos acompanham 0 proprio programs em cada uma de suas fases de uso. Possui rotinas de gravar;ao, Ieitura, dele!Jio e 00pressao normal e invertida de telas. Possui os modos desenho e Ietras (grandes e pequenas ), podendo as cores de fundo, das letras e dos desenhos serem definidas pelo proprio usuario,
c) Finalize 0 programa e digite NEW. d) Entre com 0 programa abaixo e RUNize..o. ] 10 HGR : HGR2 : TEXT : HOME ]20 PRINT CHR$( 4 h"'BLOAD" TELA l,A$2000" ]30 PRINT CHR$( 4 )tBLOAD TELA 2,A$4000" ]40 POKE -16304,0 : POKE -16297,0 POKE -16300,0 ]50 FOR 1=1 TO 150 : NEXT ]60 POKE -16304,0 ~ POKE -16297,0 POKE -16299,0 ]70 FOR 1= 1 TO 150 : NEXT : GOTO 40 Se tudo correu bern, voce observars. as duas telas alternadamente, com um pequeno intervale de tempo entre as trocas (Iinhas 50 e 70)As instrur;oes da linha 40 fazem com que 0 computador mostre a pagina 1 de alta resolur;ao ($2000), onde foi carregada a TELA 1. As instrur;iies da linha 60 fazem com que 0 computador mostre a pagina 2 de alta resolur;ao ($4000), onde foi carregada a TELA 2. Diea 2~ tela sobrepondo tela Experimente elaborar duas telas distintas, agora
DICAS DE UTILIZACAO
Para que voce possa tirar 0 maximo proveito deste aplicativo, aqui vao algumas dicas complementares, Iembrando que a sua Imaginaeiio e a melhor de todas. Diea 1: tela com detalhes piscantes
Vore podera obter efeitos muito bonitos, procedendo da seguinte maneira: a) Crie uma tela qualquer e salve-a com 0 nome de TELA 1. b) Acrescente alguns detalhes nest a mesma tela e salve-a com 0 nome de TELA 2.
26
com os nomes de TELA A e TELA B. Digite os seguintes comandos no modo direto : ]HGR ]BLOAD TELA A ]BLOAD TELA B . A primeira tela sera desenhada no VIdeo ao mesmo tempo que
carregada do disk.
27
ira
menu iinieo na
Efetuam a sele~o das funImprimem as telas (normal e invertido). Selecionam a cor de fundo. Selecionam
0
10 20 30 40 50 60 70
80
REM HGR: TEXT ::HOME ::VTAB 3: HTAB 6: PRINT "CARREGANDO TABELAS DE LETRAS";D$::: CHRS (4) PRINT D$;ltBLOADLETRAS P,A$60 PRINT D$;ItBLOADLETRAS G,AS70
00"
ii II
REM
*A
tipo de 'Ietra.
00"
Seleeionam a cor dos desenhos. Selecionam a rota~ao das Ietras. Definem as variaveis de posi~Oes.
Efetuam desenhos no video. Desenham as letras no vi, deo. Apagam Ietras e cursor do video. Rotinas de opera~0e8com Disk-Drive. Finaliza~io do programa.
0
90 MENUS"::: 123456CSLATF":CF ::: : 0 L$ == p••: HCOLOR= CF::HPLOT 0,0: CALL 62454: GOSUB 700 100 CQ = 31CL = 3: FOR Z == 1 TO 4 0: ONERR BOTO 250 110 VTAB 1: HTAB Z: PRINT CHR$ (127) 120 VTAB 3: HTAB Z: PRINT CHR$ (127) 130 VTAB 20::HTAB Z: PRINT CHR$
135 140 150
-28
160
VTAB 18: HTAB ZI PRINT CHR$ (127) NEXT: FOR Z == 2 TO 19 HTAB 1: VTAB Z: PRINT CHRS (127) HTAB 40: VTAB Z: PRINT CHRS (127); NEXT
29
(127)
170
180
190
200
VTAB 2: HTAB 12: INVERSE: PRINT APPLETELAS II:VT AB 4 : HTAB 12: PRINT MENU DE E SCOLHAS ": NORMAL VTAB 6: HTAB 3: PRINT "MODO DESENHO •• (I) CATALOG DISK •• (C) II:VTAB B: HTAB 3: PRINT "MODO LETRAS ••• (2) SALVAR T ELA ..... (S)II VTAB 10: HTAB 3: PRINT "CDR DE ~UNDD •• (3) CHAMAR TELA •• .(L)": VTAB 12: HTAB 3: PRINT "COR DE LETRA •• (4) APABAR T ELA ••• (A)II VTAB 14: HTAB 3; PRINT "CDR DESENHOS •• (S) TROCAR NOME •• .(T)"; VTAB 16: HTAB 3: PRINT "DEF'.ROTACOES •• (6) FINAL PR 06R ••• (~)1I VTAB 19: HTAB 3: PRINT I, U1PR ESSAD DE TELAS: CTRL+P au CT RL+I" POKE 232,0: POKE 233,96: POKE 34,20: SCALE= 1 REM --------------------REM - SELECAO PELO MENU II
**
**
iI
270 280 300 310 320 330 400 410 42g 430 440 450 460 500
510
PRINT CHR$ (1) ON I GO TO 1000,2000,300,400, 500,600,3000,3100,3200,3300, 3400,3500 VTAB 22: INPUT "COR DE FUNDO (0-7) ? H;C~ I~. CF < 0 OR C~ > 7 THEN 300 HCOLOR= CF: HPLOT 0,0 CALL 62454: GOTO 250 VTAB 22: INPUT "COR DE LETRA (0-7) ? II; CL IF CL < 0 OR C~ > 7 THEN 400
") THEN 420 IF L$ = liP" THEN POKE 232,0 : POKE 233,96 IF L$ == "G" THEN POKE 232,0 : POKE 233,112 GOSUB 700: GOTO 250 VTAB 22: INPUT nCaR DESENHOS (0-7) ? u;CQ IF CQ < 0 OR CQ > 7 THEN 500
"8
REM
252 2~4
TEXT: POKE 34,20: HOME: VTAB 3: HTAB 20: BET X$: ~OR·I = 1 TO 12: I~ X$ MID$ (MENU $,1,1) THEN 270 IF ASC (X$) 16 THEN PR. 1: PRINT CHRS (9);"S": PR. 0: SOTO 250 IF ASC (XS) = 9 THEN PRtt 1
---------------------
260
: PRINT CHRS (9); ·'SI": PR. 0: GOTO 250 NEXT: FOR I = 1 TO 15:P PEEK ( - 16336): NEXT: SOTO 250
SOTO 250 VTAB 22: INPUT "ROTACAO LETR AS (0 ou 48)? ";RT IF NOT (RT = 0 OR RT 48) THEN 600 BOSUB 700: BOTO 250 IF RT = 0 AND L$ = ··P·· THEN PX = 7:PY = O:Xl = O:Yl 8: X2 = 5:Y2 = 8:XD = S:YS = 0 IF RT == 48 AND L$ == I.p" THEN PX == o:PY == - 7:Xl == 8:Yl = O:X2 = 8:Y2 S:XD O:YS == 5
=-
30
31
720
IF RT =: 0 AND l$ "6" THEN PX = 12:PV O:Xl O:Yl = 1 S:X2 = 10:Y2 15:XD 10:YS
730
740 1000
1010 1020 1030
IF"RT 48 AND L$ == flG THEN PX O:PV = - 12:Xl = 15:Yl 0:X2 = IS:Y2 10:XD == O:YS =- 10 ROT= RT: RETURN
=-
II
=-
REM - DESENHAR lETRAS REM ------------------POKE - 16304,0: POKE - 16 297,0: POKE - 16300,0 2040 IF RT 0 THEN X O:Y = 0 2050 IF RT = 48 THEN X = O:V = 1 2010 2020 2030
2060
REM
REM
--------.--------
POKE - Ib304,O~ POKE - 16 297,0: POKE - 16300,0 1040 VTAB 21: PRINT U(A)PAGANDO (D) ESENHANDO (ESCl MEN UrI] CIMA [J] ESQ. [K] DI
REM
1050 1060
x=
X$
R.
=";Y;"
IF X$
O:Y = 0: HCOlOR= CQ VTAB 24: HTAB 14: PRINT "X= fI;X;" Ii;: HTAB 21r PRINT fly
Ii;:
[M]
BAI XO";
VTAB 22: PRINT "CTRL+[ IlSUS [J1ESQa [K1DIRe [M]DESCE R(A1PAGAR TECLE PI ESCREVER [ESC1=MENU"; HCOLOR= CL: HPLOT X + Xl,y + VI TO X + X2,Y + Y2 VTAB 1: HTAB 1: GF-T X$:A ~ ASC (X$) IF A 27 THEN SOSUB 2800: BOTO 250 IF A = 9 THEN BOSUB 2800:Y
59
IR
Y-1
=
=
<
> <
X X
IF A =: 11 THEN
X-I
F
Q
HCOLOR= C HCOlOR= C
IF X$ IF
110
11
THEN
ASC (X$)
BOSUS 2800:X V + PV IF A 21 THEN BOSUS 2800: X X + PX:Y = Y - PY IF A = 1 THEN 2700 IF A < 32 THEN 2500 BOSUB 2BOO: BOSUS 2600: HCOlOR= CL: DRAW A - 31 AT X,Y:X = X + PX:Y Y + PY IF RT 0 AND X + X2 > 279 THEN X O:Y = Y + PX + 2: IF L$ = "Gil THEN Y = +2 IF RT = 0 AND Y > 159 - VI THEN Y == 0
IF A
X+1
X - PX:Y
= =
8 THEN
= =
32
33
IF RT = 48 AND V + V2 < 0 THEN = 159:X = X - PY + 2: IF L $ = liS" THEN X = X + 2 2240 IF RT = 48 AND X > 279 - Xl THEN X = 0 2300 GOTO 2070 2500 IF X + X2 > 279 THEN X = 27 2230
V
2510
2520
9 - X2 IF V + V2 < 0 THEN Y
15
-X
RETURN VTAB 21:: HTAB B: INVERSE: PRINT TECLE A .LETRA A APASAR ";:: NORMAL:: GET AS:A = ASC (A $): IF A < 32 THEN 2700 2710 VTAB 21: HTAB 8: PRINT GOSUB 2600: HCDLOR= CF: DRAW A - 3 1 AT x,V: GOTO 2070 2800 HCOLOR= CF: HPLOT X + Xl,y + V1 TO X + X2,V + V2: RETURN
2700
II II II:
2610
2070
GOTO 2070 IF X < 0 OR X > 279 OR Y < o OR Y > 159 THEN POP:: SOTD
BET X.: GOTO 250 VTAS'22: INPUT "SALVAR:[RTl ANULA.NOME:II;N$ 3110 IF LEN eNS) = 0 THEN 250 3120 PRINT D. + IiBSAVEn + NS + .A$2000.L$2000" 3130 BOTO 250 3200 VTAB 22: INPUT .1 CHAMAR::[RT] ANULA.NOME:fI;NS 3210 IF .LEN eNS) = 0 THEN 250 3220 PRINT DS + IIBLOAD + N$ 3230 GOTO 250 3300 VTAB 22: INPUT "APASAR:[RTl ANULA.NOP1E:";N$ IF LEN (N$) = 0 THEN 250 3310 3320 PRINT D$ + "DELETE" + N$ 3330 SOTO 250 3400 VTAB 22: INPUT IINOVO NOI'1E: [RTlANlLA R,N$ 3410 IF LEN (N$) - 0 THEN 250 3420· VTAB 23: INPUT .1 VELHO NOME: [RT1ANlLA 3430 IF LEN ev.) = 0 THEN 250 3440 PRINT + !lRENAt1E"+ VS + + N$. 34~O acTO 2:50 3500 VTAB 22: HTAS 10: FLASH ::PRINT CONf" UtE: FII'1 (SIN) ?tt;: NORMAL
3060 3100
II II
n.
"'v.
",
II
II
POKE 44452,5: POKE 44605,2 VTAB 24: PRINT DS + "'CATALO 6 3050 PR INT .1< PRESS IONE QUALQUER
t1
TEXT:
IF X$
<
>
TECLA)" ;
35
=*
LETRAS
PEQUENAS
01 00 01 01 01 01 01 02 02 02
02
DO F9 2F 5£ 7F
BS
03 03 03 03 03 04 04 04 04 04
ED 1C 5A 9F 09 OF 4C 80 CA
00
00 01 01 01 01 01 02 02 02 02 03 03 03 03 04 04 04 04 04 04 05 05 05 05 01 92 16 96 20 1F 3F 3F
00 09 00 EO 00
OA 39 65 91 C2 FE 30 6E AE EB 17
5A
01 01 01 01 01
01.
97 DA 08 3C 04 73 04 AS 04 DO 04 07 05 38 05 6F 05 90 05 C9 05 00 00 00 00 4E 00 52 01 20 1E 6E 4E BF 00 77 71
02 02 02 02 03 03 03 03 04
1A 01 42 01 6E 01 9A 01 01 01 OF 02 3B 02 80 02 BD 02 F5 02 29 03 6e 03 A8 03 E6 03 16 04 4A 04 82 04
82 04
6108-' 00 6110- 17 6118- 00 6120- 00 6128-- 20 6130- lE 6138- 35 6140- 00 6148- lE 6150- 09 6158- 31 6160- F6 6168- B7 6170- 4E 6178- 17 6180- AD 6188- 40 6190- 6D 61'38- 00 6IAO- BF' E.1AB- 20
OF 15 46 7F A6 C9 00 92 00
04· 05
05
05 05 05
00
OA
00 00 3E 1F 17 01 00 15 3F 49 00
6D 60 11 DF 77 09 lE 40 3A OF 4E 29 4E 00 2D A9 IF 6E 1E 17 OD 1E OF OE 60 4E 00 00 36 96 ...J":" 01 00 00 09 17 36 15 OE 4E 00 00 15 OE 36 1E 17 4E 09 35 09 80 1F IF OE 2D 17 20 15 1F IF 4E 4E 6E 00 FF 8'::' 3A 3F 77 .::. 49 00 00 92 sz 8A 56 00 37 ""'? 89 3F 40 00 52 4'301 00 00 '32 92 00 00 00 49 11 17 1E 1E 56 49 09 00 35 29 DF 33 40 35 IF 1F 2E FE 1B OE 2D 4E 01 00 31 77 36 BE 2D 4E 00 00 29 AD OF 73 49 lE 1E 2E 2D 75 01 00 DF 2D BE 3E 4E FE lB OE 6180- L~D 4E ()1 00 3E 4'3 3E 17 61B8- 00 FE 3~3 2D 2D IE 76 0'3 s iuo- 00 ..... ~' ::m 20 DE lB 2E 20 61 C8-- 15 36 DF 73 2D 4E 01 00 61DO- 11 0'3 :2D DE BB 40 3A 3F 61D8-- ErE (1'3 FE 1B OE 20 4E 01 61EO- 00 2E 20 2D BE 1E 17 3E. E.1E8- 4E 49 00 00 2'3 29 AD DF 61FO- 33 40 F1 3F 17 4D 31 OF 61F8- 73 20 4E 01 00 2E 29 AD 6200- OF 33 40 31 3F 77 09 1E 6208- OF 2A 75 49 00 00 52 12 6210- 16 96 09 00 3E 52 92 F6 6218- 40 00 00 B7 49 3E 17 2D 6220- 20 35 3F 3F 3F OE 2D 20 6228- F5 1B 77 4E 49 00 00 09 6230- 12 20 20 OE 9B 20 20 '36 6238- 0'3 00 2A 49 15 FF 13 2D
C"'-i ;::J~ ~t;:"
36
37
6240- 20 AD 6248- lE 37 6250- AO OF 6258- 00 09 6260- FF 2A 6268- 20 IE 6270- iF 17 6278- FE 1B 6280- 2D AD 6288- 40 31 6290- 4A 29 6298- OF 73 62AO- AD DF 62A8- 17 20 62BO- DE 1B 6288- 20 4E 62CO- 18 6E 62C8- 01 00 6200- 40 35 6208- 4A 4D 62EO-' 3F" 6E 62E8- 00 00 62FO- 20 4E 62F8- 36 OF 6300- 40 F1 6308- OF 6E 6310- 36 36 6318- 31 FF 6320- 09 FE 6328- 49 40 6330- 1F 6E 6338- 00 00 6340- 31 OF 6348- 4E 01 6350- 40 Fl 6358- 00 09 6360- OF 33 6368- 4E 00 6370- 4D Fl
3F 4E 73 09 2D 4D
40
6E DF DF AD 20 6E 75 6E 00 11 49 OF 31 09 09 00 73
3F 49 09 20 2D 09 31 09 33 33 OF
4E
37 AD ~D 33 1B 1E 09 4E DF 6E 1E 09 4E 00 2D 75 01 37 00 00
1B 6E 09
31 09 11 00 3F 29 73 OF FE 20 00 20
3F 00 1E 3E F5 00 DF 4E 40 20 33 01 OF 00 3F
4A
2E 00 B6 37 3F IF 33 00 Fl 75 36
00
20 09 4E 2D 3F 09 2D 00 3F 09 40
09
31 OF 33 29 FE 18 09 29 AD 33 40 31 00 09 20 3F 37 36 29 AD OF 00 00 1E 00 09 20 3F 37 00
6E 31 4A 20 37 36 2D 20 36 4E OF 33 75 01 40 31 6E 09 36 36 49 31 01 00 37 00 00 09 00 00 FE IF 4E 00 60 31 5E 09 OF 33 DF 73 AD OF 4E 49 33 4D DF OE AO OF 15 OF
2D 29 09 3E OE 15 20 09 37 00 11 20 OF 20 20 DE 49 36 00 3F 4E 17 36 09 15 36 4D 6E
00
6378638063886390-
1F 4E 40 20 33 01 31
60
33 6E
09 4E 00 00 09 29 AD OF 33 4D 3A 77 09 FE 18 OE 20 4E 01 00 09 2D 20 DE 36 36 76 49 00 00 40 40 6398- 31 DF 33 4D 31 OF 33 4D 63AO- 31 OF 73 2D 4E 01 00 09 63AS- 40 31 OF 33 40 31 OF 33 6380- 40 Fl IF OE 4E 09 00 49 6388- 4D 31 DF 33 40 31 iF IF 63CO- 6E OD 3E 1F 37 40 ZI 01 63C8- 00 92 40 31 DF 73 00 1E 63DO- 17 OD 15 DF 33 4D 71 01 6308- 00 4A 40 31 OF 73 00 IE 63EO- 36 76 49 00 00 2D 2D 2D 63E8- BE IE 17 1E 2E 2D 75 01 63FO- 00 4A 20 2D DE 3B 2E 3E 63FB- 2E 3E 2E 2D 75 01 00 35 6400- 72 15 OE 15 56 01 00 77 6408- 2D 2D 3E 2E 3E 2E 3E OF 6410- 2A 20 75 01 00 37 49 15 641B- 3F 17 20 2D 15 3F 3F 3F 6420- 4E 20 3E 37 2D 3E SF 49 6428- 01 00 09 92 92 49 11 3f 6430- 3F 40 49 00 00 09 76 96 6438- 52 01 00 00 522D 35 DF 6440- 33 4D 31 FF 73 60 4E 00 6448- 00 35 36 20 AD DF 33 4D 6450- 31 OF 33 20 75 09 00 50 6458- 52 2D DE 33 76 2D 4E 00 6460- 00 00 49 31 DF 2A 2D FE 6468- 18 6E 09 FE IB OE 2D 75 6470- 01 00 3F 52 20 15 DF.33 6478- 2D 20 OE lB OE 2D 75 01 6480- 00 DF 09 F5 33 8D 3F 77 6488- 36 4E 09 00 11 52 2D 35 6490- OF 33 40 31 3F 77 09 IE 6498- 3F 4D 09 00 3E 36 20 AD 64AO- DF 33 40 31 DF 33 4D 71 64A8- 01 00 29 16 36 36 4E 00
38
39
64BO64B864CO64C86400EA0864EO64E864FO64F86500--
6508651065186520- 52 2D 6528- 13 20 6530- 20 F5 6538- 1'-:0 .:.. 40 6540- 73 60 6548- 31 OF 6550- 09 00 6558- OD 00 6560- 00 OF 6568- 1F 17 6570- 4D 31 6578- 09 1E 6580- 20 2D 6588-' 4E 00 6590- OE 76 6598- 36 6E 65AO- FE 2A 65A8- 1F IF 6580- 20 2D 65B8- 20 35 65CO- 3F 3F 65C8- 40 40 6500- 00 00 6508- 00 DB 65EO- 3F 1F 65E8- OF OB 65FO- 1F 3F
40
00 00 09 9E 35 36 FE. E.F 09 00 29 36 4D 1E 1F 2E 15 1F 6E 71 01 00 29 35 36 36 17 2D 4E 00 00 35 12 2D AD 1F 1F 5E 00 FE 1F 6E 00 4E 00 00 09 1.., .:.. 2D 15 OF 6E 31 OF 6E 71 01 00 :2'3 • ..J ..... 20 15 OF 33 40 31 OF 73 20 4E 01 00 FF 1''') AO DF 33 40 Fl ..... 20 3F 37 6E 49 01 00 FF 20 35 DF 33 40 31 3F 77 09 6E 00 00 35 1'-' 00 AD ..::. DF 37 36 4E 49 01 00 2';1
....
"')
C'·-I -...I":;"
02 00 01 02 02 03 03 04
F5 DB OE 2D 75 09 00 2D 33 76 75 01 31 OF 33 40 4E 00 00 OB 33 40 F1 1F 35 1"'- 4D 31 FE 1F OE OD 12 40 F1 1F 4D 71 01 00 OF 33 4D 31 3F 4D 09 00 1E 17 1E 17 00 29 0'3 F5 75 01 00 15 00 00 00 AD 4E 09 00 3E 4E B1 92 49 20 35 3F 3F 3F 3F 37 20 37 2D 20 75 CO 40 43 00
.")c
-.
19 00 00 00 00 00 00 00
1B 3F 2E 2D 00 AD 3F 4E 09 2D 35 3F 2A 6D 09 2D 3E 3F 77 20 OD 2D FT FF
02 AO 15 95 42 05 79 16 AC 61 C6 10 49 00 37 6D 3E 01 37
DO 00 09 00 E9 30 01 59 01 89 CF 01 E1 01 F3 3A 02 4A 02 58 7A 02 B9 02 E4 57 03 84 03 BE 28 04 68 04 A7 CA 04 EA 04 03 05 4A 05 68 05 99 05 03 06 3A 06 6C 06 CA 06 OC 07 2C 07 SA 07 AB 07 F2 08 6E 08 9E 08 09 09 49 09 6F 09 A3 0'3 15 OA 49 OA 73 OA CA OA DB OA F6 OB 29 09 39 OB 63 OB BC 09 Fl OB 1D OC 76 OC A6 OC BD OC FE OC 15 OD 4C OD AS OD 01 00 F9 OE 3E OE 5D OE 89 OE DE OE 09 OF 3A OF 7A OF 8D OF A5 OF 07 10 07 10 07 10 13 00 00 00 00 89 92 92 92 92 12 35 37 35 37 35 37 35 97 2A 3E 56 01 60 29 3E DF 37 6D OF B7 92 92 92 4A 00 09 09 60 29 3E 60 29 3E DF FF 2A
00 01 01 02 02
03 04
05 05 06 07 07 08 09 OA
OA
09 OC OC 00 OD OE OF OF 10 00 00 35 00 29 49 DF 2D
41
7108- 20 20 20 3E 3F 3F 3F 3t 7110- 4E 60 29 3E OF FF 2A 20 7118- 20 20 20 3E 3F' 3F" 3F" 3F 7120- 4E 60 29 3E OF" 37 6D 29 7128:'" 3E OF B7 49 49 09 00 49 7130- 49 35 FF 2A 20 2D 35 3F" 7138- 3F 3F 37 60 35 FF 37 20 7140- 20 20 15 3F" 3F 3F" 4E 60 7148- 35 FF FF 13 20 20 20 F5 7150- 3F 3F 3F 4E 29 3E 56 49 7158- 01 00 29 29 60 09 35 FT 7160- 3B 3F 37 60 60 35 FF 3F' 7168- 3F OE 20 00 35 BF 35 BF 7170- 60 89 3F" 1F BF 60 20 20 7178- 3E IF FT BF 60 29 20 F'5 7180- 3F OF 3B 56 49 49 09 00 7188- 09 09 20 AD 3F 3F" 37 20 7190- 20 35 F"F 3B 2E 00 20 1E 7198- 3t 37 20 3E 3F 17 20 00 711.0- 60 29 1E 3F FF 19 37 60 71A8- 09 20 80 3F' 3F 3F" 3F 37 71BO- 20 2D 60 20 3E OF 3B 3F 71B8- 56 49 49 09 00 15 29 15 71CO- 3F 37 20 35 3F' 2E 1E B7 71C8- 92 92 52 49 00 00 09 09 7100- F'5 SF" 35 37 35 37 35 37 35'77 AD El7 09 00 7108- 35~7 71EO- AD AD 77 35 37 35 37 35 71E8- 37 35 37 35 BF F5 B7 49 71FO- 01 00 52 52 49 11 FF 98 71F8- GO 29 40 F5 FF FF 77 20 7200- 20 F5 3F FF 13 2D 20 20 7208- 20 F5 1B 3F BF 20 2D AD 7210- FF FF" BF 60 29 4D F5 DB 7218- B7 49 49 00 00 92 92 4A 7220- 09 35 37 35 FF 98 2D 2D 7228- 20 2D 35 3F 3F 3F 3F' 77 7230- 49 35 37 35 87 49 49 03 7238- 00 OA 92 92 92 OA AD 3F
7240- 37 20 7248- 00 92 7250- 3F 87 7258- 92 92 7260- 97 49 7268- SF 35 1270- SF 35 7278- 00 09 7280- 3F BF 7288- F"F OB 7290- FF 1B 7298- 38 OF 72AO- 18 FF 72A8- 3F- 3F 72BO- F5 3F 72B8- 35 49 72CO- 20 3E 72C8- 2E 35 7200- 11 3F 7208- 20 35 72EO- 4'3 09 72E8- 3F 3F 72FO- 35 3F 72F8- 3E FF 7300- 3F 3F '7308- 09 35 7310- 2D 2D 73113- B7 49
3F 92 4A 4A 00 35 35 20 20 60 60 60 20 3F 3F 87 29 35 3F 3F 3F 2E 3F" 3F 3F 3F 00 AD 3F BF DF DB DB 2A 17 20 3F 3F 2D 35 49 49 7320- 2D :?D AD 3F 7328-- 20 20 20 35 7:330-' 4'3 4'3 2'3 3E 7338- 35 3F 3F 77 7340- DB 9B 6D 49 7348-- 3F 3F 77 20 7350- 3F B7 49 49 7358- 0'3 2D 3E 3F 7360- 1F 3F 17 2D 7368- 3F 2E 4D 09 7370- 3F 3F 2E 2D 35 92 92 92 00 BF BF 09 20 37 37 37 37 3F
2E IE 6F" 09 12 20 20 3E 49 00 00 92 3A 37 20 3E . 49 49 49 35 BF 35 SF 35 B7 49 49 09 2D AD 3F 3F 20 20 35 3F 09 60 35 FF 29 40 35 FF 60 09 35 F"F" 60 09 20 3E OE 20 20 20 4'~ 49 09 00 3F FF 2A 2D 4E 29 35 3F 35 3F 2E 6D 3F 2E 20 20 3F 3F' 56 49 09 20 20 AD 20 20 20 2D 77 49 49 2'3 20 20 FS 3F 1E 37 60 49 3F 3F 37 20 3F' 3F' 3F' 3F 01 00 40 09 3F 3F BF 20 3F OF DB 77 FF 98 20 2D 49 2D 3E OF 29 35 3F 3F 20 2D F5 3F 09 00 4'3 4'3 17 20 2D 3E 4D 35 FF 18 6D 3A 3F 3F 2D 2D 2D DE
42
43
AD 3F 37 2D 35 3F B7 00 2D '20 20 2D 2D 3F 3F 3F 3F 37 2D 2D 20 F5 DB DB 3B 2E 40 3A 3F 3F 3F 2E 20 20 7:3AO- :2D AD 3F OE 35 FF DB DS 73A8- 2A 4D 49 2D 3E 3F 3F 3F 73BO-, 3F OE 2D 20 2D F5 3F 3F 73B8- B? 49 49 09 00 BF 0'3 20 73CO- 2D AD 3F 3F 3F SF 20 20 73C8- 2D 2D ':''''' FF DB 3B 37 60 ,.J..J 7300- 4'3 11 3F 3F IF 37 20 20 73D8- 2D 2D 15 3F OF IB 3F 2E 7:3£0- 4D 4'3 29 3E DF DB 3B 2£ 73E8- 60 49 20 3E 3F' 3F' 3F' 3F' 73F'O- OE 2D 20 20 F5 3F 3F B7 73F8- 49 49 09 00 3F 20 20 20 7400- 20 35 3F' 3F 3F '3F 37 20 7408- 20 20 20 35 3F DF 08 77 7410- 49 09 20 IE 3F 17 20 1E 7418- 3F 2E 3E 2E 15 3F 37 20 7420- 35 3F B7 49 49 09 00 20 7428- 09 20 2D AO 3F 3F 3F BF 7430 .... 20 20 20 35 3F OF 1B 20 7438- 3F 2E 40 49 29 3E FF OB 7440- 3F OE 2D 20 2D 35 3F 3F 7448- 3F BF 20 40 09 20 3E OF' 7450- OB 38 2E 60 49 20 3E 3F 7458- 3F 3F 3F OE 20 20 20 F5 7460- 3F 3F 87 49 49 09 00 20 7468- 09 20 20 AO 3F 3F' 3F 8F 7470- 2D 20 2D 20 35 3F OF 1B 7478- 3F 2E 4D 49 29 3E OF DB 7480- 3B 2E 60 49 20 3E 3F 3F 7488- 3F 77 20 2D OD 35 FF OB 7490- DB 2A 40 49 20 3E 3F 3F 7498- 3F 3F OE 20 20 20 F5 3F 74AO- 3F B7 49 49 09 00 3A 92 74AB- 4A 3A 37 20 3E 87 4A 3A
0'3
74BO74B874CO74C87400740874EO74E874FO74F87500750875107518752075287530753875407548755075587560756875707578758075887590759875AO75A8758075B875CO75C875DO-
37 92 3A 00 40 20 OE 00 3F 3£ 00 20 20 4E
20 4A 37 92 89 20 20 92 3F 3F 00 15 20 17 3F F5 20 3F 3F OE 20 20 2E 35 FF 38 FF 00 3F FF DB 37 60 2E B7
3F 1B 20 37 00 35 3F OE
4'3 4'3
49 00 09
3B
35 FF 3F 00 3F 3E FF 08 37 3F 3F
B7 3F 92 3F 2D IE 20 1E 09 2D 20 20 2E 40 3F 37 35 3F 92 4A 2E 60 20 20 IE 56 35 3F 40 AD F'F OB OB 37 3F 2E 38 3F 00 20 3F 2E OB 37 37 20 60 49 49 20 20 20 49 49
3E 3A 20 92 3F 2D 3E 92 3F 3F 92 3F
B7 37 3E 4A 3F 35 OE
92
49 20 77 09 3F 3F 96 2D 2A 95 4A 3F 3F 37 20 20 49 35 B7 29 11 20 49 37 3F 37 50 20 56 20 20 60 2D 29 3E 20 49
00 3E F5 3E 3F 3F 49 20 20 4A 49 3F 3F 96 15 20 35 77 49 35 3F 1E 01 20 OF 20 49 40 49 20 20 49 20 3E 3F F5 01
00 B7 GF 17 17 3F 49
2D
92
4A 01 20 20 3F
00
35 20 2D 4'3 49 15 37 2E 2D 3F 3F 49 09 3F 3F 3E FF 3F 9F 11 3F 49 01 3F 2E 3F 3F 3F 3F 00 29 AO FF SF 6D 20 2D AD 3F 20 35 49 49 AO 3F 20 20 29 IE 15 FF OF DB
3F 3F
3F 3F 00 49
44 45
750875EO75E875FO75F87600750876107618762076287630763876407648765076587660766876707678768076887690769876AO76A876BO76B876CO76C87600760875EO76E8-
09 20 2E 49 20 00 3F FF 37 49 3E F5 00 3F OF 3E 35 20 49 3E 20 20 3F 49 3F 3E 49 20 35 20 00 FF F5 FF 3F
20 2D 3£ 35 20 00 3F 1B 60 35 3F 3F B7
3F
20 20 2E 3F 1E 00 37 37
49
76F'O- FF
1B 3F 3F 35 09 3F 3E 35 37 00 3F OF 11 35 3F 1E 49 18 FF DB 3F DB IB 3F 09
FF 3F 3F 20 37 37 3F 3F 3F 00 3F OF 3F 20 00 3F 1B 3F FF 3F 3F 20 3F DB 3B 3F 3B 3F FF 00
15 20 3E 3F 3F 20 2D 60 35 DB 3F 3F 20 20 35 37 3F
3F 49
3F IB 3F 35 49 17 3F FF DB 3F 3F 60 37 3B 2E 3F 2E 37 IB 3F
3F 3E 2E 3F 3F 20 20 49 FF 37 37 56 20 20 37 35 3F 3F 20 37 37 37 3F 09 20 2E IB 38 3F 56 09 2D 2E 20 2E
3F OF 3E 3F 56 20 20 35 OB 60 20 49 20 20 20 37 2E 3F 20 20 35 35 B7 20 20 3E 37 2E OE 49 20 60 40 2D 4D
3F 1B 2E OE 49 15 20 FF 37 09 20 49 3E 20 20 60 20 56 20 20 37 37 49 20 20 2E 60 60 20 49 35 09 49 2D 49
AD
17 3F 60 20 49 3E DB 60 20 20 09 3F 3E 20 49 20 49 2D 2D 20 AD 49 15 20 40 09 49 2D 00 3F 20 35 35 35 3F 20 49 3F
SF
7710771877207728773077387740774877507758-
4D 49
20 60 09 3F B7 49 20 20 35
3F 37 2D 2D F5 3B 2E 3E 2£ :3E 2E 3E 2E 80 3F 3F 37 2D 20 35 3F 3F B7 49 49 00 00 35 49 29 20 20 3E 3F 3F 2E 20 20 DE 37 35 37 35 37 35 FF DB 13 60 49 35 3F 3F 3F 77 2D 2D F5 3F B7 49 49 09 00 50 2D 6D 29 2D 3E 3F DF 3F 37 20 60 29 2D DE FF T160- 1B 37 6D 2'31 1E FT 37 2D 7768- AD 3F 3F 2E 40 AD FF IB 7770-' 37 60 49 60 3A 3F FF 38 7778- 3F 2E 20 4D 2D 2D 3E 3F 7780- FF 3B 3F 56 49 49 49 01 7788- 00 35 2D 35 3F 37 2D F5 7790- 37 35 37 35 37 35 37 6D 7798- 09 35 3F 3F 3F 37 2D 20 ' 77AO- 20 35 3F 3F 3F B7 49 49 77A8- 09 00 37 20 40 49 29 35 77BO- 3F OF OB 3B 37 20 GO 4'3 77B8- 20 F5 3F OF 18 3F 2E 20 77CO- 4D 20 35 3F FF 38 3F 2E 77CB- 00 20 6D 35 FF 3F FF 37 Tl00- 60 29 4D 35 FF 3B OF 37 7708- 60 49 09 AD 3F FF DB 3F 77EO- 37 20 6D 49 2D 35 3F FF 77E8- DB 3F B7 49 49 49 49 00 T1FO- 00 49 2D 6D 09 2D 35 3F 77F8- FF IB 3F 37 20 60 09 20 7800- F5 FF IB 3F 37 2D 60 09 7808- 35 FF 3B IF 37 60 6D 29 7810- 3E 1F FF 38 2E 4D 60 35 7818- 3F FF IB 3? 60 09 20 35 7820- 3F OF 3B,'3F :2E 20 40 29 7$28- 35 3F OF 3B 3F 56 49 49 7830- 49 01 00 3F 09 2D 20 15 7838- 3F 3F 3F 17 2D 20 20 20 7840- 3E FF IB 3F 2E 40 49 35
46
47
7848785078587860786878707878788078887890789878AO78A87880788878CO78C878DO780878EO78E878FO78F87900790879107918792079287930793879407948795079587960796879707978-
3F 2D 20 3E 49 35 FF 35 FF DB FF FF 3B 3F 3F 3F 1F 3F 3F 49 20 2D 3F 2E 20 DB 37 6D 37 60 49 37 20 20 4D 09 AD 20 4D 2D 56 49 49 20 20 15 2D 2D 2D 77 20 2D 29 3E OF 3E 3F 3F IE 3F 3F 87 20 20 3F SF 37 FF 38 DF 37 35 37 SF B7 49 60 29 2D 20 60 29
15
FF OB 3B 3F 56 2D 2D 35 3F 37 49 20
DB 3B 2E 77 49 15 20 FF 3F AD 49
3B 2E _60 20 49 3F 3E DB 3F 3F
49
2E 40 09 20 00 3F FF 37 2E 37 00 3F FF DB 39
2E
40 49 20 20 00 3F IB 60 20 2D 18 3B 2E 60 20 49 AD 2D 29 1E
49 35 3E 1E 49 37 37 09 20 35 3F 2E 40
29
00 49 3F 17
77 56 20 20 49 20
2D 3E
3F FF 35 3F 49 00 3F 3F 3E OF AO 3F DB 13 3F 77 56 49 2D 2D 20 2D 77 49 AD 3F 49 01 3E 3F 20 1E
2D 49 3F 20 3E 3F OF 38 FF 00 3F OB 3F 6D 20 49 35 2D 35 37 00 DF FF
35 FF 3F 3F 20 2D 6D 20 DE 3F 09 20 2E 40 49 20 20 00 3F 3E DF 3F
3B
FF DB 3F 3F 20 2D 49 IE 1B B7 20 20
4D
49 35
1E
3F
38
00 17 37 77 49 2D 00 3F 2D 37 20 09 3F DB
35 00 3F FF DB 3F 2E 2E 3F 09 2D 35 49 29 20 00 3F 35 35 35 ?D 37 37
7980- 6D 49 35 FF DB 37 60 49 7988- 35 FF DB 37 6D 49 35 FF 7990- OB.:t~7 ~D 49 35 3F DF 3F 0 7998- OE 20 2D f5 3F B7 49 49 79AO- 01 00 20 2D 60 29 2D 3E 79A8- 3F OF 3F 37 20 60 29 2D 79BO- 1E FF DB 37 60 49 35 FF 79B8~ DB 37 60 49 35 FF DB 77 79CO- 60 29 3E OF 77 2D 35 3F 79C8- 37 20 35 3F 87 49 49 01 79DO- 00 49 20 60 49 2D 35 3F 7908- FF DB 3F 37 2D 60 49 20 79EO- F5 FF DB 1B 37 6D 29 40 79EB- 35 FF 3B OF 37 60 29 4D 79FO- 35 FF 38 DF 37 60 29 40 79F8- 35 FF 3B OF 37 6D 20 60 7AOO- 35 3F 3F 3F 3F 37 20 6D 7A08- 29 2D 3E FF DB 3F 56 49 7AI0- 4'3 49 01 00 00 20 6D ~90. 7A18- 20 3E 3f OF 3F 37 20 7A20- 29 2D 1E FF DB 77 60 29 7A28- 1E 3f 77 35 BF 20 AD Ff 7A30- 39 17 60 49 AD 3F Ff 3B 7A38- 3F 2E 20 40 20 35 3F Ff 7A40- jB<3F 56 49 49 49 00 00 7A48- 09 20 50 29 20 3E 3F DF 7A50- 3F 37 20 60 29 2D 1E FF 7A58- DB 3760 49 F5 FF 3B 2E 7A60- 20 20 1E 3F 77 35 37 AO 7A68- 3F 37 20 35 3F B7 49 49 7A70- 01 00 20 20 20 20 20 35 7A78- 3F 3F 3F 3F 37 20 20 2D 7A80- 2P 35 3F OF DB 77 49 09 7AB8- 20 1E 3F 17 2D IE 3F 17 7A90- 20 1E 3F 17 2D 40 49 35 7A98- 3f 3f 3F 3F 37 20 20 2D 7AAO- 2D 35 3F 3F 3F 3F B7 49 7AAB- 49 49 01 00 37 2D 2D 3E 7ABO- 3f 37 20 2D DE 3B 2E 3E
g
49 48
7AB8- 2E 3E 2E 3E 2E 40 3A 3~ 7ACO- 37 20 20 3E 3~ B7 49 09 7AC8- 00 35 35 77 35 77 35 77 7AOO- 35 77 35 77 35 77 35 87 . 7A08- 09 00 20 20 20 3E 3F 37 7AEO- 20 20 3E 2E 3E 2E 3E 2E 7AE8- 3E 2E 3E 3F 37 20 20 3E 7AFO- 3t B7 49 09 00 92 92 4A 7AF8- 09 15 3~ 17 20 20 15 3F 7BOO- 3~ 3F 17 2D 20 20 2D DE 7B08- 3B 37 20 3E 37 20 3E B7 7BI0- 49 49 00 00 92 92 92 92 7B18- 92 12 20 20 20 20 35 3t 7820- 3F 3F 3F 6F 49 49 09 00 7828- 00 29 15 3F 37 20 F5 3f 7830- OE AD 87 92 92 52 01 00 7838- 92 92 OA 20 20 AD 3~ 3f 7840- 3r 37 60 49 35 ~F DB 2A 7846- 2D ZD 35 rr DB 37 60 49 7B50- AD 3~ 3t 3f 3~ 2E 20 20 7858- 20 35 Ff 3f 3f 56 49 49 7860- 01 00 3f 20 3E 37 20 3E 7869- 2E 20 2D AD 3F 3F 3F 37 7870- 60 49 20 3E OF 08 37 60 7B78- 49 29 3E OF DB 37 60 49 7880- 20 3E 3F 3F 3F 3F 2E 20 7B88- 20 20 F5 3F 3F IF 87 49 7890- 49 49 01 00 00 92 4A 20 7898- 20 15 3F 3F 3~ 17 20 2D 7BAO- 20 20 3E OF DB 37 35 37 7BA8- 60 49 29 3E 3F 3~ 3F 77 7B80- 2D 20 20 IE 3~ 3P 56 49 7BB8- 49 00 00 49 49 49 29 35 7BCO- 3F 2£ F5 Ff 08 2A 20 20 7BC8- 35 3F 3f 3F BF 20 40 09 7800- 35 FF DB 3B 2E 40 49 35 7B08- FF DB 3B 2E 60 49 AD 3F 7BEO- 3P 3F 3P 77 20 20 20 20 7BE8- 3E FF 3F 87 49 49 09 00
78FO7BF87COO7COB7C107C187C207C287C307C387C407C487C507C587C607C687C707C787C807C887C907C987CAO7CA87CBO7CB87CCO7CC87CDO7C087CEO7CEB7CFO7CF870007008701070187020-
49 3F 3B 37 OE 49 3F 38 3F 37 00 3F 35 3E FF 3F 3F 37 3F 37 49 40 49 2E 35 B7 F5 37 3f 20 2E 37 20 49 37 3E B7 20 3F
92 17 2E 60 20 49 3F 2E 3~ 20 3F 3F FF 3F
3F 40 2D 3F 60
DB
20 49 DE 37 49 13 35 40 3E 00 60 60 49 2D 2E 49 00 OE
AD
4A 20 20 49 20 01 17 3E 77 35 92 3F OB 3F 9B 77 49 3E 2E 49 3F 35 49 2A AD 01 2D 37 01 2E F5 29 20 49 3E 15 01 20 60
2D 40 20 89 2D 00
2D
9F 29 3F 4A 3F 3B 3F 60 20 09 2E
4D
35
3F 00 35 3F 00 3E 35 00
4D
fF
3F 80 35 00 2E 3F 00 15 29
2D 29 20 3F F5 00 2D 2D 3E 87 20 17 2E OE 49 20 00 20 29 FF 3B PF 00 3F 37 77 77 3F 37 29 37 3F 3f 00 3E 37 AD 3F 40
15 35 F5 3F 3P 49 20 20 2E 49 20 20 60 20 20 20 49 20 35 OB 3F 38 3E OE 20 09 35 37 20 3E
2D
3P PP DB 3F 3F 29
3E
FF fF 35 2E 2D 92 3F 35
20 15 49 20 40 09 60 3E lE 20 15 ff 37 2E 3P 29 35 35 35 37 20 3E FF AD 3P 3F 2D 3E 35 2A 3F FF
3P DB DB 3F B7 AD OF 3E 3P 09 35 09 20 35 3F 3F 3E 3F DB 60 20 56 3E 37 3F 37 35 F5 37 38 FF 37 B7 3E 2E 3F 00 3F 3B
50 51
70287030703870407D48705070587D6070687070707870807088709070987DAO70A870BO70B870CO70C87DDO70087DEO70E87DFO7DF87EOO7E087El07E187E207E287E307E387E407E487E507E58-
35 FF 3B AD 3F OF 60 29 35 4'3 49 49 2A 00 20 60 0'9,2D 49 35 FF 3F FF 3D 35 3F FF 49 00 00 15 3F 3F 35 FF DB FF DB 3B 3F' 3F 3F' 1E 3F 3F !"55 2A.; '32 2A E;D 3F 77 2D 4D .37 50 49 35 40 20 1E 3F 20 DE lB 3F 49 49 00 00 2D 2D 3E 3F 40 29 3E OF 35 F'F' OB 37 3F 3F 77 2D 35 6F 00 00 2D AD 3F 3F F5 DB 3B 2E 37 2D 35 3F 3F 3F 37 77 20 2D 4'3 35 3F 2D F5 3F 00 3E 49 2D 20 3E 2E 3E 2E 2D 20 F5 35 92 2A
00 2D '32 OA
5D
40 40 40 B7 92 77 60 AD 20 49 20 29 35 3E
3F 3F 3A 3F 40 3F 6D
AD
7E60- 09 20 3E FF IB 3F OE 60 7E68- 49 35 FF DB 37 60 4'3 35 7E70- FF DB 37 20 40 20 15 3F 7E78- 3F 3F 3F' 2E 20 20 20 35 7E80- 3F 1F 3F B7 49 49 09 00 7E88- 40 92 2A 20 40 20 35 3F 7E90- FF 3B 3F OE 60 4'3 35 FF 7E98- DB 77 60 29 3E OF 77 20 7EAO- 35 3F 37 20 35 3F B7 49 7EA8- 49 01 00 49 92 2A 20 40 7EBO- 09 20 35 3F FF DB 3F 77 7EB8- 60 49 09 35 FF 3B OF 37 7ECO- 50 2'3 40 35 FF 3B OF 37 7EC8- 5D 20 60 35 3F 3F 3F 3F 7EDO- 77 20 40 20 F5 FF OB B7 7E08- 49 4'3 49 01 00 B7 92 2A 7EEO- 60 49 20 3E F'F DB 3F 4E 7EE8- 60 29 1E 3F 37 20 AD FF 7EFO- 3B 17 60 49 AO 3F OF 3B . 7EF8- SF 2E 20 40 29 35 3F OF 7F"OO- 3B 3F 56 49 49 49 00 00 7FOS- 92 92 2A 60 09 20 3E FF 7FIO- 19 3F OE 50 49 35 FF DB 7F1S- 37 60 09 20 3E 3F 3F 3F 7F20- OE 2D 60 35 FF OB 9B GO 7F28- 49 29 3E 3F 3F 3F 77 2D 7F30- 20 20 1E 3F 3F 4D 49 01 7F38- 00 92 92 2A 20 20 20 35 7F40- 3F 3F 3F 3F 2E 40 09 F"5 7F48"- BF F5 SF 6D 09 35 3F 3F 7F50-" 3F SF 20 20 20 2D 3E 3F 7F58- 3F 3F B7 49 49 49 00 O(l 7F'60- 35 0'3 20 3E 3F 2E 2D DE 7F68- 37 35 SF 35 77 35 37 6D 7F70- 3A 3F 2E 20 3E B7 49 00 7F7S·- 00 35 35 37 35 37 35 37 7F80- 35 37 35 37 35 37 35 37 7F88- 35 6F 00 00 2D 20 15 3F 37 20 35 37 35 77 35 BF 7F''30-
52
53
35 37 35 3F 37 ·2D F5 56 49 01 00 FE 5'") 49 ,'N 89 FF DB BF 2D 50 0'3 7F·BO·3F 1F 3F 3F 37 20 00 7F"B8·- :?D F5 3F FF 1S 37 6D 7FTO-B~3 g.") 5'-' 09 00 3F 52 ..::. 7FC8-- 4'3 8'3 3F 3F 3F 3F 37 7FDO- 2D 20 2D 35 3F 3F 3F 7FD8- 37 2D 20 2D 20 35 3F 7FEO- 3F 3F 37 2D 2D 20·2D 7FE8- 3F 3F 3F 3F 37 20 2D 7FFO- 2D ,...,.,. 3F 3F 3F 3F 37 J 7FF8- 2D 2D 2D 35 3F 3F 3F 8000- B7 4'3 49 49 01 00 00 8008- CO 40 CO 40 CO 40 08 8010- 1 '3 00 00 00 00 00 00 8018- 00 00 00 FF FF FF FF
.L. .,:; v.
7F'387F"AO}FA8-
3F 49
35
2D
49
4'3 2D
3F 3F 35
2D 2D
3F
40 00 00
COQUEDA
Coqueda e um jogo que surgiu quase por aeaso. Lembro-me que estava conversando com alguns amigo! a respeito das figuras que desenh8.vamos quando erisn~s, e dizia serem as minhas pJediletas paisagena com. coqueiros, 0 mar ao fundo e nuvens no ceu (e deaenhava muito mal). Contrastando com eI8U paisageDit t.a:mhem desenhava tanques de guerra, avi6es bombaNeiroI, ca· nhfies e metralhadoras. Nao demorou muito e pediram-me que mOiltrUle como Be desenha no computador. A partir dai, foram lur· gindo foIbas, eaules e nuvens. Alguns dias mais tarde resolvi organizar tudo aqui10, acrescentar outras figuras e dar um pouoo de anima· ~ao it paisagem que ia se formando. Desta maneira surgiu "COQUEDA". Para "rodar" este programa, deve-se digitar as dUM partes que 0 comp<ie separadamente e "RUNIZAR" em primeiro lugar 0 programs ·'COQUEDA INtCIO", poil esta parte alem de conter 88 instru~ do jogo, cuida de fonnatar todas 88 figuras utilizadas, "POKEANDO" 01 vetores de desenho na memoria do computador diretamente do "BASIC".
FF
54
55
A segunda parte, "'COQUEDA", trata do jogo em si. Quem for utilizar 0 gravador cassete para salvar os programas, deve trocar a instru~o da linha 150 da primeira parte para: 150 PRINT "CARREGAR A SEGUNDA PARTE DO PROGRAMA" : END. Ambas as partes estiio documentadas com instru~s REM, 0 que facilitara a localiza~ao de eventuais enos de digita~iio, hem como auxiliara no estudo das £un~s que cada uma das diversas retinas que compOem o jogo executa.
30 40
50
.._ ..
_-
-'--_----.--_-------~
60 70
,I'"
""! II",
ao
90
110
100
REM PROGRAMA 7 REM COQUEDA INICIO B REM 9 REM 10 TEXT: HOME 20 VTAB 1: HTAB 1: PRINT
5 6
REM
*********************** * **********************
120
130
140 150
199 200
VTAB 2: HTAB 1: INVERSE: PRINT C 0 QUE DA COPYR ISHT 1984 NORMAL VTAB 5: PRINT Coqueda e' urn jogo para ser disputadoen tre dois participantes. Cada urn coman-dara' seu personag em <baiano ou baiana),e um p ar de canhoes.H PRINT" Na primeira fase, v oce devera' col hero maior nu mero possive) de cocos que s aolancados do alto de dois c oqueiros.u PRINT Na segunda fase-, su a funcao e' atirarnos cocos, disparando os canhoes.u PRINT " Que-m obtiver 0 maio y numero de pontossera' 0 ve ncedor da partida. '" VTAB 17: HTAB 1: INVERSE: PRINT USE AS SETAS (-- E --) NA 5 DUAS F'ASES II: NORMAL VTAB 19: HTAB 29: PRINT UBoa sorte! ! ~" GOSUB 700 VTAB 22: HTAB 5: FLASH : PRINT ". PRESSIONE A BARRA DE ESPA COS .11: NORMAL: VTAB 22: HTAB 36: GET AS IF A$ THEN 140 POKE 768,3: POKE 769,10: CALL 771: GOTO 110 PRINT CHR$ (1) PRINT CHR$ (4);"RUN COQUEDA
u===
===11:
II
====
II
n*
="
It
II
REM REM
201
REM
===================
===
DIRETORIO
1
===================
===
57
56
299
301
REM
REM
REM ================:;::'" REM === CANHAO ESQ.• == · ~El'1 ================= ==========~========== === TRONCO ARVORE === =================="=
239 240
241
REM
250
DATA 3~9,39,39,39,39, 63, 60, 60 , &9,6?,60 , 63. 60, 39, E.:~.39, 63. 63,39, £.3!, 6~,3~, 63,6;3,63,60,6 _
321 330
REM
REM
3,7,0
259 '260 261 270
REM REM
REI'I
D~TA 36,4"4,36,44.36,44,36
'~'~'~'~'~'~'~J~,3~,
37,37,45,44,44,37,45,44,44,4 5,~,~,~,~,~.~,~.54,~ ,62,36, :36,6"1 1,54,54,62.54 •. 5. 5 62,~39, 36,44, .55, 54,54,62,54,5 5,55,55,39,36,44,55,54,54,6~ ,62,54.55,55.7,0
279
,~,",.,~,~,ft~,j6,~7.~,
.•44
349
DATA7,0,16.0,91.0,161.,0, ,0,172,0,201,0,241,0
======.====.========= REM === DIRETORIO 2=== REM ========;:;:::=========. ============== === BAIANA === ==============
.6'3,
.16'9
REM
REM
REM
280
281
290
380
M~~,~.~.W,~,~,~,~
~,~,~,~,~,~,~,~,~,6
,~,~,~,~,39,~,~0,~,60,
61, 60,
,4,0
REM
46;0
58
REM
=======.=.====::::::::::,,=
;==
BAIANO
===
59
391
400
REM
DATA 55,4t,3~,55,4S,4G,54,63
4,~,",~,~,.,46,~,~,~
====~=::::::====:::=== -. ....
490
DATA,. 6,60,36,60,36,60,39,63 3
63,62, .62,63,39,63,39,63,60,'3 9,~,~,~,~,~,~,63,~,~ .S3~55,.63,55,55,63,6:2,62,,63, 54,63,62,63,62,63,63,54,63,7 ,0 REM =-=-============ REM ==- SoM L=26 === REM =====---======== DATA 172,1,3,174,1,3,169,4,3 2,168,252,173,48,192,232,208 ,253,136,208,239,206,0,3,208 ,231,96 REM =======--=========
.:'
54,54,54,62,47,45,36,36,36,4
60,60,60,39.44,4~,36,55.47,3 6,45,45,37, 60', :5~, 63, 63, 63, 63 ,63,63,36,53,6,0 409 410 411 420 429 430 431 440
,62,62,54,47,.36,45,53,62,54,
,~,~,~,~,~,~,~,~2,~,
,*,~,~,~,~,e,~.%,3~,
499
DATA 37,37,39,63,62,46,46,0,
37,55,0
=================== =-= COCO E BALA === =================== ================ === EXPLoSAO === ================
449
DATA 37,45,44,37,44,36,37,46
REM
469
REM
REM REM
,52,62,63,0
DATA
=============,
6,~,~,45,~,~,~,~,~,e
46,45,.44,45-,46,37,45,44,45,4
,~,~,~,~,~,~,~,~,~,
54,45,53,45,45,46,45,45
700 710 REM === tORMATACAO === 720 REM -================= 730 P 25600: REM TABELA 1 740 FOR I = 1 TO 324: READ F 750 POKE p,rlP P + I: NEXT 760 P 28160: REM TABELA 2 770 FOR I t TO 3511 READ r 780 POKE P,FIP P + I: NEXT 790 P 770: REM SOM BOO tOR I 1 TO 26: READ t 810 POKE P,F;P P + 1: NEXT 820 P 30720: REM TABELA 3 830 FOR I 1 TO 269: READ F 840 POKE P,tIP P + 1: NEXT 850 RETURN 859 REM ===========-======= 860 REM ===, DIREToRIO 3 ===
= =
REM
SBO
0,114,0,145,0,176,0,206,0,23 7,0
DATA
=================== 9,0,20,0,35,0,64,0,91,
60
61
e~o
e99
900
901 910
DATA 41,37,36,36,36,39,37,53 ,54,54,54,54,47,45,0 REM REM NUMERO 2 REM DATA 45,45,45,37,83,63,63,36 ,44,45,45,37,36,36,63,63,63, 55,45,45,45,54,&2,63,63,55,5 4,54,0
REM
REM
REM
REM REM
REM
DATA 36,36,36,36,44,45,45,4 6,46,54,54,62,62,62,63,6e,5, 32,36,36,36,45,53,53,53,54,5 5,55,63,7,0 1039 REM 1040 REM --- LETRA R
1041
10:50
940
'41
teo
960 961 970
DATA 45,45,36,36,36,36,45,37
'59 REM
,63,63,6~,55,45,53,54,54,54, 63,39,60,54,46,0
1
3 4
6 2
REM
REM
REM ***************1:*******
* * *
C 0 QUE
0A
***********************
* * *.
=
10
REM
~79 980
REM
REM
20
30 40
981
990
DATA 45,45,45,37,36,36,63,63 ,46,45,54,62,63,63,36,36,36, 44,45,45,46,36,63,63,63,55,5 4,54,54,54,0 1000 REM === 1001 REM 1002 REM 1010 DATA 36,36,12,45,45,37,36,6
so
60 70
80
HOME: BR : COLOR= 7 rOR x = 0 TO 39: VLIN 5,13 AT X: BOSUB 3000: NEXT 0: rOP ~ = 1 TO 92 READ X,V: PLOT X,Y: GOSUB 310 0: NEXT : COLOR= 15 v = 15 TO 39 STEP 2 HLIN Xl,X2 AT Y:Xl = Xl + 3:X 2 X2 - 3 eosus 3000: BOSUB 3200: GOSUB 3300
COLOR= =
rOR
62
63
110
120 130
140
VTAB 221 INVERSE: PRiNT" P RESSIONE QUALQUER TECLA PARA a INICIO NORMAL : VTAB 1 = HTAB 20: GET AS: HOME FOR Y 1 TO 10: eosus 3100: NEXT : FOR V 1 TO 10: eOSUB 3200: NEXT FOR Y = 39 TO 15 STEP - 1: HLIN 0,39 AT V: BOSUB 3200= NEXT
FOR V
150
NEXT : FOR Y 1 TO 10: GOSUB 3200J NEXT FOR Y -'=" TO 5 STEP 13 - 1: HLIN 0,39 AT V: 60SUB 3100: NEXT : BUSUB 2000: dOGUB 170: bOTO
360 '
160
170
180 190
20C
210
220
230
85,66,87,88,89,90,92,'3 4,96,98,100,103,106,109,112, 116,120,124~129,134,140 POKE 233,100 deOLOR=, 3: ROT-:.: SCALE-'=" 0: 1 JRAW 1 AT 0,156: DRAW 2 AT 2 79,156 HPLOT 38,141 TO 241,141: HPLOT 0,0 TO 279,0 TO 279,158 TO 0 ,158 TO 0,0 FOR I = 45 TO 234 STEP 21: HPLOT 139,158 TO 1,141: HPLOT 0,15 8 TO 1,141: HPLOT 279,158 TO 1,141: NEXT DRAW 6 AT 65,81: DRAW 6 AT 2 19,81 FOR I = 0 TO 16 STEP 8: ROT=
DATA
330
19,81: NEXT ROT= 0: DRAW 5 AT 69,138 POKE 233,120: DRAW 3 AT 209, 138 POKE 233,110: ROT= 0: DRAW 6 AT 65,81: DRAW 6 AT 219,81 ROT= 48: DRAW 6 AT 65,81: DRAW 6 AT 219,81 ROT= 32: DRAW 6 AT 65,81: DRAW 6 AT 219,81: ROT= 0 DRAW 3 AT 62,86: DRAW 3 AT 5 9,90: DRAW 3 AT 60,96: DRAW 3 AT 69,88: DRAW 3 AT 71,93: DRAW 3 AT 67,97: DRAW 3 AT 65,92 DRAW 3 AT 215,88: DRAW 3 AT 212,93: DRAW 3 AT 216,98: DRAW 3 AT 222,90: DRAW 3 AT 219,9 4: DRAW 3 AT 224,98 DRAW 3 AT 90,85: DRAW 3 AT 1 95,85 ROT= 32: DRAW 7 AT 150,20: ROT= 0: DRAW 7 AT 250,18: RETURN
DRAW
n
REM
REM
520 XX 64
3: SCALE= 1
": eosus
1500
139:YV
65
530
RESTORE :Ll = 0:L2 90;X2 195 540 VI INT ( RND (1) 1 550 V2 INT ( RND (1)
1
= =
O:Xl
* 9) / 2 +
9) I 2 +
= =
590 P = PEEK ( - 16384) 595 HeOLOR: 0 IF Y 120 THEN BOSUB 710 600 IF P < > 136 THEN 640 610 620 DRAW JJ AL XX.YY:XX = XX . 4
IF XX 103 THEN XX 107 IF P < > 149 THEN 670 DRAW JJ AT XX.YY:XX XX + 4 IF XX
IF Ll
=
=
,Y ,V
0 THEN
= = =
IF L2 = 0 THEN
690 HeOLOR= 3: DRAW JJ AT XX,YV Xl + Vl:X2 X2 - V2: NEXT 700 Xl : GOTO 750 710 IF XX < > Xl + 1 AND XX < > Xl - 3 THEN 730 • 720 P O:PT(JJ) = PT(JJ) + I:Ll 1: SOSUB 3200: BOSUB 3100: BOSUB 3000 730 IF XX < > X2 AND XX < > X2 + 4 THEN RETURN 740 P = O:PT(JJ) = PT(JJ) + 1:L2 =
1: GOSUS 3000: GOSUS 3100: SOSUB 3200: RETURN 750 SOSUS 1540 770 HeOLOR= 0: IF Ll 1 THEN DRAW 3 AT Xl - 5 Vl,120 771 IF L2 = 1 THEN DRAW 3 AT X2 +5 V2,120 772 NJ = NJ + 1: IF NJ < 30 THEN 530 780 IF JJ = 2 THEN JJ = 1: SOSUB 2000: BOSUB 170: GOTO 1010 790 JJ = 2: GOSUB 2000: BOSUB 170 : DRAW JJ AT 139,yy 810 BOSUB 1600: BOSUB 3000: SOSUB 3100: BOSUB 3200:NJ = 0: GOTO 510 1000 REM =================~= 1001 REM === TIRO CANHAO === 1002 REM =================== 1010 HeOLOR= O:NJ = 0 1030 IF JJ = 1 THEN SOSUB 1500 1040 IF JJ = 2 THEN BOSUB 1600 1050 GOSUB 1400: BOSUS 1450 1060 FOR I 1 TO 21: REAP V 1070 HeOLOR= 3: DRAW 3 AT XI,V: DRAW 3 AT X2,Y 1080 P = PEEK ( - 16384) 1090 IF P = 149 THEN SOSUB 1440 : GOTO 1170 1100 IF P = 136 THEN SOSUB 1450 : GOTO 1170 1110 HCOLOR= 0: DRAW 3 AT XI,V: DRAW 3 AT X2,y 1115 FOR J 1 TO 30: NEXT 1120 Xl = Xl + Vl:X2 ~ X2 - V2: NEXT
66
67
1150
1210 1220 1225 1230 1240 1250 1260 1265 1270 1280 1290 1300 1310 1320 1330 1340
1350 1360
1370
2000: GOSUB 170: GOTD 1010 GOTO 1810: REM FIM M = I: HCOLOR= 0: POKE - 16 368,0:P = 10: eosus 3300 DRAW 3 AT Xl,V: DRAW 3 AT X 2,V Xl = Xl + Vl:X2 = X2 - V2 FOR K M TO 21: READ V HCOLOR= 3: DRAW 4 AT XA,YA IF L1 = 0 THEN DRAW 3 AT X 1, Y IF L2 = 0 THEN DRAW 3 AT X 2,V IF VA > Y + 2 OR VA < V - 4 THEN 1280 IF XA < Xl + 3 AND XA > Xl 4 AND L1 0 AND Xl > 95 THEN AC = AC + 1:XE = X1:Ll 1 IF XA < X2 +3 AND XA > X2 4 AND L2 = 0 THEN AC AC + 1:XE X2:L2 = 1 PT(JJ) = PT(JJ) + AC: IF AC = o THEN 1280 IF Xl < 96 THEN 1280 eosus 1705 HCOLOR= 0: DRAW 4 AT XA,YA DRAW 3 AT Xl,V: DRAW 3 AT X 2,V VA = VA - 3:XA = XA + ST=Xl : Xl + Vl:X2 = X2 - V2 IF VA > 79 THEN 1360 Z = O:P PEEK ( - 16384) IF P = 149 THEN eosus 1440 : eOSUB 3300: SOTO 1360 IF P 136 THEN BOSUS 1450 : BOSUB 3300: SOTO 1360 XA 65:VA 81 NEXT : BOSUS 1400 NJ = NJ + 1: IF NJ < 30 THEN 1200
1380 GOTO 1140 1389 REM 1390 REM === SUB-ROTINAS 1391 REM 1400 Vl = INT ( RND (1) +1 1410 V2 = INT ( RND (1)
+1
* *
9) I 2 9) I 2
1420 Xl = 90:X2 = 195:Y = 85:Ll = 0:L2 = 0 1430 M 1: RESTORE: RETURN 1440 POKE - 16368,0:VA = 133:XA = 84:ST = 6:AC 0: RETURN
1450 1500
=-
133:XA 0: RETURN
VTAB 22~ HTAB 11: INVERSE: PRINT PLACAR II;: HTAS 21: PRINT" RECORD u;: HTAB 32: PR I NT " COQUEDA NORMAL 1502 IF JJ = 1 THEN VTAB 22: HTAB 1: INVERSE: PRINT" BAIANA 01: NORMAL: HTAB 1: PRINT" BAIANO " 1504 IF JJ : 2 THEN VTAB 23: HTAB
OJ II:
": NORMAL: VTAB 22: HTAB 2: PRINT uBAIANA" 1510 VTAB 23: HTAB 34: PRINT "NF
184"
1: INVERSE:
PRINT"
BAIANO
IF F::E ( 10 THEN VTAB 23~ HTAB 24: PRINT 0iRE: GO TO 1540 1530 VTAB 23: HTAB 24: PRINT RE 1540 IF PT(JJ) < 10 THEN VTAB 2
1520
3: HTAi.:
14; PRINT
O;PT(JJ):
GOTO
68
69
1560
RETUR~-l
II
1620 GOSUB 1520: RETURN 1699 REM ==================== 1700 REM --- EXPLODE COCO === 1701 REM ==================== 1705 HeOLOR= 0: DRAW 4 AT XA,VA 1710 AC = O:VA = 81:XA 65: FOR Z 1 TO 3 1720 HCOLOR= 3: DRAW 5 AT XE - 7
VTAB 22: HTAB 1: PRINT SA lANA " 1610 VTAB 23: HTAB 1: INVERSE: PRINT " BAIANO ": NORMAL
1E.OO
BOSUS 3000: eosus 3100: SOSUS 3200 1740 HCOlOR= 0: DRAW 5 AT XE - 7 1730
,V 2
,V - 2
1860 FOR I = 1 TO 2000: NEXT 1870 PTe!) O:PT(2) = 0 1880 VTAB 23: HTAB 20: SET A$ 1890 RESTORE : HGR : GOTO 10 1999 REM ==================== 2000 REM --- TROCA DE JOG.=== 2001 REM ==================== 2010 POKE 232,0: POKE 233,110 2020 HBR : HGR2 : HCOLOR= 1: ROT= 0: HPLOT 0,0: CALL 62454 2030 FOR I 1 TO 200: NEXT : CALL 62450: HeOlOR= 3 2040 SCALE= 2: DRAW JJ AT 50,125 : DRAW JJ AT 227,125: DRAW 5
2050
1750
1760
1770 1799 1800 1801 1810
60SUB 3200: SOSUB 3100:" SOSUB 3000 NEXT : SOSUS 1500 RETURN REM =================== REM === FINALIZACAO ===
DRAW JJ AT 50,20: DRAW JJ AT 227,20: POKE 233,120 2060 DRAW 4 AT 40,100: DRAW 5 AT 70,100: DRAW 6 AT 100,100: DRAW 7 AT 130,100: DRAW 8 AT 160, 100: DRAW 5 AT 190,100: DRAW 9 AT 220,100: DRAW JJ AT 130
AT 124,50
HOME : INVERSE : FOR I = 1 TO 40: VTAB 21: HTAB I: PRINT .. =": SOSUB 3100: NEXT 1820 SPEED= 140: VTAB 21: HTAB 1 4: PRINT PLACAR FINAL ": NORMAL
II
REM
===================
2070
7 AT 131,100: DRAW 8 AT 161, 100: DRAW 5 AT 191,100: DRAW 9 AT 221,100: DRAW JJ AT 131 2080 2090 2100 2110
,135
VTAB 23: HTAB 2: PRINT uBAI ANA:";PT(l);" PONTOS";: HTAB 24: PRINT "BAIANO: "jPT(2) j PONTOS": SPEED= 255 1840 IF PT(l) > RE THEN RE PT(
1830
II
1)
1850
IF PT(2) 2)
>
RE THEN RE
= =
PT(
2130
70
71
3491 3500
3510
3520
HCOLOR= 0: CALL 62450 HGR : RETURN REM REM SONORIZACAO REM POKE 76B,I: POKE 769,3: CALL 771: RETURN POKE 76B,I: POKE 769,255: CALL 771: RETURN POKE 768,1: POKE 769,50: CALL 771: RETURN POKE 768,2: POKE 769,10: CALL 771: RETURN REM REM PLOT PONTOS REM DATA B,11,23,7,30,11,3,7,18 ,11,34,9,23,10,11,8,16,10.30 ,7,16,7,11,11,4,7,28,9,36,11 ,25,9,3,11,13,8,21,7,33,11,1 8,7,26,11,13,10,8,8,36,7,31, 9,18,9,11,7,15,12,6,7,14,7,3 6,9,24,11,11,9,9,7,26,7,21,1 0,. 14, 11• 24, 7, 34, 7, 21 ,9, 8. 10, 15,10,28,7 DATA 31,8,5,11,10,7,3,9,28, 11,35,9,16,8,20,11,23,8,33,8 ,33,10,24,9,9,11,8,7,6,11,16 ,9,23,11,18,8,33,7,21,11,11, 10,13,7,3,10,29,7,25,11,13,9 ,3,8,16,11,28.10,36,8,21,8,3 6,10,15,7,28,8,5,7,19,11,35, 7,25,7,8,9,29,11,13,11 DATA 4,11,10,11,15,11,18,1 0,23,9,31,10,33,9
KABOOM
CUIDADO! Nao deixe as bomhas cairem ... Moitinha um sujeitinho sem-vergonha, que spareee no alto do muro para largar bombas com a inten9io de esburacar seu jardim. Voce dispfie de urn escudo protetor, que deve ser eonduzido para aparar essas bomb as e frustrar os pIanos do Moitinha. Cada vez que voce conseguir isso, sera somado urn ponto a seu favor. Mas atencao, porque a dificuldade do jogo erescente com 0 mimero de bombas aparadas, Se voce deixar cair 3 bomb as no jardim, 0 Moitinha saira vitorioso e aparecera no alto do muro mostrando toda a sua mal edueaeao, destruindo seu escudo. Se voce conseguir aparar mais de 255 bomhas,o que ira explodir 0 seu computador (na brincadeira, evidentemente ),
73
Solicit a 0 nome do jogador. Apresenta~io do quadro de jogo. 120 a 150: Defini~ao das varhiveis. ·160 : 170 a 180: Musics inicial. Define a veloeidade do Moitinha [alea190 : toriamente ). 200 a 220 : Efetua a Ieitura do teclado para a movimentaeiio do escudo, garantindo que ele nao saia dos Iimites da tela. Verifica se a bomba foi aparada pelo 240 : escudo. Idem as Iinhas190 a 260, porem com 270 a 340: o Moitinha correndo no sentido da direita para a esquerda da tela. Movimenta~ao do plaear e explosao da 500 a 830: bomba. Cuspida e queda do escudo. 1010 : 1020 a 1660: Finaliza!;io da partida, 2008 a 2090: Tahelas das figuras utilizadas no jogo. 2095 a 2190: Formataeao das figuras e som , sendo aloeados na memoria diretamente do BASIC, com a conversao dos valores hexadeoimais em decimais.
80 :
REM REM REM K ABO 0H 6 REM 7 REM 8 REM 9 TEXT: HOME :Z 16336: POKE 40000,20:RE PEEK (40000) 10 VTAB 5: HTAB 2: INVERSE : PRINT K ABO 0M APPL E II NORMAL 20 SPEED~ 120: VTAB 9: HTAB 4: PRINT USE AS SETAS PARA MOVER 0 ESCUDO II; VTAB 10: HTAB 9: PRINT OUTRA BRECA 0 ESCUDO ).. 40 SPEED~ 255: SOTO 2000 50 VTAB 13: HTAB 17: PRINT .IESeR ITO": SOSUB 90: RETURN 60 VTAB 14: HTAB 19: PRINT "POR" : BOSUB 90: RETURN 70 VTAB 15: HTAB 15: PRINT "MARl o FOLLI": SOSUB 90: RETURN 80 VTAB 18: HTAB 6: PRINT "NOME DO JOGADOR (ATE' 9 LETRAS) "' eOSUB : 90: VTAB 19: HTAB 16: INPUT "";N$: BOTO 100 90 FOR I 1 TO 15:5 PEEK (Z) : NEXT : RETURN 100 BOSUB 90: BOSUe 90: SOSUB 90
3 4 5
*********************** * * * * * * ***********************
==
:
"***
***
***
ii
Ii
II (
110 N 120
LEN eNS): IF N > 9 THEN 80 HOME: HBR : HeOLOR= 3: SCALE~ 1: ROT~ 0: VTAB 21: INVERSE : PRINT
II II.
130
VTAB 22: HTAB 1: PRINT ADOR ";: HTAB 12: PRINT NTOS ";: HTAB 22: PRINT
It II II
JOG PO RE
74
75
CORD ";: HTAB 331 PRINT KA BOOM fI;: NORMAL 140 HTAB 1 + INT «9 - N) / 2): PRINT N$;: HTAB 15: PRINT" 00";: HTAB 25: PRINT RE;: HTAB 33: PRINT" C.1984 "; 150 HPLOT 0,23 TO 0,0 TO 279,0 TO 279,158 TO 0,158 TO 0,23 TO 279,23 160 Xl 15:X2 Xl:X3 140:Yl 22:Y2 = 35:Y3 = 125:Y7 7:Y 4 = 157:PT 0:11 = 15:12 264:ES 9 170 FOR I 1 TO 20: READ D,F 180 POKE 768,D: POKE 769,F: CALL 771: NEXT: RESTORE 190 V = INT ( RND (1) 10): IF V < 5 THEN V ::::: 7 200 FOR X7 11 TO 12 STEP VIP : PEEK < - 16384) 210 IF P = 136 THEN X3 = X3 - ES : IF X3 < 15 THEN X3 = 15 220 IF P 149 THEN X3 X3 + ES : IF X3 > 264 THEN X3 = 264 230 HCOLOR: 3: DRAW 3 AT X3rY3: DRAW 2 AT X2,Y2: DRAW 7 AT X7,Y7 240 IF Y2 = Y3 AND X3 > (X2 - 11 ) AND X3 < (X2 + 11) THEN Bosue 500 250 HCOLOR= 0: DRAW 3 AT X3,Y3: DRAW 2 AT X2,Y2: DRAW 7 AT X7,Y7: Y2 = Y2 + 5: IF Y2 ) 155 THEN BOSUS 700 260 NEXT 270 V = INT ( RND (1) * 10): IF V < 5 THEN V 7 280 FOR X7 = 12 TO 11 STEP - V: P = PEEK ( - 16384) 290 IF P : 136 THEN X3 X3 - ES
I.
= =
340 500
510 515 520 530 540 550 700 710 720 730
: IF X3 < 15 THEN X3 15 IF P = 149 THEN X3 X3 + ES : IF X3 > 264 THEN X3 264 HeOLOR= 3: DRAW 3 AT X3,V3: DRAW 2 AT X2,Y2: DRAW 7 AT X7,Y7 IF Y2 = V3 AND X3 ) (X2 - 11 ) AND X3 < (X2 + 11) THEN BOSUS 500 , HCOLOR= 0: DRAW 3 AT X3,V3: DRAW 2 AT X2,Y2: DRAW 7 AT X7,Y7: Y2 = Y2 + 5: IF Y2 ) 155 THEN Y4 157: eOSUB 700 NEXT: BOTO 190 DRAW 1 AT X7,Yl:C = 1:Y4 = Y 3 - 1: HeOLOR= 0: DRAW 2 AT X2,Y2: Bosue 700:C = O:PT = PT + 1 IF PT < 10 THEN VTAS 23: HTAB 16: PRINT PTj IF PT 15 OR PT 40 OR PT 60 THEN ES = ES - 1 IF PT > 10 THEN VTAB 23: HTAB 15: PRINT PT; FOR I 1 TO 5:S = PEEK (Z) PEEK (Z) - PEEK (Z) - PEEK <Z): NEXT X2 X7:Y2 = 35:Y4 155: HCOLOR=
DRAW 7 AT X7,Y7: DRAW 3 AT X 3,V3: DRAW 1 AT X7,Yl: RETURN HCOLOR= 3: DRAW 3 AT X3,V3: DRAW 7 AT X7,Y7: IF C = 0 THEN DRAW 3 AT X3,Y3 - 20 DRAW 4 AT X2,Y4: BOSUB 1700: aOSUB 1700: BOSUS 1700 DRAW 5 AT X2,V4: BOSUB 1700: aOSUB 1700 DRAW 6 AT X2,Y4: BOSUB 1700
76
77
740
HCOLOR= 0: DRAW 4 AT X2,V4: DRAW 5 AT X2,Y4: DRAW 6 AT X2,V4: ~OR I = 1 TO 100: NEXT IF C 1 THEN RETURN DRAW 3 AT X3,V3: DRAW 7 AT X 7,Y7:Y3 V3 -20 HeOLOR: 3: DRAW 1 AT X7,Yl: DRAW 3 AT X3,Y3: BOSUS 1500 IF V3 = 65 THEN FOR I = 1 TO 500: NEXT : GOTO 1000 HCOLOR= 0: DRAW 1 AT X7,Yl: DRAW 7 AT X7,Y7: DRAW 3 AT X3rY3: Y2 = 35:X2 X7 RETURN
FOR I 1 TO 5: POKE 768,2: POKE 769,1: CALL 771: NEXT : FOR I = 5 TO 1 STEP - 1: POKE 768,2: POKE 769,1: CALL 771: NEXT : RETURN 1600 FOR X = 0 TO 279 STEP 15: HPLOT X3,Y4 TO X,23: POKE 768,1: POKE 769, (X + 200) I 2: CALL 771: NEXT 1610 FOR V = 23 TO 158 STEP 10: HPLOT X3,Y4 TO 279,Y: BOSUB 1800: NEXT 1500 FOR Y 158 TO 23 STEP -1 0: HPLOT X3,Y4 TO O,Y: SOSUB 1800: NEXT 1630 FOR I = ITO 1500: NEXT: HGR I TEXT : ONERR GOTO 1660 1640 IF PT < = RE THEN SPEED= 120: VTAB 10: HTAB 2: PRINT "VOCE NAO .CDNSEGUIU SUPERAR o RECORD!~!": VTAB 12: HTAB 12: PRINT IITENTE DUTRA VEZ •• .": RETURN 1650 SPEED= 120: VTAB 10: HTAB a ; PRINT ··PARABENS!!!•••NOVO RECORD": POKE 40000,PT: RETURN VTAB 12: HTAB 1: PRINT "VOC E CDNSEGUIU ESTOURAR A MAQUI NA !!!!! !": POKE 40000,20: BOTO 1030 1700 POKE 76B, 1: POKE 769,5: CALL 771: RETURN 1800 POKE 768,1: POKE 769,Y + 90 : CALL 771: RETURN DATA 2,220,2,230,2,240,2,25 2000 0,2,245,2,240,2,235,2,230,2, 225~2,225,2,230,2,235,2,240, 2,245,2,240,2,245,2,240,2,24 1660 1620
BOsue 1500: FOR I 1 TO 30 0: NEXT HPLOT X7,Vl - 6 TO X3,Y3: FOR I = 1 TO 30:5 PEEK (Z): NEXT : HCOLOR= 0: HPLOT X7,Yl - 6 TO X3,V3: HCOLOR= 3: DRAW 1 AT X7,Yl: HPLOT 0,23 TO 279 ,23: FOR I = 6~ TO 150: HCOLOR= 3: DRAW 3 AT X3,I:S = PEEK (Z): HCOLOR= 0: DRAW 3 AT X3 ,I: NEXT C = I:X2 = X3: HCOLOR= 3: Bosue 710: HCOLOR= 3: BOSUB 710 HCOLOR= 3: SOSUB 710: HCOLOR= 3: BOSUS 1600 GOSUB 1500: BOSUB 1500: VTAB 21: HTAB 12: FLASH: PRINT .. OUTRA VEZ (S/N)?";: HTAB 17: SET A$: SPEED= 255 IF A$ "s" THEN 2300 IF A$ < > "N" THEN 1030 NORMAL : TEXT : HOME : END
78
79
2160 H
DATA IIACOI03AEOI03A90420A8F CAD30COEBDOFD88DOEFCE0003DOE 760"' 2010 DATA l'0700100037004A0064007 6009400BFOO" 2020 DATA "'292C2D243F3F242D2C2C2 43C173E272D20273F3F"3E162E253 F38373635352D363F3F362D35050 DATA 11242525272524243C363F2 43736362E3E2E2EOO 2040 DATA "3F3F?f3F"3F"37352D35:!b2 'b:tb202D2:b2~2D2C3C3F"3F3F3F3 F"OO"' 2050 DATA u2525252C243C3C3C3F373 73736352E2E2EOO" 2060 DATA "252D252C24252D24273C3 C273F3C3F373F3E37373E362D2E3 6352E2D2EOO .2070 DATA "2D2C2D2C2C252D24252C2 43C2427273F3C273F3C3F3F373F3 E373F3E3E363736352E362D2E353 52D352DOO" ·2080 DATA "24372D3C3C3E2E2EOO"', 2090 DATA "'I'="IM': 2095 P 770: GOTO 2110 2100 P 24576: POKE 2~2.0: POKE 233,96 2110 READ 1$: IF" 1$ = "FIM" THEN RESTORE : GOTO 80 2120 FOR A = 1 TO LEN (1$) - 1 STEP.
II II
2008
H-7
H-
48: IF H
>
9 THEN H
2030
0"
NEXT:N = N + 1: ON N eOSUB 2100,50,60,2110,70 2200 GOTO 2110 2300 TEXT: CLEAR :RE = PEEK (4 OOOO):Z 16336: VTAB 21: HTAB 12: INVERSE : PRINT ": NORMAL 2400 GOTO 80: REM NOVO JOGO 2190
=-
OJ
= =
2130 P$ = MID$ (1$,A,2) 2140 H =. ASC ( LEFT$ (PS,I» ASC ( RIGHT$ (PS,I» 2150 L
80
81
mal., Formataeao das figuras, diretamente do basic, a partir do endereeo 24576 (decimal). ao mesmo tempo em que estas VaGsendo desenhadas, formando a tela de apresentacjio. Desenha as estrelas na tela, aleatoriamente. Forma a tela inicial do jogo. Define a velocidade das naves. Verifica se todos os misseis ja foram utilizados. Define a altura que a nave passara na tela. Define 0 tipo de nave que ira surgir. Define de qual lado a nave surgira na tela (esquerda ou direita ). Emite ruido indicando que uma nave mvadira 0 ceu, Movimenta as naves pela tela, enquanto nenhum missel £oi disparado. 83
BASE DE CENTAURO
Naves espias cruzam 0 ceu de Centauro, onde temos uma base instalada e fortemente armada com dois tipos de misseis, Seu objetivo : evitar que as naves fujam, levando informacoes e fotos ultra-seeretas. Para tanto, voce dis poe de vinte misseis simples e dez duplos, que podem ser
200: 310:
so
disparados uma iinica vez a cada nave que ~ass~ .. jogo termina quando todos os seus misseis trverem sido utilizados, ou quando vinte naves conseguirem
escapar ilesas. As teclas que disparam os misseis sao as seguintes : Tecla "1"; dispara missel simples. Tecla ., 2"; dispara missil duplo. A pontuaeao obtida a eada nave destruida, fu~ta~ do tipo de missel empregado e tamanho da nave atmgi-
Linhas
Linhas Linhas
da, a saber: Missel simples atinge nave grande: Missel simples atinge nave pequena: " Missel duplo atinge nave grande: Missel duplo atinge nave pequena: '" 82
Linha Linhas
440
450 a
530:
-. -
700 : Movimenta
Linhas
920 a
as naves juntamente com os misseis. 780 : Verifica se 0 missel dlsparado atingiu a nave. 910 : Efetua a rota~ao e elimina~io das naves atingidas, apagando-as do video. 980: Finaliza~io da partida.
120
130 140
HPLOT 150.60 TO 195,60 TO 19 5,45 TO 210,45 TO 210,60 TO 240,60 TO 240.45 TO 225,45 TO 225,60: HPLOT 165,60 TO 165, 45: HPLOT 180,60 TO 180,45: HPLOT 230,45 TO 230,50 TO 250,50 BOSUB 990 FOR I = 1 TO 1000: NEXT : SPEED= 100: VTAB 21: INVERSE: PRINT
l_____E-==]
~
r·--·-·-··
.---I __
L..___
r-L l·HT.=!-..J
._ .• • _
150
************************** ************ VTAB 23: PRINT" ***********' ***************************VTAB iI;: NORMAL: SPEED= 255:
01 II
30
40 50 60 90
10 20
REM
REM
REM REM
REM REM TEXT: HOME I HBR I HeOLOR= 3 : ROT- 0; SCALE= 1 100 HPLOT 50,30 TO 30,30 TO 30,6 o TO 60,60 TO 60,45 TO 75,45 TO 75,53 TO 60,53 TO 60.60 TO 85,60 110 HPLOT 90,60 TO 90,40: HPLOT 90,45 TO 105,45 TO 105,60 TO 120,60 TO 120,30: HPLOT 110. 45 TO 150,45 TO 150,60 TO 13 5,60 TO 135,45
*' **********'************
* * *
*~********************
BASE DE CENTAURO
* *
200 210
22r)
230
240
250 260
HGR: HOME: HPLOT 0,159 TO 279,159 FOR I = 1 TO 110 X INT ( RND (1) 280) V = INT ( RND (1) 125) HPLOT X,V: NEXT DRAW 1 AT 139,137 DRAW 2 AT 123,149 DRAW 2 AT 155,149 DRAW 2 AT 139,147 SCALE= 2: DRAW 5 AT 0,145: DRAW G AT 279,135: SCALE= 1: HOME
* *
270
280
VTAB 22: HTAB 1: INVERSE:: PRINT ., BASE ": HTAB 1::PRINT DE ": HTAB 1: PRINT "CEN TAURO"; : VTAB 22: HTAB 13: PRINT "MIS SEIS 1:": VTAB 24: HTAB 13: PRINT "MISSEIS 2:";: VTAB 22: HTAB 28: PRINT "PON TOS:": VTAB 24: HTAB 28: PRINT
II
84
85
290 300
IIRECORD:";: NORMAL VTAB 22: HTAB 24: PRINT 20: VTAB 24: HTAB 24: PRINT 10i: VTAB 22: HTAB 36: PRINT "00" VTAB 24: HTAB 36: PRINT RE;:
310 VTAB 23: HTAB 10: PRINT NN 320 VE INT ( RND (1) 8): IF VE < 3 THEN 320 330 IF Hl < 0 AND M2 < 0 THEN 92
340 ALT = tNT ( RND (1) 3) 350 IF ALT = 0 THEN V = 16 360 IF ALT = 1 THEN Y 37 370 IF ALT = 2 THEN V = 58 380 N = INT ( RND (1') 2) 390 IF N = 0 THEN N 3 400 IF N = 1 THEN'N 4 410 LADO INT ( RND (1) * 2) 420 IF LADO = 0 THEN Ll = 11:L2
= =
590 600 610 620 630 640 650 660 670 680
690
HCOLOR= 0: DRAW N AT X,V NEXT :NN NN + 1 GOSUB 900: GO TO 320 HPLOT 45,30 TO 20,30 TO 20,6 o TO 75,60 TO 75,45 TO 60,45 TO 60,55 TO 90,55 POKE - 16368,0: FOR I = 1 TO 3:8 = PEEK (Z) - PEEK (Z) PEEK (Z): NEXT HCOLOR= 0: DRAW N AT X,V: IF Xl 139 THEN DRAW 2 AT 139 ,147 IF Xl = 139 AND M1 < 0 THEN VTAB 22: HTAB 24: PRINT "FI M": BOTO 500 IF Xl = 123 AND H2 < 0 THEN VTAB 24: HTAB 24: PRINT "FI Mil;: GOTO 500 FDR XX X + VE TO L2 STEP V
268
430 440
IF LADO
490
500
POKE - 16368,0: FOR I = 1 TO 10:8 = PEEK (Z): NEXT: FOR I = 1 TO 100: NEXT : FOR I = 1 TO 8:8 = PEEK (Z): NEXT FOR X = Ll TO L2 STEP VE HCOLOR= 3: DRAW N AT X,V P = PEEK ( - 16384) IF P = 177 THEN Xl = 139:X2 = Xl:VY = 128:Ml = Ml - 1: VTAB 22: HTAB 24: PRINT Ml;" ": GOTO 550 IF P = 178 THEN Xl = 123:X2 = 155:YY 149:M2 H2 - 1: VTAB 24: HTAB 24: PRINT M2; II;: GOTO 550 FOR I 1 TO 20: NEXT
11:VE
=-
1 THEN Ll
VE
268:L2
=
= =
IF Xl 710
=
=
YV THEN YV THEN
IF Xl
AT Xl,YV: DRAW 2 AT X
NN +
It
HeOLOR= 3: IF H1 > 0 THEN DRAW 2 AT 139,147 IF M2 0 THEN DRAW 2 AT 12 3,149: DRAW 2 AT 155,149
86
87
700
710
GOSUB 900: GO TO 320 IF N 3 AND XX < 151 AND XX > 127 THEN PT = PT + 10: GOTO
790
IF N
=
=
= =
PT + 20: GOTO
HCOLOR= 0: FOR I = 0 TO 64 STEP 2: ROT= I DRAW N AT Xx,V: NEXT: GO TO 320 VTAB 23: HTAB 10: PRINT NN: IF NN 20 THEN 920
RETURN
I~ N
790
PT + 20: GOTO
930
790 IF N = 4 AND XX < 163 AND XX > 146 THEN PT PT + 40: GOTO 790 IF N = 4 AND XX < 131 AND XX > 115 THEN PT = PT + 40: BOTO 790 GO TO 6.40 HeOLOR= 0: DRAW 2 AT Xl,YV: DRAW 2 AT X2,VY: VTAB 22: HTAB 36. : PRINT PT FOR I = 0 TO 64 STEP 4 ROT= I HeOLOR= 3: DRAW N AT XX,v 5 PEEK (Z) + PEEK (Z) + PEEK
>
112 THEN PT
PT + 20: GOTO
(Z)
XDRAW N AT xx,V: NEXT FOR I 1 TO 3:5 = PEEK (Z) PEEK (Z) PEEK (Z) PEEK (Z): NEXT IF Xl 139 AND Ml > 0 THEN DRAW 2 AT 139,147 IF Xl = 123 AND M2 > 0 THEN DRAW 2 AT 123,149: DRAW 2 AT 155,149
VTAB 21: HTAB 1: FLASH: PRINT OESE.JA .IOGAR NOVAHENTE (SIN) ? n: NORMAL 1 TO 70:8 PEEK (Z 940 FOR I ): NEXT: FOR I 1 TO 70:8 PEEK (Z)~ NEXT ~ FOR I 1 TO 40:5 PEEK (Z): NEXT 950 VTAB 21: HTAB 32: SET AS IF AS = ··5·· THEN PT "'" O:Ml = 960 20:"2 10:NN 0: HeOLOR= 3 : aOTO ·160 IF AS < > uNIi THEN 940 970 TEXT : HOME : CLEAR : END 980 990 DATA 6,0,14,0,70,0,82,0,128, 0,150,0,210,0 55,54,62,62,62,6~,62, 1000 DATA 55,62,55,63,62,55,47,45,46,4 5,45,53,45,46,62,63,54,46,45 ,44,45,53,45,37,36,63,39,37, 45,44,45,45,37,45,61,60,39,6 3,60,39,60,39,39,39,39,39,36 ,60,0 1010 DATA 60,54,46,54,47,61,36,3 7,36,39,36,0 1020 DATA 63,63,55,45,45,45.45,4 5,60,63,63,36,36,63,55,62,55 ,63,62,63.62,55,45.45,~S,53, 45,46,45,45,37,45,44,45,45,4 5,60,39,63,39,63,60,39,60,63
E;:
.. ***
***
,0
88
89
1030 '1040
1050
1050
DATA 55,62,&3,60,63,44, :5,3 7,45,44,53,45,46,45,53,63,55 ,63,39,60,6,0 DATA 37,37,44,36,45,3&,45,4 6,46,45,54,45,54,4&,46,46,46 ,44,36,45,44,37,44,37,44,37, 36,45,36,45,46,53,45,.46,45,4 6,45,46,46,46,46,53,45,36,37 ,44,44,44,53,53,53,53,46,54, 53,46,46,54,54,6,0 DATA 55;63,.62,55,63,54,55,6 2,55,39,63,36,39,60,36,39,60 ,60,39,60,39,63,62,54,55,63, 54,55,63,62,62,55,55,63,&0,3 9,63,36,39,39,39,39,63,60,61 ,55,55,63,54,55,55,62,55,55, 55,55,55,54,54,0 DATA 55,63,62,55,63,54,55,6 2,55,39,63,36,39,60,36,39,50 ,60,39,60,39,63,62,54,55,63, 54,55,63,62,62,55,55,63,60,3 9,63,36,39,39,39,39,63,60,62 ,55,55,63,54,55,55,62,55,55, 55,55,55,54,54,0 P = 24576: POKE 232,0: POKE 233,96 DI == 0:8 15 tOR A = 1 TO B: READ X: POKE P,X:P P + 1: POKE P,O It DI 0 THEN 1130 It DI 2 THEN DRAW DI AT 123,142: DRAW Dl AT 157,142 DRAW DJ AT Xl,Y1 NEXT DI DI + 1: ON DI BOTO 1150 ,1160,1170,1180,1190,1200,12 10 B = 56:X1 140:Vl 130: SOTO 1090
1160 B == 12=Xl ::: 140:Yl 140: BOTO 1090 1170 B = 46:Xl = 70:Yl = 80: SOTO 1090 1180 B = 22:Xl = IBO:Vl == 100: SOTO 1090 50:Y1 = 145: GOTO 1190 B == 61:Xl 1090 230:Yl == 140: GOTO 60:Xl 1200 B 1090 250:Ml 20:M2 1210 PT == O:RE 10:NN O:Z = - 16336: RETURN
= = =
= = =
90
91
tinico problema que 0 computador caloteiro e niio ira lhe pagar as cervejas. Mas, em compensa~ao, voce tambem nao precisara pagar as que perder.
7
'3
**~***~~t***~**:~c~~~*
PROGRAMA
*************:t.******-*.t:
HOME: GOSUB 4000: HOME
!! ~ PAL IT INHOS
'I!
:f:
10
TEXT
JOGO DE PALITINHOS
Esta uma versao computadorizada deste jogo tao conhecido, onde os participantes costumam disputar as rodadas de cerveja em animadas competiedes. Aqui, voce disputara contra tres adversaries comandados pelo proprio computador. Mas niio se assuste, pois, apesar de seus eoncorrentes serem frios e calculistas, eles nao possuem algo fundamental para quem quer sagrar-se vitorioso , .. a intuiciio, jogo tern inicio com os quatm participantes (voce e mais tres ] possuindo tres palitinhos cada, sendo solicitado que voce forneea a quantidade que coloeara em sua mao. Em seguida, cada participante ira efetuando seu "chute" (quanto ele acredita que seja a soma de todos os palitinhos em jogo), sempre com 0 computador monitorando a vez de cada um, tanto no "chute", como quem inieia chutando, 0 que funciona na forma de rodizio. Quem conseguir acertar a soma, eliminara urn pall. tinho de seu total. Quem conseguir eliminar todos os tres palitinhos com os quais iniciou a partida, sera declarado vencedor.
20 N$(1)
== n*CABECAO==":.N$(2) = "* CRANITO=iJ:N$(3) :: "*BURRICQ= n:N<$(4) u*USUARIO=":VEZ == 1: C$ == "chute" 30 Vel) O:V(2) V(1):V(3) v( l}:V(4. c V(1):Pl ~ 3:P2 = P 1:P3 Pl:P4 PI 40 VTAB 11 HTAB 2: INVERSE: PRINT " !!!!! :t::t JOGO DE PALITINHO S :t:* !!!!! "': NORMAL 50 VTAB 3: HTAB 1: PRINT "!"'"
! ' , , •, , , , , •, I
tn
,,•J,
60
V1AB 22:
70 80
90
FOR I = 4 TO 21: VTAB I: HTAB 1: PRINT "!": VTAB 1. HTAB 4 0: PRINT "! NEXT VTAB 4: HTAB 5: PRINT N$(2): VTAB 4: HTAB 28: PRINT N$(l): VTAB 20: HTAB 5: PRINT N$(3): VTAB 20: HTAB 28: PRINT NS(4) VTAB 9: HTAB 16: INVERSE : PRINT V ITOR IAS NORMAL
Ii: II II:
1: PRINl
.. ",,,
92
93
FOR 1
(I
160 170
lao
190
200
(I): NEXT VTAB 10: HTAB 13: PRINT I', , , , , , •, , , r , I": VT AS 15: HT AB 13: PRINT .. """""", " .. FOR 1 11 TO 14= VTAB I: HTAB 13: PRINT "! ..: VTAB I: HTAB 27: PRINT "!": NEXT VTAB 6: HTAB 6: PRINT .. BOSUS 3200 : VTAB 6: HTAS 30: PRINT ": BOSUB 3200 VTAS 18: HTAB 6: PRINT " ": SOSUS 3200 VTAB 18: HTAB 30: PRINT •• H: BOSUS 3200 BOSUS 3400: FOR 1 1 TO P2: VTAB 6: HTAS (5 + I): PRINT !•• SOSUB 3000: BOSUB 3300: : NEXT : SOSUB 330~ FOR I 1 TO P1: VTAB 6: HTAB <32 + I): PRINT "''': aosus 3 000: aosus 3300: NEXT : GOSUB 3300 FOR I = 1 TO P3: VTAB IB: HTAB (5 + 1): PRINT "I": SOSUS 30 00: GOSUS 3300: NEXT : SOSUB 3300 FOR I = 1 TO P4: VTAB 18: HTAB (32 + J): PRINT ,. I'.: GOSUS 3 000: SOSUS 3300: NEXT : GOSU8
II
+ 10): PR I NT N$ ( I) i ...... ; V
1 TO 4: HTAB
15: VTAB
230
Ii
II
3200: GOSUB 3400: GOTO 210 VTAB 14: HTAB 29: PRINT .. ": VTAB 20: HTAB 37: PRINT X4: GOSUB 3000: Bosue 3500 VTAB 7: HTAB 9: P~INT 0$: GOSUB 3000: GOSUB 3300 VTAB 7: HTAB 28: PRINT C$: BOSUB 3000: aosus 3300 VTAB 17: HTAB 9: PRINT C$= BOSUB 3000: aOSUB 3300 VTAB 17: HTAB 28: PRINT C$= enSUB 3000: BOSUS 3500 Xl INT ( RND (1) ~ (P1 + 1
) )
=
=
290 X2
300
) ) X3 =
1 THEN 420 THEN 480 IF VEZ :; 3 TH£N 550 GOSUB 2000 bOSUS 1000: IF Cl = C4 THEN
»
rr
(P2 + 1
IF-'3
+1
IF VEZ
=
=
3300
350
1300: eOSUB 3200= eOSUB 1100: IF C2 Cl OR C2 THEN 370 1400: BOSUB 3200: BOSUB 1200: IF C3 Cl OR C3 OR C3 = C4 THEN 390 1500: GOSUB 3200: SOSUB
210
VTAB 14: HTAB 29: PRINT "SUA MAC? ": GOSUB 3100: VTAB 1 4: HTAB 38: GET X$:X4 = VAL IF X4 > P4 THEN VTAB 14: HTAB 29: PRINT U(INVALIDO)": GOSUB
(X$)
410 420
4::'1)
220
610 GUSU~ 1000: SOSUB 1300: Bosue 320Q: GOSUB 3400 GOSUB 1100: IF"C2 = C1 THEN
BOlO
3400
,no
94
95
440
450 46b 470 480 490 500 510 520 530 540
550
Cl OR C3
650 660 670 680 690 700 710 720 730 740 750 760
4("-.}0
sosue
SOTO 610
BOTO 850 IF C4 == T THEN V(4) = V(4) + l:VPS - II*USUARIO*":P4 = P4 1: 60TO 850 VpS = "*NINSUEM*": SOTO 850 FOR I = 1 TO 5 VTAD 11: HTAB 29: PRINT" iI: SOSUB 3000 VTAB 12: HTAB 29: PRINT iI
1:
1500: 60SUB 3200: 60SUB 2000 1000: IF Cl C2 OR Cl OR Cl C4 THEN 520 1300: GOSUB 3200: 60SUS
600 610
620
3400 SOTO 610 SOSUS \200: eOSUB 1500: SOSUS 3200: sosue 3400 BOSUB 2000 BOSUS 1000: IF Cl = C3 OR Cl C4 THEN 570 SOSUB 1300: GOSUB 3200: Bosue 3400 SOSUB 1100: IF C2 = C3 OR C2 C4 OR C2 = Cl THEN 590 SOSUB 1400: GOSUB 3200: SOSUB 3400 T Xl + X2 + X3 + X4 IF Cl = T THEN V(l) V(l) +
sosue
VTAD 11: HTAB 29: PRINT VP$: BOSUB 3100 VTAB 12: HTAB 29: PRINT "*AC ERTOU*": SOSUB 3000 NEXT IF Vel) = 3 OR V(2) = 3 OR V (3) = 3 OR V(4) = 3 THEN 780
VTAB 13: HTAB 33: SET A$ VTAB 11: HTAD 2'9: PRINT I.
": sosue
3000
,.
VTAD 12: HTAB 29: PRINT II " 770 VEl = VEl + 1: IF VEZ = 5 THEN
775 780
630 640
"*CASECAO*":Pl
790
PI 800
"*CRANITO*II:P2
V(2) + = P2 V(3) +
iI*eURRICO*":P3 == p3 -
810
VEl 1 BOT a 900 BOSUB 3400: VTAB 11: HTAB 3: INVERSE : PRINT FINAL :'HTAB 3: PRINT DA ": HTAB 3: PRINT PARTIDA ": NORMAL "'TAB 13: HTAB 29: PRINT "=VI TORIA=": BOSUB 3200: BOSUB 3 400: eOSUB 3200: GOSue 3400: sosue 3200: eOSUB 3500 VTAB 18: HTAB 16: PRINT "OUT RA VEZ ?II: VTAB 19: HTAB 18: PRINT II (SIN)": BOSUB 3200: VTAB 19: HTAB 23: SET A$ IF A$ = ..S·· THEN RUN
II II II II
96
97
B30
820
910 920 930 940 950 1000 1010 1100 1110 1200 1210 1300 1400
IF A$ < > UN" THEN 800 SOSUB 3200: BOSUB 3300: BOSUB 3200: BOSUB 3300: BOSUe 3100 : SOSUB 3400: HOME : END VTAB 4: HTAB 14: PRINT X2: sosue 3100: Bosue 3300 VTAB 4: HTAB 37: PRINT Xl: sosue 3100: eosue 3300 VTAB 20: HTAB 14: PRINT X3: GOsue 3100: sasus 3300 VTAB 11: HTAB 4: PRINT I·SOMA =II;T BOTO 670 VTAB 4: HTAB 14: PRINT n ": sosue 3100 VTAB 4: HTAB 37: PRINT n: SOSUB 3100 VTAB 20: HTAB 14: PRINT n n: GOSUB 3100 VTAB 20: HTAB 37: PRINT n II: SOSUB 3100 VTAB 11: HTAB 4: PRINT n n: BOSUB 3100 BOTO 100 Cl INT ( RND (1) (Xl + P2 + P3 + P4 + 1»: IF Cl < Xl THEN 1000 RETURN C2 = INT ( RND (1) (X2 + PI + P3 + P4 + 1»: IF C2 < X2 THEN 1100 , RETURN C3 = INT ( RND (1) (X3 + PI + P2 + P4 + 1»: IF C3 < X3 THEN 1200 RETURN VTAB 6: HTAB 30: PRINT Cl: RETURN VTAB 6: HTAB 11: PRINT C2: RETURN
II
2200 2300 2400 2500 2550 2600 2700 2800 2900 3000
VT AB 18: HT AB 11':PR tNT C3: RETURN Bosue 3000: VTAB 18: HTAB 3 0: INPUT UlliC4$:C4 = VAL (C 4$) FOR I = 1 .TO P4: VTAB 18: HTAB (32 + I): PRINT "~II: NEXT: VTAB 18: HTAB 40: PRINT .. ~": IF C 4$ CHR$ (13) THEN 2000 IF C4 > (X4 t PI + P2 + P3) OR C4 < X4 THEN 2600 IF VEZ = 1 THEN IF C4 Cl OR C4 = C20R C4 C3 THEN 2600 IF VEZ 2 THEN IF C4 = C2 OR C4 C3 THEN 2600 IF VEZ 3 THEN IF C4 C3 THEN 2600 RETURN VTAB 14: HTAB 29: PRINT .1 (I NVALIDO) Bosue 3100: sosue 3400 VTAB 14: HTAB 29: PRINT
= = =
II
II
* *
GOTO 2000 FOR K 1 TO 7:S PEEK ( 16336): NEXT: RETURN 3100 FOR K = 1 TO 15:5 - PEEK ( - 16336): NEXT: RETURN 1 TO 20:5 = PEEK ( 3200 FOR K - 16336): NEXT: RETURN FOR K = 1 TO 150: NEXT : RETURN 3300
"
FOR K
98
99
4000 L = 2:11 = 22 4100 FOR I 1 TO 40 .4200 VTAB L= HTAB I: PRINT "I"; 4300 VTAB M: HTAB I: PRINT hi"; 4400 FOR J = 1 TO 2:5 = PEEK ( 16336): NEXT: NEXT 4500 L = L + 2:11 = M - 2: IF L M THEN 5000 4600 FOR I = 40 TO 1 STEP - 1 4700 VTAB L: HTAB I: PRINT "''': VTAB H: HTAB I: PRINT "I" 4800 FOR J 1 TO 2:8 PEEK ( 16336): NEXT: NEXT 4900 L = L + 2:M = M - 2: BOTO 41 00 5000 VTAB 11: HTAB 8: INVERSE: PRINT ir JOSO DE PALITINH05
**
5100 5200
VTAB 13: HTAB 2: PRINT APPLE II MARIO FOLLI NORMAL BOSUB 3600: B08UB 3600: RETURN
***
** " **
il
GRAFICOS
PRISMATICOS
Tendo em vista as grandes dificuldades eneontradas pelos inieiantes em programaeao ao tentarem Implementar grafic05 em seus programas, e aqui apresentado uma pequena rotina que podeni ser bastante util na compreensao dos problemas que envolvem tratamento graifico de variaveis. modelo grafico escolhido para ilustra~o e 0 diagrama de 'barras com volume (prismas), por ser bastante .utilizado na pratica e 0 predileto da maioria das pessoas; tanto na forma de barras simples, como na forma de prismas. Sem diivida, 0 que mais assusta de inieio e a neeessidade de inversao das ordenadas (Y) pelo fato do computador trabalhar com este eixo orientado para baixo, ao eontrario do que estamos acostumados a Iidar. Outro ponto de grande dificuldade e a delimita~o do intervale de varia~o das ordenadas na tela em fun. ~io da resolu~o grsfica do "APPLE" (problema de escala vertical)"
100
101
Como solu~io, devemos determinar 0 maximo valor assumido pelas ordenadas, 0 que e feito nas Iinhas 90, 100 e lIO. Este maximo fica armazenado na variavel Z. Nas linhas 130, 140, ISO e 160 calculamos 0 tamanho de cada ordenada (Y (I) ), proporcionalmente maier de todas (Z). Note que neste exemplo, a maxima ordenada tera vtdor 50 = (145 - 95 [MAX/MAX) e que todas as demais possuirao valores maiores (145 - 95 [VR(I)/MAX), 0 que I6gico, pois est amos procedendo a inversao das ordenadas. Os pontos 145 e 50 foram os escolhidos como de minimo e maximo, respectivamente, mas nada 0 impede de altera-Ios conforme suas necessidades. Mas lemhre-se que 0 "APPLE" possui varia~io vertical de 0 a 191 se trahalharmos com HGR2 e 0 a 159 em HGR. Portanto, a formula daIinha 150podera assumir os seguintes extremos : l 'I:, '
GRfiFICOS
PRISMAS
20
10
REM
REM
30 40
50
70
60
Y(I) = 191 - 191 / VR(I) / Z"(para HGR2) Y(I) 159 - 159 / VR(I) / Z (para HGR ) Agora basta mandar 0 computador' desenhar as barras,O que bastante simples e pode ser acompanhado nas linhas de 190 a 280. OBS.: Caso voce altere a formula da linha ISO, observar que as Iinhas 200 e 260 tambem deveriio ter valores alterados, de acordo com os novos Iimites (inferior e superior.)
80 90
100
140
REM REM TEXT: HOME BOSUB 410: HGR : HCOLOR= 3 HOME:Z = VR(I): IF Z = 0 THEN Z = 1 / 100000 REM *** MAXIMA ORDENADA *** FOR I = 1 TO 15 IF VR(I) > Z THEN Z = VR(I) NEXT REM INVERTE DRDENADAS FOR 1 = 1 TO 15 IF VR(I) < 0 THEN Y(I) = 145 : GOTO 160 Y(I) = 145 - 95 VR(I) I Z NEXT I
FOR X
102
lO3
200
210 220 230 240 250 260 270 280 290 300 310
320
FOR Y 145 TO Y(I) STEP 1 HPLOT X,Y TO X + 10,V NEXT Y:T = X FOR Y V(I) TO Y(I) - 10 STEP -1 HPLOT T,Y TO T + 10,y T T + 1: NEXT Y HPLOT X + 20,Y(I) - 10 TO X + 20,t35 TO X + 10,145 I = I + 1: IF I = 16 THEN 290
10 20 30 40 50 60
1: INVERSE
REM REM TECLADO MUSICAL REM MARIO FOLLI REM REM DATA 173,48,192,136,208,4,19 8, 1,240, S, 202,208,246',166,0, 76,3,3,'96 70 FOR I = 771 TO 789: READ A: POKE I,A: NEXT 80 HOME '90 PRINT: PRINT : PRINT ••***** * **TECLADO MUSICAL ********'"
******************** *
*******************
360
NORMAL VTAS 21: HTAB 19: GET X$ IF X$ liN" THEN END IF X$ < > "S" THEN 300 VTAB 23: HTAB 2: INVERSE : PRINT " POSICIONE 0 FORMULARIO E < RETURN> n;: NORMAL VTAB 23: HTAB 3'9: GET X$ PR# 1 PRINT CHR$ (9);"6" POKE 34,22: HOME PR# 0 GOTO 300 REM ENTRAR DADOS DIM V(15),VR(15) PRINT "'ENTRE COM 15 VALORES A SEREM 6RAFICADOS": PRINT FOR I = 1 TO 15 PR INT .1 VALOR (.. I; It): ";: INPUT ; A$:VR(I) = VAL (A$) NEXT : RETURN
IN)? ««<":
n»»>
(5
100
110 120 130 140 150 160 170 190 200 210 220 230 240
PRINT: PRINT "A=DO": PRINT "'S=RE": PRINT I·D=MI II: PRINT "F=FA": PRINT IIS=SOL": PRINT "H=LA": PRINT "J=SI": PRINT "K=DOu A$ = uASDFGHJKWERTVUI" PRINT: PRINT "MAIS : W,E,R, T,V,U,I" VTAB 3: HTAB 17: SET X$ FOR I 1 TO 15 IF MID$ (A$,I,I) = X$ THEN 180 NEXT GOTO 130
180 X
***
***
RETURN
104
105
250 270
290
260
1,ao: CALL
290
300 310
320
330 340
350
360 RETURN 370/ POKE" 0,181: POKE 1,80; CALL 3BO 390
400
410
POKE 0,161; POKE 1,ao: CALL POKE 0,148: POKE 1,80: CALL
771: RETURN POKE 0,121: POkE 1,80: CALL 771: RE.TURN POKE 0.108: POKE 1,80: CALL 771: RETURN POKE 0,99: POKE 1,80: CALL 7 71: RETURN 771: RETURN 771: RETURN
771: RETURN
420
430
106