Menu principal
Entrar
Usuários online
9 visitantes online (1 na seção: Dicionário MSX Basic)

Usuários: 0
Visitantes: 9

mais...
MSX Rating
Hospedagem
Dicionário
Definições extraídas do livro Linguagem Basic MSX, da editora Aleph.
Digitação: Luciano Sturaro - MSX Pró ( http://www.msxpro.com )
Existem atualmente 27 definições.


Procure por:  
Procure em: 
Procure pela letra:
[ A | B | C | D | E | F | G | H | I | J | K | L | M | N ]
[ O | P | Q | R | S | T | U | V | W | X | Y | Z | Outros ]

20 última definição adicionada

Fornece a linha em que se encontra o cursor.

FORMATO: CSRLIN

EXEMPLO: Y=CSRLIN

FUNÇÃO: A função CSRLIN fornece o número da linha em que se encontra o cursor.

PROGRAMA EXEMPLO:

10 REM PROGRAMA CSRLIN
20 CLS
30 FOR F=1 TO 20
40 A$=A$+"#"
50 PRINT A$;CSRLIN
60 NEXT F



Converte um dado numérico para precisão simples.

FORMATO: CSNG (argumento)

EXEMPLO: A!=CSNG(B#)

FUNÇÃO: Fornece uma representação em precisão simples do argumento. Quando o argumento for um valor de precisão dupla, esta função fornecerá um valor com seis digítos significativos e um arredondamento de 4/5 no digíto menos significativo. Assim temos:
CSNG(0.666666666666667) resulta em .666667
e
CSNG(0.333333333333333) resulta em .333333

PROGRAMA EXEMPLO:

10 REM PROGRAMA CSNG
20 A=12.15456723#
30 PRINT A,CSNG(A)



Grava programas em código de máquina extraídos de uma área específica da memória.

FORMATO: BSAVE "nome do dispositivo [nome do arquivo]",endereço inicial,endereço final,[endereço do início de execução]

EXEMPLO: BSAVE"CAS:DEMO",&HA100,&HA2EF

FUNÇÃO: Este comando é utilizado para gravar o conteúdo de uma área da memória em um dispositivo (em geral, "CAS:", onde CAS = cassete). O nome do arquivo deve ter no máximo 6 caracteres (os excedentes serão ignorados). O nome do arquivo pode ser também uma string nula. Os endereços, inicial e final, indicam a área da memória que deve ser gravada. Devem ser números inteiros entre -32768 e 65535. O endereço do início de execução indica o endereço no qual o programa deverá iniciar a execução quando for carregado de volta ao computador pelo comando BLOAD com a opção R ativada. Também deve ser um número inteiro entre -32768 e 65535.

PROGRAMA EXEMPLO:

10 DATA 41,4C,45,50,48,FF,11,60,EA,1A
20 DATA FE,FF,C8,21,00,00,CD,4D,00,23
30 DATA E5,D5,11,BF,03,ED,52,D1,E1,38
40 DATA F1,21,FF,FF,2B,7C,B5,28,FB,13
50 DATA 18,DF
60 FOR I=0 TO 41
70 READ A$
80 POKE 60000!+I,VAL("&H"+A$)
90 NEXT I
100 DEFUSR=60006!
110 SCREEN 0
120 X=USR(0)
130 FOR T=1 TO 1000:NEXT T:CLS
140 BSAVE "CAS:ALEPH",60000!,60042!,60006!



Transforma um dado numérico em uma expressão binária na forma de uma string.

FORMATO: BIN$ (X)

EXEMPLO: LPRINT BIN$(9A)

FUNÇÃO: O comando BIN$ transforma um dado numérico (constante, variável numérica ou variável de matriz numérica) em uma expressão binária na forma de uma string. Caso o número seja negativo, primeiro calcula-se o valor (em decimal) subtraindo-se de 65536, e a partir do resultado desta operação, faz-se a conversão para binário e a transforma posteriormente numa string.
PRINT BIN$(115)
1110011
PRINT BIN$(-19)
1111111111101101 ( 65536-19=65517)

PROGRAMA EXEMPLO:

10 REM PROGRAMA BIN$
20 FOR F=0 TO 20
30 PRINT F;".......";BIN$(F)
40 NEXT F



Armazena, num cassete, um programa em BASIC MSX.

FORMATO: CSAVE "Nome do arquivo" [,velocidade de transmissão em bauds]
Nome do arquivo: Adota no máximo 6 caracteres, sendo que o primeiro deve obrigatoriamente ser um caractere alfabetico. Se forem especificados 7 ou mais caracteres, o sétimo e os demais serão ignorados.
Velocidade da tramissão em bauds: Especifica a velocidade de gravação, adotando o seguinte critério: 1 para 1200 bauds e 2 para 2400 bauds. Se a velocidade for omitida, sera adotada a velocidade 1 (=1200 bauds).

EXEMPLO: CSAVE"PROG1"

FUNÇÃO: Gravar arquivos em fita cassete. A gravação é feita no formato binário condesado, de modo que não se pode usar o comando MERGE (ele só funciona para arquivos gravados em ASCCII). A velocidade de transmissão de dados para o cassete também pode ser definica numa instrução SCREEN

PROGRAMA EXEMPLO:

10 CLS
20 PRINT"ESTE PROGRAMA SE AUTO-COPIA"
30 PRINT"APERTE (RETURN) PARA GRAVAR"
40 INPUT B$
50 CSAVE"ALEPH"
60 INPUT"OUTRA GRAVAÇÃO ";A$
70 IF A$="S" OR A$="s" THEN 10
80 END



Fornece o valor do cosseno de um arco em radianos.

FORMATO: COS (argumento)

EXEMPLO: C=COS(3.1415926535898/2)

FUNÇÃO: A função COS (X) tem por finalidade forncer o cosseno de argumento especificado que deve estar em radianos. A função COS é calculada em precisão dupla.

PROGRAMA EXEMPLO:

10 REM PROGRAMA COS
20 CLS
30 SCREEN 2
40 FOR F=0 TO 255 STEP .5
50 PSET(F,80-70*COS(F*6.141592#/255)
60 NEXT F
70 GOTO 70



Continua a execução de um programa interrompido.

FORMATO: CONT

EXEMPLO: CONT

FUNÇÃO: Continua a execução de um programa interrompido por uma instrução END, STOP ou mediante o pressionamento das teclas CONTROL + STOP. O comando CONT reinicia a execução a partir da instrução seguinte aquela que foi interrompida, a não ser que a interrupção tenha ocorrido durante uma instrução INPUT. Nesse caso, CONT faz com que o INPUT seja executado desde o começo.

PROGRAMA EXEMPLO:

10 REM CONT
20 FOR F=1 TO 20
30 PRINT TAB (F);F
40 NEXT F
50 PRINT"A execução do programa foi int
errompida por STOP."
60 PRINT"Digite CONT e aperte enter
para continuar!!!"
70 STOP
80 CLS
90 PRINT:PRINT"A execussão esta continu
ando!"
100 FOR R=333 TO 0 STEP-1
110 LOCATE 13,10
120 PRINTUSING"###";R
130 NEXT R
140 PRINT TAB(13);"FIM!!!"
150 END



Especifica as cores do primeiro plano, fundo, e área das bordas.

FORMATO: COLOR [cor do 1° plano], [cor do fundo], [cor da borda]

EXEMPLO: COLOR 15,7,7

FUNÇÃO: Tem a função de definir a cor da tela que está dividida em: borda, fundo, 1º plano.
Para definir a cor, o argumento deve estar entre 0 a 15. As cores correspondentes a cada valor estão na tabela abaixo:
--------------------------
Código | COR
---------------------------
0 | transparente
1 | preto
2 | verde
3 | verde claro
4 | azul escuro
5 | azul claro
6 | vermelho escuro
7 | azul celeste
8 | vermelho
9 | vermelho claro
10 | amarelo escuro
11 | amarelo claro
12 | verde escuro
13 | magenta
14 | cinza
15 | branco
--------------------------

Exemplos:
COLOR 6 somente colocará a cor do primeiro plano
COLOR ,2 somente colocará a cor do fundo
COLOR ,,1 somente colocará a cor da área das bordas
COLOR 15,1,4 colocará a cor nas 3 áreas


PROGRAMA EXEMPLO:

10 REM PROGRAMA COLOR
20 CLS
30 FOR F=1 TO 14
40 FOR G=1 TO 150
50 NEXT G
60 PRINT">>>>>>>>>>> TESTE DE CORES <<<<
<<<<<<<<"
70 COLOR F,F-1,F+1
80 NEXT F
90 COLOR 15,1,1



Apaga tudo o que está visualizado nao tela.

FORMATO: CLS

EXEMPLO: CLS

FUNÇÃO: Esse comando tem a função de "limpar a tela". Desativa todos seus pontos gráficos e move o cursor para o canto superior esquerdo. Muito útil quando se deseja uma boa apresentação visual. No modo gráfico o comando COLOR será executado após um comando CLS.

PROGRAMA EXEMPLO:

10 REM PROGRAMA CLS
20 INPUT"VOCE QUER LIMPAR A TELA (S/N)"
;R$
30 IF R$="n" OR R$="N" THEN 50
40 CLS
50 END



Carrega um programa em BASIC MSX de um cassete para a memória do MSX.

FORMATO: CLOAD | CLOAD? (cassete load)["nome do arquivo"]
CLOAD? ["nome do arquivo"]

EXEMPLO: CLOAD | CLOAD? (cassete load)"DEMO"
CLOAD? "DEMO"

FUNÇÃO: O comando CLOAD | CLOAD? (cassete load)possibilita a carga de um progrma armazenado em fita cassete (colocando o gravador no modo PLAY). Cerfique-se de que as ligações foram feitas corretamente e de que a fita foi rebobinada até a posição correta. O nome de arquivo pode ter no maximo 6 caracteres, os exedentes serão desprezado. No nome de arquivo podem ser utilizados quaisquer caracteres, execto as próprias aspas. O BASIC permite especificar o nome de arquivo desejado, por exemplo, CLOAD"PROG3". Isso fará com que o computador ignore qualquer programa, até que ele encontre o programa rotulado "PROG3". Quando o computador encontrá-lo, ele será carregado. Enquanto o computador estiver procurando o arquivo "PROG3", os nomes dos outros programas encontrados aparecerão da seguinte forma:

Skip:PROG1
Skip:PROG2

e, quando o arquivo "PROG3" for encontrado aparecerá:

Found:PROG3

Isso significa que o "PROG3" foi encontrado e está sendo carregado. Se o nome do arquivo não for especificado, o primeiro programa encontrado pelo computador será carregado na memória. CLOAD? permite a comparação de um programa armazenado em fita cassete, com um programa na memória do computador. Isto é útil quando, após gravar programas na fita (usando CSAVE), se deseja verificar se a transferência foi bem sucedida. Durante o CLOAD? o programa na fita e o programa na memória, são comparados byte por byte. Se houver alguma irregularidade (indicando uma gravação mal feita) o computador manda''ra a seguinte mensagem:

Verify error

Neste caso, você deverá gravar o programa novamente.



Fecha um arquivo que foi aberto por um comando OPEN.

FORMATO: CLOSE [#] [número do arquivo]
[, número do arquivo]

EXEMPLO: CLOSE#1

FUNÇÃO: Tem a função de fechar o acesso a um arquivo, através de um ou mais buffers, especificados, liberando-o(s). Se o número do arquivo não for especificado, todos os canais abertos pelo comando OPEN serão fechados.

PROGRAMA EXEMPLO:

10 REM PROGRAMA CLOSE
20 MAXFILES=1
30 CLS
40 OPEN "GRP:" FOR OUTPUT AS #1
50 SCREEN 2
60 LINE(0,0)-(255,191),5,BF
70 CIRCLE(120,120),50
80 PRINT #1,"EXEMPLO"
90 FOR I=1 TO 1000:NEXT I
100 CLOSE#1
110 SCREEN 0
120 LIST



Inicializa todas as variáveis e estabelece o tamanho da área de caracteres e o útimo indereço de memória utilizada pelo BASIC. Também fecha todos os arquivos abertos.

FORMATO: CLEAR (tamanho da área de caracteres)[, (endereco da RAMTOP)]
TAMANHO DA ÁREA DE CARACTERES: Espaço para variáveis string.
ENDEREÇO DA RAMTOP: Especifica a área de memória disponível para ser usado pelo BASIC.

EXEMPLO: CLEAR 400,55296

FUNÇÃO: Com esta instrução, inicializa-se todas as variáveis e estabelece (quando especificado) o último endereço da área de programação BASIC, ou seja o valor da RAMTOP

PROGRAMA EXEMPLO:

10 REM PROGRAMA CLEAR
20 CLEAR 200
30 ON ERROR GOTO 90
40 FOR F=1 TO 25
50 A$=A$+"##########"
60 PRINT"A$ esta com";10*F;"caracteres."
70 NEXT F
80 END
90 PRINT"Com";10*F;"caracteres em A$, o micro nao"
100 PRINT"consegue trabalhar e ocorre um erro:"
110 PRINT CHR$(34);"Out of string space";CHR$(34)
120 PRINT:PRINT"Agora sera executado um comando CLEAR e o programa recomecara!"
130 CLEAR 10000
140 FOR G=1 TO 3000 : NEXT F
150 GOTO 40



Traça, no modo gráfico, um círculo, uma elipse, uma parte de um arco circular (ou um setor).

FORMATO: CIRCLE [STEP] (X,Y), raio [,cor] [,ângulo inicial] [,ângulo final] [,proporção]
(X,Y):Especifica as coordenadas que determinam o centro do círculo na tela. Podem ser constantes, variáveis ou variáveis indexadas, com valor entre -32768 e 32767. Se o STEP for especificado antes, a origem do sistema de coordenadas da tela (0,0) será transferida do canto superior esquerdo para a posição do último ponto plotado.
RAIO: Pode ser uma constante, variável ou uma variável indexada com valor entre -32768 e 32768, indicando o radio da figura a ser traçada.
COR: Indica qual a cor com que a elipse será desenhada. Deve ser um inteiro entre 0 e 15.
Os parâmetros [ângulo inicial] e [ângulo final], são medidos em radianos entre 0 e 2 PI.
PROPORÇÃO: É a operação entre o eixo horizontal e vertical da elipse. Os dados podem ser: constantes, variáveis indexadas, números positivos ou suas expressões. Se omitido, será assumido o valor 1

EXEMPLO: CIRCLE (128,86),70,10,0,3,4

FUNÇÃO: Este comando é utilizado para desenhar um círculo com a especificação do raio e com seu centro nas coordenadas também especificadas. Quando se especificam os ânguls (incial e final), somente será traçado uma parte do arco circular. O arco poderá ser traçado colocando o sinal de menos [ - ] para o valor dos ângulos inicial e final. Uma elipse poderá ser traçada especificando a "proporçao" (relação altura/largura), isto é o número de vezes que o eixo horizontal está contido na vertical.

PROGRAMA EXEMPLO:

10 REM PROGRAMA ESFERA
20 SCREEN 2
30 FOR B=80 TO 1 STEP -10
40 E1=80/B
50 E2=B/80
60 CIRCLE (128,80),80,5,,,E1
70 CIRCLE (128,80),80,5,,,E2
80 NEXT B
90 COLOR 5,1
100 LINE (128,160)-(128,0)
110 LINE (48,80)-(208,80)
120 GOTO 100



Toca sequências de notas e/ou acordes musicais compostos de uma a três notas simultaneamente, com tempo, oitava, duração, tom e volume programável.

FORMATO: PLAY subcomandos

EXEMPLO: PLAY"s0m5000v15cdefgab"

FUNÇÃO: Gerar, utilizando o Gerador Programável de Som (PSG), sequências musicais compostas de até três notas simultâneas, especificadas por subcomandos. Esses subcomandos podem ser representados por strings dentro de " " ou por variáveis string.

Por exemplo:

Toca uma nota repetidamente:
10 PLAY "C"
20 GOTO 10

Toca um acorde com três notas:
10 PLAY"G","E","B"
20 GOTO 10

Atribui à string uma sequência de notas musicais:
10 M$="GEB"
20 N$="EGB"
30 O$="BEG"

Toca as sequências utilizando simultaneamente os três canais de som:
50 PLAY M$,N$,O$
60 M$="GEB"
60 PLAY M$,"O2EGB","O6BEG"

SUBCOMANDOS DA FUNÇÃO PLAY:

Tn (tempo):
-Função: determina o andamento da música. O valor inicial é T120.
-Valores permitidos: de 32 a 255

On (oitava):
-Função: Determina uma das 8 oitavas do MSX. O valor inicial é O4.
-Valores permitidos: de 1 a 8

Ln (duração):
-Função: Determina a duração da nota. O valor inicial é L4.
-Valores permitidos: de 1 a 64

Nn (nota):
-Função: Especifica uma nota musical.N0 é uma pausa. Quando n aumenta de uma unidade a nota sobe meio tom.
-Valores permitidos: de 0 a 96

A-G (An-Gn):
-Função: Especifica uma nota musical dentro de uma oitava pré-determinada. A=lá; B=si; C=dó; D=ré; e=mi; F=fá; G=sol. O sinal "#" (ou "+") colocado ao lado da nota especifica um sustenido. O sinal "-" determina um bemol.

Exemplo de três notas separadas por meio tom:
PLAY"C-"
PLAY"C"
PLAY"C#"

A duração da nota pode ser fixada através de n. (D4 é o mesmo que L4D). Quando omitido, a duração será determinada por Ln.

Rn (pausa):
-Função: Determina uma pausa.
-Valores permitidos: de 1 a 64

. (ponto):
-Função: Aumenta a duração de uma nota ou de uma pausa em 50%. Exemplo: PLAY"C4."

Vn (volume):
-Função: Determina o volume. O volume aumenta com o valor de n. O valor inicial é V8.
-Valores permitidos: de 0 a 15

Mn (período do envelope):
-Função: Determina o período da variação de volume durante a execução da nota. Veja a função SOUND, nota (i) para mais informações.
-Valores permitidos: de 0 a 65535

Sn (forma do envelope):
-Função: Determina o formato do envelope. Para maiores detalhes veja a função SOUND (tabela de envelopes e nota(j)).
-Valores permitidos: de 0 a 15


PROGRAMA EXEMPLO:

10 REM PROGRAMA PLAY
20 PLAY"S0M10000V15T180"
30 PLAY"L4O3GFL8EDECO2BABG"
40 PLAY"O3L4CEAGBO4L3CO3"
50 PLAY"L8AGFEL3EL4DGBO4C"
60 PLAY"LCEL4DL6DFL4ECFEDE"
70 PLAY"L6FEDCL4CO3B"
80 PLAY"O4L4CC#L3DL6DFL4E"
90 PLAY"L6EGL4FDO3GBO4C"



Escreve um dado numérico em um certo endereço da memória.

FORMATO: POKE endereço, expressão

EXEMPLO: POKE &HE111,201

FUNÇÃO: A instrução POKE escreve dados numéricos em um certo endereço da memória. Tanto a memória como o dado podem ser escritos em decimal ou hexadecimal. Caso você use números hexadecimais, lembre-se de precedê-los com &H. O valor do endereço pode variar de -32768 (decimal) a 65535 (decimal) e o valor do dado de 0 (decimal) a 255 (decimal).

ROGRAMA EXEMPLO:

10 REM PROGRAMA ESPELHO
20 CLS
30 POKE 40001!,ASC("E")
40 POKE 40002!,ASC("T")
50 POKE 40003!,ASC("N")
60 POKE 40004!,ASC("E")
70 POKE 40005!,ASC("I")
80 POKE 40006!,ASC("D")
90 POKE 40007!,ASC("A")
100 POKE 40008!,ASC("R")
110 POKE 40009!,ASC("G")
120 FOR I=40009! TO 40001! STEP-1!
130 PRINT I, "....."CHR$(PEEK(I))
140 NEXT I
150 END



Apresenta dados na tela.

FORMATO: PRINT expressão[separador expressão separador]

EXEMPLO: PRINT "Isto aparecera' na tela"

FUNÇÃO: O comando PRINT apresenta na tela os dados definidos pelas expressões. Uma expressão pode ser uma constante, uma variável (numéricas ou strings). Se a expressão for numérica, basta excrevê-la normalmente, mas se ela for uma string deve estar entre aspas. O separador pode ser uma vírgula (,) ou um ponto e vírgula (;). A vírgula faz com que a expressão à sua frente seja apresentada a partir da coluna 0 ou da coluna 14. O ponto e vírgula faz com que a apresentação seja feita logo a seguir o último dado apresentado.

ROGRAMA EXEMPLO:

10 REM PROGRAMA PRINT
20 PRINT "GRADIENTE & ALEPH"
30 GOTO 20
40 NEXT I



Converte dados numéricos em números inteiros.

FORMATO: CINT (argumento)

EXEMPLO: A%=CINT(B#*2)

FUNÇÃO: A função CINT (X) fornece o maior número inteiro possível menor que o valor do argumento especificado. Por exemplo:
CINT (1.5) resulta em 1
CINT (-1.5) resulta em -2
Para a função CINT, o argumento deve estar entre os limintes de -32768 e +32768. casp contrário, ocasionará um erro de overflow. CINT pode ser utilizado para acelerar operações envolvendo operandos de precisão simples e dupla.

PROGRAMA EXEMPLO:

10 REM PROGRAMA CINT
20 CLS
30 FOR F=1 TO 20
40 A=500-RND(-TIME)*1000
50 PRINT A;".........';CINT(A)
60 NEXT F



Fornece o caractere correpondente ao código especificado.

FORMATO: CHR$ (argumento)

EXEMPLO: A$=CHR$(65)

FUNÇÃO: Realiza o inverso da funçã ASC, isto é, fornece o caractere correspondente ao código ASCII especificado. O argumento pode ser qualquer número de 0 a 255, ou qualquer expressão variável com um valor nessa faixa. O argumento ou expressão deve estar entre parênteses.

PROGRAMA EXEMPLO:

10 REM TABELA DE CARACTERES
20 DATA 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F
30 SCREEN 2,,,,1
40 OPEN"GRP:"FOR OUTPUT AS 1
50 FOR F=0 TO 255
60 L=F\16:C=4+F-16*L
70 PSET (11*C,13+11*L),1
80 IF F<32 THEN PRINT #1,CHR$(1)+CHR$(64+F)
90 IF F>31 THEN PRINT #1,CHR$(F)
100 NEXT F
110 FOR F=0 TO 187 STEP 11
120 LINE (31,F)-(218,F)
130 NEXT F
140 FOR F=31 TO 218 STEP 11
150 LINE(F,0)-(F,187)
160 NEXT F
170 FOR F=45 TO 217 STEP 11
180 C=C+1:READ A$
190 PSET (F+1,2),1:PRINT#1,A$
200 PSET (F+1,3),1:PRINT#1,A$
210 PSET (F,2),1:PRINT#1,A$
220 PSET (F,3),1:PRINT#1,A$
230 PSET (35,F-32),1:PRINT#1,A$
240 PSET (35,F-31),1:PRINT#1,A$
250 PSET (34,F-32),1:PRINT#1,A$
260 PSET (34,F-31),1:PRINT#1,A$
270 NEXT F
280 GOTO 280



Converte um dado numérico no formato "precisão simples" em um dado no formato "precisão dupla".

FORMATO: CDBL

EXEMPLO: A#=CDBL(B!/2)

FUNÇÃO: Esta função converte o argumento para o formato em precisão dupla. O valor resultante apresenta um formato com 17 dígitos. CDBL pode ser útil, quando se quer forçar uma operação a ser efetuada em precisão dupla, mesmo que os operandos sejam de precisao simples ou inteiros.

PROGRAMA EXEMPLO:

10 REM PROGRAMA CDBL
20 A!=20
30 B=3.141592#
40 C=CDBL(A!/B)
50 PRINT A!,B,C



Executa um comando contido num cartucho ROM.

FORMATO: CALL nome do comando [,(argumentos)]

EXEMPLO: CALL START

FUNÇÃO: Serve para chamar um comando de uma memória auxiliar em cartucho. Do Mesmo modo que o comando PRINT pode ser substituído por [ ? ] e o comando REM pode ser substítuido pelo [ ' ] , e o comando CALL pode ser substítuido pelo sinal [ _ ].

PROGRAMA EXEMPLO:

10 ' PROGRAMA CALL
20 PRINT"Voce quer formatar o seu disquete (s/n)?"
30 Z$=INPUT$(1)
40 IF Z$="s" OR Z$="S" THEN CALL FORMAT:GOTO 60
50 PRINT"Ate mais!"
60 END



Dictionary Version 0.91 by nagl.ch

Pesquisa
Downloads recentes
Melhores Downloads
Google Adsense
Mercado Livre
Aonde.com

Busca na web
Aonde.com - outros serviços: Aondebr.com e Sitetracer.com
Powered by XOOPS 2.0 © 2001-2007 The XOOPS Project
Hosted by MSX-All Project