Kit MSX 2 da MPO

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