COPY "c:/nextzxos/pisid.*" TO "m:"
MOVE "m:PISID.BAS" TO "+p"
COPY "c:/nextzxos/pisid.*" TO "m:"

The first COPY operation will succeed while the second COPY operation will fail. In the case of a mass COPY if the operation fails for any file, it will fail for all remaining files, so keep that in mind.

COPY does not work between a disk and a tape; doing for example:

.tapeout "test.tap"
COPY "m:*.bas" TO "t:"

will fail with a Destination must be path, 0:1 error. Note above the use of the .tapeout dot command which we will cover later on; it just allows us to substitute a tape image file for an actual tape. To perform the above function we will need to do the following:

.tapeout "test.tap"
LOAD "m:hello.bas"
SAVE "t:hello.bas"

and verify the output with .lstap we covered earlier:

.lstap "hello.tap"

(or alternatively not use .tapeout and .lstap at all and save onto an actual tape, in which case we'd use VERIFY to check if the file was actually written)

There is a special version of COPY where the source file is stripped of all control codes, just maintaining End-Of-Line characters (CR, LF or the combination of both – See Appendix A for all Control Codes). It exists as either shortcuts SCREEN$ and LPRINT in lieu of destination -or- as any stream that can be attached to a channel. The SCREEN$ shortcut gets any file and prints it on screen while the LPRINT shortcut gets any file and sends it to a ZX Printer or compatible. A good way to test the functionality is to check some of the documents in c:/docs. For example to see the pinouts of the Next board you can type:

COPY "c:/docs/extra-hw/pinouts/pin*.txt"
TO SCREEN$

while if you do:

COPY "c:/docs/extra-hw/pinouts/pin*.txt"
TO LPRINT

the file will be sent straight to the printer! SCREEN$ and LPRINT are shortcuts for their respective streams (as you will see in the next chapter). Although there are no shortcut keywords for other streams, if the destination is set to any stream, COPY's behaviour will be identical to what we just saw.

The dot command equivalent for COPY is .cp and its syntax is similar with the exception of the --force switch which allows overwriting of files without prompt. .cp CANNOT currently address +3DOS/IDEDOS drives so it should be only used on FAT partitions on the SD Card.

ERASE

Files can be deleted from a drive using the ERASE command. Its syntax is as simple as one would imagine:

ERASE filespec

where filespec follows the same conventions as CAT meaning that just like CAT, you can use the wildcards * and ? to identify a group of files, or you can specify the filename in full (including optional Drive and/or User Area and Path) if you only want to get rid of one par-


ZX Spectrum Next User Manual, 3rd Edition (ISBN 978-1-5272-5496-1), written and illustrated by Phoebus R. Dokos. Copyright © 2020-2024 Phoebus Dokos / SpecNext Ltd. Licensed under CC BY-NC-SA 4.0. This is a transcription and can contain errors; check any doubt against the printed page.