# MSX-BASIC

MSX Basic é um dialeto da linguagem de programação Basic. É uma versão estendida do Microsoft Basic, com funções que incluiam suporte para gráficos, música e periféricos da plataforma MSX.
De modo geral, o MSX Basic foi feito para ser muito semelhante ao GW-Basic feito para o MS-DOS 3.0 de 1983. Durante o desenvolvimento do MSX Basic foi dada atenção especial à capacidade de expansão da própria linguagem, para torná-la de fácil adaptação dentro da plataforma MSX.

## Distribuição

MSX Basic era distribuído diretamente nos próprios computadores MSX, armazenado em Memória ROM. Quando um microcomputador MSX é ligado, ele inicializa o MSX Basic automaticamente (caso não tenha uma unidade de disquete com MSX-DOS ou outro sistema operacional, e nenhum slot de cartucho esteja ocupado com algum jogo ou aplicativo). Desta forma, ao comprar um microcomputador MSX o usuário já possui sua própria linguagem de programação, pronta para uso, e pronta para desenvolver vários aplicativos.
Ao ser carregado na inicialização, o MSX Basic ocupa parte da Memória RAM disponível, deixando a outra parte disponível para o usuário do microcomputador digitar o programa.

## Ambiente de Desenvolvimento

Quando o MSX Basic é iniciado, o Ambiente de Desenvolvimento é carregado, contando apenas com uma mensagem de aviso indicando a versão do MSX Basic, a quantidade de Memória RAM disponível para o usuário, e um "prompt" de comando. Os programas são digitados linha por linha, e ao final podem ser executados ou armazenados em disquete.

## Versões do MSX Basic

Todas as versões do MSX possuiam uma atualização da linguagem MSX Basic, permitindo que a mesma pudesse acessar as funcionalidades que eram lançadas para cada versão.

### MSX Basic 1.0

* Introduzida em 1983
* Distribuída com os microcomputadores MSX1
* 16 KB de ROM
* Não possuia suporte para unidade de disquete, sendo adicionada na versão MSX Basic 1.1
* Suporte para 4 modos de tela:
** Screen 0 (Modo Texto: 40 colunas e 24 linhas)
** Screen 1 (Modo Mixto: texto, sprites e caracteres coloridos)
** Screen 2 (Modo Gráfico 1: 256 x 192 pixels, 16 cores)
** Screen 3 (Modo Gráfico 2: 64×48 (blocos de 4×4 pixels))
* Suporte ao chip AY-3-8910: Processador de Som

### MSX Basic 2.0

* Introduzida em 1985
* Distribuída com os microcomputadores MSX2
* 32 KB de ROM
* Adicionou suporte ao novo chip VDP 9938, com suporte a 9 modos de tela
** Screen 0 (Modo Texto atualizado para: 80 colunas e 24 linhas)
** Screen 4 (Modo Gráfico 1: 256 x 192 pixels, 16 cores de uma palette de 512 cores)
** Screen 5 (Modo Gráfico 1: 256 x 212/424 pixels, 16 cores de uma palette de 512 cores)
** Screen 6 (Modo Gráfico 1: 512 x 212/424 pixels, 4 cores de uma palette de 512 cores)
** Screen 7 (Modo Gráfico 1: 512 x 212/424 pixels, 16 cores de uma palette de 512 cores)
** Screen 8 (Modo Gráfico 1: 512 x 212/424 pixels, 256 cores)
Screen 9 não foi padronizada no MSX Basic 2.0, mas foi "criada" em alguns modelos de computadores feitos na Koréia

### MSX Basic 3.0

* Introduzida em 1988
* Distribuída com os microcomputadores MSX2+
* 32 KB de ROM
* Adicionou suporte ao novo chip VDP 9958, com suporte a 9 modos de tela
** Screen 10 (Modo Gráfico 1: 256 x 212/424 pixels, 12499 cores)
** Screen 11 (Modo Gráfico 1: 256 x 212/424 pixels, 12499 cores)
** Screen 12 (Modo Gráfico 1: 256 x 212/424 pixels, 19268 cores)
A diferença entre Screen 10 e Screen 11 está no tratamento feito pelo VDP 9958.

### MSX Basic 4.0/4.1

* Introduzida em 1990
* Distribuída com os microcomputadores MSX turbo R
* Adicionou novas funções para operar o dispositivo PCM
* Adicionou suporte ao MIDI

## Extensões para o MSX Basic

Como o MSX Basic foi feito para ser expandido, vários usuários fizeram suas próprias funções e rotinas para melhorar a utilização desta linguagem. Uma das extensões mais famosas é chamada de Screen IV para o MSX 1 (que não deve ser confundida com a Screen 4 do MSX 2).
A Screen IV permitia a utilização em Modo Texto com 64 colunas e 24 linhas nos computadores MSX 1, ampliando suas possibilidades de uso.

## Ligações Externos

* MSX.org - Fórum de Discussão sobre o MSX.
* MSXnet - Website com várias informações técnicas sobre o MSX
* MSX.bas - Website dedicado a preservar e disponibilizar software escrito em MSX Basic, além de publicações relacionadas à linguagem.