diff --git a/src/__init__.py b/src/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/__init__.py
+++ b/src/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/api/__init__.py b/src/api/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/api/__init__.py
+++ b/src/api/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/api/check.py b/src/api/check.py
index 228cddb04..38845f8cd 100644
--- a/src/api/check.py
+++ b/src/api/check.py
@@ -1,12 +1,9 @@
-# vim:ts=4:sw=4:et:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import config, errmsg, global_
from src.api.constants import CLASS, SCOPE
diff --git a/src/api/config.py b/src/api/config.py
index 66361b27d..1248fc009 100644
--- a/src/api/config.py
+++ b/src/api/config.py
@@ -1,11 +1,9 @@
-# vim:ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import configparser
import enum
diff --git a/src/api/constants.py b/src/api/constants.py
index f5907072a..7ffd0a294 100644
--- a/src/api/constants.py
+++ b/src/api/constants.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import enum
import os
diff --git a/src/api/dataref.py b/src/api/dataref.py
index 9dbd79ce1..2b56863bd 100644
--- a/src/api/dataref.py
+++ b/src/api/dataref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from dataclasses import dataclass
from typing import Any
diff --git a/src/api/debug.py b/src/api/debug.py
index b305ab1fa..3fd7bb7f4 100644
--- a/src/api/debug.py
+++ b/src/api/debug.py
@@ -1,6 +1,9 @@
-# vim:ts=4:sw=4:et:
-
-# Simple debugging module
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import inspect
import os
diff --git a/src/api/decorator.py b/src/api/decorator.py
index a9bc6bb83..e9d00f0dd 100644
--- a/src/api/decorator.py
+++ b/src/api/decorator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Callable
diff --git a/src/api/errmsg.py b/src/api/errmsg.py
index 13241294c..d3fc7f3bc 100644
--- a/src/api/errmsg.py
+++ b/src/api/errmsg.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import sys
from collections.abc import Callable
diff --git a/src/api/exception.py b/src/api/exception.py
index 97544bb40..c87e200ac 100644
--- a/src/api/exception.py
+++ b/src/api/exception.py
@@ -1,14 +1,9 @@
-# vim:ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
-
-# ------------------------- ERROR exception classes ---------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__all__ = [
"Error",
diff --git a/src/api/fp.py b/src/api/fp.py
index 478271000..a7b8cc9a2 100644
--- a/src/api/fp.py
+++ b/src/api/fp.py
@@ -1,4 +1,9 @@
-# Floating point converter
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
def fp(x: float) -> tuple[str, str]:
diff --git a/src/api/global_.py b/src/api/global_.py
index 01856fa5a..f36ddc6b5 100644
--- a/src/api/global_.py
+++ b/src/api/global_.py
@@ -1,11 +1,10 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
from __future__ import annotations
from typing import TYPE_CHECKING, Final, NamedTuple
diff --git a/src/api/opcodestemps.py b/src/api/opcodestemps.py
index a17aa27b3..9a3fe0cb1 100644
--- a/src/api/opcodestemps.py
+++ b/src/api/opcodestemps.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__all__ = "OpcodesTemps", "init"
diff --git a/src/api/optimize.py b/src/api/optimize.py
index 1f7fdeca4..f1452b346 100644
--- a/src/api/optimize.py
+++ b/src/api/optimize.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import symtable
from collections.abc import Generator
from typing import Any, NamedTuple
diff --git a/src/api/options.py b/src/api/options.py
index 4e0c7c71b..7deb3d811 100644
--- a/src/api/options.py
+++ b/src/api/options.py
@@ -1,11 +1,9 @@
-# vim: ts=4:sw=4:et:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import enum
import json
diff --git a/src/api/python_version_check.py b/src/api/python_version_check.py
index c54154767..c997966b1 100644
--- a/src/api/python_version_check.py
+++ b/src/api/python_version_check.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import sys
from typing import Final
diff --git a/src/api/string_labels.py b/src/api/string_labels.py
index 35a87841c..cb76df873 100644
--- a/src/api/string_labels.py
+++ b/src/api/string_labels.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__doc__ = """This module is a singleton instance that contains
a mapping of constant Strings to Labels.
diff --git a/src/api/symboltable/__init__.py b/src/api/symboltable/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/api/symboltable/__init__.py
+++ b/src/api/symboltable/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/api/symboltable/scope.py b/src/api/symboltable/scope.py
index 2ef7deefc..3c0fdfdea 100644
--- a/src/api/symboltable/scope.py
+++ b/src/api/symboltable/scope.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from collections import OrderedDict
from typing import Optional
diff --git a/src/api/symboltable/symboltable.py b/src/api/symboltable/symboltable.py
index 176a6a4eb..0c5612fc4 100644
--- a/src/api/symboltable/symboltable.py
+++ b/src/api/symboltable/symboltable.py
@@ -1,12 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check as check
from src.api import errmsg, global_
diff --git a/src/api/tmp_labels.py b/src/api/tmp_labels.py
index a6a608dd4..d16ceb1ec 100644
--- a/src/api/tmp_labels.py
+++ b/src/api/tmp_labels.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import global_ as gl
LABEL_COUNTER = 0
diff --git a/src/api/utils.py b/src/api/utils.py
index 0a9561cb8..71bb9b2a1 100644
--- a/src/api/utils.py
+++ b/src/api/utils.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import errno
import os
import shelve
diff --git a/src/arch/__init__.py b/src/arch/__init__.py
index 2344039d2..a9ea9c0a2 100755
--- a/src/arch/__init__.py
+++ b/src/arch/__init__.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNUv3 General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import importlib
from types import ModuleType
diff --git a/src/arch/interface/__init__.py b/src/arch/interface/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/arch/interface/__init__.py
+++ b/src/arch/interface/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/arch/interface/backend.py b/src/arch/interface/backend.py
index b93f444f5..5fb7cbc84 100644
--- a/src/arch/interface/backend.py
+++ b/src/arch/interface/backend.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from abc import ABC, abstractmethod
__all__ = ("BackendInterface",)
diff --git a/src/arch/interface/optimizer.py b/src/arch/interface/optimizer.py
index bd1870e52..1d13e2f90 100644
--- a/src/arch/interface/optimizer.py
+++ b/src/arch/interface/optimizer.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from abc import ABC, abstractmethod
diff --git a/src/arch/interface/quad.py b/src/arch/interface/quad.py
index a9e4140d4..4fc941292 100644
--- a/src/arch/interface/quad.py
+++ b/src/arch/interface/quad.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from dataclasses import dataclass
from src.arch.z80.backend.icinstruction import ICInstruction
diff --git a/src/arch/z80/__init__.py b/src/arch/z80/__init__.py
index 8e3a66681..f85b8b72c 100644
--- a/src/arch/z80/__init__.py
+++ b/src/arch/z80/__init__.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import src.api.global_
from src.api.constants import TYPE
diff --git a/src/arch/z80/backend/_16bit.py b/src/arch/z80/backend/_16bit.py
index a9a5928c9..59d91a7d2 100644
--- a/src/arch/z80/backend/_16bit.py
+++ b/src/arch/z80/backend/_16bit.py
@@ -1,11 +1,9 @@
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains 16 bit boolean, arithmetic and
-# comparison intermediate-code translations
-# --------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.tmp_labels import tmp_label
from src.arch.z80.backend._8bit import Bits8
diff --git a/src/arch/z80/backend/_32bit.py b/src/arch/z80/backend/_32bit.py
index 0ac274e2a..859109ba7 100644
--- a/src/arch/z80/backend/_32bit.py
+++ b/src/arch/z80/backend/_32bit.py
@@ -1,10 +1,9 @@
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains 32 bit boolean, arithmetic and
-# comparison intermediate-code translation
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.tmp_labels import tmp_label
from src.arch.z80.backend._8bit import Bits8
diff --git a/src/arch/z80/backend/_8bit.py b/src/arch/z80/backend/_8bit.py
index f0b1a7d41..006e31ced 100644
--- a/src/arch/z80/backend/_8bit.py
+++ b/src/arch/z80/backend/_8bit.py
@@ -1,12 +1,9 @@
-# vim: ts=4:sw=4:et
-
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains 8 bit boolean, arithmetic and
-# comparison intermediate-code translations
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.tmp_labels import tmp_label
from src.arch.interface.quad import Quad
diff --git a/src/arch/z80/backend/__init__.py b/src/arch/z80/backend/__init__.py
index 0de04d872..8b00c1db6 100644
--- a/src/arch/z80/backend/__init__.py
+++ b/src/arch/z80/backend/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.optimizer.helpers import HI16, LO16
from src.arch.z80.peephole import engine
diff --git a/src/arch/z80/backend/_array.py b/src/arch/z80/backend/_array.py
index c25c6429f..af1293d64 100644
--- a/src/arch/z80/backend/_array.py
+++ b/src/arch/z80/backend/_array.py
@@ -1,12 +1,9 @@
-# vim:ts=4:et:sw=4:
-
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains array load/store
-# intermediate-code translations
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from ._32bit import Bits32
from ._f16 import Fixed16
diff --git a/src/arch/z80/backend/_f16.py b/src/arch/z80/backend/_f16.py
index 771214cb6..0c9fef441 100644
--- a/src/arch/z80/backend/_f16.py
+++ b/src/arch/z80/backend/_f16.py
@@ -1,10 +1,10 @@
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains cls.f16 (fixed) bit boolean, arithmetic and
-# comparison intermediate-code translations
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.interface.quad import Quad
from ._32bit import Bits32
diff --git a/src/arch/z80/backend/_float.py b/src/arch/z80/backend/_float.py
index f1fc0324d..d57e3f475 100644
--- a/src/arch/z80/backend/_float.py
+++ b/src/arch/z80/backend/_float.py
@@ -1,14 +1,10 @@
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains float (FP) boolean, arithmetic and
-# comparison intermediate-code translations
-# --------------------------------------------------------------
-
-# -----------------------------------------------------
-# Floating Point operators
-# -----------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import fp
from src.arch.interface.quad import Quad
from src.arch.z80.backend.common import _f_ops, is_float, is_int, runtime_call
diff --git a/src/arch/z80/backend/_parray.py b/src/arch/z80/backend/_parray.py
index 4dd28b105..ba55f3af0 100644
--- a/src/arch/z80/backend/_parray.py
+++ b/src/arch/z80/backend/_parray.py
@@ -1,12 +1,9 @@
-# vim:ts=4:et:sw=4:
-
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains local array (both parameters and
-# comparison intermediate-code translations)
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import fp
diff --git a/src/arch/z80/backend/_pload.py b/src/arch/z80/backend/_pload.py
index 99cc9062b..07ce3944e 100644
--- a/src/arch/z80/backend/_pload.py
+++ b/src/arch/z80/backend/_pload.py
@@ -1,12 +1,10 @@
-# vim: et:ts=4:sw=4
-
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains parameter load
-# intermediate-code translations
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from . import common
from ._8bit import Bits8
from ._16bit import Bits16
diff --git a/src/arch/z80/backend/_str.py b/src/arch/z80/backend/_str.py
index 4492b636c..8cde6c04c 100644
--- a/src/arch/z80/backend/_str.py
+++ b/src/arch/z80/backend/_str.py
@@ -1,12 +1,9 @@
-# vim:ts=4:et:sw=4:
-
-# --------------------------------------------------------------
-# Copyleft (k) 2008, by Jose M. Rodriguez-Rosa
-# (a.k.a. Boriel, http://www.boriel.com)
-#
-# This module contains string arithmetic and
-# comparison intermediate-code translation
-# --------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .common import runtime_call
from .exception import InvalidICError as InvalidIC
diff --git a/src/arch/z80/backend/common.py b/src/arch/z80/backend/common.py
index b49f0e3f3..d47673c21 100644
--- a/src/arch/z80/backend/common.py
+++ b/src/arch/z80/backend/common.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import math
import re
from enum import StrEnum
diff --git a/src/arch/z80/backend/exception.py b/src/arch/z80/backend/exception.py
index 47845e5a9..1092a1b98 100644
--- a/src/arch/z80/backend/exception.py
+++ b/src/arch/z80/backend/exception.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.exception import Error
diff --git a/src/arch/z80/backend/generic.py b/src/arch/z80/backend/generic.py
index 0f02a1efe..c52054137 100644
--- a/src/arch/z80/backend/generic.py
+++ b/src/arch/z80/backend/generic.py
@@ -1,6 +1,9 @@
-# ----------------------------------------------------------
-# Generic instructions
-# ----------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import re
diff --git a/src/arch/z80/backend/icinfo.py b/src/arch/z80/backend/icinfo.py
index a903dd378..f73cf7187 100644
--- a/src/arch/z80/backend/icinfo.py
+++ b/src/arch/z80/backend/icinfo.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Callable
from dataclasses import dataclass
diff --git a/src/arch/z80/backend/icinstruction.py b/src/arch/z80/backend/icinstruction.py
index 2ae2c19be..679f35e67 100644
--- a/src/arch/z80/backend/icinstruction.py
+++ b/src/arch/z80/backend/icinstruction.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from enum import StrEnum
from functools import lru_cache
from typing import Any
diff --git a/src/arch/z80/backend/main.py b/src/arch/z80/backend/main.py
index 2a484713d..824b4c231 100644
--- a/src/arch/z80/backend/main.py
+++ b/src/arch/z80/backend/main.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
import re
diff --git a/src/arch/z80/backend/quad.py b/src/arch/z80/backend/quad.py
index 2c231fb7d..924cdf529 100644
--- a/src/arch/z80/backend/quad.py
+++ b/src/arch/z80/backend/quad.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.interface.quad import Quad as BaseQuad
from .icinstruction import ICInstruction
diff --git a/src/arch/z80/backend/runtime/__init__.py b/src/arch/z80/backend/runtime/__init__.py
index 988edfd4a..3fe183d46 100644
--- a/src/arch/z80/backend/runtime/__init__.py
+++ b/src/arch/z80/backend/runtime/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .labels import LABEL_REQUIRED_MODULES # noqa
from .labels import RUNTIME_LABELS # noqa
from .labels import Labels # noqa
diff --git a/src/arch/z80/backend/runtime/core.py b/src/arch/z80/backend/runtime/core.py
index 3dbd2780d..fdd2e2964 100644
--- a/src/arch/z80/backend/runtime/core.py
+++ b/src/arch/z80/backend/runtime/core.py
@@ -1,4 +1,9 @@
-# Runtime labels
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/backend/runtime/datarestore.py b/src/arch/z80/backend/runtime/datarestore.py
index 7b7817bac..d63ac93e1 100644
--- a/src/arch/z80/backend/runtime/datarestore.py
+++ b/src/arch/z80/backend/runtime/datarestore.py
@@ -1,4 +1,9 @@
-# Runtime labels
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/backend/runtime/io.py b/src/arch/z80/backend/runtime/io.py
index 1a8b36789..c2262de97 100644
--- a/src/arch/z80/backend/runtime/io.py
+++ b/src/arch/z80/backend/runtime/io.py
@@ -1,5 +1,9 @@
-# I/O labels
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/backend/runtime/labels.py b/src/arch/z80/backend/runtime/labels.py
index b9359048d..8251479de 100644
--- a/src/arch/z80/backend/runtime/labels.py
+++ b/src/arch/z80/backend/runtime/labels.py
@@ -1,4 +1,10 @@
-# Runtime Labels
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from typing import Final
from . import core, datarestore, io, math, misc, random
diff --git a/src/arch/z80/backend/runtime/math.py b/src/arch/z80/backend/runtime/math.py
index e91bcb435..bfad42501 100644
--- a/src/arch/z80/backend/runtime/math.py
+++ b/src/arch/z80/backend/runtime/math.py
@@ -1,4 +1,9 @@
-# Runtime labels
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/backend/runtime/misc.py b/src/arch/z80/backend/runtime/misc.py
index ed46d9ade..c2feb40cf 100644
--- a/src/arch/z80/backend/runtime/misc.py
+++ b/src/arch/z80/backend/runtime/misc.py
@@ -1,4 +1,9 @@
-# Miscelaneous functions
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/backend/runtime/namespace.py b/src/arch/z80/backend/runtime/namespace.py
index 142bf53b9..9c79033be 100644
--- a/src/arch/z80/backend/runtime/namespace.py
+++ b/src/arch/z80/backend/runtime/namespace.py
@@ -1,4 +1,9 @@
-# Define just the main Private namespace
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import global_
diff --git a/src/arch/z80/backend/runtime/random.py b/src/arch/z80/backend/runtime/random.py
index e83bb2f79..6c593f668 100644
--- a/src/arch/z80/backend/runtime/random.py
+++ b/src/arch/z80/backend/runtime/random.py
@@ -1,4 +1,9 @@
-# Runtime labels
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .namespace import NAMESPACE
diff --git a/src/arch/z80/beep.py b/src/arch/z80/beep.py
index cf4b646be..b47d1fde6 100755
--- a/src/arch/z80/beep.py
+++ b/src/arch/z80/beep.py
@@ -1,5 +1,11 @@
#!/usr/bin/env python3
-# vim:ts=4:et:sw=4:
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__doc___ = """This stdlib converts duration,pitch for a beep
from floating point to HL,DE Integers.
diff --git a/src/arch/z80/optimizer/__init__.py b/src/arch/z80/optimizer/__init__.py
index 91259bc01..7a38291db 100644
--- a/src/arch/z80/optimizer/__init__.py
+++ b/src/arch/z80/optimizer/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .main import Optimizer
__all__ = ("Optimizer",)
diff --git a/src/arch/z80/optimizer/asm.py b/src/arch/z80/optimizer/asm.py
index 9743de045..3377cf7ff 100644
--- a/src/arch/z80/optimizer/asm.py
+++ b/src/arch/z80/optimizer/asm.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
from functools import lru_cache
diff --git a/src/arch/z80/optimizer/basicblock.py b/src/arch/z80/optimizer/basicblock.py
index 5c9320aa5..f133d28bd 100644
--- a/src/arch/z80/optimizer/basicblock.py
+++ b/src/arch/z80/optimizer/basicblock.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
from collections.abc import Iterable, Iterator, Sequence
diff --git a/src/arch/z80/optimizer/cpustate.py b/src/arch/z80/optimizer/cpustate.py
index 8e845a533..5122c2c49 100644
--- a/src/arch/z80/optimizer/cpustate.py
+++ b/src/arch/z80/optimizer/cpustate.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
from collections import UserDict
from collections.abc import Mapping
diff --git a/src/arch/z80/optimizer/errors.py b/src/arch/z80/optimizer/errors.py
index 8dc95e67d..fc76f79b9 100644
--- a/src/arch/z80/optimizer/errors.py
+++ b/src/arch/z80/optimizer/errors.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.exception import Error
diff --git a/src/arch/z80/optimizer/flow_graph.py b/src/arch/z80/optimizer/flow_graph.py
index f76d2451d..21838a1e3 100644
--- a/src/arch/z80/optimizer/flow_graph.py
+++ b/src/arch/z80/optimizer/flow_graph.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.debug import __DEBUG__
from .basicblock import BasicBlock, DummyBasicBlock
diff --git a/src/arch/z80/optimizer/helpers.py b/src/arch/z80/optimizer/helpers.py
index b2a427bca..2a6d50369 100644
--- a/src/arch/z80/optimizer/helpers.py
+++ b/src/arch/z80/optimizer/helpers.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Iterable, Mapping
from typing import Any, Final, TypeVar, cast
diff --git a/src/arch/z80/optimizer/labelinfo.py b/src/arch/z80/optimizer/labelinfo.py
index 96b3e0dc1..dd8d76ddf 100644
--- a/src/arch/z80/optimizer/labelinfo.py
+++ b/src/arch/z80/optimizer/labelinfo.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
from dataclasses import dataclass, field
diff --git a/src/arch/z80/optimizer/labels_dict.py b/src/arch/z80/optimizer/labels_dict.py
index 4849966c4..6869c37a1 100644
--- a/src/arch/z80/optimizer/labels_dict.py
+++ b/src/arch/z80/optimizer/labels_dict.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections import UserDict
from .errors import DuplicatedLabelError
diff --git a/src/arch/z80/optimizer/main.py b/src/arch/z80/optimizer/main.py
index 3283ac0f7..272b80386 100644
--- a/src/arch/z80/optimizer/main.py
+++ b/src/arch/z80/optimizer/main.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections import defaultdict
from src.api.config import OPTIONS
diff --git a/src/arch/z80/optimizer/memcell.py b/src/arch/z80/optimizer/memcell.py
index 8ec29cf90..d343fcf9c 100644
--- a/src/arch/z80/optimizer/memcell.py
+++ b/src/arch/z80/optimizer/memcell.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
from functools import cached_property
diff --git a/src/arch/z80/optimizer/patterns.py b/src/arch/z80/optimizer/patterns.py
index 0efb09544..db7e0e5f1 100644
--- a/src/arch/z80/optimizer/patterns.py
+++ b/src/arch/z80/optimizer/patterns.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
__doc__ = """ Patterns to match against generated ASM code.
diff --git a/src/arch/z80/peephole/__init__.py b/src/arch/z80/peephole/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/arch/z80/peephole/__init__.py
+++ b/src/arch/z80/peephole/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/arch/z80/peephole/engine.py b/src/arch/z80/peephole/engine.py
index abb56d743..c66b62e69 100644
--- a/src/arch/z80/peephole/engine.py
+++ b/src/arch/z80/peephole/engine.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
from collections.abc import Iterable
from typing import NamedTuple
diff --git a/src/arch/z80/peephole/evaluator.py b/src/arch/z80/peephole/evaluator.py
index 7234841bb..6a4e120a9 100644
--- a/src/arch/z80/peephole/evaluator.py
+++ b/src/arch/z80/peephole/evaluator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
import re
diff --git a/src/arch/z80/peephole/parser.py b/src/arch/z80/peephole/parser.py
index 99d2958e8..f752e5c63 100644
--- a/src/arch/z80/peephole/parser.py
+++ b/src/arch/z80/peephole/parser.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
from collections import defaultdict
from types import MappingProxyType
diff --git a/src/arch/z80/peephole/pattern.py b/src/arch/z80/peephole/pattern.py
index c6bf76a49..40d56cb51 100644
--- a/src/arch/z80/peephole/pattern.py
+++ b/src/arch/z80/peephole/pattern.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import itertools
import re
diff --git a/src/arch/z80/peephole/template.py b/src/arch/z80/peephole/template.py
index 740548467..45fed0bd3 100644
--- a/src/arch/z80/peephole/template.py
+++ b/src/arch/z80/peephole/template.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .pattern import BasicLinePattern
diff --git a/src/arch/z80/visitor/__init__.py b/src/arch/z80/visitor/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/arch/z80/visitor/__init__.py
+++ b/src/arch/z80/visitor/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/arch/z80/visitor/builtin_translator.py b/src/arch/z80/visitor/builtin_translator.py
index 3a040e8e8..2a4cc719c 100644
--- a/src/arch/z80/visitor/builtin_translator.py
+++ b/src/arch/z80/visitor/builtin_translator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import global_ as gl
from src.api.constants import SCOPE, TYPE
from src.api.global_ import optemps
diff --git a/src/arch/z80/visitor/function_translator.py b/src/arch/z80/visitor/function_translator.py
index b2b94a0b0..31e24542b 100644
--- a/src/arch/z80/visitor/function_translator.py
+++ b/src/arch/z80/visitor/function_translator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import src.api
from src.api import global_ as gl
from src.api.config import OPTIONS
diff --git a/src/arch/z80/visitor/translator.py b/src/arch/z80/visitor/translator.py
index 8b47a634b..e7d031c7c 100644
--- a/src/arch/z80/visitor/translator.py
+++ b/src/arch/z80/visitor/translator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Callable
from typing import Any, NamedTuple
diff --git a/src/arch/z80/visitor/translator_inst_visitor.py b/src/arch/z80/visitor/translator_inst_visitor.py
index b31d991f2..a41db29be 100644
--- a/src/arch/z80/visitor/translator_inst_visitor.py
+++ b/src/arch/z80/visitor/translator_inst_visitor.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.constants import TYPE
from src.api.debug import __DEBUG__
from src.arch.interface.quad import Quad
diff --git a/src/arch/z80/visitor/translator_visitor.py b/src/arch/z80/visitor/translator_visitor.py
index b4d072ab8..9322b4d13 100644
--- a/src/arch/z80/visitor/translator_visitor.py
+++ b/src/arch/z80/visitor/translator_visitor.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from typing import NamedTuple
import src.api.global_ as gl
diff --git a/src/arch/z80/visitor/unary_op_translator.py b/src/arch/z80/visitor/unary_op_translator.py
index 3984eb289..b297738ad 100644
--- a/src/arch/z80/visitor/unary_op_translator.py
+++ b/src/arch/z80/visitor/unary_op_translator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.constants import SCOPE
from src.arch.z80.visitor.translator_visitor import TranslatorVisitor
diff --git a/src/arch/z80/visitor/var_translator.py b/src/arch/z80/visitor/var_translator.py
index 276ecb190..c562702db 100644
--- a/src/arch/z80/visitor/var_translator.py
+++ b/src/arch/z80/visitor/var_translator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import src.api
from src.api import global_ as gl
from src.api.config import OPTIONS
diff --git a/src/arch/zx48k/__init__.py b/src/arch/zx48k/__init__.py
index 58de38638..534e124b5 100644
--- a/src/arch/zx48k/__init__.py
+++ b/src/arch/zx48k/__init__.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import src.api.global_
from src.api.constants import TYPE
diff --git a/src/arch/zx48k/backend/__init__.py b/src/arch/zx48k/backend/__init__.py
index c631e4174..631b3fefc 100644
--- a/src/arch/zx48k/backend/__init__.py
+++ b/src/arch/zx48k/backend/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.config import OPTIONS
from src.arch.z80.backend import (
HI16,
diff --git a/src/arch/zx48k/beep.py b/src/arch/zx48k/beep.py
index 9bc5b557b..ef167c73f 100755
--- a/src/arch/zx48k/beep.py
+++ b/src/arch/zx48k/beep.py
@@ -1,5 +1,11 @@
#!/usr/bin/env python3
-# vim:ts=4:et:sw=4:
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__doc___ = """This library converts duration,pitch for a beep
from floating point to HL,DE Integers.
diff --git a/src/arch/zxnext/__init__.py b/src/arch/zxnext/__init__.py
index 9a0377e6b..0fdc9942b 100644
--- a/src/arch/zxnext/__init__.py
+++ b/src/arch/zxnext/__init__.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import src.api.global_
from src.api.constants import TYPE
diff --git a/src/arch/zxnext/backend/_8bit.py b/src/arch/zxnext/backend/_8bit.py
index b21e1e9e5..ebdf98c45 100644
--- a/src/arch/zxnext/backend/_8bit.py
+++ b/src/arch/zxnext/backend/_8bit.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.interface.quad import Quad
from src.arch.z80.backend import Bits8 as Z80Bits8
from src.arch.z80.backend.common import _int_ops
diff --git a/src/arch/zxnext/backend/__init__.py b/src/arch/zxnext/backend/__init__.py
index f71e1c5f7..f132c7d19 100644
--- a/src/arch/zxnext/backend/__init__.py
+++ b/src/arch/zxnext/backend/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.backend import (
HI16,
INITS,
diff --git a/src/arch/zxnext/backend/generic.py b/src/arch/zxnext/backend/generic.py
index 688c62852..3e334ee49 100644
--- a/src/arch/zxnext/backend/generic.py
+++ b/src/arch/zxnext/backend/generic.py
@@ -1,6 +1,9 @@
-# ----------------------------------------------------------
-# Generic instructions
-# ----------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.config import OPTIONS
from src.arch.interface.quad import Quad
diff --git a/src/arch/zxnext/backend/main.py b/src/arch/zxnext/backend/main.py
index 21d2f0ddb..bdbbd3bcd 100644
--- a/src/arch/zxnext/backend/main.py
+++ b/src/arch/zxnext/backend/main.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.config import OPTIONS
from src.api.options import Action
from src.arch.z80.backend import Backend as Z80Backend
diff --git a/src/arch/zxnext/optimizer/__init__.py b/src/arch/zxnext/optimizer/__init__.py
index 91259bc01..7a38291db 100644
--- a/src/arch/zxnext/optimizer/__init__.py
+++ b/src/arch/zxnext/optimizer/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .main import Optimizer
__all__ = ("Optimizer",)
diff --git a/src/arch/zxnext/optimizer/basicblock.py b/src/arch/zxnext/optimizer/basicblock.py
index 6942163c1..665029bce 100644
--- a/src/arch/zxnext/optimizer/basicblock.py
+++ b/src/arch/zxnext/optimizer/basicblock.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Iterable
from src.arch.z80.optimizer import Optimizer
diff --git a/src/arch/zxnext/optimizer/cpustate.py b/src/arch/zxnext/optimizer/cpustate.py
index 1b4154d87..2e44537f9 100644
--- a/src/arch/zxnext/optimizer/cpustate.py
+++ b/src/arch/zxnext/optimizer/cpustate.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.optimizer.asm import Asm
from src.arch.z80.optimizer.cpustate import CPUState as CPUStateZ80
diff --git a/src/arch/zxnext/optimizer/main.py b/src/arch/zxnext/optimizer/main.py
index f2b7efd90..74b25dfea 100644
--- a/src/arch/zxnext/optimizer/main.py
+++ b/src/arch/zxnext/optimizer/main.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.optimizer import Optimizer as OptimizerZ80
from .basicblock import BasicBlock
diff --git a/src/arch/zxnext/optimizer/memcell.py b/src/arch/zxnext/optimizer/memcell.py
index b3190c36b..7831aa92b 100644
--- a/src/arch/zxnext/optimizer/memcell.py
+++ b/src/arch/zxnext/optimizer/memcell.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from functools import cached_property
from src.arch.z80.optimizer.memcell import MemCell as MemCellZ80
diff --git a/src/arch/zxnext/peephole/__init__.py b/src/arch/zxnext/peephole/__init__.py
index 834f1263a..ee8a4f499 100644
--- a/src/arch/zxnext/peephole/__init__.py
+++ b/src/arch/zxnext/peephole/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
# Optimization recipes paths for this arch
diff --git a/src/ast/__init__.py b/src/ast/__init__.py
index cf950f96f..a1dccc8f0 100644
--- a/src/ast/__init__.py
+++ b/src/ast/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .ast import Ast, NodeVisitor, types
from .tree import Tree
diff --git a/src/ast/ast.py b/src/ast/ast.py
index 0ad86e4b3..b81218cd6 100644
--- a/src/ast/ast.py
+++ b/src/ast/ast.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import types
from collections.abc import Callable
diff --git a/src/ast/tree.py b/src/ast/tree.py
index db2dd3678..2cb7320b0 100644
--- a/src/ast/tree.py
+++ b/src/ast/tree.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
import collections.abc
diff --git a/src/outfmt/__init__.py b/src/outfmt/__init__.py
index 5cdf3c3f6..5684e08e3 100644
--- a/src/outfmt/__init__.py
+++ b/src/outfmt/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .binary import BinaryEmitter
from .codeemitter import CodeEmitter
from .sna import SnaEmitter
diff --git a/src/outfmt/binary.py b/src/outfmt/binary.py
index 463521ded..ff9e922c7 100644
--- a/src/outfmt/binary.py
+++ b/src/outfmt/binary.py
@@ -1,12 +1,9 @@
-# --------------------------------------------
-# KopyLeft (K) 2008
-# by Jose M. Rodriguez de la Rosa
-#
-# This program is licensed under the
-# GNU Public License v.3.0
-#
-# The code emission interface.
-# --------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .codeemitter import CodeEmitter
diff --git a/src/outfmt/codeemitter.py b/src/outfmt/codeemitter.py
index aa19ec687..bc09fea05 100644
--- a/src/outfmt/codeemitter.py
+++ b/src/outfmt/codeemitter.py
@@ -1,12 +1,9 @@
-# --------------------------------------------
-# KopyLeft (K) 2008
-# by Jose M. Rodriguez de la Rosa
-#
-# This program is licensed under the
-# GNU Public License v.3.0
-#
-# The code emission interface.
-# --------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from abc import ABC, abstractmethod
diff --git a/src/outfmt/gensnapshot.py b/src/outfmt/gensnapshot.py
index ba1e5b605..173ce7a15 100644
--- a/src/outfmt/gensnapshot.py
+++ b/src/outfmt/gensnapshot.py
@@ -1,22 +1,9 @@
-# 48K Snapshot generation module
-#
-# © Copyright 2008-2024 José Manuel RodrÃguez de la Rosa and contributors.
-# See the file AUTHORS for copyright details.
-#
-# This file is part of Boriel BASIC Compiler.
-#
-# Boriel BASIC Compiler is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
-#
-# Boriel BASIC Compiler 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 Affero General Public License
-# for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Boriel BASIC Compiler. If not, see .
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
class GenSnapshot:
diff --git a/src/outfmt/sna.py b/src/outfmt/sna.py
index b934b79d0..ed5ec90a1 100644
--- a/src/outfmt/sna.py
+++ b/src/outfmt/sna.py
@@ -1,23 +1,9 @@
-# 48K .SNA format output module
-#
-# © Copyright 2008-2024 José Manuel RodrÃguez de la Rosa and contributors.
-# See the file AUTHORS for copyright details.
-#
-# This file is part of Boriel BASIC Compiler.
-#
-# Boriel BASIC Compiler is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
-#
-# Boriel BASIC Compiler 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 Affero General Public License
-# for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Boriel BASIC Compiler. If not, see .
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .codeemitter import CodeEmitter
from .gensnapshot import GenSnapshot
diff --git a/src/outfmt/tap.py b/src/outfmt/tap.py
index bac9e39a2..4be74e14e 100755
--- a/src/outfmt/tap.py
+++ b/src/outfmt/tap.py
@@ -1,15 +1,11 @@
#!/usr/bin/env python3
-# --------------------------------------------
-# KopyLeft (K) 2008
-# by Jose M. Rodriguez de la Rosa
-#
-# This program is licensed under the
-# GNU Public License v.3.0
-#
-# Simple .tap file stdlib
-# Only supports standard headers by now.
-# --------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .tzx import TZX
diff --git a/src/outfmt/tzx.py b/src/outfmt/tzx.py
index e2c3a4584..c34334186 100755
--- a/src/outfmt/tzx.py
+++ b/src/outfmt/tzx.py
@@ -1,16 +1,11 @@
#!/usr/bin/env python3
-# --------------------------------------------
-# KopyLeft (K) 2008
-# by Jose M. Rodriguez de la Rosa
-#
-# This program is licensed under the
-# GNU Public License v.3.0
-#
-# Simple .tzx file stdlib
-# Only supports standard headers by now.
-# --------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .codeemitter import CodeEmitter
diff --git a/src/outfmt/z80.py b/src/outfmt/z80.py
index 2cb44ae46..c5147c523 100644
--- a/src/outfmt/z80.py
+++ b/src/outfmt/z80.py
@@ -1,23 +1,9 @@
-# 48K .Z80 format output module
-#
-# © Copyright 2008-2024 José Manuel RodrÃguez de la Rosa and contributors.
-# See the file AUTHORS for copyright details.
-#
-# This file is part of Boriel BASIC Compiler.
-#
-# Boriel BASIC Compiler is free software: you can redistribute it and/or modify
-# it under the terms of the GNU Affero General Public License as published by
-# the Free Software Foundation, either version 3 of the License, or (at your
-# option) any later version.
-#
-# Boriel BASIC Compiler 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 Affero General Public License
-# for more details.
-#
-# You should have received a copy of the GNU Affero General Public License
-# along with Boriel BASIC Compiler. If not, see .
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import io
diff --git a/src/parsetab/__init__.py b/src/parsetab/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/parsetab/__init__.py
+++ b/src/parsetab/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/ply/lex.py b/src/ply/lex.py
index de011fe13..7037c09d3 100644
--- a/src/ply/lex.py
+++ b/src/ply/lex.py
@@ -714,7 +714,7 @@ def validate_module(self, module):
#
# Build all of the regular expression rules from definitions in the supplied module
# -----------------------------------------------------------------------------
-def lex(*, module=None, object=None, debug=False,
+def lex(*, module=None, object=None, debug=False,
reflags=int(re.VERBOSE), debuglog=None, errorlog=None):
global lexer
diff --git a/src/symbols/__init__.py b/src/symbols/__init__.py
index e69de29bb..38f2d8157 100644
--- a/src/symbols/__init__.py
+++ b/src/symbols/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/src/symbols/arglist.py b/src/symbols/arglist.py
index a7195e165..01e043ac8 100644
--- a/src/symbols/arglist.py
+++ b/src/symbols/arglist.py
@@ -1,9 +1,10 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
from collections.abc import Iterable
diff --git a/src/symbols/argument.py b/src/symbols/argument.py
index 88be760d9..ab59c04eb 100644
--- a/src/symbols/argument.py
+++ b/src/symbols/argument.py
@@ -1,12 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import global_ as gl
from src.api.config import OPTIONS
diff --git a/src/symbols/arrayaccess.py b/src/symbols/arrayaccess.py
index f95806e06..fbfb55b19 100644
--- a/src/symbols/arrayaccess.py
+++ b/src/symbols/arrayaccess.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from functools import cached_property
from typing import Self
diff --git a/src/symbols/arraydecl.py b/src/symbols/arraydecl.py
index 3aff49d26..dc8b4c768 100644
--- a/src/symbols/arraydecl.py
+++ b/src/symbols/arraydecl.py
@@ -1,11 +1,10 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .symbol_ import Symbol
diff --git a/src/symbols/arrayload.py b/src/symbols/arrayload.py
index d6c7f0738..5de9ade30 100644
--- a/src/symbols/arrayload.py
+++ b/src/symbols/arrayload.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.arrayaccess import SymbolARRAYACCESS
diff --git a/src/symbols/asm.py b/src/symbols/asm.py
index 130fc9eb5..55289cdfc 100644
--- a/src/symbols/asm.py
+++ b/src/symbols/asm.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .symbol_ import Symbol
diff --git a/src/symbols/binary.py b/src/symbols/binary.py
index 3d6191e6f..293254c5c 100644
--- a/src/symbols/binary.py
+++ b/src/symbols/binary.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft, Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the Affero GNU General License v3
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check, errmsg
from src.symbols.constexpr import SymbolCONSTEXPR
diff --git a/src/symbols/block.py b/src/symbols/block.py
index e573ba1f1..bd3af9439 100644
--- a/src/symbols/block.py
+++ b/src/symbols/block.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License v3
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check
diff --git a/src/symbols/bound.py b/src/symbols/bound.py
index e313e9bd4..34643fd60 100644
--- a/src/symbols/bound.py
+++ b/src/symbols/bound.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check
from src.api.errmsg import error
diff --git a/src/symbols/boundlist.py b/src/symbols/boundlist.py
index 38ea04d4b..465892ccb 100644
--- a/src/symbols/boundlist.py
+++ b/src/symbols/boundlist.py
@@ -1,12 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.bound import SymbolBOUND
from src.symbols.symbol_ import Symbol
diff --git a/src/symbols/builtin.py b/src/symbols/builtin.py
index 54565d6cc..709c3e8fc 100644
--- a/src/symbols/builtin.py
+++ b/src/symbols/builtin.py
@@ -1,9 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check
diff --git a/src/symbols/call.py b/src/symbols/call.py
index ff7d9f13a..356675439 100644
--- a/src/symbols/call.py
+++ b/src/symbols/call.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from collections.abc import Iterable
from typing import Optional
diff --git a/src/symbols/constexpr.py b/src/symbols/constexpr.py
index 123abdbe6..3fdf67de1 100644
--- a/src/symbols/constexpr.py
+++ b/src/symbols/constexpr.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import src
import src.api.global_ as gl
diff --git a/src/symbols/funccall.py b/src/symbols/funccall.py
index fc973fb42..3f67bf9ef 100644
--- a/src/symbols/funccall.py
+++ b/src/symbols/funccall.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .call import SymbolCALL
diff --git a/src/symbols/funcdecl.py b/src/symbols/funcdecl.py
index 7517fca16..801dd00e3 100644
--- a/src/symbols/funcdecl.py
+++ b/src/symbols/funcdecl.py
@@ -1,11 +1,10 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import src.api.symboltable.scope
from src.api import global_
from src.api.constants import CLASS
diff --git a/src/symbols/id_/__init__.py b/src/symbols/id_/__init__.py
index d53bdad37..a9e49fe59 100644
--- a/src/symbols/id_/__init__.py
+++ b/src/symbols/id_/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.symbols.id_._id import SymbolID
__all__ = ["SymbolID"]
diff --git a/src/symbols/id_/_id.py b/src/symbols/id_/_id.py
index 0fce2076c..f5ba2f10f 100644
--- a/src/symbols/id_/_id.py
+++ b/src/symbols/id_/_id.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from __future__ import annotations
diff --git a/src/symbols/id_/interface.py b/src/symbols/id_/interface.py
index 85983c9ea..e488f8abe 100644
--- a/src/symbols/id_/interface.py
+++ b/src/symbols/id_/interface.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from abc import ABC, abstractmethod
from src.api.constants import CLASS, SCOPE
diff --git a/src/symbols/id_/ref/__init__.py b/src/symbols/id_/ref/__init__.py
index c45fe3a4d..d3f884a9e 100644
--- a/src/symbols/id_/ref/__init__.py
+++ b/src/symbols/id_/ref/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
__all__ = "ArrayRef", "ConstRef", "FuncRef", "LabelRef", "SymbolRef", "VarRef"
from src.symbols.id_.ref.arrayref import ArrayRef
diff --git a/src/symbols/id_/ref/arrayref.py b/src/symbols/id_/ref/arrayref.py
index 1d315ce59..0ef54d873 100644
--- a/src/symbols/id_/ref/arrayref.py
+++ b/src/symbols/id_/ref/arrayref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import functools
from src.api import global_ as gl
diff --git a/src/symbols/id_/ref/constref.py b/src/symbols/id_/ref/constref.py
index c57d50089..fe72627aa 100644
--- a/src/symbols/id_/ref/constref.py
+++ b/src/symbols/id_/ref/constref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.constants import CLASS
from src.symbols.id_.interface import SymbolIdABC as SymbolID
from src.symbols.id_.ref.symbolref import SymbolRef
diff --git a/src/symbols/id_/ref/funcref.py b/src/symbols/id_/ref/funcref.py
index 8d4e3a231..88f089db4 100644
--- a/src/symbols/id_/ref/funcref.py
+++ b/src/symbols/id_/ref/funcref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.constants import CLASS, CONVENTION
from src.symbols.block import SymbolBLOCK
from src.symbols.id_.interface import SymbolIdABC as SymbolID
diff --git a/src/symbols/id_/ref/labelref.py b/src/symbols/id_/ref/labelref.py
index 654dfbe23..f0a03901d 100644
--- a/src/symbols/id_/ref/labelref.py
+++ b/src/symbols/id_/ref/labelref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import global_
from src.api.constants import CLASS
from src.symbols.id_.interface import SymbolIdABC as SymbolID
diff --git a/src/symbols/id_/ref/symbolref.py b/src/symbols/id_/ref/symbolref.py
index fd88a0554..6fa471358 100644
--- a/src/symbols/id_/ref/symbolref.py
+++ b/src/symbols/id_/ref/symbolref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import global_
from src.api.constants import CLASS
from src.symbols.id_.interface import SymbolIdABC as SymbolID
diff --git a/src/symbols/id_/ref/varref.py b/src/symbols/id_/ref/varref.py
index 97cb1cd61..4b31ce9d9 100644
--- a/src/symbols/id_/ref/varref.py
+++ b/src/symbols/id_/ref/varref.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import src.api.global_ as gl
from src.api.constants import CLASS, SCOPE
from src.symbols.id_.interface import SymbolIdABC as SymbolID
diff --git a/src/symbols/nop.py b/src/symbols/nop.py
index 0b1e02225..70f21baf8 100644
--- a/src/symbols/nop.py
+++ b/src/symbols/nop.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .block import SymbolBLOCK
diff --git a/src/symbols/number.py b/src/symbols/number.py
index e4b766ba9..f16dd8420 100644
--- a/src/symbols/number.py
+++ b/src/symbols/number.py
@@ -1,12 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.constants import CLASS
from src.symbols import sym
diff --git a/src/symbols/paramlist.py b/src/symbols/paramlist.py
index b3e2b285e..a4f2a84dd 100644
--- a/src/symbols/paramlist.py
+++ b/src/symbols/paramlist.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.id_.interface import SymbolIdABC as SymbolID
from src.symbols.symbol_ import Symbol
diff --git a/src/symbols/sentence.py b/src/symbols/sentence.py
index 5b90fd443..7eb918923 100644
--- a/src/symbols/sentence.py
+++ b/src/symbols/sentence.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License v3
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.symbol_ import Symbol
diff --git a/src/symbols/string_.py b/src/symbols/string_.py
index 83b8e9839..6b8bc90ba 100644
--- a/src/symbols/string_.py
+++ b/src/symbols/string_.py
@@ -1,11 +1,10 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
from src.api.constants import CLASS
diff --git a/src/symbols/strslice.py b/src/symbols/strslice.py
index 8435852bc..ec6e64e95 100644
--- a/src/symbols/strslice.py
+++ b/src/symbols/strslice.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import src.api.global_ as gl
from src.api import check, config
diff --git a/src/symbols/sym.py b/src/symbols/sym.py
index 4188bed34..52df7ec09 100644
--- a/src/symbols/sym.py
+++ b/src/symbols/sym.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.arglist import SymbolARGLIST as ARGLIST
from src.symbols.argument import SymbolARGUMENT as ARGUMENT
diff --git a/src/symbols/symbol_.py b/src/symbols/symbol_.py
index 7f63a3aae..8ca90662c 100644
--- a/src/symbols/symbol_.py
+++ b/src/symbols/symbol_.py
@@ -1,11 +1,10 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
from collections import Counter
diff --git a/src/symbols/type_.py b/src/symbols/type_.py
index 02fbb49fc..825635332 100644
--- a/src/symbols/type_.py
+++ b/src/symbols/type_.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api.config import OPTIONS
from src.api.constants import CLASS, TYPE
diff --git a/src/symbols/typecast.py b/src/symbols/typecast.py
index db0a98a46..14e849d65 100644
--- a/src/symbols/typecast.py
+++ b/src/symbols/typecast.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check, errmsg
from src.api.errmsg import error
diff --git a/src/symbols/unary.py b/src/symbols/unary.py
index 5021c9d43..29812c3af 100644
--- a/src/symbols/unary.py
+++ b/src/symbols/unary.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.api import check
from src.symbols.number import SymbolNUMBER
diff --git a/src/symbols/vardecl.py b/src/symbols/vardecl.py
index d0bb32f6b..c74c2ce9f 100644
--- a/src/symbols/vardecl.py
+++ b/src/symbols/vardecl.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.symbols.symbol_ import Symbol
diff --git a/src/zxbasm/__init__.py b/src/zxbasm/__init__.py
index 3f371bc09..776d8d6d7 100644
--- a/src/zxbasm/__init__.py
+++ b/src/zxbasm/__init__.py
@@ -1 +1,8 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .zxbasm import main # noqa
diff --git a/src/zxbasm/asm.py b/src/zxbasm/asm.py
index eab43e1e6..ef75858e0 100644
--- a/src/zxbasm/asm.py
+++ b/src/zxbasm/asm.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from typing import Any, NamedTuple
from src.api import errmsg
diff --git a/src/zxbasm/asm_instruction.py b/src/zxbasm/asm_instruction.py
index c880c553c..1cb3d4e76 100644
--- a/src/zxbasm/asm_instruction.py
+++ b/src/zxbasm/asm_instruction.py
@@ -1,4 +1,9 @@
-# vim: ts=4:et:sw=4
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import re
diff --git a/src/zxbasm/asmlex.py b/src/zxbasm/asmlex.py
index 36366ac05..af8dfb126 100755
--- a/src/zxbasm/asmlex.py
+++ b/src/zxbasm/asmlex.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python3
-# vim:ts=4:et:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Lexer for the zxbasm (ZXBasic Assembler)
-# ----------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import sys
diff --git a/src/zxbasm/asmparse.py b/src/zxbasm/asmparse.py
index e1f8518b8..34516d36f 100755
--- a/src/zxbasm/asmparse.py
+++ b/src/zxbasm/asmparse.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python
-# vim: et:ts=4:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Parser for the ZXBASM (ZXBasic Assembler)
-# ----------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
diff --git a/src/zxbasm/basic.py b/src/zxbasm/basic.py
index 6bb698854..bfd666fd7 100755
--- a/src/zxbasm/basic.py
+++ b/src/zxbasm/basic.py
@@ -1,13 +1,11 @@
#!/usr/bin/python3
-# -------------------------------------------------------------------------------
-# Copyleft (K) 2008 by Jose M. Rodriguez de la Rosa
-#
-# Simple ASCII to BASIC tokenizer
-#
-# Implements a simple (really simple) ZX Spectrum BASIC tokenizer
-# This will convert a simple ASCII text to a ZX spectrum BASIC bytes program
-# -------------------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src import outfmt as tzx
from src.api import fp
diff --git a/src/zxbasm/expr.py b/src/zxbasm/expr.py
index 2086c11db..39147d812 100644
--- a/src/zxbasm/expr.py
+++ b/src/zxbasm/expr.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.errmsg import error
from src.ast import Ast
from src.ast.tree import NotAnAstError
diff --git a/src/zxbasm/global_.py b/src/zxbasm/global_.py
index 80e2c42f4..9eefc2c89 100644
--- a/src/zxbasm/global_.py
+++ b/src/zxbasm/global_.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api import global_ as gl
DOT = gl.NAMESPACE_SEPARATOR # NAMESPACE separator
diff --git a/src/zxbasm/label.py b/src/zxbasm/label.py
index 9ead507de..f33cd4e75 100644
--- a/src/zxbasm/label.py
+++ b/src/zxbasm/label.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.api.errmsg import error
from src.zxbasm import global_ as asm_gl
diff --git a/src/zxbasm/memory.py b/src/zxbasm/memory.py
index 4a1e0732a..a8115d7eb 100644
--- a/src/zxbasm/memory.py
+++ b/src/zxbasm/memory.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from bisect import bisect_left, bisect_right
from collections import defaultdict
diff --git a/src/zxbasm/version.py b/src/zxbasm/version.py
index cca3a688b..8ef1ba2ac 100644
--- a/src/zxbasm/version.py
+++ b/src/zxbasm/version.py
@@ -1 +1,8 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
VERSION = "1.18.2"
diff --git a/src/zxbasm/z80.py b/src/zxbasm/z80.py
index 67704d5a8..d469a5fc2 100644
--- a/src/zxbasm/z80.py
+++ b/src/zxbasm/z80.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from typing import Final, NamedTuple
diff --git a/src/zxbasm/zxbasm.py b/src/zxbasm/zxbasm.py
index c4162c78f..c4b6625be 100755
--- a/src/zxbasm/zxbasm.py
+++ b/src/zxbasm/zxbasm.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:et:sw=4
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Parser for the ZXBASM (ZXBasic Assembler)
-# ----------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import argparse
import os
diff --git a/src/zxbasm/zxnext.py b/src/zxbasm/zxnext.py
index a637ed262..39558b236 100644
--- a/src/zxbasm/zxnext.py
+++ b/src/zxbasm/zxnext.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
__all__ = [
"p_JP_c",
"p_add_reg16_a",
diff --git a/src/zxbc/__init__.py b/src/zxbc/__init__.py
index 375ff7c6c..ae83a5b7e 100644
--- a/src/zxbc/__init__.py
+++ b/src/zxbc/__init__.py
@@ -1,11 +1,9 @@
-# vim: ts=4:et:sw=4:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.outfmt import CodeEmitter # noqa
diff --git a/src/zxbc/args_config.py b/src/zxbc/args_config.py
index eb4116175..8111db10c 100644
--- a/src/zxbc/args_config.py
+++ b/src/zxbc/args_config.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
import os
diff --git a/src/zxbc/args_parser.py b/src/zxbc/args_parser.py
index fa6d4e52c..3d3bbfc4d 100644
--- a/src/zxbc/args_parser.py
+++ b/src/zxbc/args_parser.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from __future__ import annotations
import argparse
diff --git a/src/zxbc/keywords.py b/src/zxbc/keywords.py
index e73bd1490..98ff6ab02 100644
--- a/src/zxbc/keywords.py
+++ b/src/zxbc/keywords.py
@@ -1,14 +1,9 @@
-# vim:ts=4:et:sw=4
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
-
-# Traditional BASIC used even reserved words for math functions like
-# SIN, COS, TAN. These are what ZX BASIC uses
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
KEYWORDS = {
# Keywords
diff --git a/src/zxbc/version.py b/src/zxbc/version.py
index 2c0175d7b..9ed17fb26 100755
--- a/src/zxbc/version.py
+++ b/src/zxbc/version.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from typing import Final
VERSION: Final[str] = "1.18.2"
diff --git a/src/zxbc/zxbc.py b/src/zxbc/zxbc.py
index 766197dcb..be770dd1c 100755
--- a/src/zxbc/zxbc.py
+++ b/src/zxbc/zxbc.py
@@ -1,5 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:sw=4:et:
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import re
import sys
diff --git a/src/zxbc/zxblex.py b/src/zxbc/zxblex.py
index f7e1fb00e..1610d7b43 100755
--- a/src/zxbc/zxblex.py
+++ b/src/zxbc/zxblex.py
@@ -1,12 +1,11 @@
#!/usr/bin/env python3
-# vim:ts=4:et:sw=4
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import re
import sys
diff --git a/src/zxbc/zxbparser.py b/src/zxbc/zxbparser.py
index af649f479..e3341e7d4 100755
--- a/src/zxbc/zxbparser.py
+++ b/src/zxbc/zxbparser.py
@@ -1,12 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:et:sw=4:
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import math
import sys
diff --git a/src/zxbpp/__init__.py b/src/zxbpp/__init__.py
index 0ce13993f..0e8b403ed 100644
--- a/src/zxbpp/__init__.py
+++ b/src/zxbpp/__init__.py
@@ -1 +1,8 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from .zxbpp import entry_point # noqa
diff --git a/src/zxbpp/base_pplex.py b/src/zxbpp/base_pplex.py
index 678ed3376..b1530d6f4 100644
--- a/src/zxbpp/base_pplex.py
+++ b/src/zxbpp/base_pplex.py
@@ -1,11 +1,9 @@
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Lexer for the ZXBppASM (ZXBASM Preprocessor)
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
import sys
diff --git a/src/zxbpp/prepro/__init__.py b/src/zxbpp/prepro/__init__.py
index 6d5436d63..eb4fd8b85 100644
--- a/src/zxbpp/prepro/__init__.py
+++ b/src/zxbpp/prepro/__init__.py
@@ -1,4 +1,9 @@
-# vim: ts=4:sw=4:et:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .args import Arg, ArgList
from .definestable import DefinesTable
diff --git a/src/zxbpp/prepro/args.py b/src/zxbpp/prepro/args.py
index 6ac2cc33c..e487baa42 100644
--- a/src/zxbpp/prepro/args.py
+++ b/src/zxbpp/prepro/args.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from .macrocall import MacroCall
diff --git a/src/zxbpp/prepro/builtinmacro.py b/src/zxbpp/prepro/builtinmacro.py
index 5afb641cc..fe32c3243 100644
--- a/src/zxbpp/prepro/builtinmacro.py
+++ b/src/zxbpp/prepro/builtinmacro.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from collections.abc import Callable
from src.zxbpp.prepro import DefinesTable
diff --git a/src/zxbpp/prepro/definestable.py b/src/zxbpp/prepro/definestable.py
index 682327fb2..863a52118 100644
--- a/src/zxbpp/prepro/definestable.py
+++ b/src/zxbpp/prepro/definestable.py
@@ -1,4 +1,9 @@
-# vim: ts=4:sw=4:et:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
"""Class for a Table of Defines.
Each identifier has a dictionary entry.
diff --git a/src/zxbpp/prepro/exceptions.py b/src/zxbpp/prepro/exceptions.py
index cbd0f9271..1f7ecbae1 100644
--- a/src/zxbpp/prepro/exceptions.py
+++ b/src/zxbpp/prepro/exceptions.py
@@ -1,3 +1,11 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
+
class PreprocError(Exception):
"""Denotes an exception in the preprocessor"""
diff --git a/src/zxbpp/prepro/id_.py b/src/zxbpp/prepro/id_.py
index 79617cd1b..82d781b8b 100644
--- a/src/zxbpp/prepro/id_.py
+++ b/src/zxbpp/prepro/id_.py
@@ -1,4 +1,9 @@
-# vim: ts=4:sw=4:et:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
__doc__ = """ A class for an identifier parsed by the preprocessor.
It contains it's name, arguments and macro value.
diff --git a/src/zxbpp/prepro/macrocall.py b/src/zxbpp/prepro/macrocall.py
index ef9c239ac..cba1901e6 100644
--- a/src/zxbpp/prepro/macrocall.py
+++ b/src/zxbpp/prepro/macrocall.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import copy
import re
diff --git a/src/zxbpp/prepro/operators.py b/src/zxbpp/prepro/operators.py
index 555938b7f..eb72c827e 100644
--- a/src/zxbpp/prepro/operators.py
+++ b/src/zxbpp/prepro/operators.py
@@ -1,4 +1,9 @@
-# Operators implemented in the preprocessor
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
from src.zxbpp.prepro import DefinesTable
from src.zxbpp.prepro.macrocall import MacroCall
diff --git a/src/zxbpp/prepro/output.py b/src/zxbpp/prepro/output.py
index 05fc10887..e55c66467 100644
--- a/src/zxbpp/prepro/output.py
+++ b/src/zxbpp/prepro/output.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:sw=4:
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
"""Common output functions for the preprocessor.
Need the global OPTION object
diff --git a/src/zxbpp/zxbasmpplex.py b/src/zxbpp/zxbasmpplex.py
index 4c9df04c9..e042d8674 100755
--- a/src/zxbpp/zxbasmpplex.py
+++ b/src/zxbpp/zxbasmpplex.py
@@ -1,13 +1,11 @@
#!/usr/bin/python3
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Lexer for the ZXBppASM (ZXBASM Preprocessor)
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import sys
diff --git a/src/zxbpp/zxbpp.py b/src/zxbpp/zxbpp.py
index 36dabed3f..b90fac9d0 100755
--- a/src/zxbpp/zxbpp.py
+++ b/src/zxbpp/zxbpp.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:sw=4:et:
-
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Parser for the ZXBpp (ZXBasic Preprocessor)
-# ----------------------------------------------------------------------
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import argparse
import os
diff --git a/src/zxbpp/zxbpplex.py b/src/zxbpp/zxbpplex.py
index 2373fab03..3b9125120 100755
--- a/src/zxbpp/zxbpplex.py
+++ b/src/zxbpp/zxbpplex.py
@@ -1,13 +1,11 @@
#!/usr/bin/env python3
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Lexer for the ZXBpp (ZXBasic Preprocessor)
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import re
import sys
diff --git a/tests/__init__.py b/tests/__init__.py
index 5ace62cdb..e4f9511a5 100644
--- a/tests/__init__.py
+++ b/tests/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import os.path
import sys
diff --git a/tests/api/__init__.py b/tests/api/__init__.py
index e69de29bb..38f2d8157 100644
--- a/tests/api/__init__.py
+++ b/tests/api/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/tests/api/test_arg_parser.py b/tests/api/test_arg_parser.py
index 1d2ff353f..eb096b30e 100644
--- a/tests/api/test_arg_parser.py
+++ b/tests/api/test_arg_parser.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80 import backend
diff --git a/tests/api/test_check.py b/tests/api/test_check.py
index 7e5ed55c1..b7d8e485f 100644
--- a/tests/api/test_check.py
+++ b/tests/api/test_check.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.api import check
diff --git a/tests/api/test_config.py b/tests/api/test_config.py
index 891eb86bb..f007cd650 100644
--- a/tests/api/test_config.py
+++ b/tests/api/test_config.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import sys
import unittest
from unittest import mock
diff --git a/tests/api/test_symbolTable.py b/tests/api/test_symbolTable.py
index c0a7f69f5..7e97dc6e7 100644
--- a/tests/api/test_symbolTable.py
+++ b/tests/api/test_symbolTable.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from io import StringIO
from unittest import TestCase
diff --git a/tests/api/test_utils.py b/tests/api/test_utils.py
index 34bb62fb4..5c58559a8 100644
--- a/tests/api/test_utils.py
+++ b/tests/api/test_utils.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.api import utils
diff --git a/tests/arch/zx48k/backend/test_memcell.py b/tests/arch/zx48k/backend/test_memcell.py
index 776091cf7..266dc8c50 100644
--- a/tests/arch/zx48k/backend/test_memcell.py
+++ b/tests/arch/zx48k/backend/test_memcell.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
import src.arch
diff --git a/tests/arch/zx48k/optimizer/common.py b/tests/arch/zx48k/optimizer/common.py
index 3c604c471..9e553c754 100644
--- a/tests/arch/zx48k/optimizer/common.py
+++ b/tests/arch/zx48k/optimizer/common.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from contextlib import contextmanager
from src.api.config import OPTIONS
diff --git a/tests/arch/zx48k/optimizer/test_basicblock.py b/tests/arch/zx48k/optimizer/test_basicblock.py
index c8d7b6de1..eac2807ff 100644
--- a/tests/arch/zx48k/optimizer/test_basicblock.py
+++ b/tests/arch/zx48k/optimizer/test_basicblock.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
import src.arch.z80.optimizer.flow_graph
diff --git a/tests/arch/zx48k/optimizer/test_cpustate.py b/tests/arch/zx48k/optimizer/test_cpustate.py
index 3cf5d9ae9..b78656814 100644
--- a/tests/arch/zx48k/optimizer/test_cpustate.py
+++ b/tests/arch/zx48k/optimizer/test_cpustate.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import pytest
from src.arch.z80.optimizer import cpustate, helpers
diff --git a/tests/arch/zx48k/optimizer/test_helpers.py b/tests/arch/zx48k/optimizer/test_helpers.py
index 6e41ce99b..b4aeef65c 100644
--- a/tests/arch/zx48k/optimizer/test_helpers.py
+++ b/tests/arch/zx48k/optimizer/test_helpers.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.optimizer import helpers
diff --git a/tests/arch/zx48k/optimizer/test_o1_optimizer.py b/tests/arch/zx48k/optimizer/test_o1_optimizer.py
index 931081681..fe0868724 100644
--- a/tests/arch/zx48k/optimizer/test_o1_optimizer.py
+++ b/tests/arch/zx48k/optimizer/test_o1_optimizer.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80.backend import Backend
from tests.arch.zx48k.optimizer.common import mock_options_level
diff --git a/tests/arch/zx48k/optimizer/test_optimizer.py b/tests/arch/zx48k/optimizer/test_optimizer.py
index 3db7f24a7..a9389f123 100644
--- a/tests/arch/zx48k/optimizer/test_optimizer.py
+++ b/tests/arch/zx48k/optimizer/test_optimizer.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from src.arch.z80 import optimizer
from src.arch.z80.peephole import engine
from tests.arch.zx48k.optimizer.common import mock_options_level
diff --git a/tests/arch/zx48k/optimizer/test_optimizer_asm.py b/tests/arch/zx48k/optimizer/test_optimizer_asm.py
index b212aeb1c..09a788562 100644
--- a/tests/arch/zx48k/optimizer/test_optimizer_asm.py
+++ b/tests/arch/zx48k/optimizer/test_optimizer_asm.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80.optimizer import asm, helpers
diff --git a/tests/arch/zx48k/peephole/test_evaluator.py b/tests/arch/zx48k/peephole/test_evaluator.py
index faac87744..3ffa2e9ce 100644
--- a/tests/arch/zx48k/peephole/test_evaluator.py
+++ b/tests/arch/zx48k/peephole/test_evaluator.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80.peephole import evaluator
diff --git a/tests/arch/zx48k/peephole/test_parser.py b/tests/arch/zx48k/peephole/test_parser.py
index 54762b2e2..7beed55e7 100644
--- a/tests/arch/zx48k/peephole/test_parser.py
+++ b/tests/arch/zx48k/peephole/test_parser.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80.peephole import parser
diff --git a/tests/arch/zx48k/peephole/test_pattern.py b/tests/arch/zx48k/peephole/test_pattern.py
index 078aecb96..a5addac54 100644
--- a/tests/arch/zx48k/peephole/test_pattern.py
+++ b/tests/arch/zx48k/peephole/test_pattern.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80.peephole import pattern
diff --git a/tests/arch/zx48k/peephole/test_template.py b/tests/arch/zx48k/peephole/test_template.py
index 542b91e2b..5be4493d7 100644
--- a/tests/arch/zx48k/peephole/test_template.py
+++ b/tests/arch/zx48k/peephole/test_template.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import unittest
from src.arch.z80.peephole import template
diff --git a/tests/cmdline/__init__.py b/tests/cmdline/__init__.py
index 69b0c613c..ab3f240a0 100644
--- a/tests/cmdline/__init__.py
+++ b/tests/cmdline/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import os.path
import sys
diff --git a/tests/cmdline/test_zxb.py b/tests/cmdline/test_zxb.py
index dd4fe4399..98b619c8a 100644
--- a/tests/cmdline/test_zxb.py
+++ b/tests/cmdline/test_zxb.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import pytest
diff --git a/tests/functional/test.py b/tests/functional/test.py
index 086a2ff0b..d55b51346 100755
--- a/tests/functional/test.py
+++ b/tests/functional/test.py
@@ -1,5 +1,11 @@
#!/usr/bin/env python3
-# vim:ts=4:et:ai:
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import argparse
import difflib
diff --git a/tests/functional/test_.py b/tests/functional/test_.py
index ea879fa57..e660f3f5a 100644
--- a/tests/functional/test_.py
+++ b/tests/functional/test_.py
@@ -1,4 +1,9 @@
-# vim:ts=4:et:ai
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
import sys
diff --git a/tests/functional/test_asm.py b/tests/functional/test_asm.py
index af6eb8a14..65a72ddd3 100644
--- a/tests/functional/test_asm.py
+++ b/tests/functional/test_asm.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import sys
diff --git a/tests/functional/test_basic.py b/tests/functional/test_basic.py
index 0a8029817..1a0c308d1 100644
--- a/tests/functional/test_basic.py
+++ b/tests/functional/test_basic.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import glob
import os
import sys
diff --git a/tests/functional/test_prepro.py b/tests/functional/test_prepro.py
index c5e2f06eb..48c52b23b 100644
--- a/tests/functional/test_prepro.py
+++ b/tests/functional/test_prepro.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import sys
diff --git a/tests/runtime/check_test.py b/tests/runtime/check_test.py
index d3572ef19..111a0b048 100755
--- a/tests/runtime/check_test.py
+++ b/tests/runtime/check_test.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python3
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import signal
import sys
diff --git a/tests/runtime/update_test.py b/tests/runtime/update_test.py
index d05f01252..ad8b6711e 100755
--- a/tests/runtime/update_test.py
+++ b/tests/runtime/update_test.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python3
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
__doc__ = "Creates or update a test result"
diff --git a/tests/symbols/__init__.py b/tests/symbols/__init__.py
index a8507a547..031519340 100644
--- a/tests/symbols/__init__.py
+++ b/tests/symbols/__init__.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import os
import sys
diff --git a/tests/symbols/test_symbolARGLIST.py b/tests/symbols/test_symbolARGLIST.py
index fb39c0ecf..cd3e76144 100644
--- a/tests/symbols/test_symbolARGLIST.py
+++ b/tests/symbols/test_symbolARGLIST.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols import sym
diff --git a/tests/symbols/test_symbolARRAYACCESS.py b/tests/symbols/test_symbolARRAYACCESS.py
index aed45bacb..40864b7d6 100644
--- a/tests/symbols/test_symbolARRAYACCESS.py
+++ b/tests/symbols/test_symbolARRAYACCESS.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from io import StringIO
from unittest import TestCase
diff --git a/tests/symbols/test_symbolBASICTYPE.py b/tests/symbols/test_symbolBASICTYPE.py
index 827868262..af9f88c1c 100644
--- a/tests/symbols/test_symbolBASICTYPE.py
+++ b/tests/symbols/test_symbolBASICTYPE.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import TYPE
diff --git a/tests/symbols/test_symbolBINARY.py b/tests/symbols/test_symbolBINARY.py
index de299c314..fa1b0982c 100644
--- a/tests/symbols/test_symbolBINARY.py
+++ b/tests/symbols/test_symbolBINARY.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from io import StringIO
from unittest import TestCase
diff --git a/tests/symbols/test_symbolBLOCK.py b/tests/symbols/test_symbolBLOCK.py
index 073c492ce..0c2c8e5c2 100644
--- a/tests/symbols/test_symbolBLOCK.py
+++ b/tests/symbols/test_symbolBLOCK.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols.sym import BLOCK, NUMBER
diff --git a/tests/symbols/test_symbolBOUND.py b/tests/symbols/test_symbolBOUND.py
index fe1751952..f61b12348 100644
--- a/tests/symbols/test_symbolBOUND.py
+++ b/tests/symbols/test_symbolBOUND.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from io import StringIO
from unittest import TestCase
diff --git a/tests/symbols/test_symbolBOUNDLIST.py b/tests/symbols/test_symbolBOUNDLIST.py
index 8313e7dc1..5d6f1f999 100644
--- a/tests/symbols/test_symbolBOUNDLIST.py
+++ b/tests/symbols/test_symbolBOUNDLIST.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols import sym
diff --git a/tests/symbols/test_symbolFUNCDECL.py b/tests/symbols/test_symbolFUNCDECL.py
index e826b0360..74f9bfc1c 100644
--- a/tests/symbols/test_symbolFUNCDECL.py
+++ b/tests/symbols/test_symbolFUNCDECL.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
import src.api.global_ as gl
diff --git a/tests/symbols/test_symbolFUNCTION.py b/tests/symbols/test_symbolFUNCTION.py
index 6573666ff..c9610cb4f 100644
--- a/tests/symbols/test_symbolFUNCTION.py
+++ b/tests/symbols/test_symbolFUNCTION.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import CLASS
diff --git a/tests/symbols/test_symbolLABEL.py b/tests/symbols/test_symbolLABEL.py
index cfdc833b4..2da2bfc2f 100644
--- a/tests/symbols/test_symbolLABEL.py
+++ b/tests/symbols/test_symbolLABEL.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
__author__ = "boriel"
from unittest import TestCase
diff --git a/tests/symbols/test_symbolNOP.py b/tests/symbols/test_symbolNOP.py
index d8afe0573..93ba53584 100644
--- a/tests/symbols/test_symbolNOP.py
+++ b/tests/symbols/test_symbolNOP.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols.sym import NOP
diff --git a/tests/symbols/test_symbolNUMBER.py b/tests/symbols/test_symbolNUMBER.py
index f2c01a791..505b71b5d 100644
--- a/tests/symbols/test_symbolNUMBER.py
+++ b/tests/symbols/test_symbolNUMBER.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import TYPE
diff --git a/tests/symbols/test_symbolSENTENCE.py b/tests/symbols/test_symbolSENTENCE.py
index a14fd8820..f6ce02dc4 100644
--- a/tests/symbols/test_symbolSENTENCE.py
+++ b/tests/symbols/test_symbolSENTENCE.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols import sym
diff --git a/tests/symbols/test_symbolSTRING.py b/tests/symbols/test_symbolSTRING.py
index 6ec0d6a4a..a0cac4500 100644
--- a/tests/symbols/test_symbolSTRING.py
+++ b/tests/symbols/test_symbolSTRING.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.symbols import sym
diff --git a/tests/symbols/test_symbolSTRSLICE.py b/tests/symbols/test_symbolSTRSLICE.py
index a383cc657..fe888b06e 100644
--- a/tests/symbols/test_symbolSTRSLICE.py
+++ b/tests/symbols/test_symbolSTRSLICE.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
import src.api.global_ as gl
diff --git a/tests/symbols/test_symbolTYPE.py b/tests/symbols/test_symbolTYPE.py
index b526a567a..5d9d01ad1 100644
--- a/tests/symbols/test_symbolTYPE.py
+++ b/tests/symbols/test_symbolTYPE.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import TYPE
diff --git a/tests/symbols/test_symbolTYPEALIAS.py b/tests/symbols/test_symbolTYPEALIAS.py
index fc36245d2..6f22c3220 100644
--- a/tests/symbols/test_symbolTYPEALIAS.py
+++ b/tests/symbols/test_symbolTYPEALIAS.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import TYPE
diff --git a/tests/symbols/test_symbolTYPECAST.py b/tests/symbols/test_symbolTYPECAST.py
index 681aaa396..4955e9d8d 100644
--- a/tests/symbols/test_symbolTYPECAST.py
+++ b/tests/symbols/test_symbolTYPECAST.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from io import StringIO
from unittest import TestCase
diff --git a/tests/symbols/test_symbolVAR.py b/tests/symbols/test_symbolVAR.py
index d2335f5a2..a0b90718a 100644
--- a/tests/symbols/test_symbolVAR.py
+++ b/tests/symbols/test_symbolVAR.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import TestCase
from src.api.constants import SCOPE
diff --git a/tests/symbols/test_symbolVARARRAY.py b/tests/symbols/test_symbolVARARRAY.py
index 9e4d5c297..80ad4a9e9 100644
--- a/tests/symbols/test_symbolVARARRAY.py
+++ b/tests/symbols/test_symbolVARARRAY.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import functools
from unittest import TestCase
diff --git a/tests/zxbc/__init__.py b/tests/zxbc/__init__.py
index e69de29bb..38f2d8157 100644
--- a/tests/zxbc/__init__.py
+++ b/tests/zxbc/__init__.py
@@ -0,0 +1,6 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
diff --git a/tests/zxbc/test_build_parsetab.py b/tests/zxbc/test_build_parsetab.py
index 775b7e209..5b856aba7 100644
--- a/tests/zxbc/test_build_parsetab.py
+++ b/tests/zxbc/test_build_parsetab.py
@@ -1,3 +1,10 @@
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
from unittest import mock
from src.ply.yacc import LRParser
diff --git a/tools/consolidate-libs.py b/tools/consolidate-libs.py
index 4ca91ca67..9061d8705 100755
--- a/tools/consolidate-libs.py
+++ b/tools/consolidate-libs.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
__doc__ = """Scans src/lib//** and does hardlinks to files
with the same name and content"""
diff --git a/tools/fixed.py b/tools/fixed.py
index 35738452c..b0ede5f72 100644
--- a/tools/fixed.py
+++ b/tools/fixed.py
@@ -1,4 +1,9 @@
-# A program that displays fixed point numbers in hexa
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import sys
diff --git a/tools/mulfix.py b/tools/mulfix.py
index 4ad4b415f..04fd990a7 100755
--- a/tools/mulfix.py
+++ b/tools/mulfix.py
@@ -1,6 +1,11 @@
#!/usr/bin/env python
-# A program that displays multiplied fixed point numbers
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import sys
diff --git a/tools/nextcreator.py b/tools/nextcreator.py
index a03b6ac25..4c240a41c 100755
--- a/tools/nextcreator.py
+++ b/tools/nextcreator.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python3
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import argparse
import os
import re
diff --git a/tools/normalize_asm.py b/tools/normalize_asm.py
index c48918af0..ffe0b6ef1 100755
--- a/tools/normalize_asm.py
+++ b/tools/normalize_asm.py
@@ -1,4 +1,12 @@
#!/usr/bin/env python3
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import sys
INDENT = 4 * " "
diff --git a/tools/normalize_bas.py b/tools/normalize_bas.py
index c394f14d8..e3f6daed3 100755
--- a/tools/normalize_bas.py
+++ b/tools/normalize_bas.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python3
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import re
import sys
diff --git a/tools/scrview.py b/tools/scrview.py
index c3288ea2d..d6faeb8e9 100755
--- a/tools/scrview.py
+++ b/tools/scrview.py
@@ -1,5 +1,12 @@
#!/usr/bin/env python3
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
+
import sys
import pygame
diff --git a/zxbasm.py b/zxbasm.py
index 5faa79853..4659e431f 100755
--- a/zxbasm.py
+++ b/zxbasm.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:et:sw=4
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Parser for the ZXBASM (ZXBasic Assembler)
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
import sys
diff --git a/zxbc.py b/zxbc.py
index 8db920890..867910b9a 100755
--- a/zxbc.py
+++ b/zxbc.py
@@ -1,5 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:sw=4:et:
+
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
import sys
diff --git a/zxbpp.py b/zxbpp.py
index b9bc36204..83cba650d 100755
--- a/zxbpp.py
+++ b/zxbpp.py
@@ -1,14 +1,11 @@
#!/usr/bin/env python3
-# vim: ts=4:sw=4:et:
-# ----------------------------------------------------------------------
-# Copyleft (K), Jose M. Rodriguez-Rosa (a.k.a. Boriel)
-#
-# This program is Free Software and is released under the terms of
-# the GNU General License
-#
-# This is the Parser for the ZXBpp (ZXBasic Preprocessor)
-# ----------------------------------------------------------------------
+# --------------------------------------------------------------------
+# SPDX-License-Identifier: AGPL-3.0-or-later
+# Licensed under the GNU Affero General Public License v3.0 or later.
+# Author: Jose M. Rodriguez-Rosa (a.k.a. Boriel) - https://boriel.com
+# See https://www.gnu.org/licenses/agpl-3.0.html for details.
+# --------------------------------------------------------------------
import os
import sys