Micro Sistemas 63

Neste número, Linguagem de Máquina, Genius, Dicas, Notícias.

ms 63 capa

 

Editorial

Artigo Original: Alda Campos, Digitação: Wilson Pilon

ms 63 aldacampos

1986 está acabando. Tantas novidades aconteceram este ano: renovadas pressões norte-americanas contra nossa lei de reserva de mercado; mudanças na economia; prenúncio de uma nova constituição. E mais uma vez o Natal.

Este ano, as compras natalinadas encontram, no segmento dos micros, um mercado super-aquecido, que ainda nÃo se refez do estouro na demanda causado pelo Plano Cruzado. Por isto, quem estiver pensando em presentar-se com um micro pessoal, ou algum equipamento preriférico, deve antes de sair para o comércio da uma lida na reportagem que a equipe de Micro Sistemas preparou para a ocasião. Nela, os leitores encontrarão diversas dicas sobre onde e como comprar.

Nesta edição também se encontra uma ótima opção para a leitura de fim de ano. Dois assessores técnicos de MS, Pierre Lavelle e Antonio Carlhos Guimarães, assinam artigos bastante elucidativos sobre a linguagem de pogramaçao C, que cada vez conquista mais adeptos entre os usuários de microcomputadores. Aguardem também para breve um grande especial sobre a linguagem BASIC - material completíssimo, pesquisado e produzido por três assíduos colaboradores da revista.

Mas isto já é papo para 87. Espero que esse ano, impar como muitos preferem, traga boas surpresas para o Brasil e nossa tão visada área de informática. Em Micro Sistemas também o ano de 1987 trará muitas mudanças. A primeira delas anuncio agora: é meu afastamento da editoria da revista, que a partir de janeiro passa a ser conduzida por nossa colega Graça Santos, atualmente subeditora de MS. Integrando a equipe de Micro Sistemas já há muitos anos, Graça dará continuidade a um trabalho que foi por mim começado há cinco anos atrás, e planeja desde já algumas novidades que vão mexer - e melhorar, creio eu - a revista.

Já por diversas vezes tive oportunidade de reconhecer que o sucesso alcançado por Micro Sistemas tem como causa principal o apoio e amizade de seus leitores. Cabe aqui dar o meu último "muito obrigada" ao amigos.


Bits

Artigo Original: Micro Sistemas, Digitação: Wilson Pilon

Conheça os periféricos da Tropic

ms 63 tropic

Inaugurando uma nova fase, a Tropic ingressou no mercado de periféricos, passando a produzir mouses para micros TK 90x, TK 95 e MSX; interfaces RS-232 e cabos Centronics para MSX. Para isto a empresa investiu Cz$ 7 milhões em instrumentos de laboratório e montagem de protótipos. A previsão de Ricardo Trodowski, diretor presidente da Tropic, é colocar no mercado 50 mil periféricos apenas nos meses de novembro a dezembro, o que representa Cz$ 125 milhões. Para o início de 1987, a Tropic pretende colocar no mercado mensalmente 8 mil mouses, 4400 cabos Centronics e 700 RS-232, além de 150 mil cartuchos aplicativos, utilitários comerciais e software educativos, para micros MSX, distribuídos através de 850 revendedores e 1300 pontos de venda em todo o país. "Vamos fechar o ano com um faturamento de US$$ 5 milhões", destaca Tondowski, que já vem efetuando contatos para exportar seus produtos para diversos países da América Latina, em 1987.

A interface RS-232, desenvolvida pela Tropic, possibilita a comunicação entre micros TK90x e MSX, e em breve serão lançadas interfaces também para Appli e IBM-PC, podendo, através de modens e do telefone interligar os micros das diferentes linhas em rede.

Drives para MSX

ms 63 microsol

Já está nas lojas especializadas e magazines o drive de 5 1/4" slim DRX-360 da Microsol Tecnologia, destinado aos micros da linh aMSX. Com capacidade para armazenar 360 Kb de programas em 40 trilhas no formato DF/DD o novo drive da Microsol permite aos usu'rios do MSX acessarem os programas residentes sob o sistema operacional CP/M.

O DRX-360 é apresentado com um circuíto de alimentação interno e gabinete na cor grafite metálico. Seu preço para o consumidos em todo o território nacional, exceto o Ceará, esta em torno de Cz$ 9.500,00/

A Microsol Tecnologia também promete para breve um cartão de expansão de vídeo para 80 colunas: o VMX-80.

CAD/MSX: Software em três dimensões

ms 63 cadmsx

Mello Projetos, empresa paranaense, elaborou um software destinado a arquitetos e engenheiros, que roda em micros MSX, utilizando os recursos gráficos do equipamento. O CAD/MSX, em sua versão iniical vem em fita cassete e pode gerar figuras com até 250 vértices e 350 linhas, com cores variadas para as linhas e fundo da tela, permitindo superposição de imagnes, uso de três dimensões, imprimir partes, guardar os desenhos na memória do micro.

Segundo Márcio e Élcio de Mello é possível produzir imagens holográficas, fotografando-se a tela do micro, com filme para slides, e obsevando-as através de um viso bio-ocular. A Mello Projetos fica na Av.Tiradentes, 838, Londrina, Paraná, CEP 8610, tel.: (0432) 27-1639

Lançamentos Engesoft

Já chegaram no mercado os novos jogos, para micros da linha MSX, lançados pela Engesoft, ao preço de Cz$ 70,00 cada um. Eles incluem: Video Poker, Xadrez, Galaxia, Senjyo, Goonies, Hole in One, Suruba, Roda Fighter e Hyper Rally. Para janeiro a empresa promete 10 novos lançamentos.

Na parte de programas aplicativos para o Hotbit e Expert, estarão à venda, no início de 1987, mais dois softwares, destinados a engenheiros, pequenas e médias empresas. São eles os de Vigas e Lajes. Cada custará Cz$ 500,00. O endereço da Engesoft é Rua República do Líbano, 2079, São Paulo, tel.: (011) 549-9788.

ms 63 engesoft

 


Genius

Artigo Original: Luiz Alberto Rodrigues, Digitação: Wilson Pilon

Este jogo 'e uma adaptação do programa de mesmo nome, de José Eduardo R.da Costa, publicado em MS 27. Ele foi desenvolvido em um Expert e utiliza algumas rotinas usadas no programa original, fazendo a simulação do Genius para os micros MSX.

Neste jogo são desenhados no vídeo quatro círculos de cores diferentes que piscarão em sequência aleatória, cabendo ao jogador repetir a sequência na ordem das piscadas. No início, o jogador terá de repetir uma sequência, depois duas, três, tc.. Para refazê-la, o jogador deverá pressionar as teclas do bloco de movimentação do cursor (as que têm setas), correspondente à posição do círculo no vídeo.

O jogo tem os níveis de dificuldades de 1 (o mais difícil) ao 9 (o mais fácil), sendo que quanto mais fácil, mais tempo o jogador tem para escolher a tecla desejada. Nos níveis de 1 a 3, a sequência muda a cada jogada, além do tempo ser mais reduzido.

Se o jogador pressionar alguma tecla fora da ordem, haverá uma repetição de toda a sequência até o momento do erro.

ms63 0001 ms63 0002

O Programa

O programa foi escrito totalmente em BASIC MSX e tem a seguinte estrutura:

  • Linha 1130 a 1260: Rotina de controle da sequência dos círculos;
  • Linha 1270 a 1390: Rotina de controle da leitura do teclado;
  • Linha 1400 a 1430: Rotina que controla o desenho dos círculos no vídeo;
  • Linha 1440 a 1480: Rotina que desenha os círculos;
  • Linha 1490 a 1540: Rotina que desenha as setas e o nome do programa;
  • Linha 1550 a 1640: Instruções para o jogo e rotina para a escolha do nível de dificuldade;
  • Linha 1650 a 1720: Rotina de derrota;
  • Linha 1730 a 1790: Rotina de vitória

Dicas

  • Para modificar o número de vezes que tem que se repetir a sequência, dive-se alterar as linhas 1070, 1080 e 1180.
  • Na linha 1220 está a instrução para alterar a ordem da sequência nos níveis 1, 2 ou 3
Referência de Listagem
Listagem Única genius.bas

 


Dicas

Minimontador Hexa

Artigo Original: João J.M.Gonçalves, Digitação: Wilson Pilon

Este programa é um minimontador hexadecimal. Para usá-lo, digite RUN, responda ao INPUT com o endereço inicial e digite os códigos hexadecimais.

Em caso de erro, é só recomeçar pelo endereço errado.

ms63 0003

Referência de Listagem
Listagem Única minmon.bas

Relógio

Artigo Original: João J.M.Gonçalves, Digitação: Wilson Pilon

Coloque um relógio na tela do seu MSX

ms63 0004 ms63 0005
Referência de Listagem
Listagem Única relogi.bas

Linguagem de Máquina no MSX - I

Artigo Original: Daniel José Burd, Digitação: Wilson Pilon

Este curso vem para auxiliar àqueles que possuem fundamentos em linguagem de máquina e que desejam conhecer e, consequêntemente, se comunicar com os auxiliares do microprocessador Z-80 no MSX. O curso é composto de oito aulas, distribuídas da seguinte forma:

  • Aula 1: Apresentação da arquitetura MSX.
  • Aula 2: O armazenamento da tela na RAM(VRAM).
  • Aula 3: Uso do teclado e do gravador cassete.
  • Aula 4: Sprites e animação.
  • Aula 5: Som no MSX.
  • Aula 6: Hooks ou traps.
  • Aula 7: Chamadas úteis da ROM
  • Aula 8: Programa exemplificando as principais técnicas vistas no curso.

Bem, vamos aogra começar a nossa exploração pelo incrível reino no MSX. Boa viagem a todos!

Apresentação

Se o cérebro do computador é o microprocessador por ele usado, então o MSX, TK90x, Ringo, etc., que possuem o mesmo microprocessador (Z80), são basicamente iguais?

Não exatamente. O microprocessador é o cérebro do computador, porém concluir que micros com o mesmo cérebro sejam iguais não seria correto.

O que existe de comum nesses computadores é a linguagem de comunicação entre o programador e o cérebro do computador (que é a linguagem de máquina ou Assembly). Se você conhece a linguagem de máquina do TK90x, poerá usá-la no MSX ou Ringo, pois é a mesma. Ah! Então os micros são iguais?

Se olharmos cuidadosamente o conjunto de instruções Assembly do microprocessador Z80 (que é usado no MSX), veremos que não existe uma instrução sequer que lide com gráficos e nem tão pouco uma instrução que gere sons. Todas as instruções, sem excessões, lidam com número e memórias. Mas que faz os gráficos e sons do computador, já que o Z80 é incapaz?

Existem peças (circuitos) especializados em som, gráficos e outras funções diversas que veremos mais tarde. O circuito de som é que determina as características sonoras do computador e não o microprocessador. É verdade, no entanto, que o micrprocessador comanda esse circuito.

Portanto, o computador é provido com o mais potente microprocessador existente e, no entanto, esquecem de supri-lo de um circuito gráfico; este computador será incapaz de colocar um ponto sequer na tela, da msma forma que se colocarem um cirtuito gráfico ruim, inevitavelmente os seus gráficos serão ruins, afinal o microprocessador só sabe lidar com números.

Fica claro que as qualidades de um computador são determinadas pelo seu microprocessador em conjunto com os circuitos especializados que o auxiliam. Para nós que "conversamos" diretamtente com o Z80 via linguagem de máquina, é de fundamental importância conhecermos bem seus auxiliares, pois só assim poderemos extrarir o máximo do MSX. Sem estarmos familiarizados com o circuito de som do MSX será impossível criar uma música, e, sem conhecermos o circuito gráfico seremos incapazes de fazer qualquer gráfico. Sentiram o drama?

O Hardware

Os micros de maior sucesso no mercado nacional, até o evendo do MSX, eram compostos basicamente pelo chip Z80, que era o responsável pelo vídeo, sons e tudo mais, já que seus auxiliares eram muito fraquinhos, exigindo muita atenção do microprocessador. Sem dúvida, o Z80 é capaz de dar conta de todos esses controles, porém isso compromete seu rendimento, além do que, ele foi feito para fazer contas e endereçamentos e não para tocar músicas.

No MSX, o Z80 não é mais obrigado a pintar a tela ou executar uma canção, pois ganhou poderosíssimos auxiliares, como o TMS9128A da Texas Instruments (pouco romântico seu nome, não?). Não se sabe ao certo onde esse Miguel Ângelo adquiriu sua habilidade artística, contudo seu currículum não deixa dúvidas quanto a sua habilidade:

  • Resolução de 256 por 192 pontos.
  • 15 cores mais o transparente;
  • Mais de 30 sprites (pequenos desenhos criados pelo usuário, que podem ser facilmente movimentados pela tela).

Além desses atributos e muitos outros, o nosso Miguel Ângelo possui ateliê próprio, isto é, sua obra é feita em um lugar especial, a VRAM, onde só ele mexe, dispondo para tal de 16Kb. Dessa forma, temos 64Kb integrais para o Z80 acessar e mais 16Kb para o nosso artista.

O artista de cada micro é diferente da maioria dos artistas famosos que ouvimos falar no tocante à solciabilidade, pois o TMS9128A é muito sociável. Em lições posteriores iremos ver como encomendar pinturas a esse novo amigo, falando a sua língua, a linguagem de máquina.

Apresento agora o Beethoben, ou, se preferir, o Sivuca do seu MSX: o PSG (Programmable Sound Generator) AY8910 (não comento esse nome), que além de executar composições em três canais simultâneos e independentes atingindo até oito oitavas, ainda controla os joysticks, a leitura do gravadro cassete e outras coisas.

Por fim, apresento o terceiro grande auxiliar o Z80 no seu MSX: o PPI (Programmable Periferal Interface) 8255. A sua história é diferente da dos outros artistas, já que não tendo aptidões para as artes, sua mãe o colocou em um curso de administração de memórias; seus dotes logo afloraram e noso administrador mostrou-se capaz de controlar também a leitura do teclado, escrita no gravador cassete e muitas outras tarefas.

Vê-se que o Z80 está bem assessorado no seu MSX e isto aumenta significativamente a responsabilidade do programador, máquinas para grandes obras ele tem, basta agora deixá-las frutificarem!

A RAM

O leitor já deve ter ouvido falar que o MSX possui 64Kb de RAM (além dos 16Kb de Vídeo RAM) e 32 Kb de ROM. Porém, como todo bom conhecedor do Z80 sabe que este só é capaz de acessar 64Kb, surge então a questão: como usar os 96 Kb (64Kb mais 32Kb) de memória disponíveis no MSX? O sistema, mui sabiamente bolado para organização de memória, é composto por quatro páginas (ver figura 1), sendo cada uma capaz de armazenar 16 Kb, dando um total de 64Kb. Até aqui tudo bem.

O MSX possui vários blocos de memória que podem ocupar a memsma página e, dessa forma, é feito o chaveamento, o qual indica quais blocos estão sendo acessados simultaneamente. Para identificar um dado bloco, é necessário especificar a página (0 a 3) e o slot (0 a 3), sendo que nunca poderemos acessar dois blocos que possuam a mesma página. No caso da figura abaixo, não podemos usar a ROM junto com as páginas 0 e 1 do slot 3, pois sendo elas destinadas a RAM, ao acessá-las perdemos o acesso a ROM e, consequêntemente, o BASIC. Portanto, muito cuidado ao se chavear memória!

Sistema de slots do MSX:

ms 63 assembly01

Este sistema de chaveamento nos permite ter até 16 Kb x 16 páginas, totalizando 256 Kb de memória. No entanto, cada slot pode ainda ser expandido dando lugar a outros quatro slots e, dessa forma, a máxima capacidade de memória que seu MSX pode ter é de 256x4, isto é 1Mb. Nada mau, você não acha?

Veremos como se chaveia a memória na aula sobre o senhos PPI.

A Estrutura de Armazenamento de Dados

Quando usamos o BASIC, temos "ligados" 23Kb de RAM que ocupam as páginas 2 e 3 do slot 2 no Expert e estão no slot 3 do HotBit. Essa RAM é dividida da forma esquematizada na figura abaixo.

Esquema da RAM no MSX:

ms 63 assembly02

O Armazenamento das Linhas do BASIC

As linhas de um programa em BASIC possuem uma estrutura bem definida. A figura abaixo mostra essa estrutura.

Estrutura das linhas do BASIC:

ms 63 assembly03

Observe que o número da linha é guardado de modo inverso ao qual estamos acostumados, isto é, o byte mais significativo (MSB) antes do byte menos significativos (LSB). O exmeplo a seguir esclarece isto:

NEW
10 PRINT "PAZ"
20 END

  8001h                   800Bh
Linha 10 0C 80 0A 00 91 22 70 61 7A 22 00
  Próxima linha
se inicia em
800Ch
Linha
número
10
P
R
I
N
T
" P A Z " Fim de
linha

 

  800Ch         8011h
Linha 20 12 80 14 00 81 00
  Próxima linha
se inicia em
8012h
Linha
número
10
E
N
D
Fim de
linha

 

  8012h  
               00 00
  Indica fim
do programa
BASIC

O Armazenamento de Variáveis

Como já sabemos, as variáveis do BASIC podem ser divididas em numéricas ou não-numéricas. Dentre as numéricas, ainda temos três tipos:

  • Variáveis inteiras (simbolizadas por %): ocupam dois bytes cada.
  • Variáveis de precisão simples (simbolizadas por !): ocupam quatro bytes cada.
  • Variáveis de dupla precisão (simbolizadas por #): ocupam oito bytes cada.

A figura "Esquema da RAM no MSX" indica onde são armazenadas essas variáveis. Veremos agora a forma desse armazenamento. Cada variável, tanto string quanto numérica, é armazenada segundo o esquema da figura abaixo.

Esquema do armazenamento de variáveis:

ms 63 assembly04

No caso de variáveis numéricas, o valor da mesma é armazenado na área de variáveis, já com strings isso não ocorre. Neste caso, é armazenado um vetor composto por três bytes. Veja a figura abaixo.

Vetor que contém as características da string:

ms 63 assembly05

O endereço da string pode ser tanto no próprio programa BASIC como também na área de strings. Vejamos um exemplo que esclarecerá esse ponto:

NEW
10 A1$="PAZ"
RUN

  8001h                 800Ah       800Eh
Linha 10 0F 80 0A 00 41 31 24 EF 22 70 61 7A 22 00
  Próxima linha
se inicia em
800Ch
Linha
número
10
A 1 $ = " P A Z " Fim de
linha

 

  800Fh  
               00 00
  Indica fim
do programa
BASIC

Conteúdo da variável VARTAB=8011h

8011h          
03 41 31 03 0A 80
[1] A 1 [2] Endereço da
string=800Ah
  Nome da
variável
   
  • [1] N=3 indica que se trata de uma string
  • [2] Tamanho da string

Em certos casos não é possível que o ponteiro da string aponte para o programa, pois não há linha do programa em BASIC que contenha toda a string. O exemplo a seguir mostra esta situação, sendo importante ressaltar que estruturas como INPUT A$ e A$=A$+B$ apresentarão a mesma característica.

(OT) A revista comete um engano e não mostra o armazenamento de variávies string e sim de dupla precisão, tenho preferido deixar o texto original.

NEW
10 A =1
RUN

  8001h                
Linha 10 0A 80 0A 00 41 20 EF 12 00
  Próxima linha
se inicia em
800Ch
Linha
número
10
A [SAPACE] =    

 

  800Ah  
               00 00
  Indica fim
do programa
BASIC

Conteúdo da variável VARTAB=800Ch

800Ch                    
08 41 00 41 10 00 00 00 00 00 00
[1] A   Representação do número 1
em 8 bytes
  Nome da
variável
   
  • [1] N=8 implica em variável de dupla precisão

As matrizes são guardadas de modo análogo. Verifique!

Na próxima aula veremos como funciona a parte gráfica do MSX, conhecendo a estrutura de cada SCREEN e manipulando diretamente a VRAM.

Um abraço a todos e até a próxima. 


Downloads

  • ms63.dsk: Disco contendo as listagens digitadas e alguns dos programas desta edição.
  • ms63.cas: Cassete com os exemplos do livro.
  • ms63asc.zip: Arquivo com as listagens em formato ASCII puro.
  • WebMSX: Emulação online dos programas.