From 2658c3aafbe0f287597f87c517ebaab8a0b4d3b3 Mon Sep 17 00:00:00 2001
From: SayoriOS Team | pimnik98
Date: Sun, 31 Dec 2023 16:32:59 +0300
Subject: [PATCH] =?UTF-8?q?=E2=9C=85=20=20[=D0=A1=D0=B1=D0=BE=D1=80=D0=BA?=
=?UTF-8?q?=D0=B0=201386]=20=D0=92=D1=8B=D0=BF=D1=83=D1=81=D0=BA=20=D1=80?=
=?UTF-8?q?=D0=B5=D0=BB=D0=B8=D0=B7=D0=B0=20SayoriOS=20Soul=20v0.3.4=20Lat?=
=?UTF-8?q?est?=
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
---
Makefile | 122 +-
README.MD | 23 +-
README.MD:Zone.Identifier | 3 +
config.mk | 258 +-
iso/boot/grub/background.tga | Bin 0 -> 54582 bytes
iso/boot/grub/grub.cfg | 52 +-
iso/boot/grub/theme.txt | 25 +
iso/boot/ramdisk | Bin 0 -> 1914880 bytes
iso/boot/sayori_sefs.img | Bin 4428931 -> 0 bytes
kernel/asm/gdt.s | 0
kernel/asm/init.s | 3 +-
kernel/asm/interrupt.s | 0
kernel/asm/link.ld | 0
kernel/asm/paging.s | 33 +
kernel/asm/regs.s | 0
kernel/asm/switch_task.s | 63 +-
kernel/asm/sys_calls.s | 0
kernel/asm/usr.s | 0
kernel/include/common.h | 33 +-
kernel/include/debug/hexview.h | 2 +-
kernel/include/debug/memmeter.h | 3 +
kernel/include/debug/ubsan.h | 2 +-
.../{gui => desktop}/parallel_desktop.h | 0
kernel/include/{gui => desktop}/render.h | 6 +-
kernel/include/{gui => desktop}/widget.h | 4 +-
.../include/{gui => desktop}/widget_button.h | 0
.../include/{gui => desktop}/widget_image.h | 12 +-
.../include/{gui => desktop}/widget_label.h | 11 +-
kernel/include/desktop/widget_progress.h | 13 +
kernel/include/{gui => desktop}/window.h | 18 +-
kernel/include/drv/atapi.h | 3 +-
kernel/include/drv/audio/ac97.h | 34 +-
kernel/include/drv/beeper.h | 2 +-
kernel/include/drv/cmos.h | 4 -
kernel/include/drv/disk/ahci.h | 304 +
kernel/include/drv/{ => disk}/ata.h | 80 +-
kernel/include/drv/disk/ata_dma.h | 15 +
kernel/include/drv/disk/dpm.h | 36 +
kernel/include/drv/disk/floppy.h | 9 +-
kernel/include/drv/disk/ndpm.h | 29 +
kernel/include/drv/input/keyboard.h | 3 +-
kernel/include/drv/pci.h | 97 +-
kernel/include/drv/psf.h | 1 +
kernel/include/drv/ramdisk.h | 56 -
kernel/include/drv/rtl8139.h | 14 +-
kernel/include/drv/vfs.h | 76 -
kernel/include/drv/vfs_new.h | 0
kernel/include/elf/elf.h | 15 +-
kernel/include/fmt/tga.h | 3 +-
kernel/include/fmt/wav.h | 11 +-
kernel/include/fs/fat32.h | 110 +
kernel/include/fs/fsm.h | 89 +
kernel/include/fs/iso9660.h | 67 +
kernel/include/fs/lucario/fs.h | 19 -
kernel/include/fs/lucario/structures.h | 37 -
kernel/include/fs/milla.h | 5 +-
kernel/include/fs/natfs.h | 13 +
kernel/include/fs/nvfs.h | 21 +
kernel/include/fs/sefs.h | 23 -
kernel/include/fs/smfs.h | 17 +-
kernel/include/fs/tarfs.h | 74 +
kernel/include/gui/circle.h | 2 +-
kernel/include/gui/line.h | 2 +-
kernel/include/gui/sayori_font_file.h | 53 -
kernel/include/io/duke_image.h | 44 -
kernel/include/io/ports.h | 89 +-
kernel/include/io/rgb_image.h | 12 +
kernel/include/io/screen.h | 47 +-
.../include/io/{port_io.h => serial_port.h} | 0
kernel/include/io/status_loggers.h | 8 -
kernel/include/io/status_sounds.h | 0
kernel/include/io/tty.h | 12 +-
kernel/include/io/vgafnt.h | 8 -
kernel/include/kernel.h | 34 +-
kernel/include/lib/dan.h | 24 -
kernel/include/lib/libstring/string.h | 30 +
kernel/include/lib/list.h | 0
kernel/include/lib/math.h | 4 +-
kernel/include/lib/php/explode.h | 6 +
kernel/include/lib/php/pathinfo.h | 9 +
kernel/include/lib/php/str_contains.h | 17 +
kernel/include/lib/php/str_replace.h | 5 +
kernel/include/lib/pixel.h | 19 +
kernel/include/lib/split.h | 4 +-
kernel/include/lib/sprintf.h | 1 -
kernel/include/lib/stdarg.h | 0
kernel/include/lib/stdio.h | 6 +-
kernel/include/lib/stdlib.h | 5 +-
kernel/include/lib/string.h | 17 +-
kernel/include/lib/utf_conversion.h | 7 +
kernel/include/mem/pmm.h | 66 +
kernel/include/mem/vmm.h | 51 +
kernel/include/multiboot.h | 0
kernel/include/net/arp.h | 3 +-
kernel/include/net/cards.h | 3 +-
kernel/include/net/dhcp.h | 28 +
kernel/include/net/ethernet.h | 131 +-
kernel/include/net/icmp.h | 5 +
kernel/include/net/ipv4.h | 13 +
kernel/include/net/udp.h | 14 +
kernel/include/portability.h | 112 +
kernel/include/rust_header.h | 7 -
kernel/include/rust_headers.h | 6 +
kernel/include/sys/acpi.h | 2 +-
kernel/include/sys/cpu_isr.h | 0
kernel/include/sys/cpuid.h | 7 +-
kernel/include/sys/cpuinfo.h | 0
kernel/include/sys/descriptor_tables.h | 0
kernel/include/sys/isr.h | 0
kernel/include/sys/memory.h | 156 -
kernel/include/sys/mtrr.h | 9 +
kernel/include/sys/scheduler.h | 11 +-
kernel/include/sys/status.h | 16 +
kernel/include/sys/sync.h | 0
kernel/include/sys/syscalls.h | 38 +-
kernel/include/sys/timer.h | 13 +-
kernel/include/sys/v8086.h | 2 -
kernel/include/sys/variable.h | 11 +
kernel/include/user/env.h | 44 +-
kernel/include/version.h | 12 +
kernel/src/compress/zlib/README_IMPORTANT.txt | 11 -
kernel/src/compress/zlib/adler32.c | 164 -
kernel/src/compress/zlib/compress.c | 75 -
kernel/src/compress/zlib/crc32.c | 1049 -
kernel/src/compress/zlib/deflate.c | 2135 -
kernel/src/compress/zlib/inffast.c | 320 -
kernel/src/compress/zlib/inflate.c | 1527 -
kernel/src/compress/zlib/inftrees.c | 299 -
kernel/src/compress/zlib/trees.c | 1117 -
kernel/src/compress/zlib/uncompr.c | 85 -
kernel/src/compress/zlib/zutil.c | 301 -
kernel/src/debug/hexview.c | 19 +-
kernel/src/debug/memmeter.c | 24 +
kernel/src/desktop/eki.c | 59 +
.../src/{gui => desktop}/parallel_desktop.c | 150 +-
kernel/src/{gui => desktop}/render.c | 113 +-
kernel/src/{gui => desktop}/widget.c | 8 +-
kernel/src/{gui => desktop}/widget_button.c | 6 +-
kernel/src/desktop/widget_image.c | 73 +
kernel/src/{gui => desktop}/widget_label.c | 18 +-
kernel/src/desktop/widget_progress.c | 42 +
kernel/src/{gui => desktop}/window.c | 143 +-
kernel/src/drv/ata_dma.c | 127 -
kernel/src/drv/audio/ac97.c | 248 +-
kernel/src/drv/beeper.c | 225 +-
kernel/src/drv/cmos.c | 14 +-
kernel/src/drv/disk/ahci.c | 642 +
kernel/src/drv/disk/ata.c | 339 +-
kernel/src/drv/disk/ata_dma.c | 472 +
kernel/src/drv/disk/atapi.c | 83 +-
kernel/src/drv/disk/dpm.c | 260 +
kernel/src/drv/disk/floppy.c | 120 +-
kernel/src/drv/disk/initrd.c | 71 +
kernel/src/drv/disk/mbr.c | 7 +-
kernel/src/drv/disk/ndpm.c | 48 +
kernel/src/drv/fpu.c | 7 +-
kernel/src/drv/input/keyboard.c | 102 +-
kernel/src/drv/input/mouse.c | 82 +-
kernel/src/drv/pci.c | 172 +-
kernel/src/drv/psf.c | 14 +-
kernel/src/drv/rtl8139.c | 127 +-
kernel/src/drv/vfs_new.c | 414 -
kernel/src/drv/video/vbe.c | 2 +-
kernel/src/extra/cli.c | 491 +
kernel/src/extra/texplorer.c | 90 +-
kernel/src/extra/tshell.c | 4 +-
kernel/src/fmt/tga.c | 19 +-
kernel/src/fmt/tga_extract.c | 345 +-
kernel/src/fs/NatSuki.c | 83 +-
kernel/src/fs/fat12.c | 2 +-
kernel/src/fs/fat32.c | 301 +
kernel/src/fs/fsm.c | 246 +
kernel/src/fs/iso9660.c | 123 +
kernel/src/fs/lucario/fs.c | 146 -
kernel/src/fs/milla.c | 12 -
kernel/src/fs/natfs.c | 171 +
kernel/src/fs/nullfs.c | 44 +
kernel/src/fs/nvfs.c | 140 +
kernel/src/fs/sefs.c | 400 -
kernel/src/fs/smfs.c | 515 +-
kernel/src/fs/tarfs.c | 279 +
kernel/src/gui/basics.c | 12 +-
kernel/src/gui/circle.c | 3 +-
kernel/src/gui/eki.c | 23 -
kernel/src/gui/line.c | 7 +-
kernel/src/gui/widget_image.c | 58 -
kernel/src/io/duke_image.c | 281 -
kernel/src/io/ports.c | 97 +-
kernel/src/io/rgb_image.c | 83 +
kernel/src/io/screen.c | 144 +-
kernel/src/io/{port_io.c => serial_port.c} | 170 +-
kernel/src/io/shell.c | 1066 -
kernel/src/io/status_loggers.c | 1 -
kernel/src/io/status_sounds.c | 2 +-
kernel/src/io/tty.c | 399 +-
kernel/src/kernel.c | 512 +-
kernel/src/lib/base64.c | 6 +-
kernel/src/lib/dan.c | 52 -
kernel/src/lib/duk_config.h | 3778 +
kernel/src/lib/duktape.c | 101351 +++++++++++++++
kernel/src/lib/duktape.h | 1456 +
kernel/src/lib/elk/elk.c | 1616 +
kernel/src/lib/elk/elk.h | 182 +
kernel/src/lib/elk/elk_config.h | 10 +
kernel/src/lib/elk/elk_engine.c | 161 +
kernel/src/lib/elk/elk_libs.c | 177 +
kernel/src/lib/elk/ext/jse_array.c | 707 +
kernel/src/lib/elk/ext/jse_array.h | 62 +
kernel/src/lib/elk/ext/jse_canvas.c | 234 +
kernel/src/lib/elk/ext/jse_canvas.h | 30 +
kernel/src/lib/elk/ext/jse_event.c | 177 +
kernel/src/lib/elk/ext/jse_event.h | 11 +
kernel/src/lib/elk/ext/jse_function.h | 24 +
kernel/src/lib/elk/jse_func.c | 253 +
kernel/src/lib/freeada/ada.c | 310 +
kernel/src/lib/freeada/ada.h | 41 +
kernel/src/lib/libstring/include/string.h | 30 +
kernel/src/lib/libstring/src/string.c | 241 +
kernel/src/lib/libvector/include/vector.h | 33 +
kernel/src/lib/libvector/src/vector.c | 173 +
kernel/src/lib/list.c | 2 +-
kernel/src/lib/math/modf.c | 8 +
kernel/src/lib/php/explode.c | 55 +
kernel/src/lib/php/pathinfo.c | 71 +
kernel/src/lib/php/str_replace.c | 16 +-
kernel/src/lib/pixel.c | 224 +-
kernel/src/lib/rand.c | 2 +-
kernel/src/lib/split.c | 32 +-
kernel/src/lib/sprintf.c | 62 +-
kernel/src/lib/stdio.c | 137 +-
kernel/src/lib/string.c | 470 +-
kernel/src/lib/tui.c | 27 +-
kernel/src/lib/utf_conversion.c | 44 +
kernel/src/mem/pmm.c | 548 +
kernel/src/mem/vmm.c | 421 +
kernel/src/net/arp.c | 71 +-
kernel/src/net/cards.c | 14 +-
kernel/src/net/dhcp.c | 176 +
kernel/src/net/ethernet.c | 114 +-
kernel/src/net/icmp.c | 7 +
kernel/src/net/ipv4.c | 108 +
kernel/src/net/net_info_cli.c | 38 +
kernel/src/net/udp.c | 44 +
kernel/src/ports/gameboy/portability.h | 7 -
kernel/src/ports/gameboy/rom.c | 10 +-
kernel/src/ports/gameboy/sdl.c | 13 +-
kernel/src/sys/acpi.c | 55 +-
kernel/src/sys/bootscreen.c | 29 +-
kernel/src/sys/cpu_isr.c | 146 +-
kernel/src/sys/cpuid.c | 23 +-
kernel/src/sys/cpuinfo.c | 217 +-
kernel/src/sys/elf.c | 150 +-
kernel/src/sys/gdt.c | 15 +-
kernel/src/sys/idt.c | 10 +-
kernel/src/sys/isr.c | 16 +-
kernel/src/sys/logo.c | 30 +-
kernel/src/sys/memory.c | 858 -
kernel/src/sys/mtrr.c | 94 +
kernel/src/sys/scheduler.c | 100 +-
kernel/src/sys/sync.c | 10 +-
kernel/src/sys/syscalls.c | 182 +-
kernel/src/sys/system.c | 21 +-
kernel/src/sys/testing.c | 3 +-
kernel/src/sys/timer.c | 34 +-
kernel/src/sys/trigger.c | 110 +-
kernel/src/sys/tss.c | 10 +-
kernel/src/sys/unwind.c | 18 +-
kernel/src/sys/variable.c | 78 +
kernel/src/toys/calendar.c | 2 +-
kernel/src/toys/danview.c | 68 -
kernel/src/toys/dino.c | 5 +-
kernel/src/toys/diskctl.c | 3 +-
kernel/src/toys/gfxbench.c | 52 +
kernel/src/toys/mala.c | 4 +-
kernel/src/toys/minesweeper/Flag.c | 42 -
kernel/src/toys/minesweeper/Flag.piskel | 1 -
kernel/src/toys/minesweeper/Mine.c | 42 -
kernel/src/toys/minesweeper/Mine.piskel | 1 -
kernel/src/toys/minesweeper/Nums.c | 316 -
kernel/src/toys/minesweeper/Nums.piskel | 1 -
kernel/src/toys/miniplay.c | 128 +
kernel/src/toys/pavi.c | 31 +
kernel/src/user/env.c | 57 +-
kernel/src/zlibtest.c | 98 -
other/41_sayori | 11 -
other/compiler.sh | 16 -
other/llvm.sh | 165 -
ramdisk/Sayori/Fonts/UniCyrX-ibm-8x16.psf | Bin 0 -> 5376 bytes
ramdisk/Sayori/JSE/canvas.js | 11 +
ramdisk/Sayori/JSE/console.js | 17 +
ramdisk/Sayori/JSE/system.js | 5 +
ramdisk/Sayori/Temp/test.txt | 2 +
ramdisk/Sayori/bg.tga | Bin 0 -> 808191 bytes
ramdisk/Sayori/demo.boost.txt | 1 +
ramdisk/Sayori/motd | 2 +
ramdisk/Sayori/p.txt | 1 +
ramdisk/ada/test.ada | 5 +
ramdisk/eao | Bin 0 -> 17520 bytes
ramdisk/jse/array.js | 24 +
ramdisk/jse/canvas.js | 13 +
ramdisk/jse/console.js | 25 +
ramdisk/jse/draw.js | 6 +
ramdisk/jse/event.js | 48 +
ramdisk/jse/for.js | 4 +
ramdisk/jse/if.js | 25 +
ramdisk/jse/libs.js | 23 +
ramdisk/jse/note.txt | 34 +
ramdisk/jse/sum.js | 8 +
ramdisk/jse/test_path.js | 8 +
ramdisk/pkm.gb | Bin 0 -> 1048576 bytes
...0\260\320\271\320\273\320\265 pkm.gb .txt" | 14 +
rust/Cargo.lock | 33 -
rust/Cargo.toml | 9 +-
rust/src/lib.rs | 40 +-
rust/src/other/mod.rs | 1 +
rust/src/other/tinyada/mod.rs | 154 +
rust/src/std/fs.rs | 57 +
rust/src/std/io/mod.rs | 113 +
rust/src/std/io/rgb_image.rs | 53 +
rust/src/std/lib/mod.rs | 1 +
rust/src/std/lib/pixel.rs | 78 +
rust/src/std/mm/allocator.rs | 27 +
rust/src/std/mm/mod.rs | 1 +
rust/src/std/mod.rs | 5 +
rust/src/std/tty.rs | 47 +
rust/targets/i686-unknown-none.json | 6 +-
tools/compiler.sh | 40 +
tools/genmap.sh | 2 +-
tools/grub.sh | 8 +
329 files changed, 122892 insertions(+), 15908 deletions(-)
create mode 100644 README.MD:Zone.Identifier
create mode 100644 iso/boot/grub/background.tga
mode change 100755 => 100644 iso/boot/grub/grub.cfg
create mode 100644 iso/boot/grub/theme.txt
create mode 100644 iso/boot/ramdisk
delete mode 100644 iso/boot/sayori_sefs.img
mode change 100755 => 100644 kernel/asm/gdt.s
mode change 100755 => 100644 kernel/asm/init.s
mode change 100755 => 100644 kernel/asm/interrupt.s
mode change 100755 => 100644 kernel/asm/link.ld
create mode 100644 kernel/asm/paging.s
mode change 100755 => 100644 kernel/asm/regs.s
mode change 100755 => 100644 kernel/asm/switch_task.s
mode change 100755 => 100644 kernel/asm/sys_calls.s
mode change 100755 => 100644 kernel/asm/usr.s
mode change 100755 => 100644 kernel/include/common.h
create mode 100644 kernel/include/debug/memmeter.h
rename kernel/include/{gui => desktop}/parallel_desktop.h (100%)
rename kernel/include/{gui => desktop}/render.h (77%)
rename kernel/include/{gui => desktop}/widget.h (83%)
rename kernel/include/{gui => desktop}/widget_button.h (100%)
rename kernel/include/{gui => desktop}/widget_image.h (59%)
rename kernel/include/{gui => desktop}/widget_label.h (53%)
create mode 100644 kernel/include/desktop/widget_progress.h
rename kernel/include/{gui => desktop}/window.h (68%)
mode change 100755 => 100644 kernel/include/drv/beeper.h
mode change 100755 => 100644 kernel/include/drv/cmos.h
create mode 100644 kernel/include/drv/disk/ahci.h
rename kernel/include/drv/{ => disk}/ata.h (53%)
create mode 100644 kernel/include/drv/disk/ata_dma.h
create mode 100644 kernel/include/drv/disk/dpm.h
create mode 100644 kernel/include/drv/disk/ndpm.h
mode change 100755 => 100644 kernel/include/drv/input/keyboard.h
delete mode 100755 kernel/include/drv/ramdisk.h
delete mode 100755 kernel/include/drv/vfs.h
mode change 100755 => 100644 kernel/include/drv/vfs_new.h
mode change 100755 => 100644 kernel/include/elf/elf.h
create mode 100644 kernel/include/fs/fat32.h
create mode 100644 kernel/include/fs/fsm.h
create mode 100644 kernel/include/fs/iso9660.h
delete mode 100644 kernel/include/fs/lucario/fs.h
delete mode 100644 kernel/include/fs/lucario/structures.h
create mode 100644 kernel/include/fs/natfs.h
create mode 100644 kernel/include/fs/nvfs.h
delete mode 100755 kernel/include/fs/sefs.h
create mode 100644 kernel/include/fs/tarfs.h
delete mode 100644 kernel/include/gui/sayori_font_file.h
delete mode 100755 kernel/include/io/duke_image.h
mode change 100755 => 100644 kernel/include/io/ports.h
create mode 100644 kernel/include/io/rgb_image.h
rename kernel/include/io/{port_io.h => serial_port.h} (100%)
mode change 100755 => 100644 kernel/include/io/status_sounds.h
mode change 100755 => 100644 kernel/include/io/tty.h
delete mode 100755 kernel/include/io/vgafnt.h
mode change 100755 => 100644 kernel/include/kernel.h
delete mode 100644 kernel/include/lib/dan.h
create mode 100644 kernel/include/lib/libstring/string.h
mode change 100755 => 100644 kernel/include/lib/list.h
create mode 100644 kernel/include/lib/php/explode.h
create mode 100644 kernel/include/lib/php/pathinfo.h
create mode 100644 kernel/include/lib/php/str_contains.h
create mode 100644 kernel/include/lib/php/str_replace.h
create mode 100644 kernel/include/lib/pixel.h
mode change 100755 => 100644 kernel/include/lib/stdarg.h
mode change 100755 => 100644 kernel/include/lib/stdio.h
mode change 100755 => 100644 kernel/include/lib/stdlib.h
create mode 100644 kernel/include/lib/utf_conversion.h
create mode 100644 kernel/include/mem/pmm.h
create mode 100644 kernel/include/mem/vmm.h
mode change 100755 => 100644 kernel/include/multiboot.h
create mode 100644 kernel/include/net/dhcp.h
create mode 100644 kernel/include/net/icmp.h
create mode 100644 kernel/include/net/ipv4.h
create mode 100644 kernel/include/net/udp.h
create mode 100644 kernel/include/portability.h
delete mode 100644 kernel/include/rust_header.h
create mode 100644 kernel/include/rust_headers.h
mode change 100755 => 100644 kernel/include/sys/cpu_isr.h
mode change 100755 => 100644 kernel/include/sys/cpuinfo.h
mode change 100755 => 100644 kernel/include/sys/descriptor_tables.h
mode change 100755 => 100644 kernel/include/sys/isr.h
delete mode 100755 kernel/include/sys/memory.h
create mode 100644 kernel/include/sys/mtrr.h
mode change 100755 => 100644 kernel/include/sys/scheduler.h
create mode 100644 kernel/include/sys/status.h
mode change 100755 => 100644 kernel/include/sys/sync.h
mode change 100755 => 100644 kernel/include/sys/syscalls.h
mode change 100755 => 100644 kernel/include/sys/timer.h
create mode 100644 kernel/include/sys/variable.h
create mode 100644 kernel/include/version.h
delete mode 100644 kernel/src/compress/zlib/README_IMPORTANT.txt
delete mode 100644 kernel/src/compress/zlib/adler32.c
delete mode 100644 kernel/src/compress/zlib/compress.c
delete mode 100644 kernel/src/compress/zlib/crc32.c
delete mode 100644 kernel/src/compress/zlib/deflate.c
delete mode 100644 kernel/src/compress/zlib/inffast.c
delete mode 100644 kernel/src/compress/zlib/inflate.c
delete mode 100644 kernel/src/compress/zlib/inftrees.c
delete mode 100644 kernel/src/compress/zlib/trees.c
delete mode 100644 kernel/src/compress/zlib/uncompr.c
delete mode 100644 kernel/src/compress/zlib/zutil.c
create mode 100644 kernel/src/debug/memmeter.c
create mode 100644 kernel/src/desktop/eki.c
rename kernel/src/{gui => desktop}/parallel_desktop.c (51%)
rename kernel/src/{gui => desktop}/render.c (66%)
rename kernel/src/{gui => desktop}/widget.c (90%)
rename kernel/src/{gui => desktop}/widget_button.c (95%)
create mode 100644 kernel/src/desktop/widget_image.c
rename kernel/src/{gui => desktop}/widget_label.c (71%)
create mode 100644 kernel/src/desktop/widget_progress.c
rename kernel/src/{gui => desktop}/window.c (57%)
delete mode 100644 kernel/src/drv/ata_dma.c
mode change 100755 => 100644 kernel/src/drv/beeper.c
mode change 100755 => 100644 kernel/src/drv/cmos.c
create mode 100644 kernel/src/drv/disk/ahci.c
create mode 100644 kernel/src/drv/disk/ata_dma.c
create mode 100644 kernel/src/drv/disk/dpm.c
create mode 100644 kernel/src/drv/disk/initrd.c
create mode 100644 kernel/src/drv/disk/ndpm.c
mode change 100755 => 100644 kernel/src/drv/input/keyboard.c
delete mode 100755 kernel/src/drv/vfs_new.c
create mode 100644 kernel/src/extra/cli.c
create mode 100644 kernel/src/fs/fat32.c
create mode 100644 kernel/src/fs/fsm.c
create mode 100644 kernel/src/fs/iso9660.c
delete mode 100644 kernel/src/fs/lucario/fs.c
delete mode 100644 kernel/src/fs/milla.c
create mode 100644 kernel/src/fs/natfs.c
create mode 100644 kernel/src/fs/nullfs.c
create mode 100644 kernel/src/fs/nvfs.c
delete mode 100755 kernel/src/fs/sefs.c
create mode 100644 kernel/src/fs/tarfs.c
delete mode 100644 kernel/src/gui/eki.c
delete mode 100644 kernel/src/gui/widget_image.c
delete mode 100755 kernel/src/io/duke_image.c
mode change 100755 => 100644 kernel/src/io/ports.c
create mode 100644 kernel/src/io/rgb_image.c
rename kernel/src/io/{port_io.c => serial_port.c} (65%)
delete mode 100755 kernel/src/io/shell.c
mode change 100755 => 100644 kernel/src/io/tty.c
mode change 100755 => 100644 kernel/src/kernel.c
mode change 100755 => 100644 kernel/src/lib/base64.c
delete mode 100644 kernel/src/lib/dan.c
create mode 100644 kernel/src/lib/duk_config.h
create mode 100644 kernel/src/lib/duktape.c
create mode 100644 kernel/src/lib/duktape.h
create mode 100644 kernel/src/lib/elk/elk.c
create mode 100644 kernel/src/lib/elk/elk.h
create mode 100644 kernel/src/lib/elk/elk_config.h
create mode 100644 kernel/src/lib/elk/elk_engine.c
create mode 100644 kernel/src/lib/elk/elk_libs.c
create mode 100644 kernel/src/lib/elk/ext/jse_array.c
create mode 100644 kernel/src/lib/elk/ext/jse_array.h
create mode 100644 kernel/src/lib/elk/ext/jse_canvas.c
create mode 100644 kernel/src/lib/elk/ext/jse_canvas.h
create mode 100644 kernel/src/lib/elk/ext/jse_event.c
create mode 100644 kernel/src/lib/elk/ext/jse_event.h
create mode 100644 kernel/src/lib/elk/ext/jse_function.h
create mode 100644 kernel/src/lib/elk/jse_func.c
create mode 100644 kernel/src/lib/freeada/ada.c
create mode 100644 kernel/src/lib/freeada/ada.h
create mode 100644 kernel/src/lib/libstring/include/string.h
create mode 100644 kernel/src/lib/libstring/src/string.c
create mode 100644 kernel/src/lib/libvector/include/vector.h
create mode 100644 kernel/src/lib/libvector/src/vector.c
mode change 100755 => 100644 kernel/src/lib/list.c
create mode 100644 kernel/src/lib/math/modf.c
create mode 100644 kernel/src/lib/php/explode.c
create mode 100644 kernel/src/lib/php/pathinfo.c
mode change 100755 => 100644 kernel/src/lib/split.c
mode change 100755 => 100644 kernel/src/lib/stdio.c
mode change 100755 => 100644 kernel/src/lib/string.c
create mode 100644 kernel/src/lib/utf_conversion.c
create mode 100644 kernel/src/mem/pmm.c
create mode 100644 kernel/src/mem/vmm.c
create mode 100644 kernel/src/net/dhcp.c
create mode 100644 kernel/src/net/icmp.c
create mode 100644 kernel/src/net/ipv4.c
create mode 100644 kernel/src/net/net_info_cli.c
create mode 100644 kernel/src/net/udp.c
delete mode 100644 kernel/src/ports/gameboy/portability.h
mode change 100755 => 100644 kernel/src/sys/bootscreen.c
mode change 100755 => 100644 kernel/src/sys/cpu_isr.c
mode change 100755 => 100644 kernel/src/sys/cpuinfo.c
mode change 100755 => 100644 kernel/src/sys/elf.c
mode change 100755 => 100644 kernel/src/sys/gdt.c
mode change 100755 => 100644 kernel/src/sys/idt.c
mode change 100755 => 100644 kernel/src/sys/isr.c
delete mode 100755 kernel/src/sys/memory.c
create mode 100644 kernel/src/sys/mtrr.c
mode change 100755 => 100644 kernel/src/sys/scheduler.c
mode change 100755 => 100644 kernel/src/sys/sync.c
mode change 100755 => 100644 kernel/src/sys/syscalls.c
mode change 100755 => 100644 kernel/src/sys/system.c
mode change 100755 => 100644 kernel/src/sys/timer.c
mode change 100755 => 100644 kernel/src/sys/tss.c
create mode 100644 kernel/src/sys/variable.c
delete mode 100644 kernel/src/toys/danview.c
create mode 100644 kernel/src/toys/gfxbench.c
delete mode 100644 kernel/src/toys/minesweeper/Flag.c
delete mode 100644 kernel/src/toys/minesweeper/Flag.piskel
delete mode 100644 kernel/src/toys/minesweeper/Mine.c
delete mode 100644 kernel/src/toys/minesweeper/Mine.piskel
delete mode 100644 kernel/src/toys/minesweeper/Nums.c
delete mode 100644 kernel/src/toys/minesweeper/Nums.piskel
create mode 100644 kernel/src/toys/miniplay.c
create mode 100644 kernel/src/toys/pavi.c
delete mode 100644 kernel/src/zlibtest.c
delete mode 100755 other/41_sayori
delete mode 100644 other/compiler.sh
delete mode 100755 other/llvm.sh
create mode 100644 ramdisk/Sayori/Fonts/UniCyrX-ibm-8x16.psf
create mode 100644 ramdisk/Sayori/JSE/canvas.js
create mode 100644 ramdisk/Sayori/JSE/console.js
create mode 100644 ramdisk/Sayori/JSE/system.js
create mode 100644 ramdisk/Sayori/Temp/test.txt
create mode 100644 ramdisk/Sayori/bg.tga
create mode 100644 ramdisk/Sayori/demo.boost.txt
create mode 100644 ramdisk/Sayori/motd
create mode 100644 ramdisk/Sayori/p.txt
create mode 100644 ramdisk/ada/test.ada
create mode 100644 ramdisk/eao
create mode 100644 ramdisk/jse/array.js
create mode 100644 ramdisk/jse/canvas.js
create mode 100644 ramdisk/jse/console.js
create mode 100644 ramdisk/jse/draw.js
create mode 100644 ramdisk/jse/event.js
create mode 100644 ramdisk/jse/for.js
create mode 100644 ramdisk/jse/if.js
create mode 100644 ramdisk/jse/libs.js
create mode 100644 ramdisk/jse/note.txt
create mode 100644 ramdisk/jse/sum.js
create mode 100644 ramdisk/jse/test_path.js
create mode 100644 ramdisk/pkm.gb
create mode 100644 "ramdisk/\320\276 \321\204\320\260\320\271\320\273\320\265 pkm.gb .txt"
create mode 100644 rust/src/other/mod.rs
create mode 100644 rust/src/other/tinyada/mod.rs
create mode 100644 rust/src/std/fs.rs
create mode 100644 rust/src/std/io/mod.rs
create mode 100644 rust/src/std/io/rgb_image.rs
create mode 100644 rust/src/std/lib/mod.rs
create mode 100644 rust/src/std/lib/pixel.rs
create mode 100644 rust/src/std/mm/allocator.rs
create mode 100644 rust/src/std/mm/mod.rs
create mode 100644 rust/src/std/mod.rs
create mode 100644 rust/src/std/tty.rs
create mode 100644 tools/compiler.sh
create mode 100644 tools/grub.sh
diff --git a/Makefile b/Makefile
index df0de645d..86d692dff 100755
--- a/Makefile
+++ b/Makefile
@@ -18,15 +18,15 @@ $(OBJ_DIRECTORY)/%.o : %.s | $(OBJ_DIRECTORY)
$(OBJ_DIRECTORY)/%.o : %.c | $(OBJ_DIRECTORY)
@echo -e '\x1b[32mC \x1b[0m' $@
- @$(CC) $(CFLAGS) -O0 -c -o $@ $<
+ @$(CC) $(CFLAGS) -c -o $@ $<
$(OBJ_DIRECTORY)/%.o : %.cpp | $(OBJ_DIRECTORY)
@echo -e '\x1b[32mCPP \x1b[0m' $@
@$(CXX) $(CPP_FLAGS) -c -o $@ $<
build_rust:
- @echo -e '\x1b[32mRUST \x1b[0mBuild rust kernel'
- cd $(RUST_DIR) && rustup override set nightly && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu && cargo build
+ @echo -e '\x1b[32mRUST \x1b[0mBuilding Rust subsystem'
+ cd rust && rustup override set nightly && rustup component add rust-src --toolchain nightly-x86_64-unknown-linux-gnu && cargo +nightly build
# Сборка ядра
build: $(SOURCES)
@@ -50,16 +50,34 @@ run_remote_mon:
run_ahci_sata:
$(QEMU) $(QEMU_FLAGS) -serial mon:stdio \
- -drive id=disk,file=disk.img,if=none \
-device ahci,id=ahci \
- -device ide-hd,drive=disk,bus=ahci.0
+ -drive id=thatdisk,file=disk.img,if=none \
+ -device ide-hd,drive=thatdisk,bus=ahci.0 \
+ -drive id=thatcdrom,file=/dev/cdrom,if=none \
+ -device ide-cd,drive=thatcdrom,bus=ahci.1 \
+ # -trace "ahci*" \
+
+run_disks:
+ $(QEMU) $(QEMU_FLAGS) -serial mon:stdio -hda disk1.img -hdb disk2.img -hdd disk3.img
+
+bra:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @$(MAKE) run_ahci_sata
+
+disks:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @$(MAKE) run_disks
# Запуск Milla
milla:
- qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -serial tcp:127.0.0.1:64552,server,nowait -accel kvm -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime -soundhw pcspk
+ qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -serial telnet:sayorios.piminoff.ru:10000 -accel kvm -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime -soundhw pcspk
floppy:
- qemu-system-i386 -cdrom kernel.iso -serial file:Qemu.log -m 128M -name "SayoriOS v0.3.x (Dev)" -d guest_errors -rtc base=localtime -fda floppy.img -boot order=dc
+ qemu-system-i386 -cdrom kernel.iso -serial mon:stdio -m 64M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime -fda floppy.img -boot order=dc -accel kvm
# Запуск с логами в консоль
runlive:
@@ -68,48 +86,52 @@ runlive:
# Запуск в режиме UEFI с логами в файл
uefi:
qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd -cdrom SayoriOS_UEFI.iso -serial file:Qemu.log -accel kvm \
- -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime
+ -m 128M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime
# Запуск в режиме UEFI с логами в консоль
uefilive:
qemu-system-x86_64 -bios /usr/share/qemu/OVMF.fd -cdrom SayoriOS_UEFI.iso -serial mon:stdio -accel kvm \
- -m 128M -name "SayoriOS Soul" -d guest_errors -rtc base=localtime
+ -m 128M -name "SayoriOS v0.3.4 Soul - Scythe" -d guest_errors -rtc base=localtime
# Генерация ISO-файла
geniso: $(KERNEL)
- grub2-mkrescue -o "kernel.iso" iso/ -V kernel
+ $(shell bash tools/grub.sh) -o "kernel.iso" iso/ -V kernel
# Генерация ISO-файла с поддержкой UEFI
genuefi:
- grub2-mkrescue -d /usr/lib/grub/x86_64-efi -o SayoriOS_UEFI.iso iso/ --locale-directory=/usr/share/locale/ -V "SayoriOS Soul"
+ $(shell bash tools/grub.sh) -d /usr/lib/grub/x86_64-efi -o SayoriOS_UEFI.iso iso/ --locale-directory=/usr/share/locale/ -V "SayoriOS v0.3.4 Soul - Scythe"
# Удаление оригинального файла и *.о файлов
clean:
-rm -f $(KERNEL)
-rm -f $(KERNEL_NEED)
-rm -f $(DEPS)
+ -rm -f iso/boot/ramdisk
-rm -f $(RUST_OBJ_DEBUG)
-rm -f $(RUST_OBJ_RELEASE)
# Линковка файлов
$(KERNEL): $(KERNEL_NEED) $(RUST_SOURCES) rust/Cargo.toml
- @$(MAKE) build_rust
+ # $(MAKE) build_rust
@echo -e '\x1b[32mLINK \x1b[0m' $(KERNEL)
@rm -f $(KERNEL)
- @$(LD) $(LDFLAGS) -o $(KERNEL) $(KERNEL_NEED) $(RUST_OBJ_DEBUG)
- @llvm-strip -s $(KERNEL)
+ @$(LD) $(LDFLAGS) -o $(KERNEL) $(KERNEL_NEED) # $(RUST_OBJ_DEBUG)
+ #@llvm-strip -s $(KERNEL) # I know I strip all symbols so making unwind useless. (Fix it later)
@bash tools/genmap.sh
@bash tools/insertmap.sh
+ @ls -lh $(KERNEL)
@-rm kernel.map
# Быстрая линковка, генерация ISO, запуск
bir:
@$(MAKE)
+ @$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) run
# Быстрая линковка, генерация ISO, запуск
birl:
@$(MAKE)
+ @$(MAKE) RAM
@$(MAKE) geniso
@$(MAKE) runlive
@@ -131,25 +153,91 @@ bf:
cppcheck:
cppcheck --enable=warning,performance,portability .
-
debug: geniso
$(QEMU) $(QEMU_FLAGS) -s -S &
gdb -ex "target remote localhost:1234" -ex "break kernel" -ex "continue"
ensure_tools:
@echo "C:" $(CC)
- @echo "C++:" $(CXX)
+ @echo "LD:" $(LD)
release:
ADDCFLAGS="-DRELEASE" $(MAKE)
+ @$(MAKE) RAM
+# ВНИМАНИЕ: Данное правило установит SayoriOS на ваш компьютер!
deploy: $(KERNEL)
sudo cp iso/boot/kernel.elf /boot/sayorios_kernel.elf
- sudo cp iso/boot/sayori_sefs.img /boot/
+ sudo cp iso/boot/ramdisk /boot/sayori_ramdisk
sudo cp other/41_sayori /etc/grub.d/
sudo update-grub
+RAM:
+ @-rm ./iso/boot/ramdisk
+ @tar -cvf ./iso/boot/ramdisk ./ramdisk/
+
+VBOX_create_vm:
+ @echo "TODO"
+ @VBoxManage createvm --name=SayoriOS --register
+ @VBoxManage storagectl SayoriOS --name=ide --add=ide --bootable=on
+ @VBoxManage storageattach SayoriOS --type=dvddrive --medium kernel.iso --storagectl=ide --port=0 --device=0
+
+VBOX:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @VBoxManage startvm "SayoriOS"
+
+WSL_RUN:
+ "/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)
+
+
+WSL:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @-mkdir /mnt/c/SayoriDev/
+ mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
+ "/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)
+
+WSL_NAT:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @-mkdir /mnt/c/SayoriDev/
+ mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
+ "/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -serial telnet:sayorios.piminoff.ru:10000 -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL)
+
+WSL_DISKS:
+ @$(MAKE)
+ @$(MAKE) RAM
+ @$(MAKE) geniso
+ @-mkdir /mnt/c/SayoriDev/
+ mv kernel.iso /mnt/c/SayoriDev/SayoriOS_DEV_WSL.iso
+ @-mv disk1.img /mnt/c/SayoriDev/disk1.img
+ @-mv disk2.img /mnt/c/SayoriDev/disk2.img
+ @-mv disk3.img /mnt/c/SayoriDev/disk3.img
+ "/mnt/c/Program Files/qemu/qemu-system-i386.exe" -cdrom "C:\\SayoriDev\\SayoriOS_DEV_WSL.iso" -serial mon:stdio -m 128M -name "SayoriOS v0.3.4 Soul - Scythe - WSL MODE" -d guest_errors -rtc base=localtime $(QEMU_FLAGS_WSL) -hda "C:\\SayoriDev\\disk1.img" -hdb "C:\\SayoriDev\\disk2.img" -hdd "C:\\SayoriDev\\disk3.img"
+
+create_fat_disk:
+ fallocate -l 64M disk1.img
+ sudo mkfs.fat -F 32 disk1.img
+
+net_tap_dev: geniso
+ sudo $(QEMU) -cdrom kernel.iso -m $(MEMORY_SIZE) \
+ -name "SayoriOS v0.3.4 Soul - Scythe - [NETWORK ON TAP]" \
+ -rtc base=localtime \
+ -d guest_errors,cpu_reset,int \
+ -smp 1 \
+ -netdev tap,id=net0 \
+ -device rtl8139,netdev=net0,id=mydev0 \
+ -boot d \
+ -cpu core2duo-v1 \
+ -serial mon:stdio \
+ $(KVM_QEMU_FLAGS)
+
+
clangd:
$(MAKE) clean
bear -- $(MAKE) -j2
diff --git a/README.MD b/README.MD
index 206ab7784..69aba51bd 100644
--- a/README.MD
+++ b/README.MD
@@ -10,19 +10,22 @@
Коммиты идут пачками (по одному коммиту на каждый релиз)
Скриншоты
-
-
-
-
+
+
+
+
+
+
+
Примерный план действий:
Прогресс:
- ❤ [Ядро] Выполнено 4 из 7 (57%) [=====-----]
- 💫 [Драйвера] Выполнено 3 из 6 (50%) [=====-----]
- 📂 [Файлы] Выполнено 4 из 8 (50%) [=====-----]
- 🌐 [Сеть] Выполнено 0 из 1 (0%) [----------]
- 🔌 [Прочие] Выполнено 2 из 5 (40%) [====------]
+ ❤ [Ядро] Выполнено 10 из 20 (50%) [=====-----]
+ 💫 [Драйвера] Выполнено 9 из 10 (90%) [=========-]
+ 📂 [Файлы] Выполнено 8 из 10 (80%) [========--]
+ 🌐 [Сеть] Выполнено 1 из 3 (33%) [===-------]
+ 🔌 [Прочие] Выполнено 6 из 9 (66%) [======----]
Нажав сюда, вы увидите изображение, где отображены примерные планы на ядро.
Обновление данного изображения, будет только при следующем релизе. или нажмите сюда, для просмотра на сайте
@@ -88,11 +91,13 @@
make clean-objs - Удаляет все скомпилированные файлы
make link - Линк файлов ядра
make bir - Сборка ISO и запуск ядра
+ make WSL - Сборка ISO и запуск ядра через WSL
Список людей, которые поддерживают ядро:
* Nikita Piminoff (Создатель SayoriOS)
* Drew Pavlenko
+ * Даниил Лебедев
* Коммьюнити SayoriOS в VK
Отказ от ответственности:
diff --git a/README.MD:Zone.Identifier b/README.MD:Zone.Identifier
new file mode 100644
index 000000000..43a1a01e3
--- /dev/null
+++ b/README.MD:Zone.Identifier
@@ -0,0 +1,3 @@
+[ZoneTransfer]
+ZoneId=3
+HostUrl=https://github.com/
diff --git a/config.mk b/config.mk
index 1d3bbc31b..33e8be0a6 100755
--- a/config.mk
+++ b/config.mk
@@ -2,13 +2,19 @@
# SayoriOS Soul
# (c) SayoriOS Team 2022-2023
-# CC=$(shell bash other/compiler.sh cpp)
-CC=$(shell bash other/compiler.sh)
-CXX=$(shell bash other/compiler.sh cpp)
-
+KERNEL = iso/boot/kernel.elf
+DEBUG =# -ggdb3 #-Werror
MEMORY_SIZE=128M
USE_SSE=true
+COMPILER_DETECTOR_FLAGS = ""
+
+ifeq ($(X64),true)
+ COMPILER_DETECTOR_FLAGS := "--64"
+endif
+
+CC=$(shell bash tools/compiler.sh $(COMPILER_DETECTOR_FLAGS))
+
GAMEBOY = $(wildcard kernel/src/ports/gameboy/*.c)
GAMEBOY_OBJS = $(GAMEBOY:.c=.o)
@@ -16,7 +22,12 @@ OBJ_DIRECTORY = objects
DIRECTORIES = objects/kernel/src \
objects/kernel/asm \
objects/kernel/src/lib \
+ objects/kernel/src/lib/libstring/src \
+ objects/kernel/src/lib/libvector/src \
objects/kernel/src/lib/php \
+ objects/kernel/src/lib/elk \
+ objects/kernel/src/lib/elk/ext \
+ objects/kernel/src/lib/freeada \
objects/kernel/src/extra \
objects/kernel/src/sys \
objects/kernel/src/io \
@@ -32,134 +43,169 @@ DIRECTORIES = objects/kernel/src \
objects/kernel/src/lib/math \
objects/kernel/src/toys \
objects/kernel/src/gui \
+ objects/kernel/src/desktop \
objects/kernel/src/user \
objects/kernel/src/ports/gameboy \
- objects/kernel/src/compress/zlib \
+ objects/kernel/src/mem \
+ objects/kernel/src/arch/x86 \
+ # objects/kernel/src/compress/zlib \
# Исходные объектные модули
ASM_SRC=kernel/asm/init.s \
kernel/asm/interrupt.s \
- kernel/asm/switch_task.s \
kernel/asm/sys_calls.s \
kernel/asm/usr.s \
kernel/asm/sse.s \
kernel/asm/gdt.s \
+ kernel/asm/paging.s \
kernel/asm/regs.s \
kernel/src/lib/setjmp.s \
- kernel/src/sys/v8086.s \
+ kernel/asm/switch_task.s \
+# kernel/src/sys/v8086.s \
ASM=$(ASM_SRC:%.s=$(OBJ_DIRECTORY)/%.o)
-SOURCES=kernel/src/sys/bootscreen.c \
- kernel/src/sys/cpu_isr.c \
- $(GAMEBOY) \
- kernel/src/sys/acpi.c \
+SOURCES=\
kernel/src/sys/cpuinfo.c \
+ kernel/src/sys/cpu_isr.c \
kernel/src/sys/gdt.c \
kernel/src/sys/tss.c \
kernel/src/sys/idt.c \
kernel/src/sys/isr.c \
- kernel/src/sys/memory.c \
- kernel/src/sys/scheduler.c \
- kernel/src/sys/sync.c \
- kernel/src/sys/syscalls.c \
- kernel/src/sys/system.c \
+ kernel/src/io/ports.c \
+ kernel/src/io/serial_port.c \
+ kernel/src/lib/string.c \
+ kernel/src/drv/fpu.c \
kernel/src/sys/timer.c \
- kernel/src/sys/elf.c \
- kernel/src/lib/list.c \
- kernel/src/lib/dan.c \
+ kernel/src/sys/logo.c \
+ kernel/src/lib/math/math.c \
+ kernel/src/mem/pmm.c \
+ kernel/src/mem/vmm.c \
+ $(wildcard kernel/src/lib/libvector/src/*.c) \
+ $(wildcard kernel/src/lib/libstring/src/*.c) \
kernel/src/lib/stdio.c \
- kernel/src/lib/string.c \
kernel/src/lib/split.c \
- kernel/src/io/tty.c \
- kernel/src/io/status_sounds.c \
- kernel/src/io/status_loggers.c \
kernel/src/io/screen.c \
- kernel/src/drv/cmos.c \
- kernel/src/drv/vfs_new.c \
+ kernel/src/io/tty.c \
+ kernel/src/fs/tarfs.c \
+ kernel/src/fs/fsm.c \
+ kernel/src/fs/nvfs.c \
+ kernel/src/fs/natfs.c \
+ kernel/src/fs/iso9660.c \
+ kernel/src/lib/php/str_replace.c \
+ kernel/src/sys/scheduler.c \
+ kernel/src/lib/php/explode.c \
+ kernel/src/lib/php/pathinfo.c \
+ kernel/src/lib/elk/elk.c \
+ kernel/src/lib/elk/elk_engine.c \
+ kernel/src/lib/elk/elk_libs.c \
+ kernel/src/lib/elk/jse_func.c \
+ $(wildcard kernel/src/lib/elk/ext/*.c) \
+ kernel/src/lib/freeada/ada.c \
+ kernel/src/drv/psf.c \
+ kernel/src/sys/unwind.c \
+ kernel/src/fs/NatSuki.c \
+ kernel/src/drv/disk/initrd.c \
+ kernel/src/drv/disk/dpm.c \
+ kernel/src/lib/list.c \
+ kernel/src/sys/sync.c \
+ kernel/src/gui/basics.c \
+ kernel/src/lib/pixel.c \
+ kernel/src/sys/bootscreen.c \
+ kernel/src/debug/hexview.c \
kernel/src/drv/video/vbe.c \
kernel/src/drv/input/keyboard.c \
kernel/src/drv/input/mouse.c \
+ kernel/src/sys/syscalls.c \
+ kernel/src/sys/testing.c \
+ kernel/src/sys/trigger.c \
+ kernel/src/lib/rand.c \
+ kernel/src/drv/cmos.c \
kernel/src/drv/beeper.c \
- kernel/src/drv/fpu.c \
- kernel/src/drv/rtl8139.c \
- kernel/src/drv/pci.c \
- kernel/src/io/ports.c \
- kernel/src/fs/sefs.c \
- kernel/src/fs/milla.c \
- kernel/src/fs/NatSuki.c \
kernel/src/user/env.c \
- kernel/src/sys/logo.c \
- kernel/src/io/port_io.c \
+ kernel/src/drv/pci.c \
kernel/src/gui/pointutils.c \
- kernel/src/gui/eki.c \
kernel/src/gui/line.c \
kernel/src/gui/circle.c \
- kernel/src/drv/audio/ac97.c \
- kernel/src/toys/piano.c \
- kernel/src/toys/minesweeper.c \
- kernel/src/toys/diskctl.c \
- kernel/src/toys/danview.c \
- kernel/src/toys/mala.c \
- kernel/src/toys/dino.c \
- kernel/src/toys/calendar.c \
- kernel/src/sys/testing.c \
- kernel/src/sys/trigger.c \
- kernel/src/lib/pixel.c \
- kernel/src/lib/tui.c \
- kernel/src/lib/rand.c \
- kernel/src/lib/sprintf.c \
- kernel/src/lib/php/str_replace.c \
- kernel/src/extra/texplorer.c \
- kernel/src/io/shell.c \
- kernel/src/sys/unwind.c \
- kernel/src/sys/fxsave_region.c \
- kernel/src/net/endianess.c \
- kernel/src/net/cards.c \
- kernel/src/net/ethernet.c \
- kernel/src/net/arp.c \
- kernel/src/drv/disk/mbr.c \
- kernel/src/drv/disk/floppy.c \
- kernel/src/drv/disk/ata.c \
- kernel/src/drv/disk/atapi.c \
- kernel/src/fs/fat12.c \
- kernel/src/fs/smfs.c \
- kernel/src/debug/hexview.c \
- kernel/src/debug/ubsan.c \
- kernel/src/fmt/tga.c \
- kernel/src/fmt/tga_extract.c \
- kernel/src/sys/pixfmt.c \
kernel/src/lib/math/exp.c \
kernel/src/lib/math/log.c \
kernel/src/lib/math/pow.c \
kernel/src/lib/math/acos.c \
kernel/src/lib/math/asin.c \
kernel/src/lib/math/atan.c \
+ kernel/src/lib/math/modf.c \
kernel/src/lib/math/integral.c \
kernel/src/lib/math/sin.c \
kernel/src/lib/math/cos.c \
kernel/src/lib/math/tan.c \
kernel/src/lib/math/sqrt.c \
+ kernel/src/io/rgb_image.c \
+ $(wildcard kernel/src/lib/libstring/*.c) \
kernel/src/lib/math/cbrt.c \
- kernel/src/lib/math/math.c \
- kernel/src/gui/basics.c \
- kernel/src/gui/render.c \
- kernel/src/drv/psf.c \
- kernel/src/gui/window.c \
- kernel/src/gui/widget.c \
- kernel/src/gui/widget_button.c \
- kernel/src/gui/widget_label.c \
- kernel/src/gui/widget_image.c \
- kernel/src/gui/parallel_desktop.c \
- kernel/src/lib/base64.c \
- kernel/src/io/duke_image.c \
kernel/src/sys/cpuid.c \
+ kernel/src/drv/disk/ata.c \
+ kernel/src/drv/disk/atapi.c \
kernel/src/sys/cputemp.c \
- $(wildcard kernel/src/compress/zlib/*.c) \
- kernel/src/zlibtest.c \
+ kernel/src/net/endianess.c \
+ kernel/src/net/cards.c \
+ kernel/src/net/ethernet.c \
+ kernel/src/net/arp.c \
+ kernel/src/net/ipv4.c \
+ kernel/src/net/udp.c \
+ kernel/src/net/dhcp.c \
+ kernel/src/net/icmp.c \
+ kernel/src/sys/system.c \
+ kernel/src/io/status_sounds.c \
+ kernel/src/io/status_loggers.c \
+ kernel/src/extra/cli.c \
+ kernel/src/sys/variable.c \
+ kernel/src/fs/fat32.c \
+ kernel/src/sys/fxsave_region.c \
+ kernel/src/toys/gfxbench.c \
+ kernel/src/toys/miniplay.c \
+ kernel/src/drv/rtl8139.c \
+ kernel/src/fmt/tga.c \
+ kernel/src/lib/sprintf.c \
+ kernel/src/debug/ubsan.c \
+ kernel/src/fmt/tga_extract.c \
+ kernel/src/drv/disk/floppy.c \
+ kernel/src/drv/disk/ata_dma.c \
+ kernel/src/drv/audio/ac97.c \
+ kernel/src/sys/elf.c \
+ kernel/src/sys/acpi.c \
+ kernel/src/sys/pixfmt.c \
+ kernel/src/desktop/render.c \
+ kernel/src/desktop/window.c \
+ kernel/src/desktop/widget.c \
+ kernel/src/desktop/widget_button.c \
+ kernel/src/desktop/widget_progress.c \
+ kernel/src/desktop/widget_image.c \
+ kernel/src/desktop/widget_label.c \
+ kernel/src/desktop/eki.c \
+ kernel/src/desktop/parallel_desktop.c \
+ kernel/src/sys/mtrr.c \
+ kernel/src/net/net_info_cli.c \
+ kernel/src/toys/mala.c \
+ kernel/src/debug/memmeter.c \
+ kernel/src/drv/disk/ahci.c \
+ kernel/src/drv/disk/ndpm.c \
+ kernel/src/toys/minesweeper.c \
+ kernel/src/toys/calendar.c \
+ kernel/src/toys/diskctl.c \
+ kernel/src/lib/utf_conversion.c \
+ kernel/src/lib/base64.c \
kernel/src/kernel.c \
- # kernel/src/fs/lucario/fs.c \
- # kernel/src/drv/ata_dma.c \
+ $(GAMEBOY) \
+# kernel/src/toys/pavi.c \
+ kernel/src/lib/duktape.c \
+ kernel/src/toys/piano.c \
+ $(wildcard kernel/src/compress/zlib/*.c) \
+ kernel/src/toys/dino.c \
+ kernel/src/lib/tui.c \
+ kernel/src/extra/texplorer.c \
+ kernel/src/drv/disk/mbr.c \
+ kernel/src/fs/fat12.c \
+ kernel/src/fs/smfs.c \
RUST_DIR = rust/
RUST_TARGET = i686-unknown-none
@@ -195,19 +241,11 @@ OBJS = $(SOURCES:%.c=$(OBJ_DIRECTORY)/%.o)
DEPS = $(OBJS:%.o=%.d)
-KERNEL = iso/boot/kernel.elf
-
KERNEL_NEED = $(ASM) $(OBJS) $(CPP_CODE)
-DEBUG = #-ggdb3 #-Werror
-
-COMMON_FLAGS = -nostdlib -fno-stack-protector -fno-builtin -m32 -Ikernel/include/ -ffreestanding \
+COMMON_FLAGS = -O0 -nostdlib -fno-stack-protector -fno-builtin -Ikernel/include/ -ffreestanding \
-Wall -Wno-div-by-zero -Wno-address-of-packed-member -Wno-implicit-function-declaration \
- -mno-red-zone -march=i386 -MMD -MP -Wno-everything
-
-ifeq ($(USE_SSE),true)
- COMMON_FLAGS := $(COMMON_FLAGS) -msse2 -DUSE_SSE
-endif
+ -mno-red-zone -MMD -MP
# Флаги компилятора языка C
CFLAGS=$(DEBUG) $(ADDCFLAGS) $(COMMON_FLAGS)
@@ -215,11 +253,23 @@ CPP_FLAGS=$(DEBUG) $(COMMON_FLAGS) -fno-use-cxa-atexit -fno-exceptions -fno-rtti
LD ?= ld.lld
# Флаги компоновщика
-LDFLAGS=-T kernel/asm/link.ld -m elf_i386
+LDFLAGS=-T kernel/asm/link.ld
# Флаги ассемблера
ASFLAGS=--32
+ifeq ($(USE_SSE),true)
+ COMMON_FLAGS := $(COMMON_FLAGS) -msse2 -DUSE_SSE
+endif
+
+ifeq ($(X64),true)
+ COMMON_FLAGS := $(COMMON_FLAGS) -DSAYORI64
+ LDFLAGS := $(LDFLAGS) -m elf_x86_64
+else
+ LDFLAGS := $(LDFLAGS) -m elf_i386
+endif
+
+
QEMU ?= qemu-system-i386
# Memory minimal: 33 MB
@@ -238,15 +288,27 @@ endif
# NOTE: -d int works only when using tcg accelerator (no KVM)
QEMU_FLAGS = -cdrom kernel.iso -m $(MEMORY_SIZE) \
- -name "SayoriOS Soul v0.3.3 (Dev)" \
+ -name "SayoriOS v0.3.4 Soul - Scythe" \
-rtc base=localtime \
-d guest_errors,cpu_reset,int \
-audiodev pa,id=pa0 \
-smp 1 \
- -netdev user,id=net0 \
+ -netdev user,id=net0,net=192.168.111.0,dhcpstart=192.168.111.128 \
-device rtl8139,netdev=net0,id=mydev0 \
-M pcspk-audiodev=pa0 \
-device AC97 \
-boot d \
-cpu core2duo-v1 \
+ -object filter-dump,id=dump0,netdev=net0,file=netdump.pcap \
$(KVM_QEMU_FLAGS)
+
+# NOTE: -d int works only when using tcg accelerator (no KVM)
+QEMU_FLAGS_WSL = -m $(MEMORY_SIZE) \
+ -name "SayoriOS v0.3.4 Soul - Scythe" \
+ -rtc base=localtime \
+ -smp 1 \
+ -netdev user,id=net0,net=192.168.111.0,dhcpstart=192.168.111.128 \
+ -device rtl8139,netdev=net0,id=mydev0 \
+ -device AC97 \
+ -boot d \
+ -cpu core2duo-v1
diff --git a/iso/boot/grub/background.tga b/iso/boot/grub/background.tga
new file mode 100644
index 0000000000000000000000000000000000000000..6cdec2cc0d026e4102f875103e78479d11066056
GIT binary patch
literal 54582
zcmeI5Ypf+zmB*{jxwr4_R=&&!KKWtd2Qx7lKA4yo6BA>ChByvkUHN|(n
z^PS?l>#i%VzWVCol1nZr&N}O?;*diQDfZZ74|jDMk7W-({BUthvC^`~9(%0#s=C^1
zuf2*58#WZ%wrwk}xZ;Z9Ti^PYy8HUqzaG2#gILQ
z1Sn2dXYY8&JBoA8Ij2C&mtTIlIF8?sUw!q};@M}P6-*!b$VZB^w`br|c>T16K91*~
z5nVp`;DZwA6b*>RR{a-yKnJ>AN-(r
z?X}kmbujwpKmS?$^rt^9jyU3oVpE?%W~7v+8aO}iyz`1zUU{WBLxcbBcfT{9QXzlK
zTi!B-CmwmSM%{h)-HUI3``ZNw>On~cx?nDkYU+4KlFjsYEdS(R``XtE6x<|9u)Xd*
zfnR11Jn+E8KY#q=A6tqX<3IJ(Q^i+#ApheZ|5&VBx6WbE)LGr=8#Vf-O`A$p-+-ka
zfBbQ|{ZU69RbU=e```yZSYV(NPB@{s_S$QUpZw$}3QjxRr$7DaDVZ1F{qA=ccinYY
zjNp6jxub5Xl;=2r~xra@BA0P_(gH(
zp@$aosKqzG`OU>?r=3y`m#0I$wC^-G^zG^f$lxjYC1E$5C|eHRzJvbkj|f
zaS0_@+tK*`_rJgRBwQ<(AmuBSJQ_^&%X4fFHJi6<~P4NHF5^o+JwLQ)vpRTN*tMy
z@_d~nQ3>pE&4^~4iToQ!(urI!{LBhG5P1j;%0+;asrc@{qccCHZ`=0;*$c@!c<3DlKc
zv!|badLkTm!qu)cFq(x!DMiH?ATPiC@`7jZ9rZhcA;^E9`OIgW5i{8SXvWNb{_~#~
z>yT?imb~MRJCwwnLE&7x3isPdpLpVliMQjC9v{9{rIUT(3tyOABW?{?6@xi|!TjzN
zClp1DD4!UN#B?%3=Lk)~~0$uYWb58PGQa0}WfAlTSX`#ZU%s`xpo`BR_zl*i0Td3d<$r;^Jv5`+_D
zy}orIiBF9viNq-1a?33faIn3So|M9(ANarrCKmYq_rE{6A3jmtpWS@(&68_qoNJeWc
zH0_yKmLRhgfjai3k?D`R3@+lg&@WO@w=iR(M)%0b=bAOL&xnfP%U}MoI8*$!Oi;q4
zr<`(1K_y6^+(myBp6`0syISCnnJyzKsEWy;2J3>S!>D$yDynrRxDxAIaSAH}QL5yS
zI*Mw51sH$^RCpUDsRNK{!mYR7YU}4bPZ)T3h}U9;>kiC~8#hk81)sOKFtt$}jDQCp
z!$|s_d>LT$`y9B*g)XWh(D}BNsVatBi=dj6+;-b-Wzk)FeTG~PZ>m>E9~v1<5|OWw
z8rra_1N46Y)G9&Rs_;hyGr@wj6)+-apmRVnd-9O@nZetP$wfu&-SO38E*A)NvWqu7+dPyJ}HfY=f-$8OWR4y?-n
z%a&lq;M9)`lb%_AxRe{RNWvL2Lt6w9@J0zG+X_l814Lmn*vR(-M=Z=UvYhWH@Bzn4
z0D=o+KyV~LAS4MVp(;35n8@+-_@9;mGO9dZBM94ctOMqf2uzNmtpA9bN2oxDR6Z(1
zGlnz>_uqg2!~!sut%dNgrCA9zEEE-&{pX~UPMTaJ4n>UtDbofi%;eFmTOBAD0*alR(87HUO7IvmqHfYcmO()&StTpL>&m@;_EOiOQ8jH!;T3IMvM0A$kcdae$bvV_6s3`|)ILJ{-ys{`hIfRQqy
z%Afu0XT=GSV2%g~uNyM_!=Ny@g@;zHJjDV*B1`9FS6IvU1BG3^3_0$1NNnA@bpi?#
zis(7u$%@DBrD<^a$00TmB8e}AH)2j{)72u-F5m^hakClzG0?Lqbbz??ZVI`?o
zEPR|aX3()+pMbGYB}L-{zD6$sBY)>R-#O)Fu~3!rzL&XLGaz65;uj}Zy}!
ztbKOTtqvF!Rbu!Ngo<6L8x%sSZkge2#g*zn(W(dQr=>?27<{SfK@Oi1M4)p>uzc(1
zfBW0tPI-!-$KRmiW^fKZ_}~c;P2n?7zdBbrNt)N=9(v90F8EQhKCV6FDw3L&pbL
z1jU!|8%UV+iwe=(GJa!_Semhtfn&@`6a?IFP~aqo1+}`p1s^te_)-ZJQxV@=@(iGA
z!KF6T7|VS!vva7GUQJck1%o;ORSI}bnu?sFj)G6MPYz8}ttgI1Bz2NIFlg>qf|Mg*
znRO7&3R2x$@sQ1Y9g(dN6KjLSu8FU~V6y<>HO&BNNeAA{;5GwPu2`^~GEc`ka8&PU
zZDzzm9N>_zJYir}z=TVZhO4{+j_0^sg9Ypz<;)5@`x>@4XOTOsICDCK!C1bAS!Tgt
zv^p@{UnF`>p4nV+!3Wd1Pl|~)y&A#L3|cFtgpGlK;v`^BMqu`TrYunc!RodL#+$s9
zL7n1j)W{aR6tGOi1eWiE`T7BY1b&v$3_^L04S^HyHao&vC+pp6SD3X`}}MLmK>
zz$`)0{Eitq>v&9QSs%bzN!MEI$*7*~5fLyEwpN4GKfYklAby8an3Wkgu3J$gvj>&e
zDCznES58)#*ji^KW>k+4Te33RghwNQwgMXs7MOUIa#A`@>PCPEaMYO&rz%h`0PzkB
zgwvCOynqJ9mKhIqN;3Dj}1B&%1_Xm3kj0`96wKCIH^=$_y5Az)>262+N
zv}~G{Q$`d<2~R_7z{%OJDM^_ywa1lncK9*wF&tv$S~t97FrJR9bENXFU^o$)GUQLhG3Nn1xijD3dsAg7&RXeBu*R
zw2UE
z+J+6GZF@EpT^iyyR<2yBf%=#!>nUXiW^M)-pYkXykQ**?A4^fbj=jwr^D|LdBIsG|
zwgQ2OJST0yF8&>6z^m*%W$lEvjnKGmp$3Tiq&Wk`q${Vy7hJxT+k}uP$=B9n9S^UW
z1&!4d!^ARu8G7tM2-che0K5Ax`hX|gD;!1`SV2_fN-yxlk5n;|EN5KI;jxceS)F1Q
z;Qm>-#S7Jc-UX9(SQki)010bAp6p-RBdBXg+=dGadD$XzPEP5^4uFce5m^h4qBl)!
zRSH-MYAuvd=;n9<>e{1OkT-M1*E2@Y1QSbqMZM>688R9M#yIlGBPRvKd>^$&WbQbj
z(u*|!sMQKsWQ6W8AiaAWOpV*f)V;8(gI$HIeH7TG{%(K>q2Iic5P01Te`OIA_?e#(
zK+N6|14wv%0Re3m3}k@dJ7_|JujVHT2WS9)p(lD|hDNqzKLwArL6~rmeQglv#0Ftq
zK?^(?G3Dhuyqh&qjlUW=i5jG%BBw-w4a4pqRKqxymY3K}7xPUfs?v%FW5}W2Kn+0&
zPV~d$l)sF~k~G|)x#r5Gn>@`N$LlM>h#q-IB41}@<+{?yXOR+e-bJ7~cQz)#wH>b{
z#+(&UF@nsYxRC+Go|w|{#G1ZYmDdEGdFGkPdx_L+&I$8jbvyzV(d3r{nH)kh?gN0T
zQg={Oi!usZwsi=1GZaeW-G0Rb6;am(4FZ%3yTpY_cWEWk4G2yZ7+Kmy9~2s_5|*c%2QVrA_STguE5_^n)g3`C>{3X{0bpm)?}
z08&{5Gl=gp%3sy(W30?hYk2R#Tc%WqRF^1ePn+*Gs_n)UyKF$QCJR?f5ClB1Or+C9Bt~=^|bXd3jNj<)bjU}Fh2w6oWeNy*8h0YZs)|L0=8hg77
z5!9RBW)lf#q|?SH?yf%JJwV1Gs2ZQTr}~uMpUasOK}+
z?i+5Y52gW^0hbs(gEI`yFgU|7K^-QjDj^0s9O!VM!+{P5IvnV*o(TtB23%r>7@T2n
zhQS$z^}4iN7?@#ThJhIdW*C@3OgPZtK!*bz4suSf;@mk54RXrHt
zqGZeqk`W57T+2TxUOGm1%%L?jjw#`re!fqK$*f%ESWJza@j(`SOef=9psF+x)tS5e
z1&Vkq&H~5Oa0nBKaUK!Jg8A6lYVSVZwtDSG>Bd=UG!6;&m*}Rg;3Hz%$J6Oa(Joyr
zG=#LD05)w1s7Z5r^|&8IA#~%7=Z0K+Qdz8_6*@oR+WCVxtb6OShJTB6B{;$Bd^#kh{B*E%FdQa!Ou0&mGWBgPa=@Xh9Bgs*1G>(fC
zPcCq{8;w)8X&eOTC`@8E+ONIe9br92kOwYuL>ylf$DT9}r{-u%WrT{4>{z>S@|!eS
z3?9WHbu=sh`Z{&G5~-<$bbjC%?%@9^pw&l0<<5IGD^
zQY}tDjZhqp%+Yr~i;@p7>b_+dl|0TtY#hUg%;*V=agHyC*HzgLn@DE)8u!yU7_BO0
zlzRbL7#le_=@3p_%c*F}2Y8lbS;a}%AOhC(3s3MV@K_yGyh)?UR-tcX;51F*76v9$
za4aP`MqaeUk$0TI2v2heEt;Y=pHjg$tO2>4#vzw_ZpWx&C3@DKV^SHJ`y$tjLB@R5HkAq$d%DrZb`Rw;oW9^m{Gd;ie&4ow@%5daD9tsb@El~lUQ(R)`I9W9V5mRMB31j
zbe*+xWQS4U@#d)2Z|3@^jy~>$Lq9v%Tf6#S$_HY&FfRpDX!%mR4ifiPVlpQKp
z(wr^tn;Rje&56HxIicj4Hb3fzwQ*6c?%$=B=Q@6J!k8)*7k80OiT@>cR+14mWvN%>BC^z(-K8AV?XA)}a=dih!p8>si)y7oRlRzxK_
z09~0=^BQak+cJwGV`M`8-G9FpjyVZ)ONo-!!tKq*Eq=y=btfykse4P-bmB%ePu+
zWC*G>+cI6bOX4_MH^$jGyJP)?P55QNr^^}-79*zGe>r3LCZ;X(ijZe&*^4?Gdu)={i>4`<;
zLngkVLt|xuZ|>-~%Xm^)zv$=NdVVzDi)6pfx~ELr=5xvD%der-&tbVx^G=GsB*eHA-Kf7yVtJuma2X
zSyJDSLrUJ$QjCRVh*md`Wh>u5t)Lfk5&VBM7B*bKD}be
z4msqI$*5SIc^)lhvsgJGOROx%2OfB!?qhDu{-oqyV&9NPH4;8OIp6rztA7_gj9l=hrkK%P**t&pN28|o>>`2g(Z_h^c|?l2
zxI-V8^0VX--_=(NX&8MsjkEeIDJ$s8cG)NL=y;Y#``BFfc0yCQ*GpO(NdeJjo@mMt
z@T1sg8T$lZqi%*USZAY!d|;npEsDmhriwD`WJLHBV^|SmuS-|EtU<<^EGygW2GN))
zz$=~;1u09rPtTj29|HH0VI*T*A!VhHwHo%LsHs_jlZWQ$#SCShzeUVOp(f|sV&-r@
ziAQ6uRE@Aw+91Ea3@lz|9!EnqKShr;q?Fdt?#N4K