diff --git a/setter/src/atarist/CMakeLists.txt b/setter/src/atarist/CMakeLists.txt
index 5e408e9..367a3e0 100644
--- a/setter/src/atarist/CMakeLists.txt
+++ b/setter/src/atarist/CMakeLists.txt
@@ -26,4 +26,4 @@ if(NOT ${CMAKE_SYSTEM_NAME} MATCHES "MiNT")
return()
endif()
-add_sources(attr.c deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c)
+add_sources(attr.c attr.h deleted.c dirdepth.c filename.c files.c frag.c links.c os.c perms.c rsrcfork.c sparse.c time.c volume.c xattr.c)
diff --git a/setter/src/atarist/attr.c b/setter/src/atarist/attr.c
new file mode 100644
index 0000000..c9ec64b
--- /dev/null
+++ b/setter/src/atarist/attr.c
@@ -0,0 +1,77 @@
+/****************************************************************************
+Aaru Data Preservation Suite
+-----------------------------------------------------------------------------
+
+ Author(s) : Natalia Portillo
+
+--[ License ] ---------------------------------------------------------------
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+-----------------------------------------------------------------------------
+Copyright (C) 2011-2021 Natalia Portillo
+*****************************************************************************/
+
+#include
+#include
+#include
+#include
+
+#include "attr.h"
+
+#include "../include/defs.h"
+#include "../log.h"
+
+void FileAttributes(const char* path)
+{
+ char driveNo = path[0] - '@';
+ short rc, wRc, cRc;
+ short handle;
+ int i;
+
+ if(driveNo > 32) driveNo -= 32;
+
+ Dsetdrv(driveNo);
+ Dsetpath("\\");
+
+ rc = Dcreate("ATTRS");
+
+ if(rc)
+ {
+ log_write("Cannot create working directory.\n");
+ return;
+ }
+
+ Dsetpath("ATTRS");
+
+ log_write("Creating attributes files.\n");
+
+ for(i = 0; i < KNOWN_ATARI_ATTRS; i++)
+ {
+ handle = Fcreate(atari_attrs[i].filename, 0);
+
+ if(handle > 0)
+ {
+ wRc = Fwrite(handle, strlen(atari_attrs[i].contents), (void*)atari_attrs[i].contents);
+ cRc = Fclose(handle);
+ rc = Fattrib(atari_attrs[i].filename, 1, atari_attrs[i].attr);
+ }
+
+ log_write("\t%s: name = \"%s\", rc = %d, wRc = %d, cRc = %d\n",
+ atari_attrs[i].description,
+ atari_attrs[i].filename,
+ rc,
+ wRc,
+ cRc);
+ }
+}
diff --git a/setter/src/atarist/attr.h b/setter/src/atarist/attr.h
new file mode 100644
index 0000000..aff18c9
--- /dev/null
+++ b/setter/src/atarist/attr.h
@@ -0,0 +1,109 @@
+/****************************************************************************
+Aaru Data Preservation Suite
+-----------------------------------------------------------------------------
+
+ Author(s) : Natalia Portillo
+
+--[ License ] ---------------------------------------------------------------
+ This program is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as
+ published by the Free Software Foundation, either version 3 of the
+ License, or (at your option) any later version.
+
+ This program is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program. If not, see .
+
+-----------------------------------------------------------------------------
+Copyright (C) 2011-2021 Natalia Portillo
+*****************************************************************************/
+
+#ifndef AARU_FSTESTER_SETTER_SRC_ATARI_ATTR_H_
+#define AARU_FSTESTER_SETTER_SRC_ATARI_ATTR_H_
+
+#include
+
+typedef struct
+{
+ char filename[9];
+ char contents[170];
+ char description[63];
+ unsigned int attr;
+} atari_attr_tests_t;
+
+#define KNOWN_ATARI_ATTRS 16
+
+static const atari_attr_tests_t atari_attrs[KNOWN_ATARI_ATTRS] = {
+ {"NONE", "This file has no attribute set.\n", "File with no attributes", 0},
+ {"ARCHIVE", "This file has the archived attribute set.\n", "File with archived attribute", FA_CHANGED},
+ {"SYSTEM", "This file has the system attribute set.\n", "File with system attribute", FA_SYSTEM},
+ {"HIDDEN", "This file has the hidden attribute set.\n", "File with hidden attribute", FA_HIDDEN},
+ {"READONLY", "This file has the read-only attribute set.\n", "File with read-only attribute", FA_RDONLY},
+ {"HIDDREAD",
+ "This file has the hidden attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with hidden, read-only attributes",
+ FA_HIDDEN | FA_RDONLY},
+ {"SYSTREAD",
+ "This file has the system attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with system, read-only attributes",
+ FA_SYSTEM | FA_RDONLY},
+ {"SYSTHIDD",
+ "This file has the system attribute set.\n"
+ "This file has the hidden attribute set.\n",
+ "File with system, hidden attributes",
+ FA_SYSTEM | FA_HIDDEN},
+ {"SYSRDYHD",
+ "This file has the system attribute set.\n"
+ "This file has the read-only attribute set.\n"
+ "This file has the hidden attribute set.\n",
+ "File with system, read-only, hidden attributes",
+ FA_SYSTEM | FA_RDONLY | FA_HIDDEN},
+ {"ARCHREAD",
+ "This file has the archived attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with archived, read-only attributes",
+ FA_CHANGED | FA_RDONLY},
+ {"ARCHHIDD",
+ "This file has the archived attribute set.\n"
+ "This file has the hidden attribute set.\n",
+ "File with archived, hidden attributes",
+ FA_CHANGED | FA_HIDDEN},
+ {"ARCHDRDY",
+ "This file has the archived attribute set.\n"
+ "This file has the hidden attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with archived, hidden, read-only attributes",
+ FA_CHANGED | FA_HIDDEN | FA_RDONLY},
+ {"ARCHSYST",
+ "This file has the archived attribute set.\n"
+ "This file has the system attribute set.\n",
+ "File with archived, system attributes",
+ FA_CHANGED | FA_SYSTEM},
+ {"ARSYSRDY",
+ "This file has the archived attribute set.\n"
+ "This file has the system attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with archived, system, read-only attributes",
+ FA_CHANGED | FA_SYSTEM | FA_RDONLY},
+ {"ARCSYSHD",
+ "This file has the archived attribute set.\n"
+ "This file has the system attribute set.\n"
+ "This file has the hidden attribute set.\n",
+ "File with archived, system, hidden attributes",
+ FA_CHANGED | FA_SYSTEM | FA_HIDDEN},
+ {"ARSYHDRD",
+ "This file has the archived attribute set.\n"
+ "This file has the system attribute set.\n"
+ "This file has the hidden attribute set.\n"
+ "This file has the read-only attribute set.\n",
+ "File with all (archived, system, hidden, read-only) attributes",
+ FA_CHANGED | FA_SYSTEM | FA_HIDDEN | FA_RDONLY},
+};
+
+#endif // AARU_FSTESTER_SETTER_SRC_ATARI_ATTR_H_