diff --git a/bin/crt0.s b/bin/crt0.s new file mode 100644 index 0000000..52d3550 --- /dev/null +++ b/bin/crt0.s @@ -0,0 +1,10 @@ +; file: crt0.s +; +[BITS 32] + +section .text + +.global _start +_start: + xor ebp, ebp + \ No newline at end of file diff --git a/bin/motd/main.pls b/bin/motd/main.pls new file mode 100644 index 0000000..07c5b58 --- /dev/null +++ b/bin/motd/main.pls @@ -0,0 +1,16 @@ +/* + * File: main.pls + */ + +/* + * Procedure: Motd + * Program entry point + */ +Motd: PROC OPTIONS(MAIN); + DCL in FILE; + OPEN FILE(in) TITLE('/etc/motd') INPUT; + DO ; + + END; + CLOSE FILE(in); +END; diff --git a/bin/motd/motd.txt b/bin/motd/motd.txt new file mode 100644 index 0000000..48ff758 --- /dev/null +++ b/bin/motd/motd.txt @@ -0,0 +1,10 @@ + _____ _ _ _ _____ _____ + / ___| | (_) | | _ / ___| + \ `--.| |_ _ _ _ __ _ __| | | | \ `--. + `--. \ __| | | | '_ \| |/ _` | | | |`--. \ + /\__/ / |_| |_| | |_) | | (_| \ \_/ /\__/ / + \____/ \__|\__,_| .__/|_|\__,_|\___/\____/ + | | + |_| v$(version) + +$(datetime) diff --git a/docs/config/Languages.txt b/docs/config/Languages.txt index afc8506..eb4644d 100644 --- a/docs/config/Languages.txt +++ b/docs/config/Languages.txt @@ -116,3 +116,12 @@ Format: 1.51 Alter Language: Assembly Add Extensions: s inc + + +Language: PL/S + + Extension: pls + Line Comment: // + Block Comment: /* */ + Function Prototype Ender: ; + Variable Prototype Enders: ; = diff --git a/docs/config/Menu.txt b/docs/config/Menu.txt index 208a3d8..8dbae40 100644 --- a/docs/config/Menu.txt +++ b/docs/config/Menu.txt @@ -38,6 +38,8 @@ Timestamp: Updated yyyy/mm/dd # -------------------------------------------------------------------------- +File: Introduction (docs/intro.txt) + Group: Kernel { File: head.s (kernel/head.s) @@ -45,14 +47,18 @@ Group: Kernel { File: idt.s (kernel/idt.s) File: multiboot.inc (kernel/multiboot.inc) File: pic.s (kernel/pic.s) - File: setup_paging (kernel/paging.s) + File: paging.s (no auto-title, kernel/paging.s) Group: Driver { File: serial.s (no auto-title, kernel/drivers/serial.s) } # Group: Driver - File: msg_en (kernel/debug/msg_en.s) + Group: Debug { + + File: msg_en (kernel/debug/msg_en.s) + } # Group: Debug + } # Group: Kernel Group: Lib { @@ -77,6 +83,12 @@ Group: Lib { File: ecdsa.s (lib/crypto/sign/ecdsa.s) } # Group: Lib +Group: Bin { + + File: crt0.s (bin/crt0.s) + File: main.pls (bin/motd/main.pls) + } # Group: Bin + Group: Index { Index: Everything @@ -85,5 +97,6 @@ Group: Index { Function Index: Functions Macro Index: Macros Variable Index: Variables + Class Index: Classes } # Group: Index diff --git a/docs/config/Topics.txt b/docs/config/Topics.txt new file mode 100644 index 0000000..2153090 --- /dev/null +++ b/docs/config/Topics.txt @@ -0,0 +1,81 @@ +Format: 1.51 + +# This is the Natural Docs topics file for this project. If you change anything +# here, it will apply to THIS PROJECT ONLY. If you'd like to change something +# for all your projects, edit the Topics.txt in Natural Docs' Config directory +# instead. + + +# If you'd like to prevent keywords from being recognized by Natural Docs, you +# can do it like this: +# Ignore Keywords: [keyword], [keyword], ... +# +# Or you can use the list syntax like how they are defined: +# Ignore Keywords: +# [keyword] +# [keyword], [plural keyword] +# ... + + +#------------------------------------------------------------------------------- +# SYNTAX: +# +# Topic Type: [name] +# Alter Topic Type: [name] +# Creates a new topic type or alters one from the main file. Each type gets +# its own index and behavior settings. Its name can have letters, numbers, +# spaces, and these charaters: - / . ' +# +# Plural: [name] +# Sets the plural name of the topic type, if different. +# +# Keywords: +# [keyword] +# [keyword], [plural keyword] +# ... +# Defines or adds to the list of keywords for the topic type. They may only +# contain letters, numbers, and spaces and are not case sensitive. Plural +# keywords are used for list topics. You can redefine keywords found in the +# main topics file. +# +# Index: [yes|no] +# Whether the topics get their own index. Defaults to yes. Everything is +# included in the general index regardless of this setting. +# +# Scope: [normal|start|end|always global] +# How the topics affects scope. Defaults to normal. +# normal - Topics stay within the current scope. +# start - Topics start a new scope for all the topics beneath it, +# like class topics. +# end - Topics reset the scope back to global for all the topics +# beneath it. +# always global - Topics are defined as global, but do not change the scope +# for any other topics. +# +# Class Hierarchy: [yes|no] +# Whether the topics are part of the class hierarchy. Defaults to no. +# +# Page Title If First: [yes|no] +# Whether the topic's title becomes the page title if it's the first one in +# a file. Defaults to no. +# +# Break Lists: [yes|no] +# Whether list topics should be broken into individual topics in the output. +# Defaults to no. +# +# Can Group With: [type], [type], ... +# Defines a list of topic types that this one can possibly be grouped with. +# Defaults to none. +#------------------------------------------------------------------------------- + +# The following topics are defined in the main file, if you'd like to alter +# their behavior or add keywords: +# +# Generic, Class, Interface, Section, File, Group, Function, Variable, +# Property, Type, Constant, Enumeration, Event, Delegate, Macro, +# Database, Database Table, Database View, Database Index, Database +# Cursor, Database Trigger, Cookie, Build Target + +# If you add something that you think would be useful to other developers +# and should be included in Natural Docs by default, please e-mail it to +# topics [at] naturaldocs [dot] org. diff --git a/docs/intro.txt b/docs/intro.txt new file mode 100644 index 0000000..4036bdd --- /dev/null +++ b/docs/intro.txt @@ -0,0 +1,32 @@ +File: Introduction + +About: StupidOS + +> _____ _ _ _ _____ _____ +> / ___| | (_) | | _ / ___| +> \ `--.| |_ _ _ _ __ _ __| | | | \ `--. +> `--. \ __| | | | '_ \| |/ _` | | | |`--. \ +> /\__/ / |_| |_| | |_) | | (_| \ \_/ /\__/ / +> \____/ \__|\__,_| .__/|_|\__,_|\___/\____/ +> | | +> |_| + +Donate: + +- +- +- Monero: 85cm3SuAs98dcqXcdiyCNz6hkb5fKwHbtJYr8cyFdAGWKgj8rG3kPENNv1BXVp2HsiaC8otTzxxaEEuUVZQFxrSr7eBY2uw +- Zcash: zs1sqsdn4acrqygvupmhwl5vvzcdjk6fd4p6n3k4nzdey0huq7cwkl2ca7dru8alhhtan47wjes0x9 +- Bitcoin: bc1qhpxa0hgj0mjstttkjgg6ees9dj5kadty04kgpp +- Oxen: LDrNKN6iXh98zUZbwa9iGmeuiWbrzU2WTKWwcwMYFSeCj2QACxfyFXNVQyN8QBe61bFgqtykTYpgcaWvf2C1K77KMQ82DaC +- Gridcoin: S8tw8EWXQ6p529kLEniCePceNAFTyc3GKM + +About: License + +StupidOS is a free (as in freedom) software and is licensed under the 3-Clause +BSD License. + + +The full text of the license can be accessed via + and is also +included in the license file of this software package. diff --git a/kernel/multiboot.inc b/kernel/multiboot.inc index 1bab118..1d82f06 100644 --- a/kernel/multiboot.inc +++ b/kernel/multiboot.inc @@ -1,6 +1,9 @@ ; file: multiboot.inc +; Structure: mb_info struc mb_info + + ; Field: flags .flags: resd 1 ;; flags[0] is set @@ -22,6 +25,8 @@ struc mb_info ;; flags[6] is set .mmap_length: resd 1 + ; Field: mmap_addr + ; see .mmap_addr: resd 1 ;; flags[7] is set @@ -54,6 +59,7 @@ struc mb_info .framebuffer_misc: resw 3 endstruc +; Structure: mb_mmap struc mb_mmap .size: resd 1 .addr: resq 1 diff --git a/lib/base.inc b/lib/base.inc index a2166da..2cf3a42 100644 --- a/lib/base.inc +++ b/lib/base.inc @@ -1,7 +1,13 @@ ; file: base.inc + extern log_impl ; macro: LOG +; +; example: +; (start code) +; LOG msg_boot_info, eax +; (end) %macro LOG 1-* %rep %0 %rotate -1