Documentação MDL-lib

From Programação no MSX
Jump to navigation Jump to search
Error creating thumbnail: File missing
MDL-lib

Introdução[edit]

Este é um guia rápido para a biblioteca MDL-LIB versão 2.3. A versão 2.2 tornou-se domínio público em 1994 pelo grupo MDL-SOFT, e eu a traduzi há alguns anos corrigindo pequenos bugs e fiz um novo pacote 2.3 dela.

O manual em traduzido para inglês esta no pacote como manual.txt,e os manuais individuais de cada parte da biblioteca estão em arquivos *.TXT, porém em holandês.

No pacote existe um programa chamado MDLDEMO.COM, aproveite para iniciar o mesmo para ver as principais capcacidades da biblioteca.

A biblioteca foi construída para ser usada no Turbo Pascal 3.0, para usar em outros compiladores mudanças significativas devem ser feitas.

Mas o que a MDL-LIB pode fazer por nós?

Ela contém mais de 100 procedimentos, muitos deles compatíveis com MSX 1 e MSX 2 (por exemplo desenhar linhas e círculos). Os nomes destes procedimentos foram mantidos na medida do possível pareados com os procedimentos similares do Turbo Pascal 3 para PC, incluindo os parâmetros, o que torna mais fácil portar programas do PC para MSX.

A biblioteca está dividida em arquivos com a extensão .PAS, cada um concentra procedimentos de uma determinada categoria (originalmente ela usava a extensão .LIB eu fiquei na dúvida entre mudar para .INC ou .PAS, optei pela segunda pois alguns editores fazem bem o syntax highlight para .PAS e nao para .INC, são raros, mas preferi cobrir o mais fácil).

Um programa Pascal que usa a MDL-LIB tem o seguinte esqueleto:

1 program Nome_Programa;
2 {$I MDLLIB.PAS} (* obrigatório *)
3 {$I outras.PAS}
4 
5  (* Seus Procedimentos *)
6 
7 begin
8   (* Programa Principal *)
9 end.

Um pequeno resumo dos módulos se segue (os módulos tem o nome destacado com a extensão .PAS no disco):

MDLLIB: Este módulo SEMPRE deve ser incluído no seus programas. Ele contém rotinas de suporte (por exemplo, chamadas de BIOS) para todos os outros módulos. Ele possui definições de variáveis de sistema úteis, como habilitar/desabilitar o CLICK do teclado.

VRAM1: Contém rotinas básicas para acesso a memória de vídeo e o VDP, como por exemplo um procedimento para escrever um byte na VRAM, ou mudar o modo de vídeo. Ela conta com um poderoso procedimento que permite caracteres multicoloridos 16 cores por caractere, além de SPRITES (só funciona na SCREEN 2, sendo similar ao modo que a KONAMI usa em alguns de seus jogos). Uma dose de conhecimento da estrutura da VRAM é necessária para usá-la.

VRAM2: Parecida com a VRAM1, porém com suporte para MSX2. Algumas funções são duplicadas nos dois módulos, precisando de alguma atenção para misturar os mesmos. O modo caracter multicolorido funciona tanto para SCREEN 2 quanto para SCREEN 4.

GRAPMSX1: Contém procedimentos para desenhar linhas, círculos, pintar áreas ou trabalhar com padrões.

GRAPMSX2: Similar a GRAPMSX1 para MSX2. Adicionalmente existem rotinas para cópia de áreas da tela. Perceba que todas as rotinas funcionam apenas nas SCREEN 5 a 8. Precisa de algo para a SCREEN 4? use a GRAPMSX1 em combinação com a VRAM2, assim terá os gráficos do MSX1 com os SPRITES do MSX2.

LOGOROUT: Este módulo funciona com MSX1 ou MSX2, podendo trabalhar com qualquer módulo de VRAM. São rotinas gráficas no estilo da linguagem LOGO (com direito a tartaruga). Muito cuidado ao misturar a LOGOROUT junto com a VRAM1 e VRAM2 simultaneamente para evitar comportamentos que podem congelar o MSX.

GAMEIO: Procedimentos para usar Joystick, Paddle, Touchpad, Mouse (MSX2) e LightPen (MSX2).

SOUNDS: Contém rotinas que facilitam o controle do processador de som. Efeitos sonoros são processados de maneira até mais fácil que no MSX-BASIC, pois não é necessário calcular binariamente os parâmetros.

DISKTOOL: Procedimentos para gerenciamento de discos. Leitura de diretório, busca por arquivos, escrita/leitura de setores.

TAPE: Rotinas para operar o cassete. Boa para backups, e mantém compatibilidade com a leitura e escrita de arquivos ASCII do MSX-BASIC.

DATA: Duas poderosas rotinas: uma em linguagem de máquina que permite o SWAP de variáveis sem usar uma variável temporária, e uma rotina de ordenação rápida em Pascal (Shell-Metzner).

MISC: Tudo que não entrou nos outros módulos. Impressora on-line?, beep, procedimentos extras para texto, etc..

Até agora apenas uma pequena mostra. Iremos olhar estas rotinas mais de perto e não deixe de estudar o MDLDEMO para ver o uso delas na prática.

Espero que você goste destas rotinas.

Requisitos e Observações[edit]

É necessário um bom conhecimento de Turbo Pascal 3.0. Caso não tenha procure ler alguma documentação antes, como o próprio manual da Borland ou clássico livro "Turbo Pascal Complete" do auor Jeff Duntemann.

Atenção com o Turbo Pascal 3.3. O MDLDEMO foi compilado com ele e funcionou na grande maior parte da biblioteca. Porém existe um pequeno problema. Se você compilar a MDLDEMO no TP 3.3, na opção Testes Gráficos MSX 2, a mesma opção é chamada duas vezes, ocasionando um crash do sistema. Este problema não ocorre em outras áreas do MDLDEMO, então assumo que seja um pequeno BUG na forma como o TP 3.3 trata os OVERLAYS (visto que esta opção é a única que usa arquivos OVERLAY). Compilando com o TP 3.0 o erro não ocorre.

E o mais importante, divirta-se!

Autor[edit]

  • Martijn Dekker.
  • MST - MSX Software Team.
  • Wilson Pilon (tradução e revisão)

Versões[edit]

  • 2.2 Setembro de 2004, pelo próprio autor e declarada domínio público.
  • 2.3 Outubro de 2019, por Wilson Pilon, traduzida para Português.

Operação[edit]

Módulos Existentes[edit]

Documentação Original (Dutch)[edit]

Tutoriais[edit]

Dicas[edit]

Exemplos[edit]

Fontes[edit]

DEMO[edit]

Rotinas[edit]

Maiores Informações[edit]