***THE HOME OF MSX***
Pagina totalmente dedica ao sistema MSX

MANUAL DOS KITS MSX2 E 2+ DA ACVS ELETRONICA LTDA
Versao HTML 2.0

MANUAL ORIGINAL ESCRITO POR ADEMIR CARCHANO
REDIGITACAO E VERSAO EM HTML POR VLADIMIR MACHADO MALAQUIAS

Melhor se visualisado com os seguintes browsers: Microsoft Internet Explorer 3.0 (ou posterior) e Netscape Navigator 3.0 (ou posterior)
Resolucao recomendavel: 800x600
Numero de cores recomendavel: minimo de 256


DESCRICAO DA SINTESE USADA NA VERSAO HTML DO MANUAL


 
NOME [X] (TIPO)

 

1 - O nome do comando, instrução ou função está em letras maiúsculas e deverá ser escrito exatamente como aparece.

2 - Itens entre parênteses ( ) devem ser definidos pelo usuário.

3 - Itens entre colchetes [ ] são opcionais.

4 - Todas as pontuações devem ser escritas como aparecem no formato. Isto se aplica a pontos finais, vírgulas parênteses, dois pontos, ponto e vírgula, etc.

5 - X, Y e Z representam expressões numéricas.

6 - X$, Y$ e Z$ representam expressões alfanuméricas.
 

(TIPO) - Indica se é um COMANDO, uma INSTRUÇÃO ou FUNÇÃO. A diferença entre os tipos é a seguinte:
 

Por exemplo PRINT BASE (0)

 


 INSTRUÇÕES GRÁFICAS

 

SCREEN [X, [,Y [,Z [,XX [,YY [,ZZ ]]]]]] Instrução

 

Define o modo de tela que será usado, o tamanho dos SPRITES, o chaveamento do CLICK do teclado, a velocidade (baud rate) do gravador cassete e o tipo de impressora utilizada.

 

X é o modo de tela que será usado. Podendo ser:

 

0 - modo texto1 - 40x24 ou 80x24 (dependendo da instrução WIDTH)

1 - modo texto2 - 32x24

2 - modo gráfico - 256x192 - 16 cores de 512 - SPRITE monocromático

3 - modo gráfico - 64x48 - 16 cores de 512 - SPRITE monocromático

4 - modo gráfico - 256x192 - 16 cores de 512 - SPRITE multicolorido

5 - modo gráfico - 256x192 - 16 cores - SPRITE multicolorido

6 - modo gráfico - 512x212 - 4 cores - SPRITE multicolorido

7 - modo gráfico - 512x212 - 16 cores - SPRITE multicolorido

8 - modo gráfico - 256x212 - 256 cores - SPRITE multicolorido

9 - Não Existe

10 - modo gráfico - 256x212 - 12499 cores / 16 de 512 / 0 a 15

11 - modo gráfico - 256x212 - 12499 cores / 16 de 512 / 0 a 255

12 - modo gráfico - 256x212 - 19268

 

As SCREENS 10,11 e 12 só são ativas no computador com o KIT 2+.

O Número de cores na tabela corresponde ao número máximo que pode ser mostrado simultaneamente por páginas de vídeo.

A resolução vertical pode ser dobrada para 424 usando-se o modo entrelaçado de exibição (ver item ZZ).

Y determina o tamanho dos SPRITES:

 
0 - 8x8 magnitude 1 (8x8) 2 - 16x16 magnitude 1 (16x16)
1 - 8x8 magnitude 2 (16x16) 3 - 16x16 magnitude 2 (32x32)
 

Z ativa ou desativa o CLICK do teclado:

 
0 - desativa o CLICK 1 - ativa CLICK
 

XX define a velocidade de transmissão dos dados para o gravador cassete (baud rate):

 
1 - 1200 baud 2 - 2400 baud
 

YY define o tipo de impressora que está sendo usada:

 
0 - MSX Diferente de 0 - não MSX
 

ZZ define o modo de exibição da tela. Pondendo ser:

 
0 - Normal
1 - Entrelaçado
2 - Não entrelaçado, alternando páginas ímpares e pares
3 - Entrelaçado, alternando páginas ímpares e pares
 

Nos modos de exibição 2 e 3, o número da página de exibição deve ser ímpar

(ver instrução SETPAGE)

 

Exemplo
 

10 COLOR 15,0,0
20 FOR I=2 TO 8 : SCREEN I
30 FOR N=0 TO 255:LINE (0.0)-(N,211),C
40 IF I=8 THEN C=N ELSE C=C+1:IFC=16THENC=1
50 NEXT
60 FOR T=0 TO 1000:NEXT
70 NEXT
 
 

EXEMPLO 2:

10 SCREEN 7,,,,,3
20 LINE(80,80)-(400,200),4,BF
30 SETPAGE1,1:CLS
40 LINE(100,100)-(380,180),4,BF
50 GOTO50


COLOR [X] [,Y] [,Z] Instrução

 

Define as cores que serão utilizdas na tela nos modos texto e gráfico.

 
X Define a cor do caractere.
Y Define a cor do fundo da tela.
Z Define a cor da borda da tela.
 

X, Y e Z devem ser números inteiros.

 

Nas SCREEN's 0,1,2,3,4,5,6 e 7, os números X, Y e Z devem estar compreendidos entre 0 e 15.

Nas SCREEN's 5 e 7 cada byte guarda a cor de dois pontos em sequência.

A cor correspondente a cada número na paleta de cores é mostrada na tabela a seguir:

 
Nº na paleta
Nome da cor
Intensidade
Vermelho (R)
Verde (G)
Azul (B)
0 Transparente 0 0 0
1 Preta 0 0 0
2 Verde média 1 6 1
3 Verde clara 3 7 3
4 Azul escura 1 1 7
5 Azul clara 2 3 7
6 Vermelha escura 5 1 1
7 Ciano 2 6 7
8 Vermelha média 7 1 1
9 Vermelha clara 7 3 3
10 Amarela escura 6 6 1
11 Amarela clara 6 6 4
12 Verde escura 1 4 1
13 Magenta 6 2 5
14 Cinza 5 5 5
15 Branca 7 7 7
 

A intensidade do vermelho, verde e azul na paleta de cores pode ser alterada com a instrução COLOR=.

Na SCREEN 6, X, Y e Z devem estar entre 0 e 3. Neste modo gráfico se a cor da borda da tela estiver entre 0 e 3 será respeitada a tabela da paleta de cores. Porém, se a cor estiver entre 16 e 31, será feita uma combinação das cores conforme a tabela a seguir:

 
Número da cor Combinação entre as cores:
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
 

 
Número da cor Combinação entre as cores:
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
 

Na SCREEN 8, X, Y e Z devem estar entre 0 e 255. Neste modo gráfico cada byte correponde a cor de um ponto. Para saber o número da cor de acordo com a intensidade de vermelho, verde e azul, use a equação abaixo:

 

G * 32 + R * 4 + B

 

Onde G, R e B são respectivamente as intensidades de verde, vermelho e azul.

O verde e o vermelho podem variar entre 0 e 7. O azul pode variar entre 0 e 3.

A formação do byte da cor na SCREEN 8 é a seguinte:

 

Bit - 7 6 5 4 3 2 1 0
Cor - G G G R R R B B
 

Nas SCREEN 10, 11 e 12 é usado o sistema YJK para mostrar as cores. Neste modo especial 4 (quatro) bytes são usados para compor as cores de quatro pontos em sequencia na mesma linha horizontal:

 
Pontos BIT 7 6 5 4 3 2 1 0
1
Byte 1 Y1 Y1 Y1 Y1 Y1 KL KL KL
2
Byte 2 Y2 Y2 Y2 Y2 Y2 KH KH KH
3
Byte 3 Y3 Y3 Y3 Y3 Y3 JL JL JL
4
Byte 4 Y4 Y4 Y4 Y4 Y4 JH JH JH
 

Os (Y) são a intensidade da cor (brilho) e podem variar de 0 a 31. Cada valor de Y corresponde a 8 (oito) níveis na escala de instensidade (0=0, 1=8, 2-16,..., 31=248).

Os (J e K) são os vetores que determinam qual cor sera usada. Podem variar de -32 a 31 (6 bits). O gráfico a seguir permite visualizar como é feita a seleção da cor:

 

 

A conversão de um sistema para outro é feita com as seguintes equações:

 
De YJK para RGB De RGB para YJK
R = Y+ J Y = B/2 + R/4 + G/B
G = Y + K J = R - Y
B = 5/4 Y - 1/2 J - 1/4 K K = G - Y
 

Nas SCREENS 10 e 11 os bytes das cores tem o seguinte formato:
Bit - 7
6
5
4
3
2
1
0
Ponto 1 - Y1
Y1
Y1
Y1
A
KL
KL
KL
Ponto 2 - Y2
Y2
Y2
Y2
A
KH
KH
KH
Ponto 3 - Y3
Y3
Y3
Y3
A
JL
JL
JL
Ponto 4 - Y4
Y4
Y4
Y4
A
JH
JH
JH
 

O Y de cada ponto pode variar de 0 a 15 (0 a 240 na intensidade), K e J permanecem como na SCREEN 12 variando de -32 a 31.

SCREEN 10 - As cores são formadas como na SCREEN 11 só que as instruções gráficas só trabalham com valores para a cor entre 0 e 15.

SCREEN 11 - As cores são formadas no sistema YJK ou com a paleta normal de 16 cores, dependendo do bit 3 (A). Se for 0 as cores são mostradas no sistema YJK, considerando o Y de 4 bits (0 a 240 de intensidade), obtendo-se assim as 12.499 variações possíveis. Se o bit 3 (A) for 1 as cores são as da paleta de cores conforme os bits Y (0 a 15), neste caso, os bits J e K são ignorados. As instruções gráficas nesta SCREEN podem usar valores para cor entre 0 e 255.

As informações referentes às SCREENs 10, 11 e 12 só são válidas se no computador estiver instalado o KIT 2+.

Quando não for dado nenhum valor a X, Y ou Z, a instrução COLOR utilizará os últimos valores aplicados às cores dos caracteres, fundo e borda da tela.

 

EXEMPLO 1:

 

10 SCREEN7
20 FORX=0TO255
30 LINE(255,0)-(X,211),C
40 C=C+1:IFC=16THENC=0
50 NEXT
60 GOTO60

 

EXEMPLO 2:

 

10 SCREEN8
20 FORX=0TO255
30 LINE(0,0)-(X,211),X
40 LINE(255,211)-(255-X,0),X
50 NEXT
60 GOTO60
 

EXEMPLO 3: SOMENTE PARA KIT 2+

 

100 SCREEN12
110 Y=93
120 FOR JH=0 TO 3
130 FOR JL=0 TO 7
140 FOR KH-0 TO 3
150 FOR KL=0 TO 7
160 LINE (X,Y)-(X,Y+2),KL,BF
170 LINE (X+1,Y)-(X+1,Y+2), KH,BF
180 LINE (X+2,Y)-(X+2,Y+2),JL,BF
190 LINE (X+3,Y)-(X+3,Y+2),JH,BF
200 X=X+4 : IFX-128 THEN X=0 : Y=Y-3
210 NEXT KL,KH,JL,JH
220 COPY (0,0)-(127,95) TO (128,0)
230 COPY (0,0)-(255,95) TO (0,96)
240 FOR X=0 TO 127 STEP 4
250 LINE (X+1,0)-(X+1,191),4,,OR
260 NEXT X
270 FOR X=0 TO 255 STEP 4
280 LINE (X+3,96)-(X+3,191),4,,OR
290 NEXT X
300 FOR N=0 TO 31
310 LINE (0,0)-(255,191),7,BF,AND
320 LINE (0,0)-(255,191),CC,BF,OR
330 FOR T=0 TO 300 : NEXT T
340 CC=CC+8
350 NEXT N
360 IF INKEY$="" THEN 300



COLOR = (X,R,G,B) Instrução
 
Altera as intensidades do vermelho, vede e azul na paleta de cores.

 X é o número da cor do vermelho e deve estar entre 0 e 15.

 R é a intensidade do vermelho e deve estar entre 0 e 7.

 G é a intensidade do verde e deve estar entre 0 e 7.

 B é a intensidade do azul e deve estar entre 0 e 7.

 Esta instrução pode ser usada em qualquer SCREEN, exceto em SCREEN 8 que não usa a paleta de cores.

 EXEMPLO:

100 SCREEN5

110 OPEN"GRP:"AS#1

120 FORN=0TO7

130 PRESET(N*32+6,40):PRINT#1, "COR"

140 PRESET(N*32+6,50)

150 PRINT#1,N+1

160 NEXT

170 FORX=0TO7

180 LINE(X*32,60)-(X*32+32,140),X+1,BF

190 LINE (X*32+32,141)-(X*32+64,211),15-X,BF

200 LINE(X*32,35)-(X*32+32,211),10,B

210 NEXT

220 PRESET(0,10)

230 FORN=0TO7

240 PRINT#1, " RGB";

250 NEXT

260 FORC=0TO7

270 COLOR=(C+1,R,G,B)

280 R$=RIGHT$(STR$(R),1)

290 G$=RIGHT$(STR$(G),1)

300 B$=RIGHT$(STR$(B),1)

310 PRESET (C*32+8,20):PRINT#1,R$;G$;B$

320 B=B+1:IFB=8THENB=0:G=G+1:IFG=8THENG=0:R=R+1:IFR=8THENR=0

330 NEXT

340 GOTO260

 


COLOR = NEW Instrução

 

Volta as intensidades de vermelho, verde e azul da paleta de cores aos seus valores originais.

Os valores originais de vermelho, verde e azul são aqueles mostrados na tabela junto à instrução COLOR.

 EXEMPLO:

 10 SCREEN 5 : COLOR 15,0,0

20 OPEN "GRP:" AS #1

30 FOR C=2 TO 15

40 COLOR C

50 PRINT#1, "ALTERAÇÃO DAS CORES DA PALETA"

60 NEXT C

70 FOR N=2 TO 15

80 R=INT(RND(1)*7)

90 G=INT(RND(1)*7)

100 B=INT(RND(1)*7)

110 COLOR=(N,R,G,B)

120 NEXT N

130 FOR T=0 TO 1000 : NEXT T : BEEP

140 COLOR = NEW

150 IF INKEY$="" THEN 150

 


COLOR = RESTORE Instrução

Transfere da memória de vídeo para a paleta de cores os valores das intensidades do vermelho, verde e azul.

Esta instrução é usada quando os valores das intensidades do vermelho, verde e azul são carregados para memória de vídeo com a instrução BLOAD"nome do arquivo", S.

A tabela de cores pode ser encontrada nos seguintes endereços na memória de vídeo:

 
SCREEN 0 (40 COLUNAS) &H0400 - &H0420
SCREEN 0 (80 COLUNAS) &HF00 - &H0F20
SCREEN 1 &H2020 - &H2040
SCREEN 2 &H2020 - &H2040
SCREEN 3 &H2020 - &H2040
SCREEN 4 &H2020 - &H2040
SCREEN 5 &H7680 - &H76A0
SCREEN 6 &H7680 - &H76A0
SCREEN 7 &HFA80 - &HFAA0
SCREEN 8 &HFA80 - &HFAA0
 

Nas SCREENs 5,6,7 e 8 pode-se trabalhar com mais de uma página de vídeo (ver instrução SET PAGE). Para descobrir o endereço da tabela da paleta de cores use o seguinte cálculo:

 

SCREEN 5 e 6 à número da página * &H08000 + &H7680

SCREEN 7 e 8 à número da página * &H10000 + &HFA80

 

EXEMPLO:

 

10 SCREEN 0 : WIDTH 40 : COLOR 15,0,0

20 LOCATE 10,10 : PRINT "COR 15 NORMAL"

30 FOR T=0 TO 500 : NEXT : BEEP

40 COLOR= (15,3,2,1)

50 LOCATE 10,10 : PRINT "COR 15 ALTERADA"

60 BSVAE "TESTECOR.PIC",&H0400,&H0420,S

70 COLOR=NEW

80 BLOAD "TESTECOR.PIC",S

90 FOR T=0 TO 500 : NEXT : BEEP

95 COLOR = RESTORE

 


COLOR SPRITE (X) = Y Instrução

 

Define a cor a algumas características de um SPRITE.

Esta instrução só funciona nos modos gráficos de SCREEN 4 em diante.

X é o número do SPRITE, e deve ser igual ao número na instrução SPRITE$ que define as características do SPRITE.

Y deve ser um número inteiro compreendido entre 0 e 111. E tem o seguinte significado:

 

As cores dos SPRITES podem ser determinadas pelas instruções: PUTSPRITE, COLOR SPRITE ou COLOR SPRITE$. A instrução que for executada por último é que determinará a cor do SPRITE. Quando for usar as instruções COLOR SPRITE ou COLOR SPRITE$, não defina o número da paleta de cores na instrução PUT SPRITE.

Para detalhes da instrução PUT SPRITE recorra ao manual do MSX 1.0.

 

EXEMPLO:

 

100 SCREEN5,1:COLOR15,0,0

110 FORX=0TO15:LINE(X*16,40)-STEP(16,120),15-X,BF:NEXT

120 B$=""

130 FORI=1TO8:READA$:B$=B$+CHR$(VAL("&B+A$)):NEXT

140 SPRITE$(0)=B$

150 SPRITE$(1)=B$

160 COLORSPRITE(1)=33 'SOMBRA

170 COLORSPRITE(0)=CHR$(12)+CHR$(10)+CHR$(5)+CHR$(8)+CHR$(3)+CHR$(3)

180 FORI=0TO212

190 PUTSPRITE0,(I,I),,0

200 PUTSPRITE1,(I+8,I+8),,1

210 NEXT

220 GOTO 220

230 DATA 10011001

240 DATA 00111100

250 DATA 01111110

260 DATA 11111111

270 DATA 11111111

280 DATA 01111110

290 DATA 01000010

300 DATA 10000001

 


COLOR SPRITE$ (X) = Y$ Instrução

Define a cor das linhas de um SPRITE.

Esta instrução só funciona nos modos gráficos de SCREEN 4 em diante.

X é o número do SPRITE, e deve ser igual ao número na instrução SPRITE$ que define as características do SPRITE.

Y$ deve ser uma expressão com 1 até 16 caracteres. Cada caractere correspondendo a uma linha do SPRITE. O código dos caracteres de acordo com o seu valor tem o seguinte significado:

Entre 0 e 15 são os números das cores da paleta de cores.

Se se somar 32 ao número da paleta de cores, além da cor escolhida, a linha do SPRITE passa a não ativar o sensor de coincidência de SPRITE$. Ou seja, se a linha do SPRITE colidir com outro na tela a instrução ON SPRITE GOSUB não será executada.

Se se somar 64 ao número da paleta de cores, além da cor escolhida, a linha do SPRITE passa a não ativar o sensor de coincidência de SPRITEs e a fazer uma operação lógica OR com as cores dos SPRITEs que estão sobrepostos.

Se se somar 128 ao número da paleta de cores, a linha do SPRITE se deslocará 32 pontos para a esquerda.

As cores dos SPRITES podem ser determinadas pelas instruções: PUTSPRITE, COLOR SPRITE ou COLOR SPRITE$. A instrução que for executada por último é que determinará a cor do SPRITE. Quando for usar as instruções COLOR SPRITE ou COLOR SPRITE$, não defina o número da paleta de cores na instrução PUT SPRITE.

Para detalhes da instrução PUT SPRITE recorra ao manual do MSX 1.0.

 

EXEMPLO:

 Ver o exemplo na instrução COLOR SPRITE

 


COPY origem TO destino Instrução

COPY (X1,Y1) - [STEP] (X2,Y2) [,XX] TO (X3,Y3) [,YY] [,OP. LÓGICA]

COPY (X1,Y1) - [STEP] (X2,Y2) [,XX] TO matriz

COPY (X1,Y1) - STEP (X2,Y2) [,XX] TO "periférico: nome do arquivo"

COPY matriz [,sentido] TO (X3,Y3) [,YY] [,operação lógica]

COPY matriz TO "periférico: nome do arquivo"

COPY "periférico: nome do arquivo" [,sentido] TO (X3,Y3) [,YY] [,oper. Lóg.]

COPY "periférico: nome do arquivo-1" TO "periférico: nome do arquivo-2"

 

Copia dados de uma tela gráfica para outro ponto da tela, para outra página de tela gráfica, para uma matriz ou para um arquivo em disquete. Traz dados de uma matriz ou que estejam gravados em disquetes para a tela gráfica. Copia um arquivo de um disquete para outro, ou faz cópia do arquivo no mesmo disquete com outro nome.

 

Esta instrução só é válida nas SCREENs 5,6,7 e 8.

 X1 e Y1 são as coordenadas do início do bloco na tela gráfica que será copiado.

 X2 e Y2 são as coordenadas do fim do bloco na tela gráfica que será copiado Se for usada a palavra STEP antes dos números (X2,Y2), estes números passam a ser a quantidade de pontos nos eixos X e Y que serão somados às coordenadas X1 e Y1 respectivamente. Os resultados das somas serão as coordenadas finais do bloco.

 X3 e Y3 são as coordenadas de destino, ou seja, ponto na tela gráfica para onde os dados começarão a ser transferidos.

X1, X2 e X3 são números inteiros e podem variar entre 0 e 255 nas SCREENs 5 e 8, e entre 0 e 511 nas SCREENs 6 e 7.

Y1, Y2 e Y3 podem variar entre 0 e 211 nas SCREENs 5, 6, 7 ou 8.

Nas SCREENs 5, 6, 7 e 8 você pode trabalhar com mais de uma página de vídeo (ver instrução SET PAGE). Nestes casos:

 

XX e YY representam o número da página de origem e o número da página de destino respectivamente. Se XX e YY não forem determinados, será assumida a página que está sendo usada.

[Sentido]: determina o sentido em que os dados serão transferidos. Podem variar entre 0 e 3 e tem o seguinte significado:

 

0 - da esquerda superior para a direita inferior.

1 - da direita superior para a esquerda inferior.

2 - da esquerda inferior para a direita superior.

3 - da direita inferior para a esquerda superior.

 Matriz: é o nome da variável (matriz numérica) que deve Ter tamanho suficiente para receber os dados da tela gráfica. O tamanho da matriz pode ser calculado com a seguinte equação:

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

 Pixel nas SCREENs 5,7 e 8 vale 4 (quatro) e na SCREEN 6 vale 2 (dois).

[operação]: é uma operação lógica que pode ser feita entre as cores da origem e as cores de destino da área copiada. O resultado da operação é visto na região de destino. As operações lógicas podem ser:

 
OR C2 = C1 + C2
XOR C2 = NOT(C1) * C2 + C1 * NOT(C2)
AND C2 = C1 * C2
PSET C2 = C1
PRESET C2 - NOT(C1)
 

TOR, TXOR, TAND, TPSET E TPRESET, executam as mesmas operações lógicas descritas acima com a diferença de não afetarem a cor transparente (0).

 

C1 é o número da cor de origem

C2 é o número da cor de destino.

NOT(cor) significa a inversão bit a bit do número da cor.

 Periférico: é a letra que indica qual controlador de disquete será usado, podendo ser: A,B,C,D,E ou F dependendo do número de interfaces de drives ligados ao computador.

 Nome do arquivo-1 é nome do arquivo1-2, são respectivamente, os nomes dos arquivos de origem e de destino que são gravados no disquete.

 EXEMPLO:

 100 SCREEN7,0:COLOR15,0,0

110 X1=0:Y1=0:X2=64:Y2=32

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

130 DIM A(TM)

140 FORX=1TO7

150 CIRCLE(16,16),X*2-1,X:CIRCLE(16,16),X*2,X

160 CIRCLE(48,16),X*2-1,8+X:CIRCLE(48,16),X*2,8+X

170 NEXT

180 FORC=1TO7

190 COLOR=(C,0,0,7-C/2):COLOR=(C+8,7-C/2,0,0)

200 NEXT

210 COPY (0,0)-STEP(64,32)TOA

220 FORN=1TO100

230 X=RND(N)*256:Y=RND(N)*200

240 COPYA,0TO(X,Y),,TPSET

250 NEXT

260 COPY (0,0)-(350,211)TO(200,0),,TPSET

270 GOTO270

 

 


SET PAGE X,Y Instrução

 

Seleciona a página de tela que será exibida e a página que será ativa (na qual os desenhos serão feitos).

Esta instrução só é valida nas SCREENs 5,6,7,8,10,11 e 12.

X determina a página que será exibida, deve ser um número inteiro entre 0 e 3 dependendo da SCREEN que está sendo utilizada.

Y determina a página que será ativa, deve ser um número inteiro entre 0 e 7 dependendo da SCREEN que está sendo utilizada.

 

As páginas de cada SCREEN são:

 
SCREEN 5 4 PÁGINAS (0 A 3)
SCREEN 6 4 PÁGINAS (0 A 3)
SCREEN 7 2 PÁGINAS (0 E 1)
SCREEN 8 2 PÁGINAS (0 E 1)
SCREEN 9 NÃO EXISTE
SCREEN 10 2 PÁGINAS (0 E 1)
SCREEN 11 2 PÁGINAS (0 E 1)
SCREEN 12 2 PÁGINAS (0 E 1)
 

As SCREENs 10, 11 e 12 só são acessadas se no computador estiver instalado o KIT 2+.

 

EXEMPLO:

 

10 SCREEN5: COLOR 15,0,0

29 LINE (20,20)-(220,200),4,BF

30 SETPAGE 0,1:CLS

40 LINE (40,40)-(200,180),8,BF

50 SETPAGE 0,2:CLS

60 LINE (60,60)-(180,160),12,BF

70 SETPAGE 0,3:CLS

80 CIRCLE (127,105),80,4

90 PAINT (127,105),10,4

100 FOR P=0 TO 3

111 SETPAGE P,P

120 FOR T=0 TO 300 :NEXT T:BEEP

130 NEXT P

140 GOTO 100

 


SET SCROLL [X] [,Y] [,Z] [,XX] Instrução

 

Determina uma coordenada que será usada como ponto inicial a partir do qual a tela será mostrada no vídeo.

 

X é um número inteiro entre 0 e 511 e define a coordenada X (horizontal)

Y é número inteiro entre 0 e 255 e define a coordenada Y (vertical).

 Z determina se será feito SCROLL nas 8 colunas da esquerda. Podendo ser:

 

0 - as 8 colunas da esquerda da tela são mostradas.

1 - as 8 colunas da esquerda da tela não aparecem.

 

XX determina se haverá troca de páginas de vídeo ou não, Podendo ser:

 

0 - somente um página. Neste caso quando a tela desaparece em uma das laterais do vídeo a mesma página reaparece no lado oposto.

 1 - duas páginas. Neste caso quando a primeira página desaparece em uma das laterais do vídeo a Segunda página aparece no lado oposto.

 Para movimentar duas telas a página deve ser ímpar, para isso use a instrução SETPAGE.

 A instrução SET SCROLL só pode ser executada se no computador estiver instalado o KIT 2+.

 

EXEMPLO:

 

10 SCREEN 8,0

20 COPY (0,0)-(255,80) TO (0,211)

30 FOR X=0 TO 255

40 LINE (255,0)-(X,211),X

50 NEXT

60 SETPAGE 1,1:CLS

70 COPY (0,0)-(255,80) TO (0,211)

80 FOR X=0 TO 255

90 LINE (0,0)-(X,211),X

100 NEXT

110 FOR X=0TO511

120 SET SCROLL X,0,1,1

130 NEXT

140 FOR X=0 TO 511

150 SETSCROLL X,X/2,1,1

160 NEXT

170 GOTO 110

 


WIDTH X Instrução

 

Determina o número de caracteres que será usado por linha de texto.

X é um número inteiro que pode variar de 1 a 80 na SCREEN 0 e de 1 a 32 na SCREEN 1.

 

Na SCREEN 0 se X for menor ou igual a 40, serão utilizados caracteres grandes para texto, Se o X estiver entre 41 e 80 os caracteres serão pequenos.

 

Os parâmetros de fábrica quando o KIT 2.0 ou 2+ é instalado são:
  KIT 2.0 KIT 2+
SCREEN 0 40 COLUNAS 37 COLUNAS
SCREEN 1 29 COLUNAS 29 COLUNAS
 

 

EXEMPLO:

 

10 SCREEN0

20 FOR N=1 TO 80

30 WIDTH N

50 PRINT"Esta tela tem ";N;" colunas."

60 FOR T=0 TO 300:NEXT

70 NEXT

 


CIRCLE, DRAW, LINE, PAINT, POINT, PRESET E PSET

 

Todas estas instruções passam a trabalhar com os novos valores das cores e coordenadas das telas gráficas.

Para obter os valores máximos das coordenadas ver instrução SCREEN.

Para saber os cores que podem ser utilizadas veja as instruções COLOR e SCREEN.

Nas SCREENs de 5 a 8 os desenhos podem Ter uma cor para o traçado e ser preenchido com outra de cor diferente. A instrução PAINT passa a aceitar a seguinte sintaxe:

 

PAINT C1,C2

 

Onde C1 é a cor que irá preencher a figura e C2 a cor do traçado.

 


RELÓGIO INTERNO
 

GET DATE X$ [,A]

 

Obtém a data armazenada no relógio/calendário interno.

A data no relógio interno e transferido para a variável X$. O formato dos dados na variável é o seguinte:

 

DD/MM/AA

 

Onde DD é o dia, MM o mês e AA o ano.

 Se for usada a extensão opcional (,A), será transferida a data do alarme.

A data armazenada no relógio/calendário interno é atualizada mesmo com o computador desligado.

 

EXEMPLO:

 

GET A$

PRINT A$

 


SET DATE X$ [,A]

 

Acerta a data no relógio interno.

 X$ é uma expressão alfanumérica com o seguinte formato:

 DD/MM/AA

 Onde:

 DD é o dia (entre 1 e 31)

 MM é o mês (entre 1 e 12)

 AA é o ano.

 A data é armazenada no relógio interno e será incrementada mesmo com o computador desligado.

Se for usado o complemento opcional [,A] a data armazenada será a do alarme, e esta data não é incrementada automaticamente.

 EXEMPLO:

 SET DATE "14/04/61"

GETDATE A$

 PRINT A$

 


GET TIME X$ [,A]

 

Obtém a hora armazenada no relógio interno.

 

A hora no relógio interno é transferida para a variável X$. O formato dos dados na variável é o seguinte:

 

HH/MM/SS

Onde HH é a hora, MM o minuto e SS o segundo.

Se for usada a extensão opcional (,A), será transferida a hora do alarme.

A hora no relógio interno é atualizada mesmo com o computador desligado.

 

EXEMPLO:

 

10 SCREEN 1

20 GETTIME A$

30 LOCATE 10,10

40 PRINT A$

50 GOTO 20

 


SET TIME X$ [,A]

 

Acerta a hora do relógio interno.

 X$ é uma seqüência de caracteres com o seguinte formato:

 

HH:MM:SS

 

Onde:

 HH é a hora (entre 00 e 23)

 MM o minuto (entre 00 e 59)

 SS o segundo (entre 00 e 59)

 Se for usado o complemento opcional [,A] os dados serão considerados como hora do alarme, neste caso somente as horas e minutos serão armazenados.

Estes dados são guardados na memória do relógio interno , que é mantido por baterias, assim mesmo com o computador desligado eles serão preservados e atualizados.

 

EXEMPLO:

 

10 SET TIME "13:30:20"

20 GET TIME A$

30 LOCATE 10,10

40 PRINT A$

50 GOTO 20


SET ADJUST (X,Y) Instrução

 

Ajusta a posição da tela para se adequar ao televisor ou monitor.

 

X deverá ser um número inteiro entre -7 e 8. Quando for negativo a tela se deslocará para a esquerda. Quando for positivo a tela se deslocará para a direita.
 

Y deve ser um número inteiro entre -7 e 8. Quando for negativo a tela se deslocará para cima e quando for positivo a tela se deslocará para baixo.

Os valores de X e Y são armazenados na memória do relógio. Assim, quando o computador for desligado, os parâmetros armazenados serão usados automaticamente.

 

EXEMPLO:

 

10 SCREEN1: COLOR 15,4,7

20 PRINT "USE AS TECLAS DO CURSOR"

30 C=STICK(0)

40 X=X+(C=6 OR C=7 OR C=8)-(C=2 OR C=3 OR C=4)

50 Y=Y+(C=8 OR C=1 OR C=2)-(C=4 OR C=5 OR C=6)

60 IF X=-8 THEN X=-7

70 IF X=9 THEN X=8

80 IF Y=-8 Y=-7

90 IF Y=9 THEN Y=8

100 LOCATE 4,4

110 PRINT "X = ";X ,"Y = ";Y

120 SETADJUST (X,Y)

130 GOTO 30

 


SET BEEP (X,Y) Instrução

 

Seleciona o tipo e o volume do BEEP.

 

X é o tipo de BEEP e deve ser um número inteiro entre 1 e 4.

 

Y é o volume do BEEP e deve estar entre 1 e 4. O número 1 é o volume mínimo e o 4 o volume máximo.

 

Os valores de X e Y são armazenados na memória do relógio interno. Assim quando o computador for desligado, os parâmetros armazenados serão usados automaticamente.

 

O BEEP também pode ser gerado pressionando-se as teclas CONTROL+G.

 

EXEMPLO:

 

10 FOR A=1 TO 4

20 FOR B=1 TO 4

30 SETBEEP A,B

50 BEEP

60 NEXT

70 FOR T=0 TO 500:NEXT

80 NEXT

90 NEXT

 


SET PASSWORD X$ Instrução

 

Estabelece uma senha ou palavra de acesso ao computador.

 

X$ é uma seqüência alfanumérica de ate 255 caracteres.

 

A senha é armazenada na memória do relógio interno, que é mantido por baterias, assim mesmo com o computador desligado a senha continua armazenada.

 

Ao se ligar o computador será apresentada a palavra "PASSWORD:" esperando que seja digitada a senha.

 

Caso a senha digitada não coincida com a armazenada, o computador continuará esperando a senha correta.

 

Para eliminar a senha use a instrução SET TITLE" ".

 

Só se pode utilizar uma das instruções "SET PASSWORD", "SET PROMPT" ou "SET TITLE" de cada vez. A última instrução executada será a armazenada, pois elas utilizam a mesma área na memória do relógio interno.

 

EXEMPLO:

 

SET PASSWORD"TESTE"

 

Desligue o computador e ligue-o novamente.

 

Digite TESTE seguido da tecla RETURN

 


SET PROMPT X$ Instrução

 

Estabelece um PROMPT ou palavra de aviso de espera de um comando.

 

X$ é uma seqüência alfanumérica de até 6 caracteres.

 

O PROMPT é armazenado na memória do relógio interno, que é mantido por baterias, assim mesmo com o computador desligado ele será preservado.

 O PROMPT normal do computador é "Ok". Quando este PROMPT é selecionado a área na memória de relógio fica livre para ser usada pelas instruções: SET PASSWORD ou SET TITLE.

 Só se pode utilizar uma das instruções "SET PASSWORD", "SET PROMPT" ou "SET TITLE" de cada vez. A última instrução executada será a armazenada, pois elas utilizam a mesma área na memória do relógio interno.

 

EXEMPLO:

 

SET PROMPT "TESTE"

 


SET SCREEN Instrução

 

Transfere os parâmetros da tela e do modo de trabalho do computador para a memória do relógio.

 

Os parâmetros armazenados são:

 

 Tipo de SCREEN de texto: 0 ou 1.

 Número de colunas (WIDTH): 1 a 80.

 Número da cor do caractere: 0 a 15.

 Número da cor da borda da tela: 0 a 15.

 Exibição das teclas de funções: ligada ou desligada.

 Click do teclado: ligado ou desligado.

 Tipo de impressora: MSX ou não MSX

 Velocidade dos dados para o gravados cassete: 1200 ou 2400 bauds.

 Modo de exibição da tela: 1 a 4.

 Estes dados são armazenados na memória do relógio interno, que é mantido por baterias, assim mesmo com o computador desligado eles serão preservados.

 

EXEMPLO:

 Para inicializar o computador em 80 colunas automaticamente:

 SCREEN0

 WIDTH80

 SETSCREEN

 Desligue o computador e ligue-o novamente.

 


SET TITLE X$ [,Y] Instrução

 

Armazena um nome que será mostrado na apresentação quando o computador é ligado.

 

X$ é uma sequência alfanumérica com até 6 caracteres.

 

Se X$ tiver exatamente 6 caracteres, o nome aparecerá na apresentação, e o computador ficará esperando que qualquer tecla seja pressionada e só depois continuará a inicialização. Se tiver até 5 caracteres o nome ficará durante alguns segundos e então continua a inicialização.

 

Y pode variar de 1 a 4 e seleciona qual combinação de cores será usada na apresentação quando o computador é ligado. Podendo ser:

 

1 – Azul / Preta

2 – Verde / Azul clara

3 – Vermelha / magenta

4 – Amarela / vermelha clara

 

Estes dados são armazenados na memória do relógio interno, que é mantido por baterias, assim mesmo com o computador desligado ele serão preservados.

Só se pode utilizar uma das intruções "SETPASSWORD", "SETPROMPT" ou "SETTITLE" de cada vez. A última instrução executada será a armazenada, pois elas utilizam a mesma área na memória do relógio interno.

 
SET TITLE "" é usado para apagar os dados armazenados por SET PASSWORD>

 

EXEMPLO:

 

SET TITLE "TESTE ",4

 

Desligue o computador e ligue-o novamente.

 


RAM-DISK


CALL MEMINI [ (X) ] Instrução

Prepara uma área da memória RAM para trabalhar como RAMDISK (disco em memória).

 

X é o tamanho do disco em memória em bytes e tem que ser um número inteiro entre 1023 e 32767, ou 0 (zero).

 

CALL MEMINI (0) cancela o modo RAMDISK.

 Quando se executa a instrução CALL MEMINI todo conteúdo do disco em memória será limpo.

 No lugar da palavra CALL pode-se utilizar o sinal de sublinhado (_). Por exemplo: _MEMINI

 A instrução CALL MEMINI deve ser executada antes das instruções: CALL MFILES, CALL MNAME ou CALL MKILL.

 As seguintes instruções podem ser utilizadas após a instrução CALL MEMINI para se trabalhar com arquivos em RAMDISK: SAVE, LOAD, RUN, MERGE, OPEN, CLOSE, PRINT#, PRINT#USING, INPUT#, LINEINPUT, EOF, LOC, LOF.

 A RAMDISK deve ser tratada como se fosse um disquete normal. O único detalhe é que o nome do dispositivo deve ser MEM:

 

EXEMPLO:

 

_MEMINI

 10 PRINT "TESTE";

20 GOTO 10

 SAVE "MEM: TESTE.BAS"

 NEW

_MFILES

 LIST

 LOAD "MEM: TESTE.BAS"

 LIST

 RUN

 


CALL MFILES Instrução

 

Lista na tela os nomes dos arquivos armazenados na RAMDISK e quantos bytes ainda estão livres para uso.

 

No lugar da palavra CALL pode-se utilizar o sinal de sublinhado (_). Por exemplo: _MFILES

 

Este comando só será aceito depois da execução da instrução CALL MEMINI. Caso a instrução CALL MEMINI não tenha sido executada ou a RAMDISK tenha sido eliminada pela instrução CALL MEMINI (0), será emitida a mensagem de erro "disk offline".

 

EXEMPLO:

 

_MEMINI

 

10 PRINT "TESTE ";

20 GOTO 10

 

SAVE "MEM: TESTE.BAS"

 

NEW

 

_MFILES

 

LIST

 

LOAD "MEM:TESTE.BAS"

 

LIST

RUN

 


CALL MKILL ("nome do arquivo") Instrução

 

Apaga um arquivo armazenado na RAMDISK.

No lugar da palavra CALL pode-se utilizar o sinal de sublinhado (_). Por exemplo: _MFILES

 Este comando só será aceito depois da execução da instrução CALL MEMINI. Caso a instrução CALL MEMINI não tenha sido executada ou a RAMDISK tenha sido eliminada pela instrução CALL MEMINI (0), será emitida a mensagem de erro "disk offline".

 

EXEMPLO:

 

_MEMINI

 

10 PRINT "TESTE ";

20 GOTO 10

 

_MFILES

MKILL ("TESTE.BAS")

 

_MFILES

 


CALL MNAME ("nome do arquivo 1" as "nome do arquivo 2") Instrução

 

Troca o nome de um arquivo gravado na RAMDISK.

 

O "nome do arquivo 1" é o nome já gravado na RAMDISK e o "nome do arquivo 2" é aquele que substituirá o antigo.

 

No lugar da palavra CALL pode-se utilizar o sinal de sublinhado (_). Por exemplo: _MNAME

 

Este comando só será aceito depois da execução da instrução CALL MEMINI. Caso a instrução CALL MEMINI não tenha sido executada ou a RAMDISK tenha sido eliminada pela instrução CALL MEMINI (0), será emitida a mensagem de erro "disk offline".

 

EXEMPLO:

 

_MEMINI

 

10 PRINT "TESTE ";

20 GOTO 10

 

SAVE "MEM: TESTE.BAS"

 

_ MFILES

 

_MNAME ("TESTE.BAS" AS "PROG.BAS")

 

_MFILES

 


TURBO BASIC


CALL AC Turbo-BASIC

 

CALL AC (Auto-Charge)

 

Transfere o programa TURBO-BASIC para a memória RAM e prepara o computador para aceitar os novos comandos.

 

Esta instrução só é necessária no computador com o KIT 2+. No KIT 2.0 o programa já está instalado.

 

Antes de se utilizar qualquer das novas instruções do TURBO-BASIC a instrução CALL AC deve ser executada.

 

No lugar da palavra CALL pode-se utilizar o sinal de sublinhado. Por exemplo: _AC


CALL RUN Turbo-BASIC

 

Executa um programa em BASIC com a velocidade do TURBO-BASIC.

 

A velocidade de execução do programa em BASIC varia de acordo com a complexidade das instruções encontradas.

 

No KIT 2+ esta instrução só funciona depois da execução da instrução CALLA AC (AUTO-CHARGE).

 

Para instruções FOR...NEXT, o NEXT deve ser acompanhado pela variável a que se refere. Por exemplo:

 

10 FOR X=0 TO 100

.

90 NEXT X

 

Nunca deixe rotinas de execução contínua como:

 

100 GOTO 100

 

substitua pela seguinte seqüência:

 

100 IF INKEY$="" THEN 100

 

Alguns comandos do BASIC normal do computador não são executados pelo TURBO-BASIC. A maioria deles se referem ao tratamento de arquivos e ao acesso a disquetes. Na lista a seguir estão estes comandos ou instruções:

 

AUTO, BASE, BLOAD, BSAVE, CALL, CDBL, CINT, CLEAR, CLOAD, CLOAD?, CLOSE, CONT, CSAVE, CSNG, CVD, CVI, CVS, DEFFN, DELETE, DRAW, DSKF, EOF, EQV, ERASE, ERL, ERR, ERROR, FIELD, FILES, FPOS, FRE, GET, IMP, INPUT#, KEYLIST, KILL, LFILES, LINE IMPUT#, LIST, LLIST, LOAD, LOC, LPRINT USING, LSET, MAXFILES, MERGE MKD$, MKI$, MKS$, MOTOR, NEW, NAME, ON ERROR GOTO, OPEN, PLAY, PRINT#, PRINT#USING, PRINT USING, RENUM, RESUME, RSET, SAVE, SPC, TAB, TRON, TROFF, WIDTH.

 

EXEMPLOS:

 

10 SCREEN 8

20 FOR N=0 TO 500

30 X=RND(1)*256

40 Y=RND(2)*212

50 C=RND(1)*256

60 LINE(X,Y)-STEP(20,20),C,BF

70 NEXT N

80 IF INKEY$="" THEN 80

 

_AC

_RUN

 

10 TIME=O

20 FOR N=0 TO 10000

30 NEXT N

40 PRINT TIME

 

Execute uma vez com RUN do BASIC normal e outra com CALL RUN


CALL TURBO ON/OFF Turbo-BASIC

 

Ativa ou desativa o TURBO-BASIC durante a execução de um programa.

 

CALL TURBO ON, ativa a execução em TURBO-BASIC.

 

CALL TURBO OFF, desativa o TURBO-BASIC.

 

No KIT 2+ a instrução CALL AC deve ser executada antes de se utilizar estas instruções.

 

EXEMPLO 1:

 

10 SCREEN 5

20 FOR X=0 TO 255

30 LINE(0,0)-(X,211),X

40 NEXT X

50 _TURBO ON

60 CLS

70 FOR X=0 TO 255

80 LINE (0,0)-(X,211),X

90 NEXT X

100 _TURBO OFF

110 IF INKEY$="" THEN 110

 

EXEMPLO 2:

 

100 DEFINT A-Z

110 TIME=0

120 FOR N=1 TO 1000

130 A=A+1:B=B+1:C=C+1

140 NEXT N

150 PRINT "TEMPO SEM TURBO =";TIME

160 _TURBOON

180 TIME=0

190 FOR N=1 TO 1000

200 A=A+1:B=B+1:C=C+1

210 NEXT N

220 PRINT "TEMPO COM TURBO =";TIME

 


‘#C Turbo-BASIC

 

No BASIC normal as telas gráficas trabalham com coordenadas no eixo Y somente com valores entre 0 e 211. Com este comando em TURBO-BASIC as instruções gráficas passam a aceitar valores entre 0 e 255, permitindo que se trabalhe com a tela toda, inclusive a faixa que não é normalmente mostrada (linhas de 212 a 255).

 

‘#C– Liga a tela plena.

‘#C+ Desliga a tela plena.

 

EXEMPLO:

 

10 SCREEN 8

20 ‘#C-

30 FOR X=0 TO 255

40 LINE (0,0)-(X,255),X

50 NEXT X

60 IF INKEY$="" THEN 60

70 CLS

80 ‘#C+

90 FOR X=0 TO 255

100 LINE (0,0)-(X,255),X

110 NEXT X

120 IF INKEY$="" THEN 120

 


‘#N Turbo-BASIC

 

Permite que a instrução FOR...NEXT trabalhe com números inteiros negativos. No BASIC normal se um número inteiro passar de &h7FFF o programa é interrompido com erro de sobrecarga (Overflow).

 

‘#N+ habilita a função até &h7FFF.

‘#N- trabalha com inteiros negativos.

 

EXEMPLO:

 

10 ‘#N+

20 FOR I%=&H7FF0 TO &H7FFF

30 PRINT I%

40 NEXT I%

 

Execute o programa com RUN, CALL RUN e depois troque a lina 100 por:

 

10 ‘#N-

 

e execute com CALL RUN.

 


‘#I Turbo-BASIC

 

‘#I – permite que as informações após este código sejam executados como uma rotina em assembler e que, variáveis do BASIC, sejam usadas pela rotina. Também permite que se use linhas do BASIC como subrotinas do programa em assembler.

 

Para usar variáveis do BASIC no programa em assembler basta colocar o nome da variável na posição que se deseja utiliza-la.

 

Para chamar uma linha do BASIC no programa em assembler use o caractere "@" (arroba) antes do número da linha. Cuidado quando usar a instrução RENUM, ela não acerta a linha no bloco em assembler.

 

EXEMPLO:

 

100 _AC

110 _TURBOON

120 SCREEN5:X%=0:Y%=0

130 PRESET (0,0)

140 FORC%=0TO255

150 GOSUB190

160 NEXTC%

170 IFINKEY$=""THEN170

180 END

190 ‘#I&H2A,C%,&H29,&H29,&H11,&HBF,&H1B,&H19

200 ‘#IH06,&H08,&H3A, &HB7,&HFC,&H32,X%,&H3A,&HB9,&HFC,&H32,Y%

210 ‘#I&H7E,&H23,&HC5,&H06,&H08

220 ‘#I&H17,&HF5,&HC5,&HE5,&HDC,@260,&HE1,&HC1,&H3A,X%,&H3C,&H32,X%,&HF1

230 ‘#I&H10,&HED,&H3A,X%,&HD6M&H08,&H32,X%,&H3A,Y%,&H3C,&H32,Y%,&HC1

250 ‘#I&H10,&HD6,&H3A,X%,&HC6,&H08,&H32,&HB7,&HFC,&H3A,Y%,&H38,2,&HD6

250 ‘#IH08,&H32,&HB9,&HFC,&HC9

260 PSET (X%,Y%):RETURN

 


MISCELÂNEA E VDP


PAD X Instrução

 

Retorna o estado da TOUCHPAD, LIGHTPEN, MOUSE ou TRACKBALL que estejam ligados às entradas de JOYSTICK.

 

X deve ser um número inteiro entre 0 e 19. E tem o seguinte significado:

 

Se X estiver entre 0 e 3 presume-se que há uma TOUCHPAD ligada na tomada do JOYSTICK 1.

 

Se X estiver entre 4 e 7 presume-se que há uma TOUCHPAD ligada na tomada do JOYSTICK 2.

 

Se X estiver entre 8 e 11 presume-se que tenha uma LIGHTPEN ligada na tomada do JOYSTICK.

 

Se X estiver entre 12 e 15 presume-se que tenha um MOUSE ou TRACKBALL ligado na tomada do JOYSTICK 1.

 

Se X estiver entre 16 e 19 presume-se que tenha um MOUSE ou TRACKBALL ligado na tomada do JOYSTICK 2.

 

Nos casos acima se X for igual a:

 

0 ou 4 – retorna o estado da mesa da TOUCHPAD: 0 se não foi tocada ou –1 se foi tocada.

1 ou 5 – retorna a coordenada X do ponto onde a mesa foi tocada.

2 ou 6 – retorna a coordenada Y do ponto onde a mesa foi tocada.

3 ou 7 – retorna o estado do botão da TOUCHPAD. O resultado será:

0 (botão não pressionado) ou –1 (botão pressionado).

 

8 – retorna o estado da LIGHTPEN: 0 se as coordenadas não estão prontas ou –1 se as coordenadas estão prontas.

0 – retorna a coordenada X da posição da LIGHTPEN.

10 – retorna a coordenada Y da posição da LIGHTPEN.

11 – retorna o estado do botão da LIGHTPEN: o (botão não pressionado) ou –1 (botão pressionado)

 

12 ou 16 – retorna o estado do MOUSE ou TRACKBALL: é sempre –1

13 ou 17 – retorna a coordenada X do MOUSE ou TRACKBALL.

14 ou 18 – retorna a coordenada Y do MOUSE ou TRACKBALL.

15 ou 19 – retorna sempre 0.

 

A leitura do estado dos botões do MOUSE ou TRACKBALL é feita com a intrução STRIG.

 

Antes de ler as coordenadas do MOUSE ou TRACKBALL é obrigatória a execução da função PAD (12) ou PAD(16), dependendo da tomada onde o MOUSE ou TRACKBALL estejam ligados.

 

Antes de ler as coordenadas da LIGHTPEN verifique se a função PAD(8) retorna o valor –1.

 

A função PAD só terá validade se algum dos acessórios (TOUCHPAD, LIGHTPEN, MOUSE ou TRACKBALL) estiver ligado ao computador.

 

       


PDL (X) Função

 

Retorna o estado de PADDLES ligados ao computador.

 

Até 12 (doze) PADDLES podem ser ligado às entradas de JOYSTICK (6 na A e 6 na B).

 

Se X for 1,3,5,7,9 ou 11 presume-se que os PADDLES estejam ligados na entrada do JOYSTICK-1 (A), se for 2,4,6,8,10 ou 12 presume-se que estejam ligados na entrada do JOYSTICK-2 (B).

 

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

 

PADDLE’s são controles rotativos utilizados em jogos ou programas que tem movimentos em duas direções (direita e esquerda por exemplo).

 

A função PDL(X) só será válida se estiverem um ou mais PADDLES ligados ao computador.

 

EXEMPLO:

 

10 PRINT PDL(1)

20 GOTO10

 


BASE (X) ou BASE (X) = Y Função ou Intrução

 

Mostra o endereço do primeiro byte das tabelas do processador de vídeo (VDP), ou escreve um endereço inicial nos registradores das tabelas do VDP.

 

(X) deve ser sempre uma expressão de números inteiros entre 0 e 44 que, dependendo da SCREEN utilizada, têm o seguinte significado:
 
 
SCREEN 0 1 2 3 4 5 6 7 8
TABELA NOMES 0 5 10 15 20 25 30 35 40
TABELA CORES - 6 11 16 21 26 31 36 41
TABELA CARACTERES 2 7 12 17 22 27 32 37 42
TABELA ATRIBUTO DOS SPRITES - 8 13 18 23 28 33 38 43
TABELA DE FORMATO DOS SPRITES - 9 14 19 24 29 34 39 44
 

Quando se ;ê um endereço com a função BASE (X), o valor de X pode variar entre 0 e 44.

 

Para se escrever um valor nos registradores do VDP com a função BASE (X) = Y, o valor de X só pode variar entre 0 e 19, ou seja, somente as SCREEN’s 0,1,2 e 3 são afetadas. Quando se troca um endereço na SCREEN 3 os endereços das SCREEN’s 4,5,6,7 e 8 também são alterados.

 

Os dados da SCREEN 8 valem também para as SCREEN’s 10, 11 e 12 no caso do KIT 2+

 

EXEMPLO:

 

100 ‘Enche duas telas

110 ‘

120 SCREEN0:WIDTH40:KEYOFF

130 ‘

140 FORA=0TO959:PRINT"-";:NEXT

150 BASE(0)=1024:SCREEN0

160 FORA=0TO959:PRINT"=";:NEXT

170 ‘

180 ‘Alterna as páginas de texto

190 ‘

200 BASE (0)=0

210 FORT=0TO100:NEXT

220 BASE (0)=1024

230 FORT=0TO100:NEXT

240 GOTO200

 

Outro exemplo:

 

PRINT BASE(0)

 

OBS: Use esta função ou instrução somente quando estiver bem familiarizado com o modo de trabalho do processador de vídeo (VDP).


VDP (X) ou VDP (X) = Y Função ou Instrução

 

Verificar ou alterar o conteúdo dos registradores do Processador de Vídeo (VDP).

 

X é um número inteiro e pode variar entre:

 

-9 e -1 – registradores de STATUS 1 a 9.

0 e 8 – mesmos do MSX1.

9 e 24 – registradores de 8 a 23.

33 e 47 – registradores de 32 a 46.

 

Esta instrução só deve ser utilizada quando se estiver bem familiarizado com o funcionamento do Processador de Vídeo (VDP).

 

EXEMPLO:

 

10 FOR R=-9 TO 8

20 A=VDP(R)

30 PRINT "Registro: "R;" = ";RIGHT$("0000000"+BIN$(A),8)

40 NEXT