Curso de Basic
O Relógio do MSX


  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

  Obtém a data corrente 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

  Obtém a hora corrente 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

  Ajusta a data do relógio do MSX. O formato da data depende do modelo do MSX. Exemplo:
SET DATE "25/04/15" 
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:   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.


  SET TIME

  Ajusta a hora do relógio do MSX. Exemplo:
SET TIME "19:57:21" 
Ok


  SET TITLE

  Insere um titulo no boot do MSX. Limite de 6 catacteres. Exemplo:
SET TITLE "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.



  Referências:

  [1] - Livro: Manual MSX2+ ACVS.


MARMSX/CURSOS/Basic