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:
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:
|
|
|
||
|
|
|
||
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 |
|
Byte 1 | Y1 | Y1 | Y1 | Y1 | Y1 | KL | KL | KL |
|
Byte 2 | Y2 | Y2 | Y2 | Y2 | Y2 | KH | KH | KH |
|
Byte 3 | Y3 | Y3 | Y3 | Y3 | Y3 | JL | JL | JL |
|
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:
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
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
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:
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.
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.
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
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
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.
PADDLEs 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 SCREENs 0,1,2 e 3 são afetadas. Quando se troca um endereço na SCREEN 3 os endereços das SCREENs 4,5,6,7 e 8 também são alterados.
Os dados da SCREEN 8 valem também para as SCREENs 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