Kit MSX 2 da MPO

Manual do Kit de Transformação para MSX 2.0 da MPO. Este manual é super suscinto, tendo apenas algumas explicações sobre os comandos que mudaram, novos modos de tela, comandos novos. 

kitmpo

Todo o texto foi extraído exatamente como consta no manual original da MPO/ACVS, incluindo erros. Devo salientar que estes erros são gritantes, não apenas gramática e semântica, mas informações erradas, páginas cruzadas, informações "coladas" onde não deveriam. Um exemplo é a página PAD, embora este comando conste do manual do MSX original, as informações do manual da MPO são mais amplas, porém cheias de erros gritantes. O comando GOSUB não foi incluído (assim com outros que não acrescentam nada aos manuais originais), pois além de não trazer nada de novo, foi misturado com o comando OPEN, meia página fala do GOSUB e a outra metada fala sobre o OPEN, porém não se trata do início, já começa com as notas, inclusive com a segunda nota, sem existir a introdução do comando muito menos a nota 2. Existe ainda um comando relacionado a comunicação serial, seria interessante pois existe pouca informação sobre a interface, porém é apenas um comando e ponto final, ou seja, não vejo utilidade nele.


Operação Lógica a Cores

Com as instruções COPY, LINE, PRESET e PSET, pode usar uma operação lógica a cores, o que significa uma operação lógica entre o número da cor da paleta da instrução (SC) e o número da cor da paleta da zona de destino do screen (DC).

O resultado dessa operação lógica será o número da paleta de cores (C) da zona de destino depois da execução da instrução.

São possíveis as seguintes operações lógicas a cores:

  • XOR → C=NOT(SC) * DC + SC * NOT(DC)
  • OR → C=SC + DC
  • AND → C=SC * DC
  • PSET → C=SC
  • PRESET→ C=NOT(SC)
  • TXOR → Mesmo que XOR, mas a cor transparente não tem efeito.
  • TOR → Mesmo que OR, mas a cor transparente não tem efeito.
  • TAND → Mesmo que AND, mas a cor transparente não tem efeito.
  • TPSET → Mesmo que PSET, mas a cor transparente não tem efeito.
  • TPRESET → Mesmo que PRESET, mas a cor transparente não tem efeito.

Capítulo 1: Descrição da Sintaxe

Este manual comtém descrições de todos os comandos, instruções e funções de "MSX2-BASIC". Estão colocadas em ordem alfabética para vossa conveniência.

As descrições foram divididas da seguinte maneira:

  • Formato: Mostra o formato próprio das instruções (ver notas sobre o formato mais adiante).
  • Finalidade: Explica o fim da ordem, instrução, função ou, por outras palavras, como é que se utiliza.
  • Categoria: Indica a que categoria pertence a declaração: ordem, instrução, função.
  • Observações: Explica como devem ser efectivamente usadas as intruções.
  • Exemplo: É dado um exemplo para ilustrar a aplicação de cada instrução.

Notas

  1. Itens dentro do formato, que são mostrados em letras maiúsculas, devem ser escritos exatamente como se indica.
  2. Itens entre parênteses < > têm que ser definidos pelo utilizador.
  3. Itens entre parêntesis retos [ ] são opcionais.
  4. Itens seguidos por três pontos (...) podem ser repetidos tantas vezes quantas o comprimento da linha do programa lhe permita
  5. Todas as instruções com exceção dos [< >] devem ser escritas cuidadosamente tal como são mostradas. Isto aplica-se a pontos finais, vírgulas, parêntesis, dois pontos, ponto e vírgula, etc. (.,():;...).
  6. "X", "Y" e "Z" representam expressões numéricas.
  7. "X$", "Y$" e "Z$" representam expressões alfanuméricas.

BASE

  • Formato: BASE (< X >)
  • Finalidade: Contém o primeiro endereço das tabelas VDP.
  • Categoria: Variável do sistema.
  • Observações: <X> deve ser sempre uma expressão de números inteiros de 0 a 44. Os números tem o seguinte significado:
0 Primeiro endereço da tabela de nomes no modo de texto 1
1 Sem significado
2 Primeiro endereço da tabela padrão no modo de texto 1
3 Sem significado
4 Sem significado
5 Primeiro endereço da tabela de nomes no modo de texto 2
6 Primeiro endereço da tabela de cores no modo de texto 2
7 Primeiro endereço da tabela de padrão no modo de texto 2
8 Primeiro endereço da tabela de "sprite" atributo no modo de texto 2
9 Primeiro endereço da tabela de "sprite" padrão no modo de texto 2
10 Primeiro endereço da tabela de nomes no modo gráfico 1
11 Primeiro endereço da tabela de cores no modo gráfico 1
12 Primeiro endereço da tabela de padrão no modo gráfico 1
13 Primeiro endereço da tabela de "sprite" atributo no modo gráfico 1
14 Primeiro endereço da tabela de "sprite" padrão no modo gráfico 1
15 Primeiro endereço da tabela de nomes no modo gráfico 2
16 Primeiro endereço da tabela de cores no modo gráfico 2
17 Primeiro endereço da tabela de padrão no modo gráfico 2
18 Primeiro endereço da tabela de "sprite" atributo no modo gráfico 2
19 Primeiro endereço da tabela de "sprite" padrão no modo gráfico 2
20 Primeiro endereço da tabela de etiquetas no modo gráfico 3
21 Primeiro endereço da tabela de cores no modo gráfico 3
22 Primeiro endereço da tabela de formas no modo gráfico 3
23 Primeiro endereço da tabela de "sprite" atributos no modo gráfico 3
24 Primeiro endereço da tabela de "sprite" formas no modo gráfico 3
25 Primeiro endereço da tabela de etiquetas no modo gráfico 4
26 Primeiro endereço da tabela de cores no modo gráfico 4
27 Primeiro endereço da tabela de formas no modo gráfico 4
28 Primeiro endereço da tabela de "sprite" atributo no modo gráfico 4
29 Primeiro endereço da tabela de "sprite" formas no modo gráfico 4
30 Primeiro endereço da tabela de etiquetas no modo gráfico 5
31 Primeiro endereço da tabela de cores no modo gráfico 5
32 Primeiro endereço da tabela de formas no modo gráfico 5
33 Primeiro endereço da tabela de "sprite" atributos no modo gráfico 5
34 Primeiro endereço da tabela de "sprite" formas no modo gráfico 5
35 Primeiro endereço da tabela de etiquetas no modo gráfico 6
36 Primeiro endereço da tabela de cores no modo gráfico 6
37 Primeiro endereço da tabela de formas no modo gráfico 6
38 Primeiro endereço da tabela de "sprite" atributos no modo gráfico 6
39 Primeiro endereço da tabela de "sprite" formas no modo gráfico 6
40 Primeiro endereço da tabela de etiquetas no modo gráfico 7
41 Primeiro endereço da tabela de cores no modo gráfico 7
42 Primeiro endereço da tabela de formas no modo gráfico 7
43 Primeiro endereço da tabela de "sprite" atributos no modo gráfico 7
44 Primeiro endereço da tabela de "sprite" forma no modo gráfico 7

Quando se lê um endereço de base, o valor válido de <X> varia entre 0 e 44.

Ao escrever um endereço de base, o valor válido de <X> varia entre 0 e 19. Isso significa que só são válidos os modos de texto 1 e 2 e os modos gráficos 1 e 2. Quando um endereço de base do modo gráfico 1 é alterado, os endereços de base dos modos gráficos 3, 4, 5, 6 e 7 também são alterados.

Usem esta variável apenas quando já estiverem familiarizados com o modo de trabalho do VDP.

Exemplo

10 SCREEN 0

20 PRINT BASE(2)

30 END

RUN

file:base.bas

kitmpo2 0000 kitmpo2 0001

BEEP

  • Formato: BEEP
  • Finalidade: Produzir um "beep".
  • Categoria: Instrução.
  • Observações: Esta instrução tem o mesmo efeito que "PRINT CHR$(7)".

O som pode também ser obtido apertando-se as teclas [CTRL]+[G] simultaneamente.

Exemplo

10 BEEP

20 FOR I=0 TO 1000:NEXT

30 PRINT "AGORA COM CHR$(7)"

40 PRINT CHR$(7);

50 END

RUN


CALL MEMINI

Formato: CALL MEMINI [ (<X>) ]

  • Finalidade: Preparar uma área de memória para o disco de memória.
  • Categoria: Instrução.
  • Observações: <X> é o tamanho do disco de memória e tem de ser um número inteiro maior do que 1023, ou 0 (zero). O tamanho real do disco de memória calcula-se como se segue:

(INT((<X>-1023)/256)+1)*256

O valor de erro de <X> é 32767.

CALL MEMINI(0) anula a função do disco de memória.

O conteúdo do disco de memória será limpo quando for executada a instrução "CALL MEMINI".

Em vez da palavra também se pode usar o sublinhado (_).

A instrução CALL MEMINI tem de ser executada antes de o disco de memória poder ser utilizado. Após a execução de CALL MEMINI, podem utilizar-se as "declarações" CALL MFILES, CALL MKILL, CALL MNAME.

Após a execução da instrução CALL MEMINI, podem utilizar-se as seguintes "declarações" para ler arquivos que se encontram no disco de memória, ou para escrever arquivos no mesmo:

SAVE, LOAD, RUN, MERGE, OPEN, CLOSE, PRINT#, PRINT USING, INPUT#, LINE INPUT#, INPUTS#, EOF, LOC, LOF. A maneira de usar é a mesma que para um "diskette drive", só que o nome do dispositivo é MEM. Não é possível o acesso aleatório aos arquivos armazenados no disco de memória.

Exemplo

10 _MEMINI

20 REM

30 REM

40 REM

50 END

SAVE "MEM:PROG.BAS"

file:memini.bas

kitmpo2 0002


CALL MFILES

  • Formato: CALL MFILES
  • Finalidade: Exibir os nomes dos arquivos armazenados no disco de memória, bem como o tamanho do espaço livre.
  • Categoria: Comando.
  • Observações: Em vez da palavra CALL, também se pode usar um sublinhado (_).

Este comando só pode ser executado se a instrução CALL MEMINI tiver sido executada uma vez antes. Se a instrução CALL MEMINI não tiver sido já executada ou se o disco de memória for anulado por meio da instrução CALL MEMINI(0), o comando "CALL MFILES" produzirá a mensagem de erro "disk offline" (disco fora de circuito).

Exemplo

_MFILES

kitmpo2 0003


CALL MKILL

  • Formato: CALL MKILL ("<nome do arquivo>")
  • Finalidade: Retirar um arquivo armazenado no disco de memória.
  • Categoria: Instrução.
  • Observações: Em vez da palavra CALL, também se pode usar um sublinhado (_).

Nome do arquivo é o nome do arquivo que tem de ser retirado.

Esta instrução só pode ser utilizada se a instrução "CALL MEMINI" tiver sido executada uma vez antes. Se a instrução CALL MEM INI não tiver já sido executada ou se o disco de memória for anulado por meio da instrução "CALL MEMINI(0)", a instrução "CALL MFILES" produzirá a mensagem de erro "disk offline" (disco fora do circuíto).

Exemplo

10 _MILL("PROG.BAS")

20 PRINT "PROG.BAS foi apagado"

30 END

file:mkill.bas

kitmpo2 0004


CALL MNAME

  • Formato: CALL MNAME("<filename-1>"AS"<filename-2>")
  • Finalidade: Alterar o nome de um arquivo armazenado no disco de memória.
  • Categoria: Instrução.
  • Observações: <filename-1> é o nome original do arquivo, ao passo que <filename-2> é o novo nome do arquivo. Em vez da palavra CALL, também se pode usar um sublinhado (_).

Esta instrução só pode executar-se se a instrução CALL MEMINI não tiver já sido executada ou se o disco de memória tiver sido anulado por meio de instrução CALL MEMINI(0), a instrução CALL MNAME produzirá a mensagem de erro "disk offline" (disco fora do circuito).

Exemplo

10 _MNAME("prog.bas"AS"myfile.bas")

20 _MFILES

30 END

file:mname.bas

kitmpo2 0005


CLS

  • Formato: CLS
  • Finalidade: Limpar o Screen.
  • Categoria: Instrução.
  • Observações: Esta instrução é a mesma que "PRINT CHR$(12)".

Obtém-se o mesmo efeito apertando-se simultaneamente as teclas [SHIFT]+[HOME] ou apertando-se, também simultaneamente, as teclas [CTRL]+[L].

Quando a instrução tiver sido executada, o cursor mover-se-á para a primeira posição da primeira linha.

Exemplo

10 CLS

20 PRINT "AGORA COM CHR$(12)"

30 FOR I=0 TO 1000:NEXT

40 PRINT CHR$(12);

50 END

RUN

file:cls.bas

kitmpo2 0006 kitmpo2 0007

COLOR

  • Formato: COLOR [<X>][,<Y>[,<Z>]]
  • Finalidade: Definir a cor do Screen.
  • Categoria: Instrução.
  • Observações: <X> é um número inteiro e define a cor do primeiro plano. <Y> é um número inteiro e define a cor de fundo. <Z> é um número inteiro e define a cor das áreas limítrofes no modo de texto 2 e em todos os modos gráficos.

<X>,<Y> e <Z> têm de estar compreendido entre: 0 e 15 em todos os modos de texto d nos modos gráficos 1, 2, 3, 4 e 6. 0 e 3 no modo gráfico 5. 0 e 255 no modo gráfico 7.

A cor real correspondente a cada número da paleta de cores, exceto no modo gráfico 7, é indicada no seguinte quadro da paleta de cores:

    Intensidade
Nº da Paleta Cor Vermelho Verde Azul
0 Transparente 0 0 0
1 Preto 0 0 0
2 Verde Médio 1 6 1
3 Verde Claro 3 7 3
4 Azul Escuro 1 1 7
5 Azul Claro 2 3 7
6 Vemelho Escuro 5 1 1
7 Ciano 2 6 7
8 Vermelho Médio 7 1 1
9 Vermelho Claro 7 3 3
10 Amarelo Escuro 6 6 1
11 Amarelo Claro 6 6 4
12 Verde Escuro 1 4 1
13 Magenta 6 2 5
14 Cinzento 5 5 5
15 Branco 7 7 7

file:paleta.bas

kitmpo2 0008

A intensidade do vermelho, do verde e do azul pode ser alterada por meio de instrução COLOR=.

Modo Gráfico 5

Neste modo, podem fazer-se riscas com as cores limítrofes.

Se o número das cores limítrofes se encontrar entre 0 e 3, toda a borda ficará da cor que se encontra definida no quadro da paleda de cores.

Mas se o número das cores limítrofes ficar entre 16 e 31, a borda transformar-se-á em riscas de cores misturadas como se segue:

Nº das Cores Limites das Cores da Paleta
16 0 e 0
17 0 e 1
18 0 e 2
19 0 e 3
20 1 e 0
21 1 e 1
22 1 e 2
23 1 e 3
24 2 e 0
25 2 e 1
26 2 e 2
27 2 e 3
28 3 e 0
29 3 e 1
30 3 e 2
31 3 e 3

Modo Gráfico 7

Neste modo, o número de cores para o primeiro plano, fundo e bordas pode encontrar-se entre 0 e 255. A cor real é determinada como se segue:

Número da Cor = 4*r+32*g+b

Em que R, G e B são, respectivamente, a intensidade do Vermelho, do Verde e do Azul.

O Vermelho e o Verde tem de ter um valor entre 0 e 7.

O Azul tem de ter um valor entre 0 e 3. Assim, uma cor com intensidade de vermelho, verde e azul de, respectivamente, 7, 5 e 2, dará o número de cor

190 (=4*7+32*5+2)

Quando não for dado nenhum valor para <X>, <Y> e <Z>, o "MSX2-BASIC" usará as últimas instruções sobre cores para o primeiro plano, fundo e áreas limítrofes (bordas de cores).

Os valores de erro <X>, <Y> e <Z> são 15,4 e 7.

Exemplo

10 SCREEN 8

20 OPEN "GRP:" FOR OUTPUT AS #1

30 PRESET (0,0)

40 FOR I=0 TO 255 : COLOR I : PRINT #1,CHR$(219); : NEXT

50 FOR I=0 TO 2000 : NEXT

60 CLOSE

70 END

file:fulcolor.bas

kitmpo2 0009


COLOR=

  • Formato: COLOR=(<X>,<XX>,<YY>,<ZZ>)
  • Finalidade: Alterar a intensidade do vermelho, verde e azul do quadro da paleta de cores.
  • Categoria: Instrução.
  • Observações: <X> é o número da paleta de cores e tem de ser um número inteiro compreendido entre 0 e 15. <XX> é a intensidade do vermelho e tem de ser um número inteiro entre 0 e 7. <YY> é a intensidade do verde e tem de ser um número inteiro compreendido entre 0 e 7. <ZZ> é a intensidade do azul e tem de ser um número inteiro compreendido entre 0 e 7.

Esta instrução pode ser utilizada em todos os modos do SCREEN, exceto no modo gráfico 7.

O número de cor da paleta 0 (zero) é normalmente atribuído ao transparente. Significa que esta cor não é visível, sejam quais forem as intensidades do vermelho, verde e azul. Para usar o número de cor da paleta 0 (zero), tal como quaisquer outros números de cores da paleta, sirva-se da seguinte instrução:

VDP(9)=VDP(9) OR &H20

Para reajustar o número da cor da paleta 0 (zero) para transparente, utilizar a seguinte instrução:

VDP(9)=VDP(9) AND &HDF

Exemplo

10 SCREEN 4

20 LINE(10,10)-(100,100),2,BF

30 FOR I=0 TO 2000:NEXT

40 COLOR=(2,6,3,6)

50 FOR I=0 TO 2000:NEXT

60 END

file:corpal.bas

kitmpo2 0010 kitmpo2 0011

COLOR=NEW

Formato: COLOR[=NEW]

Finalidade: Repor a intensidade do vermelho, do verde e do azul do quadro da paleta de cores nos valores de erro.

Categoria: Instrução.

Observações: Os valores de erro da intensidade do vermelho, do verde e do azul do quadro da paleta de cores são descritos juntamente com a instrução COLOR.

Exemplo

10 SCREEN 0:WIDTH 40:COLOR 15

20 COLOR=(15,1,1,2)

30 PRINT "NEW COLOR"

40 FOR I=0 TO 2000:NEXT

50 COLOR=NEW

60 PRINT "DEFAULT COLOR"

70END

file:colornew.bas

kitmpo2 0012 kitmpo2 0013

COLOR=RESTORE

  • Formato: COLOR=RESTORE
  • Finalidade: Ajustar a intensidade do vermelho, do verde e do azul do quadro de paleta de cores ao valor armazenado na memóaria de vídeo.
  • Categoria: Instrução.
  • Observações: Esta instrução é útil quando os dados referentes ao quadro da paleta de cores foram introduzidos pela instrução BLOAD...,S e a intensidade do vermelho, do verde e do azul do quadro de paleta de cores têm de ser alteradas pelos dados acabados de ser carregados.

O quadro da paleta de cores encontra-se armazenado na memória de vídeo como se segue:

Modo da Screen Área da VRAM
modo de texto 1 (40 caracteres) &H0400 - &H0420
modo de texto 1 (80 caracteres) &H0F00 - &H0F20
modo de texto 2 &H2020 - &H2040
modo gráfico 1 &H2020 - &H2040
modo gráfico 2 &H2020 - &H2040
modo gráfico 3 &H2020 - &H2040
modo gráfico 4 &H7680 - &H76A0
modo gráfico 5 &H7680 - &H76A0
modo gráfico 6 &HFA80 - &HFAA0
modo gráfico 7 &HFA80 - &HFAA0

Nos modo gráficos 4, 5, 6 e 7 pode ajustar-se mais de uma página (ver instrução SET PAGE). Para conhecer o endereço da memória de vídeo do quadro da paleta de cores das várias páginas, tem de ser efetuar o seguinte cálculo:

Modo da Screen Cálculo
Modo gráfico 4 Nº da página * &H08000 + &H7680
Modo gráfico 5 Nº da página * &H08000 + &H7680
Modo gráfico 6 Nº da página * &H10000 + &HFA80
Modo gráfico 7 Nº da página * &H10000 + &HFA80

Exemplo

10 SCREEN 0:WIDTH 40:COLOR 15

20 COLOR=(15,0,7,0)

30 PRINT "COLOUR"

40 BSAVE "COL1.PIC",&H420,&H490,S

50 COLOR=NEW

60 FOR I=0 TO 2000:NEXT

70 BLOAD "COL1.PIC",S

80 COLOR=RESTORE

90 END

file:colorest.bas

kitmpo2 0014 kitmpo2 0015

COLOR SPRITE

  • Formato: COLOR SPRITE (<X>)=<Y>
  • Finalidade: Ajustar a cor do "Sprite" especificado.
  • Categoria: Instrução.
  • Observações: Esta instrução só é válida nos modos gráficos 3, 4, 5, 6 e 7. <X> é o número do "Sprite" tal como se encontra registrado na variável SPRITE$(X). <Y> tem de ser um número inteiro compreendido entre 0 e 111.

 Quando <Y> se encontrar entre 0 e 15, estes números significam os números da paleta de cores.

Se acrescentar 32 ao número da paleta de cores de <Y>, significa o número da paleta de cores com a seguinte função:

"Ignore coincidence of Sprite". (despreze coincidência de "Sprite").

Significa ainda que com a coincidência deste "Sprite" com outro "Sprite", o programa não saltará para a sub-rotina dada pela instrução ON SPRITE GOSUB.

Se somar 64 ao número da paelta de cores de <Y>, significa o número da paleta de cores com a seguinte função:

"Ignore priority and coincidence of sprite and use a logical OR operation of sprite colours". (desprese a prioridade e a coincidência do "sprite" e utilize uma operação lógica OR das cores dos "sprites").

Significa ainda que, com coincidência deste "Sprite" com outro "Sprite", o programa não saltará para a sub-rotina dada pela instrução ON SPRITE GOSUB mas, nesse caso, as cores deste "Sprite" serão a consequência de uma operação lógica OR.

As cores dos "Sprites" podem ser ajustadas por meio das instruções COLOR SPRITE, COLOR SPRITE$ ou PUT SPRITE. É válida o número da paleta de cores da última instrução executada. Se desejar ajustar a cor do "Sprite" por meio das instruções COLOR SPRITE ou COLOR SPRITE$, queira omitir o número da paleta de cores da instrução PUT SPRITE.

Exemplo:

10 SCREEN 5,0

20 B$=""

30 FOR I=1 TO 8:READ A:B$=B$+CHR$(A):NEXT

40 SPRITE$(0)=B$

50 COLOR SPRITE (0)=12

60 FOR I=0 TO 212:PUTSPRITE 0,(I,I),,0:NEXT

70 DATA 24,60,126,255,36,36,66,129

80 END

file clrspr.bas:

kitmpo2 0016


COLOR SPRITE$

  • Formato: COLOR SPRITE$(<X>)=<X$>
  • Finalidade: Alterar a cor de uma linha do "Sprite".
  • Categoria: Instrução.
  • Observações: Esta instrução só é válida nos modos gráficos 3, 4, 5, 6 e 7. <X> é o número do "Sprite" tal como está registrado na variável SPRITE$(X). <X$> é uma expressão em "String" de 1 a 16 caracteres. Cada caracter corresponde a cada linha do "Sprite".

Quando o código de caracteres de <X$> estiver entre 0 e 15, estes algarismos significam os números da paleta de cores.

Se somar 32 ao número da paleta de cores de <X$>, obterá o número da paleta de cores com a seguinte função:

"Ignore coincidence of Sprite". (despreze coincidência de "Sprite").

Isto significa que com a coincidência deste "Sprite" com outro "Sprite", o programa não saltará para a sub-rotina dada pela instrução ON SPRITE GOSUB.

Se adicionar 64 ao número da paelta de cores de <X$>, significa o número da paleta de cores com a seguinte função:

"Ignore priority and coincidence of sprite and use a logical OR operation of sprite colours". (desprese a prioridade e a coincidência do "sprite" e utilize uma operação lógica OR das cores dos "sprites").

Isso significa que, com coincidência da linha deste "Sprite" com outro "Sprite", o programa não saltará para a sub-rotina dada pela instrução ON SPRITE GOSUB mas, nesse caso, as cores deste "Sprite" serão a consequência de uma operação lógica OR.

Se acrescentar 128 ao número da paleta de cores de X$, isso significará que a linha deste "Sprite" se deslocará 32 pontos para a esquerda.

As cores dos "Sprites" podem ajustar-se por meio das instruções COLOR SPRITE, COLOR SPRITE$ ou PUT SPRITE. É válida o número da paleta de cores da última instrução executada.

Se desejar ajustar a cor do "Sprite" por meio das instruções COLOR SPRITE ou COLOR SPRITE$, queira omitir o número da paleta de cores da instrução PUT SPRITE.

Exemplo

10 SCREEN 5,0

20 B$=""

30 FOR I=1 TO 8:READ A:B$=B$+CHR$(A):NEXT

40 SPRITE$(0)=B$

50 PUT SPRITE 0,(100,100),,0

60 FOR I=0 TO 2000:NEXT

70 COLOR SPRITE$(0)=CHR$(12)+CHR$(1)+CHR$(130)

80 FOR I=0 TO 2000:NEXT

90 DATA 24,60,126,255,36,36,66,129

100 END

file clrsp2.bas:

kitmpo2 0017 kitmpo2 0018

COPY

  • Formato:
    • COPY (<X1>,<Y1>)-(<X2>,<Y2>)[,<XX>] TO (<X3>,<Y3>)[,<YY>[,<operação>]]
    • COPY (<X1>,<Y1>)-(<X2>,<Y2>)[,<XX>] TO <array>
    • COPY (<X1>,<Y1>)-(<X2>,<Y2>)[,<XX>] TO "<periférico>:<nome do arquivo>"
    • COPY <array>[,<sentido>] TO (<X3>,<Y3>)[,<YY>[,<operação>]]
    • COPY "<periférico>:<nome do arquivo>"[,<sentido>] TO (<X3>,<Y3>)[,<YY>[,<operação>]]
    • COPY <array> TO "<periférico>:<nome do arquivo>"
    • COPY "<periférico>:<nome do arquivo>" TO <array>
    • COPY "<periférico>:<nome do arquivo-1>" TO "<periférico>:<nome do arquivo-2>"
  • Finalidade: Copiar uma parte de uma SCREEN gráfica para outra parte da SCREEN, para um "array" ou para um arquivo de disquete, e para copiar um arquivo num disquete.
  • Categoria: Instrução.
  • Observações: Copiar uma parte da SCREEN gráfica só é válido nos modos gráficos 4, 5, 6 e 7.

<X1> Representa a coordenada dos XX do ponto de partida da área-origem do SCREEN e tem de ser um número inteiro compreendido entre 0 e 255 nos modos gráficos 4 e 7, e entre 0 e 511 nos modos gráficos 5 e 6.

<Y1> Representa a coordenada dos YY do ponto de partida da área-origem da SCREEN e tem de ser um número compreendido entre 0 e 211.

<X2> Representa a coordenada dos XX do ponto terminal da área-origem do SCREEN e tem de ser um número inteiro entre 0 e 255 nos modos gráficos 4 e 7, e entre 0 e 511 nos modos gráficos 5 e 6.

<Y2> Representa a coordenada dos YY do ponto terminal da área-origem do SCREEN e tem de ser um número inteiro compreendido entre 0 e 211.

<X3> Representa a coordenada dos XX do ponto de partida da área de destino da SCREEN e tem de ser um número inteiro compreendido entre 0 e 255 nos modos gráficos 4 e 7, e entre 0 e 511 nos modos gráficos 5 e 6.

<Y3> Representa a coordenada dos YY do ponto de partida da área do destino da SCREEN e tem de ser um número inteiro compreendido entre 0 e 211.

Nos modos gráficos 4, 5, 6 e 7, pode ajustar-se mais de uma página (ver instrução PAGE).

<XX> É o número da página-origem e <YY> é o número da página-destino.

Se <XX> e/ou <YY> não for especificados, assumir-se-á a página ativa.

<sentido> especifica o sentido da transferência. Tem de ser um número inteiro compreendido entre 0 e 3 e tem o seguinte significado:

Nº do Sentido Transferência
0 da esquerda superiror para a direita inferior
1 da direita superior para a esquerda inferior
2 da esquerda inferior para a direita superior
3 da direita interior para a esquerda superior

<array> é um nome de  uma variável. Tem de ser uma fila (array) de variáveis numéricas e deve possuir espaço suficiente para conter os dados da parte da SCREEN. A extensão do "array" pode calcular-se como se segue:

INT((<pixel>*(ABS(X2-X1)+1)*(ABS(Y2-Y1)+1)+7)/8)+4

<pixel> é 4 nos modos gráficos 4, 6 e 7, e 2 no modo gráfico 5.

<operação> Significa uma operação lógica e pode ser uma das seguintes palavras: XOR, OR, AND, PSET, PRESET, TXOR, TOR, TAND, TPSET, TPRESET.

<periférico> Pode ser:

A:= drive 1
B:= drive 2
C:= drive 3
D:= drive 4
E:= drive 5
F:= drive 6

<nome do arquivo> É o nome do arquivo que encerrará os dados da SCREEN.

<nome do arquivo-1> É o nome do arquivo que tem de ser copiado.

<nome do arquivo-2> Será o nome do arquivo copiado. Se se omitir <nome do arquivo-2>, o nome do arquivo-meta (arquivo-objetivo) terá o mesmo nome do arquivo-origem.

Exemplo

10 SCREEN 6

20 X1=5:Y1=50:X2=100:Y2=0

30 CIRCLE (X1,Y1),40,3

40 PAINT (X1,Y1),3

50 AA=INT((4*(ABS(X2-X1)+1)*(ABS(Y2-Y1)+1)+7)/8)+4

60 DIM A(AA)

70 COPY (X1,Y1)-(X2,Y2) TO A

80 FOR I=1 TO 2000:NEXT

90 COPY A,2 TO (150,150)

100 FOR I=1 TO 2000:NEXT

110 END

Programa copy.bas:

kitmpo2 0021 kitmpo2 0022

COPY SCREEN

  • Formato: COPY SCREEN [<X>]
  • Finalidade: Digitalizar o "input" interno de vídeo.
  • Categoria: Instrução.
  • Observações: <X> é o modo de digitalizar. Deve ser 0 ou 1 e tem o seguinte significado:
    • 0 = um bloco é digitalizado e escrito na página exibida.
    • 1 = Digitalizam-se e escrevem-se dois blocos (1 frame) no número da página exibida menos 1, e na página exibida. Nesse caso, o número da página exibida tem de ser ímpar (ver instrução SET PAGE).

Quando não se da <X>, utiliza-se o último modo de digitalização dado.

O valor de erro de <X> é 0 (zero).

Exemplo

10 COPY SCREEN 1

20 END

Nota: Só se pode usar a SCREEN de cópia quando se encontra incorporado ou acoplado um digitalizador no computador MSX 2.


GET DATE

  • Formato: GET DATE <X$>[,A]
  • Finalidade: Obter a data do "chip" do relógio.
  • Categoria: Instrução.
  • Observações: O formato da data no "string" <X$> pode ser:
    • MM/DD/YY ou
    • DD/MM/YY ou
    • YY/MM/DD conforme a versão do "MSX 2".

DD é a data; MM o mês; YY é um décimo do ano.

Se especificar o parâmetro facultativo A, presume-se que a data é de alarme. Nesse caso, o sistema só coloca a data (DD) no "string" <X$>.

Exemplo

10 GET DATE PR$:PRINT PR$

20 END

Programa gdate.bas:

kitmpo2 0023


GET TIME

  • Formato: GET TIME <X$>[,A]
  • Finalidade: Obter as horas do "chip" do relógio.
  • Categoria: Instrução.
  • Observações: O formato das horas no "string" <X$> é: HH:MM:SS. HH é a hora, MM os minutos e SS os segundos.

Especificando-se o parâmetro facultativo A, presume-se que as horas são de alarme. Nesse caso, só a hora (HH) e os minutos (MM) serão colocados pelo sistema no "string" <X$>.

Exemplo

10 GET TIME PR$:PRINT PR$

20 END

Programa gtime.bas:

kitmpo2 0025


PAD

  • Formato: PAD <X>
  • Finalidade: Dá o estado de uma placa sensora à caneta de escrita "LIGHTPEN", mouse ou track ball.
  • Categoria: Função.

Observações: <X> tem de ser um número inteiro, entre 0 e 19.

  • Quando <X> tem um valor entre 0 e 3, parte-se do princípio de que há um touch pad (placa sensora) ligado à tomada do "joystick" (comando manual).
  • Quando <X> tem um valor entre 4 e 7, parte-se do princípio de que há um touch pad ligado à tomada 2 do "joystick".
  • Quando <X> tem um valor entre 8 e 199, parte-se do princípio de que que há uma "lightpen" (caneta de escrita) ligada. Certifique-se de que PAD(8) regressa a -1 antes de ler os dados da "lightpen".
  • Quando <X> tem um valor entre 12 e 15, parte-se do princípio de que há um mouse (rato) ou uma track ball (esfera marcadora) ligada à tomada 1 do "joystick". Certifique-se de PAD(12) é executado antes de ler os dados do mouse ou da track ball ligada à tomada 1 do "joystick".
  • Quando <X> tem um valor entre 16 e 19, parte-se do princípio de que há um mouse ou uma track ball ligada à tomada 2 do "joystick". Certifique-se de que PAD(16) é executado antes de ler os dados do mouse ou track ball ligada à tomada 2 do "joystick".
  • O estado do touch pad é dado quando <X> é 0 ou 4. O resultado desta função é -1 quando o "pad" tenha sido tocado, e 0 quando ainda não foi tocado.
  • A coordenada dos XX é dada quando <X> é 1 ou 15.
  • A coordenada dos YY é dada quando <X> é 2 ou 6.
  • O estado do comutador de touch pad é dado quando <X> é 3 ou 7.
  • O resultado desta função é -1 quando o comutador tenha sido pressionado, e 0 quando não foi pressionado.
  • O estado da light pen é dado quando <X> é 8. O resultado desta função é -1 quando se dispõe da coordenada dos XX e da coordenada dos YY da lightpen, e 0 (zero) quando delas não se dispõe.
  • Quando <X> é 9, obtém-se a coordenada dos XX da lightpen.
  • Quando <X> é 10, obtém-se a coordenada dos YY da lightpen.
  • Quando <X> é 11, obtém-se o estado do comutador da lightpen.
  • O resultado desta função é -1 quando o comutador foi pressionado, e 0 (zero) quando não tenha sido pressionado.
  • Quando <X> é 12 ou 16, obtém-se o estado de mouse ou da track ball.
  • O resultado desta função é sempre -1.
  • Quando <X> é 13 ou 17, obtém-se a coordenada dos XX de um mouse ou de uma track ball.
  • Quando <X> é 14 ou 18, obtém-se a coordeanda dos YY de um mouse ou de uma track ball.
  • Quando <X> é 15 ou 19, o sistema regressa sempre a 0 (zero).

Utiliza-se a função STRIG para ver o estado dos botões de um mouse ou de uma track ball.

Exemplo Original

10 SCREEN 2

20 AA=0

30 IF PAD(0)=0 THEN 20

40 X=PAD(1):Y=PAD(2)

50 IF AA=0 THEN PSET(X,Y) ELSE LINE -(X,Y)

60 AA=1

Exemplo Adaptado para buscar o status de um MOUSE conectado no porto 1 do joystick

10 SCREEN 0

20 LOCATE 5,5:PRINT "Status=";PAD(12);"       ";

30 B=STRIG(1):X=PAD(13):Y=PAD(14)

40 LOCATE 0,0:PRINT "X=";X;" e Y=";Y;"        ";

50 LOCATE 10,10:PRINT "Botao=";B;"        ";

60 GOTO 20

Programa padmouse.bas:

kitmpo2 0027 kitmpo2 0026

NOTA: O comando "PAD" só pode ser usado se estiver ligado ao computador "MSX 2"

(OC) A declaração acima não faz muito sentido sendo um dos exemplos dos manuais horrivelmente elaborados no brasil (salvo excessões como os livros da Aleph, e os manuais originais da Gradiente e Sharp). O exemplo original tem vários erros de sintaxe.


PAINT

  • Formato: PAINT [STEP] (<X>,<Y>)[,<Z>[,<XX>]]
  • Finalidade: Preencher uma figura gráfica com uma determinada cor no modo gráfico 1 ou 2.
  • Categoria: Instrução.
  • Observações: <X> equivale á coordenada X do ponto de partida no SCREEN e deve ser um número inteiro de 0 a 255. <Y> equivale à coordenada Y do ponto de partida no SCREEN e deve ser um número inteiro entre 0 e 191. Quando a palavra "STEP" é usada, os valores <X> e <Y> são interpretados relativamente à posição do cursor. Neste caso <X> e <Y> também podem ser inteiros negativos. <Z> é o número da cor usada para pintar a figura. <XX> é o número da cor da linha limite da figura.

Nos modos gráficos 1 e 3 o número <Z> da paleta de cores das tintas tem de ser o mesmo que o da cor da linha limítrofe. Neste caso não se pode dar <XX>.

Nos modos gráficos 2, 4, 5, 6 e 7, o número da paleta de cores das tintas pode ser diferente do número da paleta das cores da linha limítrofe.

<Z> e <XX> tem de ser números inteiros compreendidos entre 0 e 15 nos modos gráficos 1, 2, 3, 4 e 6; entre 0 e 3, no modo gráfico 5, e entre 0 e 255 no modo gráfico 7 (ver instrução COLOR).

Quando não é dado nenhum número da paleta das cores das tintas, utilizar-se-á a última cor do primeiro plano dado.

O valor de erro de <Z> é 15.

Quando não é dado nenhum número da paleta de cores da linha limítrofe, partir-se-á do princípio de que <XX> é o mesmo número da paleta de cores de <Z>.

Exemplo

10 SCREEN 7:COLOR 15,4,4

20 CIRCLE(180,80),40,8

30 PAINT(180,80),2,8

40 FOR I=1 TO 2000:NEXT

50 END

RUN

Programa paint.bas:

kitmpo2 0028


PDL

  • Formato: PDL(<X>)
  • Finalidade: Dá o estado da placa sensora.
  • Categoria: Função.
  • Observações: Uma ou duas placas sensoras podem ser ligadas ao computador através das fichas da ligação dos comandos manuais.

Esta função dá um valor entre 0 e 255.

<X> é um número inteiro de 1 a 12.

Quando <X> tem um valor de 1, 3, 4, 7, 9 ou 11, presume-se que a placa sensora está ligada à ficha 1 do comando manual.

Quando o valor é 2, 3, 6, 8, 10 ou 12, presume-se que a placa sensora está ligada à ficha 2 do comando manual.

(OC) Tanto no exemplo do PAD quanto no PDL, o que ele chama de placa sensora, se trata do PADDLE. E que raios ele queria dizer com "Fichas da ligação dos comandos manuais" ?


SCREEN 

  • Formato: SCREEN [<X>[,<Y>[,<Z>[,<XX>[,<ZZ>]]]]]
  • Finalidade: Designar o modo da SCREEN, o tamanho do sprite, o "Key Nick sound", cassete "baud rate", e o tipo de impressora usado.
  • Categoria: Instrução.
  • Observações: <X> representa o modo da SCREEN.

Deve ser um número inteiro entre 0 e 3 e tem os seguintes significados:

  • 0 = Modo texto 1
  • 1 = Modo texto 2
  • 2 = Modo gráfico 1
  • 3 = Modo gráfico 2

Quando <X> não é dado, o último modo da SCREEN é usado de novo.

Na falta de indicação o valor de <X> é zero.

Possibilidades das cores numa SCREEN:

  • SCREEN mode 0: 2 das 512 cores.
  • SCREEN mode 1: 2 das 512 cores.
  • SCREEN mode 2: 16 das 512 cores.
  • SCREEN mode 3: 16 das 512 cores.
  • SCREEN mode 4: 16 das 512 cores.
  • SCREEN mode 5: 16 das 512 cores.
  • SCREEN mode 6: 4 das 512 cores.
  • SCREEN mode 7: 16 das 512 cores.
  • SCREEN mode 8: 256 cores.

(ver instrução COLOR).

As declarações gráficas "PUT SPRITE", "CIRCLE", "DRAW", "LINE", "COPY", "PAINT", "COLOR SPRITE$", "COLOR SPRITE", "PSET", "PRESET", "ON SPRITE GOSUB", "SPRITE ON/OFF/STOP" E "POINT", podem apenas ser usadas quando um dos modos gráficos é ativado

<Y> determina o tamanho dos sprites que devem ser usados.

Deve ser um número inteiro entre 0 e 3 e tem o seguinte significado:

  • 0 = pequenos sprites (8x8).
  • 1 = pequenos sprites ampliados para 16x16 pixels.
  • 2 = grandes sprites (16x16).
  • 3 = grandes sprites alargados para 32x43 pixels.

Quando <Y> não é dado, o último tamanho de sprite é usado de novo.

Na falta de indicação de <Y> o padrão é zero.

Nos modos gráficos 1 e 2 apenas se podem colocar 4 "sprites" numa linha da SCREEN.

Nos modos gráficos 3, 4, 5 e 6 o número de "sprites" por linha pode ser de 8.

(OC) No original, ele fala sobre modos gráficos 2 e 3 com 4 sprites e 4, 5, 6, 7 e 8 com 8 sprites, mas claramente é um erro, SCREEN 2 corresponde ao modo gráfico 1. Ou deveria trocar modo gráfico para SCREEN ou ajustar os números dos modos, o que foi feito.

<Z> determina se o som "click" é ouvido quando uma tecla é pressionada. Deve ser 0 ou 1 e tem os seguintes significados:

  • 0 = nenhum som "click".
  • 1 = som "click".

Quando <Z> não é dado, o valor do último "click" é usado de novo.

Na falta de indicação o valor de <Z> é 1.

<XX> dá o "baud rate" para o gravador de dados. Deve ser 1 ou 2 e tem os seguintes significados:

  • 1 = 1200 bauds.
  • 2 = 2400 bauds.

Quando <XX> não é indicado, o último "baud rate" é indicado.

Quando não se indica, o valor de <XX> é 1.

<YY> diz ao computador se um tipo específico de impressora é usada. Deve ser 0 ou 1 e tem o seguinte significado:

  • 0 = MSX printer (impressora MSX).
  • 1 = outro tipo de impressora.

Quando <YY> não é dado, mantém-se a última indicação de impressora.

Na ausência de indicação o valor de <YY> é 0.

<ZZ> determina o modo de exibição. Tem de ser um número inteiro entre 0 e 3, com o seguinte significado:

  • 0 = normal.
  • 1 = entrelaçado.
  • 2 = exibição normal com alternativa paridade/imparidade.
  • 3 = exibição entrelaçada com altenativa paridade/imparidade.

Nos modos de exibição 2 e 3, o número da página de exibição tem de ser ímpar (ver instrução SET PAGE). Nesses modos, a página de exibição (número ímpar) e a página (número ímpar menos 1) são exibidas alternadamente.

Quando <ZZ> não é dado, utilizar-se-á o último modo de exibição dado.

O valor por default de <ZZ> é 0 (zero).

Todo o "sprite" será apagado após a instrução "SCREEN".

Exemplo

10 FOR I=2 TO 8

20 SCREEN I:COLOR 15,4,4

30 LINE(32,32)-(200,132),3

40 FOR K=0 TO 3000:NEXT

50 NEXT I

60 END

RUN

Programa screen.bas:

kitmpo2 0029 kitmpo2 0030

SET ADJUST

  •  Formato: SET ADJUST(<X>,<Y>)
  • Finalidade: Alterar a regulação inicial da posição anterior esquerda da SCREEN (0,0).
  • Categoria: Instrução.
  • Observações: <X> tem que ser um número inteiro compreendido entre -7 e 8. <Y> tem de ser um  número inteiro compreendido entre -7 e 8.

Quando <X> for positivo, a posição superiror esquerda da SCREEN desloca-se para a direita. Quando <X> for negativo, a posição superior esquerda da SCREEN e deslocada para a esquerda.

Quando <Y> for positivo, a posição superior esquerda da SCREEN desloca-se para cima. Quando <Y> for negativo, a posição superior esquerda da SCREEN é deslocada para baixo.

Os valores de <X> e <Y> serão armazenados na memória do relógio. Isto significa que, quando se voltar a ligar o sistema, esta instrução será executada automaticamente.

Exemplo

10 SET ADJUST(8,-7)

20 END

Programa adjust.bas:

kitmpo2 0031 kitmpo2 0032

SET BEEP

Formato: SET BEEP <X>,<Y>

Finalidade: Alterar a tonalidade e o volume do som "beep".

Categoria: Instrução.

Observações: <X> representa a tonalidade e tem de ser um número inteiro compreendido entre 1 e 4. <Y> representa o volume e tem de ser um número inteiro compreendido entre 1 e 4.

O 4 gera o volume máximo.

Os valores de <X> e <Y> serão armazenados na memória do relógio. Isto significa que, quando o sistema voltar a ser ligado, esta instrução será executada automaticamente.

Exemplo

10 SET BEEP 3,2

20 END


SET DATE

  • Formato: SET DATE <X$>[,A]
  • Finalidade: Regular a data no chip do relógio.
  • Categoria: Instrução
  • Observações: O formato da data no string <X$> pode ser:
    • MM/DD/YY ou
    • DD/MM/YY ou
    • YY/MM/DD de acordo com a versão do MSX 2.

DD é a data, MM é o mês, YY é o décimo de ano.

Se o parâmetro facultativo A for especificado, assume-se a data como data de alarme. Nesse caso, só se coloca no chip do relógio a data (DD).

Para regular uma hora e data de alarme, tem de se executar a instrução SET DATE ... ,A. Se só se executar a instrução SET TIME ... ,A, despreza-se a data para gerar o alarme.

O string <X$> será armazenado na memória do relógio. Isto significa que a data será atualizada pelo sistema.

Exemplo

10 SET DATE "01/11/85"

20 END

Programa sdate.bas:

kitmpo2 0033


SET PAGE

Formato: SET PAGE <X>,<Y>

Finalidade: Selecionar uma página da SCREEN que servirá de página ativa e escolher uma página da SCREEN que será a página de exibição.

Categoria: Instrução.

Observações: Esta instrução só é válida nos modos gráficos 3,4,5 e 6.

<X> é o número da página de exibição e tem de ser um número inteiro compreendido entre 0 e 3, conforme o modo gráfico escolhido.

<Y> é o número da página ativa e tem de ser um número inteiro compreendido entre 0 e 3, conforme o modo gráfico escolhido.

Uma página ativa é aquela em que são ativos os "statements" de "input/output".

Uma página de exibição é aquela que é exibida na SCREEN.

O número total de páginas varia de acordo com os seguintes modos gráficos (com memória de vídeo de 128 Kb):

Modo Gráfico Número Total de Páginas
3 0 a 3
4 0 a 3
5 0 a 1
6 0 a 1

Na falta de <X> e <Y> o valor será 0.

Exemplo

10 COLOR 15,4,4

20 OPEN "GRP:" FOR OUTPUT AS #1

30 SCREEN 5

40 SET PAGE 0,0:COLOR 15

50 PRESET(32,32)

60 PRINT #1,"THIS IS PAGE NR. 0"

70 SET PAGE 0,1:COLOR 1

80 PRESET(32,16)

90 PRINT #1,"THIS IS PAGE NR. 1"

100 FOR I=1 TO 5

110 SET PAGE 1,1

120 FOR J=1 TO 1000:NEXT J

130 SET PAGE 0,0

140 FOR J=1 TO 1000:NEXT J

150 NEXT I

160 CLOSE

170 END

Porgrama spage.bas:

kitmpo2 0034 kitmpo2 0035

SET PASSWORD

 Formato: SET PASSWORD <X$>

Finalidade: Estabelecer u ma senha ouo palavra de passe.

Categoria: Instrução.

Observações: <X$> é o string de senha com no máximo 255 caracteres.

O string <X$> será armazenado na memória do reógio, o que significa que, quando se voltar a ligar o sistema, este exibe a palavra "PASSWORD:" (senha) e aguarda até que o operador escreva a senha correta. Se o "input" não for igual ao que está armazenado na memória do reógio, o sistema volta a pedir a senha.

Só se pode utilizr uma das instruções "SET PASSWORD", "SET PROMPT" ou "SET TITLE". Se for executar mais do que duas destas instruções, só a última será válida, já que essas instruções se servem da mesma área na memória do relógio.

Exemplo

10 SET PASSWORD "secret"

20 END

RUN

Programa spasswd.bas:

kitmpo2 0036 kitmpo2 0037

SET PROMPT

Formato: SET PROMPT <X$>

Finalidade: Alterar o "PROMPT" (ponto) do "MSX 2 - BASIC".

Categoria: Instrução.

Observação: <X$> é o novo "string" de ponto com o máximo de 6 caracteres.

O novo ponto substituirá o ponto padrão do "MSX 2 - BASIC", que é "Ok".

O string <X$> será armazenado na memória do reógio, o que significa que, quando se voltar a ligar o sistema, esta instrução será executada automáticamente

Só se pode utilizr uma das instruções "SET PASSWORD", "SET PROMPT" ou "SET TITLE". Se for executar mais do que duas destas instruções, só a última será válida, já que essas instruções se servem da mesma área na memória do relógio.

Exemplo

10 SET PROMPT "HELLO"

20 END

RUN

Programa sprompt.bas:

kitmpo2 0038 kitmpo2 0039

SET SCREEN

  • Fromato: SET SCREEN
  • Finalidade: Armazenar vários parâmetros relativos ao SCREEN na memória do relógio.
  • Categoria: Instrução.
  • Observações: Os parâmetros armzenados na memória do relógio com esta instrução são:
    • Modo da SCREEN: 0 ou 1.
    • Largura da Tela: 1 a 80.
    • Número da paleta do primeiro plano: 0 a 15.
    • Número da paleta do fundo: 0 a 15.
    • Paleta de cor das margens: 0 a 15.
    • Exibição das teclas de funções: ON ou OFF.
    • Comutador do estalido das teclas: ON ou OFF.
    • Modo de impressora: MSX ou non-MSX.
    • "Baud rate" do cassete: 1200 ou 2400.
    • Modo de exibição: 0 a 4

Exemplo

10 SCREEN 0:WIDTH 80:COLOR 1,15:KEY OFF

20 SET SCREEN

30 END

Programa sscreen.bas:

kitmpo2 0040 kitmpo2 0041

SET TIME

Formato: SET TIME <X$>[,A]

Finalidade: Acertar as horas no chip do relógio.

Categoria: Instrução.

Observações: O formato das horas no string <X$> é: HH:MM:SS, onde, HH é a hora, MM os minutos e SS os segundos.

Especificando-se o parâmetro facultativo A, as horas devem ser consideradas como hora de alarme. Nesse caso só as horas (HH) e os minutos (MM) são introduzidos na memória do relógio.

O string <X$> será armazenado na memória do relógio, o que significa que o sistema atualizará as horas.

Exemplo

10 SET TIME "10:53:06"

Programa stime.bas:

kitmpo2 0042


SET TITLE

Formato: SET TITLE <X$>[,<Y>]

Finalidade: Estabelecer um título que será exibido na SCREEN quando o sistema for ligado.

Categoria: Instrução.

Observações: <X$> é o string do título com um máximo de 6 caracteres. Se a extensão do string <X$> for de 6 caracteres, o sistema aguardará qualquer entrada por meio do teclado após a exibição da SCREEN de título. <Y> é o número da paleta de cores da SCREEN de título. Tem de ser um número inteiro entre 1 e 4.

O string <X$> e o valor de <Y> serão armazenados na memória do relógio, o que significa que, quando se voltar a ligar o sistema, o título será exibido.

Só se pode utilizr uma das instruções "SET PASSWORD", "SET PROMPT" ou "SET TITLE". Se for executar mais do que duas destas instruções, só a última será válida, já que essas instruções se servem da mesma área na memória do relógio.

Exemplo

10 SET TITLE "MSX 2.0"

20 END

RUN

Programa stitle.bas:

kitmpo2 0047 kitmpo2 0046

 


Downloads

kitmpo2.dsk: Disco demo do kit 2.0 da MPO