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: