Curso de Basic
O Relógio do MSX
Você está em: MarMSX >> Cursos >> BASIC
O chip de relógio do MSX 2 é mantido por uma bateria. Dessa forma, é possível aramzenar algumas configurações do MSX nesse chip e recuperá-las, mesmo quando o MSX é desligado. Vamos aos comandos:
GET DATE X$ [,A]
Obtém a data corrente ou de alarme (,A) armazenada no chip do relógio.
Exemplo:
GET DATE A$ ↵
PRINT A$ ↵
15/03/2017
Ok
Podemos obter o dia, o mês e o ano lendo a parte da string correspondente a cada um. O formato DD/MM/AA, MM/DD/AA ou AA/MM/DD depende da versão do MSX.
10 DEF FN DIA(D$) = VAL(LEFT$(D$,2))
20 DEF FN MES(D$) = VAL(MID$(D$,4,2))
30 DEF FN ANO(D$) = VAL(RIGHT$(D$,2))
40 GET DATE A$
50 PRINT"Dia:";FN DIA(A$)
60 PRINT"Mês:";FN MES(A$)
70 PRINT"Ano:";FN ANO(A$)
Obs: o programa acima é para o formato DD/MM/AA. Para corrigir o formato, troque o nome das funções.
GET TIME X$ [,A]
Obtém a hora corrente ou de alarme (,A) armazenada no chip do relógio.
Exemplo:
GET TIME A$ ↵
PRINT A$ ↵
21:35:04
Ok
Podemos obter a hora, o minuto e o segundo individualmente:
10 DEF FN H(D$) = VAL(LEFT$(D$,2))
20 DEF FN M(D$) = VAL(MID$(D$,4,2))
30 DEF FN S(D$) = VAL(RIGHT$(D$,2))
40 GET TIME A$
50 PRINT"Hora:";FN H(A$)
60 PRINT"Minuto:";FN M(A$)
70 PRINT"Segundo:";FN S(A$)
Uma sub-rotina para calcular o tempo decorrido (no intervalo máximo de 24 horas).
10 DEF FN H(D$) = VAL(LEFT$(D$,2))
20 DEF FN M(D$) = VAL(MID$(D$,4,2))
30 DEF FN S(D$) = VAL(RIGHT$(D$,2))
40 GET TIME A$
50 PRINT"Aperte qualquer tecla quando pronto ..."
60 K$=INPUT$(1)
70 GET TIME B$
80 GOSUB 200
90 PRINT"O tempo decorrido foi de";DT;"segundos."
100 END
200 '
210 ' Calcula tempo decorrido
220 '
230 HA=FN H(A$) : MA=FN M(A$) : SA=FN S(A$)
240 HB=FN H(B$) : MB=FN M(B$) : SB=FN S(B$)
250 IF SB<SA THEN SB=SB+60 : MB=MB-1
260 IF MB<MA THEN MB=MB+60 : HB=HB-1
270 IF HB<HA THEN HB=HB+24
280 DT = SB-SA + 60*(MB-MA) + 3600*(HB-HA)
290 RETURN
SET ADJUST
Ajusta a posição da tela em relação ao monitor ou TV. Sua sintaxe é:
SET ADJUST (X,Y)
Onde X e Y variam de -7 a 8.
SET BEEP
Comando para escolher o som e volume do beep. Sua sintaxe é:
SET BEEP som, volume
Onde som e volume variam de 1 a 4.
SET DATE X$ [,A]
Ajusta a data do relógio do MSX. O formato da data depende do modelo do MSX. Exemplo:
SET DATE "25/04/15" ↵
Ok
A opção ",A" ajusta a data do alarme. Entretanto, só afeta o dia. Ex:
SET DATE "25/04/15",A ↵
Ok
SET PASSWORD
Cria uma senha de inicialização para o MSX. A senha é uma string de até 255 caracteres. Exemplo:
SET PASSWORD "MarMSX" ↵
Ok
Obs: só é possível armanezar no relógio a informação de um dos três atributos a seguir: PASSWORD, PROMPT e TITLE. A configuração de qualquer um desses irá apagar a última configuração de um deles no relógio. Por exemplo, se criada uma senha e depois modificado o prompt, a senha é apagada e substituída pelo prompt.
SET PROMPT
Modifica o prompt "Ok" do sistema. A string do prompt pode ser de até 6 caracteres. Exemplo:
PRINT 1+2 ↵
3
Ok
SET PROMPT "Pronto" ↵
Pronto
PRINT 1+2 ↵
3
Pronto
Obs: só é possível armanezar no relógio a informação de um dos três atributos a seguir: PASSWORD, PROMPT e TITLE. A configuração de qualquer um desses irá apagar a última configuração de um deles no relógio. Por exemplo, se criada uma senha e depois modificado o prompt, a senha é apagada e substituída pelo prompt.
SET SCREEN
Armazena vários parâmetros no relógio do MSX relativos à tela. São eles:
- Modo da tela - 0 ou 1.
- Largura - 1 a 80.
- Cor da fonte - 0 a 15.
- Cor do fundo - 0 a 15.
- Cor da borda - 0 a 15.
- Teclas de função - KEY ON ou KEY OFF.
- Click da teclas - SCREEN ,,0 ou SCREEN ,,1.
- Modo de impressora - MSX ou não.
- Baud rate do cassete - 1200 ou 2400.
- Modo de exibição (boot) - 0 a 4.
Primeiramente, deve-se alterar essas opções antes de aplicar o comando. Exemplo:
SCREEN 0 : WIDTH 40 : KEY OFF ↵
Ok
SET SCREEN ↵
Ok
Agora, toda vez que o MSX for ligado começará na screen 0, com 40 colunas e sem as teclas de função visíveis na tela.
Para alterar a cor do boot do MSX, utilize a opção set title.
SET TIME X$ [,A]
Ajusta a hora do relógio do MSX. Exemplo:
SET TIME "19:57:21" ↵
Ok
A opção ",A" ajusta a hora do alarme. Entretanto, só afeta a hora e o minuto. Ex:
SET TIME "19:57:21",A ↵
Ok
SET TITLE X$ [,Y]
Insere um titulo no boot do MSX de até 6 catacteres. A opção ",Y" altera a cor do boot. Exemplo:
SET TITLE "MarMSX" ↵
Ok
Opções de boot:

Obs: só é possível armanezar no relógio a informação de um dos três atributos a seguir: PASSWORD, PROMPT e TITLE. A configuração de qualquer um desses irá apagar a última configuração de um deles no relógio. Por exemplo, se criada uma senha e depois modificado o prompt, a senha é apagada e substituída pelo prompt.
Referências:
[1] - Livro: Manual MSX2+ ACVS.