diff --git a/.gitignore b/.gitignore
index 7840e6a..42f9498 100644
--- a/.gitignore
+++ b/.gitignore
@@ -11,6 +11,10 @@ test-*.c
*.elf
*.S
+# CNAME STUFF
+*.yml
+CNAME
+
# Linker output
*.ilk
diff --git a/ChangeLog b/ChangeLog
index b019064..9410f1e 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,26 @@
-//----------------------------------------------------------------------------//
-// GNU GPL OS/K //
-// //
-// Authors: spectral` //
-// NeoX //
-// //
-// Desc: ChangeLog #1 //
-// From: 2018/12/06 //
-// UpTo: current //
-//----------------------------------------------------------------------------//
+#=----------------------------------------------------------------------------=#
+# GNU GPL OS/K #
+# #
+# Desc: Project ChangeLog #
+# #
+# #
+# Copyright © 2018-2019 The OS/K Team #
+# #
+# This file is part of OS/K. #
+# #
+# OS/K is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# any later version. #
+# #
+# OS/K is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY# without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with OS/K. If not, see . #
+#=----------------------------------------------------------------------------=#
2018/10/?? - Started talking about making our own OS
2018/11/?? - Name decided & creation of os-k.eu
diff --git a/ProjectTree b/ProjectTree
index 965face..586b9d7 100644
--- a/ProjectTree
+++ b/ProjectTree
@@ -1,107 +1,110 @@
-#------------------------------------------------------------------------------#
-# GNU GPL OS/K #
+#=----------------------------------------------------------------------------=#
+# GNU GPL OS/K #
# #
-# Authors: spectral` #
-# NeoX #
+# Desc: Project Tree #
# #
-# Desc: Project Tree #
-#------------------------------------------------------------------------------#
+# #
+# Copyright © 2018-2019 The OS/K Team #
+# #
+# This file is part of OS/K. #
+# #
+# OS/K is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# any later version. #
+# #
+# OS/K is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY# without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with OS/K. If not, see . #
+#=----------------------------------------------------------------------------=#
-src/
- |
- x COPYING
- x README.md
- x ChangeLog
- |
- - Makefile
- - Makefile.in
- |
- + boot/
- | |
- | x folder.desc
- | |
- | - mbr.asm
- | - mbr.inc
- | |
- | - loader.asm
- | - loader16.inc
- | - loader64.inc
- | |
- | 0
- |
- + kaleid/
- | |
- | + include/
- | | |
- | | - kaleid.h
- | | - kalkern.h
- | | |
- | | + common/
- | | | |
- | | | - kaldefs.h
- | | | - kaltypes.h
- | | | - kalerror.h
- | | | - kalassrt.h
- | | | - kallims.h
- | | | - kalmask.h
- | | | - kalcrt.h
- | | | |
- | | | 0
- | | |
- | | + kernel/
- | | | |
- | | | - kernbase.h
- | | | - kernlocks.h
- | | | - kernterm.h
- | | | |
- | | | 0
- | | 0
- | |
- | |
- | + kernel/
- | | |
- | | + init/
- | | | |
- | | | - init.c
- | | | |
- | | | 0
- | | |
- | | + ke/
- | | | |
- | | | - panic.c
- | | | - table.c
- | | | - terminal.c
- | | | |
- | | | 0
- | | 0
- | |
- | + common/
- | | |
- | | - status.c
- | | |
- | | - arith.c
- | | - rand.c
- | | |
- | | - atoi.c
- | | - itoa.c
- | | - strtol.c
- | | |
- | | - memory.c
- | | - string.c
- | | - sprintf.c
- | | |
- | | 0
- | 0
- |
- + build/
- | |
- | - preproc.h
- | - iddtool.h
- | |
- | - kernel.ld
- | |
- | + bin/
- | + obj/
- | |
- | 0
- 0
+
+
+.
+├── boot
+│ ├── loader
+│ │ ├── cpu
+│ │ │ ├── cpu.asm
+│ │ │ └── cpuid.asm
+│ │ ├── elf
+│ │ │ └── elf.c
+│ │ ├── fs
+│ │ │ └── fat.asm
+│ │ ├── io
+│ │ │ ├── ata.asm
+│ │ │ ├── lmmem.asm
+│ │ │ ├── lmterm.asm
+│ │ │ ├── rmmem.asm
+│ │ │ └── rmterm.asm
+│ │ └── loader.asm
+│ ├── mbr
+│ │ ├── mbr.asm
+│ │ └── mbr.inc
+│ └── folder.desc
+├── build
+│ ├── idttool.py
+│ ├── kernel.ld
+│ └── preproc.h
+├── kaleid
+│ ├── crtlib
+│ │ ├── arith.c
+│ │ ├── atoi.c
+│ │ ├── itoa.c
+│ │ ├── memory.c
+│ │ ├── rand.c
+│ │ ├── sprintf.c
+│ │ ├── status.c
+│ │ ├── string.c
+│ │ └── strtol.c
+│ ├── extras
+│ │ ├── argv.c
+│ │ └── prog.c
+│ ├── include
+│ │ ├── base
+│ │ │ ├── assert.h
+│ │ │ ├── bdefs.h
+│ │ │ ├── crtlib.h
+│ │ │ ├── errno.h
+│ │ │ ├── limits.h
+│ │ │ ├── masks.h
+│ │ │ └── types.h
+│ │ ├── extras
+│ │ │ ├── argv.h
+│ │ │ ├── list.h
+│ │ │ ├── locks.h
+│ │ │ ├── malloc.h
+│ │ │ └── prog.h
+│ │ ├── kernel
+│ │ │ ├── base.h
+│ │ │ ├── sched.h
+│ │ │ └── terminal.h
+│ │ ├── kalbase.h
+│ │ ├── kaleid.h
+│ │ ├── kalext.h
+│ │ └── kalkern.h
+│ └── kernel
+│ ├── init
+│ │ ├── init.c
+│ │ └── table.c
+│ ├── io
+│ │ ├── cursor.c
+│ │ ├── term.c
+│ │ └── vga.c
+│ ├── ke
+│ │ └── panic.c
+│ └── proc
+│ ├── Makefile
+│ └── sched.c
+├── AUTHORS
+├── ChangeLog
+├── COPYING
+├── Makefile
+├── Makefile.in
+├── ProjectTree
+└── Readme.md
+
+20 directories, 61 files
diff --git a/boot/folder.desc b/boot/folder.desc
index 6322bc3..fc76abf 100644
--- a/boot/folder.desc
+++ b/boot/folder.desc
@@ -1,11 +1,26 @@
----------------------------------------------------------------------
- GNU GPL OS/K
-
- Authors: spectral`
- NeoX
-
- Desc: Folder description - "boot"
----------------------------------------------------------------------
+#=----------------------------------------------------------------------------=#
+# GNU GPL OS/K #
+# #
+# Desc: Folder description - "boot" #
+# #
+# #
+# Copyright © 2018-2019 The OS/K Team #
+# #
+# This file is part of OS/K. #
+# #
+# OS/K is free software: you can redistribute it and/or modify #
+# it under the terms of the GNU General Public License as published by #
+# the Free Software Foundation, either version 3 of the License, or #
+# any later version. #
+# #
+# OS/K is distributed in the hope that it will be useful, #
+# but WITHOUT ANY WARRANTY# without even the implied warranty of #
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the #
+# GNU General Public License for more details. #
+# #
+# You should have received a copy of the GNU General Public License #
+# along with OS/K. If not, see . #
+#=----------------------------------------------------------------------------=#
This folder contains the source for OS/K's bootloader.
@@ -19,5 +34,5 @@ It is divided in two parts each of exactly 512 bytes:
The MBR must be placed precisely on the first sector of the hard drive.
- loader.s
- This is the Kernel Loader. XXX
+ This is the Kernel Loader. It switches to long mode and makes stuff.
diff --git a/boot/loader/cpu/cpu.asm b/boot/loader/cpu/cpu.asm
index e9b5274..b875758 100644
--- a/boot/loader/cpu/cpu.asm
+++ b/boot/loader/cpu/cpu.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic longmode CPU functions ;
-; (x86_64 architecture only) ;
+; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 64]
diff --git a/boot/loader/cpu/cpuid.asm b/boot/loader/cpu/cpuid.asm
index ac82eff..89c1bde 100644
--- a/boot/loader/cpu/cpuid.asm
+++ b/boot/loader/cpu/cpuid.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic realmode CPU Detection ;
-; (x86_64 architecture only) ;
+; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 16]
diff --git a/boot/loader/elf/elf.c b/boot/loader/elf/elf.c
index c30d834..fe48cde 100644
--- a/boot/loader/elf/elf.c
+++ b/boot/loader/elf/elf.c
@@ -1,10 +1,26 @@
-//----------------------------------------------------------------------------//
+//=--------------------------------------------------------------------------=//
// GNU GPL OS/K //
// //
-// Authors: spectral` //
-// NeoX //
-// //
// Desc: ELF64 Parser and Loader //
-//----------------------------------------------------------------------------//
+// (x86_64 architecture only) //
+// //
+// //
+// Copyright © 2018-2019 The OS/K Team //
+// //
+// This file is part of OS/K. //
+// //
+// OS/K is free software: you can redistribute it and/or modify //
+// it under the terms of the GNU General Public License as published by //
+// the Free Software Foundation, either version 3 of the License, or //
+// (at your option) any later version. //
+// //
+// OS/K is distributed in the hope that it will be useful, //
+// but WITHOUT ANY WARRANTY//without even the implied warranty of //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the //
+// GNU General Public License for more details. //
+// //
+// You should have received a copy of the GNU General Public License //
+// along with OS/K. If not, see . //
+//=--------------------------------------------------------------------------=//
int stub;
diff --git a/boot/loader/fs/fat.asm b/boot/loader/fs/fat.asm
index d9bca9b..978d7ed 100644
--- a/boot/loader/fs/fat.asm
+++ b/boot/loader/fs/fat.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic File Allocation Table Long mode Driver ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 64]
diff --git a/boot/loader/io/ata.asm b/boot/loader/io/ata.asm
index f075b7d..c37cfc6 100644
--- a/boot/loader/io/ata.asm
+++ b/boot/loader/io/ata.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic Read Only ATA Long mode Driver ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 64]
diff --git a/boot/loader/io/lmmem.asm b/boot/loader/io/lmmem.asm
index a82330e..e77e4c2 100644
--- a/boot/loader/io/lmmem.asm
+++ b/boot/loader/io/lmmem.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic Memory Long mode Functions ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 64]
diff --git a/boot/loader/io/lmterm.asm b/boot/loader/io/lmterm.asm
index 427ae89..c5805d8 100644
--- a/boot/loader/io/lmterm.asm
+++ b/boot/loader/io/lmterm.asm
@@ -1,13 +1,29 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic Colored VGA Terminal Long mode Driver ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
+
;;VIDEO
%define TRAM 0x0B8000 ; [T]ext[RAM]
%define VRAM 0x0A0000 ; [V]ideo[RAM]
diff --git a/boot/loader/io/rmmem.asm b/boot/loader/io/rmmem.asm
index 2348083..865b9a9 100644
--- a/boot/loader/io/rmmem.asm
+++ b/boot/loader/io/rmmem.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic Memory Realmode Driver ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 16]
diff --git a/boot/loader/io/rmterm.asm b/boot/loader/io/rmterm.asm
index 62f1b8a..275ff71 100644
--- a/boot/loader/io/rmterm.asm
+++ b/boot/loader/io/rmterm.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Basic realmode terminal functions ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
[BITS 16]
diff --git a/boot/loader/loader.asm b/boot/loader/loader.asm
index c67f038..6734aec 100644
--- a/boot/loader/loader.asm
+++ b/boot/loader/loader.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
; GNU GPL OS/K ;
; ;
-; Authors: spectral` ;
-; NeoX ;
-; ;
; Desc: Kernel (second stage) Loader for OS/K ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; (at your option) any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
%define DEBUG
@@ -242,4 +257,3 @@ main64:
jmp Die
-times 20 db 0
diff --git a/boot/mbr/mbr.asm b/boot/mbr/mbr.asm
index f94c713..1a08f74 100644
--- a/boot/mbr/mbr.asm
+++ b/boot/mbr/mbr.asm
@@ -1,11 +1,26 @@
;=----------------------------------------------------------------------------=;
-; GNU GPL OS/K ;
-; ;
-; Authors: spectral` ;
-; NeoX ;
+; GNU GPL OS/K ;
; ;
; Desc: Bootsector for OS/K ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
;; BOOT "SEGMENT"
diff --git a/boot/mbr/mbr.inc b/boot/mbr/mbr.inc
index a5f396d..b006cce 100644
--- a/boot/mbr/mbr.inc
+++ b/boot/mbr/mbr.inc
@@ -1,12 +1,28 @@
;=----------------------------------------------------------------------------=;
-; GNU GPL OS/K ;
-; ;
-; Authors: spectral` ;
-; NeoX ;
+; GNU GPL OS/K ;
; ;
; Desc: Bootsector for OS/K INCLUDED FUNCTIONS ;
; (x86_64 architecture only) ;
+; ;
+; ;
+; Copyright © 2018-2019 The OS/K Team ;
+; ;
+; This file is part of OS/K. ;
+; ;
+; OS/K is free software: you can redistribute it and/or modify ;
+; it under the terms of the GNU General Public License as published by ;
+; the Free Software Foundation, either version 3 of the License, or ;
+; any later version. ;
+; ;
+; OS/K is distributed in the hope that it will be useful, ;
+; but WITHOUT ANY WARRANTY; without even the implied warranty of ;
+; MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the ;
+; GNU General Public License for more details. ;
+; ;
+; You should have received a copy of the GNU General Public License ;
+; along with OS/K. If not, see . ;
;=----------------------------------------------------------------------------=;
+
[BITS 16]
read_clusters: