~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/., TEMPLO DA ZINE WU TANG CLAN... WU TANG CLAN BBS -> 5584-5383 DAS 00:30hs `AS 07:00hs TIRE SUAS DUVIDAS E MANDE SUGESTOES! OS EDITORES DA REVISTA ESTARAO PRONTOS PARA ATENDE - LO OBS: DIVULGUEM NOSSA BBS EM TODOS CANTOS. []'pX_LARVA E CORPORACAO... ~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/., ~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/., wU tAnG cLaN Z|N3 Corporation ~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/., ** - CONTATOS IMEDIATOS. 00 - DEDICATORIA 01 - BATE PAPO INICIAL. 02 - INTRODUCAO A LINGUAGEM ASSEMBLY 03 - INTRODUCAO A LINGUAGEM "C" 04 - INTRODUCAO A LINGUAGEM "C++" 05 - INTRODUCAO A LINGUAGEM CLIPPER 06 - INTRODUCAO A LINGUAGEM DELPHI 07 - INTRODUCAO A LINGUAGEM TURBO PASCAL 08 - INTRODUCAO AO VISUAL BASIC 09 - PARTE IcemaN [IcemaN COMENTA] 10 - PIADAS... Hahahahahahah 11 - RADIO AMADOR!!! 12 - DESAFIO 13 - RECLAMACOES ;(( 14 - AGRADECIMENTOS...Tks ALL =.~`^'-_!+=/.,~`^'-_!_! 00 - HOMENAGEM E DEDICACAO .~`^'-_!+=/.,~`^'-_!.~`^'-_! Dedicamos com todo o respeito e amizade essa Z|N3 wU tAnG cLan corporation a memoria de Lucio Fernandes... Voce sempre foi um cara em tanto, por onde pas- sava deixava alegria e sabedoria, eu Espoleta tenho orgulho de saber que tive e tenho voce como amigo, nunca esquecerei as cervejas tomadas e aqueles papo de doido que agente tinha...hehehe...espero que voce esteja feliz onde estiver e que ai no ceu tenha acesso a internet e BBS(es), cara, voce deixou um grande buraco e uma grande saudade no coracao de todos que te conheceram, nunca vou esquecer as vezes que ficamos andando pela rua, enchendo a lata e cantando Ha tempos...(Legiao Urbana). Obrigado por tudo que voce fez, me ensinou muito, e tenho certeza que sua morte nao foi em vao, esse caminho eh complicado, mas sei que nao vou escapar, "todos iremos passar um estagio em outro lugar..." Caro amigo Lucio... mais conhecido como Lucifer pela ajuncao do nome com o sobrenome(Luci... + Fer...) obrigado mesmo cara, do fundo do coracao... esteja em PAZ, e nos ajude aqui nesse pequeno asteroide que todos chamam de terra a vivermos melhor e sofrermos pouco.... ;)) Saudades... ;-) |Px_LARVA ESPOLETA| Lu, muitas coisas boas aconteceram em nossas vidas. Como por exemplo ter te conhecido. Passamos momentos felizes e muitos outros tristes, mas apezar de tudo tinhamos algo em comum: AMOR. Nos amamos loucamente e para o resto de minha vida estarei sempre aqui para te ajudar. Seja la onde voce estiver, sempre, sempre me lembrarei de tudo o que passamos. Estarei sempre perto de voce, pois quando gostamos muito da pessoa, mesmo nao estando fisicamente presente em nossas vidas, voce permanecera totalmente e eternamente vivo em nossos coracoes. Jamais nos esqueceremos de voce e sempre voce estara com toda aquela alegria, simplicidade e carisma dentro de nos. Muitas coisas mudaram em nossas vidas e a cada dia que passa, sabemos que voce esta cada vez melhor. Sempre gostei de ursinhos de pelucia e voce para satisfazer minha vontade me ofereceu um "Macaquinho". Todas as sua lembrancas ficaram certamente comigo. Sinto - me um pouco culpada por nao retribuir o mesmo amor. So queria voltar a te dizer: TE AMO! Te amei ontei, te amo hoje, mas pra sempre vou TE AMAR seja la da maneira que for, mas te amarei. Posso tentar ser feliz com outro alguem, mas tenho certeza que ninguem vai me amar do jeito que voce me amou. NUNCA em nossas vidas conseguiremos te ESQUECER! TE AMO E PRA SEMPRE VOU TE AMAR Eliza Sati Ito (sua eterna namorada e noiva) *CONTATOS IMEDIATOS* Caso esteja interessado em entrar em contato conosco, mande seu e-mail para NOSSO EMAIL@ALGUMPROVEDOR.COM.BR. Mande sugestoes, aceitamos tambem cRiTiCaS cOnStRuTiVaS, e se estiver interessado em nos ajudar com a ZINE, escreva para nos, mas tenha alguma materia em maos, e claro, se a materia for sua, coloca- remos o nome em sua AUTORIA. Esse tambem e nosso espaco para a carta aos lei- tores, no entanto, qualquer informacao sobre programacao e informatica que voces possam nos passar, sera grata e bem vinda, e caso tenham duvidas, basta perguntar... Px_LARVA ESPOLETA MARCOS FREITAS EAGLE'S POWER THIAGO CORREA /\M/\ V IcemaN .~`^'-_!+=/.,~`^'-_!.~`@$^ 01 - BATE PAPO INICIAL .~.~`^'-_!+=/.,~`^'-_!`^'-_!+ E ai pessoal, beleza pura? por ca, eu ESPOLETA juntamente com a corporacao estamos tentando fazer e trazer algo de interessante para a rapaziada, mas ainda nao sabemos bem o que iremos fazer, pois a nossa area de interesse eh Programacao, ou melhor, Informatica em geral... nao somos Hackers, somente somos jovens devoradores de microcomputadores, daqueles que viram a noite fucando e aprendendo mais, e na verdade o que queremos e livre acesso. Essa eh a primeira vez que estamos escrevendo uma ZINE, e pedimos a colaboracao e paciencia de todos. Nossas maior inspiracao foi a falta de publicacoes de ZINES especializadas em programacao. Nao descriminamos qualquer outra ZINE, pois quem somos nos para criticarmos alguem... :( Px_LARVA ESPOLETA MARCOS FREITAS EAGLE'S POWER THIAGO CORREA /\M/\ V IcemaN .~`^'-_!+=/.,~`^'-_! 02 - INTRODUCAO A LINGUAGEM ASSEMBLY ~`^'-_!+=/.,~`^'-_!*^ Nao sou nenhum expert na linguagem, tudo que sei consegui com muito custo, pois quase ninguem programa em assembly aqui no Brasil... pelo menos os que programam nao se manifestam, fiz varias apelacoes sobre o mesmo, mas nao recebi muito retorno, recebi alguma ajuda (Gracas a Deus nao estou so!), o que me incentivou a buscar mais e mais sobre o assembly. bom, chega de enrolacao e vamos ao assunto 1 - Basico: Bom, aqui é para quem esta iniciando agora na programacao assembly 1.1 - Tipos Numericos bom, essa eh uma das piores partes, mas vamos nessa...... hexadecimal(h) - ex: 1h,2h,0ah,0ch,0ffh bom, os numeros hexadecimais, foi uma forma na qual encontraram para suprimir a deficiencia dos dedos na contagem, bom, contamos ate 10 agora imagine - se contando ate 255(tabela ascii) usando apenas as duas maos mas sem repetir nenhum dedo... hmmm seria meio dificil, mas...... sendo assim, contamos ateh 09h e colocamos letras que suprem a deficiencia das maos sao elas: A B C D E F ex: 1h, 2h, 3h, 4h, 5h, 6h, 7h, 8h, 9h, 0ah, 0bh, 0a1h, 0b7h, etc... claro que podemos usar o 10h tbm. mas o 10h nao eh o 10 decimal, e sim um outro numero qualquer. obs: quando usamos as letras, temos q. antecede - las por 0 binario(b) - ex: 0001b 01010101b 010101b 010101010010b 111111b 01b os numeros binarios sao os que realmente a maquina entende, mas sao um pouco "complexos" e nao nos vem ao caso no momento. Nos numeros binarios so sao aceitos os digitos 0 e 1, note que se termina com um b no final indicando q. eh binario. decimal(d) - ex: 1,2,3,4,5,6,7,8,10,50,9999,100,0,-4 Bom, este nao tem segredos, para um bom observador uma olhada basta obs: note que nao usei o (d) no final do numero, o que significa que ele nao eh necessario....... 1.2 - registradores bom, vou explicar nesse numero os registradores basicos da familia .8086, sao eles: CS - Segmento do codigo - 16 bit Este segmento serve para armazenar o codigo do programa, imagine - o como se fosse um bau onde armazena o codigo do programa. DS - Segmento de dados - 16 bit Este segmento serve para armazenar os dados do programa neste segmento, ficam guardadas todas as variaveis usadas no programa, EXEMPLO: se vc. declarar uma variavel assim: VAR1='hmmmm., Meu primeiro exemplo em ASSEMBLY' o conteudo desta variavel, no caso 'hmmmm., Meu primeiro exemplo em ASSEMBLY' ficara guardado neste segmento, para um uso durante o programa SS - Segmento de Pilha - 16 bit Este é o segmento de pilha, neste segmente, ficam armazenadas as variaveis, estaticas, ou seja, aquelas que aparecem no meio do programa, por exemplo: PUSH AX Neste caso, voce ira armazenar o valor de AX nesse segmento, ou seja, este segmento guarda variaveis que surgiram no decorrer do programa e nao no seu inicio obs: o comando PUSH sera explicado detalhadamente mais pra frente ES - Segmento extra - 16 bit Bom, este nao descobri pra que serve, mas deve ser para armazenar alguma coisa ou outra que nao caiba nos outros segmentos, mas claro, que podem ser armazenados outros valores em ser os "EXTRAS". Pointer Registers: IP - Ponteiro de Intrucoes - 16 bit Este ponteiro, indica a offset da proxima intrucao ou seja, com ele voce pode saber qual sera o proximo comando do programa ainda nao foi util para mim, mas quem ja o usou, favor mandar msgs pra mim. Ahh! outra coisa, este registrador nao é acessivel diretamente como os demais mas existe uma forma(nao me pergunte como pois eu nao sei) de vc. obter o seu valor. SP - Ponteiro de pilha - 16 bit este ponteiro, aponta para a offset que a pilha esta usando ou seja, sempre que voce salvar ou restaurar alguma variavel ou registrador, este ponteiro sera decrementado ou incrementado conforme a instrucao por exemplo, se voce salvar um registrador(AX) este ponteiro sera somado de 2, ai voce pergunta, por que doi!? bom, porque o registrador AX, tem o mesmo valor de uma palavra, ou seja, 2 bytes, sendo assim, cada vez que ele for deslocado serah somado ou subtraido de 2 OBS: no caso de salvar eu estou me referindo ao comando push que so salva regsitradores como AX,BX,etx, mas nao salva do tipo AH,BH,DH,etc BP - Ponteiro Base : usado para passar dados para a pilha e receber dados da pilha *-*-*-*-*-*-* Registradores de uso Geral *-*-*-*-*-*-* AX - Resgistrador acumulador Geralmente usado para calculos, ou para entrada/saida ex: MOV AX,5788h este registrador é dividido em duas partes, sao elas: AH - parte mais elevada no exemplo acima, AX=5788h o valor de AH seria o 57h, ou seja, o primeiro(mais elevado), vc. pode usa - lo diretamente, ex: MOV AH,57h AL - parte menos elevada No exemplo acima, AX=5788 o valor de AL seria o 88h, ou seja, o segundo(menos elevado), vc. pode usa - lo diretamente; EXEMPLO: MOV AL,88h obs:MOV é uma funcao e serah explicada mais pra frente outra coisa, note um (h) no final do numero, isso indica que esse numero e Hexadecimal, mas vc. poderia usar outros tipos, vide exemplo... BX - Registrador de Base Registrador que somente pode ser usado como indice EXEMPLO: MOV BX,5788h Este registrador é dividido em duas partes, sao elas: BH - parte mais elevada no exemplo acima, BX=5788h o valor de BH seria o 57h, ou seja, o primeiro(mais elevado), vc. pode usa - lo diretamente, EXEMPLO: MOV BH,57h BL - parte menos elevada no exemplo acima, BX=5788h o valor de BL seria o 88h, ou seja, o segundo(menos elevado), vc. pode usa - lo diretamente, EXEMPLO: MOV BL,88h CX - Registrador de contagem Registrador usado para intrucoes de LOOPs EXEMPLO: MOV CX,5788 este registrador é dividido em duas partes, sao elas: CH - parte mais elevada no exemplo acima, CX=5788 o valor de CH seria o 57, ou seja, o primeiro(mais elevado), vc. pode usa - lo diretamente,ex: MOV CH,57 CL - parte menos elevada No exemplo acima, CX=5788 o valor de CL seria o 88, ou seja, o segundo(menos elevado), vc. pode usa - lo diretamente, EXEMPLO: MOV CL,88h obs:note q o (h) no final do numero foi retirado, isso indica que esse numero eh Decimal, mas vc. poderia usar outros tipos, veja acima so + uma coisa, usei decimal no exemplo pois geralmente numeros de contagem para facilitar usamos 1,2,...10,11 e nao 1,2,...,0ah,0bh a nao ser que voce seja um genio e saiba tudo de cor :))) DX - Registrador de Dados entrada/saida e usado para multiplicacao e divisao ex: MOV DX,5788h este registrador é dividido em duas partes, sao elas: DH - parte mais elevada no exemplo acima, DX=5788h o valor de DH seria o 57h, ou seja, o primeiro(mais elevado), vc. pode usa - lo diretamente, ex: MOV DH,57h DL - parte menos elevada no exemplo acima, DX=5788h o valor de DL seria o 88h, ou seja, o segundo(menos elevado), vc. pode usa - lo diretamente, ex: MOV DL,88h *-*-*-*-*-*-* Registradores de Indice *-*-*-*-*-*-* Estes dois foram os que eu demorei mais para entender, pois como disse sao dificeis explicacoes aqui no brasil, mas fucando um pouco a gente consegue :)) SI - Indice Fonte: usado como Fonte em operacoes de strings Nesse Registrador, sao colocadas as FONTES, ou seja, de onde vc ira tirar alguma informacao para mandar para algum outro lugar "geralmente (DI)" DI - Indice destino: usado como Destino em operacoes de strings Eh o Registrador que ira receber o q. foi enviado de SI e ira colocar no lugar desejado.. um bom exemplo disso eh quando se vai escrever algo na tela.. entao pegamos o q. vamos escrever e colocamos em SI depois disso em DI colocamos onde vamos escrever o q. estah em SI.. e assim por diante veja um exemplo: MSG DB 'TESTE' MOV SI,OFFSET MSG MOV DI,30 Imagine esse exmplo como se fosse escrever algo na linha 1 coluna 30, pois DI vale 30 imagine o DI como se cada numero ali digitado eh igual a um ponto na tela em sequencia.. entao se colocamos 60 ele imprime na linha 1 coluna 60 jah se colocarmos 90 ele irah imprimir na linha 2 coluna 11.. e assim vai.. isso eh soh para vc. ter uma base.. nem tente usar essas instrucoes ai q. nao irao funcionar, por falta de outros comandos q. aprenderemos mais tarde..... Complicado neh?!?!? Bom, mas eh isso ai.. o basico q. temos q. aprender para iniciar eh isso.. mais pra frente eu mando umas fontes legais pro6 :))) |EAGLE'S POWER| .~`^'-_!+=/.,~`^'-_! 03 - INTRODUCAO A LINGUAGEM "C" ^%$# .~`^'-_!+=/.,~`^'-_!* Ai pessoal, aqui vai a nossa introducao sobre Linguagem "C", esperamos que gostem, mas como este e o nosso primeiro ZINE, colocaremos uma pequena INTRO, e se o povo gostar, continuaremos...LA VAI... "C" foi inventada e implementada primeiramente por Dennis Ritchie em um DEC. PDP-11 que utilizava o sistema operacional UNIX. "C" e um processo de desen- volvimento que comecou com uma linguagem mais antiga chamada BCPL, que ainda esta em uso, em sua forma original na Europa. BCPL foi desenvolvida por Martin Richards e influenciou uma linguagem chamada "B", inventada por Ken Thompson. Na decada de 70, "B" levou o desenvolvimento de "C". Muitos acham pelo fato de "C" ser uma linguagem de Medio Nivel, ela e menos poderosa, dificil de usar ou menos desenvolvida que uma linguagem de Alto Nivel como o BASIC e PASCAL. "C" eh uma linguagem riquissima e especial no que diz respeito a manipulacao direta de Bits, Bytes, palavras e ponteiros, e isso a torna capacitada para programacao em sistema. "C" e uma Linguagem Estruturada, embora o termo Linguagem Estruturada em Blocos nao seja rigorosa- mente aplicada em "C", pois a principal caracteristica de uma linguagem estru- turada e a compartimentalizacao do codigo e dos dados, isto eh, a habilidade de uma linguagem seccionar e esconder do resto do Programa todas as informa- coes necessarias para realizar uma tarefa especifica. Uma linguagem estruturada permite muitas possibilidades na programacao. Ela suporta, diretamente, diversas construcoes de lacos, como o While, do-while e for. Uma outra maneira de estrutura e compartimentalizar o codigo em "C" eh atraves do uso de blocos de codigos. Em "C", um bloco de codigo e criado colocando-se uma sequencia de comandos entre chaves. POR EXEMPLO: if (x<10) { printf ("muito alto, tente novamente\n"); /* Este eh o bloco scanf("%d", &x); de codigo */ } Os dois comandos apos o if sao executados se x for menor que 10. Esses dois comandos, junto com as chaves, representam um bloco de codigo. Eles sao uma unidade logica: um dos comandos nao pode ser executado sem que o outro tambem seja. Veja tambem que todo bloco de comando em "C" pode ser um comando simples ou um bloco de comandos. Blocos de codigos permitem que muitos algoritmos sejam implementados com clareza, elegancia e eficiencia. Alem disso eles ajudam o programador a conceituar a verdadeira natureza da rotina. Mas nao se assuste, pois apartir de agora voce ira compreender :-) Agora que tal comecarmos mesmo? Beleza, entao agora vamos ver a estrutura de um programa em 'C', para que possamos comecar os exemplos e tao logo a fazer curtos programas. main() /* primeira funcao a ser executada neste caso */ /* tudo que tiver entre(/*)sao comentarios ou instrucoes */ { /* aqui iniciamos o corpo da funcao */ } /* aqui eh o termino da funcao */ pS: [para sua melhor visualizacao veja abaixo o mesmo exemplo do programa acima so que sem nenhum comentario ou instrucao] main() { } oBS: Observe que os parenteses apos o nomo significa que eh uma funcao... podemos ter outros nomes de funcoes tambem, mas com execao do [main], que eh reservado para o inicio da execucao do programa. Ah, tem outra coisa que devem saber, todas as palavras chaves em 'C' sao minusculas. Em 'C', MAIUSCULAS e minusculas sao diferentes: else eh uma palavra - chave, porem ELSE nao. Uma palavra - chave nao pode ser usada para ne- nhum outro proposito em um programa em 'C', ou seja, ela nao pode ser- vir como uma variavel e como nome de uma funcao. Todo programa em 'C'consiste em uma ou mais funcoes. A unica funcao que precisa estar presente eh a primeira a ser chamada main(), portanto nao tente usar main() como nome de uma variavel que confundira o compilador. Como percebeu esta eh a estrutura de um programa em 'C', mas para que possa- mos comecar a mexer os pauzinhos(nao leve essa por traz :) ), devemos conhe- cer primeiramente as palavras - chaves do famoso TC... Veja o quadro abaixo: ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░auto ░ do ░ goto ░ signed ░ void░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░break ░ double ░ if ░ sizeof ░ register░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░case ░ else ░ int ░ static ░ unsigned░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░char ░ extern ░ long ░ switch ░ volatile░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░const ░ enum ░ while ░ typedef ░ ░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░continue ░ float ░ return ░ union ░ ░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ ░default ░ for ░ short ░ struct ░ ░ ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ Agora que voce ja conhece as 32 palavras - chaves em 'C', fica mais facil. Ai voce me pergunta, Ueh nao ta faltando nada...Ah entao pera ai malucao eh claro que ta faltando, ta faltando voce ver algumas funcoes, entao para comecarmos, vamos aos exemplos, pois nao adianta nada eu passar as funcoes pra voce decorar, mas e ai, que adianta, eh programando que se aprende, e voce vera que com o tempo voce estara familiarizado com as funcoezinhas, e logo podera criar as suas, entao vamos adiante. Exemplo 0: Este exemplo nao faz nada. main() { /* tudo aqui eh comentario */ } Exemplo 1: Esse pgm nao faz nada mais nada a menos do que apagar a tela. main() { clrscr(); /* Esta funcao apaga a tela */ } Exemplo 2: Esse programa imprime uma mensagem na tela. Esta funcao [printf], tem o mesmo efeito que o PRINT do Basic, acho que voce ja ouviu falar nao eh? main() { printf("Nossa estou aprendendo mesmo."); } Exemplo 3: Esse programa eh a uniao do exemplo 1 com o exemplo 2, ele primeiramente executa a funcao de apagar a tela e depois imprime a mensagem. main() { clrscr(); /* apaga a tela */ printf("Nossa estou aprendendo mesmo"); /* imprime uma mensagem na tela */ } Exemplo 4: Esse program faz o seguinte: Ele limpa a tela, imprime a primeira mensagem, e na segunda mensagem ele pula uma linha, por causa do(\n). ah, mais pra frente eu vou passar os codigos de barra invertidas tambem, en- tao aguardem a proxima edicao... vai ficar mais ou menos assim: Nossa estou aprendendo mesmo. eh muito interessante esse curso. main() { clrscr(); printf("Nossa estou aprendendo mesmo."); printf("\nEh muito interessante esse curso."); } |Px_LARVA ESPOLETA| .~`^'-_!+=/.,!~`^'-_! 04 - INTRODUCAO A LINGUAGEM "C++" .~`^'-_!+=/.,~+`^'-_!*^ E ai pessoal, tudo alto? Estou escrevendo esta 1ª aula de C++ para os futu- ros programadores :) que se interessam por esta milagrosa ferramenta de programacao que foi desenvolvida pelo "Bjarne Stroustrup" - nome estranho! Esse cara no qual eu citei logo acima foi o criador do C++, em 1983, nos Laboratorios Bell, em Murray Hill, New Jersey, mas isso nao importa, o que importa eh que ele escreveu. Na realidade o C++ e chamado de "C com classes", ele foi desenvolvido com o proposito de facilitar o gerenciamento, a programacao e a menutencao de grandes sistemas de software. Como C++ tem o mesmo esqueminha do C, entao tudo o que voce ja sabe de C pode ser aplicado aa C++, legal! Um dos aspectos que mais levou C++ ao topo eh que ele eh uma Programacao Orientada aa Objetos, ou (POO), ao contrario das outras, nao que eu esteja criticando outras linguagens (quem sou eu:)) mas sim pelo fato de mostrar o que realmente eh C++. Vou explicar melhor o que eh uma (POO): Um objeto eh na realidade "muito" parecido com as esturturas que usamos em C, execeto pelo fato de poder conter tanto dados quanto funções. Bom, voce ja aprendeu muito "blah, blah", agora vamos as aulas praticas! +-----+ Todo programa que nos criamos, eh obvio, ira realizar algum tipo de operacao de entrada e saída E/S. Portanto vamos comecar com o teclado. Veja os topicos abaixo que iremos aprender nesta edicao: Antes de inciarmos queria deixar bem claro que todos os arquivo (codigo fonte em C++) inciam-se com a extensao "*.cpp". E os arquivos de cabecalho com "*.h" +-----+ TOPICOS +--------------------+ # Atencao # O que eh Fluxo de (E)ntrada/(S)aida. # O que eh um arquivo de cabecalho # O que eh "cin" e "cout" # A diretiva #include # A arquitetura de um programa em C++ # Comentarios # Meu primeiro programa em C++ :) # Mais sobre o "cout" # Tipo de Dados +--------------------+ +-----+ ATENCAO +-----+ Ante de comecarmos, devemos saber que o C++ diferencia palavras maiusculas de minusculas, entao o default eh "sempre" utilizarmos letras minusculas. +-----+ O QUE EH FLUXO DE E/S +-----+ Uaaaa.... vou ser o mais simples possivel para nao confundir. Um fluxo de E/S nada mais eh que uma sequencia do fluxo de caracteres escritos para o video ou lidos no teclado. Quando voce, humilde e criativo programador, realiza operacoes de E/S em C++, sempre voce usa os fluxos de E/S, quem sao esses fluxos? Esse fluxos sao, por exemplo: "cout", "cin", e por ai vai... Da forma que C++ foi projetado ele define fluxos de E/S como classes. :)) +-----+ O QUE EH ARQUIVO DE CABECALHO +-----+ Para quem ja programamou em C fica mais facil.Por exemplo, de uma olhada nos arquivo do seu compilador "\...\INCLUDE\IOSTREAM.H" voce vera um monte de codigo "monstruoso", e eh la que estao todos os coman- dos usados, tipo, "nao" todos! cada um no seu respectivo arquivo. Como eu disse no arquivo IOSTREAM.H, eh la que se encontra por exemplo: "cout" e "cin" - funcoes de E/S. Nao se preocupe e nao tente entender o que se passa dentro desses arquivos ".H" ou header(arquivo de cabecalho), porque nem eu entendo o que se passa por ali. +-----+ A DIRETIVA #include +-----+ Hmmm... sempre, sempre, sempre e sempre na sua vida de programador em C++ voce ira utilizar a diretiva #include, o que eh a diretiva #include? A diretiva #include nada mais eh do que um comando que voce coloca para que o compilador saiba quais os arquivo de header que contehm todas as fun- coes usadas pelo seu programa. Exemplo, para incluir o arquivo IOSTREAM.H que falamos no comeco basta: #include , ou seja, voce fala para o compilador: "Inclua já o iostream.h porque estou usando "cout" ", entendeu? +-----+ A ARQUITETURA DE UM PROGRAMA EM C++ +-----+ Antes de comecar a desenvolver o nosso "super programao", vamos ver antes como funciona o abiente de um programa em C++ : #include arquivo de cabecalho (.H) void main() { ... corpo do programa ... } So?! so, apenas isso...:) quer dizer isso eh apenas uma forma bem...zicada! Vamos as explicacoes... Na primeira linha: #include arquivo de cabecalho eh onde iremos colocar aquele arquivo header (H), lembra? Por exemplo, como iremos utilizar a funcao "cout", termos que adicionar a seguinte linha: #include como eu ja disse localizada no "\...\INCLUDE\IOSTREAM.H". O que eh o "void main()" ? Bom o "void main()" na verdade eh um prototipo, ou procedure em pascal por exemplo, etc... Mas o "void main" sempre tem que existir por lei em algum programa que voce ira criar, a nao ser que voce queira criar um header (veremos na proxima edicao), tipo, o "void main" serve nada mais nada menos que informar para o compilador por onde comecar a processar as informacoes, tipo, sempre que eu criar varios prototipo ou procedure se voce preferir, ele sempre vai comecar com o "void main()" que eh onde sempre comeca um programa, sacou? Hmmm... voce deve estar perguntando para que serve as chaves {}? Apenas para saber onde comeca e onde termina um prototipo, loop, etc... Quando estiver aperta ({) indica o comeco, e fechada (}) o fim, interessante. :) E o "...corpo do programa..."? Esse eh onde voce vai inserir o "bolo" de codigo e rasuras, ateh que você chegue onde deseja! Hmmm... um coisa inter // comentario! Entendeu? essa duas barrinhas sempre vao ser ignoradas pelo compilador! Existe um outro metodo de comentario, que eh usado em C, mas funciona com C++ tambem, que eh: /* comentario */ Esse eh mais feio, so que mais pratico, tipo, eu poderia usar este assim: /* meu comentario : : : tudo sobre C++ */ Pegou o espirito da coisa? Do outro modo tinha que ser: // meu comentario // : // : // : // tudo sobre C++ De comentario eh so isso! +-----+ MEU PRIMEIRO PROGRAMA EM C++ :) +-----+ Ja tava na hora neh!? Nada melhor que mostrar na pratica para voce ja ficar mais familiarizado com o C++ Bom, o que veremos aqui eh um exemplo muito simples de saida, ou seja, o seu super programcao agora so vai mostrar "beleza?" na tela, beleza? Bom... entao mao na massa: // Nome: beleza.cpp #include // Inclui o cabecalho void main() // O primeiro lugar por onde comecar { cout << "Beleza?" << endl; // Exiba na tela } Para compilar basta digitar no prompt: Se voce esta usando o Borland C++: BCC beleza.cpp Se voce esta usando o Turbo C++ : TCC beleza.xpp Se você não está usando nehum dos dois: Se vira! Vamos passo-a-passo: 1º Incluimos o arquivo de cabecalho que contem "cout" e "endl" 2º Colocamos void main() para que o compilador saiba onde comecar 3º Abrimos chaves { 4º Inserimos o nosso querido codigo para mostrar na tela "beleza?" 5º Fechamos as chaves } 6º Compilamos 7º Executamos Hmm... os dois sinais << serve para jogar a string que sempre tem que estar entre "aspas" para cout, que eh o comando de saida, entendeu a logica? Voce viu uma coisa nova que eh o "endl", "endl" signifca como se apertasemos o ENTER, endl significa end line - fim da linha, entao ele pula! Voce tambem notou o ponto-e-virgula(;), pois eh, esse ai voce sempre vai ter que colocar em qualquer funcao, tipo, sempre no final de algum comando que voce der, por exemplo, vamos ver outro programa de entrada e saida: // Nome: nome.cpp #include void main() { char nome[10]; // declara uma variavel de caracter(char) cout << "Oi, insira o seu nome e de ENTER: "; cin >> nome; cout << "Serio? meu nome tambehm eh " << nome << endl; } Vamos a ajuda: Em primeiro eu fiz tudo aquilo que ja aprendemos, depois declaramos uma variavel de caracter que apenas ira armazenar 10 caracteres, depois pedimos para ele entrar com o nome e armazenamos o texto digitado na va- riavel "nome" e exibimos! Repare que nao usamos no primeiro "cout" o "endl", simplesmente por que nao queriamos que ele desse enter sozinho, apenas quando eu pressionar :). Compile o programa que fica mais facil! +-----+ MAIS SOBRE O "cout" +-----+ O que sera que tem mais para aprender sobre o "cout" ? Xi! pode sonhar que tem muito, mas muita coisa mesmo para aprender sobre o "command output". Vamos ao que interessa! Por exemplo, veja este exemplo: : : void main() { cout << "Alarme!!\a"; } Reparou o "\a" no final? Entao compile e execute este programa que voce vera a seguinte saida na tela com um leve apito(Beep!) do seu som interno, ou PC Speaker. O "\a" significa eu falar para o programa dar um apito, ou um som de alerta nas mensagens que voce desejar, entende? Vejamos a seguinte tabela com os principais: Tabela 1.1 Codigos da barra invertida para "cout" +------------------------------------------------+ +----------+-------------------------------------+ | Codigo | Significado | +----------+-------------------------------------+ | \a | Alerta! (sinal sonor, ou sei la!) | | \n | Nova linha, o mesmo que "endl;" | | \b | Retrocesso | | \r | Retorno de Carro, vc ta ligado! | | \f | Avanco de pagina | | \t | Tabulacao horizontal | | \v | Tabulacao vertical | | \\ | Barra invertida (para exibir) | | \' | Apostrofe | | \" | Aspas | | \0 | Nulo, o mesmo que "NULL" | +----------+-------------------------------------+ Veja um exemplo de tabulacao: : void main() { cout << "Tabulacao\tcom\tc++" << endl; } : Copile e execute. E divirta-se, tente usar todos para testar e ir adquirindo experiencia :) +-----+ TIPO DE DADOS +-----+ O que eh realmente um tipo da dado? Por exemplo, no nosso primeiro exemplo, BELEZA.C, eh muito atraente, mas ele nao eh nada util. Ele se limita muito a uma acao escrota de imprimir na tela: "Beleza?". Hmmm... entao existe muito mais que isso em C++? :), eh claro! eh o que veremos... Vamos imaginar que queremos acompanhar o numero da versao de um programa atraves de outro programa. Quando fosse executado, o programa iria exibir o numero da versao, tipo: "Versao: 1". O nosso programa teria entao de ter liberdade de atuar sobre esse numero, e na proxima versao outro nº ..... Em C++, os dados sao armazenados em algum lugar na memoria que so Deus sabe! E determinamos o espaco de uso! Vamos aos exemplos: #include void main() { int versao = 1; cout << "Versao: " << versao << endl; } Este programa ira exibir: Versao: 1 Muito simples neh? O "int" significa que voce declarou um variavel inteira(número) para "versao" Vamos a outro exemplo do uso de char(cartactere): #include void main() { char nome[] = "Lady Di"; cout << "Adeus: " << nome << endl; } Entendeu como funciona o esquema? Na proxima edicao mostrarei os tabelas dos mais usados Bom.... por enquanto ja da pra se ter uma nocao de C++, eu expliquei mais sobre a teoria em si, e nao a logica de programacao que eh o que mais im- porta, mas pra comecar eu acho que no minimo deve conhecer esses termos e tal. Fucem e vejam mais detalhes em livros, etc... Na proxima edicao pretendo dar inicio aos LOOPS, IF, entrada no dispositivo do mouse, e em graficos, e em operadores matematicos :( Divirtam-se! |MARCOS FREITAS| .~`^'-_!+=/.,~^'-_! 05 - INTRODUCAO A LINGUAGEM CLIPPER .~`^'-_!+=/.,~`^'-_!.~ E ai galera Clippera, como andam as coisas?!?! :)) Bem, Clipper parece coisa antiga, mas sei lah.. aos meus ouvidos ainda soa algo do tipo (Nossa, o Clipper estah Vivo :))) bem... sei lah. muitos odeiam clipper muitos (como eu) o amam e muitos nao conhecem entao o que quero fazer?!?! bem, primeiramente da uma visao aos que nao conhecem.... Depois de atingido esse objetivo, o proximo serah agradar akeles que conhecem e o adimiram... e por ultimo estarei tentando converter os "anti-clipper" que existem por ai. Nao os culpo... :)) Bom, chega de papo e vamos logo ao que interessa. Conceitos Basicos O Clipper eh uma otima linguagem programacao para aqueles que necessitam mexer com banco de dados.. eh uma otima linguagem vista por esse ponto. o que ha de mais interessante no clipper, assim como em muitas linguagens sao as proporcoes que uma linguagem pode atingir com o auxilio de outras. Mas vc. me pergunta, como assim?!?! Bom, o clipper aceita as famosas LIB geralmente criadas em C ou ASM... sei lah. depende muito do programador.. bom, o que nos interessa eh que apesar do clipper ser otimo, ele nao tem muito apoio na parte que se diz respeito a graficos entre outras coisas mas por outro lado ele eh muito util para auxiliacao em escritorios e em presas que necessitam de controles/inclusoes, etc.. assim sendo obrigato- rio o uso dos famosos banco de dados... :)) Bom, mas voltando o assunto, para se criar uma LIB sao necessarios alguns comandos de apoio ao clipper que na verdade sao funcoes de retorno, entre outras coisas q. talvez vcs. nao entendam. agora vamos analizar da parte critica. Qual eh o unico defeito do clipper; gerar executaveis muito extensos, os menores ficam com 300 kb acho que eh muito e um outro detalhe ele tbm. tem problemas quanto a alocacao de memoria, pois apesar de tudo ele carrega no minimo cerca de 250-300 Kb da memoria convencional, o que na realidade acaba com o sistema. Mas fiquem tranquilo qto a execucao do programa, pois ele carrega normalmente e tudo mais.. o problema mesmo eh se vc. quiser carregar o programa e mais alguma outra coisa ai.. bom, sei lah.. :)) Utilitarios!!!! O clipper eh composto de varios utilitarios,entre eles vc. pode encontrar: CLD - Eh o Debugador do clipper, por ele vc. pode descobrir possiveis erros em seus programas. NG - Norton Guide(guia do Norton) com ele estao todos os comandos do clipper, entao vc. nao terah muita dificuldade ao programar.... por isso acho q. sobre o clipper soh terao duas ou 3 edicoes.. DBU - Digamos que ele seja o DBASE soh q. de um modo mais simples e por meio de menus... muito util para vc. criar o seu .DBF ou altera-lo. PE - Eh o Editor do clipper, mas eu recomendo e prefiro o EDIT do DOS ainda.. :)) RL - Eh um utilitario que tem por objetivo criar e/ou editar relatorios e etiquetas que serao usados pelo seu programa, caso sejam necessa- rios Configuracoes Para que o clipper funcione normalmente sao necessarios alguns comandos no config e no autoexec.. sao eles: No Config.sys 1 - FILES = (nnn) onde nnn sao os numeros de arquivos que serao abertos ao mesmo tempo pelo clipper ou qualquer outro programa obs: em caso de REDE, use - o em conjunto com o DHELL.CFG 2 - BUFFERS = (nn) onde nn sao os numeros de buffers de memorias que serao reser- vados para qualquer aplicativo.... obs: use 8, 16 ou algum multiplo para que possa utilizado cor- retamente. No Autoexec.bat 1 - SET CLIPPER = F (nnn) ; E (nnnnn) ; X (nnn) ; SWAPPATH:"C:\CLIPPER5\SWAP" ; DYNF:8 ; TEMPPATH:"C:\CLIPPER5\TEMP" F - Configura o numero de arquivos que poderao ser abertos ao mesmo tempo pelo programa executavel. E - Valor de memoria expandida que serah usada pelo programa minimo = 0 (anula o uso da EMS) maximo = 8192kb (8mb) X - Bloqueia nnn Kbytes da memoria convencional para simular maquinas com pouca memoria RAM SWAPPATH - Informa o local onde serah criado e utilizado um arquivo SWAP para quem nao conhece um tipo de memoria virtual para uma maior performance na compilacao. DYNF - otimizacao para manipulacao de overlays internas. obs: o melhor desempenho dessa variavel eh: 8. TEMPPATH - Indica o local onde serao criados os arquivos de indexa- cao e sort. 2 - SET INCLUDE=c:\clipper5\include indica o caminho dos arquivos que serao incluidos ao fonte. ex: .CH 3 - SET OBJ=c:\clipper5\obj indica o caminho dos arquivos que serao incluidos ao fonte. ex: .OBJ 4 - SET LIB=c:\clipper5\lib indica o caminho dos arquivos de liBraria do clipper ex: .LIB 5 - SET PLL=c:\clipper5\pll indica o caminho dos arquivos de Codigo pre-lincado ex: .PLL 6 - PATH=C:\CLIPPER5\BIN;C:\NG;%path% Finalizar a intro Bem, para finalizar a intro vou deixar ak. os comandos do compilador e do linkeditor pois muitos sabem compilar, mas nao sabem exatamente o que faz cada opcao... Bom, para se compilar um programa feito em clipper usa - se CLIPPER ARQUIVO.PRG [/opcao] obs: a opcao nao eh necessaria com isso geramos o .OBJ dai para criarmos o .EXE fazemos o seguinte: RTLINK FILE ARQUIVO.OBJ [demais comandos] [/opcoes] obs no lugar de demais comandos, sao comandos e opcoes adicionais e nao necessarias dependendo da compilacao... o basico eh isso ai.. agora vamos ver as subdivisoes de cada um. 1 - CLIPPER: /A - Declara variaveis como sendo MEMVAR automaticamente. /B - Da acesso ao "DEBUG" sem essa opcao, o CLD nao funciona . /D - Declara uma constante e manifetsa ao pre-processador. /I - Indica o diretorio dos arquivos .CH (includes lembra?) /L - Desativa a contagem de linhas compiladas /M - compila apenas um modulo desconsiderando outros q. o programa chame, por exemplo se vc. criou 5 modulos e o nome do principal eh TESTE.PRG ele compila apenas o TESTE.PRG ignorando os comandos DO que servem para chamar outros modulos. /N - Essa funcao eh meio complicada de explicar, mas vamos lah quando vc. comeca um programa com o comando: FUNCTION TESTE() ...... RETURN bom, se vc. simplesmente digitar CLIPPER PROG ele nao ira compilar mostrando uma msg de erro, mas.... se vc. acrescentar a opcao /n ele compila, sacou? /O - indica o diretorio no qual o arquivo .OBJ serah criado /P - cria um arquivo pre-processado. /Q - Compila em modo QUIETO, ou seja, enibe a numeracao de linhas no codigo objeto(.obj) /R - Forca a pesquisa de sertas bibliotecas /S - essa opcao eh muito util, qdo se quer checar se o progra- ma esta sem erro durante a compilacao, use este comando que ele nao ira gerar o .OBJ, apenas ira "compilar" e mostrar a linha do erro. /T - indica o caminho do arquivo temporario gerado pelo cli- pper /U - forca a leitura em outros arquivos .CH alem do padrao. /V - Assume todas constantes como variaveis de memoria, sendo necessario a utilizacao de ALIAS pra identificar os cam- pos dos DBFs /W - Gera msgs de WARNIG = atencao, aviso que indica que alguma variavel nao foi declarada no programa... 1 - RTLINK: opcoes: /A - /C - /D - demais comandos (OPCIONAL) LIB - especifica as livrarias(LIB) que serao usadas (OPCIONAL) OUTPUT - especifica o nome do arquivo .EXE que serah criado, caso vc. nao use esta opcao, o nome criado serah o mesmo do fonte.... (OPCIONAL) VERBOSE - exibe os arquivos e funcoes utilizados na link-edicao step by step(passo a passo) :)) (OPCIONAL) PLL - indica o nome da PLL que serah usada na link-edicao. notas: pra q. serve uma PLL?!?!? bom, serve para vc. diminuir o tamanho do .EXE por exemplo, ela funciona como uma DLL ou uma LIB se preferir soh q. tem uma vantagem, ao usa la, vc. pode escolher as funcoes que serao linkadas ao seu programa, podendo assim, tirar as desnecessarias e diminuindo o tamanho do .EXE mas qdo mandar o .EXE, mande tbm. a .PLL senao o arquivo nao funciona... bom, comentarei sobre como criar suas proprias PLLs mais pra fente... eh isso ai.. por enqto estou ficando por ak.. parece pouco, mas minha mao jah estah cancada... :)) |EAGLE'S POWER| ~`^'-_!+=/.,~`^'-_! 06 - INTRODUCAO A LINGUAGEM DELPHI .~`^'-_!+=.~`^'-_!+=/.,& Oi pessoALL, vamos falar um pouco agora de Delphi. O Delphi poderia ser considerado como o "Visual Pascal" da Borland, afinal, ele incorpora diversos comandos da linguagem Object Pascal. Ele traz algumas vantagens a seus desenvolvedores como: - Disponibilidade do codigo fonte de seus componentes; - Geracao de arquivo executavel independente de qq biblioteca de tempo de execucao(o Visual Basic por ex precisa do VBRUN???.DLL + VBXes); - Pode gerar DLLs, assim como novos componentes pra si mesmo, etc. Nessa primeira edicao, vou tentar explicar como utilizar o ambiente Delphi, para que mais tarde possamos realmente escrever algum codigo. Peco paciencia para aqueles que jah conhecem alguma coisa de Delphi, a gente chega lah. Criando seu Primeiro Formulario ------------------------------- Criar um formulario eh uma das coisas mais faceis de se fazer, pois ao abrir o Delphi, ele cria automaticamente um novo formulario vazio, pronto para seu uso. Acredite se quiser: Vc jah tem um aplicativo funcional! Vc pode executa-lo pressionando F9 ou pelo comando Run no menu Run. O Delphi cria um arquivo executavel independente de qualquer biblioteca de tempo de execucao. Naturalmente esse aplicativo nao serah muito util, uma vez que soh possui uma janela vazia, sem nenhuma capacidade. Adicionando um Titulo --------------------- Para um usuario o titulo da janela representa o nome do aplicativo, portanto muda-lo eh quase uma regra. Para isso, utilize o Object Inspector, se ele nao estiver visivel, pressione F11. No Object Inspector, localize a propriedade Caption. Alterando essa propriedade, vc podera observar que o titulo da janela do seu aplicativo tambem eh alterado. Programacao Orientada a Objetos ------------------------------- Se vc jah estiver familiarizado com programacao orientada a objetos (OOP) talvez queira pular essa parte, mas senao estiver, nao pule, esta eh uma parte IMPORTANTE pra vc. Pensando em Objetos. ------------------- Veja um exemplo: Vc entra numa loja de computadores, com algum conhecimento de hardware, vc compra varios componentes: Uma placa-mae, um Processador de ultima geracao, uma placa de video, teclado, etc... A ideia que se tem quando se termina de montar as varias unidades auto-suficientes, eh de que vc tem um sistema no qual todas as unidades estao em conjunto pra formar um sistema maior, o computador. Mas,internamente, cada um desses componentes pode ser bastante complicado (ha tambem um detalhe q deve ser lembrado, esses componentes sao fabricados por diversas empresas diferentes com diferentes metodos de projeto). Mas vc nao precisa saber como a firma trabalha, qual a funcao de cada chip na placa do seu computador. Tudo o q vc estah interessado eh em como essas unidades interagem entre si. Sera q essa placa de video funciona com esse monitor? Uma vez q vc saiba como as diversas partes interagem entre si e como ajustah-las, serah facil colocar todo o sistema pra funcionar. O q isso tem a ver com programacao??? Tudo. A programacao orientada a objetos (OOP) trabalha da mesma forma. Ao usar OOP, o seu programa eh composto de varios compontentes diferentes e auto-suficientes (objetos), cada um tem sua funcao no programa e todos podem se comunicar de formas predefinidas. Objetos e Classes ----------------- As classes podem ser entendidas como um modelo abstrato de um grupo de objetos. Tome por exemplo uma arvore qualquer. Essa arvore, possui caracteristicas que nenhuma outra especie possui, assim como caracteristicas q todas as outras tem, como por exemplo folhas, raizes, etc. A classe Arvore, entao descreve tudo q eh comum a todas as arvores, como raizes, folhas, etc. Observer q na OOP, o termo classe refere-se ao tipo de dado, enquanto o termo objeto a um caso de tipo de dado, uma variavel. Mais adiante, veremos como utilizar as classes com mais detalhes, assim como, criar novas classes. Usando Componentes ------------------ Cada formulario pode conter uma serie de componentes. Vc pode escolher um componente na palheta de mutiplas paginas na janela Delphi. Para acrescentar um componente ao formulario, clique sobre este componente, vah com o pointeiro do mouse ateh o formulario e clique sobre este. Vc podera, entao arrastar com o mouse a borda inferior esquerda do componente ou simplesmente soltar o botao do mouse, para assumir o tamanho default do componente. Mudando Propriedades -------------------- Todo componente Delphi possui uma propriedade qualquer. No Object Inspector vc pode alterar diversas propriedades dos componentes. Uma propriedade obrigatoria em todo componente Delphi eh a propriedade Name (Nome). O nome eh uma propriedade interna, ele eh usado como o nome de uma variavel referente ao componente. Portanto, para modificar a propriedade Name vc deve seguir as regras de criacao de um identificador na linguagem Pascal: - Um identificador eh uma sequencia de caracteres, numeros e sublinhados. - O primeiro caracter de um identificador nao pode ser um numero; deve ser uma letra, ou caracter sublinhado; - Nenhum espaco eh permitido em um identificador; - Identificadores nao sao sensiveis a letras maiusculas e minusculas: Btn_Ok, BTN_OK e btn_ok referem-se ao mesmo identificador. Respondendo a Eventos --------------------- Antes de mais nada, o q eh um evento? Explicarei com exemplos: Um click com o mouse sobre um botao ou formulario, sao eventos, assim como o pressionar de uma tecla eh tambem um evento. Quando vc pressiona o botao do mouse sobre um componente ou sobre um formulario, o Windows informa seu aplicativo, enviando uma mensagem. Mas por enquanto, vamos ignorar o comportamento do Windows ok? Vc deve estar ciente de que o Delphi reage ao receber uma dessas mensagens e ao invocar um "metodo de resposta a eventos" adequado. O Delphi define uma serie de eventos diferentes para os diversos componen- tes. A lista de eventos de um formulario eh diferende da de um botao, embora alguns eventos sejam comuns a ambos os componentes. Para responder a um evento, siga os seguintes passos: 1. Selecione o componente onde ocorre o evento, no formulario ou no Object Inspector; 2. Selecione a pagina Events; 3. De um duplo click com o botao esquerdo do mouse sobre a area branca no lado direito do evento que vc deseja responder. Um novo nome de metodo aparecerah. O Delphi cria um procedimento no codigo do formulario e abre o arquivo de codigo-fonte nessa posicao. Agora vc pode comecar a digitar algumas instrucoes entre as palavras begin e end (respectivamente, inicio e fim) que delimitam o codigo do procedimento. Se vc nao conhece a linguagem Object Pascal, nao se preocupe, estudaremos isso mais a diante. Se vc quiser remover algum metodo de resposta que escreveu, remova todo o codigo q VC escreveu entre as palavras begin e end do procedimento, deixando todo o codigo que foi gerado pelo Delphi, este automaticamente removera quaisquer metodos vazios do codigo-fonte, assim como a referencia a eles na pagina Events do Object Inspector. Nao tente remover os codigos que sao gerados pelo Delphi,antes de saber para q eles servem ou vc poderah comecar bem o seu aprendizado sendo apresentado a sua primeira mensagem de erro. Ueh! Cade o resto? ------------------ Vc nao esperava que eu digitasse tudo pra essa edicao nao eh? Um bom livro de Delphi tem pelo menos 300 paginas! Mas vc nao precisara de um se acom- panhar o zine (que eh bem mais barato). Afinal, vc nao vai pagar 90 reais por uma informacao que deveria ser gratis neh? |THIAGO CORREA| .~`^'-_!+=/.,'-_ 07 - INTRODUCAO A LINGUAGEM TURBO PASCAL .~`^'-_!+=/.,~`^'- De acordo com observaçöes feitas por diversos professores, inclusive por mim, a maior parte das pessoas ficam ligadas para sempre à primeira linguagem que aprenderam, e quando aprendem uma nova linguagem, têm uma certa tendência em desenvolver os algoritmos segundo o vocabulário e regras sintáticas da primeira linguagem, so que escritas na nova. Este Texto foi extraido de um tutorial de Pascal, Nao sei o porque, mas ainda nao consegui identificar o autor, peco desculpas caso ele leia um texto dele publicado em outro zine, mas nao pude evitar.... Bom, soh pra nao perder akeles negocios de autenticidade e tal.., ai vai a unica coisa que encontrei sobre o autor no tutorial...... []s ·¨■ ¯lCa ■¨· Bom, isso ai acima, foi a unica assinatura que encontrei sobre o cara.. Tipo, agora comentando sobre o fato que foi exposto por ele... tai mais um objetivo da zine, proporcionar a novatos uma visao geral sobre as linguagens, facilitando assim sua escolha. E outra, como voce tera opor- tunidade de conhecer diversas linguagens, quem sabe, nao quebramos essa barreira de "a primeira ser a unica" :))) Bem.. tudo legal, mas vamos comecar com Pascal "o nao eh que rimo!!!" :)) O PASCAL neste caso o TURBO PASCAL foi criado a muito tempo, tanto que quando eu estava na 4º serie jah ouvia falar dele que era muito util para a criacao de virus(hehe) entre diversos fatores... Mas passaram - se os anos e o Pascal foi evoluindo tornando - se TURBO, e eh ai que eu entro... Com a chegada do TURBO PASCAL, diversas barreiras foram quebradas como no caso de funcoes graficas entre outras coisas.. nao que o pascal nao tinha antes, mas eh uma questao de facilidade, agora estah muuito mais facil a criacao de rotinas graficas e tudo mais.. :))) Agora irei demonstrar como eh a estrutura do programa fonte criado em Turbo Pascal.... (* PROGRAMA EXEMPLO.PAS *) ^ | OBS: Tudo que estiver entre (* *) ou entre chaves sao comentarios e nao sao considerados comando pelo compilador. <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<< CORTE AQUI >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Program Primeiro_Exemplo; { este e o cabecalho do programa } { Aqui comeca o HEADER do programa, ou seja, serao colocados os tipos de variaveis, nomes de units usadas, declaracoes de funcoes, etc.... } USES Crt; { a instrucao USES serve para vc. indicar qual UNIT serah utilizada, no caso estou usando a CRT que eh a que jah vem inclusa no TURBO PASCAL... Existem outros tipos de UNIT e o melhor de tudo, voce ainda pode criar suas proprias UNITS q. na verdade digamos que sao as LIBs do CLIPPER Dentro de uma UNIT, encontramos funcoes ou procedures ou os dois em conjunto, que jah foram pre-compiladas e podem ser inseridas no programa por meio da instrucao USES. } Const NOMEU = 'Eagle'+chr(239)+'s Power'; { Aqui podemos definir variaveis constantes, ou seja, sempre que voce usar a variavel NOMEU em seus programas ela contera Eagle's Power (como nesse caso) } Type TIME = (SAO PAULO,SANTOS,PORTUGUESA,PALMEIRAS,CORINTHIANS,OUTROS); { Existem diversos tipos jah definidos pelo turbo pascal, mas voce podera definir novos tipos, como nesse exemplo assima. } Var SEUNOME : STRING[25]; { variavel do turbo pascal } SEUTIME : time; { aqui estou usando o tipo TIME que eu mesmo criei veja acima } {VAR serve para indicar ao compilador os tipos das variaveis} { Aqui comeca o CORPO do Programa, ou seja, as funcoes, procedures, comandos, etc. } BEGIN {eh necessario para indicar o inicio do corpo do programa} CLRSCR; { Limpa a tela no modo 80x25} WRITELN('Sou conhecido como ',Nomeu,' este eh meu CodNome... :))'); { Imprime na tela a msg entre '' a observe o LN q. eh a abreviacao de LINE, ou seja, isso faz com que o programa mostre essa msg usando a linha interia, como assim!? bom, se vc. usar WRITE apenas ele ira imprimir onde o cursor parou e continuar dali, mas se vc. usar o WRITELN ele ira imprimir no local do cursor e ira mandar uma linha pra baixo, ou seja, a proxima coisa escrita serah na linha de baixo } WRITE('Qual seu nome ?!?!?'); { eh o mesmo que o WRITELN soh q. sem pular linhas } READLN(SEUNOME); { Pega o q. foi digitado pelo teclado e salva em alguma variavel, no caso na variavel SEUNOME } WRITLN(''); { vc. jah sabe o que faz, mas neste caso uso para pular uma linha recursos que aprendemos aos poucos :)) } End. {eh necessarios para indicar o FIM DO PROGRAMA} <<<<<<<<<<<<<<<<<<<<<<<<<< TERMINE O CORTE AQUI >>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Bom, eu tava vendo o Tutorial de Pascal criado por esse cara que ainda quero descobrir quem eh, pois o TUTOR foi muito bem feito, quero para- beniza - lo.... Bom, mas achei muuito bem explicado e acho que nao eh necessario eu explicar tudo novamente... a nao ser o que faltou, ou alguma coisa que o cara deixou escapar... mas acho dificil... entao voce me pergunta: - o q. vc. vai fazer!? a resposta eh simples, vou colocar o tutor do cara aqui na zine..... mas atencao, todos os CREDITOS referentes a Pascal daqui em diante eh POR CONTA DO CARA, nada eh meu ok.?!?!? >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> Comeca Aqui......... II.2 - Estrutura de um programa em Pascal ---------------------------------- Todo programa em Pascal é subdividido em 3 áreas: - cabeçalho do programa - área de declaraçöes - corpo do programa Na definiçäo padräo da linguagem Pascal, o Cabeçalho do programa é obrigatório, no entanto, no Turbo Pascal ele é opcional. A área de declaraçöes é subdividida em seis sub-áreas, a saber: - Label - Const - Type - Var - Procedures - Functions Darei agora, uma breve explicaçäo de cada subárea, pois mais para frente estudaremos cada uma delas com profundidade. Na subárea Label, devemos declarar todos os labels que forem utilizados no corpo do programa. Os labels säo utilizados em conjunto com a instruçäo goto. Todas as constantes que formos utilizar no nosso programa, podem se assim desejarmos, ser definidas na subárea Const. O Turbo Pascal tem basicamente 6 tipos de variáveis pré-definidas a saber: Integer, Real, Byte, Boolean, Char e String. No entanto, podemos definir novos tipos de variáveis na subárea Type. Todas as variáveis utilizadas no programa devem ser declaradas na subárea Var, pois a alocaçäo de espaço de memória para as variáveis é feita durante a compilaçäo. Na subárea Procedures, podemos definir quantas sub-rotinas quisermos. Elas säo chamadas durante o programa pelos seus respectivos nomes. Finalmente, na subárea Functions podemos definir novas funçöes que depois poderemos utilizar no programa embora o Turbo Pascal possua inúmeras funçöes pré-definidas. Estas subáreas só säo obrigatórias caso nós estejamos precisando. Exemplo: se näo vamos utilizar variáveis no nosso programa (coisa rara) entäo näo precisamos utilizar a subárea Var. De acordo com a definiçäo padräo da Linguagem Pascal, estas subáreas devem aparecer na sequência que foi dada anteriormente, ou seja, Label - Const - Type - Var - Procedures - Functions. Mas no Turbo Pascal isto é livre. Por fim, como dito no programa exemplo, existe a possibilidade de se usar a declaraçäo USES, que nos permite utilizar UNITS que nada mais säo do que bibliotecas de funçöes e procedures previamente declaradas. ┌──────────────────────────────────┐ │III - Noçöes Básicas preliminares.│ └──────────────────────────────────┘ III.1 - Elementos básicos do Turbo Pascal --------------------------------- III.1.1 - Caracteres utilizados Os caracteres que podem ser utilizados no Turbo Pascal säo divididos em : Letras : 'A' até 'Z', 'a' até 'z' Números : 0,1,2,3,4,5,6,7,8 e 9 Especiais: + - * / = ^ < > ( ) [ ] { } . , : ; ' # $ Observaçöes: 1-) O Turbo Pascal näo faz distinçäo entre letras maiúsculas e minúsculas, de tal forma que no desenvolvimento deste curso eu utilizarei os dois tipos da forma que achar mais conveniente. 2-) Embora na maioria das linguagens o sinal de atribuiçäo de valores a variáveis seja o =, em Pascal, o símbolo de atribuiçåo é :=, exemplos: A = 100 em Basic A := 100 em Pascal 3-) Dois pontos em seguida (..) indica um delimitador de faixa,exemplo: 1..30 --> todos inteiros entre 1 e 30 inclusive. III.1.2 - Palavras reservadas As palavras reservadas do Turbo Pascal säo palavras que fazem parte da sua estrutura e têm significados pré-determinados. Elas näo podem ser redefinidas e näo podem ser utilizadas como identificadores de variáveis, procedures, functions etc. Algumas das palavras reservadas säo: absolute(*) and array begin case const div do downto else end external(*) file for forward function goto if in inline(*) label mod nil not of or packed procedure program record repeat set shl(*) shr(*) string(*) then to type until var while with xor(*) (*) --> näo definidos no Pascal Standard III.1.3 - Identificadores pré-definidos O Turbo Pascal possui inúmeros identificadores pré-definidos, que näo fazem parte da definiçäo padräo da linguagem Pascal. Esses identificadores consistem em Procedures e Functions, que podem ser utilizados normalmente na construçäo de programas. Exemplos: ClrScr : limpa a tela de vídeo DelLine : deleta a linha em que está o cursor e assim por diante. Constantemente, novas procedures e functions estäo sendo criadas pela Borland International (criadora do Turbo Pascal), aumentando desta forma o número de identificadores. Säo UNITS que tornam o Turbo Pascal mais poderoso do que ele já é. Regras para formaçäo de identificadores: O usuário também pode definir seus próprios identificadores, na verdade nós somos obrigados a isso. Nomes de variáveis,de labels,de procedures, functions, constantes etc. säo identificadores que devem ser formados pelo programador. Mas para isso existem determinadas regras que devem ser seguidas: 1-) O primeiro caractere do identificador deverá ser obrigatoriamente uma letra ou um underscore (_). 2-) Os demais caracteres podem ser letras, dígitos ou underscores. 3-) Um identificador pode ter no máximo 127 caracteres. 4-) Como já dissemos anteriormente, näo pode ser palavra reservada. Exemplos de identificadores válidos: Meu_Nome MEU_NOME igual ao anterior __Linha EXemplo23 Exemplos de identificadores näo válidos: 2teste começa com número Exemplo 23 tem um espaço III.1.4 - Comentários Comentários säo textos que introduzimos no meio do programa fonte com a intençäo de torná-lo mais claro. É uma boa prática em programaçäo inserir comentários no meio dos nossos programas. No Turbo Pascal, tudo que estiver entre os símbolos (* e *) ou { e } será considerado como comentário. III.1.5 - Números No Turbo Pascal, podemos trabalhar com números inteiros e reais, sendo que os números inteiros podem ser representados na forma hexadecimal, para tanto, basta precedê-los do símbolo $. Os números reais também podem ser representados na forma exponencial. Isso tudo varia de versäo para versäo do turbo Pascal, citarei aqui as faixas de valores válidas para a versäo 7.0: ┌───────────┬─────────────────────────┬───────────────────┐ │ Tipo │ faixa │ Formato │ ├───────────┼─────────────────────────┼───────────────────┤ │ Shortint │ -128..127 │ Signed 8-bit │ │ Integer │ -32768..32767 │ Signed 16-bit │ │ Longint │ -2147483648..2147483647 │ Signed 32-bit │ │ Byte │ 0..255 │ Unsigned 8-bit │ │ Word │ 0..65535 │ Unsigned 16-bit │ └───────────┴─────────────────────────┴───────────────────┘ ┌────────────┬─────────────────────┬────────┬─────────────┐ │ Tipo │ faixa │Digitos │ Bytes │ ├────────────┼─────────────────────┼────────┼─────────────┤ │ real │ 2.9e-39..1.7e38 │ 11-12 │ 6 │ │ single │ 1.5e-45..3.4e38 │ 7-8 │ 4 │ │ double │ 5.0e-324..1.7e308 │ 15-16 │ 8 │ │ extended │ 3.4e-4932..1.1e4932 │ 19-20 │ 10 │ │ comp │ -9.2e18..9.2e18 │ 19-20 │ 8 │ └────────────┴─────────────────────┴────────┴─────────────┘ III.1.6 - Strings Strings säo conjunto de caracteres entre aspas simples, exemplos: 'isto é uma string' '123456' etc. III.1.7 - Caracteres de controle Existem alguns caracteres que têm significados especiais. Säo os caracteres de controle. Exemplos: Control G -> Bell ou beep Contorl L -> Form Feed etc. Em Turbo Pascal, também podemos utilizar estes caracteres. Para tanto, eles devem ser escritos pelo seus valores ASCII correspondentes, precedidos do símbolo #, ou entäo a letra correspondente precedida do símbolo ^, exemplo: Control G --> #7 ou ^G III.2 - Definiçäo de variáveis Como já dissemos, todas as variáveis que forem utilizadas no corpo do programa, devem ser declaradas numa subárea específica chamada Var. Para estudarmos essa subárea devemos primeiro ver os tipos de variáveis pré-definidos em Turbo Pascal. III.2.1 - Tipos de dados pré-definidos Os tipos de dados pré-definidos em Turbo Pascal säo divididos em duas categorias: Escalares Simples: - Char - Boolean - todos os tipos de inteiros citados acima - todos os tipos de reais citados acima Escalares estruturados: - String - Array - Record - File - Set - Text Inicialmente, iremos estudar os escalares simples e o tipo String pela sua utilizaçäo prática inicial. Os demais tipos estruturados seräo vistos mais para a frente. CHAR: O tipo char corresponde a todos os caracteres que podem ser gerados pelo teclado tais como dígitos, letras e símbolos tais como &, #,* etc. Os caracteres devem vir entre aspas simples. BOOLEAN: O tipo boolean só pode assumir os valores FALSE e TRUE. STRING: Este tipo é chamado de estruturado ou composto pois é constituído a partir de um tipo simples que é o char. O tipo string é composto por um conjunto de caracteres entre aspas simples. SHORTINT - INTEGER - LONGINT - BYTE - WORD: Ver tabela acima. REAL - SINGLE - DOUBLE - EXTENDED - COMP: Ver tabela acima. III.2.2 - A declaraçäo Var Esta é a subárea onde devemos declarar todas as variáveis que iremos utilizar em nosso programa. Exemplo: Program Exemplo; (* cabeçalho do programa *) Var idade,número_de_filhos : byte; altura : real; sexo : char; nome : string[30]; sim_ou_nao : boolean; quantidade : integer; (* aqui começa o programa *) Begin idade:=34; número_de_filhos:=2; sexo:='M'; nome:='José'; sim_ou_nao:=TRUE; quantidade:=3245; End. Observaçöes importantes: 1-) A palavra reservada Var aparece uma única vez num programa 2-) A sintaxe geral para declaraçäo de variáveis é: variável_1,variável_2,...,variável_n : tipo; 3-) Os espaços e comentários separam os elementos da linguagem. Voce pode colocar quantos espaços quiser. Observe: Varidade:integer; o compilador näo reconhece a palavra Var Var idade:integer; agora sim, ou se preferir Var idade : integer; dá na mesma. 4-) As instruçöes säo separadas entre si por ponto e vírgula ';'. Se você quiser, pode colocar mais de uma instruçäo numa única linha. Lembre-se que o limite de caracteres numa linha é de 127 5-) O tipo string deve ser procedido da quantidade máxima de caracteres que a variável pode assumir. Lembre-se que a alocaçäo de espaço de memória para as variáveis é feita durante a compilaçäo, portanto o compilador precisa saber desse dado. Por outro lado, o fato de termos, por exemplo, atribuído o valor máximo de 30 näo significa que tenhamos que utilizar os 30 caracteres e sim no máximo 30. 6-) Como última observaçäo, acho muito mais claro e elegante declarar variáveis e ao mesmo tempo informar com linhas comentários os devidos motivos. Exemplo: Var idade, (* idade de determinada pessoa *) i,j (* utilizadas em loops *) : integer; nome1, (* nome genérico de pessoas *) nome2 (* nome genérico de pessoas *) : string[50]; .~`^'-_!+=/.,~`^'-_! 08 - INTRODUCAO AO VISUAL BASIC .~`^'-_!+=/.,~.~`^'-_!+=/' A seguir voce vera alguns comandos que dizem respeito a Barra de Ferramentas do Visual Basic e a Caixa de Ferramentas do mesmo, mas nao pense que com isso voce estara apto a fazer qualquer tipo de programa em VB, isto eh apenas uma introducao, contendo os conceitos basicos, mas esperamos que ajude em alguma coisa, e quem sabe da proxima vez, colocaremos outros itens interessantes. Mas uma coisa eh importante lembrar, nada se aprende sem que voce esteja sempre procurando e fucando, um dos melhores jeitos de se aprender qualquer Linguagem de Programacao. Ah outra coisa tambem...se voce leitor da revista manja de vB, basta nos contatar pelos e-mail no rotulo(Que horrivel!), nossa rotulo eh coisa pra viado bicho, esquece isso que eu falei de rotulo, e vah direto aos contatos imediatos que voce verah nosso endereco de mail, entao beleza pura. hmmm,,,deixa me ver se eu tenho mais coisa pra falar......pensei e nao cheguei a nenhuma conclusao mas tudo bem, depois eu acabo lembrando ;-) entao comece agora seu estudo.... :))) Barra de ferramentas: * Insert Form .: Adiciona um novo formulario ao projeto corrente. * Insert Module .: Adiciona um novo modulo de procedures ao projeto corrente. * File Open Project .: Exibe a caixa de dialogo de abertura de projetos. * File Save Project .: Armazena o projeto corrente. * Edit Lock Controls .: Habilita ou desabilita o bloqueio para mover ou dimensionar controles utilizando o mouse. * Tools Menu Editor .: Apresenta a caixa de dialogo de edicao de menus. * View Properties .: Apresenta a janela de propriedades. * Run Start .: Entra no modo de execucao de projetos. * Run Break .: (Disponivel somente no modo break) Entra no modo Break durante a execucao de um projeto. * Run End .: Finaliza o modo de execucao de um projeto. * Toggle Break Points .: Para depuracao de codigos, insere ou remove pontos de pausa. * Tools Instant Watch.: Para depuracao de codigos, exibe o conteudo de variaveis, propriedades, expressoes etc. selecionadas. * Tools Calls .: Apresenta as procedures chamadas, porem nao finalizadas. * Run Step Into .: Executa o projeto corrente passo a passo. * Run Step Over .: Executa o projeto corrente passo a passo, sem depurar as chamadas de procedures. [Caixa de Ferramentas] - Visual Basic For Windows 95' POINTER => Apontador LABEL => Rotulo FRAME => Moldura CHECK BOX => Caixa Verificacao COMBO BOX => Caixa de Combinacao HORIZONTAL SCROLL BAR => Barra de Rolagem Horizontal. TIMER => Temporizador DIR LIST BOX => Caixa de Diretorios SHAPE => Forma IMAGE BOX => Caixa de Imagem OLE => Inserir um Objeto Aplicativo no seu Programa SSTAB => Guias DB COMBO => Caixa de Combinacao para Banco de Dados PICTURE BOX => Caixa de Figura TEXT BOX => Caixa de Texto COMMAND BUTTOM => Botao de comando OPITION BUTTOM => Botao de Opcao LIST BOX => Caixa de Listagem VERTICAL SCROOL BAR => Barra de Rolagem Vertical DRIVE LIST BOX => Caixa de Unidades FILE LIST BOX => Caixa de Arquivos LINE => Linha DATA CONTROL => Acesso ao Banco de Dados COMMON DIALOG => Caixa de Dialogo DB LIST => Listagem para Banco de Dados DB GRID => Grade para Banco de Dados |Px_LARVA ESPOLETA| .~`^'-_!+=/.,~`^^'-_! 09 - DICAS: IcemaN COMENTA ^'-_!+=/.,~`^'-_!..,/``~` ';= Opa :) meu aqui vai um programinha pra familia 680x0 com FP 68882 esse prog fas uma frase q vc escrever ficar ao contrario tipo ele eh feito para rodar em amiga mas sei la tipo o 68030 ou qq 680x0 eh padrao RISC tipo acho que nem funciona no pc do geito q ta ai seis que usam o pc vao ter que modificar para poder rodar no micro de vcs tipo um lance interecante e a intuition do amiga que nao faco a mais palida ideia de como poderia ser substituida ou emulada em um pc! bom eh isso ai espero q vcs se divirtam bastante ok! []'s e ate a proxima materia ou zine:) IcemaN <<<<<<<<<<<<<<<<<<<<<<<<<<<<< RECORTA AQUI >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> xref _cls xref _DOSBase xref _GfxBase xref _Ustringprint xref _Ucodeprint xref _MathBase xref _LVOSPFlt xref _strcpy xref _round xref lmulu xref _inkey xref _streq xref _LVOSPAdd xref _LVOSPSub xref _LVOSPCmp xref _Usingleprint xref _startup xref _cleanup xref _openmathffp xref _closemathffp xref _opengfx xref _closegfx xref _openintuition xref _closeintuition xref _starterr xdef _EXIT_PROG xref _free_alloc SECTION code,CODE jsr _startup cmpi.b #1,_starterr bne.s _START_PROG rts _START_PROG: move.l sp,_initialSP movem.l d1-d7/a0-a6,-(sp) jsr _openmathffp cmpi.b #1,_starterr bne.s _mathffp_ok jmp _ABORT_PROG _mathffp_ok: jsr _openintuition cmpi.b #1,_starterr bne.s _intuition_ok jmp _ABORT_PROG _intuition_ok: jsr _opengfx cmpi.b #1,_starterr bne.s _gfx_ok jmp _ABORT_PROG _gfx_ok: link a4,#-28 _LINE2: jsr _cls pea _stringconst0 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst1 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst2 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst3 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst4 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp jsr _Ucodeprint addq #4,sp move.l #0,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-4(a4) pea _stringconst5 pea _stringvar0 move.l (sp)+,-8(a4) move.l (sp)+,a1 move.l -8(a4),a0 jsr _strcpy move.l #0,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-12(a4) move.l #0,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-16(a4) pea _array0 move.l (sp)+,-20(a4) pea _stringconst6 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst7 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp _LINE10: move.l -4(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l d7,_tmpelement jsr _inkey move.l d0,-(sp) move.l _tmpelement,d7 mo move.l -20(a4),a0 adda.l d7,a0 jsr _strcpy move.l -4(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l -20(a4),a0 adda.l d7,a0 move.l a0,-(sp) pea _stringconst8 move.l (sp)+,a1 move.l (sp)+,a0 jsr _streq cmpi.l #0,d0 bne.s _lab0 jmp _lab1 _lab0: jmp _LINE100 _lab1: move.l -4(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l -20(a4),a0 adda.l d7,a0 move.l a0,-(sp) pea _stringconst9 move.l (sp)+,a1 move.l (sp)+,a0 jsr _streq cmpi.l #0,d0 bne.s _lab2 jmp _lab3 _lab2: move.l -12(a4),-(sp) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,d1 move.l (sp)+,d0 move.l _MathBase,a6 jsr _LVOSPAdd(a6) move.l d0,-12(a4) _lab3: move.l -4(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l -20(a4),a0 adda.l d7,a0 move.l a0,-(sp) pea _stringconst10 move.l (sp)+,a1 move.l (sp)+,a0 jsr _streq cmpi.l #0,d0 bne.s _lab4 jmp _lab5 _lab4: move.l -16(a4),-(sp) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,d1 move.l (sp)+,d0 move.l _MathBase,a6 jsr _LVOSPAdd(a6) move.l d0,-16(a4) _lab5: move.l -4(a4),-(sp) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,d1 move.l (sp)+,d0 move.l _MathBase,a6 jsr _LVOSPAdd(a6) move.l d0,-4(a4) jmp _LINE10 _LINE100: move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-24(a4) move.l -4(a4),-(sp) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,d1 move.l (sp)+,d0 move.l _MathBase,a6 jsr _LVOSPSub(a6) move.l d0,-(sp) move.l #$80000041,-(sp) _lab6: moveq #0,d1 move.l (sp),d0 move.l _MathBase,a6 jsr _LVOSPCmp(a6) blt _lab7 move.l -24(a4),d0 move.l 4(sp),d1 move.l _MathBase,a6 jsr _LVOSPCmp(a6) bgt _lab9 jmp _lab8 _lab7: move.l -24(a4),d0 move.l 4(sp),d1 move.l _MathBase,a6 jsr _LVOSPCmp(a6) blt _lab9 _lab8: move.l -24(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l -20(a4),a0 adda.l d7,a0 move.l a0,-(sp) jsr _Ustringprint addq #4,sp move.l (sp),d0 move.l -24(a4),d1 move.l _MathBase,a6 jsr _LVOSPAdd(a6) move.l d0,-24(a4) jmp _lab6 _lab9: addq #8,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst11 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp move.l -4(a4),-(sp) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,d1 move.l (sp)+,d0 move.l _MathBase,a6 jsr _LVOSPSub(a6) move.l d0,-28(a4) move.l #1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-(sp) move.l #-1,d0 move.l _MathBase,a6 jsr _LVOSPFlt(a6) move.l d0,-(sp) _lab10: moveq #0,d1 move.l (sp),d0 move.l _MathBase,a6 jsr _LVOSPCmp(a6) blt _lab11 move.l -28(a4),d0 move.l 4(sp),d1 move.l _MathBase,a6 jsr _LVOSPCmp(a6) bgt _lab13 jmp _lab12 _lab11: move.l -28(a4),d0 move.l 4(sp),d1 move.l _MathBase,a6 jsr _LVOSPCmp(a6) blt _lab13 _lab12: move.l -28(a4),d0 jsr _round move.w d0,-(sp) moveq #0,d7 move.w (sp)+,d1 ext.l d1 move.l d1,-(sp) move.l #1,-(sp) jsr lmulu add.l #8,sp add.l d0,d7 move.l d7,-(sp) move.l #1024,-(sp) jsr lmulu add.l #8,sp move.l d0,d7 move.l -20(a4),a0 adda.l d7,a0 move.l a0,-(sp) jsr _Ustringprint addq #4,sp move.l (sp),d0 move.l -28(a4),d1 move.l _MathBase,a6 jsr _LVOSPAdd(a6) move.l d0,-28(a4) jmp _lab10 _lab13: addq #8,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst12 jsr _Ustringprint addq #4,sp move.l -16(a4),-(sp) jsr _Usingleprint addq #4,sp move.l #2,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst13 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst14 jsr _Ustringprint addq #4,sp move.l -12(a4),-(sp) jsr _Usingleprint addq #4,sp move.l #2,-(sp) jsr _Ucodeprint addq #4,sp pea _stringconst15 jsr _Ustringprint addq #4,sp move.l #0,-(sp) jsr _Ucodeprint addq #4,sp jmp _EXIT_PROG _EXIT_PROG: unlk a4 _ABORT_PROG: jsr _free_alloc jsr _closegfx jsr _closeintuition jsr _closemathffp movem.l (sp)+,d1-d7/a0-a6 move.l _initialSP,sp jsr _cleanup rts SECTION data,DATA _stringconst0: dc.b " ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■",0 _stringconst1: dc.b " ■■ Marcio Esper 1992 ■■",0 _stringconst2: dc.b " ■■ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ ■■",0 _stringconst3: dc.b " ■■ DESORGANIZADOR v 1.0 ■■",0 _stringconst4: dc.b " ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■",0 _stringconst5: dc.b "_",0 _stringconst6: dc.b " digite '*' (Shift 8) pra executar",0 _stringconst7: dc.b "Entrada do texto:",0 _stringconst8: dc.b "*",0 _stringconst9: dc.b " ",0 _stringconst10: dc.b "a",0 _stringconst11: dc.b " resultado ",0 _stringconst12: dc.b "O texto tem ",0 _stringconst13: dc.b " letras 'a' ",0 _stringconst14: dc.b "e ",0 _stringconst15: dc.b " espacos",0 SECTION mem,BSS _stringvar0: ds.b 1024 _array0: ds.b 52224 _tmpelement ds.l 1 _initialSP: ds.l 1 END <<<<<<<<<<<<<<<<<<<<<<<<<<<<<< FIM DO CORTE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> obs: nao coloca isso no programa:) legal se vc teve saco de copiar tudo isso ai se deve ser doido qnem eu heheh mas tipo acho que da pra ter uma ideia de como o bichinho funciona tipo se vc mudificar um poquinho pode usar o prog pra escrever codigos :))) bom falou! ............PROGRAMANDO EM LINGUAGEM DE MAQUINA USANDO O BASIC :))........... Opa oi eu aqui dinovo:) meu quantas vezes vc pensou em faser um programa em lingugem de maquina usando o BASIC (beguiners all sinbolic instruction code) em ? meu se vc pensa que isso eh impossivel nem eh e ai vai minha contribui- cao para vcs que sofrem com seus PCs:) a proposito tava vendo um cara que demonstrava um pc e falava que ele era multask ai sei la que aconteceu que ele comeco a formata um lance e tipo breco toda maquina enquanto formatava, ai eu perguntei - o q acontece? ele disse que tava formatando! cara sei la pra mim isso nao eh multask , bom PC um dia se chega la! :) bom decha de papo furado e la vai o prog ok:) Estou enviando o basic generico mas eh so se adaptar para o seu ok! 100 'COMGEM.BAS - GERA ARQUIVOS COM A PARTIR DE SENTENSAS DATA 110 KEY OFF:CLS 120 PRINT "COMGEM.BAS - GERA ARQUIVOS COM APARTIR DE SENTENSAS DATA" 130 PRINT:PRINT:PRINT 140 INPUT "DIGITE O NOME DO ARQUIVO .COM A GERAR: ";NA$ 150 IF INSTR(NA$,".")=0 THEN NA$ = NA$ +".COM" 160 OPEN NA$ AS #1 LEN=1 170 FILD#1,1 AS C$ 180 READ A$ 190 IF A$="999" THEN 270 200 T%=INSTR("00112233445566778899AaBbCcDdEeFf",LEFT$(A$,1))/2-1 210 IF T%=-1 THEN T%=0 220 B%=INSTR("00112233445566778899AaBbCcDdEeFf",RIGHT$(A$,1))/2-1 230 IF B%=-1 THEN B%=0 240 LSET C$MKI$(16*T%+B%) 250 PUT#1 260 GOTO 180 270 CLOSE 280 PRINT:PRINT"SAIDA SALVA NO ";NA$ 290 PRINT:PRINT:PRINT"CONCLUIDO":BEEP:END 300 ' COLOQUE AS SENTENSAS DATA AQUI :) Beleza? :) agora eh so bolar seus progs e mandar ver bom sei la se vc nao souber o que fazer vo mandar um exemplo pra voce treinar eh so continuar da linha 300 em diante e executar cada prog que vc fizer se usa esse procedimento ok(uma dica eh vc salvar o prog ate a linha 290 e ai eh so se puchar e continuar quando quizer:) bom la vai um exemplo pra vc fazer um prog que controla o caps lock:) 310 'programa caps lock :) 320 DATA BA,40,00 330 DATA 8E,DA 340 DATA A0,17,00 350 DATA 24,BF 360 DATA A2,17,00 370 DATA CD,20 380 DATA 999 Bom eh isso ai nos proximos zines se eu nao estiver internado ainda mando mais uns lances ok, quem sabe eu mande o meu misterioso disk fantasma:))) bom entao ate la... :) " FIQUE POR DENTRO DO AmigaDOS :) " Este espaco do zine eh dedicado a todos que tem curiozidade sobre o sistema do AMIGA , nao notem os erros de portugues pois apesar que eu nao ache muita gente fala que eu nao sei escrever direito :) ADDBUFFERS - adiciona cache nos drives ALIAS - configura ou mostra os aliases ASK - pergunta para o user uma entrada ASSIGN - designa uma unidade logica para um diretorio AVAIL - mostra a memoria RAM avaliada(disponivel) CD - mostra muda ou configura um diretorio CPU - configura mostra ou receta a CPU e os caches da CPU CHANGETASKPRI - seleciona a prioridade de um processo em andamento COPY - copia um arquico ou diretorio DATE - mostra ou configura a data e tempo DELETE - deleta arquivos ou diretorios DIR - mostra o conteudo de um diretorio DISKCHANGE - informa a troca de disco DISKDOCTOR - repara um dico corrupto ECHO - mostra uma string ED - inicia o editor de texto EDIT - inicia o editor de linha ELSE - especifica uma alternativa a um string ENDCLI - termina um processo de shell ENDIF - termina um bloco if em uma string ENDSKIP - termina um bloco de skip EXECUTE - executa um script FAILAT - seta o nivel de erro de uma exprecao FAULT - mostra o codigo em um erro FILENOT - prende um comentario em um arquivo GET - mostra o valor de uma variavel global ICONX - executa uma sring por um icon INFO - mostra informacoes sobre o sistema INSTALL - instala o sistema em um disco IPREFS - manda informacoes de preferencia sobre o workbench JOIN - soma arquivos(junta 2 em 1:)) LAB - especifica uma label em um script LIST - mostra informacoes sobre um diretorio LOADWB - inicia o workbench LOCK - trava distrava um disco ou mostra seu status MAKEDIR - cria um diretorio MAKELINK - cria um link MEMACS - editor de testo avancado MOUNT - informa ao amiga sobre os devices presentes NEWCLI - inicia um processo de shell NEWSHELL - inicia um processo de shell tbm PATH - controla e mostra a procura de path PROMPT - muda o prompt do shell PROTECT - escolhe os bits de protecao QUIT - termina um script RELABEL - muda o nome de um disco REMRAD - remove o ram drive RENAME - muda o nome de um arquivo ou diretorio RESIDENTE - mostra ou muda a lista dos programas residentes RUN - executa um programa em background SEARSCH - procura por um arquivo ou diretorio SET - cria a variavel de ambiente local SETFONT - escolhe a fonte do shell STACK - mostra ou dimensiona o tamanho de stack do processo TYPE - mostra o conteudo de um arquivo UNALIAS - remove o alias WAIT - espera um determinado tempo WHITH - procura pela path de comando de um arquivo WHY - mostra e esplica uma mensagem de erro Bom turma aqui estao alguns dos comandos principais do AmigaDOS :) quem tiver duvidas ou sugestoes sobre o comodore amiga me da um toque ok, estou no momento usando um amiga 3000 com a MPU 68030 a CPU 38030 a FTU 68882 a CPU de video NTSC AGNUS 2 e a CPU de entrada e saida PAULA :) derrepente se esqueci de alguma me perdoem, sao tantas hehehehehehe :) PC um dia se ainda chega la:) Bom turma eh isso ai ate a prossima ice materia nesse ice zine :) qq semelhanca com o lance do batman eh pura coincidencia enclusive o meu morcego albino :) " DICAS PARA UTILIZAR O WG " Oi thurma! :) Bom pra inicio tipo estou mandando uns toques para quem gosta de entrar em modo terminal em bbs que usam o WG (world Group) . para se descolar as paginas que o sys usou para montar a BBs dele se usa o comando FIND e letra ex FIND A vai mostrar as paginas da bbs do cara tipo ALLFILES ARQUIVOS PASTAS CARTAS ETC... para se locomover sem usar o menu caso vc tenha seu assesso travado vc pode usar a opcao go se o sysop nao travou, normalmente elas esquecem de travar o go. tipo coloca /GO arquivos se nao estiver bloqueado vc vai entra direto no arquivos! ou se vc quizer desconectar a qq momento joga um /go exit tente entrar na teleconferencia com /go tele ou tele2 normalmente eh tele! bom se vc aprender legal o find e o go da para brincar bastante ok! tipo tava meio sem ideias e mandei esse lance vou ver se bolo um outro mais legal pro proximo zine ok! e desculpem pelos erros de portugues ok tipo nunca fui muito de escrever! :) []'s e ate a proxima /\m/\ V IcemaN .~`^'-_!+=/.,~`^'-_! 10 - PIADAS... Hahahahahahah .~`^'-_!+=/.,~`^'-_!.~`^'-#$% Eh pessoal agora iremos dar inicio a nossa parte de humor, que tera lugar reservado em todas edicoes, mas isso depende muito de voces leitores,entao peco para nos mandar todas as piadas que tiveren em maos, ai colocaremos o seu Nick tachado com a piada enviada, mas logo vou dizendo, nao sou o autor de nenhuma dessas piadas, entao nao vah me pRoCeSsAr por causa da merda de uma piada :( E alias, eh muito dificil darmos nomes aos bois, pois existe tantas satiras, como tambem muitos autores fantasmas, entao ve se tira essa ideia futil da cabeca: - Mais fui eu que inventei a piada!!! (MONGO) - Que se foda-se!!!Hahahah (ESPOLETA) (Quer queira ou nao, esse eh meu portugues!) Entao pessoal, vamos nos divertir numa boa certo? Beleza... Vamos nessa que eh bom a bessa...:) * Um homem foi ao medico dizendo que estava com um problema de memoria. - Sabe, Doutor, as vezes uma pessoa acaba de me contar algo e logo esqueco. - E desde quando voce sente isso? - Isso o que? * Uma velha e conhecida prostitura morreu. Ja dentro do caixao, o joelho direito disse para o joelho esquerdo: "Enfim juntos". * Sabe o que eh pior do que encontrar um bicho numa goiaba? R: Encontrar meio bicho... * Voce sabem qual a diferenca entre LAGOINHA E PADARIA? R: Ma lagoinha ha sapinho, e na padaria, assa pao. * (ESSA VAI PARA OS DORMINHOCOS COMO EU) - A noite, eu durmo muito bem, doutor. De manha, tambem. Eh de tarde que eu tenho um pouco de insonia!!! * - Dr., eu ando vendo umas manchas diante dos olhos. - Prove estes oculos. - Ah! agora eu vejo as manchas muito melhor! * - Eh o senhor que e o olhista? - Eu sou o oculista. Vamo imbora, muieh, que tua doenca eh nos oios ... * - Bom, eu vou indo, porque se eu chegar tarde, minha mulher fica historica. - Eh histerica seu mongo! - Nao. Eh historica mesmo. Ela fica lembrando todas as promessas que eu fiz quando eramos noivos. * O garotinho abaixa a calcinha curta e fala pedante para a garotinha: - Voce nao tem um desses aqui!!! Ela levanta a sainha e responde: - Nao, mas mamae disse que com um desses daqui agente pode ter quando qui- zer um desses dai! * - Joazinho, voce pode me explicar como a sua redacao esta absolutamente i- gualsinha a que seu irmao fez no ano passado? - Posso sim: temos a mesma irma. * (INFIDElIDADE) Marido furioso, chegando em casa e encontra a mulher na cama com outro: - Que eh que voces estao fazendo?? A mulher, virando-se para o outro: - Viu?? Nao disse que ele era burro? * (MARIDO E MULHER) A mulher no aeroporto, falava ao marido: - Eu sei! Perdemos o aviao... mas foi por um minutinho so, querido. E se voce nao tivesse ficado me apressando tanto, nos teriamos chegado mais tar- de e nao teriamos que ficar esperando tanto pelo proximo voo. * (UMA SACANAGEM) O indio: --- Nao problema, indio dar dois mercedes para ela!!! Entao o pai da guria, ja meio puto, mandou: --- Ta bom, mas ela gosta de cara que tenha meio metro de pica!!! Entao o indio respondeu: --- Nao problema, indio corta metade!! * O esperminha chegou para falar com o "Grande Esperma": - Grande Esperma, como eh a vida lah fora ? - Eu nao posso responder esperminha. Mas para voce saber como eh, treine bastante natacao, porque na hora voce vai entrar em um grande tunel, e chegando no fim desse tunel voce vai encontrar uma grande bola, e voce pergunta se lah eh o ovario, se for voce entra e espera durante 9 meses e saberah como eh a vida lah fora. (Entao o esperminha treinou bastante natacao. Quando chegou a hora, esper- minha nadou pelo imenso tunel e finalmente chegou na grande bola sobre a qual falava o "Grande Esperma": - Aqui que eh o ovario ? (esperminha) - Nao aqui eh a amigdala! * Na escola a professora perguntava aos alunos sobre a profissao de seus pais. - Joazinho, qual a profissao de seu pai ? - Ele eh mecanico. - E sua mae ? - Ela eh cozinheira. - E voce mariazinha ? - Ah meu pai eh carpinteiro e minha mae costureira. - E voce Leozinho, qual a profissao de seus pais ? - Ah meu pai eh padre e minha mae eh freira. - Ue!?! Eles largaram a batina ? - Nao fessora, eles soh levantaram... * Foram condenados a cadeira eletrica um Arabe, um Americano e um Portugues. O guarda foi busca - los...hmnmnmmm.. - ARABE, VOCE EH O PRIMEIRO ! Ai o Arabe comecou a rezar.(Ala...Ala...Ala) Pzizizizz!!! Nao funcionou e o Arabe saiu todo feliz... Entao o chegou a vez do Americano, que logo indagou: - Ah se o Arabe consegui eu tambem vou conseguir...Entao comecou a rezar... Pzizizzz! Nao funcionou novamente, e o Americano saiu todo contente... Entao o guarda, jah furioso, disse: - Eh, o Americano e o Arabe escaparam, mas voce nao vai conseguir portugues! Entao o portugues foi todo todo, e com toda aquela seguranca, pois era so rezar e pronto?!?! (SERA?) Entao ele comecou: - Ala... Ala...Ala... Ala a tomada desligada... * Numa bela cidade existia um poco, mas nao era um poco comum, era o poco dos desejos... Atraidos por tal poco, muitos turistas de todo o mundo iam lah para realizar seus desejos. Para que o desejo da pessoa realiza-se, o indi- viduo deveria sair correndo, saltar por cima do poco e gritar o que queria. Chegaram primeiramente tres sujeitos: Um Italiano, um Americano, e nao podia faltar o portugues... :) Entao o Americano saio correndo, pulou o poco e gritou: - AMBURGUER!!!!?!! E entao varios amburgueres cairam do ceu, e ele sai todo contente... Em seguida foi o . Italiano... saiu correndo, pulou o poco dos desejos e entao gritou: - PIZZA!?!?!!?!?!,,, e logo cairam varias pizzas do ceu. Ai entao chegou a vez do portugues... ele saiu correndo com aquela cara de alegre e de boca aberta, e assim que ele ia pular o poco e fazer o seu pe- dido, ele atropecou em uma pedrinha.........gritou: - MERDAAAAAAA!!!!!!!!!! * Um grupo de jovens se perderam entre a mata virgem... Sem saber o que fazer eles foram a procura de ajuda, mas acabaram encontran- do uma tribo de canibais (Hug Hug)... O chefe da tribo pegou o primeiro e falou: - Voce prefere Hug Hug, ou a MorTe ? Entao o rapaz respondeu: - Ah eu prefiro Hug Hug, eu nao sei o que eh isso mesmo ? entao o chefe pegou o rapaz e... Hug Hug...Hug Hug... Ai entao veio o proximo da turma... - Voce prefere Hug Hug, ou a MorTe ? (Perguntou o chefe da Tribo) - Ah eu prefiro Hug Hug, respondeu o cara... Entao o chefe... Hug Hug...Hug Hug..., nao tem nimguem vendo mesmo!? Entao os dois conseguiram fugir, mas faltou um... O chefe olhando para ele e segurando sua ROLA perguntou: - Voce prefere Hug Hug, ou a MorTe ? Ai o cara como era muito macho respondeu: - A eu prefiro morrer do que queimar a rosca!!! O chefe revoltado disse: - Mas primeiro Hug Hug... * Um Urubu encontrou seu velho amigo Pintinho... - E ai Pintinho, jah fumou um basiado bicho ? - Nao, nunca, porque ? - Quer fumar doido ? - Quero sim, vam bora ! Ai o Urubu acendeu o BAMBA, e eles comecaram a fumar, e a cada dois tapas que o Urubu dava, o Pintinho dava seis pegas duma vez... - E ai pintinho, que que voce tah sentindo ? (URUBU) - NaO tO sEntIndo nAda !?!?! (PINTINHO) Ai o Urubu ficou furioso e disse : - COMO VOCE NAO TAH SENTINDO NADA, EU JA TO MUITO LOCO E VOCE NAO PORRA!!! - NaO tO seNtIndO NaDA !?!?! (PINTINHO) Ai entao o Urubu acendeu mais duas buxa, e deu pro pintinho fuma... - E ai pintinho, que que voce tah sentindo ? - NaO tO sEnTiNdo NaDA !?!?! (PINTINHO) - Porra pintinho, eu fumei menos que voce e jah to^^& muito loco mano. Fala pra mim, O QUE VOCE TAH SENTINDO CARALHO ???? - nAo To SeNTINdO mInHAS PERNAS, mEUs BRACOS, mINHa CABECA...ETC... eNFIM.. nAO tO sENtInDO nAdA !@#$%!!! * |Px_LARVA ESPOLETA| oBS: (Essa assinatura acima, nao quer dizer que eu sou o autor dessas piadas, apenas fui eu que fiz a materia, entendeu IMBECIL?) pS: Voce nao eh um imbecil, nao deveria ter lido a OBS acima ;-( .~`^'-_!+=/.,~`^'-_!.~`^'-_ 11 - RADIO AMADOR .~`^'-_!+=/.,~`^'-_!.~`^'-_.~`^' Eh isso mesmo, heheh, um pouquinho de radio amadorismo para quem aprecia as coisas boas da vida...heheheh... eu Px_Larva Espoleta, modulo com meu PX jah a um bom tempo, e resolvi colocar alguma coisinha aqui sobre essa febre que invade todos municipios, paises e classes sociais... nao vou falar muito da parte historica dos Radios Amadores, pois eu conheco um pessoal ai que manja do assunto mais do que eu, entao como principio, eu vou passar os codigos em 'Q' mais utilizados no PX... ;) Ah e outra coisa, a essa tabela abaixo, devo creditos ao caro amigo Bruxo...Tks Junior (Tks=Obrigado) TABELA "Q" INTERNACIONAL - CONVENCAO DE 1959 - GENEBRA CODIGOS "Q" DE ESPACO DE CAMBIO - ISSO SALVA VIDAS !!! No Nome Descricao 1 QRA Nome da estacao 2 QRB Qual a sua distancia 3 QRD Qual a sua localizacao 4 QRG Frequencia de operacao 5 QRI Tonalidade de sinais(1 a 5) 6 QRH Sua frequencia varia 7 QRL Estou ocupado, nao interfira por favor 8 QRM Interferencia de outra estacao 9 QRN Interferencia atmosferica ou estatica 10 QRO Aumente sua potencia 11 QRP Diminua sua potencia 12 QRQ Manipule mais rapido 13 QRR SOS terrestre 14 QRS Manipule mais devagar 15 QRT Vou parar de transmitir 16 QRU Voce tem algo para mim?(Muitos conhecem como emergencia) 17 QRV Estarei a sua disposicao 18 QRW Estacao X chama em ...KHZ/s 19 QRX Aguarde sua vez de transmitir 20 QRY Quando sera minha vez de transmitir? 21 QRZ Quem me chama? 22 QSA Intensidade dos sinais(1 a 5) 23 QSB Seu sinal varia 24 QSD Sua transmissao e' defeituosa 25 QSJ Taxa - Dinheiro 26 QSL Entendido - Confirmado 27 QSM Repita a ultima mensagem 28 QSN Escutou - me? 29 QSO Comunicado - contato 30 QSP Retransmissao de mensagem de outra estacao 31 QST Comunicado de interesse geral 32 QSU Transmitir ou escutar em KHZ/s 33 QSV Transmita uma serie em 'V' 34 QSW Transmitirei nesta e em outra frequencia 35 QSX Escutarei sua chamada em KHZ/s 36 QSY Vou transmitir em outra frequencia 37 QSZ Deve transmitir cada palavra ou grupo? 38 QTA Anule a mensagem anterior 39 QTB Concordo com a sua contagem de palavras 40 QTC Mensagem - Noticia 41 QTH Local de estacao 42 QTO Sanitario 43 QTR Horas 44 QTX Sairei por tempo indeterminado 45 QUD Recebi o seu sinal de urgencia 46 QUF Recebi o seu sinal de perigo 47 QAP Permaneco na escuta oBS: de QAA ate QAZ, e' exclusivo do servico internacional de aeronautica. REGIOES GEOGRAFICAS I RJ - ES II SP III RG IV MG V SC - PR VI BA - SE VII AL - PE - PB - RN - CE VIII AC - AM - MA - PA - PI - RO - AP - RR IX DF - GO - MT - MS - FN - ILHAS OCEANICAS GIRIA EM CODIGO MORSE CQ = Chamada Geral DX = Contato Distante AS = Espera GU = Bom JP = Sono OK = Tudo Certo OW = Operador ST = Stand By TV = Televisao RM = Radio Amador Obs:Nao percam a proxima revista...ehhehe veremos muito mais sobre esse mundo incrivel que eh o Radio Amadorismo..... Espero poder contar com a ajuda de todos leitores..ehhehe conto com a atencao de vc.(s)..eheheh e caso vc. co- nheca algum macanudo que ainda nao leu a nossa revista..eheh passe para ele, faca prpaganda..eheh ajude-me a expandir nao soh esse mundo de magia do radio amador... como tambem..eheh essa incrivel corporacao... entao nao perca a sua proxima...hehehehe 'wU TaNg cLaN Z|NE CorporatioN' ~`^'-_!+=/.,~`^'-_!.~`^'-_! 12 - DESAFIO(!?) ~`^'-_!+=/.,~`^'-_!-_!+=/.,~`^'- Bom, este eh o nosso espaco para divugarmos novos trabalhos e os bons programadores q. temos pelo Brasil :))) Iremos lancar dois desafios, o primeiro serah para os programadores em C jah o segundo eh para aqueles que se identificaram melhor com o assembly...... Na verdade o que queremos eh que nossos caros leitores retribuam o aprendi- zado, e so assim veremos se vossa senhoria :-) (Hmmmm.falei bonito, hehe) esta mesmo acompanhando o nosso curso, pois estes desafio serao para benefi- cio proprio de voces, entao pesso para todos participarem, e o premio para o ganhador sera...ah sei lah bixo, sera que voce se contentaria apenas com o seu nome ou seu nick publicado ? Ai voce me diz: - Mas que tal uma graninha extra!?!? - Ta louco mano, se fosse pra ganhar dinheiro se acha que nossa corporacao es- taria fazendo esse Z|N3 ? Pra comeco de conversa, gostamos do que fazemos, e na verdade queremos ensinar e ao mesmo tempo aprender com voces leitores, e se isso nao serviu como consolo, que tal.. [ESSA ZINE TEM FINS BENEFICIENTES PARA COM O CRIANCA ESPERANCA, PARTICIPE] |TA LOCO TA DANADO MEU, VOCE NAO VAI ACREDITAR NISSO VAI? :) | Ou poderiamos dizer tambem: - Ei psit, o da potrona mande sua colaboracao via e-mail(HAHAHA QUE HORRIVEL) Para doar 30 conto mande o e-mail para [30@conto.com.br] Para doar 60 conto mande o e-mail para [60@conto.com.br] Para doar 90 conto mande o e-mail para [90@conto.com.br] Para nao doar, noa leia a revista :)))) Percebeu agora porque nao podemos dar um premio para o vencedor do dEsAfIo? Se nao entendeu eu vou resumir...NAO GANHAMOS NADA EM DINHEIRO FAZENDO A ZINE, APENAS FAZEMOS PORQUE GOSTAMOS E QUEREMOS ENSINAR AOS OUTROS O QUE SABEMOS, E AO MESMO TEMPO APRENDER COM VOCES LEITORES... Resumidamente, eh isso! :))))) |Px_LARVA ESPOLETA| 1 - Desafio Em "C" ] ] Eh pessoal, nao deu para escrever a parte do ] desafio, mas eu acho melhor assim, pois primeiro ] devemos saber se vai dar tudo certo, entao nao 2 - Desafio Em Assembly ] adianta agente ficar escrevendo igual imbecil, ] 1o devemos ter certeza que tem uma alma viva que ] esta lendo a ReViStA, entao nao deixe de nos es- ] crever... ] ___sem mais___ []'Px_LARVA ESPOLETA .~`^'-_!+=/.,~`^'-_!.~`^'-_! 13 - RECLAMACOES ;(( .~`^'-_!+=/.,~`^'-_.~`^'-_!~ Eh meu irmao, se voce tem algo contra ou alguma reclamacao a fazer sobre a Revista wU tAnG cLaN Z|N3 Corporation, ligue para: 2345678... tah na hora de molhar o biscoito :))) atendemos 24hs por dia... basta ligar e conferir, mas me desculpe se o tele- fonista nao for razoavel com voce e te mandar pra M3RD4.... Ah outra coisa, todos aqui estao esperando voce dia e noite, noite e dia para afogar o ganco na sua rosca.....hahahahahahah Eh pessoal, isso aqui eh apenas uma brincadeira viu, ve se nao vai ligar pra esse numero imbecil e encomendar um ganco, mas se os leitores forem femininos e quiserem um consolo do Espoletinha aqui, basta me contatar pelo e-mail... Falo pessoal, vamos ficando por cah, e esperamos que gostem do nosso trabalho, para que entao possamos continuar esse magnifico Z|N3 que traz beneficios para com todos os leitores... [Tks] de coracao... []'s Px_LARVA ESPOLETA ..`^'-_!+=^-_!.^-_!@ 14 - AGRADECIMENTOS...Tks ALL~`^'-_!.~`^'-_!+=/.,~`^'-_!. Px_LARVA ESPOLETA: Agradeco primeiramente a Deus que esta sempre nos orientando e nos dando luz, agradeco a todos meus familiares, pais e irmaos pentelhos que enqunto eu tava esvrevendo a Z|N3, eles estavam me pentelhando...hehehehehe...valeu... :))) Ah e tem um agradecimento especial tambem: Valeu Paizao, valeu maezona!!!! brigadao Dalbone(Etrinho) e Ricardo(Mestre) ;-{ E mais, agradeco tambem a meus amigos e colegas: Lucifer(Esteja em PAZ amigao...obrigado por tudo...saudades.......;) ) Eliza(Sorrizo... nunca pare de sorrir, espero sempre ter sua amizade) Luiz Lacreta(valeu cara... vc. eh um amigo em tanto... :-) ) Jocker(ou se preferir Gargamel...valeu amigao) Tio Chico(valeu amigao...seu frangueiro...hehehe) Bareta Mc (Reacao Letal...valeu amigao...um dia agente consegue) Paulinho(Ovo peludo forever...hehehe...seu chorao...aHahahahahah) Luisinho(hehehe...valeu amigao...Xeribaca forever) Andre(heheh...valeu McCartney...) Gordo break(E ai Leonarrrrdo....hehehe) Isabelo(valeu Andreh...seu anao..!!!!) Grilo(valeu Artur...seu punheteiro...hahahaha) Soneca(Valeu Conrado...ahhaahah) Sysop Maniacs BBS(Valeu malucao..ahahahaahha tah doido tah danado..ehehe) A todos macanudos(as) do canal 27 (Recomendacoes seus fubuia...hehehe) A todos irmao do movimento Hip - Hop(Valeu a forca) Agora tem tambem os amigos de trabalho...hehehe...valeu DMM, IceMan e enfim todos da corporacao, espero que nossa Z|N3 consiga atingir todos os objetivos pretendidos... E agradeco tambem aos leitores, pois sem a ajuda de voces nao seremos nada, ou melhor, nao seriamos nada...entao leia nossa zine, espalhe por todas BBS(es), e faca a pirataria para todos seus colegas, mas nao copie, nao embale, nao seja um Bosta...hehe...pera ai, isso aqui eh agradecimento...foi mal, eu me estressei um pouco...beleza pura, vou ficando por cah, pois meu dedo jah ta pedindo arrego...(TENDINITE), e entao fica assim, OBRIGADO!!!!!!!!!!!!! :-) Desculpa se eu esqueci de alguem... mas enfim, agradeco a todos leitores e amigos... Obrigado por tudo... mas continue lendo a Z|N3... Obrigado... :)) Vou me despedindo, deixando um dedo nos oio de todos leitores, um chute na costela, e um reco - reco na guela, e tem mais... Dedao apertado nos ovao, com alicate de pressao...aHahahahahhahah...VALEU!?!?!?! E um beijo respeitoso e carinhoso por tras para todas batonsinhas que leem a Z|NE... MEUS AMORES..HEEHHE ME MANDEM UM MAIL....EHHEEH beijao no butico.. ehehhe timbal..... pu pu pu pu pu pu pu....... PERDA DE PORTADORA Ah eu to maluco....Ah eu to maluco.... Ah eu to maluco.... Ah eu to maluco... Ah Cabou a Z|NE..... Ah Cabou a Z|N3...... Ah Cabou a Z|N3....CHEGAAAAA!!! :) NO CARRIER sem mais [] Px_Larva ESPOLETA (vulgo=ESPUNHETA) Eagle's Power: Bom, primeiramente quero agradecer a Deus q. nos tem mostrado que na vida nao devemos percorrer apenas por caminhos corretos, devemos conhecer o errado para nao perdermos o sentido da Vida! agradeco tbm a todos amigos, parentes, familiares, e a todos os leitores desta zine! espero q. tenha bastante! :)) Bom, a zine surgiu do nada nao tinhamos nem a intencao de deixa - la tao especial.. mas foram acontecendo diversas coisas que fizeram com que a zine tivesse algo mais.. sei lah.. uma motivacao extra. Algo que nos fez ver e acreditar que de um momento para outro tudo poderia acontecer! :)) Mas eh isso ai.. como diz Renato Russo... "Sempre em Frente!!!!".... quero agradecer aos que acreditaram que a zine fosse sair aos que nao acredi- taram aos que torceram a favor aos q. debocharam ou torceram contra... sei lah quero agradecer a todos mesmo, pois nao adianta vc. soh ter incentivos... (claro q. isso ajuda bastante) mas eh sempre bom ter criticas ainda mais se forem construtivas... bom, quero deixar bem claro aqui a minha paixao pela musica.. nao tem nada a ver com programacao, mas nao sei se notaram o nome da zine eh de um grupo WU TANG CLAN! :)) entao eh isso ai.... meus agradeci- mentos sao poucos mas conscientes! :)) hmm. li uma tag muito interessante q. dizia: "O Mundo Precisa de Mais Genios, Hoje e Dia Somos Poucos....! :)))" acho q. esse eh um espaco livre entao quero agradecer a tudo e a todos Bom, sei lah.. acho q. vou parar por aqui.. comecei a ficar com sono! soh queria deixar mais uma frase aos leitores! "O Amor eh o Fogo Que Arde Sem se Ver, eh Ferida Que Doi e Nao se Sente, eh o Contentamento Descontente eh Dor Que Desatina Sem Doer...." Poema De Camoes T+ [Eagle's Power]'s /\M/\ V IcemaN : Opa e ai turma :)) tipo acho mas sei lah mas tenho que agradecer a voces leitores por terem tido paciencia em lerem ate aqui :) esses lances, mas tipo acho q. a informacao eh boa e sei lah mas se vc. tem um mapa na mao nao a como se perder! Agradeco tmb a minha namorada Angel Mix por ter me deixado feliz ao ponto de conseguir escrever coisa com coisa, ou sera que nao..ehhehehe. Mas sei lah tipo agradeco a minha profecora de portugues por ter sido muito exigente e tmb a diretora de onde eu estudei, que gostava tanto de mim e adorava que eu pas- sace a tarde inteira ao lado dela Ahhhhhhhhhh tipo sei lah mas se eu podece ak. colocar todas as pessoas que se julgam e sao na verdade merecedoras de todo credito seria pressiso um caminhao (tipo aqueles de licho) para transportar tantos nomes, agradeco a eptaminof por nunca ter me conhecido e a todos os leitores dessa incrivel revista... agradesso tmb a px_larva espoleta.. que mesmo com caimbra no pescosso a pesar ta tendinite digitar toda esa baboseira que eu estou ditando. Bom e agradesso a todos os que se enterram a frente ao micro e comecam pensar por si proprio, e ver que sei lah mas o UNIVERSO DA COMPUTACAO EH O UNIVERSO BEM MAIOR QUE O COSMO...POIS ELE EH DO TAMANHO DE NOSSA IMAGINACAO... :) VALEU...:))) []' /\M/\ V IcemaN OFERECIMENTO.... MANIACS BBS... Um local onde voce acha um grande acervo de arquivos variados, alem disso voce pode fazer varias amizades utilizando nossa rede msg(s) e Chat... :) E melhor que tudo isso...la voce pode achar os proprios editores da revista e os criadores da NetList... la voce pode tirar duvidas e mandar sugestoes para o nosso Z|N3 nos numeros que passaremos a seguir. * WU TANG CLAN BBS : (011) 5584-5383 -> 00:30 as 07:00 * MANIACS BBS node1 : (011) 215-7977 -> 24 Horas Diariamente * MANIACS BBS node2 : (011) 6915-7734 -> Das 22:00 as 08:00 oBS: LEMBRAMOS A TODOS QUE ESSA BBS NAO E PIZZARIA E SIM BISTECARIA.. :) * AMIPOWER BBS : (011) 521-7669 - Das 21:00 as 02:00 Um lugar onde voce encontrara informacoes para suas duvidas QG da VRF onde voce podera falar ao vivo com IceMan, trocar msg(s) e conhecer muita gente estranha...A BBS MAIS ESTRANHA QUE VOCE TERA A HONRA DE VISUALIZAR EM SEU TERMINAL...MAS CUIDADO NAO ESQUECA QUE E A SEDE DA VRF. * VIRTUAL WORLD BBS : (011) 215-7398 - Das 19:00 as 07:00 Uma BBS legal tambem pra voce que deseja trocar msg(s) e informacoes... La existe uma grande quantidade de arquivos e outros...nao deixaria de visita - la se fosse voce. * KEMEK BBS : (011) 861-4358 24hs. operando com 3 nodes! Uma BBS bem interessante e muito boa por sinal, nao percam e ligue lah o mais rapido possivel eh muito legal mesmo... entao pessoal lah voce encontra arquivos variados e muito mais...! Liguem! Puts meu,,,,eheh chega de propaganda...tah doido tah danado o melhor a voce fazer eh voce pegar o NETLIST que se encontra na MANIACS BBS ...meu vai lah que voce acha a lista das melhores BBS do Brasil! Ah e ve^^ se para de ser viadinho e comeca a usar BBS tamb...meu seis esqueceram do povo e agora tao tudo na NET puts...mas tudo bem..eheheh |Px_LARVA ESPOLETA| ~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/., FIM DA ZIN3 ~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,~`^'-_!+=/.,