Existe uma maneira de canalizar o texto de um registro para outro registro ou conjunto de registros? Por exemplo, vá "q
para registradores "1
através de "5
.
Muitas vezes, desejo criar versões ligeiramente diferentes da mesma macro, portanto, é útil poder copiar uma macro 'modelo' para vários registros e depois modificar cada um deles no lugar.
Para dar um exemplo prático, aqui está o problema que levou essa pergunta para mim.
Preciso transformar a seguinte linha de uma linguagem de descrição de hardware em muitos blocos repetidos,
RAM64(in=in, load=load0, address=address[0..5], out=out1);
para
RAM64(in=in, load=load1, address=address[0..5], out=out2);
RAM64(in=in, load=load2, address=address[0..5], out=out3);
RAM64(in=in, load=load3, address=address[0..5], out=out4);
RAM64(in=in, load=load4, address=address[0..5], out=out5);
Eu tenho uma macro que executa isso, usando a função de incremento, yypW^At)^A
que eu armazenei no registro "a
.
Às vezes, preciso que o padrão de incremento seja ligeiramente diferente, como
RAM512(in=in, load=load1, address=address[0..8], out=out2);
RAM512(in=in, load=load2, address=address[0..8], out=out4);
RAM512(in=in, load=load3, address=address[0..8], out=out6);
RAM512(in=in, load=load4, address=address[0..8], out=out8);
onde "b
estaria a macro no registro yypW^At)^A^A
.
Quero um registro para fazer isso, mas para cada incremento de 1 a 5. O registro "a
pode (de alguma forma) ser copiado nos registros b a e. Em seguida, colava cada registro no buffer, fazia a modificação necessária (adicionava mais termos, alterava o caractere que segue o t
movimento etc.) e puxava a expressão modificada de volta para o registro. Idealmente, esse último passo pode ser incluído no (s) comando (s) para copiar os registradores
Isso evita que eu repita todos os caracteres na macro que NÃO exigem alteração. Para meu exemplo, pode ser trivial, mas posso prever momentos em que pode ser muito útil fazer o que estou pedindo.