Sin embargo, el error no se detectará, hasta que se arma el archivo
TODOS.LST. A esta altura seguramente lo habrá perdido.
COPY compara el nombre de archivo fuente con el nombre del archivo
destino. Si son iguales, ese archivo fuente se saltea, y se muestra el
mensaje de error "Content of destination lost before copy" (El contenido
del destino se perdió antes de copiar). Las siguientes concatenaciones
continúan normalmente. Esto permite "sumar" archivos, como en el
siguiente ejemplo:
COPY TODOS . LST+* . LST
Este comando agrega todos los archivos *.LST, excepto al mismo
TODOS.LST, al final de TODOS.LST. Este comando no produce un
mensaje de error y es la forma correcta de agregar archivos al final de un
archivo con el comando COPY.
Dado que los archivos ASCII usualmente se concatenan , este comando
interpreta un CTRL + Z (carácter 1AH) como el indicador de fin de
archivo en un archivo. Por lo tanto, se necesita el selector "/B" para
utilizar el final de archivo físico (o sea, la longitud del archivo que se
muestra con el comando DIR), cuando quiera concatenar archivos
binarios.
COPY/B A.COM+B.COM
En este ejemplo, el archivo B.COM se agrega a continuación del archivo
A.COM, siendo el nombre del archivo destino el mismo A.COM.
Cualquier archivo puede concatenarse utilizando el selector "/B" para
archivos binarios y "/A" para archivos ASCII. Un selector tiene efecto
para el archivo que se indica y los subsiguientes hasta que aparezca otro
selector.
El hecho de agregar o no un CTRL+Z al final del archivo destino, se
decide por el selector del archivo destino. Si se utiliza el selector "/A" se
ignoran los CTRL+Z de los archivos origen y sólo uno se enviará al
archivo destino. Para obtener más CTRL+Z en el archivo destino, utilice
la siguiente fórmula:
COPY A.ASM/B B.ASM/A
55