subverge

Source layout

The source tree, file by file. Internals describes how the parts fit together.

boot/

File What it is
boot.asm Multiboot header, page tables, long mode, the jump to kmain
mbr.asm the boot sector on installed disks
stage2.asm the second stage, which fakes Multiboot

See boot.

kernel/

File What it is
main.c kmain, which starts everything in order
cpu.c the IDT, the PICs, the PIT, the interrupt and fault handlers
sched.c the four tab tasks and the scheduler
mem.c the heap
vga.c text mode, the per-tab screens, the tab bar, the palette
font.c the omega, aleph and subscript characters
kbd.c the PS/2 keyboard
disk.c ATA PIO
persist.c install, save, the state header and the slots
line.c the prompt's line editor
omega.c the language: parsing, values, lookup, transactions, the GC
words.c the core built-in words
hw.c the machine words: memory, ports, PCI, screen, time
big.c bignums, the integers past 64 bits (numbers)
ord.c ordinals and cardinals
root.c root units, rebuilding them, open and unit
jit.c the JIT
dis.c the disassembler
help.c the help table and the docs check
scrawl.c the editor
calc.c calc, the infix calculator
sysinfo.c sys-c
lib.c string and memory functions, kprintf

root/

The omega programs, one unit per file, run in file name order. Root lists their contents.

test/

host.c and qdrive.c, and the .qd scripts. See testing.

Where to start reading

Start with kernel/main.c, which brings everything up in order, then read kernel/omega.c outwards from eval_line, which contains the language itself.