diff --git a/.gitignore b/.gitignore
index 3c7e394..940421a 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,5 +1,5 @@
-SPDX-License-Identifier: MPL-2.0
-SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
+# SPDX-License-Identifier: MPL-2.0
+# SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
*.exe
*.o
@@ -12,4 +12,5 @@ SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
*.s19
*.elf
-AGENTS.md
\ No newline at end of file
+AGENTS.md
+.pre-commit-config.yaml
\ No newline at end of file
diff --git a/boot.asm b/boot.asm
new file mode 100644
index 0000000..2866a8a
--- /dev/null
+++ b/boot.asm
@@ -0,0 +1,2 @@
+; SPDX-License-Identifier: MPL-2.0
+; SPDX-FileCopyrightText: (c) 2025 A.M. Rowsell
diff --git a/reuse.spdx b/reuse.spdx
new file mode 100644
index 0000000..7d9e552
--- /dev/null
+++ b/reuse.spdx
@@ -0,0 +1,75 @@
+SPDXVersion: SPDX-2.1
+DataLicense: CC0-1.0
+SPDXID: SPDXRef-DOCUMENT
+DocumentName: zone
+DocumentNamespace: http://spdx.org/spdxdocs/spdx-v2.1-0823a31e-9918-4998-b98a-f1263eda5541
+Creator: Person: Anonymous ()
+Creator: Organization: Anonymous ()
+Creator: Tool: reuse-6.2.0
+Created: 2025-12-20T23:13:24Z
+CreatorComment: This document was created automatically using available reuse information consistent with REUSE.
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-9065dc080a496ef6250c9ffe39d79b38
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-800fa8be3bc6dace91f853b7018f6849
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-d6cf232a763ddc9cee95d7a911bbb946
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-2d89ff9b63b1abf035fa5e4c2aa4844d
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-668d5e365a56b36ae0f87711fbc6b78b
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-34ba492b6143316e695659743aa27145
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a82a3097717e2ce54da8ade2858b6927
+Relationship: SPDXRef-DOCUMENT DESCRIBES SPDXRef-a00537fb4adb06776fe0bf6b04ca130d
+
+FileName: ./.gitignore
+SPDXID: SPDXRef-9065dc080a496ef6250c9ffe39d79b38
+FileChecksum: SHA1: 03a87790df823dc909f52414e61c565f9a1ae000
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./Makefile
+SPDXID: SPDXRef-800fa8be3bc6dace91f853b7018f6849
+FileChecksum: SHA1: 00e6781134ac8371115e97811c68b78c489b5125
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./boot.asm
+SPDXID: SPDXRef-d6cf232a763ddc9cee95d7a911bbb946
+FileChecksum: SHA1: 13d9761a61f0035502cd6c111a14a2ebe5cf2ccf
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./float.asm
+SPDXID: SPDXRef-2d89ff9b63b1abf035fa5e4c2aa4844d
+FileChecksum: SHA1: 85b34777e3fd4881696c786c53a4a2b9b3ff31f9
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./linker.cmd
+SPDXID: SPDXRef-668d5e365a56b36ae0f87711fbc6b78b
+FileChecksum: SHA1: 2755dfc3ad6e0882df9021c89f517af11bd11089
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./printChar.asm
+SPDXID: SPDXRef-34ba492b6143316e695659743aa27145
+FileChecksum: SHA1: 73077706ffbf9a6d875a0a070b16a767afd94b1f
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./vectorTable.asm
+SPDXID: SPDXRef-a82a3097717e2ce54da8ade2858b6927
+FileChecksum: SHA1: 3addc7f7f9da4a6e38a65c35f9a4d570a938a31c
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+
+FileName: ./zone.asm
+SPDXID: SPDXRef-a00537fb4adb06776fe0bf6b04ca130d
+FileChecksum: SHA1: 701008928d80c0d594fa1cad94435fc755ba829a
+LicenseConcluded: NOASSERTION
+LicenseInfoInFile: MPL-2.0
+FileCopyrightText: SPDX-FileCopyrightText: (C) 2025 A.M. Rowsell
+