we've seen already, write protection. Once a file's write protection attribute has been set, it will not be possible to erase it (or save a file with the same name) until you remove it.

MOVE's syntax for attribute changing is a bit different from the one used for renaming/moving:

MOVE filespec TO +/-attribute

Where filespec CAN include wildcards unlike the previous case, and attribute is one of the following letters: p, a and s used with either a + or - prefix. The prefix serves as a set (for +) and unset/clear (for -). p is short for protection, a is short for archive and s is short for system.

Write protection is the most useful attribute for NextZXOS. Try:

MOVE "hello.bas" to "+p"

If you now try:

ERASE "hello.bas"

ERASE will fail with a File is read only error.

To switch write protection off type:

MOVE "hello.bas" TO "-p"

and you'll be able to erase the file as before.

As mentioned, we can use wildcards when changing attributes. As an example, to make all the files on drive m: write protected, you would type:

MOVE "m:*.*" to "+p"

As always, the drive letter can be omitted if it is the current default drive.

You can repeatedly switch attributes on or off without causing an error, so if you set write protect on a file that has already got write protection, it will just stay protected.

The second attribute we mentioned is the system status attribute. This is really provided just to be compatible with other CP/M based computers, however, if you do set a file's system attribute to on, you will see that the file no longer appears in the list when doing a normal CAT. It will appear however when using CAT EXP with an s marked in the second column and when using .ls. Try the following:

MOVE "hello.bas" TO "+s"
CAT
CAT EXP
LOAD "hello.bas": RUN

As you can see hello.bas became invisible to CAT but you can still LOAD it properly if you know its name. Bear in mind that you cannot have two files on the same disk with the same filename and different system status attributes; so if you try to create or copy a file onto a disk where a file of that already exists (but is hidden from CAT), then the previous file will be deleted, unless of course its write protect attribute is set.

The final attribute you can change is known as the archive attribute. In an expanded catalogue, it shows up as a. On other systems the archive bit is cleared when a copy operation has been performed, but that doesn't happen on NextZXOS. NextZXOS automatically sets the archive bit when saving on a FAT driver but doesn't do so on IDEDOS/+3DOS drives. It is therefore of no practical use and is only provided for file compatibility with CP/M.

If you try to use any letter other than a, s or p in setting or resetting attributes, or if the attribute option string is not two characters long, then you will receive an Invalid attribute error.


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.